diff options
Diffstat (limited to 'src/mame/drivers/galivan.c')
-rw-r--r-- | src/mame/drivers/galivan.c | 70 |
1 files changed, 34 insertions, 36 deletions
diff --git a/src/mame/drivers/galivan.c b/src/mame/drivers/galivan.c index 7f28ef47b35..e6be9e0d042 100644 --- a/src/mame/drivers/galivan.c +++ b/src/mame/drivers/galivan.c @@ -35,18 +35,18 @@ Takahiro Nogi (nogi@kt.rim.or.jp) 1999/12/17 - #include "includes/nb1414m4.h" -static WRITE8_HANDLER( galivan_sound_command_w ) +WRITE8_MEMBER(galivan_state::galivan_sound_command_w) { soundlatch_w(space,0,((data & 0x7f) << 1) | 1); } -static READ8_HANDLER( soundlatch_clear_r ) +READ8_MEMBER(galivan_state::soundlatch_clear_r) { soundlatch_clear_w(space, 0, 0); return 0; } -static READ8_HANDLER( IO_port_c0_r ) +READ8_MEMBER(galivan_state::IO_port_c0_r) { return (0x58); /* To Avoid Reset on Ufo Robot dangar */ } @@ -83,17 +83,16 @@ static ADDRESS_MAP_START( io_map, AS_IO, 8, galivan_state ) AM_RANGE(0x40, 0x40) AM_WRITE_LEGACY(galivan_gfxbank_w) AM_RANGE(0x41, 0x42) AM_WRITE_LEGACY(galivan_scrollx_w) AM_RANGE(0x43, 0x44) AM_WRITE_LEGACY(galivan_scrolly_w) - AM_RANGE(0x45, 0x45) AM_WRITE_LEGACY(galivan_sound_command_w) + AM_RANGE(0x45, 0x45) AM_WRITE(galivan_sound_command_w) /* AM_RANGE(0x46, 0x46) AM_WRITENOP */ /* AM_RANGE(0x47, 0x47) AM_WRITENOP */ - AM_RANGE(0xc0, 0xc0) AM_READ_LEGACY(IO_port_c0_r) /* dangar needs to return 0x58 */ + AM_RANGE(0xc0, 0xc0) AM_READ(IO_port_c0_r) /* dangar needs to return 0x58 */ ADDRESS_MAP_END -static WRITE8_HANDLER( blit_trigger_w ) +WRITE8_MEMBER(galivan_state::blit_trigger_w) { - galivan_state *state = space->machine().driver_data<galivan_state>(); - nb_1414m4_exec(space,(state->m_videoram[0] << 8) | (state->m_videoram[1] & 0xff),state->m_videoram,state->m_scrollx,state->m_scrolly,state->m_tx_tilemap); + nb_1414m4_exec(&space,(m_videoram[0] << 8) | (m_videoram[1] & 0xff),m_videoram,m_scrollx,m_scrolly,m_tx_tilemap); } static ADDRESS_MAP_START( ninjemak_io_map, AS_IO, 8, galivan_state ) @@ -103,8 +102,8 @@ static ADDRESS_MAP_START( ninjemak_io_map, AS_IO, 8, galivan_state ) AM_RANGE(0x82, 0x82) AM_READ_PORT("SYSTEM") AM_RANGE(0x83, 0x83) AM_READ_PORT("SERVICE") AM_RANGE(0x84, 0x84) AM_READ_PORT("DSW1") - AM_RANGE(0x85, 0x85) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(galivan_sound_command_w) - AM_RANGE(0x86, 0x86) AM_WRITE_LEGACY(blit_trigger_w) // ?? + AM_RANGE(0x85, 0x85) AM_READ_PORT("DSW2") AM_WRITE(galivan_sound_command_w) + AM_RANGE(0x86, 0x86) AM_WRITE(blit_trigger_w) // ?? // AM_RANGE(0x87, 0x87) AM_WRITENOP // ?? ADDRESS_MAP_END @@ -118,7 +117,7 @@ static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, galivan_state ) AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("ymsnd", ym3526_w) AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("dac1", dac_w) AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("dac2", dac_w) - AM_RANGE(0x04, 0x04) AM_READ_LEGACY(soundlatch_clear_r) + AM_RANGE(0x04, 0x04) AM_READ(soundlatch_clear_r) AM_RANGE(0x06, 0x06) AM_READ_LEGACY(soundlatch_r) ADDRESS_MAP_END @@ -1032,60 +1031,59 @@ ROM_START( youmab2 ) ROM_END -static WRITE8_HANDLER( youmab_extra_bank_w ) +WRITE8_MEMBER(galivan_state::youmab_extra_bank_w) { if (data == 0xff) - memory_set_bank(space->machine(), "bank2", 1); + memory_set_bank(machine(), "bank2", 1); else if (data == 0x00) - memory_set_bank(space->machine(), "bank2", 0); + memory_set_bank(machine(), "bank2", 0); else printf("data %03x\n", data); } -static READ8_HANDLER( youmab_8a_r ) +READ8_MEMBER(galivan_state::youmab_8a_r) { - return space->machine().rand(); + return machine().rand(); } -static WRITE8_HANDLER( youmab_81_w ) +WRITE8_MEMBER(galivan_state::youmab_81_w) { // ?? } /* scrolling is tied to a serial port, reads from 0xe43d-0xe43e-0xe43f-0xe440 */ -static WRITE8_HANDLER( youmab_84_w ) +WRITE8_MEMBER(galivan_state::youmab_84_w) { - galivan_state *state = space->machine().driver_data<galivan_state>(); - state->m_shift_val &= ~((0x80 >> 7) << state->m_shift_scroll); - state->m_shift_val |= (((data & 0x80) >> 7) << state->m_shift_scroll); + m_shift_val &= ~((0x80 >> 7) << m_shift_scroll); + m_shift_val |= (((data & 0x80) >> 7) << m_shift_scroll); - state->m_shift_scroll++; + m_shift_scroll++; - //popmessage("%08x",state->m_shift_val); + //popmessage("%08x",m_shift_val); - //if(state->m_shift_scroll == 25) + //if(m_shift_scroll == 25) } -static WRITE8_HANDLER( youmab_86_w ) +WRITE8_MEMBER(galivan_state::youmab_86_w) { - galivan_state *state = space->machine().driver_data<galivan_state>(); /* latch values */ { - state->m_scrolly = (state->m_shift_val & 0x0003ff); - state->m_scrollx = (state->m_shift_val & 0x7ffc00) >> 10; + m_scrolly = (m_shift_val & 0x0003ff); + m_scrollx = (m_shift_val & 0x7ffc00) >> 10; - //popmessage("%08x %08x %08x",state->m_scrollx,state->m_scrolly,state->m_shift_val); + //popmessage("%08x %08x %08x",m_scrollx,m_scrolly,m_shift_val); } - state->m_shift_val = 0; - state->m_shift_scroll = 0; + m_shift_val = 0; + m_shift_scroll = 0; } static DRIVER_INIT( youmab ) { - machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x82, 0x82, FUNC(youmab_extra_bank_w)); // banks rom at 0x8000? writes 0xff and 0x00 before executing code there + galivan_state *state = machine.driver_data<galivan_state>(); + machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x82, 0x82, write8_delegate(FUNC(galivan_state::youmab_extra_bank_w),state)); // banks rom at 0x8000? writes 0xff and 0x00 before executing code there machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x7fff, "bank3"); memory_set_bankptr(machine, "bank3", machine.region("maincpu")->base()); @@ -1093,14 +1091,14 @@ static DRIVER_INIT( youmab ) memory_configure_bank(machine, "bank2", 0, 2, machine.region("user2")->base(), 0x4000); memory_set_bank(machine, "bank2", 0); - machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x81, 0x81, FUNC(youmab_81_w)); // ?? often, alternating values - machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x84, 0x84, FUNC(youmab_84_w)); // ?? often, sequence.. + machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x81, 0x81, write8_delegate(FUNC(galivan_state::youmab_81_w),state)); // ?? often, alternating values + machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x84, 0x84, write8_delegate(FUNC(galivan_state::youmab_84_w),state)); // ?? often, sequence.. machine.device("maincpu")->memory().space(AS_PROGRAM)->nop_write(0xd800, 0xd81f); // scrolling isn't here.. - machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x8a, 0x8a, FUNC(youmab_8a_r)); // ??? + machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x8a, 0x8a, read8_delegate(FUNC(galivan_state::youmab_8a_r),state)); // ??? - machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x86, 0x86, FUNC(youmab_86_w)); + machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x86, 0x86, write8_delegate(FUNC(galivan_state::youmab_86_w),state)); } |