summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/toaplan1.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/toaplan1.c')
-rw-r--r--src/mame/drivers/toaplan1.c2439
1 files changed, 2439 insertions, 0 deletions
diff --git a/src/mame/drivers/toaplan1.c b/src/mame/drivers/toaplan1.c
new file mode 100644
index 00000000000..b5d28e832b7
--- /dev/null
+++ b/src/mame/drivers/toaplan1.c
@@ -0,0 +1,2439 @@
+/***************************************************************************
+
+ ToaPlan game hardware from 1988-1991
+ ------------------------------------
+ MAME Driver by: Darren Olafson
+ Technical info: Carl-Henrik Skarstedt & Magnus Danielsson
+ Driver updates: Quench
+ Video updates : SUZ
+
+
+Supported games:
+
+ ROM set Toaplan
+ name board No Game name
+ --------------------------------------------------
+ rallybik TP-012 Rally Bike/Dash Yarou
+ truxton TP-013B Truxton/Tatsujin
+ hellfire B90 HellFire (2 Player version) Uses Taito rom ID number
+ hellfir1 B90 HellFire (1 Player version) Uses Taito rom ID number
+ hellfir2 B90 HellFire (2 Player, ealier version) Uses Taito rom ID number
+ zerowing TP-015 Zero Wing
+ demonwld TP-016 Demon's World/Horror Story [1990]
+ demonwl1 TP-016 Demon's World/Horror Story [1989] (Taito license)
+ fireshrk TP-017 Fire Shark (World) [1990]
+ samesame TP-017 Same! Same! Same! (Japan) [1989] (1 Player version)
+ samesam2 TP-017 Same! Same! Same! (Japan) [1989] (2 Player version)
+ outzone TP-018 Out Zone
+ outzonea TP-018 Out Zone (From board serial number 2122)
+ vimana TP-019 Vimana (From board serial number 1547.04 [July '94])
+ vimana1 TP-019 Vimana (Older version)
+ vimanan TP-019 Vimana (Nova Apparate GMBH & Co license)
+
+
+Notes:
+ Fire Shark and Same! Same! Same! have a hidden function for the
+ service input. When invulnerability is enabled, pressing the
+ service input makes the screen scroll faster.
+
+ OutZone (set 2) has a bug in the 68K code. An Jump instruction at $3E6
+ goes to to an invalid instruction at $13DA4. It should really jump to
+ $13DAA. This bad jump is executed by flicking the 'Service DSW' while
+ after the game has booted. The other Outzone set correctly goes to
+ service mode, but this set just loses the plot.
+
+ OutZone (set 2) uses different enemies in some stages and has extra
+ bonuses compared to set 1. The music sequences are also in different
+ orders between the sets. So which is the newest version ?
+
+ Demonwld (Toaplan copyright) is a newer version, and has a different game
+ level sequence compared to the Taito licensed version.
+
+
+To Do:
+ Add support for HD647180 (Z180) sound CPUs (once their internal
+ ROMS are dumped). These are:
+ Fire Shark/Same! Same! Same!
+ Vimana
+
+***************************************************************************/
+
+#include "driver.h"
+#include "cpu/tms32010/tms32010.h"
+#include "toaplan1.h"
+#include "sound/3812intf.h"
+
+
+
+/***************************** 68000 Memory Map *****************************/
+
+static ADDRESS_MAP_START( rallybik_main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x00ffff) AM_ROM
+ AM_RANGE(0x040000, 0x07ffff) AM_ROM
+ AM_RANGE(0x080000, 0x083fff) AM_RAM
+ AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
+ AM_RANGE(0x100000, 0x100001) AM_WRITE(rallybik_bcu_flipscreen_w)
+ AM_RANGE(0x100002, 0x100003) AM_READWRITE(toaplan1_tileram_offs_r, toaplan1_tileram_offs_w)
+ AM_RANGE(0x100004, 0x100007) AM_READWRITE(rallybik_tileram16_r, toaplan1_tileram16_w)
+ AM_RANGE(0x100010, 0x10001f) AM_READWRITE(toaplan1_scroll_regs_r, toaplan1_scroll_regs_w)
+ AM_RANGE(0x140000, 0x140001) AM_READ(input_port_0_word_r)
+// AM_RANGE(0x140000, 0x140001) AM_WRITE(?? video frame related ??)
+ AM_RANGE(0x140002, 0x140003) AM_WRITE(toaplan1_intenable_w)
+ AM_RANGE(0x140008, 0x14000f) AM_WRITE(toaplan1_bcu_control_w)
+ AM_RANGE(0x144000, 0x1447ff) AM_READWRITE(toaplan1_colorram1_r, toaplan1_colorram1_w) AM_BASE(&toaplan1_colorram1) AM_SIZE(&toaplan1_colorram1_size)
+ AM_RANGE(0x146000, 0x1467ff) AM_READWRITE(toaplan1_colorram2_r, toaplan1_colorram2_w) AM_BASE(&toaplan1_colorram2) AM_SIZE(&toaplan1_colorram2_size)
+ AM_RANGE(0x180000, 0x180fff) AM_READWRITE(toaplan1_shared_r, toaplan1_shared_w)
+ AM_RANGE(0x1c0000, 0x1c0003) AM_WRITE(toaplan1_tile_offsets_w)
+ AM_RANGE(0x1c8000, 0x1c8001) AM_WRITE(toaplan1_reset_sound)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( truxton_main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
+ AM_RANGE(0x080000, 0x083fff) AM_RAM
+ AM_RANGE(0x0c0000, 0x0c0001) AM_READ(toaplan1_frame_done_r)
+ AM_RANGE(0x0c0002, 0x0c0003) AM_READWRITE(toaplan1_spriteram_offs_r, toaplan1_spriteram_offs_w)
+ AM_RANGE(0x0c0004, 0x0c0005) AM_READWRITE(toaplan1_spriteram16_r, toaplan1_spriteram16_w)
+ AM_RANGE(0x0c0006, 0x0c0007) AM_READWRITE(toaplan1_spritesizeram16_r, toaplan1_spritesizeram16_w)
+ AM_RANGE(0x100000, 0x100001) AM_WRITE(toaplan1_bcu_flipscreen_w)
+ AM_RANGE(0x100002, 0x100003) AM_READWRITE(toaplan1_tileram_offs_r, toaplan1_tileram_offs_w)
+ AM_RANGE(0x100004, 0x100007) AM_READWRITE(toaplan1_tileram16_r, toaplan1_tileram16_w)
+ AM_RANGE(0x100010, 0x10001f) AM_READWRITE(toaplan1_scroll_regs_r, toaplan1_scroll_regs_w)
+ AM_RANGE(0x140000, 0x140001) AM_READ(input_port_0_word_r)
+// AM_RANGE(0x140000, 0x140001) AM_WRITE(?? video frame related ??)
+ AM_RANGE(0x140002, 0x140003) AM_WRITE(toaplan1_intenable_w)
+ AM_RANGE(0x140008, 0x14000f) AM_WRITE(toaplan1_bcu_control_w)
+ AM_RANGE(0x144000, 0x1447ff) AM_READWRITE(toaplan1_colorram1_r, toaplan1_colorram1_w) AM_BASE(&toaplan1_colorram1) AM_SIZE(&toaplan1_colorram1_size)
+ AM_RANGE(0x146000, 0x1467ff) AM_READWRITE(toaplan1_colorram2_r, toaplan1_colorram2_w) AM_BASE(&toaplan1_colorram2) AM_SIZE(&toaplan1_colorram2_size)
+ AM_RANGE(0x180000, 0x180fff) AM_READWRITE(toaplan1_shared_r, toaplan1_shared_w)
+ AM_RANGE(0x1c0000, 0x1c0003) AM_WRITE(toaplan1_tile_offsets_w)
+ AM_RANGE(0x1c0006, 0x1c0007) AM_WRITE(toaplan1_fcu_flipscreen_w)
+ AM_RANGE(0x1d0000, 0x1d0001) AM_WRITE(toaplan1_reset_sound)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( hellfire_main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
+ AM_RANGE(0x040000, 0x047fff) AM_RAM
+ AM_RANGE(0x080000, 0x080001) AM_READ(input_port_0_word_r)
+// AM_RANGE(0x080000, 0x080001) AM_WRITE(?? video frame related ??)
+ AM_RANGE(0x080002, 0x080003) AM_WRITE(toaplan1_intenable_w)
+ AM_RANGE(0x080008, 0x08000f) AM_WRITE(toaplan1_bcu_control_w)
+ AM_RANGE(0x084000, 0x0847ff) AM_READWRITE(toaplan1_colorram1_r, toaplan1_colorram1_w) AM_BASE(&toaplan1_colorram1) AM_SIZE(&toaplan1_colorram1_size)
+ AM_RANGE(0x086000, 0x0867ff) AM_READWRITE(toaplan1_colorram2_r, toaplan1_colorram2_w) AM_BASE(&toaplan1_colorram2) AM_SIZE(&toaplan1_colorram2_size)
+ AM_RANGE(0x0c0000, 0x0c0fff) AM_READWRITE(toaplan1_shared_r, toaplan1_shared_w)
+ AM_RANGE(0x100000, 0x100001) AM_WRITE(toaplan1_bcu_flipscreen_w)
+ AM_RANGE(0x100002, 0x100003) AM_READWRITE(toaplan1_tileram_offs_r, toaplan1_tileram_offs_w)
+ AM_RANGE(0x100004, 0x100007) AM_READWRITE(toaplan1_tileram16_r, toaplan1_tileram16_w)
+ AM_RANGE(0x100010, 0x10001f) AM_READWRITE(toaplan1_scroll_regs_r, toaplan1_scroll_regs_w)
+ AM_RANGE(0x140000, 0x140001) AM_READ(toaplan1_frame_done_r)
+ AM_RANGE(0x140002, 0x140003) AM_READWRITE(toaplan1_spriteram_offs_r, toaplan1_spriteram_offs_w)
+ AM_RANGE(0x140004, 0x140005) AM_READWRITE(toaplan1_spriteram16_r, toaplan1_spriteram16_w)
+ AM_RANGE(0x140006, 0x140007) AM_READWRITE(toaplan1_spritesizeram16_r, toaplan1_spritesizeram16_w)
+ AM_RANGE(0x180000, 0x180003) AM_WRITE(toaplan1_tile_offsets_w)
+ AM_RANGE(0x180006, 0x180007) AM_WRITE(toaplan1_fcu_flipscreen_w)
+ AM_RANGE(0x180008, 0x180009) AM_WRITE(toaplan1_reset_sound)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( zerowing_main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x00ffff) AM_ROM
+ AM_RANGE(0x040000, 0x07ffff) AM_ROM
+ AM_RANGE(0x080000, 0x087fff) AM_RAM
+ AM_RANGE(0x0c0000, 0x0c0003) AM_WRITE(toaplan1_tile_offsets_w)
+ AM_RANGE(0x0c0006, 0x0c0007) AM_WRITE(toaplan1_fcu_flipscreen_w)
+ AM_RANGE(0x400000, 0x400001) AM_READ(input_port_0_word_r)
+// AM_RANGE(0x400000, 0x400001) AM_WRITE(?? video frame related ??)
+ AM_RANGE(0x400002, 0x400003) AM_WRITE(toaplan1_intenable_w)
+ AM_RANGE(0x400008, 0x40000f) AM_WRITE(toaplan1_bcu_control_w)
+ AM_RANGE(0x404000, 0x4047ff) AM_READWRITE(toaplan1_colorram1_r, toaplan1_colorram1_w) AM_BASE(&toaplan1_colorram1) AM_SIZE(&toaplan1_colorram1_size)
+ AM_RANGE(0x406000, 0x4067ff) AM_READWRITE(toaplan1_colorram2_r, toaplan1_colorram2_w) AM_BASE(&toaplan1_colorram2) AM_SIZE(&toaplan1_colorram2_size)
+ AM_RANGE(0x440000, 0x440fff) AM_READWRITE(toaplan1_shared_r, toaplan1_shared_w)
+ AM_RANGE(0x480000, 0x480001) AM_WRITE(toaplan1_bcu_flipscreen_w)
+ AM_RANGE(0x480002, 0x480003) AM_READWRITE(toaplan1_tileram_offs_r, toaplan1_tileram_offs_w)
+ AM_RANGE(0x480004, 0x480007) AM_READWRITE(toaplan1_tileram16_r, toaplan1_tileram16_w)
+ AM_RANGE(0x480010, 0x48001f) AM_READWRITE(toaplan1_scroll_regs_r, toaplan1_scroll_regs_w)
+ AM_RANGE(0x4c0000, 0x4c0001) AM_READ(toaplan1_frame_done_r)
+ AM_RANGE(0x4c0002, 0x4c0003) AM_READWRITE(toaplan1_spriteram_offs_r, toaplan1_spriteram_offs_w)
+ AM_RANGE(0x4c0004, 0x4c0005) AM_READWRITE(toaplan1_spriteram16_r, toaplan1_spriteram16_w)
+ AM_RANGE(0x4c0006, 0x4c0007) AM_READWRITE(toaplan1_spritesizeram16_r, toaplan1_spritesizeram16_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( demonwld_main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
+ AM_RANGE(0x400000, 0x400001) AM_READ(input_port_0_word_r)
+// AM_RANGE(0x400000, 0x400001) AM_WRITE(?? video frame related ??)
+ AM_RANGE(0x400002, 0x400003) AM_WRITE(toaplan1_intenable_w)
+ AM_RANGE(0x400008, 0x40000f) AM_WRITE(toaplan1_bcu_control_w)
+ AM_RANGE(0x404000, 0x4047ff) AM_READWRITE(toaplan1_colorram1_r, toaplan1_colorram1_w) AM_BASE(&toaplan1_colorram1) AM_SIZE(&toaplan1_colorram1_size)
+ AM_RANGE(0x406000, 0x4067ff) AM_READWRITE(toaplan1_colorram2_r, toaplan1_colorram2_w) AM_BASE(&toaplan1_colorram2) AM_SIZE(&toaplan1_colorram2_size)
+ AM_RANGE(0x600000, 0x600fff) AM_READWRITE(toaplan1_shared_r, toaplan1_shared_w)
+ AM_RANGE(0x800000, 0x800001) AM_WRITE(toaplan1_bcu_flipscreen_w)
+ AM_RANGE(0x800002, 0x800003) AM_READWRITE(toaplan1_tileram_offs_r, toaplan1_tileram_offs_w)
+ AM_RANGE(0x800004, 0x800007) AM_READWRITE(toaplan1_tileram16_r, toaplan1_tileram16_w)
+ AM_RANGE(0x800010, 0x80001f) AM_READWRITE(toaplan1_scroll_regs_r, toaplan1_scroll_regs_w)
+ AM_RANGE(0xa00000, 0xa00001) AM_READ(toaplan1_frame_done_r)
+ AM_RANGE(0xa00002, 0xa00003) AM_READWRITE(toaplan1_spriteram_offs_r, toaplan1_spriteram_offs_w)
+ AM_RANGE(0xa00004, 0xa00005) AM_READWRITE(toaplan1_spriteram16_r, toaplan1_spriteram16_w)
+ AM_RANGE(0xa00006, 0xa00007) AM_READWRITE(toaplan1_spritesizeram16_r, toaplan1_spritesizeram16_w)
+ AM_RANGE(0xc00000, 0xc03fff) AM_RAM
+ AM_RANGE(0xe00000, 0xe00003) AM_WRITE(toaplan1_tile_offsets_w)
+ AM_RANGE(0xe00006, 0xe00007) AM_WRITE(toaplan1_fcu_flipscreen_w)
+ AM_RANGE(0xe00008, 0xe00009) AM_WRITE(toaplan1_reset_sound)
+ AM_RANGE(0xe0000a, 0xe0000b) AM_WRITE(demonwld_dsp_ctrl_w) /* DSP Comms control */
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( samesame_main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x00ffff) AM_ROM
+ AM_RANGE(0x040000, 0x07ffff) AM_ROM
+ AM_RANGE(0x080000, 0x080003) AM_WRITE(toaplan1_tile_offsets_w)
+ AM_RANGE(0x080006, 0x080007) AM_WRITE(toaplan1_fcu_flipscreen_w)
+ AM_RANGE(0x0c0000, 0x0c3fff) AM_RAM /* Frame done at $c1ada */
+ AM_RANGE(0x100000, 0x100001) AM_READ(input_port_0_word_r)
+// AM_RANGE(0x100000, 0x100001) AM_WRITE(?? video frame related ??)
+ AM_RANGE(0x100002, 0x100003) AM_WRITE(toaplan1_intenable_w)
+ AM_RANGE(0x100008, 0x10000f) AM_WRITE(toaplan1_bcu_control_w)
+ AM_RANGE(0x104000, 0x1047ff) AM_READWRITE(toaplan1_colorram1_r, toaplan1_colorram1_w) AM_BASE(&toaplan1_colorram1) AM_SIZE(&toaplan1_colorram1_size)
+ AM_RANGE(0x106000, 0x1067ff) AM_READWRITE(toaplan1_colorram2_r, toaplan1_colorram2_w) AM_BASE(&toaplan1_colorram2) AM_SIZE(&toaplan1_colorram2_size)
+ AM_RANGE(0x140000, 0x140001) AM_READ(input_port_1_word_r)
+ AM_RANGE(0x140002, 0x140003) AM_READ(input_port_2_word_r)
+ AM_RANGE(0x140004, 0x140005) AM_READ(input_port_3_word_r)
+ AM_RANGE(0x140006, 0x140007) AM_READ(input_port_4_word_r)
+ AM_RANGE(0x140008, 0x140009) AM_READ(input_port_5_word_r)
+ AM_RANGE(0x14000a, 0x14000b) AM_READ(samesame_port_6_word_r) /* Territory, and MCU ready */
+ AM_RANGE(0x14000c, 0x14000d) AM_WRITE(samesame_coin_w) /* Coin counter/lockout */
+// AM_RANGE(0x14000e, 0x14000f) AM_WRITE(samesame_mcu_w) /* Commands sent to HD647180 */
+ AM_RANGE(0x180000, 0x180001) AM_WRITE(toaplan1_bcu_flipscreen_w)
+ AM_RANGE(0x180002, 0x180003) AM_READWRITE(toaplan1_tileram_offs_r, toaplan1_tileram_offs_w)
+ AM_RANGE(0x180004, 0x180007) AM_READWRITE(toaplan1_tileram16_r, toaplan1_tileram16_w)
+ AM_RANGE(0x180010, 0x18001f) AM_READWRITE(toaplan1_scroll_regs_r, toaplan1_scroll_regs_w)
+ AM_RANGE(0x1c0000, 0x1c0001) AM_READ(toaplan1_frame_done_r)
+// AM_RANGE(0x1c0000, 0x1c0001) AM_WRITE(?? disable sprite refresh ??)
+ AM_RANGE(0x1c0002, 0x1c0003) AM_READWRITE(toaplan1_spriteram_offs_r, toaplan1_spriteram_offs_w)
+ AM_RANGE(0x1c0004, 0x1c0005) AM_READWRITE(toaplan1_spriteram16_r, toaplan1_spriteram16_w)
+ AM_RANGE(0x1c0006, 0x1c0007) AM_READWRITE(toaplan1_spritesizeram16_r, toaplan1_spritesizeram16_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( outzone_main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
+ AM_RANGE(0x100000, 0x100001) AM_READ(toaplan1_frame_done_r)
+ AM_RANGE(0x100002, 0x100003) AM_READWRITE(toaplan1_spriteram_offs_r, toaplan1_spriteram_offs_w)
+ AM_RANGE(0x100004, 0x100005) AM_READWRITE(toaplan1_spriteram16_r, toaplan1_spriteram16_w)
+ AM_RANGE(0x100006, 0x100007) AM_READWRITE(toaplan1_spritesizeram16_r, toaplan1_spritesizeram16_w)
+ AM_RANGE(0x140000, 0x140fff) AM_READWRITE(toaplan1_shared_r, toaplan1_shared_w)
+ AM_RANGE(0x200000, 0x200001) AM_WRITE(toaplan1_bcu_flipscreen_w)
+ AM_RANGE(0x200002, 0x200003) AM_READWRITE(toaplan1_tileram_offs_r, toaplan1_tileram_offs_w)
+ AM_RANGE(0x200004, 0x200007) AM_READWRITE(toaplan1_tileram16_r, toaplan1_tileram16_w)
+ AM_RANGE(0x200010, 0x20001f) AM_READWRITE(toaplan1_scroll_regs_r, toaplan1_scroll_regs_w)
+ AM_RANGE(0x240000, 0x243fff) AM_RAM
+ AM_RANGE(0x300000, 0x300001) AM_READ(input_port_0_word_r)
+// AM_RANGE(0x300000, 0x300001) AM_WRITE(?? video frame related ??)
+ AM_RANGE(0x300002, 0x300003) AM_WRITE(toaplan1_intenable_w)
+ AM_RANGE(0x300008, 0x30000f) AM_WRITE(toaplan1_bcu_control_w)
+ AM_RANGE(0x304000, 0x3047ff) AM_READWRITE(toaplan1_colorram1_r, toaplan1_colorram1_w) AM_BASE(&toaplan1_colorram1) AM_SIZE(&toaplan1_colorram1_size)
+ AM_RANGE(0x306000, 0x3067ff) AM_READWRITE(toaplan1_colorram2_r, toaplan1_colorram2_w) AM_BASE(&toaplan1_colorram2) AM_SIZE(&toaplan1_colorram2_size)
+ AM_RANGE(0x340000, 0x340003) AM_WRITE(toaplan1_tile_offsets_w)
+ AM_RANGE(0x340006, 0x340007) AM_WRITE(toaplan1_fcu_flipscreen_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( vimana_main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
+ AM_RANGE(0x080000, 0x080003) AM_WRITE(toaplan1_tile_offsets_w)
+ AM_RANGE(0x080006, 0x080007) AM_WRITE(toaplan1_fcu_flipscreen_w)
+ AM_RANGE(0x0c0000, 0x0c0001) AM_READ(toaplan1_frame_done_r)
+ AM_RANGE(0x0c0002, 0x0c0003) AM_READWRITE(toaplan1_spriteram_offs_r, toaplan1_spriteram_offs_w)
+ AM_RANGE(0x0c0004, 0x0c0005) AM_READWRITE(toaplan1_spriteram16_r, toaplan1_spriteram16_w)
+ AM_RANGE(0x0c0006, 0x0c0007) AM_READWRITE(toaplan1_spritesizeram16_r, toaplan1_spritesizeram16_w)
+ AM_RANGE(0x400000, 0x400001) AM_READ(input_port_0_word_r)
+// AM_RANGE(0x400000, 0x400001) AM_WRITE(?? video frame related ??)
+ AM_RANGE(0x400002, 0x400003) AM_WRITE(toaplan1_intenable_w)
+ AM_RANGE(0x400008, 0x40000f) AM_WRITE(toaplan1_bcu_control_w)
+ AM_RANGE(0x404000, 0x4047ff) AM_READWRITE(toaplan1_colorram1_r, toaplan1_colorram1_w) AM_BASE(&toaplan1_colorram1) AM_SIZE(&toaplan1_colorram1_size)
+ AM_RANGE(0x406000, 0x4067ff) AM_READWRITE(toaplan1_colorram2_r, toaplan1_colorram2_w) AM_BASE(&toaplan1_colorram2) AM_SIZE(&toaplan1_colorram2_size)
+ AM_RANGE(0x440000, 0x440005) AM_READWRITE(vimana_mcu_r, vimana_mcu_w)
+ AM_RANGE(0x440006, 0x440007) AM_READ(input_port_3_word_r)
+ AM_RANGE(0x440008, 0x440009) AM_READ(vimana_input_port_5_word_r)
+ AM_RANGE(0x44000a, 0x44000b) AM_READ(input_port_1_word_r)
+ AM_RANGE(0x44000c, 0x44000d) AM_READ(input_port_2_word_r)
+ AM_RANGE(0x44000e, 0x44000f) AM_READ(input_port_4_word_r)
+ AM_RANGE(0x440010, 0x440011) AM_READ(input_port_6_word_r)
+ AM_RANGE(0x480000, 0x487fff) AM_RAM
+ AM_RANGE(0x4c0000, 0x4c0001) AM_WRITE(toaplan1_bcu_flipscreen_w)
+ AM_RANGE(0x4c0002, 0x4c0003) AM_READWRITE(toaplan1_tileram_offs_r, toaplan1_tileram_offs_w)
+ AM_RANGE(0x4c0004, 0x4c0007) AM_READWRITE(toaplan1_tileram16_r, toaplan1_tileram16_w)
+ AM_RANGE(0x4c0010, 0x4c001f) AM_READWRITE(toaplan1_scroll_regs_r, toaplan1_scroll_regs_w)
+ADDRESS_MAP_END
+
+
+/***************************** Z80 Memory Map *******************************/
+
+static ADDRESS_MAP_START( toaplan1_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xffff) AM_RAM AM_BASE(&toaplan1_sharedram)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( rallybik_sound_io_map, ADDRESS_SPACE_IO, 8 )
+ ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ AM_RANGE(0x00, 0x00) AM_READ(input_port_1_r) /* Player 1 */
+ AM_RANGE(0x10, 0x10) AM_READ(input_port_2_r) /* Player 2 */
+ AM_RANGE(0x20, 0x20) AM_READ(input_port_5_r) /* Coin/Start inputs */
+ AM_RANGE(0x30, 0x30) AM_WRITE(rallybik_coin_w) /* Coin counter/lockout */
+ AM_RANGE(0x40, 0x40) AM_READ(input_port_3_r) /* DSW1 */
+ AM_RANGE(0x50, 0x50) AM_READ(input_port_4_r) /* DSW2 */
+ AM_RANGE(0x60, 0x60) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
+ AM_RANGE(0x61, 0x61) AM_WRITE(YM3812_write_port_0_w)
+ AM_RANGE(0x70, 0x70) AM_READ(input_port_6_r) /* Territory Jumper Block for Truxton */
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( truxton_sound_io_map, ADDRESS_SPACE_IO, 8 )
+ ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ AM_RANGE(0x00, 0x00) AM_READ(input_port_1_r) /* Player 1 */
+ AM_RANGE(0x10, 0x10) AM_READ(input_port_2_r) /* Player 2 */
+ AM_RANGE(0x20, 0x20) AM_READ(input_port_5_r) /* Coin/Start inputs */
+ AM_RANGE(0x30, 0x30) AM_WRITE(toaplan1_coin_w) /* Coin counter/lockout */
+ AM_RANGE(0x40, 0x40) AM_READ(input_port_3_r) /* DSW1 */
+ AM_RANGE(0x50, 0x50) AM_READ(input_port_4_r) /* DSW2 */
+ AM_RANGE(0x60, 0x60) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
+ AM_RANGE(0x61, 0x61) AM_WRITE(YM3812_write_port_0_w)
+ AM_RANGE(0x70, 0x70) AM_READ(input_port_6_r) /* Territory Jumper Block for Truxton */
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( hellfire_sound_io_map, ADDRESS_SPACE_IO, 8 )
+ ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ AM_RANGE(0x00, 0x00) AM_READ(input_port_3_r) /* DSW1 */
+ AM_RANGE(0x10, 0x10) AM_READ(input_port_4_r) /* DSW2 */
+ AM_RANGE(0x20, 0x20) AM_READ(input_port_6_r) /* Territory Jumper Block */
+ AM_RANGE(0x30, 0x30) AM_WRITE(toaplan1_coin_w) /* Coin counter/lockout */
+ AM_RANGE(0x40, 0x40) AM_READ(input_port_1_r) /* Player 1 */
+ AM_RANGE(0x50, 0x50) AM_READ(input_port_2_r) /* Player 2 */
+ AM_RANGE(0x60, 0x60) AM_READ(input_port_5_r) /* Coin/Start inputs */
+ AM_RANGE(0x70, 0x70) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
+ AM_RANGE(0x71, 0x71) AM_WRITE(YM3812_write_port_0_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( zerowing_sound_io_map, ADDRESS_SPACE_IO, 8 )
+ ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ AM_RANGE(0x00, 0x00) AM_READ(input_port_1_r) /* Player 1 */
+ AM_RANGE(0x08, 0x08) AM_READ(input_port_2_r) /* Player 2 */
+ AM_RANGE(0x20, 0x20) AM_READ(input_port_3_r) /* DSW1 */
+ AM_RANGE(0x28, 0x28) AM_READ(input_port_4_r) /* DSW2 */
+ AM_RANGE(0x80, 0x80) AM_READ(input_port_5_r) /* Coin/Start inputs */
+ AM_RANGE(0x88, 0x88) AM_READ(input_port_6_r) /* Territory Jumper Block */
+ AM_RANGE(0xa0, 0xa0) AM_WRITE(toaplan1_coin_w) /* Coin counter/lockout */
+ AM_RANGE(0xa8, 0xa8) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
+ AM_RANGE(0xa9, 0xa9) AM_WRITE(YM3812_write_port_0_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( demonwld_sound_io_map, ADDRESS_SPACE_IO, 8 )
+ ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ AM_RANGE(0x00, 0x00) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(YM3812_write_port_0_w)
+ AM_RANGE(0x20, 0x20) AM_READ(input_port_6_r)
+ AM_RANGE(0x40, 0x40) AM_WRITE(toaplan1_coin_w) /* Coin counter/lockout */
+ AM_RANGE(0x60, 0x60) AM_READ(input_port_5_r)
+ AM_RANGE(0x80, 0x80) AM_READ(input_port_1_r)
+ AM_RANGE(0xa0, 0xa0) AM_READ(input_port_4_r)
+ AM_RANGE(0xc0, 0xc0) AM_READ(input_port_2_r)
+ AM_RANGE(0xe0, 0xe0) AM_READ(input_port_3_r)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( outzone_sound_io_map, ADDRESS_SPACE_IO, 8 )
+ ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ AM_RANGE(0x00, 0x00) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(YM3812_write_port_0_w)
+ AM_RANGE(0x04, 0x04) AM_WRITE(toaplan1_coin_w) /* Coin counter/lockout */
+ AM_RANGE(0x08, 0x08) AM_READ(input_port_3_r)
+ AM_RANGE(0x0c, 0x0c) AM_READ(input_port_4_r)
+ AM_RANGE(0x10, 0x10) AM_READ(input_port_5_r)
+ AM_RANGE(0x14, 0x14) AM_READ(input_port_1_r)
+ AM_RANGE(0x18, 0x18) AM_READ(input_port_2_r)
+ AM_RANGE(0x1c, 0x1c) AM_READ(input_port_6_r)
+ADDRESS_MAP_END
+
+
+/***************************** TMS32010 Memory Map **************************/
+
+static ADDRESS_MAP_START( DSP_program_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000, 0x7ff) AM_ROM
+ADDRESS_MAP_END
+
+ /* $000 - 08F TMS32010 Internal Data RAM in Data Address Space */
+
+static ADDRESS_MAP_START( DSP_io_map, ADDRESS_SPACE_IO, 16 )
+ AM_RANGE(0, 0) AM_WRITE(demonwld_dsp_addrsel_w)
+ AM_RANGE(1, 1) AM_READWRITE(demonwld_dsp_r, demonwld_dsp_w)
+ AM_RANGE(3, 3) AM_WRITE(demonwld_dsp_bio_w)
+ AM_RANGE(TMS32010_BIO, TMS32010_BIO) AM_READ(demonwld_BIO_r)
+ADDRESS_MAP_END
+
+
+
+/*****************************************************************************
+ Input Port definitions
+*****************************************************************************/
+
+#define TOAPLAN1_PLAYER_INPUT( player, button3, options ) \
+ PORT_START \
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(player) options PORT_8WAY \
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(player) options PORT_8WAY \
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(player) options PORT_8WAY \
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) options PORT_8WAY \
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(player) options \
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(player) options \
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, button3 ) PORT_PLAYER(player) options \
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+#define TOAPLAN1_SYSTEM_INPUTS \
+ PORT_START \
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) \
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_TILT ) \
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) \
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) \
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 ) \
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) \
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) \
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK )
+
+#define TOAPLAN1_VBLANK_INPUT \
+ PORT_START \
+ PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK ) \
+ PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+
+static INPUT_PORTS_START( rallybik )
+ TOAPLAN1_VBLANK_INPUT
+
+ TOAPLAN1_PLAYER_INPUT( 1, IPT_UNKNOWN, )
+
+ TOAPLAN1_PLAYER_INPUT( 2, IPT_UNKNOWN, PORT_COCKTAIL )
+
+ PORT_START /* DSW A */
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 2C_3C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 2C_3C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) )
+
+ PORT_START /* DSW B */
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x20, "Territory/Copyright" )
+ PORT_DIPSETTING( 0x20, "World/Taito Corp Japan" )
+ PORT_DIPSETTING( 0x10, "USA/Taito America" )
+ PORT_DIPSETTING( 0x00, "Japan/Taito Corp" )
+ PORT_DIPSETTING( 0x30, "USA/Taito America (Romstar)" )
+ PORT_DIPNAME( 0x40, 0x00, "Dip Switch Display" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+
+ TOAPLAN1_SYSTEM_INPUTS
+
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( truxton )
+ TOAPLAN1_VBLANK_INPUT
+
+ TOAPLAN1_PLAYER_INPUT( 1, IPT_UNKNOWN, )
+
+ TOAPLAN1_PLAYER_INPUT( 2, IPT_UNKNOWN, PORT_COCKTAIL )
+
+ PORT_START /* DSW A */
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+/* credits per coin options change, depending on the territory setting */
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 2C_3C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 2C_3C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) )
+/* The following are coin settings for Japan
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
+*/
+
+ PORT_START /* DSW B */
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x04, "50K, every 150K" )
+ PORT_DIPSETTING( 0x00, "70K, every 200K" )
+ PORT_DIPSETTING( 0x08, "100K only" )
+ PORT_DIPSETTING( 0x0c, DEF_STR( None ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x30, "2" )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x20, "4" )
+ PORT_DIPSETTING( 0x10, "5" )
+ PORT_DIPNAME( 0x40, 0x00, "Dip Switch Display" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+
+ TOAPLAN1_SYSTEM_INPUTS
+
+ PORT_START /* Territory Jumper Block */
+ PORT_DIPNAME( 0x07, 0x02, "Territory/Copyright" )
+ PORT_DIPSETTING( 0x02, "World/Taito Corp" )
+ PORT_DIPSETTING( 0x06, "World/Taito America" )
+ PORT_DIPSETTING( 0x04, "US/Taito America" )
+ PORT_DIPSETTING( 0x01, "US/Romstar" )
+ PORT_DIPSETTING( 0x00, "Japan/Taito Corp" )
+// PORT_DIPSETTING( 0x05, "Same as 0x04" )
+// PORT_DIPSETTING( 0x03, "Same as 0x02" )
+// PORT_DIPSETTING( 0x07, "Same as 0x06" )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( On ) )
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( hellfire )
+ TOAPLAN1_VBLANK_INPUT
+
+ TOAPLAN1_PLAYER_INPUT( 1, IPT_UNKNOWN, )
+
+ TOAPLAN1_PLAYER_INPUT( 2, IPT_UNKNOWN, )
+
+ PORT_START /* DSW A */
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
+
+ PORT_START /* DSWB */
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, "70K, every 200K" )
+ PORT_DIPSETTING( 0x04, "100K, every 250K" )
+ PORT_DIPSETTING( 0x08, "100K" )
+ PORT_DIPSETTING( 0x0c, "200K" )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x30, "2" )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x20, "4" )
+ PORT_DIPSETTING( 0x10, "5" )
+ PORT_DIPNAME( 0x40, 0x00, "Invulnerability" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+
+ TOAPLAN1_SYSTEM_INPUTS
+
+ PORT_START /* Territory Jumper block */
+ PORT_DIPNAME( 0x03, 0x02, "Territory" )
+ PORT_DIPSETTING( 0x02, DEF_STR( Europe ) )
+// PORT_DIPSETTING( 0x03, DEF_STR( Europe ) )
+ PORT_DIPSETTING( 0x01, "US" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Japan ) )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( On ) )
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( hellfir1 )
+ TOAPLAN1_VBLANK_INPUT
+
+ TOAPLAN1_PLAYER_INPUT( 1, IPT_UNKNOWN, )
+
+ TOAPLAN1_PLAYER_INPUT( 2, IPT_UNKNOWN, )
+
+ PORT_START /* DSW A */
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
+
+ PORT_START /* DSWB */
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, "70K, every 200K" )
+ PORT_DIPSETTING( 0x04, "100K, every 250K" )
+ PORT_DIPSETTING( 0x08, "100K" )
+ PORT_DIPSETTING( 0x0c, "200K" )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x30, "2" )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x20, "4" )
+ PORT_DIPSETTING( 0x10, "5" )
+ PORT_DIPNAME( 0x40, 0x00, "Invulnerability" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+
+ TOAPLAN1_SYSTEM_INPUTS
+
+ PORT_START /* Territory Jumper block */
+ PORT_DIPNAME( 0x03, 0x02, "Territory" )
+ PORT_DIPSETTING( 0x02, DEF_STR( Europe ) )
+// PORT_DIPSETTING( 0x03, DEF_STR( Europe ) )
+ PORT_DIPSETTING( 0x01, "US" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Japan ) )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( On ) )
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( zerowing )
+ TOAPLAN1_VBLANK_INPUT
+
+ TOAPLAN1_PLAYER_INPUT( 1, IPT_UNKNOWN, )
+
+ TOAPLAN1_PLAYER_INPUT( 2, IPT_UNKNOWN, PORT_COCKTAIL )
+
+ PORT_START /* DSW A */
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
+
+ PORT_START /* DSW B */
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, "200K, every 500K" )
+ PORT_DIPSETTING( 0x04, "500K, every 1M" )
+ PORT_DIPSETTING( 0x08, "500K" )
+ PORT_DIPSETTING( 0x0c, DEF_STR( None ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x30, "2" )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x20, "4" )
+ PORT_DIPSETTING( 0x10, "5" )
+ PORT_DIPNAME( 0x40, 0x00, "Invulnerability" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+
+ TOAPLAN1_SYSTEM_INPUTS
+
+ PORT_START /* Territory Jumper block */
+ PORT_DIPNAME( 0x03, 0x02, "Territory" )
+ PORT_DIPSETTING( 0x02, DEF_STR( Europe ) )
+// PORT_DIPSETTING( 0x03, DEF_STR( Europe ) )
+ PORT_DIPSETTING( 0x01, "US" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Japan ) )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( On ) )
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( demonwld )
+ TOAPLAN1_VBLANK_INPUT
+
+ TOAPLAN1_PLAYER_INPUT( 1, IPT_BUTTON3, )
+
+ TOAPLAN1_PLAYER_INPUT( 2, IPT_BUTTON3, )
+
+ PORT_START /* DSW A */
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
+
+ PORT_START /* DSW B */
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, "30K, every 100K" )
+ PORT_DIPSETTING( 0x04, "50K and 100K" )
+ PORT_DIPSETTING( 0x08, "100K only" )
+ PORT_DIPSETTING( 0x0c, DEF_STR( None ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x30, "1" )
+ PORT_DIPSETTING( 0x20, "2" )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x10, "5" )
+ PORT_DIPNAME( 0x40, 0x00, "Invulnerability" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+
+ TOAPLAN1_SYSTEM_INPUTS
+
+ PORT_START /* Territory Jumper Block */
+ PORT_DIPNAME( 0x01, 0x01, "Territory/Copyright" )
+ PORT_DIPSETTING( 0x01, "Toaplan" )
+ PORT_DIPSETTING( 0x00, "Japan/Taito Corp" )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( On ) )
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( demonwl1 )
+ TOAPLAN1_VBLANK_INPUT
+
+ TOAPLAN1_PLAYER_INPUT( 1, IPT_BUTTON3, )
+
+ TOAPLAN1_PLAYER_INPUT( 2, IPT_BUTTON3, )
+
+ PORT_START /* DSW A */
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
+
+ PORT_START /* DSW B */
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, "30K, every 100K" )
+ PORT_DIPSETTING( 0x04, "50K and 100K" )
+ PORT_DIPSETTING( 0x08, "100K only" )
+ PORT_DIPSETTING( 0x0c, DEF_STR( None ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x30, "1" )
+ PORT_DIPSETTING( 0x20, "2" )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x10, "5" )
+ PORT_DIPNAME( 0x40, 0x00, "Invulnerability" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+
+ TOAPLAN1_SYSTEM_INPUTS
+
+ PORT_START /* Territory Jumper Block */
+ PORT_DIPNAME( 0x03, 0x02, "Territory/Copyright" )
+ PORT_DIPSETTING( 0x02, "World/Taito Japan" )
+ PORT_DIPSETTING( 0x03, "US/Toaplan" )
+ PORT_DIPSETTING( 0x01, "US/Taito America" )
+ PORT_DIPSETTING( 0x00, "Japan/Taito Corp" )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( On ) )
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( samesame )
+ TOAPLAN1_VBLANK_INPUT
+
+ TOAPLAN1_PLAYER_INPUT( 1, IPT_UNKNOWN, )
+
+ TOAPLAN1_PLAYER_INPUT( 2, IPT_UNKNOWN, PORT_COCKTAIL )
+
+ PORT_START /* DSW A */
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+/* settings listed in service mode, but not actually used ???
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 2C_3C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 2C_3C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) )
+*/
+
+ PORT_START /* DSW B */
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x04, "50K, every 150K" )
+ PORT_DIPSETTING( 0x00, "70K, every 200K" )
+ PORT_DIPSETTING( 0x08, "100K" )
+ PORT_DIPSETTING( 0x0c, DEF_STR( None ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x30, "2" )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x20, "4" )
+ PORT_DIPSETTING( 0x10, "5" )
+ PORT_DIPNAME( 0x40, 0x00, "Invulnerability" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+
+ TOAPLAN1_SYSTEM_INPUTS
+
+ PORT_START /* Territory Jumper Block */
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( On ) )
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( samesam2 )
+ TOAPLAN1_VBLANK_INPUT
+
+ TOAPLAN1_PLAYER_INPUT( 1, IPT_UNKNOWN, )
+
+ TOAPLAN1_PLAYER_INPUT( 2, IPT_UNKNOWN, )
+
+ PORT_START /* DSW A */
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+/* settings listed in service mode, but not actually used ???
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 2C_3C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 2C_3C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) )
+*/
+
+ PORT_START /* DSW B */
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x04, "50K, every 150K" )
+ PORT_DIPSETTING( 0x00, "70K, every 200K" )
+ PORT_DIPSETTING( 0x08, "100K" )
+ PORT_DIPSETTING( 0x0c, DEF_STR( None ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x30, "2" )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x20, "4" )
+ PORT_DIPSETTING( 0x10, "5" )
+ PORT_DIPNAME( 0x40, 0x00, "Invulnerability" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+
+ TOAPLAN1_SYSTEM_INPUTS
+
+ PORT_START /* Territory Jumper Block */
+/* settings listed in service mode, but not actually used
+ PORT_DIPNAME( 0x03, 0x00, "Territory" )
+// PORT_DIPSETTING( 0x01, DEF_STR( Europe ) )
+// PORT_DIPSETTING( 0x02, DEF_STR( Europe ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Europe ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( USA ) )
+*/
+ PORT_DIPNAME( 0x01, 0x00, "Show Territory Notice" )
+ PORT_DIPSETTING( 0x01, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+// PORT_DIPNAME( 0x02, 0x00, "Show Territory Notice" ) /* Same as Bit 1 */
+// PORT_DIPSETTING( 0x02, DEF_STR( No ) )
+// PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( On ) )
+ PORT_BIT( 0xf2, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Mask bit 2 aswell */
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( fireshrk )
+ TOAPLAN1_VBLANK_INPUT
+
+ TOAPLAN1_PLAYER_INPUT( 1, IPT_UNKNOWN, )
+
+ TOAPLAN1_PLAYER_INPUT( 2, IPT_UNKNOWN, )
+
+ PORT_START /* DSW A */
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
+
+ PORT_START /* DSW B */
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x04, "50K, every 150K" )
+ PORT_DIPSETTING( 0x00, "70K, every 200K" )
+ PORT_DIPSETTING( 0x08, "100K" )
+ PORT_DIPSETTING( 0x0c, DEF_STR( None ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x30, "2" )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x20, "4" )
+ PORT_DIPSETTING( 0x10, "5" )
+ PORT_DIPNAME( 0x40, 0x00, "Invulnerability" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+
+ TOAPLAN1_SYSTEM_INPUTS
+
+ PORT_START /* Territory Jumper Block */
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPNAME( 0x06, 0x02, "Territory" )
+ PORT_DIPSETTING( 0x02, DEF_STR( Europe ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( USA ) )
+ PORT_DIPSETTING( 0x00, "USA (Romstar)" )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( On ) )
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( outzone )
+ TOAPLAN1_VBLANK_INPUT
+
+ TOAPLAN1_PLAYER_INPUT( 1, IPT_BUTTON3, )
+
+ TOAPLAN1_PLAYER_INPUT( 2, IPT_BUTTON3, )
+
+ PORT_START /* DSW A */
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
+
+ PORT_START /* DSW B */
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, "Every 300K" )
+ PORT_DIPSETTING( 0x04, "200K and 500K" )
+ PORT_DIPSETTING( 0x08, "300K only" )
+ PORT_DIPSETTING( 0x0c, DEF_STR( None ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x30, "1" )
+ PORT_DIPSETTING( 0x20, "2" )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x10, "5" )
+ PORT_DIPNAME( 0x40, 0x00, "Invulnerability" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+
+ TOAPLAN1_SYSTEM_INPUTS
+
+ PORT_START /* Territory Jumper Block */
+ PORT_DIPNAME( 0x0f, 0x02, "Territory" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Japan ) )
+ PORT_DIPSETTING( 0x01, "US" )
+ PORT_DIPSETTING( 0x02, DEF_STR( Europe ) )
+ PORT_DIPSETTING( 0x03, "Hong Kong" )
+ PORT_DIPSETTING( 0x04, "Korea" )
+ PORT_DIPSETTING( 0x05, "Taiwan" )
+ PORT_DIPSETTING( 0x06, "Taiwan (Spacy License)" )
+ PORT_DIPSETTING( 0x07, "US (Romstar License)" )
+ PORT_DIPSETTING( 0x08, "Hong Kong (Honest Trading License)" )
+// PORT_DIPSETTING( 0x09, DEF_STR( Japan ) )
+// PORT_DIPSETTING( 0x0a, DEF_STR( Japan ) )
+// PORT_DIPSETTING( 0x0b, DEF_STR( Japan ) )
+// PORT_DIPSETTING( 0x0c, DEF_STR( Japan ) )
+// PORT_DIPSETTING( 0x0d, DEF_STR( Japan ) )
+// PORT_DIPSETTING( 0x0e, DEF_STR( Japan ) )
+// PORT_DIPSETTING( 0x0f, DEF_STR( Japan ) )
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( outzoneb )
+ TOAPLAN1_VBLANK_INPUT
+
+ TOAPLAN1_PLAYER_INPUT( 1, IPT_BUTTON3, )
+
+ TOAPLAN1_PLAYER_INPUT( 2, IPT_BUTTON3, )
+
+ PORT_START /* DSW A */
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
+
+ PORT_START /* DSW B */
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, "Every 300K" )
+ PORT_DIPSETTING( 0x04, "200K and 500K" )
+ PORT_DIPSETTING( 0x08, "300K only" )
+ PORT_DIPSETTING( 0x0c, DEF_STR( None ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x30, "1" )
+ PORT_DIPSETTING( 0x20, "2" )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x10, "5" )
+ PORT_DIPNAME( 0x40, 0x00, "Invulnerability" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+
+ TOAPLAN1_SYSTEM_INPUTS
+
+ PORT_START /* Territory Jumper Block */
+ PORT_DIPNAME( 0x07, 0x02, "Territory" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Japan ) )
+ PORT_DIPSETTING( 0x01, "US" )
+ PORT_DIPSETTING( 0x02, DEF_STR( Europe ) )
+ PORT_DIPSETTING( 0x03, "Hong Kong" )
+ PORT_DIPSETTING( 0x04, "Korea" )
+ PORT_DIPSETTING( 0x05, "Taiwan" )
+ PORT_DIPSETTING( 0x06, "No Warning Screen" )
+ PORT_DIPSETTING( 0x07, "No Warning Screen" )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) ) // doesn't seem to matter on this set
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( outzonec )
+ TOAPLAN1_VBLANK_INPUT
+
+ TOAPLAN1_PLAYER_INPUT( 1, IPT_BUTTON3, )
+
+ TOAPLAN1_PLAYER_INPUT( 2, IPT_BUTTON3, )
+
+ PORT_START /* DSW A */
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
+
+ PORT_START /* DSW B */
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, "Every 300K" )
+ PORT_DIPSETTING( 0x04, "200K and 500K" )
+ PORT_DIPSETTING( 0x08, "300K only" )
+ PORT_DIPSETTING( 0x0c, DEF_STR( None ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x30, "1" )
+ PORT_DIPSETTING( 0x20, "2" )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x10, "5" )
+ PORT_DIPNAME( 0x40, 0x00, "Invulnerability" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+
+ TOAPLAN1_SYSTEM_INPUTS
+
+ PORT_START /* Territory Jumper Block */
+ PORT_DIPNAME( 0x0f, 0x02, "Territory" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Japan ) )
+ PORT_DIPSETTING( 0x01, "US" )
+ PORT_DIPSETTING( 0x02, DEF_STR( Europe ) )
+ PORT_DIPSETTING( 0x03, "Hong Kong" )
+ PORT_DIPSETTING( 0x04, "Korea" )
+ PORT_DIPSETTING( 0x05, "Taiwan" )
+ PORT_DIPSETTING( 0x06, "Taiwan (Spacy Co License)" )
+ PORT_DIPSETTING( 0x07, "US (Romstar License)" )
+ PORT_DIPSETTING( 0x08, "Hong Kong & China (Honest Trading License)" )
+// PORT_DIPSETTING( 0x09, DEF_STR( Japan ) )
+// PORT_DIPSETTING( 0x0a, DEF_STR( Japan ) )
+// PORT_DIPSETTING( 0x0b, DEF_STR( Japan ) )
+// PORT_DIPSETTING( 0x0c, DEF_STR( Japan ) )
+// PORT_DIPSETTING( 0x0d, DEF_STR( Japan ) )
+// PORT_DIPSETTING( 0x0e, DEF_STR( Japan ) )
+// PORT_DIPSETTING( 0x0f, DEF_STR( Japan ) )
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( vimana )
+ TOAPLAN1_VBLANK_INPUT
+
+ TOAPLAN1_PLAYER_INPUT( 1, IPT_BUTTON3, )
+
+ TOAPLAN1_PLAYER_INPUT( 2, IPT_BUTTON3, )
+
+ PORT_START /* DSW A */
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
+
+ PORT_START /* DSW B */
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, "70K and 200K" )
+ PORT_DIPSETTING( 0x04, "100K and 250K" )
+ PORT_DIPSETTING( 0x08, "100K" )
+ PORT_DIPSETTING( 0x0c, "200K" )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x30, "2" )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x20, "4" )
+ PORT_DIPSETTING( 0x10, "5" )
+ PORT_DIPNAME( 0x40, 0x00, "Invulnerability" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+
+ TOAPLAN1_SYSTEM_INPUTS
+
+ PORT_START /* Territory Jumper Block */
+ PORT_DIPNAME( 0x0f, 0x02, "Territory / License" )
+ PORT_DIPSETTING( 0x00, "Japan (Distributed by Tecmo)" )
+ PORT_DIPSETTING( 0x01, "US" )
+ PORT_DIPSETTING( 0x02, DEF_STR( Europe ) )
+ PORT_DIPSETTING( 0x03, "Hong Kong" )
+ PORT_DIPSETTING( 0x04, "Korea" )
+ PORT_DIPSETTING( 0x05, "Taiwan" )
+ PORT_DIPSETTING( 0x06, "Taiwan (Spacy License)" )
+ PORT_DIPSETTING( 0x07, "US (Romstar License)" )
+ PORT_DIPSETTING( 0x08, "Hong Kong (Honest Trading Co. License)" )
+// PORT_DIPSETTING( 0x09, DEF_STR( Unused ) )
+// PORT_DIPSETTING( 0x0a, DEF_STR( Unused ) )
+// PORT_DIPSETTING( 0x0b, DEF_STR( Unused ) )
+// PORT_DIPSETTING( 0x0c, DEF_STR( Unused ) )
+// PORT_DIPSETTING( 0x0d, DEF_STR( Unused ) )
+// PORT_DIPSETTING( 0x0e, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x0f, "Japan (Distributed by Tecmo)" ) // duplicate of 0x00
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( vimanan )
+ TOAPLAN1_VBLANK_INPUT
+
+ TOAPLAN1_PLAYER_INPUT( 1, IPT_BUTTON3, )
+
+ TOAPLAN1_PLAYER_INPUT( 2, IPT_BUTTON3, )
+
+ PORT_START /* DSW A */
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+/* settings for other territories (non Nova license)
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
+*/
+
+ PORT_START /* DSW B */
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, "70K and 200K" )
+ PORT_DIPSETTING( 0x04, "100K and 250K" )
+ PORT_DIPSETTING( 0x08, "100K" )
+ PORT_DIPSETTING( 0x0c, "200K" )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x30, "2" )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x20, "4" )
+ PORT_DIPSETTING( 0x10, "5" )
+ PORT_DIPNAME( 0x40, 0x00, "Invulnerability" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+
+ TOAPLAN1_SYSTEM_INPUTS
+
+ PORT_START /* Territory Jumper Block */
+ PORT_DIPNAME( 0x0f, 0x02, "Territory / License" )
+ PORT_DIPSETTING( 0x00, "Japan (Distributed by Tecmo)" )
+ PORT_DIPSETTING( 0x01, "US" )
+ PORT_DIPSETTING( 0x02, "Europe (Nova Apparate GMBH License)" )
+ PORT_DIPSETTING( 0x03, "Hong Kong" )
+ PORT_DIPSETTING( 0x04, "Korea" )
+ PORT_DIPSETTING( 0x05, "Taiwan" )
+ PORT_DIPSETTING( 0x06, "Taiwan (Spacy License)" )
+ PORT_DIPSETTING( 0x07, "US (Romstar License)" )
+ PORT_DIPSETTING( 0x08, "Hong Kong (Honest Trading Co. License)" )
+// PORT_DIPSETTING( 0x09, DEF_STR( Unused ) )
+// PORT_DIPSETTING( 0x0a, DEF_STR( Unused ) )
+// PORT_DIPSETTING( 0x0b, DEF_STR( Unused ) )
+// PORT_DIPSETTING( 0x0c, DEF_STR( Unused ) )
+// PORT_DIPSETTING( 0x0d, DEF_STR( Unused ) )
+// PORT_DIPSETTING( 0x0e, DEF_STR( Unused ) )
+// PORT_DIPSETTING( 0x0f, "Japan (Distributed by Tecmo)" ) // duplicate of 0x00
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+
+static const gfx_layout tilelayout =
+{
+ 8,8, /* 8x8 */
+ 16384, /* 16384 tiles */
+ 4, /* 4 bits per pixel */
+ { 3*8*0x20000, 2*8*0x20000, 1*8*0x20000, 0*8*0x20000 },
+ { 0, 1, 2, 3, 4, 5, 6, 7 },
+ { 0, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38 },
+ 64
+};
+
+static const gfx_layout rallybik_spr_layout =
+{
+ 16,16, /* 16*16 sprites */
+ 2048, /* 2048 sprites */
+ 4, /* 4 bits per pixel */
+ { 0*2048*32*8, 1*2048*32*8, 2*2048*32*8, 3*2048*32*8 },
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
+ { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
+ 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
+ 32*8 /* every sprite takes 32 consecutive bytes */
+};
+
+static const gfx_layout vm_tilelayout =
+{
+ 8,8, /* 8x8 */
+ 32768, /* 32768 tiles */
+ 4, /* 4 bits per pixel */
+ { 8*0x80000+8, 8*0x80000, 8, 0 },
+ { 0, 1, 2, 3, 4, 5, 6, 7 },
+ { 0, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70 },
+ 128
+};
+
+
+static GFXDECODE_START( toaplan1 )
+ GFXDECODE_ENTRY( REGION_GFX1, 0x00000, tilelayout, 0, 64 )
+ GFXDECODE_ENTRY( REGION_GFX2, 0x00000, tilelayout, 64*16, 64 )
+GFXDECODE_END
+
+static GFXDECODE_START( rallybik )
+ GFXDECODE_ENTRY( REGION_GFX1, 0x00000, tilelayout, 0, 64 )
+ GFXDECODE_ENTRY( REGION_GFX2, 0x00000, rallybik_spr_layout, 64*16, 64 )
+GFXDECODE_END
+
+static GFXDECODE_START( outzone )
+ GFXDECODE_ENTRY( REGION_GFX1, 0x00000, vm_tilelayout, 0, 64 )
+ GFXDECODE_ENTRY( REGION_GFX2, 0x00000, tilelayout, 64*16, 64 )
+GFXDECODE_END
+
+static GFXDECODE_START( vm )
+ GFXDECODE_ENTRY( REGION_GFX1, 0x00000, tilelayout, 0, 64 )
+ GFXDECODE_ENTRY( REGION_GFX2, 0x00000, vm_tilelayout, 64*16, 64 )
+GFXDECODE_END
+
+
+static void irqhandler(int linestate)
+{
+ cpunum_set_input_line(1,0,linestate);
+}
+
+static struct YM3812interface ym3812_interface =
+{
+ irqhandler
+};
+
+
+
+static MACHINE_DRIVER_START( rallybik )
+
+ /* basic machine hardware */
+ MDRV_CPU_ADD(M68000, 10000000)
+ MDRV_CPU_PROGRAM_MAP(rallybik_main_map, 0)
+ MDRV_CPU_VBLANK_INT(toaplan1_interrupt,1)
+
+ MDRV_CPU_ADD(Z80,28000000/8) /* 3.5MHz (28MHz Oscillator) */
+ MDRV_CPU_PROGRAM_MAP(toaplan1_sound_map, 0)
+ MDRV_CPU_IO_MAP(rallybik_sound_io_map, 0)
+
+ MDRV_SCREEN_REFRESH_RATE(60)
+ MDRV_INTERLEAVE(10)
+
+ MDRV_MACHINE_RESET(toaplan1)
+
+ /* video hardware */
+ MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK | VIDEO_BUFFERS_SPRITERAM)
+ MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
+ MDRV_SCREEN_SIZE(432, 262) /* copied these from toaplan2, to be verified */
+ MDRV_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
+ MDRV_GFXDECODE(rallybik)
+ MDRV_PALETTE_LENGTH((64*16)+(64*16))
+
+ MDRV_VIDEO_START(rallybik)
+ MDRV_VIDEO_EOF(rallybik)
+ MDRV_VIDEO_UPDATE(rallybik)
+
+ /* sound hardware */
+ MDRV_SPEAKER_STANDARD_MONO("mono")
+
+ MDRV_SOUND_ADD(YM3812, 28000000/8)
+ MDRV_SOUND_CONFIG(ym3812_interface)
+ MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_DRIVER_END
+
+
+static MACHINE_DRIVER_START( truxton )
+
+ /* basic machine hardware */
+ MDRV_CPU_ADD(M68000, 10000000)
+ MDRV_CPU_PROGRAM_MAP(truxton_main_map, 0)
+ MDRV_CPU_VBLANK_INT(toaplan1_interrupt,1)
+
+ MDRV_CPU_ADD(Z80,28000000/8) /* 3.5MHz (28MHz Oscillator) */
+ MDRV_CPU_PROGRAM_MAP(toaplan1_sound_map, 0)
+ MDRV_CPU_IO_MAP(truxton_sound_io_map, 0)
+
+ MDRV_SCREEN_REFRESH_RATE(60)
+ MDRV_INTERLEAVE(10)
+
+ MDRV_MACHINE_RESET(toaplan1)
+
+ /* video hardware */
+ MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
+ MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
+ MDRV_SCREEN_SIZE(432, 262) /* copied these from toaplan2, to be verified */
+ MDRV_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
+ MDRV_GFXDECODE(toaplan1)
+ MDRV_PALETTE_LENGTH((64*16)+(64*16))
+
+ MDRV_VIDEO_START(toaplan1)
+ MDRV_VIDEO_EOF(toaplan1)
+ MDRV_VIDEO_UPDATE(toaplan1)
+
+ /* sound hardware */
+ MDRV_SPEAKER_STANDARD_MONO("mono")
+
+ MDRV_SOUND_ADD(YM3812, 28000000/8)
+ MDRV_SOUND_CONFIG(ym3812_interface)
+ MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_DRIVER_END
+
+
+static MACHINE_DRIVER_START( hellfire )
+
+ /* basic machine hardware */
+ MDRV_CPU_ADD(M68000, 10000000)
+ MDRV_CPU_PROGRAM_MAP(hellfire_main_map, 0)
+ MDRV_CPU_VBLANK_INT(toaplan1_interrupt,1)
+
+ MDRV_CPU_ADD(Z80,28000000/8) /* 3.5MHz (28MHz Oscillator) */
+ MDRV_CPU_PROGRAM_MAP(toaplan1_sound_map, 0)
+ MDRV_CPU_IO_MAP(hellfire_sound_io_map, 0)
+
+ MDRV_SCREEN_REFRESH_RATE(60)
+ MDRV_INTERLEAVE(10)
+
+ MDRV_MACHINE_RESET(toaplan1)
+
+ /* video hardware */
+ MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
+ MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
+ MDRV_SCREEN_SIZE(432, 262) /* copied these from toaplan2, to be verified */
+ MDRV_SCREEN_VISIBLE_AREA(0, 319, 16, 255)
+ MDRV_GFXDECODE(toaplan1)
+ MDRV_PALETTE_LENGTH((64*16)+(64*16))
+
+ MDRV_VIDEO_START(toaplan1)
+ MDRV_VIDEO_EOF(toaplan1)
+ MDRV_VIDEO_UPDATE(toaplan1)
+
+ /* sound hardware */
+ MDRV_SPEAKER_STANDARD_MONO("mono")
+
+ MDRV_SOUND_ADD(YM3812, 28000000/8)
+ MDRV_SOUND_CONFIG(ym3812_interface)
+ MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_DRIVER_END
+
+
+static MACHINE_DRIVER_START( zerowing )
+
+ /* basic machine hardware */
+ MDRV_CPU_ADD(M68000, 10000000)
+ MDRV_CPU_PROGRAM_MAP(zerowing_main_map, 0)
+ MDRV_CPU_VBLANK_INT(toaplan1_interrupt,1)
+
+ MDRV_CPU_ADD(Z80,28000000/8) /* 3.5MHz (28MHz Oscillator) */
+ MDRV_CPU_PROGRAM_MAP(toaplan1_sound_map, 0)
+ MDRV_CPU_IO_MAP(zerowing_sound_io_map, 0)
+
+ MDRV_SCREEN_REFRESH_RATE(60)
+ MDRV_INTERLEAVE(10)
+
+ MDRV_MACHINE_RESET(zerozone)
+
+ /* video hardware */
+ MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
+ MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
+ MDRV_SCREEN_SIZE(432, 262) /* copied these from toaplan2, to be verified */
+ MDRV_SCREEN_VISIBLE_AREA(0, 319, 16, 255)
+ MDRV_GFXDECODE(toaplan1)
+ MDRV_PALETTE_LENGTH((64*16)+(64*16))
+
+ MDRV_VIDEO_START(toaplan1)
+ MDRV_VIDEO_EOF(toaplan1)
+ MDRV_VIDEO_UPDATE(toaplan1)
+
+ /* sound hardware */
+ MDRV_SPEAKER_STANDARD_MONO("mono")
+
+ MDRV_SOUND_ADD(YM3812, 28000000/8)
+ MDRV_SOUND_CONFIG(ym3812_interface)
+ MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_DRIVER_END
+
+
+static MACHINE_DRIVER_START( demonwld )
+
+ /* basic machine hardware */
+ MDRV_CPU_ADD(M68000, 10000000)
+ MDRV_CPU_PROGRAM_MAP(demonwld_main_map, 0)
+ MDRV_CPU_VBLANK_INT(toaplan1_interrupt,1)
+
+ MDRV_CPU_ADD(Z80,28000000/8) /* 3.5MHz (28MHz Oscillator) */
+ MDRV_CPU_PROGRAM_MAP(toaplan1_sound_map, 0)
+ MDRV_CPU_IO_MAP(demonwld_sound_io_map, 0)
+
+ MDRV_CPU_ADD(TMS32010,(28000000/2)/TMS32010_CLOCK_DIVIDER) /* 14MHz CLKin */
+ MDRV_CPU_PROGRAM_MAP(DSP_program_map,0)
+ MDRV_CPU_IO_MAP(DSP_io_map,0)
+
+ MDRV_SCREEN_REFRESH_RATE(60)
+ MDRV_INTERLEAVE(10)
+
+ MDRV_MACHINE_RESET(demonwld)
+
+ /* video hardware */
+ MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
+ MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
+ MDRV_SCREEN_SIZE(432, 262) /* copied these from toaplan2, to be verified */
+ MDRV_SCREEN_VISIBLE_AREA(0, 319, 16, 255)
+ MDRV_GFXDECODE(toaplan1)
+ MDRV_PALETTE_LENGTH((64*16)+(64*16))
+
+ MDRV_VIDEO_START(toaplan1)
+ MDRV_VIDEO_EOF(toaplan1)
+ MDRV_VIDEO_UPDATE(demonwld)
+
+ /* sound hardware */
+ MDRV_SPEAKER_STANDARD_MONO("mono")
+
+ MDRV_SOUND_ADD(YM3812, 28000000/8)
+ MDRV_SOUND_CONFIG(ym3812_interface)
+ MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_DRIVER_END
+
+
+static MACHINE_DRIVER_START( samesame )
+
+ /* basic machine hardware */
+ MDRV_CPU_ADD(M68000, 10000000)
+ MDRV_CPU_PROGRAM_MAP(samesame_main_map, 0)
+ MDRV_CPU_VBLANK_INT(toaplan1_interrupt,1)
+
+ MDRV_SCREEN_REFRESH_RATE(60)
+
+ MDRV_MACHINE_RESET(toaplan1)
+
+ /* video hardware */
+ MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
+ MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
+ MDRV_SCREEN_SIZE(432, 262) /* copied these from toaplan2, to be verified */
+ MDRV_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
+ MDRV_GFXDECODE(toaplan1)
+ MDRV_PALETTE_LENGTH((64*16)+(64*16))
+
+ MDRV_VIDEO_START(toaplan1)
+ MDRV_VIDEO_EOF(samesame)
+ MDRV_VIDEO_UPDATE(toaplan1)
+
+ /* sound hardware */
+ MDRV_SPEAKER_STANDARD_MONO("mono")
+
+ MDRV_SOUND_ADD(YM3812, 28000000/8)
+ MDRV_SOUND_CONFIG(ym3812_interface)
+ MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_DRIVER_END
+
+
+static MACHINE_DRIVER_START( outzone )
+
+ /* basic machine hardware */
+ MDRV_CPU_ADD(M68000, 10000000)
+ MDRV_CPU_PROGRAM_MAP(outzone_main_map, 0)
+ MDRV_CPU_VBLANK_INT(toaplan1_interrupt,1)
+
+ MDRV_CPU_ADD(Z80,28000000/8) /* 3.5MHz (28MHz Oscillator) */
+ MDRV_CPU_PROGRAM_MAP(toaplan1_sound_map, 0)
+ MDRV_CPU_IO_MAP(outzone_sound_io_map, 0)
+
+ MDRV_SCREEN_REFRESH_RATE(60)
+ MDRV_INTERLEAVE(10)
+
+ MDRV_MACHINE_RESET(zerozone)
+
+ /* video hardware */
+ MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
+ MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
+ MDRV_SCREEN_SIZE(432, 262) /* copied these from toaplan2, to be verified */
+ MDRV_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
+ MDRV_GFXDECODE(outzone)
+ MDRV_PALETTE_LENGTH((64*16)+(64*16))
+
+ MDRV_VIDEO_START(toaplan1)
+ MDRV_VIDEO_EOF(toaplan1)
+ MDRV_VIDEO_UPDATE(toaplan1)
+
+ /* sound hardware */
+ MDRV_SPEAKER_STANDARD_MONO("mono")
+
+ MDRV_SOUND_ADD(YM3812, 28000000/8)
+ MDRV_SOUND_CONFIG(ym3812_interface)
+ MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_DRIVER_END
+
+
+static MACHINE_DRIVER_START( vimana )
+
+ /* basic machine hardware */
+ MDRV_CPU_ADD(M68000, 10000000)
+ MDRV_CPU_PROGRAM_MAP(vimana_main_map, 0)
+ MDRV_CPU_VBLANK_INT(toaplan1_interrupt,1)
+
+ MDRV_SCREEN_REFRESH_RATE(60)
+
+ MDRV_MACHINE_RESET(vimana)
+
+ /* video hardware */
+ MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
+ MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
+ MDRV_SCREEN_SIZE(432, 262) /* copied these from toaplan2, to be verified */
+ MDRV_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
+ MDRV_GFXDECODE(vm)
+ MDRV_PALETTE_LENGTH((64*16)+(64*16))
+
+ MDRV_VIDEO_START(toaplan1)
+ MDRV_VIDEO_EOF(toaplan1)
+ MDRV_VIDEO_UPDATE(toaplan1)
+
+ /* sound hardware */
+ MDRV_SPEAKER_STANDARD_MONO("mono")
+
+ MDRV_SOUND_ADD(YM3812, 28000000/8)
+ MDRV_SOUND_CONFIG(ym3812_interface)
+ MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_DRIVER_END
+
+
+
+
+/***************************************************************************
+
+ Game driver(s)
+
+***************************************************************************/
+
+ROM_START( rallybik )
+ ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "b45-02.rom", 0x000000, 0x08000, CRC(383386d7) SHA1(fc420b6adc79a408a68f0661d0c62ed7dbe8b6d7) )
+ ROM_LOAD16_BYTE( "b45-01.rom", 0x000001, 0x08000, CRC(7602f6a7) SHA1(2939c261a4bc63586681080f5643916c85e81c7d) )
+ ROM_LOAD16_BYTE( "b45-04.rom", 0x040000, 0x20000, CRC(e9b005b1) SHA1(19b5acfd5fb2683a56a701400b11ee6f64a9bdf1) )
+ ROM_LOAD16_BYTE( "b45-03.rom", 0x040001, 0x20000, CRC(555344ce) SHA1(398963f488fe6f19c0b8518d80c946c242d0fc45) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
+ ROM_LOAD( "b45-05.rom", 0x0000, 0x4000, CRC(10814601) SHA1(bad7a834d8849752a7f3000bb5154ec0fa50d695) )
+
+ ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "b45-09.bin", 0x00000, 0x20000, CRC(1dc7b010) SHA1(67e8633bd787ffcae0e7867e7e591c492c4f2d63) )
+ ROM_LOAD( "b45-08.bin", 0x20000, 0x20000, CRC(fab661ba) SHA1(acc43cd6d979b1c6a348727f315643d7b8f1496a) )
+ ROM_LOAD( "b45-07.bin", 0x40000, 0x20000, CRC(cd3748b4) SHA1(a20eb19a0f813112b4e5d9cd91db29de9b37af17) )
+ ROM_LOAD( "b45-06.bin", 0x60000, 0x20000, CRC(144b085c) SHA1(84b7412d58fe9c5e9915896db92e80a621571b74) )
+
+ ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "b45-11.rom", 0x00000, 0x10000, CRC(0d56e8bb) SHA1(c29cb53f846c73b7cf9936051fb0f9dd3805f53f) )
+ ROM_LOAD( "b45-10.rom", 0x10000, 0x10000, CRC(dbb7c57e) SHA1(268132965cd65b5e972ca9d0258c30b8a86f3703) )
+ ROM_LOAD( "b45-12.rom", 0x20000, 0x10000, CRC(cf5aae4e) SHA1(5832c52d2e9b86414d8ee2926fa190abe9e41da4) )
+ ROM_LOAD( "b45-13.rom", 0x30000, 0x10000, CRC(1683b07c) SHA1(54356893357cd1297f24f1d85b7289d80740262d) )
+
+ ROM_REGION( 0x240, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "b45-15.bpr", 0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) ) /* sprite priority control ?? */
+ ROM_LOAD( "b45-16.bpr", 0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) ) /* sprite priority control ?? */
+ ROM_LOAD( "b45-14.bpr", 0x200, 0x020, CRC(f72482db) SHA1(b0cb911f9c81f6088a5aa8760916ddae1f8534d7) ) /* sprite control ?? */
+ ROM_LOAD( "b45-17.bpr", 0x220, 0x020, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ROM_END
+
+ROM_START( truxton )
+ ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "b65_11.bin", 0x000000, 0x20000, CRC(1a62379a) SHA1(b9470d4b70c38f2523b22636874d742abe4099eb) )
+ ROM_LOAD16_BYTE( "b65_10.bin", 0x000001, 0x20000, CRC(aff5195d) SHA1(a7f379dc35e3acf9e7a8ae8a47a9b5b4193f93a1) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
+ ROM_LOAD( "b65_09.bin", 0x0000, 0x8000, CRC(f1c0f410) SHA1(05deb759f8acb14fff92c56b536134cfd84516a8) )
+
+ ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "b65_08.bin", 0x00000, 0x20000, CRC(d2315b37) SHA1(eb42a884df319728c830c067c2423043ed4536ee) )
+ ROM_LOAD( "b65_07.bin", 0x20000, 0x20000, CRC(fb83252a) SHA1(48a38584d223f56286137f7acdfaec86ee6588e7) )
+ ROM_LOAD( "b65_06.bin", 0x40000, 0x20000, CRC(36cedcbe) SHA1(f79d4b1e98b3c9091ae907fb671ad201d3698b42) )
+ ROM_LOAD( "b65_05.bin", 0x60000, 0x20000, CRC(81cd95f1) SHA1(526a437fbe033ac21054ee5c3bf1ba2fed354c7a) )
+
+ ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "b65_04.bin", 0x00000, 0x20000, CRC(8c6ff461) SHA1(5199e31f4eb23bad01f7d1079f3618fe39d8a32e) )
+ ROM_LOAD( "b65_03.bin", 0x20000, 0x20000, CRC(58b1350b) SHA1(7eb2fe329579a6f651d3c1aed9155ac6ffefbc4b) )
+ ROM_LOAD( "b65_02.bin", 0x40000, 0x20000, CRC(1dd55161) SHA1(c537456ac56801dea0ac48fb1389228530d00a61) )
+ ROM_LOAD( "b65_01.bin", 0x60000, 0x20000, CRC(e974937f) SHA1(ab282472c04ce6d9ed368956c427403275bc9080) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "b65_12.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "b65_13.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+ROM_START( hellfire )
+ ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "b90_14.0", 0x000000, 0x20000, CRC(101df9f5) SHA1(27e1430d4c96fe2c830143999a760470c8381ada) )
+ ROM_LOAD16_BYTE( "b90_15.1", 0x000001, 0x20000, CRC(e67fd452) SHA1(baec2a702238f000d0499705d79d7c7577fc2279) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
+ ROM_LOAD( "b90_03.2", 0x0000, 0x8000, CRC(4058fa67) SHA1(155c364273c270cd74955f447efc804bb4c9b560) )
+
+ ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "b90_04.3", 0x00000, 0x20000, CRC(ea6150fc) SHA1(1116947d10ce14fbc6a3b86368fc2024c6f51803) )
+ ROM_LOAD( "b90_05.4", 0x20000, 0x20000, CRC(bb52c507) SHA1(b0b1821476647f10c7023f92a66a7f54b92f50c3) )
+ ROM_LOAD( "b90_06.5", 0x40000, 0x20000, CRC(cf5b0252) SHA1(e2102967af61afb11d2290a40d13d2faf9ef1e12) )
+ ROM_LOAD( "b90_07.6", 0x60000, 0x20000, CRC(b98af263) SHA1(54d636a50a41dbb58b54c22dfab3eabfdb452575) )
+
+ ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "b90_11.10", 0x00000, 0x20000, CRC(c33e543c) SHA1(b85cba30cc651f820aeedd41e04584df92078ed9) )
+ ROM_LOAD( "b90_10.9", 0x20000, 0x20000, CRC(35fd1092) SHA1(5e136a35eea45034ccd4aea52cc0ffeec944e27e) )
+ ROM_LOAD( "b90_09.8", 0x40000, 0x20000, CRC(cf01009e) SHA1(e260c479fa97f23a65c220e5071aaf2dc2baf46d) )
+ ROM_LOAD( "b90_08.7", 0x60000, 0x20000, CRC(3404a5e3) SHA1(f717b9e31c2a093dbb060b8ea54a8c3f52688d7a) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "3w.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "6b.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+ROM_START( hellfir1 )
+ ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "b90_14x.0", 0x000000, 0x20000, CRC(a3141ea5) SHA1(9b456cb908e193198110a628d98567a3b8351591) )
+ ROM_LOAD16_BYTE( "b90_15x.1", 0x000001, 0x20000, CRC(e864daf4) SHA1(382f02df8419310cef5d7fb68a9376eeac2f3685) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
+ ROM_LOAD( "b90_03x.2", 0x0000, 0x8000, CRC(f58c368f) SHA1(2ee5396a4b70a3374f3a3bbd791b1d962f6a8a52) )
+
+ ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "b90_04.3", 0x00000, 0x20000, CRC(ea6150fc) SHA1(1116947d10ce14fbc6a3b86368fc2024c6f51803) )
+ ROM_LOAD( "b90_05.4", 0x20000, 0x20000, CRC(bb52c507) SHA1(b0b1821476647f10c7023f92a66a7f54b92f50c3) )
+ ROM_LOAD( "b90_06.5", 0x40000, 0x20000, CRC(cf5b0252) SHA1(e2102967af61afb11d2290a40d13d2faf9ef1e12) )
+ ROM_LOAD( "b90_07.6", 0x60000, 0x20000, CRC(b98af263) SHA1(54d636a50a41dbb58b54c22dfab3eabfdb452575) )
+
+ ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "b90_11.10", 0x00000, 0x20000, CRC(c33e543c) SHA1(b85cba30cc651f820aeedd41e04584df92078ed9) )
+ ROM_LOAD( "b90_10.9", 0x20000, 0x20000, CRC(35fd1092) SHA1(5e136a35eea45034ccd4aea52cc0ffeec944e27e) )
+ ROM_LOAD( "b90_09.8", 0x40000, 0x20000, CRC(cf01009e) SHA1(e260c479fa97f23a65c220e5071aaf2dc2baf46d) )
+ ROM_LOAD( "b90_08.7", 0x60000, 0x20000, CRC(3404a5e3) SHA1(f717b9e31c2a093dbb060b8ea54a8c3f52688d7a) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "3w.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "6b.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+ROM_START( hellfir2 )/* Original version, by rom numbers (IE: 01 & 02) */
+ ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "b90_01.0", 0x000000, 0x20000, CRC(c94acf53) SHA1(5710861dbe976fe53b93d3428147d1ce7aaae18a) ) /* Territory block seems to have no effect and it's licensed */
+ ROM_LOAD16_BYTE( "b90_02.1", 0x000001, 0x20000, CRC(d17f03c3) SHA1(ac41e6c29aa507872caeeaec6a3bc24c705a3702) ) /* to "Taito Corp." the later set shows "Taito Corporation" */
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
+ ROM_LOAD( "b90_03x.2", 0x0000, 0x8000, CRC(f58c368f) SHA1(2ee5396a4b70a3374f3a3bbd791b1d962f6a8a52) )
+
+ ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "b90_04.3", 0x00000, 0x20000, CRC(ea6150fc) SHA1(1116947d10ce14fbc6a3b86368fc2024c6f51803) )
+ ROM_LOAD( "b90_05.4", 0x20000, 0x20000, CRC(bb52c507) SHA1(b0b1821476647f10c7023f92a66a7f54b92f50c3) )
+ ROM_LOAD( "b90_06.5", 0x40000, 0x20000, CRC(cf5b0252) SHA1(e2102967af61afb11d2290a40d13d2faf9ef1e12) )
+ ROM_LOAD( "b90_07.6", 0x60000, 0x20000, CRC(b98af263) SHA1(54d636a50a41dbb58b54c22dfab3eabfdb452575) )
+
+ ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "b90_11.10", 0x00000, 0x20000, CRC(c33e543c) SHA1(b85cba30cc651f820aeedd41e04584df92078ed9) )
+ ROM_LOAD( "b90_10.9", 0x20000, 0x20000, CRC(35fd1092) SHA1(5e136a35eea45034ccd4aea52cc0ffeec944e27e) )
+ ROM_LOAD( "b90_09.8", 0x40000, 0x20000, CRC(cf01009e) SHA1(e260c479fa97f23a65c220e5071aaf2dc2baf46d) )
+ ROM_LOAD( "b90_08.7", 0x60000, 0x20000, CRC(3404a5e3) SHA1(f717b9e31c2a093dbb060b8ea54a8c3f52688d7a) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "3w.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "6b.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+ROM_START( zerowing )
+ ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "o15-11.rom", 0x000000, 0x08000, CRC(6ff2b9a0) SHA1(c9f2a631f185689dfc42a451d85fac23c2f4b64b) )
+ ROM_LOAD16_BYTE( "o15-12.rom", 0x000001, 0x08000, CRC(9773e60b) SHA1(b733e9d38a233d010cc5ea41e7e61695082c3a22) )
+ ROM_LOAD16_BYTE( "o15-09.rom", 0x040000, 0x20000, CRC(13764e95) SHA1(61da49b73ba81edd951e96e9ce6673c1c3bd65f2) )
+ ROM_LOAD16_BYTE( "o15-10.rom", 0x040001, 0x20000, CRC(351ba71a) SHA1(937331549140506711b08252497cc0f2efa58268) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
+ ROM_LOAD( "o15-13.rom", 0x0000, 0x8000, CRC(e7b72383) SHA1(ea1f6f33a86d14d58bd396fd46081462f00177d5) )
+
+ ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "o15-05.rom", 0x00000, 0x20000, CRC(4e5dd246) SHA1(5366b4a6f3c900a4f57a6583b7399163a06f42d7) )
+ ROM_LOAD( "o15-06.rom", 0x20000, 0x20000, CRC(c8c6d428) SHA1(76ee5bcb8f10fe201fc5c32697beee3de9d8b751) )
+ ROM_LOAD( "o15-07.rom", 0x40000, 0x20000, CRC(efc40e99) SHA1(a04fad4197a7fb4787cd9bebf43e1d9b02b2f61b) )
+ ROM_LOAD( "o15-08.rom", 0x60000, 0x20000, CRC(1b019eab) SHA1(c9569ca85696825142acc5cde9ac829e82b1ca1b) )
+
+ ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "o15-03.rom", 0x00000, 0x20000, CRC(7f245fd3) SHA1(efbcb3663d4accc4f8128a8fee5475bc109bc17a) )
+ ROM_LOAD( "o15-04.rom", 0x20000, 0x20000, CRC(0b1a1289) SHA1(ce6c06342392d11952873e3b1d6aea8dc02a551c) )
+ ROM_LOAD( "o15-01.rom", 0x40000, 0x20000, CRC(70570e43) SHA1(acc9baec71b0930cb2f193677e0663efa5d5551d) )
+ ROM_LOAD( "o15-02.rom", 0x60000, 0x20000, CRC(724b487f) SHA1(06af31520866eea69aebbd5d428f80e882289a15) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "tp015_14.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "tp015_15.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+ROM_START( demonwld )
+ ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "rom10.v2", 0x000000, 0x20000, CRC(ca8194f3) SHA1(176da6739b35ba38b40150fc62380108bcae5a24) )
+ ROM_LOAD16_BYTE( "rom09.v2", 0x000001, 0x20000, CRC(7baea7ba) SHA1(ae2b40f9efb4440ff7edbcc4f80641655f7c4671) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
+ ROM_LOAD( "rom11.v2", 0x0000, 0x8000, CRC(dbe08c85) SHA1(536a242bfe916d15744b079261507af6f12b5b50) )
+
+ ROM_REGION( 0x2000, REGION_CPU3, 0 ) /* Co-Processor TMS320C10 MCU code */
+ ROM_LOAD16_BYTE( "dsp_21.bin", 0x0000, 0x0800, CRC(2d135376) SHA1(67a2cc774d272ee1cd6e6bc1c5fc33fc6968837e) )
+ ROM_LOAD16_BYTE( "dsp_22.bin", 0x0001, 0x0800, CRC(79389a71) SHA1(14ec4c1c9b06702319e89a7a250d0038393437f4) )
+
+ ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "rom05", 0x00000, 0x20000, CRC(6506c982) SHA1(6d4c1ef91e5617724789ff196abb7abf23e4a7fb) )
+ ROM_LOAD( "rom07", 0x20000, 0x20000, CRC(a3a0d993) SHA1(50311b9447eb04271b17b212ca31d083ab5b2414) )
+ ROM_LOAD( "rom06", 0x40000, 0x20000, CRC(4fc5e5f3) SHA1(725d4b009d575ff8ffbe1c00df352ccf235465d7) )
+ ROM_LOAD( "rom08", 0x60000, 0x20000, CRC(eb53ab09) SHA1(d98195cc1b65b76335b5b24adb31deae1b313f3a) )
+
+ ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "rom01", 0x00000, 0x20000, CRC(1b3724e9) SHA1(3dbb0450ab1e40e6df2b7c7356352419cd3f113d) )
+ ROM_LOAD( "rom02", 0x20000, 0x20000, CRC(7b20a44d) SHA1(4dc1a2fa2058077b112c73492808ee9381060ec7) )
+ ROM_LOAD( "rom03", 0x40000, 0x20000, CRC(2cacdcd0) SHA1(92216d1c6859e05d39363c30e0beb45bc0ae4e1c) )
+ ROM_LOAD( "rom04", 0x60000, 0x20000, CRC(76fd3201) SHA1(7a12737bf90bd9760074132edeb22f3fd3e16b4f) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "prom12.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "prom13.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+ROM_START( demonwl1 )
+ ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "rom10", 0x000000, 0x20000, CRC(036ee46c) SHA1(60868e5e08e0c9a538ae786de0de6b2531b30b11) )
+ ROM_LOAD16_BYTE( "rom09", 0x000001, 0x20000, CRC(bed746e3) SHA1(056668edb7df99bbd240e387af17cf252d1448f3) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
+ ROM_LOAD( "rom11", 0x0000, 0x8000, CRC(397eca1b) SHA1(84073ff6d1bc46ec6162d66ec5de305700938380) )
+
+ ROM_REGION( 0x2000, REGION_CPU3, 0 ) /* Co-Processor TMS320C10 MCU code */
+ ROM_LOAD16_BYTE( "dsp_21.bin", 0x0000, 0x0800, CRC(2d135376) SHA1(67a2cc774d272ee1cd6e6bc1c5fc33fc6968837e) )
+ ROM_LOAD16_BYTE( "dsp_22.bin", 0x0001, 0x0800, CRC(79389a71) SHA1(14ec4c1c9b06702319e89a7a250d0038393437f4) )
+
+ ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "rom05", 0x00000, 0x20000, CRC(6506c982) SHA1(6d4c1ef91e5617724789ff196abb7abf23e4a7fb) )
+ ROM_LOAD( "rom07", 0x20000, 0x20000, CRC(a3a0d993) SHA1(50311b9447eb04271b17b212ca31d083ab5b2414) )
+ ROM_LOAD( "rom06", 0x40000, 0x20000, CRC(4fc5e5f3) SHA1(725d4b009d575ff8ffbe1c00df352ccf235465d7) )
+ ROM_LOAD( "rom08", 0x60000, 0x20000, CRC(eb53ab09) SHA1(d98195cc1b65b76335b5b24adb31deae1b313f3a) )
+
+ ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "rom01", 0x00000, 0x20000, CRC(1b3724e9) SHA1(3dbb0450ab1e40e6df2b7c7356352419cd3f113d) )
+ ROM_LOAD( "rom02", 0x20000, 0x20000, CRC(7b20a44d) SHA1(4dc1a2fa2058077b112c73492808ee9381060ec7) )
+ ROM_LOAD( "rom03", 0x40000, 0x20000, CRC(2cacdcd0) SHA1(92216d1c6859e05d39363c30e0beb45bc0ae4e1c) )
+ ROM_LOAD( "rom04", 0x60000, 0x20000, CRC(76fd3201) SHA1(7a12737bf90bd9760074132edeb22f3fd3e16b4f) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "prom12.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "prom13.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+ROM_START( demonwl2 )
+ ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "10.bin", 0x000000, 0x20000, CRC(6f7468e0) SHA1(87ef7733fd0d00d0d375dbf30332cf0614480dc2) )
+ ROM_LOAD16_BYTE( "9.bin", 0x000001, 0x20000, CRC(a572f5f7) SHA1(3d6a443cecd46734c7e1b761130909482c7a9914) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
+ ROM_LOAD( "rom11", 0x0000, 0x8000, CRC(397eca1b) SHA1(84073ff6d1bc46ec6162d66ec5de305700938380) )
+
+ ROM_REGION( 0x2000, REGION_CPU3, 0 ) /* Co-Processor TMS320C10 MCU code */
+ ROM_LOAD16_BYTE( "dsp_21.bin", 0x0000, 0x0800, CRC(2d135376) SHA1(67a2cc774d272ee1cd6e6bc1c5fc33fc6968837e) )
+ ROM_LOAD16_BYTE( "dsp_22.bin", 0x0001, 0x0800, CRC(79389a71) SHA1(14ec4c1c9b06702319e89a7a250d0038393437f4) )
+
+ ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "rom05", 0x00000, 0x20000, CRC(6506c982) SHA1(6d4c1ef91e5617724789ff196abb7abf23e4a7fb) )
+ ROM_LOAD( "rom07", 0x20000, 0x20000, CRC(a3a0d993) SHA1(50311b9447eb04271b17b212ca31d083ab5b2414) )
+ ROM_LOAD( "rom06", 0x40000, 0x20000, CRC(4fc5e5f3) SHA1(725d4b009d575ff8ffbe1c00df352ccf235465d7) )
+ ROM_LOAD( "rom08", 0x60000, 0x20000, CRC(eb53ab09) SHA1(d98195cc1b65b76335b5b24adb31deae1b313f3a) )
+
+ ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "rom01", 0x00000, 0x20000, CRC(1b3724e9) SHA1(3dbb0450ab1e40e6df2b7c7356352419cd3f113d) )
+ ROM_LOAD( "rom02", 0x20000, 0x20000, CRC(7b20a44d) SHA1(4dc1a2fa2058077b112c73492808ee9381060ec7) )
+ ROM_LOAD( "rom03", 0x40000, 0x20000, CRC(2cacdcd0) SHA1(92216d1c6859e05d39363c30e0beb45bc0ae4e1c) )
+ ROM_LOAD( "rom04", 0x60000, 0x20000, CRC(76fd3201) SHA1(7a12737bf90bd9760074132edeb22f3fd3e16b4f) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "prom12.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "prom13.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+ROM_START( samesame )
+ ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "o17_09.bin", 0x000000, 0x08000, CRC(3f69e437) SHA1(f2a40fd42cb5ecb2e514b72e7550aa479a9f9ad6) )
+ ROM_LOAD16_BYTE( "o17_10.bin", 0x000001, 0x08000, CRC(4e723e0a) SHA1(e06394d50addeda1045c02c646964afbc6005a82) )
+ ROM_LOAD16_BYTE( "o17_11.bin", 0x040000, 0x20000, CRC(be07d101) SHA1(1eda14ba24532b565d6ad57490b73ff312f98b53) )
+ ROM_LOAD16_BYTE( "o17_12.bin", 0x040001, 0x20000, CRC(ef698811) SHA1(4c729704eba0bf469599c79009327e4fa5dc540b) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound HD647180 code */
+ /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
+ ROM_LOAD( "hd647180.017", 0x00000, 0x08000, NO_DUMP )
+
+ ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "o17_05.bin", 0x00000, 0x20000, CRC(565315f8) SHA1(6b1c5ef52359483228b329c89c2e1174e3fbf017) )
+ ROM_LOAD( "o17_06.bin", 0x20000, 0x20000, CRC(95262d4c) SHA1(16f3aabecb1c87ce7eadf4f0ff61b29a4c017614) )
+ ROM_LOAD( "o17_07.bin", 0x40000, 0x20000, CRC(4c4b735c) SHA1(812c3bf46bd7764b2bb812bd2b9eb0331ed257ae) )
+ ROM_LOAD( "o17_08.bin", 0x60000, 0x20000, CRC(95c6586c) SHA1(ff87901f79d80f73ad09664b0c0d892898570616) )
+
+ ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "o17_01.bin", 0x00000, 0x20000, CRC(ea12e491) SHA1(02190722b7c5383471e0af9596be7039a5367240) )
+ ROM_LOAD( "o17_02.bin", 0x20000, 0x20000, CRC(32a13a9f) SHA1(1446acdfd21cd41f3d97aaf30f498c0c5d890605) )
+ ROM_LOAD( "o17_03.bin", 0x40000, 0x20000, CRC(68723dc9) SHA1(4f1b7aa2469c955e03737b611a7d2524f1e4f61e) )
+ ROM_LOAD( "o17_04.bin", 0x60000, 0x20000, CRC(fe0ecb13) SHA1(634a49262b9c092c25f11b14c6757fe94ea9eddc) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "tp017_13.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "tp017_14.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+ROM_START( samesam2 )
+ ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "o17_09x.bin", 0x000000, 0x08000, CRC(3472e03e) SHA1(a0f12622a1963bfac2d5f357afbfb5d7db2cd8df) )
+ ROM_LOAD16_BYTE( "o17_10x.bin", 0x000001, 0x08000, CRC(a3ac49b5) SHA1(c5adf026b9129b64acee5a079e102377a8488220) )
+ ROM_LOAD16_BYTE( "o17_11x.bin", 0x040000, 0x20000, CRC(6beac378) SHA1(041ba98a89a4bac32575858db8a061bdf7804594) )
+ ROM_LOAD16_BYTE( "o17_12x.bin", 0x040001, 0x20000, CRC(6adb6eb5) SHA1(9b6e63aa50d271c2bb0b4cf822fc6f3684f10230) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound HD647180 code */
+ /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
+ ROM_LOAD( "hd647180.017", 0x00000, 0x08000, NO_DUMP )
+
+ ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "o17_05.bin", 0x00000, 0x20000, CRC(565315f8) SHA1(6b1c5ef52359483228b329c89c2e1174e3fbf017) )
+ ROM_LOAD( "o17_06.bin", 0x20000, 0x20000, CRC(95262d4c) SHA1(16f3aabecb1c87ce7eadf4f0ff61b29a4c017614) )
+ ROM_LOAD( "o17_07.bin", 0x40000, 0x20000, CRC(4c4b735c) SHA1(812c3bf46bd7764b2bb812bd2b9eb0331ed257ae) )
+ ROM_LOAD( "o17_08.bin", 0x60000, 0x20000, CRC(95c6586c) SHA1(ff87901f79d80f73ad09664b0c0d892898570616) )
+
+ ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "o17_01.bin", 0x00000, 0x20000, CRC(ea12e491) SHA1(02190722b7c5383471e0af9596be7039a5367240) )
+ ROM_LOAD( "o17_02.bin", 0x20000, 0x20000, CRC(32a13a9f) SHA1(1446acdfd21cd41f3d97aaf30f498c0c5d890605) )
+ ROM_LOAD( "o17_03.bin", 0x40000, 0x20000, CRC(68723dc9) SHA1(4f1b7aa2469c955e03737b611a7d2524f1e4f61e) )
+ ROM_LOAD( "o17_04.bin", 0x60000, 0x20000, CRC(fe0ecb13) SHA1(634a49262b9c092c25f11b14c6757fe94ea9eddc) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "tp017_13.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "tp017_14.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+ROM_START( fireshrk )
+ ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "09.bin", 0x000000, 0x08000, CRC(f0c70e6f) SHA1(037690448786d61aa116b24b638430c577ea78e2) )
+ ROM_LOAD16_BYTE( "10.bin", 0x000001, 0x08000, CRC(9d253d77) SHA1(0414d1f475abb9ccfd7daa11c2f400a14f25db09) )
+ ROM_LOAD16_BYTE( "o17_11x.bin", 0x040000, 0x20000, CRC(6beac378) SHA1(041ba98a89a4bac32575858db8a061bdf7804594) )
+ ROM_LOAD16_BYTE( "o17_12x.bin", 0x040001, 0x20000, CRC(6adb6eb5) SHA1(9b6e63aa50d271c2bb0b4cf822fc6f3684f10230) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound HD647180 code */
+ /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
+ ROM_LOAD( "hd647180.017", 0x00000, 0x08000, NO_DUMP )
+
+ ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "o17_05.bin", 0x00000, 0x20000, CRC(565315f8) SHA1(6b1c5ef52359483228b329c89c2e1174e3fbf017) )
+ ROM_LOAD( "o17_06.bin", 0x20000, 0x20000, CRC(95262d4c) SHA1(16f3aabecb1c87ce7eadf4f0ff61b29a4c017614) )
+ ROM_LOAD( "o17_07.bin", 0x40000, 0x20000, CRC(4c4b735c) SHA1(812c3bf46bd7764b2bb812bd2b9eb0331ed257ae) )
+ ROM_LOAD( "o17_08.bin", 0x60000, 0x20000, CRC(95c6586c) SHA1(ff87901f79d80f73ad09664b0c0d892898570616) )
+
+ ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "o17_01.bin", 0x00000, 0x20000, CRC(ea12e491) SHA1(02190722b7c5383471e0af9596be7039a5367240) )
+ ROM_LOAD( "o17_02.bin", 0x20000, 0x20000, CRC(32a13a9f) SHA1(1446acdfd21cd41f3d97aaf30f498c0c5d890605) )
+ ROM_LOAD( "o17_03.bin", 0x40000, 0x20000, CRC(68723dc9) SHA1(4f1b7aa2469c955e03737b611a7d2524f1e4f61e) )
+ ROM_LOAD( "o17_04.bin", 0x60000, 0x20000, CRC(fe0ecb13) SHA1(634a49262b9c092c25f11b14c6757fe94ea9eddc) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "tp017_13.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "tp017_14.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+/*
+Out Zone - Seems to be a later version, Differences:
+
+. This version is a lot harder.
+. Attract mode differs, player 1 dies early in "Demonstration 2"
+. Special pick up is Super Ball instead of Shield in attract mode.
+. Test mode can be entered and exited without any crash.
+*/
+
+ROM_START( outzone )
+ ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "tp018_7.bin", 0x000000, 0x20000, CRC(0c2ac02d) SHA1(78fda906ef7e0bb8e4ad44f34a8ac934b75d4bd8) )
+ ROM_LOAD16_BYTE( "tp018_8.bin", 0x000001, 0x20000, CRC(ca7e48aa) SHA1(c5073e6c124d74f16d01e67949965fdca929a886) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
+ ROM_LOAD( "rom9.bin", 0x0000, 0x8000, CRC(73d8e235) SHA1(f37ad497259a467cdf2ec8b3e6e7d3e873087e6c) )
+
+ ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "rom5.bin", 0x00000, 0x80000, CRC(c64ec7b6) SHA1(e73b51c3713c2ea7a572a02531c15d1261ddeaa0) )
+ ROM_LOAD( "rom6.bin", 0x80000, 0x80000, CRC(64b6c5ac) SHA1(07fa20115f603445c0d51af3465c0471c09d76b1) )
+
+ ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "rom2.bin", 0x00000, 0x20000, CRC(6bb72d16) SHA1(a127b10d9c255542bd09fcb5df057c12fd28c0d1) )
+ ROM_LOAD( "rom1.bin", 0x20000, 0x20000, CRC(0934782d) SHA1(e4a775ead23227d7d6e76aea23aa3103b511d031) )
+ ROM_LOAD( "rom3.bin", 0x40000, 0x20000, CRC(ec903c07) SHA1(75906f31200877fc8f6e78c2606ad5be49778165) )
+ ROM_LOAD( "rom4.bin", 0x60000, 0x20000, CRC(50cbf1a8) SHA1(cfab1504746654b4a61912155e9aeca746c65321) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "tp018_10.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "tp018_11.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+ROM_START( outzonea )
+ ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "18.bin", 0x000000, 0x20000, CRC(31a171bb) SHA1(4ee707e758ab21d2809b65daf0081f86bd9328d9) )
+ ROM_LOAD16_BYTE( "19.bin", 0x000001, 0x20000, CRC(804ecfd1) SHA1(7dead8064445c6d44ebd0889583deb5e17b1954a) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
+ ROM_LOAD( "rom9.bin", 0x0000, 0x8000, CRC(73d8e235) SHA1(f37ad497259a467cdf2ec8b3e6e7d3e873087e6c) )
+
+ ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "rom5.bin", 0x00000, 0x80000, CRC(c64ec7b6) SHA1(e73b51c3713c2ea7a572a02531c15d1261ddeaa0) )
+ ROM_LOAD( "rom6.bin", 0x80000, 0x80000, CRC(64b6c5ac) SHA1(07fa20115f603445c0d51af3465c0471c09d76b1) )
+/* a pirate board exists using the same data in a different layout
+ ROM_LOAD16_BYTE( "04.bin", 0x000000, 0x10000, CRC(3d11eae0) )
+ ROM_LOAD16_BYTE( "08.bin", 0x000001, 0x10000, CRC(c7628891) )
+ ROM_LOAD16_BYTE( "13.bin", 0x080000, 0x10000, CRC(b23dd87e) )
+ ROM_LOAD16_BYTE( "09.bin", 0x080001, 0x10000, CRC(445651ba) )
+ ROM_LOAD16_BYTE( "03.bin", 0x020000, 0x10000, CRC(6b347646) )
+ ROM_LOAD16_BYTE( "07.bin", 0x020001, 0x10000, CRC(461b47f9) )
+ ROM_LOAD16_BYTE( "14.bin", 0x0a0000, 0x10000, CRC(b28ae37a) )
+ ROM_LOAD16_BYTE( "10.bin", 0x0a0001, 0x10000, CRC(6596a076) )
+ ROM_LOAD16_BYTE( "02.bin", 0x040000, 0x10000, CRC(11a781c3) )
+ ROM_LOAD16_BYTE( "06.bin", 0x040001, 0x10000, CRC(1055da17) )
+ ROM_LOAD16_BYTE( "15.bin", 0x0c0000, 0x10000, CRC(9c9e811b) )
+ ROM_LOAD16_BYTE( "11.bin", 0x0c0001, 0x10000, CRC(4c4d44dc) )
+ ROM_LOAD16_BYTE( "01.bin", 0x060000, 0x10000, CRC(e8c46aea) )
+ ROM_LOAD16_BYTE( "05.bin", 0x060001, 0x10000, CRC(f8a2fe01) )
+ ROM_LOAD16_BYTE( "16.bin", 0x0e0000, 0x10000, CRC(cffcb99b) )
+ ROM_LOAD16_BYTE( "12.bin", 0x0e0001, 0x10000, CRC(90d37ded) )
+*/
+
+ ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "rom2.bin", 0x00000, 0x20000, CRC(6bb72d16) SHA1(a127b10d9c255542bd09fcb5df057c12fd28c0d1) )
+ ROM_LOAD( "rom1.bin", 0x20000, 0x20000, CRC(0934782d) SHA1(e4a775ead23227d7d6e76aea23aa3103b511d031) )
+ ROM_LOAD( "rom3.bin", 0x40000, 0x20000, CRC(ec903c07) SHA1(75906f31200877fc8f6e78c2606ad5be49778165) )
+ ROM_LOAD( "rom4.bin", 0x60000, 0x20000, CRC(50cbf1a8) SHA1(cfab1504746654b4a61912155e9aeca746c65321) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "tp018_10.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "tp018_11.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+/* is this a prototype? */
+ROM_START( outzoneb ) /* From board serial number 2122 */
+ ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "rom7.bin", 0x000000, 0x20000, CRC(936e25d8) SHA1(ffb7990ea1539d868a9ad2fb711b0febd90f098d) )
+ ROM_LOAD16_BYTE( "rom8.bin", 0x000001, 0x20000, CRC(d19b3ecf) SHA1(b406999b9f1e2104d958b42cc745bf79dbfe50b3) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
+ ROM_LOAD( "rom9.bin", 0x0000, 0x8000, CRC(73d8e235) SHA1(f37ad497259a467cdf2ec8b3e6e7d3e873087e6c) )
+
+ ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "rom5.bin", 0x00000, 0x80000, CRC(c64ec7b6) SHA1(e73b51c3713c2ea7a572a02531c15d1261ddeaa0) )
+ ROM_LOAD( "rom6.bin", 0x80000, 0x80000, CRC(64b6c5ac) SHA1(07fa20115f603445c0d51af3465c0471c09d76b1) )
+
+ ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "rom2.bin", 0x00000, 0x20000, CRC(6bb72d16) SHA1(a127b10d9c255542bd09fcb5df057c12fd28c0d1) )
+ ROM_LOAD( "rom1.bin", 0x20000, 0x20000, CRC(0934782d) SHA1(e4a775ead23227d7d6e76aea23aa3103b511d031) )
+ ROM_LOAD( "rom3.bin", 0x40000, 0x20000, CRC(ec903c07) SHA1(75906f31200877fc8f6e78c2606ad5be49778165) )
+ ROM_LOAD( "rom4.bin", 0x60000, 0x20000, CRC(50cbf1a8) SHA1(cfab1504746654b4a61912155e9aeca746c65321) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "tp018_10.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "tp018_11.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+/* from a bootleg board, but probably an alt original set with different licenses */
+ROM_START( outzonec )
+ ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "prg2.bin", 0x000001, 0x20000, CRC(9704db16) SHA1(12b43a6961a7f63f29563eb77aaacb70d3c368dd) )
+ ROM_LOAD16_BYTE( "prg1.bin", 0x000000, 0x20000, CRC(127a38d7) SHA1(d7f1ed91ff7d4de9e8215aa3b5cb65693145e433) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
+ ROM_LOAD( "rom9.bin", 0x0000, 0x8000, CRC(73d8e235) SHA1(f37ad497259a467cdf2ec8b3e6e7d3e873087e6c) )
+
+ ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "rom5.bin", 0x00000, 0x80000, CRC(c64ec7b6) SHA1(e73b51c3713c2ea7a572a02531c15d1261ddeaa0) )
+ ROM_LOAD( "rom6.bin", 0x80000, 0x80000, CRC(64b6c5ac) SHA1(07fa20115f603445c0d51af3465c0471c09d76b1) )
+
+ ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "rom2.bin", 0x00000, 0x20000, CRC(6bb72d16) SHA1(a127b10d9c255542bd09fcb5df057c12fd28c0d1) )
+ ROM_LOAD( "rom1.bin", 0x20000, 0x20000, CRC(0934782d) SHA1(e4a775ead23227d7d6e76aea23aa3103b511d031) )
+ ROM_LOAD( "rom3.bin", 0x40000, 0x20000, CRC(ec903c07) SHA1(75906f31200877fc8f6e78c2606ad5be49778165) )
+ ROM_LOAD( "rom4.bin", 0x60000, 0x20000, CRC(50cbf1a8) SHA1(cfab1504746654b4a61912155e9aeca746c65321) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "tp018_10.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "tp018_11.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+
+ROM_START( vimana ) /* From board serial number 1547.04 (July '94) */
+ ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "tp019-7a.bin", 0x000000, 0x20000, CRC(5a4bf73e) SHA1(9a43d822bc24b59278f294d0b3275595de997d16) )
+ ROM_LOAD16_BYTE( "tp019-8a.bin", 0x000001, 0x20000, CRC(03ba27e8) SHA1(edb5fe741d2a6a7fe5cde9a82317ea1e9447cf73) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound HD647180 code */
+ /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
+ ROM_LOAD( "hd647180.019", 0x00000, 0x08000, NO_DUMP )
+
+ ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "vim6.bin", 0x00000, 0x20000, CRC(2886878d) SHA1(f44933d87bbcd3bd58f46e0f0f89b05c409b713b) )
+ ROM_LOAD( "vim5.bin", 0x20000, 0x20000, CRC(61a63d7a) SHA1(5cdebc03110252cc43d31b6f87f9a23556892977) )
+ ROM_LOAD( "vim4.bin", 0x40000, 0x20000, CRC(b0515768) SHA1(9907b52b4d30ce5324270a12c40250068adafca8) )
+ ROM_LOAD( "vim3.bin", 0x60000, 0x20000, CRC(0b539131) SHA1(07f3e3b9b28c8218e36668c24d16dbb6e9a66889) )
+
+ ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "vim1.bin", 0x00000, 0x80000, CRC(cdde26cd) SHA1(27893af4692ec7bcbaac9e790c0707c98df84e62) )
+ ROM_LOAD( "vim2.bin", 0x80000, 0x80000, CRC(1dbfc118) SHA1(4fd039a3172f73ad910349b2d360e8ae77ccddb2) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "tp019-09.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "tp019-10.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+ROM_START( vimana1 )
+ ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "vim07.bin", 0x000000, 0x20000, CRC(1efaea84) SHA1(f9c5d2365d8948fa66dbe61d355919db15843a28) )
+ ROM_LOAD16_BYTE( "vim08.bin", 0x000001, 0x20000, CRC(e45b7def) SHA1(6b92a91d64581954da8ecdbeb5fed79bcc9c5217) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound HD647180 code */
+ /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
+ ROM_LOAD( "hd647180.019", 0x00000, 0x08000, NO_DUMP )
+
+ ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "vim6.bin", 0x00000, 0x20000, CRC(2886878d) SHA1(f44933d87bbcd3bd58f46e0f0f89b05c409b713b) )
+ ROM_LOAD( "vim5.bin", 0x20000, 0x20000, CRC(61a63d7a) SHA1(5cdebc03110252cc43d31b6f87f9a23556892977) )
+ ROM_LOAD( "vim4.bin", 0x40000, 0x20000, CRC(b0515768) SHA1(9907b52b4d30ce5324270a12c40250068adafca8) )
+ ROM_LOAD( "vim3.bin", 0x60000, 0x20000, CRC(0b539131) SHA1(07f3e3b9b28c8218e36668c24d16dbb6e9a66889) )
+
+ ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "vim1.bin", 0x00000, 0x80000, CRC(cdde26cd) SHA1(27893af4692ec7bcbaac9e790c0707c98df84e62) )
+ ROM_LOAD( "vim2.bin", 0x80000, 0x80000, CRC(1dbfc118) SHA1(4fd039a3172f73ad910349b2d360e8ae77ccddb2) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "tp019-09.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "tp019-10.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+ROM_START( vimanan )
+ ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
+ ROM_LOAD16_BYTE( "tp019-07.rom", 0x000000, 0x20000, CRC(78888ff2) SHA1(7e1d248f806d585952eb35ceec6a7e63ae4e22f9) )
+ ROM_LOAD16_BYTE( "tp019-08.rom", 0x000001, 0x20000, CRC(6cd2dc3c) SHA1(029d974eb938c5e2fbe7575f0dda342b4b12b731) )
+
+ ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound HD647180 code */
+ /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
+ ROM_LOAD( "hd647180.019", 0x00000, 0x08000, NO_DUMP )
+
+ ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
+ ROM_LOAD( "vim6.bin", 0x00000, 0x20000, CRC(2886878d) SHA1(f44933d87bbcd3bd58f46e0f0f89b05c409b713b) )
+ ROM_LOAD( "vim5.bin", 0x20000, 0x20000, CRC(61a63d7a) SHA1(5cdebc03110252cc43d31b6f87f9a23556892977) )
+ ROM_LOAD( "vim4.bin", 0x40000, 0x20000, CRC(b0515768) SHA1(9907b52b4d30ce5324270a12c40250068adafca8) )
+ ROM_LOAD( "vim3.bin", 0x60000, 0x20000, CRC(0b539131) SHA1(07f3e3b9b28c8218e36668c24d16dbb6e9a66889) )
+
+ ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
+ ROM_LOAD( "vim1.bin", 0x00000, 0x80000, CRC(cdde26cd) SHA1(27893af4692ec7bcbaac9e790c0707c98df84e62) )
+ ROM_LOAD( "vim2.bin", 0x80000, 0x80000, CRC(1dbfc118) SHA1(4fd039a3172f73ad910349b2d360e8ae77ccddb2) )
+
+ ROM_REGION( 0x40, REGION_PROMS, 0 ) /* nibble bproms, lo/hi order to be determined */
+ ROM_LOAD( "tp019-09.bpr", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */
+ ROM_LOAD( "tp019-10.bpr", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) /* ??? */
+ROM_END
+
+
+static DRIVER_INIT( toaplan1 )
+{
+ toaplan1_driver_savestate();
+}
+
+static DRIVER_INIT( demonwld )
+{
+ toaplan1_driver_savestate();
+ demonwld_driver_savestate();
+}
+
+static DRIVER_INIT( vimana )
+{
+ toaplan1_driver_savestate();
+ vimana_driver_savestate();
+}
+
+
+
+GAME( 1988, rallybik, 0, rallybik, rallybik, toaplan1, ROT270, "[Toaplan] Taito Corporation", "Rally Bike / Dash Yarou", 0 )
+GAME( 1988, truxton, 0, truxton, truxton, toaplan1, ROT270, "[Toaplan] Taito Corporation", "Truxton / Tatsujin", 0 )
+GAME( 1989, hellfire, 0, hellfire, hellfire, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (2P Ver.)", 0 )
+GAME( 1989, hellfir1, hellfire, hellfire, hellfir1, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (1P Ver.)", 0 )
+GAME( 1989, hellfir2, hellfire, hellfire, hellfire, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (2P Ver., first edition)", 0 )
+GAME( 1989, zerowing, 0, zerowing, zerowing, toaplan1, ROT0, "Toaplan", "Zero Wing", 0 )
+GAME( 1990, demonwld, 0, demonwld, demonwld, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story", 0 )
+GAME( 1989, demonwl1, demonwld, demonwld, demonwl1, demonwld, ROT0, "Toaplan (Taito license)", "Demon's World / Horror Story (Taito license)", 0 )
+GAME( 1989, demonwl2, demonwld, demonwld, demonwl1, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (first edition)", 0 )
+GAME( 1990, fireshrk, 0, samesame, fireshrk, toaplan1, ROT270, "Toaplan", "Fire Shark", GAME_NO_SOUND )
+GAME( 1989, samesame, fireshrk, samesame, samesame, toaplan1, ROT270, "Toaplan", "Same! Same! Same!", GAME_NO_SOUND )
+GAME( 1989, samesam2, fireshrk, samesame, samesam2, toaplan1, ROT270, "Toaplan", "Same! Same! Same! (2P Ver.)", GAME_NO_SOUND )
+GAME( 1990, outzone, 0, outzone, outzone, toaplan1, ROT270, "Toaplan", "Out Zone (set 1)", 0 ) // later fixed version
+GAME( 1990, outzonea, outzone, outzone, outzone, toaplan1, ROT270, "Toaplan", "Out Zone (set 2)", 0 )
+GAME( 1990, outzoneb, outzone, outzone, outzoneb, toaplan1, ROT270, "Toaplan", "Out Zone (set 3, prototype?)", 0 ) // early revision at least
+GAME( 1990, outzonec, outzone, outzone, outzonec, toaplan1, ROT270, "Toaplan", "Out Zone (set 4)", 0 )
+GAME( 1991, vimana, 0, vimana, vimana, vimana, ROT270, "Toaplan", "Vimana", GAME_NO_SOUND )
+GAME( 1991, vimana1, vimana, vimana, vimana, vimana, ROT270, "Toaplan", "Vimana (old set)", GAME_NO_SOUND )
+GAME( 1991, vimanan, vimana, vimana, vimanan, vimana, ROT270, "Toaplan (Nova Apparate GMBH & Co license)", "Vimana (Nova Apparate GMBH & Co)", GAME_NO_SOUND )