mirror of
https://github.com/holub/mame
synced 2025-05-19 12:18:56 +03:00
toaplan1.cpp : Updates
Cleanup duplicates, Reduce unnecessary runtime tag lookups, lines, functions, Simplify handlers, Fix namings, code styles Split demonwld, samesame specific machine state related to exclusive value, device Remove register_postload
This commit is contained in:
parent
e2f3b86caa
commit
0ecf69edcd
@ -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(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(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(0x140000, 0x140001).portr("VBLANK");
|
||||
// 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));
|
||||
// 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));
|
||||
}
|
||||
|
||||
void toaplan1_state::truxton_main_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x03ffff).rom();
|
||||
map(0x080000, 0x083fff).ram();
|
||||
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(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(0x140000, 0x140001).portr("VBLANK");
|
||||
// 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));
|
||||
// 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));
|
||||
}
|
||||
|
||||
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");
|
||||
// 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));
|
||||
// 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));
|
||||
}
|
||||
|
||||
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::toaplan1_tile_offsets_w));
|
||||
map(0x0c0006, 0x0c0007).w(FUNC(toaplan1_state::toaplan1_fcu_flipscreen_w));
|
||||
map(0x0c0000, 0x0c0003).w(FUNC(toaplan1_state::tile_offsets_w));
|
||||
map(0x0c0006, 0x0c0006).w(FUNC(toaplan1_state::fcu_flipscreen_w));
|
||||
map(0x400000, 0x400001).portr("VBLANK");
|
||||
// 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));
|
||||
// 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));
|
||||
}
|
||||
|
||||
void toaplan1_state::demonwld_main_map(address_map &map)
|
||||
void toaplan1_demonwld_state::main_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x03ffff).rom();
|
||||
map(0x400000, 0x400001).portr("VBLANK");
|
||||
// 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(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));
|
||||
map(0xc00000, 0xc03fff).ram();
|
||||
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 */
|
||||
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 */
|
||||
}
|
||||
|
||||
void toaplan1_state::samesame_main_map(address_map &map)
|
||||
void toaplan1_samesame_state::main_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x00ffff).rom();
|
||||
map(0x040000, 0x07ffff).rom();
|
||||
map(0x080000, 0x080003).w(FUNC(toaplan1_state::toaplan1_tile_offsets_w));
|
||||
map(0x080006, 0x080007).w(FUNC(toaplan1_state::toaplan1_fcu_flipscreen_w));
|
||||
map(0x080000, 0x080003).w(FUNC(toaplan1_samesame_state::tile_offsets_w));
|
||||
map(0x080006, 0x080006).w(FUNC(toaplan1_samesame_state::fcu_flipscreen_w));
|
||||
map(0x0c0000, 0x0c3fff).ram(); /* Frame done at $c1ada */
|
||||
map(0x100000, 0x100001).portr("VBLANK");
|
||||
// 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(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");
|
||||
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(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));
|
||||
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));
|
||||
}
|
||||
|
||||
void toaplan1_state::outzone_main_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x03ffff).rom();
|
||||
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(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(0x240000, 0x243fff).ram();
|
||||
map(0x300000, 0x300001).portr("VBLANK");
|
||||
// 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));
|
||||
// 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));
|
||||
}
|
||||
|
||||
void toaplan1_state::outzonecv_main_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x03ffff).rom();
|
||||
// AM_RANGE(0x040000, 0x07ffff) AM_ROM
|
||||
// map(0x040000, 0x07ffff).rom();
|
||||
map(0x080000, 0x087fff).ram();
|
||||
map(0x0c0000, 0x0c0003).w(FUNC(toaplan1_state::toaplan1_tile_offsets_w));
|
||||
map(0x0c0006, 0x0c0007).w(FUNC(toaplan1_state::toaplan1_fcu_flipscreen_w));
|
||||
map(0x0c0000, 0x0c0003).w(FUNC(toaplan1_state::tile_offsets_w));
|
||||
map(0x0c0006, 0x0c0006).w(FUNC(toaplan1_state::fcu_flipscreen_w));
|
||||
map(0x400000, 0x400001).portr("VBLANK");
|
||||
// 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));
|
||||
// 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));
|
||||
}
|
||||
|
||||
void toaplan1_state::vimana_main_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x03ffff).rom();
|
||||
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(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(0x400000, 0x400001).portr("VBLANK");
|
||||
// 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(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 */
|
||||
map(0x480000, 0x487fff).ram();
|
||||
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));
|
||||
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));
|
||||
}
|
||||
|
||||
|
||||
/***************************** Z80 Memory Map *******************************/
|
||||
|
||||
void toaplan1_state::toaplan1_sound_map(address_map &map)
|
||||
void toaplan1_state::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::toaplan1_coin_w)); /* Coin counter/lockout */
|
||||
map(0x30, 0x30).w(FUNC(toaplan1_state::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::toaplan1_coin_w)); /* Coin counter/lockout */
|
||||
map(0x30, 0x30).w(FUNC(toaplan1_state::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::toaplan1_coin_w)); /* Coin counter/lockout */
|
||||
map(0xa0, 0xa0).w(FUNC(toaplan1_state::coin_w)); /* Coin counter/lockout */
|
||||
map(0xa8, 0xa9).rw("ymsnd", FUNC(ym3812_device::read), FUNC(ym3812_device::write));
|
||||
}
|
||||
|
||||
void toaplan1_state::demonwld_sound_io_map(address_map &map)
|
||||
void toaplan1_demonwld_state::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_state::toaplan1_coin_w)); /* Coin counter/lockout */
|
||||
map(0x40, 0x40).w(FUNC(toaplan1_demonwld_state::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::toaplan1_coin_w)); /* Coin counter/lockout */
|
||||
map(0x04, 0x04).w(FUNC(toaplan1_state::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_state::dsp_program_map(address_map &map)
|
||||
void toaplan1_demonwld_state::dsp_program_map(address_map &map)
|
||||
{
|
||||
map(0x000, 0x7ff).rom();
|
||||
}
|
||||
|
||||
/* $000 - 08F TMS32010 Internal Data RAM in Data Address Space */
|
||||
|
||||
void toaplan1_state::dsp_io_map(address_map &map)
|
||||
void toaplan1_demonwld_state::dsp_io_map(address_map &map)
|
||||
{
|
||||
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));
|
||||
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));
|
||||
}
|
||||
|
||||
|
||||
@ -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::toaplan1_coin_w)); // Coin counter/lockout // needs verify
|
||||
map(0x84, 0x84).w(FUNC(toaplan1_state::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));
|
||||
}
|
||||
|
||||
READ8_MEMBER(toaplan1_state::vimana_dswb_invert_r)
|
||||
u8 toaplan1_state::vimana_dswb_invert_r()
|
||||
{
|
||||
return ioport("DSWB")->read() ^ 0xFF;
|
||||
return m_dswb_io->read() ^ 0xFF;
|
||||
}
|
||||
|
||||
READ8_MEMBER(toaplan1_state::vimana_tjump_invert_r)
|
||||
u8 toaplan1_state::vimana_tjump_invert_r()
|
||||
{
|
||||
return (ioport("TJUMP")->read() ^ 0xFF)|0xC0; // high 2 bits of port G always read as 1
|
||||
return (m_tjump_io->read() ^ 0xFF)|0xC0; // high 2 bits of port G always read as 1
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(toaplan1_state::samesame_mcu_w)
|
||||
void toaplan1_samesame_state::mcu_w(u8 data)
|
||||
{
|
||||
m_to_mcu = data;
|
||||
m_cmdavailable = 1;
|
||||
};
|
||||
|
||||
READ8_MEMBER(toaplan1_state::samesame_soundlatch_r)
|
||||
u8 toaplan1_samesame_state::soundlatch_r()
|
||||
{
|
||||
return m_to_mcu;
|
||||
};
|
||||
|
||||
WRITE8_MEMBER(toaplan1_state::samesame_sound_done_w)
|
||||
void toaplan1_samesame_state::sound_done_w(u8 data)
|
||||
{
|
||||
m_to_mcu = data;
|
||||
m_cmdavailable = 0;
|
||||
}
|
||||
|
||||
READ8_MEMBER(toaplan1_state::samesame_cmdavailable_r)
|
||||
u8 toaplan1_samesame_state::cmdavailable_r()
|
||||
{
|
||||
if (m_cmdavailable) return 0xff;
|
||||
else return 0x00;
|
||||
};
|
||||
|
||||
void toaplan1_state::samesame_hd647180_mem_map(address_map &map)
|
||||
void toaplan1_samesame_state::hd647180_mem_map(address_map &map)
|
||||
{
|
||||
map(0x00000, 0x03fff).rom(); /* Internal 16k byte ROM */
|
||||
map(0x0fe00, 0x0ffff).ram(); /* Internal 512 byte RAM */
|
||||
}
|
||||
|
||||
void toaplan1_state::samesame_hd647180_io_map(address_map &map)
|
||||
void toaplan1_samesame_state::hd647180_io_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
|
||||
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(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(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 },
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7 },
|
||||
{ 0, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
|
||||
{ STEP8(0,1) },
|
||||
{ STEP8(0,8*2) },
|
||||
16*8 /* every tile takes 16 consecutive bytes */
|
||||
};
|
||||
|
||||
|
||||
static GFXDECODE_START( gfx_toaplan1 )
|
||||
GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 64 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0x00000, tilelayout, 64*16, 64 )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0, 64 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 64*16, 64 )
|
||||
GFXDECODE_END
|
||||
|
||||
static GFXDECODE_START( gfx_rallybik )
|
||||
GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 64 )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, 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 (toaplan1_bcu_control_w)
|
||||
// HTOTAL and VTOTAL taken from CRTC registers (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::toaplan1_sound_map);
|
||||
Z80(config, m_audiocpu, XTAL(28'000'000) / 8);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_rallybik_state::sound_map);
|
||||
m_audiocpu->set_addrmap(AS_IO, &toaplan1_rallybik_state::rallybik_sound_io_map);
|
||||
|
||||
config.m_minimum_quantum = attotime::from_hz(600);
|
||||
@ -1925,14 +1925,12 @@ 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_rallybik));
|
||||
m_screen->screen_vblank().set(FUNC(toaplan1_rallybik_state::screen_vblank_rallybik));
|
||||
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_palette(m_palette);
|
||||
|
||||
TOAPLAN_SCU(config, m_spritegen, 0);
|
||||
@ -1942,8 +1940,6 @@ 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();
|
||||
|
||||
@ -1958,31 +1954,27 @@ 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::toaplan1_sound_map);
|
||||
Z80(config, m_audiocpu, XTAL(28'000'000) / 8);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::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_toaplan1));
|
||||
m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank_toaplan1));
|
||||
m_screen->set_screen_update(FUNC(toaplan1_state::screen_update));
|
||||
m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank));
|
||||
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);
|
||||
}
|
||||
@ -1993,31 +1985,27 @@ 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::toaplan1_sound_map);
|
||||
Z80(config, m_audiocpu, XTAL(28'000'000) / 8);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::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_toaplan1));
|
||||
m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank_toaplan1));
|
||||
m_screen->set_screen_update(FUNC(toaplan1_state::screen_update));
|
||||
m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank));
|
||||
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);
|
||||
}
|
||||
@ -2028,8 +2016,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::toaplan1_sound_map);
|
||||
Z80(config, m_audiocpu, XTAL(28'000'000) / 8);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::sound_map);
|
||||
m_audiocpu->set_addrmap(AS_IO, &toaplan1_state::zerowing_sound_io_map);
|
||||
|
||||
config.m_minimum_quantum = attotime::from_hz(600);
|
||||
@ -2040,94 +2028,86 @@ 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_toaplan1));
|
||||
m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank_toaplan1));
|
||||
m_screen->set_screen_update(FUNC(toaplan1_state::screen_update));
|
||||
m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank));
|
||||
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_state::demonwld(machine_config &config)
|
||||
void toaplan1_demonwld_state::demonwld(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M68000(config, m_maincpu, XTAL(10'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &toaplan1_state::demonwld_main_map);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &toaplan1_demonwld_state::main_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);
|
||||
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);
|
||||
|
||||
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));
|
||||
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));
|
||||
|
||||
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_state::screen_update_toaplan1));
|
||||
m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank_toaplan1));
|
||||
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_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_state::samesame(machine_config &config)
|
||||
void toaplan1_samesame_state::samesame(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M68000(config, m_maincpu, XTAL(10'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &toaplan1_state::samesame_main_map);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &toaplan1_samesame_state::main_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);
|
||||
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);
|
||||
|
||||
config.m_perfect_cpu_quantum = subtag("maincpu");
|
||||
|
||||
MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,zerowing)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(toaplan1_samesame_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_state::screen_update_toaplan1));
|
||||
m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank_samesame));
|
||||
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_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);
|
||||
}
|
||||
@ -2138,8 +2118,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::toaplan1_sound_map);
|
||||
Z80(config, m_audiocpu, XTAL(28'000'000) / 8);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::sound_map);
|
||||
m_audiocpu->set_addrmap(AS_IO, &toaplan1_state::outzone_sound_io_map);
|
||||
|
||||
config.m_minimum_quantum = attotime::from_hz(600);
|
||||
@ -2150,19 +2130,17 @@ 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_toaplan1));
|
||||
m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank_toaplan1));
|
||||
m_screen->set_screen_update(FUNC(toaplan1_state::screen_update));
|
||||
m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank));
|
||||
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);
|
||||
}
|
||||
@ -2173,8 +2151,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::toaplan1_sound_map);
|
||||
Z80(config, m_audiocpu, XTAL(28'000'000) / 8);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::sound_map);
|
||||
m_audiocpu->set_addrmap(AS_IO, &toaplan1_state::zerowing_sound_io_map);
|
||||
|
||||
config.m_minimum_quantum = attotime::from_hz(600);
|
||||
@ -2185,19 +2163,17 @@ 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_toaplan1));
|
||||
m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank_toaplan1));
|
||||
m_screen->set_screen_update(FUNC(toaplan1_state::screen_update));
|
||||
m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank));
|
||||
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);
|
||||
}
|
||||
@ -2208,31 +2184,29 @@ void toaplan1_state::vimana(machine_config &config)
|
||||
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,vimana)
|
||||
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_state::screen_update_toaplan1));
|
||||
m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank_toaplan1));
|
||||
m_screen->set_screen_update(FUNC(toaplan1_state::screen_update));
|
||||
m_screen->screen_vblank().set(FUNC(toaplan1_state::screen_vblank));
|
||||
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);
|
||||
}
|
||||
@ -3127,57 +3101,42 @@ ROM_START( vimanaj )
|
||||
ROM_END
|
||||
|
||||
|
||||
void toaplan1_state::init_toaplan1()
|
||||
{
|
||||
toaplan1_driver_savestate();
|
||||
}
|
||||
GAME( 1988, rallybik, 0, rallybik, rallybik, toaplan1_rallybik_state, empty_init, ROT270, "Toaplan / Taito Corporation", "Rally Bike / Dash Yarou", 0 )
|
||||
|
||||
void toaplan1_state::init_demonwld()
|
||||
{
|
||||
toaplan1_driver_savestate();
|
||||
demonwld_driver_savestate();
|
||||
}
|
||||
GAME( 1988, truxton, 0, truxton, truxton, toaplan1_state, empty_init, 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, 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( 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, 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( 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, init_toaplan1, ROT270, "Toaplan / Taito Corporation", "Truxton / Tatsujin", 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, 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_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_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( 1990, samesamecn, fireshrk, samesame, samesame2, toaplan1_state, init_toaplan1, ROT270, "Toaplan (Hong Kong Honest Trading license)", "Jiao! Jiao! Jiao! (China, 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, 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 )
|
||||
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 )
|
||||
|
||||
// has various licenses / regions depending on jumpers, including Tecmo
|
||||
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 )
|
||||
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 )
|
||||
|
@ -24,18 +24,17 @@ public:
|
||||
m_bgpaletteram(*this, "bgpalette"),
|
||||
m_fgpaletteram(*this, "fgpalette"),
|
||||
m_sharedram(*this, "sharedram"),
|
||||
m_dswb_io(*this, "DSWB"),
|
||||
m_tjump_io(*this, "TJUMP"),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_ymsnd(*this, "ymsnd"),
|
||||
m_dsp(*this, "dsp"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette")
|
||||
{ }
|
||||
|
||||
void demonwld(machine_config &config);
|
||||
void samesame(machine_config &config);
|
||||
void truxton(machine_config &config);
|
||||
void outzone(machine_config &config);
|
||||
void vimana(machine_config &config);
|
||||
@ -43,161 +42,112 @@ public:
|
||||
void hellfire(machine_config &config);
|
||||
void zerowing(machine_config &config);
|
||||
|
||||
void init_toaplan1();
|
||||
void init_demonwld();
|
||||
|
||||
DECLARE_MACHINE_RESET(toaplan1);
|
||||
|
||||
protected:
|
||||
required_shared_ptr<uint16_t> m_bgpaletteram;
|
||||
required_shared_ptr<uint16_t> m_fgpaletteram;
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
optional_shared_ptr<uint8_t> m_sharedram;
|
||||
required_shared_ptr<u16> m_bgpaletteram;
|
||||
required_shared_ptr<u16> m_fgpaletteram;
|
||||
|
||||
optional_shared_ptr<u8> m_sharedram;
|
||||
|
||||
optional_ioport m_dswb_io;
|
||||
optional_ioport m_tjump_io;
|
||||
|
||||
int m_intenable;
|
||||
|
||||
/* Demon world */
|
||||
int m_dsp_on;
|
||||
int m_dsp_bio;
|
||||
int m_dsp_execute;
|
||||
uint32_t m_dsp_addr_w;
|
||||
uint32_t m_main_ram_seg;
|
||||
std::unique_ptr<u16[]> m_tilevram[4];
|
||||
/*
|
||||
std::unique_ptr<u16[]> m_tilevram[3]; // || Drawn in this order
|
||||
std::unique_ptr<u16[]> m_tilevram[2]; // ||
|
||||
std::unique_ptr<u16[]> m_tilevram[1]; // \||/
|
||||
std::unique_ptr<u16[]> m_tilevram[0]; // \/
|
||||
*/
|
||||
|
||||
std::unique_ptr<uint16_t[]> m_pf4_tilevram16; /* || Drawn in this order */
|
||||
std::unique_ptr<uint16_t[]> m_pf3_tilevram16; /* || */
|
||||
std::unique_ptr<uint16_t[]> m_pf2_tilevram16; /* \||/ */
|
||||
std::unique_ptr<uint16_t[]> m_pf1_tilevram16; /* \/ */
|
||||
optional_shared_ptr<u16> m_spriteram;
|
||||
std::unique_ptr<u16[]> m_buffered_spriteram;
|
||||
std::unique_ptr<u16[]> m_spritesizeram;
|
||||
std::unique_ptr<u16[]> m_buffered_spritesizeram;
|
||||
|
||||
optional_shared_ptr<uint16_t> m_spriteram;
|
||||
std::unique_ptr<uint16_t[]> m_buffered_spriteram;
|
||||
std::unique_ptr<uint16_t[]> m_spritesizeram16;
|
||||
std::unique_ptr<uint16_t[]> m_buffered_spritesizeram16;
|
||||
s32 m_bcu_flipscreen; /* Tile controller flip flag */
|
||||
s32 m_fcu_flipscreen; /* Sprite controller flip flag */
|
||||
|
||||
int32_t m_bcu_flipscreen; /* Tile controller flip flag */
|
||||
int32_t m_fcu_flipscreen; /* Sprite controller flip flag */
|
||||
s32 m_pf_voffs;
|
||||
s32 m_spriteram_offs;
|
||||
|
||||
int32_t m_pf_voffs;
|
||||
int32_t m_spriteram_offs;
|
||||
|
||||
int32_t m_pf1_scrollx;
|
||||
int32_t m_pf1_scrolly;
|
||||
int32_t m_pf2_scrollx;
|
||||
int32_t m_pf2_scrolly;
|
||||
int32_t m_pf3_scrollx;
|
||||
int32_t m_pf3_scrolly;
|
||||
int32_t m_pf4_scrollx;
|
||||
int32_t m_pf4_scrolly;
|
||||
s32 m_scrollx[4];
|
||||
s32 m_scrolly[4];
|
||||
|
||||
#ifdef MAME_DEBUG
|
||||
int m_display_pf1;
|
||||
int m_display_pf2;
|
||||
int m_display_pf3;
|
||||
int m_display_pf4;
|
||||
int m_display_pf[4];
|
||||
int m_displog;
|
||||
#endif
|
||||
|
||||
int32_t m_tiles_offsetx;
|
||||
int32_t m_tiles_offsety;
|
||||
s32 m_tiles_offsetx;
|
||||
s32 m_tiles_offsety;
|
||||
|
||||
tilemap_t *m_pf1_tilemap;
|
||||
tilemap_t *m_pf2_tilemap;
|
||||
tilemap_t *m_pf3_tilemap;
|
||||
tilemap_t *m_pf4_tilemap;
|
||||
tilemap_t *m_tilemap[4];
|
||||
|
||||
DECLARE_WRITE16_MEMBER(toaplan1_intenable_w);
|
||||
DECLARE_WRITE16_MEMBER(demonwld_dsp_addrsel_w);
|
||||
DECLARE_READ16_MEMBER(demonwld_dsp_r);
|
||||
DECLARE_WRITE16_MEMBER(demonwld_dsp_w);
|
||||
DECLARE_WRITE16_MEMBER(demonwld_dsp_bio_w);
|
||||
DECLARE_READ_LINE_MEMBER(demonwld_bio_r);
|
||||
DECLARE_WRITE16_MEMBER(demonwld_dsp_ctrl_w);
|
||||
DECLARE_READ16_MEMBER(samesame_port_6_word_r);
|
||||
DECLARE_READ16_MEMBER(toaplan1_shared_r);
|
||||
DECLARE_WRITE16_MEMBER(toaplan1_shared_w);
|
||||
DECLARE_WRITE16_MEMBER(toaplan1_reset_sound_w);
|
||||
DECLARE_WRITE8_MEMBER(toaplan1_coin_w);
|
||||
DECLARE_WRITE16_MEMBER(samesame_coin_w);
|
||||
void intenable_w(u8 data);
|
||||
u8 shared_r(offs_t offset);
|
||||
void shared_w(offs_t offset, u8 data);
|
||||
void reset_sound_w(u8 data);
|
||||
void coin_w(u8 data);
|
||||
|
||||
DECLARE_READ16_MEMBER(toaplan1_frame_done_r);
|
||||
DECLARE_WRITE16_MEMBER(toaplan1_tile_offsets_w);
|
||||
DECLARE_WRITE16_MEMBER(toaplan1_bcu_flipscreen_w);
|
||||
DECLARE_WRITE16_MEMBER(toaplan1_fcu_flipscreen_w);
|
||||
DECLARE_READ16_MEMBER(toaplan1_spriteram_offs_r);
|
||||
DECLARE_WRITE16_MEMBER(toaplan1_spriteram_offs_w);
|
||||
DECLARE_WRITE16_MEMBER(toaplan1_bgpalette_w);
|
||||
DECLARE_WRITE16_MEMBER(toaplan1_fgpalette_w);
|
||||
DECLARE_READ16_MEMBER(toaplan1_spriteram16_r);
|
||||
DECLARE_WRITE16_MEMBER(toaplan1_spriteram16_w);
|
||||
DECLARE_READ16_MEMBER(toaplan1_spritesizeram16_r);
|
||||
DECLARE_WRITE16_MEMBER(toaplan1_spritesizeram16_w);
|
||||
DECLARE_WRITE16_MEMBER(toaplan1_bcu_control_w);
|
||||
DECLARE_READ16_MEMBER(toaplan1_tileram_offs_r);
|
||||
DECLARE_WRITE16_MEMBER(toaplan1_tileram_offs_w);
|
||||
DECLARE_READ16_MEMBER(toaplan1_tileram16_r);
|
||||
DECLARE_WRITE16_MEMBER(toaplan1_tileram16_w);
|
||||
DECLARE_READ16_MEMBER(toaplan1_scroll_regs_r);
|
||||
DECLARE_WRITE16_MEMBER(toaplan1_scroll_regs_w);
|
||||
u16 frame_done_r();
|
||||
DECLARE_WRITE16_MEMBER(tile_offsets_w);
|
||||
void bcu_flipscreen_w(u8 data);
|
||||
void fcu_flipscreen_w(u8 data);
|
||||
u16 spriteram_offs_r();
|
||||
void spriteram_offs_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void bgpalette_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void fgpalette_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
u16 spriteram_r();
|
||||
void spriteram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
u16 spritesizeram_r();
|
||||
void spritesizeram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void bcu_control_w(offs_t offset, u16 data);
|
||||
u16 tileram_offs_r();
|
||||
void tileram_offs_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
u16 tileram_r(offs_t offset);
|
||||
void tileram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
u16 scroll_regs_r(offs_t offset);
|
||||
void scroll_regs_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
|
||||
// Fire Shark sound
|
||||
uint8_t m_to_mcu;
|
||||
uint8_t m_cmdavailable;
|
||||
u8 vimana_dswb_invert_r();
|
||||
u8 vimana_tjump_invert_r();
|
||||
|
||||
DECLARE_READ8_MEMBER(vimana_dswb_invert_r);
|
||||
DECLARE_READ8_MEMBER(vimana_tjump_invert_r);
|
||||
DECLARE_WRITE16_MEMBER(samesame_mcu_w);
|
||||
DECLARE_READ8_MEMBER(samesame_soundlatch_r);
|
||||
DECLARE_WRITE8_MEMBER(samesame_sound_done_w);
|
||||
DECLARE_READ8_MEMBER(samesame_cmdavailable_r);
|
||||
template<unsigned Layer> TILE_GET_INFO_MEMBER(get_tile_info);
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_pf1_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_pf2_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_pf3_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_pf4_tile_info);
|
||||
|
||||
DECLARE_VIDEO_START(toaplan1);
|
||||
DECLARE_MACHINE_RESET(zerowing);
|
||||
DECLARE_MACHINE_RESET(demonwld);
|
||||
DECLARE_MACHINE_RESET(vimana);
|
||||
uint32_t screen_update_toaplan1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank_toaplan1);
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank_samesame);
|
||||
void toaplan1_interrupt();
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank);
|
||||
void interrupt();
|
||||
|
||||
void demonwld_restore_dsp();
|
||||
void toaplan1_create_tilemaps();
|
||||
void toaplan1_vram_alloc();
|
||||
void toaplan1_spritevram_alloc();
|
||||
void toaplan1_set_scrolls();
|
||||
void create_tilemaps();
|
||||
void vram_alloc();
|
||||
void spritevram_alloc();
|
||||
void set_scrolls();
|
||||
void register_common();
|
||||
void toaplan1_log_vram();
|
||||
void log_vram();
|
||||
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
void demonwld_dsp(int enable);
|
||||
void toaplan1_reset_sound();
|
||||
void toaplan1_driver_savestate();
|
||||
void demonwld_driver_savestate();
|
||||
DECLARE_WRITE_LINE_MEMBER(toaplan1_reset_callback);
|
||||
void reset_sound();
|
||||
DECLARE_WRITE_LINE_MEMBER(reset_callback);
|
||||
required_device<m68000_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<ym3812_device> m_ymsnd;
|
||||
optional_device<tms32010_device> m_dsp;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
void dsp_io_map(address_map &map);
|
||||
void dsp_program_map(address_map &map);
|
||||
void demonwld_main_map(address_map &map);
|
||||
void demonwld_sound_io_map(address_map &map);
|
||||
void hellfire_main_map(address_map &map);
|
||||
void hellfire_sound_io_map(address_map &map);
|
||||
void outzone_main_map(address_map &map);
|
||||
void outzone_sound_io_map(address_map &map);
|
||||
void outzonecv_main_map(address_map &map);
|
||||
void samesame_hd647180_io_map(address_map &map);
|
||||
void samesame_hd647180_mem_map(address_map &map);
|
||||
void samesame_main_map(address_map &map);
|
||||
void toaplan1_sound_map(address_map &map);
|
||||
void sound_map(address_map &map);
|
||||
void truxton_main_map(address_map &map);
|
||||
void truxton_sound_io_map(address_map &map);
|
||||
void vimana_hd647180_io_map(address_map &map);
|
||||
@ -218,19 +168,91 @@ public:
|
||||
|
||||
void rallybik(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void video_start() override;
|
||||
|
||||
private:
|
||||
DECLARE_WRITE_LINE_MEMBER(coin_counter_1_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(coin_counter_2_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(coin_lockout_1_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(coin_lockout_2_w);
|
||||
DECLARE_READ16_MEMBER(rallybik_tileram16_r);
|
||||
DECLARE_VIDEO_START(rallybik);
|
||||
uint32_t screen_update_rallybik(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank_rallybik);
|
||||
u16 tileram_r(offs_t offset);
|
||||
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank);
|
||||
|
||||
required_device<toaplan_scu_device> m_spritegen;
|
||||
void rallybik_main_map(address_map &map);
|
||||
void rallybik_sound_io_map(address_map &map);
|
||||
};
|
||||
|
||||
class toaplan1_demonwld_state : public toaplan1_state
|
||||
{
|
||||
public:
|
||||
toaplan1_demonwld_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
toaplan1_state(mconfig, type, tag),
|
||||
m_dsp(*this, "dsp")
|
||||
{
|
||||
}
|
||||
|
||||
void demonwld(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void device_post_load() override;
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
private:
|
||||
/* Demon world */
|
||||
int m_dsp_on;
|
||||
int m_dsp_bio;
|
||||
int m_dsp_execute;
|
||||
u32 m_dsp_addr_w;
|
||||
u32 m_main_ram_seg;
|
||||
|
||||
void dsp_addrsel_w(u16 data);
|
||||
u16 dsp_r();
|
||||
void dsp_w(u16 data);
|
||||
void dsp_bio_w(u16 data);
|
||||
DECLARE_READ_LINE_MEMBER(bio_r);
|
||||
void dsp_ctrl_w(u8 data);
|
||||
void dsp_int_w(int enable);
|
||||
|
||||
required_device<tms32010_device> m_dsp;
|
||||
void dsp_io_map(address_map &map);
|
||||
void dsp_program_map(address_map &map);
|
||||
void main_map(address_map &map);
|
||||
void sound_io_map(address_map &map);
|
||||
};
|
||||
|
||||
class toaplan1_samesame_state : public toaplan1_state
|
||||
{
|
||||
public:
|
||||
toaplan1_samesame_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
toaplan1_state(mconfig, type, tag)
|
||||
{
|
||||
}
|
||||
|
||||
void samesame(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
|
||||
private:
|
||||
// Fire Shark sound
|
||||
u8 m_to_mcu;
|
||||
u8 m_cmdavailable;
|
||||
|
||||
void mcu_w(u8 data);
|
||||
u8 soundlatch_r();
|
||||
void sound_done_w(u8 data);
|
||||
u8 cmdavailable_r();
|
||||
u8 port_6_word_r();
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank);
|
||||
|
||||
void hd647180_io_map(address_map &map);
|
||||
void hd647180_mem_map(address_map &map);
|
||||
void main_map(address_map &map);
|
||||
};
|
||||
|
||||
#endif // MAME_INCLUDES_TOAPLAN1_H
|
||||
|
@ -12,22 +12,19 @@
|
||||
#include "includes/toaplan1.h"
|
||||
|
||||
|
||||
void toaplan1_state::toaplan1_interrupt()
|
||||
void toaplan1_state::interrupt()
|
||||
{
|
||||
if (m_intenable)
|
||||
m_maincpu->set_input_line(4, HOLD_LINE);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(toaplan1_state::toaplan1_intenable_w)
|
||||
void toaplan1_state::intenable_w(u8 data)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_intenable = data & 0xff;
|
||||
}
|
||||
m_intenable = data;
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(toaplan1_state::demonwld_dsp_addrsel_w)
|
||||
void toaplan1_demonwld_state::dsp_addrsel_w(u16 data)
|
||||
{
|
||||
/* This sets the main CPU RAM address the DSP should */
|
||||
/* read/write, via the DSP IO port 0 */
|
||||
@ -42,13 +39,14 @@ WRITE16_MEMBER(toaplan1_state::demonwld_dsp_addrsel_w)
|
||||
logerror("DSP PC:%04x IO write %04x (%08x) at port 0\n", m_dsp->pcbase(), data, m_main_ram_seg + m_dsp_addr_w);
|
||||
}
|
||||
|
||||
READ16_MEMBER(toaplan1_state::demonwld_dsp_r)
|
||||
u16 toaplan1_demonwld_state::dsp_r()
|
||||
{
|
||||
/* DSP can read data from main CPU RAM via DSP IO port 1 */
|
||||
|
||||
uint16_t input_data = 0;
|
||||
u16 input_data = 0;
|
||||
|
||||
switch (m_main_ram_seg) {
|
||||
switch (m_main_ram_seg)
|
||||
{
|
||||
case 0xc00000: {address_space &mainspace = m_maincpu->space(AS_PROGRAM);
|
||||
input_data = mainspace.read_word(m_main_ram_seg + m_dsp_addr_w);
|
||||
break;}
|
||||
@ -58,11 +56,12 @@ READ16_MEMBER(toaplan1_state::demonwld_dsp_r)
|
||||
return input_data;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(toaplan1_state::demonwld_dsp_w)
|
||||
void toaplan1_demonwld_state::dsp_w(u16 data)
|
||||
{
|
||||
/* Data written to main CPU RAM via DSP IO port 1 */
|
||||
m_dsp_execute = 0;
|
||||
switch (m_main_ram_seg) {
|
||||
switch (m_main_ram_seg)
|
||||
{
|
||||
case 0xc00000: {if ((m_dsp_addr_w < 3) && (data == 0)) m_dsp_execute = 1;
|
||||
address_space &mainspace = m_maincpu->space(AS_PROGRAM);
|
||||
mainspace.write_word(m_main_ram_seg + m_dsp_addr_w, data);
|
||||
@ -72,7 +71,7 @@ WRITE16_MEMBER(toaplan1_state::demonwld_dsp_w)
|
||||
logerror("DSP PC:%04x IO write %04x at %08x (port 1)\n", m_dsp->pcbase(), data, m_main_ram_seg + m_dsp_addr_w);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(toaplan1_state::demonwld_dsp_bio_w)
|
||||
void toaplan1_demonwld_state::dsp_bio_w(u16 data)
|
||||
{
|
||||
/* data 0xffff means inhibit BIO line to DSP and enable */
|
||||
/* communication to main processor */
|
||||
@ -82,11 +81,13 @@ WRITE16_MEMBER(toaplan1_state::demonwld_dsp_bio_w)
|
||||
|
||||
|
||||
logerror("DSP PC:%04x IO write %04x at port 3\n", m_dsp->pcbase(), data);
|
||||
if (data & 0x8000) {
|
||||
if (data & 0x8000)
|
||||
m_dsp_bio = CLEAR_LINE;
|
||||
}
|
||||
if (data == 0) {
|
||||
if (m_dsp_execute) {
|
||||
|
||||
if (data == 0)
|
||||
{
|
||||
if (m_dsp_execute)
|
||||
{
|
||||
logerror("Turning 68000 on\n");
|
||||
m_maincpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
|
||||
m_dsp_execute = 0;
|
||||
@ -95,13 +96,13 @@ WRITE16_MEMBER(toaplan1_state::demonwld_dsp_bio_w)
|
||||
}
|
||||
}
|
||||
|
||||
READ_LINE_MEMBER(toaplan1_state::demonwld_bio_r)
|
||||
READ_LINE_MEMBER(toaplan1_demonwld_state::bio_r)
|
||||
{
|
||||
return m_dsp_bio;
|
||||
}
|
||||
|
||||
|
||||
void toaplan1_state::demonwld_dsp(int enable)
|
||||
void toaplan1_demonwld_state::dsp_int_w(int enable)
|
||||
{
|
||||
m_dsp_on = enable;
|
||||
if (enable)
|
||||
@ -119,55 +120,45 @@ void toaplan1_state::demonwld_dsp(int enable)
|
||||
}
|
||||
}
|
||||
|
||||
void toaplan1_state::demonwld_restore_dsp()
|
||||
void toaplan1_demonwld_state::device_post_load()
|
||||
{
|
||||
demonwld_dsp(m_dsp_on);
|
||||
dsp_int_w(m_dsp_on);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(toaplan1_state::demonwld_dsp_ctrl_w)
|
||||
void toaplan1_demonwld_state::dsp_ctrl_w(u8 data)
|
||||
{
|
||||
#if 0
|
||||
logerror("68000:%08x Writing %08x to %08x.\n",m_maincpu->pc() ,data ,0xe0000a + offset);
|
||||
logerror("68000:%08x Writing %02x to $e0000b.\n",m_maincpu->pc() ,data);
|
||||
#endif
|
||||
|
||||
if (ACCESSING_BITS_0_7)
|
||||
switch (data)
|
||||
{
|
||||
switch (data)
|
||||
{
|
||||
case 0x00: demonwld_dsp(1); break; /* Enable the INT line to the DSP */
|
||||
case 0x01: demonwld_dsp(0); break; /* Inhibit the INT line to the DSP */
|
||||
default: logerror("68000:%04x Writing unknown command %08x to %08x\n",m_maincpu->pcbase() ,data ,0xe0000a + offset); break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
logerror("68000:%04x Writing unknown command %08x to %08x\n",m_maincpu->pcbase() ,data ,0xe0000a + offset);
|
||||
case 0x00: dsp_int_w(1); break; /* Enable the INT line to the DSP */
|
||||
case 0x01: dsp_int_w(0); break; /* Inhibit the INT line to the DSP */
|
||||
default: logerror("68000:%08x Writing unknown command %02x to $e0000b\n",m_maincpu->pcbase() ,data); break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
READ16_MEMBER(toaplan1_state::samesame_port_6_word_r)
|
||||
u8 toaplan1_samesame_state::port_6_word_r()
|
||||
{
|
||||
/* Bit 0x80 is secondary CPU (HD647180) ready signal */
|
||||
logerror("PC:%04x Warning !!! IO reading from $14000a\n",m_maincpu->pcbase());
|
||||
return (0x80 | ioport("TJUMP")->read()) & 0xff;
|
||||
logerror("PC:%08x Warning !!! IO reading from $14000b\n",m_maincpu->pcbase());
|
||||
return (0x80 | m_tjump_io->read()) & 0xff;
|
||||
}
|
||||
|
||||
READ16_MEMBER(toaplan1_state::toaplan1_shared_r)
|
||||
u8 toaplan1_state::shared_r(offs_t offset)
|
||||
{
|
||||
return m_sharedram[offset] & 0xff;
|
||||
return m_sharedram[offset];
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(toaplan1_state::toaplan1_shared_w)
|
||||
void toaplan1_state::shared_w(offs_t offset, u8 data)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_sharedram[offset] = data & 0xff;
|
||||
}
|
||||
m_sharedram[offset] = data;
|
||||
}
|
||||
|
||||
|
||||
void toaplan1_state::toaplan1_reset_sound()
|
||||
void toaplan1_state::reset_sound()
|
||||
{
|
||||
/* Reset the secondary CPU and sound chip */
|
||||
/* rallybik, truxton, hellfire, demonwld write to a port to cause a reset */
|
||||
@ -176,9 +167,9 @@ void toaplan1_state::toaplan1_reset_sound()
|
||||
m_audiocpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(toaplan1_state::toaplan1_reset_sound_w)
|
||||
void toaplan1_state::reset_sound_w(u8 data)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7 && (data == 0)) toaplan1_reset_sound();
|
||||
if (data == 0) reset_sound();
|
||||
}
|
||||
|
||||
|
||||
@ -203,14 +194,15 @@ WRITE_LINE_MEMBER(toaplan1_rallybik_state::coin_lockout_2_w)
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(toaplan1_state::toaplan1_coin_w)
|
||||
void toaplan1_state::coin_w(u8 data)
|
||||
{
|
||||
logerror("Z80 writing %02x to coin control\n",data);
|
||||
/* This still isnt too clear yet. */
|
||||
/* Coin C has no coin lock ? */
|
||||
/* Are some outputs for lights ? (no space on JAMMA for it though) */
|
||||
|
||||
switch (data) {
|
||||
switch (data)
|
||||
{
|
||||
case 0xee: machine().bookkeeping().coin_counter_w(1,1); machine().bookkeeping().coin_counter_w(1,0); break; /* Count slot B */
|
||||
case 0xed: machine().bookkeeping().coin_counter_w(0,1); machine().bookkeeping().coin_counter_w(0,0); break; /* Count slot A */
|
||||
/* The following are coin counts after coin-lock active (faulty coin-lock ?) */
|
||||
@ -233,24 +225,12 @@ WRITE8_MEMBER(toaplan1_state::toaplan1_coin_w)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(toaplan1_state::samesame_coin_w)
|
||||
WRITE_LINE_MEMBER(toaplan1_state::reset_callback)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
toaplan1_coin_w(space, offset, data & 0xff);
|
||||
}
|
||||
if (ACCESSING_BITS_8_15 && (data&0xff00))
|
||||
{
|
||||
logerror("PC:%04x Writing unknown MSB data (%04x) to coin count/lockout port\n",m_maincpu->pcbase(),data);
|
||||
}
|
||||
reset_sound();
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(toaplan1_state::toaplan1_reset_callback)
|
||||
{
|
||||
toaplan1_reset_sound();
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(toaplan1_state,toaplan1)
|
||||
void toaplan1_state::machine_reset()
|
||||
{
|
||||
m_intenable = 0;
|
||||
machine().bookkeeping().coin_lockout_global_w(0);
|
||||
@ -259,37 +239,37 @@ MACHINE_RESET_MEMBER(toaplan1_state,toaplan1)
|
||||
/* zerowing, fireshrk, outzone */
|
||||
MACHINE_RESET_MEMBER(toaplan1_state,zerowing)
|
||||
{
|
||||
MACHINE_RESET_CALL_MEMBER(toaplan1);
|
||||
m_maincpu->set_reset_callback(write_line_delegate(FUNC(toaplan1_state::toaplan1_reset_callback),this));
|
||||
machine_reset();
|
||||
m_maincpu->set_reset_callback(write_line_delegate(FUNC(toaplan1_state::reset_callback),this));
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(toaplan1_state,demonwld)
|
||||
void toaplan1_demonwld_state::machine_reset()
|
||||
{
|
||||
MACHINE_RESET_CALL_MEMBER(toaplan1);
|
||||
toaplan1_state::machine_reset();
|
||||
m_dsp_addr_w = 0;
|
||||
m_main_ram_seg = 0;
|
||||
m_dsp_execute = 0;
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(toaplan1_state,vimana)
|
||||
{
|
||||
MACHINE_RESET_CALL_MEMBER(toaplan1);
|
||||
m_maincpu->set_reset_callback(write_line_delegate(FUNC(toaplan1_state::toaplan1_reset_callback),this));
|
||||
}
|
||||
|
||||
|
||||
void toaplan1_state::toaplan1_driver_savestate()
|
||||
void toaplan1_state::machine_start()
|
||||
{
|
||||
save_item(NAME(m_intenable));
|
||||
}
|
||||
|
||||
void toaplan1_state::demonwld_driver_savestate()
|
||||
void toaplan1_demonwld_state::machine_start()
|
||||
{
|
||||
toaplan1_state::machine_start();
|
||||
save_item(NAME(m_dsp_on));
|
||||
save_item(NAME(m_dsp_addr_w));
|
||||
save_item(NAME(m_main_ram_seg));
|
||||
save_item(NAME(m_dsp_bio));
|
||||
save_item(NAME(m_dsp_execute));
|
||||
machine().save().register_postload(save_prepost_delegate(FUNC(toaplan1_state::demonwld_restore_dsp), this));
|
||||
}
|
||||
|
||||
void toaplan1_samesame_state::machine_start()
|
||||
{
|
||||
toaplan1_state::machine_start();
|
||||
save_item(NAME(m_to_mcu));
|
||||
save_item(NAME(m_cmdavailable));
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user