summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/splash.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/splash.c')
-rw-r--r--src/mame/drivers/splash.c126
1 files changed, 58 insertions, 68 deletions
diff --git a/src/mame/drivers/splash.c b/src/mame/drivers/splash.c
index 05b0027aecd..eb4444d9fd9 100644
--- a/src/mame/drivers/splash.c
+++ b/src/mame/drivers/splash.c
@@ -49,28 +49,28 @@ More notes about Funny Strip protection issus at the boottom of source file (DRI
#include "sound/msm5205.h"
#include "includes/splash.h"
-static WRITE16_HANDLER( splash_sh_irqtrigger_w )
+WRITE16_MEMBER(splash_state::splash_sh_irqtrigger_w)
{
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
}
}
-static WRITE16_HANDLER( roldf_sh_irqtrigger_w )
+WRITE16_MEMBER(splash_state::roldf_sh_irqtrigger_w)
{
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
// give the z80 time to see it
- device_spin_until_time(&space->device(), attotime::from_usec(40));
+ device_spin_until_time(&space.device(), attotime::from_usec(40));
}
-static WRITE16_HANDLER( splash_coin_w )
+WRITE16_MEMBER(splash_state::splash_coin_w)
{
if (ACCESSING_BITS_8_15)
{
@@ -78,11 +78,11 @@ static WRITE16_HANDLER( splash_coin_w )
{
case 0x00: /* Coin Lockouts */
case 0x01:
- coin_lockout_w( space->machine(), (offset >> 3) & 0x01, (data & 0x0400) >> 8);
+ coin_lockout_w( machine(), (offset >> 3) & 0x01, (data & 0x0400) >> 8);
break;
case 0x02: /* Coin Counters */
case 0x03:
- coin_counter_w( space->machine(), (offset >> 3) & 0x01, (data & 0x0100) >> 8);
+ coin_counter_w( machine(), (offset >> 3) & 0x01, (data & 0x0100) >> 8);
break;
}
}
@@ -95,8 +95,8 @@ static ADDRESS_MAP_START( splash_map, AS_PROGRAM, 16, splash_state )
AM_RANGE(0x840002, 0x840003) AM_READ_PORT("DSW2")
AM_RANGE(0x840004, 0x840005) AM_READ_PORT("P1")
AM_RANGE(0x840006, 0x840007) AM_READ_PORT("P2")
- AM_RANGE(0x84000e, 0x84000f) AM_WRITE_LEGACY(splash_sh_irqtrigger_w) /* Sound command */
- AM_RANGE(0x84000a, 0x84003b) AM_WRITE_LEGACY(splash_coin_w) /* Coin Counters + Coin Lockout */
+ AM_RANGE(0x84000e, 0x84000f) AM_WRITE(splash_sh_irqtrigger_w) /* Sound command */
+ AM_RANGE(0x84000a, 0x84003b) AM_WRITE(splash_coin_w) /* Coin Counters + Coin Lockout */
AM_RANGE(0x880000, 0x8817ff) AM_RAM_WRITE_LEGACY(splash_vram_w) AM_BASE(m_videoram) /* Video RAM */
AM_RANGE(0x881800, 0x881803) AM_RAM AM_BASE(m_vregs) /* Scroll registers */
AM_RANGE(0x881804, 0x881fff) AM_RAM /* Work RAM */
@@ -105,11 +105,10 @@ static ADDRESS_MAP_START( splash_map, AS_PROGRAM, 16, splash_state )
AM_RANGE(0xffc000, 0xffffff) AM_RAM /* Work RAM */
ADDRESS_MAP_END
-static WRITE8_HANDLER( splash_adpcm_data_w )
+WRITE8_MEMBER(splash_state::splash_adpcm_data_w)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- state->m_adpcm_data = data;
+ m_adpcm_data = data;
}
static void splash_msm5205_int(device_t *device)
@@ -122,7 +121,7 @@ static void splash_msm5205_int(device_t *device)
static ADDRESS_MAP_START( splash_sound_map, AS_PROGRAM, 8, splash_state )
AM_RANGE(0x0000, 0xd7ff) AM_ROM /* ROM */
- AM_RANGE(0xd800, 0xd800) AM_WRITE_LEGACY(splash_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
+ AM_RANGE(0xd800, 0xd800) AM_WRITE(splash_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
// AM_RANGE(0xe000, 0xe000) AM_WRITENOP /* ??? */
AM_RANGE(0xe800, 0xe800) AM_READ_LEGACY(soundlatch_r) /* Sound latch */
AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r,ym3812_w) /* YM3812 */
@@ -132,17 +131,16 @@ ADDRESS_MAP_END
/* Return of Lady Frog Maps */
/* note, sprite ram has moved, extra protection ram, and extra write for the pixel layer */
-static READ16_HANDLER( roldfrog_bombs_r )
+READ16_MEMBER(splash_state::roldfrog_bombs_r)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- state->m_ret ^= 0x100;
- return state->m_ret;
+ m_ret ^= 0x100;
+ return m_ret;
}
-static WRITE8_HANDLER(sound_bank_w)
+WRITE8_MEMBER(splash_state::sound_bank_w)
{
- memory_set_bank(space->machine(), "sound_bank", data & 0xf);
+ memory_set_bank(machine(), "sound_bank", data & 0xf);
}
@@ -153,11 +151,10 @@ static void roldfrog_update_irq( running_machine &machine )
device_set_input_line_and_vector(machine.device("audiocpu"), 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq);
}
-static WRITE8_HANDLER( roldfrog_vblank_ack_w )
+WRITE8_MEMBER(splash_state::roldfrog_vblank_ack_w)
{
- splash_state * driver_state = space->machine().driver_data<splash_state>();
- driver_state->m_vblank_irq = 0;
- roldfrog_update_irq(space->machine());
+ m_vblank_irq = 0;
+ roldfrog_update_irq(machine());
}
@@ -177,13 +174,13 @@ static ADDRESS_MAP_START( roldfrog_map, AS_PROGRAM, 16, splash_state )
AM_RANGE(0x840002, 0x840003) AM_READ_PORT("DSW2")
AM_RANGE(0x840004, 0x840005) AM_READ_PORT("P1")
AM_RANGE(0x840006, 0x840007) AM_READ_PORT("P2")
- AM_RANGE(0x84000e, 0x84000f) AM_WRITE_LEGACY(roldf_sh_irqtrigger_w) /* Sound command */
- AM_RANGE(0x84000a, 0x84003b) AM_WRITE_LEGACY(splash_coin_w) /* Coin Counters + Coin Lockout */
+ AM_RANGE(0x84000e, 0x84000f) AM_WRITE(roldf_sh_irqtrigger_w) /* Sound command */
+ AM_RANGE(0x84000a, 0x84003b) AM_WRITE(splash_coin_w) /* Coin Counters + Coin Lockout */
AM_RANGE(0x880000, 0x8817ff) AM_RAM_WRITE_LEGACY(splash_vram_w) AM_BASE(m_videoram) /* Video RAM */
AM_RANGE(0x881800, 0x881803) AM_RAM AM_BASE(m_vregs) /* Scroll registers */
AM_RANGE(0x881804, 0x881fff) AM_RAM /* Work RAM */
AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)/* Palette is xRRRRxGGGGxBBBBx */
- AM_RANGE(0xa00000, 0xa00001) AM_READ_LEGACY(roldfrog_bombs_r)
+ AM_RANGE(0xa00000, 0xa00001) AM_READ(roldfrog_bombs_r)
AM_RANGE(0xd00000, 0xd00fff) AM_RAM AM_BASE(m_spriteram) /* Sprite RAM */
AM_RANGE(0xe00000, 0xe00001) AM_WRITEONLY AM_BASE(m_bitmap_mode) /* Bitmap Mode? */
AM_RANGE(0xffc000, 0xffffff) AM_RAM /* Work RAM */
@@ -195,7 +192,7 @@ static ADDRESS_MAP_START( roldfrog_sound_map, AS_PROGRAM, 8, splash_state )
AM_RANGE(0x8000, 0xffff) AM_ROM AM_ROMBANK("sound_bank")
ADDRESS_MAP_END
-static READ8_HANDLER(roldfrog_unk_r)
+READ8_MEMBER(splash_state::roldfrog_unk_r)
{
// dragon punch leftovers
return 0xff;
@@ -205,38 +202,36 @@ static ADDRESS_MAP_START( roldfrog_sound_io_map, AS_IO, 8, splash_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x11) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0x40, 0x40) AM_NOP
- AM_RANGE(0x31, 0x31) AM_WRITE_LEGACY(sound_bank_w)
- AM_RANGE(0x37, 0x37) AM_WRITE_LEGACY(roldfrog_vblank_ack_w )
+ AM_RANGE(0x31, 0x31) AM_WRITE(sound_bank_w)
+ AM_RANGE(0x37, 0x37) AM_WRITE(roldfrog_vblank_ack_w )
AM_RANGE(0x70, 0x70) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0x0, 0xff) AM_READ_LEGACY(roldfrog_unk_r)
+ AM_RANGE(0x0, 0xff) AM_READ(roldfrog_unk_r)
ADDRESS_MAP_END
-static READ16_HANDLER(spr_read)
+READ16_MEMBER(splash_state::spr_read)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- return state->m_spriteram[offset]|0xff00;
+ return m_spriteram[offset]|0xff00;
}
-static WRITE16_HANDLER(spr_write)
+WRITE16_MEMBER(splash_state::spr_write)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- COMBINE_DATA(&state->m_spriteram[offset]);
- state->m_spriteram[offset]|=0xff00; /* 8 bit, expected 0xffnn when read as 16 bit */
+ COMBINE_DATA(&m_spriteram[offset]);
+ m_spriteram[offset]|=0xff00; /* 8 bit, expected 0xffnn when read as 16 bit */
}
-static WRITE16_HANDLER( funystrp_sh_irqtrigger_w )
+WRITE16_MEMBER(splash_state::funystrp_sh_irqtrigger_w)
{
soundlatch_w(space, 0, data>>8);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
static ADDRESS_MAP_START( funystrp_map, AS_PROGRAM, 16, splash_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x1fffff) AM_RAM /* protection? RAM */
AM_RANGE(0x800000, 0x83ffff) AM_RAM AM_BASE(m_pixelram) /* Pixel Layer */
- AM_RANGE(0x84000a, 0x84000b) AM_WRITE_LEGACY(splash_coin_w) /* Coin Counters + Coin Lockout */
- AM_RANGE(0x84000e, 0x84000f) AM_WRITE_LEGACY(funystrp_sh_irqtrigger_w) /* Sound command */
+ AM_RANGE(0x84000a, 0x84000b) AM_WRITE(splash_coin_w) /* Coin Counters + Coin Lockout */
+ AM_RANGE(0x84000e, 0x84000f) AM_WRITE(funystrp_sh_irqtrigger_w) /* Sound command */
AM_RANGE(0x840000, 0x840001) AM_READ_PORT("DSW1")
AM_RANGE(0x840002, 0x840003) AM_READ_PORT("DSW2")
AM_RANGE(0x840004, 0x840005) AM_READ_PORT("P1")
@@ -246,7 +241,7 @@ static ADDRESS_MAP_START( funystrp_map, AS_PROGRAM, 16, splash_state )
AM_RANGE(0x881800, 0x881803) AM_RAM AM_BASE(m_vregs) /* Scroll registers */
AM_RANGE(0x881804, 0x881fff) AM_WRITENOP
AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)/* Palette is xRRRRxGGGGxBBBBx */
- AM_RANGE(0xd00000, 0xd01fff) AM_READWRITE_LEGACY(spr_read, spr_write) AM_BASE(m_spriteram) /* Sprite RAM */
+ AM_RANGE(0xd00000, 0xd01fff) AM_READWRITE(spr_read, spr_write) AM_BASE(m_spriteram) /* Sprite RAM */
AM_RANGE(0xfe0000, 0xffffff) AM_RAM AM_MASK(0xffff) /* there's fe0000 <-> ff0000 compare */ /* Work RAM */
ADDRESS_MAP_END
@@ -256,49 +251,44 @@ static ADDRESS_MAP_START( funystrp_sound_map, AS_PROGRAM, 8, splash_state )
AM_RANGE(0x8000, 0xffff) AM_ROM AM_ROMBANK("sound_bank")
ADDRESS_MAP_END
-static READ8_HANDLER(int_source_r)
+READ8_MEMBER(splash_state::int_source_r)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- return ~state->m_msm_source;
+ return ~m_msm_source;
}
-static WRITE8_HANDLER(msm1_data_w)
+WRITE8_MEMBER(splash_state::msm1_data_w)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- state->m_msm_data1=data;
- state->m_msm_source&=~1;
- state->m_msm_toggle1=0;
+ m_msm_data1=data;
+ m_msm_source&=~1;
+ m_msm_toggle1=0;
}
-static WRITE8_HANDLER(msm1_interrupt_w)
+WRITE8_MEMBER(splash_state::msm1_interrupt_w)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- state->m_snd_interrupt_enable1=~data;
+ m_snd_interrupt_enable1=~data;
}
-static WRITE8_HANDLER(msm2_interrupt_w)
+WRITE8_MEMBER(splash_state::msm2_interrupt_w)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- state->m_snd_interrupt_enable2=~data;
+ m_snd_interrupt_enable2=~data;
}
-static WRITE8_HANDLER(msm2_data_w)
+WRITE8_MEMBER(splash_state::msm2_data_w)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- state->m_msm_data2=data;
- state->m_msm_source&=~2;
- state->m_msm_toggle2=0;
+ m_msm_data2=data;
+ m_msm_source&=~2;
+ m_msm_toggle2=0;
}
static ADDRESS_MAP_START( funystrp_sound_io_map, AS_IO, 8, splash_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(msm1_data_w)
- AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(msm2_data_w)
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(sound_bank_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(msm1_data_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(msm2_data_w)
+ AM_RANGE(0x02, 0x02) AM_WRITE(sound_bank_w)
AM_RANGE(0x03, 0x03) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0x04, 0x04) AM_READ_LEGACY(int_source_r)
- AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(msm1_interrupt_w)
- AM_RANGE(0x07, 0x07) AM_WRITE_LEGACY(msm2_interrupt_w)
+ AM_RANGE(0x04, 0x04) AM_READ(int_source_r)
+ AM_RANGE(0x06, 0x06) AM_WRITE(msm1_interrupt_w)
+ AM_RANGE(0x07, 0x07) AM_WRITE(msm2_interrupt_w)
ADDRESS_MAP_END
static MACHINE_RESET( funystrp )