diff options
Diffstat (limited to 'src/mame/drivers')
-rw-r--r-- | src/mame/drivers/mario.c | 28 | ||||
-rw-r--r-- | src/mame/drivers/midzeus.c | 100 | ||||
-rw-r--r-- | src/mame/drivers/sbrkout.c | 42 | ||||
-rw-r--r-- | src/mame/drivers/toki.c | 6 |
4 files changed, 88 insertions, 88 deletions
diff --git a/src/mame/drivers/mario.c b/src/mame/drivers/mario.c index d64ad6290f6..e00f58a97c2 100644 --- a/src/mame/drivers/mario.c +++ b/src/mame/drivers/mario.c @@ -1,19 +1,19 @@ /*************************************************************************** TODO: - - combine memory maps - - discrete sound - - combine sh_* writes into one routine - -Done: - - fixed mario0110u1gre - - rewrote driver, separate MACHINE_DRIVER(mario_audio) - - palette from schematics - - video timing from schematics - - driver configuration switch Nintendo/Std Monitor - - got rid of COLORTABLE - - clocks as defines in .h - - use XTAL_* + - combine memory maps + - discrete sound + - combine sh_* writes into one routine + +Done: + - fixed mario0110u1gre + - rewrote driver, separate MACHINE_DRIVER(mario_audio) + - palette from schematics + - video timing from schematics + - driver configuration switch Nintendo/Std Monitor + - got rid of COLORTABLE + - clocks as defines in .h + - use XTAL_* Mario Bros memory map (preliminary): @@ -202,7 +202,7 @@ static INPUT_PORTS_START( mario ) PORT_CONFNAME( 0x01, 0x00, "Monitor" ) PORT_CONFSETTING( 0x00, "Nintendo" ) PORT_CONFSETTING( 0x01, "Std 15.72Khz" ) - + INPUT_PORTS_END static INPUT_PORTS_START( marioo ) diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c index 6edfa8dd64e..f8ebfc249b7 100644 --- a/src/mame/drivers/midzeus.c +++ b/src/mame/drivers/midzeus.c @@ -148,8 +148,8 @@ static WRITE32_HANDLER( cmos_protect_w ) /************************************* * - * Timekeeper and ZPRAM access - * (Zeus 2 only) + * Timekeeper and ZPRAM access + * (Zeus 2 only) * *************************************/ @@ -218,16 +218,16 @@ static READ32_HANDLER( bitlatches_r ) /* unknown purpose; two bits are apparently used */ case 1: return bitlatch[offset] | ~3; - + /* CMOS/ZPRAM extra enable latch; only low bit is used */ case 2: return bitlatch[offset] | ~1; - + /* unknown purpose; mk4/invasn/thegrid read at startup; invasn freaks if it is 1 at startup */ /* only low bit is used */ case 3: return bitlatch[offset] | ~1; - + /* ROM bank selection on Zeus 2; two bits are used */ case 5: return bitlatch[offset] | ~3; @@ -238,7 +238,7 @@ static READ32_HANDLER( bitlatches_r ) /* this is the value reported as DISK JR ASIC version in thegrid startup test */ case 6: return 0xa0 | ~0xff; - + /* unknown purpose */ default: logerror("%06X:bitlatches_r(%X)\n", activecpu_get_pc(), offset); @@ -260,7 +260,7 @@ static WRITE32_HANDLER( bitlatches_w ) if (oldval ^ data) logerror("%06X:bitlatches_w(%X) = %X\n", activecpu_get_pc(), offset, data); break; - + /* unknown purpose; crusnexo toggles this between 0 and 1 every 20 frames; thegrid writes 1 */ case 0: if (data != 0 && data != 1) @@ -276,13 +276,13 @@ static WRITE32_HANDLER( bitlatches_w ) /* CMOS/ZPRAM extra enable latch; only low bit is used */ case 2: break; - + /* unknown purpose; invasn writes 2 here at startup */ case 4: if (data != 2) logerror("%06X:bitlatches_w(%X) = %X (unexpected)\n", activecpu_get_pc(), offset, data); break; - + /* ROM bank selection on Zeus 2 */ case 5: memory_set_bank(1, bitlatch[offset] & 3); @@ -326,31 +326,31 @@ static READ32_HANDLER( crusnexo_leds_r ) static WRITE32_HANDLER( crusnexo_leds_w ) { int bit, led; - + switch (offset) { case 0: /* unknown purpose */ break; - + case 1: /* controls lamps */ for (bit = 0; bit < 8; bit++) output_set_lamp_value(bit, (data >> bit) & 1); break; - + case 2: /* sets state of selected LEDs */ - + /* selection bits 4-6 select the 3 7-segment LEDs */ for (bit = 4; bit < 7; bit++) if ((crusnexo_leds_select & (1 << bit)) == 0) output_set_digit_value(bit, ~data & 0xff); - + /* selection bits 0-2 select the tachometer LEDs */ for (bit = 0; bit < 3; bit++) if ((crusnexo_leds_select & (1 << bit)) == 0) for (led = 0; led < 8; led++) output_set_led_value(bit * 8 + led, (~data >> led) & 1); break; - + case 3: /* selects which set of LEDs we are addressing */ crusnexo_leds_select = data; break; @@ -612,40 +612,40 @@ ADDRESS_MAP_END /* - mk4: - - writes to 9D0000: 00000009, FFFFFFFF - reads from 9D0000 - writes to 9D0001: 00000000 - writes to 9D0003: 00000374 - writes to 9D0005: 00000000 - - crusnexo: - - reads from 8A0000 - - writes to 9D0000: 00000000, 00000008, 00000009, FFFFFFFF - reads from 9D0000 - writes to 9D0001: 00000000, 00000004, 00000204 - writes to 9D0003: 00000374 - -- hard coded to $374 at startup - writes to 9D0004: 0000000F - -- hard coded to $F at startup - - writes to 9E0008: 00000000 - - writes to 9E8000: 00810081 - - thegrid: - - writes to 9D0000: 00000008, 00000009, 0000008D - writes to 9D0001: 00000000, 00000004, 00000204 - writes to 9D0003: 00000354 - reads from 9D0003 - writes to 9D0004: FFFFFFFF - writes to 9D0005: 00000000 - - writes to 9E8000: 00810081 + mk4: + + writes to 9D0000: 00000009, FFFFFFFF + reads from 9D0000 + writes to 9D0001: 00000000 + writes to 9D0003: 00000374 + writes to 9D0005: 00000000 + + crusnexo: + + reads from 8A0000 + + writes to 9D0000: 00000000, 00000008, 00000009, FFFFFFFF + reads from 9D0000 + writes to 9D0001: 00000000, 00000004, 00000204 + writes to 9D0003: 00000374 + -- hard coded to $374 at startup + writes to 9D0004: 0000000F + -- hard coded to $F at startup + + writes to 9E0008: 00000000 + + writes to 9E8000: 00810081 + + thegrid: + + writes to 9D0000: 00000008, 00000009, 0000008D + writes to 9D0001: 00000000, 00000004, 00000204 + writes to 9D0003: 00000354 + reads from 9D0003 + writes to 9D0004: FFFFFFFF + writes to 9D0005: 00000000 + + writes to 9E8000: 00810081 */ @@ -950,7 +950,7 @@ static INPUT_PORTS_START( crusnexo ) PORT_START PORT_BIT( 0x0007, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM( keypad_r, "KEYPAD" ) PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED ) - + PORT_START_TAG("KEYPAD") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) /* keypad 3 */ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) /* keypad 1 */ diff --git a/src/mame/drivers/sbrkout.c b/src/mame/drivers/sbrkout.c index bc2b4566953..b6ef4351efb 100644 --- a/src/mame/drivers/sbrkout.c +++ b/src/mame/drivers/sbrkout.c @@ -12,21 +12,21 @@ **************************************************************************** - To do: - - * Merge with Sprint 1 + To do: + + * Merge with Sprint 1 **************************************************************************** - Stephh's notes (based on the games M6502 code and some tests) : + Stephh's notes (based on the games M6502 code and some tests) : - - Each time the game is reset, it is set to "Cavity". - I can't remember if it's the correct behaviour or not, - but the VBLANK interruption is not called in "demo mode". - - You can only select the game after 1st coin is inserted - and before you press BUTTON1 to launch the first ball, - then the VBLANK interruption is no more called. - This means that player 2 plays the same game as player 1. + - Each time the game is reset, it is set to "Cavity". + I can't remember if it's the correct behaviour or not, + but the VBLANK interruption is not called in "demo mode". + - You can only select the game after 1st coin is inserted + and before you press BUTTON1 to launch the first ball, + then the VBLANK interruption is no more called. + This means that player 2 plays the same game as player 1. ***************************************************************************/ @@ -87,7 +87,7 @@ static MACHINE_START( sbrkout ) memory_set_bankptr(1, &videoram[0x380]); scanline_timer = timer_alloc(scanline_callback, NULL); pot_timer = timer_alloc(pot_trigger_callback, NULL); - + state_save_register_global(sync2_value); state_save_register_global_array(pot_mask); state_save_register_global_array(pot_trigger); @@ -110,17 +110,17 @@ static MACHINE_RESET( sbrkout ) static TIMER_CALLBACK( scanline_callback ) { int scanline = param; - + /* force a partial update before anything happens */ video_screen_update_partial(0, scanline); - + /* if this is a rising edge of 16V, assert the CPU interrupt */ if (scanline % 32 == 16) cpunum_set_input_line(0, 0, ASSERT_LINE); - + /* update the DAC state */ DAC_data_w(0, (videoram[0x380 + 0x11] & (scanline >> 2)) ? 255 : 0); - + /* on the VBLANK, read the pot and schedule an interrupt time for it */ if (scanline == machine->screen[0].visarea.max_y + 1) { @@ -152,7 +152,7 @@ static WRITE8_HANDLER( irq_ack_w ) static READ8_HANDLER( switches_r ) { UINT8 result = 0xff; - + /* DIP switches are selected by ADR0+ADR1 if ADR3 == 0 */ if ((offset & 0x0b) == 0x00) result &= (readinputportbytag("DIPS") << 6) | 0x3f; @@ -174,7 +174,7 @@ static READ8_HANDLER( switches_r ) result &= readinputportbytag("SERVE"); if ((offset & 0x17) == 0x07) result &= (readinputportbytag("SELECT") << 6) | 0x7f; - + return result; } @@ -219,9 +219,9 @@ static WRITE8_HANDLER( pot_mask2_w ) *************************************/ /* - The LEDs are turned on and off by two consecutive memory addresses. The - first address turns them off, the second address turns them on. This is - reversed for the Serve LED, which has a NOT on the signal. + The LEDs are turned on and off by two consecutive memory addresses. The + first address turns them off, the second address turns them on. This is + reversed for the Serve LED, which has a NOT on the signal. */ static WRITE8_HANDLER( start_1_led_w ) diff --git a/src/mame/drivers/toki.c b/src/mame/drivers/toki.c index 380a40a6069..66e358a4c93 100644 --- a/src/mame/drivers/toki.c +++ b/src/mame/drivers/toki.c @@ -9,7 +9,7 @@ Coin inputs are handled by the sound CPU, so they don't work with sound disabled. Use the service switch instead. -- -Mametesters bug tokiu056gre - "tokiu: "0000000" is always displayed as the top hiscore during gameplay, +Mametesters bug tokiu056gre - "tokiu: "0000000" is always displayed as the top hiscore during gameplay, regardless of what it actually is. This does not happen in the other Toki sets." Notes by bmcphail@vcmame.net, 1/1/2008 @@ -18,8 +18,8 @@ Toki stores high score at $60008 in main ram (init code at $ADA, compared with p Tokiu stores high score at $60010 instead (init code at $B16, equivalent compare code at $1a204), $60008 is used for different purposes in many parts of the code. -Both games feature a common routine ($1cba2 in toki, $1cbfa in tokiu) that prints the high score to screen, -the problem is that the version in Tokiu has not been adjusted for the different high score location and +Both games feature a common routine ($1cba2 in toki, $1cbfa in tokiu) that prints the high score to screen, +the problem is that the version in Tokiu has not been adjusted for the different high score location and it reads from the $68008 location instead of $680010. From analysing the code I'm certain this is a bug in the original USA version code and not an emulation bug. |