summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/suna8.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/suna8.c')
-rw-r--r--src/mame/drivers/suna8.c318
1 files changed, 150 insertions, 168 deletions
diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c
index d2d3458bd76..910b4e0a443 100644
--- a/src/mame/drivers/suna8.c
+++ b/src/mame/drivers/suna8.c
@@ -432,10 +432,9 @@ static DRIVER_INIT( sparkman )
Hard Head
***************************************************************************/
-static READ8_HANDLER( hardhead_protection_r )
+READ8_MEMBER(suna8_state::hardhead_protection_r)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- UINT8 protection_val = state->m_protection_val;
+ UINT8 protection_val = m_protection_val;
if (protection_val & 0x80)
return ((~offset & 0x20) ? 0x20 : 0) |
@@ -446,12 +445,11 @@ static READ8_HANDLER( hardhead_protection_r )
(((offset ^ protection_val) & 0x01) ? 0x84 : 0);
}
-static WRITE8_HANDLER( hardhead_protection_w )
+WRITE8_MEMBER(suna8_state::hardhead_protection_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- if (data & 0x80) state->m_protection_val = data;
- else state->m_protection_val = offset & 1;
+ if (data & 0x80) m_protection_val = data;
+ else m_protection_val = offset & 1;
}
@@ -467,18 +465,17 @@ static WRITE8_HANDLER( hardhead_protection_w )
Hard Head
***************************************************************************/
-static READ8_HANDLER( hardhead_ip_r )
+READ8_MEMBER(suna8_state::hardhead_ip_r)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- switch (*state->m_hardhead_ip)
+ switch (*m_hardhead_ip)
{
- case 0: return input_port_read(space->machine(), "P1");
- case 1: return input_port_read(space->machine(), "P2");
- case 2: return input_port_read(space->machine(), "DSW1");
- case 3: return input_port_read(space->machine(), "DSW2");
+ case 0: return input_port_read(machine(), "P1");
+ case 1: return input_port_read(machine(), "P2");
+ case 2: return input_port_read(machine(), "DSW1");
+ case 3: return input_port_read(machine(), "DSW2");
default:
- logerror("CPU #0 - PC %04X: Unknown IP read: %02X\n", cpu_get_pc(&space->device()), *state->m_hardhead_ip);
+ logerror("CPU #0 - PC %04X: Unknown IP read: %02X\n", cpu_get_pc(&space.device()), *m_hardhead_ip);
return 0xff;
}
}
@@ -488,12 +485,12 @@ static READ8_HANDLER( hardhead_ip_r )
---4 ----
---- 3210 ROM Bank
*/
-static WRITE8_HANDLER( hardhead_bankswitch_w )
+WRITE8_MEMBER(suna8_state::hardhead_bankswitch_w)
{
int bank = data & 0x0f;
- if (data & ~0xef) logerror("CPU #0 - PC %04X: unknown bank bits: %02X\n",cpu_get_pc(&space->device()),data);
- memory_set_bank(space->machine(), "bank1", bank);
+ if (data & ~0xef) logerror("CPU #0 - PC %04X: unknown bank bits: %02X\n",cpu_get_pc(&space.device()),data);
+ memory_set_bank(machine(), "bank1", bank);
}
@@ -503,11 +500,11 @@ static WRITE8_HANDLER( hardhead_bankswitch_w )
---- -2-- Flip Screen
---- --10
*/
-static WRITE8_HANDLER( hardhead_flipscreen_w )
+WRITE8_MEMBER(suna8_state::hardhead_flipscreen_w)
{
- flip_screen_set(space->machine(), data & 0x04);
- coin_lockout_w ( space->machine(), 0, data & 0x08);
- coin_lockout_w ( space->machine(), 1, data & 0x10);
+ flip_screen_set(machine(), data & 0x04);
+ coin_lockout_w ( machine(), 0, data & 0x08);
+ coin_lockout_w ( machine(), 1, data & 0x10);
}
static ADDRESS_MAP_START( hardhead_map, AS_PROGRAM, 8, suna8_state )
@@ -515,14 +512,14 @@ static ADDRESS_MAP_START( hardhead_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
AM_RANGE(0xc000, 0xd7ff) AM_RAM // RAM
AM_RANGE(0xd800, 0xd9ff) AM_RAM_WRITE_LEGACY(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram) // Palette
- AM_RANGE(0xda00, 0xda00) AM_RAM_READ_LEGACY(hardhead_ip_r) AM_BASE(m_hardhead_ip) // Input Port Select
- AM_RANGE(0xda80, 0xda80) AM_READWRITE_LEGACY(soundlatch2_r, hardhead_bankswitch_w ) // ROM Banking
+ AM_RANGE(0xda00, 0xda00) AM_RAM_READ(hardhead_ip_r) AM_BASE(m_hardhead_ip) // Input Port Select
+ AM_RANGE(0xda80, 0xda80) AM_READ_LEGACY(soundlatch2_r) AM_WRITE(hardhead_bankswitch_w ) // ROM Banking
AM_RANGE(0xdb00, 0xdb00) AM_WRITE_LEGACY(soundlatch_w ) // To Sound CPU
- AM_RANGE(0xdb80, 0xdb80) AM_WRITE_LEGACY(hardhead_flipscreen_w ) // Flip Screen + Coin Lockout
+ AM_RANGE(0xdb80, 0xdb80) AM_WRITE(hardhead_flipscreen_w ) // Flip Screen + Coin Lockout
AM_RANGE(0xdc00, 0xdc00) AM_NOP // <- R (after bank select)
AM_RANGE(0xdc80, 0xdc80) AM_NOP // <- R (after bank select)
AM_RANGE(0xdd00, 0xdd00) AM_NOP // <- R (after ip select)
- AM_RANGE(0xdd80, 0xddff) AM_READWRITE_LEGACY(hardhead_protection_r, hardhead_protection_w ) // Protection
+ AM_RANGE(0xdd80, 0xddff) AM_READWRITE(hardhead_protection_r, hardhead_protection_w ) // Protection
AM_RANGE(0xe000, 0xffff) AM_RAM_WRITE_LEGACY(suna8_spriteram_w) AM_BASE(m_spriteram) // Sprites
ADDRESS_MAP_END
@@ -543,18 +540,18 @@ ADDRESS_MAP_END
---- 3---
---- -210 ROM Bank
*/
-static WRITE8_HANDLER( rranger_bankswitch_w )
+WRITE8_MEMBER(suna8_state::rranger_bankswitch_w)
{
int bank = data & 0x07;
if ((~data & 0x10) && (bank >= 4)) bank += 4;
- if (data & ~0xf7) logerror("CPU #0 - PC %04X: unknown bank bits: %02X\n",cpu_get_pc(&space->device()),data);
+ if (data & ~0xf7) logerror("CPU #0 - PC %04X: unknown bank bits: %02X\n",cpu_get_pc(&space.device()),data);
- memory_set_bank(space->machine(), "bank1", bank);
+ memory_set_bank(machine(), "bank1", bank);
- flip_screen_set(space->machine(), data & 0x20);
- coin_lockout_w ( space->machine(), 0, data & 0x40);
- coin_lockout_w ( space->machine(), 1, data & 0x80);
+ flip_screen_set(machine(), data & 0x20);
+ coin_lockout_w ( machine(), 0, data & 0x40);
+ coin_lockout_w ( machine(), 1, data & 0x80);
}
/*
@@ -565,28 +562,28 @@ static WRITE8_HANDLER( rranger_bankswitch_w )
---- --1- 1 -> Interlude screens
---- ---0
*/
-static READ8_HANDLER( rranger_soundstatus_r )
+READ8_MEMBER(suna8_state::rranger_soundstatus_r)
{
soundlatch2_r(space, offset);
return 0x02;
}
-static WRITE8_HANDLER( sranger_prot_w )
+WRITE8_MEMBER(suna8_state::sranger_prot_w)
{
/* check code at 0x2ce2 (in sranger), protection is so dire that I can't even exactly
estabilish if what I'm doing can be considered or not a kludge... -AS */
- space->write_byte(0xcd99,0xff);
+ space.write_byte(0xcd99,0xff);
}
static ADDRESS_MAP_START( rranger_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
AM_RANGE(0xc000, 0xc000) AM_READWRITE_LEGACY(watchdog_reset_r, soundlatch_w) // To Sound CPU
- AM_RANGE(0xc002, 0xc002) AM_WRITE_LEGACY(rranger_bankswitch_w ) // ROM Banking
+ AM_RANGE(0xc002, 0xc002) AM_WRITE(rranger_bankswitch_w ) // ROM Banking
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("P1") // P1 (Inputs)
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("P2") // P2
- AM_RANGE(0xc004, 0xc004) AM_READ_LEGACY(rranger_soundstatus_r ) // Latch Status?
- AM_RANGE(0xc200, 0xc200) AM_READNOP AM_WRITE_LEGACY(sranger_prot_w)// Protection?
+ AM_RANGE(0xc004, 0xc004) AM_READ(rranger_soundstatus_r ) // Latch Status?
+ AM_RANGE(0xc200, 0xc200) AM_READNOP AM_WRITE(sranger_prot_w)// Protection?
AM_RANGE(0xc280, 0xc280) AM_WRITENOP // ? NMI Ack
AM_RANGE(0xc280, 0xc280) AM_READ_PORT("DSW1") // DSW 1
AM_RANGE(0xc2c0, 0xc2c0) AM_READ_PORT("DSW2") // DSW 2
@@ -608,19 +605,18 @@ ADDRESS_MAP_END
/*
?
*/
-static READ8_HANDLER( brickzn_c140_r )
+READ8_MEMBER(suna8_state::brickzn_c140_r)
{
return 0xff;
}
/*
*/
-static WRITE8_HANDLER( brickzn_palettebank_w )
+WRITE8_MEMBER(suna8_state::brickzn_palettebank_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_palettebank = (data >> 1) & 1;
- if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown palettebank bits: %02X\n",cpu_get_pc(&space->device()),data);
+ m_palettebank = (data >> 1) & 1;
+ if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown palettebank bits: %02X\n",cpu_get_pc(&space.device()),data);
/* Also used as soundlatch - depending on c0c0? */
soundlatch_w(space,0,data);
@@ -631,51 +627,48 @@ static WRITE8_HANDLER( brickzn_palettebank_w )
---- --1- Ram Bank
---- ---0 Flip Screen
*/
-static WRITE8_HANDLER( brickzn_spritebank_w )
+WRITE8_MEMBER(suna8_state::brickzn_spritebank_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_spritebank = (data >> 1) & 1;
- if (data & ~0x03) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",cpu_get_pc(&space->device()),data);
- flip_screen_set(space->machine(), data & 0x01 );
+ m_spritebank = (data >> 1) & 1;
+ if (data & ~0x03) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",cpu_get_pc(&space.device()),data);
+ flip_screen_set(machine(), data & 0x01 );
}
-static WRITE8_HANDLER( brickzn_unknown_w )
+WRITE8_MEMBER(suna8_state::brickzn_unknown_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_unknown = data;
+ m_unknown = data;
}
/*
7654 ----
---- 3210 ROM Bank
*/
-static WRITE8_HANDLER( brickzn_rombank_w )
+WRITE8_MEMBER(suna8_state::brickzn_rombank_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
int bank = data & 0x0f;
- if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",cpu_get_pc(&space->device()),data);
+ if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",cpu_get_pc(&space.device()),data);
- memory_set_bank(space->machine(), "bank1", bank);
- state->m_rombank = data;
+ memory_set_bank(machine(), "bank1", bank);
+ m_rombank = data;
}
static ADDRESS_MAP_START( brickzn_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
- AM_RANGE(0xc040, 0xc040) AM_WRITE_LEGACY(brickzn_rombank_w ) // ROM Bank
- AM_RANGE(0xc060, 0xc060) AM_WRITE_LEGACY(brickzn_spritebank_w ) // Sprite RAM Bank + Flip Screen
- AM_RANGE(0xc0a0, 0xc0a0) AM_WRITE_LEGACY(brickzn_palettebank_w ) // Palette RAM Bank + ?
- AM_RANGE(0xc0c0, 0xc0c0) AM_WRITE_LEGACY(brickzn_unknown_w ) // ???
+ AM_RANGE(0xc040, 0xc040) AM_WRITE(brickzn_rombank_w ) // ROM Bank
+ AM_RANGE(0xc060, 0xc060) AM_WRITE(brickzn_spritebank_w ) // Sprite RAM Bank + Flip Screen
+ AM_RANGE(0xc0a0, 0xc0a0) AM_WRITE(brickzn_palettebank_w ) // Palette RAM Bank + ?
+ AM_RANGE(0xc0c0, 0xc0c0) AM_WRITE(brickzn_unknown_w ) // ???
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("P1") // P1 (Buttons)
AM_RANGE(0xc101, 0xc101) AM_READ_PORT("P2") // P2
AM_RANGE(0xc102, 0xc102) AM_READ_PORT("DSW1") // DSW 1
AM_RANGE(0xc103, 0xc103) AM_READ_PORT("DSW2") // DSW 2
AM_RANGE(0xc108, 0xc108) AM_READ_PORT("TRACK1") // P1 (Analog)
AM_RANGE(0xc10c, 0xc10c) AM_READ_PORT("TRACK2") // P2
- AM_RANGE(0xc140, 0xc140) AM_READ_LEGACY(brickzn_c140_r) // ???
+ AM_RANGE(0xc140, 0xc140) AM_READ(brickzn_c140_r) // ???
AM_RANGE(0xc600, 0xc7ff) AM_READWRITE_LEGACY(suna8_banked_paletteram_r, brickzn_banked_paletteram_w) // Palette (Banked)
AM_RANGE(0xc800, 0xdfff) AM_RAM // RAM
AM_RANGE(0xe000, 0xffff) AM_READWRITE_LEGACY(suna8_banked_spriteram_r, suna8_banked_spriteram_w) // Sprites (Banked)
@@ -687,30 +680,29 @@ ADDRESS_MAP_END
***************************************************************************/
/* Probably wrong: */
-static WRITE8_HANDLER( hardhea2_nmi_w )
+WRITE8_MEMBER(suna8_state::hardhea2_nmi_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_nmi_enable = data & 0x01;
-// if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown nmi bits: %02X\n",cpu_get_pc(&space->device()),data);
+ m_nmi_enable = data & 0x01;
+// if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown nmi bits: %02X\n",cpu_get_pc(&space.device()),data);
}
/*
7654 321-
---- ---0 Flip Screen
*/
-static WRITE8_HANDLER( hardhea2_flipscreen_w )
+WRITE8_MEMBER(suna8_state::hardhea2_flipscreen_w)
{
- flip_screen_set(space->machine(), data & 0x01);
- if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown flipscreen bits: %02X\n",cpu_get_pc(&space->device()),data);
+ flip_screen_set(machine(), data & 0x01);
+ if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown flipscreen bits: %02X\n",cpu_get_pc(&space.device()),data);
}
-static WRITE8_HANDLER( hardhea2_leds_w )
+WRITE8_MEMBER(suna8_state::hardhea2_leds_w)
{
- set_led_status(space->machine(), 0, data & 0x01);
- set_led_status(space->machine(), 1, data & 0x02);
- coin_counter_w(space->machine(), 0, data & 0x04);
- if (data & ~0x07) logerror("CPU#0 - PC %06X: unknown leds bits: %02X\n",cpu_get_pc(&space->device()),data);
+ set_led_status(machine(), 0, data & 0x01);
+ set_led_status(machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x04);
+ if (data & ~0x07) logerror("CPU#0 - PC %06X: unknown leds bits: %02X\n",cpu_get_pc(&space.device()),data);
}
/*
@@ -718,51 +710,47 @@ static WRITE8_HANDLER( hardhea2_leds_w )
---- --1- Ram Bank
---- ---0 Ram Bank?
*/
-static WRITE8_HANDLER( hardhea2_spritebank_w )
+WRITE8_MEMBER(suna8_state::hardhea2_spritebank_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_spritebank = (data >> 1) & 1;
- if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",cpu_get_pc(&space->device()),data);
+ m_spritebank = (data >> 1) & 1;
+ if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",cpu_get_pc(&space.device()),data);
}
/*
7654 ----
---- 3210 ROM Bank
*/
-static WRITE8_HANDLER( hardhea2_rombank_w )
+WRITE8_MEMBER(suna8_state::hardhea2_rombank_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
int bank = data & 0x0f;
- if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",cpu_get_pc(&space->device()),data);
+ if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",cpu_get_pc(&space.device()),data);
- memory_set_bank(space->machine(), "bank1", bank);
+ memory_set_bank(machine(), "bank1", bank);
- state->m_rombank = data;
+ m_rombank = data;
}
-static WRITE8_HANDLER( hardhea2_spritebank_0_w )
+WRITE8_MEMBER(suna8_state::hardhea2_spritebank_0_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_spritebank = 0;
+ m_spritebank = 0;
}
-static WRITE8_HANDLER( hardhea2_spritebank_1_w )
+WRITE8_MEMBER(suna8_state::hardhea2_spritebank_1_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_spritebank = 1;
+ m_spritebank = 1;
}
-static WRITE8_HANDLER( hardhea2_rambank_0_w )
+WRITE8_MEMBER(suna8_state::hardhea2_rambank_0_w)
{
- memory_set_bank(space->machine(), "bank2", 0);
+ memory_set_bank(machine(), "bank2", 0);
}
-static WRITE8_HANDLER( hardhea2_rambank_1_w )
+WRITE8_MEMBER(suna8_state::hardhea2_rambank_1_w)
{
- memory_set_bank(space->machine(), "bank2", 1);
+ memory_set_bank(machine(), "bank2", 1);
}
@@ -774,31 +762,31 @@ static ADDRESS_MAP_START( hardhea2_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("DSW1") // DSW 1
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DSW2") // DSW 2
AM_RANGE(0xc080, 0xc080) AM_READ_PORT("BUTTONS") // vblank?
- AM_RANGE(0xc200, 0xc200) AM_WRITE_LEGACY(hardhea2_spritebank_w ) // Sprite RAM Bank
- AM_RANGE(0xc280, 0xc280) AM_WRITE_LEGACY(hardhea2_rombank_w ) // ROM Bank (?mirrored up to c2ff?)
+ AM_RANGE(0xc200, 0xc200) AM_WRITE(hardhea2_spritebank_w ) // Sprite RAM Bank
+ AM_RANGE(0xc280, 0xc280) AM_WRITE(hardhea2_rombank_w ) // ROM Bank (?mirrored up to c2ff?)
// *** Protection
- AM_RANGE(0xc28c, 0xc28c) AM_WRITE_LEGACY(hardhea2_rombank_w )
+ AM_RANGE(0xc28c, 0xc28c) AM_WRITE(hardhea2_rombank_w )
// Protection ***
- AM_RANGE(0xc300, 0xc300) AM_WRITE_LEGACY(hardhea2_flipscreen_w ) // Flip Screen
- AM_RANGE(0xc380, 0xc380) AM_WRITE_LEGACY(hardhea2_nmi_w ) // ? NMI related ?
- AM_RANGE(0xc400, 0xc400) AM_WRITE_LEGACY(hardhea2_leds_w ) // Leds + Coin Counter
+ AM_RANGE(0xc300, 0xc300) AM_WRITE(hardhea2_flipscreen_w ) // Flip Screen
+ AM_RANGE(0xc380, 0xc380) AM_WRITE(hardhea2_nmi_w ) // ? NMI related ?
+ AM_RANGE(0xc400, 0xc400) AM_WRITE(hardhea2_leds_w ) // Leds + Coin Counter
AM_RANGE(0xc480, 0xc480) AM_WRITENOP // ~ROM Bank
AM_RANGE(0xc500, 0xc500) AM_WRITE_LEGACY(soundlatch_w ) // To Sound CPU
// *** Protection
- AM_RANGE(0xc50f, 0xc50f) AM_WRITE_LEGACY(hardhea2_spritebank_1_w )
- AM_RANGE(0xc508, 0xc508) AM_WRITE_LEGACY(hardhea2_spritebank_0_w )
+ AM_RANGE(0xc50f, 0xc50f) AM_WRITE(hardhea2_spritebank_1_w )
+ AM_RANGE(0xc508, 0xc508) AM_WRITE(hardhea2_spritebank_0_w )
- AM_RANGE(0xc507, 0xc507) AM_WRITE_LEGACY(hardhea2_rambank_1_w )
- AM_RANGE(0xc522, 0xc522) AM_WRITE_LEGACY(hardhea2_rambank_0_w )
+ AM_RANGE(0xc507, 0xc507) AM_WRITE(hardhea2_rambank_1_w )
+ AM_RANGE(0xc522, 0xc522) AM_WRITE(hardhea2_rambank_0_w )
- AM_RANGE(0xc556, 0xc556) AM_WRITE_LEGACY(hardhea2_rambank_1_w )
- AM_RANGE(0xc528, 0xc528) AM_WRITE_LEGACY(hardhea2_rambank_0_w )
+ AM_RANGE(0xc556, 0xc556) AM_WRITE(hardhea2_rambank_1_w )
+ AM_RANGE(0xc528, 0xc528) AM_WRITE(hardhea2_rambank_0_w )
- AM_RANGE(0xc560, 0xc560) AM_WRITE_LEGACY(hardhea2_rambank_1_w )
- AM_RANGE(0xc533, 0xc533) AM_WRITE_LEGACY(hardhea2_rambank_0_w )
+ AM_RANGE(0xc560, 0xc560) AM_WRITE(hardhea2_rambank_1_w )
+ AM_RANGE(0xc533, 0xc533) AM_WRITE(hardhea2_rambank_0_w )
// Protection ***
AM_RANGE(0xc600, 0xc7ff) AM_RAM_WRITE_LEGACY(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram ) // Palette (Banked??)
@@ -811,19 +799,17 @@ ADDRESS_MAP_END
Star Fighter
***************************************************************************/
-static WRITE8_HANDLER( starfigh_spritebank_latch_w )
+WRITE8_MEMBER(suna8_state::starfigh_spritebank_latch_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_spritebank_latch = (data >> 2) & 1;
- if (data & ~0x04) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",cpu_get_pc(&space->device()),data);
+ m_spritebank_latch = (data >> 2) & 1;
+ if (data & ~0x04) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",cpu_get_pc(&space.device()),data);
}
-static WRITE8_HANDLER( starfigh_spritebank_w )
+WRITE8_MEMBER(suna8_state::starfigh_spritebank_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_spritebank = state->m_spritebank_latch;
+ m_spritebank = m_spritebank_latch;
}
static ADDRESS_MAP_START( starfigh_map, AS_PROGRAM, 8, suna8_state )
@@ -833,11 +819,11 @@ static ADDRESS_MAP_START( starfigh_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0xc001, 0xc001) AM_READ_PORT("P2") // P2
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("DSW1") // DSW 1
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DSW2") // DSW 2
- AM_RANGE(0xc200, 0xc200) AM_WRITE_LEGACY(starfigh_spritebank_w ) // Sprite RAM Bank
- AM_RANGE(0xc380, 0xc3ff) AM_WRITE_LEGACY(starfigh_spritebank_latch_w ) // Sprite RAM Bank
- AM_RANGE(0xc280, 0xc280) AM_WRITE_LEGACY(hardhea2_rombank_w ) // ROM Bank (?mirrored up to c2ff?)
- AM_RANGE(0xc300, 0xc300) AM_WRITE_LEGACY(hardhea2_flipscreen_w ) // Flip Screen
- AM_RANGE(0xc400, 0xc400) AM_WRITE_LEGACY(hardhea2_leds_w ) // Leds + Coin Counter
+ AM_RANGE(0xc200, 0xc200) AM_WRITE(starfigh_spritebank_w ) // Sprite RAM Bank
+ AM_RANGE(0xc380, 0xc3ff) AM_WRITE(starfigh_spritebank_latch_w ) // Sprite RAM Bank
+ AM_RANGE(0xc280, 0xc280) AM_WRITE(hardhea2_rombank_w ) // ROM Bank (?mirrored up to c2ff?)
+ AM_RANGE(0xc300, 0xc300) AM_WRITE(hardhea2_flipscreen_w ) // Flip Screen
+ AM_RANGE(0xc400, 0xc400) AM_WRITE(hardhea2_leds_w ) // Leds + Coin Counter
AM_RANGE(0xc500, 0xc500) AM_WRITE_LEGACY(soundlatch_w ) // To Sound CPU
AM_RANGE(0xc600, 0xc7ff) AM_READWRITE_LEGACY(suna8_banked_paletteram_r, paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram ) // Palette (Banked??)
AM_RANGE(0xc800, 0xdfff) AM_RAM // RAM
@@ -869,51 +855,49 @@ Thrash protection code snippet:
*/
/* This is a command-based protection. */
-static WRITE8_HANDLER( sparkman_cmd_prot_w )
+WRITE8_MEMBER(suna8_state::sparkman_cmd_prot_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
switch(data)
{
- case 0xa6: state->m_nmi_enable = 1; break;
- case 0x00: state->m_nmi_enable = 0; break;
- case 0x18: state->m_trash_prot = 0; break;
- case 0xce: state->m_trash_prot = 0; break;
- case 0x81: state->m_trash_prot = 1; break;
- case 0x99: state->m_trash_prot = 1; break;
- case 0x54: state->m_spritebank = 1; break;
- default: logerror("CPU #0 - PC %04X: unknown protection command: %02X\n",cpu_get_pc(&space->device()),data);
+ case 0xa6: m_nmi_enable = 1; break;
+ case 0x00: m_nmi_enable = 0; break;
+ case 0x18: m_trash_prot = 0; break;
+ case 0xce: m_trash_prot = 0; break;
+ case 0x81: m_trash_prot = 1; break;
+ case 0x99: m_trash_prot = 1; break;
+ case 0x54: m_spritebank = 1; break;
+ default: logerror("CPU #0 - PC %04X: unknown protection command: %02X\n",cpu_get_pc(&space.device()),data);
}
}
-static WRITE8_HANDLER( suna8_wram_w )
+WRITE8_MEMBER(suna8_state::suna8_wram_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- if (!state->m_trash_prot)
- state->m_wram[offset] = data;
+ if (!m_trash_prot)
+ m_wram[offset] = data;
}
/*
7654 321-
---- ---0 Flip Screen
*/
-static WRITE8_HANDLER( sparkman_flipscreen_w )
+WRITE8_MEMBER(suna8_state::sparkman_flipscreen_w)
{
- flip_screen_set(space->machine(), data & 0x01);
- //if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown flipscreen bits: %02X\n",cpu_get_pc(&space->device()),data);
+ flip_screen_set(machine(), data & 0x01);
+ //if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown flipscreen bits: %02X\n",cpu_get_pc(&space.device()),data);
}
-static WRITE8_HANDLER( sparkman_leds_w )
+WRITE8_MEMBER(suna8_state::sparkman_leds_w)
{
- set_led_status(space->machine(), 0, data & 0x01);
- set_led_status(space->machine(), 1, data & 0x02);
- //if (data & ~0x03) logerror("CPU#0 - PC %06X: unknown leds bits: %02X\n",cpu_get_pc(&space->device()),data);
+ set_led_status(machine(), 0, data & 0x01);
+ set_led_status(machine(), 1, data & 0x02);
+ //if (data & ~0x03) logerror("CPU#0 - PC %06X: unknown leds bits: %02X\n",cpu_get_pc(&space.device()),data);
}
-static WRITE8_HANDLER( sparkman_coin_counter_w )
+WRITE8_MEMBER(suna8_state::sparkman_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 0, data & 0x01);
}
/*
@@ -921,43 +905,40 @@ static WRITE8_HANDLER( sparkman_coin_counter_w )
---- --1- Ram Bank
---- ---0 Ram Bank?
*/
-static WRITE8_HANDLER( sparkman_spritebank_w )
+WRITE8_MEMBER(suna8_state::sparkman_spritebank_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
if(data == 0xf7) //???
- state->m_spritebank = 0;
+ m_spritebank = 0;
else
- state->m_spritebank = (data) & 1;
- //if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",cpu_get_pc(&space->device()),data);
+ m_spritebank = (data) & 1;
+ //if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",cpu_get_pc(&space.device()),data);
}
/*
7654 ----
---- 3210 ROM Bank
*/
-static WRITE8_HANDLER( sparkman_rombank_w )
+WRITE8_MEMBER(suna8_state::sparkman_rombank_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
int bank = data & 0x0f;
- //if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",cpu_get_pc(&space->device()),data);
+ //if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",cpu_get_pc(&space.device()),data);
- memory_set_bank(space->machine(), "bank1", bank);
- state->m_rombank = data;
+ memory_set_bank(machine(), "bank1", bank);
+ m_rombank = data;
}
-static READ8_HANDLER( sparkman_c0a3_r )
+READ8_MEMBER(suna8_state::sparkman_c0a3_r)
{
- return (space->machine().primary_screen->frame_number() & 1) ? 0x80 : 0;
+ return (machine().primary_screen->frame_number() & 1) ? 0x80 : 0;
}
#if 0
-static WRITE8_HANDLER( sparkman_en_trash_w )
+WRITE8_MEMBER(suna8_state::sparkman_en_trash_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_trash_prot = 1;
+ m_trash_prot = 1;
}
#endif
@@ -969,16 +950,16 @@ static ADDRESS_MAP_START( sparkman_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("DSW1") // DSW 1
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DSW2") // DSW 2
AM_RANGE(0xc080, 0xc080) AM_READ_PORT("BUTTONS") // Buttons
- AM_RANGE(0xc0a3, 0xc0a3) AM_READ_LEGACY(sparkman_c0a3_r ) // ???
- AM_RANGE(0xc200, 0xc200) AM_WRITE_LEGACY(sparkman_spritebank_w ) // Sprite RAM Bank
- AM_RANGE(0xc280, 0xc280) AM_WRITE_LEGACY(sparkman_rombank_w ) // ROM Bank (?mirrored up to c2ff?)
- AM_RANGE(0xc300, 0xc300) AM_WRITE_LEGACY(sparkman_flipscreen_w ) // Flip Screen
- AM_RANGE(0xc380, 0xc3ff) AM_WRITE_LEGACY(sparkman_cmd_prot_w ) // Protection
- AM_RANGE(0xc400, 0xc400) AM_WRITE_LEGACY(sparkman_leds_w ) // Leds
- AM_RANGE(0xc480, 0xc480) AM_WRITE_LEGACY(sparkman_coin_counter_w ) // Coin Counter
+ AM_RANGE(0xc0a3, 0xc0a3) AM_READ(sparkman_c0a3_r ) // ???
+ AM_RANGE(0xc200, 0xc200) AM_WRITE(sparkman_spritebank_w ) // Sprite RAM Bank
+ AM_RANGE(0xc280, 0xc280) AM_WRITE(sparkman_rombank_w ) // ROM Bank (?mirrored up to c2ff?)
+ AM_RANGE(0xc300, 0xc300) AM_WRITE(sparkman_flipscreen_w ) // Flip Screen
+ AM_RANGE(0xc380, 0xc3ff) AM_WRITE(sparkman_cmd_prot_w ) // Protection
+ AM_RANGE(0xc400, 0xc400) AM_WRITE(sparkman_leds_w ) // Leds
+ AM_RANGE(0xc480, 0xc480) AM_WRITE(sparkman_coin_counter_w ) // Coin Counter
AM_RANGE(0xc500, 0xc500) AM_WRITE_LEGACY(soundlatch_w ) // To Sound CPU
AM_RANGE(0xc600, 0xc7ff) AM_RAM_WRITE_LEGACY(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram ) // Palette (Banked??)
- AM_RANGE(0xc800, 0xdfff) AM_RAM_WRITE_LEGACY(suna8_wram_w) AM_BASE(m_wram) // RAM
+ AM_RANGE(0xc800, 0xdfff) AM_RAM_WRITE(suna8_wram_w) AM_BASE(m_wram) // RAM
AM_RANGE(0xe000, 0xffff) AM_READWRITE_LEGACY(suna8_banked_spriteram_r, suna8_banked_spriteram_w) // Sprites (Banked)
ADDRESS_MAP_END
@@ -1047,17 +1028,17 @@ static ADDRESS_MAP_START( brickzn_pcm_map, AS_PROGRAM, 8, suna8_state )
ADDRESS_MAP_END
-static WRITE8_HANDLER( brickzn_pcm_w )
+WRITE8_MEMBER(suna8_state::brickzn_pcm_w)
{
static const char *const dacs[] = { "dac1", "dac2", "dac3", "dac4" };
- dac_signed_data_w( space->machine().device(dacs[offset & 3]), (data & 0xf) * 0x11 );
+ dac_signed_data_w( machine().device(dacs[offset & 3]), (data & 0xf) * 0x11 );
}
static ADDRESS_MAP_START( brickzn_pcm_io_map, AS_IO, 8, suna8_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_LEGACY(soundlatch2_r ) // From Sound CPU
- AM_RANGE(0x00, 0x03) AM_WRITE_LEGACY(brickzn_pcm_w ) // 4 x DAC
+ AM_RANGE(0x00, 0x03) AM_WRITE(brickzn_pcm_w ) // 4 x DAC
ADDRESS_MAP_END
/***************************************************************************
@@ -1697,8 +1678,9 @@ static TIMER_DEVICE_CALLBACK( hardhea2_interrupt )
static MACHINE_RESET( hardhea2 )
{
+ suna8_state *state = machine.driver_data<suna8_state>();
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- hardhea2_rambank_0_w(space,0,0);
+ state->hardhea2_rambank_0_w(*space,0,0);
}
static MACHINE_CONFIG_DERIVED( hardhea2, brickzn )