diff options
Diffstat (limited to 'src/mame/drivers/system16.c')
-rw-r--r-- | src/mame/drivers/system16.c | 550 |
1 files changed, 257 insertions, 293 deletions
diff --git a/src/mame/drivers/system16.c b/src/mame/drivers/system16.c index 58f1ccc95b3..60dc6c6f196 100644 --- a/src/mame/drivers/system16.c +++ b/src/mame/drivers/system16.c @@ -108,14 +108,13 @@ static INTERRUPT_GEN( sys16_interrupt ) /***************************************************************************/ -static WRITE16_HANDLER( sound_command_nmi_w ) +WRITE16_MEMBER(segas1x_bootleg_state::sound_command_nmi_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); if (ACCESSING_BITS_0_7) { soundlatch_w(space, 0, data & 0xff); - device_set_input_line(state->m_soundcpu, INPUT_LINE_NMI, PULSE_LINE); + device_set_input_line(m_soundcpu, INPUT_LINE_NMI, PULSE_LINE); } } @@ -128,7 +127,7 @@ static ADDRESS_MAP_START( shinobib_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0x412000, 0x412fff) AM_RAM AM_BASE(m_bg1_tileram) AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0) AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(sound_command_nmi_w) + AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sound_command_nmi_w) AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P2") @@ -147,29 +146,27 @@ ADDRESS_MAP_END /***************************************************************************/ -static WRITE16_HANDLER( sound_command_w ) +WRITE16_MEMBER(segas1x_bootleg_state::sound_command_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); if (ACCESSING_BITS_0_7) { soundlatch_w(space, 0, data & 0xff); - device_set_input_line(state->m_soundcpu, 0, HOLD_LINE); + device_set_input_line(m_soundcpu, 0, HOLD_LINE); } } -static WRITE16_HANDLER( sys16_coinctrl_w ) +WRITE16_MEMBER(segas1x_bootleg_state::sys16_coinctrl_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); if (ACCESSING_BITS_0_7) { - state->m_coinctrl = data & 0xff; - state->m_refreshenable = state->m_coinctrl & 0x20; - set_led_status(space->machine(), 1, state->m_coinctrl & 0x08); - set_led_status(space->machine(), 0, state->m_coinctrl & 0x04); - coin_counter_w(space->machine(), 1, state->m_coinctrl & 0x02); - coin_counter_w(space->machine(), 0, state->m_coinctrl & 0x01); + m_coinctrl = data & 0xff; + m_refreshenable = m_coinctrl & 0x20; + set_led_status(machine(), 1, m_coinctrl & 0x08); + set_led_status(machine(), 0, m_coinctrl & 0x04); + coin_counter_w(machine(), 1, m_coinctrl & 0x02); + coin_counter_w(machine(), 0, m_coinctrl & 0x01); /* bit 6 is also used (1 most of the time; 0 in dduxbl, sdi, wb3; tturf has it normally 1 but 0 after coin insertion) */ /* eswat sets bit 4 */ @@ -186,13 +183,13 @@ static ADDRESS_MAP_START( passshtb_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0) AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(sys16_coinctrl_w) + AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2") AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2") - AM_RANGE(0xc42006, 0xc42007) AM_WRITE_LEGACY(sound_command_w) + AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) AM_RANGE(0xc46000, 0xc46001) AM_WRITE_LEGACY(s16a_bootleg_bgscrolly_w) AM_RANGE(0xc46002, 0xc46003) AM_WRITE_LEGACY(s16a_bootleg_bgscrollx_w) AM_RANGE(0xc46004, 0xc46005) AM_WRITE_LEGACY(s16a_bootleg_fgscrolly_w) @@ -204,60 +201,56 @@ ADDRESS_MAP_END /***************************************************************************/ -static READ16_HANDLER( passht4b_service_r ) +READ16_MEMBER(segas1x_bootleg_state::passht4b_service_r) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - UINT16 val = input_port_read(space->machine(), "SERVICE"); + UINT16 val = input_port_read(machine(), "SERVICE"); - if(!(input_port_read(space->machine(), "P1") & 0x40)) val &= 0xef; - if(!(input_port_read(space->machine(), "P2") & 0x40)) val &= 0xdf; - if(!(input_port_read(space->machine(), "P3") & 0x40)) val &= 0xbf; - if(!(input_port_read(space->machine(), "P4") & 0x40)) val &= 0x7f; + if(!(input_port_read(machine(), "P1") & 0x40)) val &= 0xef; + if(!(input_port_read(machine(), "P2") & 0x40)) val &= 0xdf; + if(!(input_port_read(machine(), "P3") & 0x40)) val &= 0xbf; + if(!(input_port_read(machine(), "P4") & 0x40)) val &= 0x7f; - state->m_passht4b_io3_val = (input_port_read(space->machine(), "P1") << 4) | (input_port_read(space->machine(), "P3") & 0xf); - state->m_passht4b_io2_val = (input_port_read(space->machine(), "P2") << 4) | (input_port_read(space->machine(), "P4") & 0xf); + m_passht4b_io3_val = (input_port_read(machine(), "P1") << 4) | (input_port_read(machine(), "P3") & 0xf); + m_passht4b_io2_val = (input_port_read(machine(), "P2") << 4) | (input_port_read(machine(), "P4") & 0xf); - state->m_passht4b_io1_val = 0xff; + m_passht4b_io1_val = 0xff; // player 1 buttons - if(!(input_port_read(space->machine(), "P1") & 0x10)) state->m_passht4b_io1_val &= 0xfe; - if(!(input_port_read(space->machine(), "P1") & 0x20)) state->m_passht4b_io1_val &= 0xfd; - if(!(input_port_read(space->machine(), "P1") & 0x80)) state->m_passht4b_io1_val &= 0xfc; + if(!(input_port_read(machine(), "P1") & 0x10)) m_passht4b_io1_val &= 0xfe; + if(!(input_port_read(machine(), "P1") & 0x20)) m_passht4b_io1_val &= 0xfd; + if(!(input_port_read(machine(), "P1") & 0x80)) m_passht4b_io1_val &= 0xfc; // player 2 buttons - if(!(input_port_read(space->machine(), "P2") & 0x10)) state->m_passht4b_io1_val &= 0xfb; - if(!(input_port_read(space->machine(), "P2") & 0x20)) state->m_passht4b_io1_val &= 0xf7; - if(!(input_port_read(space->machine(), "P2") & 0x80)) state->m_passht4b_io1_val &= 0xf3; + if(!(input_port_read(machine(), "P2") & 0x10)) m_passht4b_io1_val &= 0xfb; + if(!(input_port_read(machine(), "P2") & 0x20)) m_passht4b_io1_val &= 0xf7; + if(!(input_port_read(machine(), "P2") & 0x80)) m_passht4b_io1_val &= 0xf3; // player 3 buttons - if(!(input_port_read(space->machine(), "P3") & 0x10)) state->m_passht4b_io1_val &= 0xef; - if(!(input_port_read(space->machine(), "P3") & 0x20)) state->m_passht4b_io1_val &= 0xdf; - if(!(input_port_read(space->machine(), "P3") & 0x80)) state->m_passht4b_io1_val &= 0xcf; + if(!(input_port_read(machine(), "P3") & 0x10)) m_passht4b_io1_val &= 0xef; + if(!(input_port_read(machine(), "P3") & 0x20)) m_passht4b_io1_val &= 0xdf; + if(!(input_port_read(machine(), "P3") & 0x80)) m_passht4b_io1_val &= 0xcf; // player 4 buttons - if(!(input_port_read(space->machine(), "P4") & 0x10)) state->m_passht4b_io1_val &= 0xbf; - if(!(input_port_read(space->machine(), "P4") & 0x20)) state->m_passht4b_io1_val &= 0x7f; - if(!(input_port_read(space->machine(), "P4") & 0x80)) state->m_passht4b_io1_val &= 0x3f; + if(!(input_port_read(machine(), "P4") & 0x10)) m_passht4b_io1_val &= 0xbf; + if(!(input_port_read(machine(), "P4") & 0x20)) m_passht4b_io1_val &= 0x7f; + if(!(input_port_read(machine(), "P4") & 0x80)) m_passht4b_io1_val &= 0x3f; return val; } -static READ16_HANDLER( passht4b_io1_r ) +READ16_MEMBER(segas1x_bootleg_state::passht4b_io1_r) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - return state->m_passht4b_io1_val; + return m_passht4b_io1_val; } -static READ16_HANDLER( passht4b_io2_r ) +READ16_MEMBER(segas1x_bootleg_state::passht4b_io2_r) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - return state->m_passht4b_io2_val; + return m_passht4b_io2_val; } -static READ16_HANDLER( passht4b_io3_r ) +READ16_MEMBER(segas1x_bootleg_state::passht4b_io3_r) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - return state->m_passht4b_io3_val; + return m_passht4b_io3_val; } static ADDRESS_MAP_START( passht4b_map, AS_PROGRAM, 16, segas1x_bootleg_state ) @@ -268,18 +261,18 @@ static ADDRESS_MAP_START( passht4b_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0x410000, 0x410fff) AM_RAM AM_BASE(m_textram) AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0) AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram) - AM_RANGE(0xc41000, 0xc41001) AM_READ_LEGACY(passht4b_service_r) - AM_RANGE(0xc41002, 0xc41003) AM_READ_LEGACY(passht4b_io1_r) - AM_RANGE(0xc41004, 0xc41005) AM_READ_LEGACY(passht4b_io2_r) - AM_RANGE(0xc41006, 0xc41007) AM_READ_LEGACY(passht4b_io3_r) + AM_RANGE(0xc41000, 0xc41001) AM_READ(passht4b_service_r) + AM_RANGE(0xc41002, 0xc41003) AM_READ(passht4b_io1_r) + AM_RANGE(0xc41004, 0xc41005) AM_READ(passht4b_io2_r) + AM_RANGE(0xc41006, 0xc41007) AM_READ(passht4b_io3_r) AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2") AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") - AM_RANGE(0xc42006, 0xc42007) AM_WRITE_LEGACY(sound_command_w) + AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) AM_RANGE(0xc43000, 0xc43001) AM_READ_PORT("P1") // test mode only AM_RANGE(0xc43002, 0xc43003) AM_READ_PORT("P2") AM_RANGE(0xc43004, 0xc43005) AM_READ_PORT("P3") AM_RANGE(0xc43006, 0xc43007) AM_READ_PORT("P4") - AM_RANGE(0xc4600a, 0xc4600b) AM_WRITE_LEGACY(sys16_coinctrl_w) /* coin counter doesn't work */ + AM_RANGE(0xc4600a, 0xc4600b) AM_WRITE(sys16_coinctrl_w) /* coin counter doesn't work */ AM_RANGE(0xc46000, 0xc46001) AM_WRITE_LEGACY(s16a_bootleg_bgscrolly_w) AM_RANGE(0xc46002, 0xc46003) AM_WRITE_LEGACY(s16a_bootleg_bgscrollx_w) AM_RANGE(0xc46004, 0xc46005) AM_WRITE_LEGACY(s16a_bootleg_fgscrolly_w) @@ -291,19 +284,18 @@ ADDRESS_MAP_END /***************************************************************************/ -static WRITE16_HANDLER( sys16_tilebank_w ) +WRITE16_MEMBER(segas1x_bootleg_state::sys16_tilebank_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); if (ACCESSING_BITS_0_7) { switch (offset & 1) { case 0: - state->m_tile_bank0 = data & 0x0f; + m_tile_bank0 = data & 0x0f; break; case 1: - state->m_tile_bank1 = data & 0x0f; + m_tile_bank1 = data & 0x0f; break; } } @@ -311,20 +303,20 @@ static WRITE16_HANDLER( sys16_tilebank_w ) static ADDRESS_MAP_START( wb3bbl_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE_LEGACY(sys16_tilebank_w) + AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE(sys16_tilebank_w) AM_RANGE(0x400000, 0x407fff) AM_RAM // tilemap ram on the original, used as a buffer on the bootlegs AM_RANGE(0x409000, 0x40afff) AM_RAM AM_BASE(m_bg0_tileram) AM_RANGE(0x40a000, 0x40bfff) AM_RAM AM_BASE(m_bg1_tileram) AM_RANGE(0x410000, 0x410fff) AM_RAM AM_BASE(m_textram) AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0) AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(sys16_coinctrl_w) + AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2") AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2") AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") - AM_RANGE(0xc42006, 0xc42007) AM_WRITE_LEGACY(sound_command_w) + AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) AM_RANGE(0xC44000, 0xC44001) AM_WRITENOP AM_RANGE(0xc46000, 0xc46001) AM_WRITE_LEGACY(s16a_bootleg_bgscrolly_w) AM_RANGE(0xc46002, 0xc46003) AM_WRITE_LEGACY(s16a_bootleg_bgscrollx_w) @@ -364,10 +356,9 @@ ADDRESS_MAP_END There seems to be more data in the high bits of the ROM bank control word which may be related. ***************************************************************************/ -static WRITE8_HANDLER( tturfbl_msm5205_data_w ) +WRITE8_MEMBER(segas1x_bootleg_state::tturfbl_msm5205_data_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - state->m_sample_buffer = data; + m_sample_buffer = data; } static void tturfbl_msm5205_callback( device_t *device ) @@ -388,53 +379,51 @@ static const msm5205_interface tturfbl_msm5205_interface = }; -static READ8_HANDLER( tturfbl_soundbank_r ) +READ8_MEMBER(segas1x_bootleg_state::tturfbl_soundbank_r) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - if (state->m_soundbank_ptr) - return state->m_soundbank_ptr[offset & 0x3fff]; + if (m_soundbank_ptr) + return m_soundbank_ptr[offset & 0x3fff]; return 0x80; } -static WRITE8_HANDLER( tturfbl_soundbank_w ) +WRITE8_MEMBER(segas1x_bootleg_state::tturfbl_soundbank_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - UINT8 *mem = space->machine().region("soundcpu")->base(); + UINT8 *mem = machine().region("soundcpu")->base(); switch(data) { case 0: - state->m_soundbank_ptr = &mem[0x18000]; /* tt014d68 8000-bfff */ + m_soundbank_ptr = &mem[0x18000]; /* tt014d68 8000-bfff */ break; case 1: - state->m_soundbank_ptr = &mem[0x1c000]; /* tt014d68 c000-ffff */ + m_soundbank_ptr = &mem[0x1c000]; /* tt014d68 c000-ffff */ break; case 2: - state->m_soundbank_ptr = &mem[0x20000]; /* tt0246ff 0000-3fff */ + m_soundbank_ptr = &mem[0x20000]; /* tt0246ff 0000-3fff */ break; case 3: - state->m_soundbank_ptr = &mem[0x24000]; /* tt0246ff 4000-7fff */ + m_soundbank_ptr = &mem[0x24000]; /* tt0246ff 4000-7fff */ break; case 4: - state->m_soundbank_ptr = &mem[0x28000]; /* tt0246ff 8000-bfff */ + m_soundbank_ptr = &mem[0x28000]; /* tt0246ff 8000-bfff */ break; case 8: - state->m_soundbank_ptr = mem; + m_soundbank_ptr = mem; break; default: - state->m_soundbank_ptr = NULL; - logerror("Invalid bank setting %02X (%04X)\n", data, cpu_get_pc(&space->device())); + m_soundbank_ptr = NULL; + logerror("Invalid bank setting %02X (%04X)\n", data, cpu_get_pc(&space.device())); break; } } static ADDRESS_MAP_START(tturfbl_sound_map, AS_PROGRAM, 8, segas1x_bootleg_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0xbfff) AM_READ_LEGACY(tturfbl_soundbank_r) - AM_RANGE(0xe000, 0xe000) AM_WRITE_LEGACY(tturfbl_soundbank_w) + AM_RANGE(0x8000, 0xbfff) AM_READ(tturfbl_soundbank_r) + AM_RANGE(0xe000, 0xe000) AM_WRITE(tturfbl_soundbank_w) AM_RANGE(0xe800, 0xe800) AM_READ_LEGACY(soundlatch_r) - AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(tturfbl_msm5205_data_w) + AM_RANGE(0xf000, 0xf000) AM_WRITE(tturfbl_msm5205_data_w) AM_RANGE(0xf800, 0xffff) AM_RAM ADDRESS_MAP_END @@ -524,13 +513,13 @@ static ADDRESS_MAP_START( bayroute_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0x700000, 0x70ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram) AM_RANGE(0x710000, 0x710fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram) AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram) - AM_RANGE(0x900000, 0x900001) AM_WRITE_LEGACY(sys16_coinctrl_w) + AM_RANGE(0x900000, 0x900001) AM_WRITE(sys16_coinctrl_w) AM_RANGE(0x901002, 0x901003) AM_READ_PORT("P1") AM_RANGE(0x901006, 0x901007) AM_READ_PORT("P2") AM_RANGE(0x901000, 0x901001) AM_READ_PORT("SERVICE") AM_RANGE(0x902002, 0x902003) AM_READ_PORT("DSW1") AM_RANGE(0x902000, 0x902001) AM_READ_PORT("DSW2") - AM_RANGE(0xff0006, 0xff0007) AM_WRITE_LEGACY(sound_command_w) + AM_RANGE(0xff0006, 0xff0007) AM_WRITE(sound_command_w) AM_RANGE(0xff0020, 0xff003f) AM_WRITENOP // config regs ADDRESS_MAP_END #endif @@ -549,65 +538,60 @@ ADDRESS_MAP_END /***************************************************************************/ -static WRITE16_HANDLER( s16bl_bgpage_w ) +WRITE16_MEMBER(segas1x_bootleg_state::s16bl_bgpage_w) { - set_bg_page(space->machine(), data); + set_bg_page(machine(), data); } -static WRITE16_HANDLER( s16bl_fgpage_w ) +WRITE16_MEMBER(segas1x_bootleg_state::s16bl_fgpage_w) { - set_fg_page(space->machine(), data); + set_fg_page(machine(), data); } -static WRITE16_HANDLER( s16bl_fgscrollx_bank_w ) +WRITE16_MEMBER(segas1x_bootleg_state::s16bl_fgscrollx_bank_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); int scroll = data & 0x1ff; int bank = (data & 0xc000) >> 14; scroll += 0x200; - set_tile_bank(space->machine(), bank); + set_tile_bank(machine(), bank); scroll += 3; // so that the character portraits in attract mode are properly aligned (alighnment on character select no longer matches original tho?) - state->m_fg_scrollx = -scroll; + m_fg_scrollx = -scroll; } -static WRITE16_HANDLER( s16bl_fgscrollx_w ) +WRITE16_MEMBER(segas1x_bootleg_state::s16bl_fgscrollx_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); int scroll = data & 0x1ff; scroll += 0x200; scroll += 3; - state->m_fg_scrollx = -scroll; + m_fg_scrollx = -scroll; } -static WRITE16_HANDLER( s16bl_fgscrolly_w ) +WRITE16_MEMBER(segas1x_bootleg_state::s16bl_fgscrolly_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); int scroll = data & 0xff; - state->m_fg_scrolly = scroll; + m_fg_scrolly = scroll; } -static WRITE16_HANDLER( s16bl_bgscrollx_w ) +WRITE16_MEMBER(segas1x_bootleg_state::s16bl_bgscrollx_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); int scroll = data & 0x1ff; scroll+= 0x200; scroll+= 1; // so that the background fo the select screen is properly aligned - state->m_bg_scrollx = -scroll; + m_bg_scrollx = -scroll; } -static WRITE16_HANDLER( s16bl_bgscrolly_w ) +WRITE16_MEMBER(segas1x_bootleg_state::s16bl_bgscrolly_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); int scroll = data & 0xff; - state->m_bg_scrolly = scroll; + m_bg_scrolly = scroll; } @@ -615,15 +599,15 @@ static ADDRESS_MAP_START( goldnaxeb1_map, AS_PROGRAM, 16, segas1x_bootleg_state AM_RANGE(0x000000, 0x0bffff) AM_ROM AM_RANGE(0x100000, 0x10ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram) AM_RANGE(0x110000, 0x110fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram) - AM_RANGE(0x118000, 0x118001) AM_WRITE_LEGACY(s16bl_fgscrolly_w) - AM_RANGE(0x118008, 0x118009) AM_WRITE_LEGACY(s16bl_fgscrollx_bank_w) // and tile bank - AM_RANGE(0x118010, 0x118011) AM_WRITE_LEGACY(s16bl_bgscrolly_w) - AM_RANGE(0x118018, 0x118019) AM_WRITE_LEGACY(s16bl_bgscrollx_w) - AM_RANGE(0x118020, 0x118021) AM_WRITE_LEGACY(s16bl_fgpage_w) - AM_RANGE(0x118028, 0x118029) AM_WRITE_LEGACY(s16bl_bgpage_w) + AM_RANGE(0x118000, 0x118001) AM_WRITE(s16bl_fgscrolly_w) + AM_RANGE(0x118008, 0x118009) AM_WRITE(s16bl_fgscrollx_bank_w) // and tile bank + AM_RANGE(0x118010, 0x118011) AM_WRITE(s16bl_bgscrolly_w) + AM_RANGE(0x118018, 0x118019) AM_WRITE(s16bl_bgscrollx_w) + AM_RANGE(0x118020, 0x118021) AM_WRITE(s16bl_fgpage_w) + AM_RANGE(0x118028, 0x118029) AM_WRITE(s16bl_bgpage_w) AM_RANGE(0x140000, 0x143fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram) AM_RANGE(0x200000, 0x200fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(sys16_coinctrl_w) + AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P2") AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") @@ -642,14 +626,14 @@ static ADDRESS_MAP_START( bayrouteb1_map, AS_PROGRAM, 16, segas1x_bootleg_state AM_RANGE(0x600000, 0x600fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0) AM_RANGE(0x700000, 0x70ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram) AM_RANGE(0x710000, 0x710fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram) - AM_RANGE(0x718000, 0x718001) AM_WRITE_LEGACY(s16bl_fgscrolly_w) - AM_RANGE(0x718008, 0x718009) AM_WRITE_LEGACY(s16bl_fgscrollx_bank_w) // and tile bank - AM_RANGE(0x718010, 0x718011) AM_WRITE_LEGACY(s16bl_bgscrolly_w) - AM_RANGE(0x718018, 0x718019) AM_WRITE_LEGACY(s16bl_bgscrollx_w) - AM_RANGE(0x718020, 0x718021) AM_WRITE_LEGACY(s16bl_fgpage_w) - AM_RANGE(0x718028, 0x718029) AM_WRITE_LEGACY(s16bl_bgpage_w) + AM_RANGE(0x718000, 0x718001) AM_WRITE(s16bl_fgscrolly_w) + AM_RANGE(0x718008, 0x718009) AM_WRITE(s16bl_fgscrollx_bank_w) // and tile bank + AM_RANGE(0x718010, 0x718011) AM_WRITE(s16bl_bgscrolly_w) + AM_RANGE(0x718018, 0x718019) AM_WRITE(s16bl_bgscrollx_w) + AM_RANGE(0x718020, 0x718021) AM_WRITE(s16bl_fgpage_w) + AM_RANGE(0x718028, 0x718029) AM_WRITE(s16bl_bgpage_w) AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram) - AM_RANGE(0x901000, 0x901001) AM_READ_PORT("SERVICE") AM_WRITE_LEGACY(sys16_coinctrl_w) + AM_RANGE(0x901000, 0x901001) AM_READ_PORT("SERVICE") AM_WRITE(sys16_coinctrl_w) AM_RANGE(0x901002, 0x901003) AM_READ_PORT("P1") AM_RANGE(0x901006, 0x901007) AM_READ_PORT("P2") AM_RANGE(0x902000, 0x902001) AM_READ_PORT("DSW2") @@ -677,36 +661,32 @@ static void datsu_set_pages( running_machine &machine ) set_bg_page(machine, page); } -static WRITE16_HANDLER( datsu_page0_w ) +WRITE16_MEMBER(segas1x_bootleg_state::datsu_page0_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - COMBINE_DATA(&state->m_datsu_page[0]); - datsu_set_pages(space->machine()); + COMBINE_DATA(&m_datsu_page[0]); + datsu_set_pages(machine()); } -static WRITE16_HANDLER( datsu_page1_w ) +WRITE16_MEMBER(segas1x_bootleg_state::datsu_page1_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - COMBINE_DATA(&state->m_datsu_page[1]); - datsu_set_pages(space->machine()); + COMBINE_DATA(&m_datsu_page[1]); + datsu_set_pages(machine()); } -static WRITE16_HANDLER( datsu_page2_w ) +WRITE16_MEMBER(segas1x_bootleg_state::datsu_page2_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - COMBINE_DATA(&state->m_datsu_page[2]); - datsu_set_pages(space->machine()); + COMBINE_DATA(&m_datsu_page[2]); + datsu_set_pages(machine()); } -static WRITE16_HANDLER( datsu_page3_w ) +WRITE16_MEMBER(segas1x_bootleg_state::datsu_page3_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - COMBINE_DATA(&state->m_datsu_page[3]); - datsu_set_pages(space->machine()); + COMBINE_DATA(&m_datsu_page[3]); + datsu_set_pages(machine()); } static ADDRESS_MAP_START( bayrouteb2_map, AS_PROGRAM, 16, segas1x_bootleg_state ) @@ -715,121 +695,115 @@ static ADDRESS_MAP_START( bayrouteb2_map, AS_PROGRAM, 16, segas1x_bootleg_state AM_RANGE(0x600000, 0x600fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0) AM_RANGE(0x700000, 0x70ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram) AM_RANGE(0x710000, 0x710fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram) - AM_RANGE(0x718000, 0x718001) AM_WRITE_LEGACY(s16bl_fgscrolly_w) - AM_RANGE(0x718008, 0x718009) AM_WRITE_LEGACY(s16bl_fgscrollx_bank_w) // and tile bank - AM_RANGE(0x718010, 0x718011) AM_WRITE_LEGACY(s16bl_bgscrolly_w) - AM_RANGE(0x718018, 0x718019) AM_WRITE_LEGACY(s16bl_bgscrollx_w) - AM_RANGE(0x718020, 0x718021) AM_WRITE_LEGACY(datsu_page0_w) - AM_RANGE(0x718022, 0x718023) AM_WRITE_LEGACY(datsu_page1_w) - AM_RANGE(0x718024, 0x718025) AM_WRITE_LEGACY(datsu_page2_w) - AM_RANGE(0x718026, 0x718027) AM_WRITE_LEGACY(datsu_page3_w) + AM_RANGE(0x718000, 0x718001) AM_WRITE(s16bl_fgscrolly_w) + AM_RANGE(0x718008, 0x718009) AM_WRITE(s16bl_fgscrollx_bank_w) // and tile bank + AM_RANGE(0x718010, 0x718011) AM_WRITE(s16bl_bgscrolly_w) + AM_RANGE(0x718018, 0x718019) AM_WRITE(s16bl_bgscrollx_w) + AM_RANGE(0x718020, 0x718021) AM_WRITE(datsu_page0_w) + AM_RANGE(0x718022, 0x718023) AM_WRITE(datsu_page1_w) + AM_RANGE(0x718024, 0x718025) AM_WRITE(datsu_page2_w) + AM_RANGE(0x718026, 0x718027) AM_WRITE(datsu_page3_w) AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram) AM_RANGE(0x900000, 0x900001) AM_READ_PORT("DSW1") AM_RANGE(0x900002, 0x900003) AM_READ_PORT("DSW2") - AM_RANGE(0x900006, 0x900007) AM_WRITE_LEGACY(sound_command_w) - AM_RANGE(0x901000, 0x901001) AM_READ_PORT("SERVICE") AM_WRITE_LEGACY(sys16_coinctrl_w) + AM_RANGE(0x900006, 0x900007) AM_WRITE(sound_command_w) + AM_RANGE(0x901000, 0x901001) AM_READ_PORT("SERVICE") AM_WRITE(sys16_coinctrl_w) AM_RANGE(0x901002, 0x901003) AM_READ_PORT("P1") AM_RANGE(0x901006, 0x901007) AM_READ_PORT("P2") ADDRESS_MAP_END static ADDRESS_MAP_START( dduxbl_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0x000000, 0x0bffff) AM_ROM - AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE_LEGACY(sys16_tilebank_w) + AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE(sys16_tilebank_w) AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram) AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram) AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0) AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(sys16_coinctrl_w) - AM_RANGE(0xc40006, 0xc40007) AM_WRITE_LEGACY(sound_command_w) + AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) + AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_w) AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2") AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2") - AM_RANGE(0xC46000, 0xC46001) AM_WRITE_LEGACY(s16bl_fgscrolly_w) - AM_RANGE(0xC46008, 0xC46009) AM_WRITE_LEGACY(s16bl_fgscrollx_w) - AM_RANGE(0xC46010, 0xC46011) AM_WRITE_LEGACY(s16bl_bgscrolly_w) - AM_RANGE(0xC46018, 0xC46019) AM_WRITE_LEGACY(s16bl_bgscrollx_w) - AM_RANGE(0xC46020, 0xC46021) AM_WRITE_LEGACY(datsu_page0_w) - AM_RANGE(0xC46022, 0xC46023) AM_WRITE_LEGACY(datsu_page1_w) - AM_RANGE(0xC46024, 0xC46025) AM_WRITE_LEGACY(datsu_page2_w) - AM_RANGE(0xC46026, 0xC46027) AM_WRITE_LEGACY(datsu_page3_w) + AM_RANGE(0xC46000, 0xC46001) AM_WRITE(s16bl_fgscrolly_w) + AM_RANGE(0xC46008, 0xC46009) AM_WRITE(s16bl_fgscrollx_w) + AM_RANGE(0xC46010, 0xC46011) AM_WRITE(s16bl_bgscrolly_w) + AM_RANGE(0xC46018, 0xC46019) AM_WRITE(s16bl_bgscrollx_w) + AM_RANGE(0xC46020, 0xC46021) AM_WRITE(datsu_page0_w) + AM_RANGE(0xC46022, 0xC46023) AM_WRITE(datsu_page1_w) + AM_RANGE(0xC46024, 0xC46025) AM_WRITE(datsu_page2_w) + AM_RANGE(0xC46026, 0xC46027) AM_WRITE(datsu_page3_w) AM_RANGE(0xffc000, 0xffffff) AM_RAM // work ram ADDRESS_MAP_END -static WRITE16_HANDLER( goldnaxeb2_fgscrollx_w ) +WRITE16_MEMBER(segas1x_bootleg_state::goldnaxeb2_fgscrollx_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); int scroll = data & 0x1ff; int bank = (data & 0xc000) >> 14; - set_tile_bank(space->machine(), bank); + set_tile_bank(machine(), bank); scroll += 0x1f6; scroll &= 0x3ff; - state->m_fg_scrollx = -scroll; + m_fg_scrollx = -scroll; } -static WRITE16_HANDLER( goldnaxeb2_bgscrollx_w ) +WRITE16_MEMBER(segas1x_bootleg_state::goldnaxeb2_bgscrollx_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); int scroll = data & 0x1ff; scroll += 0x1f4; scroll &= 0x3ff; - state->m_bg_scrollx = -scroll; + m_bg_scrollx = -scroll; } -static WRITE16_HANDLER( goldnaxeb2_fgscrolly_w ) +WRITE16_MEMBER(segas1x_bootleg_state::goldnaxeb2_fgscrolly_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); int scroll = data & 0xff; scroll += 0x1; - state->m_fg_scrolly = scroll; + m_fg_scrolly = scroll; } -static WRITE16_HANDLER( goldnaxeb2_bgscrolly_w ) +WRITE16_MEMBER(segas1x_bootleg_state::goldnaxeb2_bgscrolly_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); int scroll = data & 0xff; scroll += 0x1; - state->m_bg_scrolly = scroll; + m_bg_scrolly = scroll; } -static WRITE16_HANDLER( goldnaxeb2_fgpage_w ) +WRITE16_MEMBER(segas1x_bootleg_state::goldnaxeb2_fgpage_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); UINT16 page; - COMBINE_DATA(&state->m_goldnaxeb2_fgpage[offset]); + COMBINE_DATA(&m_goldnaxeb2_fgpage[offset]); - page = ((state->m_goldnaxeb2_fgpage[1] & 0xf) << 0) | - ((state->m_goldnaxeb2_fgpage[0] & 0xf) << 4) | - ((state->m_goldnaxeb2_fgpage[3] & 0xf) << 8) | - ((state->m_goldnaxeb2_fgpage[2] & 0xf) << 12); + page = ((m_goldnaxeb2_fgpage[1] & 0xf) << 0) | + ((m_goldnaxeb2_fgpage[0] & 0xf) << 4) | + ((m_goldnaxeb2_fgpage[3] & 0xf) << 8) | + ((m_goldnaxeb2_fgpage[2] & 0xf) << 12); - set_fg_page(space->machine(), page ^ 0xffff); + set_fg_page(machine(), page ^ 0xffff); } -static WRITE16_HANDLER( goldnaxeb2_bgpage_w ) +WRITE16_MEMBER(segas1x_bootleg_state::goldnaxeb2_bgpage_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); UINT16 page; - COMBINE_DATA(&state->m_goldnaxeb2_bgpage[offset]); + COMBINE_DATA(&m_goldnaxeb2_bgpage[offset]); - page = ((state->m_goldnaxeb2_bgpage[1] & 0xf) << 0) | - ((state->m_goldnaxeb2_bgpage[0] & 0xf) << 4) | - ((state->m_goldnaxeb2_bgpage[3] & 0xf) << 8) | - ((state->m_goldnaxeb2_bgpage[2] & 0xf) << 12); + page = ((m_goldnaxeb2_bgpage[1] & 0xf) << 0) | + ((m_goldnaxeb2_bgpage[0] & 0xf) << 4) | + ((m_goldnaxeb2_bgpage[3] & 0xf) << 8) | + ((m_goldnaxeb2_bgpage[2] & 0xf) << 12); - set_bg_page(space->machine(), page ^ 0xffff); + set_bg_page(machine(), page ^ 0xffff); } static ADDRESS_MAP_START( goldnaxeb2_map, AS_PROGRAM, 16, segas1x_bootleg_state ) @@ -844,12 +818,12 @@ static ADDRESS_MAP_START( goldnaxeb2_map, AS_PROGRAM, 16, segas1x_bootleg_state AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2") AM_RANGE(0xc43000, 0xc43001) AM_WRITENOP - AM_RANGE(0xc44000, 0xc44001) AM_WRITE_LEGACY(goldnaxeb2_fgscrolly_w) - AM_RANGE(0xc44008, 0xc44009) AM_WRITE_LEGACY(goldnaxeb2_fgscrollx_w) // and tile bank - AM_RANGE(0xc44010, 0xc44011) AM_WRITE_LEGACY(goldnaxeb2_bgscrolly_w) - AM_RANGE(0xc44018, 0xc44019) AM_WRITE_LEGACY(goldnaxeb2_bgscrollx_w) - AM_RANGE(0xc44020, 0xc44027) AM_WRITE_LEGACY(goldnaxeb2_bgpage_w) AM_BASE(m_goldnaxeb2_bgpage) - AM_RANGE(0xc44060, 0xc44067) AM_WRITE_LEGACY(goldnaxeb2_fgpage_w) AM_BASE(m_goldnaxeb2_fgpage) + AM_RANGE(0xc44000, 0xc44001) AM_WRITE(goldnaxeb2_fgscrolly_w) + AM_RANGE(0xc44008, 0xc44009) AM_WRITE(goldnaxeb2_fgscrollx_w) // and tile bank + AM_RANGE(0xc44010, 0xc44011) AM_WRITE(goldnaxeb2_bgscrolly_w) + AM_RANGE(0xc44018, 0xc44019) AM_WRITE(goldnaxeb2_bgscrollx_w) + AM_RANGE(0xc44020, 0xc44027) AM_WRITE(goldnaxeb2_bgpage_w) AM_BASE(m_goldnaxeb2_bgpage) + AM_RANGE(0xc44060, 0xc44067) AM_WRITE(goldnaxeb2_fgpage_w) AM_BASE(m_goldnaxeb2_fgpage) AM_RANGE(0xc46000, 0xc46001) AM_WRITENOP AM_RANGE(0xc43034, 0xc43035) AM_WRITENOP AM_RANGE(0xfe0006, 0xfe0007) AM_WRITENOP @@ -867,7 +841,7 @@ static ADDRESS_MAP_START( fpointbl_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram) AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0) - AM_RANGE(0x600006, 0x600007) AM_WRITE_LEGACY(sound_command_w) + AM_RANGE(0x600006, 0x600007) AM_WRITE(sound_command_w) AM_RANGE(0x601000, 0x601001) AM_READ_PORT("SERVICE") AM_RANGE(0x601002, 0x601003) AM_READ_PORT("P1") AM_RANGE(0x601004, 0x601005) AM_READ_PORT("P2") @@ -877,53 +851,52 @@ static ADDRESS_MAP_START( fpointbl_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram) AM_RANGE(0x843000, 0x843001) AM_WRITENOP - AM_RANGE(0xC46000, 0xC46001) AM_WRITE_LEGACY(s16bl_fgscrolly_w) - AM_RANGE(0xC46008, 0xC46009) AM_WRITE_LEGACY(s16bl_fgscrollx_w) - AM_RANGE(0xC46010, 0xC46011) AM_WRITE_LEGACY(s16bl_bgscrolly_w) - AM_RANGE(0xC46018, 0xC46019) AM_WRITE_LEGACY(s16bl_bgscrollx_w) + AM_RANGE(0xC46000, 0xC46001) AM_WRITE(s16bl_fgscrolly_w) + AM_RANGE(0xC46008, 0xC46009) AM_WRITE(s16bl_fgscrollx_w) + AM_RANGE(0xC46010, 0xC46011) AM_WRITE(s16bl_bgscrolly_w) + AM_RANGE(0xC46018, 0xC46019) AM_WRITE(s16bl_bgscrollx_w) - AM_RANGE(0xC46020, 0xC46021) AM_WRITE_LEGACY(datsu_page0_w) - AM_RANGE(0xc46022, 0xc46023) AM_WRITE_LEGACY(datsu_page1_w) - AM_RANGE(0xC46024, 0xC46025) AM_WRITE_LEGACY(datsu_page2_w) - AM_RANGE(0xC46026, 0xC46027) AM_WRITE_LEGACY(datsu_page3_w) + AM_RANGE(0xC46020, 0xC46021) AM_WRITE(datsu_page0_w) + AM_RANGE(0xc46022, 0xc46023) AM_WRITE(datsu_page1_w) + AM_RANGE(0xC46024, 0xC46025) AM_WRITE(datsu_page2_w) + AM_RANGE(0xC46026, 0xC46027) AM_WRITE(datsu_page3_w) AM_RANGE(0xffc000, 0xffffff) AM_RAM // work ram ADDRESS_MAP_END -static WRITE16_HANDLER( eswat_tilebank0_w ) +WRITE16_MEMBER(segas1x_bootleg_state::eswat_tilebank0_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); if (ACCESSING_BITS_0_7) { - state->m_eswat_tilebank0 = data & 0xff; + m_eswat_tilebank0 = data & 0xff; } } static ADDRESS_MAP_START( eswatbl_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x3e2000, 0x3e2001) AM_WRITE_LEGACY(eswat_tilebank0_w) // external tile bank ( > 0x4000 tiles ) + AM_RANGE(0x3e2000, 0x3e2001) AM_WRITE(eswat_tilebank0_w) // external tile bank ( > 0x4000 tiles ) AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram) AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram) - AM_RANGE(0x418000, 0x418001) AM_WRITE_LEGACY(s16bl_bgscrolly_w) - AM_RANGE(0x418008, 0x418009) AM_WRITE_LEGACY(s16bl_bgscrollx_w) // and tile bank - AM_RANGE(0x418010, 0x418011) AM_WRITE_LEGACY(s16bl_fgscrolly_w) - AM_RANGE(0x418018, 0x418019) AM_WRITE_LEGACY(s16bl_fgscrollx_bank_w) - AM_RANGE(0x418020, 0x418021) AM_WRITE_LEGACY(s16bl_bgpage_w) - AM_RANGE(0x418028, 0x418029) AM_WRITE_LEGACY(s16bl_fgpage_w) + AM_RANGE(0x418000, 0x418001) AM_WRITE(s16bl_bgscrolly_w) + AM_RANGE(0x418008, 0x418009) AM_WRITE(s16bl_bgscrollx_w) // and tile bank + AM_RANGE(0x418010, 0x418011) AM_WRITE(s16bl_fgscrolly_w) + AM_RANGE(0x418018, 0x418019) AM_WRITE(s16bl_fgscrollx_bank_w) + AM_RANGE(0x418020, 0x418021) AM_WRITE(s16bl_bgpage_w) + AM_RANGE(0x418028, 0x418029) AM_WRITE(s16bl_fgpage_w) AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0) AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(sys16_coinctrl_w) + AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P2") AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2") - AM_RANGE(0xc42006, 0xc42007) AM_WRITE_LEGACY(sound_command_w) + AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) AM_RANGE(0xc80000, 0xc80001) AM_WRITENOP AM_RANGE(0xffc000, 0xffffff) AM_RAM // work ram ADDRESS_MAP_END @@ -935,59 +908,58 @@ static ADDRESS_MAP_START( tetrisbl_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram) AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram) - AM_RANGE(0x418000, 0x418001) AM_WRITE_LEGACY(s16bl_fgscrolly_w) - AM_RANGE(0x418008, 0x418009) AM_WRITE_LEGACY(s16bl_fgscrollx_w) - AM_RANGE(0x418010, 0x418011) AM_WRITE_LEGACY(s16bl_bgscrolly_w) - AM_RANGE(0x418018, 0x418019) AM_WRITE_LEGACY(s16bl_bgscrollx_w) - AM_RANGE(0x418020, 0x418021) AM_WRITE_LEGACY(s16bl_fgpage_w) - AM_RANGE(0x418028, 0x418029) AM_WRITE_LEGACY(s16bl_bgpage_w) + AM_RANGE(0x418000, 0x418001) AM_WRITE(s16bl_fgscrolly_w) + AM_RANGE(0x418008, 0x418009) AM_WRITE(s16bl_fgscrollx_w) + AM_RANGE(0x418010, 0x418011) AM_WRITE(s16bl_bgscrolly_w) + AM_RANGE(0x418018, 0x418019) AM_WRITE(s16bl_bgscrollx_w) + AM_RANGE(0x418020, 0x418021) AM_WRITE(s16bl_fgpage_w) + AM_RANGE(0x418028, 0x418029) AM_WRITE(s16bl_bgpage_w) AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0) AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(sys16_coinctrl_w) + AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P2") AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2") AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") - AM_RANGE(0xc42006, 0xc42007) AM_WRITE_LEGACY(sound_command_w) + AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) AM_RANGE(0xc43034, 0xc43035) AM_WRITENOP AM_RANGE(0xc80000, 0xc80001) AM_NOP AM_RANGE(0xffc000, 0xffffff) AM_RAM // work ram ADDRESS_MAP_END -static READ16_HANDLER( beautyb_unkx_r ) +READ16_MEMBER(segas1x_bootleg_state::beautyb_unkx_r) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - state->m_beautyb_unkx++; - state->m_beautyb_unkx &= 0x7f; - return state->m_beautyb_unkx; + m_beautyb_unkx++; + m_beautyb_unkx &= 0x7f; + return m_beautyb_unkx; } static ADDRESS_MAP_START( beautyb_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0x000000, 0x00ffff) AM_ROM AM_WRITENOP AM_RANGE(0x010000, 0x03ffff) AM_WRITENOP - AM_RANGE(0x0280D6, 0x0280D7) AM_READ_LEGACY(beautyb_unkx_r) - AM_RANGE(0x0280D8, 0x0280D9) AM_READ_LEGACY(beautyb_unkx_r) + AM_RANGE(0x0280D6, 0x0280D7) AM_READ(beautyb_unkx_r) + AM_RANGE(0x0280D8, 0x0280D9) AM_READ(beautyb_unkx_r) AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram) AM_RANGE(0x410000, 0x413fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram) - AM_RANGE(0x418000, 0x418001) AM_WRITE_LEGACY(s16bl_bgscrolly_w) - AM_RANGE(0x418008, 0x418009) AM_WRITE_LEGACY(s16bl_bgscrollx_w) - AM_RANGE(0x418010, 0x418011) AM_WRITE_LEGACY(s16bl_fgscrolly_w) - AM_RANGE(0x418018, 0x418019) AM_WRITE_LEGACY(s16bl_fgscrollx_w) - AM_RANGE(0x418020, 0x418021) AM_WRITE_LEGACY(s16bl_bgpage_w) - AM_RANGE(0x418028, 0x418029) AM_WRITE_LEGACY(s16bl_fgpage_w) + AM_RANGE(0x418000, 0x418001) AM_WRITE(s16bl_bgscrolly_w) + AM_RANGE(0x418008, 0x418009) AM_WRITE(s16bl_bgscrollx_w) + AM_RANGE(0x418010, 0x418011) AM_WRITE(s16bl_fgscrolly_w) + AM_RANGE(0x418018, 0x418019) AM_WRITE(s16bl_fgscrollx_w) + AM_RANGE(0x418020, 0x418021) AM_WRITE(s16bl_bgpage_w) + AM_RANGE(0x418028, 0x418029) AM_WRITE(s16bl_fgpage_w) AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0) AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram) - AM_RANGE(0xC41000, 0xC41001) AM_READ_LEGACY(beautyb_unkx_r ) - AM_RANGE(0xC41002, 0xC41003) AM_READ_LEGACY(beautyb_unkx_r ) + AM_RANGE(0xC41000, 0xC41001) AM_READ(beautyb_unkx_r ) + AM_RANGE(0xC41002, 0xC41003) AM_READ(beautyb_unkx_r ) AM_RANGE(0xc40000, 0xc40001) AM_WRITENOP AM_RANGE(0xc80000, 0xc80001) AM_WRITENOP @@ -1004,10 +976,10 @@ static ADDRESS_MAP_START( tturfbl_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram) AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram) AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram) - AM_RANGE(0x600000, 0x600001) AM_WRITE_LEGACY(sys16_coinctrl_w) + AM_RANGE(0x600000, 0x600001) AM_WRITE(sys16_coinctrl_w) AM_RANGE(0x600000, 0x600001) AM_READ_PORT("DSW2") AM_RANGE(0x600002, 0x600003) AM_READ_PORT("DSW1") - AM_RANGE(0x600006, 0x600007) AM_WRITE_LEGACY(sound_command_w) + AM_RANGE(0x600006, 0x600007) AM_WRITE(sound_command_w) AM_RANGE(0x601000, 0x601001) AM_READ_PORT("SERVICE") AM_RANGE(0x601002, 0x601003) AM_READ_PORT("P1") AM_RANGE(0x601004, 0x601005) AM_READ_PORT("P2") @@ -1015,52 +987,49 @@ static ADDRESS_MAP_START( tturfbl_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0x602002, 0x602003) AM_READ_PORT("DSW1") AM_RANGE(0xc44000, 0xc44001) AM_WRITENOP - AM_RANGE(0xC46000, 0xC46001) AM_WRITE_LEGACY(s16bl_fgscrolly_w) - AM_RANGE(0xC46008, 0xC46009) AM_WRITE_LEGACY(s16bl_fgscrollx_w) - AM_RANGE(0xC46010, 0xC46011) AM_WRITE_LEGACY(s16bl_bgscrolly_w) - AM_RANGE(0xC46018, 0xC46019) AM_WRITE_LEGACY(s16bl_bgscrollx_w) - AM_RANGE(0xC46020, 0xC46021) AM_WRITE_LEGACY(datsu_page0_w) - AM_RANGE(0xc46022, 0xc46023) AM_WRITE_LEGACY(datsu_page1_w) - AM_RANGE(0xC46024, 0xC46025) AM_WRITE_LEGACY(datsu_page2_w) - AM_RANGE(0xC46026, 0xC46027) AM_WRITE_LEGACY(datsu_page3_w) + AM_RANGE(0xC46000, 0xC46001) AM_WRITE(s16bl_fgscrolly_w) + AM_RANGE(0xC46008, 0xC46009) AM_WRITE(s16bl_fgscrollx_w) + AM_RANGE(0xC46010, 0xC46011) AM_WRITE(s16bl_bgscrolly_w) + AM_RANGE(0xC46018, 0xC46019) AM_WRITE(s16bl_bgscrollx_w) + AM_RANGE(0xC46020, 0xC46021) AM_WRITE(datsu_page0_w) + AM_RANGE(0xc46022, 0xc46023) AM_WRITE(datsu_page1_w) + AM_RANGE(0xC46024, 0xC46025) AM_WRITE(datsu_page2_w) + AM_RANGE(0xC46026, 0xC46027) AM_WRITE(datsu_page3_w) ADDRESS_MAP_END /***************************************************************************/ -static WRITE16_HANDLER( sys18_refreshenable_w ) +WRITE16_MEMBER(segas1x_bootleg_state::sys18_refreshenable_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); if (ACCESSING_BITS_0_7) { - state->m_refreshenable = data & 0x02; + m_refreshenable = data & 0x02; } } -static WRITE16_HANDLER( sys18_tilebank_w ) +WRITE16_MEMBER(segas1x_bootleg_state::sys18_tilebank_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); if (ACCESSING_BITS_0_7) { - state->m_tile_bank0 = (data >> 0) & 0x0f; - state->m_tile_bank1 = (data >> 4) & 0x0f; + m_tile_bank0 = (data >> 0) & 0x0f; + m_tile_bank1 = (data >> 4) & 0x0f; } } -static READ8_HANDLER( system18_bank_r ) +READ8_MEMBER(segas1x_bootleg_state::system18_bank_r) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - if (state->m_sound_bank != NULL) - return state->m_sound_bank[offset]; + if (m_sound_bank != NULL) + return m_sound_bank[offset]; return 0xff; } static ADDRESS_MAP_START( sound_18_map, AS_PROGRAM, 8, segas1x_bootleg_state ) AM_RANGE(0x0000, 0x9fff) AM_ROM - AM_RANGE(0xa000, 0xbfff) AM_READ_LEGACY(system18_bank_r) + AM_RANGE(0xa000, 0xbfff) AM_READ(system18_bank_r) /**** D/A register ****/ AM_RANGE(0xc000, 0xc008) AM_DEVWRITE_LEGACY("5c68", rf5c68_w) AM_RANGE(0xd000, 0xdfff) AM_DEVREADWRITE_LEGACY("5c68", rf5c68_mem_r, rf5c68_mem_w) @@ -1068,26 +1037,25 @@ static ADDRESS_MAP_START( sound_18_map, AS_PROGRAM, 8, segas1x_bootleg_state ) ADDRESS_MAP_END -static WRITE8_HANDLER( sys18_soundbank_w ) +WRITE8_MEMBER(segas1x_bootleg_state::sys18_soundbank_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - UINT8 *mem = space->machine().region("soundcpu")->base(); + UINT8 *mem = machine().region("soundcpu")->base(); int rom = (data >> 6) & 3; int bank = (data & 0x3f); - int mask = state->m_sound_info[rom * 2 + 0]; - int offs = state->m_sound_info[rom * 2 + 1]; + int mask = m_sound_info[rom * 2 + 0]; + int offs = m_sound_info[rom * 2 + 1]; if (mask) - state->m_sound_bank = &mem[0x10000 + offs + ((bank & mask) << 13)]; + m_sound_bank = &mem[0x10000 + offs + ((bank & mask) << 13)]; else - state->m_sound_bank = NULL; + m_sound_bank = NULL; } static ADDRESS_MAP_START( sound_18_io_map, AS_IO, 8, segas1x_bootleg_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x80, 0x83) AM_DEVREADWRITE_LEGACY("3438.0", ym3438_r, ym3438_w) AM_RANGE(0x90, 0x93) AM_DEVREADWRITE_LEGACY("3438.1", ym3438_r, ym3438_w) - AM_RANGE(0xa0, 0xa0) AM_WRITE_LEGACY(sys18_soundbank_w) + AM_RANGE(0xa0, 0xa0) AM_WRITE(sys18_soundbank_w) AM_RANGE(0xc0, 0xc0) AM_READ_LEGACY(soundlatch_r) ADDRESS_MAP_END @@ -1134,14 +1102,13 @@ ADDRESS_MAP_END ***************************************************************************/ -static WRITE16_HANDLER( sound_command_irq_w ) +WRITE16_MEMBER(segas1x_bootleg_state::sound_command_irq_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); if (ACCESSING_BITS_0_7) { soundlatch_w(space, 0, data & 0xff); - device_set_input_line(state->m_soundcpu, 0, HOLD_LINE); + device_set_input_line(m_soundcpu, 0, HOLD_LINE); } } @@ -1154,7 +1121,7 @@ static ADDRESS_MAP_START( shdancbl_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0xc00000, 0xc0ffff) AM_NOP AM_RANGE(0xc40000, 0xc40001) AM_READ_PORT("COINAGE") AM_RANGE(0xc40002, 0xc40003) AM_READ_PORT("DSW1") - AM_RANGE(0xc40006, 0xc40007) AM_WRITE_LEGACY(sound_command_irq_w) + AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_irq_w) AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2") @@ -1204,10 +1171,9 @@ ADDRESS_MAP_END ***************************************************************************/ -static WRITE8_HANDLER( shdancbl_msm5205_data_w ) +WRITE8_MEMBER(segas1x_bootleg_state::shdancbl_msm5205_data_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - state->m_sample_buffer = data; + m_sample_buffer = data; } static void shdancbl_msm5205_callback(device_t *device) @@ -1227,50 +1193,48 @@ static const msm5205_interface shdancbl_msm5205_interface = MSM5205_S48_4B }; -static READ8_HANDLER( shdancbl_soundbank_r ) +READ8_MEMBER(segas1x_bootleg_state::shdancbl_soundbank_r) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - if (state->m_soundbank_ptr) - return state->m_soundbank_ptr[offset & 0x3fff]; + if (m_soundbank_ptr) + return m_soundbank_ptr[offset & 0x3fff]; return 0xff; } -static WRITE8_HANDLER( shdancbl_bankctrl_w ) +WRITE8_MEMBER(segas1x_bootleg_state::shdancbl_bankctrl_w) { - segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>(); - UINT8 *mem = space->machine().region("soundcpu")->base(); + UINT8 *mem = machine().region("soundcpu")->base(); switch (data) { case 0: - state->m_soundbank_ptr = &mem[0x18000]; /* IC45 8000-BFFF */ + m_soundbank_ptr = &mem[0x18000]; /* IC45 8000-BFFF */ break; case 1: - state->m_soundbank_ptr = &mem[0x1C000]; /* IC45 C000-FFFF */ + m_soundbank_ptr = &mem[0x1C000]; /* IC45 C000-FFFF */ break; case 2: - state->m_soundbank_ptr = &mem[0x20000]; /* IC46 0000-3FFF */ + m_soundbank_ptr = &mem[0x20000]; /* IC46 0000-3FFF */ break; case 3: - state->m_soundbank_ptr = &mem[0x24000]; /* IC46 4000-7FFF */ + m_soundbank_ptr = &mem[0x24000]; /* IC46 4000-7FFF */ break; default: - state->m_soundbank_ptr = NULL; - logerror("Invalid bank setting %02X (%04X)\n", data, cpu_get_pc(&space->device())); + m_soundbank_ptr = NULL; + logerror("Invalid bank setting %02X (%04X)\n", data, cpu_get_pc(&space.device())); break; } } static ADDRESS_MAP_START(shdancbl_sound_map, AS_PROGRAM, 8, segas1x_bootleg_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0xbfff) AM_READ_LEGACY(shdancbl_soundbank_r) + AM_RANGE(0x8000, 0xbfff) AM_READ(shdancbl_soundbank_r) AM_RANGE(0xc000, 0xc00f) AM_WRITENOP AM_RANGE(0xc400, 0xc400) AM_READ_LEGACY(soundlatch_r) - AM_RANGE(0xc800, 0xc800) AM_WRITE_LEGACY(shdancbl_msm5205_data_w) + AM_RANGE(0xc800, 0xc800) AM_WRITE(shdancbl_msm5205_data_w) AM_RANGE(0xcc00, 0xcc03) AM_DEVREADWRITE_LEGACY("3438.0", ym3438_r, ym3438_w) AM_RANGE(0xd000, 0xd003) AM_DEVREADWRITE_LEGACY("3438.1", ym3438_r, ym3438_w) - AM_RANGE(0xd400, 0xd400) AM_WRITE_LEGACY(shdancbl_bankctrl_w) + AM_RANGE(0xd400, 0xd400) AM_WRITE(shdancbl_bankctrl_w) AM_RANGE(0xdf00, 0xdfff) AM_NOP AM_RANGE(0xe000, 0xffff) AM_RAM ADDRESS_MAP_END @@ -1310,14 +1274,14 @@ static ADDRESS_MAP_START( mwalkbl_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0xc40000, 0xc40001) AM_READ_PORT("COINAGE") AM_RANGE(0xc40002, 0xc40003) AM_READ_PORT("DSW1") - AM_RANGE(0xc40006, 0xc40007) AM_WRITE_LEGACY(sound_command_nmi_w) + AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_nmi_w) AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2") AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P3") AM_RANGE(0xc41008, 0xc41009) AM_READNOP // figure this out, extra input for 3p? - AM_RANGE(0xc46600, 0xc46601) AM_WRITE_LEGACY(sys18_refreshenable_w) - AM_RANGE(0xc46800, 0xc46801) AM_WRITE_LEGACY(sys18_tilebank_w) + AM_RANGE(0xc46600, 0xc46601) AM_WRITE(sys18_refreshenable_w) + AM_RANGE(0xc46800, 0xc46801) AM_WRITE(sys18_tilebank_w) AM_RANGE(0xfe0020, 0xfe003f) AM_WRITENOP // config regs AM_RANGE(0xffc000, 0xffffff) AM_RAM @@ -1339,8 +1303,8 @@ static ADDRESS_MAP_START( astormbl_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0x200000, 0x200fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0) AM_RANGE(0xa00000, 0xa00001) AM_READ_PORT("COINAGE") AM_RANGE(0xa00002, 0xa00003) AM_READ_PORT("DSW1") - AM_RANGE(0xa00006, 0xa00007) AM_WRITE_LEGACY(sound_command_nmi_w) - AM_RANGE(0xa0000e, 0xa0000f) AM_WRITE_LEGACY(sys18_tilebank_w) + AM_RANGE(0xa00006, 0xa00007) AM_WRITE(sound_command_nmi_w) + AM_RANGE(0xa0000e, 0xa0000f) AM_WRITE(sys18_tilebank_w) AM_RANGE(0xa01000, 0xa01001) AM_READ_PORT("SERVICE") AM_RANGE(0xa01002, 0xa01003) AM_READ_PORT("P1") AM_RANGE(0xa01004, 0xa01005) AM_READ_PORT("P2") @@ -1360,7 +1324,7 @@ static ADDRESS_MAP_START( astormbl_map, AS_PROGRAM, 16, segas1x_bootleg_state ) AM_RANGE(0xc46400, 0xc464ff) AM_NOP // scroll? AM_RANGE(0xc46500, 0xc465ff) AM_NOP // scroll? - AM_RANGE(0xc46600, 0xc46601) AM_WRITE_LEGACY(sys18_refreshenable_w) + AM_RANGE(0xc46600, 0xc46601) AM_WRITE(sys18_refreshenable_w) AM_RANGE(0xfe0020, 0xfe003f) AM_WRITENOP AM_RANGE(0xffc000, 0xffffff) AM_RAM ADDRESS_MAP_END |