diff options
Diffstat (limited to 'src/mame/drivers/toaplan1.cpp')
-rw-r--r-- | src/mame/drivers/toaplan1.cpp | 607 |
1 files changed, 310 insertions, 297 deletions
diff --git a/src/mame/drivers/toaplan1.cpp b/src/mame/drivers/toaplan1.cpp index bbba1483fd8..789cd22b033 100644 --- a/src/mame/drivers/toaplan1.cpp +++ b/src/mame/drivers/toaplan1.cpp @@ -623,43 +623,43 @@ void toaplan1_rallybik_state::rallybik_main_map(address_map &map) map(0x040000, 0x07ffff).rom(); map(0x080000, 0x083fff).ram(); map(0x0c0000, 0x0c0fff).ram().share("spriteram"); - map(0x100001, 0x100001).w(FUNC(toaplan1_rallybik_state::bcu_flipscreen_w)); - map(0x100002, 0x100003).rw(FUNC(toaplan1_rallybik_state::tileram_offs_r), FUNC(toaplan1_rallybik_state::tileram_offs_w)); - map(0x100004, 0x100007).rw(FUNC(toaplan1_rallybik_state::tileram_r), FUNC(toaplan1_rallybik_state::tileram_w)); - map(0x100010, 0x10001f).rw(FUNC(toaplan1_rallybik_state::scroll_regs_r), FUNC(toaplan1_rallybik_state::scroll_regs_w)); + map(0x100000, 0x100001).w(FUNC(toaplan1_rallybik_state::toaplan1_bcu_flipscreen_w)); + map(0x100002, 0x100003).rw(FUNC(toaplan1_rallybik_state::toaplan1_tileram_offs_r), FUNC(toaplan1_rallybik_state::toaplan1_tileram_offs_w)); + map(0x100004, 0x100007).rw(FUNC(toaplan1_rallybik_state::rallybik_tileram16_r), FUNC(toaplan1_rallybik_state::toaplan1_tileram16_w)); + map(0x100010, 0x10001f).rw(FUNC(toaplan1_rallybik_state::toaplan1_scroll_regs_r), FUNC(toaplan1_rallybik_state::toaplan1_scroll_regs_w)); map(0x140000, 0x140001).portr("VBLANK"); -// map(0x140000, 0x140001).w(?? video frame related ??) - map(0x140003, 0x140003).w(FUNC(toaplan1_rallybik_state::intenable_w)); - map(0x140008, 0x14000f).w(FUNC(toaplan1_rallybik_state::bcu_control_w)); - map(0x144000, 0x1447ff).ram().w(FUNC(toaplan1_rallybik_state::bgpalette_w)).share("bgpalette"); - map(0x146000, 0x1467ff).ram().w(FUNC(toaplan1_rallybik_state::fgpalette_w)).share("fgpalette"); - map(0x180000, 0x180fff).rw(FUNC(toaplan1_rallybik_state::shared_r), FUNC(toaplan1_rallybik_state::shared_w)).umask16(0x00ff); - map(0x1c0000, 0x1c0003).w(FUNC(toaplan1_rallybik_state::tile_offsets_w)); - map(0x1c8001, 0x1c8001).w(FUNC(toaplan1_rallybik_state::reset_sound_w)); +// AM_RANGE(0x140000, 0x140001) AM_WRITE(?? video frame related ??) + map(0x140002, 0x140003).w(FUNC(toaplan1_rallybik_state::toaplan1_intenable_w)); + map(0x140008, 0x14000f).w(FUNC(toaplan1_rallybik_state::toaplan1_bcu_control_w)); + map(0x144000, 0x1447ff).ram().w(FUNC(toaplan1_rallybik_state::toaplan1_bgpalette_w)).share("bgpalette"); + map(0x146000, 0x1467ff).ram().w(FUNC(toaplan1_rallybik_state::toaplan1_fgpalette_w)).share("fgpalette"); + map(0x180000, 0x180fff).rw(FUNC(toaplan1_rallybik_state::toaplan1_shared_r), FUNC(toaplan1_rallybik_state::toaplan1_shared_w)); + map(0x1c0000, 0x1c0003).w(FUNC(toaplan1_rallybik_state::toaplan1_tile_offsets_w)); + map(0x1c8000, 0x1c8001).w(FUNC(toaplan1_rallybik_state::toaplan1_reset_sound_w)); } void toaplan1_state::truxton_main_map(address_map &map) { map(0x000000, 0x03ffff).rom(); map(0x080000, 0x083fff).ram(); - map(0x0c0000, 0x0c0001).r(FUNC(toaplan1_state::frame_done_r)); - map(0x0c0002, 0x0c0003).rw(FUNC(toaplan1_state::spriteram_offs_r), FUNC(toaplan1_state::spriteram_offs_w)); - map(0x0c0004, 0x0c0005).rw(FUNC(toaplan1_state::spriteram_r), FUNC(toaplan1_state::spriteram_w)); - map(0x0c0006, 0x0c0007).rw(FUNC(toaplan1_state::spritesizeram_r), FUNC(toaplan1_state::spritesizeram_w)); - map(0x100001, 0x100001).w(FUNC(toaplan1_state::bcu_flipscreen_w)); - map(0x100002, 0x100003).rw(FUNC(toaplan1_state::tileram_offs_r), FUNC(toaplan1_state::tileram_offs_w)); - map(0x100004, 0x100007).rw(FUNC(toaplan1_state::tileram_r), FUNC(toaplan1_state::tileram_w)); - map(0x100010, 0x10001f).rw(FUNC(toaplan1_state::scroll_regs_r), FUNC(toaplan1_state::scroll_regs_w)); + map(0x0c0000, 0x0c0001).r(FUNC(toaplan1_state::toaplan1_frame_done_r)); + map(0x0c0002, 0x0c0003).rw(FUNC(toaplan1_state::toaplan1_spriteram_offs_r), FUNC(toaplan1_state::toaplan1_spriteram_offs_w)); + map(0x0c0004, 0x0c0005).rw(FUNC(toaplan1_state::toaplan1_spriteram16_r), FUNC(toaplan1_state::toaplan1_spriteram16_w)); + map(0x0c0006, 0x0c0007).rw(FUNC(toaplan1_state::toaplan1_spritesizeram16_r), FUNC(toaplan1_state::toaplan1_spritesizeram16_w)); + map(0x100000, 0x100001).w(FUNC(toaplan1_state::toaplan1_bcu_flipscreen_w)); + map(0x100002, 0x100003).rw(FUNC(toaplan1_state::toaplan1_tileram_offs_r), FUNC(toaplan1_state::toaplan1_tileram_offs_w)); + map(0x100004, 0x100007).rw(FUNC(toaplan1_state::toaplan1_tileram16_r), FUNC(toaplan1_state::toaplan1_tileram16_w)); + map(0x100010, 0x10001f).rw(FUNC(toaplan1_state::toaplan1_scroll_regs_r), FUNC(toaplan1_state::toaplan1_scroll_regs_w)); map(0x140000, 0x140001).portr("VBLANK"); -// map(0x140000, 0x140001).w(?? video frame related ??) - map(0x140003, 0x140003).w(FUNC(toaplan1_state::intenable_w)); - map(0x140008, 0x14000f).w(FUNC(toaplan1_state::bcu_control_w)); - map(0x144000, 0x1447ff).ram().w(FUNC(toaplan1_state::bgpalette_w)).share("bgpalette"); - map(0x146000, 0x1467ff).ram().w(FUNC(toaplan1_state::fgpalette_w)).share("fgpalette"); - map(0x180000, 0x180fff).rw(FUNC(toaplan1_state::shared_r), FUNC(toaplan1_state::shared_w)).umask16(0x00ff); - map(0x1c0000, 0x1c0003).w(FUNC(toaplan1_state::tile_offsets_w)); - map(0x1c0006, 0x1c0006).w(FUNC(toaplan1_state::fcu_flipscreen_w)); - map(0x1d0001, 0x1d0001).w(FUNC(toaplan1_state::reset_sound_w)); +// AM_RANGE(0x140000, 0x140001) AM_WRITE(?? video frame related ??) + map(0x140002, 0x140003).w(FUNC(toaplan1_state::toaplan1_intenable_w)); + map(0x140008, 0x14000f).w(FUNC(toaplan1_state::toaplan1_bcu_control_w)); + map(0x144000, 0x1447ff).ram().w(FUNC(toaplan1_state::toaplan1_bgpalette_w)).share("bgpalette"); + map(0x146000, 0x1467ff).ram().w(FUNC(toaplan1_state::toaplan1_fgpalette_w)).share("fgpalette"); + map(0x180000, 0x180fff).rw(FUNC(toaplan1_state::toaplan1_shared_r), FUNC(toaplan1_state::toaplan1_shared_w)); + map(0x1c0000, 0x1c0003).w(FUNC(toaplan1_state::toaplan1_tile_offsets_w)); + map(0x1c0006, 0x1c0007).w(FUNC(toaplan1_state::toaplan1_fcu_flipscreen_w)); + map(0x1d0000, 0x1d0001).w(FUNC(toaplan1_state::toaplan1_reset_sound_w)); } void toaplan1_state::hellfire_main_map(address_map &map) @@ -667,23 +667,23 @@ void toaplan1_state::hellfire_main_map(address_map &map) map(0x000000, 0x03ffff).rom(); map(0x040000, 0x047fff).ram(); map(0x080000, 0x080001).portr("VBLANK"); -// map(0x080000, 0x080001).w(?? video frame related ??) - map(0x080003, 0x080003).w(FUNC(toaplan1_state::intenable_w)); - map(0x080008, 0x08000f).w(FUNC(toaplan1_state::bcu_control_w)); - map(0x084000, 0x0847ff).ram().w(FUNC(toaplan1_state::bgpalette_w)).share("bgpalette"); - map(0x086000, 0x0867ff).ram().w(FUNC(toaplan1_state::fgpalette_w)).share("fgpalette"); - map(0x0c0000, 0x0c0fff).rw(FUNC(toaplan1_state::shared_r), FUNC(toaplan1_state::shared_w)).umask16(0x00ff); - map(0x100001, 0x100001).w(FUNC(toaplan1_state::bcu_flipscreen_w)); - map(0x100002, 0x100003).rw(FUNC(toaplan1_state::tileram_offs_r), FUNC(toaplan1_state::tileram_offs_w)); - map(0x100004, 0x100007).rw(FUNC(toaplan1_state::tileram_r), FUNC(toaplan1_state::tileram_w)); - map(0x100010, 0x10001f).rw(FUNC(toaplan1_state::scroll_regs_r), FUNC(toaplan1_state::scroll_regs_w)); - map(0x140000, 0x140001).r(FUNC(toaplan1_state::frame_done_r)); - map(0x140002, 0x140003).rw(FUNC(toaplan1_state::spriteram_offs_r), FUNC(toaplan1_state::spriteram_offs_w)); - map(0x140004, 0x140005).rw(FUNC(toaplan1_state::spriteram_r), FUNC(toaplan1_state::spriteram_w)); - map(0x140006, 0x140007).rw(FUNC(toaplan1_state::spritesizeram_r), FUNC(toaplan1_state::spritesizeram_w)); - map(0x180000, 0x180003).w(FUNC(toaplan1_state::tile_offsets_w)); - map(0x180006, 0x180006).w(FUNC(toaplan1_state::fcu_flipscreen_w)); - map(0x180009, 0x180009).w(FUNC(toaplan1_state::reset_sound_w)); +// AM_RANGE(0x080000, 0x080001) AM_WRITE(?? video frame related ??) + map(0x080002, 0x080003).w(FUNC(toaplan1_state::toaplan1_intenable_w)); + map(0x080008, 0x08000f).w(FUNC(toaplan1_state::toaplan1_bcu_control_w)); + map(0x084000, 0x0847ff).ram().w(FUNC(toaplan1_state::toaplan1_bgpalette_w)).share("bgpalette"); + map(0x086000, 0x0867ff).ram().w(FUNC(toaplan1_state::toaplan1_fgpalette_w)).share("fgpalette"); + map(0x0c0000, 0x0c0fff).rw(FUNC(toaplan1_state::toaplan1_shared_r), FUNC(toaplan1_state::toaplan1_shared_w)); + map(0x100000, 0x100001).w(FUNC(toaplan1_state::toaplan1_bcu_flipscreen_w)); + map(0x100002, 0x100003).rw(FUNC(toaplan1_state::toaplan1_tileram_offs_r), FUNC(toaplan1_state::toaplan1_tileram_offs_w)); + map(0x100004, 0x100007).rw(FUNC(toaplan1_state::toaplan1_tileram16_r), FUNC(toaplan1_state::toaplan1_tileram16_w)); + map(0x100010, 0x10001f).rw(FUNC(toaplan1_state::toaplan1_scroll_regs_r), FUNC(toaplan1_state::toaplan1_scroll_regs_w)); + map(0x140000, 0x140001).r(FUNC(toaplan1_state::toaplan1_frame_done_r)); + map(0x140002, 0x140003).rw(FUNC(toaplan1_state::toaplan1_spriteram_offs_r), FUNC(toaplan1_state::toaplan1_spriteram_offs_w)); + map(0x140004, 0x140005).rw(FUNC(toaplan1_state::toaplan1_spriteram16_r), FUNC(toaplan1_state::toaplan1_spriteram16_w)); + map(0x140006, 0x140007).rw(FUNC(toaplan1_state::toaplan1_spritesizeram16_r), FUNC(toaplan1_state::toaplan1_spritesizeram16_w)); + map(0x180000, 0x180003).w(FUNC(toaplan1_state::toaplan1_tile_offsets_w)); + map(0x180006, 0x180007).w(FUNC(toaplan1_state::toaplan1_fcu_flipscreen_w)); + map(0x180008, 0x180009).w(FUNC(toaplan1_state::toaplan1_reset_sound_w)); } void toaplan1_state::zerowing_main_map(address_map &map) @@ -691,156 +691,156 @@ void toaplan1_state::zerowing_main_map(address_map &map) map(0x000000, 0x00ffff).rom(); map(0x040000, 0x07ffff).rom(); map(0x080000, 0x087fff).ram(); - map(0x0c0000, 0x0c0003).w(FUNC(toaplan1_state::tile_offsets_w)); - map(0x0c0006, 0x0c0006).w(FUNC(toaplan1_state::fcu_flipscreen_w)); + map(0x0c0000, 0x0c0003).w(FUNC(toaplan1_state::toaplan1_tile_offsets_w)); + map(0x0c0006, 0x0c0007).w(FUNC(toaplan1_state::toaplan1_fcu_flipscreen_w)); map(0x400000, 0x400001).portr("VBLANK"); -// map(0x400000, 0x400001).w(?? video frame related ??) - map(0x400003, 0x400003).w(FUNC(toaplan1_state::intenable_w)); - map(0x400008, 0x40000f).w(FUNC(toaplan1_state::bcu_control_w)); - map(0x404000, 0x4047ff).ram().w(FUNC(toaplan1_state::bgpalette_w)).share("bgpalette"); - map(0x406000, 0x4067ff).ram().w(FUNC(toaplan1_state::fgpalette_w)).share("fgpalette"); - map(0x440000, 0x440fff).rw(FUNC(toaplan1_state::shared_r), FUNC(toaplan1_state::shared_w)).umask16(0x00ff); - map(0x480001, 0x480001).w(FUNC(toaplan1_state::bcu_flipscreen_w)); - map(0x480002, 0x480003).rw(FUNC(toaplan1_state::tileram_offs_r), FUNC(toaplan1_state::tileram_offs_w)); - map(0x480004, 0x480007).rw(FUNC(toaplan1_state::tileram_r), FUNC(toaplan1_state::tileram_w)); - map(0x480010, 0x48001f).rw(FUNC(toaplan1_state::scroll_regs_r), FUNC(toaplan1_state::scroll_regs_w)); - map(0x4c0000, 0x4c0001).r(FUNC(toaplan1_state::frame_done_r)); - map(0x4c0002, 0x4c0003).rw(FUNC(toaplan1_state::spriteram_offs_r), FUNC(toaplan1_state::spriteram_offs_w)); - map(0x4c0004, 0x4c0005).rw(FUNC(toaplan1_state::spriteram_r), FUNC(toaplan1_state::spriteram_w)); - map(0x4c0006, 0x4c0007).rw(FUNC(toaplan1_state::spritesizeram_r), FUNC(toaplan1_state::spritesizeram_w)); +// AM_RANGE(0x400000, 0x400001) AM_WRITE(?? video frame related ??) + map(0x400002, 0x400003).w(FUNC(toaplan1_state::toaplan1_intenable_w)); + map(0x400008, 0x40000f).w(FUNC(toaplan1_state::toaplan1_bcu_control_w)); + map(0x404000, 0x4047ff).ram().w(FUNC(toaplan1_state::toaplan1_bgpalette_w)).share("bgpalette"); + map(0x406000, 0x4067ff).ram().w(FUNC(toaplan1_state::toaplan1_fgpalette_w)).share("fgpalette"); + map(0x440000, 0x440fff).rw(FUNC(toaplan1_state::toaplan1_shared_r), FUNC(toaplan1_state::toaplan1_shared_w)); + map(0x480000, 0x480001).w(FUNC(toaplan1_state::toaplan1_bcu_flipscreen_w)); + map(0x480002, 0x480003).rw(FUNC(toaplan1_state::toaplan1_tileram_offs_r), FUNC(toaplan1_state::toaplan1_tileram_offs_w)); + map(0x480004, 0x480007).rw(FUNC(toaplan1_state::toaplan1_tileram16_r), FUNC(toaplan1_state::toaplan1_tileram16_w)); + map(0x480010, 0x48001f).rw(FUNC(toaplan1_state::toaplan1_scroll_regs_r), FUNC(toaplan1_state::toaplan1_scroll_regs_w)); + map(0x4c0000, 0x4c0001).r(FUNC(toaplan1_state::toaplan1_frame_done_r)); + map(0x4c0002, 0x4c0003).rw(FUNC(toaplan1_state::toaplan1_spriteram_offs_r), FUNC(toaplan1_state::toaplan1_spriteram_offs_w)); + map(0x4c0004, 0x4c0005).rw(FUNC(toaplan1_state::toaplan1_spriteram16_r), FUNC(toaplan1_state::toaplan1_spriteram16_w)); + map(0x4c0006, 0x4c0007).rw(FUNC(toaplan1_state::toaplan1_spritesizeram16_r), FUNC(toaplan1_state::toaplan1_spritesizeram16_w)); } -void toaplan1_demonwld_state::main_map(address_map &map) +void toaplan1_state::demonwld_main_map(address_map &map) { map(0x000000, 0x03ffff).rom(); map(0x400000, 0x400001).portr("VBLANK"); -// map(0x400000, 0x400001).w(?? video frame related ??) - map(0x400003, 0x400003).w(FUNC(toaplan1_demonwld_state::intenable_w)); - map(0x400008, 0x40000f).w(FUNC(toaplan1_demonwld_state::bcu_control_w)); - map(0x404000, 0x4047ff).ram().w(FUNC(toaplan1_demonwld_state::bgpalette_w)).share("bgpalette"); - map(0x406000, 0x4067ff).ram().w(FUNC(toaplan1_demonwld_state::fgpalette_w)).share("fgpalette"); - map(0x600000, 0x600fff).rw(FUNC(toaplan1_demonwld_state::shared_r), FUNC(toaplan1_demonwld_state::shared_w)).umask16(0x00ff); - map(0x800001, 0x800001).w(FUNC(toaplan1_demonwld_state::bcu_flipscreen_w)); - map(0x800002, 0x800003).rw(FUNC(toaplan1_demonwld_state::tileram_offs_r), FUNC(toaplan1_demonwld_state::tileram_offs_w)); - map(0x800004, 0x800007).rw(FUNC(toaplan1_demonwld_state::tileram_r), FUNC(toaplan1_demonwld_state::tileram_w)); - map(0x800010, 0x80001f).rw(FUNC(toaplan1_demonwld_state::scroll_regs_r), FUNC(toaplan1_demonwld_state::scroll_regs_w)); - map(0xa00000, 0xa00001).r(FUNC(toaplan1_demonwld_state::frame_done_r)); - map(0xa00002, 0xa00003).rw(FUNC(toaplan1_demonwld_state::spriteram_offs_r), FUNC(toaplan1_demonwld_state::spriteram_offs_w)); - map(0xa00004, 0xa00005).rw(FUNC(toaplan1_demonwld_state::spriteram_r), FUNC(toaplan1_demonwld_state::spriteram_w)); - map(0xa00006, 0xa00007).rw(FUNC(toaplan1_demonwld_state::spritesizeram_r), FUNC(toaplan1_demonwld_state::spritesizeram_w)); +// AM_RANGE(0x400000, 0x400001) AM_WRITE(?? video frame related ??) + map(0x400002, 0x400003).w(FUNC(toaplan1_state::toaplan1_intenable_w)); + map(0x400008, 0x40000f).w(FUNC(toaplan1_state::toaplan1_bcu_control_w)); + map(0x404000, 0x4047ff).ram().w(FUNC(toaplan1_state::toaplan1_bgpalette_w)).share("bgpalette"); + map(0x406000, 0x4067ff).ram().w(FUNC(toaplan1_state::toaplan1_fgpalette_w)).share("fgpalette"); + map(0x600000, 0x600fff).rw(FUNC(toaplan1_state::toaplan1_shared_r), FUNC(toaplan1_state::toaplan1_shared_w)); + map(0x800000, 0x800001).w(FUNC(toaplan1_state::toaplan1_bcu_flipscreen_w)); + map(0x800002, 0x800003).rw(FUNC(toaplan1_state::toaplan1_tileram_offs_r), FUNC(toaplan1_state::toaplan1_tileram_offs_w)); + map(0x800004, 0x800007).rw(FUNC(toaplan1_state::toaplan1_tileram16_r), FUNC(toaplan1_state::toaplan1_tileram16_w)); + map(0x800010, 0x80001f).rw(FUNC(toaplan1_state::toaplan1_scroll_regs_r), FUNC(toaplan1_state::toaplan1_scroll_regs_w)); + map(0xa00000, 0xa00001).r(FUNC(toaplan1_state::toaplan1_frame_done_r)); + map(0xa00002, 0xa00003).rw(FUNC(toaplan1_state::toaplan1_spriteram_offs_r), FUNC(toaplan1_state::toaplan1_spriteram_offs_w)); + map(0xa00004, 0xa00005).rw(FUNC(toaplan1_state::toaplan1_spriteram16_r), FUNC(toaplan1_state::toaplan1_spriteram16_w)); + map(0xa00006, 0xa00007).rw(FUNC(toaplan1_state::toaplan1_spritesizeram16_r), FUNC(toaplan1_state::toaplan1_spritesizeram16_w)); map(0xc00000, 0xc03fff).ram(); - map(0xe00000, 0xe00003).w(FUNC(toaplan1_demonwld_state::tile_offsets_w)); - map(0xe00006, 0xe00006).w(FUNC(toaplan1_demonwld_state::fcu_flipscreen_w)); - map(0xe00009, 0xe00009).w(FUNC(toaplan1_demonwld_state::reset_sound_w)); - map(0xe0000b, 0xe0000b).w(FUNC(toaplan1_demonwld_state::dsp_ctrl_w)); /* DSP Comms control */ + map(0xe00000, 0xe00003).w(FUNC(toaplan1_state::toaplan1_tile_offsets_w)); + map(0xe00006, 0xe00007).w(FUNC(toaplan1_state::toaplan1_fcu_flipscreen_w)); + map(0xe00008, 0xe00009).w(FUNC(toaplan1_state::toaplan1_reset_sound_w)); + map(0xe0000a, 0xe0000b).w(FUNC(toaplan1_state::demonwld_dsp_ctrl_w)); /* DSP Comms control */ } -void toaplan1_samesame_state::main_map(address_map &map) +void toaplan1_state::samesame_main_map(address_map &map) { map(0x000000, 0x00ffff).rom(); map(0x040000, 0x07ffff).rom(); - map(0x080000, 0x080003).w(FUNC(toaplan1_samesame_state::tile_offsets_w)); - map(0x080006, 0x080006).w(FUNC(toaplan1_samesame_state::fcu_flipscreen_w)); + map(0x080000, 0x080003).w(FUNC(toaplan1_state::toaplan1_tile_offsets_w)); + map(0x080006, 0x080007).w(FUNC(toaplan1_state::toaplan1_fcu_flipscreen_w)); map(0x0c0000, 0x0c3fff).ram(); /* Frame done at $c1ada */ map(0x100000, 0x100001).portr("VBLANK"); -// map(0x100000, 0x100001).w(?? video frame related ??) - map(0x100003, 0x100003).w(FUNC(toaplan1_samesame_state::intenable_w)); - map(0x100008, 0x10000f).w(FUNC(toaplan1_samesame_state::bcu_control_w)); - map(0x104000, 0x1047ff).ram().w(FUNC(toaplan1_samesame_state::bgpalette_w)).share("bgpalette"); - map(0x106000, 0x1067ff).ram().w(FUNC(toaplan1_samesame_state::fgpalette_w)).share("fgpalette"); +// AM_RANGE(0x100000, 0x100001) AM_WRITE(?? video frame related ??) + map(0x100002, 0x100003).w(FUNC(toaplan1_state::toaplan1_intenable_w)); + map(0x100008, 0x10000f).w(FUNC(toaplan1_state::toaplan1_bcu_control_w)); + map(0x104000, 0x1047ff).ram().w(FUNC(toaplan1_state::toaplan1_bgpalette_w)).share("bgpalette"); + map(0x106000, 0x1067ff).ram().w(FUNC(toaplan1_state::toaplan1_fgpalette_w)).share("fgpalette"); map(0x140000, 0x140001).portr("P1"); map(0x140002, 0x140003).portr("P2"); map(0x140004, 0x140005).portr("DSWA"); map(0x140006, 0x140007).portr("DSWB"); map(0x140008, 0x140009).portr("SYSTEM"); - map(0x14000b, 0x14000b).r(FUNC(toaplan1_samesame_state::port_6_word_r)); /* Territory, and MCU ready */ - map(0x14000d, 0x14000d).w(FUNC(toaplan1_samesame_state::coin_w)); /* Coin counter/lockout */ - map(0x14000f, 0x14000f).w(FUNC(toaplan1_samesame_state::mcu_w)); /* Commands sent to HD647180 */ - map(0x180001, 0x180001).w(FUNC(toaplan1_samesame_state::bcu_flipscreen_w)); - map(0x180002, 0x180003).rw(FUNC(toaplan1_samesame_state::tileram_offs_r), FUNC(toaplan1_samesame_state::tileram_offs_w)); - map(0x180004, 0x180007).rw(FUNC(toaplan1_samesame_state::tileram_r), FUNC(toaplan1_samesame_state::tileram_w)); - map(0x180010, 0x18001f).rw(FUNC(toaplan1_samesame_state::scroll_regs_r), FUNC(toaplan1_samesame_state::scroll_regs_w)); - map(0x1c0000, 0x1c0001).r(FUNC(toaplan1_samesame_state::frame_done_r)); -// map(0x1c0000, 0x1c0001).w(?? disable sprite refresh ??) - map(0x1c0002, 0x1c0003).rw(FUNC(toaplan1_samesame_state::spriteram_offs_r), FUNC(toaplan1_samesame_state::spriteram_offs_w)); - map(0x1c0004, 0x1c0005).rw(FUNC(toaplan1_samesame_state::spriteram_r), FUNC(toaplan1_samesame_state::spriteram_w)); - map(0x1c0006, 0x1c0007).rw(FUNC(toaplan1_samesame_state::spritesizeram_r), FUNC(toaplan1_samesame_state::spritesizeram_w)); + map(0x14000a, 0x14000b).r(FUNC(toaplan1_state::samesame_port_6_word_r)); /* Territory, and MCU ready */ + map(0x14000c, 0x14000d).w(FUNC(toaplan1_state::samesame_coin_w)); /* Coin counter/lockout */ + map(0x14000e, 0x14000f).w(FUNC(toaplan1_state::samesame_mcu_w)); /* Commands sent to HD647180 */ + map(0x180000, 0x180001).w(FUNC(toaplan1_state::toaplan1_bcu_flipscreen_w)); + map(0x180002, 0x180003).rw(FUNC(toaplan1_state::toaplan1_tileram_offs_r), FUNC(toaplan1_state::toaplan1_tileram_offs_w)); + map(0x180004, 0x180007).rw(FUNC(toaplan1_state::toaplan1_tileram16_r), FUNC(toaplan1_state::toaplan1_tileram16_w)); + map(0x180010, 0x18001f).rw(FUNC(toaplan1_state::toaplan1_scroll_regs_r), FUNC(toaplan1_state::toaplan1_scroll_regs_w)); + map(0x1c0000, 0x1c0001).r(FUNC(toaplan1_state::toaplan1_frame_done_r)); +// AM_RANGE(0x1c0000, 0x1c0001) AM_WRITE(?? disable sprite refresh ??) + map(0x1c0002, 0x1c0003).rw(FUNC(toaplan1_state::toaplan1_spriteram_offs_r), FUNC(toaplan1_state::toaplan1_spriteram_offs_w)); + map(0x1c0004, 0x1c0005).rw(FUNC(toaplan1_state::toaplan1_spriteram16_r), FUNC(toaplan1_state::toaplan1_spriteram16_w)); + map(0x1c0006, 0x1c0007).rw(FUNC(toaplan1_state::toaplan1_spritesizeram16_r), FUNC(toaplan1_state::toaplan1_spritesizeram16_w)); } void toaplan1_state::outzone_main_map(address_map &map) { map(0x000000, 0x03ffff).rom(); - map(0x100000, 0x100001).r(FUNC(toaplan1_state::frame_done_r)); - map(0x100002, 0x100003).rw(FUNC(toaplan1_state::spriteram_offs_r), FUNC(toaplan1_state::spriteram_offs_w)); - map(0x100004, 0x100005).rw(FUNC(toaplan1_state::spriteram_r), FUNC(toaplan1_state::spriteram_w)); - map(0x100006, 0x100007).rw(FUNC(toaplan1_state::spritesizeram_r), FUNC(toaplan1_state::spritesizeram_w)); - map(0x140000, 0x140fff).rw(FUNC(toaplan1_state::shared_r), FUNC(toaplan1_state::shared_w)).umask16(0x00ff); - map(0x200001, 0x200001).w(FUNC(toaplan1_state::bcu_flipscreen_w)); - map(0x200002, 0x200003).rw(FUNC(toaplan1_state::tileram_offs_r), FUNC(toaplan1_state::tileram_offs_w)); - map(0x200004, 0x200007).rw(FUNC(toaplan1_state::tileram_r), FUNC(toaplan1_state::tileram_w)); - map(0x200010, 0x20001f).rw(FUNC(toaplan1_state::scroll_regs_r), FUNC(toaplan1_state::scroll_regs_w)); + map(0x100000, 0x100001).r(FUNC(toaplan1_state::toaplan1_frame_done_r)); + map(0x100002, 0x100003).rw(FUNC(toaplan1_state::toaplan1_spriteram_offs_r), FUNC(toaplan1_state::toaplan1_spriteram_offs_w)); + map(0x100004, 0x100005).rw(FUNC(toaplan1_state::toaplan1_spriteram16_r), FUNC(toaplan1_state::toaplan1_spriteram16_w)); + map(0x100006, 0x100007).rw(FUNC(toaplan1_state::toaplan1_spritesizeram16_r), FUNC(toaplan1_state::toaplan1_spritesizeram16_w)); + map(0x140000, 0x140fff).rw(FUNC(toaplan1_state::toaplan1_shared_r), FUNC(toaplan1_state::toaplan1_shared_w)); + map(0x200000, 0x200001).w(FUNC(toaplan1_state::toaplan1_bcu_flipscreen_w)); + map(0x200002, 0x200003).rw(FUNC(toaplan1_state::toaplan1_tileram_offs_r), FUNC(toaplan1_state::toaplan1_tileram_offs_w)); + map(0x200004, 0x200007).rw(FUNC(toaplan1_state::toaplan1_tileram16_r), FUNC(toaplan1_state::toaplan1_tileram16_w)); + map(0x200010, 0x20001f).rw(FUNC(toaplan1_state::toaplan1_scroll_regs_r), FUNC(toaplan1_state::toaplan1_scroll_regs_w)); map(0x240000, 0x243fff).ram(); map(0x300000, 0x300001).portr("VBLANK"); -// map(0x300000, 0x300001).w(?? video frame related ??) - map(0x300003, 0x300003).w(FUNC(toaplan1_state::intenable_w)); - map(0x300008, 0x30000f).w(FUNC(toaplan1_state::bcu_control_w)); - map(0x304000, 0x3047ff).ram().w(FUNC(toaplan1_state::bgpalette_w)).share("bgpalette"); - map(0x306000, 0x3067ff).ram().w(FUNC(toaplan1_state::fgpalette_w)).share("fgpalette"); - map(0x340000, 0x340003).w(FUNC(toaplan1_state::tile_offsets_w)); - map(0x340006, 0x340006).w(FUNC(toaplan1_state::fcu_flipscreen_w)); +// AM_RANGE(0x300000, 0x300001) AM_WRITE(?? video frame related ??) + map(0x300002, 0x300003).w(FUNC(toaplan1_state::toaplan1_intenable_w)); + map(0x300008, 0x30000f).w(FUNC(toaplan1_state::toaplan1_bcu_control_w)); + map(0x304000, 0x3047ff).ram().w(FUNC(toaplan1_state::toaplan1_bgpalette_w)).share("bgpalette"); + map(0x306000, 0x3067ff).ram().w(FUNC(toaplan1_state::toaplan1_fgpalette_w)).share("fgpalette"); + map(0x340000, 0x340003).w(FUNC(toaplan1_state::toaplan1_tile_offsets_w)); + map(0x340006, 0x340007).w(FUNC(toaplan1_state::toaplan1_fcu_flipscreen_w)); } void toaplan1_state::outzonecv_main_map(address_map &map) { map(0x000000, 0x03ffff).rom(); -// map(0x040000, 0x07ffff).rom(); +// AM_RANGE(0x040000, 0x07ffff) AM_ROM map(0x080000, 0x087fff).ram(); - map(0x0c0000, 0x0c0003).w(FUNC(toaplan1_state::tile_offsets_w)); - map(0x0c0006, 0x0c0006).w(FUNC(toaplan1_state::fcu_flipscreen_w)); + map(0x0c0000, 0x0c0003).w(FUNC(toaplan1_state::toaplan1_tile_offsets_w)); + map(0x0c0006, 0x0c0007).w(FUNC(toaplan1_state::toaplan1_fcu_flipscreen_w)); map(0x400000, 0x400001).portr("VBLANK"); -// map(0x400000, 0x400001).w(?? video frame related ??) - map(0x400003, 0x400003).w(FUNC(toaplan1_state::intenable_w)); - map(0x400008, 0x40000f).w(FUNC(toaplan1_state::bcu_control_w)); - map(0x404000, 0x4047ff).ram().w(FUNC(toaplan1_state::bgpalette_w)).share("bgpalette"); - map(0x406000, 0x4067ff).ram().w(FUNC(toaplan1_state::fgpalette_w)).share("fgpalette"); - map(0x440000, 0x440fff).rw(FUNC(toaplan1_state::shared_r), FUNC(toaplan1_state::shared_w)).umask16(0x00ff); - map(0x480001, 0x480001).w(FUNC(toaplan1_state::bcu_flipscreen_w)); - map(0x480002, 0x480003).rw(FUNC(toaplan1_state::tileram_offs_r), FUNC(toaplan1_state::tileram_offs_w)); - map(0x480004, 0x480007).rw(FUNC(toaplan1_state::tileram_r), FUNC(toaplan1_state::tileram_w)); - map(0x480010, 0x48001f).rw(FUNC(toaplan1_state::scroll_regs_r), FUNC(toaplan1_state::scroll_regs_w)); - map(0x4c0000, 0x4c0001).r(FUNC(toaplan1_state::frame_done_r)); - map(0x4c0002, 0x4c0003).rw(FUNC(toaplan1_state::spriteram_offs_r), FUNC(toaplan1_state::spriteram_offs_w)); - map(0x4c0004, 0x4c0005).rw(FUNC(toaplan1_state::spriteram_r), FUNC(toaplan1_state::spriteram_w)); - map(0x4c0006, 0x4c0007).rw(FUNC(toaplan1_state::spritesizeram_r), FUNC(toaplan1_state::spritesizeram_w)); +// AM_RANGE(0x400000, 0x400001) AM_WRITE(?? video frame related ??) + map(0x400002, 0x400003).w(FUNC(toaplan1_state::toaplan1_intenable_w)); + map(0x400008, 0x40000f).w(FUNC(toaplan1_state::toaplan1_bcu_control_w)); + map(0x404000, 0x4047ff).ram().w(FUNC(toaplan1_state::toaplan1_bgpalette_w)).share("bgpalette"); + map(0x406000, 0x4067ff).ram().w(FUNC(toaplan1_state::toaplan1_fgpalette_w)).share("fgpalette"); + map(0x440000, 0x440fff).rw(FUNC(toaplan1_state::toaplan1_shared_r), FUNC(toaplan1_state::toaplan1_shared_w)); + map(0x480000, 0x480001).w(FUNC(toaplan1_state::toaplan1_bcu_flipscreen_w)); + map(0x480002, 0x480003).rw(FUNC(toaplan1_state::toaplan1_tileram_offs_r), FUNC(toaplan1_state::toaplan1_tileram_offs_w)); + map(0x480004, 0x480007).rw(FUNC(toaplan1_state::toaplan1_tileram16_r), FUNC(toaplan1_state::toaplan1_tileram16_w)); + map(0x480010, 0x48001f).rw(FUNC(toaplan1_state::toaplan1_scroll_regs_r), FUNC(toaplan1_state::toaplan1_scroll_regs_w)); + map(0x4c0000, 0x4c0001).r(FUNC(toaplan1_state::toaplan1_frame_done_r)); + map(0x4c0002, 0x4c0003).rw(FUNC(toaplan1_state::toaplan1_spriteram_offs_r), FUNC(toaplan1_state::toaplan1_spriteram_offs_w)); + map(0x4c0004, 0x4c0005).rw(FUNC(toaplan1_state::toaplan1_spriteram16_r), FUNC(toaplan1_state::toaplan1_spriteram16_w)); + map(0x4c0006, 0x4c0007).rw(FUNC(toaplan1_state::toaplan1_spritesizeram16_r), FUNC(toaplan1_state::toaplan1_spritesizeram16_w)); } void toaplan1_state::vimana_main_map(address_map &map) { map(0x000000, 0x03ffff).rom(); - map(0x080000, 0x080003).w(FUNC(toaplan1_state::tile_offsets_w)); - map(0x080006, 0x080006).w(FUNC(toaplan1_state::fcu_flipscreen_w)); - map(0x0c0000, 0x0c0001).r(FUNC(toaplan1_state::frame_done_r)); - map(0x0c0002, 0x0c0003).rw(FUNC(toaplan1_state::spriteram_offs_r), FUNC(toaplan1_state::spriteram_offs_w)); - map(0x0c0004, 0x0c0005).rw(FUNC(toaplan1_state::spriteram_r), FUNC(toaplan1_state::spriteram_w)); - map(0x0c0006, 0x0c0007).rw(FUNC(toaplan1_state::spritesizeram_r), FUNC(toaplan1_state::spritesizeram_w)); + map(0x080000, 0x080003).w(FUNC(toaplan1_state::toaplan1_tile_offsets_w)); + map(0x080006, 0x080007).w(FUNC(toaplan1_state::toaplan1_fcu_flipscreen_w)); + map(0x0c0000, 0x0c0001).r(FUNC(toaplan1_state::toaplan1_frame_done_r)); + map(0x0c0002, 0x0c0003).rw(FUNC(toaplan1_state::toaplan1_spriteram_offs_r), FUNC(toaplan1_state::toaplan1_spriteram_offs_w)); + map(0x0c0004, 0x0c0005).rw(FUNC(toaplan1_state::toaplan1_spriteram16_r), FUNC(toaplan1_state::toaplan1_spriteram16_w)); + map(0x0c0006, 0x0c0007).rw(FUNC(toaplan1_state::toaplan1_spritesizeram16_r), FUNC(toaplan1_state::toaplan1_spritesizeram16_w)); map(0x400000, 0x400001).portr("VBLANK"); -// map(0x400000, 0x400001).w(?? video frame related ??) - map(0x400003, 0x400003).w(FUNC(toaplan1_state::intenable_w)); - map(0x400008, 0x40000f).w(FUNC(toaplan1_state::bcu_control_w)); - map(0x404000, 0x4047ff).ram().w(FUNC(toaplan1_state::bgpalette_w)).share("bgpalette"); - map(0x406000, 0x4067ff).ram().w(FUNC(toaplan1_state::fgpalette_w)).share("fgpalette"); - map(0x440000, 0x4407ff).rw(FUNC(toaplan1_state::shared_r), FUNC(toaplan1_state::shared_w)).umask16(0x00ff); /* inputs, coins and sound handled by 647180 MCU via this space */ +// AM_RANGE(0x400000, 0x400001) AM_WRITE(?? video frame related ??) + map(0x400002, 0x400003).w(FUNC(toaplan1_state::toaplan1_intenable_w)); + map(0x400008, 0x40000f).w(FUNC(toaplan1_state::toaplan1_bcu_control_w)); + map(0x404000, 0x4047ff).ram().w(FUNC(toaplan1_state::toaplan1_bgpalette_w)).share("bgpalette"); + map(0x406000, 0x4067ff).ram().w(FUNC(toaplan1_state::toaplan1_fgpalette_w)).share("fgpalette"); + map(0x440000, 0x4407ff).rw(FUNC(toaplan1_state::toaplan1_shared_r), FUNC(toaplan1_state::toaplan1_shared_w)); /* inputs, coins and sound handled by 647180 MCU via this space */ map(0x480000, 0x487fff).ram(); - map(0x4c0001, 0x4c0001).w(FUNC(toaplan1_state::bcu_flipscreen_w)); - map(0x4c0002, 0x4c0003).rw(FUNC(toaplan1_state::tileram_offs_r), FUNC(toaplan1_state::tileram_offs_w)); - map(0x4c0004, 0x4c0007).rw(FUNC(toaplan1_state::tileram_r), FUNC(toaplan1_state::tileram_w)); - map(0x4c0010, 0x4c001f).rw(FUNC(toaplan1_state::scroll_regs_r), FUNC(toaplan1_state::scroll_regs_w)); + map(0x4c0000, 0x4c0001).w(FUNC(toaplan1_state::toaplan1_bcu_flipscreen_w)); + map(0x4c0002, 0x4c0003).rw(FUNC(toaplan1_state::toaplan1_tileram_offs_r), FUNC(toaplan1_state::toaplan1_tileram_offs_w)); + map(0x4c0004, 0x4c0007).rw(FUNC(toaplan1_state::toaplan1_tileram16_r), FUNC(toaplan1_state::toaplan1_tileram16_w)); + map(0x4c0010, 0x4c001f).rw(FUNC(toaplan1_state::toaplan1_scroll_regs_r), FUNC(toaplan1_state::toaplan1_scroll_regs_w)); } /***************************** Z80 Memory Map *******************************/ -void toaplan1_state::sound_map(address_map &map) +void toaplan1_state::toaplan1_sound_map(address_map &map) { map(0x0000, 0x7fff).rom(); map(0x8000, 0x87ff).ram().share("sharedram"); @@ -864,7 +864,7 @@ void toaplan1_state::truxton_sound_io_map(address_map &map) map(0x00, 0x00).portr("P1"); map(0x10, 0x10).portr("P2"); map(0x20, 0x20).portr("SYSTEM"); - map(0x30, 0x30).w(FUNC(toaplan1_state::coin_w)); /* Coin counter/lockout */ + map(0x30, 0x30).w(FUNC(toaplan1_state::toaplan1_coin_w)); /* Coin counter/lockout */ map(0x40, 0x40).portr("DSWA"); map(0x50, 0x50).portr("DSWB"); map(0x60, 0x61).rw("ymsnd", FUNC(ym3812_device::read), FUNC(ym3812_device::write)); @@ -877,7 +877,7 @@ void toaplan1_state::hellfire_sound_io_map(address_map &map) map(0x00, 0x00).portr("DSWA"); map(0x10, 0x10).portr("DSWB"); map(0x20, 0x20).portr("TJUMP"); - map(0x30, 0x30).w(FUNC(toaplan1_state::coin_w)); /* Coin counter/lockout */ + map(0x30, 0x30).w(FUNC(toaplan1_state::toaplan1_coin_w)); /* Coin counter/lockout */ map(0x40, 0x40).portr("P1"); map(0x50, 0x50).portr("P2"); map(0x60, 0x60).portr("SYSTEM"); @@ -893,16 +893,16 @@ void toaplan1_state::zerowing_sound_io_map(address_map &map) map(0x28, 0x28).portr("DSWB"); map(0x80, 0x80).portr("SYSTEM"); map(0x88, 0x88).portr("TJUMP"); - map(0xa0, 0xa0).w(FUNC(toaplan1_state::coin_w)); /* Coin counter/lockout */ + map(0xa0, 0xa0).w(FUNC(toaplan1_state::toaplan1_coin_w)); /* Coin counter/lockout */ map(0xa8, 0xa9).rw("ymsnd", FUNC(ym3812_device::read), FUNC(ym3812_device::write)); } -void toaplan1_demonwld_state::sound_io_map(address_map &map) +void toaplan1_state::demonwld_sound_io_map(address_map &map) { map.global_mask(0xff); map(0x00, 0x01).rw("ymsnd", FUNC(ym3812_device::read), FUNC(ym3812_device::write)); map(0x20, 0x20).portr("TJUMP"); - map(0x40, 0x40).w(FUNC(toaplan1_demonwld_state::coin_w)); /* Coin counter/lockout */ + map(0x40, 0x40).w(FUNC(toaplan1_state::toaplan1_coin_w)); /* Coin counter/lockout */ map(0x60, 0x60).portr("SYSTEM"); map(0x80, 0x80).portr("P1"); map(0xa0, 0xa0).portr("DSWB"); @@ -914,7 +914,7 @@ void toaplan1_state::outzone_sound_io_map(address_map &map) { map.global_mask(0xff); map(0x00, 0x01).rw("ymsnd", FUNC(ym3812_device::read), FUNC(ym3812_device::write)); - map(0x04, 0x04).w(FUNC(toaplan1_state::coin_w)); /* Coin counter/lockout */ + map(0x04, 0x04).w(FUNC(toaplan1_state::toaplan1_coin_w)); /* Coin counter/lockout */ map(0x08, 0x08).portr("DSWA"); map(0x0c, 0x0c).portr("DSWB"); map(0x10, 0x10).portr("SYSTEM"); @@ -926,18 +926,18 @@ void toaplan1_state::outzone_sound_io_map(address_map &map) /***************************** TMS32010 Memory Map **************************/ -void toaplan1_demonwld_state::dsp_program_map(address_map &map) +void toaplan1_state::dsp_program_map(address_map &map) { map(0x000, 0x7ff).rom(); } /* $000 - 08F TMS32010 Internal Data RAM in Data Address Space */ -void toaplan1_demonwld_state::dsp_io_map(address_map &map) +void toaplan1_state::dsp_io_map(address_map &map) { - map(0, 0).w(FUNC(toaplan1_demonwld_state::dsp_addrsel_w)); - map(1, 1).rw(FUNC(toaplan1_demonwld_state::dsp_r), FUNC(toaplan1_demonwld_state::dsp_w)); - map(3, 3).w(FUNC(toaplan1_demonwld_state::dsp_bio_w)); + map(0, 0).w(FUNC(toaplan1_state::demonwld_dsp_addrsel_w)); + map(1, 1).rw(FUNC(toaplan1_state::demonwld_dsp_r), FUNC(toaplan1_state::demonwld_dsp_w)); + map(3, 3).w(FUNC(toaplan1_state::demonwld_dsp_bio_w)); } @@ -976,57 +976,57 @@ void toaplan1_state::vimana_hd647180_io_map(address_map &map) map(0x81, 0x81).portr("P2"); map(0x82, 0x82).portr("DSWA"); map(0x83, 0x83).portr("SYSTEM"); - map(0x84, 0x84).w(FUNC(toaplan1_state::coin_w)); // Coin counter/lockout // needs verify + map(0x84, 0x84).w(FUNC(toaplan1_state::toaplan1_coin_w)); // Coin counter/lockout // needs verify map(0x87, 0x87).rw("ymsnd", FUNC(ym3812_device::status_port_r), FUNC(ym3812_device::control_port_w)); map(0x8f, 0x8f).rw("ymsnd", FUNC(ym3812_device::read_port_r), FUNC(ym3812_device::write_port_w)); } -u8 toaplan1_state::vimana_dswb_invert_r() +READ8_MEMBER(toaplan1_state::vimana_dswb_invert_r) { - return m_dswb_io->read() ^ 0xFF; + return ioport("DSWB")->read() ^ 0xFF; } -u8 toaplan1_state::vimana_tjump_invert_r() +READ8_MEMBER(toaplan1_state::vimana_tjump_invert_r) { - return (m_tjump_io->read() ^ 0xFF)|0xC0; // high 2 bits of port G always read as 1 + return (ioport("TJUMP")->read() ^ 0xFF)|0xC0; // high 2 bits of port G always read as 1 } -void toaplan1_samesame_state::mcu_w(u8 data) +WRITE16_MEMBER(toaplan1_state::samesame_mcu_w) { m_to_mcu = data; m_cmdavailable = 1; }; -u8 toaplan1_samesame_state::soundlatch_r() +READ8_MEMBER(toaplan1_state::samesame_soundlatch_r) { return m_to_mcu; }; -void toaplan1_samesame_state::sound_done_w(u8 data) +WRITE8_MEMBER(toaplan1_state::samesame_sound_done_w) { m_to_mcu = data; m_cmdavailable = 0; } -u8 toaplan1_samesame_state::cmdavailable_r() +READ8_MEMBER(toaplan1_state::samesame_cmdavailable_r) { if (m_cmdavailable) return 0xff; else return 0x00; }; -void toaplan1_samesame_state::hd647180_mem_map(address_map &map) +void toaplan1_state::samesame_hd647180_mem_map(address_map &map) { map(0x00000, 0x03fff).rom(); /* Internal 16k byte ROM */ map(0x0fe00, 0x0ffff).ram(); /* Internal 512 byte RAM */ } -void toaplan1_samesame_state::hd647180_io_map(address_map &map) +void toaplan1_state::samesame_hd647180_io_map(address_map &map) { map.global_mask(0xff); - map(0x63, 0x63).r(FUNC(toaplan1_samesame_state::cmdavailable_r)); - map(0xa0, 0xa0).r(FUNC(toaplan1_samesame_state::soundlatch_r)); - map(0xb0, 0xb0).w(FUNC(toaplan1_samesame_state::sound_done_w)); + map(0x63, 0x63).r(FUNC(toaplan1_state::samesame_cmdavailable_r)); + map(0xa0, 0xa0).r(FUNC(toaplan1_state::samesame_soundlatch_r)); + map(0xb0, 0xb0).w(FUNC(toaplan1_state::samesame_sound_done_w)); map(0x80, 0x80).rw("ymsnd", FUNC(ym3812_device::status_port_r), FUNC(ym3812_device::control_port_w)); map(0x81, 0x81).rw("ymsnd", FUNC(ym3812_device::read_port_r), FUNC(ym3812_device::write_port_w)); @@ -1875,25 +1875,25 @@ static const gfx_layout tilelayout = RGN_FRAC(1,2), /* 16384/32768 tiles */ 4, /* 4 bits per pixel */ { RGN_FRAC(1,2)+8, RGN_FRAC(1,2), 8, 0 }, - { STEP8(0,1) }, - { STEP8(0,8*2) }, + { 0, 1, 2, 3, 4, 5, 6, 7 }, + { 0, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, 16*8 /* every tile takes 16 consecutive bytes */ }; static GFXDECODE_START( gfx_toaplan1 ) - GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0, 64 ) - GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 64*16, 64 ) + GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 64 ) + GFXDECODE_ENTRY( "gfx2", 0x00000, tilelayout, 64*16, 64 ) GFXDECODE_END static GFXDECODE_START( gfx_rallybik ) - GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0, 64 ) + GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 64 ) GFXDECODE_END -#define PIXEL_CLOCK (XTAL(28'000'000) / 4) +#define PIXEL_CLOCK (XTAL(28'000'000)/4) -// HTOTAL and VTOTAL taken from CRTC registers (bcu_control_w) +// HTOTAL and VTOTAL taken from CRTC registers (toaplan1_bcu_control_w) // rallybik, demonwld and outzone program a larger VTOTAL than the other // games, giving them a lower frame rate @@ -1913,8 +1913,8 @@ void toaplan1_rallybik_state::rallybik(machine_config &config) M68000(config, m_maincpu, XTAL(10'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &toaplan1_rallybik_state::rallybik_main_map); - Z80(config, m_audiocpu, XTAL(28'000'000) / 8); - m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_rallybik_state::sound_map); + Z80(config, m_audiocpu, XTAL(28'000'000)/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_rallybik_state::toaplan1_sound_map); m_audiocpu->set_addrmap(AS_IO, &toaplan1_rallybik_state::rallybik_sound_io_map); config.m_minimum_quantum = attotime::from_hz(600); @@ -1925,12 +1925,14 @@ void toaplan1_rallybik_state::rallybik(machine_config &config) coinlatch.q_out_cb<6>().set(FUNC(toaplan1_rallybik_state::coin_lockout_1_w)); coinlatch.q_out_cb<7>().set(FUNC(toaplan1_rallybik_state::coin_lockout_2_w)); + MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,toaplan1) + /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL55, VBEND, VBSTART); - m_screen->set_screen_update(FUNC(toaplan1_rallybik_state::screen_update)); - m_screen->screen_vblank().set(FUNC(toaplan1_rallybik_state::screen_vblank)); + m_screen->set_screen_update(FUNC(toaplan1_rallybik_state::screen_update_rallybik)); + m_screen->screen_vblank().set(FUNC(toaplan1_rallybik_state::screen_vblank_rallybik)); m_screen->set_palette(m_palette); TOAPLAN_SCU(config, m_spritegen, 0); @@ -1940,6 +1942,8 @@ void toaplan1_rallybik_state::rallybik(machine_config &config) GFXDECODE(config, m_gfxdecode, m_palette, gfx_rallybik); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, (64*16)+(64*16)); + MCFG_VIDEO_START_OVERRIDE(toaplan1_rallybik_state,rallybik) + /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -1954,27 +1958,31 @@ void toaplan1_state::truxton(machine_config &config) M68000(config, m_maincpu, XTAL(10'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &toaplan1_state::truxton_main_map); - Z80(config, m_audiocpu, XTAL(28'000'000) / 8); - m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::sound_map); + Z80(config, m_audiocpu, XTAL(28'000'000)/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::toaplan1_sound_map); m_audiocpu->set_addrmap(AS_IO, &toaplan1_state::truxton_sound_io_map); config.m_minimum_quantum = attotime::from_hz(600); + MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,toaplan1) + /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); - m_screen->set_screen_update(FUNC(toaplan1_state::screen_update)); - m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank)); + m_screen->set_screen_update(FUNC(toaplan1_state::screen_update_toaplan1)); + m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank_toaplan1)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_toaplan1); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, (64*16)+(64*16)); + MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1) + /* sound hardware */ SPEAKER(config, "mono").front_center(); - YM3812(config, m_ymsnd, XTAL(28'000'000) / 8); + YM3812(config, m_ymsnd, XTAL(28'000'000)/8); m_ymsnd->irq_handler().set_inputline(m_audiocpu, 0); m_ymsnd->add_route(ALL_OUTPUTS, "mono", 1.0); } @@ -1985,27 +1993,31 @@ void toaplan1_state::hellfire(machine_config &config) M68000(config, m_maincpu, XTAL(10'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &toaplan1_state::hellfire_main_map); - Z80(config, m_audiocpu, XTAL(28'000'000) / 8); - m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::sound_map); + Z80(config, m_audiocpu, XTAL(28'000'000)/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::toaplan1_sound_map); m_audiocpu->set_addrmap(AS_IO, &toaplan1_state::hellfire_sound_io_map); config.m_minimum_quantum = attotime::from_hz(600); + MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,toaplan1) + /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND+16, VBSTART+16); - m_screen->set_screen_update(FUNC(toaplan1_state::screen_update)); - m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank)); + m_screen->set_screen_update(FUNC(toaplan1_state::screen_update_toaplan1)); + m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank_toaplan1)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_toaplan1); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, (64*16)+(64*16)); + MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1) + /* sound hardware */ SPEAKER(config, "mono").front_center(); - YM3812(config, m_ymsnd, XTAL(28'000'000) / 8); + YM3812(config, m_ymsnd, XTAL(28'000'000)/8); m_ymsnd->irq_handler().set_inputline(m_audiocpu, 0); m_ymsnd->add_route(ALL_OUTPUTS, "mono", 1.0); } @@ -2016,8 +2028,8 @@ void toaplan1_state::zerowing(machine_config &config) M68000(config, m_maincpu, XTAL(10'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &toaplan1_state::zerowing_main_map); - Z80(config, m_audiocpu, XTAL(28'000'000) / 8); - m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::sound_map); + Z80(config, m_audiocpu, XTAL(28'000'000)/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::toaplan1_sound_map); m_audiocpu->set_addrmap(AS_IO, &toaplan1_state::zerowing_sound_io_map); config.m_minimum_quantum = attotime::from_hz(600); @@ -2028,86 +2040,94 @@ void toaplan1_state::zerowing(machine_config &config) SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND+16, VBSTART+16); - m_screen->set_screen_update(FUNC(toaplan1_state::screen_update)); - m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank)); + m_screen->set_screen_update(FUNC(toaplan1_state::screen_update_toaplan1)); + m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank_toaplan1)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_toaplan1); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, (64*16)+(64*16)); + MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1) + /* sound hardware */ SPEAKER(config, "mono").front_center(); - YM3812(config, m_ymsnd, XTAL(28'000'000) / 8); + YM3812(config, m_ymsnd, XTAL(28'000'000)/8); m_ymsnd->irq_handler().set_inputline(m_audiocpu, 0); m_ymsnd->add_route(ALL_OUTPUTS, "mono", 1.0); } -void toaplan1_demonwld_state::demonwld(machine_config &config) +void toaplan1_state::demonwld(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, XTAL(10'000'000)); - m_maincpu->set_addrmap(AS_PROGRAM, &toaplan1_demonwld_state::main_map); + m_maincpu->set_addrmap(AS_PROGRAM, &toaplan1_state::demonwld_main_map); - Z80(config, m_audiocpu, XTAL(28'000'000) / 8); - m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_demonwld_state::sound_map); - m_audiocpu->set_addrmap(AS_IO, &toaplan1_demonwld_state::sound_io_map); + Z80(config, m_audiocpu, XTAL(28'000'000)/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::toaplan1_sound_map); + m_audiocpu->set_addrmap(AS_IO, &toaplan1_state::demonwld_sound_io_map); - TMS32010(config, m_dsp, XTAL(28'000'000) / 2); - m_dsp->set_addrmap(AS_PROGRAM, &toaplan1_demonwld_state::dsp_program_map); - m_dsp->set_addrmap(AS_IO, &toaplan1_demonwld_state::dsp_io_map); - m_dsp->bio().set(FUNC(toaplan1_demonwld_state::bio_r)); + TMS32010(config, m_dsp, XTAL(28'000'000)/2); + m_dsp->set_addrmap(AS_PROGRAM, &toaplan1_state::dsp_program_map); + m_dsp->set_addrmap(AS_IO, &toaplan1_state::dsp_io_map); + m_dsp->bio().set(FUNC(toaplan1_state::demonwld_bio_r)); config.m_minimum_quantum = attotime::from_hz(600); + MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,demonwld) + /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL55, VBEND+16, VBSTART+16); - m_screen->set_screen_update(FUNC(toaplan1_demonwld_state::screen_update)); - m_screen->screen_vblank().set(FUNC(toaplan1_demonwld_state::screen_vblank)); + m_screen->set_screen_update(FUNC(toaplan1_state::screen_update_toaplan1)); + m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank_toaplan1)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_toaplan1); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, (64*16)+(64*16)); + MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1) + /* sound hardware */ SPEAKER(config, "mono").front_center(); - YM3812(config, m_ymsnd, XTAL(28'000'000) / 8); + YM3812(config, m_ymsnd, XTAL(28'000'000)/8); m_ymsnd->irq_handler().set_inputline(m_audiocpu, 0); m_ymsnd->add_route(ALL_OUTPUTS, "mono", 1.0); } -void toaplan1_samesame_state::samesame(machine_config &config) +void toaplan1_state::samesame(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, XTAL(10'000'000)); - m_maincpu->set_addrmap(AS_PROGRAM, &toaplan1_samesame_state::main_map); + m_maincpu->set_addrmap(AS_PROGRAM, &toaplan1_state::samesame_main_map); - Z180(config, m_audiocpu, XTAL(28'000'000) / 8); /* HD647180XOFS6 CPU */ - m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_samesame_state::hd647180_mem_map); - m_audiocpu->set_addrmap(AS_IO, &toaplan1_samesame_state::hd647180_io_map); + Z180(config, m_audiocpu, XTAL(28'000'000)/8); /* HD647180XOFS6 CPU */ + m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::samesame_hd647180_mem_map); + m_audiocpu->set_addrmap(AS_IO, &toaplan1_state::samesame_hd647180_io_map); config.m_perfect_cpu_quantum = subtag("maincpu"); - MCFG_MACHINE_RESET_OVERRIDE(toaplan1_samesame_state,zerowing) + MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,zerowing) /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); - m_screen->set_screen_update(FUNC(toaplan1_samesame_state::screen_update)); - m_screen->screen_vblank().set(FUNC(toaplan1_samesame_state::screen_vblank)); + m_screen->set_screen_update(FUNC(toaplan1_state::screen_update_toaplan1)); + m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank_samesame)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_toaplan1); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, (64*16)+(64*16)); + MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1) + /* sound hardware */ SPEAKER(config, "mono").front_center(); - YM3812(config, m_ymsnd, XTAL(28'000'000) / 8); + YM3812(config, m_ymsnd, XTAL(28'000'000)/8); m_ymsnd->irq_handler().set_inputline(m_audiocpu, 0); m_ymsnd->add_route(ALL_OUTPUTS, "mono", 1.0); } @@ -2118,8 +2138,8 @@ void toaplan1_state::outzone(machine_config &config) M68000(config, m_maincpu, XTAL(10'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &toaplan1_state::outzone_main_map); - Z80(config, m_audiocpu, XTAL(28'000'000) / 8); - m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::sound_map); + Z80(config, m_audiocpu, XTAL(28'000'000)/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::toaplan1_sound_map); m_audiocpu->set_addrmap(AS_IO, &toaplan1_state::outzone_sound_io_map); config.m_minimum_quantum = attotime::from_hz(600); @@ -2130,17 +2150,19 @@ void toaplan1_state::outzone(machine_config &config) SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL55, VBEND, VBSTART); - m_screen->set_screen_update(FUNC(toaplan1_state::screen_update)); - m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank)); + m_screen->set_screen_update(FUNC(toaplan1_state::screen_update_toaplan1)); + m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank_toaplan1)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_toaplan1); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, (64*16)+(64*16)); + MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1) + /* sound hardware */ SPEAKER(config, "mono").front_center(); - YM3812(config, m_ymsnd, XTAL(28'000'000) / 8); + YM3812(config, m_ymsnd, XTAL(28'000'000)/8); m_ymsnd->irq_handler().set_inputline(m_audiocpu, 0); m_ymsnd->add_route(ALL_OUTPUTS, "mono", 1.0); } @@ -2151,8 +2173,8 @@ void toaplan1_state::outzonecv(machine_config &config) M68000(config, m_maincpu, XTAL(10'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &toaplan1_state::outzonecv_main_map); - Z80(config, m_audiocpu, XTAL(28'000'000) / 8); - m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::sound_map); + Z80(config, m_audiocpu, XTAL(28'000'000)/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::toaplan1_sound_map); m_audiocpu->set_addrmap(AS_IO, &toaplan1_state::zerowing_sound_io_map); config.m_minimum_quantum = attotime::from_hz(600); @@ -2163,17 +2185,19 @@ void toaplan1_state::outzonecv(machine_config &config) SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); - m_screen->set_screen_update(FUNC(toaplan1_state::screen_update)); - m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank)); + m_screen->set_screen_update(FUNC(toaplan1_state::screen_update_toaplan1)); + m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank_toaplan1)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_toaplan1); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, (64*16)+(64*16)); + MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1) + /* sound hardware */ SPEAKER(config, "mono").front_center(); - YM3812(config, m_ymsnd, XTAL(28'000'000) / 8); + YM3812(config, m_ymsnd, XTAL(28'000'000)/8); m_ymsnd->irq_handler().set_inputline(m_audiocpu, 0); m_ymsnd->add_route(ALL_OUTPUTS, "mono", 1.0); } @@ -2181,32 +2205,34 @@ void toaplan1_state::outzonecv(machine_config &config) void toaplan1_state::vimana(machine_config &config) { /* basic machine hardware */ - M68000(config, m_maincpu, XTAL(10'000'000)); /* verified on pcb */ + M68000(config, m_maincpu, XTAL(10'000'000)); /* verified on pcb */ m_maincpu->set_addrmap(AS_PROGRAM, &toaplan1_state::vimana_main_map); - Z180(config, m_audiocpu, XTAL(28'000'000) / 8); /* HD647180XOFS6 CPU */ + Z180(config, m_audiocpu, XTAL(28'000'000)/8); /* HD647180XOFS6 CPU */ m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::vimana_hd647180_mem_map); m_audiocpu->set_addrmap(AS_IO, &toaplan1_state::vimana_hd647180_io_map); config.m_minimum_quantum = attotime::from_hz(600); - MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,zerowing) + MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,vimana) /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); - m_screen->set_screen_update(FUNC(toaplan1_state::screen_update)); - m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank)); + m_screen->set_screen_update(FUNC(toaplan1_state::screen_update_toaplan1)); + m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank_toaplan1)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_toaplan1); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, (64*16)+(64*16)); + MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1) + /* sound hardware */ SPEAKER(config, "mono").front_center(); - YM3812(config, m_ymsnd, XTAL(28'000'000) / 8); /* verified on pcb */ + YM3812(config, m_ymsnd, XTAL(28'000'000)/8); /* verified on pcb */ m_ymsnd->irq_handler().set_inputline(m_audiocpu, 0); m_ymsnd->add_route(ALL_OUTPUTS, "mono", 1.0); } @@ -2844,33 +2870,6 @@ ROM_START( fireshrkdh ) ROM_LOAD( "prom15.20c", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */ ROM_END -ROM_START( samesamecn ) - ROM_REGION( 0x080000, "maincpu", 0 ) /* Main 68K code */ - ROM_LOAD16_BYTE( "o17-09-h2.8j",0x000000, 0x08000, CRC(fc8c2420) SHA1(cf8333d3749213f2007467d3a80bd36ff7b4ce92) ) /* The actual label is stamped with the letter "H" and separate "2" */ - ROM_LOAD16_BYTE( "o17_10-h2.8l",0x000001, 0x08000, CRC(cc0ffbeb) SHA1(1cf85f68b4e368294069053ba8f5710d6c557ede) ) /* The actual label is stamped with the letter "H" and separate "2" */ - ROM_LOAD16_BYTE( "o17-11-2.7j", 0x040000, 0x20000, CRC(6beac378) SHA1(041ba98a89a4bac32575858db8a061bdf7804594) ) /* The actual label is stamped with the number "2" */ - ROM_LOAD16_BYTE( "o17-12-2.7l", 0x040001, 0x20000, CRC(6adb6eb5) SHA1(9b6e63aa50d271c2bb0b4cf822fc6f3684f10230) ) /* The actual label is stamped with the number "2" */ - - ROM_REGION( 0x8000, "audiocpu", 0 ) /* Sound HD647180 code */ - ROM_LOAD( "hd647180.017", 0x00000, 0x08000, CRC(43523032) SHA1(1b94003a00e7bf6bdf1b1b946f42ff5d04629949) ) - - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD16_BYTE( "o17_05.12j", 0x00000, 0x20000, CRC(565315f8) SHA1(6b1c5ef52359483228b329c89c2e1174e3fbf017) ) - ROM_LOAD16_BYTE( "o17_06.13j", 0x00001, 0x20000, CRC(95262d4c) SHA1(16f3aabecb1c87ce7eadf4f0ff61b29a4c017614) ) - ROM_LOAD16_BYTE( "o17_07.12l", 0x40000, 0x20000, CRC(4c4b735c) SHA1(812c3bf46bd7764b2bb812bd2b9eb0331ed257ae) ) - ROM_LOAD16_BYTE( "o17_08.13l", 0x40001, 0x20000, CRC(95c6586c) SHA1(ff87901f79d80f73ad09664b0c0d892898570616) ) - - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD16_BYTE( "o17_01.1d", 0x00000, 0x20000, CRC(ea12e491) SHA1(02190722b7c5383471e0af9596be7039a5367240) ) - ROM_LOAD16_BYTE( "o17_02.3d", 0x00001, 0x20000, CRC(32a13a9f) SHA1(1446acdfd21cd41f3d97aaf30f498c0c5d890605) ) - ROM_LOAD16_BYTE( "o17_03.5d", 0x40000, 0x20000, CRC(68723dc9) SHA1(4f1b7aa2469c955e03737b611a7d2524f1e4f61e) ) - ROM_LOAD16_BYTE( "o17_04.7d", 0x40001, 0x20000, CRC(fe0ecb13) SHA1(634a49262b9c092c25f11b14c6757fe94ea9eddc) ) - - ROM_REGION( 0x40, "proms", 0 ) /* nibble bproms, lo/hi order to be determined */ - ROM_LOAD( "prom14.25b", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */ - ROM_LOAD( "prom15.20c", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */ -ROM_END - ROM_START( outzone ) ROM_REGION( 0x040000, "maincpu", 0 ) /* Main 68K code */ ROM_LOAD16_BYTE( "tp_018_07.bin", 0x000001, 0x20000, CRC(9704db16) SHA1(12b43a6961a7f63f29563eb77aaacb70d3c368dd) ) @@ -3101,42 +3100,56 @@ ROM_START( vimanaj ) ROM_END -GAME( 1988, rallybik, 0, rallybik, rallybik, toaplan1_rallybik_state, empty_init, ROT270, "Toaplan / Taito Corporation", "Rally Bike / Dash Yarou", 0 ) +void toaplan1_state::init_toaplan1() +{ + toaplan1_driver_savestate(); +} + +void toaplan1_state::init_demonwld() +{ + toaplan1_driver_savestate(); + demonwld_driver_savestate(); +} + + + + + +GAME( 1988, rallybik, 0, rallybik, rallybik, toaplan1_rallybik_state, init_toaplan1, ROT270, "Toaplan / Taito Corporation", "Rally Bike / Dash Yarou", 0 ) -GAME( 1988, truxton, 0, truxton, truxton, toaplan1_state, empty_init, ROT270, "Toaplan / Taito Corporation", "Truxton / Tatsujin", 0 ) +GAME( 1988, truxton, 0, truxton, truxton, toaplan1_state, init_toaplan1, ROT270, "Toaplan / Taito Corporation", "Truxton / Tatsujin", 0 ) -GAME( 1989, hellfire, 0, hellfire, hellfire, toaplan1_state, empty_init, ROT0, "Toaplan (Taito license)", "Hellfire (2P set)", 0 ) -GAME( 1989, hellfire1, hellfire, hellfire, hellfire1, toaplan1_state, empty_init, ROT0, "Toaplan (Taito license)", "Hellfire (1P set)", 0 ) -GAME( 1989, hellfire2a, hellfire, hellfire, hellfire2a,toaplan1_state, empty_init, ROT0, "Toaplan (Taito license)", "Hellfire (2P set, older)", 0 ) -GAME( 1989, hellfire1a, hellfire, hellfire, hellfire1a,toaplan1_state, empty_init, ROT0, "Toaplan (Taito license)", "Hellfire (1P set, older)", 0 ) +GAME( 1989, hellfire, 0, hellfire, hellfire, toaplan1_state, init_toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (2P set)", 0 ) +GAME( 1989, hellfire1, hellfire, hellfire, hellfire1, toaplan1_state, init_toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (1P set)", 0 ) +GAME( 1989, hellfire2a, hellfire, hellfire, hellfire2a,toaplan1_state, init_toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (2P set, older)", 0 ) +GAME( 1989, hellfire1a, hellfire, hellfire, hellfire1a,toaplan1_state, init_toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (1P set, older)", 0 ) -GAME( 1989, zerowing, 0, zerowing, zerowing2, toaplan1_state, empty_init, ROT0, "Toaplan", "Zero Wing (2P set)", 0 ) -GAME( 1989, zerowing1, zerowing, zerowing, zerowing, toaplan1_state, empty_init, ROT0, "Toaplan", "Zero Wing (1P set)", 0 ) -GAME( 1989, zerowingw, zerowing, zerowing, zerowing2, toaplan1_state, empty_init, ROT0, "Toaplan (Williams license)", "Zero Wing (2P set, Williams license)", 0 ) +GAME( 1989, zerowing, 0, zerowing, zerowing2, toaplan1_state, init_toaplan1, ROT0, "Toaplan", "Zero Wing (2P set)", 0 ) +GAME( 1989, zerowing1, zerowing, zerowing, zerowing, toaplan1_state, init_toaplan1, ROT0, "Toaplan", "Zero Wing (1P set)", 0 ) +GAME( 1989, zerowingw, zerowing, zerowing, zerowing2, toaplan1_state, init_toaplan1, ROT0, "Toaplan (Williams license)", "Zero Wing (2P set, Williams license)", 0 ) -GAME( 1990, demonwld, 0, demonwld, demonwld, toaplan1_demonwld_state, empty_init, ROT0, "Toaplan", "Demon's World / Horror Story (set 1)", 0 ) -GAME( 1989, demonwld1, demonwld, demonwld, demonwld, toaplan1_demonwld_state, empty_init, ROT0, "Toaplan", "Demon's World / Horror Story (set 2)", 0 ) -GAME( 1989, demonwld2, demonwld, demonwld, demonwld1, toaplan1_demonwld_state, empty_init, ROT0, "Toaplan", "Demon's World / Horror Story (set 3)", 0 ) -GAME( 1989, demonwld3, demonwld, demonwld, demonwld1, toaplan1_demonwld_state, empty_init, ROT0, "Toaplan", "Demon's World / Horror Story (set 4)", 0 ) -GAME( 1989, demonwld4, demonwld, demonwld, demonwld1, toaplan1_demonwld_state, empty_init, ROT0, "Toaplan", "Demon's World / Horror Story (set 5)", 0 ) +GAME( 1990, demonwld, 0, demonwld, demonwld, toaplan1_state, init_demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 1)", 0 ) +GAME( 1989, demonwld1, demonwld, demonwld, demonwld, toaplan1_state, init_demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 2)", 0 ) +GAME( 1989, demonwld2, demonwld, demonwld, demonwld1, toaplan1_state, init_demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 3)", 0 ) +GAME( 1989, demonwld3, demonwld, demonwld, demonwld1, toaplan1_state, init_demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 4)", 0 ) +GAME( 1989, demonwld4, demonwld, demonwld, demonwld1, toaplan1_state, init_demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 5)", 0 ) -GAME( 1990, fireshrk, 0, samesame, fireshrk, toaplan1_samesame_state, empty_init, ROT270, "Toaplan", "Fire Shark", 0 ) -GAME( 1989, fireshrka, fireshrk, samesame, fireshrka, toaplan1_samesame_state, empty_init, ROT270, "Toaplan", "Fire Shark (earlier)", 0 ) -GAME( 1990, fireshrkd, fireshrk, samesame, samesame2, toaplan1_samesame_state, empty_init, ROT270, "Toaplan (Dooyong license)", "Fire Shark (Korea, set 1, easier)", 0 ) -GAME( 1990, fireshrkdh, fireshrk, samesame, samesame2, toaplan1_samesame_state, empty_init, ROT270, "Toaplan (Dooyong license)", "Fire Shark (Korea, set 2, harder)", 0 ) -GAME( 1989, samesame, fireshrk, samesame, samesame, toaplan1_samesame_state, empty_init, ROT270, "Toaplan", "Same! Same! Same! (1P set)", 0 ) -GAME( 1989, samesame2, fireshrk, samesame, samesame2, toaplan1_samesame_state, empty_init, ROT270, "Toaplan", "Same! Same! Same! (2P set)", 0 ) -GAME( 1990, samesamecn, fireshrk, samesame, samesame2, toaplan1_samesame_state, empty_init, ROT270, "Toaplan (Hong Kong Honest Trading license)", "Jiao! Jiao! Jiao! (China, 2P set)", 0 ) -GAME( 2015, samesamenh, fireshrk, samesame, samesame, toaplan1_samesame_state, empty_init, ROT270, "hack (trap15)", "Same! Same! Same! (1P set, NEW VER! hack)", 0 ) +GAME( 1990, fireshrk, 0, samesame, fireshrk, toaplan1_state, init_toaplan1, ROT270, "Toaplan", "Fire Shark", 0 ) +GAME( 1989, fireshrka, fireshrk, samesame, fireshrka, toaplan1_state, init_toaplan1, ROT270, "Toaplan", "Fire Shark (earlier)", 0 ) +GAME( 1990, fireshrkd, fireshrk, samesame, samesame2, toaplan1_state, init_toaplan1, ROT270, "Toaplan (Dooyong license)", "Fire Shark (Korea, set 1, easier)", 0 ) +GAME( 1990, fireshrkdh, fireshrk, samesame, samesame2, toaplan1_state, init_toaplan1, ROT270, "Toaplan (Dooyong license)", "Fire Shark (Korea, set 2, harder)", 0 ) +GAME( 1989, samesame, fireshrk, samesame, samesame, toaplan1_state, init_toaplan1, ROT270, "Toaplan", "Same! Same! Same! (1P set)", 0 ) +GAME( 1989, samesame2, fireshrk, samesame, samesame2, toaplan1_state, init_toaplan1, ROT270, "Toaplan", "Same! Same! Same! (2P set)", 0 ) +GAME( 2015, samesamenh, fireshrk, samesame, samesame, toaplan1_state, init_toaplan1, ROT270, "hack (trap15)", "Same! Same! Same! (1P set, NEW VER! hack)", 0 ) -GAME( 1990, outzone, 0, outzone, outzone, toaplan1_state, empty_init, ROT270, "Toaplan", "Out Zone", 0 ) -GAME( 1990, outzoneh, outzone, outzone, outzone, toaplan1_state, empty_init, ROT270, "Toaplan", "Out Zone (harder)", 0 ) -GAME( 1990, outzonea, outzone, outzone, outzonea, toaplan1_state, empty_init, ROT270, "Toaplan", "Out Zone (old set)", 0 ) -GAME( 1990, outzoneb, outzone, outzone, outzonea, toaplan1_state, empty_init, ROT270, "Toaplan", "Out Zone (older set)", 0 ) -GAME( 1990, outzonec, outzone, outzone, outzonec, toaplan1_state, empty_init, ROT270, "Toaplan", "Out Zone (oldest set)", MACHINE_IMPERFECT_SOUND ) // prototype? -GAME( 1990, outzonecv, outzone, outzonecv,outzone, toaplan1_state, empty_init, ROT270, "Toaplan", "Out Zone (Zero Wing TP-015 PCB conversion)", 0 ) +GAME( 1990, outzone, 0, outzone, outzone, toaplan1_state, init_toaplan1, ROT270, "Toaplan", "Out Zone", 0 ) +GAME( 1990, outzoneh, outzone, outzone, outzone, toaplan1_state, init_toaplan1, ROT270, "Toaplan", "Out Zone (harder)", 0 ) +GAME( 1990, outzonea, outzone, outzone, outzonea, toaplan1_state, init_toaplan1, ROT270, "Toaplan", "Out Zone (old set)", 0 ) +GAME( 1990, outzoneb, outzone, outzone, outzonea, toaplan1_state, init_toaplan1, ROT270, "Toaplan", "Out Zone (older set)", 0 ) +GAME( 1990, outzonec, outzone, outzone, outzonec, toaplan1_state, init_toaplan1, ROT270, "Toaplan", "Out Zone (oldest set)", MACHINE_IMPERFECT_SOUND ) // prototype? +GAME( 1990, outzonecv, outzone, outzonecv,outzone, toaplan1_state, init_toaplan1, ROT270, "Toaplan", "Out Zone (Zero Wing TP-015 PCB conversion)", 0 ) // has various licenses / regions depending on jumpers, including Tecmo -GAME( 1991, vimana, 0, vimana, vimana, toaplan1_state, empty_init, ROT270, "Toaplan", "Vimana (World, set 1)", 0 ) -GAME( 1991, vimanan, vimana, vimana, vimanan, toaplan1_state, empty_init, ROT270, "Toaplan", "Vimana (World, set 2)", 0 ) -GAME( 1991, vimanaj, vimana, vimana, vimanaj, toaplan1_state, empty_init, ROT270, "Toaplan", "Vimana (Japan)", 0 ) +GAME( 1991, vimana, 0, vimana, vimana, toaplan1_state, init_toaplan1, ROT270, "Toaplan", "Vimana (World, set 1)", 0 ) +GAME( 1991, vimanan, vimana, vimana, vimanan, toaplan1_state, init_toaplan1, ROT270, "Toaplan", "Vimana (World, set 2)", 0 ) +GAME( 1991, vimanaj, vimana, vimana, vimanaj, toaplan1_state, init_toaplan1, ROT270, "Toaplan", "Vimana (Japan)", 0 ) |