mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
Cleanups for 0.122u5.
This commit is contained in:
parent
8e79f0b4f0
commit
73d0923d7f
@ -200,8 +200,8 @@ static DISCRETE_SOUND_START(mario)
|
||||
/************************************************/
|
||||
|
||||
/* following the resistor DAC are two opamps. The first is a 1:1 amplifier, the second
|
||||
* is a filter circuit. Simulation in LTSPICE shows, that the following is equivalent:
|
||||
*/
|
||||
* is a filter circuit. Simulation in LTSPICE shows, that the following is equivalent:
|
||||
*/
|
||||
|
||||
DISCRETE_MULTIPLY(NODE_170, 1, DS_DAC, TTL_HIGH/256.0)
|
||||
DISCRETE_RCFILTER(DS_OUT_DAC, 1, NODE_170, RES_K(750), CAP_P(200))
|
||||
@ -237,9 +237,9 @@ static SOUND_START( mario )
|
||||
soundlatch3_clear_w(0,0);
|
||||
soundlatch4_clear_w(0,0);
|
||||
/*
|
||||
* The code below will play the correct start up sound
|
||||
* However, it is not backed by hardware at all.
|
||||
*/
|
||||
* The code below will play the correct start up sound
|
||||
* However, it is not backed by hardware at all.
|
||||
*/
|
||||
//soundlatch_w(0,2);
|
||||
}
|
||||
|
||||
|
@ -177,15 +177,15 @@ WRITE8_HANDLER( tx1_ay8910_b_w )
|
||||
|
||||
Engine sounds are produced by three of these 4013B chains:
|
||||
|
||||
+------------------
|
||||
+------------------
|
||||
| +---------+
|
||||
+-----+ | | +-----+ |
|
||||
+-|D 1 Q|-+ +-|D 2 Q|-|-----
|
||||
| |C /Q|-o----|C /Q|-+
|
||||
| +-----+ | +-----+
|
||||
+---------+
|
||||
+---------+
|
||||
|
||||
+----------+
|
||||
+----------+
|
||||
| +-----+ | +-----+
|
||||
| |C 3 Q|-+ |C 4 Q|-------
|
||||
!&--|D /Q|------|D /Q|-+
|
||||
@ -194,8 +194,8 @@ WRITE8_HANDLER( tx1_ay8910_b_w )
|
||||
|
||||
Common clocks omitted for clarity (all driven from an 8253 output pin).
|
||||
|
||||
Player: ES0, ES1, ES2
|
||||
Opponent 2: ES2
|
||||
Player: ES0, ES1, ES2
|
||||
Opponent 2: ES2
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
|
@ -3262,8 +3262,8 @@ static DRIVER_INIT( paperboy )
|
||||
static DRIVER_INIT( 720 )
|
||||
{
|
||||
/* without the default EEPROM, 720 hangs at startup due to communication
|
||||
issues with the sound CPU; temporarily increasing the sound CPU frequency
|
||||
to ~2.2MHz "fixes" the problem */
|
||||
issues with the sound CPU; temporarily increasing the sound CPU frequency
|
||||
to ~2.2MHz "fixes" the problem */
|
||||
static const UINT16 compressed_default_eeprom[] =
|
||||
{
|
||||
0x0000,0x01ff,0x01d0,0x0107,0x0100,0x01d7,0x0300,0x01d7,0x0400,0x01d0,
|
||||
|
@ -1,11 +1,11 @@
|
||||
/***************************************************************************
|
||||
|
||||
TODO:
|
||||
- start up sound (Sound #2 should play but does not
|
||||
- start up sound (Sound #2 should play but does not
|
||||
|
||||
Done:
|
||||
- discrete sound
|
||||
- hooked up z80dma
|
||||
- hooked up z80dma
|
||||
- combined memory maps
|
||||
- statics in mario_state struct
|
||||
- fixed save state issues
|
||||
|
@ -1,11 +1,11 @@
|
||||
/****************************************************************************
|
||||
|
||||
Paranoia
|
||||
Driver by Mariusz Wojcieszek
|
||||
Paranoia
|
||||
Driver by Mariusz Wojcieszek
|
||||
|
||||
Notes:
|
||||
- jamma interface is not emulated, hence the game is marked as 'not working'
|
||||
- rom mapping, memory maps and clocks for jamma interface cpus are probably not correct
|
||||
Notes:
|
||||
- jamma interface is not emulated, hence the game is marked as 'not working'
|
||||
- rom mapping, memory maps and clocks for jamma interface cpus are probably not correct
|
||||
|
||||
Paranoia by Naxat Soft 1990
|
||||
|
||||
|
@ -2121,14 +2121,14 @@ static ADDRESS_MAP_START( rdx_v33_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x00434, 0x00435) AM_READ(rdx_v33_unknown_r)
|
||||
AM_RANGE(0x00436, 0x00437) AM_READ(rdx_v33_unknown_r)
|
||||
|
||||
// AM_RANGE(0x00620, 0x00621) AM_WRITE(scroll_w) // scroll1
|
||||
// AM_RANGE(0x00622, 0x00623) AM_WRITE(scroll_w) // scroll1
|
||||
// AM_RANGE(0x00620, 0x00621) AM_WRITE(scroll_w) // scroll1
|
||||
// AM_RANGE(0x00622, 0x00623) AM_WRITE(scroll_w) // scroll1
|
||||
|
||||
// AM_RANGE(0x00624, 0x00625) AM_WRITE(scroll_w) // scroll2
|
||||
// AM_RANGE(0x00626, 0x00627) AM_WRITE(scroll_w) // scroll2
|
||||
// AM_RANGE(0x00624, 0x00625) AM_WRITE(scroll_w) // scroll2
|
||||
// AM_RANGE(0x00626, 0x00627) AM_WRITE(scroll_w) // scroll2
|
||||
|
||||
// AM_RANGE(0x00628, 0x00629) AM_WRITE(scroll_w) // scroll3
|
||||
// AM_RANGE(0x0062a, 0x0062b) AM_WRITE(scroll_w) // scroll3
|
||||
// AM_RANGE(0x00628, 0x00629) AM_WRITE(scroll_w) // scroll3
|
||||
// AM_RANGE(0x0062a, 0x0062b) AM_WRITE(scroll_w) // scroll3
|
||||
|
||||
AM_RANGE(0x006b0, 0x006b1) AM_WRITE(mcu_prog_w)
|
||||
AM_RANGE(0x006b2, 0x006b3) AM_WRITE(mcu_prog_w2)
|
||||
@ -2137,9 +2137,9 @@ static ADDRESS_MAP_START( rdx_v33_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
|
||||
AM_RANGE(0x006bc, 0x006bd) AM_WRITE(mcu_prog_offs_w)
|
||||
|
||||
// AM_RANGE(0x006d8, 0x006d9) AM_WRITE(bbbbll_w) // scroll?
|
||||
// AM_RANGE(0x006d8, 0x006d9) AM_WRITE(bbbbll_w) // scroll?
|
||||
AM_RANGE(0x006dc, 0x006dd) AM_READ(rdx_v33_unknown2_r)
|
||||
// AM_RANGE(0x006de, 0x006df) AM_WRITE(mcu_unkaa_w) // mcu command related?
|
||||
// AM_RANGE(0x006de, 0x006df) AM_WRITE(mcu_unkaa_w) // mcu command related?
|
||||
|
||||
AM_RANGE(0x00700, 0x00701) AM_WRITE(rdx_v33_eeprom_w)
|
||||
|
||||
|
@ -1605,10 +1605,10 @@ INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( ad2083 )
|
||||
/* There are no Player 2 controls for this game:
|
||||
* Dipswitch is read upon startup. If Cabinet = Cocktail, a 1 is stored @400F.
|
||||
* 400F in turn is only read just before Player 2 turn. If 400F=1 then flip line
|
||||
* is set. That is all. If there is a dedicated player 2 input,
|
||||
* it must be multiplexed by flip line. */
|
||||
* Dipswitch is read upon startup. If Cabinet = Cocktail, a 1 is stored @400F.
|
||||
* 400F in turn is only read just before Player 2 turn. If 400F=1 then flip line
|
||||
* is set. That is all. If there is a dedicated player 2 input,
|
||||
* it must be multiplexed by flip line. */
|
||||
PORT_START
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
|
@ -9,8 +9,8 @@
|
||||
* Buggy Boy (1985)
|
||||
* Buggy Boy Junior (1986)
|
||||
|
||||
ROMs wanted:
|
||||
* TX-1 V8 (1984)
|
||||
ROMs wanted:
|
||||
* TX-1 V8 (1984)
|
||||
|
||||
Notes:
|
||||
* 'buggyboy' and 'tx1' are preliminary
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
|
||||
United Amusement PC-Engine based hardware
|
||||
Driver by Mariusz Wojcieszek
|
||||
Thanks for Charles MacDonald for hardware docs
|
||||
United Amusement PC-Engine based hardware
|
||||
Driver by Mariusz Wojcieszek
|
||||
Thanks for Charles MacDonald for hardware docs
|
||||
|
||||
Overview
|
||||
|
||||
|
@ -405,26 +405,26 @@ static UINT16 *umk3_palette;
|
||||
static WRITE16_HANDLER( umk3_palette_hack_w )
|
||||
{
|
||||
/*
|
||||
UMK3 uses a circular buffer to hold pending palette changes; the buffer holds 17 entries
|
||||
total, and the buffer is processed/cleared during the video interrupt. Most of the time,
|
||||
17 entries is enough. However, when characters are unlocked, or a number of characters are
|
||||
being displayed, the circular buffer sometimes wraps, losing the first 17 palette changes.
|
||||
UMK3 uses a circular buffer to hold pending palette changes; the buffer holds 17 entries
|
||||
total, and the buffer is processed/cleared during the video interrupt. Most of the time,
|
||||
17 entries is enough. However, when characters are unlocked, or a number of characters are
|
||||
being displayed, the circular buffer sometimes wraps, losing the first 17 palette changes.
|
||||
|
||||
This bug manifests itself on a real PCB, but only rarely; whereas in MAME, it manifests
|
||||
itself very frequently. This is due to the fact that the instruction timing for the TMS34010
|
||||
is optimistic and assumes that the instruction cache is always fully populated. Without
|
||||
full cache level emulation of the chip, there is no hope of fixing this issue without a
|
||||
hack.
|
||||
This bug manifests itself on a real PCB, but only rarely; whereas in MAME, it manifests
|
||||
itself very frequently. This is due to the fact that the instruction timing for the TMS34010
|
||||
is optimistic and assumes that the instruction cache is always fully populated. Without
|
||||
full cache level emulation of the chip, there is no hope of fixing this issue without a
|
||||
hack.
|
||||
|
||||
Thus, the hack. To slow down the CPU when it is adding palette entries to the list, we
|
||||
install this write handler on the memory locations where the start/end circular buffer
|
||||
pointers live. Each time they are written to, we penalize the main CPU a number of cycles.
|
||||
Although not realistic, this is sufficient to reduce the frequency of incorrect colors
|
||||
without significantly impacting the rest of the system.
|
||||
*/
|
||||
Thus, the hack. To slow down the CPU when it is adding palette entries to the list, we
|
||||
install this write handler on the memory locations where the start/end circular buffer
|
||||
pointers live. Each time they are written to, we penalize the main CPU a number of cycles.
|
||||
Although not realistic, this is sufficient to reduce the frequency of incorrect colors
|
||||
without significantly impacting the rest of the system.
|
||||
*/
|
||||
COMBINE_DATA(&umk3_palette[offset]);
|
||||
activecpu_adjust_icount(-100);
|
||||
/* printf("in=%04X%04X out=%04X%04X\n", umk3_palette[3], umk3_palette[2], umk3_palette[1], umk3_palette[0]); */
|
||||
/* printf("in=%04X%04X out=%04X%04X\n", umk3_palette[3], umk3_palette[2], umk3_palette[1], umk3_palette[0]); */
|
||||
}
|
||||
|
||||
static void init_mk3_common(void)
|
||||
|
@ -551,13 +551,13 @@ static void tx1_update_state(void)
|
||||
/*
|
||||
TODO: Changed ppshift to muxlatch for TX-1
|
||||
|
||||
/TMPLD1: /LHIEN
|
||||
/TMPLD2: /LLOEN.!O4 + (/LHIEN.O4)
|
||||
/TMPLD3: /LLOEN
|
||||
O4: !SD9.!SD10./LMSEL + SD7.SD10./LMSEL +
|
||||
!SD8.SD9./LMSEL + !SD7.SD8./LMSEL +
|
||||
/LMSEL./DSEL1 + /LMSEL.TFAD13 + /LMSEL.TFAD12 + /LMSEL.TFAD11
|
||||
*/
|
||||
/TMPLD1: /LHIEN
|
||||
/TMPLD2: /LLOEN.!O4 + (/LHIEN.O4)
|
||||
/TMPLD3: /LLOEN
|
||||
O4: !SD9.!SD10./LMSEL + SD7.SD10./LMSEL +
|
||||
!SD8.SD9./LMSEL + !SD7.SD8./LMSEL +
|
||||
/LMSEL./DSEL1 + /LMSEL.TFAD13 + /LMSEL.TFAD12 + /LMSEL.TFAD11
|
||||
*/
|
||||
else if ( LHIEN(math.inslatch) || LLOEN(math.inslatch) )
|
||||
{
|
||||
UINT16 data;
|
||||
@ -587,13 +587,13 @@ static void tx1_update_state(void)
|
||||
else
|
||||
{
|
||||
/*
|
||||
/TMPLD1: /LHIEN
|
||||
/TMPLD2: /LLOEN.!O4 + /LHIEN.O4
|
||||
/TMPLD3: /LLOEN
|
||||
O4: !SD9.!SD10./LMSEL + SD7.SD10./LMSEL +
|
||||
!SD8.SD9./LMSEL + !SD7.SD8./LMSEL +
|
||||
/LMSEL./DSEL1 + /LMSEL.TFAD13 + /LMSEL.TFAD12 + /LMSEL.TFAD11
|
||||
*/
|
||||
/TMPLD1: /LHIEN
|
||||
/TMPLD2: /LLOEN.!O4 + /LHIEN.O4
|
||||
/TMPLD3: /LLOEN
|
||||
O4: !SD9.!SD10./LMSEL + SD7.SD10./LMSEL +
|
||||
!SD8.SD9./LMSEL + !SD7.SD8./LMSEL +
|
||||
/LMSEL./DSEL1 + /LMSEL.TFAD13 + /LMSEL.TFAD12 + /LMSEL.TFAD11
|
||||
*/
|
||||
int dsel = (math.inslatch >> 8) & TX1_DSEL;
|
||||
int tfad = (math.inslatch & 0x1c00) << 1;
|
||||
int sd = math.ppshift;
|
||||
@ -838,10 +838,10 @@ WRITE16_HANDLER( tx1_math_w )
|
||||
{
|
||||
|
||||
/*
|
||||
/TMPLD1: 0
|
||||
/TMPLD2: 0
|
||||
/TMPLD3: 0
|
||||
*/
|
||||
/TMPLD1: 0
|
||||
/TMPLD2: 0
|
||||
/TMPLD3: 0
|
||||
*/
|
||||
math.muxlatch = math.cpulatch;
|
||||
}
|
||||
|
||||
@ -938,7 +938,7 @@ READ16_HANDLER( tx1_spcs_ram_r )
|
||||
}
|
||||
else if ( math.mux == TX1_SEL_PPSEN )
|
||||
{
|
||||
// math.ppshift = math.retval & 0x3fff;
|
||||
// math.ppshift = math.retval & 0x3fff;
|
||||
math.ppshift = math.cpulatch;
|
||||
}
|
||||
else if ( math.mux == TX1_SEL_PSSEN )
|
||||
|
@ -637,8 +637,8 @@ VIDEO_START( scramble )
|
||||
video_start_galaxian_plain(machine);
|
||||
|
||||
/* FIXME: This most probably needs to be adjusted
|
||||
* again when RAW video params are added to scramble
|
||||
*/
|
||||
* again when RAW video params are added to scramble
|
||||
*/
|
||||
tilemap_set_scrolldx(bg_tilemap, 0, 0);
|
||||
|
||||
draw_stars = scramble_draw_stars;
|
||||
|
@ -90,8 +90,8 @@ INTERRUPT_GEN( pce_interrupt )
|
||||
/* Check if we need to draw more just the overscan color */
|
||||
if ( vdc[0].current_segment == STATE_VDW ) {
|
||||
/* 0 - no sprite and background pixels drawn
|
||||
1 - background pixel drawn
|
||||
otherwise is 2 + sprite# */
|
||||
1 - background pixel drawn
|
||||
otherwise is 2 + sprite# */
|
||||
UINT8 drawn[VDC_WPF];
|
||||
/* our line buffer */
|
||||
UINT16 *line_buffer = BITMAP_ADDR16( vce.bmp, vce.current_bitmap_line, 86 );
|
||||
@ -130,8 +130,8 @@ INTERRUPT_GEN( sgx_interrupt )
|
||||
/* Check if we need to draw more just the overscan color */
|
||||
if ( vdc[0].current_segment == STATE_VDW ) {
|
||||
/* 0 - no sprite and background pixels drawn
|
||||
1 - background pixel drawn
|
||||
otherwise is 2 + sprite# */
|
||||
1 - background pixel drawn
|
||||
otherwise is 2 + sprite# */
|
||||
UINT8 drawn[2][512];
|
||||
UINT16 *line_buffer;
|
||||
UINT16 temp_buffer[2][512];
|
||||
@ -190,11 +190,11 @@ INTERRUPT_GEN( sgx_interrupt )
|
||||
}
|
||||
break;
|
||||
case 2: /* BG1 + SP1 => SP1
|
||||
BG0 + SP1 => BG0
|
||||
BG0 + BG1 => BG0
|
||||
BG0 + SP0 => SP0
|
||||
BG1 + SP0 => BG1
|
||||
SP0 + SP1 => SP0 */
|
||||
BG0 + SP1 => BG0
|
||||
BG0 + BG1 => BG0
|
||||
BG0 + SP0 => SP0
|
||||
BG1 + SP0 => BG1
|
||||
SP0 + SP1 => SP0 */
|
||||
if ( drawn[0][i] ) {
|
||||
if ( drawn[0][i] > 1 ) {
|
||||
if ( drawn[1][i] == 1 ) {
|
||||
@ -475,13 +475,13 @@ static void vdc_w( int which, offs_t offset, UINT8 data )
|
||||
break;
|
||||
|
||||
case LENR:
|
||||
// logerror("LENR LSB = %02X\n", data);
|
||||
// logerror("LENR LSB = %02X\n", data);
|
||||
break;
|
||||
case SOUR:
|
||||
// logerror("SOUR LSB = %02X\n", data);
|
||||
// logerror("SOUR LSB = %02X\n", data);
|
||||
break;
|
||||
case DESR:
|
||||
// logerror("DESR LSB = %02X\n", data);
|
||||
// logerror("DESR LSB = %02X\n", data);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@ -522,10 +522,10 @@ static void vdc_w( int which, offs_t offset, UINT8 data )
|
||||
vdc_do_dma( which );
|
||||
break;
|
||||
case SOUR:
|
||||
// logerror("SOUR MSB = %02X\n", data);
|
||||
// logerror("SOUR MSB = %02X\n", data);
|
||||
break;
|
||||
case DESR:
|
||||
// logerror("DESR MSB = %02X\n", data);
|
||||
// logerror("DESR MSB = %02X\n", data);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@ -897,8 +897,8 @@ static void pce_refresh_sprites(int which, int line, UINT8 *drawn, UINT16 *line_
|
||||
}
|
||||
|
||||
/* 32 pixel wide sprites are counted as 2 sprites and the right half
|
||||
is only drawn if there are 2 open slots.
|
||||
*/
|
||||
is only drawn if there are 2 open slots.
|
||||
*/
|
||||
sprites_drawn++;
|
||||
if( sprites_drawn > 16 ) {
|
||||
vdc[which].status |= VDC_OR;
|
||||
|
@ -127,7 +127,7 @@ INLINE void memory_lock_release(void)
|
||||
|
||||
//============================================================
|
||||
// malloc_file_line - debugging version of malloc which
|
||||
// accepts filename and line number
|
||||
// accepts filename and line number
|
||||
//============================================================
|
||||
|
||||
void *malloc_file_line(size_t size, const char *file, int line)
|
||||
@ -201,7 +201,7 @@ void *CLIB_DECL malloc(size_t size)
|
||||
|
||||
//============================================================
|
||||
// calloc_file_line - debugging version of calloc which
|
||||
// accepts filename and line number
|
||||
// accepts filename and line number
|
||||
//============================================================
|
||||
|
||||
void *calloc_file_line(size_t size, size_t count, const char *file, int line)
|
||||
@ -229,7 +229,7 @@ void *CLIB_DECL calloc(size_t size, size_t count)
|
||||
|
||||
//============================================================
|
||||
// _calloc_crt - override for the _calloc_crt() function,
|
||||
// which is called by beginthreadex
|
||||
// which is called by beginthreadex
|
||||
//============================================================
|
||||
|
||||
void *CLIB_DECL _calloc_crt(size_t size, size_t count)
|
||||
@ -240,7 +240,7 @@ void *CLIB_DECL _calloc_crt(size_t size, size_t count)
|
||||
|
||||
//============================================================
|
||||
// realloc_file_line - debugging version of realloc which
|
||||
// accepts filename and line number
|
||||
// accepts filename and line number
|
||||
//============================================================
|
||||
|
||||
void *realloc_file_line(void *memory, size_t size, const char *file, int line)
|
||||
@ -348,7 +348,7 @@ void CLIB_DECL free(void *memory)
|
||||
|
||||
//============================================================
|
||||
// _msize - internal MSVC routine that returns the size of
|
||||
// a memory block
|
||||
// a memory block
|
||||
//============================================================
|
||||
|
||||
size_t CLIB_DECL _msize(void *memory)
|
||||
@ -380,7 +380,7 @@ size_t CLIB_DECL _msize(void *memory)
|
||||
|
||||
//============================================================
|
||||
// check_unfreed_mem - called from the exit path of any
|
||||
// code that wants to check for unfreed memory
|
||||
// code that wants to check for unfreed memory
|
||||
//============================================================
|
||||
|
||||
void check_unfreed_mem(void)
|
||||
@ -413,7 +413,7 @@ void check_unfreed_mem(void)
|
||||
|
||||
//============================================================
|
||||
// allocate_entry - allocate a new entry and link it into
|
||||
// the list of allocated memory
|
||||
// the list of allocated memory
|
||||
//============================================================
|
||||
|
||||
static memory_entry *allocate_entry(void)
|
||||
@ -466,7 +466,7 @@ static memory_entry *allocate_entry(void)
|
||||
|
||||
//============================================================
|
||||
// find_entry - find a memory_object entry in the list that
|
||||
// contains the given pointer
|
||||
// contains the given pointer
|
||||
//============================================================
|
||||
|
||||
static memory_entry *find_entry(void *pointer)
|
||||
|
Loading…
Reference in New Issue
Block a user