diff options
Diffstat (limited to 'src/mame/drivers/kaneko16.cpp')
-rw-r--r-- | src/mame/drivers/kaneko16.cpp | 526 |
1 files changed, 243 insertions, 283 deletions
diff --git a/src/mame/drivers/kaneko16.cpp b/src/mame/drivers/kaneko16.cpp index 0cae192e9f8..396ee105c1e 100644 --- a/src/mame/drivers/kaneko16.cpp +++ b/src/mame/drivers/kaneko16.cpp @@ -99,12 +99,6 @@ Non-Bugs (happen on real PCB) #include "emu.h" #include "includes/kaneko16.h" -#include "cpu/z80/z80.h" -#include "cpu/m68000/m68000.h" -#include "machine/watchdog.h" -#include "sound/ym2151.h" -#include "machine/kaneko_hit.h" -#include "screen.h" #include "speaker.h" @@ -296,7 +290,7 @@ WRITE16_MEMBER(kaneko16_berlwall_state::berlwall_spriteregs_w) m_kaneko_spr->kaneko16_sprites_regs_w(space, offset, data, mem_mask); } -void kaneko16_berlwall_state::berlwall(address_map &map) +void kaneko16_berlwall_state::berlwall_map(address_map &map) { map(0x000000, 0x03ffff).rom(); // ROM map(0x200000, 0x20ffff).ram(); // Work RAM @@ -329,7 +323,7 @@ void kaneko16_berlwall_state::berlwall(address_map &map) /* The two YM2149 chips are only used when entering high score initials, and */ /* when the game is fully completed. Overkill??? */ -void kaneko16_state::bakubrkr(address_map &map) +void kaneko16_state::bakubrkr_map(address_map &map) { map(0x000000, 0x07ffff).rom(); // ROM map(0x100000, 0x10ffff).ram(); // Work RAM @@ -358,7 +352,7 @@ void kaneko16_state::bakubrkr(address_map &map) Blaze On ***************************************************************************/ -void kaneko16_state::blazeon(address_map &map) +void kaneko16_state::blazeon_map(address_map &map) { map(0x000000, 0x0fffff).rom(); // ROM map(0x300000, 0x30ffff).ram(); // Work RAM @@ -396,7 +390,7 @@ WRITE16_MEMBER(kaneko16_gtmr_state::bloodwar_coin_lockout_w) } } -void kaneko16_gtmr_state::bloodwar(address_map &map) +void kaneko16_gtmr_state::bloodwar_map(address_map &map) { map(0x000000, 0x0fffff).rom(); // ROM map(0x100000, 0x10ffff).ram(); // Work RAM @@ -432,7 +426,7 @@ void kaneko16_gtmr_state::bloodwar(address_map &map) Bonk's Adventure ***************************************************************************/ -void kaneko16_gtmr_state::bonkadv(address_map &map) +void kaneko16_gtmr_state::bonkadv_map(address_map &map) { map(0x000000, 0x0fffff).rom(); // ROM map(0x100000, 0x10ffff).ram(); // Work RAM @@ -489,30 +483,30 @@ void kaneko16_gtmr_state::gtmr_map(address_map &map) map(0x0ffffe, 0x0fffff).r(FUNC(kaneko16_gtmr_state::gtmr_wheel_r)); // Wheel Value map(0x100000, 0x10ffff).ram(); // Work RAM - map(0x200000, 0x20ffff).ram().share("mcuram"); // Shared With MCU + map(0x200000, 0x20ffff).ram().share(m_mcuram); // Shared With MCU - map(0x2a0000, 0x2a0001).w("toybox", FUNC(kaneko_toybox_device::mcu_com0_w)); // To MCU ? - map(0x2b0000, 0x2b0001).w("toybox", FUNC(kaneko_toybox_device::mcu_com1_w)); - map(0x2c0000, 0x2c0001).w("toybox", FUNC(kaneko_toybox_device::mcu_com2_w)); - map(0x2d0000, 0x2d0001).w("toybox", FUNC(kaneko_toybox_device::mcu_com3_w)); + map(0x2a0000, 0x2a0001).w(m_toybox, FUNC(kaneko_toybox_device::mcu_com0_w)); // To MCU ? + map(0x2b0000, 0x2b0001).w(m_toybox, FUNC(kaneko_toybox_device::mcu_com1_w)); + map(0x2c0000, 0x2c0001).w(m_toybox, FUNC(kaneko_toybox_device::mcu_com2_w)); + map(0x2d0000, 0x2d0001).w(m_toybox, FUNC(kaneko_toybox_device::mcu_com3_w)); map(0x300000, 0x30ffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palette map(0x310000, 0x327fff).ram(); // - map(0x400000, 0x401fff).ram().share("spriteram"); // Sprites + map(0x400000, 0x401fff).ram().share(m_spriteram); // Sprites - map(0x500000, 0x503fff).rw("view2_0", FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_w)); - map(0x580000, 0x583fff).rw("view2_1", FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_w)); + map(0x500000, 0x503fff).rw(m_view2[0], FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_w)); + map(0x580000, 0x583fff).rw(m_view2[1], FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_w)); - map(0x600000, 0x60000f).rw("view2_0", FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_w)); - map(0x680000, 0x68001f).rw("view2_1", FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_w)); + map(0x600000, 0x60000f).rw(m_view2[0], FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_w)); + map(0x680000, 0x68001f).rw(m_view2[1], FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_w)); map(0x700000, 0x70001f).rw(m_kaneko_spr, FUNC(kaneko16_sprite_device::kaneko16_sprites_regs_r), FUNC(kaneko16_sprite_device::kaneko16_sprites_regs_w)); - map(0x800001, 0x800001).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Samples - map(0x880001, 0x880001).rw("oki2", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x800001, 0x800001).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Samples + map(0x880001, 0x880001).rw(m_oki[1], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); - map(0x900000, 0x900039).rw("kan_hit", FUNC(kaneko_hit_device::kaneko_hit_r), FUNC(kaneko_hit_device::kaneko_hit_w)); // only used for random number - map(0xa00000, 0xa00001).rw("watchdog", FUNC(watchdog_timer_device::reset16_r), FUNC(watchdog_timer_device::reset16_w)); + map(0x900000, 0x900039).rw(m_kaneko_hit, FUNC(kaneko_hit_device::kaneko_hit_r), FUNC(kaneko_hit_device::kaneko_hit_w)); // only used for random number + map(0xa00000, 0xa00001).rw(m_watchdog, FUNC(watchdog_timer_device::reset16_r), FUNC(watchdog_timer_device::reset16_w)); map(0xb00000, 0xb00001).portr("P1"); map(0xb00002, 0xb00003).portr("P2"); @@ -521,7 +515,7 @@ void kaneko16_gtmr_state::gtmr_map(address_map &map) map(0xb80000, 0xb80001).w(FUNC(kaneko16_gtmr_state::kaneko16_coin_lockout_w)); // Coin Lockout map(0xc00000, 0xc00001).w(FUNC(kaneko16_gtmr_state::kaneko16_display_enable)); // might do more than that - map(0xd00000, 0xd00001).r("toybox", FUNC(kaneko_toybox_device::mcu_status_r)); + map(0xd00000, 0xd00001).r(m_toybox, FUNC(kaneko_toybox_device::mcu_status_r)); map(0xe00001, 0xe00001).w(FUNC(kaneko16_gtmr_state::oki_bank0_w<0xf>)); // Samples Bankswitching map(0xe80001, 0xe80001).w(FUNC(kaneko16_gtmr_state::oki_bank1_w<0x1>)); @@ -534,14 +528,14 @@ void kaneko16_gtmr_state::gtmr_map(address_map &map) READ16_MEMBER(kaneko16_gtmr_state::gtmr2_wheel_r) { - switch (ioport("DSW1")->read() & 0x1800) + switch (m_dsw_port->read() & 0x1800) { case 0x0000: // 270' A. Wheel - return (ioport("WHEEL0")->read()); + return (m_wheel_port[0]->read()); case 0x1000: // 270' D. Wheel - return (ioport("WHEEL1")->read() << 8); + return (m_wheel_port[1]->read() << 8); case 0x0800: // 360' Wheel - return (ioport("WHEEL2")->read() << 8); + return (m_wheel_port[2]->read() << 8); default: logerror("gtmr2_wheel_r : read at %06x with joystick\n", m_maincpu->pc()); return (~0); @@ -550,7 +544,7 @@ READ16_MEMBER(kaneko16_gtmr_state::gtmr2_wheel_r) READ16_MEMBER(kaneko16_gtmr_state::gtmr2_IN1_r) { - return (ioport("P2")->read() & (ioport("FAKE")->read() | ~0x7100)); + return (m_p2_port->read() & (m_fake_port->read() | ~0x7100)); } void kaneko16_gtmr_state::gtmr2_map(address_map &map) @@ -559,28 +553,28 @@ void kaneko16_gtmr_state::gtmr2_map(address_map &map) map(0x0ffffe, 0x0fffff).r(FUNC(kaneko16_gtmr_state::gtmr2_wheel_r)); // Wheel Value map(0x100000, 0x10ffff).ram(); // Work RAM - map(0x200000, 0x20ffff).ram().share("mcuram"); // Shared With MCU + map(0x200000, 0x20ffff).ram().share(m_mcuram); // Shared With MCU - map(0x2a0000, 0x2a0001).w("toybox", FUNC(kaneko_toybox_device::mcu_com0_w)); // To MCU ? - map(0x2b0000, 0x2b0001).w("toybox", FUNC(kaneko_toybox_device::mcu_com1_w)); - map(0x2c0000, 0x2c0001).w("toybox", FUNC(kaneko_toybox_device::mcu_com2_w)); - map(0x2d0000, 0x2d0001).w("toybox", FUNC(kaneko_toybox_device::mcu_com3_w)); + map(0x2a0000, 0x2a0001).w(m_toybox, FUNC(kaneko_toybox_device::mcu_com0_w)); // To MCU ? + map(0x2b0000, 0x2b0001).w(m_toybox, FUNC(kaneko_toybox_device::mcu_com1_w)); + map(0x2c0000, 0x2c0001).w(m_toybox, FUNC(kaneko_toybox_device::mcu_com2_w)); + map(0x2d0000, 0x2d0001).w(m_toybox, FUNC(kaneko_toybox_device::mcu_com3_w)); map(0x300000, 0x30ffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palette map(0x310000, 0x327fff).ram(); // - map(0x400000, 0x401fff).ram().share("spriteram"); // Sprites + map(0x400000, 0x401fff).ram().share(m_spriteram); // Sprites - map(0x500000, 0x503fff).rw("view2_0", FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_w)); - map(0x580000, 0x583fff).rw("view2_1", FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_w)); - map(0x600000, 0x60000f).rw("view2_0", FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_w)); + map(0x500000, 0x503fff).rw(m_view2[0], FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_w)); + map(0x580000, 0x583fff).rw(m_view2[1], FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_w)); + map(0x600000, 0x60000f).rw(m_view2[0], FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_w)); + map(0x680000, 0x68001f).rw(m_view2[1], FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_w)); - map(0x680000, 0x68001f).rw("view2_1", FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_w)); map(0x700000, 0x70001f).rw(m_kaneko_spr, FUNC(kaneko16_sprite_device::kaneko16_sprites_regs_r), FUNC(kaneko16_sprite_device::kaneko16_sprites_regs_w)); - map(0x800001, 0x800001).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Samples - map(0x880001, 0x880001).rw("oki2", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x800001, 0x800001).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Samples + map(0x880001, 0x880001).rw(m_oki[1], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); - map(0x900000, 0x900039).rw("kan_hit", FUNC(kaneko_hit_device::kaneko_hit_r), FUNC(kaneko_hit_device::kaneko_hit_w)); // only used for random number - map(0xa00000, 0xa00001).rw("watchdog", FUNC(watchdog_timer_device::reset16_r), FUNC(watchdog_timer_device::reset16_w)); // Watchdog + map(0x900000, 0x900039).rw(m_kaneko_hit, FUNC(kaneko_hit_device::kaneko_hit_r), FUNC(kaneko_hit_device::kaneko_hit_w)); // only used for random number + map(0xa00000, 0xa00001).rw(m_watchdog, FUNC(watchdog_timer_device::reset16_r), FUNC(watchdog_timer_device::reset16_w)); // Watchdog map(0xb00000, 0xb00001).portr("P1"); // map(0xb00002, 0xb00003) AM_READ_PORT("P2") @@ -590,7 +584,7 @@ void kaneko16_gtmr_state::gtmr2_map(address_map &map) map(0xb80000, 0xb80001).w(FUNC(kaneko16_gtmr_state::kaneko16_coin_lockout_w)); // Coin Lockout map(0xc00000, 0xc00001).w(FUNC(kaneko16_gtmr_state::kaneko16_display_enable)); // might do more than that - map(0xd00000, 0xd00001).r("toybox", FUNC(kaneko_toybox_device::mcu_status_r)); + map(0xd00000, 0xd00001).r(m_toybox, FUNC(kaneko_toybox_device::mcu_status_r)); map(0xe00001, 0xe00001).w(FUNC(kaneko16_gtmr_state::oki_bank0_w<0xf>)); // Samples Bankswitching map(0xe80001, 0xe80001).w(FUNC(kaneko16_gtmr_state::oki_bank1_w<0x1>)); @@ -600,21 +594,21 @@ void kaneko16_gtmr_state::gtmr2_map(address_map &map) Magical Crystal ***************************************************************************/ -void kaneko16_state::mgcrystl(address_map &map) +void kaneko16_state::mgcrystl_map(address_map &map) { map(0x000000, 0x07ffff).rom(); // ROM map(0x300000, 0x30ffff).ram(); // Work RAM map(0x400000, 0x40001f).rw(FUNC(kaneko16_state::kaneko16_ay_YM2149_r<0>), FUNC(kaneko16_state::kaneko16_ay_YM2149_w<0>)); // Sound map(0x400200, 0x40021f).rw(FUNC(kaneko16_state::kaneko16_ay_YM2149_r<1>), FUNC(kaneko16_state::kaneko16_ay_YM2149_w<1>)); - map(0x400401, 0x400401).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x400401, 0x400401).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x500000, 0x500fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palette - map(0x600000, 0x603fff).rw("view2_0", FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_w)); - map(0x680000, 0x683fff).rw("view2_1", FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_w)); + map(0x600000, 0x603fff).rw(m_view2[0], FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_w)); + map(0x680000, 0x683fff).rw(m_view2[1], FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_w)); map(0x700000, 0x701fff).ram().share("spriteram"); // Sprites - map(0x800000, 0x80001f).rw("view2_0", FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_w)); + map(0x800000, 0x80001f).rw(m_view2[0], FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_w)); map(0x900000, 0x90001f).rw(m_kaneko_spr, FUNC(kaneko16_sprite_device::kaneko16_sprites_regs_r), FUNC(kaneko16_sprite_device::kaneko16_sprites_regs_w)); - map(0xb00000, 0xb0001f).rw("view2_1", FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_w)); - map(0xa00000, 0xa00001).r("watchdog", FUNC(watchdog_timer_device::reset16_r)); // Watchdog + map(0xb00000, 0xb0001f).rw(m_view2[1], FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_w)); + map(0xa00000, 0xa00001).r(m_watchdog, FUNC(watchdog_timer_device::reset16_r)); // Watchdog map(0xc00000, 0xc00001).portr("DSW_P1"); map(0xc00002, 0xc00003).portr("P2"); map(0xc00004, 0xc00005).portr("SYSTEM"); @@ -636,25 +630,25 @@ WRITE16_MEMBER(kaneko16_shogwarr_state::shogwarr_oki_bank_w) } } -void kaneko16_shogwarr_state::shogwarr(address_map &map) +void kaneko16_shogwarr_state::shogwarr_map(address_map &map) { map(0x000000, 0x03ffff).rom(); // ROM - map(0x100000, 0x10ffff).ram().share("mainram"); // Work RAM - map(0x200000, 0x20ffff).ram().share("mcuram"); + map(0x100000, 0x10ffff).ram().share(m_mainram); // Work RAM + map(0x200000, 0x20ffff).ram().share(m_mcuram); map(0x280000, 0x280001).w(m_calc3_prot, FUNC(kaneko_calc3_device::mcu_com0_w)); map(0x290000, 0x290001).w(m_calc3_prot, FUNC(kaneko_calc3_device::mcu_com1_w)); map(0x2b0000, 0x2b0001).w(m_calc3_prot, FUNC(kaneko_calc3_device::mcu_com2_w)); //map(0x2c0000, 0x2c0001) // run calc 3? or irq ack? map(0x2d0000, 0x2d0001).w(m_calc3_prot, FUNC(kaneko_calc3_device::mcu_com3_w)); map(0x380000, 0x380fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palette - map(0x400001, 0x400001).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Samples - map(0x480001, 0x480001).rw("oki2", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x400001, 0x400001).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Samples + map(0x480001, 0x480001).rw(m_oki[1], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x580000, 0x581fff).ram().share("spriteram"); // Sprites - map(0x600000, 0x603fff).rw("view2_0", FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_w)); - map(0x800000, 0x80001f).rw("view2_0", FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_w)); + map(0x600000, 0x603fff).rw(m_view2[0], FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_vram_w)); + map(0x800000, 0x80001f).rw(m_view2[0], FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_r), FUNC(kaneko_view2_tilemap_device::kaneko_tmap_regs_w)); map(0x900000, 0x90001f).rw(m_kaneko_spr, FUNC(kaneko16_sprite_device::kaneko16_sprites_regs_r), FUNC(kaneko16_sprite_device::kaneko16_sprites_regs_w)); - map(0xa00000, 0xa0007f).rw("kan_hit", FUNC(kaneko_hit_device::kaneko_hit_r), FUNC(kaneko_hit_device::kaneko_hit_w)); - map(0xa80000, 0xa80001).rw("watchdog", FUNC(watchdog_timer_device::reset16_r), FUNC(watchdog_timer_device::reset16_w)); + map(0xa00000, 0xa0007f).rw(m_kaneko_hit, FUNC(kaneko_hit_device::kaneko_hit_r), FUNC(kaneko_hit_device::kaneko_hit_w)); + map(0xa80000, 0xa80001).rw(m_watchdog, FUNC(watchdog_timer_device::reset16_r), FUNC(watchdog_timer_device::reset16_w)); map(0xb80000, 0xb80001).portr("P1"); map(0xb80002, 0xb80003).portr("P2"); map(0xb80004, 0xb80005).portr("SYSTEM"); @@ -685,7 +679,7 @@ void kaneko16_state::blazeon_soundmem(address_map &map) void kaneko16_state::blazeon_soundport(address_map &map) { map.global_mask(0xff); - map(0x02, 0x03).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); + map(0x02, 0x03).rw(m_ymsnd, FUNC(ym2151_device::read), FUNC(ym2151_device::write)); map(0x06, 0x06).r(m_soundlatch, FUNC(generic_latch_8_device::read)); } @@ -697,9 +691,9 @@ void kaneko16_state::wingforc_soundport(address_map &map) { map.global_mask(0xff); // map(0x00, 0x00) // 02 written at boot - map(0x02, 0x03).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); + map(0x02, 0x03).rw(m_ymsnd, FUNC(ym2151_device::read), FUNC(ym2151_device::write)); map(0x06, 0x06).r(m_soundlatch, FUNC(generic_latch_8_device::read)); - map(0x0a, 0x0a).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x0a, 0x0a).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x0c, 0x0c).w(FUNC(kaneko16_state::oki_bank0_w<0x3>)); } @@ -1777,38 +1771,37 @@ TIMER_DEVICE_CALLBACK_MEMBER(kaneko16_state::kaneko16_interrupt) MACHINE_CONFIG_START(kaneko16_berlwall_state::berlwall) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* MC68000P12 */ - MCFG_DEVICE_PROGRAM_MAP(berlwall) + M68000(config, m_maincpu, 12000000); /* MC68000P12 */ + m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_berlwall_state::berlwall_map); MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kaneko16_state, kaneko16_interrupt, "screen", 0, 1) - MCFG_WATCHDOG_ADD("watchdog") + WATCHDOG_TIMER(config, m_watchdog); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_ADD(m_screen, RASTER) // MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) // mangled sprites otherwise MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_berlwall) -// MCFG_SCREEN_PALETTE("palette") - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_1x4bit_1x4bit) - MCFG_PALETTE_ADD("palette", 2048 ) + MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_1x4bit_1x4bit) + MCFG_PALETTE_ADD(m_palette, 2048) MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) - MCFG_PALETTE_ADD("bgpalette", 32768) /* 32768 static colors for the bg */ + MCFG_PALETTE_ADD(m_bgpalette, 32768) /* 32768 static colors for the bg */ MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) MCFG_PALETTE_INIT_OWNER(kaneko16_berlwall_state,berlwall) - MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0) - MCFG_KANEKO_TMAP_GFX_REGION(1) - MCFG_KANEKO_TMAP_OFFSET(0x5b, -0x8, 256, 240+16) - MCFG_KANEKO_TMAP_GFXDECODE("gfxdecode") + KANEKO_TMAP(config, m_view2[0]); + m_view2[0]->set_gfx_region(1); + m_view2[0]->set_offset(0x5b, -0x8, 256, 240+16); + m_view2[0]->set_gfxdecode_tag("gfxdecode"); - MCFG_DEVICE_ADD_VU002_SPRITES - MCFG_KANEKO16_SPRITE_OFFSETS(0, -1*64) - MCFG_KANEKO16_SPRITE_GFXDECODE("gfxdecode") + KANEKO_VU002_SPRITE(config, m_kaneko_spr); + m_kaneko_spr->set_offsets(0, -1*64); + m_kaneko_spr->set_gfxdecode_tag("gfxdecode"); MCFG_VIDEO_START_OVERRIDE(kaneko16_berlwall_state,berlwall) @@ -1816,17 +1809,17 @@ MACHINE_CONFIG_START(kaneko16_berlwall_state::berlwall) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ym2149_1", YM2149, 1000000) + device = &YM2149(config, m_ym2149[0], 1000000); + m_ym2149[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1")) MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2")) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_DEVICE_ADD("ym2149_2", YM2149, 1000000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) + MCFG_DEVICE_ADD(m_ym2149[1], YM2149, 1000000) + m_ym2149[1]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); - MCFG_DEVICE_ADD("oki1", OKIM6295, 12000000/6, okim6295_device::PIN7_LOW) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) + OKIM6295(config, m_oki[0], 12000000/6, okim6295_device::PIN7_LOW); + m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0); + m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); MACHINE_CONFIG_END @@ -1843,62 +1836,59 @@ void kaneko16_state::bakubrkr_oki1_map(address_map &map) MACHINE_CONFIG_START(kaneko16_state::bakubrkr) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(12'000'000)) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(bakubrkr) + M68000(config, m_maincpu, XTAL(12'000'000)); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_state::bakubrkr_map); MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kaneko16_state, kaneko16_interrupt, "screen", 0, 1) MCFG_MACHINE_RESET_OVERRIDE(kaneko16_state,gtmr) - MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT) + MCFG_DEVICE_ADD(m_eeprom, EEPROM_SERIAL_93C46_16BIT) - MCFG_WATCHDOG_ADD("watchdog") + WATCHDOG_TIMER(config, m_watchdog); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_ADD(m_screen, RASTER) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) // mangled sprites otherwise MCFG_SCREEN_REFRESH_RATE(59) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) MCFG_SCREEN_UPDATE_DRIVER(kaneko16_state, screen_update_kaneko16) - MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_PALETTE(m_palette) - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_1x4bit_2x4bit) - MCFG_PALETTE_ADD("palette", 2048) + MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_1x4bit_2x4bit) + MCFG_PALETTE_ADD(m_palette, 2048) MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) - MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0) - MCFG_KANEKO_TMAP_GFX_REGION(1) - MCFG_KANEKO_TMAP_OFFSET(0x5b, -0x8, 256, 240) - MCFG_KANEKO_TMAP_GFXDECODE("gfxdecode") - - MCFG_DEVICE_ADD("view2_1", KANEKO_TMAP, 0) - MCFG_KANEKO_TMAP_GFX_REGION(2) - MCFG_KANEKO_TMAP_OFFSET(0x5b, -0x8, 256, 240) - MCFG_KANEKO_TMAP_GFXDECODE("gfxdecode") - - MCFG_DEVICE_ADD_VU002_SPRITES - MCFG_KANEKO16_SPRITE_PRIORITIES(8,8,8,8) // above all - MCFG_KANEKO16_SPRITE_GFXDECODE("gfxdecode") - + KANEKO_TMAP(config, m_view2[0]); + m_view2[0]->set_gfx_region(1); + m_view2[0]->set_offset(0x5b, -0x8, 256, 240); + m_view2[0]->set_gfxdecode_tag("gfxdecode"); + KANEKO_TMAP(config, m_view2[1]); + m_view2[1]->set_gfx_region(2); + m_view2[1]->set_offset(0x5b, -0x8, 256, 240); + m_view2[1]->set_gfxdecode_tag("gfxdecode"); + KANEKO_VU002_SPRITE(config, m_kaneko_spr); + m_kaneko_spr->set_priorities(8,8,8,8); // above all + m_kaneko_spr->set_gfxdecode_tag("gfxdecode"); MCFG_VIDEO_START_OVERRIDE(kaneko16_state,kaneko16) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ym2149_1", YM2149, XTAL(12'000'000)/6) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + YM2149(config, m_ym2149[0], XTAL(12'000'000)/6); /* verified on pcb */ + m_ym2149[0]->add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("ym2149_2", YM2149, XTAL(12'000'000)/6) /* verified on pcb */ + device = &YM2149(config, m_ym2149[1], XTAL(12'000'000)/6); /* verified on pcb */ + m_ym2149[1]->add_route(ALL_OUTPUTS, "mono", 1.0); MCFG_AY8910_PORT_A_READ_CB(READ8(*this, kaneko16_state, eeprom_r)) /* inputs A: 0,EEPROM bit read */ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(*this, kaneko16_state, eeprom_w)) /* outputs B: 0,EEPROM reset */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(12'000'000)/6, okim6295_device::PIN7_HIGH) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, bakubrkr_oki1_map) + OKIM6295(config, m_oki[0], XTAL(12'000'000)/6, okim6295_device::PIN7_HIGH); /* verified on pcb */ + m_oki[0]->set_addrmap(0, &kaneko16_state::bakubrkr_oki1_map); + m_oki[0]->add_route(ALL_OUTPUTS, "mono", 1.0); MACHINE_CONFIG_END @@ -1919,37 +1909,37 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(kaneko16_state::blazeon) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,12000000) /* TMP68HC000-12 */ - MCFG_DEVICE_PROGRAM_MAP(blazeon) + M68000(config, m_maincpu, 12000000); /* TMP68HC000-12 */ + m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_state::blazeon_map); MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kaneko16_state, kaneko16_interrupt, "screen", 0, 1) - MCFG_DEVICE_ADD("audiocpu", Z80,4000000) /* D780C-2 (6 MHz) */ - MCFG_DEVICE_PROGRAM_MAP(blazeon_soundmem) - MCFG_DEVICE_IO_MAP(blazeon_soundport) + Z80(config, m_audiocpu, 4000000); /* D780C-2 (6 MHz) */ + m_audiocpu->set_addrmap(AS_PROGRAM, &kaneko16_state::blazeon_soundmem); + m_audiocpu->set_addrmap(AS_IO, &kaneko16_state::blazeon_soundport); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_ADD(m_screen, RASTER) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1 -8) MCFG_SCREEN_UPDATE_DRIVER(kaneko16_state, screen_update_kaneko16) - MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_PALETTE(m_palette) - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_1x4bit_1x4bit) - MCFG_PALETTE_ADD("palette", 2048) + MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_1x4bit_1x4bit) + MCFG_PALETTE_ADD(m_palette, 2048) MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) - MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0) - MCFG_KANEKO_TMAP_GFX_REGION(1) - MCFG_KANEKO_TMAP_OFFSET(0x33, 0x8, 320, 240) - MCFG_KANEKO_TMAP_GFXDECODE("gfxdecode") + KANEKO_TMAP(config, m_view2[0], 0); + m_view2[0]->set_gfx_region(1); + m_view2[0]->set_offset(0x33, 0x8, 320, 240); + m_view2[0]->set_gfxdecode_tag("gfxdecode"); - MCFG_DEVICE_ADD_VU002_SPRITES - MCFG_KANEKO16_SPRITE_PRIORITIES(1 /* "above tile[0], below the others" */ ,2 /* "above tile[0-1], below the others" */ ,8 /* above all */,8 /* above all */) - MCFG_KANEKO16_SPRITE_OFFSETS(0x10000 - 0x680, 0x000) - MCFG_KANEKO16_SPRITE_GFXDECODE("gfxdecode") + KANEKO_VU002_SPRITE(config, m_kaneko_spr); + m_kaneko_spr->set_priorities(1 /* "above tile[0], below the others" */ ,2 /* "above tile[0-1], below the others" */ ,8 /* above all */,8 /* above all */); + m_kaneko_spr->set_offsets(0x10000 - 0x680, 0x000); + m_kaneko_spr->set_gfxdecode_tag("gfxdecode"); // there is actually a 2nd sprite chip! looks like our device emulation handles both at once @@ -1962,7 +1952,7 @@ MACHINE_CONFIG_START(kaneko16_state::blazeon) MCFG_GENERIC_LATCH_8_ADD("soundlatch") MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", INPUT_LINE_NMI)) - MCFG_DEVICE_ADD("ymsnd", YM2151, 4000000) + MCFG_DEVICE_ADD(m_ymsnd, YM2151, 4000000) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -1975,37 +1965,37 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(kaneko16_state::wingforc) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)) /* TMP68HC000N-16 */ - MCFG_DEVICE_PROGRAM_MAP(blazeon) + M68000(config, m_maincpu, XTAL(16'000'000)); /* TMP68HC000N-16 */ + m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_state::blazeon_map); MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kaneko16_state, kaneko16_interrupt, "screen", 0, 1) - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/4) /* D780C-2 (6 MHz) */ - MCFG_DEVICE_PROGRAM_MAP(blazeon_soundmem) - MCFG_DEVICE_IO_MAP(wingforc_soundport) + Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* D780C-2 (6 MHz) */ + m_audiocpu->set_addrmap(AS_PROGRAM, &kaneko16_state::blazeon_soundmem); + m_audiocpu->set_addrmap(AS_IO, &kaneko16_state::wingforc_soundport); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_ADD(m_screen, RASTER) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_REFRESH_RATE(59.1854) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1 -16) MCFG_SCREEN_UPDATE_DRIVER(kaneko16_state, screen_update_kaneko16) - MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_PALETTE(m_palette) - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_1x4bit_1x4bit) - MCFG_PALETTE_ADD("palette", 2048) + MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_1x4bit_1x4bit) + MCFG_PALETTE_ADD(m_palette, 2048) MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) - MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0) - MCFG_KANEKO_TMAP_GFX_REGION(1) - MCFG_KANEKO_TMAP_OFFSET(0x33, 0x8+1, 320, 240) - MCFG_KANEKO_TMAP_GFXDECODE("gfxdecode") + KANEKO_TMAP(config, m_view2[0]); + m_view2[0]->set_gfx_region(1); + m_view2[0]->set_offset(0x33, 0x8+1, 320, 240); + m_view2[0]->set_gfxdecode_tag("gfxdecode"); - MCFG_DEVICE_ADD_VU002_SPRITES - MCFG_KANEKO16_SPRITE_PRIORITIES(1 /* "above tile[0], below the others" */ ,2 /* "above tile[0-1], below the others" */ ,8 /* above all */,8 /* above all */) - MCFG_KANEKO16_SPRITE_OFFSETS(0x10000 - 0x680, 0x000) - MCFG_KANEKO16_SPRITE_GFXDECODE("gfxdecode") + KANEKO_VU002_SPRITE(config, m_kaneko_spr); + m_kaneko_spr->set_priorities(1 /* "above tile[0], below the others" */ ,2 /* "above tile[0-1], below the others" */ ,8 /* above all */,8 /* above all */); + m_kaneko_spr->set_offsets(0x10000 - 0x680, 0x000); + m_kaneko_spr->set_gfxdecode_tag("gfxdecode"); // there is actually a 2nd sprite chip! looks like our device emulation handles both at once @@ -2014,15 +2004,15 @@ MACHINE_CONFIG_START(kaneko16_state::wingforc) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_GENERIC_LATCH_8_ADD("soundlatch") + MCFG_GENERIC_LATCH_8_ADD(m_soundlatch) MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", INPUT_LINE_NMI)) - MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(16'000'000)/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.4) + YM2151(config, m_ymsnd, XTAL(16'000'000)/4); + m_ymsnd->add_route(ALL_OUTPUTS, "mono", 0.4); - MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, bakubrkr_oki1_map) + OKIM6295(config, m_oki[0], XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH); + m_oki[0]->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki[0]->set_addrmap(0, &kaneko16_state::bakubrkr_oki1_map); MACHINE_CONFIG_END @@ -2054,67 +2044,65 @@ void kaneko16_state::gtmr_oki2_map(address_map &map) MACHINE_CONFIG_START(kaneko16_gtmr_state::gtmr) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(gtmr_map) + M68000(config, m_maincpu, XTAL(16'000'000)); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_gtmr_state::gtmr_map); MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kaneko16_state, kaneko16_interrupt, "screen", 0, 1) MCFG_MACHINE_RESET_OVERRIDE(kaneko16_gtmr_state,gtmr) - MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT) + EEPROM_SERIAL_93C46_16BIT(config, m_eeprom); - MCFG_WATCHDOG_ADD("watchdog") + WATCHDOG_TIMER(config, m_watchdog); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_ADD(m_screen, RASTER) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) MCFG_SCREEN_UPDATE_DRIVER(kaneko16_state, screen_update_kaneko16) - MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_PALETTE(m_palette) - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_1x8bit_2x4bit) - MCFG_PALETTE_ADD("palette", 32768) + MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_1x8bit_2x4bit) + MCFG_PALETTE_ADD(m_palette, 32768) MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) - MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0) - MCFG_KANEKO_TMAP_GFX_REGION(1) - MCFG_KANEKO_TMAP_OFFSET(0x33, 0x0, 320, 240) - MCFG_KANEKO_TMAP_GFXDECODE("gfxdecode") + KANEKO_TMAP(config, m_view2[0]); + m_view2[0]->set_gfx_region(1); + m_view2[0]->set_offset(0x33, 0x00, 320, 240); + m_view2[0]->set_gfxdecode_tag("gfxdecode"); - MCFG_DEVICE_ADD("view2_1", KANEKO_TMAP, 0) - MCFG_KANEKO_TMAP_GFX_REGION(2) - MCFG_KANEKO_TMAP_OFFSET(0x33, 0x0, 320, 240) - MCFG_KANEKO_TMAP_GFXDECODE("gfxdecode") + KANEKO_TMAP(config, m_view2[1]); + m_view2[1]->set_gfx_region(2); + m_view2[1]->set_offset(0x33, 0x00, 320, 240); + m_view2[1]->set_gfxdecode_tag("gfxdecode"); - MCFG_DEVICE_ADD_KC002_SPRITES - MCFG_KANEKO16_SPRITE_GFXDECODE("gfxdecode") + KANEKO_KC002_SPRITE(config, m_kaneko_spr); + m_kaneko_spr->set_gfxdecode_tag("gfxdecode"); - MCFG_DEVICE_ADD("toybox", KANEKO_TOYBOX, 0) + KANEKO_TOYBOX(config, m_toybox, m_eeprom, m_dsw_port, m_mcuram, "mcudata"); /* part of the toybox? */ - MCFG_DEVICE_ADD("kan_hit", KANEKO_HIT, 0) - MCFG_KANEKO_HIT_TYPE(1) - + KANEKO_HIT(config, m_kaneko_hit); + m_kaneko_hit->set_type(1); MCFG_VIDEO_START_OVERRIDE(kaneko16_gtmr_state,kaneko16) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(16'000'000)/8, okim6295_device::PIN7_LOW) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_DEVICE_ADDRESS_MAP(0, gtmr_oki1_map) + OKIM6295(config, m_oki[0], XTAL(16'000'000)/8, okim6295_device::PIN7_LOW); /* verified on pcb */ + m_oki[0]->add_route(ALL_OUTPUTS, "mono", 0.5); + m_oki[0]->set_addrmap(0, &kaneko16_gtmr_state::gtmr_oki1_map); - MCFG_DEVICE_ADD("oki2", OKIM6295, XTAL(16'000'000)/8, okim6295_device::PIN7_LOW) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_DEVICE_ADDRESS_MAP(0, gtmr_oki2_map) + OKIM6295(config, m_oki[1], XTAL(16'000'000)/8, okim6295_device::PIN7_LOW); /* verified on pcb */ + m_oki[1]->add_route(ALL_OUTPUTS, "mono", 0.5); + m_oki[1]->set_addrmap(0, &kaneko16_gtmr_state::gtmr_oki2_map); MACHINE_CONFIG_END MACHINE_CONFIG_START(kaneko16_gtmr_state::gtmre) gtmr(config); - MCFG_DEVICE_MODIFY("toybox") - MCFG_TOYBOX_TABLE_TYPE(ALT) + m_toybox->set_table(kaneko_toybox_device::TABLE_ALT); MACHINE_CONFIG_END /*************************************************************************** @@ -2123,10 +2111,7 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(kaneko16_gtmr_state::gtmr2) gtmre(config); - - /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(gtmr2_map) + m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_gtmr_state::gtmr2_map); MACHINE_CONFIG_END /*************************************************************************** @@ -2137,16 +2122,10 @@ MACHINE_CONFIG_START(kaneko16_gtmr_state::bloodwar) gtmr(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(bloodwar) - - MCFG_MACHINE_RESET_OVERRIDE(kaneko16_gtmr_state, gtmr ) - - MCFG_DEVICE_MODIFY("kan_spr") - MCFG_KANEKO16_SPRITE_PRIORITIES(2 /* never used? */ ,3 /* character selection / vs. portraits */ ,5 /* winning portrait*/ ,7 /* ? */) - - + m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_gtmr_state::bloodwar_map); + MCFG_MACHINE_RESET_OVERRIDE(kaneko16_gtmr_state, gtmr) + m_kaneko_spr->set_priorities(2 /* never used? */ ,3 /* character selection / vs. portraits */ ,5 /* winning portrait*/ ,7 /* ? */); MACHINE_CONFIG_END @@ -2159,21 +2138,13 @@ MACHINE_CONFIG_START(kaneko16_gtmr_state::bonkadv) gtmr(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(bonkadv) - - MCFG_MACHINE_RESET_OVERRIDE(kaneko16_gtmr_state, gtmr ) - - MCFG_DEVICE_MODIFY("kan_spr") - MCFG_KANEKO16_SPRITE_PRIORITIES(2 /* never used? */ ,3 /* volcano lava on level 2 */ ,5 /* in-game player */ ,7 /* demostration text */) - - - MCFG_DEVICE_MODIFY("toybox") - MCFG_TOYBOX_GAME_TYPE(BONK) - MCFG_DEVICE_MODIFY("kan_hit") - MCFG_KANEKO_HIT_TYPE(0) + m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_gtmr_state::bonkadv_map); + MCFG_MACHINE_RESET_OVERRIDE(kaneko16_gtmr_state, gtmr) + m_kaneko_spr->set_priorities(2 /* never used? */ ,3 /* volcano lava on level 2 */ ,5 /* in-game player */ ,7 /* demostration text */); + m_toybox->set_game_type(kaneko_toybox_device::GAME_BONK); + m_kaneko_hit->set_type(0); MACHINE_CONFIG_END /*************************************************************************** @@ -2181,62 +2152,60 @@ MACHINE_CONFIG_END ***************************************************************************/ MACHINE_CONFIG_START(kaneko16_state::mgcrystl) - /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(12'000'000)) /* verified on pcb, TMP68HC000N-12 @U31 and X2 is 12MHz */ - MCFG_DEVICE_PROGRAM_MAP(mgcrystl) + M68000(config, m_maincpu, XTAL(12'000'000)); /* verified on pcb, TMP68HC000N-12 @U31 and X2 is 12MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_state::mgcrystl_map); MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kaneko16_state, kaneko16_interrupt, "screen", 0, 1) MCFG_MACHINE_RESET_OVERRIDE(kaneko16_state,mgcrystl) - MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT) - MCFG_WATCHDOG_ADD("watchdog") + EEPROM_SERIAL_93C46_16BIT(config, m_eeprom); + + WATCHDOG_TIMER(config, m_watchdog); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_ADD(m_screen, RASTER) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) MCFG_SCREEN_UPDATE_DRIVER(kaneko16_state, screen_update_kaneko16) - MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_PALETTE(m_palette) - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_1x4bit_2x4bit) - MCFG_PALETTE_ADD("palette", 2048) + MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_1x4bit_2x4bit) + MCFG_PALETTE_ADD(m_palette, 2048) MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) - MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0) - MCFG_KANEKO_TMAP_GFX_REGION(1) - MCFG_KANEKO_TMAP_OFFSET(0x5b, -0x8, 256, 240) - MCFG_KANEKO_TMAP_GFXDECODE("gfxdecode") - - MCFG_DEVICE_ADD("view2_1", KANEKO_TMAP, 0) - MCFG_KANEKO_TMAP_GFX_REGION(2) - MCFG_KANEKO_TMAP_OFFSET(0x5b, -0x8, 256, 240) - MCFG_KANEKO_TMAP_GFXDECODE("gfxdecode") - - MCFG_DEVICE_ADD_VU002_SPRITES - MCFG_KANEKO16_SPRITE_PRIORITIES(2 /* below all */ ,3 /* above tile[0], below the other */ ,5 /* above all */ ,7 /* above all */) - MCFG_KANEKO16_SPRITE_GFXDECODE("gfxdecode") + KANEKO_TMAP(config, m_view2[0]); + m_view2[0]->set_gfx_region(1); + m_view2[0]->set_offset(0x5b, -0x8, 256, 240); + m_view2[0]->set_gfxdecode_tag("gfxdecode"); + KANEKO_TMAP(config, m_view2[1]); + m_view2[1]->set_gfx_region(2); + m_view2[1]->set_offset(0x5b, -0x8, 256, 240); + m_view2[1]->set_gfxdecode_tag("gfxdecode"); + KANEKO_VU002_SPRITE(config, m_kaneko_spr); + m_kaneko_spr->set_priorities(2 /* below all */ ,3 /* above tile[0], below the other */ ,5 /* above all */ ,7 /* above all */); + m_kaneko_spr->set_gfxdecode_tag("gfxdecode"); MCFG_VIDEO_START_OVERRIDE(kaneko16_state,kaneko16) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ym2149_1", YM2149, XTAL(12'000'000)/6) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + YM2149(config, m_ym2149[0], XTAL(12'000'000)/6); /* verified on pcb */ + m_ym2149[0]->add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("ym2149_2", YM2149, XTAL(12'000'000)/6) /* verified on pcb */ + device = &YM2149(config, m_ym2149[1], XTAL(12'000'000)/6); /* verified on pcb */ + m_ym2149[1]->add_route(ALL_OUTPUTS, "mono", 1.0); MCFG_AY8910_PORT_A_READ_CB(READ8(*this, kaneko16_state, eeprom_r)) /* inputs A: 0,EEPROM bit read */ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(*this, kaneko16_state, eeprom_w)) /* outputs B: 0,EEPROM reset */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(12'000'000)/6, okim6295_device::PIN7_HIGH) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + OKIM6295(config, m_oki[0], XTAL(12'000'000)/6, okim6295_device::PIN7_HIGH); /* verified on pcb */ + m_oki[0]->add_route(ALL_OUTPUTS, "mono", 1.0); MACHINE_CONFIG_END @@ -2303,60 +2272,59 @@ static const uint16_t shogwarr_default_eeprom[64] = { MACHINE_CONFIG_START(kaneko16_shogwarr_state::shogwarr) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(12'000'000)) - MCFG_DEVICE_PROGRAM_MAP(shogwarr) + M68000(config, m_maincpu, XTAL(12'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_shogwarr_state::shogwarr_map); MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kaneko16_shogwarr_state, shogwarr_interrupt, "screen", 0, 1) MCFG_MACHINE_RESET_OVERRIDE(kaneko16_shogwarr_state,mgcrystl) - MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT) - MCFG_EEPROM_DATA(shogwarr_default_eeprom, 128) + EEPROM_SERIAL_93C46_16BIT(config, m_eeprom); + m_eeprom->set_default_data(shogwarr_default_eeprom, 128); - MCFG_WATCHDOG_ADD("watchdog") + WATCHDOG_TIMER(config, m_watchdog); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_ADD(m_screen, RASTER) MCFG_SCREEN_REFRESH_RATE(59.1854) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(40, 296-1, 16, 240-1) MCFG_SCREEN_UPDATE_DRIVER(kaneko16_state, screen_update_kaneko16) - MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_PALETTE(m_palette) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_1x4bit_1x4bit) - MCFG_PALETTE_ADD("palette", 2048) + MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_1x4bit_1x4bit) + MCFG_PALETTE_ADD(m_palette, 2048) MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) - MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0) - MCFG_KANEKO_TMAP_GFX_REGION(1) - MCFG_KANEKO_TMAP_OFFSET(0x33, -0x8, 320, 240) - MCFG_KANEKO_TMAP_GFXDECODE("gfxdecode") - - MCFG_VIDEO_START_OVERRIDE(kaneko16_shogwarr_state,kaneko16) + KANEKO_TMAP(config, m_view2[0]); + m_view2[0]->set_gfx_region(1); + m_view2[0]->set_offset(0x33, -0x8, 320, 240); + m_view2[0]->set_gfxdecode_tag("gfxdecode"); - MCFG_DEVICE_ADD_VU002_SPRITES - MCFG_KANEKO16_SPRITE_PRIORITIES(1 /* below all */ ,3 /* above tile[0], below the others */ ,5 /* above all */ ,7 /* above all */) - MCFG_KANEKO16_SPRITE_OFFSETS(0xa00, -0x40) - MCFG_KANEKO16_SPRITE_FLIPTYPE(1) - MCFG_KANEKO16_SPRITE_GFXDECODE("gfxdecode") + MCFG_VIDEO_START_OVERRIDE(kaneko16_shogwarr_state, kaneko16) - MCFG_DEVICE_ADD("kan_hit", KANEKO_HIT, 0) - MCFG_KANEKO_HIT_TYPE(1) + KANEKO_VU002_SPRITE(config, m_kaneko_spr); + m_kaneko_spr->set_priorities(1 /* below all */ ,3 /* above tile[0], below the others */ ,5 /* above all */ ,7 /* above all */); + m_kaneko_spr->set_offsets(0xa00, -0x40); + m_kaneko_spr->set_fliptype(1); + m_kaneko_spr->set_gfxdecode_tag("gfxdecode"); - MCFG_DEVICE_ADD("calc3_prot", KANEKO_CALC3, 0) + KANEKO_HIT(config, m_kaneko_hit); + m_kaneko_hit->set_type(1); + KANEKO_CALC3(config, m_calc3_prot, m_maincpu, m_eeprom, "calc3_rom"); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(16'000'000)/8, okim6295_device::PIN7_LOW) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, gtmr_oki1_map) + OKIM6295(config, m_oki[0], XTAL(16'000'000)/8, okim6295_device::PIN7_LOW); + m_oki[0]->set_addrmap(0, &kaneko16_shogwarr_state::gtmr_oki1_map); + m_oki[0]->add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("oki2", OKIM6295, XTAL(16'000'000)/8, okim6295_device::PIN7_LOW) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, gtmr_oki2_map) + OKIM6295(config, m_oki[1], XTAL(16'000'000)/8, okim6295_device::PIN7_LOW); + m_oki[1]->set_addrmap(0, &kaneko16_shogwarr_state::gtmr_oki2_map); + m_oki[1]->add_route(ALL_OUTPUTS, "mono", 1.0); MACHINE_CONFIG_END @@ -2380,15 +2348,9 @@ void kaneko16_shogwarr_state::brapboys_oki2_map(address_map &map) MACHINE_CONFIG_START(kaneko16_shogwarr_state::brapboys) shogwarr(config); - MCFG_DEVICE_MODIFY("oki2") - MCFG_DEVICE_ADDRESS_MAP(0, brapboys_oki2_map) - - MCFG_DEVICE_MODIFY("kan_hit") - MCFG_KANEKO_HIT_TYPE(2) - - MCFG_DEVICE_REMOVE("eeprom") - MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT) - MCFG_EEPROM_DATA(brapboys_default_eeprom, 128) + m_oki[1]->set_addrmap(0, &kaneko16_shogwarr_state::brapboys_oki2_map); + m_kaneko_hit->set_type(2); + m_eeprom->set_default_data(brapboys_default_eeprom, 128); MACHINE_CONFIG_END /*************************************************************************** @@ -2526,10 +2488,8 @@ explanation ingame. // Sprite DMA decryption? @see berlwall_spriteram_r void kaneko16_berlwall_state::patch_protection(uint32_t bra_offset,uint16_t bra_value,uint16_t checksum) { - uint16_t *ROM = (uint16_t *)memregion("maincpu")->base(); - - ROM[bra_offset/2] = bra_value; - ROM[0x3fffe/2] = checksum; + m_mainregion[bra_offset/2] = bra_value; + m_mainregion[0x3fffe/2] = checksum; } void kaneko16_berlwall_state::init_berlwall_common() |