diff options
Diffstat (limited to 'src/mame/drivers/kaneko16.c')
-rw-r--r-- | src/mame/drivers/kaneko16.c | 109 |
1 files changed, 55 insertions, 54 deletions
diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c index 8c4761b7643..613d86c77bd 100644 --- a/src/mame/drivers/kaneko16.c +++ b/src/mame/drivers/kaneko16.c @@ -276,19 +276,19 @@ static MACHINE_RESET( shogwarr ) ***************************************************************************/ -static READ16_HANDLER( kaneko16_rnd_r ) +READ16_MEMBER(kaneko16_state::kaneko16_rnd_r) { - return space->machine().rand() & 0xffff; + return machine().rand() & 0xffff; } -static WRITE16_HANDLER( kaneko16_coin_lockout_w ) +WRITE16_MEMBER(kaneko16_state::kaneko16_coin_lockout_w) { if (ACCESSING_BITS_8_15) { - coin_counter_w(space->machine(), 0, data & 0x0100); - coin_counter_w(space->machine(), 1, data & 0x0200); - coin_lockout_w(space->machine(), 0, (~data) & 0x0400 ); - coin_lockout_w(space->machine(), 1, (~data) & 0x0800 ); + coin_counter_w(machine(), 0, data & 0x0100); + coin_counter_w(machine(), 1, data & 0x0200); + coin_lockout_w(machine(), 0, (~data) & 0x0400 ); + coin_lockout_w(machine(), 1, (~data) & 0x0800 ); } } @@ -303,12 +303,12 @@ static WRITE16_HANDLER( kaneko16_coin_lockout_w ) ***************************************************************************/ -static WRITE16_HANDLER( kaneko16_soundlatch_w ) +WRITE16_MEMBER(kaneko16_state::kaneko16_soundlatch_w) { if (ACCESSING_BITS_8_15) { soundlatch_w(space, 0, (data & 0xff00) >> 8 ); - cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE); + cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE); } } @@ -339,19 +339,19 @@ static WRITE16_DEVICE_HANDLER( kaneko16_YM2149_w ) ***************************************************************************/ -static WRITE16_HANDLER( kaneko16_eeprom_w ) +WRITE16_MEMBER(kaneko16_state::kaneko16_eeprom_w) { if (ACCESSING_BITS_0_7) { - input_port_write(space->machine(), "EEPROMOUT", data, 0xff); + input_port_write(machine(), "EEPROMOUT", data, 0xff); } if (ACCESSING_BITS_8_15) { - coin_counter_w(space->machine(), 0, data & 0x0100); - coin_counter_w(space->machine(), 1, data & 0x0200); - coin_lockout_w(space->machine(), 0, data & 0x8000); - coin_lockout_w(space->machine(), 1, data & 0x8000); + coin_counter_w(machine(), 0, data & 0x0100); + coin_counter_w(machine(), 1, data & 0x0200); + coin_lockout_w(machine(), 0, data & 0x8000); + coin_lockout_w(machine(), 1, data & 0x8000); } } @@ -381,7 +381,7 @@ static ADDRESS_MAP_START( berlwall, AS_PROGRAM, 16, kaneko16_state ) AM_RANGE(0x680002, 0x680003) AM_READ_PORT("P2") AM_RANGE(0x680004, 0x680005) AM_READ_PORT("SYSTEM") // AM_RANGE(0x680006, 0x680007) AM_READ_PORT("UNK") - AM_RANGE(0x700000, 0x700001) AM_WRITE_LEGACY(kaneko16_coin_lockout_w) // Coin Lockout + AM_RANGE(0x700000, 0x700001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout AM_RANGE(0x780000, 0x780001) AM_READ_LEGACY(watchdog_reset16_r) // Watchdog AM_RANGE(0x800000, 0x80001f) AM_DEVREADWRITE_LEGACY("ay1", kaneko16_YM2149_r, kaneko16_YM2149_w) // Sound AM_RANGE(0x800200, 0x80021f) AM_DEVREADWRITE_LEGACY("ay2", kaneko16_YM2149_r, kaneko16_YM2149_w) @@ -434,7 +434,7 @@ static ADDRESS_MAP_START( bakubrkr, AS_PROGRAM, 16, kaneko16_state ) AM_RANGE(0x900000, 0x90001f) AM_RAM_WRITE_LEGACY(kaneko16_sprites_regs_w) AM_BASE(m_sprites_regs ) // Sprites Regs AM_RANGE(0xa80000, 0xa80001) AM_READ_LEGACY(watchdog_reset16_r) // Watchdog AM_RANGE(0xb00000, 0xb0001f) AM_RAM_WRITE_LEGACY(kaneko16_layers_1_regs_w) AM_BASE(m_layers_1_regs) // Layers 1 Regs - AM_RANGE(0xd00000, 0xd00001) AM_WRITE_LEGACY(kaneko16_eeprom_w) // EEPROM + AM_RANGE(0xd00000, 0xd00001) AM_WRITE(kaneko16_eeprom_w) // EEPROM AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("P1") AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("P2") AM_RANGE(0xe00004, 0xe00005) AM_READ_PORT("SYSTEM") @@ -462,8 +462,8 @@ static ADDRESS_MAP_START( blazeon, AS_PROGRAM, 16, kaneko16_state ) AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("DSW1_P2") AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("UNK") AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("SYSTEM") - AM_RANGE(0xd00000, 0xd00001) AM_WRITE_LEGACY(kaneko16_coin_lockout_w) // Coin Lockout - AM_RANGE(0xe00000, 0xe00001) AM_READNOP AM_WRITE_LEGACY(kaneko16_soundlatch_w) // Read = IRQ Ack ? + AM_RANGE(0xd00000, 0xd00001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout + AM_RANGE(0xe00000, 0xe00001) AM_READNOP AM_WRITE(kaneko16_soundlatch_w) // Read = IRQ Ack ? AM_RANGE(0xe40000, 0xe40001) AM_READNOP // IRQ Ack ? // AM_RANGE(0xe80000, 0xe80001) AM_READNOP // IRQ Ack ? AM_RANGE(0xec0000, 0xec0001) AM_READNOP // Lev 4 IRQ Ack ? @@ -494,14 +494,14 @@ static WRITE16_DEVICE_HANDLER( bloodwar_oki_1_bank_w ) } } -static WRITE16_HANDLER( bloodwar_coin_lockout_w ) +WRITE16_MEMBER(kaneko16_state::bloodwar_coin_lockout_w) { if (ACCESSING_BITS_8_15) { - coin_counter_w(space->machine(), 0, data & 0x0100); - coin_counter_w(space->machine(), 1, data & 0x0200); - coin_lockout_w(space->machine(), 0, data & 0x8000); - coin_lockout_w(space->machine(), 1, data & 0x8000); + coin_counter_w(machine(), 0, data & 0x0100); + coin_counter_w(machine(), 1, data & 0x0200); + coin_lockout_w(machine(), 0, data & 0x8000); + coin_lockout_w(machine(), 1, data & 0x8000); } } @@ -534,7 +534,7 @@ static ADDRESS_MAP_START( bloodwar, AS_PROGRAM, 16, kaneko16_state ) AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("P2") AM_RANGE(0xb00004, 0xb00005) AM_READ_PORT("SYSTEM") AM_RANGE(0xb00006, 0xb00007) AM_READ_PORT("EXTRA") - AM_RANGE(0xb80000, 0xb80001) AM_WRITE_LEGACY(bloodwar_coin_lockout_w) // Coin Lockout + AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout AM_RANGE(0xc00000, 0xc00001) AM_WRITE_LEGACY(kaneko16_display_enable) AM_RANGE(0xd00000, 0xd00001) AM_READ_LEGACY(toybox_mcu_status_r) AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE_LEGACY("oki1", bloodwar_oki_0_bank_w) @@ -596,7 +596,7 @@ static ADDRESS_MAP_START( bonkadv, AS_PROGRAM, 16, kaneko16_state ) AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("P2") AM_RANGE(0xb00004, 0xb00005) AM_READ_PORT("SYSTEM") AM_RANGE(0xb00006, 0xb00007) AM_READ_PORT("UNK") - AM_RANGE(0xb80000, 0xb80001) AM_WRITE_LEGACY(bloodwar_coin_lockout_w) // Coin Lockout + AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout AM_RANGE(0xc00000, 0xc00001) AM_WRITE_LEGACY(kaneko16_display_enable) AM_RANGE(0xd00000, 0xd00001) AM_READ_LEGACY(toybox_mcu_status_r) AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE_LEGACY("oki1", bonkadv_oki_0_bank_w) @@ -609,15 +609,15 @@ ADDRESS_MAP_END ***************************************************************************/ -static READ16_HANDLER( gtmr_wheel_r ) +READ16_MEMBER(kaneko16_state::gtmr_wheel_r) { // check 'Controls' dip switch - switch (input_port_read(space->machine(), "DSW1") & 0x1000) + switch (input_port_read(machine(), "DSW1") & 0x1000) { case 0x0000: // 'Both Sides' = 270deg Wheel - return (input_port_read(space->machine(), "WHEEL0")); + return (input_port_read(machine(), "WHEEL0")); case 0x1000: // '1P Side' = 360' Wheel - return (input_port_read(space->machine(), "WHEEL1")); + return (input_port_read(machine(), "WHEEL1")); default: return (0); } @@ -645,7 +645,7 @@ static WRITE16_DEVICE_HANDLER( gtmr_oki_1_bank_w ) static ADDRESS_MAP_START( gtmr_map, AS_PROGRAM, 16, kaneko16_state ) AM_RANGE(0x000000, 0x0ffffd) AM_ROM // ROM - AM_RANGE(0x0ffffe, 0x0fffff) AM_READ_LEGACY(gtmr_wheel_r) // Wheel Value + AM_RANGE(0x0ffffe, 0x0fffff) AM_READ(gtmr_wheel_r) // Wheel Value AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE(m_mcu_ram) // Shared With MCU @@ -677,14 +677,14 @@ static ADDRESS_MAP_START( gtmr_map, AS_PROGRAM, 16, kaneko16_state ) AM_RANGE(0x800000, 0x800001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff) // Samples AM_RANGE(0x880000, 0x880001) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff) - AM_RANGE(0x900014, 0x900015) AM_READ_LEGACY(kaneko16_rnd_r) // Random Number ? + AM_RANGE(0x900014, 0x900015) AM_READ(kaneko16_rnd_r) // Random Number ? AM_RANGE(0xa00000, 0xa00001) AM_READWRITE_LEGACY(watchdog_reset16_r, watchdog_reset16_w) // Watchdog AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1") AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("P2") AM_RANGE(0xb00004, 0xb00005) AM_READ_PORT("SYSTEM") AM_RANGE(0xb00006, 0xb00007) AM_READ_PORT("UNK") - AM_RANGE(0xb80000, 0xb80001) AM_WRITE_LEGACY(kaneko16_coin_lockout_w) // Coin Lockout + AM_RANGE(0xb80000, 0xb80001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout AM_RANGE(0xc00000, 0xc00001) AM_WRITE_LEGACY(kaneko16_display_enable) // might do more than that AM_RANGE(0xd00000, 0xd00001) AM_READ_LEGACY(toybox_mcu_status_r) @@ -698,30 +698,30 @@ ADDRESS_MAP_END ***************************************************************************/ -static READ16_HANDLER( gtmr2_wheel_r ) +READ16_MEMBER(kaneko16_state::gtmr2_wheel_r) { - switch (input_port_read(space->machine(), "DSW1") & 0x1800) + switch (input_port_read(machine(), "DSW1") & 0x1800) { case 0x0000: // 270' A. Wheel - return (input_port_read(space->machine(), "WHEEL0")); + return (input_port_read(machine(), "WHEEL0")); case 0x1000: // 270' D. Wheel - return (input_port_read(space->machine(), "WHEEL1") << 8); + return (input_port_read(machine(), "WHEEL1") << 8); case 0x0800: // 360' Wheel - return (input_port_read(space->machine(), "WHEEL2") << 8); + return (input_port_read(machine(), "WHEEL2") << 8); default: - logerror("gtmr2_wheel_r : read at %06x with joystick\n", cpu_get_pc(&space->device())); + logerror("gtmr2_wheel_r : read at %06x with joystick\n", cpu_get_pc(&space.device())); return (~0); } } -static READ16_HANDLER( gtmr2_IN1_r ) +READ16_MEMBER(kaneko16_state::gtmr2_IN1_r) { - return (input_port_read(space->machine(), "P2") & (input_port_read(space->machine(), "FAKE") | ~0x7100)); + return (input_port_read(machine(), "P2") & (input_port_read(machine(), "FAKE") | ~0x7100)); } static ADDRESS_MAP_START( gtmr2_map, AS_PROGRAM, 16, kaneko16_state ) AM_RANGE(0x000000, 0x0ffffd) AM_ROM // ROM - AM_RANGE(0x0ffffe, 0x0fffff) AM_READ_LEGACY(gtmr2_wheel_r) // Wheel Value + AM_RANGE(0x0ffffe, 0x0fffff) AM_READ(gtmr2_wheel_r) // Wheel Value AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE(m_mcu_ram) // Shared With MCU @@ -751,15 +751,15 @@ static ADDRESS_MAP_START( gtmr2_map, AS_PROGRAM, 16, kaneko16_state ) AM_RANGE(0x800000, 0x800001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff) // Samples AM_RANGE(0x880000, 0x880001) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff) - AM_RANGE(0x900014, 0x900015) AM_READ_LEGACY(kaneko16_rnd_r) // Random Number ? + AM_RANGE(0x900014, 0x900015) AM_READ(kaneko16_rnd_r) // Random Number ? AM_RANGE(0xa00000, 0xa00001) AM_READWRITE_LEGACY(watchdog_reset16_r, watchdog_reset16_w) // Watchdog AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1") // AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("P2") - AM_RANGE(0xb00002, 0xb00003) AM_READ_LEGACY(gtmr2_IN1_r) + AM_RANGE(0xb00002, 0xb00003) AM_READ(gtmr2_IN1_r) AM_RANGE(0xb00004, 0xb00005) AM_READ_PORT("SYSTEM") AM_RANGE(0xb00006, 0xb00007) AM_READ_PORT("EXTRA") - AM_RANGE(0xb80000, 0xb80001) AM_WRITE_LEGACY(kaneko16_coin_lockout_w) // Coin Lockout + AM_RANGE(0xb80000, 0xb80001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout AM_RANGE(0xc00000, 0xc00001) AM_WRITE_LEGACY(kaneko16_display_enable) // might do more than that AM_RANGE(0xd00000, 0xd00001) AM_READ_LEGACY(toybox_mcu_status_r) @@ -795,7 +795,7 @@ static ADDRESS_MAP_START( mgcrystl, AS_PROGRAM, 16, kaneko16_state ) AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("DSW_P1") AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("P2") AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("SYSTEM") - AM_RANGE(0xd00000, 0xd00001) AM_WRITE_LEGACY(kaneko16_eeprom_w) // EEPROM + AM_RANGE(0xd00000, 0xd00001) AM_WRITE(kaneko16_eeprom_w) // EEPROM ADDRESS_MAP_END @@ -818,21 +818,21 @@ static void kaneko16_common_oki_bank_w( running_machine& machine, const char *ba } } -static WRITE16_HANDLER( shogwarr_oki_bank_w ) +WRITE16_MEMBER(kaneko16_state::shogwarr_oki_bank_w) { if (ACCESSING_BITS_0_7) { - kaneko16_common_oki_bank_w(space->machine(), "bank10", "oki1", (data >> 4) & 0xf, 0x30000, 0x10000); - kaneko16_common_oki_bank_w(space->machine(), "bank11", "oki2", (data & 0xf) , 0x00000, 0x40000); + kaneko16_common_oki_bank_w(machine(), "bank10", "oki1", (data >> 4) & 0xf, 0x30000, 0x10000); + kaneko16_common_oki_bank_w(machine(), "bank11", "oki2", (data & 0xf) , 0x00000, 0x40000); } } -static WRITE16_HANDLER( brapboys_oki_bank_w ) +WRITE16_MEMBER(kaneko16_state::brapboys_oki_bank_w) { if (ACCESSING_BITS_0_7) { - kaneko16_common_oki_bank_w(space->machine(), "bank10", "oki1", (data >> 4) & 0xf, 0x30000, 0x10000); - kaneko16_common_oki_bank_w(space->machine(), "bank11", "oki2", (data & 0xf) , 0x20000, 0x20000); + kaneko16_common_oki_bank_w(machine(), "bank10", "oki1", (data >> 4) & 0xf, 0x30000, 0x10000); + kaneko16_common_oki_bank_w(machine(), "bank11", "oki2", (data & 0xf) , 0x20000, 0x20000); } } @@ -863,7 +863,7 @@ static ADDRESS_MAP_START( shogwarr, AS_PROGRAM, 16, kaneko16_state ) AM_RANGE(0xb80004, 0xb80005) AM_READ_PORT("SYSTEM") AM_RANGE(0xb80006, 0xb80007) AM_READ_PORT("UNK") AM_RANGE(0xd00000, 0xd00001) AM_NOP // ? (bit 0) - AM_RANGE(0xe00000, 0xe00001) AM_WRITE_LEGACY(shogwarr_oki_bank_w) // Samples Bankswitching + AM_RANGE(0xe00000, 0xe00001) AM_WRITE(shogwarr_oki_bank_w) // Samples Bankswitching ADDRESS_MAP_END @@ -3931,8 +3931,9 @@ static DRIVER_INIT( shogwarr ) static DRIVER_INIT( brapboys ) { + kaneko16_state *state = machine.driver_data<kaneko16_state>(); // sample banking is different on brap boys for the music, why? GALs / PALs ? - machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xe00000, 0xe00001, FUNC(brapboys_oki_bank_w)); + machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xe00000, 0xe00001, write16_delegate(FUNC(kaneko16_state::brapboys_oki_bank_w),state)); // default sample banks kaneko16_common_oki_bank_w(machine, "bank10", "oki1", 0, 0x30000, 0x10000); |