summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/system16.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/system16.c')
-rw-r--r--src/mame/drivers/system16.c550
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