diff options
Diffstat (limited to 'src/mame/drivers/f1gp.c')
-rw-r--r-- | src/mame/drivers/f1gp.c | 79 |
1 files changed, 37 insertions, 42 deletions
diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c index c47fb802244..7963b623a6c 100644 --- a/src/mame/drivers/f1gp.c +++ b/src/mame/drivers/f1gp.c @@ -31,71 +31,66 @@ #include "includes/f1gp.h" -static READ16_HANDLER( sharedram_r ) +READ16_MEMBER(f1gp_state::sharedram_r) { - f1gp_state *state = space->machine().driver_data<f1gp_state>(); - return state->m_sharedram[offset]; + return m_sharedram[offset]; } -static WRITE16_HANDLER( sharedram_w ) +WRITE16_MEMBER(f1gp_state::sharedram_w) { - f1gp_state *state = space->machine().driver_data<f1gp_state>(); - COMBINE_DATA(&state->m_sharedram[offset]); + COMBINE_DATA(&m_sharedram[offset]); } -static READ16_HANDLER( extrarom_r ) +READ16_MEMBER(f1gp_state::extrarom_r) { - UINT8 *rom = space->machine().region("user1")->base(); + UINT8 *rom = machine().region("user1")->base(); offset *= 2; return rom[offset] | (rom[offset + 1] << 8); } -static READ16_HANDLER( extrarom2_r ) +READ16_MEMBER(f1gp_state::extrarom2_r) { - UINT8 *rom = space->machine().region("user2")->base(); + UINT8 *rom = machine().region("user2")->base(); offset *= 2; return rom[offset] | (rom[offset + 1] << 8); } -static WRITE8_HANDLER( f1gp_sh_bankswitch_w ) +WRITE8_MEMBER(f1gp_state::f1gp_sh_bankswitch_w) { - memory_set_bank(space->machine(), "bank1", data & 0x01); + memory_set_bank(machine(), "bank1", data & 0x01); } -static WRITE16_HANDLER( sound_command_w ) +WRITE16_MEMBER(f1gp_state::sound_command_w) { - f1gp_state *state = space->machine().driver_data<f1gp_state>(); if (ACCESSING_BITS_0_7) { - state->m_pending_command = 1; + m_pending_command = 1; soundlatch_w(space, offset, data & 0xff); - device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE); + device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE); } } -static READ16_HANDLER( command_pending_r ) +READ16_MEMBER(f1gp_state::command_pending_r) { - f1gp_state *state = space->machine().driver_data<f1gp_state>(); - return (state->m_pending_command ? 0xff : 0); + return (m_pending_command ? 0xff : 0); } -static WRITE8_HANDLER( pending_command_clear_w ) +WRITE8_MEMBER(f1gp_state::pending_command_clear_w) { - f1gp_state *state = space->machine().driver_data<f1gp_state>(); - state->m_pending_command = 0; + m_pending_command = 0; } static ADDRESS_MAP_START( f1gp_cpu1_map, AS_PROGRAM, 16, f1gp_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x100000, 0x2fffff) AM_READ_LEGACY(extrarom_r) - AM_RANGE(0xa00000, 0xbfffff) AM_READ_LEGACY(extrarom2_r) + AM_RANGE(0x100000, 0x2fffff) AM_READ(extrarom_r) + AM_RANGE(0xa00000, 0xbfffff) AM_READ(extrarom2_r) AM_RANGE(0xc00000, 0xc3ffff) AM_READWRITE_LEGACY(f1gp_zoomdata_r, f1gp_zoomdata_w) AM_RANGE(0xd00000, 0xd01fff) AM_READWRITE_LEGACY(f1gp_rozvideoram_r, f1gp_rozvideoram_w) AM_BASE(m_rozvideoram) AM_RANGE(0xd02000, 0xd03fff) AM_READWRITE_LEGACY(f1gp_rozvideoram_r, f1gp_rozvideoram_w) /* mirror */ @@ -106,7 +101,7 @@ static ADDRESS_MAP_START( f1gp_cpu1_map, AS_PROGRAM, 16, f1gp_state ) AM_RANGE(0xf00000, 0xf003ff) AM_RAM AM_BASE(m_spr1vram) // SPR-1 VRAM AM_RANGE(0xf10000, 0xf103ff) AM_RAM AM_BASE(m_spr2vram) // SPR-2 VRAM AM_RANGE(0xff8000, 0xffbfff) AM_RAM // WORK RAM-1 - AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w) AM_BASE(m_sharedram) // DUAL RAM + AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(m_sharedram) // DUAL RAM AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE_LEGACY(f1gp_fgvideoram_w) AM_BASE(m_fgvideoram) // CHARACTER AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) // PALETTE AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS") @@ -115,27 +110,27 @@ static ADDRESS_MAP_START( f1gp_cpu1_map, AS_PROGRAM, 16, f1gp_state ) AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW1") AM_RANGE(0xfff002, 0xfff005) AM_WRITE_LEGACY(f1gp_fgscroll_w) AM_RANGE(0xfff006, 0xfff007) AM_READ_PORT("DSW2") - AM_RANGE(0xfff008, 0xfff009) AM_READ_LEGACY(command_pending_r) - AM_RANGE(0xfff008, 0xfff009) AM_WRITE_LEGACY(sound_command_w) + AM_RANGE(0xfff008, 0xfff009) AM_READ(command_pending_r) + AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w) AM_RANGE(0xfff040, 0xfff05f) AM_DEVWRITE_LEGACY("k053936", k053936_ctrl_w) AM_RANGE(0xfff050, 0xfff051) AM_READ_PORT("DSW3") ADDRESS_MAP_END static ADDRESS_MAP_START( f1gp2_cpu1_map, AS_PROGRAM, 16, f1gp_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x100000, 0x2fffff) AM_READ_LEGACY(extrarom_r) + AM_RANGE(0x100000, 0x2fffff) AM_READ(extrarom_r) AM_RANGE(0xa00000, 0xa07fff) AM_RAM AM_BASE(m_sprcgram) // SPR-1 CG RAM + SPR-2 CG RAM AM_RANGE(0xd00000, 0xd01fff) AM_READWRITE_LEGACY(f1gp_rozvideoram_r, f1gp_rozvideoram_w) AM_BASE(m_rozvideoram) // BACK VRAM AM_RANGE(0xe00000, 0xe00fff) AM_RAM AM_BASE(m_spritelist) // not checked + SPR-1 VRAM + SPR-2 VRAM AM_RANGE(0xff8000, 0xffbfff) AM_RAM // WORK RAM-1 - AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w) AM_BASE(m_sharedram) // DUAL RAM + AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(m_sharedram) // DUAL RAM AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE_LEGACY(f1gp_fgvideoram_w) AM_BASE(m_fgvideoram) // CHARACTER AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) // PALETTE AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS") AM_WRITE_LEGACY(f1gp2_gfxctrl_w) // AM_RANGE(0xfff002, 0xfff003) analog wheel? AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW1") AM_RANGE(0xfff006, 0xfff007) AM_READ_PORT("DSW2") - AM_RANGE(0xfff008, 0xfff009) AM_READWRITE_LEGACY(command_pending_r, sound_command_w) + AM_RANGE(0xfff008, 0xfff009) AM_READWRITE(command_pending_r, sound_command_w) AM_RANGE(0xfff00a, 0xfff00b) AM_READ_PORT("DSW3") AM_RANGE(0xfff020, 0xfff03f) AM_DEVWRITE_LEGACY("k053936", k053936_ctrl_w) AM_RANGE(0xfff044, 0xfff047) AM_WRITE_LEGACY(f1gp_fgscroll_w) @@ -144,7 +139,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( f1gp_cpu2_map, AS_PROGRAM, 16, f1gp_state ) AM_RANGE(0x000000, 0x01ffff) AM_ROM AM_RANGE(0xff8000, 0xffbfff) AM_RAM - AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w) + AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w) ADDRESS_MAP_END static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, f1gp_state ) @@ -155,13 +150,13 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, f1gp_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(f1gp_sh_bankswitch_w) // f1gp - AM_RANGE(0x0c, 0x0c) AM_WRITE_LEGACY(f1gp_sh_bankswitch_w) // f1gp2 - AM_RANGE(0x14, 0x14) AM_READWRITE_LEGACY(soundlatch_r, pending_command_clear_w) + AM_RANGE(0x00, 0x00) AM_WRITE(f1gp_sh_bankswitch_w) // f1gp + AM_RANGE(0x0c, 0x0c) AM_WRITE(f1gp_sh_bankswitch_w) // f1gp2 + AM_RANGE(0x14, 0x14) AM_READ_LEGACY(soundlatch_r) AM_WRITE(pending_command_clear_w) AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) ADDRESS_MAP_END -static WRITE16_HANDLER( f1gpb_misc_w ) +WRITE16_MEMBER(f1gp_state::f1gpb_misc_w) { /* static int old=-1; @@ -171,8 +166,8 @@ static WRITE16_HANDLER( f1gpb_misc_w ) if(old_bank != new_bank && new_bank < 5) { // oki banking - UINT8 *src = space->machine().region("oki")->base() + 0x40000 + 0x10000 * new_bank; - UINT8 *dst = space->machine().region("oki")->base() + 0x30000; + UINT8 *src = machine().region("oki")->base() + 0x40000 + 0x10000 * new_bank; + UINT8 *dst = machine().region("oki")->base() + 0x30000; memcpy(dst, src, 0x10000); old_bank = new_bank; @@ -188,8 +183,8 @@ static WRITE16_HANDLER( f1gpb_misc_w ) static ADDRESS_MAP_START( f1gpb_cpu1_map, AS_PROGRAM, 16, f1gp_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x100000, 0x2fffff) AM_READ_LEGACY(extrarom_r) - AM_RANGE(0xa00000, 0xbfffff) AM_READ_LEGACY(extrarom2_r) + AM_RANGE(0x100000, 0x2fffff) AM_READ(extrarom_r) + AM_RANGE(0xa00000, 0xbfffff) AM_READ(extrarom2_r) AM_RANGE(0x800000, 0x801fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) AM_RANGE(0xc00000, 0xc3ffff) AM_READWRITE_LEGACY(f1gp_zoomdata_r, f1gp_zoomdata_w) AM_RANGE(0xd00000, 0xd01fff) AM_READWRITE_LEGACY(f1gp_rozvideoram_r, f1gp_rozvideoram_w) AM_BASE(m_rozvideoram) @@ -201,7 +196,7 @@ static ADDRESS_MAP_START( f1gpb_cpu1_map, AS_PROGRAM, 16, f1gp_state ) AM_RANGE(0xf00000, 0xf003ff) AM_RAM //unused AM_RANGE(0xf10000, 0xf103ff) AM_RAM //unused AM_RANGE(0xff8000, 0xffbfff) AM_RAM - AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w) AM_BASE(m_sharedram) + AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(m_sharedram) AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE_LEGACY(f1gp_fgvideoram_w) AM_BASE(m_fgvideoram) AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS") @@ -211,7 +206,7 @@ static ADDRESS_MAP_START( f1gpb_cpu1_map, AS_PROGRAM, 16, f1gp_state ) AM_RANGE(0xfff006, 0xfff007) AM_WRITENOP AM_RANGE(0xfff00a, 0xfff00b) AM_RAM AM_BASE(m_fgregs) AM_RANGE(0xfff00e, 0xfff00f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) - AM_RANGE(0xfff00c, 0xfff00d) AM_WRITE_LEGACY(f1gpb_misc_w) + AM_RANGE(0xfff00c, 0xfff00d) AM_WRITE(f1gpb_misc_w) AM_RANGE(0xfff010, 0xfff011) AM_WRITENOP AM_RANGE(0xfff020, 0xfff023) AM_RAM //? AM_RANGE(0xfff050, 0xfff051) AM_READ_PORT("DSW3") @@ -221,7 +216,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( f1gpb_cpu2_map, AS_PROGRAM, 16, f1gp_state ) AM_RANGE(0x000000, 0x01ffff) AM_ROM AM_RANGE(0xff8000, 0xffbfff) AM_RAM - AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w) + AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w) AM_RANGE(0xfff030, 0xfff031) AM_NOP //? ADDRESS_MAP_END |