summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/seta.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/seta.cpp')
-rw-r--r--src/mame/drivers/seta.cpp12206
1 files changed, 0 insertions, 12206 deletions
diff --git a/src/mame/drivers/seta.cpp b/src/mame/drivers/seta.cpp
deleted file mode 100644
index 0331f240dc2..00000000000
--- a/src/mame/drivers/seta.cpp
+++ /dev/null
@@ -1,12206 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Luca Elia
-/***************************************************************************
-
- -= Seta Hardware =-
-
- driver by Luca Elia (l.elia@tin.it)
-
-
-CPU : 68000 + [65C02] (only in the earlier games)
-Custom : X1-001A, X1-002A (SDIP64) Sprites
- X1-001
- X1-002
- X1-003 or X1-007 (SDIP42) Video blanking (feeds RGB DACs)
- X1-004 (SDIP52) Inputs
- X1-005
- X1-006 (SDIP64) Palette
- X1-010 (QFP80) Sound: 16 Bit PCM
- X1-011 (QFP80) Graphics mixing
- X1-012 (QFP100) Tilemaps
- X1-014 Sprites?
-
--------------------------------------------------------------------------------
-Ordered by Board Year + Game Licensed To
--------------------------------------------------------------------------------
-P0-029-A (M6100287A) 88 Thundercade / Twin Formation (1) Taito
-P0-034A (M6100326A) 88 Twin Eagle Taito
-P0-044B 88 Caliber 50 Taito / RomStar
-P0-045A (M6100429A) 89 DownTown Taito / RomStar
-P0-045A 89 Arbalester Taito / RomStar
-P0-046A (M6100430A) 89 U.S. Classic(2) Taito / RomStar
-P0-047A 89 The Roulette Visco
-P1-036-A + P0-045-A +
-P1-049A 89 Meta Fox Taito / RomStar
-P0-053-1 89 Castle of Dragon/Dragon Unit Taito / RomStar / Athena
-P0-053A 91 Strike Gunner S.T.G Athena / Tecmo
-P0-053A 92 Quiz Kokology Tecmo
-P0-055B 89 Wit's Athena
-P0-055D 90 Thunder & Lightning Romstar / Visco
-Promat PCB 94 Wiggie Waggie(5) --
-Promat PCB 94 Super Bar(5) --
-P0-058A 90 Jockey Club Visco
-P0-058C 98 International Toote (6) Coinmaster (bootleg)
-P0-063A 91 Rezon Allumer
-P0-068B (M6100723A) 92 Block Carnival Visco
-P0-072-2 (prototype) 92 Blandia (prototype) Allumer
-P0-077A (BP922) 92 Ultraman Club Banpresto
-P0-078A 92 Blandia (7) Allumer
-P0-079A 92 Zing Zing Zip Allumer / Tecmo
-P0-079A 94 Eight Forces Tecmo
-P0-080A (BP923) 92 SD Gundam Neo Battling (3) Banpresto
-? 93 Athena no Hatena? Athena
-? (93111A) 93 J.J.Squawkers Athena / Able
-? (93111A) 93 War Of Aero Yang Cheng
-P0-081A (BP933KA) 93 Mobile Suit Gundam Banpresto
-P0-083A (BP931) 93 Ultra Toukon Densetsu Banpresto / Tsuburaya Prod.
-P0-092A 93 Daioh Athena
-P0-072-2 (prototype) 93 Daioh(prototype) Athena
-? (93111A) 93 Daioh(conversion) Athena
-P0-096A (BP934KA) 93 Kamen Rider Banpresto
-P0-097A 93 Oishii Puzzle .. Sunsoft + Atlus
-bootleg 9? Triple Fun (4) bootleg (Comad?)
-P0-100A 93 Quiz Kokology 2 Tecmo
-P0-101-1 94 Pro Mahjong Kiwame Athena
-P0-102A 93 Mad Shark Allumer
-P0-107A (prototype?) 94 Orbs (prototype?) American Sammy
-P0-107A 93 Kero Kero Keroppi no Issyoni Asobou Sammy Industries [added Chack'n, Hau]
-P0-111A 94 Magical Speed Allumer
-P0-114A (SKB-001) 94 Krazy Bowl American Sammy
-P0-117A (DH-01) 95 Extreme Downhill Sammy Japan
-P0-117A? 95 Sokonuke Taisen Game Sammy Industries
-P0-120A (BP954KA) 95 Gundhara Banpresto
-P0-122A (SZR-001) 95 Zombie Raid American Sammy
-? 96 Crazy Fight Subsino
--------------------------------------------------------------------------------
-(1) YM2203 + YM3812 instead of X1-010
-(2) wrong colors
-(3) Same board as "Ultraman Club" despite the different PCB number
-(4) this is a bootleg of Oishii Puzzle, in english, is there an official
- version? the sound system has been replaced with an OKI M6295
- hardware is definitely bootleg. standard simple layout board with no
- custom chips and no manufacturer on the pcb.
-(5) The game code is based on Thunder and Lightning but the PCB is custom
- there are a few gfx emulation bugs (flipping of some border tiles and
- sprites not leaving the screen correctly) its possible the custom hw
- doesn't behave *exactly* the same as the original seta hw
-(6) To enter test mode press O (open door), then F2 (turn function key), then E (bet 3-4).
-(7) Bad tilemaps colors in demo mode are real game bug. Fade-in and fade-out "bad" colors are also right.
- Bad sprites priorities are real game bugs. The bad-looking colors in Jurane stage are right.
-
-Notes:
-- The NEC D4701 used by Caliber 50 is a mouse interface IC (uPD4701c).
- Of course it's used to control the spinners. U.S. Classic also uses one to control both trackballs.
-- DownTown receives the joystick rotation counts through a pair of JST13 connectors (CN1, CN2).
- On Meta Fox, these connectors are present but unused; they are not populated on Arbalester.
-- jjsquawk is modified from jjsquawko so nuts don't fall from the trees shaken by white animal.
-
-DIP Locations verified from manuals for:
-- Zing Zing Zip
-- Extreme Downhill
-- Kero Kero Keroppi's Let's Play Together
-
-TODO:
-- I think the best way to correctly align tilemaps and sprites and account for
- both flipping and different visible areas is to have a table with per game
- vertical and horizontal offsets for sprites, tilemaps and possibly the "floating
- tilemaps" (made of sprites) for both the flipped and normal screen cases.
- Current issues: metafox test grid not aligned when screen flipped, madshark & utoukond
- ("floating tilemaps" sprites when flipped)
- krzybowl not aligned vertically when screen flipped
- zombraid not aligned when flipped vertically or horizontally
-
-- bad sound in sokonuke?
-- in msgundam1, colors for the score display screw up after the second animation
- in attract mode. The end of the animation also has garbled sprites.
- Note that the animation is not present in msgundam.
-- Some games: battery backed portion of RAM (e.g. downtown, kiwame, zombraid)
-- the zombraid crosshair hack can go if the nvram regions are figured out.
-- Some games: programmable timer that generates IRQ. See e.g. gundhara:
- lev 4 is triggered by writes at d00000-6 and drives the sound.
- See also msgundam.
-
-- tndrcade: lots of flickering sprites
-- drgnunit sprite/bg unaligned when screen flipped (check I/O test in service mode)
-- extdwnhl has some wrong colored tiles in one of the attract mode images and in
- later tracks.
-- oisipuzl doesn't support screen flip? tilemap flipping is also kludged in the video driver.
-- eightfrc has alignment problems both flipped and not
-- flip screen and mirror support not working correctly in zombraid
-- gundhara visible area might be smaller (zombraid uses the same MachineDriver, and
- the current area is right for it)
-- crazyfgt: emulate protection & tickets, fix graphics glitches, find correct clocks,
- level 2 interrupt should probably be triggered by the 3812 but sound tends to die that way.
-- jjsquawk: Player's shot sound is missing (not requested to X1-010?).
- Many sounds are wrong since MAME 0.62.
- i.e.
- all scene: when you beat enemies or yellow walking eggs
- stage 1: weasels throw eggs, white animals (shaking trees) are damaged, rabbit jump
- stage 2: when BOX-MEN gets angry
-- games using 6bpp gfx switch tilemaps color mode. Only blandia uses both, while the other ones use only mode 1, thus mode 0 is untested for them
-
-***************************************************************************/
-
-/***************************************************************************
-
-Thundercade / Twin Formation
-Taito America Corp./Romstar USA/Seta, 1987
-
-PCB Layout
----------
-M6100287A
-P0-029-A
-|------------------------------------------------------------------|
-|M L K J H G F E D C B A1|
-|A UA0-4 UA0-3 4364 UA0-2 UA0-1 4364 16MHz |
-| X1-001 X1-002 2|
-| 68000 |
-| |
-| 3|
-| |
-| |
-| 4364 4364 UA0-9 UA0-8 UA0-7 UA0-6 4|
-| |
-| |
-| 5|
-| 4584 |
-| |
-| RESET_SW UA0-13 UA0-12 UA0-11 UA0-10 6|
-| 4050 TL7705 |
-| |
-| 7|
-| X0-006 |
-| |
-| SW1 8|
-| UA10-5 2016 YM3812 YM2203 |
-| YM3014 SW2 X1-006 9|
-|VOL 4558 YM3014 M54528 X1-004 |
-| 10|
-| X2-003 X2-003 X2-003 X1-003 |
-| 11|
-| |--| JAMMA |--| |
-|------------| |----------------------------------| |------------|
-Notes:
- 68000 - clock 8.000MHz [16/2]
- YM3812 - clock 4.000MHz [16/4]
- YM2203 - clock 4.000MHz [16/4]
- 4364 - 8kx8 SRAM
- 2016 - 2kx8 SRAM
- VSync - 59.1845Hz
- HSync - 15.21kHz
-
- Custom Chips -
- X1-001 (SDIP64)
- X1-002 (SDIP64)
- X1-006 (SDIP64)
- X0-006 (SDIP64), also marked 'RP5A10-0001'. This is a 65C02 in disguise,
- possibly with additional ROM or logic acting as a protection chip.
- clocks - pin1 16MHz, pin2 2MHz, pin3 59.1845Hz [VSYNC),
- pin63 2MHz, pin62 2MHz
- X1-003 (SDIP42)
- X1-004 (SDIP52)
- X2-003 (DIP16) - Resistor network IC for inputs
-
- ROMs -
- UA0-6 to AU0-13 DIP42 maskROM, read as MX27C2100 (2 Meg)
- UA0-2 DIP32 27C1000 EPROM
- All other ROMs DIP32 read as 27C1000
- All ROMs have IC locations, but the PCB also has IC locations so components
- can be referenced with IC# or location. See above diagram for info.
-
-***************************************************************************/
-
-/***************************************************************************
-
- Twin Eagle
-
-M6100326A Taito (Seta)
-
-ua2-4 68000
-ua2-3
-ua2-6
-ua2-5
-ua2-8
-ua2-10
-ua2-7 ua2-1
-ua2-9
-ua2-12
-ua2-11 ua2-2
-
-***************************************************************************/
-
-/***************************************************************************
-
- U.S. Classic
-
-M6100430A (Taito 1989)
-
- u7 119 u6 118 u5 117 u4 116
- 68000-8
-u13 120 000
-u19 121 001
-u21 122 002
-u29 123 003
-u33 124
-u40 125
-u44 126
-u51 127
-u58 128
-u60 129 65c02
-u68 130
-u75 131 u61 004
-
- u83 132
-
-***************************************************************************/
-/***************************************************************************
-
- Caliber 50
-
-CPU: TMP 68000N-8, 65C02
-Other: NEC D4701
-
-UH-001-006 SW2 SW1
-UH-001-007
-UH-001-008 8464 68000-8
-UH-001-009 X1-002A X1-001A 8464 Uh-002-001=T01
-UH-001-010 8464 51832
-UH-001-011 8464 51832
- UH-001-002
-UH-001-012 X1-012 UH-001-003
-UH-001-013 UH-002-004-T02
- X1-011 5116-10
- BAT
- 16MHz
- X1-010 65C02 X1-006
- UH-001-005 X1-007
- 4701 X1-004
-
-***************************************************************************/
-/***************************************************************************
-
- Meta Fox
-
-(Seta 1990)
-
-P0-045A
-
-P1-006-163 8464 68000-8
-P1-007-164 X1-002A X1-001A 8464
-P1-008-165 8464
-P1-009-166 8464 256K-12
- 256K-12
-
- X1-012
- X1-011
-
-
- 2063 X1-010 X1-006 X0-006
- X1-007
- X1-004 X1-004
-
-----------------------
-P1-036-A
-
-UP-001-010
-UP-001-011
-UP-001-012
-UP-001-013
-
-
-UP-001-014
-UP-001-015
-
------------------------
-P1-049-A
-
- UP-001-001
- UP-001-002
- P1-003-161
- P1-004-162
-
-
- UP-001-005
- x
-
-***************************************************************************/
-
-
-/***************************************************************************
-
- Dragon Unit
- [Prototype of "Castle Of Dragon"]
-
-PCB: P0-053-1
-CPU: 68000-8
-Sound: X1-010
-OSC: 16.0000MHz
-
-Chips: X1-001A, X1-002A, X1-004, X1-006, X1-007, X1-010, X1-011, X1-012
-
-***************************************************************************/
-/***************************************************************************
-
- Wit's
-
-(c)1989 Athena (distributed by Visco)
-P0-055B (board is made by Seta)
-
-CPU : TMP68000N-8
-Sound: X1-010
-OSC : 16.000MHz
-
-ROMs:
-UN001001.U1 - Main program (27256)
-UN001002.U4 - Main program (27256)
-
-UN001003.10A - Samples (28pin mask)
-UN001004.12A /
-
-UN001005.2L - Graphics (28pin mask)
-UN001006.4L |
-UN001007.5L |
-UN001008.7L /
-
-Custom chips: X1-001A X1-002A
- X1-004 (x2)
- X1-006
- X1-007
- X1-010
-
-***************************************************************************/
-/***************************************************************************
-
- Thunder & Lightning
-
-Location Device File ID Checksum
------------------------------------------------
-U1 1A 27C256 M4 C18C [ MAIN PROG ] [ EVEN ]
-U4 3A 27C256 M5 12E1 [ MAIN PROG ] [ ODD ]
-U29 10A 23C4001 R27 37F2 [ HIGH ]
-U39 12A 23C4001 R28 0070 [ LOW ]
-U6 2K 23C1000 T14 1F7D [ C40 ]
-U9 4K 23C1000 T15 7A15 [ C30 ]
-U14 5K 23C1000 T16 BFFD [ C20 ]
-U20 7K 23C1000 T17 7AE7 [ C10 ]
-
-PCB: PO055D
-
-CPU: 68000 8MHz
-
-Custom: X1-001A X1-002A
- X1-004
- X1-006
- X1-007
- X1-010
-
-***************************************************************************/
-
-
-
-/***************************************************************************
-
- Athena no Hatena?
-
-CPU : 68000-16
-Sound: X1-010
-OSC : 16.0000MHz
-
-ROMs:
-fs001001.evn - Main programs (27c4001)
-fs001002.odd /
-
-fs001004.pcm - Samples (8M mask - read as 27c800)
-fs001003.gfx - Graphics (16M mask - read as 27c160)
-
-Chips: X1-001A X1-002A
- X1-004
- X1-006
- X1-007
- X1-010
-
-***************************************************************************/
-
-/***************************************************************************
-
- Blandia
-
-Blandia by Allumer
-
-This set is coming from an original Blandia PCB ref : P0-078A
-
-As usually, it use a lot of customs allumer chips !
-
-***************************************************************************/
-/***************************************************************************
-
- Blandia (prototype)
-
-PCB: P0-072-2
-CPU: 68000-16
-Sound: X1-010
-OSC: 16.0000MHz
-
-Chips: X1-001A X1-002A
- X1-004
- X1-007
- X1-010
- X1-011 x2 X1-012 x2
-
-***************************************************************************/
-
-/***************************************************************************
-
- Block Carnival / Thunder & Lightning 2
-
-P0-068B, M6100723A
-
-CPU : MC68000B8
-Sound: X1-010
-OSC : 16.000MHz
-
-ROMs:
-u1.a1 - Main programs (27c010)
-u4.a3 /
-
-bl-chr-0.j3 - Graphics (4M mask)
-bl-chr-1.l3 /
-
-bl-snd-0.a13 - Sound (4M mask)
-
-Custom chips: X1-001A X1-002A
- X1-004
- X1-006
- X1-007
- X1-009
- X1-010
-
-Other:
-Lithium battery x1
-
-***************************************************************************/
-
-
-
-
-/***************************************************************************
-
- Daioh
-
-DAIOH
-Allumer 1993, Sammy license
-P0-092A
-
-
-FG-001-003
-FG-001-004 X1-002A X1-001A FG-001-001
- FG-001-002
-FG-001-005 X1-11 X1-12
-FG-001-006 X1-11 X1-12
- 68000-16
-FG-001-007
-
- X1-10 16MHz
-
- X1-007 X1-004
-
-***************************************************************************/
-
-
-/***************************************************************************
-
- Eight Forces
-
-P0-079A (Same board as ZingZingZip)
-
-CPU : MC68000B16
-Sound: X1-010
-OSC : 16.000MHz
-
-ROMs:
-uy2-u4.u3 - Main program (even)(27c2001)
-uy2-u3.u4 - Main program (odd) (27c2001)
-
-u63.bin - Sprites (HN62434, read as 27c4200)
-u64.bin /
-
-u69.bin - Samples (HN62318, read as 27c8001)
-u70.bin /
-
-u66.bin - Layer 1 (HN62418, read as 27c800)
-u68.bin - Layer 2 (HN62418, read as 27c800)
-
-PALs (not dumped):
-uy-012.206 (PAL16L8A)
-uy-013.14 (PAL16L8A)
-uy-014.35 (PAL16L8A)
-uy-015.36 (PALCE16V8)
-uy-016.76 (PAL16L8A)
-uy-017.116 (PAL16L8A)
-
-Custom: X1-001A X1-002A
- X1-004
- X1-007
- X1-010
- X1-011 (x2) X1-012 (x2)
-
-***************************************************************************/
-
-/***************************************************************************
-
- Extreme Downhill
-
-(c)1995 Sammy
-DH-01
-P0-117A (board is made by Seta/Allumer)
-
-CPU : MC68HC000B16
-Sound: X1-010
-OSC: 16.0000MHz (X1), 14.3180MHz (X2)
-
-ROMs:
-fw001002.201 - Main program (even) (Macronics 27c4000)
-fw001001.200 - Main program (odd) (Macronics 27c4000)
-
-fw001005.205 - (32pin mask, read as 27c8001)
-fw001007.026 /
-
-fw001003.202 - (42pin mask, read as 27c160)
-fw001004.206 |
-fw001006.152 /
-
-PALs (16L8ACN, not dumped):
-FW-001
-FW-002
-FW-003
-FW-005
-
-Custom chips: X1-001A X1-002A
- X1-004
- X1-007
- X1-010
- X1-011 (x2) X1-012 (x2)
-
-***************************************************************************/
-
-
-/***************************************************************************
-
- GundHara
-
-(C) 1995 Banpresto
-Seta/Allumer Hardware
-
-PCB: BP954KA
-PCB: P0-120A
-CPU: TMP68HC000N16 (68000, 64 pin DIP)
-SND: ?
-OSC: 16.000MHz
-RAM: 6264 x 8, 62256 x 4
-DIPS: 2 x 8 position
-Other Chips: PALs x 6 (not dumped)
- NEC 71054C
- X1-004
- X1-007
- X1-010
- X1-011 x2 X1-012 x2
- X1-001A X1-002A
-
-On PCB near JAMMA connector is a small push button to reset the PCB.
-
-ROMS:
-BPGH-001.102 27C040
-BPGH-002.103 27C4000
-BPGH-003.U3 27C4000
-BPGH-004.U4 23C4000
-BPGH-005.200 23C16000
-BPGH-006.201 23C16000
-BPGH-007.U63 23C16000
-BPGH-008.U64 23C16000
-BPGH-009.U65 27C4000
-BPGH-010.U66 TC538200
-BPGH-011.U67 TC538000
-BPGH-012.U68 TC5316200
-BPGH-013.U70 TC538000
-
-***************************************************************************/
-
-/***************************************************************************
-
-Zombie Raid
-Sammy, 1996
-
-This is a gun shooting game using Seta/Allumer hardware.
-
-PCB Layout
-----------
-
-SZR-001
-P0-122A
-------------------------------------------------------------------
- FY001012.12L* FY001009.U67 FY001007.U65
- FY001011.13L* FY001010.U68 FY001008.U66 FY001006.U200
- X1-010 6264
-
- CONN1 X1-011(x2) X1-002A
- ADC0834 X1-012(x2) X1-001A
-
- 3V_BATT
- 4464
-
-X1-007 6264(x2) 6264(x2) 6264(x2) 6264(x2)
-
- 16.000MHz HM9253101(x2)
-
-X1-004 DSW2 D71054C
- DSW1 TMP68HC000N-16 FY001004.U4 FY001001.U102
- FY001003.U3 FY001002.U103
-------------------------------------------------------------------
-
-Notes:
-* = These ROMs located on a small daughterboard. Main PCB locations used as filename extension.
-CONN1 = 8 pin header for gun connection
-
-***************************************************************************/
-
-
-/***************************************************************************
-
- J.J. Squawkers
-
-68HC000N -16N
-
-2) Allumer X1-012
-2) Allumer X1-011
-2) Allumer X1-014
-
-X1-010
-X1-007
-X1-004
-16.000MHz
-
-NEC 71054C ----???
-
-***************************************************************************/
-
-/***************************************************************************
-
- Kamen Rider
-Kamen Riderclub Battleracer
-Banpresto, 1993
-
-Runs on Seta/Allumer hardware
-
-PCB No: BP934KA P0-096A
-CPU : MC68HC000B16
-OSC : 16.000MHz
-RAM : LH5160D-10L (x9), CXK58257AP-10L (x2)
-DIPSW : 8 position (x2)
-CUSTOM: X1-010
- X1-007
- X1-004
- X1-011 (x2)
- X1-012 (x2)
- X1-002A
- X1-001A
-OTHER : NEC71054C, some PALs
-
-ROMs :
- FJ001007.152 27c4096 near X1-011 & X1-010 (sound program?)
- FJ001008.26 8M Mask connected to X1-010, near FJ001007
- FJ001003.25 27c4096 main program for 68k
- FJ001006.22 16M Mask gfx
- FJ001005.21 16M Mask gfx
-
-***************************************************************************/
-
-/***************************************************************************
-
- Krazy Bowl
-
-PCB: SKB-001
- P0-114A
-
-FV FV 2465
-001 001 2465 X1-005
-004 003 X1-002A X1-001A
- 58257 FV
- 001
- 002 (even)
- 58257
- 14.318MHz FV
- 001
-FV 001 005 001 (odd)
-FV 001 006
- 2465 68HC000B16
- NEC4701 NEC4701
-
-X1-010 X1-006
- X1-007 X1-004
-
-***************************************************************************/
-
-/***************************************************************************
-
-
- Mad Shark
-
-Allumer, 1993
-This game is a vertical shoot'em-up and runs on fairly standard Allumer hardware.
-
-PCB Layout
-----------
-
-P0-102A
-----------------------------------------------------
-| X1-010 FQ001007 FQ001006 FQ001005 FQ001004 |
-| LH5160 |
-| X1-011 X1-011 X1-002A |
-| |
-|J X1-012 X1-012 X1-001A |
-|A X1-007 |
-|M LH5160 LH5160 LH5160 LH5160 |
-|M |
-|A LH5160 LH5160 LH5160 LH5160 |
-| FQ001002 |
-|* MC68HC000B16 |
-| X1-004 |
-| FQ001001 |
-| LH52250 |
-| DSW2(8) DSW1(8) 16MHz LH52250 D71054 |
-----------------------------------------------------
-
-Notes:
- *: 4 jumper pads for region selection (hardwired)
-
-***************************************************************************/
-
-/***************************************************************************
- Magical Speed
-
-(c)1994 Allumer
-
-PCB P0-111A:
-+--------------------------------------------------+
-| VR1 X1-010 FU001007 FU001006 FU001005 FU001004 |
-| W2465K |
-| CN3 X1-011 X1-011 X1-002A |
-| CN1 |
-|J CN2 X1-012 X1-012 X1-001A |
-|A X1-007 |
-|M W2465K U54 U50 W2465K W2465K W2465K U53 |
-|M |
-|A W2465K U51 W2465K W2465K W2465K |
-| FU001002 |
-|* MC68HC000B16 |
-| X1-004 |
-| FU001001 |
-| CXK58257 |
-| SW1 RST1 DSW2 DSW1 16MHz CXK58257 D71054 U52 |
-+--------------------------------------------------+
-
-CPU : MC68HC000B16
-OSC : 16.000MHz
-RAM : WinBond W2465K-70LL (x9), SONY CXK58257AP-10L (x2)
-DIPSW : 8 position (x2)
-CUSTOM: X1-010 Sound
- X1-004 Input
- X1-007 Video DAC
- X1-011 (x2) Tilemap
- X1-012 (x2) Tilemap
- X1-002A Sprites
- X1-001A Sprites
-
-OTHER : NEC71054C
-
-VR1 : Sound adjust pot
-SW1 : Service switch
-RST1 : Reset
-
-CN1 : 7-Pin header to drive lights underneath buttons to show what cards are available to play
-CN2 : 8-Pin header to drive lights underneath buttons to show what cards are available to play
-CN3 : 5-Pin header connected to auxiliary PCB to drive lights about the cabinet
-
-PAL :FU-011 @ U50
- FU-012 @ U51
- FU-013 @ U52
- FU-014 @ u53
- FU-015 @ U54
-
-***************************************************************************/
-
-/***************************************************************************
-
- Mobile Suit Gundam
-
-Banpresto 1993
-P0-081A
- SW2 SW1
-
-FA-001-008 FA-001-001
-FA-001-007 X1-002A X1-001A FA-002-002
- 5160
- 5160
- 71054
-FA-001-006 5160 62256
-FA-001-005 X1-011 X1-012 5160 62256
-
-FA-001-004 X1-011 X1-012 5160
-5160 5160
-
- 68000-16
-
- 16MHz
- X1-010
- X1-007 X1-004 X1-005
-
-***************************************************************************/
-
-/***************************************************************************
-
- Oishii Puzzle Ha Irimasenka
-
-PCB : P0-097A
-CPU : 68000
-Sound: X1-010
-OSC : 14.31818MHz
-
-All ROMs are 23c4000
-
-Custom chips: X1-001A X1-002A
- X1-004
- X1-007
- X1-010
- X1-011 (x2) X1-012 (x2)
-
-***************************************************************************/
-
-/***************************************************************************
-
- Triple Fun
-
-Triple Fun
-??, 19??
-
-
-CPU : TMP68HC000P-16 (68000)
-SOUND : OKI M6295
-DIPSW : 8 position (x2)
-XTAL : 16.000 MHz (8MHz written on PCB, located near OKI chip)
- 14.31818MHz (near 68000)
-RAM : 62256 (x2), 6264 (x8), 2018 (x14)
-PROMs : None
-PALs : PALCE16V8H (x13)
-OTHER : TPC1020AFN-084C (84 pin PLCC)
-
-ROMs :
-
-04.bin + 05.bin Main Program
-01.bin Sound Program
-02.bin + 03.bin OKI Samples
-06.bin to 11.bin GFX
-
-
-
-***************************************************************************/
-
-/***************************************************************************
-
- Pro Mahjong Kiwame
-
-PCB : P0-101-1 (the board is made by Allumer/Seta)
-CPU : TMP68301AF-16 (68000 core)
-Sound: X1-010
-OSC : 20.0000MHz
-
-ROMs:
-fp001001.bin - Main program (27c2001, even)
-fp001002.bin - Main program (27c2001, odd)
-fp001003.bin - Graphics (23c4000)
-fp001005.bin - Samples (27c4000, high)
-fp001006.bin - Samples (27c4000, low)
-
-Chips: X1-001A
- X1-002A
- X1-004
- X1-006
- X1-007
- X1-010
-
-- To initialize high scores, power-on holding start button in service mode
-
-***************************************************************************/
-
-
-/***************************************************************************
-
- Quiz Kokology
-
-(c)1992 Tecmo
-
-P0-053A
-
-CPU : MC68000B8
-Sound: X1-010
-OSC : 16.000MHz
-
-Custom chips: X1-001A X1-002A
- X1-004
- X1-006 X1-007
- X1-010
- X1-011 X1-012
-
-***************************************************************************/
-
-
-/***************************************************************************
-
- Quiz Koko-logy 2
-
-(c)1992 Tecmo
-
-P0-100A
-
-CPU : MC68HC000B16
-Sound: X1-010
-OSC : 16.000MHz
-
-FN001001.106 - Main program (27C4096)
-FN001003.107 / (40pin 2M mask)
-
-FN001004.100 - OBJ chr. (42pin mask)
-FN001005.104 - BG chr. (42pin mask)
-FN001006.105 - Samples (32pin mask)
-
-Custom chips: X1-001A X1-002A
- X1-004
- X1-006
- X1-007
- X1-010
- X1-011 X1-012
-
-***************************************************************************/
-
-
-/***************************************************************************
-
- Rezon (Japan)
-
-PCB : P0-063A
-CPU : TOSHIBA TMP68HC000N-16
-Sound : X1-010
-OSC : 16.000MHz
-Other : Allumer
- X1-001A X1-002A
- X1-004
- X1-007
- X1-011 x 2 X1-012 x 2
-
-***************************************************************************/
-
-
-/***************************************************************************
-
- SD Gundam Neo Battling
-
-Banpresto, 1992
-This game runs on Seta/Allumer hardware
-
-PCB Layout
-----------
-
-P0-080A
-BP923
-|----------------------------------------------
-|DSW1 DSW2 LH5168 62256 |
-| LH5168 62256 |
-|LH5168 |
-| |
-| BP923004 BP923001 |
-|BP923005 BP923003 X1-002A X1-001A BP923002 |
-| 16MHz |
-| TMP68HC000N-16 |
-|X1-010 PAL |
-| PAL X1-006 |
-| |
-| |
-| X1-004 X1-007 |
-| |
-| |
-| |
-| |
-| J A M M A |
------------------------------------------------
-
-Notes:
- 68k clock: 16.000MHz
- VSync: 58Hz
- HSync: 15.22kHz
-
-
-***************************************************************************/
-
-
-/***************************************************************************
-
- Sokonuke Taisen Game (Japan)
-
-(c)1995 Sammy
-
-CPU: 68HC000
-Sound: All PCM ?
-OSC: 16MHz
-
-***************************************************************************/
-
-
-/***************************************************************************
-
- Strike Gunner
-
-(c)1991 Athena (distributed by Tecmo)
-
-P0-053A
-
-CPU : TMP68000N-8
-Sound: X1-010
-OSC : 16.000MHz
-
-Custom chips: X1-001A X1-002A
- X1-004
- X1-006 X1-007
- X1-010
- X1-011 X1-012
-
-***************************************************************************/
-
-/***************************************************************************
-
- Ultraman Club
-
-Banpresto, 1992
-Board looks similar to Castle of Dragon PCB.
-
-PCB No: P0-077A (Seta Number)
- BP922 (Banpresto Number)
-
-CPU: MC68HC000B16
-OSC: 16.000MHz
-DIP SW x 2 (8 position)
-
-RAM: Sharp LH5160D-10L x 3, Hitachi S256KLP-12 x 2
-PALs (2 x PAL16L8, not dumped)
-SETA Chips: X1-010
- X1-004
- X1-007
- X1-006
- X1-002A
- X1-001A
-
-Controls are 8 way Joystick and 2 buttons.
-
-ROMs:
-
-UW001006.U48 27C010 \ Main Program
-UW001007.U49 27C010 /
-
-BP-U-001.U1 4M mask (40 pin, 512k x 8), read as MX27C4100 \ GFX
-BP-U-002.U2 4M mask (40 pin, 512k x 8), read as MX27C4100 /
-
-BP-U-003.U13 8M mask (32 pin, 1M x 8), read as MX27C8000 Sound
-
-
-***************************************************************************/
-
-/***************************************************************************
-Ultra Toukon Densetsu
-Banpresto, 1993
-
-This game runs on fairly standard Allumer hardware.
-
-PCB Layout
-----------
-
-P0-083A
-BP931
-----------------------------------------------------
-| X1-010 93UTA08 93UTA06 93UTA04 93UTA02 |
-| 93UTA07 93UTA05 93UTA03 93UTA01 |
-| YM3438 LH5116 |
-| LH5116 X1-011 X1-011 X1-002A |
-| Z80 93UTA009 |
-|J X1-012 X1-012 X1-001A |
-|A X1-007 |
-|M LH5116 LH5160 LH5160 LH5160 |
-|M |
-|A LH5116 LH5160 LH5160 LH5160 |
-| |
-|* 16MHz |
-| X1-004 62256 |
-| 62256 |
-| DSW1(8) 93UTA011 93UTA010 |
-| DSW2(8) 68HC000N-16 |
-----------------------------------------------------
-
-Notes:
- *: 4 jumper pads for region selection (hardwired)
- Z80 clock = 4.000MHz
- VSync: 60Hz
- HSync: 15.21kHz
-
-
-1.048.576 93uta03.63
-1.048.576 93uta04.64
-1.048.576 93uta05.66
-1.048.576 93uta06.67
-1.048.576 93uta07.68
-1.048.576 93uta08.69
-
-***************************************************************************/
-
-/***************************************************************************
-
- War of Aero
- Project M E I O U
-
-93111A YANG CHENG
-
-CPU : TOSHIBA TMP68HC000N-16
-Sound : Allumer X1-010
-OSC : 16.000000MHz
-Other : Allumer
- X1-001A X1-002A
- X1-004
- X1-007
- X1-011 x 2
- X1-012 x 2
- NEC
- C324C
- D71054C
-
-***************************************************************************/
-
-
-
-/***************************************************************************
-
- Zing Zing Zip
-
-P0-079A
-
-UY-001-005 X1-002A X1-001A 5168-10 256k-12
-UY-001-006 5168-10 UY-001-001
-UY-001-007 UY-001-002
-UY-001-008 X1-011 X1-012 58257-12
- 5168-10
-UY-001-010 X1-011 X1-012 5168-10
-UY-001-017
-UY-001-018
- 5168-10
-X1-010 5168-10 68000-16
-
-
- 8464-80
- 8464-80 16MHz
-
-
- X1-007 X1-004
-
-***************************************************************************
-
-
-Pairs Love
-Allumer, 199x
-
-PCB Layout
-----------
-
-P0-068B
-|-----------------------------------------|
-| X1-007 X1-006 UT2-001-005|
-| |
-| 4050 UT2-001-004|
-| |
-| |
-| X1-002A |
-| |
-|J |
-|A X1-004 |
-|M X1-001A |
-|M DSW1 |
-|A |
-| DSW2 6264 |
-| 6264 |
-| X1-009 |
-| 62256 |
-| |
-| 68000 |
-| UT2-001-003 62256 UT2-001-002 |
-| 6264 |
-| X1-010 16MHz UT2-001-001 |
-|-----------------------------------------|
-Notes:
- 68000 clock: 8.000MHz
- VSync: 60Hz
-
-
-***************************************************************************
-
-Rezon (Taito License)
-Allumer / Taito, 1992
-
-This game runs on fairly standard Allumer hardware.
-
-PCB Layout
-----------
-
-P0-063A (Allumer code printed on the PCB)
-M6100627A REZON (Taito sticker)
-|-----------------------------------------------------------|
-| VOL 3404 6264 US001009 US001007 US001005 |
-| MB3730 US001008 US001006 |
-| |
-| |
-| |
-| PAL4 X1-010 X1-011 X1-011 |
-| |
-| |
-|J |
-|A X1-012 X1-012 |
-|M |
-|M X1-007 |
-|A |
-| 6116 6116 PAL2 PAL3 |
-| |
-| 62256 62256 |
-| 16MHZ 62256 62256 6264 6264 |
-| DSW2(8) |
-| X1-004 PAL1 |
-| DSW1(8) |------------|US001004 REZON_1_P |
-| | 68000 | US001003 REZON_0_P |
-| RESET_SW |------------| 62256 62256|
-|-----------------------------------------------------------|
-Notes:
- 68000 clock - 16.000MHz
- X1-010 clocks - pin1 16.000MHz, pin2 8.000MHz, pin79 4.000MHz, pin80 2.000MHz
- VSync - 57.5Hz
- PAL1 - PAL16L8 labelled 'US-010'
- PAL2 - PAL16L8 labelled 'US-011'
- PAL3 - PAL16L8 labelled 'US-012'
- PAL4 - PAL16L8 labelled 'US-013'
- 62256 - 32K x8 SRAM
- 6264 - 8K x8 SRAM
- 6116 - 2K x8 SRAM
-
- Custom IC's -
- X1-001A (SDIP64) \ Sprite Generators
- X1-002A (SDIP64) /
- X1-004 (SDIP52) Input Related Functions (connected to joystick/input controls)
- X1-007 (SDIP42) Video DAC? (connected to RGB output)
- X1-010 (QFP80) Sound Chip, 16Bit PCM
- X1-011 (x2, QFP100)\ Tilemap Generators
- X1-012 (x2, QFP100)/
-
- ROMs -
- Filename Type Use
- ---------------------------------------------------
- REZON_0_P.U3 27C1000 (DIP32) \
- REZON_1_P.U4 27C1000 (DIP32) | 68000 Program
- US001003.U102 27C1000 (DIP32) |
- US001004.U103 27C1000 (DIP32) /
-
- US001005.U63 4M MaskROM (DIP42) \ Sprites
- US001006.U64 4M MaskROM (DIP42) /
-
- US001007.U66 4M MaskROM (DIP42) \ Tiles
- US001008.U68 4M MaskROM (DIP42) /
-
- US001009.U70 4M MaskROM (DIP32) PCM Samples
-
-***************************************************************************/
-
-/***************************************************************************
-
-Crazy Fight
-Subsino 1996
-Readme by Guru
-This game runs on Allumer-based hardware.
-It is a whack-a-mole type game using 6 buttons.
-
-PCB Layout
-----------
-
-186P010
-|--------------------------------------------------------------------|
-| VOLUME 68000 ROM_U68 |
-|TDA1519 LM358 LM324 |
-| YM3014 ROM_U3 ROM_U67 |
-| YM3812 |
-|4.43361875MHz 62256 X1-011 X1-012 |
-| PLSI1032 |
-| M6295 ROM_U4 |
-| ROM_U66 |
-| 62256 |
-| ROM_U85 ROM_U65 |
-|J 16MHz |
-|A X1-011 X1-012 |
-|M |
-|M X1-007 PAL |
-|A 6164 X1-001A |
-| 6164 |
-| |
-| 6164 6164 X1-002A |
-| DSW2(8) DSW1(8) |
-| TD62003 PAL ROM_U228 ROM_U226 |
-| J2 DIP42 PAL ROM_U227 ROM_U225|
-|--------------------------------------------------------------------|
-Notes:
- 68000 clock - 16.00MHz (DIP64)
- YM3812 clock - 4.000MHz [16/4] (DIP24)
- M6295 clock - 1.108404688 [4.43361875/4]. Pin 7 HIGH (QFP44)
- PLSI1032 - Lattice pLSI1032-80LJ Programmable Logic Device (PLCC84)
- 6164 - 8kx8 SRAM (SDIP28)
- 62256 - 32kx8 SRAM (SDIP28)
- TD62003 - Toshiba TD62003 7-Channel Darlington Sink Driver (DIP16)
- DIP42 - Unknown DIP42 IC. Note several pins have no connection.
- Pins 6-26 tied to inputs on JAMMA connector.
- Some other pins tied to logic.
- No pins have a clock so this chip is not a MCU.
- J2 - 4 pin connector. Pin 2 tied to DIP42 IC pin 27
- and pin 3 tied to TD62003 pin 16
- Custom Chips - X1-007
- X1-001A
- X1-002A
- X1-011 (2)
- X1-012 (2)
- HSync - 15.1433kHz
- VSync - 59.1851Hz
-
-***************************************************************************/
-
-/***************************************************************************
- International Toote
-
-Main PCB (P0-058C):
-
- TOSHIBA TMP68HC000N-16
- X1-010
- X1-001A
- X1-002A
- X1-004 (x2)
- X1-007
- X1-011
- X1-012
- HD63B50P (ACIA)
-
-Horse Race I/O Expansion (PCB-HRE-000):
-
- MAX238CNG (RS-232)
- DIP24 (glue on markings?)
- MC68B50CP (x2, ACIA)
- EF68B21P (x2, PIA)
- ULN2803A (x2, Darlington Transistor Array)
- 4116R-001-151 (x2, Resistor Network)
- 2.45760 MHz Osc.
-
-Note: on screen copyright is (c)1998 Coinmaster.
- The I/O board has (c)1993 Coinmaster.
-
-***************************************************************************/
-
-#include "emu.h"
-#include "includes/seta.h"
-
-#include "cpu/m6502/m65c02.h"
-#include "cpu/m68000/m68000.h"
-#include "cpu/z80/z80.h"
-#include "machine/6821pia.h"
-#include "machine/6850acia.h"
-#include "machine/msm6242.h"
-#include "machine/nvram.h"
-#include "machine/pit8253.h"
-#include "machine/watchdog.h"
-#include "sound/2203intf.h"
-#include "sound/2612intf.h"
-#include "sound/3812intf.h"
-#include "sound/okim6295.h"
-#include "sound/ym2151.h"
-
-#include "diserial.h"
-#include "screen.h"
-#include "speaker.h"
-
-#include "inttoote.lh"
-#include "jockeyc.lh"
-#include "setaroul.lh"
-
-#include <algorithm>
-
-#define USE_uPD71054_TIMER 1
-
-#if USE_uPD71054_TIMER
-// this mess should be replaced with pit8254, see madshark
-
-#define USED_TIMER_NUM 1
-/*------------------------------
- timer(uPD71054) struct
-------------------------------*/
-/*------------------------------
- update timer
-------------------------------*/
-void seta_state::uPD71054_update_timer(device_t *cpu, int no)
-{
- uPD71054_state *uPD71054 = &m_uPD71054;
- u16 max = uPD71054->max[no] & 0xffff;
-
- if (max != 0)
- {
- attotime period = attotime::from_hz(m_maincpu->unscaled_clock()) * (16 * max);
- uPD71054->timer[no]->adjust( period, no );
- }
- else
- {
- uPD71054->timer[no]->adjust( attotime::never, no);
- logerror( "%s: uPD71054 error, timer %d duration is 0\n",
- machine().describe_context(), no );
- }
-}
-
-
-/*------------------------------
- callback
-------------------------------*/
-TIMER_CALLBACK_MEMBER(seta_state::uPD71054_timer_callback)
-{
- m_maincpu->set_input_line(4, HOLD_LINE );
- uPD71054_update_timer( nullptr, param );
-}
-
-
-/*------------------------------
- initialize
-------------------------------*/
-void seta_state::uPD71054_timer_init()
-{
- uPD71054_state *uPD71054 = &m_uPD71054;
-
- uPD71054->write_select = 0;
-
- for (int no = 0; no < USED_TIMER_NUM; no++)
- uPD71054->max[no] = 0xffff;
-
- for (int no = 0; no < USED_TIMER_NUM; no++)
- uPD71054->timer[no] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(seta_state::uPD71054_timer_callback),this));
-}
-
-
-/*------------------------------
- timer write handler
-------------------------------*/
-void seta_state::timer_regs_w(offs_t offset, u16 data)
-{
- uPD71054_state *uPD71054 = &m_uPD71054;
-
- data &= 0xff;
-
- uPD71054->reg[offset] = data;
-
- switch (offset)
- {
- case 0x0000:
- case 0x0001:
- case 0x0002:
- if (uPD71054->write_select == 0)
- {
- uPD71054->max[offset] = (uPD71054->max[offset] & 0xff00) + data;
- if (((uPD71054->reg[3] >> 4) & 3) == 3)
- {
- uPD71054->write_select = 1;
- }
- }
- else
- {
- uPD71054->max[offset] = (uPD71054->max[offset] & 0x00ff) + (data << 8);
- }
- if (uPD71054->max[offset] != 0)
- {
- uPD71054_update_timer(m_maincpu.target(), offset);
- }
- break;
- case 0x0003:
- switch ((data >> 4) & 3)
- {
- case 2: uPD71054->write_select = 1; break;
- case 1:
- case 3: uPD71054->write_select = 0; break;
- }
- break;
- }
-}
-#endif // USE_uPD71054_TIMER
-
-
-/***************************************************************************
-
-
- Sound
-
-
-***************************************************************************/
-
-WRITE_LINE_MEMBER(seta_state::utoukond_ym3438_interrupt)
-{
- m_audiocpu->set_input_line(INPUT_LINE_NMI, state);
-}
-
-/***************************************************************************
-
-
- Common Routines
-
-
-***************************************************************************/
-
-/*
-
- uPD71054C Timer
-
-*/
-
-WRITE_LINE_MEMBER(seta_state::pit_out0)
-{
- if (state)
- m_maincpu->set_input_line(4, ASSERT_LINE);
-}
-
-
-/*
-
- Shared RAM:
-
- The 65c02 sees a linear array of bytes that is mapped, for the 68000,
- to a linear array of words whose low order bytes hold the data
-
-*/
-
-u8 seta_state::sharedram_68000_r(offs_t offset)
-{
- return m_sharedram[offset];
-}
-
-void seta_state::sharedram_68000_w(offs_t offset, u8 data)
-{
- m_sharedram[offset] = data & 0xff;
-}
-
-
-/*
-
- Sub CPU Control
-
-*/
-
-void seta_state::sub_ctrl_w(offs_t offset, u8 data)
-{
- switch (offset)
- {
- case 0/2: // bit 0: reset sub cpu?
- if (!(m_sub_ctrl_data & 1) && (data & 1))
- m_subcpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero);
- m_sub_ctrl_data = data;
- break;
-
- case 2/2: // ?
- break;
-
- case 4/2: // not sure
- if (m_soundlatch[0] != nullptr) m_soundlatch[0]->write(data);
- break;
-
- case 6/2: // not sure
- if (m_soundlatch[1] != nullptr) m_soundlatch[1]->write(data);
- break;
- }
-
-}
-
-
-/* DSW reading for 16 bit CPUs */
-u16 seta_state::seta_dsw_r(offs_t offset)
-{
- const u16 dsw = m_dsw->read();
- if (offset == 0) return (dsw >> 8) & 0xff;
- else return (dsw >> 0) & 0xff;
-}
-
-
-/* DSW reading for 8 bit CPUs */
-
-u8 seta_state::dsw1_r()
-{
- return (m_dsw->read() >> 8) & 0xff;
-}
-
-u8 seta_state::dsw2_r()
-{
- return (m_dsw->read() >> 0) & 0xff;
-}
-
-
-/*
-
- Sprites Buffering
-
-*/
-WRITE_LINE_MEMBER(seta_state::screen_vblank_seta_buffer_sprites)
-{
- // rising edge
- if (state)
- {
- m_seta001->setac_eof();
- }
-}
-
-
-/*
-
- VRAM Handler
-
-*/
-template<int Layer>
-void seta_state::vram_w(offs_t offset, u16 data, u16 mem_mask)
-{
- COMBINE_DATA(&m_vram[Layer][offset]);
- if (m_rambank[Layer] == ((offset >> 12) & 1))
- m_tilemap[Layer]->mark_tile_dirty(offset & 0x7ff);
-}
-
-
-/***************************************************************************
-
-
- Main CPU
-
-(for debugging it is useful to be able to peek at some memory regions that
- the game writes to but never reads from. I marked this regions with an empty
- comment to distinguish them, since there's always the possibility that some
- games actually read from this kind of regions, expecting some hardware
- register's value there, instead of the data they wrote)
-
-***************************************************************************/
-
-
-u16 seta_state::ipl0_ack_r()
-{
- if (!machine().side_effects_disabled())
- m_maincpu->set_input_line(1, CLEAR_LINE);
- return 0;
-}
-
-void seta_state::ipl0_ack_w(u16 data)
-{
- m_maincpu->set_input_line(1, CLEAR_LINE);
-}
-
-u16 seta_state::ipl1_ack_r()
-{
- if (!machine().side_effects_disabled())
- m_maincpu->set_input_line(2, CLEAR_LINE);
- return 0;
-}
-
-void seta_state::ipl1_ack_w(u16 data)
-{
- m_maincpu->set_input_line(2, CLEAR_LINE);
-}
-
-u16 seta_state::ipl2_ack_r()
-{
- if (!machine().side_effects_disabled())
- m_maincpu->set_input_line(4, CLEAR_LINE);
- return 0;
-}
-
-void seta_state::ipl2_ack_w(u16 data)
-{
- m_maincpu->set_input_line(4, CLEAR_LINE);
-}
-
-
-/***************************************************************************
- Thundercade
-***************************************************************************/
-
-/* Mirror RAM seems necessary since the e00000-e03fff area is not cleared
- on startup. Level 2 int uses $e0000a as a counter that controls when
- to write a value to the sub cpu, and when to read the result back.
- If the check fails "error x0-006" is displayed. Hence if the counter
- is not cleared at startup the game could check for the result before
- writing to sharedram! */
-
-
-void seta_state::tndrcade_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x200000, 0x200001).w(FUNC(seta_state::ipl1_ack_w));
- map(0x280000, 0x280001).nopw(); // ? 0 / 1 (sub cpu related?)
- map(0x300000, 0x300001).nopw(); // ? 0 / 1
- map(0x380000, 0x3803ff).ram().share("paletteram1"); // Palette
- map(0x400000, 0x400001).nopw(); // ? $4000
- map(0x600000, 0x6005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0x600600, 0x600607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
-
- map(0x800000, 0x800007).w(FUNC(seta_state::sub_ctrl_w)).umask16(0x00ff); // Sub CPU Control?
- map(0xa00000, 0xa00fff).rw(FUNC(seta_state::sharedram_68000_r), FUNC(seta_state::sharedram_68000_w)).umask16(0x00ff); // Shared RAM
- map(0xc00000, 0xc03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xe00000, 0xe03fff).ram().share("share1"); // RAM (Mirrored?)
- map(0xffc000, 0xffffff).ram().share("share1"); // RAM (Mirrored?)
-}
-
-
-/***************************************************************************
- Twin Eagle, DownTown, Arbalester, Meta Fox
- (with slight variations, and Meta Fox protection hooked in)
-***************************************************************************/
-
-void seta_state::twineagl_ctrl_w(u8 data)
-{
- if ((data & 0x30) == 0)
- {
- m_maincpu->set_input_line(1, CLEAR_LINE);
- m_maincpu->set_input_line(3, CLEAR_LINE);
- }
-}
-
-void seta_state::downtown_map(address_map &map)
-{
- map(0x000000, 0x09ffff).rom(); // ROM
- map(0x100000, 0x103fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0x200000, 0x200001).noprw(); // watchdog? (twineagl)
- map(0x300000, 0x300001).w(FUNC(seta_state::ipl1_ack_w));
- map(0x400000, 0x400007).w(FUNC(seta_state::twineagl_tilebank_w)).umask16(0x00ff); // special tile banking to animate water in twineagl
- map(0x500001, 0x500001).w(FUNC(seta_state::twineagl_ctrl_w));
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700000, 0x7003ff).ram().share("paletteram1"); // Palette
- map(0x800000, 0x800005).writeonly().share("vctrl_0");// VRAM Ctrl
- map(0x900000, 0x903fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM
- map(0xa00000, 0xa00007).w(FUNC(seta_state::sub_ctrl_w)).umask16(0x00ff); // Sub CPU Control?
- map(0xb00000, 0xb00fff).rw(FUNC(seta_state::sharedram_68000_r), FUNC(seta_state::sharedram_68000_w)).umask16(0x00ff); // Shared RAM
- map(0xc00000, 0xc00001).nopw(); // ? $4000
- map(0xd00000, 0xd005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xd00600, 0xd00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xe00000, 0xe03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xf00000, 0xffffff).ram(); // RAM
-}
-
-
-/***************************************************************************
- Caliber 50
-***************************************************************************/
-
-void seta_state::calibr50_map(address_map &map)
-{
- map(0x000000, 0x09ffff).rom(); // ROM
- map(0x100000, 0x100001).r(FUNC(seta_state::ipl2_ack_r));
- map(0x200000, 0x200fff).ram().share("nvram"); // NVRAM (battery backed)
- map(0x300000, 0x300001).rw(FUNC(seta_state::ipl1_ack_r), FUNC(seta_state::ipl1_ack_w));
- map(0x400000, 0x400001).r("watchdog", FUNC(watchdog_timer_device::reset16_r));
- map(0x500000, 0x500001).nopw(); // ?
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700000, 0x7003ff).ram().share("paletteram1"); // Palette
- map(0x800000, 0x800005).writeonly().share("vctrl_0");// VRAM Ctrl
- map(0x900000, 0x903fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM
-
- map(0x904000, 0x904fff).ram(); //
- map(0xa00000, 0xa00001).portr("P1"); // X1-004
- map(0xa00002, 0xa00003).portr("P2"); // X1-004
- map(0xa00008, 0xa00009).portr("COINS"); // X1-004
- map(0xa00010, 0xa00017).r("upd4701", FUNC(upd4701_device::read_xy)).umask16(0x00ff);
- map(0xa00019, 0xa00019).r("upd4701", FUNC(upd4701_device::reset_xy_r));
-
- map(0xd00000, 0xd005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xd00600, 0xd00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xe00000, 0xe03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xb00001, 0xb00001).r(m_soundlatch[1], FUNC(generic_latch_8_device::read)); // From Sub CPU
- map(0xb00001, 0xb00001).w(m_soundlatch[0], FUNC(generic_latch_8_device::write)); // To Sub CPU
- map(0xc00000, 0xc00001).ram(); // ? $4000
-
- map(0xff0000, 0xffffff).ram(); // RAM
-}
-
-
-/***************************************************************************
- U.S. Classic
-***************************************************************************/
-
-u16 usclssic_state::dsw_r(offs_t offset)
-{
- switch (offset)
- {
- case 0/2: return (m_dsw->read() >> 8) & 0xf;
- case 2/2: return (m_dsw->read() >> 12) & 0xf;
- case 4/2: return (m_dsw->read() >> 0) & 0xf;
- case 6/2: return (m_dsw->read() >> 4) & 0xf;
- }
- return 0;
-}
-
-CUSTOM_INPUT_MEMBER(usclssic_state::trackball_x_r)
-{
- return m_track_x[m_port_select ? 1 : 0]->read();
-}
-
-CUSTOM_INPUT_MEMBER(usclssic_state::trackball_y_r)
-{
- return m_track_y[m_port_select ? 1 : 0]->read();
-}
-
-
-void usclssic_state::lockout_w(u8 data)
-{
- int tiles_offset = BIT(data, 4) ? 0x4000: 0;
-
- m_port_select = BIT(data, 6);
- m_buttonmux->select_w(m_port_select);
-
- m_upd4701->resetx_w(BIT(data, 7));
- m_upd4701->resety_w(BIT(data, 7));
-
- if (tiles_offset != m_tiles_offset)
- machine().tilemap().mark_all_dirty();
- m_tiles_offset = tiles_offset;
-
- seta_coin_lockout_w(data);
-}
-
-
-void usclssic_state::usclssic_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0xff0000, 0xffffff).ram(); // RAM
- map(0x800000, 0x8005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0x800600, 0x800607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0x900000, 0x900001).ram(); // ? $4000
- map(0xa00000, 0xa00005).ram().share("vctrl_0"); // VRAM Ctrl
- map(0xb00000, 0xb003ff).ram().share("paletteram1"); // Palette
- map(0xb40000, 0xb40007).r(m_upd4701, FUNC(upd4701_device::read_xy)).umask16(0x00ff);
- map(0xb40001, 0xb40001).w(FUNC(usclssic_state::lockout_w)); // Coin Lockout + Tiles Banking
- map(0xb4000a, 0xb4000b).w(FUNC(usclssic_state::ipl1_ack_w));
- map(0xb40010, 0xb40011).portr("COINS"); // Coins
- map(0xb40011, 0xb40011).w(m_soundlatch[0], FUNC(generic_latch_8_device::write)); // To Sub CPU
- map(0xb40018, 0xb4001f).r(FUNC(usclssic_state::dsw_r)); // 2 DSWs
- map(0xb40018, 0xb40019).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
- map(0xb80000, 0xb80001).r(FUNC(usclssic_state::ipl2_ack_r));
- map(0xc00000, 0xc03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xd00000, 0xd03fff).ram().w(FUNC(usclssic_state::vram_w<0>)).share("vram_0"); // VRAM
- map(0xd04000, 0xd04fff).ram(); //
- map(0xe00000, 0xe00fff).ram(); // NVRAM? (odd bytes)
-}
-
-
-/***************************************************************************
- Athena no Hatena?
-***************************************************************************/
-
-void seta_state::atehate_map(address_map &map)
-{
- map(0x000000, 0x0fffff).rom(); // ROM
- map(0x900000, 0x9fffff).ram(); // RAM
- map(0x100000, 0x103fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0x200000, 0x200001).nopw(); // ? watchdog ?
- map(0x300000, 0x300001).nopw(); // ? 0 (irq ack lev 2?)
- map(0x500000, 0x500001).nopw(); // ? (end of lev 1: bit 4 goes 1,0,1)
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700000, 0x7003ff).ram().share("paletteram1"); // Palette
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xb00000, 0xb00001).portr("P1"); // P1
- map(0xb00002, 0xb00003).portr("P2"); // P2
- map(0xb00004, 0xb00005).portr("COINS"); // Coins
- map(0xc00000, 0xc00001).ram(); // ? 0x4000
- map(0xe00000, 0xe03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
-}
-
-
-/***************************************************************************
- Blandia
-***************************************************************************/
-
-void seta_state::blandia_map(address_map &map)
-{
- map(0x000000, 0x1fffff).rom(); // ROM (up to 2MB)
- map(0x200000, 0x20ffff).ram(); // RAM (main ram for zingzip, wrofaero writes to 20f000-20ffff)
- map(0x210000, 0x21ffff).ram(); // RAM (gundhara)
- map(0x300000, 0x30ffff).ram(); // RAM (wrofaero and blandia only?)
- map(0x400000, 0x400001).portr("P1"); // P1
- map(0x400002, 0x400003).portr("P2"); // P2
- map(0x400004, 0x400005).portr("COINS"); // Coins
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_counter_w)); // Coin Counter (no lockout)
- map(0x500003, 0x500003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x500004, 0x500005).nopw();
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700000, 0x7003ff).ram(); // (rezon,jjsquawk)
- map(0x700400, 0x700fff).ram().share("paletteram1"); // Palette
- map(0x703c00, 0x7047ff).ram().share("paletteram2"); // 2nd Palette for the paletteoffseteffect
- map(0x800000, 0x8005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0x800600, 0x800607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0x880000, 0x880001).ram(); // ? 0xc000
- map(0x900000, 0x903fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xa00000, 0xa00005).ram().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0xa80000, 0xa80005).ram().share("vctrl_1"); // VRAM 2&3 Ctrl
- map(0xb00000, 0xb03fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
- map(0xb04000, 0xb0ffff).ram(); // (jjsquawk)
- map(0xb80000, 0xb83fff).ram().w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2&3
- map(0xb84000, 0xb8ffff).ram(); // (jjsquawk)
- map(0xc00000, 0xc03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0xd00000, 0xd00007).nopw(); // ?
- map(0xe00000, 0xe00001).nopw(); // ? VBlank IRQ Ack
- map(0xf00000, 0xf00001).nopw(); // ? Sound IRQ Ack
-}
-
-void seta_state::blandia_x1_map(address_map &map)
-{
- map(0x00000, 0xbffff).rom();
- map(0xc0000, 0xfffff).bankr("x1_bank");
-}
-
-
-/***************************************************************************
- Blandia (proto), Gundhara, J.J.Squawkers, Rezon, War of Aero, Zing Zing Zip
- (with slight variations)
-***************************************************************************/
-
-void seta_state::blandiap_map(address_map &map)
-{
- map(0x000000, 0x1fffff).rom(); // ROM (up to 2MB)
- map(0x200000, 0x20ffff).ram(); // RAM (main ram for zingzip, wrofaero writes to 20f000-20ffff)
- map(0x210000, 0x21ffff).ram(); // RAM (gundhara)
- map(0x300000, 0x30ffff).ram(); // RAM (wrofaero only?)
- map(0x400000, 0x400001).portr("P1"); // P1
- map(0x400002, 0x400003).portr("P2"); // P2
- map(0x400004, 0x400005).portr("COINS"); // Coins
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_counter_w)); // Coin Counter (no lockout)
- map(0x500003, 0x500003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x500004, 0x500005).nopw();
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700000, 0x7003ff).ram(); // (rezon,jjsquawk)
- map(0x700400, 0x700fff).ram().share("paletteram1"); // Palette
- map(0x703c00, 0x7047ff).ram().share("paletteram2"); // 2nd Palette for the paletteoffseteffect
- map(0x800000, 0x803fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
- map(0x804000, 0x80ffff).ram(); // (jjsquawk)
- map(0x880000, 0x883fff).ram().w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2&3
- map(0x884000, 0x88ffff).ram(); // (jjsquawk)
- map(0x900000, 0x900005).ram().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0x980000, 0x980005).ram().share("vctrl_1"); // VRAM 2&3 Ctrl
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xa80000, 0xa80001).ram(); // ? 0x4000
- map(0xb00000, 0xb03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xc00000, 0xc03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0xd00000, 0xd00007).nopw(); // ?
- map(0xe00000, 0xe00001).nopw(); // ? VBlank IRQ Ack
- map(0xf00000, 0xf00001).nopw(); // ? Sound IRQ Ack
-}
-
-
-/***************************************************************************
- Blandia, Gundhara, J.J.Squawkers, Rezon, War of Aero, Zing Zing Zip
- and Zombie Raid (with slight variations)
-***************************************************************************/
-
-double zombraid_state::adc_cb(u8 input)
-{
- if (input == ADC083X_AGND)
- return 0.0;
- else if (input == ADC083X_VREF)
- return 1.0;
- else
- return m_gun_inputs[input - ADC083X_CH0]->read() / 255.0;
-}
-
-u16 zombraid_state::gun_r()// Serial interface
-{
- return m_adc->do_read();
-}
-
-// Bit 0 is clock, 1 is data, 2 is reset
-void zombraid_state::gun_w(u16 data)
-{
- m_adc->cs_write(BIT(data, 2));
- m_adc->di_write(BIT(data, 1));
- m_adc->clk_write(BIT(data, 0));
-
- /* Gun Recoils */
- /* Note: In debug menu recoil solenoids strobe when held down. Is this correct?? */
- m_gun_recoil[0] = BIT(data, 4);
- m_gun_recoil[1] = BIT(data, 3);
-}
-
-u16 seta_state::extra_r()
-{
- return m_extra_port.read_safe(0xff);
-}
-
-void seta_state::wrofaero_map(address_map &map)
-{
- map(0x000000, 0x1fffff).rom(); // ROM (up to 2MB)
- map(0x200000, 0x20ffff).ram(); // RAM
- map(0x210000, 0x21ffff).ram(); // RAM (gundhara)
- map(0x300000, 0x30ffff).ram().share("nvram"); // actually 8K x8 SRAM in zombraid
- map(0x400000, 0x400001).portr("P1"); // P1
- map(0x400002, 0x400003).portr("P2"); // P2
- map(0x400004, 0x400005).portr("COINS"); // Coins
-
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_counter_w)); // Coin Counter (no lockout)
- map(0x500003, 0x500003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x500004, 0x500005).nopw();
- map(0x500006, 0x500007).r(FUNC(seta_state::extra_r)); // Buttons 4,5,6 (Daioh only)
-
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700000, 0x7003ff).ram(); // (rezon,jjsquawk)
- map(0x700400, 0x700fff).ram().share("paletteram1"); // Palette
- map(0x701000, 0x70ffff).ram(); //
- map(0x800000, 0x803fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
- map(0x804000, 0x80ffff).ram(); // (jjsquawk)
- map(0x880000, 0x883fff).ram().w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2&3
- map(0x884000, 0x88ffff).ram(); // (jjsquawk)
- map(0x900000, 0x900005).ram().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0x980000, 0x980005).ram().share("vctrl_1"); // VRAM 2&3 Ctrl
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xa80000, 0xa80001).ram(); // ? 0x4000
- map(0xb00000, 0xb03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xc00000, 0xc03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
-#if USE_uPD71054_TIMER
- map(0xd00000, 0xd00007).w(FUNC(seta_state::timer_regs_w)); // ?
-#else
- map(0xd00000, 0xd00007).nopw(); // ?
-#endif
- map(0xe00000, 0xe00001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
- map(0xf00000, 0xf00001).nopw(); // ? Sound IRQ Ack
-}
-
-void zombraid_state::zombraid_map(address_map &map)
-{
- wrofaero_map(map);
- map(0xf00000, 0xf00001).w(FUNC(zombraid_state::gun_w));
- map(0xf00002, 0xf00003).r(FUNC(zombraid_state::gun_r));
-}
-
-void zombraid_state::zombraid_x1_map(address_map &map)
-{
- map(0x00000, 0x7ffff).rom();
- map(0x80000, 0xfffff).bankr("x1_bank");
-}
-
-u16 seta_state::zingzipbl_unknown_r()
-{
- return 0x0000;
-}
-
-void seta_state::zingzipbl_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM (up to 2MB)
- map(0x200000, 0x20ffff).ram().share("workram"); // RAM (pointer for zombraid crosshair hack)
-// map(0x400000, 0x400001).port_r("P1"); // P1
-// map(0x400002, 0x400003).port_r("P2"); // P2
- map(0x400002, 0x400003).r(FUNC(seta_state::zingzipbl_unknown_r)); // P2
-// map(0x400004, 0x400005).port_r("COINS"); // Coins
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout
- map(0x500003, 0x500003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x500004, 0x500005).nopw();
- //map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700400, 0x700fff).ram().share("paletteram1"); // Palette
- map(0x800000, 0x803fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
- map(0x880000, 0x883fff).ram().w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2&3
- map(0x900000, 0x900005).ram().share("vctrl_0"); // VRAM 0&1 Ctrl
-
- //map(0x902006, 0x902007).w // writes 0 here on start up
- map(0x902010, 0x902013).r(FUNC(seta_state::zingzipbl_unknown_r));
-
- map(0x980000, 0x980005).ram().share("vctrl_1"); // VRAM 2&3 Ctrl
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xa00608, 0xa00fff).ram(); // zeroed on start up
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xa80000, 0xa80001).ram(); // ? 0x4000
- map(0xb00000, 0xb03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xc00000, 0xc000ff).ram(); // zeroed on startup
-#if USE_uPD71054_TIMER
- map(0xd00000, 0xd00007).w(FUNC(seta_state::timer_regs_w)); // ?
-#else
- map(0xd00000, 0xd00007).nopw(); // ?
-#endif
- map(0xe00000, 0xe00001).nopw(); // ? VBlank IRQ Ack
- map(0xf00000, 0xf00001).nopw(); // ? Sound IRQ Ack
-}
-
-void seta_state::jjsquawb_map(address_map &map)
-{
- map(0x000000, 0x1fffff).rom(); // ROM (up to 2MB)
- map(0x200000, 0x20ffff).ram().share("workram"); // RAM (pointer for zombraid crosshair hack)
- map(0x210000, 0x21ffff).ram(); // RAM (gundhara)
- map(0x300000, 0x30ffff).ram(); // RAM (wrofaero only?)
- map(0x400000, 0x400001).portr("P1"); // P1
- map(0x400002, 0x400003).portr("P2"); // P2
- map(0x400004, 0x400005).portr("COINS"); // Coins
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout
- map(0x500003, 0x500003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x500004, 0x500005).nopw();
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700000, 0x70b3ff).ram(); // RZ: (rezon,jjsquawk)
- map(0x70b400, 0x70bfff).ram().share("paletteram1"); // Palette
- map(0x70c000, 0x70ffff).ram(); //
- map(0x800000, 0x803fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0
- map(0x804000, 0x807fff).ram().w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2
- map(0x884000, 0x88ffff).ram(); // (jjsquawk)
- map(0x908000, 0x908005).ram().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0x909000, 0x909005).ram().share("vctrl_1"); // VRAM 2&3 Ctrl
- map(0xa0a000, 0xa0a5ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // RZ: Sprites Y
- map(0xa0a600, 0xa0a607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
-// map(0xa80000, 0xa80001).ram() // ? 0x4000
- map(0xb0c000, 0xb0ffff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // RZ: Sprites Code + X + Attr
- map(0xc00000, 0xc03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
-#if USE_uPD71054_TIMER
- map(0xd00000, 0xd00007).w(FUNC(seta_state::timer_regs_w)); // ?
-#else
- map(0xd00000, 0xd00007).nopw(); // ?
-#endif
- map(0xe00000, 0xe00001).nopw(); // ? VBlank IRQ Ack
- map(0xf00000, 0xf00001).nopw(); // ? Sound IRQ Ack
-}
-
-/***************************************************************************
- Orbs
-***************************************************************************/
-
-void seta_state::orbs_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0xf00000, 0xf0ffff).ram(); // RAM
- map(0x100000, 0x100001).nopr(); // ?
- map(0x200000, 0x200001).nopr(); // ?
- map(0x300000, 0x300003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x400000, 0x400001).nopw(); // ?
- map(0x500000, 0x500001).portr("P1"); // P1
- map(0x500002, 0x500003).portr("P2"); // P2
- map(0x500004, 0x500005).portr("COINS"); // Coins
- //map(0x600000, 0x60000f).r(FUNC(seta_state::krzybowl_input_r); // P1
- map(0x8000f0, 0x8000f1).ram(); // NVRAM
- map(0x800100, 0x8001ff).ram(); // NVRAM
- map(0xa00000, 0xa03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0xb00000, 0xb003ff).ram().share("paletteram1"); // Palette
- map(0xc00000, 0xc03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xd00000, 0xd00001).ram(); // ? 0x4000
- map(0xe00000, 0xe005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xe00600, 0xe00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
-}
-
-/***************************************************************************
- Kero Kero Keroppi no Issyoni Asobou
-***************************************************************************/
-
-static const u16 keroppi_protection_word[] = {
- 0x0000,
- 0x0000, 0x0000, 0x0000,
- 0x2000, 0x2000, 0x2000,
- 0x2000, 0x2000, 0x2000,
- 0x0400, 0x0400, 0x0400,
- 0x0000, 0x0000, 0x0000
-};
-
-
-u16 seta_state::keroppi_protection_r()
-{
- const u16 result = keroppi_protection_word[m_keroppi_protection_count];
-
- if (!machine().side_effects_disabled())
- {
- m_keroppi_protection_count++;
- if (m_keroppi_protection_count > 15)
- m_keroppi_protection_count = 15;
- }
- return result;
-}
-
-u16 seta_state::keroppi_protection_init_r()
-{
- if (!machine().side_effects_disabled())
- m_keroppi_protection_count = 0;
-
- return 0x00;
-}
-
-u16 seta_state::keroppi_coin_r()
-{
- u16 result = m_coins->read();
-
- if (m_keroppi_prize_hop == 2)
- {
- result &= ~0x0002; /* prize hopper */
- if (!machine().side_effects_disabled())
- m_keroppi_prize_hop = 0;
- }
-
- return result;
-}
-
-TIMER_CALLBACK_MEMBER(seta_state::keroppi_prize_hop_callback)
-{
- m_keroppi_prize_hop = 2;
-}
-
-void seta_state::keroppi_prize_w(u16 data)
-{
- if ((data & 0x0010) && !m_keroppi_prize_hop)
- {
- m_keroppi_prize_hop = 1;
- m_keroppi_prize_hop_timer->adjust(attotime::from_seconds(3), 0x20); /* 3 seconds */
- }
-}
-
-void seta_state::keroppi_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0xf00000, 0xf0ffff).ram(); // RAM
- map(0x100000, 0x100001).r(FUNC(seta_state::keroppi_protection_r)); //
- map(0x200000, 0x200001).r(FUNC(seta_state::keroppi_protection_init_r)); //
- map(0x300000, 0x300003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x400000, 0x400001).nopw(); // ?
- map(0x500000, 0x500001).portr("P1"); // P1
- map(0x500002, 0x500003).portr("P2"); // P2
- map(0x500004, 0x500005).r(FUNC(seta_state::keroppi_coin_r)); // Coins
- map(0x8000f0, 0x8000f1).ram(); // NVRAM
- map(0x800100, 0x8001ff).ram(); // NVRAM
- map(0x900000, 0x900001).nopw(); // ?
- map(0x900002, 0x900003).w(FUNC(seta_state::keroppi_prize_w)); //
- map(0xa00000, 0xa03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0xb00000, 0xb003ff).ram().share("paletteram1"); // Palette
- map(0xc00000, 0xc03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xd00000, 0xd00001).ram(); // ? 0x4000
- map(0xe00000, 0xe005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xe00600, 0xe00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
-}
-
-MACHINE_START_MEMBER(seta_state,keroppi)
-{
- m_keroppi_prize_hop_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(seta_state::keroppi_prize_hop_callback), this));
-
- m_keroppi_prize_hop = 0;
- m_keroppi_protection_count = 0;
-}
-
-/***************************************************************************
- Block Carnival
-***************************************************************************/
-
-/* similar to krzybowl */
-void seta_state::blockcar_map(address_map &map)
-{
- map(0x000000, 0x03ffff).rom(); // ROM
- map(0xf00000, 0xf03fff).ram(); // RAM
- map(0xf04000, 0xf041ff).ram(); // Backup RAM?
- map(0xf05000, 0xf050ff).ram(); // Backup RAM?
- map(0x100000, 0x100001).nopw(); // ? 1 (start of interrupts, main loop: watchdog?)
- map(0x200000, 0x200001).nopw(); // ? 0/1 (IRQ acknowledge?)
- map(0x300000, 0x300003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x400001, 0x400001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout + Sound Enable (bit 4?)
- map(0x500000, 0x500001).portr("P1"); // P1
- map(0x500002, 0x500003).portr("P2"); // P2
- map(0x500004, 0x500005).portr("COINS"); // Coins
- map(0xa00000, 0xa03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0xb00000, 0xb003ff).ram().share("paletteram1"); // Palette
- map(0xc00000, 0xc03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xd00000, 0xd00001).ram(); // ? 0x4000
- map(0xe00000, 0xe005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xe00600, 0xe00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
-}
-
-void seta_state::blockcarb_map(address_map &map)
-{
- map(0x000000, 0x03ffff).rom(); // ROM
- map(0xf00000, 0xf03fff).ram(); // RAM
- map(0xf04000, 0xf041ff).ram(); // Backup RAM?
- map(0xf05000, 0xf050ff).ram(); // Backup RAM?
- map(0x100000, 0x100001).nopw(); // ? 1 (start of interrupts, main loop: watchdog?)
- map(0x200000, 0x200001).nopw(); // ? 0/1 (IRQ acknowledge?)
- map(0x300000, 0x300003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x400001, 0x400001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout + Sound Enable (bit 4?)
- map(0x500000, 0x500001).portr("P1"); // P1
- map(0x500002, 0x500003).portr("P2"); // P2
- map(0x500004, 0x500005).portr("COINS"); // Coins
- map(0x500009, 0x500009).w("oki", FUNC(okim6295_device::write));
- //map(0x50000c, 0x50000d); // ??
- map(0xa00000, 0xa03fff).noprw(); // Sound - not on this bootleg
- map(0xb00000, 0xb003ff).ram().share("paletteram1"); // Palette
- map(0xc00000, 0xc03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xd00000, 0xd00001).ram(); // ? 0x4000
- map(0xe00000, 0xe005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xe00600, 0xe00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
-}
-
-/***************************************************************************
- Daioh
-***************************************************************************/
-
-void seta_state::daioh_map(address_map &map)
-{
- map(0x000000, 0x0fffff).rom(); // ROM
- map(0x100000, 0x10ffff).ram(); // RAM
- map(0x400000, 0x400001).portr("P1"); // P1
- map(0x400002, 0x400003).portr("P2"); // P2
- map(0x400004, 0x400005).portr("COINS"); // Coins
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout
- map(0x500003, 0x500003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x500004, 0x500005).nopw();
- map(0x500006, 0x500007).portr("EXTRA"); // Buttons 4,5,6
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700000, 0x7003ff).ram();
- map(0x700400, 0x700fff).ram().share("paletteram1"); // Palette
- map(0x701000, 0x70ffff).ram(); //
- map(0x800000, 0x803fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
- map(0x804000, 0x80ffff).ram(); //
- map(0x880000, 0x883fff).ram().w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2&3
- map(0x884000, 0x88ffff).ram(); //
- map(0x900000, 0x900005).ram().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0x980000, 0x980005).ram().share("vctrl_1"); // VRAM 2&3 Ctrl
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
-
- map(0xa80000, 0xa80001).ram(); // ? 0x4000
- map(0xb00000, 0xb03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xb04000, 0xb13fff).ram();
- map(0xc00000, 0xc03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0xe00000, 0xe00001).nopw(); //
-}
-
-
-/***************************************************************************
- Daioh (location test version)
-***************************************************************************/
-
-void seta_state::daiohp_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom().mirror(0x080000); // ROM
- map(0x100000, 0x17ffff).rom().mirror(0x080000); // ROM
- map(0x200000, 0x20ffff).ram(); // RAM
- map(0x400000, 0x400001).portr("P1"); // P1
- map(0x400002, 0x400003).portr("P2"); // P2
- map(0x400004, 0x400005).portr("COINS"); // Coins
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout
- map(0x500003, 0x500003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x500004, 0x500005).nopw();
- map(0x500006, 0x500007).portr("EXTRA"); // Buttons 4,5,6
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700000, 0x7003ff).ram();
- map(0x700400, 0x700fff).ram().share("paletteram1"); // Palette
- map(0x701000, 0x70ffff).ram(); //
- map(0x800000, 0x803fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
- map(0x804000, 0x80ffff).ram(); //
- map(0x880000, 0x883fff).ram().w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2&3
- map(0x884000, 0x88ffff).ram(); //
- map(0x900000, 0x900005).ram().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0x980000, 0x980005).ram().share("vctrl_1"); // VRAM 2&3 Ctrl
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
-
- map(0xa80000, 0xa80001).ram(); // ? 0x4000
- map(0xb00000, 0xb03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xb04000, 0xb13fff).ram();
- map(0xc00000, 0xc03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0xd00000, 0xd00007).nopw(); // ?
- map(0xe00000, 0xe00001).nopw(); // ? VBlank IRQ Ack
- map(0xf00000, 0xf00001).nopw(); // ? Sound IRQ Ack
-}
-
-
-/***************************************************************************
- Dragon Unit, Quiz Kokology, Quiz Kokology 2, Strike Gunner
-***************************************************************************/
-
-void seta_state::drgnunit_map(address_map &map)
-{
- map(0x000000, 0x0bffff).rom(); // ROM
- map(0xf00000, 0xf0ffff).ram(); // RAM (qzkklogy)
- map(0xffc000, 0xffffff).ram(); // RAM (drgnunit,stg)
- map(0x100000, 0x103fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0x200000, 0x200001).nopw(); // Watchdog
- map(0x300000, 0x300001).nopw(); // ? IRQ Ack
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout
- map(0x500003, 0x500003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700000, 0x7003ff).ram().share("paletteram1"); // Palette
- map(0x800000, 0x800005).ram().share("vctrl_0"); // VRAM Ctrl
- map(0x900000, 0x903fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM
- map(0x904000, 0x90ffff).nopw(); // unused (qzkklogy)
- map(0xb00000, 0xb00001).portr("P1"); // P1
- map(0xb00002, 0xb00003).portr("P2"); // P2
- map(0xb00004, 0xb00005).portr("COINS"); // Coins
- map(0xb00006, 0xb00007).nopr(); // unused (qzkklogy)
- map(0xc00000, 0xc00001).ram(); // ? $4000
- map(0xd00000, 0xd005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xd00600, 0xd00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xe00000, 0xe03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
-}
-
-/***************************************************************************
- The Roulette
-***************************************************************************/
-
-MACHINE_START_MEMBER(setaroul_state, setaroul)
-{
- m_leds.resolve();
-}
-
-// Coin drop
-MACHINE_RESET_MEMBER(setaroul_state, setaroul)
-{
- m_coin_start_cycles = 0;
-}
-
-INPUT_CHANGED_MEMBER( setaroul_state::coin_drop_start )
-{
- if (newval && !m_coin_start_cycles)
- m_coin_start_cycles = m_maincpu->total_cycles();
-}
-
-CUSTOM_INPUT_MEMBER( setaroul_state::coin_sensors_r )
-{
- u8 data = 0x03;
-
- // simulates the passage of coins through multiple sensors
- if (m_coin_start_cycles)
- {
- attotime diff = m_maincpu->cycles_to_attotime(m_maincpu->total_cycles() - m_coin_start_cycles);
-
- if (diff <= attotime::from_msec(16*10))
- data &= ~0x02;
-
- if (diff > attotime::from_msec(16*5) && diff < attotime::from_msec(16*15))
- data &= ~0x01;
-
- if (diff > attotime::from_msec(16*15))
- m_coin_start_cycles = 0;
- }
-
- return data;
-}
-
-// the spritey low bits are mapped to 1 in every 4 bytes here as if it were a 32-bit bus..which is weird
-// other ram is similar..
-
-WRITE16_MEMBER(setaroul_state::spritecode_w)
-{
- if ((offset & 1) == 1) m_seta001->spritecodelow_w8(space, offset >> 1, (data & 0xff00) >> 8);
- if ((offset & 1) == 0) m_seta001->spritecodehigh_w8(space, offset >> 1, (data & 0xff00) >> 8);
-}
-
-READ16_MEMBER(setaroul_state::spritecode_r)
-{
- u16 ret;
- if ((offset & 1) == 1)
- ret = m_seta001->spritecodelow_r8(space, offset >> 1);
- else
- ret = m_seta001->spritecodehigh_r8(space, offset >> 1);
- return ret << 8;
-}
-
-WRITE16_MEMBER(setaroul_state::spriteylow_w)
-{
- if ((offset & 1) == 0) m_seta001->spriteylow_w8(space, offset >> 1, (data & 0xff00) >> 8);
-}
-
-WRITE16_MEMBER(setaroul_state::spritectrl_w)
-{
- if ((offset & 1) == 0) m_seta001->spritectrl_w8(space, offset >> 1, (data & 0xff00) >> 8);
-}
-
-// RTC (To do: write a D4911C device)
-READ16_MEMBER(setaroul_state::rtc_r)
-{
- if (offset >= 7)
- ++offset;
- if (offset / 2 >= 7)
- return 0;
- return (m_rtc->read(space, offset / 2, mem_mask) >> ((offset & 1) * 4)) & 0xf;
-}
-
-WRITE16_MEMBER(setaroul_state::rtc_w)
-{
-}
-
-// Inputs
-u16 setaroul_state::inputs_r()
-{
- if (m_mux < 0x1a)
- return m_bet[m_mux]->read();
- return 0xff;
-}
-void setaroul_state::mux_w(u16 data)
-{
- m_mux = data;
-}
-
-// Outputs
-void setaroul_state::show_outputs()
-{
-#ifdef MAME_DEBUG
- popmessage("Pay: %02X Led: %02X", m_pay, m_led);
-#endif
-}
-
-void setaroul_state::pay_w(u8 data)
-{
- m_pay = data;
-
- machine().bookkeeping().coin_counter_w(6, data & 0x01); // coin in (meter 6 in input test, touch '7')
- machine().bookkeeping().coin_counter_w(5, data & 0x02); // coupon in (meter 5 in input test, touch '6')
- machine().bookkeeping().coin_counter_w(4, data & 0x04); // coin drop (meter 4 in input test, touch '5')
- machine().bookkeeping().coin_counter_w(3, data & 0x08); // unused? (meter 3 in input test, touch '4')
- machine().bookkeeping().coin_counter_w(2, data & 0x10); // medal out (meter 2 in input test, touch '3')
- machine().bookkeeping().coin_counter_w(1, data & 0x20); // note in (meter 1 in input test, touch '2')
- // data & 0x40 // hopper lock-out (lock.o in input test, touch '8')
- // data & 0x80 // hopper motor (hop.h in input test, touch '0')
- m_hopper->motor_w((!(data & 0x40) && (data & 0x80)) ? 1 : 0);
-
- show_outputs();
-}
-
-void setaroul_state::led_w(u8 data)
-{
- m_led = data;
-
- m_leds[0] = BIT(data, 0); // pay out (hop.c in input test, touch '1')
- m_leds[1] = BIT(data, 1); // call attendant (cal.o in input test, touch '9')
- //
- // data & 0x10 // hopper divider (divider in input test, touch '10')
- // data & 0x80 // video enable?
-
- show_outputs();
-}
-
-void setaroul_state::setaroul_map(address_map &map)
-{
- map(0x000000, 0x01ffff).rom();
-
- map(0x800000, 0x800003).noprw(); // RS232C Auto Time Set: r/w
-
- map(0xc00000, 0xc03fff).ram().share("nvram");
-
- map(0xc40000, 0xc40001).noprw(); // lev. 2/5 irq ack
- map(0xc80000, 0xc80001).noprw(); // lev. 4 irq ack
-
- map(0xcc0000, 0xcc001f).rw(FUNC(setaroul_state::rtc_r), FUNC(setaroul_state::rtc_w));
-
- map(0xd00000, 0xd00001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
-
- map(0xd40000, 0xd40001).portr("DSW1-A");
- map(0xd40001, 0xd40001).w(FUNC(setaroul_state::pay_w));
- map(0xd40002, 0xd40003).portr("DSW1-B");
-
- map(0xd40004, 0xd40005).portr("DSW2-A");
- map(0xd40006, 0xd40007).portr("DSW2-B");
-
- map(0xd40008, 0xd40009).portr("COIN");
- map(0xd40009, 0xd40009).w(FUNC(setaroul_state::led_w));
- map(0xd4000a, 0xd4000b).portr("DOOR");
-
- map(0xd40010, 0xd40011).rw(FUNC(setaroul_state::inputs_r), FUNC(setaroul_state::mux_w));
-
- map(0xd40018, 0xd40019).portr("DSW3");
-
- map(0xdc0000, 0xdc3fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
-
- map(0xe00000, 0xe03fff).ram().w(FUNC(setaroul_state::vram_w<0>)).share("vram_0");
- map(0xe40000, 0xe40005).ram().share("vctrl_0"); // VRAM Ctrl
- map(0xf00000, 0xf03fff).rw(FUNC(setaroul_state::spritecode_r), FUNC(setaroul_state::spritecode_w));
- map(0xf40000, 0xf40bff).w(FUNC(setaroul_state::spriteylow_w));
- map(0xf40c00, 0xf40c11).w(FUNC(setaroul_state::spritectrl_w));
-
-// map(0xf80000, 0xf80001).w(FUNC(setaroul_state::xxx)); // $40 at boot
-}
-
-/***************************************************************************
- Extreme Downhill / Sokonuke
-***************************************************************************/
-
-void seta_state::extdwnhl_map(address_map &map)
-{
- map.unmap_value_high();
- map(0x000000, 0x0fffff).rom(); // ROM
- map(0x200000, 0x20ffff).ram(); // RAM
- map(0x210000, 0x21ffff).ram(); // RAM
- map(0x220000, 0x23ffff).ram(); // RAM (sokonuke)
- map(0x400000, 0x400001).portr("P1"); // P1
- map(0x400002, 0x400003).portr("P2"); // P2
- map(0x400004, 0x400005).portr("COINS"); // Coins
- map(0x400008, 0x40000b).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x40000c, 0x40000d).rw("watchdog", FUNC(watchdog_timer_device::reset16_r), FUNC(watchdog_timer_device::reset16_w)); // Watchdog (extdwnhl (R) & sokonuke (W) MUST RETURN $FFFF)
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_counter_w)); // Coin Counter (no lockout)
- map(0x500003, 0x500003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x500004, 0x500007).noprw(); // IRQ Ack (extdwnhl (R) & sokonuke (W))
- map(0x600400, 0x600fff).ram().share("paletteram1"); // Palette
- map(0x601000, 0x610bff).ram(); //
- map(0x800000, 0x803fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
- map(0x804000, 0x80ffff).ram(); //
- map(0x880000, 0x883fff).ram().w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2&3
- map(0x884000, 0x88ffff).ram(); //
- map(0x900000, 0x900005).ram().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0x980000, 0x980005).ram().share("vctrl_1"); // VRAM 2&3 Ctrl
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xa80000, 0xa80001).ram(); // ? 0x4000
- map(0xb00000, 0xb03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xb04000, 0xb13fff).ram(); //
- map(0xe00000, 0xe03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
-}
-
-
-/***************************************************************************
- (Kamen) Masked Riders Club Battle Race / Mad Shark
-***************************************************************************/
-
-void seta_state::kamenrid_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x200000, 0x20ffff).ram(); // RAM
- map(0x500000, 0x500001).portr("P1"); // P1
- map(0x500002, 0x500003).portr("P2"); // P2
- map(0x500004, 0x500007).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x500008, 0x500009).portr("COINS"); // Coins
- map(0x50000c, 0x50000d).rw("watchdog", FUNC(watchdog_timer_device::reset16_r), FUNC(watchdog_timer_device::reset16_w)); // xx Watchdog? (sokonuke)
- map(0x600001, 0x600001).w(FUNC(seta_state::seta_coin_counter_w)); // Coin Counter (no lockout)
- map(0x600003, 0x600003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x600004, 0x600005).w(FUNC(seta_state::ipl1_ack_w));
- map(0x600006, 0x600007).w(FUNC(seta_state::ipl2_ack_w));
- map(0x700000, 0x7003ff).ram(); // Palette RAM (tested)
- map(0x700400, 0x700fff).ram().share("paletteram1"); // Palette
- map(0x701000, 0x703fff).ram(); // Palette
- map(0x800000, 0x803fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
- map(0x804000, 0x807fff).ram(); // tested
- map(0x880000, 0x883fff).ram().w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2&3
- map(0x884000, 0x887fff).ram(); // tested
- map(0x900000, 0x900005).ram().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0x980000, 0x980005).ram().share("vctrl_1"); // VRAM 2&3 Ctrl
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xa80000, 0xa80001).ram(); // ? $4000
- map(0xb00000, 0xb03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xb04000, 0xb07fff).ram(); // tested
- map(0xc00000, 0xc00007).rw("pit", FUNC(pit8254_device::read), FUNC(pit8254_device::write)).umask16(0x00ff);
- map(0xd00000, 0xd03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
-}
-
-/* almost identical to kamenrid */
-void seta_state::madshark_map(address_map &map)
-{
- map(0x000000, 0x0fffff).rom(); // ROM
- map(0x200000, 0x20ffff).ram(); // RAM
- map(0x500000, 0x500001).portr("P1"); // P1
- map(0x500002, 0x500003).portr("P2"); // P2
- map(0x500004, 0x500005).portr("COINS"); // Coins
- map(0x500008, 0x50000b).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x50000c, 0x50000d).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
- map(0x600001, 0x600001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout
- map(0x600003, 0x600003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x600004, 0x600005).w(FUNC(seta_state::ipl1_ack_w));
- map(0x600006, 0x600007).w(FUNC(seta_state::ipl2_ack_w));
- map(0x700400, 0x700fff).ram().share("paletteram1"); // Palette
- map(0x800000, 0x803fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
- map(0x880000, 0x883fff).ram().w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2&3
- map(0x900000, 0x900005).ram().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0x980000, 0x980005).ram().share("vctrl_1"); // VRAM 2&3 Ctrl
-
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xa80000, 0xa80001).ram(); // ? $4000
- map(0xb00000, 0xb03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xc00000, 0xc00007).rw("pit", FUNC(pit8254_device::read), FUNC(pit8254_device::write)).umask16(0x00ff);
- map(0xd00000, 0xd03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
-}
-
-
-void seta_state::magspeed_lights_w(offs_t offset, u16 data, u16 mem_mask)
-{
- COMBINE_DATA(&m_magspeed_lights[offset]);
-
- for (int i = 0; i < 16; i++)
- m_leds[offset * 16 + i] = BIT(m_magspeed_lights[offset], i);
-
-// popmessage("%04X %04X %04X", m_magspeed_lights[0], m_magspeed_lights[1], m_magspeed_lights[2]);
-}
-
-/* almost identical to kamenrid */
-void seta_state::magspeed_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x1f8000, 0x1f8fff).noprw(); // NVRAM?
- map(0x200000, 0x20ffff).ram(); // RAM
- map(0x500000, 0x500001).portr("P1"); // P1
- map(0x500002, 0x500003).portr("P2"); // P2
- map(0x500004, 0x500005).portr("COINS"); // Coins
- map(0x500008, 0x50000b).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x50000c, 0x50000d).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
- map(0x500011, 0x500011).w(FUNC(seta_state::seta_coin_counter_w)); // Coin Counter (no lockout)
- map(0x500015, 0x500015).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x500018, 0x500019).w(FUNC(seta_state::ipl1_ack_w)); // lev 2 irq ack?
- map(0x50001c, 0x50001d).w(FUNC(seta_state::ipl2_ack_w)); // lev 4 irq ack?
- map(0x600000, 0x600005).w(FUNC(seta_state::magspeed_lights_w)); // Lights
- map(0x600006, 0x600007).nopw(); // ?
- map(0x700000, 0x7003ff).ram(); // Palette RAM (tested)
- map(0x700400, 0x700fff).ram().share("paletteram1"); // Palette
- map(0x701000, 0x703fff).ram(); // Palette RAM (tested)
- map(0x800000, 0x803fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
- map(0x804000, 0x807fff).ram(); // tested
- map(0x880000, 0x883fff).ram().w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2&3
- map(0x884000, 0x887fff).ram(); // tested
- map(0x900000, 0x900005).ram().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0x980000, 0x980005).ram().share("vctrl_1"); // VRAM 2&3 Ctrl
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xa80000, 0xa80001).ram(); // ? $4000
- map(0xb00000, 0xb03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xb04000, 0xb07fff).ram(); // tested
- map(0xc00000, 0xc00007).rw("pit", FUNC(pit8254_device::read), FUNC(pit8254_device::write)).umask16(0x00ff);
- map(0xd00000, 0xd03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
-}
-
-
-/***************************************************************************
- Krazy Bowl
-***************************************************************************/
-
-void seta_state::krzybowl_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0xf00000, 0xf0ffff).ram(); // RAM
- map(0x100000, 0x100001).nopr(); // ?
- map(0x200000, 0x200001).nopr(); // ?
- map(0x300000, 0x300003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x400000, 0x400001).nopw(); // ?
- map(0x500000, 0x500001).portr("P1"); // P1
- map(0x500002, 0x500003).portr("P2"); // P2
- map(0x500004, 0x500005).portr("COINS"); // Coins
- map(0x600000, 0x600007).r("upd1", FUNC(upd4701_device::read_xy)).umask16(0x00ff); // P1 trackball
- map(0x600008, 0x60000f).r("upd2", FUNC(upd4701_device::read_xy)).umask16(0x00ff); // P2 trackball
- map(0x8000f0, 0x8000f1).ram(); // NVRAM
- map(0x800100, 0x8001ff).ram(); // NVRAM
- map(0xa00000, 0xa03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0xb00000, 0xb003ff).ram().share("paletteram1"); // Palette
- map(0xc00000, 0xc03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xd00000, 0xd00001).ram(); // ? 0x4000
- map(0xe00000, 0xe005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xe00600, 0xe00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
-}
-
-
-/***************************************************************************
- Mobile Suit Gundam
-***************************************************************************/
-
-/* Mirror RAM is necessary or startup, to clear Work RAM after the test */
-
-void seta_state::msgundam_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x100000, 0x1fffff).rom(); // ROM
- map(0x200000, 0x20ffff).ram().mirror(0x70000); // RAM
- map(0x400000, 0x400001).portr("P1"); // P1
- map(0x400002, 0x400003).portr("P2"); // P2
- map(0x400004, 0x400005).portr("COINS"); // Coins
- map(0x400000, 0x400001).w(FUNC(seta_state::ipl1_ack_w)); // Lev 2 IRQ Ack
- map(0x400004, 0x400005).w(FUNC(seta_state::ipl2_ack_w)); // Lev 4 IRQ Ack
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout
- map(0x500002, 0x500003).nopw(); // ?
- map(0x500005, 0x500005).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700400, 0x700fff).ram().share("paletteram1"); // Palette
- map(0x800000, 0x8005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0x800600, 0x800607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0x880000, 0x880001).ram(); // ? 0x4000
- map(0x900000, 0x903fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xa00000, 0xa03fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
- map(0xa80000, 0xa83fff).ram().w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2&3
- map(0xb00000, 0xb00005).ram().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0xb80000, 0xb80005).ram().share("vctrl_1"); // VRAM 2&3 Ctrl
- map(0xc00000, 0xc03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0xd00000, 0xd00007).rw("pit", FUNC(pit8254_device::read), FUNC(pit8254_device::write)).umask16(0x00ff);
-}
-
-void seta_state::msgundamb_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x100000, 0x1fffff).rom(); // ROM
- map(0x200000, 0x20ffff).ram(); // RAM
- map(0x400000, 0x400001).portr("P1"); // P1
- map(0x400002, 0x400003).portr("P2"); // P2
- map(0x400004, 0x400005).portr("COINS"); // Coins
- map(0x400000, 0x400001).w(FUNC(seta_state::ipl1_ack_w)); // Lev 2 IRQ Ack
- map(0x400004, 0x400005).w(FUNC(seta_state::ipl2_ack_w)); // Lev 4 IRQ Ack
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_counter_w));
- map(0x500003, 0x500003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x500004, 0x500005).nopw();
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700400, 0x700fff).ram().share("paletteram1"); // Palette
- map(0x800000, 0x803fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
- map(0x880000, 0x883fff).ram().w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2&3
- map(0x900000, 0x900005).ram().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0x980000, 0x980005).ram().share("vctrl_1"); // VRAM 2&3 Ctrl
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xa80000, 0xa80001).ram(); // ? 0x4000
- map(0xb00000, 0xb03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xc00000, 0xc03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0xd00000, 0xd00007).rw("pit", FUNC(pit8254_device::read), FUNC(pit8254_device::write)).umask16(0x00ff);
-}
-
-/***************************************************************************
- Oishii Puzzle
-***************************************************************************/
-
-/* similar to wrofaero */
-void seta_state::oisipuzl_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x100000, 0x17ffff).rom(); // ROM
- map(0x200000, 0x20ffff).ram(); // RAM
- map(0x300000, 0x300003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x400000, 0x400001).portr("P1"); // P1
- map(0x400002, 0x400003).portr("P2"); // P2
- map(0x400004, 0x400005).portr("COINS"); // Coins
- map(0x400000, 0x400001).nopw(); // ? IRQ Ack
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout
- map(0x500003, 0x500003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x500004, 0x500005).nopw(); // ? IRQ Ack
- map(0x700000, 0x703fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0x800000, 0x803fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
- map(0x880000, 0x883fff).ram().w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2&3
- map(0x900000, 0x900005).ram().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0x980000, 0x980005).ram().share("vctrl_1"); // VRAM 2&3 Ctrl
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xa80000, 0xa80001).ram(); // ? 0x4000
- map(0xb00000, 0xb03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xc00400, 0xc00fff).ram().share("paletteram1"); // Palette
-}
-
-
-/***************************************************************************
- Triple Fun
-***************************************************************************/
-
-/* Same as oisipuzl but with the sound system replaced */
-
-void seta_state::triplfun_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x100000, 0x17ffff).rom(); // ROM
- map(0x200000, 0x20ffff).ram(); // RAM
- map(0x300000, 0x300003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x400000, 0x400001).portr("P1"); // P1
- map(0x400002, 0x400003).portr("P2"); // P2
- map(0x400004, 0x400005).portr("COINS"); // Coins
- map(0x400000, 0x400001).nopw(); // ? IRQ Ack
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout
- map(0x500003, 0x500003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x500004, 0x500005).nopw(); // ? IRQ Ack
- map(0x500007, 0x500007).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // tfun sound
- map(0x700000, 0x703fff).noprw();
- map(0x800000, 0x803fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
- map(0x880000, 0x883fff).ram().w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2&3
- map(0x900000, 0x900005).ram().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0x980000, 0x980005).ram().share("vctrl_1"); // VRAM 2&3 Ctrl
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xa80000, 0xa80001).ram(); // ? 0x4000
- map(0xb00000, 0xb03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xc00400, 0xc00fff).ram().share("paletteram1"); // Palette
-}
-
-
-/***************************************************************************
- Pro Mahjong Kiwame
-***************************************************************************/
-
-void kiwame_state::row_select_w(u16 data)
-{
- m_kiwame_row_select = data & 0x001f;
-}
-
-u16 kiwame_state::input_r(offs_t offset)
-{
- const int row_select = m_kiwame_row_select;
- int i;
-
- for (i = 0; i < 5; i++)
- if (row_select & (1<<i)) break;
-
- switch (offset)
- {
- case 0x00/2: return m_key[i]->read();
- case 0x02/2: return m_key[i + 5]->read();
- case 0x04/2: return m_coins->read();
-// case 0x06/2:
- case 0x08/2: return 0xffff;
-
- default:
- logerror("PC %06X - Read input %02X !\n", m_maincpu->pc(), offset * 2);
- return 0x0000;
- }
-}
-
-void kiwame_state::kiwame_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom(); // ROM
- map(0x200000, 0x20ffff).ram().share("nvram"); // RAM
- map(0x800000, 0x803fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0x900000, 0x900001).ram(); // ? 0x4000
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xb00000, 0xb003ff).ram().share("paletteram1"); // Palette
- map(0xc00000, 0xc03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0xd00000, 0xd00009).r(FUNC(kiwame_state::input_r)); // mahjong panel
- map(0xe00000, 0xe00003).r(FUNC(kiwame_state::seta_dsw_r)); // DSW
-}
-
-
-/***************************************************************************
- Thunder & Lightning / Wit's
-***************************************************************************/
-
-u16 seta_state::thunderl_protection_r()
-{
-// logerror("PC %06X - Protection Read\n", m_maincpu->pc());
- return 0x00dd;
-}
-void seta_state::thunderl_protection_w(u16 data)
-{
-// logerror("PC %06X - Protection Written: %04X <- %04X\n", m_maincpu->pc(), offset * 2, data);
-}
-
-/* Similar to downtown etc. */
-
-void seta_state::thunderl_map(address_map &map)
-{
- map(0x000000, 0x00ffff).rom(); // ROM
- map(0xffc000, 0xffffff).ram(); // RAM
- map(0x100000, 0x103fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0x200000, 0x200001).rw(FUNC(seta_state::ipl1_ack_r), FUNC(seta_state::ipl1_ack_w));
- map(0x300000, 0x300001).nopw(); // ?
- map(0x400000, 0x40ffff).w(FUNC(seta_state::thunderl_protection_w)); // Protection (not in wits)
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700000, 0x7003ff).ram().share("paletteram1"); // Palette
- map(0xb00000, 0xb00001).portr("P1"); // P1
- map(0xb00002, 0xb00003).portr("P2"); // P2
- map(0xb00004, 0xb00005).portr("COINS"); // Coins
- map(0xb0000c, 0xb0000d).r(FUNC(seta_state::thunderl_protection_r)); // Protection (not in wits)
- map(0xb00008, 0xb00009).portr("P3"); // P3 (wits)
- map(0xb0000a, 0xb0000b).portr("P4"); // P4 (wits)
- map(0xc00000, 0xc00001).ram(); // ? 0x4000
- map(0xd00000, 0xd005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xd00600, 0xd00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xe00000, 0xe03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xe04000, 0xe07fff).ram(); // (wits)
-}
-
-
-void seta_state::thunderlbl_map(address_map &map)
-{
- map(0x000000, 0x00ffff).rom(); // ROM
- map(0xffc000, 0xffffff).ram(); // RAM
-// map(0x100000, 0x103fff).rw("x1snd", FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0x200000, 0x200001).rw(FUNC(seta_state::ipl1_ack_r), FUNC(seta_state::ipl1_ack_w));
- map(0x300000, 0x300001).nopw(); // ?
-// map(0x400000, 0x40ffff).w(FUNC(seta_state::thunderl_protection_w)); // Protection (not in wits)
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700000, 0x7003ff).ram().share("paletteram1"); // Palette
- map(0xb00000, 0xb00001).portr("P1"); // P1
- map(0xb00002, 0xb00003).portr("P2"); // P2
- map(0xb00004, 0xb00005).portr("COINS"); // Coins
- map(0xb0000c, 0xb0000d).w(m_seta001, FUNC(seta001_device::spritectrl_w8)).umask16(0xff00); // the bootleg is modified to write the first byte of spritectrl here, rather than the usual address
- map(0xb00008, 0xb00009).portr("P3"); // P3 (wits)
- map(0xb00008, 0xb00008).w(m_soundlatch[0], FUNC(generic_latch_8_device::write));
- map(0xb0000a, 0xb0000b).portr("P4"); // P4 (wits)
- map(0xc00000, 0xc00001).ram(); // ? 0x4000
- map(0xd00000, 0xd005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xd00600, 0xd00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xe00000, 0xe03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xe04000, 0xe07fff).ram(); // (wits)
-}
-
-/***************************************************************************
- Wiggie Waggie
-***************************************************************************/
-
-void seta_state::wiggie_map(address_map &map)
-{
- map(0x000000, 0x01ffff).rom(); // ROM
- map(0xffc000, 0xffffff).ram(); // RAM
- map(0x100000, 0x103fff).noprw(); // X1_010 is not used
- map(0x200000, 0x200001).rw(FUNC(seta_state::ipl1_ack_r), FUNC(seta_state::ipl1_ack_w));
- map(0x300000, 0x300001).nopw(); // ?
- map(0x400000, 0x40ffff).w(FUNC(seta_state::thunderl_protection_w)); // Protection (not in wits)
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700000, 0x7003ff).ram().share("paletteram1"); // Palette
- map(0xb00000, 0xb00001).portr("P1"); // P1
- map(0xb00002, 0xb00003).portr("P2"); // P2
- map(0xb00004, 0xb00005).portr("COINS"); // Coins
- map(0xb0000c, 0xb0000d).r(FUNC(seta_state::thunderl_protection_r)); // Protection (not in wits)
- map(0xb00008, 0xb00009).portr("P3"); // P3 (wits)
- map(0xb00008, 0xb00008).w(m_soundlatch[0], FUNC(generic_latch_8_device::write));
- map(0xb0000a, 0xb0000b).portr("P4"); // P4 (wits)
- map(0xc00000, 0xc00001).ram(); // ? 0x4000
- map(0xd00000, 0xd005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xd00600, 0xd00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xe00000, 0xe03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xe04000, 0xe07fff).ram(); // (wits)
-}
-
-void seta_state::wiggie_sound_map(address_map &map)
-{
- map(0x0000, 0x7fff).rom();
- map(0x8000, 0x87ff).ram();
- map(0x9800, 0x9800).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
- map(0xa000, 0xa000).r(m_soundlatch[0], FUNC(generic_latch_8_device::read));
-}
-
-
-/***************************************************************************
- Ultraman Club / SD Gundam Neo Battling
-***************************************************************************/
-
-void seta_state::umanclub_map(address_map &map)
-{
- map(0x000000, 0x03ffff).rom(); // ROM
- map(0x200000, 0x20ffff).ram(); // RAM
- map(0x300000, 0x3003ff).ram().share("paletteram1"); // Palette
- map(0x300400, 0x300fff).ram(); //
- map(0x400000, 0x400001).portr("P1"); // P1
- map(0x400002, 0x400003).portr("P2"); // P2
- map(0x400004, 0x400005).portr("COINS"); // Coins
- map(0x400000, 0x400001).nopw(); // ? (end of lev 2)
- map(0x400004, 0x400005).nopw(); // ? (end of lev 2)
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xa80000, 0xa80001).ram(); // ? 0x4000
- map(0xb00000, 0xb03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xc00000, 0xc03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
-}
-
-
-/***************************************************************************
- Ultra Toukond Densetsu
-***************************************************************************/
-
-void seta_state::utoukond_map(address_map &map)
-{
- map(0x000000, 0x0fffff).rom(); // ROM
- map(0x200000, 0x20ffff).ram(); // RAM
- map(0x400000, 0x400001).portr("P1"); // P1
- map(0x400002, 0x400003).portr("P2"); // P2
- map(0x400004, 0x400005).portr("COINS"); // Coins
- map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout
- map(0x500003, 0x500003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
- map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x700400, 0x700fff).ram().share("paletteram1"); // Palette
- map(0x800000, 0x803fff).ram().w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
- map(0x880000, 0x883fff).ram().w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2&3
- map(0x900000, 0x900005).writeonly().share("vctrl_0");// VRAM 0&1 Ctrl
- map(0x980000, 0x980005).writeonly().share("vctrl_1");// VRAM 2&3 Ctrl
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xb00000, 0xb03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xc00001, 0xc00001).w(m_soundlatch[0], FUNC(generic_latch_8_device::write));
- map(0xe00000, 0xe00001).nopw(); // ? ack
-}
-
-/***************************************************************************
- Pairs Love
-***************************************************************************/
-
-u16 seta_state::pairlove_prot_r(offs_t offset)
-{
- const u16 retdata = m_pairslove_protram[offset];
- //osd_printf_debug("pairs love protection? read %06x %04x %04x\n",m_maincpu->pc(), offset,retdata);
- if (!machine().side_effects_disabled())
- m_pairslove_protram[offset] = m_pairslove_protram_old[offset];
- return retdata;
-}
-
-void seta_state::pairlove_prot_w(offs_t offset, u16 data)
-{
- //osd_printf_debug("pairs love protection? write %06x %04x %04x\n",m_maincpu->pc(), offset,data);
- m_pairslove_protram_old[offset] = m_pairslove_protram[offset];
- m_pairslove_protram[offset] = data;
-}
-
-void seta_state::pairlove_map(address_map &map)
-{
- map(0x000000, 0x03ffff).rom(); // ROM
- map(0x100000, 0x100001).nopw(); // ? 1 (start of interrupts, main loop: watchdog?)
- map(0x200000, 0x200001).nopw(); // ? 0/1 (IRQ acknowledge?)
- map(0x300000, 0x300003).r(FUNC(seta_state::seta_dsw_r)); // DSW
- map(0x400001, 0x400001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout + Sound Enable (bit 4?)
- map(0x500000, 0x500001).portr("P1"); // P1
- map(0x500002, 0x500003).portr("P2"); // P2
- map(0x500004, 0x500005).portr("COINS"); // Coins
- map(0x900000, 0x9001ff).rw(FUNC(seta_state::pairlove_prot_r), FUNC(seta_state::pairlove_prot_w));
- map(0xa00000, 0xa03fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
- map(0xb00000, 0xb00fff).ram().share("paletteram1"); // Palette
- map(0xc00000, 0xc03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
- map(0xd00000, 0xd00001).ram(); // ? 0x4000
- map(0xe00000, 0xe005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xe00600, 0xe00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xf00000, 0xf0ffff).ram(); // RAM
-}
-
-
-/***************************************************************************
- Crazy Fight
-***************************************************************************/
-
-void seta_state::crazyfgt_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom();
- map(0x400000, 0x40ffff).ram();
- map(0x610000, 0x610001).portr("COINS");
- map(0x610002, 0x610003).portr("UNK");
- map(0x610004, 0x610005).portr("INPUT");
- map(0x610006, 0x610007).nopw();
- map(0x620000, 0x620003).nopw(); // protection
- map(0x630000, 0x630003).r(FUNC(seta_state::seta_dsw_r));
- map(0x640400, 0x640fff).writeonly().share("paletteram1"); // Palette
- map(0x650000, 0x650003).w("ymsnd", FUNC(ym3812_device::write)).umask16(0x00ff);
- map(0x658001, 0x658001).w("oki", FUNC(okim6295_device::write));
- map(0x670000, 0x670001).nopr(); // watchdog?
- map(0x800000, 0x803fff).w(FUNC(seta_state::vram_w<1>)).share("vram_1"); // VRAM 2
- map(0x880000, 0x883fff).w(FUNC(seta_state::vram_w<0>)).share("vram_0"); // VRAM 0
- map(0x900000, 0x900005).ram().share("vctrl_1"); // VRAM 2&3 Ctrl
- map(0x980000, 0x980005).ram().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0xa00000, 0xa005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xa00600, 0xa00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
- map(0xa80000, 0xa80001).nopw(); // ? 0x4000
- map(0xb00000, 0xb03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
-}
-
-
-/***************************************************************************
- Jockey Club
-***************************************************************************/
-
-// RTC (To do: write a D4911C device)
-READ16_MEMBER(jockeyc_state::rtc_r)
-{
- if (offset >= 7)
- ++offset;
- if (offset / 2 >= 7)
- return 0;
- return (m_rtc->read(space, offset / 2, mem_mask) >> ((offset & 1) * 4)) & 0xf;
-}
-
-WRITE16_MEMBER(jockeyc_state::rtc_w)
-{
-}
-
-// Outputs
-void jockeyc_state::show_outputs()
-{
-#ifdef MAME_DEBUG
- popmessage("Mux: %04X Out: %04X", m_mux & (~0xf8), m_out);
-#endif
-}
-
-u16 jockeyc_state::mux_r()
-{
- switch (m_mux & 0xf8)
- {
- case 0x08: return (m_key2[0]->read() << 8) | m_key1[0]->read();
- case 0x10: return (m_key2[1]->read() << 8) | m_key1[1]->read();
- case 0x20: return (m_key2[2]->read() << 8) | m_key1[2]->read();
- case 0x40: return (m_key2[3]->read() << 8) | m_key1[3]->read();
- case 0x80: return (m_key2[4]->read() << 8) | m_key1[4]->read();
- }
- logerror("%06X: unknown key read, mux = %04x\n", m_maincpu->pc(), m_mux);
- return 0xffff;
-}
-
-void jockeyc_state::jockeyc_mux_w(offs_t offset, u16 data, u16 mem_mask)
-{
- COMBINE_DATA(&m_mux);
-
- // 0x8000 lamp 5 (p1 cancel)
- // 0x4000 lamp 4 (p2 payout)
- // 0x2000 lamp 3 (p1 payout)
- // 0x1000 lamp 2
- // 0x0800 lamp 1
- // 0x0400 p2 divider
- // 0x0200 hopper 1 motor
- // 0x0100 hopper 2 motor / switch hopper output to p2 (single hopper mode)
- // 0x00f8 key mux
- // 0x0004 p1 divider
- // 0x0002 hopper 2 motor / switch hopper output to p1 (single hopper mode)
- // 0x0001 hopper 1 motor
-
- m_out_cancel[0] = BIT(data, 15);
- m_out_payout[1] = BIT(data, 14);
- m_out_payout[0] = BIT(data, 13);
-
- update_hoppers();
- show_outputs();
-}
-
-void jockeyc_state::jockeyc_out_w(offs_t offset, u16 data, u16 mem_mask)
-{
- COMBINE_DATA(&m_out);
-
- // 0x8000 lamp 8 (p2 start)
- // 0x4000 lamp 7 (p1 start)
- // 0x2000 meter 6 (coin 2/4)
- // 0x1000 meter 5 (p1 hopper coin out)
- // 0x0800 meter 4
- // 0x0400 meter 3
- // 0x0200 meter 2 (coin 1/3)
- // 0x0100 meter 1
- // 0x0080 ? always set, save for "backup memory is wrong" screen and ram test
- // 0x0040
- // 0x0020 lamp 6 (p2 cancel)
- // 0x0010 call attendant
- // 0x0008 p2 hopper lockout
- // 0x0004 p1 hopper lockout
- // 0x0002
- // 0x0001
-
- m_out_start[1] = BIT(data, 15);
- m_out_start[0] = BIT(data, 14);
- m_out_cancel[1] = BIT(data, 5);
-
- machine().bookkeeping().coin_counter_w(6, data & 0x2000); // coin 2/4
- machine().bookkeeping().coin_counter_w(5, data & 0x1000); // p1 hopper coin out
- machine().bookkeeping().coin_counter_w(2, data & 0x0200); // coin 1/3
-
- update_hoppers();
- show_outputs();
-}
-
-void jockeyc_state::update_hoppers()
-{
- if (!m_cabinet)
- return;
-
- if (m_cabinet->read() & 1)
- {
- // double hoppers
- m_hopper1->motor_w((m_mux & 0x0201) && !(m_out & 0x0004));
- m_hopper2->motor_w((m_mux & 0x0102) && !(m_out & 0x0008));
- }
- else
- {
- // single hopper (jockeyc: in test mode, use key 5/6 to select pay1/pay2)
- m_hopper1->motor_w((m_mux & 0x0201) && (!(m_out & 0x0004) || !(m_out & 0x0008)));
- }
-}
-
-u16 jockeyc_state::dsw_r(offs_t offset)
-{
- const int shift = offset * 4;
- return ((((m_dsw1->read() >> shift) & 0xf)) << 0) |
- ((((m_dsw2_3->read() >> shift) & 0xf)) << 4) |
- ((((m_dsw2_3->read() >> (shift+8)) & 0xf)) << 8) ;
-}
-
-u16 jockeyc_state::comm_r()
-{
- return 0xffff;//machine().rand();
-}
-
-/*
- There is a hidden editor activated by writing 7 in $ffd268.b (i.e. the main loop routine).
- This would be triggered at AA58 when pressing "Special Test". But the latter routine is not called in the released code.
- The editor is comprised of 7 screens operated with a trackball and two buttons.
-
- Another note... on Christmas day the attract loop includes a "Merry Xmas" screen ($ffd268.b = 3)
-*/
-#define JOCKEYC_HIDDEN_EDITOR 0
-
-u16 jockeyc_state::trackball_r(offs_t offset)
-{
- switch (offset)
- {
- case 0/2: return (m_p1x->read() >> 0) & 0xff;
- case 2/2: return (m_p1x->read() >> 8) & 0xff;
- case 4/2: return (m_p1y->read() >> 0) & 0xff;
- case 6/2: return (m_p1y->read() >> 8) & 0xff;
- }
- return 0;
-}
-
-void jockeyc_state::jockeyc_map(address_map &map)
-{
- map(0x000000, 0x1fffff).rom(); // ROM (up to 2MB)
-
- map(0x200000, 0x200001).rw(FUNC(jockeyc_state::mux_r), FUNC(jockeyc_state::jockeyc_mux_w));
- map(0x200002, 0x200003).portr("COIN");
- map(0x200010, 0x200011).portr("SERVICE").w(FUNC(jockeyc_state::jockeyc_out_w));
-
- map(0x300000, 0x300001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
- map(0x300002, 0x300003).noprw(); // clr.l $300000 (watchdog)
-
- map(0x300010, 0x300011).nopw(); // lev1 ack
- map(0x300020, 0x300021).nopw(); // lev2 ack
- map(0x300040, 0x300041).nopw(); // lev4 ack
- map(0x300060, 0x300061).nopw(); // lev6 ack
-
-#if JOCKEYC_HIDDEN_EDITOR
- map(0x400000, 0x400007).r(FUNC(jockeyc_state::trackball_r));
-#endif
-
- map(0x500000, 0x500003).r(FUNC(jockeyc_state::dsw_r)); // DSW x 3
- map(0x600000, 0x600001).r(FUNC(jockeyc_state::comm_r)); // comm data
- map(0x600002, 0x600003).r(FUNC(jockeyc_state::comm_r)); // comm status (bits 0,4,5,6)
-
- map(0x800000, 0x80001f).rw(FUNC(jockeyc_state::rtc_r), FUNC(jockeyc_state::rtc_w));
-
- map(0x900000, 0x903fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
-
- map(0xa00000, 0xa00005).writeonly().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0xb00000, 0xb03fff).ram().w(FUNC(jockeyc_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
- map(0xb04000, 0xb0ffff).nopw(); // likely left-over
-
- map(0xc00000, 0xc00001).ram(); // ? 0x4000
-
- map(0xd00000, 0xd005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xd00600, 0xd00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
-
- map(0xe00000, 0xe03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
-
- map(0xffc000, 0xffffff).ram().share("nvram"); // RAM (battery backed)
-}
-
-
-/***************************************************************************
- International Toote
-***************************************************************************/
-
-// Same as Jockey Club but with additional protection
-
-void jockeyc_state::inttoote_mux_w(offs_t offset, u16 data, u16 mem_mask)
-{
- COMBINE_DATA(&m_mux);
-
- // 0x8000 lamp?
- // 0x1000 lamp (help button)
- // 0x0800 lamp (start button)
-
- m_out_help = BIT(data, 12);
- m_out_itstart = BIT(data, 11);
-
- update_hoppers();
- show_outputs();
-}
-
-void jockeyc_state::inttoote_out_w(offs_t offset, u16 data, u16 mem_mask)
-{
- COMBINE_DATA(&m_out);
-
- // 0x2000 meter (key in)
- // 0x1000 meter (coin out)
- // 0x0800 meter (coin in)
- // 0x0100 meter (key out)
- // 0x0080 ? set when there are credits
-
- machine().bookkeeping().coin_counter_w(0, data & 0x2000); // key in
- machine().bookkeeping().coin_counter_w(1, data & 0x1000); // coin out
- machine().bookkeeping().coin_counter_w(2, data & 0x0800); // coin in
- machine().bookkeeping().coin_counter_w(3, data & 0x0100); // key out
-
- update_hoppers();
- show_outputs();
-}
-
-u16 jockeyc_state::inttoote_700000_r(offs_t offset)
-{
- return m_inttoote_700000[offset] & 0x3f;
-}
-
-void jockeyc_state::inttoote_map(address_map &map)
-{
- map(0x000000, 0x1fffff).rom(); // ROM (up to 2MB)
-
- map(0x200000, 0x200001).rw(FUNC(jockeyc_state::mux_r), FUNC(jockeyc_state::inttoote_mux_w));
- map(0x200002, 0x200003).portr("COIN");
- map(0x200010, 0x200011).portr("SERVICE").w(FUNC(jockeyc_state::inttoote_out_w));
-
- map(0x300000, 0x300001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
-
- map(0x300010, 0x300011).nopw(); // lev1 ack
- map(0x300020, 0x300021).nopw(); // lev2 ack
- map(0x300040, 0x300041).nopw(); // lev4 ack
- map(0x300060, 0x300061).nopw(); // lev6 ack
-
- map(0x500000, 0x500003).r(FUNC(jockeyc_state::dsw_r)); // DSW x 3
-
- map(0x700000, 0x700101).ram().r(FUNC(jockeyc_state::inttoote_700000_r)).share("inttoote_700000");
-
- map(0x800000, 0x80001f).rw(FUNC(jockeyc_state::rtc_r), FUNC(jockeyc_state::rtc_w));
-
- map(0x900000, 0x903fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound
-
- map(0xa00000, 0xa00005).writeonly().share("vctrl_0"); // VRAM 0&1 Ctrl
- map(0xb00000, 0xb03fff).ram().w(FUNC(jockeyc_state::vram_w<0>)).share("vram_0"); // VRAM 0&1
-
- map(0xc00000, 0xc00001).ram(); // ? 0x4000
-
- map(0xd00000, 0xd005ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r16), FUNC(seta001_device::spriteylow_w16)); // Sprites Y
- map(0xd00600, 0xd00607).ram().rw(m_seta001, FUNC(seta001_device::spritectrl_r16), FUNC(seta001_device::spritectrl_w16));
-
- map(0xe00000, 0xe03fff).ram().rw(m_seta001, FUNC(seta001_device::spritecode_r16), FUNC(seta001_device::spritecode_w16)); // Sprites Code + X + Attr
-
- map(0xffc000, 0xffffff).ram().share("nvram"); // RAM (battery backed)
-}
-
-
-/***************************************************************************
-
-
- Sub / Sound CPU
-
-
-***************************************************************************/
-
-void seta_state::sub_bankswitch_w(u8 data)
-{
- m_subbank->set_entry(data >> 4);
-}
-
-void seta_state::sub_bankswitch_lockout_w(u8 data)
-{
- sub_bankswitch_w(data);
- seta_coin_lockout_w(data);
-}
-
-
-/***************************************************************************
- Thundercade
-***************************************************************************/
-
-u8 seta_state::ff_r(){return 0xff;}
-
-void seta_state::tndrcade_sub_map(address_map &map)
-{
- map(0x0000, 0x01ff).ram(); // RAM
- map(0x0800, 0x0800).r(FUNC(seta_state::ff_r)); // ? (bits 0/1/2/3: 1 -> do test 0-ff/100-1e0/5001-57ff/banked rom)
- //map(0x0800, 0x0800).r(m_soundlatch[0], FUNC(generic_latch_8_device::read)); //
- //map(0x0801, 0x0801).r(m_soundlatch[1], FUNC(generic_latch_8_device::read)); //
- map(0x1000, 0x1000).portr("P1"); // P1
- map(0x1000, 0x1000).w(FUNC(seta_state::sub_bankswitch_lockout_w)); // ROM Bank + Coin Lockout
- map(0x1001, 0x1001).portr("P2"); // P2
- map(0x1002, 0x1002).portr("COINS"); // Coins
- map(0x2000, 0x2001).rw("ym1", FUNC(ym2203_device::read), FUNC(ym2203_device::write));
- map(0x3000, 0x3001).w("ym2", FUNC(ym3812_device::write));
- map(0x5000, 0x57ff).ram().share("sharedram"); // Shared RAM
- map(0x6000, 0x7fff).rom(); // ROM
- map(0x8000, 0xbfff).bankr("subbank"); // Banked ROM
- map(0xc000, 0xffff).rom(); // ROM
-}
-
-
-/***************************************************************************
- Twin Eagle
-***************************************************************************/
-
-void seta_state::twineagl_sub_map(address_map &map)
-{
- map(0x0000, 0x01ff).ram(); // RAM
- map(0x0800, 0x0800).r(m_soundlatch[0], FUNC(generic_latch_8_device::read)); //
- map(0x0801, 0x0801).r(m_soundlatch[1], FUNC(generic_latch_8_device::read)); //
- map(0x1000, 0x1000).portr("P1"); // P1
- map(0x1000, 0x1000).w(FUNC(seta_state::sub_bankswitch_lockout_w)); // ROM Bank + Coin Lockout
- map(0x1001, 0x1001).portr("P2"); // P2
- map(0x1002, 0x1002).portr("COINS"); // Coins
- map(0x5000, 0x57ff).ram().share("sharedram"); // Shared RAM
- map(0x7000, 0x7fff).rom(); // ROM
- map(0x8000, 0xbfff).bankr("subbank"); // Banked ROM
- map(0xc000, 0xffff).rom(); // ROM
-}
-
-
-/***************************************************************************
- DownTown
-***************************************************************************/
-
-u8 seta_state::downtown_ip_r(offs_t offset)
-{
- int dir1 = m_rot[0]->read(); // analog port
- int dir2 = m_rot[1]->read(); // analog port
-
- dir1 = (~ (0x800 >> dir1)) & 0xfff;
- dir2 = (~ (0x800 >> dir2)) & 0xfff;
-
- switch (offset)
- {
- case 0: return (m_coins->read() & 0xf0) + (dir1 >> 8); // upper 4 bits of p1 rotation + coins
- case 1: return (dir1 & 0xff); // lower 8 bits of p1 rotation
- case 2: return m_p1->read(); // p1
- case 3: return 0xff; // ?
- case 4: return (dir2 >> 8); // upper 4 bits of p2 rotation + ?
- case 5: return (dir2 & 0xff); // lower 8 bits of p2 rotation
- case 6: return m_p2->read(); // p2
- case 7: return 0xff; // ?
- }
-
- return 0;
-}
-
-void seta_state::downtown_sub_map(address_map &map)
-{
- map(0x0000, 0x01ff).ram(); // RAM
- map(0x0800, 0x0800).r(m_soundlatch[0], FUNC(generic_latch_8_device::read)); //
- map(0x0801, 0x0801).r(m_soundlatch[1], FUNC(generic_latch_8_device::read)); //
- map(0x1000, 0x1007).r(FUNC(seta_state::downtown_ip_r)); // Input Ports
- map(0x1000, 0x1000).w(FUNC(seta_state::sub_bankswitch_lockout_w)); // ROM Bank + Coin Lockout
- map(0x5000, 0x57ff).ram().share("sharedram"); // Shared RAM
- map(0x7000, 0x7fff).rom(); // ROM
- map(0x8000, 0xbfff).bankr("subbank"); // Banked ROM
- map(0xc000, 0xffff).rom(); // ROM
-}
-
-
-/***************************************************************************
- Caliber 50 / U.S. Classic
-***************************************************************************/
-
-MACHINE_RESET_MEMBER(seta_state,calibr50)
-{
- calibr50_sub_bankswitch_w(0);
-}
-
-void seta_state::calibr50_sub_bankswitch_w(u8 data)
-{
- // Bits 7-4: BK3-BK0
- sub_bankswitch_w(data);
-
- // Bit 3: NMICLR
- if (!BIT(data, 3))
- m_soundlatch[0]->acknowledge_w();
-
- // Bit 2: IRQCLR
- if (!BIT(data, 2))
- m_subcpu->set_input_line(0, CLEAR_LINE);
-
- // Bit 1: PCMMUTE
- m_x1->set_output_gain(ALL_OUTPUTS, BIT(data, 0) ? 0.0f : 1.0f);
-}
-
-void seta_state::calibr50_soundlatch2_w(u8 data)
-{
- m_soundlatch[1]->write(data);
- m_subcpu->spin_until_time(attotime::from_usec(50)); // Allow the other cpu to reply
-}
-
-void seta_state::calibr50_sub_map(address_map &map)
-{
- map(0x0000, 0x1fff).lrw8(
- NAME([this](offs_t offset) { return m_x1->read(offset ^ 0x1000); }),
- NAME([this](offs_t offset, u8 data) { m_x1->write(offset ^ 0x1000, data); })); // Sound
- map(0x4000, 0x4000).r(m_soundlatch[0], FUNC(generic_latch_8_device::read)); // From Main CPU
- map(0x4000, 0x4000).w(FUNC(seta_state::calibr50_sub_bankswitch_w)); // Bankswitching
- map(0x8000, 0xbfff).bankr("subbank"); // Banked ROM
- map(0xc000, 0xffff).rom(); // ROM
- map(0xc000, 0xc000).w(FUNC(seta_state::calibr50_soundlatch2_w)); // To Main CPU
-}
-
-
-/***************************************************************************
- Meta Fox
-***************************************************************************/
-
-void seta_state::metafox_sub_map(address_map &map)
-{
- map(0x0000, 0x01ff).ram(); // RAM
- map(0x0800, 0x0800).r(m_soundlatch[0], FUNC(generic_latch_8_device::read)); //
- map(0x0801, 0x0801).r(m_soundlatch[1], FUNC(generic_latch_8_device::read)); //
- map(0x1000, 0x1000).portr("COINS"); // Coins
- map(0x1000, 0x1000).w(FUNC(seta_state::sub_bankswitch_lockout_w)); // ROM Bank + Coin Lockout
- map(0x1002, 0x1002).portr("P1"); // P1
- //map(0x1004, 0x1004).nopr(); // ?
- map(0x1006, 0x1006).portr("P2"); // P2
- map(0x5000, 0x57ff).ram().share("sharedram"); // Shared RAM
- map(0x7000, 0x7fff).rom(); // ROM
- map(0x8000, 0xbfff).bankr("subbank"); // Banked ROM
- map(0xc000, 0xffff).rom(); // ROM
-}
-
-
-/***************************************************************************
- Ultra Toukon Densetsu
-***************************************************************************/
-
-void seta_state::utoukond_sound_control_w(u8 data)
-{
- if (!BIT(data, 6))
- m_soundlatch[0]->acknowledge_w();
-
- // other bits used for banking? (low nibble seems to always be 2)
-}
-
-void seta_state::utoukond_sound_map(address_map &map)
-{
- map(0x0000, 0xdfff).rom();
- map(0xe000, 0xefff).ram();
- map(0xf000, 0xffff).rw(m_x1, FUNC(x1_010_device::read), FUNC(x1_010_device::write));
-}
-
-void seta_state::utoukond_sound_io_map(address_map &map)
-{
- map.global_mask(0xff);
- map(0x00, 0x03).rw("ymsnd", FUNC(ym3438_device::read), FUNC(ym3438_device::write));
- map(0x80, 0x80).w(FUNC(seta_state::utoukond_sound_control_w));
- map(0xc0, 0xc0).r(m_soundlatch[0], FUNC(generic_latch_8_device::read));
-}
-
-
-/***************************************************************************
-
-
- Input Ports
-
-
-***************************************************************************/
-
-#define JOY_TYPE1_1BUTTON(_n_) \
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START##_n_ )
-
-#define JOY_TYPE1_2BUTTONS(_n_) \
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START##_n_ )
-
-#define JOY_TYPE1_3BUTTONS(_n_) \
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START##_n_ )
-
-
-#define JOY_TYPE2_1BUTTON(_n_) \
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START##_n_ )
-
-#define JOY_TYPE2_2BUTTONS(_n_) \
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START##_n_ )
-
-#define JOY_TYPE2_3BUTTONS(_n_) \
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(_n_) \
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START##_n_ )
-
-
-#define JOY_ROTATION(_n_, _left_, _right_ ) \
- PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_PLAYER(_n_) PORT_SENSITIVITY(15) PORT_KEYDELTA(15) PORT_CODE_DEC(KEYCODE_##_left_) PORT_CODE_INC(KEYCODE_##_right_)
-
-
-
-/***************************************************************************
- Arbalester
-***************************************************************************/
-
-static INPUT_PORTS_START( arbalest )
- PORT_START("P1") // Player 1
- JOY_TYPE2_2BUTTONS(1)
-
- PORT_START("P2") // Player 2
- JOY_TYPE2_2BUTTONS(2)
-
- PORT_START("COINS") // Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
-
- PORT_START("DSW") // 2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0001, 0x0001, "Licensed To" ) PORT_DIPLOCATION("SW1:1") /* Manual states "Don't Touch" */
- PORT_DIPSETTING( 0x0000, "Taito" ) PORT_CONDITION("DSW",0x4000,NOTEQUALS,0x4000)
- PORT_DIPSETTING( 0x0001, "Jordan" ) PORT_CONDITION("DSW",0x4000,NOTEQUALS,0x4000)
- PORT_DIPSETTING( 0x0000, "Taito" ) PORT_CONDITION("DSW",0x4000,EQUALS,0x4000)
- PORT_DIPSETTING( 0x0001, "Romstar" ) PORT_CONDITION("DSW",0x4000,EQUALS,0x4000) /* Manual shows DSW1-1=Off & DSW2-7=Off */
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "SW1:3" )
- PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:4") /* Manual states "Don't Touch" */
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
- PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x0040, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0080, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0080, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0040, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0300, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( Harder ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x0c00, "Never" )
- PORT_DIPSETTING( 0x0800, "300k Only" )
- PORT_DIPSETTING( 0x0400, "600k Only" )
- PORT_DIPSETTING( 0x0000, "300k & 600k" )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:5,6")
- PORT_DIPSETTING( 0x1000, "1" )
- PORT_DIPSETTING( 0x0000, "2" )
- PORT_DIPSETTING( 0x3000, "3" )
- PORT_DIPSETTING( 0x2000, "5" )
- PORT_DIPNAME( 0x4000, 0x4000, "Licensor Option" ) PORT_DIPLOCATION("SW2:7") /* Manual states "Don't Touch" */
- PORT_DIPSETTING( 0x4000, "Option 1" )
- PORT_DIPSETTING( 0x0000, "Option 2" )
- PORT_DIPNAME( 0x8000, 0x8000, "Coinage Type" ) PORT_DIPLOCATION("SW2:8") /* Manual states "Don't Touch" */
- PORT_DIPSETTING( 0x8000, "Coin Mode 1" )
- PORT_DIPSETTING( 0x0000, "Coin Mode 2" )
-INPUT_PORTS_END
-
-
-/***************************************************************************
- Athena no Hatena?
-***************************************************************************/
-/*
- Athena no Hatena is a quiz game that uses only four buttons for inputs.
- However, the hidden "Test Program" menu makes use of the standard
- stick/3-button input layout. With the default input mapping, the menus
- are unusable as the three SHOT buttons are unmapped. So we have two
- input configurations to allow the debug menu to be usable.
-
- More information about the Test Program menu:
- http://sudden-desu.net/entry/athena-no-hatena-debug-menu-and-functions
-*/
-
-static INPUT_PORTS_START( atehate )
- PORT_START("INPUT_TYPE")
- PORT_CONFNAME(0x01,0x00,"Input Type")
- PORT_CONFSETTING(0x00, "Default Control Panel")
- PORT_CONFSETTING(0x01, "Joystick/3 Button Control Panel (for Debug)")
-
- PORT_START("P1") // Player 1
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x01)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x01)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x01)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x01)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x01)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x01)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x01)
-
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x00)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x00)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x00)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x00)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x00)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x00)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x00)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
-
- PORT_START("P2") // Player 2
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x01)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x01)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x01)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x01)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x01)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x01)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x01)
-
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x00)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x00)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x00)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x00)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x00)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x00)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("INPUT_TYPE", 0x01, EQUALS, 0x00)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
-
- PORT_START("COINS") // Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) // 4 Bits Called "Cut DSW"
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") // 2 DSWs - $e00001 & 3.b
- PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3")
- PORT_DIPSETTING( 0x0001, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:4,5,6")
- PORT_DIPSETTING( 0x0008, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "SW2:8" ) /* Listed as "Unused" */
-
- PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x0200, IP_ACTIVE_LOW, "SW1:2" )
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x0000, "2" )
- PORT_DIPSETTING( 0x3000, "3" )
- PORT_DIPSETTING( 0x1000, "4" )
- PORT_DIPSETTING( 0x2000, "5" )
- PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0xc000, DEF_STR( None ) )
- PORT_DIPSETTING( 0x0000, "20K Only" )
- PORT_DIPSETTING( 0x8000, "20K, Every 30K" )
- PORT_DIPSETTING( 0x4000, "30K, Every 40K" )
-INPUT_PORTS_END
-
-
-/***************************************************************************
- Blandia
-***************************************************************************/
-
-static INPUT_PORTS_START( blandia )
- PORT_START("P1") //Player 1 - $400000.w
- JOY_TYPE1_3BUTTONS(1)
-
- PORT_START("P2") //Player 2 - $400002.w
- JOY_TYPE1_3BUTTONS(2)
-
- PORT_START("COINS") //Coins - $400004.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, "Coinage Type" ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x0002, "Coin Mode 1" )
- PORT_DIPSETTING( 0x0000, "Coin Mode 2" )
- PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:3,4,5")
- PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x000c, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x001c, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 2C_5C ) )
- PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:6,7,8")
- PORT_DIPSETTING( 0x0080, DEF_STR( 5C_1C ) ) PORT_CONDITION("DSW",0x0002,EQUALS,0x0002)
- PORT_DIPSETTING( 0x0040, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSW",0x0002,EQUALS,0x0002)
- PORT_DIPSETTING( 0x0020, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSW",0x0002,EQUALS,0x0002)
- PORT_DIPSETTING( 0x0060, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x0002,EQUALS,0x0002)
- PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x0002,EQUALS,0x0002)
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x0002,EQUALS,0x0002)
- PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW",0x0002,EQUALS,0x0002)
- PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x0002,NOTEQUALS,0x0002)
- PORT_DIPSETTING( 0x0060, DEF_STR( 2C_4C ) ) PORT_CONDITION("DSW",0x0002,NOTEQUALS,0x0002)
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x0002,NOTEQUALS,0x0002)
- PORT_DIPSETTING( 0x0080, "3 Coins/7 Credits" ) PORT_CONDITION("DSW",0x0002,NOTEQUALS,0x0002) /* Manuals states "2 Coin 7 Credit" */
- PORT_DIPSETTING( 0x0020, DEF_STR( 2C_5C ) ) PORT_CONDITION("DSW",0x0002,NOTEQUALS,0x0002)
- PORT_DIPSETTING( 0x0040, DEF_STR( 2C_6C ) ) PORT_CONDITION("DSW",0x0002,NOTEQUALS,0x0002)
- PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW",0x0002,NOTEQUALS,0x0002)
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
-
-
- PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x0200, "1, 1 Round" ) // Test mode shows 1 in both blandia and blandiap
- PORT_DIPSETTING( 0x0300, "1, 2 Rounds" ) // Test mode shows 0 in blandia, 2 in blandiap (neither match actual behaviour)
- PORT_DIPSETTING( 0x0100, "2" ) // Test mode shows 2 in blandia, 3 in blandiap (blandiap test mode is wrong)
- PORT_DIPSETTING( 0x0000, "3" ) // Test mode shows 3 in blandia, 4 in blandiap (blandiap test mode is wrong)
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x1000, 0x1000, "2 Player Game" ) PORT_DIPLOCATION("SW1:5")
- PORT_DIPSETTING( 0x1000, "2 Credits" )
- PORT_DIPSETTING( 0x0000, "1 Credit" )
- PORT_DIPNAME( 0x2000, 0x2000, "Continue" ) PORT_DIPLOCATION("SW1:6")
- PORT_DIPSETTING( 0x2000, "1 Credit" )
- PORT_DIPSETTING( 0x0000, "1 Coin" )
- PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" )
-INPUT_PORTS_END
-
-
-
-/***************************************************************************
- Block Carnival
-***************************************************************************/
-
-static INPUT_PORTS_START( blockcar )
- PORT_START("P1") //Player 1 - $500001.b
- JOY_TYPE1_2BUTTONS(1) // button2 = speed up
-
- PORT_START("P2") //Player 2 - $500003.b
- JOY_TYPE1_2BUTTONS(2)
-
- PORT_START("COINS") //Coins + DSW - $500005.b
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT )
- PORT_DIPNAME( 0x0010, 0x0000, "Title" ) /* This is a jumper pad */
- PORT_DIPSETTING( 0x0010, "Thunder & Lightning 2" )
- PORT_DIPSETTING( 0x0000, "Block Carnival" )
-
- PORT_START("DSW") //2 DSWs - $300003 & 1.b
- PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x000c, "20K, Every 50K" )
- PORT_DIPSETTING( 0x0004, "20K, Every 70K" )
- PORT_DIPSETTING( 0x0008, "30K, Every 60K" )
- PORT_DIPSETTING( 0x0000, "30K, Every 90K" )
- PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:5,6")
- PORT_DIPSETTING( 0x0000, "1" )
- PORT_DIPSETTING( 0x0030, "2" )
- PORT_DIPSETTING( 0x0020, "3" )
- PORT_DIPSETTING( 0x0010, "4" )
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "SW2:7" ) /* Listed as "Unused" */
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8") /* Listed as "Unused" */
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPUNUSED_DIPLOC( 0x0100, 0x0100, "SW1:1" ) /* Listed as "Unused" */
- PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( On ) )
- PORT_DIPNAME( 0x0800, 0x0800, "Unknown 1-3" ) PORT_DIPLOCATION("SW1:4") // service mode, according to a file in the archive
- PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x1000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 1C_2C ) )
- PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x4000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0xc000, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x8000, DEF_STR( 1C_2C ) )
-INPUT_PORTS_END
-
-
-
-/***************************************************************************
- Caliber 50
-***************************************************************************/
-
-static INPUT_PORTS_START( calibr50 )
- PORT_START("P1") //Player 1
- JOY_TYPE2_2BUTTONS(1)
-
- PORT_START("P2") //Player 2
- JOY_TYPE2_2BUTTONS(2)
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0001, 0x0001, "Copyright / License" ) PORT_DIPLOCATION("SW1:1") /* Romstar's Manual states "Don't Touch" */
- PORT_DIPSETTING( 0x0000, "Seta (Japan only)" ) PORT_CONDITION("DSW",0x4000,NOTEQUALS,0x4000)
- PORT_DIPSETTING( 0x0001, "Seta USA / Romstar" ) PORT_CONDITION("DSW",0x4000,NOTEQUALS,0x4000)
- PORT_DIPSETTING( 0x0000, "Seta / Taito" ) PORT_CONDITION("DSW",0x4000,EQUALS,0x4000)
- PORT_DIPSETTING( 0x0001, "Seta USA / Taito America" ) PORT_CONDITION("DSW",0x4000,EQUALS,0x4000) /* Romstar's Manual shows DSW1-1=Off & DSW2-7=Off */
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "SW1:3" )
- PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
- PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x0040, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0080, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0080, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0040, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPNAME( 0x0300, 0x0100, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0300, DEF_STR( Easiest ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hard ) )
- PORT_DIPNAME( 0x0400, 0x0400, "Score Digits" ) PORT_DIPLOCATION("SW2:3")
- PORT_DIPSETTING( 0x0400, "7" )
- PORT_DIPSETTING( 0x0000, "3" )
- PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:4")
- PORT_DIPSETTING( 0x0800, "3" )
- PORT_DIPSETTING( 0x0000, "4" )
- PORT_DIPNAME( 0x1000, 0x1000, "Display Score" ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( On ) )
- PORT_DIPNAME( 0x2000, 0x2000, "Erase Backup Ram" ) PORT_DIPLOCATION("SW2:6")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( On ) )
- PORT_DIPNAME( 0x4000, 0x4000, "Licensor Option" ) PORT_DIPLOCATION("SW2:7") /* Romstar's Manual states "Don't Touch" */
- PORT_DIPSETTING( 0x4000, "Option 1" )
- PORT_DIPSETTING( 0x0000, "Option 2" )
- PORT_DIPNAME( 0x8000, 0x8000, "Coinage Type" ) PORT_DIPLOCATION("SW2:8") /* Romstar's Manual states "Don't Touch" */
- PORT_DIPSETTING( 0x8000, "Coin Mode 1" )
- PORT_DIPSETTING( 0x0000, "Coin Mode 2" )
-
- PORT_START("ROT1") // Rotation Player 1
- PORT_BIT( 0xfff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(15) PORT_KEYDELTA(15) PORT_RESET PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X)
-
- PORT_START("ROT2") // Rotation Player 2
- PORT_BIT( 0xfff, 0x00, IPT_DIAL ) PORT_PLAYER(2) PORT_SENSITIVITY(15) PORT_KEYDELTA(15) PORT_RESET PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M)
-INPUT_PORTS_END
-
-/***************************************************************************
- Daioh
-***************************************************************************/
-
-static INPUT_PORTS_START( daioh )
- PORT_START("P1")
- JOY_TYPE1_3BUTTONS(1)
-
- PORT_START("P2")
- JOY_TYPE1_3BUTTONS(2)
-
- PORT_START("COINS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- /* These are NOT Dip Switches but jumpers */
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) // JP9
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) // JP8
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) ) // JP7
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, "Country" ) // JP6
- PORT_DIPSETTING( 0x0080, "USA (6 buttons)" )
- PORT_DIPSETTING( 0x0000, "Japan (2 buttons)" )
-
- PORT_START("DSW")
- PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3")
- PORT_DIPSETTING( 0x0001, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:4,5,6")
- PORT_DIPSETTING( 0x0008, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0000, "Auto Shot" ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x0200, IP_ACTIVE_LOW, "SW1:2" )
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x0000, "1" )
- PORT_DIPSETTING( 0x1000, "2" )
- PORT_DIPSETTING( 0x3000, "3" )
- PORT_DIPSETTING( 0x2000, "5" )
- PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x8000, "300k and every 800k" )
- PORT_DIPSETTING( 0xc000, "500k and every 1000k" )
- PORT_DIPSETTING( 0x4000, "800k and 2000k only" )
- PORT_DIPSETTING( 0x0000, "1000k Only" )
-
- PORT_START("EXTRA")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-/***************************************************************************
- Daioh (prototype)
-***************************************************************************/
-
-static INPUT_PORTS_START( daiohp )
- PORT_START("P1")
- JOY_TYPE1_3BUTTONS(1)
-
- PORT_START("P2")
- JOY_TYPE1_3BUTTONS(2)
-
- PORT_START("DSW")
- PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3")
- PORT_DIPSETTING( 0x0001, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:4,5,6")
- PORT_DIPSETTING( 0x0008, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0000, "Auto Shot" ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x0200, IP_ACTIVE_LOW, "SW1:2" )
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x0000, "1" )
- PORT_DIPSETTING( 0x1000, "2" )
- PORT_DIPSETTING( 0x3000, "3" )
- PORT_DIPSETTING( 0x2000, "5" )
- PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x8000, "100k and every 600k" )
- PORT_DIPSETTING( 0xc000, "200k and every 800k" )
- PORT_DIPSETTING( 0x4000, "300k and 1000k only" )
- PORT_DIPSETTING( 0x0000, "500k Only" )
-
- PORT_START("COINS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_DIPNAME( 0x00F0, 0x0000, "Country" ) PORT_DIPLOCATION("SW3:1,2,3,4")
- PORT_DIPSETTING( 0x0080, "USA (6 buttons)" ) // any setting other than 0 is USA
- PORT_DIPSETTING( 0x0000, "Japan (2 buttons)" )
-
- PORT_START("EXTRA")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-
-/***************************************************************************
- Dragon Unit
-***************************************************************************/
-
-static INPUT_PORTS_START( drgnunit )
- PORT_START("P1") //Player 1
- JOY_TYPE1_3BUTTONS(1)
-
- PORT_START("P2") //Player 2
- JOY_TYPE1_3BUTTONS(2)
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT )
- PORT_DIPNAME( 0x0010, 0x0010, "Coinage Type" )
- PORT_DIPSETTING( 0x0010, "Coin Mode 1" )
- PORT_DIPSETTING( 0x0000, "Coin Mode 2" )
- PORT_DIPNAME( 0x0020, 0x0020, "Title" )
- PORT_DIPSETTING( 0x0020, "Dragon Unit" )
- PORT_DIPSETTING( 0x0000, "Castle of Dragon" )
- PORT_DIPNAME( 0x00c0, 0x00c0, "(C) / License" )
- PORT_DIPSETTING( 0x00c0, "Athena (Japan)" )
- PORT_DIPSETTING( 0x0080, "Athena / Taito (Japan)" )
- PORT_DIPSETTING( 0x0040, "Seta USA / Taito America" )
- PORT_DIPSETTING( 0x0000, "Seta USA / Romstar" )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0003, 0x0002, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x0003, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x0008, "150K, Every 300K" )
- PORT_DIPSETTING( 0x000c, "200K, Every 400K" )
- PORT_DIPSETTING( 0x0004, "300K, Every 500K" )
- PORT_DIPSETTING( 0x0000, "400K Only" )
- PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x0000, "1" )
- PORT_DIPSETTING( 0x0010, "2" )
- PORT_DIPSETTING( 0x0030, "3" )
- PORT_DIPSETTING( 0x0020, "5" )
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "SW1:7" ) /* Labeled "Don't Touch" in manual */
- PORT_DIPNAME( 0x0080, 0x0080, "Unknown 1-8*" ) PORT_DIPLOCATION("SW1:8") /* Labeled "Don't Touch" in manual (seems to be used though) */
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPUNUSED_DIPLOC( 0x0100, 0x0100, "SW2:1" ) /* Labeled "Don't Touch" in manual */
- PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:3")
- PORT_DIPSETTING( 0x0400, "1 of 4 Scenes" )
- PORT_DIPSETTING( 0x0000, "1 of 8 Scenes" )
- PORT_SERVICE_DIPLOC( 0x0800, IP_ACTIVE_LOW, "SW2:4" )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:5,6")
- PORT_DIPSETTING( 0x1000, DEF_STR( 2C_1C ) ) PORT_CONDITION("COINS",0x0010,EQUALS,0x0010)
- PORT_DIPSETTING( 0x3000, DEF_STR( 1C_1C ) ) PORT_CONDITION("COINS",0x0010,EQUALS,0x0010)
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) PORT_CONDITION("COINS",0x0010,EQUALS,0x0010)
- PORT_DIPSETTING( 0x2000, DEF_STR( 1C_2C ) ) PORT_CONDITION("COINS",0x0010,EQUALS,0x0010)
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) PORT_CONDITION("COINS",0x0010,NOTEQUALS,0x0010)
- PORT_DIPSETTING( 0x1000, DEF_STR( 3C_1C ) ) PORT_CONDITION("COINS",0x0010,NOTEQUALS,0x0010)
- PORT_DIPSETTING( 0x2000, DEF_STR( 2C_1C ) ) PORT_CONDITION("COINS",0x0010,NOTEQUALS,0x0010)
- PORT_DIPSETTING( 0x3000, DEF_STR( 1C_1C ) ) PORT_CONDITION("COINS",0x0010,NOTEQUALS,0x0010)
- PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:7,8")
- PORT_DIPSETTING( 0x4000, DEF_STR( 2C_1C ) ) PORT_CONDITION("COINS",0x0010,EQUALS,0x0010)
- PORT_DIPSETTING( 0xc000, DEF_STR( 1C_1C ) ) PORT_CONDITION("COINS",0x0010,EQUALS,0x0010)
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) PORT_CONDITION("COINS",0x0010,EQUALS,0x0010)
- PORT_DIPSETTING( 0x8000, DEF_STR( 1C_2C ) ) PORT_CONDITION("COINS",0x0010,EQUALS,0x0010)
- PORT_DIPSETTING( 0xc000, DEF_STR( 1C_2C ) ) PORT_CONDITION("COINS",0x0010,NOTEQUALS,0x0010)
- PORT_DIPSETTING( 0x8000, DEF_STR( 1C_3C ) ) PORT_CONDITION("COINS",0x0010,NOTEQUALS,0x0010)
- PORT_DIPSETTING( 0x4000, DEF_STR( 1C_4C ) ) PORT_CONDITION("COINS",0x0010,NOTEQUALS,0x0010)
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("COINS",0x0010,NOTEQUALS,0x0010)
-
-INPUT_PORTS_END
-
-
-/***************************************************************************
- The Roulette
-***************************************************************************/
-
-static INPUT_PORTS_START( setaroul )
- PORT_START("DSW1-A") // d40001.b
- PORT_DIPNAME( 0x01, 0x01, "Accept Coins" ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x01, DEF_STR( Yes ) )
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, "Accept Note/Coupon" ) PORT_DIPLOCATION("SW1:6")
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPSETTING( 0x04, DEF_STR( No ) )
- PORT_DIPNAME( 0x08, 0x00, "Menu 3:Log 4:RS232" ) PORT_DIPLOCATION("SW1:5") // enable menus 3 & 4 in stats screen
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPSETTING( 0x08, DEF_STR( No ) )
-
- PORT_START("DSW1-B") // d40003.b
- PORT_DIPNAME( 0x01, 0x00, "Play Jingle?" ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPSETTING( 0x01, DEF_STR( No ) )
- PORT_DIPNAME( 0x02, 0x02, "Use Hopper" ) PORT_DIPLOCATION("SW1:3") // needed for payout
- PORT_DIPSETTING( 0x02, DEF_STR( Yes ) )
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPNAME( 0x04, 0x04, "SW1:2?" ) PORT_DIPLOCATION("SW1:2") // unused? not shown in input test
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, "SW1:1?" ) PORT_DIPLOCATION("SW1:1") // unused? not shown in input test
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW2-A") // d40005.b
- PORT_DIPNAME( 0x01, 0x00, "Check Door 1?" ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPSETTING( 0x01, DEF_STR( No ) )
- PORT_DIPNAME( 0x02, 0x00, "Check Door 2?" ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPSETTING( 0x02, DEF_STR( No ) )
- PORT_DIPNAME( 0x04, 0x00, "Check Door 3?" ) PORT_DIPLOCATION("SW2:6")
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPSETTING( 0x04, DEF_STR( No ) )
- PORT_DIPNAME( 0x08, 0x08, "SW2:2" ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW2-B") // d40007.b
- PORT_DIPNAME( 0x01, 0x01, "SW2:4" ) PORT_DIPLOCATION("SW2:4")
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, "Menu 5:RS323? 6:Sound 7:Gfx 8:Clock" ) PORT_DIPLOCATION("SW2:3") // enable 4 *hidden* menus and debug key
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPSETTING( 0x02, DEF_STR( No ) )
- PORT_DIPNAME( 0x04, 0x04, "SW2:5" ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_SERVICE( 0x08, 0x08 ) PORT_DIPLOCATION("SW2:1") // service mode
-
- PORT_START("COIN") // d40009.b
- PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // medal (causes hopper over run / empty if the dsw is on)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Reset") // rst (button SW5? Press twice quickly to enter the keyboard test)
- PORT_DIPNAME( 0x04, 0x04, "Credit Meter" ) PORT_DIPLOCATION("SW6:1") // crt.mtr (switch SW6? Shows stats screen. With added menus, if their dsw is on)
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Attendant Pay") // att.pay (clears error)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("Note") // note (same as 100 coins)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_NAME("Coupon") // cupon (same as 10 coins)
- PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(setaroul_state, coin_sensors_r)
-
- PORT_START("COIN1") // start the coin drop sequence (see coin_sensors_r)
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, setaroul_state, coin_drop_start, 0)
-
- PORT_START("DOOR") // d4000b.b
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Drop") // drop ("coin drop jam or time out" error when stuck low)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) // hop.ovf (hopper overflow, ignored?)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Door 1") PORT_CODE(KEYCODE_OPENBRACE)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Door 2") PORT_CODE(KEYCODE_CLOSEBRACE)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Door 3") PORT_CODE(KEYCODE_QUOTE)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_TILT )
-
-#define PORT_BET(_TAG) \
- PORT_START(_TAG) \
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(_TAG " Row 0") \
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(_TAG " Row 1") \
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(_TAG " Row 2") \
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(_TAG " Row 3") \
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(_TAG " Row 4") \
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(_TAG " Row 5") \
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(_TAG " Row 6") \
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(_TAG " Row 7")
-
- // d40011.b (26 columns, 1 bit per row)
- PORT_BET("BET.00")
- PORT_BET("BET.01")
- PORT_BET("BET.02")
- PORT_BET("BET.03")
- PORT_BET("BET.04")
- PORT_BET("BET.05")
- PORT_BET("BET.06")
- PORT_BET("BET.07")
- PORT_BET("BET.08")
- PORT_BET("BET.09")
- PORT_BET("BET.0A")
- PORT_BET("BET.0B")
- PORT_BET("BET.0C")
- PORT_BET("BET.0D")
- PORT_BET("BET.0E")
- PORT_BET("BET.0F")
- PORT_BET("BET.10")
- PORT_BET("BET.11")
- PORT_BET("BET.12")
- PORT_BET("BET.13")
- PORT_BET("BET.14")
- PORT_BET("BET.15")
- PORT_BET("BET.16")
- PORT_BET("BET.17")
- PORT_BET("BET.18")
- PORT_BET("BET.19")
-
- PORT_START("DSW3") // d40019.b
- PORT_DIPNAME( 0x03, 0x03, "Payout %" ) PORT_DIPLOCATION("SW3:7,8")
- PORT_DIPSETTING( 0x00, "65" )
- PORT_DIPSETTING( 0x01, "75" )
- PORT_DIPSETTING( 0x02, "85" )
- PORT_DIPSETTING( 0x03, "97.3" )
- PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW3:5,6")
- PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
- PORT_DIPNAME( 0x10, 0x10, "Menu 1:Time 2:Payout" ) PORT_DIPLOCATION("SW3:4") // dsw3 4 (enable menus 1 & 2 in stats screen)
- PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPNAME( 0x20, 0x20, "Payout Key" ) PORT_DIPLOCATION("SW3:3")
- PORT_DIPSETTING( 0x20, DEF_STR( Yes ) )
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPNAME( 0x40, 0x40, "Hopper Divider" ) PORT_DIPLOCATION("SW3:2")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, "Hopper Sensor" ) PORT_DIPLOCATION("SW3:1")
- PORT_DIPSETTING( 0x80, "Active Low (Error)" ) // "Hopper Over Run" error
- PORT_DIPSETTING( 0x00, "Active High" )
-INPUT_PORTS_END
-
-/***************************************************************************
- DownTown
-***************************************************************************/
-
-static INPUT_PORTS_START( downtown )
- PORT_START("P1") //Player 1
- JOY_TYPE2_2BUTTONS(1)
-
- PORT_START("P2") //Player 2
- JOY_TYPE2_2BUTTONS(2)
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0001, 0x0000, "Sales" ) PORT_DIPLOCATION("SW1:1") /* Manual for USA version says "Always Off" */
- PORT_DIPSETTING( 0x0001, "Japan Only" )
- PORT_DIPSETTING( 0x0000, DEF_STR( World ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "SW1:3" )
- PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x0040, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0080, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0080, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0040, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPNAME( 0x0300, 0x0100, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x0c00, "Never" )
- PORT_DIPSETTING( 0x0800, "50K Only" )
- PORT_DIPSETTING( 0x0400, "100K Only" )
- PORT_DIPSETTING( 0x0000, "50K, Every 150K" )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:5,6")
- PORT_DIPSETTING( 0x1000, "2" )
- PORT_DIPSETTING( 0x3000, "3" )
- PORT_DIPSETTING( 0x0000, "4" )
- PORT_DIPSETTING( 0x2000, "5" )
- PORT_DIPNAME( 0x4000, 0x0000, "World License" ) PORT_DIPLOCATION("SW2:7") /* Manual for USA version says "Unused" */
- PORT_DIPSETTING( 0x4000, "Romstar" )
- PORT_DIPSETTING( 0x0000, "Taito" )
- PORT_DIPNAME( 0x8000, 0x8000, "Coinage Type" ) PORT_DIPLOCATION("SW2:8") /* Manual for USA version says "Unused" */
- PORT_DIPSETTING( 0x8000, "1" )
- PORT_DIPSETTING( 0x0000, "2" )
-
- PORT_START("ROT1") //Rotation Player 1
- PORT_BIT( 0xff, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_FULL_TURN_COUNT(12)
-
- PORT_START("ROT2") //Rotation Player 2
- PORT_BIT( 0xff, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) PORT_FULL_TURN_COUNT(12)
-INPUT_PORTS_END
-
-
-
-/***************************************************************************
- Eight Force
-***************************************************************************/
-
-static INPUT_PORTS_START( eightfrc )
- PORT_START("P1") //Player 1
- JOY_TYPE1_2BUTTONS(1)
-
- PORT_START("P2") //Player 2
- JOY_TYPE1_2BUTTONS(2)
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3")
- PORT_DIPSETTING( 0x0004, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:4,5,6")
- PORT_DIPSETTING( 0x0020, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0028, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0040, 0x0040, "Shared Credits" ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, "Credits To Start" ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, "1" )
- PORT_DIPSETTING( 0x0000, "2" )
-
- PORT_SERVICE_DIPLOC( 0x0100, IP_ACTIVE_LOW, "SW1:1" )
- PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x1800, 0x1800, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:4,5")
- PORT_DIPSETTING( 0x1000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x1800, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x6000, 0x6000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:6,7")
- PORT_DIPSETTING( 0x4000, "2" )
- PORT_DIPSETTING( 0x6000, "3" )
- PORT_DIPSETTING( 0x2000, "4" )
- PORT_DIPSETTING( 0x0000, "5" )
- PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Language ) ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x0000, DEF_STR( English ) )
- PORT_DIPSETTING( 0x8000, DEF_STR( Japanese ) )
-INPUT_PORTS_END
-
-
-
-/***************************************************************************
- Extreme Downhill
-***************************************************************************/
-
-static INPUT_PORTS_START( extdwnhl )
- PORT_START("P1") //Player 1
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
-
- PORT_START("P2") //Player 2
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE ) // "test"
- /* These are NOT Dip Switches but jumpers */
- PORT_DIPNAME( 0x0030, 0x0030, "Country" )
- PORT_DIPSETTING( 0x0030, DEF_STR( World ) )
-// PORT_DIPSETTING( 0x0020, DEF_STR( World ) ) // duplicated settings
- PORT_DIPSETTING( 0x0010, DEF_STR( USA ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Japan ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_START("DSW") //2 DSWs - $400009 & b.b
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
- PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x0008, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:6")
- PORT_DIPSETTING( 0x0020, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Cocktail ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Controls ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0040, "2" )
- PORT_DIPSETTING( 0x0000, "1" )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW2:8" )
-
- PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3")
- PORT_DIPSETTING( 0x0500, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:4,5,6")
- PORT_DIPSETTING( 0x2800, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x3800, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x1800, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x4000, 0x4000, "Continue Coin" ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x4000, "Normal: Start 1C / Continue 1C" )
- PORT_DIPSETTING( 0x0000, "Half Continue: Start 2C / Continue 1C" )
- PORT_DIPNAME( 0x8000, 0x8000, "Game Mode" ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x8000, "Finals Only" )
- PORT_DIPSETTING( 0x0000, "Semi-Finals & Finals" )
-INPUT_PORTS_END
-
-
-
-/***************************************************************************
- Gundhara
-***************************************************************************/
-
-static INPUT_PORTS_START( gundhara )
- PORT_START("P1") //Player 1
- JOY_TYPE1_3BUTTONS(1)
-
- PORT_START("P2") //Player 2
- JOY_TYPE1_3BUTTONS(2)
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_SERVICE_NO_TOGGLE( 0x0008, IP_ACTIVE_LOW )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3,4")
- PORT_DIPSETTING( 0x0002, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( 4C_3C ) )
- PORT_DIPSETTING( 0x000f, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 3C_4C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x000e, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 2C_5C ) )
- PORT_DIPSETTING( 0x000d, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x000b, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x000a, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x0009, DEF_STR( 1C_7C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:5,6")
- PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) )
- PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Language ) ) PORT_DIPLOCATION("SW2:7,8") /* Yes, the manual shows it takes both switches */
- PORT_DIPSETTING( 0x00c0, DEF_STR( Japanese ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( English ) )
-
- PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x0800, "2" )
- PORT_DIPSETTING( 0x0c00, "3" )
- PORT_DIPSETTING( 0x0400, "4" )
- PORT_DIPSETTING( 0x0000, "5" )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x3000, "200K" )
- PORT_DIPSETTING( 0x2000, "200K, Every 200K" )
- PORT_DIPSETTING( 0x1000, "400K" )
- PORT_DIPSETTING( 0x0000, DEF_STR( None ) )
- PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" )
-INPUT_PORTS_END
-
-/***************************************************************************
- Zombie Raid
-***************************************************************************/
-
-static INPUT_PORTS_START( zombraid )
- PORT_START("P1") //Player 1
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Trigger")
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Reload")
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
-
- PORT_START("P2") //Player 2
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Trigger")
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Reload")
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW")
- PORT_DIPNAME( 0x0001, 0x0001, "Vertical Screen Flip" ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0000, "Horizontal Screen Flip" ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
- PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:3")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
- PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:4,5")
- PORT_DIPSETTING( 0x0010, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:6")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "SW2:7" ) /* Listed as "Unused" */
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW2:8" )
-
- PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3")
- PORT_DIPSETTING( 0x0500, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:4,5,6")
- PORT_DIPSETTING( 0x2800, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x3800, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x1800, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x4000, 0x4000, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x4000, DEF_STR( No ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
- PORT_DIPUNUSED_DIPLOC( 0x8000, 0x8000, "SW1:8" ) /* Listed as "Unused" */
-
- /* The gun calibration defaults to: left=0xc0, right=0x40, top=0x48, bottom=0xa8 */
- /* The user calibrated values are lost each time MAME starts, so the gun always needs to be re-calibrated. */
- /* Either NVRAM or battery backed up RAM is not emulated. */
- /* For now it is best to just use a Save State after calibration to remember the setting. */
- PORT_START("GUNX1") /* Player 1 Gun X ($f00003) */
- PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, -1, 0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1)
- PORT_START("GUNY1") /* Player 1 Gun Y ($f00003) */
- PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1, 0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1)
-
- PORT_START("GUNX2") /* Player 2 Gun X ($f00003) */
- PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, -1, 0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(2)
- PORT_START("GUNY2") /* Player 2 Gun Y ($f00003) */
- PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1, 0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(2)
-INPUT_PORTS_END
-
-
-/***************************************************************************
- J.J.Squawkers
-***************************************************************************/
-
-static INPUT_PORTS_START( jjsquawk )
- PORT_START("P1") //Player 1 - $400000.w
- JOY_TYPE1_3BUTTONS(1)
-
- PORT_START("P2") //Player 2 - $400002.w
- JOY_TYPE1_3BUTTONS(2)
-
- PORT_START("COINS") //Coins - $400004.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3")
- PORT_DIPSETTING( 0x0001, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:4,5,6")
- PORT_DIPSETTING( 0x0008, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, "Unknown 2-8" ) PORT_DIPLOCATION("SW2:8") // ?? screen related
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x0200, IP_ACTIVE_LOW, "SW1:2" )
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x3000, 0x2000, "Energy" ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x2000, "2" ) // factory default
- PORT_DIPSETTING( 0x3000, "3" )
- PORT_DIPSETTING( 0x1000, "4" )
- PORT_DIPSETTING( 0x0000, "5" )
- PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x8000, "20K, Every 100K" ) // TYPO on manual "20000 200000"
- PORT_DIPSETTING( 0xc000, "50K, Every 200K" ) // manufacturer setting // TYPO on manual "50000 100000"
- PORT_DIPSETTING( 0x4000, "70K, 200K Only" )
- PORT_DIPSETTING( 0x0000, "100K Only" )
-INPUT_PORTS_END
-
-/***************************************************************************
- (Kamen) Masked Riders Club Battle Race
-***************************************************************************/
-
-static INPUT_PORTS_START( kamenrid )
- PORT_START("P1") //Player 1
- JOY_TYPE1_2BUTTONS(1) // BUTTON3 in "test mode" only
-
- PORT_START("P2") //Player 2
- JOY_TYPE1_2BUTTONS(2) // BUTTON3 in "test mode" only
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT )
- /* These are NOT Dip Switches but jumpers */
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, "Country" )
- PORT_DIPSETTING( 0x0080, DEF_STR( USA ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Japan ) )
-
- PORT_START("DSW") // IN3 - 2 DSWs - $500005 & 7.b
- PORT_SERVICE_DIPLOC( 0x0001, IP_ACTIVE_LOW , "SW2:8" )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:6") // Manual states "Unused", but masked at 0x001682
- PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:4") // Manual states "Unused", but masked at 0x001682
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) // (displays debug infos)
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:3") // Manual states "Unused", but masked at 0x001682
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) // (unknown effect at 0x00606a, 0x0060de, 0x00650a)
- PORT_DIPNAME( 0x0040, 0x0040, "Intro Music" ) PORT_DIPLOCATION("SW2:2") // check code at 0x001792
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0f00, 0x0f00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5")
- PORT_DIPSETTING( 0x0500, DEF_STR( 6C_1C ) )
- PORT_DIPSETTING( 0x0d00, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0b00, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 8C_3C ) )
- PORT_DIPSETTING( 0x0700, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( 5C_3C ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0x0f00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0900, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0e00, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0a00, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:4,3")
- PORT_DIPSETTING( 0x1000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-INPUT_PORTS_END
-
-/***************************************************************************
- Krazy Bowl
-***************************************************************************/
-
-#define KRZYBOWL_TRACKBALL(_dir_, _n_ ) \
- PORT_BIT( 0x0fff, 0x0000, IPT_TRACKBALL_##_dir_ ) PORT_PLAYER(_n_) PORT_SENSITIVITY(70) PORT_KEYDELTA(30) PORT_REVERSE PORT_RESET
-
-static INPUT_PORTS_START( krzybowl )
- PORT_START("P1") //Player 1
- JOY_TYPE1_3BUTTONS(1)
-
- PORT_START("P2") //Player 2
- JOY_TYPE1_3BUTTONS(2)
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
- PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x0008, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0010, 0x0010, "Frames" ) PORT_DIPLOCATION("SW1:5")
- PORT_DIPSETTING( 0x0010, "10" )
- PORT_DIPSETTING( 0x0000, "5" )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:6")
- PORT_DIPSETTING( 0x0020, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Cocktail ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Controls ) ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x0040, DEF_STR( Trackball ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Joystick ) )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" )
-
- PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3")
- PORT_DIPSETTING( 0x0500, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:4,5,6")
- PORT_DIPSETTING( 0x2800, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x3800, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x1800, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x4000, 0x4000, "Force Coinage" ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x4000, DEF_STR( No ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_1C ) )
- PORT_DIPNAME( 0x8000, 0x8000, "Unknown 2-8" ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_START("TRACK1_X") //Rotation X Player 1
- KRZYBOWL_TRACKBALL(X,1)
-
- PORT_START("TRACK1_Y") //Rotation Y Player 1
- KRZYBOWL_TRACKBALL(Y,1)
-
- PORT_START("TRACK2_X") //Rotation X Player 2
- KRZYBOWL_TRACKBALL(X,2) PORT_REVERSE
-
- PORT_START("TRACK2_Y") //Rotation Y Player 2
- KRZYBOWL_TRACKBALL(Y,2)
-INPUT_PORTS_END
-
-
-/***************************************************************************
- Mad Shark
-***************************************************************************/
-
-static INPUT_PORTS_START( madshark )
- PORT_START("P1") //Player 1
- JOY_TYPE1_2BUTTONS(1) // BUTTON3 in "test mode" only
-
- PORT_START("P2") //Player 2
- JOY_TYPE1_2BUTTONS(2) // BUTTON3 in "test mode" only
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT )
- /* These are NOT Dip Switches but jumpers */
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0000, "Country" )
- PORT_DIPSETTING( 0x0080, DEF_STR( Japan ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( World ) )
-
- PORT_START("DSW") //2 DSWs
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW2:3" )
- PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:4,5")
- PORT_DIPSETTING( 0x0018, "1000k" )
- PORT_DIPSETTING( 0x0008, "1000k 2000k" )
- PORT_DIPSETTING( 0x0010, "1500k 3000k" )
- PORT_DIPSETTING( 0x0000, DEF_STR( No ) )
- PORT_DIPNAME( 0x0060, 0x0060, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:6,7")
- PORT_DIPSETTING( 0x0040, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0060, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW2:8" )
-
- PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x0200, "2" )
- PORT_DIPSETTING( 0x0300, "3" )
- PORT_DIPSETTING( 0x0100, "4" )
- PORT_DIPSETTING( 0x0000, "5" )
- PORT_DIPNAME( 0x1c00, 0x1c00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:3,4,5")
- PORT_DIPSETTING( 0x0400, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x1c00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x1800, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x1400, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:6,7,8")
- PORT_DIPSETTING( 0x2000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x8000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0xe000, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x6000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0xc000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0xa000, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C ) )
-INPUT_PORTS_END
-
-
-/***************************************************************************
- Magical Speed
-***************************************************************************/
-
-static INPUT_PORTS_START( magspeed )
- PORT_START("P1") // Player 1
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Card 1") PORT_CODE(KEYCODE_Z)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Card 2") PORT_CODE(KEYCODE_X)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Card 3") PORT_CODE(KEYCODE_C)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Card 4") PORT_CODE(KEYCODE_V)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
-
- PORT_START("P2") // Player 2
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Card 1") PORT_CODE(KEYCODE_D)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Card 2") PORT_CODE(KEYCODE_F)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Card 3") PORT_CODE(KEYCODE_G)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Card 4") PORT_CODE(KEYCODE_H)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
-
- PORT_START("COINS") // Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") // 2 DSWs - $500009 & B.b
- PORT_SERVICE_DIPLOC( 0x0001, IP_ACTIVE_LOW, "SW2:8" )
- PORT_DIPUNUSED_DIPLOC( 0x0002, 0x0002, "SW2:7" ) /* Listed as Unused in the manual */
- PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW2:6" ) /* Listed as Unused in the manual */
- PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "SW2:5" ) /* Listed as Unused in the manual */
- PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "SW2:4" ) /* Listed as Unused in the manual */
- PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "SW2:3" ) /* Listed as Unused in the manual */
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0f00, 0x0f00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5")
- PORT_DIPSETTING( 0x0500, DEF_STR( 6C_1C ) )
- PORT_DIPSETTING( 0x0d00, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0b00, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 8C_3C ) )
- PORT_DIPSETTING( 0x0700, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( 5C_3C ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0x0f00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0900, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0e00, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0a00, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:4,3")
- PORT_DIPSETTING( 0x1000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0xc000, 0xc000, "Number of Rounds" ) PORT_DIPLOCATION("SW1:2,1")
- PORT_DIPSETTING( 0x4000, "1" )
- PORT_DIPSETTING( 0xc000, "2" )
- PORT_DIPSETTING( 0x8000, DEF_STR( Unused ) ) /* Undefined in the manual */
- PORT_DIPSETTING( 0x0000, DEF_STR( Unused ) ) /* Undefined in the manual */
-INPUT_PORTS_END
-
-
-/***************************************************************************
- Meta Fox
-***************************************************************************/
-
-static INPUT_PORTS_START( metafox )
- PORT_START("P1") //Player 1
- JOY_TYPE2_2BUTTONS(1)
-
- PORT_START("P2") //Player 2
- JOY_TYPE2_2BUTTONS(2)
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
-
- PORT_START("DSW") //$600001 & 3.b
- PORT_DIPNAME( 0x0001, 0x0001, "Copyright / License" ) PORT_DIPLOCATION("SW1:1") /* Romstar's Manual states "Don't Touch" */
- PORT_DIPSETTING( 0x0000, "Seta USA / Taito America" ) PORT_CONDITION("DSW",0x4000,NOTEQUALS,0x4000)
- PORT_DIPSETTING( 0x0001, "Seta / Jordan I.S." ) PORT_CONDITION("DSW",0x4000,NOTEQUALS,0x4000)
- PORT_DIPSETTING( 0x0000, "Seta / Taito" ) PORT_CONDITION("DSW",0x4000,EQUALS,0x4000)
- PORT_DIPSETTING( 0x0001, "Seta USA / Romstar" ) PORT_CONDITION("DSW",0x4000,EQUALS,0x4000) /* Romstar's Manual shows DSW1-1=Off & DSW2-7=Off */
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "SW1:3" )
- PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
- PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x0040, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0080, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0080, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0040, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPNAME( 0x0300, 0x0100, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0c00, 0x0000, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x0c00, DEF_STR( None ) )
- PORT_DIPSETTING( 0x0800, "600K Only" )
- PORT_DIPSETTING( 0x0000, "600k & 900k" )
- PORT_DIPSETTING( 0x0400, "900K Only" )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:5,6")
- PORT_DIPSETTING( 0x1000, "1" )
- PORT_DIPSETTING( 0x0000, "2" )
- PORT_DIPSETTING( 0x3000, "3" )
- PORT_DIPSETTING( 0x2000, "5" )
- PORT_DIPNAME( 0x4000, 0x4000, "Licensor Option" ) PORT_DIPLOCATION("SW2:7") /* Romstar's Manual states "Don't Touch" */
- PORT_DIPSETTING( 0x4000, "Option 1" )
- PORT_DIPSETTING( 0x0000, "Option 2" )
- PORT_DIPNAME( 0x8000, 0x8000, "Coinage Type" ) PORT_DIPLOCATION("SW2:8") /* Romstar's Manual states "Don't Touch" */
- PORT_DIPSETTING( 0x8000, "Coin Mode 1" )
- PORT_DIPSETTING( 0x0000, "Coin Mode 2" )
-INPUT_PORTS_END
-
-
-
-/***************************************************************************
- Mobile Suit Gundam
-***************************************************************************/
-
-
-static INPUT_PORTS_START( msgundam )
- PORT_START("P1") //Player 1 - $400000.w
- JOY_TYPE1_2BUTTONS(1)
-
- PORT_START("P2") //Player 2 - $400002.w
- JOY_TYPE1_2BUTTONS(2)
-
- PORT_START("COINS") //Coins - $400004.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Language ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( English ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Japanese ) )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3")
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 1C_5C ) )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:4,5,6")
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 1C_5C ) )
- PORT_DIPNAME( 0x0040, 0x0040, "Unknown 2-7" ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( On ) )
- PORT_DIPNAME( 0x0600, 0x0600, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:2,3") // unverified, from the manual
- PORT_DIPSETTING( 0x0400, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0800, 0x0800, "Unknown 1-4" ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:5")
- PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x2000, 0x2000, "Memory Check" ) PORT_DIPLOCATION("SW1:6")
- PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x4000, 0x4000, "Unknown 1-7" ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( msgundam1 )
- PORT_INCLUDE(msgundam)
-
- PORT_MODIFY("COINS") // IN2 - Coins - $400004.w
- /* this set seems to be a Japan set, English mode doesn't work correctly */
- PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Language ) )
-// PORT_DIPSETTING( 0x0080, DEF_STR( English ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Japanese ) )
-INPUT_PORTS_END
-
-
-/***************************************************************************
- Oishii Puzzle
-***************************************************************************/
-
-static INPUT_PORTS_START( oisipuzl )
- PORT_START("P1") //Player 1
- JOY_TYPE1_2BUTTONS(1)
-
- PORT_START("P2") //Player 2
- JOY_TYPE1_2BUTTONS(2)
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_SERVICE_NO_TOGGLE( 0x0008, IP_ACTIVE_LOW )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:3")
- PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "SW2:4" ) /* Manual States dips 4-7 are unused */
- PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "SW2:5" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "SW2:6" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "SW2:7" ) /* Listed as "Unused" */
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW2:8" )
-
- PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0500, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:4,5,6")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x1800, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x3800, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x2800, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 1C_4C ) )
- PORT_DIPUNUSED_DIPLOC( 0x4000, 0x4000, "SW1:7" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x8000, 0x8000, "SW1:8" ) /* Listed as "Unused" */
-INPUT_PORTS_END
-
-
-
-/***************************************************************************
- Pro Mahjong Kiwame
-***************************************************************************/
-
-static INPUT_PORTS_START( kiwame )
- PORT_START("P1") //Unused
- PORT_START("P2") //Unused
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_IMPULSE(5)
-
- PORT_START("DSW") //2 DSWs - $e00001 & 3.b
- PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3")
- PORT_DIPSETTING( 0x0001, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:4,5,6")
- PORT_DIPSETTING( 0x0008, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, "Player's TSUMO" ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, "Manual" )
- PORT_DIPSETTING( 0x0000, "Auto" )
-
- PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x0200, IP_ACTIVE_LOW, "SW1:2" )
- PORT_DIPNAME( 0x1c00, 0x1c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:3,4,5")
- PORT_DIPSETTING( 0x1c00, DEF_STR( None ) )
- PORT_DIPSETTING( 0x1800, "Prelim 1" )
- PORT_DIPSETTING( 0x1400, "Prelim 2" )
- PORT_DIPSETTING( 0x1000, "Final 1" )
- PORT_DIPSETTING( 0x0c00, "Final 2" )
- PORT_DIPSETTING( 0x0800, "Final 3" )
- PORT_DIPSETTING( 0x0400, "Qrt Final" )
- PORT_DIPSETTING( 0x0000, "SemiFinal" )
- PORT_DIPNAME( 0xe000, 0xe000, "Points Gap" ) PORT_DIPLOCATION("SW1:6,7,8")
- PORT_DIPSETTING( 0xe000, DEF_STR( None ) )
- PORT_DIPSETTING( 0xc000, "+6000" )
- PORT_DIPSETTING( 0xa000, "+4000" )
- PORT_DIPSETTING( 0x8000, "+2000" )
- PORT_DIPSETTING( 0x6000, "-2000" )
- PORT_DIPSETTING( 0x4000, "-4000" )
- PORT_DIPSETTING( 0x2000, "-6000" )
- PORT_DIPSETTING( 0x0000, "-8000" )
-
-/*
- row 0 1 2 3 4
-bit 0 a b c d lc
- 1 e f g h
- 2 i j k l
- 3 m n ch po ff
- 4 ka re ro
- 5 st bt
-*/
-
- PORT_START("KEY0")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP )
- PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY1")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_B )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_F )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_J )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_N )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_BET )
- PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY2")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_A )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_E )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_I )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_M )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY3")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_C )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_G )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_K )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
- PORT_BIT( 0xffe0, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY4")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_D )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_H )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_L )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
- PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY5")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE ) PORT_PLAYER(2)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_PLAYER(2)
- PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY6")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_PLAYER(2)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_PLAYER(2)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_J ) PORT_PLAYER(2)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_N ) PORT_PLAYER(2)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_PLAYER(2)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_PLAYER(2)
- PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY7")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_PLAYER(2)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_PLAYER(2)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_I ) PORT_PLAYER(2)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_M ) PORT_PLAYER(2)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_PLAYER(2)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY8")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_PLAYER(2)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_PLAYER(2)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_K ) PORT_PLAYER(2)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_PLAYER(2)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_PLAYER(2)
- PORT_BIT( 0xffe0, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY9")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_PLAYER(2)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_PLAYER(2)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_PLAYER(2)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_PLAYER(2)
- PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-
-
-/***************************************************************************
- Quiz Kokology
-***************************************************************************/
-
-static INPUT_PORTS_START( qzkklogy )
- PORT_START("P1") //Player 1 - $b00001.b
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME("P1 Pause (Cheat)")// pause (cheat)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
-
- PORT_START("P2") //Player 2 - $b00003.b
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) PORT_NAME("P2 Pause (Cheat)")// pause (cheat)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
-
- PORT_START("COINS") //Coins - $b00005.b
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0003, 0x0003, "DS2-1&2*" ) PORT_DIPLOCATION("SW2:1,2") /* Manual States dips 1-5 are unused */
- PORT_DIPSETTING( 0x0000, "0" )
- PORT_DIPSETTING( 0x0001, "1" )
- PORT_DIPSETTING( 0x0002, "2" )
- PORT_DIPSETTING( 0x0003, "3" )
- PORT_DIPNAME( 0x0004, 0x0004, "Highlight Right Answer (Cheat)") PORT_DIPLOCATION("SW2:3")
- PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0008, 0x0008, "DSW2-4" ) PORT_DIPLOCATION("SW2:4")
- PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0010, 0x0010, "DSW2-5" ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x0020, IP_ACTIVE_LOW, "SW2:6" )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3")
- PORT_DIPSETTING( 0x0400, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0500, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:4") /* Manual States this dip is unused */
- PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x2000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) )
- PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x8000, "2" )
- PORT_DIPSETTING( 0xc000, "3" )
- PORT_DIPSETTING( 0x4000, "4" )
- PORT_DIPSETTING( 0x0000, "5" )
-INPUT_PORTS_END
-
-
-
-/***************************************************************************
- Quiz Kokology 2
-***************************************************************************/
-
-static INPUT_PORTS_START( qzkklgy2 )
- PORT_INCLUDE(qzkklogy)
-
- PORT_MODIFY("P1")
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_MODIFY("P2")
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_MODIFY("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0008, 0x0008, "Skip Real DAT Rom Check?" ) PORT_DIPLOCATION("SW2:4") // 'ON' it will pass DAT rom even if it isn't mapped(!)
- PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
-INPUT_PORTS_END
-
-/***************************************************************************
- Rezon
-***************************************************************************/
-
-static INPUT_PORTS_START( rezon )
- PORT_START("P1") //Player 1
- JOY_TYPE1_3BUTTONS(1) // 1 used??
-
- PORT_START("P2") //Player 2
- JOY_TYPE1_3BUTTONS(2) // 1 used ??
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_SERVICE_NO_TOGGLE( 0x0008, IP_ACTIVE_LOW)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no taito logo
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW2:3" ) /* Listed as "Unused" */
- PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:4,5")
- PORT_DIPSETTING( 0x0000, "Upright 1 Controller" )
- PORT_DIPSETTING( 0x0018, "Upright 2 Controllers" )
- PORT_DIPSETTING( 0x0008, DEF_STR( Cocktail ) )
-// PORT_DIPSETTING( 0x0010, "10" ) /* Unused / Not Defined */
- PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "SW2:6" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "SW2:7" ) /* Listed as "Unused" */
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW2:8" )
-
- PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x0200, "2" )
- PORT_DIPSETTING( 0x0300, "3" )
- PORT_DIPSETTING( 0x0100, "4" )
- PORT_DIPSETTING( 0x0000, "5" )
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:5,6,7,8")
- PORT_DIPSETTING( 0xa000, DEF_STR( 6C_1C ) )
- PORT_DIPSETTING( 0xb000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0xc000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0xd000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 8C_3C ) )
- PORT_DIPSETTING( 0xe000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 5C_3C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0xf000, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x9000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x8000, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x7000, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x6000, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x5000, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( rezont )
-
- PORT_INCLUDE( rezon )
-
- PORT_MODIFY("COINS")
- PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // gives the taito logo
-INPUT_PORTS_END
-
-/***************************************************************************
- SD Gundam Neo Battling
-***************************************************************************/
-
-/*
- When the "Stage Select" dip switch is on and button1 is pressed during boot,
- pressing P1's button3 freezes the game (pressing P2's button3 resumes it).
-*/
-static INPUT_PORTS_START( neobattl )
- PORT_START("P1") // Player 1 - $400000.w
- JOY_TYPE1_1BUTTON(1) // bump to 3 buttons for freezing to work
-
- PORT_START("P2") //Player 2 - $400002.w
- JOY_TYPE1_1BUTTON(2) // bump to 3 buttons for freezing to work
-
- PORT_START("COINS") //Coins - $400004.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
- PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) // used
- PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0008, 0x0008, "Stage Select (Cheat)")
- PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) // unused?
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) // unused?
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) // unused?
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
-
- PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x0200, "1" )
- PORT_DIPSETTING( 0x0300, "2" )
- PORT_DIPSETTING( 0x0100, "3" )
- PORT_DIPSETTING( 0x0000, "4" )
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) )
- PORT_DIPSETTING( 0xa000, DEF_STR( 6C_1C ) )
- PORT_DIPSETTING( 0xb000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0xc000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0xd000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 8C_3C ) )
- PORT_DIPSETTING( 0xe000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 5C_3C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0xf000, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x9000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x8000, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x7000, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x6000, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x5000, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
-INPUT_PORTS_END
-
-
-
-/***************************************************************************
- Sokonuke
-***************************************************************************/
-
-static INPUT_PORTS_START( sokonuke )
- PORT_START("P1") //Player 1
- JOY_TYPE1_1BUTTON(1)
-
- PORT_START("P2") //Player 2
- JOY_TYPE1_1BUTTON(2)
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_SERVICE_NO_TOGGLE( 0x0008, IP_ACTIVE_LOW )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $400009 & b.b
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
- PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x0008, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, "DSW2 Switch 6*" ) PORT_DIPLOCATION("SW2:6")
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW2:8" )
-
- PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3")
- PORT_DIPSETTING( 0x0500, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:4,5,6")
- PORT_DIPSETTING( 0x2800, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x3800, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x1800, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x4000, 0x4000, "Cheap Continue" ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x4000, DEF_STR( No ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8") // unused?
- PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-INPUT_PORTS_END
-
-
-
-/***************************************************************************
- Strike Gunner
-***************************************************************************/
-
-static INPUT_PORTS_START( stg )
- PORT_START("P1") //Player 1 - $b00001.b
- JOY_TYPE1_3BUTTONS(1)
-
- PORT_START("P2") //Player 2 - $b00003.b
- JOY_TYPE1_3BUTTONS(2)
-
- PORT_START("COINS") //Coins - $b00005.b
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
-// PORT_DIPNAME( 0x00f0, 0x00f0, "Title" )
- /* This is the index in a table with pointers to the
- title logo, but the table is filled with just 1 value */
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) ) // 0
- PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) ) // 4
- PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) ) // 8
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) // b
- PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW2:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "SW2:4" )
- PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:5,6")
- PORT_DIPSETTING( 0x0010, "1" )
- PORT_DIPSETTING( 0x0000, "2" )
- PORT_DIPSETTING( 0x0030, "3" )
- PORT_DIPSETTING( 0x0020, "5" )
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "SW2:7" )
- PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "SW2:8" )
-
- PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x0400, IP_ACTIVE_LOW, "SW1:3" )
- PORT_DIPUNUSED_DIPLOC( 0x0800, 0x0800, "SW1:4" )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x1000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 1C_2C ) )
- PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x8000, 0x8000, "SW1:8" )
-INPUT_PORTS_END
-
-
-
-/***************************************************************************
- Thunder & Lightning
-***************************************************************************/
-
-static INPUT_PORTS_START( thunderl )
- PORT_START("P1") //Player 1
- JOY_TYPE1_2BUTTONS(1) // button2 = speed up
-
- PORT_START("P2") //Player 2
- JOY_TYPE1_2BUTTONS(2)
-
- PORT_START("COINS") //Coins + DSW
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT )
- PORT_DIPNAME( 0x0010, 0x0000, "Force 1 Life" )
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( On ) )
- PORT_DIPNAME( 0x00e0, 0x00e0, "Copyright" )
- PORT_DIPSETTING( 0x0080, "Romstar" )
- PORT_DIPSETTING( 0x00c0, "Seta (Romstar License)" )
- PORT_DIPSETTING( 0x00e0, "Seta (Visco License)" )
- PORT_DIPSETTING( 0x00a0, "Visco" )
- PORT_DIPSETTING( 0x0060, DEF_STR( None ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( None ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( None ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( None ) )
-
- PORT_START("DSW") //2 DSWs - $600003 & 1.b
- PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3,4")
- PORT_DIPSETTING( 0x000c, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x000d, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 4C_2C ) )
- PORT_DIPSETTING( 0x000e, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0009, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 4C_3C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_4C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 3C_3C ) )
- PORT_DIPSETTING( 0x000a, DEF_STR( 2C_2C ) )
- PORT_DIPSETTING( 0x000f, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( 3C_4C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 2C_4C ) )
- PORT_DIPSETTING( 0x000b, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:5,6,7,8")
- PORT_DIPSETTING( 0x00c0, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x00d0, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( 4C_2C ) )
- PORT_DIPSETTING( 0x00e0, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0090, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( 4C_3C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_4C ) )
- PORT_DIPSETTING( 0x0050, DEF_STR( 3C_3C ) )
- PORT_DIPSETTING( 0x00a0, DEF_STR( 2C_2C ) )
- PORT_DIPSETTING( 0x00f0, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 3C_4C ) )
- PORT_DIPSETTING( 0x0060, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 2C_4C ) )
- PORT_DIPSETTING( 0x00b0, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0070, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_4C ) )
-
- PORT_SERVICE_DIPLOC( 0x0100, IP_ACTIVE_LOW, "SW1:1" )
- PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) // WEIRD!
- PORT_DIPSETTING( 0x0200, DEF_STR( On ) )
- PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x0000, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Cocktail ) )
- PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Controls ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x0800, "2" )
- PORT_DIPSETTING( 0x0000, "1" )
- PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:5")
- PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:6")
- PORT_DIPSETTING( 0x2000, "3" )
- PORT_DIPSETTING( 0x0000, "2" )
- PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x8000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0xc000, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
-
- /* These are needed due to the memory map shared with Wit's */
- PORT_START("P3")
- PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("P4") //Player 4
- PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( thunderlbl )
-
- PORT_INCLUDE( thunderl )
-
- PORT_MODIFY("COINS")
- PORT_DIPNAME( 0x00e0, 0x00e0, "Copyright" )
- PORT_DIPSETTING( 0x0080, DEF_STR( None ) )
- PORT_DIPSETTING( 0x00c0, "Hyogo (Hyogo License)" )
- PORT_DIPSETTING( 0x00e0, "(Hyogo License)" )
- PORT_DIPSETTING( 0x00a0, "Hyogo" )
- PORT_DIPSETTING( 0x0060, DEF_STR( None ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( None ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( None ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( None ) )
-INPUT_PORTS_END
-
-/***************************************************************************
- Thundercade (US)
-***************************************************************************/
-
-static INPUT_PORTS_START( tndrcade )
- PORT_START("P1") //Player 1
- JOY_TYPE1_2BUTTONS(1)
-
- PORT_START("P2") //Player 2
- JOY_TYPE1_2BUTTONS(2)
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x000c, "50K Only" )
- PORT_DIPSETTING( 0x0004, "50K, Every 150K" )
- PORT_DIPSETTING( 0x0000, "70K, Every 200K" )
- PORT_DIPSETTING( 0x0008, "100K Only" )
- PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:5,6")
- PORT_DIPSETTING( 0x0010, "1" )
- PORT_DIPSETTING( 0x0000, "2" )
- PORT_DIPSETTING( 0x0030, "3" )
- PORT_DIPSETTING( 0x0020, "5" )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0000, "Licensed To" ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, "Taito America Corp." )
- PORT_DIPSETTING( 0x0000, "Taito Corp. Japan" )
-
- PORT_DIPNAME( 0x0100, 0x0100, "Title" ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0100, "Thundercade" )
- PORT_DIPSETTING( 0x0000, "Twin Formation" )
- PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x0400, IP_ACTIVE_LOW, "SW1:3" )
- PORT_DIPNAME( 0x0800, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x1000, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x0080,EQUALS,0x0080)
- PORT_DIPSETTING( 0x3000, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x0080,EQUALS,0x0080)
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW",0x0080,EQUALS,0x0080)
- PORT_DIPSETTING( 0x2000, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x0080,EQUALS,0x0080)
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSW",0x0080,NOTEQUALS,0x0080)
- PORT_DIPSETTING( 0x1000, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSW",0x0080,NOTEQUALS,0x0080)
- PORT_DIPSETTING( 0x2000, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x0080,NOTEQUALS,0x0080)
- PORT_DIPSETTING( 0x3000, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x0080,NOTEQUALS,0x0080)
- PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x4000, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x0080,EQUALS,0x0080)
- PORT_DIPSETTING( 0xc000, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x0080,EQUALS,0x0080)
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW",0x0080,EQUALS,0x0080)
- PORT_DIPSETTING( 0x8000, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x0080,EQUALS,0x0080)
- PORT_DIPSETTING( 0xc000, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x0080,NOTEQUALS,0x0080)
- PORT_DIPSETTING( 0x8000, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW",0x0080,NOTEQUALS,0x0080)
- PORT_DIPSETTING( 0x4000, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW",0x0080,NOTEQUALS,0x0080)
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW",0x0080,NOTEQUALS,0x0080)
-INPUT_PORTS_END
-
-
-/***************************************************************************
- Thundercade (Japan)
-***************************************************************************/
-
-static INPUT_PORTS_START( tndrcadj )
- PORT_INCLUDE(tndrcade)
-
- PORT_MODIFY("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPNAME( 0x0100, 0x0100, "Invulnerability (Cheat)") PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x1000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 1C_2C ) )
- PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x4000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0xc000, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x8000, DEF_STR( 1C_2C ) )
-INPUT_PORTS_END
-
-
-
-/***************************************************************************
- Twin Eagle
-***************************************************************************/
-
-static INPUT_PORTS_START( twineagl )
- PORT_START("P1") //Player 1
- JOY_TYPE1_2BUTTONS(1)
-
- PORT_START("P2") //Player 2
- JOY_TYPE1_2BUTTONS(2)
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0001, 0x0001, "Copyright / License" ) PORT_DIPLOCATION("SW1:1") /* Always "Seta" if sim. players = 1 */
- PORT_DIPSETTING( 0x0000, "Taito America / Romstar" ) PORT_CONDITION("DSW",0x4000,NOTEQUALS,0x4000)
- PORT_DIPSETTING( 0x0001, "Taito Corp Japan" ) PORT_CONDITION("DSW",0x4000,NOTEQUALS,0x4000) /* "World" Copyright */
- PORT_DIPSETTING( 0x0000, "Taito America" ) PORT_CONDITION("DSW",0x4000,EQUALS,0x4000)
- PORT_DIPSETTING( 0x0001, "Seta / Taito" ) PORT_CONDITION("DSW",0x4000,EQUALS,0x4000) /* Japan Only Notice */
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "SW1:3" )
- PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:4") /* Only if simultaneous players = 1 */
- PORT_DIPSETTING( 0x0000, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( Cocktail ) )
- PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0x0040, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x0080, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x8000,EQUALS,0x8000)
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0080, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0040, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW",0x8000,NOTEQUALS,0x8000)
- PORT_DIPNAME( 0x0300, 0x0100, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0c00, 0x0000, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x0c00, "Never" )
- PORT_DIPSETTING( 0x0800, "500K Only" )
- PORT_DIPSETTING( 0x0400, "1000K Only" )
- PORT_DIPSETTING( 0x0000, "500K, Every 1500K" )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:5,6")
- PORT_DIPSETTING( 0x1000, "1" )
- PORT_DIPSETTING( 0x0000, "2" )
- PORT_DIPSETTING( 0x3000, "3" )
- PORT_DIPSETTING( 0x2000, "5" )
- PORT_DIPNAME( 0x4000, 0x0000, "Licensor Option" ) PORT_DIPLOCATION("SW2:7") /* Manual states "Don't Touch" */
- PORT_DIPSETTING( 0x4000, "Option 1" )
- PORT_DIPSETTING( 0x0000, "Option 2" )
- PORT_DIPNAME( 0x8000, 0x8000, "Coinage Type" ) PORT_DIPLOCATION("SW2:8") /* Manual states "Don't Touch" */
- PORT_DIPSETTING( 0x8000, "Coin Mode 1" )
- PORT_DIPSETTING( 0x0000, "Coin Mode 2" )
-INPUT_PORTS_END
-
-
-
-/***************************************************************************
- Ultraman Club
-***************************************************************************/
-
-static INPUT_PORTS_START( umanclub )
- PORT_START("P1") //Player 1
- JOY_TYPE1_2BUTTONS(1)
-
- PORT_START("P2") //Player 2
- JOY_TYPE1_2BUTTONS(2)
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
- PORT_DIPNAME( 0x0004, 0x0004, "Unknown DSW2 - 3*" ) PORT_DIPLOCATION("SW2:3") // tested...Manual states "Unused"
- PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0008, 0x0008, "Stage Select (Cheat)") PORT_DIPLOCATION("SW2:4") // Manual states "Unused"
- PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0010, IP_ACTIVE_LOW, "SW2:5" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0020, IP_ACTIVE_LOW, "SW2:6" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0040, IP_ACTIVE_LOW, "SW2:7" ) /* Listed as "Unused" */
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW2:8" )
-
- PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x0200, "1" )
- PORT_DIPSETTING( 0x0300, "2" )
- PORT_DIPSETTING( 0x0100, "3" )
- PORT_DIPSETTING( 0x0000, "4" )
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:5,6,7,8")
- PORT_DIPSETTING( 0xa000, DEF_STR( 6C_1C ) )
- PORT_DIPSETTING( 0xb000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0xc000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0xd000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 8C_3C ) )
- PORT_DIPSETTING( 0xe000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 5C_3C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0xf000, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x9000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x8000, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x7000, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x6000, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x5000, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
-INPUT_PORTS_END
-
-
-/***************************************************************************
- Ultra Toukon Densetsu
-***************************************************************************/
-
-static INPUT_PORTS_START( utoukond )
- PORT_START("P1") //Player 1
- JOY_TYPE1_3BUTTONS(1)
-
- PORT_START("P2") //Player 2
- JOY_TYPE1_3BUTTONS(2)
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- /* These are NOT Dip Switches but jumpers */
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_START("DSW") //2 DSWs
- PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3,4")
- PORT_DIPSETTING( 0x0002, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( 4C_3C ) )
- PORT_DIPSETTING( 0x000f, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 3C_4C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x000e, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 2C_5C ) )
- PORT_DIPSETTING( 0x000d, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x000b, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x000a, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x0009, DEF_STR( 1C_7C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:5,6,7,8")
- PORT_DIPSETTING( 0x0020, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0050, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_3C ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 4C_3C ) )
- PORT_DIPSETTING( 0x00f0, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 3C_4C ) )
- PORT_DIPSETTING( 0x0070, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0060, DEF_STR( 2C_5C ) )
- PORT_DIPSETTING( 0x00d0, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x00b0, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x0090, DEF_STR( 1C_7C ) )
-
- PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x0000, "1" )
- PORT_DIPSETTING( 0x0200, "2" )
- PORT_DIPSETTING( 0x0300, "3" )
- PORT_DIPSETTING( 0x0100, "4" )
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:5")
- PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( On ) )
- PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x4000, "100k" )
- PORT_DIPSETTING( 0x0000, "150k" )
- PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" )
-INPUT_PORTS_END
-
-/***************************************************************************
- U.S. Classic
-***************************************************************************/
-
-static INPUT_PORTS_START( usclssic )
- PORT_START("TRACKX")
- PORT_BIT( 0xfff, 0x000, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(usclssic_state, trackball_x_r)
-
- PORT_START("TRACKY")
- PORT_BIT( 0xfff, 0x000, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(usclssic_state, trackball_y_r)
-
- PORT_START("TRACK1_X") /* muxed port 0 */
- PORT_BIT( 0xfff, 0x000, IPT_TRACKBALL_X ) PORT_SENSITIVITY(70) PORT_KEYDELTA(30) PORT_RESET
-
- PORT_START("TRACK1_Y") /* muxed port 0 */
- PORT_BIT( 0xfff, 0x000, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(70) PORT_KEYDELTA(30) PORT_RESET
-
- PORT_START("TRACK2_X") /* muxed port 1 */
- PORT_BIT( 0xfff, 0x000, IPT_TRACKBALL_X ) PORT_SENSITIVITY(70) PORT_KEYDELTA(30) PORT_RESET PORT_COCKTAIL
-
- PORT_START("TRACK2_Y") /* muxed port 1 */
- PORT_BIT( 0xfff, 0x000, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(70) PORT_KEYDELTA(30) PORT_RESET PORT_COCKTAIL
-
- PORT_START("BUTTONS")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_WRITE_LINE_DEVICE_MEMBER("buttonmux", hc157_device, a0_w)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_WRITE_LINE_DEVICE_MEMBER("buttonmux", hc157_device, a1_w)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) PORT_WRITE_LINE_DEVICE_MEMBER("buttonmux", hc157_device, a2_w)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_WRITE_LINE_DEVICE_MEMBER("buttonmux", hc157_device, b0_w)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_WRITE_LINE_DEVICE_MEMBER("buttonmux", hc157_device, b1_w)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) PORT_WRITE_LINE_DEVICE_MEMBER("buttonmux", hc157_device, b2_w)
-
- PORT_START("COINS")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) // tested (sound related?)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SERVICE1 )
- PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_TILT )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0001, 0x0001, "Credits For 9-Hole" ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x0001, "2" )
- PORT_DIPSETTING( 0x0000, "3" )
- PORT_DIPNAME( 0x0002, 0x0002, "Game Type" ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x0002, "Domestic" )
- PORT_DIPSETTING( 0x0000, "Foreign" )
- PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x0004, "1" )
- PORT_DIPSETTING( 0x0008, "2" )
- PORT_DIPSETTING( 0x000c, "3" )
- PORT_DIPSETTING( 0x0000, "4" )
- PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:5,6")
- PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) )
- PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:7,8")
- PORT_DIPSETTING( 0x0040, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( 1C_2C ) )
-
- PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0000, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( Cocktail ) )
- PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x0400, IP_ACTIVE_LOW, "SW1:3" )
- PORT_DIPNAME( 0x3800, 0x3800, "Flight Distance" ) PORT_DIPLOCATION("SW1:4,5,6")
- PORT_DIPSETTING( 0x3800, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x3000, "-30 Yards" )
- PORT_DIPSETTING( 0x2800, "+10 Yards" )
- PORT_DIPSETTING( 0x2000, "+20 Yards" )
- PORT_DIPSETTING( 0x1800, "+30 Yards" )
- PORT_DIPSETTING( 0x1000, "+40 Yards" )
- PORT_DIPSETTING( 0x0800, "+50 Yards" )
- PORT_DIPSETTING( 0x0000, "+60 Yards" )
- PORT_DIPNAME( 0xc000, 0xc000, "Licensed To" ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0xc000, "Romstar" )
- PORT_DIPSETTING( 0x8000, "None (Japan)" )
- PORT_DIPSETTING( 0x4000, "Taito" )
- PORT_DIPSETTING( 0x0000, "Taito America" )
-INPUT_PORTS_END
-
-
-
-/***************************************************************************
- War of Aero
-***************************************************************************/
-
-static INPUT_PORTS_START( wrofaero )
- PORT_START("P1") //Player 1 - $400000.w
- JOY_TYPE1_3BUTTONS(1) // 3rd button selects the weapon
- // when the dsw for cheating is on
-
- PORT_START("P2") //Player 2 - $400002.w
- JOY_TYPE1_3BUTTONS(2)
-
- PORT_START("COINS") //Coins - $400004.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
- PORT_DIPNAME( 0x0004, 0x0004, "Unknown 1-3*" ) PORT_DIPLOCATION("SW1:3") // tested...Manual states "Unused"
- PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0008, 0x0008, "Stage & Weapon Select (Cheat)") PORT_DIPLOCATION("SW1:4") // P2 Start Is Freeze Screen...Manual states "Unused"
- PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "SW1:5" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "SW1:6" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "SW1:7" ) /* Listed as "Unused" */
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" )
-
- PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0200, "2" )
- PORT_DIPSETTING( 0x0300, "3" )
- PORT_DIPSETTING( 0x0100, "4" )
- PORT_DIPSETTING( 0x0000, "5" )
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:5,6,7,8")
- PORT_DIPSETTING( 0xa000, DEF_STR( 6C_1C ) )
- PORT_DIPSETTING( 0xb000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0xc000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0xd000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 8C_3C ) )
- PORT_DIPSETTING( 0xe000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 5C_3C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0xf000, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x9000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x8000, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x7000, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x6000, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x5000, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
-INPUT_PORTS_END
-
-
-
-/***************************************************************************
- Wit's
-***************************************************************************/
-
-static INPUT_PORTS_START( wits )
- PORT_START("P1") //Player 1
- JOY_TYPE1_2BUTTONS(1)
-
- PORT_START("P2") //Player 2
- JOY_TYPE1_2BUTTONS(2)
-
- PORT_START("COINS") //Coins + DSW
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT )
- PORT_DIPNAME( 0x0010, 0x0010, "Unknown 3-4*" ) // Jumpers, I guess
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, "Unknown 3-5*" )
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x00c0, 0x0040, "License" )
- PORT_DIPSETTING( 0x00c0, "Romstar" )
- PORT_DIPSETTING( 0x0080, "Seta U.S.A" )
- PORT_DIPSETTING( 0x0040, "Visco (Japan Only)" )
- PORT_DIPSETTING( 0x0000, "Athena (Japan Only)" )
-
- PORT_START("DSW") //2 DSWs - $600003 & 1.b
- PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x0008, "150k, 350k" )
- PORT_DIPSETTING( 0x000c, "200k, 500k" )
- PORT_DIPSETTING( 0x0004, "300k, 600k" )
- PORT_DIPSETTING( 0x0000, "400k" )
- PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:5,6")
- PORT_DIPSETTING( 0x0000, "1" )
- PORT_DIPSETTING( 0x0010, "2" )
- PORT_DIPSETTING( 0x0030, "3" )
- PORT_DIPSETTING( 0x0020, "5" )
- PORT_DIPNAME( 0x0040, 0x0040, "Play Mode" ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0040, "2 Players" )
- PORT_DIPSETTING( 0x0000, "4 Players" )
- PORT_DIPNAME( 0x0080, 0x0080, "CPU Player During Multi-Player Game" ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0000, DEF_STR( No ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( Yes ) )
-
- PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x0100, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Cocktail ) )
- PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x0400, "Every 3rd Loop" )
- PORT_DIPSETTING( 0x0000, "Every 7th Loop" )
- PORT_SERVICE_DIPLOC( 0x0800, IP_ACTIVE_LOW, "SW1:4" )
- PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 1C_1C ) )
- PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0xc000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x8000, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
-
- PORT_START("P3") //Player 3
- JOY_TYPE1_2BUTTONS(3)
-
- PORT_START("P4") //Player 4
- JOY_TYPE1_2BUTTONS(4)
-INPUT_PORTS_END
-
-
-/***************************************************************************
- Zing Zing Zip
-***************************************************************************/
-
-static INPUT_PORTS_START( zingzip )
- PORT_START("P1") //Player 1 - $400000.w
- JOY_TYPE1_2BUTTONS(1)
-
- PORT_START("P2") //Player 2 - $400002.w
- JOY_TYPE1_2BUTTONS(2)
-
- PORT_START("COINS") //Coins - $400004.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no coin 2
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW2:3" ) /* Manual States dips 3-7 are unused */
- PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "SW2:4" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "SW2:5" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "SW2:6" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "SW2:7" ) /* Listed as "Unused" */
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW2:8" )
-
- PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x0200, "2" )
- PORT_DIPSETTING( 0x0300, "3" )
- PORT_DIPSETTING( 0x0100, "4" )
- PORT_DIPSETTING( 0x0000, "5" )
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:5,6,7,8")
- PORT_DIPSETTING( 0xa000, DEF_STR( 6C_1C ) )
- PORT_DIPSETTING( 0xb000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0xc000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0xd000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 8C_3C ) )
- PORT_DIPSETTING( 0xe000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 5C_3C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0xf000, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x9000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x8000, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x7000, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x6000, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x5000, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
-INPUT_PORTS_END
-
-/*************************************
- Pairs Love
-*************************************/
-
-static INPUT_PORTS_START( pairlove )
- PORT_START("P1") //Player 1 - $500001.b
- JOY_TYPE1_2BUTTONS(1) // button2 = speed up
-
- PORT_START("P2") //Player 2 - $500003.b
- JOY_TYPE1_2BUTTONS(2)
-
- PORT_START("COINS") //Coins + DSW - $500005.b
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT )
-
- PORT_START("DSW") // 2 DIP switches
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW2:3" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "SW2:4" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "SW2:5" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "SW2:6" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "SW2:7" ) /* Listed as "Unused" */
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW2:8" )
-
- PORT_DIPUNUSED_DIPLOC( 0x0100, 0x0100, "SW1:1" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0200, 0x0200, "SW1:2" ) /* Listed as "Unused" */
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:5,6,7,8")
- PORT_DIPSETTING( 0xa000, DEF_STR( 6C_1C ) )
- PORT_DIPSETTING( 0xb000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0xc000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0xd000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 8C_3C ) )
- PORT_DIPSETTING( 0xe000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 5C_3C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0xf000, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x9000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x8000, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x7000, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x6000, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x5000, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
-INPUT_PORTS_END
-
-/***************************************************************************
- Orbs
-***************************************************************************/
-
-static INPUT_PORTS_START( orbs )
- PORT_START("P1") //Player 1
- JOY_TYPE1_1BUTTON(1)
-
- PORT_START("P2") //Player 2 ??
- JOY_TYPE1_1BUTTON(2)
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
- PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x0008, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0010, 0x0010, "Stock" ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x0010, "1" )
- PORT_DIPSETTING( 0x0000, "2" )
- PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Level_Select ) ) PORT_DIPLOCATION("SW2:6")
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, "Timer speed" ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0040, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0000, "Fast" )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW2:8" )
-
- PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3")
- PORT_DIPSETTING( 0x0500, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:4,5,6")
- PORT_DIPSETTING( 0x2800, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x3000, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x3800, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x1800, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x4000, 0x4000, "Force Coinage (Half Coin)" ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x4000, DEF_STR( No ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( 2C_1C ) )
- PORT_DIPNAME( 0x8000, 0x8000, "Unknown 1-8" ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-INPUT_PORTS_END
-
-/***************************************************************************
- Kero Kero Keroppi no Issyoni Asobou
-***************************************************************************/
-
-
-static INPUT_PORTS_START( keroppi )
- PORT_START("P1")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Prize Out") PORT_CODE(KEYCODE_W)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("P2")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Prize Hopper") PORT_CODE(KEYCODE_Q)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0003, 0x0003, "Obstacle Course Payout Setting" ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0000, "Highest (0, 3, 5, 7, 15 Tickets)" )
- PORT_DIPSETTING( 0x0001, "High (0, 3, 4, 5, 10 Tickets)" )
- PORT_DIPSETTING( 0x0002, "Low (0, 1, 2, 3, 6 Tickets)" )
- PORT_DIPSETTING( 0x0003, "Medium (0, 2, 3, 4, 8 Tickets)" )
- PORT_DIPNAME( 0x000c, 0x000c, "Treasure Hunt Payout Setting" ) PORT_DIPLOCATION("SW2:3,4")
- PORT_DIPSETTING( 0x0000, "Highest (5, 10, 15 Tickets)" )
- PORT_DIPSETTING( 0x0004, "High (5, 7, 10 Tickets)" )
- PORT_DIPSETTING( 0x0008, "Low (1, 3, 5 Tickets)" )
- PORT_DIPSETTING( 0x000c, "Medium (3, 5, 7 Tickets)" )
- PORT_DIPNAME( 0x0030, 0x0030, "New Jersey Payout Setting" ) PORT_DIPLOCATION("SW2:5,6")
- PORT_DIPSETTING( 0x0000, "Always Payout 5 Tickets" )
- PORT_DIPSETTING( 0x0010, "Always Payout 3 Tickets" )
- PORT_DIPSETTING( 0x0020, "Always Payout 1 Ticket" )
- PORT_DIPSETTING( 0x0030, DEF_STR( Off ) )
- PORT_DIPNAME( 0x00c0, 0x00c0, "Mercy Ticket Payout Setting (Treasure Hunt Only" ) PORT_DIPLOCATION("SW2:7,8")
- PORT_DIPSETTING( 0x0000, "No Payout" )
- PORT_DIPSETTING( 0x0040, "3 Tickets" )
- PORT_DIPSETTING( 0x0080, "2 Tickets" )
- PORT_DIPSETTING( 0x00c0, "1 Ticket" )
-
- PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( 1C_1C ) )
- PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x0400, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0800, 0x0800, "Vending Style" ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x0800, "Ticket" )
- PORT_DIPSETTING( 0x0000, "No Vending" )
- PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:5")
- PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x6000, 0x6000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,7")
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x6000, DEF_STR( Normal ) )
- PORT_DIPNAME( 0x8000, 0x8000, "Payout Setting" ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x8000, "Normal Payout" )
- PORT_DIPSETTING( 0x0000, "No Payout" )
-
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( keroppij )
- PORT_START("P1")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Prize Out") PORT_CODE(KEYCODE_W)
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("P2")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("COINS") //Coins
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Prize Hopper") PORT_CODE(KEYCODE_Q)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("DSW") //2 DSWs - $600001 & 3.b
- PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2,3")
- PORT_DIPSETTING( 0x0003, "1" )
- PORT_DIPSETTING( 0x0005, "2" )
- PORT_DIPSETTING( 0x0001, "3" )
- PORT_DIPSETTING( 0x0007, "4" )
- PORT_DIPSETTING( 0x0006, "5" )
- PORT_DIPSETTING( 0x0002, "6" )
- PORT_DIPSETTING( 0x0004, "7" )
- PORT_DIPSETTING( 0x0000, "8" )
- PORT_DIPNAME( 0x0038, 0x0038, "Game Select" ) PORT_DIPLOCATION("SW2:4,5,6")
- PORT_DIPSETTING( 0x0038, "No. 1,2,3" )
- PORT_DIPSETTING( 0x0030, "No. 1" )
- PORT_DIPSETTING( 0x0028, "No. 2,3" )
- PORT_DIPSETTING( 0x0020, "No. 3" )
- PORT_DIPSETTING( 0x0018, "No. 1,2" )
- PORT_DIPSETTING( 0x0010, "No. 2" )
- PORT_DIPSETTING( 0x0008, "No. 1,3" )
- PORT_DIPSETTING( 0x0000, "No. 1,2,3" )
- PORT_DIPNAME( 0x0040, 0x0040, "Unknown 2-7" ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, "Unknown 2-8" ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3")
- PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0600, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0500, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( 1C_4C ) )
- PORT_DIPNAME( 0x0800, 0x0800, "Unknown 1-4" ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x1000, 0x1000, "Unknown 1-5" ) PORT_DIPLOCATION("SW1:5")
- PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:6")
- PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" )
-INPUT_PORTS_END
-
-/***************************************************************************
- Crazy Fight
-***************************************************************************/
-
-static INPUT_PORTS_START( crazyfgt )
- PORT_START("COINS") //Coins - $610000.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_CUSTOM ) // protection
-
- PORT_START("UNK") //? - $610002.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("INPUT") //Player - $610004.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("top-center") PORT_CODE(KEYCODE_5_PAD)
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("bottom-center") PORT_CODE(KEYCODE_2_PAD)
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("top-left") PORT_CODE(KEYCODE_4_PAD)
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("bottom-left") PORT_CODE(KEYCODE_1_PAD)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("top-right") PORT_CODE(KEYCODE_6_PAD)
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("bottom-right") PORT_CODE(KEYCODE_3_PAD)
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SERVICE1 ) // ticket
-
- PORT_START("DSW") //2 DSWs - $630001 & 3.b
- PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3")
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 1C_5C ) )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:4,5,6")
- PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 1C_5C ) )
- PORT_DIPNAME( 0x00c0, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7,8")
- PORT_DIPSETTING( 0x00c0, "5" )
- PORT_DIPSETTING( 0x0080, "10" )
- PORT_DIPSETTING( 0x0040, "15" )
- PORT_DIPSETTING( 0x0000, "20" )
-
- PORT_SERVICE_DIPLOC( 0x0100, IP_ACTIVE_LOW, "SW1:1" )
- PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0c00, 0x0c00, "Difficulty?" ) PORT_DIPLOCATION("SW1:3,4")
- PORT_DIPSETTING( 0x0c00, "0" )
- PORT_DIPSETTING( 0x0800, "1" )
- PORT_DIPSETTING( 0x0400, "2" )
- PORT_DIPSETTING( 0x0000, "3" )
- PORT_DIPNAME( 0x3000, 0x3000, "Energy" ) PORT_DIPLOCATION("SW1:5,6")
- PORT_DIPSETTING( 0x1000, "24" )
- PORT_DIPSETTING( 0x2000, "32" )
- PORT_DIPSETTING( 0x3000, "48" )
- PORT_DIPSETTING( 0x0000, "100" )
- PORT_DIPNAME( 0xc000, 0xc000, "Bonus?" ) PORT_DIPLOCATION("SW1:7,8")
- PORT_DIPSETTING( 0xc000, "0" )
- PORT_DIPSETTING( 0x8000, "1" )
- PORT_DIPSETTING( 0x4000, "2" )
- PORT_DIPSETTING( 0x0000, "3" )
-INPUT_PORTS_END
-
-/***************************************************************************
- Jockey Club
-***************************************************************************/
-
-/*
- Betting Panel (keys)
-
- 1 1-2 2-3 3-4 4-5 5-6 (1QWERT)
- 2 1-3 2-4 3-5 4-6 (2ASDF)
- 3 1-4 2-5 3-6 (3ZXC)
- 4 1-5 2-6 (4YU)
- 5 1-6 (5H)
- 6 (6)
-*/
-
-static INPUT_PORTS_START( jockeyc_keyboards )
- PORT_START("KEY1.0") // 200000.w (0x08)
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 1") PORT_CODE(KEYCODE_1_PAD)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 2") PORT_CODE(KEYCODE_2_PAD)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 3") PORT_CODE(KEYCODE_3_PAD)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 4") PORT_CODE(KEYCODE_4_PAD)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 5") PORT_CODE(KEYCODE_5_PAD)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_START("KEY2.0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 1")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 2")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 3")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 4")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 5")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY1.1") // 200000.w (0x10)
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 6") PORT_CODE(KEYCODE_6_PAD)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Payout")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START3 ) PORT_NAME("P1 Credit") // shown in test mode, but seems unused
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Cancel")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_START("KEY2.1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 6")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Payout")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START4 ) PORT_NAME("P2 Credit") // shown in test mode, but seems unused
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Cancel")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY1.2") // 200000.w (0x20)
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 1-2") PORT_CODE(KEYCODE_Q)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 1-3") PORT_CODE(KEYCODE_A)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 1-4") PORT_CODE(KEYCODE_Z)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 1-5") PORT_CODE(KEYCODE_Y)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 1-6") PORT_CODE(KEYCODE_H)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_START("KEY2.2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 1-2")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 1-3")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 1-4")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 1-5")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 1-6")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY1.3") // 200000.w (0x40)
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 2-3") PORT_CODE(KEYCODE_W)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 2-4") PORT_CODE(KEYCODE_S)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 2-5") PORT_CODE(KEYCODE_X)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 2-6") PORT_CODE(KEYCODE_U)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 3-4") PORT_CODE(KEYCODE_E)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_START("KEY2.3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 2-3")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 2-4")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 2-5")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 2-6")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 3-4")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY1.4") // 200000.w (0x80)
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 3-5") PORT_CODE(KEYCODE_D)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 3-6") PORT_CODE(KEYCODE_C)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 4-5") PORT_CODE(KEYCODE_R)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 4-6") PORT_CODE(KEYCODE_F)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Bet 5-6") PORT_CODE(KEYCODE_T)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_START("KEY2.4")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 3-5")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 3-6")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 4-5")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 4-6")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Bet 5-6")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( jockeyc )
- PORT_INCLUDE( jockeyc_keyboards )
-
- PORT_START("COIN") // 200002.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_CUSTOM ) // Coin Drop - 1P
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_CUSTOM ) // Hopper Overflow - 1P
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper1", ticket_dispenser_device, line_r) // Hopper Coin Out - 1P
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_OTHER ) // Attendant Pay - 1P
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_NAME("Coin B - 1P")
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("Coin A - 1P")
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_CUSTOM ) // Coin Sense 2 - 1P
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_CUSTOM ) // Coin Sense 1 - 1P
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_CUSTOM ) // Coin Drop - 2P
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_CUSTOM ) // Sel Sense (single hopper mode) / Hopper Overflow - 2P (double hopper mode)
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper2", ticket_dispenser_device, line_r) // Hopper Coin Out - 2P (double hopper mode)
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_OTHER ) // Attendant Pay - 2P
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_NAME("Coin B - 2P")
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("Coin A - 2P")
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_CUSTOM ) // Coin Sense 2 - 2P
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_CUSTOM ) // Coin Sense 1 - 2P
-
- PORT_START("SERVICE") // 200010.w
- PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_GAMBLE_DOOR ) PORT_TOGGLE
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) PORT_CODE(KEYCODE_L)
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Special Test") PORT_CODE(KEYCODE_F1) // enter Special Screen in test mode
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE4 ) PORT_NAME("Call Attendant") // Flips an output bit (lamp?)
- // Electronic key switches, fitted beneath the front panel:
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("Last Game Key") PORT_TOGGLE // Test Mode at boot, Last Game during play
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Meter Key") PORT_TOGGLE
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Reset Key") PORT_TOGGLE // reset error condition, e.g. hopper empty error
- PORT_CONFNAME( 0x8000, 0x0000, "Backup Battery" )
- PORT_CONFSETTING( 0x0000, "OK" )
- PORT_CONFSETTING( 0x8000, "NG" )
-
- PORT_START("DSW1") // SW1
- PORT_DIPNAME( 0x01, 0x01, "Coin Type" ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x01, "Coin" )
- PORT_DIPSETTING( 0x00, "Medal" )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPNAME( 0x08, 0x00, "Max Jackpot" ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x08, "500 coins" )
- PORT_DIPSETTING( 0x00, "Unlimited" )
- PORT_DIPNAME( 0x10, 0x10, "Music During Race" ) PORT_DIPLOCATION("SW1:5")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x20, 0x20, "Coin Divider?" ) PORT_DIPLOCATION("SW1:6")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x40, 0x00, "Hopper" ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x40, "Single" )
- PORT_DIPSETTING( 0x00, "Double" )
- PORT_DIPNAME( 0x80, 0x80, "Coin Sensor" ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x00, "Single" )
- PORT_DIPSETTING( 0x80, "Double" )
-
- PORT_START("DSW2_3") // SW2 & SW3
- PORT_DIPNAME( 0x0007, 0x0007, "Payout Rate" ) PORT_DIPLOCATION("SW2:1,2,3")
- PORT_DIPSETTING( 0x0007, "100%" )
- PORT_DIPSETTING( 0x0006, "95%" )
- PORT_DIPSETTING( 0x0005, "90%" )
- PORT_DIPSETTING( 0x0004, "85%" )
- PORT_DIPSETTING( 0x0003, "80%" )
- PORT_DIPSETTING( 0x0002, "75%" )
- PORT_DIPSETTING( 0x0001, "70%" )
- PORT_DIPSETTING( 0x0000, "65%" )
- PORT_DIPUNKNOWN_DIPLOC(0x0008, 0x0008, "SW2:4")
- PORT_DIPUNKNOWN_DIPLOC(0x0010, 0x0010, "SW2:5")
- PORT_DIPUNKNOWN_DIPLOC(0x0020, 0x0020, "SW2:6")
- PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:7,8")
- PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0000, "1 Coin/10 Credits" )
-
- PORT_DIPUNKNOWN_DIPLOC(0x0100, 0x0100, "SW3:1")
- PORT_DIPUNKNOWN_DIPLOC(0x0200, 0x0200, "SW3:2")
- PORT_DIPUNKNOWN_DIPLOC(0x0400, 0x0400, "SW3:3")
- PORT_DIPUNKNOWN_DIPLOC(0x0800, 0x0800, "SW3:4")
- PORT_DIPUNKNOWN_DIPLOC(0x1000, 0x1000, "SW3:5")
- PORT_DIPUNKNOWN_DIPLOC(0x2000, 0x2000, "SW3:6")
- PORT_DIPNAME( 0x4000, 0x4000, "Auto Bet" ) PORT_DIPLOCATION("SW3:7")
- PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x8000, 0x8000, "Skip Race" ) PORT_DIPLOCATION("SW3:8") // debug? corrupt background
- PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
- PORT_START("CABINET")
- PORT_CONFNAME( 0x01, 0x01, "Fitted Hoppers" )
- PORT_CONFSETTING( 0x00, "1" )
- PORT_CONFSETTING( 0x01, "2" )
-
-#if JOCKEYC_HIDDEN_EDITOR
- PORT_START("P1X") // 400001/3.b (low/high)
- PORT_BIT( 0x0fff, 0x0000, IPT_TRACKBALL_X ) PORT_SENSITIVITY(70) PORT_KEYDELTA(8)
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) // dec
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // inc
- PORT_START("P1Y") // 400005/7.b (low/high)
- PORT_BIT( 0x0fff, 0x0000, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(70) PORT_KEYDELTA(8)
-#endif
-INPUT_PORTS_END
-
-
-/***************************************************************************
- International Toote
-***************************************************************************/
-
-static INPUT_PORTS_START( inttoote )
- PORT_INCLUDE( jockeyc_keyboards )
- PORT_MODIFY("KEY1.1") // 200000.w (0x10)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no 1p credit
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no separate start keys?
- PORT_MODIFY("KEY2.1")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
- // inttoote: press cancel before betting to repeat the last bet
-
- PORT_START("COIN") // 200002.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_CUSTOM ) // P1 coin out
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_CUSTOM ) // P2 coin out
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("SERVICE") // 200010.w
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_GAMBLE_DOOR ) PORT_TOGGLE // open the door when in function menu to access the test mode
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Help") // press together with one of 1-2, 1-3, 1-4, 1-5, 1-6, 2-3, 2-4 to set clock
- PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
- // Electronic key switch, fitted beneath the front panel:
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Function Key") PORT_TOGGLE // Function menu
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_CONFNAME( 0x8000, 0x0000, "Backup Battery" )
- PORT_CONFSETTING( 0x0000, "OK" )
- PORT_CONFSETTING( 0x8000, "NG" )
-
- PORT_START("DSW1") // SW1
- PORT_DIPNAME( 0x03, 0x03, "Max Bet (Per Horse)" ) PORT_DIPLOCATION("SW1:1,2")
- PORT_DIPSETTING( 0x03, "10" )
- PORT_DIPSETTING( 0x02, "20" )
- PORT_DIPSETTING( 0x01, "99" )
- PORT_DIPSETTING( 0x00, "99 (alt)" )
- PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:3,4,5")
- PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x18, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x10, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0c, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x08, "1 Coin/10 Credits" )
- PORT_DIPSETTING( 0x04, "1 Coin/20 Credits" )
- PORT_DIPSETTING( 0x00, "1 Coin/50 Credits" )
- PORT_DIPNAME( 0x20, 0x20, "Unknown SW1:6" ) PORT_DIPLOCATION("SW1:6")
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Unknown SW1:7" ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Unknown SW1:8" ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW2_3") // SW2 & SW3
- PORT_DIPNAME( 0x0001, 0x0001, "Unknown SW2:1" ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, "Unknown SW2:2" ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0004, 0x0004, "Unknown SW2:3" ) PORT_DIPLOCATION("SW2:3")
- PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0018, 0x0018, "Betting Clock Speed" ) PORT_DIPLOCATION("SW2:4,5")
- PORT_DIPSETTING( 0x0018, "Slowest" )
- PORT_DIPSETTING( 0x0010, "Slower" )
- PORT_DIPSETTING( 0x0008, "Faster" )
- PORT_DIPSETTING( 0x0000, "Fastest" )
- PORT_DIPNAME( 0x01e0, 0x01e0, "Payout Rate" ) PORT_DIPLOCATION("SW2:6,7,8,SW3:1")
- PORT_DIPSETTING( 0x01e0, "80%" )
- PORT_DIPSETTING( 0x01c0, "81%" )
- PORT_DIPSETTING( 0x01a0, "82%" )
- PORT_DIPSETTING( 0x0180, "83%" )
- PORT_DIPSETTING( 0x0160, "84%" )
- PORT_DIPSETTING( 0x0140, "85%" )
- PORT_DIPSETTING( 0x0120, "86%" )
- PORT_DIPSETTING( 0x0100, "87%" )
- PORT_DIPSETTING( 0x00e0, "88%" )
- PORT_DIPSETTING( 0x00c0, "89%" )
- PORT_DIPSETTING( 0x00a0, "90%" )
- PORT_DIPSETTING( 0x0080, "91%" )
- PORT_DIPSETTING( 0x0060, "92%" )
- PORT_DIPSETTING( 0x0040, "93%" )
- PORT_DIPSETTING( 0x0020, "94%" )
- PORT_DIPSETTING( 0x0000, "95%" )
- PORT_DIPNAME( 0x0200, 0x0200, "Unknown SW3:2" ) PORT_DIPLOCATION("SW3:2")
- PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0400, 0x0400, "Hopper Payout" ) PORT_DIPLOCATION("SW3:3")
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( On ) )
- PORT_DIPNAME( 0x0800, 0x0800, "Horses" ) PORT_DIPLOCATION("SW3:4")
- PORT_DIPSETTING( 0x0800, "Random (6 Out Of 100)" ) // 6 horses randomly chosen from a stable of 100
- PORT_DIPSETTING( 0x0000, "Cyclic (8 Set Races)" ) // 8 set races continually cycled (player has a mental history of the preceding races)
- PORT_DIPNAME( 0x1000, 0x1000, "Odds" ) PORT_DIPLOCATION("SW3:5")
- PORT_DIPSETTING( 0x1000, "Lower" )
- PORT_DIPSETTING( 0x0000, "Higher" )
- PORT_DIPNAME( 0x2000, 0x2000, "Unknown SW3:6" ) PORT_DIPLOCATION("SW3:6")
- PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x4000, 0x4000, "Unknown SW3:7" ) PORT_DIPLOCATION("SW3:7")
- PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x8000, 0x8000, "Unknown SW3:8" ) PORT_DIPLOCATION("SW3:8")
- PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-INPUT_PORTS_END
-
-
-/***************************************************************************
-
-
- Graphics Layouts
-
-Sprites and layers use 16x16 tile, made of four 8x8 tiles. They can be 4
-or 6 planes deep and are stored in a wealth of formats.
-
-***************************************************************************/
-
- /* First the 4 bit tiles */
-
-
-/* The tilemap bitplanes are packed togheter */
-static const gfx_layout layout_tilemap =
-{
- 16,16,
- RGN_FRAC(1,1),
- 4,
- { STEP4(0,4) },
- { STEP4(4*4*8*3,1), STEP4(4*4*8*2,1), STEP4(4*4*8,1), STEP4(0,1) },
- { STEP8(0,4*4), STEP8(4*4*8*4,4*4) },
- 16*16*4
-};
-
-
-/* The sprite bitplanes are separated (but there are 2 per rom) */
-static const gfx_layout layout_sprites =
-{
- 16,16,
- RGN_FRAC(1,2),
- 4,
- { RGN_FRAC(1,2) + 8, RGN_FRAC(1,2) + 0, 8, 0 },
- { STEP8(0,1), STEP8(8*2*8,1) },
- { STEP8(0,8*2), STEP8(8*2*8*2,8*2) },
- 16*16*2
-};
-
-
-static const gfx_layout layout_tilemap_8bpp =
-{
- 16,16,
- RGN_FRAC(1,1),
- 8,
- { STEP8(0,4) },
- { STEP4(8*4*8*3,1), STEP4(8*4*8*2,1), STEP4(8*4*8,1), STEP4(0,1) },
- { STEP8(0,8*4), STEP8(8*4*8*4,8*4) },
- 16*16*8
-};
-
-
- /* Then the 6 bit tiles */
-
-
-/* The tilemap bitplanes are packed together */
-static const gfx_layout layout_tilemap_6bpp =
-{
- 16,16,
- RGN_FRAC(1,1),
- 6,
- { STEP4(0,4), STEP2(4*4,4) },
- { STEP4(6*4*8*3,1), STEP4(6*4*8*2,1), STEP4(6*4*8,1), STEP4(0,1) },
- { STEP8(0,6*4), STEP8(6*4*8*4,6*4) },
- 16*16*6
-};
-
-
-/***************************************************************************
- Blandia
-***************************************************************************/
-
-static GFXDECODE_START( gfx_blandia )
- GFXDECODE_ENTRY( "gfx1", 0, layout_sprites, 0, 32 ) // [0] Sprites
- GFXDECODE_ENTRY( "gfx2", 0, layout_tilemap_6bpp, 16*32+64*32*1, 32 ) // [1] Layer 1
- GFXDECODE_ENTRY( "gfx3", 0, layout_tilemap_6bpp, 16*32+64*32*0, 32 ) // [2] Layer 2
- GFXDECODE_ENTRY( "gfx2", 0, layout_tilemap_6bpp, 16*32+64*32*3, 32 ) // [3] Layer 1
- GFXDECODE_ENTRY( "gfx3", 0, layout_tilemap_6bpp, 16*32+64*32*2, 32 ) // [4] Layer 2
-GFXDECODE_END
-
-/***************************************************************************
- DownTown
-***************************************************************************/
-
-static GFXDECODE_START( gfx_downtown )
- GFXDECODE_ENTRY( "gfx1", 0, layout_sprites, 0, 32 ) // [0] Sprites
- GFXDECODE_ENTRY( "gfx2", 0, layout_tilemap, 0, 32 ) // [1] Layer 1
-GFXDECODE_END
-
-/***************************************************************************
- The Roulette
-***************************************************************************/
-
-static GFXDECODE_START( gfx_setaroul )
- GFXDECODE_ENTRY( "gfx1", 0, layout_sprites, 0x100, 16 ) // [0] Sprites
- GFXDECODE_ENTRY( "gfx2", 0, layout_tilemap_8bpp, 0, 32 ) // [1] Layer 1
-GFXDECODE_END
-
-/***************************************************************************
- J.J.Squawkers
-***************************************************************************/
-
-static GFXDECODE_START( gfx_jjsquawk )
- GFXDECODE_ENTRY( "gfx1", 0, layout_sprites, 0, 32 ) // [0] Sprites
- GFXDECODE_ENTRY( "gfx2", 0, layout_tilemap_6bpp, 16*32+64*32*0, 32 ) // [1] Layer 1
- GFXDECODE_ENTRY( "gfx3", 0, layout_tilemap_6bpp, 16*32+64*32*1, 32 ) // [2] Layer 2
- GFXDECODE_ENTRY( "gfx2", 0, layout_tilemap_6bpp, 16*32+64*32*2, 32 ) // [3] Layer 1
- GFXDECODE_ENTRY( "gfx3", 0, layout_tilemap_6bpp, 16*32+64*32*3, 32 ) // [4] Layer 2
-GFXDECODE_END
-
-/* The bitplanes are packed togheter: 4 bits in one rom, 2 bits in another.
- Since there isn't simmetry between the two roms, we load the latter with
- ROM_LOAD16_BYTE. This way we can think of it as a 4 planes rom, with the
- upper 2 planes unused. */
-
-static const gfx_layout layout_tilemap_6bpp_jjsquawkb =
-{
- 16,16,
- RGN_FRAC(1,2),
- 6,
- {RGN_FRAC(1,2) + 0*4, RGN_FRAC(1,2) + 1*4, 2*4,3*4,0*4,1*4},
- {256+128,256+129,256+130,256+131, 256+0,256+1,256+2,256+3,
- 128,129,130,131, 0,1,2,3},
- {0*16,1*16,2*16,3*16,4*16,5*16,6*16,7*16,
- 32*16,33*16,34*16,35*16,36*16,37*16,38*16,39*16},
- 16*16*4
-};
-
-static GFXDECODE_START( gfx_jjsquawkb )
- GFXDECODE_ENTRY( "gfx1", 0, layout_sprites, 0, 32 ) // [0] Sprites
- GFXDECODE_ENTRY( "gfx2", 0, layout_tilemap_6bpp_jjsquawkb, 16*32+64*32*0, 32 ) // [1] Layer 1
- GFXDECODE_ENTRY( "gfx3", 0, layout_tilemap_6bpp_jjsquawkb, 16*32+64*32*1, 32 ) // [2] Layer 2
- GFXDECODE_ENTRY( "gfx2", 0, layout_tilemap_6bpp_jjsquawkb, 16*32+64*32*2, 32 ) // [3] Layer 1
- GFXDECODE_ENTRY( "gfx3", 0, layout_tilemap_6bpp_jjsquawkb, 16*32+64*32*3, 32 ) // [4] Layer 2
-GFXDECODE_END
-
-/***************************************************************************
- Mobile Suit Gundam
-***************************************************************************/
-
-static GFXDECODE_START( gfx_msgundam )
- GFXDECODE_ENTRY( "gfx1", 0, layout_sprites, 0, 32 ) // [0] Sprites
- GFXDECODE_ENTRY( "gfx2", 0, layout_tilemap, 0x400, 32 ) // [1] Layer 1
- GFXDECODE_ENTRY( "gfx3", 0, layout_tilemap, 0x200, 32 ) // [2] Layer 2
-GFXDECODE_END
-
-/***************************************************************************
- Thundercade
-***************************************************************************/
-
-static GFXDECODE_START( gfx_tndrcade )
- GFXDECODE_ENTRY( "gfx1", 0, layout_sprites, 0, 32 ) // [0] Sprites
-GFXDECODE_END
-
-// TODO: pairlove sets up two identical palette banks at 0-1ff and 0x200-0x3ff in-game, 0x200-0x3ff only in service mode.
-// Maybe there's a coloroffsetregister to somewhere?
-static GFXDECODE_START( gfx_pairlove )
- GFXDECODE_ENTRY( "gfx1", 0, layout_sprites, 0x200, 32 ) // [0] Sprites
-GFXDECODE_END
-
-
-
-/***************************************************************************
- Wiggie Waggle / Super Bar
-****************************************************************************/
-
-/* these seem to have some silly address swapping, different on each game
- we handle it here, but we could also handle it in the init instead */
-static const gfx_layout wiggie_layout =
-{
- 16,16,
- RGN_FRAC(1,4),
- 4,
- { RGN_FRAC(0,4),RGN_FRAC(1,4),RGN_FRAC(2,4),RGN_FRAC(3,4) },
- { 0,1,2,3,4,5,6,7,
- 64,65,66,67,68,69,70,71 },
- { 0*8, 16*8, 4*8, 20*8,
- 2*8, 18*8, 6*8, 22*8,
- 1*8, 17*8, 5*8, 21*8,
- 3*8, 19*8, 7*8, 23*8 },
- 16*16
-};
-
-
-static GFXDECODE_START( gfx_wiggie )
- GFXDECODE_ENTRY( "gfx1", 0, wiggie_layout, 0x0, 32 ) /* bg tiles */
-GFXDECODE_END
-
-static const gfx_layout superbar_layout =
-{
- 16,16,
- RGN_FRAC(1,4),
- 4,
- { RGN_FRAC(0,4),RGN_FRAC(1,4),RGN_FRAC(2,4),RGN_FRAC(3,4) },
- { 0,1,2,3,4,5,6,7,
- 64,65,66,67,68,69,70,71 },
- { 0*8, 2*8, 16*8, 18*8,
- 1*8, 3*8, 17*8, 19*8,
- 4*8, 6*8, 20*8, 22*8,
- 5*8, 7*8, 21*8, 23*8 },
- 16*16
-};
-
-
-static GFXDECODE_START( gfx_superbar )
- GFXDECODE_ENTRY( "gfx1", 0, superbar_layout, 0x0, 32 ) /* bg tiles */
-GFXDECODE_END
-
-/***************************************************************************
- U.S. Classic
-***************************************************************************/
-
-static GFXDECODE_START( gfx_usclssic )
- GFXDECODE_ENTRY( "gfx1", 0, layout_sprites, 0, 32 ) // [0] Sprites
- GFXDECODE_ENTRY( "gfx2", 0, layout_tilemap_6bpp, 512+64*32*0, 32 ) // [1] Layer 1
- GFXDECODE_ENTRY( "gfx2", 0, layout_tilemap_6bpp, 512+64*32*1, 32 ) // [2] Layer 1
-GFXDECODE_END
-
-
-/***************************************************************************
- Zing Zing Zip
-***************************************************************************/
-
-static GFXDECODE_START( gfx_zingzip )
- GFXDECODE_ENTRY( "gfx1", 0, layout_sprites, 16*32*0, 32 ) // [0] Sprites
- GFXDECODE_ENTRY( "gfx2", 0, layout_tilemap_6bpp, 16*32*2, 32 ) // [1] Layer 1
- GFXDECODE_ENTRY( "gfx3", 0, layout_tilemap, 16*32*1, 32 ) // [2] Layer 2
- GFXDECODE_ENTRY( "gfx2", 0, layout_tilemap_6bpp, 16*32*2+64*32*1, 32 ) // [3] Layer 1
-GFXDECODE_END
-
-static const gfx_layout layout_zzbl =
-{
- 16,16,
- RGN_FRAC(1,2),
- 4,
- { RGN_FRAC(1,2) + 8, RGN_FRAC(1,2) + 0, 8, 0 },
- { STEP8(0,1), STEP8(8*2*16,1) },
- { STEP16(0,8*2) },
- 16*16*2
-};
-
-static const gfx_layout layout_zzbl_6bpp =
-{
- 16,16,
- RGN_FRAC(1,3),
- 6,
- { RGN_FRAC(2,3) + 8, RGN_FRAC(2,3) + 0, RGN_FRAC(1,3) + 8, RGN_FRAC(1,3) + 0, 8, 0 },
- { STEP8(8*2*16,1), STEP8(0,1) },
- { STEP16(0,8*2) },
- 16*16*2
-};
-
-
-static GFXDECODE_START( gfx_zingzipbl )
- GFXDECODE_ENTRY( "gfx1", 0, layout_zzbl, 16*32*0, 32 ) // [0] Sprites
- GFXDECODE_ENTRY( "gfx2", 0, layout_zzbl_6bpp, 16*32*2, 32 ) // [1] Layer 1
- GFXDECODE_ENTRY( "gfx3", 0, layout_zzbl, 16*32*1, 32 ) // [2] Layer 2
- GFXDECODE_ENTRY( "gfx2", 0, layout_zzbl_6bpp, 16*32*2+64*32*1, 32 ) // [3] Layer 1
-GFXDECODE_END
-
-
-/***************************************************************************
-
- Machine drivers
-
-***************************************************************************/
-
-TIMER_DEVICE_CALLBACK_MEMBER(seta_state::seta_interrupt_1_and_2)
-{
- int scanline = param;
-
- if (scanline == 240)
- m_maincpu->set_input_line(1, HOLD_LINE);
-
- if (scanline == 112)
- m_maincpu->set_input_line(2, HOLD_LINE);
-}
-
-TIMER_DEVICE_CALLBACK_MEMBER(seta_state::seta_interrupt_2_and_4)
-{
- int scanline = param;
-
- if (scanline == 240)
- m_maincpu->set_input_line(2, HOLD_LINE);
-
- if (scanline == 112)
- m_maincpu->set_input_line(4, HOLD_LINE);
-}
-
-
-TIMER_DEVICE_CALLBACK_MEMBER(seta_state::seta_sub_interrupt)
-{
- int scanline = param;
-
- if (scanline == 240)
- m_subcpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
-
- if (scanline == 112)
- m_subcpu->set_input_line(0, HOLD_LINE);
-}
-
-
-/***************************************************************************
- Thundercade
-***************************************************************************/
-
-TIMER_DEVICE_CALLBACK_MEMBER(seta_state::tndrcade_sub_interrupt)
-{
- int scanline = param;
-
- if (scanline == 240)
- m_subcpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
-
- if ((scanline % 16) == 0)
- m_subcpu->set_input_line(0, HOLD_LINE);
-}
-
-void seta_state::tndrcade(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::tndrcade_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
-
- M65C02(config, m_subcpu, 16000000/8); /* 2 MHz */
- m_subcpu->set_addrmap(AS_PROGRAM, &seta_state::tndrcade_sub_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::tndrcade_sub_interrupt), "screen", 0, 1);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 2*8, 30*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
- PALETTE(config, m_palette).set_entries(512); // sprites only
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- ym2203_device &ym1(YM2203(config, "ym1", 16000000/4)); /* 4 MHz */
- ym1.port_a_read_callback().set(FUNC(seta_state::dsw1_r)); /* input A: DSW 1 */
- ym1.port_b_read_callback().set(FUNC(seta_state::dsw2_r)); /* input B: DSW 2 */
- ym1.add_route(ALL_OUTPUTS, "mono", 0.35);
-
- ym3812_device &ym2(YM3812(config, "ym2", 16000000/4)); /* 4 MHz */
- ym2.add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Twin Eagle
-***************************************************************************/
-
-/* Just like metafox, but:
- the sub cpu reads the ip at different locations,
- the visible area seems different. */
-
-/* twineagl lev 3 = lev 2 + lev 1 ! */
-
-void seta_state::twineagl(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::downtown_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq3_line_assert));
-
- M65C02(config, m_subcpu, 16000000/8); /* 2 MHz */
- m_subcpu->set_addrmap(AS_PROGRAM, &seta_state::twineagl_sub_map);
- TIMER(config, "s_scantimer").configure_scanline(FUNC(seta_state::seta_sub_interrupt), "screen", 0, 1);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(57.42); // Possibly lower than 60Hz, Correct?
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_downtown);
- PALETTE(config, m_palette).set_entries(512);
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,twineagl_1_layer)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- GENERIC_LATCH_8(config, m_soundlatch[0]);
- GENERIC_LATCH_8(config, m_soundlatch[1]);
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- DownTown
-***************************************************************************/
-
-/* downtown lev 3 = lev 2 + lev 1 ! */
-
-void seta_state::downtown(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::downtown_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
-
- M65C02(config, m_subcpu, XTAL(16'000'000)/8); /* verified on pcb */
- m_subcpu->set_addrmap(AS_PROGRAM, &seta_state::downtown_sub_map);
- TIMER(config, "s_scantimer").configure_scanline(FUNC(seta_state::seta_sub_interrupt), "screen", 0, 1);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(57.42); /* verified on pcb */
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_downtown);
- PALETTE(config, m_palette).set_entries(512);
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- GENERIC_LATCH_8(config, m_soundlatch[0]);
- GENERIC_LATCH_8(config, m_soundlatch[1]);
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 0.50);
-}
-
-
-/***************************************************************************
- U.S. Classic
-***************************************************************************/
-
-
-/* usclssic lev 6 = lev 2+4 !
- Test mode shows a 16ms and 4ms counters. I wonder if every game has
- 5 ints per frame
-*/
-
-TIMER_DEVICE_CALLBACK_MEMBER(seta_state::calibr50_interrupt)
-{
- int scanline = param;
-
- if ((scanline % 64) == 0)
- m_maincpu->set_input_line(4, ASSERT_LINE);
-
- if (scanline == 248)
- m_maincpu->set_input_line(2, ASSERT_LINE);
-}
-
-
-void usclssic_state::machine_start()
-{
- m_buttonmux->ab_w(0xff);
-}
-
-
-void usclssic_state::usclssic(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &usclssic_state::usclssic_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(usclssic_state::calibr50_interrupt), "screen", 0, 1);
-
- WATCHDOG_TIMER(config, "watchdog");
-
- M65C02(config, m_subcpu, 16000000/8); /* 2 MHz */
- m_subcpu->set_addrmap(AS_PROGRAM, &usclssic_state::calibr50_sub_map);
- m_subcpu->set_vblank_int("screen", FUNC(usclssic_state::irq0_line_assert));
-
- UPD4701A(config, m_upd4701);
- m_upd4701->set_portx_tag("TRACKX");
- m_upd4701->set_porty_tag("TRACKY");
-
- HC157(config, m_buttonmux, 0);
- m_buttonmux->out_callback().set(m_upd4701, FUNC(upd4701_device::middle_w)).bit(0);
- m_buttonmux->out_callback().append(m_upd4701, FUNC(upd4701_device::right_w)).bit(1);
- m_buttonmux->out_callback().append(m_upd4701, FUNC(upd4701_device::left_w)).bit(2);
-
- MCFG_MACHINE_RESET_OVERRIDE(usclssic_state,calibr50)
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(usclssic_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(usclssic_state::screen_update_usclssic));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_usclssic);
- PALETTE(config, m_palette, FUNC(usclssic_state::usclssic_palette), 16*32 + 64*32*2, 0x400); // sprites, layer - layer is 6 planes deep
-
- MCFG_VIDEO_START_OVERRIDE(usclssic_state,seta_1_layer)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- GENERIC_LATCH_8(config, m_soundlatch[0]);
- m_soundlatch[0]->data_pending_callback().set_inputline(m_subcpu, INPUT_LINE_NMI);
- m_soundlatch[0]->set_separate_acknowledge(true);
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Caliber 50
-***************************************************************************/
-
-/* calibr50 lev 6 = lev 2 + lev 4 !
- lev 3 = lev 2 + lev 1 !
- Test mode shows a 16ms and 4ms counters. I wonder if every game has
- 5 ints per frame */
-
-void seta_state::calibr50(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::calibr50_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::calibr50_interrupt), "screen", 0, 1);
-
- WATCHDOG_TIMER(config, "watchdog");
-
- NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-
- M65C02(config, m_subcpu, XTAL(16'000'000)/8); /* verified on pcb */
- m_subcpu->set_addrmap(AS_PROGRAM, &seta_state::calibr50_sub_map);
- m_subcpu->set_periodic_int(FUNC(seta_state::irq0_line_assert), attotime::from_hz(4*60)); // IRQ: 4/frame
-
- upd4701_device &upd4701(UPD4701A(config, "upd4701"));
- upd4701.set_portx_tag("ROT1");
- upd4701.set_porty_tag("ROT2");
-
- MCFG_MACHINE_RESET_OVERRIDE(seta_state,calibr50)
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(57.42); /* verified on pcb */
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_downtown);
- PALETTE(config, m_palette).set_entries(512);
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- GENERIC_LATCH_8(config, m_soundlatch[0]);
- m_soundlatch[0]->data_pending_callback().set_inputline(m_subcpu, INPUT_LINE_NMI);
- m_soundlatch[0]->set_separate_acknowledge(true);
-
- GENERIC_LATCH_8(config, m_soundlatch[1]);
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 0.50);
-}
-
-
-/***************************************************************************
- Meta Fox
-***************************************************************************/
-
-/* metafox lev 3 = lev 2 + lev 1 ! */
-
-void seta_state::metafox(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::downtown_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq3_line_assert));
-
- M65C02(config, m_subcpu, 16000000/8); /* 2 MHz */
- m_subcpu->set_addrmap(AS_PROGRAM, &seta_state::metafox_sub_map);
- TIMER(config, "s_scantimer").configure_scanline(FUNC(seta_state::seta_sub_interrupt), "screen", 0, 1);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 2*8, 30*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_downtown);
- PALETTE(config, m_palette).set_entries(512);
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- GENERIC_LATCH_8(config, m_soundlatch[0]);
- GENERIC_LATCH_8(config, m_soundlatch[1]);
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Athena no Hatena?
-***************************************************************************/
-
-void seta_state::atehate(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::atehate_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
- PALETTE(config, m_palette).set_entries(512); // sprites only
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Blandia
-***************************************************************************/
-
-/*
- Similar to wrofaero, but the layers are 6 planes deep (and
- the pens are strangely mapped to palette entries) + the
- samples are bankswitched
-*/
-
-void seta_state::blandia(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::blandia_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_2_and_4), "screen", 0, 1);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.screen_vblank().set(FUNC(seta_state::screen_vblank_seta_buffer_sprites));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_blandia);
- PALETTE(config, m_palette, FUNC(seta_state::blandia_palette), (16*32 + 64*32*4)*2, 0x600*2); // sprites, layer1, layer2, palette effect - layers 1&2 are 6 planes deep
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
- m_x1->set_addrmap(0, &seta_state::blandia_x1_map);
-}
-
-void seta_state::blandiap(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::blandiap_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_2_and_4), "screen", 0, 1);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.screen_vblank().set(FUNC(seta_state::screen_vblank_seta_buffer_sprites));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_blandia);
- PALETTE(config, m_palette, FUNC(seta_state::blandia_palette), (16*32 + 64*32*4)*2, 0x600*2); // sprites, layer1, layer2, palette effect - layers 1&2 are 6 planes deep
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
- m_x1->set_addrmap(0, &seta_state::blandia_x1_map);
-}
-
-
-/***************************************************************************
- Block Carnival
-***************************************************************************/
-
-void seta_state::blockcar(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::blockcar_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq3_line_hold));
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
- PALETTE(config, m_palette).set_entries(512); // sprites only
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-void seta_state::blockcarb_sound_map(address_map &map)
-{
- map.unmap_value_high();
- map(0x0000, 0x7fff).rom();
- map(0xd000, 0xdfff).ram();
- //map(0xf001, 0xf001) ??
-}
-
-void seta_state::blockcarb_sound_portmap(address_map &map)
-{
- map.unmap_value_high();
- map.global_mask(0xff);
-// map(0x00, 0x01).mirror(0x3e).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
-// map(0xc0, 0xc0).mirror(0x3f).r(m_soundlatch[0], FUNC(generic_latch_8_device::read));
-}
-
-void seta_state::blockcarb(machine_config &config)
-{
- blockcar(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::blockcarb_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq3_line_hold));
-
- Z80(config, m_audiocpu, 4000000); // unk freq
- m_audiocpu->set_addrmap(AS_PROGRAM, &seta_state::blockcarb_sound_map);
- m_audiocpu->set_addrmap(AS_IO, &seta_state::blockcarb_sound_portmap);
-
- /* the sound hardware / program is ripped from Tetris (S16B) */
- config.device_remove("x1snd");
-
- OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- .add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-
-/***************************************************************************
- Daioh
-***************************************************************************/
-
-void seta_state::daioh(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, XTAL(16'000'000)); /* 16 MHz, MC68000-16, Verified from PCB */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::daioh_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(57.42); /* verified on PCB */
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
- PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, XTAL(16'000'000)); /* 16 MHz, Verified from PCB audio */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Daioh (prototype)
-***************************************************************************/
-
-void seta_state::daiohp(machine_config &config)
-{
- daioh(config);
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::daiohp_map);
-}
-
-
-/***************************************************************************
- Dragon Unit, Quiz Kokology, Strike Gunner
-***************************************************************************/
-
-/*
- drgnunit,qzkklogy,stg:
- lev 1 == lev 3 (writes to $500000, bit 4 -> 1 then 0)
- lev 2 drives the game
-*/
-
-void seta_state::drgnunit(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::drgnunit_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.screen_vblank().set(FUNC(seta_state::screen_vblank_seta_buffer_sprites));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_downtown);
- PALETTE(config, m_palette).set_entries(512);
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-/* Same as qzkklogy, but with a 16MHz CPU */
-
-void seta_state::qzkklgy2(machine_config &config)
-{
- drgnunit(config);
- /* basic machine hardware */
- m_maincpu->set_clock(16000000); /* 16 MHz */
-}
-
-
-/***************************************************************************
- The Roulette
-***************************************************************************/
-
-TIMER_DEVICE_CALLBACK_MEMBER(setaroul_state::interrupt)
-{
- int scanline = param;
-
- if ((scanline % 32) == 0) // every 2ms?
- m_maincpu->set_input_line(2, HOLD_LINE); // read 1 board column (out of 26) every other call
-
- if (scanline == 248)
- m_maincpu->set_input_line(4, HOLD_LINE); // vblank
-
- // lev 6: RS232
-}
-
-void setaroul_state::setaroul(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, XTAL(16'000'000)/2); /* 8 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &setaroul_state::setaroul_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(setaroul_state::interrupt), "screen", 0, 1);
-
- WATCHDOG_TIMER(config, "watchdog");
-
- MCFG_MACHINE_START_OVERRIDE(setaroul_state, setaroul)
- MCFG_MACHINE_RESET_OVERRIDE(setaroul_state, setaroul)
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- NVRAM(config, "nvram", nvram_device::DEFAULT_RANDOM);
-
- /* devices */
- UPD4992(config, m_rtc); // ! Actually D4911C !
- ACIA6850(config, "acia0", 0);
- TICKET_DISPENSER(config, "hopper", attotime::from_msec(150), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW);
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(setaroul_state::screen_update));
- screen.screen_vblank().set(FUNC(setaroul_state::screen_vblank));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_setaroul);
- PALETTE(config, m_palette, FUNC(setaroul_state::setaroul_palette), 512);
-
- MCFG_VIDEO_START_OVERRIDE(setaroul_state,setaroul_1_layer)
-
- /* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
-
- X1_010(config, m_x1, XTAL(16'000'000)); /* 16 MHz */
- m_x1->add_route(0, "lspeaker", 1.0);
- m_x1->add_route(1, "rspeaker", 1.0);
-
- // layout
- config.set_default_layout(layout_setaroul);
-}
-
-
-/***************************************************************************
- Eight Force
-***************************************************************************/
-
-void seta_state::eightfrc(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::wrofaero_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
- WATCHDOG_TIMER(config, "watchdog");
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 2*8, 30*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
- PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
- m_x1->set_addrmap(0, &seta_state::blandia_x1_map);
-}
-
-
-/***************************************************************************
- Extreme Downhill / Sokonuke
-***************************************************************************/
-
-/*
- extdwnhl:
- lev 1 == lev 3 (writes to $500000, bit 4 -> 1 then 0)
- lev 2 drives the game
-*/
-void seta_state::extdwnhl(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::extdwnhl_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
- WATCHDOG_TIMER(config, "watchdog");
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_zingzip);
- PALETTE(config, m_palette, FUNC(seta_state::zingzip_palette), 16*32 + 16*32 + 64*32*2, 0x600); // sprites, layer2, layer1 - layer 1 gfx is 6 planes deep
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(0, "lspeaker", 1.0);
- m_x1->add_route(1, "rspeaker", 1.0);
-}
-
-
-/***************************************************************************
- Gundhara
-***************************************************************************/
-#if USE_uPD71054_TIMER
-INTERRUPT_GEN_MEMBER(seta_state::wrofaero_interrupt)
-{
- device.execute().set_input_line(2, HOLD_LINE );
-}
-
-MACHINE_START_MEMBER(seta_state,wrofaero){ uPD71054_timer_init(); }
-#endif // USE_uPD71054_TIMER
-
-
-
-/*
- lev 1: sample end? (needed in zombraid otherwise music stops)
- gundhara's debug code calls it "BUT_IPL" and does nothing
- lev 2: VBlank
- lev 4: Sound (generated by a timer mapped at $d00000-6 ?)
-*/
-void seta_state::gundhara(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::wrofaero_map);
-#if USE_uPD71054_TIMER
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
-#else
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_2_and_4), "screen", 0, 1);
-#endif // USE_uPD71054_TIMER
-
- WATCHDOG_TIMER(config, "watchdog");
-
-#if USE_uPD71054_TIMER
- MCFG_MACHINE_START_OVERRIDE(seta_state, wrofaero )
-#endif // USE_uPD71054_TIMER
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_jjsquawk);
- PALETTE(config, m_palette, FUNC(seta_state::gundhara_palette), 16*32 + 64*32*4, 0x600); // sprites, layer2, layer1 - layers are 6 planes deep (seta_state,but have only 4 palettes)
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Zombie Raid
-***************************************************************************/
-
-MACHINE_START_MEMBER(zombraid_state,zombraid)
-{
- uPD71054_timer_init();
- m_gun_recoil.resolve();
-}
-
-void zombraid_state::zombraid(machine_config &config)
-{
- gundhara(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &zombraid_state::zombraid_map);
-
- MCFG_MACHINE_START_OVERRIDE(zombraid_state, zombraid)
-
- NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-
- adc0834_device &adc(ADC0834(config, "adc"));
- adc.set_input_callback(FUNC(zombraid_state::adc_cb));
-
- m_x1->set_addrmap(0, &zombraid_state::zombraid_x1_map);
-}
-
-/***************************************************************************
- J.J.Squawkers
-***************************************************************************/
-
-/*
- lev 1 == lev 3 (writes to $500000, bit 4 -> 1 then 0)
- lev 2 drives the game
-*/
-void seta_state::jjsquawk(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::wrofaero_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
- WATCHDOG_TIMER(config, "watchdog");
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_jjsquawk);
- PALETTE(config, m_palette, FUNC(seta_state::jjsquawk_palette), 16*32 + 64*32*4, 0x600); // sprites, layer2, layer1 - layers are 6 planes deep
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-void seta_state::jjsquawb(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::jjsquawb_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_jjsquawkb);
- PALETTE(config, m_palette, FUNC(seta_state::jjsquawk_palette), 16*32 + 64*32*4, 0x600); // sprites, layer2, layer1 - layers are 6 planes deep
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- (Kamen) Masked Riders Club Battle Race
-***************************************************************************/
-
-/* kamenrid: lev 2 by vblank, lev 4 by timer */
-void seta_state::kamenrid(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::kamenrid_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
-
- WATCHDOG_TIMER(config, "watchdog");
-
- pit8254_device &pit(PIT8254(config, "pit", 0)); // uPD71054C
- pit.set_clk<0>(16000000/2/8);
- pit.out_handler<0>().set(FUNC(seta_state::pit_out0));
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
- PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Orbs
-***************************************************************************/
-
-/* The CPU clock has been verified/measured, PCB only has one OSC and it's 14.318180 MHz */
-
-void seta_state::orbs(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 14318180/2); /* 7.143 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::orbs_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(1*8, 39*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
- PALETTE(config, m_palette).set_entries(512); // sprites only
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
-
- /* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
-
- X1_010(config, m_x1, 14318180); /* 14.318180 MHz */
- m_x1->add_route(0, "lspeaker", 1.0);
- m_x1->add_route(1, "rspeaker", 1.0);
-}
-
-
-/***************************************************************************
- Kero Kero Keroppi no Issyoni Asobou
-***************************************************************************/
-
-void seta_state::keroppij(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 14318180/2); /* 7.143 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::keroppi_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
-
- MCFG_MACHINE_START_OVERRIDE(seta_state,keroppi)
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
- PALETTE(config, m_palette).set_entries(512); // sprites only
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
-
- /* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
-
- X1_010(config, m_x1, 14318180); /* 14.318180 MHz */
- m_x1->add_route(0, "lspeaker", 1.0);
- m_x1->add_route(1, "rspeaker", 1.0);
-}
-
-void seta_state::keroppi(machine_config &config)
-{
- keroppij(config);
- m_gfxdecode->set_info(gfx_tndrcade);
-}
-
-
-/***************************************************************************
- Krazy Bowl
-***************************************************************************/
-
-void seta_state::krzybowl(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::krzybowl_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
-
- upd4701_device &upd1(UPD4701A(config, "upd1"));
- upd1.set_portx_tag("TRACK1_X");
- upd1.set_porty_tag("TRACK1_Y");
-
- upd4701_device &upd2(UPD4701A(config, "upd2"));
- upd2.set_portx_tag("TRACK2_X");
- upd2.set_porty_tag("TRACK2_Y");
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(1*8, 39*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
- PALETTE(config, m_palette).set_entries(512); // sprites only
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Mad Shark
-***************************************************************************/
-
-/* madshark: lev 2 by vblank, lev 4 by timer */
-void seta_state::madshark(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::madshark_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
-
- pit8254_device &pit(PIT8254(config, "pit", 0)); // uPD71054C
- pit.set_clk<0>(16000000/2/8);
- pit.out_handler<0>().set(FUNC(seta_state::pit_out0));
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- WATCHDOG_TIMER(config, "watchdog");
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 2*8, 30*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_jjsquawk);
- PALETTE(config, m_palette, FUNC(seta_state::jjsquawk_palette), 16*32 + 64*32*4, 0x600); // sprites, layer2, layer1 - layers are 6 planes deep
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Magical Speed
-***************************************************************************/
-
-MACHINE_START_MEMBER(seta_state,magspeed){ m_leds.resolve(); }
-
-/* magspeed: lev 2 by vblank, lev 4 by timer */
-void seta_state::magspeed(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::magspeed_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
-
- WATCHDOG_TIMER(config, "watchdog");
-
- MCFG_MACHINE_START_OVERRIDE(seta_state, magspeed)
-
- pit8254_device &pit(PIT8254(config, "pit", 0)); // uPD71054C
- pit.set_clk<0>(16000000/2/8);
- pit.out_handler<0>().set(FUNC(seta_state::pit_out0));
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
- PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Mobile Suit Gundam
-***************************************************************************/
-
-/* msgundam lev 2 == lev 6 ! */
-
-void seta_state::msgundam(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::msgundam_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
-
- pit8254_device &pit(PIT8254(config, "pit", 0)); // uPD71054C
- pit.set_clk<0>(16000000/2/8);
- pit.out_handler<0>().set(FUNC(seta_state::pit_out0));
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(56.66); /* between 56 and 57 to match a real PCB's game speed */
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.screen_vblank().set(FUNC(seta_state::screen_vblank_seta_buffer_sprites));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
- PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-void seta_state::msgundamb(machine_config &config)
-{
- msgundam(config);
-
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::msgundamb_map);
-}
-
-/***************************************************************************
- Oishii Puzzle
-***************************************************************************/
-
-void seta_state::oisipuzl(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::oisipuzl_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
- PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
-
- MCFG_VIDEO_START_OVERRIDE(seta_state, oisipuzl_2_layers) // flip is inverted for the tilemaps
-
- /* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(0, "lspeaker", 1.0);
- m_x1->add_route(1, "rspeaker", 1.0);
-}
-
-
-/***************************************************************************
- Triple Fun
-***************************************************************************/
-
-/* same as oisipuzl but with different interrupts and sound */
-
-void seta_state::triplfun(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::triplfun_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq3_line_hold));
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
- PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
-
- MCFG_VIDEO_START_OVERRIDE(seta_state, oisipuzl_2_layers) // flip is inverted for the tilemaps
-
- /* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
-
- okim6295_device &oki(OKIM6295(config, "oki", 792000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified
- oki.add_route(ALL_OUTPUTS, "lspeaker", 1.0);
- oki.add_route(ALL_OUTPUTS, "rspeaker", 1.0);
-}
-
-
-/***************************************************************************
- Pro Mahjong Kiwame
-***************************************************************************/
-
-WRITE_LINE_MEMBER(kiwame_state::kiwame_vblank)
-{
- if (state)
- m_maincpu->external_interrupt_0();
-}
-
-void kiwame_state::kiwame(machine_config &config)
-{
- /* basic machine hardware */
- TMP68301(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &kiwame_state::kiwame_map);
- m_maincpu->out_parallel_callback().set(FUNC(kiwame_state::row_select_w));
-
- NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(kiwame_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 56*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(kiwame_state::screen_update_seta_no_layers));
- screen.screen_vblank().set(FUNC(kiwame_state::kiwame_vblank));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
- PALETTE(config, m_palette).set_entries(512); // sprites only
-
- MCFG_VIDEO_START_OVERRIDE(kiwame_state,seta_no_layers)
-
- /* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(0, "lspeaker", 1.0);
- m_x1->add_route(1, "rspeaker", 1.0);
-}
-
-
-/***************************************************************************
- Rezon
-***************************************************************************/
-
-/* pretty much like wrofaero, but ints are 1&2, not 2&4 */
-
-void seta_state::rezon(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::wrofaero_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
-
- WATCHDOG_TIMER(config, "watchdog");
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
- PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Thunder & Lightning / Wit's
-***************************************************************************/
-
-/* thunderl lev 2 = lev 3 - other levels lead to an error */
-
-void seta_state::thunderl(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::thunderl_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
- PALETTE(config, m_palette).set_entries(512); // sprites only
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-void seta_state::thunderlbl_sound_map(address_map &map)
-{
- map.unmap_value_high();
- map(0x0000, 0x7fff).rom();
- map(0x8000, 0xdfff).rom();
- map(0xf800, 0xffff).ram();
-}
-
-void seta_state::thunderlbl_sound_portmap(address_map &map)
-{
- map.unmap_value_high();
- map.global_mask(0xff);
- map(0x00, 0x01).mirror(0x3e).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
- map(0xc0, 0xc0).mirror(0x3f).r(m_soundlatch[0], FUNC(generic_latch_8_device::read));
-}
-
-void seta_state::thunderlbl(machine_config &config)
-{
- thunderl(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::thunderlbl_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
-
- Z80(config, m_audiocpu, 16_MHz_XTAL / 4); // XTAL verified, divider unknown, but Z8400A PS, so likely
- m_audiocpu->set_addrmap(AS_PROGRAM, &seta_state::thunderlbl_sound_map);
- m_audiocpu->set_addrmap(AS_IO, &seta_state::thunderlbl_sound_portmap);
-
- /* the sound hardware / program is ripped from Tetris (S16B) */
- config.device_remove("x1snd");
-
- YM2151(config, "ymsnd", 16_MHz_XTAL / 4).add_route(ALL_OUTPUTS, "mono", 1.0); // XTAL verified, divider unknown
-
- GENERIC_LATCH_8(config, m_soundlatch[0]);
- m_soundlatch[0]->data_pending_callback().set_inputline(m_audiocpu, 0);
-}
-
-
-void seta_state::wiggie(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::wiggie_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
-
- Z80(config, m_audiocpu, 16000000/4); /* 4 MHz */
- m_audiocpu->set_addrmap(AS_PROGRAM, &seta_state::wiggie_sound_map);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_wiggie);
- PALETTE(config, m_palette).set_entries(512); // sprites only
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0);
-
- GENERIC_LATCH_8(config, m_soundlatch[0]);
- m_soundlatch[0]->data_pending_callback().set_inputline(m_audiocpu, 0);
-}
-
-void seta_state::superbar(machine_config &config)
-{
- wiggie(config);
- m_gfxdecode->set_info(gfx_superbar);
-}
-
-void seta_state::wits(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::thunderl_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
- PALETTE(config, m_palette).set_entries(512); // sprites only
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Ultraman Club / SD Gundam Neo Battling
-***************************************************************************/
-
-void seta_state::umanclub(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::umanclub_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq3_line_hold));
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
- PALETTE(config, m_palette).set_entries(512);
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Ultra Toukond Densetsu
-***************************************************************************/
-
-void seta_state::utoukond(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::utoukond_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
-
- Z80(config, m_audiocpu, 16000000/4); /* 4 MHz */
- m_audiocpu->set_addrmap(AS_PROGRAM, &seta_state::utoukond_sound_map);
- m_audiocpu->set_addrmap(AS_IO, &seta_state::utoukond_sound_io_map);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 2*8, 30*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
- PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
-
- GENERIC_LATCH_8(config, m_soundlatch[0]);
- m_soundlatch[0]->data_pending_callback().set_inputline(m_audiocpu, 0);
- m_soundlatch[0]->set_separate_acknowledge(true);
-
- X1_010(config, m_x1, 16000000);
- m_x1->add_route(0, "lspeaker", 1.0);
- m_x1->add_route(1, "rspeaker", 1.0);
-
- ym3438_device &ymsnd(YM3438(config, "ymsnd", 16000000/4)); /* 4 MHz */
- ymsnd.irq_handler().set(FUNC(seta_state::utoukond_ym3438_interrupt));
- ymsnd.add_route(0, "lspeaker", 0.30);
- ymsnd.add_route(1, "rspeaker", 0.30);
-}
-
-
-/***************************************************************************
- War of Aero
-***************************************************************************/
-
-void seta_state::wrofaero(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::wrofaero_map);
-#if USE_uPD71054_TIMER
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::wrofaero_interrupt));
-#else
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_2_and_4), "screen", 0, 1);
-#endif // USE_uPD71054_TIMER
-
- WATCHDOG_TIMER(config, "watchdog");
-
-#if USE_uPD71054_TIMER
- MCFG_MACHINE_START_OVERRIDE(seta_state, wrofaero )
-#endif // USE_uPD71054_TIMER
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
- PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Zing Zing Zip
-***************************************************************************/
-
-/* zingzip lev 3 = lev 2 + lev 1 !
- SR = 2100 -> lev1 is ignored so we must supply int 3, since the routine
- at int 1 is necessary: it plays the background music.
-*/
-
-void seta_state::zingzip(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::wrofaero_map);
- m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq3_line_hold));
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- WATCHDOG_TIMER(config, "watchdog");
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(57.42); // taken from other games but seems to better match PCB videos
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_zingzip);
- PALETTE(config, m_palette, FUNC(seta_state::zingzip_palette), 16*32 + 16*32 + 64*32*2, 0x600); // sprites, layer2, layer1 - layer 1 gfx is 6 planes deep
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-void seta_state::zingzipbl(machine_config &config)
-{
- zingzip(config);
- m_gfxdecode->set_info(gfx_zingzipbl);
-
- M68000(config.replace(), m_maincpu, 16000000); /* 16 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::zingzipbl_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
-
- config.device_remove("x1snd");
-
- OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Pairs Love
-***************************************************************************/
-
-void seta_state::pairlove(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::pairlove_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_pairlove);
- PALETTE(config, m_palette).set_entries(2048); // sprites only
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- X1_010(config, m_x1, 16000000); /* 16 MHz */
- m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Crazy Fight
-***************************************************************************/
-
-TIMER_DEVICE_CALLBACK_MEMBER(seta_state::crazyfgt_interrupt)
-{
- int scanline = param;
-
- if ((scanline % 48) == 0)
- m_maincpu->set_input_line(2, HOLD_LINE); // should this be triggered by the 3812?
-
- if (scanline == 240)
- m_maincpu->set_input_line(1, HOLD_LINE);
-}
-
-void seta_state::crazyfgt(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, 16_MHz_XTAL);
- m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::crazyfgt_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::crazyfgt_interrupt), "screen", 0, 1);
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(59.1851);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 2*8, 30*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_blandia);
- PALETTE(config, m_palette, FUNC(seta_state::gundhara_palette), 16*32 + 64*32*4, 0x600); // sprites, layer2, layer1 - layers are 6 planes deep (seta_state,but have only 4 palettes)
-
- MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- ym3812_device &ymsnd(YM3812(config, "ymsnd", 16_MHz_XTAL / 4));
- ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);
-
- okim6295_device &oki(OKIM6295(config, "oki", 4.433619_MHz_XTAL / 4, okim6295_device::PIN7_HIGH));
- oki.add_route(ALL_OUTPUTS, "mono", 1.0);
-}
-
-
-/***************************************************************************
- Jockey Club
-***************************************************************************/
-
-// Test mode shows a 16ms and 2ms counters, then there's vblank and presumably ACIA irqs ...
-TIMER_DEVICE_CALLBACK_MEMBER(jockeyc_state::interrupt)
-{
- int scanline = param;
-
- /* ACIA irq */
- if (scanline == 15)
- m_maincpu->set_input_line(4, HOLD_LINE);
-
- if (scanline == 38)
- m_maincpu->set_input_line(1, HOLD_LINE);
-
- if (scanline == 61)
- m_maincpu->set_input_line(2, HOLD_LINE);
-
- if (scanline >= 85 && (scanline % 23) == 0)
- m_maincpu->set_input_line(6, HOLD_LINE);
-}
-
-MACHINE_START_MEMBER(jockeyc_state, jockeyc)
-{
- m_out_cancel.resolve();
- m_out_payout.resolve();
- m_out_start.resolve();
-}
-
-
-void jockeyc_state::jockeyc(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, XTAL(16'000'000)/2); // TMP68000N-8
- m_maincpu->set_addrmap(AS_PROGRAM, &jockeyc_state::jockeyc_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(jockeyc_state::interrupt), "screen", 0, 1);
-
- WATCHDOG_TIMER(config, "watchdog").set_time(attotime::from_seconds(2.0)); // jockeyc: watchdog test error if over 2.5s
-
- SETA001_SPRITE(config, m_seta001, 0);
- m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
-
- NVRAM(config, "nvram", nvram_device::DEFAULT_RANDOM);
-
- MCFG_MACHINE_START_OVERRIDE(jockeyc_state, jockeyc)
- /* devices */
- UPD4992(config, m_rtc); // ! Actually D4911C !
- ACIA6850(config, "acia0", 0);
- TICKET_DISPENSER(config, "hopper1", attotime::from_msec(150), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW);
- TICKET_DISPENSER(config, "hopper2", attotime::from_msec(150), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW);
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(seta_state::screen_update_seta_layers));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_downtown);
- PALETTE(config, m_palette, FUNC(seta_state::palette_init_RRRRRGGGGGBBBBB_proms), 512 * 1);
-
- MCFG_VIDEO_START_OVERRIDE(jockeyc_state,jockeyc_1_layer)
-
- /* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
-
- X1_010(config, m_x1, 16000000);
- m_x1->add_route(0, "lspeaker", 1.0);
- m_x1->add_route(1, "rspeaker", 1.0);
-
- // layout
- config.set_default_layout(layout_jockeyc);
-}
-
-
-/***************************************************************************
- International Toote
-***************************************************************************/
-
-MACHINE_START_MEMBER(jockeyc_state, inttoote)
-{
- m_out_help.resolve();
- m_out_itstart.resolve();
-}
-
-void jockeyc_state::inttoote(machine_config &config)
-{
- jockeyc(config);
-
- M68000(config.replace(), m_maincpu, XTAL(16'000'000)); // TMP68HC000N-16
- m_maincpu->set_addrmap(AS_PROGRAM, &jockeyc_state::inttoote_map);
-
- MCFG_MACHINE_START_OVERRIDE(jockeyc_state, inttoote)
-
- // I/O board (not hooked up yet)
- PIA6821(config, "pia0", 0);
- PIA6821(config, "pia1", 0);
-
- ACIA6850(config, "acia1", 0);
- ACIA6850(config, "acia2", 0);
-
- // layout
- config.set_default_layout(layout_inttoote);
-}
-
-
-
-/***************************************************************************
-
- ROMs Loading
-
-***************************************************************************/
-
-// used for 6bpp gfxs
-#define ROM_LOAD24_BYTE(name, offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_SKIP(2))
-#define ROM_LOAD24_WORD(name, offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_SKIP(1))
-#define ROM_LOAD24_WORD_SWAP(name, offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_REVERSE | ROM_SKIP(1))
-
-ROM_START( tndrcade )
- ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "ua0-4.u19", 0x000000, 0x020000, CRC(73bd63eb) SHA1(5d410d2a77f1c3c4c37a9fe1e56019335891fe67) )
- ROM_LOAD16_BYTE( "ua0-2.u17", 0x000001, 0x020000, CRC(e96194b1) SHA1(c5084d06a2e4f7ba3112be1ccc314f7d712bb45e) )
- ROM_LOAD16_BYTE( "ua0-3.u18", 0x040000, 0x020000, CRC(0a7b1c41) SHA1(ede14ac08d7e63972c21fd2d0717276e73153f18) )
- ROM_LOAD16_BYTE( "ua0-1.u16", 0x040001, 0x020000, CRC(fa906626) SHA1(a1d28328afa8dda98dd20f3f5a19c0dbf2ebaf36) )
-
- ROM_REGION( 0x02c000, "sub", 0 ) /* 65c02 Code */
- ROM_LOAD( "ua10-5.u24", 0x004000, 0x020000, CRC(8eff6122) SHA1(1adc1643018e612df85643014b78525106478889) ) // $1fffd=2 (country code)
- ROM_RELOAD( 0x00c000, 0x020000 )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "ua0-10.u12", 0x000000, 0x040000, CRC(aa7b6757) SHA1(9157cc930760c846cce95e18bf38e7ea241f7a8e) )
- ROM_LOAD( "ua0-11.u13", 0x040000, 0x040000, CRC(11eaf931) SHA1(ba1dfc4b0f87b1bbdc6c2e36deaecda2b4655d57) )
- ROM_LOAD( "ua0-12.u14", 0x080000, 0x040000, CRC(00b5381c) SHA1(6fc3138dd0e2b3f99872b1f0d177094df5bed39d) )
- ROM_LOAD( "ua0-13.u15", 0x0c0000, 0x040000, CRC(8f9a0ed3) SHA1(61315312fdb2fe090cd8e99a1ce3ecba46b466e9) )
- ROM_LOAD( "ua0-6.u8", 0x100000, 0x040000, CRC(14ecc7bb) SHA1(920983f5086462f8f06dc9cf7bebffeeb7187977) )
- ROM_LOAD( "ua0-7.u9", 0x140000, 0x040000, CRC(ff1a4e68) SHA1(d732df7d139995814969a603c9c4e9f8b068b1a3) )
- ROM_LOAD( "ua0-8.u10", 0x180000, 0x040000, CRC(936e1884) SHA1(9ad495b88e124d08a7141611ed1897b6e2abd412) )
- ROM_LOAD( "ua0-9.u11", 0x1c0000, 0x040000, CRC(e812371c) SHA1(b0e1e0c143da743bf9f7b48d657594e76f4970ed) )
-ROM_END
-
-ROM_START( tndrcadej )
- ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "ua0-4.u19", 0x000000, 0x020000, CRC(73bd63eb) SHA1(5d410d2a77f1c3c4c37a9fe1e56019335891fe67) )
- ROM_LOAD16_BYTE( "ua0-2.u17", 0x000001, 0x020000, CRC(e96194b1) SHA1(c5084d06a2e4f7ba3112be1ccc314f7d712bb45e) )
- ROM_LOAD16_BYTE( "ua0-3.u18", 0x040000, 0x020000, CRC(0a7b1c41) SHA1(ede14ac08d7e63972c21fd2d0717276e73153f18) )
- ROM_LOAD16_BYTE( "ua0-1.u16", 0x040001, 0x020000, CRC(fa906626) SHA1(a1d28328afa8dda98dd20f3f5a19c0dbf2ebaf36) )
-
- ROM_REGION( 0x02c000, "sub", 0 ) /* 65c02 Code */
- ROM_LOAD( "thcade5.u24", 0x004000, 0x020000, CRC(8cb9df7b) SHA1(5b504657f4cc1ea265913ff670aed108ceddba46) ) // $1fffd=1 (country code jp)
- ROM_RELOAD( 0x00c000, 0x020000 )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "ua0-10.u12", 0x000000, 0x040000, CRC(aa7b6757) SHA1(9157cc930760c846cce95e18bf38e7ea241f7a8e) )
- ROM_LOAD( "ua0-11.u13", 0x040000, 0x040000, CRC(11eaf931) SHA1(ba1dfc4b0f87b1bbdc6c2e36deaecda2b4655d57) )
- ROM_LOAD( "ua0-12.u14", 0x080000, 0x040000, CRC(00b5381c) SHA1(6fc3138dd0e2b3f99872b1f0d177094df5bed39d) )
- ROM_LOAD( "ua0-13.u15", 0x0c0000, 0x040000, CRC(8f9a0ed3) SHA1(61315312fdb2fe090cd8e99a1ce3ecba46b466e9) )
- ROM_LOAD( "ua0-6.u8", 0x100000, 0x040000, CRC(14ecc7bb) SHA1(920983f5086462f8f06dc9cf7bebffeeb7187977) )
- ROM_LOAD( "ua0-7.u9", 0x140000, 0x040000, CRC(ff1a4e68) SHA1(d732df7d139995814969a603c9c4e9f8b068b1a3) )
- ROM_LOAD( "ua0-8.u10", 0x180000, 0x040000, CRC(936e1884) SHA1(9ad495b88e124d08a7141611ed1897b6e2abd412) )
- ROM_LOAD( "ua0-9.u11", 0x1c0000, 0x040000, CRC(e812371c) SHA1(b0e1e0c143da743bf9f7b48d657594e76f4970ed) )
-ROM_END
-
-ROM_START( twineagl )
- ROM_REGION( 0x0a0000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_WORD( "ua2-1", 0x000000, 0x080000, CRC(5c3fe531) SHA1(e484dad25cda906fb1b0606fb10ae50056c64e6a) )
-
- ROM_REGION( 0x010000, "sub", 0 ) /* 65c02 Code */
- ROM_LOAD( "ua2-2", 0x006000, 0x002000, CRC(783ca84e) SHA1(21e19f74812de50e98b755dd1f68c187dd1e7e81) )
- ROM_RELOAD( 0x008000, 0x002000 )
- ROM_RELOAD( 0x00a000, 0x002000 )
- ROM_RELOAD( 0x00c000, 0x002000 )
- ROM_RELOAD( 0x00e000, 0x002000 )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "ua2-4", 0x000000, 0x040000, CRC(8b7532d6) SHA1(ec42d21bc44f004282f822b3da36b5442eabd87a) )
- ROM_LOAD16_BYTE( "ua2-3", 0x000001, 0x040000, CRC(1124417a) SHA1(c908f51b943188946486c639a0cb9712114b5437) )
- ROM_LOAD16_BYTE( "ua2-6", 0x080000, 0x040000, CRC(99d8dbba) SHA1(ac2a3c5cad23e0207eba52935c72e23203c8e0af) )
- ROM_LOAD16_BYTE( "ua2-5", 0x080001, 0x040000, CRC(6e450d28) SHA1(d0050afcc3f425ac70768271c9d2d55ab7fba622) )
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_BYTE( "ua2-7", 0x000001, 0x080000, CRC(fce56907) SHA1(5d0d2d6dfdbadb21f1d61d84b8992ec0e527e18d) )
- ROM_LOAD16_BYTE( "ua2-8", 0x000000, 0x080000, CRC(7d3a8d73) SHA1(d6a0bea124d7d228818f8ea8c804ad2ba8cead4b) )
- ROM_LOAD16_BYTE( "ua2-9", 0x100001, 0x080000, CRC(a451eae9) SHA1(c236c92d9ecf56f8d8f4a5ee493e3791be0d3db4) )
- ROM_LOAD16_BYTE( "ua2-10", 0x100000, 0x080000, CRC(5bbe1f56) SHA1(309bc43884816dafeb0f47e71ff5272d4d7cac54) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "ua2-11", 0x000000, 0x080000, CRC(624e6057) SHA1(0e8e4d4b6bc5febf5ca83eea92e3ed06f16e7df0) )
- ROM_LOAD( "ua2-12", 0x080000, 0x080000, CRC(3068ff64) SHA1(7c06a48a99ebb9e7f3709f25bd0caa4c9d7a2688) )
-ROM_END
-
-ROM_START( downtown )
- ROM_REGION( 0x0a0000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "ud2-001-000.3c", 0x000000, 0x040000, CRC(f1965260) SHA1(c0560342238d75f9b81ae9f3408cacfbcd331529) ) /* 40 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-003.11c", 0x000001, 0x040000, CRC(e7d5fa5f) SHA1(48612514598711aa73bf75243c842f0aca72f3d0) ) /* 40 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2001002.9b", 0x080000, 0x010000, CRC(a300e3ac) SHA1(958cb121787444cdc6938fc5aad1e92238e39c13) )
- ROM_LOAD16_BYTE( "ud2001001.8b", 0x080001, 0x010000, CRC(d2918094) SHA1(c135939ad12e3cf0688db148c49f99e757ad7b0d) )
-
- ROM_REGION( 0x04c000, "sub", 0 ) /* 65c02 Code */
- ROM_LOAD( "ud2-002-004.17c", 0x004000, 0x040000, CRC(bbd538b1) SHA1(de4c43bfc4004a14f9f66b5e8ff192b00c45c003) ) /* 40 pin MASK rom */
- ROM_RELOAD( 0x00c000, 0x040000 )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "ud2-001-005-t01.2n", 0x000000, 0x080000, CRC(77e6d249) SHA1(cdf67211cd447858293188511e826640fe24078b) ) /* 32 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-006-t02.3n", 0x000001, 0x080000, CRC(6e381bf2) SHA1(ba46e019d2991dec539444ef7376fe0e9a6a8b75) ) /* 32 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-007-t03.5n", 0x100000, 0x080000, CRC(737b4971) SHA1(2a034011b0ac03d532a89b544f4eec497ac7ee80) ) /* 32 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-008-t04.6n", 0x100001, 0x080000, CRC(99b9d757) SHA1(c3a763993305110ec2a0b231d75fbef4c385d21b) ) /* 32 pin MASK rom */
-
- ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_BYTE( "ud2-001-009-t05.8n", 0x000000, 0x080000, CRC(aee6c581) SHA1(5b2150a308ca12eea8148d0bbff663b3baf0c831) ) /* 32 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-010-t06.9n", 0x000001, 0x080000, CRC(3d399d54) SHA1(7d9036e73fbf0e9c3b976336e3e4786b17b2f4fc) ) /* 32 pin MASK rom */
-
- ROM_REGION( 0x080000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "ud2-001-011-t07.14n", 0x000000, 0x080000, CRC(9c9ff69f) SHA1(3840b654f4f709bc4c03dfe4ee79369d5c70dd62) ) /* 32 pin MASK rom */
-ROM_END
-
-ROM_START( downtown2 )
- ROM_REGION( 0x0a0000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "ud2-001-000.3c", 0x000000, 0x040000, CRC(f1965260) SHA1(c0560342238d75f9b81ae9f3408cacfbcd331529) ) /* 40 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-003.11c", 0x000001, 0x040000, CRC(e7d5fa5f) SHA1(48612514598711aa73bf75243c842f0aca72f3d0) ) /* 40 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2000002.9b", 0x080000, 0x010000, CRC(ca976b24) SHA1(3b2e362f414b0103dd02c9af6a5d480ec2cf9ca3) )
- ROM_LOAD16_BYTE( "ud2000001.8b", 0x080001, 0x010000, CRC(1708aebd) SHA1(337a9e8d5da5b13a7ea4ee728de6b82fe92e16c5) )
-
- ROM_REGION( 0x04c000, "sub", 0 ) /* 65c02 Code */
- ROM_LOAD( "ud2-002-004.17c", 0x004000, 0x040000, CRC(bbd538b1) SHA1(de4c43bfc4004a14f9f66b5e8ff192b00c45c003) ) /* 40 pin MASK rom */
- ROM_RELOAD( 0x00c000, 0x040000 )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "ud2-001-005-t01.2n", 0x000000, 0x080000, CRC(77e6d249) SHA1(cdf67211cd447858293188511e826640fe24078b) ) /* 32 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-006-t02.3n", 0x000001, 0x080000, CRC(6e381bf2) SHA1(ba46e019d2991dec539444ef7376fe0e9a6a8b75) ) /* 32 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-007-t03.5n", 0x100000, 0x080000, CRC(737b4971) SHA1(2a034011b0ac03d532a89b544f4eec497ac7ee80) ) /* 32 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-008-t04.6n", 0x100001, 0x080000, CRC(99b9d757) SHA1(c3a763993305110ec2a0b231d75fbef4c385d21b) ) /* 32 pin MASK rom */
-
- ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_BYTE( "ud2-001-009-t05.8n", 0x000000, 0x080000, CRC(aee6c581) SHA1(5b2150a308ca12eea8148d0bbff663b3baf0c831) ) /* 32 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-010-t06.9n", 0x000001, 0x080000, CRC(3d399d54) SHA1(7d9036e73fbf0e9c3b976336e3e4786b17b2f4fc) ) /* 32 pin MASK rom */
-
- ROM_REGION( 0x080000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "ud2-001-011-t07.14n", 0x000000, 0x080000, CRC(9c9ff69f) SHA1(3840b654f4f709bc4c03dfe4ee79369d5c70dd62) ) /* 32 pin MASK rom */
-ROM_END
-
-ROM_START( downtownj )
- ROM_REGION( 0x0a0000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "ud2-001-000.3c", 0x000000, 0x040000, CRC(f1965260) SHA1(c0560342238d75f9b81ae9f3408cacfbcd331529) ) /* 40 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-003.11c", 0x000001, 0x040000, CRC(e7d5fa5f) SHA1(48612514598711aa73bf75243c842f0aca72f3d0) ) /* 40 pin MASK rom */
- ROM_LOAD16_BYTE( "u37.9b", 0x080000, 0x010000, CRC(73047657) SHA1(731663101d809170aad3cd39e901ef494494c5a1) )
- ROM_LOAD16_BYTE( "u31.8b", 0x080001, 0x010000, CRC(6a050240) SHA1(6a1a305b7d32bb2ad17842b4eeabc891fce02160) )
-
- ROM_REGION( 0x04c000, "sub", 0 ) /* 65c02 Code */
- ROM_LOAD( "ud2-002-004.17c", 0x004000, 0x040000, CRC(bbd538b1) SHA1(de4c43bfc4004a14f9f66b5e8ff192b00c45c003) ) /* 40 pin MASK rom */
- ROM_RELOAD( 0x00c000, 0x040000 )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "ud2-001-005-t01.2n", 0x000000, 0x080000, CRC(77e6d249) SHA1(cdf67211cd447858293188511e826640fe24078b) ) /* 32 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-006-t02.3n", 0x000001, 0x080000, CRC(6e381bf2) SHA1(ba46e019d2991dec539444ef7376fe0e9a6a8b75) ) /* 32 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-007-t03.5n", 0x100000, 0x080000, CRC(737b4971) SHA1(2a034011b0ac03d532a89b544f4eec497ac7ee80) ) /* 32 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-008-t04.6n", 0x100001, 0x080000, CRC(99b9d757) SHA1(c3a763993305110ec2a0b231d75fbef4c385d21b) ) /* 32 pin MASK rom */
-
- ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_BYTE( "ud2-001-009-t05.8n", 0x000000, 0x080000, CRC(aee6c581) SHA1(5b2150a308ca12eea8148d0bbff663b3baf0c831) ) /* 32 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-010-t06.9n", 0x000001, 0x080000, CRC(3d399d54) SHA1(7d9036e73fbf0e9c3b976336e3e4786b17b2f4fc) ) /* 32 pin MASK rom */
-
- ROM_REGION( 0x080000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "ud2-001-011-t07.14n", 0x000000, 0x080000, CRC(9c9ff69f) SHA1(3840b654f4f709bc4c03dfe4ee79369d5c70dd62) ) /* 32 pin MASK rom */
-ROM_END
-
-ROM_START( downtownp )
- ROM_REGION( 0x0a0000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "ud2-001-000.3c", 0x000000, 0x040000, CRC(f1965260) SHA1(c0560342238d75f9b81ae9f3408cacfbcd331529) ) /* 40 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-003.11c", 0x000001, 0x040000, CRC(e7d5fa5f) SHA1(48612514598711aa73bf75243c842f0aca72f3d0) ) /* 40 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2_even_v061.9b", 0x080000, 0x010000, CRC(251d6552) SHA1(0f78bf142db826e956f670ba81102804e88fa2ed) ) /* handwritten label UD2 EVEN V0.61 2/13 */
- ROM_LOAD16_BYTE( "ud2_odd_v061.8b", 0x080001, 0x010000, CRC(6394a7c0) SHA1(9f5099b32b3c3e100441f6c0ccbe88c19b01a9e5) ) /* handwritten label UD2 ODD V0.61 2/13 */
-
- ROM_REGION( 0x04c000, "sub", 0 ) /* 65c02 Code */
- ROM_LOAD( "ud2-002-004.17c", 0x004000, 0x040000, CRC(bbd538b1) SHA1(de4c43bfc4004a14f9f66b5e8ff192b00c45c003) ) /* 40 pin MASK rom */
- ROM_RELOAD( 0x00c000, 0x040000 )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "ud2-001-005-t01.2n", 0x000000, 0x080000, CRC(77e6d249) SHA1(cdf67211cd447858293188511e826640fe24078b) ) /* 32 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-006-t02.3n", 0x000001, 0x080000, CRC(6e381bf2) SHA1(ba46e019d2991dec539444ef7376fe0e9a6a8b75) ) /* 32 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-007-t03.5n", 0x100000, 0x080000, CRC(737b4971) SHA1(2a034011b0ac03d532a89b544f4eec497ac7ee80) ) /* 32 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-008-t04.6n", 0x100001, 0x080000, CRC(99b9d757) SHA1(c3a763993305110ec2a0b231d75fbef4c385d21b) ) /* 32 pin MASK rom */
-
- ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_BYTE( "ud2-001-009-t05.8n", 0x000000, 0x080000, CRC(aee6c581) SHA1(5b2150a308ca12eea8148d0bbff663b3baf0c831) ) /* 32 pin MASK rom */
- ROM_LOAD16_BYTE( "ud2-001-010-t06.9n", 0x000001, 0x080000, CRC(3d399d54) SHA1(7d9036e73fbf0e9c3b976336e3e4786b17b2f4fc) ) /* 32 pin MASK rom */
-
- ROM_REGION( 0x080000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "ud2-001-011-t07.14n", 0x000000, 0x080000, CRC(9c9ff69f) SHA1(3840b654f4f709bc4c03dfe4ee79369d5c70dd62) ) /* 32 pin MASK rom */
-ROM_END
-
-ROM_START( usclssic )
- ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "ue2001.u20", 0x000000, 0x020000, CRC(18b41421) SHA1(74e96071d46eda152aaa82cf87d09203f225b504) )
- ROM_LOAD16_BYTE( "ue2000.u14", 0x000001, 0x020000, CRC(69454bc2) SHA1(19a3b6ca65770353401544c50e04d895e391612c) )
- ROM_LOAD16_BYTE( "ue2002.u22", 0x040000, 0x020000, CRC(a7bbe248) SHA1(8f7ffeffb8b6ef0e1ab5e7fbba31a1b97bbd7f8c) )
- ROM_LOAD16_BYTE( "ue2003.u30", 0x040001, 0x020000, CRC(29601906) SHA1(9cdf2d80a72317a4eb7a335aaaae381822da24b1) )
-
- ROM_REGION( 0x04c000, "sub", 0 ) /* 65c02 Code */
- ROM_LOAD( "ue002u61.004", 0x004000, 0x040000, CRC(476e9f60) SHA1(940c09eb472652a88d5d34130270ff55a5f5ba27) )
- ROM_RELOAD( 0x00c000, 0x040000 )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "ue001009.119", 0x000000, 0x080000, CRC(dc065204) SHA1(0478b8126cd3ce3dee64cb7de2b30b509636eb1a) )
- ROM_LOAD16_BYTE( "ue001008.118", 0x000001, 0x080000, CRC(5947d9b5) SHA1(de3a63c55b558451bbbe98bf8d71561ba32c5e60) )
- ROM_LOAD16_BYTE( "ue001007.117", 0x100000, 0x080000, CRC(b48a885c) SHA1(8c0d458d6967c2ff4bdcf37aaa8025341fe90bbc) )
- ROM_LOAD16_BYTE( "ue001006.116", 0x100001, 0x080000, CRC(a6ab6ef4) SHA1(9f54f116d1d8e54d64ba541195baa66c5ca960bd) )
-
- ROM_REGION( 0x600000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD24_BYTE( "ue001010.120", 0x000000, 0x080000, CRC(dd683031) SHA1(06ed38a243666c1acaf8eb3fdba51d18fc2a70bc) ) // planes 01
- ROM_LOAD24_BYTE( "ue001011.121", 0x180000, 0x080000, CRC(0e27bc49) SHA1(f9ec4f4c15c86f608607a5ec916f5182a8e265fa) )
- ROM_LOAD24_BYTE( "ue001012.122", 0x300000, 0x080000, CRC(961dfcdc) SHA1(9de95692860abd4206db22ad7ade9f02f0c03506) )
- ROM_LOAD24_BYTE( "ue001013.123", 0x480000, 0x080000, CRC(03e9eb79) SHA1(e7cabfd73b73c7df8d79c113db5eca110bf2f05e) )
-
- ROM_LOAD24_BYTE( "ue001014.124", 0x000001, 0x080000, CRC(9576ace7) SHA1(a5350934533241daf63c561a88d952bb6976b81b) ) // planes 23
- ROM_LOAD24_BYTE( "ue001015.125", 0x180001, 0x080000, CRC(631d6eb1) SHA1(df342c20e2b3c29eab3c72440c11be60d14d3557) )
- ROM_LOAD24_BYTE( "ue001016.126", 0x300001, 0x080000, CRC(f44a8686) SHA1(649f6f95cc67fa2f4551af19a2b607c811318820) )
- ROM_LOAD24_BYTE( "ue001017.127", 0x480001, 0x080000, CRC(7f568258) SHA1(ac36e87386f9d5c68c66a9469e1b30ee66c4cb7f) )
-
- ROM_LOAD24_BYTE( "ue001018.128", 0x000002, 0x080000, CRC(4bd98f23) SHA1(be6483253a5ea1efe7c7f6b4432fe819b906894c) ) // planes 45
- ROM_LOAD24_BYTE( "ue001019.129", 0x180002, 0x080000, CRC(6d9f5a33) SHA1(8d300adf2b3299df78e274c4c7f2ee2d8e1e2575) )
- ROM_LOAD24_BYTE( "ue001020.130", 0x300002, 0x080000, CRC(bc07403f) SHA1(f994b6d1dee23f5dabdb328f955f4380a8ca9d52) )
- ROM_LOAD24_BYTE( "ue001021.131", 0x480002, 0x080000, CRC(98c03efd) SHA1(761c51d5573e6f35c48b8b9ee5d88cbde02e92a7) )
-
- ROM_REGION( 0x400, "proms", 0 ) /* Extra Colours */
- ROM_LOAD16_BYTE( "ue1-022.prm", 0x000, 0x200, CRC(1a23129e) SHA1(110eb54ab83ecb8375164a5c96f522b2737c379c) )
- ROM_LOAD16_BYTE( "ue1-023.prm", 0x001, 0x200, CRC(a13192a4) SHA1(86e312e0f7400b7fa08fbe8fced1eb95a32502ca) )
-
- ROM_REGION( 0x080000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "ue001005.132", 0x000000, 0x080000, CRC(c5fea37c) SHA1(af4f09dd36af06e50262f607ff14eedc33beffd2) )
-ROM_END
-
-ROM_START( calibr50 )
- ROM_REGION( 0x0a0000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "uh002001.u45", 0x000000, 0x040000, CRC(eb92e7ed) SHA1(2aee8a7bce549ef7d7b35d1c248ebbdbc906e38d) )
- ROM_LOAD16_BYTE( "uh002004.u41", 0x000001, 0x040000, CRC(5a0ed31e) SHA1(d6ee7654354ac9f1dc7add1ef9f68a147b6f2953) )
- ROM_LOAD16_BYTE( "uh001003.9a", 0x080000, 0x010000, CRC(0d30d09f) SHA1(8a48511b628e85b72fda0968d813f4faebd0c418) )
- ROM_LOAD16_BYTE( "uh001002.7a", 0x080001, 0x010000, CRC(7aecc3f9) SHA1(2454d9c758fa623d4d81a9230871b67d31d16cef) )
-
- ROM_REGION( 0x04c000, "sub", 0 ) /* 65c02 Code */
- ROM_LOAD( "uh001005.u61", 0x004000, 0x040000, CRC(4a54c085) SHA1(f53ff257ce3d95f945a6befcfb61f1b570f0eafe) )
- ROM_RELOAD( 0x00c000, 0x040000 )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "uh001006.ux2", 0x000000, 0x080000, CRC(fff52f91) SHA1(fd7807e9a8dd5a88df1fcd13746b44a33adbc0fa) )
- ROM_LOAD16_BYTE( "uh001007.ux1", 0x000001, 0x080000, CRC(b6c19f71) SHA1(eb8bbaeaf4af07e178100ff16b228b537aa36272) )
- ROM_LOAD16_BYTE( "uh001008.ux6", 0x100000, 0x080000, CRC(7aae07ef) SHA1(1db666db20efce1efe5b5769b8e3c78bbf508466) )
- ROM_LOAD16_BYTE( "uh001009.ux0", 0x100001, 0x080000, CRC(f85da2c5) SHA1(d090e49b3a897729c7fb05f9386939448fe1d3d9) )
-
- ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_BYTE( "uh001010.u3x", 0x000000, 0x080000, CRC(f986577a) SHA1(8f6c2fca271fed21a1c04e93c3f50dc41348ae30) )
- ROM_LOAD16_BYTE( "uh001011.u50", 0x000001, 0x080000, CRC(08620052) SHA1(e2ab49dbabc139e6b276401340085ccab1ae3892) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "uh001013.u60", 0x000000, 0x080000, CRC(09ec0df6) SHA1(57c68d05074ea4a1e133be2ce6e25c594f04a712) )
- ROM_LOAD( "uh001012.u46", 0x080000, 0x080000, CRC(bb996547) SHA1(0c8f570ef4454b10a023e0c463001c22a8cf99cd) )
-ROM_END
-
-ROM_START( arbalest )
- ROM_REGION( 0x0a0000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "uk-001-003", 0x000000, 0x040000, CRC(ee878a2c) SHA1(f7d5817015382ce6af317c02746b473ec798bb4f) ) /* Mask ROM on P1-037A sub PCB */
- ROM_LOAD16_BYTE( "uk-001-004", 0x000001, 0x040000, CRC(902bb4e3) SHA1(e37a361a7c03aee2d6ac8c96c2dd6c1e411b46fb) ) /* Mask ROM on P1-037A sub PCB */
-
- ROM_REGION( 0x010000, "sub", 0 ) /* 65c02 Code */
- /* Label is correct, 1st & 2nd halves identical is correct. Chip is a 27128 - Verified on 2 different PCBs */
- ROM_LOAD( "uk6005", 0x006000, 0x004000, CRC(48c73a4a) SHA1(1284ae7236a82a5898a57ec0451b7dcc4d409099) ) /* EPROM on P1-037A sub PCB */
- ROM_RELOAD( 0x00a000, 0x004000 )
- ROM_RELOAD( 0x00e000, 0x002000 )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "uk001.06", 0x000000, 0x040000, CRC(11c75746) SHA1(7faf9a26534397d21211d5ef25ca53c4eb286474) )
- ROM_LOAD16_BYTE( "uk001.07", 0x000001, 0x040000, CRC(01b166c7) SHA1(d1b5b73a55025a264a22dd950ea79ba8172c4bed) )
- ROM_LOAD16_BYTE( "uk001.08", 0x080000, 0x040000, CRC(78d60ba3) SHA1(c4fa546e4ca637d67ecc1b085b91c753606ccdb3) )
- ROM_LOAD16_BYTE( "uk001.09", 0x080001, 0x040000, CRC(b4748ae0) SHA1(a71e671754ed5bba737f0b5f7be510a23d5e925c) )
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_BYTE( "uk-001-010-t26", 0x000000, 0x080000, CRC(c1e2f823) SHA1(892473351e7b590c59c578047a67fc235bd31e02) ) /* Mask ROM on P1-036A sub PCB */
- ROM_LOAD16_BYTE( "uk-001-011-t27", 0x100000, 0x080000, CRC(09dfe56a) SHA1(077627627d3cb8f79ffdd83e46157bd3c473c4a1) ) /* Mask ROM on P1-036A sub PCB */
- ROM_LOAD16_BYTE( "uk-001-012-t28", 0x000001, 0x080000, CRC(818a4085) SHA1(fd8b5658fc7f5fa6d3daebb4be17aeabd60c9028) ) /* Mask ROM on P1-036A sub PCB */
- ROM_LOAD16_BYTE( "uk-001-013-t29", 0x100001, 0x080000, CRC(771fa164) SHA1(a91214318808f991846a828f0e309c0ff430245e) ) /* Mask ROM on P1-036A sub PCB */
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "uk-001-015-t31", 0x000000, 0x080000, CRC(ce9df5dd) SHA1(91d879b774b5b367adb5bd511fda827bc0bae0a9) ) /* Mask ROM on P1-036A sub PCB */
- ROM_LOAD( "uk-001-014-t30", 0x080000, 0x080000, CRC(016b844a) SHA1(1fe091233746ced358292014393896af730f5940) ) /* Mask ROM on P1-036A sub PCB */
-ROM_END
-
-ROM_START( metafox )
- ROM_REGION( 0x0a0000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "p1003161", 0x000000, 0x040000, CRC(4fd6e6a1) SHA1(11a830d76ef737bcfac73d0958425fe4329f0dcd) )
- ROM_LOAD16_BYTE( "p1004162", 0x000001, 0x040000, CRC(b6356c9a) SHA1(182a1ea9f0643b05b14ad2a2cd820f5ca2086c4c) )
- ROM_LOAD16_BYTE( "up001002", 0x080000, 0x010000, CRC(ce91c987) SHA1(63546fa1342371a7080ac3cf59b41a01ac313c8c) )
- ROM_LOAD16_BYTE( "up001001", 0x080001, 0x010000, CRC(0db7a505) SHA1(d593da2f7d8b54724cae017cbabc3c0909893da1) )
-
- ROM_REGION( 0x010000, "sub", 0 ) /* 65c02 Code */
- ROM_LOAD( "up001005", 0x006000, 0x002000, CRC(2ac5e3e3) SHA1(b794554cd25bdd48a21a0a2861daf8369e798ce8) )
- ROM_RELOAD( 0x008000, 0x002000 )
- ROM_RELOAD( 0x00a000, 0x002000 )
- ROM_RELOAD( 0x00c000, 0x002000 )
- ROM_RELOAD( 0x00e000, 0x002000 )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "p1006163", 0x000000, 0x040000, CRC(80f69c7c) SHA1(df323e801ebec6316ba17fe0371f7c87fad19295) )
- ROM_LOAD16_BYTE( "p1007164", 0x000001, 0x040000, CRC(d137e1a3) SHA1(0e0234f1d0adb7db6d0508263e3b0b31fe7071b9) )
- ROM_LOAD16_BYTE( "p1008165", 0x080000, 0x040000, CRC(57494f2b) SHA1(28d620254e81d7e63dfed07b29b252b975a81248) )
- ROM_LOAD16_BYTE( "p1009166", 0x080001, 0x040000, CRC(8344afd2) SHA1(7348b423405ad00b9240d152b119cf5341754815) )
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_BYTE( "up001010", 0x000000, 0x080000, CRC(bfbab472) SHA1(d3e7b20d14de48134c4fbe3da31feb928c1c655b) )
- ROM_LOAD16_BYTE( "up001011", 0x100000, 0x080000, CRC(26cea381) SHA1(b4bfd2a13ef6051376fe3ed57e2331a072970f86) )
- ROM_LOAD16_BYTE( "up001012", 0x000001, 0x080000, CRC(fed2c5f9) SHA1(81f0f19a500b665c937f5431000ebde7abd97c30) )
- ROM_LOAD16_BYTE( "up001013", 0x100001, 0x080000, CRC(adabf9ea) SHA1(db28e4e565e567a97a6b05a4803a55a403e24a0e) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "up001015", 0x000000, 0x080000, CRC(2e20e39f) SHA1(6f8bd4a76ed5c2150015698e7a98044d060157be) )
- ROM_LOAD( "up001014", 0x080000, 0x080000, CRC(fca6315e) SHA1(cef2385ec43f8b7a2d655b42c18ef44e46ff7364) )
-ROM_END
-
-ROM_START( drgnunit )
- ROM_REGION( 0x0c0000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "prg-e.bin", 0x000000, 0x020000, CRC(728447df) SHA1(8bdc52a4cc5f36794a47f963545bdaa26c9acd6b) )
- ROM_LOAD16_BYTE( "prg-o.bin", 0x000001, 0x020000, CRC(b2f58ecf) SHA1(5198e75b22bab630b458797988f2e443c601351f) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "obj-2.bin", 0x000000, 0x020000, CRC(d7f6ab5a) SHA1(a32f1705e833c339bd0c426a395cc706da96dad7) )
- ROM_LOAD16_BYTE( "obj-1.bin", 0x000001, 0x020000, CRC(53a95b13) SHA1(b7c7994441aafcea49662dc0fbebd6db836723f5) )
- ROM_LOAD16_BYTE( "obj-6.bin", 0x040000, 0x020000, CRC(80b801f7) SHA1(5b5635903137e50bc982d05b73c2648bbf182e71) )
- ROM_LOAD16_BYTE( "obj-5.bin", 0x040001, 0x020000, CRC(6b87bc20) SHA1(9a0e3e18339d6c12e63960fb940a56c16dcb87cf) )
- ROM_LOAD16_BYTE( "obj-4.bin", 0x080000, 0x020000, CRC(60d17771) SHA1(0874c10a2527293715db95bd7c83886d94f810cf) )
- ROM_LOAD16_BYTE( "obj-3.bin", 0x080001, 0x020000, CRC(0bccd4d5) SHA1(7139ef793efe7c6477f78b50207227b1be223755) )
- ROM_LOAD16_BYTE( "obj-8.bin", 0x0c0000, 0x020000, CRC(826c1543) SHA1(f669f255b4596da5648592b5993b02671e404102) )
- ROM_LOAD16_BYTE( "obj-7.bin", 0x0c0001, 0x020000, CRC(cbaa7f6a) SHA1(060f0651b8ca07d239ef1b7c63943cdd433e1ae9) )
-
- ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_BYTE( "scr-1o.bin", 0x000000, 0x020000, CRC(671525db) SHA1(e230e99754c9f40af7da2054bd5ea09823e0b1b7) )
- ROM_LOAD16_BYTE( "scr-2o.bin", 0x040000, 0x020000, CRC(2a3f2ed8) SHA1(9d188100437a10eb3d3097f28e28e3cb2dc1b21d) )
- ROM_LOAD16_BYTE( "scr-3o.bin", 0x080000, 0x020000, CRC(4d33a92d) SHA1(8b09768abb460446405224565eb6652d2dc1c571) )
- ROM_LOAD16_BYTE( "scr-4o.bin", 0x0c0000, 0x020000, CRC(79a0aa61) SHA1(9905d90afb759b1d983856d7bef17c139d4f0e4f) )
- ROM_LOAD16_BYTE( "scr-1e.bin", 0x000001, 0x020000, CRC(dc9cd8c9) SHA1(04450a5cfde5d6b69fdd745cd930309863e1aadd) )
- ROM_LOAD16_BYTE( "scr-2e.bin", 0x040001, 0x020000, CRC(b6126b41) SHA1(13275f05868d93af95ebb162d229b69ddd660438) )
- ROM_LOAD16_BYTE( "scr-3e.bin", 0x080001, 0x020000, CRC(1592b8c2) SHA1(d337de280c5ea3704dec9baa04c45e1c837924a9) )
- ROM_LOAD16_BYTE( "scr-4e.bin", 0x0c0001, 0x020000, CRC(8201681c) SHA1(7784a68828d728107b0228bb3568129c543cbf40) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "snd-1.bin", 0x000000, 0x020000, CRC(8f47bd0d) SHA1(c55e22ac4294931cfb72ac88a2128891d9f8ee93) )
- ROM_LOAD( "snd-2.bin", 0x020000, 0x020000, CRC(65c40ef5) SHA1(726b46144e2216d17b0828abad2f5e7c2305c174) )
- ROM_LOAD( "snd-3.bin", 0x040000, 0x020000, CRC(71fbd54e) SHA1(bdaf7ecf1c79c6c8fc82d959186ca2f3304729c8) )
- ROM_LOAD( "snd-4.bin", 0x060000, 0x020000, CRC(ac50133f) SHA1(d56a9569bd72c7bc13d09dcea9789cdc7252ffb4) )
- ROM_LOAD( "snd-5.bin", 0x080000, 0x020000, CRC(70652f2c) SHA1(04ff016a087a230efe4644eb76f68886aae26978) )
- ROM_LOAD( "snd-6.bin", 0x0a0000, 0x020000, CRC(10a1039d) SHA1(a1160fe600d39ae6fdbf247f634c2e094b3a675f) )
- ROM_LOAD( "snd-7.bin", 0x0c0000, 0x020000, CRC(decbc8b0) SHA1(9d315d1119fbc2bf889efdb174ebc5e26ecad859) )
- ROM_LOAD( "snd-8.bin", 0x0e0000, 0x020000, CRC(3ac51bee) SHA1(cb2ee501895b848d434991152dea293685f8ed22) )
-ROM_END
-
-ROM_START( wits )
- ROM_REGION( 0x010000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "un001001.u1", 0x000000, 0x008000, CRC(416c567e) SHA1(f0898ce4457efc272e0fec3447c9d4598684219e) )
- ROM_LOAD16_BYTE( "un001002.u4", 0x000001, 0x008000, CRC(497a3fa6) SHA1(cf035efddc2a90013e83dcb81687ba1896ba6055) )
-
- ROM_REGION( 0x080000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "un001008.7l", 0x000000, 0x020000, CRC(1d5d0b2b) SHA1(12cf1be316012e8ee910edfd1b892b7ce1383535) )
- ROM_LOAD16_BYTE( "un001007.5l", 0x000001, 0x020000, CRC(9e1e6d51) SHA1(9a87f0f18ac0b3d267fe8655d01750d693745c1f) )
- ROM_LOAD16_BYTE( "un001006.4l", 0x040000, 0x020000, CRC(98a980d4) SHA1(ab2c1ed83bccffabfacc8a185d1fbc3e8aaf210d) )
- ROM_LOAD16_BYTE( "un001005.2l", 0x040001, 0x020000, CRC(6f2ce3c0) SHA1(8086b44c7025bc0bffff75cc6c6c7846cc56e8d0) )
-
- ROM_REGION( 0x40000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "un001004.12a", 0x000000, 0x020000, CRC(a15ff938) SHA1(fdfdf73e85d89a39cfc5b3c3048a64178200f942) )
- ROM_LOAD( "un001003.10a", 0x020000, 0x020000, CRC(3f4b9e55) SHA1(3cecf89ae6a056622affcddec9e10be08761e56d) )
-ROM_END
-
-ROM_START( thunderl )
- ROM_REGION( 0x010000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "m4", 0x000000, 0x008000, CRC(1e6b9462) SHA1(f7f93479117e97d4e38632fef83c10345587f77f) )
- ROM_LOAD16_BYTE( "m5", 0x000001, 0x008000, CRC(7e82793e) SHA1(3e487f465d64af8c1c4852567b2fd9190363570c) )
-
- ROM_REGION( 0x080000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "t17", 0x000000, 0x020000, CRC(599a632a) SHA1(29da423dfe1f971cbb205767cf902d199d968d85) )
- ROM_LOAD16_BYTE( "t16", 0x000001, 0x020000, CRC(3aeef91c) SHA1(a5dc8c22a7bcc1199bdd09c7d0f1f8a378e757c5) )
- ROM_LOAD16_BYTE( "t15", 0x040000, 0x020000, CRC(b97a7b56) SHA1(c08d3586d489947af21f3493356e3a88d79746e8) )
- ROM_LOAD16_BYTE( "t14", 0x040001, 0x020000, CRC(79c707be) SHA1(f67fa40c8f6ab0fbce44997fdfbf699fea1f0df6) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "r28", 0x000000, 0x080000, CRC(a043615d) SHA1(e483fa9fd8e922578a9d7b6ced0750643089ca78) )
- ROM_LOAD( "r27", 0x080000, 0x080000, CRC(cb8425a3) SHA1(655afa295fbe99acc79c4004f03ed832560cff5b) )
-ROM_END
-
-ROM_START( thunderlbl )
- ROM_REGION( 0x010000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "20.g11", 0x000000, 0x008000, CRC(83500006) SHA1(f078e614078296df48bb8b953c3ba88f6f288255) )
- ROM_LOAD16_BYTE( "19.f11", 0x000001, 0x008000, CRC(1bb4cd03) SHA1(1a22bf02f2116b9f01ff01e18ef31497016df0d2) )
-
- // they ripped the sound CPU program from Tetris!
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* sound cpu code */
- ROM_LOAD( "21.d5", 0x00000, 0x08000, CRC(bd9ba01b) SHA1(fafa7dc36cc057a50ae4cdf7a35f3594292336f4) )
-
- ROM_REGION( 0x080000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "25.a10", 0x000000, 0x020000, CRC(599a632a) SHA1(29da423dfe1f971cbb205767cf902d199d968d85) )
- ROM_LOAD16_BYTE( "24.a8", 0x000001, 0x020000, CRC(3aeef91c) SHA1(a5dc8c22a7bcc1199bdd09c7d0f1f8a378e757c5) )
- ROM_LOAD16_BYTE( "23.a5", 0x040000, 0x020000, CRC(b97a7b56) SHA1(c08d3586d489947af21f3493356e3a88d79746e8) )
- ROM_LOAD16_BYTE( "22.a3", 0x040001, 0x020000, CRC(79c707be) SHA1(f67fa40c8f6ab0fbce44997fdfbf699fea1f0df6) )
-ROM_END
-
-ROM_START( thunderlbl2 ) // 2 PCB stack, label JK274
- ROM_REGION( 0x010000, "maincpu", 0 ) /* 68000 Code, both 27c256, on main PCB */
- ROM_LOAD16_BYTE( "g11", 0x000000, 0x008000, CRC(e4842fbd) SHA1(6fc4cded6a7f2e7f331c22323c5b793a7bafdd06) )
- ROM_LOAD16_BYTE( "f11", 0x000001, 0x008000, CRC(b883ab13) SHA1(b835506b97359e3cd9e528d78c6195721be9e878) )
-
- // they ripped the sound CPU program from Tetris!
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* sound cpu code, on main PCB */
- ROM_LOAD( "d", 0x00000, 0x08000, CRC(bd9ba01b) SHA1(fafa7dc36cc057a50ae4cdf7a35f3594292336f4) ) // 27c256
-
- ROM_REGION( 0x080000, "gfx1", 0 ) /* Sprites, all 27c010a, on sub PCB */
- ROM_LOAD16_BYTE( "a10", 0x000000, 0x020000, CRC(599a632a) SHA1(29da423dfe1f971cbb205767cf902d199d968d85) )
- ROM_LOAD16_BYTE( "a8", 0x000001, 0x020000, CRC(3aeef91c) SHA1(a5dc8c22a7bcc1199bdd09c7d0f1f8a378e757c5) )
- ROM_LOAD16_BYTE( "a5", 0x040000, 0x020000, CRC(b97a7b56) SHA1(c08d3586d489947af21f3493356e3a88d79746e8) )
- ROM_LOAD16_BYTE( "a3", 0x040001, 0x020000, CRC(79c707be) SHA1(f67fa40c8f6ab0fbce44997fdfbf699fea1f0df6) )
-
- ROM_REGION( 0xc00, "plds", 0 ) // all on sub PCB
- ROM_LOAD( "pal16l8acn.e13", 0x000, 0x104, NO_DUMP )
- ROM_LOAD( "pal16l8acn.e14", 0x200, 0x104, NO_DUMP )
- ROM_LOAD( "pal16l8acn.e15", 0x400, 0x104, NO_DUMP )
- ROM_LOAD( "pal16l8acn.f13", 0x600, 0x104, NO_DUMP )
- ROM_LOAD( "pal16l8acn.h9", 0x800, 0x104, NO_DUMP )
- ROM_LOAD( "pal16l8acn.i3", 0xa00, 0x104, NO_DUMP )
-ROM_END
-
-/*
-
-Wiggie Waggie & Super Bar run on a bootleg SETA board with an OKI M6295 replacing the X1-010 sound chip.
-Both games are based on Thunder & Lightning code.
-
-PCB:
-
-+--------------------------------------------------------+
-| YM3012* YM2151* 2M-1 |
-| 2M-2* 6116 6116 |
-| VOL 6116 M6295 2M-3* 6116 6116 |
-| A5 16MHz 6116 |
-+-+ Z80A 6264 6116 |
- | 6264 |
-+-+ |
-| 6116 |
-|J 6116 |
-|A |
-|M PAL |
-|M +------+ |
-|A DSW2 |Actel | |
-| +-+ |A1020A| |
-+-+ DSW1 |6| |PL84C | |
- | |8| 6264 +------+ |
-+-+ |0| 6264 6116 1M-4 |
-| |0| 6116 1M-5 |
-| |0| 512-1 6116 1M-6 |
-| +-+ 512-2 6116 1M-7 |
-+--------------------------------------------------------+
-
- CPU: 68000P10 (8MHz)
- Z80A (4MHz)
-Sound: OKI M6295
- OSC: 16MHz
-Other: Actel A1020A PLC84C (used for graphics and graphic rom decode)
-
-* Denotes unpopulated sockets
-
-*/
-
-ROM_START( wiggie )
- ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "wiggie.e19", 0x00000, 0x10000, CRC(24b58f16) SHA1(96ef92ab79258da9322dd7e706bf05ac5143f7b7) )
- ROM_LOAD16_BYTE( "wiggie.e21", 0x00001, 0x10000, CRC(83ba6edb) SHA1(fa74fb39599ed877317db73d02d14df5b475fc35) )
-
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* sound cpu code */
- ROM_LOAD( "wiggie.a5", 0x00000, 0x10000, CRC(8078d77b) SHA1(4e6855d396a1bace2810b13b7dd08ccf5de89bd8) )
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "wiggie.d1", 0x00000, 0x40000, CRC(27fbe12a) SHA1(73f476a03b321ed1ae89104f5b32d77153fabb82) )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "wiggie.j16", 0x00000, 0x20000, CRC(4fb40b8a) SHA1(120c9fd677071485a9f8accc2385117baf542b9c) ) /* Drawn nude girls for the backgrounds */
- ROM_LOAD( "wiggie.j18", 0x20000, 0x20000, CRC(ebc418e9) SHA1(a9af9bebce56608b0533d7d147191ebdceaca4e4) )
- ROM_LOAD( "wiggie.j20", 0x40000, 0x20000, CRC(c073501b) SHA1(4b4cd0fed5efe12bcd10f98a71becc212e7e753a) )
- ROM_LOAD( "wiggie.j21", 0x60000, 0x20000, CRC(22f6fa39) SHA1(d3e86e156434153335c5d2ce71417f35097f5ab7) )
-ROM_END
-
-ROM_START( superbar ) /* All roms had a "PROMAT" label with no other information. Rom size was silkscreened on the PCB */
- ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "promat_512-1.e19", 0x00000, 0x10000, CRC(cc7f9e87) SHA1(6c63ee5ac1c145a151a972a2b6bcb29036dad02d) )
- ROM_LOAD16_BYTE( "promat_512-2.e21", 0x00001, 0x10000, CRC(5e8c7231) SHA1(16efbaa871335143490ca897e0573bbbcf16ff16) )
-
- ROM_REGION( 0x40000, "audiocpu", 0 ) /* sound cpu code */
- ROM_LOAD( "promat.a5", 0x00000, 0x10000, CRC(8078d77b) SHA1(4e6855d396a1bace2810b13b7dd08ccf5de89bd8) ) /* Same as Wiggie Waggie */
-
- ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
- ROM_LOAD( "promat_2m-1.d1", 0x00000, 0x40000, CRC(27fbe12a) SHA1(73f476a03b321ed1ae89104f5b32d77153fabb82) ) /* Same as Wiggie Waggie */
- /* 2M-2 sample rom not populated */
- /* 2M-3 sample rom not populated */
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "promat_1m-4.j16", 0x00000, 0x20000, CRC(43dbc99f) SHA1(36ac4df9286d8661c61e0dfc9788b936c5596c31) ) /* Drawn clothed girls for the backgrounds */
- ROM_LOAD( "promat_1m-5.j18", 0x20000, 0x20000, CRC(c09344b0) SHA1(4c54dbc602fa2ccddd232f145d3844a4d145611c) )
- ROM_LOAD( "promat_1m-6.j20", 0x40000, 0x20000, CRC(7d83f8ba) SHA1(55d026a3b98dd0e9a6263a0c913a1d9b6c30cfd1) )
- ROM_LOAD( "promat_1m-7.j21", 0x60000, 0x20000, CRC(734df92a) SHA1(0dfd58a3f47fa8dfa315df7adfad25ade97c2a3b) )
-ROM_END
-
-ROM_START( rezon )
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "us001001.u3", 0x000000, 0x020000, CRC(ab923052) SHA1(26761c228b63c300f635787e63e1276b6e3083f0) )
- ROM_LOAD16_BYTE( "us001002.u4", 0x000001, 0x020000, CRC(3dafa0d5) SHA1(80cdff86b99d364acbbf1322c73b2f26b1a93167) )
- /* empty gap */
- ROM_LOAD16_BYTE( "us001004.103", 0x100000, 0x020000, CRC(54871c7c) SHA1(2f807b15760b1e712fa69eee6f33cc8a36ee1c02) ) // 1xxxxxxxxxxxxxxxx = 0x00
- ROM_LOAD16_BYTE( "us001003.102", 0x100001, 0x020000, CRC(1ac3d272) SHA1(0f19bc9c19e355dad5b463b0fa33127523bf141b) ) // 1xxxxxxxxxxxxxxxx = 0x00
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "us001006.u64", 0x000000, 0x080000, CRC(a4916e96) SHA1(bfb63b72273e4fbf0843b3201bb4fddaf54909a7) )
- ROM_LOAD( "us001005.u63", 0x080000, 0x080000, CRC(e6251ebc) SHA1(f02a4c8373e33fc57e18e39f1b5ecff3f6d9ca9e) )
-
- ROM_REGION( 0x080000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_WORD_SWAP( "us001007.u66", 0x000000, 0x080000, CRC(3760b935) SHA1(f5fe69f7e93c90a5b6c1dff236402b962821e33f) ) // 1xxxxxxxxxxxxxxxxxx = 0xFF
-
- ROM_REGION( 0x080000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD16_WORD_SWAP( "us001008.u68", 0x000000, 0x080000, CRC(0ab73910) SHA1(78e2c0570c5c6f5e1cdb2fbeae73376923127024) ) // 1xxxxxxxxxxxxxxxxxx = 0xFF
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD16_WORD_SWAP( "us001009.u70", 0x000000, 0x100000, CRC(0d7d2e2b) SHA1(cfba19314ecb0a49ed9ff8df32cd6a3fe37ff526) )
-ROM_END
-
-/* note the ONLY byte that changes is the year, 1992 instead of 1991. The actual license is controlled by a jumper but
- since Taito released the game in 1992 this is the Taito version and we hardcode the jumper in the input ports */
-
-ROM_START( rezont )
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "us001001.u3", 0x000000, 0x020000, CRC(ab923052) SHA1(26761c228b63c300f635787e63e1276b6e3083f0) )
- ROM_LOAD16_BYTE( "rezon_1_p.u4", 0x000001, 0x020000, CRC(9ed32f8c) SHA1(68b926de4cb5f2632ab78b2cdf7409411fadbb1d) )
- /* empty gap */
- ROM_LOAD16_BYTE( "us001004.103", 0x100000, 0x020000, CRC(54871c7c) SHA1(2f807b15760b1e712fa69eee6f33cc8a36ee1c02) ) // 1xxxxxxxxxxxxxxxx = 0x00
- ROM_LOAD16_BYTE( "us001003.102", 0x100001, 0x020000, CRC(1ac3d272) SHA1(0f19bc9c19e355dad5b463b0fa33127523bf141b) ) // 1xxxxxxxxxxxxxxxx = 0x00
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "us001006.u64", 0x000000, 0x080000, CRC(a4916e96) SHA1(bfb63b72273e4fbf0843b3201bb4fddaf54909a7) )
- ROM_LOAD( "us001005.u63", 0x080000, 0x080000, CRC(e6251ebc) SHA1(f02a4c8373e33fc57e18e39f1b5ecff3f6d9ca9e) )
-
- ROM_REGION( 0x080000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_WORD_SWAP( "us001007.u66", 0x000000, 0x080000, CRC(3760b935) SHA1(f5fe69f7e93c90a5b6c1dff236402b962821e33f) ) // 1xxxxxxxxxxxxxxxxxx = 0xFF
-
- ROM_REGION( 0x080000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD16_WORD_SWAP( "us001008.u68", 0x000000, 0x080000, CRC(0ab73910) SHA1(78e2c0570c5c6f5e1cdb2fbeae73376923127024) ) // 1xxxxxxxxxxxxxxxxxx = 0xFF
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD16_WORD_SWAP( "us001009.u70", 0x000000, 0x100000, CRC(0d7d2e2b) SHA1(cfba19314ecb0a49ed9ff8df32cd6a3fe37ff526) )
-ROM_END
-
-ROM_START( stg )
- ROM_REGION( 0x0c0000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "att01003.u27", 0x000000, 0x020000, CRC(7a640a93) SHA1(28c54eca9502d06ca55c2db91bfe7d149af006ed) )
- ROM_LOAD16_BYTE( "att01001.u9", 0x000001, 0x020000, CRC(4fa88ad3) SHA1(55e0e689758511cdf514a633ffe3d7729e281b52) )
- ROM_LOAD16_BYTE( "att01004.u33", 0x040000, 0x020000, CRC(bbd45ca1) SHA1(badb11faf5779e8444dd95eb08a94fbf9f73cc2c) ) // 1xxxxxxxxxxxxxxxx = 0xFF
- ROM_LOAD16_BYTE( "att01002.u17", 0x040001, 0x020000, CRC(2f8fd80c) SHA1(b8e16adc84b918b5eee05d032a7841e8d726eeeb) ) // 1xxxxxxxxxxxxxxxx = 0xFF
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "att01006.u32", 0x000000, 0x080000, CRC(6ad78ea2) SHA1(eb8fc9833fb1c7041f5e0a3b37c8de9156a034b6) )
- ROM_LOAD( "att01005.u26", 0x080000, 0x080000, CRC(a347ff00) SHA1(8455c5e7dfa25646b1782ab3bcf62fca91ca03ad) )
-
- ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_BYTE( "att01008.u39", 0x000000, 0x080000, CRC(20c47457) SHA1(53ddf8c076aa35fb87edc739bc9e9612a5a1526b) ) // FIRST AND SECOND HALF IDENTICAL
- ROM_LOAD16_BYTE( "att01007.u42", 0x000001, 0x080000, CRC(ac975544) SHA1(5cdd2c7aada7179d4bdaf8578134c0ef672a2704) ) // FIRST AND SECOND HALF IDENTICAL
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "att01009.u47", 0x000000, 0x080000, CRC(4276b58d) SHA1(a2e77dc3295791520c6cb25dea4e910b5a7bc137) )
- ROM_LOAD( "att01010.u55", 0x080000, 0x080000, CRC(fffb2f53) SHA1(0aacb24437e9a6874850313163922d834da27611) )
-ROM_END
-
-ROM_START( blandia )
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "ux001001.u3", 0x000000, 0x040000, CRC(2376a1f3) SHA1(705a3c5cc1137d14ffded6c949bf9aa650133eb7) )
- ROM_LOAD16_BYTE( "ux001002.u4", 0x000001, 0x040000, CRC(b915e172) SHA1(e43e50a664dc1286ece42a5ff8629b2da7fb49b4) )
- ROM_LOAD16_WORD_SWAP( "ux001003.u202", 0x100000, 0x100000, CRC(98052c63) SHA1(b523596de29038b3ec9f1b6e1f7374a6a8709d42) )
-
- ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "ux001005.u200", 0x300000, 0x100000, CRC(bea0c4a5) SHA1(a690c17fb7cbdab533c1dfad13abbad9359b9631) )
- ROM_LOAD( "ux001007.u201", 0x100000, 0x100000, CRC(4440fdd1) SHA1(7bfee90f81a2c867bd487abcf5905393ad400902) )
- ROM_LOAD( "ux001006.u63", 0x200000, 0x100000, CRC(abc01cf7) SHA1(c3f26e75eeb68073d2825be8df82cc6afcfbfb26) )
- ROM_LOAD( "ux001008.u64", 0x000000, 0x100000, CRC(413647b6) SHA1(594e010ca6f49ec82cc6d44fe23ac3427c4c3dbd) )
-
- ROM_REGION( 0x180000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD24_BYTE ( "ux001009.u65", 0x000000, 0x080000, CRC(bc6f6aea) SHA1(673efa0c70587b5650ccf0a3c4bc316f53d52ba6) )
- ROM_LOAD24_WORD_SWAP( "ux001010.u66", 0x000001, 0x080000, CRC(bd7f7614) SHA1(dc865ff0f327f460956915b2018aaac815e8fce5) )
-
- ROM_REGION( 0x180000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD24_BYTE ( "ux001011.u67", 0x000000, 0x080000, CRC(5efe0397) SHA1(a294a2dae9a10e93912543a8614a7f960a011f27) )
- ROM_LOAD24_WORD_SWAP( "ux001012.u068", 0x000001, 0x080000, CRC(f29959f6) SHA1(edccea3d0bf972a07edd6339e18792d089033bff) )
-
- /* The c0000-fffff region is bankswitched */
- ROM_REGION( 0x200000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "ux001013.u69", 0x000000, 0x100000, CRC(5cd273cd) SHA1(602e1f10454e2b1c941f2e6983872bb9ca77a542) )
- ROM_LOAD( "ux001014.u70", 0x100000, 0x080000, CRC(86b49b4e) SHA1(045b352950d848907af4c22b817d154b2cfff382) )
-ROM_END
-
-ROM_START( blandiap )
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "prg-even.bin", 0x000000, 0x040000, CRC(7ecd30e8) SHA1(25e555a45bbb154170189b065206f7536a5dec1b) )
- ROM_LOAD16_BYTE( "prg-odd.bin", 0x000001, 0x040000, CRC(42b86c15) SHA1(9a4adcc16c35f84826a6effed5ebe439483ab856) )
- ROM_LOAD16_BYTE( "tbl0.bin", 0x100000, 0x080000, CRC(69b79eb8) SHA1(f7b33c99744d8b7f6e2991b4d2b35719eebd0b43) )
- ROM_LOAD16_BYTE( "tbl1.bin", 0x100001, 0x080000, CRC(cf2fd350) SHA1(4d0fb720af544f746eeaaad499be00e0d1c6f129) )
-
- ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "o-1.bin", 0x000000, 0x080000, CRC(4c67b7f0) SHA1(ad6bd4b880f0f63a803c097795a4b70f24c94848) )
- ROM_LOAD16_BYTE( "o-0.bin", 0x000001, 0x080000, CRC(5e7b8555) SHA1(040599db77041765f582aa99d6f616a7a2c4dd5c) )
- ROM_LOAD16_BYTE( "o-5.bin", 0x100000, 0x080000, CRC(40bee78b) SHA1(1ec0b1854c26ba300a3a54077332a9af55677dca) )
- ROM_LOAD16_BYTE( "o-4.bin", 0x100001, 0x080000, CRC(7c634784) SHA1(047287c630336001d2b1e21f7273ccc3d5278e3c) )
- ROM_LOAD16_BYTE( "o-3.bin", 0x200000, 0x080000, CRC(387fc7c4) SHA1(4e5bd3985f16aa7295110a9902adc8e1453c03ab) )
- ROM_LOAD16_BYTE( "o-2.bin", 0x200001, 0x080000, CRC(c669bb49) SHA1(db5051ea8b08672b6079004060e20fb250560d9f) )
- ROM_LOAD16_BYTE( "o-7.bin", 0x300000, 0x080000, CRC(fc77b04a) SHA1(b3c7b2cb9407cac261890e0355cbb87ac8e2e93c) )
- ROM_LOAD16_BYTE( "o-6.bin", 0x300001, 0x080000, CRC(92882943) SHA1(460f3ae37d6f88d3a6068e2fb8d0d330be7c786f) )
-
- ROM_REGION( 0x0c0000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD24_BYTE( "v1-2.bin", 0x000000, 0x020000, CRC(d524735e) SHA1(4d17e7896b6c6451effe8a19bf7a4919db0cc06d) )
- ROM_LOAD24_BYTE( "v1-1.bin", 0x000001, 0x020000, CRC(09bdf75f) SHA1(33bda046092d5bc3d8e8ffec25c745a2fda16a5c) )
- ROM_LOAD24_BYTE( "v1-0.bin", 0x000002, 0x020000, CRC(73617548) SHA1(9c04d0179cb93e9fb78cc8af1006ef3edfcde707) )
- ROM_LOAD24_BYTE( "v1-5.bin", 0x060000, 0x020000, CRC(eb440cdb) SHA1(180ed9d616c66b7fae1a3d1156028c8476e45bde) )
- ROM_LOAD24_BYTE( "v1-4.bin", 0x060001, 0x020000, CRC(803911e5) SHA1(a93cac42eda69698b393a1a49e3615ee60868838) )
- ROM_LOAD24_BYTE( "v1-3.bin", 0x060002, 0x020000, CRC(7f18e4fb) SHA1(0e51e3f88b90c07a1352bcd42e6438c947d4856e) )
-
- ROM_REGION( 0x0c0000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD24_BYTE( "v2-2.bin", 0x000000, 0x020000, CRC(c4f15638) SHA1(6be0f3e90ab23189caadfd99b3e4ded74749ebbc) ) // identical to v2-1
- ROM_LOAD24_BYTE( "v2-1.bin", 0x000001, 0x020000, CRC(c4f15638) SHA1(6be0f3e90ab23189caadfd99b3e4ded74749ebbc) )
- ROM_LOAD24_BYTE( "v2-0.bin", 0x000002, 0x020000, CRC(5b05eba9) SHA1(665001cdb3c9977f8f4c7ce551549f7fc640c6a9) )
- ROM_LOAD24_BYTE( "v2-5.bin", 0x060000, 0x020000, CRC(c2e57622) SHA1(994a4774d68f2d562d985951b06216d59f38afe9) )
- ROM_LOAD24_BYTE( "v2-4.bin", 0x060001, 0x020000, CRC(16ec2130) SHA1(187f548563577ca36cced9ae184d27e6fcdd7e6a) )
- ROM_LOAD24_BYTE( "v2-3.bin", 0x060002, 0x020000, CRC(80ad0c3b) SHA1(00fcbcf7805784d7298b92136e7f256d65029c44) )
-
- /* The c0000-fffff region is bankswitched */
- ROM_REGION( 0x200000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "s-0.bin", 0x000000, 0x020000, CRC(a5fde408) SHA1(89efcd37ef6c5b313169d74a962a7c074a09b12a) )
- ROM_CONTINUE( 0x100000, 0x020000 )
- ROM_LOAD( "s-1.bin", 0x020000, 0x020000, CRC(3083f9c4) SHA1(f5d2297c3d680eb1f128fa42a3a7f61badb9853a) )
- ROM_CONTINUE( 0x120000, 0x020000 )
- ROM_LOAD( "s-2.bin", 0x040000, 0x020000, CRC(a591c9ef) SHA1(83e665e342c42fd3582c83becfacc27a3a3e5a54) )
- ROM_CONTINUE( 0x140000, 0x020000 )
- ROM_LOAD( "s-3.bin", 0x060000, 0x020000, CRC(68826c9d) SHA1(a860b7b2140a5a506bf25110c08c6ea59db25743) )
- ROM_CONTINUE( 0x160000, 0x020000 )
- ROM_LOAD( "s-4.bin", 0x080000, 0x020000, CRC(1c7dc8c2) SHA1(006459a23de83fe48e11bdd6ebe23ef6a18a87e8) )
- ROM_CONTINUE( 0x180000, 0x020000 )
- ROM_LOAD( "s-5.bin", 0x0a0000, 0x020000, CRC(4bb0146a) SHA1(1e3c1739ea3c85296573426e55f25dce11f0ed2b) )
- ROM_CONTINUE( 0x1a0000, 0x020000 )
- ROM_LOAD( "s-6.bin", 0x0c0000, 0x020000, CRC(9f8f34ee) SHA1(60abb70ae87595ebae23df68d62f3b0ed4a2e768) )
- ROM_CONTINUE( 0x1c0000, 0x020000 ) // this half is 0
- ROM_LOAD( "s-7.bin", 0x0e0000, 0x020000, CRC(e077dd39) SHA1(a6f0881a026161710adc132bcf7cb95c4c8f2528) )
- ROM_CONTINUE( 0x1e0000, 0x020000 ) // this half is 0
-ROM_END
-
-ROM_START( blockcar )
- ROM_REGION( 0x040000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "u1.a1", 0x000000, 0x020000, CRC(4313fb00) SHA1(f5b9e212436282284fa344e1c4200bc38ca3c50a) )
- ROM_LOAD16_BYTE( "u4.a3", 0x000001, 0x020000, CRC(2237196d) SHA1(5a9d972fac94e62f026c36bca0c2f5fe8e0e1a1d) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "bl-chr-0.j3", 0x000000, 0x080000, CRC(a33300ca) SHA1(b0a7ccb77c3e8e33c12b83e254924f30209a4c2c) )
- ROM_LOAD( "bl-chr-1.l3", 0x080000, 0x080000, CRC(563de808) SHA1(40b2f9f4a4cb1a019f6419572ee21d66dda7d4af) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "bl-snd-0.a13", 0x000000, 0x080000, CRC(a92dabaf) SHA1(610c1dc0467753dfddaa4b27bc40cb118b0bc7a3) )
- ROM_RELOAD( 0x080000, 0x080000 )
-ROM_END
-
-ROM_START( blockcarb )
- ROM_REGION( 0x040000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "tl2.bin", 0x000000, 0x020000, CRC(049d0565) SHA1(4c4d2838336556aa486d8990d038f9ed9f021cfd) )
- ROM_LOAD16_BYTE( "tl1.bin", 0x000001, 0x020000, CRC(b0011882) SHA1(417d5d6d648cc121a1d26071806f14dc37930870) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "tl4.bin", 0x000000, 0x040000, CRC(6c4d53af) SHA1(69ed3b8374efd6f55c8ccf5f1db5c03a24cac9d6) )
- ROM_LOAD16_BYTE( "tl3.bin", 0x000001, 0x040000, CRC(bf4abe64) SHA1(78439f2f088b38c454cf3db7372175a5dc22b6a0) )
- ROM_LOAD16_BYTE( "tl6.bin", 0x080000, 0x040000, CRC(6d49fff2) SHA1(676de504be18ba0832000678846eb4527414a36d) )
- ROM_LOAD16_BYTE( "tl5.bin", 0x080001, 0x040000, CRC(9369e8dc) SHA1(645ae72a8b49ec43c26cdee5b6cb8cca5f46e542) )
-
- ROM_REGION( 0x100000, "oki", 0 ) /* 6295 samples */
- ROM_LOAD( "tl7.bin", 0x000000, 0x040000, CRC(41e899dc) SHA1(36c8161dcb68cdc312c7d1177dbcfb9b62b18f05) ) // == so2_09.12b mercs Mercs (World 900302)
-
- ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "tl8.bin", 0x000000, 0x010000, CRC(d09d7c7a) SHA1(8e8532be08818c855d9c3ce45716eb07cfab5767) ) //cpu prg
-ROM_END
-
-ROM_START( qzkklogy )
- ROM_REGION( 0x0c0000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "3.u27", 0x000000, 0x020000, CRC(b8c27cde) SHA1(4c36076801b6c915888b925c1e37d772bab1bb02) )
- ROM_LOAD16_BYTE( "1.u9", 0x000001, 0x020000, CRC(ce01cd54) SHA1(ef91aecdf7b5586a6870ff237372d65f85cd4cd3) )
- ROM_LOAD16_BYTE( "4.u33", 0x040000, 0x020000, CRC(4f5c554c) SHA1(0a10cefdf2dd876e6cb78023c3c15af24ba3c39a) )
- ROM_LOAD16_BYTE( "2.u17", 0x040001, 0x020000, CRC(65fa1b8d) SHA1(81fd7785f138a189de978fd30dbfca36687cda17) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "t2709u32.u32", 0x000000, 0x080000, CRC(900f196c) SHA1(b60741c3242ce56cb61ea68093b571489db0c6fa) ) // FIRST AND SECOND HALF IDENTICAL
- ROM_LOAD( "t2709u26.u26", 0x080000, 0x080000, CRC(416ac849) SHA1(3bd5dd13a8f2693e8f160a4ecfff3b7610644f5f) ) // FIRST AND SECOND HALF IDENTICAL
-
- ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_BYTE( "t2709u42.u39", 0x000000, 0x080000, CRC(194d5704) SHA1(ab2833f7427d0608850c158b813bc49935ac7d6d) )
- ROM_LOAD16_BYTE( "t2709u39.u42", 0x000001, 0x080000, CRC(6f95a76d) SHA1(925f5880fb5153c1215d1f5ee1eff5b53a84abea) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "t2709u47.u47", 0x000000, 0x080000, CRC(0ebdad40) SHA1(6558eeaac76d98d91b0be6faa78f531f1e3b9f84) )
- ROM_LOAD( "t2709u55.u55", 0x080000, 0x080000, CRC(43960c68) SHA1(9a1901b65f989aa57ab8736ef0be3bac492c081c) )
-ROM_END
-
-ROM_START( umanclub )
- ROM_REGION( 0x040000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "uw001006.u48", 0x000000, 0x020000, CRC(3dae1e9d) SHA1(91a738c299d134d198bad648383be87345f4f475) )
- ROM_LOAD16_BYTE( "uw001007.u49", 0x000001, 0x020000, CRC(5c21e702) SHA1(c69e9dd7dfac82f116885610f90878f865e629b3) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "bp-u-002.u2", 0x000000, 0x080000, CRC(936cbaaa) SHA1(f7932ee310eb792b2776ae8a9d29e1a492761b11) )
- ROM_LOAD( "bp-u-001.u1", 0x080000, 0x080000, CRC(87813c48) SHA1(7ec9b08fe0490d277c531e2b6394862df4d5678d) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "uw003.u13", 0x000000, 0x100000, CRC(e2f718eb) SHA1(fd085b68f76c8778816a1b7d47783b9dc20bff12) )
-ROM_END
-
-ROM_START( zingzip )
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "uy001001.3", 0x000000, 0x040000, CRC(1a1687ec) SHA1(c840752dd87d8c1c30e6b31452173148e20538b1) )
- ROM_LOAD16_BYTE( "uy001002.4", 0x000001, 0x040000, CRC(62e3b0c4) SHA1(51a27fbf68a142dd132157bed1dc22acda3fa044) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "uy001006.64", 0x000000, 0x080000, CRC(46e4a7d8) SHA1(2c829e52d9aead351702335bf06aa0f337528306) )
- ROM_LOAD( "uy001005.63", 0x080000, 0x080000, CRC(4aac128e) SHA1(3ac64c84a40f86e29e33a218babcd21cae6dbfdb) )
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD24_WORD_SWAP( "uy001008.66", 0x000001, 0x100000, CRC(1dff7c4b) SHA1(94f581f4aae1ef417dce6e62a611a523205e8c27) ) // FIRST AND SECOND HALF IDENTICAL
- ROM_LOAD24_BYTE ( "uy001007.65", 0x000000, 0x080000, CRC(ec5b3ab9) SHA1(e82fb050ae4e2486e43418fcb5fa726d92c5cd21) )
-
- ROM_REGION( 0x200000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD16_WORD_SWAP( "uy001010.68", 0x000000, 0x100000, CRC(bdbcdf03) SHA1(857f541697f76086ac6c761a3505678a3d3499df) ) // FIRST AND SECOND HALF IDENTICAL
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "uy001011.70", 0x000000, 0x100000, CRC(bd845f55) SHA1(345b79cfcd8c924d6ba365814286e518438f10bc) ) // uy001017 + uy001018
-ROM_END
-
-ROM_START( zingzipbl )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "prg9.bin", 0x000000, 0x040000, CRC(bf47a8cf) SHA1(87ef35c2dc4d25bbd90cd7528616d06362b20fc8) )
- ROM_LOAD16_BYTE( "prg10.bin", 0x000001, 0x040000, CRC(561501ba) SHA1(f9d488b6d6b313e543738905f11ebbc5f644eb09) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "17", 0x000000, 0x040000, CRC(2d59ce97) SHA1(c24f863057721bd568caff6d9e3b4abd235f92fc) )
- ROM_LOAD16_BYTE( "18", 0x000001, 0x040000, CRC(4e23144a) SHA1(1c4543687e693e7e9bf3a5790cb6e7458571964f) )
- ROM_LOAD16_BYTE( "19", 0x080000, 0x040000, CRC(101beade) SHA1(2a7261583eb7326fbb50aa48fe5f0bc50e7a5180) )
- ROM_LOAD16_BYTE( "20", 0x080001, 0x040000, CRC(ebff804d) SHA1(a0fc4ed6104cfc17c33697ff8ae75949c2e9945e) )
-
- ROM_REGION( 0x200000, "gfxtemp", 0 ) /* Layer 1 + 2 combined (4bpp data) */
- ROM_LOAD16_BYTE( "11", 0x000000, 0x080000, CRC(2f3b292d) SHA1(931abc0b7570b32e41a11555c9d55a67cfdcd1df) )
- ROM_LOAD16_BYTE( "12", 0x000001, 0x080000, CRC(b9d1cb25) SHA1(45cab6c2fb459f78ab9177f64e5c5039cbaa9e09) )
- ROM_LOAD16_BYTE( "13", 0x100000, 0x080000, CRC(cabc66d9) SHA1(cf1777eb95822cd705edf9b7e4b2d4d6e75f33cf) )
- ROM_LOAD16_BYTE( "14", 0x100001, 0x080000, CRC(fefad62f) SHA1(13aaf6cc6af4b42a1184f3fc6c07d9d966153dc1) )
-
- ROM_REGION( 0x180000, "gfx2", 0 ) /* Layer 1 */
- ROM_COPY( "gfxtemp", 0x000000, 0x000000, 0x80000 )
- ROM_COPY( "gfxtemp", 0x100000, 0x080000, 0x80000 )
- // 2bpp of extra planes for this layer
- ROM_LOAD16_BYTE( "15", 0x100000, 0x040000, CRC(af7a786f) SHA1(de67960f529ebfff0f1d55c79912685f9eca9623) )
- ROM_LOAD16_BYTE( "16", 0x100001, 0x040000, CRC(06dee8f3) SHA1(8c5f489e53bc10e2bad9f98445328e2ec0eac7d2) )
-
- ROM_REGION( 0x100000, "gfx3", 0 ) /* Layer 2 */
- ROM_COPY( "gfxtemp", 0x080000, 0x000000, 0x80000 )
- ROM_COPY( "gfxtemp", 0x180000, 0x080000, 0x80000 )
-
- ROM_REGION( 0x100000, "oki", 0 ) /* OKI Samples - Not Seta */
- ROM_LOAD( "8", 0x000000, 0x40000, CRC(7927a200) SHA1(fd6163d2867959ec14b418d6207ae024afd3b654) )
-ROM_END
-
-ROM_START( atehate )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "fs001001.evn", 0x000000, 0x080000, CRC(4af1f273) SHA1(79b28fe768aa634c31ee4e7687e62ebe78cf4014) )
- ROM_LOAD16_BYTE( "fs001002.odd", 0x000001, 0x080000, CRC(c7ca7a85) SHA1(1221f57d4aa3d2cb6662bc059978eafd65c1858f) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "fs001003.gfx", 0x000000, 0x200000, CRC(8b17e431) SHA1(643fc62d5bad9941630ab621ecb3c69ded9d4536) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "fs001004.pcm", 0x000000, 0x100000, CRC(f9344ce5) SHA1(cffbc235f3a8e9a5004e671d924affd321ec9eed) )
-ROM_END
-
-/*
-The changes between the set daioh and daioha are very minimal, the main game effects are:
-
- - Fixes the crashing bug in the US version caused by pressing Shot1 and Shot2 in weird orders and timings.
- - 1UP, and 2UPs no longer spawn "randomly". (Only the fixed extend items exist, and the 1UPs from score)
- - After picking up a max powerup, a 1UP or a 2UP, daoiha sets the "item timer" to a random value.
- daioh always sets it to 0x7F.
- - The powerups spawned from picking up an additional max powerup are no longer random, but feeds from the
- original "spawn item" function (thus, it advances the "item timer")
-
-So it's a bug fix version which also makes the game a little harder by limiting the spawning of 1ups
-*/
-
-ROM_START( daioh )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "fg001001.u3", 0x000000, 0x080000, CRC(e1ef3007) SHA1(864349efac3e3dc3ccdeb892fed285c73aea3997) )
- ROM_LOAD16_BYTE( "fg001002.u4", 0x000001, 0x080000, CRC(5e3481f9) SHA1(7585a7e56392fc2b13d466cf262383dd68d6d995) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "fg-001-004", 0x000000, 0x100000, CRC(9ab0533e) SHA1(b260ceb2b3e140971419329bee07a020171794f7) )
- ROM_LOAD( "fg-001-003", 0x100000, 0x100000, CRC(1c9d51e2) SHA1(1d6236ab28d11676386834fd6e405fd40198e924) )
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_WORD_SWAP( "fg-001-005", 0x000000, 0x200000, CRC(c25159b9) SHA1(4c9da3233223508389c3c0f277a00aedfc860da4) )
-
- ROM_REGION( 0x200000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD16_WORD_SWAP( "fg-001-006", 0x000000, 0x200000, CRC(2052c39a) SHA1(83a444a76e68aa711b0e25a5aa963ca876a6357e) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "fg-001-007", 0x000000, 0x100000, CRC(4a2fe9e0) SHA1(e55b6f301f842ff5d3c7a0041856695ac1d8a78f) )
-ROM_END
-
-ROM_START( daioha )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "fg-001-001.u3", 0x000000, 0x080000, CRC(104ae74a) SHA1(928c467e3ff98285a4828a927d851fcdf296849b) )
- ROM_LOAD16_BYTE( "fg-001-002.u4", 0x000001, 0x080000, CRC(e39a4e67) SHA1(c3f47e9d407f32dbfaf209d29b4446e4de8829a2) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "fg-001-004", 0x000000, 0x100000, CRC(9ab0533e) SHA1(b260ceb2b3e140971419329bee07a020171794f7) )
- ROM_LOAD( "fg-001-003", 0x100000, 0x100000, CRC(1c9d51e2) SHA1(1d6236ab28d11676386834fd6e405fd40198e924) )
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_WORD_SWAP( "fg-001-005", 0x000000, 0x200000, CRC(c25159b9) SHA1(4c9da3233223508389c3c0f277a00aedfc860da4) )
-
- ROM_REGION( 0x200000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD16_WORD_SWAP( "fg-001-006", 0x000000, 0x200000, CRC(2052c39a) SHA1(83a444a76e68aa711b0e25a5aa963ca876a6357e) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "fg-001-007", 0x000000, 0x100000, CRC(4a2fe9e0) SHA1(e55b6f301f842ff5d3c7a0041856695ac1d8a78f) )
-ROM_END
-
-ROM_START( daiohp ) /* Found on the same P0-072-2 PCB as the Blandia prototype */
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "prg_even.u3", 0x000000, 0x040000, CRC(3c97b976) SHA1(5850bf71b594a25f3e2de16f2933078c4a0dc518) )
- ROM_LOAD16_BYTE( "prg_odd.u4", 0x000001, 0x040000, CRC(aed2b87e) SHA1(d5b81614fbbda8a75418e69eb481e5adf38b4ebf) )
- ROM_LOAD16_BYTE( "data_even.u103", 0x100000, 0x040000, CRC(e07776ef) SHA1(5e75dd35fd8eae98182a9798a8b3eceb3e33b780) )
- ROM_LOAD16_BYTE( "data_odd.u102", 0x100001, 0x040000, CRC(b75b9a5c) SHA1(4c187105fe5253cc86862df1f3970fa45d4f7317) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "obj_1.u140", 0x000000, 0x040000, CRC(8ff6c5a9) SHA1(a2d188d44c8671282bf53f7927e099a212c0ed51) )
- ROM_LOAD16_BYTE( "obj_0.u142", 0x000001, 0x040000, CRC(78f45582) SHA1(021e635ba365558d9bf37a3b33b4c42b63119f0c) )
- ROM_LOAD16_BYTE( "obj_5.u141", 0x080000, 0x040000, CRC(6a671757) SHA1(aa6c2f916f1ca70514f1bb5754545171d8991456) )
- ROM_LOAD16_BYTE( "obj_4.u143", 0x080001, 0x040000, CRC(d387de72) SHA1(22f40a2daa98e52d6990aa52f9fde2cd66ad40d8) )
- ROM_LOAD16_BYTE( "obj_3.u144", 0x100000, 0x040000, CRC(d33ca640) SHA1(3d278cb46f2eabd03851ee470adfae5313988a27) )
- ROM_LOAD16_BYTE( "obj_2.u146", 0x100001, 0x040000, CRC(77560a03) SHA1(f766b56a88d49e4b41c9ed3c68e5478991033b5b) )
- ROM_LOAD16_BYTE( "obj_7.u145", 0x180000, 0x040000, CRC(e878ac92) SHA1(fc67cbefb050bfbc96f3350bb3d76bf0206e6553) )
- ROM_LOAD16_BYTE( "obj_6.u147", 0x180001, 0x040000, CRC(081f5fb1) SHA1(2fc6816704f7c42627ec47edd0e2ea88e7088101) )
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_BYTE( "bg1_0.u148", 0x000001, 0x080000, CRC(bec48d7a) SHA1(9fdcc8f461e48cb4244827bead980ad48acdfbd8) )
- ROM_LOAD16_BYTE( "bg1_1.u150", 0x000000, 0x080000, CRC(d5793a2f) SHA1(0623d51d405fde69622f1e15512fd8fc41209a59) )
- ROM_LOAD16_BYTE( "bg1_2.u149", 0x100001, 0x080000, CRC(5e674c30) SHA1(8f2e264df7d0b4f2a5a54d86dd0b3106d0ff7c15) )
- ROM_LOAD16_BYTE( "bg1_3.u151", 0x100000, 0x080000, CRC(6456fae1) SHA1(ce839e68342b62be61e29255ebdd8ddbd2b67a71) )
-
- ROM_REGION( 0x200000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD16_BYTE( "bg2_0.u164", 0x000001, 0x080000, CRC(7e46a10e) SHA1(a8576f7a140b065b88a0dab648f7b31c75fec006) )
- ROM_LOAD16_BYTE( "bg2_1.u166", 0x000000, 0x080000, CRC(9274123b) SHA1(b58e107a5bd222e454fd435d515e57cab52e6593) )
- ROM_LOAD16_BYTE( "bg2_2.u165", 0x100001, 0x080000, CRC(3119189b) SHA1(3a45ec8db30659d7fd47090cb137df05bbdc1c86) )
- ROM_LOAD16_BYTE( "bg2_3.u167", 0x100000, 0x080000, CRC(d3d68aa1) SHA1(14b0e4fd9bbdc2b6a99147dd6f6143d609d9110b) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "snd0.u156", 0x000000, 0x020000, CRC(4d253547) SHA1(87cda11dc86bc121cb8fb0e574006c3627158f51) )
- ROM_LOAD( "snd1.u157", 0x020000, 0x020000, CRC(79b56e22) SHA1(4b6c62e96dc1e8fb6dc0a76c505f9d805ef4684f) )
- ROM_LOAD( "snd2.u158", 0x040000, 0x020000, CRC(bc8de02a) SHA1(503c2c9f9ce029701e6a5b134d9407ab06e28913) )
- ROM_LOAD( "snd3.u159", 0x060000, 0x020000, CRC(939777fd) SHA1(3dd1b89a4f81f745c68037c568c885fe1403ed31) )
- ROM_LOAD( "snd4.u160", 0x080000, 0x020000, CRC(7b97716d) SHA1(6693e81dc008317c6a985558624f5d5cf00785e9) )
- ROM_LOAD( "snd5.u161", 0x0A0000, 0x020000, CRC(294e1cc9) SHA1(5faef5eb9f15c23686c2f66646c6f6724e7c611f) )
- ROM_LOAD( "snd6.u162", 0x0C0000, 0x020000, CRC(ecab073b) SHA1(f991fb9d9d4ffe24b67b233850ef0727dc6329b6) )
- ROM_LOAD( "snd7.u163", 0x0E0000, 0x020000, CRC(1b7ea768) SHA1(7dfa8cbcb839c76f3f9eefd6abbc2b424c3d970a) )
-
- ROM_REGION( 0xC00, "pals", 0 )
- ROM_LOAD( "con1x.u35", 0x000000, 0x104, CRC(ce8b57d9) SHA1(e433a8cee4f964123595f904170793e152290be1) )
- ROM_LOAD( "con2x.u36", 0x000200, 0x104, CRC(0b18db9e) SHA1(80e6aacb1455e15c6e665feaec8711070c14a901) )
- ROM_LOAD( "dec1x.u14", 0x000400, 0x104, CRC(d197abfe) SHA1(93f08d879c339ec00598383723912d7d0eab306c) )
- ROM_LOAD( "dec2x.u206", 0x000600, 0x104, CRC(35afbba8) SHA1(ce1cc0f75467a1ce6444250d741e70c2ed8d4c14) )
- ROM_LOAD( "pcon2.u110", 0x000800, 0x104, CRC(082882c2) SHA1(78385047ed8b1e2c11926c5ce8dea40450b0d0b0) )
- ROM_LOAD( "sc.u116", 0x000A00, 0x104, CRC(e57bfde9) SHA1(33632d007c8e48d756fc920985f82ae32dcd63e6) )
-ROM_END
-
-ROM_START( daiohc ) /* Found on a 93111A PCB - same PCB as War of Areo & J. J. Squawkers */
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "15.u3", 0x000000, 0x040000, CRC(14616abb) SHA1(1ff5331b0de60230baa4ced58bec6a954cb599d5) )
- ROM_CONTINUE ( 0x100000, 0x040000 )
- ROM_LOAD16_BYTE( "14.u4", 0x000001, 0x040000, CRC(a029f991) SHA1(5d341fe5b3ac3bdda1d8e7cc8e6a260f04d00aa1) )
- ROM_CONTINUE ( 0x100001, 0x040000 )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "9.u9", 0x000000, 0x080000, CRC(4444cbd4) SHA1(e039cd7e7093d399bc39aa4d355a03250e087fb3) ) /* connects to U63 & U64 through a riser card */
- ROM_LOAD( "10.u10", 0x080000, 0x080000, CRC(1d88d20b) SHA1(3cf95041d0876a4ef378651783e53cee1994ed3d) )
- ROM_LOAD( "11.u11", 0x100000, 0x080000, CRC(3e41de61) SHA1(7d3ddf3780bbe99b13937d75cbdbfb58449301a6) )
- ROM_LOAD( "12.u12", 0x180000, 0x080000, CRC(f35e3341) SHA1(9260460e1823d157201de02557c7136ef898cfb3) )
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_WORD_SWAP( "5.u5", 0x000000, 0x080000, CRC(aaa5e41e) SHA1(fe362ec083cb13732ea07003a4a1a9c63d382f4b) ) /* connects to U66 through a riser card */
- ROM_LOAD16_WORD_SWAP( "6.u6", 0x080000, 0x080000, CRC(9ad8b4b4) SHA1(b6e4cff160ae0efe6f3fd0df9a8a618957c3ce61) )
- ROM_LOAD16_WORD_SWAP( "7.u7", 0x100000, 0x080000, CRC(babf194a) SHA1(ef838aab2d651c10553fb87552c67f289a8ac83d) )
- ROM_LOAD16_WORD_SWAP( "8.u8", 0x180000, 0x080000, CRC(2db65290) SHA1(4f4d65e984fad7bb1d886de67bc50645798282bb) )
-
- ROM_REGION( 0x200000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD16_WORD_SWAP( "1.u1", 0x000000, 0x080000, CRC(30f81f99) SHA1(9c164c798c7e869e92505d9d85f06f4a1c9a9528) ) /* connects to U68 through a riser card */
- ROM_LOAD16_WORD_SWAP( "2.u2", 0x080000, 0x080000, CRC(3b3e0f4e) SHA1(740afe4eefea480f941dd80a03392592d8d4b084) )
- ROM_LOAD16_WORD_SWAP( "3.u3", 0x100000, 0x080000, CRC(c5eef1c1) SHA1(d4b3188b39bad5c7a2c7b7dbc91a79c7ee80a3a1) )
- ROM_LOAD16_WORD_SWAP( "4.u4", 0x180000, 0x080000, CRC(851115b6) SHA1(b8e1e22231d131085c90afcf30ff35a2866edff5) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "data.u69", 0x000000, 0x080000, CRC(21e4f093) SHA1(f0420d158dc5d182e41b6fb2ea3af6baf88bacb8) )
- ROM_LOAD( "data.u70", 0x080000, 0x080000, CRC(593c3c58) SHA1(475fb530a6d23269cb0aea6e294291c7463b57a2) )
-
- ROM_REGION( 0x200, "gals", 0 )
- ROM_LOAD( "gal.u14", 0x000000, 0x117, CRC(b972b479) SHA1(50da73b4cc7b9c0ff8fb19b2c34d05a4dbc8f0cb) )
-ROM_END
-
-ROM_START( msgundam )
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_WORD_SWAP( "fa003002.u25", 0x000000, 0x080000, CRC(1cc72d4c) SHA1(5043d693b5a8116a077d5b6997b658cb287e2aa7) )
- ROM_LOAD16_WORD_SWAP( "fa001001.u20", 0x100000, 0x100000, CRC(fca139d0) SHA1(b56282c69f7ec64c697a48e42d59a2565401c032) )
-
- ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "fa001008.u21", 0x000000, 0x200000, CRC(e7accf48) SHA1(dca9d53bc9cf0ecb661358d5a3f388c4ce9388e7) )
- ROM_LOAD( "fa001007.u22", 0x200000, 0x200000, CRC(793198a6) SHA1(45f53870e74b14126680d18dd58dbbe01a6ef509) )
-
- ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_WORD_SWAP( "fa001006.u23", 0x000000, 0x100000, CRC(3b60365c) SHA1(bdf5a0b1b45eb75dbbb6725d1e5303716321aeb9) )
-
- ROM_REGION( 0x080000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD16_WORD_SWAP( "fa001005.u24", 0x000000, 0x080000, CRC(8cd7ff86) SHA1(ce7eb90776e21239f8f52e822c636143506c6f9b) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "fa001004.u26", 0x000000, 0x100000, CRC(b965f07c) SHA1(ff7827cc80655465ffbb732d55ba81f21f51a5ca) )
-ROM_END
-
-ROM_START( msgundam1 )
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_WORD_SWAP( "fa002002.u25", 0x000000, 0x080000, CRC(dee3b083) SHA1(e2ad626aa0109906846dd9e9053ffc83b7bf4d2e) )
- ROM_LOAD16_WORD_SWAP( "fa001001.u20", 0x100000, 0x100000, CRC(fca139d0) SHA1(b56282c69f7ec64c697a48e42d59a2565401c032) )
-
- ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "fa001008.u21", 0x000000, 0x200000, CRC(e7accf48) SHA1(dca9d53bc9cf0ecb661358d5a3f388c4ce9388e7) )
- ROM_LOAD( "fa001007.u22", 0x200000, 0x200000, CRC(793198a6) SHA1(45f53870e74b14126680d18dd58dbbe01a6ef509) )
-
- ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_WORD_SWAP( "fa001006.u23", 0x000000, 0x100000, CRC(3b60365c) SHA1(bdf5a0b1b45eb75dbbb6725d1e5303716321aeb9) )
-
- ROM_REGION( 0x080000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD16_WORD_SWAP( "fa001005.u24", 0x000000, 0x080000, CRC(8cd7ff86) SHA1(ce7eb90776e21239f8f52e822c636143506c6f9b) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "fa001004.u26", 0x000000, 0x100000, CRC(b965f07c) SHA1(ff7827cc80655465ffbb732d55ba81f21f51a5ca) )
-ROM_END
-
-ROM_START( msgundamb ) // 2 PCB stack, one has a 'Tecnoval - tecnologia valenciana del recreativo' sticker
- ROM_REGION( 0x300000, "maincpu", 0 ) /* 68000 Code, on lower board */
- ROM_LOAD16_BYTE( "d-4.bin", 0x000000, 0x040000, CRC(ca5bfa89) SHA1(108435cb65919b4b90be102e7ac2799501149fc8) ) // 27c020
- ROM_LOAD16_BYTE( "d-2.bin", 0x000001, 0x040000, CRC(b4b86d1b) SHA1(d9b625cfdabcabed9308fccc29c66adfe566a996) ) // 27c020
- ROM_LOAD16_BYTE( "27c8001-7.bin", 0x100000, 0x100000, CRC(803f279c) SHA1(1095ac434ce553ed56d106556e7d23ccac1f0cd4) ) // 1ST AND 2ND HALF IDENTICAL
- ROM_LOAD16_BYTE( "27c8001-8.bin", 0x100001, 0x100000, CRC(a310fa93) SHA1(2ee1616699c95ed2b8c46d43de4cffece1b033ea) ) // 1ST AND 2ND HALF IDENTICAL
-
- ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites, on top board, almost identical to the original but split */
- ROM_LOAD16_BYTE( "27c8001-3.bin", 0x000000, 0x100000, CRC(9f36d867) SHA1(01a15dcdcb1077d7c8678762f58ad705dc29e8c9) )
- ROM_LOAD16_BYTE( "27c8001-2.bin", 0x000001, 0x100000, CRC(70d333d9) SHA1(9ef3b0e0567ceed082921a5c384cfcfeb154f048) )
- ROM_LOAD16_BYTE( "27c8001-1.bin", 0x200000, 0x100000, CRC(2792692c) SHA1(ed99c589ed15f8c1a4e2ab435a379b35105ba503) )
- ROM_LOAD16_BYTE( "4.bin", 0x200001, 0x080000, CRC(eb551f1a) SHA1(e9d2fc31c3076164c5ee9722ea1b1e60b4f6d663) ) // mx27c4000
- ROM_LOAD16_BYTE( "5.bin", 0x300001, 0x080000, CRC(e9aa57e8) SHA1(699c0132f4be81570f748e5ca2f88fc4fc6802bb) ) // mx27c4000
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* Layer 1, on lower board */
- ROM_LOAD16_BYTE( "27c8001-5.bin", 0x000000, 0x100000, CRC(c83ae34a) SHA1(d7bf49843c443c5b7cb9187404a3518eaed577a6) ) // 1ST AND 2ND HALF IDENTICAL, fa001006.u23 [odd] IDENTICAL
- ROM_LOAD16_BYTE( "27c8001-6.bin", 0x000001, 0x100000, CRC(8fbb5478) SHA1(247fd080f0ee18282c4d8b918171cfeab4b40d23) ) // 1ST AND 2ND HALF IDENTICAL, fa001006.u23 [even] IDENTICAL
-
- ROM_REGION( 0x080000, "gfx3", 0 ) /* Layer 2, on lower board, identical to the original but split */
- ROM_LOAD16_BYTE( "d-8.bin", 0x000001, 0x040000, CRC(a03c8345) SHA1(d3c3f0045ebb3d82d82432c212db4a801cb53b60) ) // 27c020
- ROM_LOAD16_BYTE( "d-9.bin", 0x000000, 0x040000, CRC(cfd47024) SHA1(ab4fbaf258d2694407dd6c896f45d69821ccc408) ) // 27c020
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples, on lower board */
- ROM_LOAD( "27c8001-4.bin", 0x000000, 0x100000, CRC(b965f07c) SHA1(ff7827cc80655465ffbb732d55ba81f21f51a5ca) ) // identical to the original
-ROM_END
-
-ROM_START( oisipuzl )
- ROM_REGION( 0x180000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_WORD_SWAP( "ss1u200.v10", 0x000000, 0x080000, CRC(f5e53baf) SHA1(057e8b35bc6f65634685b5d0cf38e12f2e62d72c) )
- /* Gap of 0x80000 bytes */
- ROM_LOAD16_WORD_SWAP( "ss1u201.v10", 0x100000, 0x080000, CRC(7a7ff5ae) SHA1(9e4da7ecc4d833c3ba4ddc6e5870fad53b9b2d2b) )
-
- ROM_REGION( 0x200000, "gfx1", ROMREGION_INVERT ) /* Sprites */
- ROM_LOAD( "ss1u306.v10", 0x000000, 0x080000, CRC(ce43a754) SHA1(3991042678badafee716b084c1768a794f144b1e) )
- ROM_LOAD( "ss1u307.v10", 0x080000, 0x080000, CRC(2170b7ec) SHA1(c9f3d12646d4e877bc2b656f977e21d927f241f6) )
- ROM_LOAD( "ss1u304.v10", 0x100000, 0x080000, CRC(546ab541) SHA1(aa96a79e3b0ba71f5e0fbb15e190d219630c2ba3) )
- ROM_LOAD( "ss1u305.v10", 0x180000, 0x080000, CRC(2a33e08b) SHA1(780cfe44a4d57b254bd0cfae8727dc77358027a8) )
-
- ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_WORD_SWAP( "ss1u23.v10", 0x000000, 0x080000, CRC(9fa60901) SHA1(3d42e4174ad566b6eeb488c7a4c51db9c1fef7af) )
- ROM_LOAD16_WORD_SWAP( "ss1u24.v10", 0x080000, 0x080000, CRC(c10eb4b3) SHA1(70a82a750b1d9c849cd92d4f73769bbf5962c771) )
-
- ROM_REGION( 0x080000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD16_WORD_SWAP( "ss1u25.v10", 0x000000, 0x080000, CRC(56840728) SHA1(db61539fd84f0de35ee2077238ba3646c4960cc6) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "ss1u26.v10", 0x000000, 0x080000, CRC(d452336b) SHA1(d3bf3cb383c40911758a60546f121c48087868e3) )
- ROM_LOAD( "ss1u27.v10", 0x080000, 0x080000, CRC(17fe921d) SHA1(7fc176b8eefad4f2b8532bfe62e7852d2be185ca) )
-ROM_END
-
-ROM_START( triplfun ) /* the program fails its self-check but thats probably because its a bootleg, it does the same on the real board */
- ROM_REGION( 0x180000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "05.bin", 0x000000, 0x40000, CRC(06eb3821) SHA1(51c67c87b5c28e693dfffd32d25cdb6d2a9448cf) )
- ROM_CONTINUE(0x100000,0x40000)
- ROM_LOAD16_BYTE( "04.bin", 0x000001, 0x40000, CRC(37a5c46e) SHA1(80b49b422a7db64d9ba5896da2b01a4588a6cf62) )
- ROM_CONTINUE(0x100001,0x40000)
-
- ROM_REGION( 0x200000, "gfx1", 0 )
- ROM_LOAD16_BYTE( "08.bin", 0x000001, 0x80000, CRC(63a8f10f) SHA1(0a045d559b9edc9f335e6ec2d214d70c4959ec50) )
- ROM_LOAD16_BYTE( "09.bin", 0x000000, 0x80000, CRC(98cc8ca5) SHA1(1bd9d2d860e02ee4fea3d9592172690cb9d3acf2) )
- ROM_LOAD16_BYTE( "10.bin", 0x100001, 0x80000, CRC(20b0f282) SHA1(c98de63c1ad9dfe9b24f55966ccc5392c5ae82ba) )
- ROM_LOAD16_BYTE( "11.bin", 0x100000, 0x80000, CRC(276ef724) SHA1(e0c642dfd19542234abb0de68a66f8c36d9cb827) )
-
- ROM_REGION( 0x100000, "gfx2", 0 )
- ROM_LOAD16_BYTE( "02.bin", 0x000001, 0x80000, CRC(4c0d1068) SHA1(cb77309474938765fd0582ab132f19fb5e21fca3) )
- ROM_LOAD16_BYTE( "03.bin", 0x000000, 0x80000, CRC(dba94e18) SHA1(3f54d874287e4ab96b2791503235488164d90cb1) )
-
- ROM_REGION( 0x80000, "gfx3", 0 )
- ROM_LOAD16_BYTE( "06.bin", 0x000001, 0x40000, CRC(8944bb72) SHA1(37cd0e2c8e99fb23ea70dc183a8aa0670c5f6b65) )
- ROM_LOAD16_BYTE( "07.bin", 0x000000, 0x40000, CRC(934a5d91) SHA1(aa19d2699b5ebdd99d59004005b0ce0c5140d192) )
-
- ROM_REGION( 0x40000, "oki", 0 )
- ROM_LOAD( "01.bin", 0x000000, 0x40000, CRC(c186a930) SHA1(e17e1a620e380f0737b80c7f160ad643979b2799) )
-ROM_END
-
-ROM_START( qzkklgy2 )
- ROM_REGION( 0x0c0000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_WORD_SWAP( "fn001001.106", 0x000000, 0x080000, CRC(7bf8eb17) SHA1(f2d1666e22f564d59b37ca00c8db34ca822fd142) )
- ROM_LOAD16_WORD_SWAP( "fn001003.107", 0x080000, 0x040000, CRC(ee6ef111) SHA1(6d9efac46ba01fff8784034801cba10e38b2c923) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "fn001004.100", 0x000000, 0x100000, CRC(5ba139a2) SHA1(24fe19a7e5d2cd53bf3b1c71bf05020067f5e956) )
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_WORD_SWAP( "fn001005.104", 0x000000, 0x200000, CRC(95726a63) SHA1(e53ffc2815c4858bbfb5ff452c581bccb41854c9) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "fn001006.105", 0x000000, 0x100000, CRC(83f201e6) SHA1(536e74788ad0e07451300a1ad3b127bc9d2d9063) )
-ROM_END
-
-ROM_START( wrofaero )
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "u3.bin", 0x000000, 0x040000, CRC(9b896a97) SHA1(f4e768911705e6def5dc4a43cfc4146c48c80caf) )
- ROM_LOAD16_BYTE( "u4.bin", 0x000001, 0x040000, CRC(dda84846) SHA1(50142692e13190900bc752908b105b65c48ea911) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "u64.bin", 0x000000, 0x080000, CRC(f06ccd78) SHA1(1701bdac2c826327441cfe0039b4cadf8f3a4803) )
- ROM_LOAD( "u63.bin", 0x080000, 0x080000, CRC(2a602a1b) SHA1(b04fa743200d62bc25a6aa34efae53209f185f79) )
-
- ROM_REGION( 0x080000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_WORD_SWAP( "u66.bin", 0x000000, 0x080000, CRC(c9fc6a0c) SHA1(85ac0726221e3fedd80bd9b426d61471eb20ce46) )
-
- ROM_REGION( 0x080000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD16_WORD_SWAP( "u68.bin", 0x000000, 0x080000, CRC(25c0c483) SHA1(2e705e7f0c66c3bc73e78ffb526606ab8be61d99) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "u69.bin", 0x000000, 0x080000, CRC(957ecd41) SHA1(3b37ba44b8b8f0f0de41c8c26c3dfdb391ba572c) )
- ROM_LOAD( "u70.bin", 0x080000, 0x080000, CRC(8d756fdf) SHA1(d66712a6aa19252f2c915ac66fc27df031fa9512) )
-ROM_END
-
-ROM_START( jjsquawk ) /* PCB stickered J.J. SQUAWKERS 9401- 1022 */
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "fe2002001.u3", 0x000000, 0x040000, CRC(7b9af960) SHA1(1718d54b0c12ae148de44f9ccccf90c0182f7b4f) )
- ROM_CONTINUE ( 0x100000, 0x040000 )
- ROM_LOAD16_BYTE( "fe2002002.u4", 0x000001, 0x040000, CRC(47dd71a3) SHA1(e219d984a1cac484ce1e570b7849562a88e0903e) )
- ROM_CONTINUE ( 0x100001, 0x040000 )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "fe2001009", 0x000000, 0x080000, CRC(27441cd3) SHA1(5867fc30c158e07f2d36ecab97b1d304383e6f35) ) /* These roms located on a plug-in PCB */
- ROM_LOAD( "fe2001010", 0x080000, 0x080000, CRC(ca2b42c4) SHA1(9b99b6618fe44a6c29a255e89dab72a0a56214df) )
- ROM_LOAD( "fe2001007", 0x100000, 0x080000, CRC(62c45658) SHA1(82b1ea138e8f4b4ade7e44b31843aa2023c9dd71) )
- ROM_LOAD( "fe2001008", 0x180000, 0x080000, CRC(2690c57b) SHA1(b880ded7715dffe12c4fea7ad7cb9c5133b73250) )
-
- ROM_REGION( 0x180000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD24_WORD_SWAP( "fe2001011", 0x000001, 0x080000, CRC(98b9f4b4) SHA1(de96708aebb428ddc413c3649caaec80c0c155bd) ) /* This rom located on a plug-in PCB */
- ROM_LOAD24_WORD_SWAP( "fe2001012", 0x0c0001, 0x080000, CRC(d4aa916c) SHA1(d619d20c33f16ab06b529fc1717ad9b703acbabf) ) /* This rom located on a plug-in PCB */
- ROM_LOAD24_BYTE ( "fe2001003", 0x000000, 0x080000, CRC(a5a35caf) SHA1(da4bdb7f0b319f8ff972a552d0134a73e5ac1b87) )
-
- ROM_REGION( 0x180000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD24_WORD_SWAP( "fe2001014", 0x000001, 0x080000, CRC(274bbb48) SHA1(b8db632a9bbb7232d0b1debd67b3b453fd4989e6) ) /* This rom located on a plug-in PCB */
- ROM_LOAD24_WORD_SWAP( "fe2001013", 0x0c0001, 0x080000, CRC(51e29871) SHA1(9d33283bd9a3f57602a55cfc9fafa49edd0be8c5) ) /* This rom located on a plug-in PCB */
- ROM_LOAD24_BYTE ( "fe2001004", 0x000000, 0x080000, CRC(a235488e) SHA1(a45d02a4451defbef7fbdab15671955fab8ed76b) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "fe2001005.u69", 0x000000, 0x080000, CRC(d99f2879) SHA1(66e83a6bc9093d19c72bd8ef1ec0523cfe218250) )
- ROM_LOAD( "fe2001006.u70", 0x080000, 0x080000, CRC(9df1e478) SHA1(f41b55821187b417ad09e4a1f439c01a107d2674) )
-ROM_END
-
-ROM_START( jjsquawko ) /* Official 93111A PCB missing version sticker */
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "fe2001001.u3", 0x000000, 0x040000, CRC(921c9762) SHA1(bbc1fb95256f7eb2aa7ad23f38dbcdf502e7da8d) )
- ROM_CONTINUE ( 0x100000, 0x040000 )
- ROM_LOAD16_BYTE( "fe2001002.u4", 0x000001, 0x040000, CRC(0227a2be) SHA1(8ee0c39f84110865778564f803b4db11bfdfbad7) )
- ROM_CONTINUE ( 0x100001, 0x040000 )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "fe2001009", 0x000000, 0x080000, CRC(27441cd3) SHA1(5867fc30c158e07f2d36ecab97b1d304383e6f35) ) /* These roms located on a plug-in PCB */
- ROM_LOAD( "fe2001010", 0x080000, 0x080000, CRC(ca2b42c4) SHA1(9b99b6618fe44a6c29a255e89dab72a0a56214df) )
- ROM_LOAD( "fe2001007", 0x100000, 0x080000, CRC(62c45658) SHA1(82b1ea138e8f4b4ade7e44b31843aa2023c9dd71) )
- ROM_LOAD( "fe2001008", 0x180000, 0x080000, CRC(2690c57b) SHA1(b880ded7715dffe12c4fea7ad7cb9c5133b73250) )
-
- ROM_REGION( 0x180000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD24_WORD_SWAP( "fe2001011", 0x000001, 0x080000, CRC(98b9f4b4) SHA1(de96708aebb428ddc413c3649caaec80c0c155bd) ) /* This rom located on a plug-in PCB */
- ROM_LOAD24_WORD_SWAP( "fe2001012", 0x0c0001, 0x080000, CRC(d4aa916c) SHA1(d619d20c33f16ab06b529fc1717ad9b703acbabf) ) /* This rom located on a plug-in PCB */
- ROM_LOAD24_BYTE ( "fe2001003", 0x000000, 0x080000, CRC(a5a35caf) SHA1(da4bdb7f0b319f8ff972a552d0134a73e5ac1b87) )
-
- ROM_REGION( 0x180000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD24_WORD_SWAP( "fe2001014", 0x000001, 0x080000, CRC(274bbb48) SHA1(b8db632a9bbb7232d0b1debd67b3b453fd4989e6) ) /* This rom located on a plug-in PCB */
- ROM_LOAD24_WORD_SWAP( "fe2001013", 0x0c0001, 0x080000, CRC(51e29871) SHA1(9d33283bd9a3f57602a55cfc9fafa49edd0be8c5) ) /* This rom located on a plug-in PCB */
- ROM_LOAD24_BYTE ( "fe2001004", 0x000000, 0x080000, CRC(a235488e) SHA1(a45d02a4451defbef7fbdab15671955fab8ed76b) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "fe2001005.u69", 0x000000, 0x080000, CRC(d99f2879) SHA1(66e83a6bc9093d19c72bd8ef1ec0523cfe218250) )
- ROM_LOAD( "fe2001006.u70", 0x080000, 0x080000, CRC(9df1e478) SHA1(f41b55821187b417ad09e4a1f439c01a107d2674) )
-ROM_END
-
-ROM_START( jjsquawkb )
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_WORD_SWAP( "3", 0x000000, 0x080000, CRC(afd5bd07) SHA1(eee231f596ce5cb9bbf41c7c9e18c11a399d7dfd) )
- ROM_LOAD16_WORD_SWAP( "2", 0x100000, 0x080000, CRC(740a7366) SHA1(2539f9a9b4fed1a1e2c354d144b8d455ed4bc144) )
-
- ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "4.bin", 0x000000, 0x200000, CRC(969502f7) SHA1(d6cecb38e8b73c61537cc1bdc843fc7cd695c771) ) // sldh
- ROM_LOAD( "2.bin", 0x200000, 0x200000, CRC(765253d1) SHA1(4cbc6f093c87280ef9c17fecfc319cb780d755cc) ) // sldh
-
- ROM_REGION( 0x400000, "gfxtemp", 0 )
- ROM_LOAD( "3.bin", 0x000000, 0x200000, CRC(b1e3a4bb) SHA1(be2241a4fbb99444487e7b550faac4ee1ee1ad15) ) // sldh
- ROM_LOAD( "1.bin", 0x200000, 0x200000, CRC(a5d37cf7) SHA1(9573777f3cdd6b25f0bd56f65f583fddda21c900) ) // sldh
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* Layer 1 */
- ROM_COPY( "gfxtemp", 0x000000, 0x000000, 0x100000 )
- ROM_COPY( "gfxtemp", 0x200000, 0x100000, 0x100000 )
-
- ROM_REGION( 0x200000, "gfx3", 0 ) /* Layer 2 */
- ROM_COPY( "gfxtemp", 0x100000, 0x000000, 0x100000 )
- ROM_COPY( "gfxtemp", 0x300000, 0x100000, 0x100000 )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "1", 0x000000, 0x100000, CRC(181a55b8) SHA1(6fa404f85bad93cc15e80feb61d19bed84602b82) ) /* fe2001005.u69 + fe2001006.u70 from jjsquawk */
-ROM_END
-
-ROM_START( jjsquawkb2 ) /* PCB was P0-078A, which was a Blandia board converted to JJ Squawkers. No labels on any of the ROMs. Apparently based on jjsquawko set. */
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "u3.3a", 0x000000, 0x040000, CRC(f94c913b) SHA1(de6e422c514c787897f8f41d7cd98acb0135c763) ) // 99.999619%
- ROM_CONTINUE ( 0x100000, 0x040000 )
- ROM_LOAD16_BYTE( "u4.4a", 0x000001, 0x040000, CRC(0227a2be) SHA1(8ee0c39f84110865778564f803b4db11bfdfbad7) ) // 99.999809%
- ROM_CONTINUE ( 0x100001, 0x040000 )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "u64.3l", 0x000000, 0x100000, CRC(11d8713a) SHA1(8e3359f605913625191ac0a09222ec465b5fea71) ) /* fe2001009 + fe2001010 from jjsquawk */
- ROM_LOAD( "u63.2l", 0x100000, 0x100000, CRC(7a385ef0) SHA1(d38e2242532074b58707783608a6ddce42c55a77) ) /* fe2001007 + fe2001008 from jjsquawk */
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD24_WORD_SWAP( "u66.5l", 0x000001, 0x100000, CRC(bbaf40c5) SHA1(aecd48176adbe79e76c8febca1d9bb95ff0d6912) ) /* fe2001011 + fe2001012 from jjsquawk */
- ROM_LOAD24_BYTE ( "u65.4l", 0x000000, 0x080000, CRC(a5a35caf) SHA1(da4bdb7f0b319f8ff972a552d0134a73e5ac1b87) ) /* fe2001003 from jjsquawk */
-
- ROM_REGION( 0x200000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD24_WORD_SWAP( "u68.7l", 0x000001, 0x100000, CRC(ae9ae01f) SHA1(1a828d5b8848c5b5d8e5f279f1fde26b972a6332) ) /* fe2001014 + fe2001013 from jjsquawk */
- ROM_LOAD24_BYTE ( "u67.6l", 0x000000, 0x080000, CRC(a235488e) SHA1(a45d02a4451defbef7fbdab15671955fab8ed76b) ) /* fe2001004 from jjsquawk */
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "u70.10l", 0x000000, 0x100000, CRC(181a55b8) SHA1(6fa404f85bad93cc15e80feb61d19bed84602b82) ) /* fe2001005.u69 + fe2001006.u70 from jjsquawk */
-ROM_END
-
-ROM_START( simpsonjr ) /* bootleg of J. J. Squawkers by Daigom */
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_WORD_SWAP( "4.bin", 0x000000, 0x080000, CRC(469cc203) SHA1(4ecd8dce936f24acb149ef2fdf34595bd4a20a74) ) // sldh
- ROM_LOAD16_WORD_SWAP( "3.bin", 0x100000, 0x080000, CRC(740a7366) SHA1(2539f9a9b4fed1a1e2c354d144b8d455ed4bc144) ) // sldh
-
- ROM_REGION( 0x800000, "gfxtemp", 0 )
- ROM_LOAD( "5.bin", 0x000000, 0x400000, CRC(82952780) SHA1(83b61c726dd102491fe338036531f7653b0edefc) )
- ROM_LOAD( "6.bin", 0x400000, 0x400000, CRC(5a22bb87) SHA1(e5f91af685eb9331c5f00d81eca6dca177a9c860) )
-
- ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprites */
- ROM_COPY( "gfxtemp", 0x600000, 0x000000, 0x200000 )
- ROM_COPY( "gfxtemp", 0x200000, 0x200000, 0x200000 )
-
- ROM_REGION( 0x200000, "gfx2", 0 ) /* Layer 1 */
- ROM_COPY( "gfxtemp", 0x400000, 0x000000, 0x100000 )
- ROM_COPY( "gfxtemp", 0x000000, 0x100000, 0x100000 )
-
- ROM_REGION( 0x200000, "gfx3", 0 ) /* Layer 2 */
- ROM_COPY( "gfxtemp", 0x500000, 0x000000, 0x100000 )
- ROM_COPY( "gfxtemp", 0x100000, 0x100000, 0x100000 )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "1.bin", 0x000000, 0x080000, CRC(d99f2879) SHA1(66e83a6bc9093d19c72bd8ef1ec0523cfe218250) ) // sldh
- ROM_LOAD( "2.bin", 0x080000, 0x080000, CRC(9df1e478) SHA1(f41b55821187b417ad09e4a1f439c01a107d2674) ) // sldh
-ROM_END
-
-ROM_START( kamenrid )
- ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_WORD_SWAP( "fj001003.25", 0x000000, 0x080000, CRC(9b65d1b9) SHA1(a9183f817dbd1721cbb1a9049ca2bfc6acdf9f4a) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "fj001005.21", 0x000000, 0x100000, CRC(5d031333) SHA1(7b603e7e79c9439b526687021c0be4a5965b4c11) )
- ROM_LOAD( "fj001006.22", 0x100000, 0x100000, CRC(cf28eb78) SHA1(b1b34e0e50b5d54ff3cff908c579031a326890a2) )
-
- ROM_REGION( 0x80000, "user1", 0 ) /* Layers 1+2 */
- ROM_LOAD16_WORD_SWAP( "fj001007.152", 0x000000, 0x080000, CRC(d9ffe80b) SHA1(c1f919b53cd1b9874a5e5dc5640891e1b227cfc6) )
-
- ROM_REGION( 0x40000, "gfx2", 0 ) /* Layer 1 */
- ROM_COPY( "user1", 0x000000, 0x000000, 0x040000 )
-
- ROM_REGION( 0x40000, "gfx3", 0 ) /* Layer 2 */
- ROM_COPY( "user1", 0x040000, 0x000000, 0x040000 )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "fj001008.26", 0x000000, 0x100000, CRC(45e2b329) SHA1(8526afae1aa9178570c906eb96438f174d174f4d) )
-ROM_END
-
-ROM_START( eightfrc )
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "uy2-u4.u3", 0x000000, 0x040000, CRC(f1f249c5) SHA1(5277b7a15934e60e0ca305c318fb02d0ffb99d42) )
- ROM_LOAD16_BYTE( "uy2-u3.u4", 0x000001, 0x040000, CRC(6f2d8618) SHA1(ea243e6064b76bc5d6e831362ac9611a48ac94a7) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "u64.bin", 0x000000, 0x080000, CRC(f561ff2e) SHA1(1ed78c90bf876f24c2859a73a71764189cebddbe) )
- ROM_LOAD( "u63.bin", 0x080000, 0x080000, CRC(4c3f8366) SHA1(b25a27a67ae828d8fcf2c8d9d373ebdaacce9c4e) )
-
- ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_WORD_SWAP( "u66.bin", 0x000000, 0x100000, CRC(6fad2b7f) SHA1(469d185dc942bd4b54babf1d528e0e420f31d88b) )
-
- ROM_REGION( 0x100000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD16_WORD_SWAP( "u68.bin", 0x000000, 0x100000, CRC(c17aad22) SHA1(eabbae2142cad3eef6a94d542ea03221c8228e94) )
-
- ROM_REGION( 0x200000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "u70.bin", 0x000000, 0x100000, CRC(dfdb67a3) SHA1(0fed6fb498dcfc1276facd0ecd2dfde45ff671f2) )
- ROM_LOAD( "u69.bin", 0x100000, 0x100000, CRC(82ec08f1) SHA1(f17300d3cf990ef5c11056fd922f8cae0b2c918f) )
-ROM_END
-
-ROM_START( kiwame )
- ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "fp001001.bin", 0x000000, 0x040000, CRC(31b17e39) SHA1(4f001bf365d6c259ac8a13894e207a44c15e1d8b) )
- ROM_LOAD16_BYTE( "fp001002.bin", 0x000001, 0x040000, CRC(5a6e2efb) SHA1(a3b2ecfb5b91c6013370b359f89db0da8f120ad9) )
-
- ROM_REGION( 0x080000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "fp001003.bin", 0x000000, 0x080000, CRC(0f904421) SHA1(de5810746cfab1a4a7d1b055b1a97bc7fbc173dd) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "fp001006.bin", 0x000000, 0x080000, CRC(96cf395d) SHA1(877b291598e3a42e5003b2f50a16d162348ce72d) )
- ROM_LOAD( "fp001005.bin", 0x080000, 0x080000, CRC(65b5fe9a) SHA1(35605be00c7c455551d18386fcb5ad013aa2907e) )
-
- // default NVRAM, avoids "BACKUP RAM ERROR" at boot (useful for inp record/playback)
- ROM_REGION( 0x10000, "nvram", 0 )
- ROM_LOAD( "nvram.bin", 0, 0x10000, CRC(1f719400) SHA1(c63bbe5d3a0a917f74c1bd5e57cd44389e4e645c) )
-ROM_END
-
-ROM_START( krzybowl )
- ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "fv001.002", 0x000000, 0x040000, CRC(8c03c75f) SHA1(e56c50440681a0b06d785000018c4213266f2a4e) )
- ROM_LOAD16_BYTE( "fv001.001", 0x000001, 0x040000, CRC(f0630beb) SHA1(1ddd4ab1bc5ab2b6461eb35c8093884185828d7b) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "fv001.003", 0x000000, 0x080000, CRC(7de22749) SHA1(933a11f2d45667348b136d72806fc2e2f6f8d944) )
- ROM_LOAD( "fv001.004", 0x080000, 0x080000, CRC(c7d2fe32) SHA1(37291fa78c28be274e1240e081ea253ebe487e5c) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "fv001.005", 0x000000, 0x080000, CRC(5e206062) SHA1(e47cfb6947df178f3547dfe61907571bcb84e4ac) )
- ROM_LOAD( "fv001.006", 0x080000, 0x080000, CRC(572a15e7) SHA1(b6a3e99e14a473b78ff48d1a46b20a0862d128e9) )
-ROM_END
-
-ROM_START( orbs ) /* All eproms are socketed and labelled (handwritten) "ORBS 10\7\94" */
- /* most of rom space is unused (filled with sound samples - same data in all roms) */
-
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "orbs.u10", 0x000000, 0x080000, CRC(10f079c8) SHA1(0baf2b7e1e8be116a6fab609481c87fc7c86f305) )
- ROM_LOAD16_BYTE( "orbs.u9", 0x000001, 0x080000, CRC(f269d16f) SHA1(34f38789cb3256e334b0ac8acd9f339d14481578) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "orbs.u11", 0x000000, 0x080000, CRC(58cb38ba) SHA1(1c6c5f7ccb9c81b71bc1cbad080799b97962f262) )
- ROM_LOAD16_BYTE( "orbs.u12", 0x000001, 0x080000, CRC(b8c352c2) SHA1(7d6fd1425d9d5cf6a14a1ddceba0ad10e472dfa5) )
- ROM_LOAD16_BYTE( "orbs.u13", 0x100000, 0x080000, CRC(784bdc1a) SHA1(de2c5b38561b8ba6bd800126d010b734c2751575) )
- ROM_LOAD16_BYTE( "orbs.u14", 0x100001, 0x080000, CRC(1cc76541) SHA1(d8a233212bfb9a9c686a40e470524f95b34417fa) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "orbs.u15", 0x000000, 0x080000, CRC(bc0e9fe3) SHA1(758a44d07d59af8bbc87602df25dfcdc6cb8d9b3) )
- ROM_LOAD( "orbs.u16", 0x080000, 0x080000, CRC(aecd8373) SHA1(5620bcb281a9ea4920cfe81d163827013289c5bf) )
-ROM_END
-
-ROM_START( keroppi )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "keroppi jr. code =u10= v1.0.u10", 0x000000, 0x040000, CRC(1fc2e895) SHA1(08f1f48d4f601cf51583bf8854a9fa7016337cfc) )
- ROM_LOAD16_BYTE( "keroppi jr. code =u9= v1.0.u9", 0x000001, 0x040000, CRC(e0599e7b) SHA1(46b5ecc2864ab9e75540764453df5a2e6b6195e0) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "keroppi jr. chr=u11= v1.0.u11", 0x000000, 0x080000, CRC(74148c23) SHA1(26e642e2e0ad2b2af749355e9c46605061b100bc) )
- ROM_LOAD( "keroppi jr. chr=u12= v1.0.u12", 0x080000, 0x080000, CRC(6f4dae98) SHA1(da88837278cea956485f11ef55da8a4e9504c97a) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "keroppi jr. snd =u15= v1.0.u15", 0x000000, 0x080000, CRC(c98dacf0) SHA1(b508433e2383af1e8bd5fda253c9925c48443490) ) // == = ft-001-007.u15
- ROM_LOAD( "keroppi jr. snd =u16= v1.0.u16", 0x080000, 0x080000, CRC(d61e5a32) SHA1(aa2edf39e72ac15a8c8dd016b87bea17472f0f94) )
-ROM_END
-
-ROM_START( keroppij )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "ft-001-001.u10", 0x000000, 0x080000, CRC(37861e7d) SHA1(4bf75f119b0ef1420c96844224850867fa8e273f) )
- ROM_LOAD16_BYTE( "ft-001-002.u9", 0x000001, 0x080000, CRC(f531d4ef) SHA1(75a99695679de083765700c250bd1fdfd8be9981) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "ft-001-006.u11", 0x000000, 0x080000, CRC(9c500eae) SHA1(3448adef04c9ad2e0b39a283e4eb9c9bac7d4967) )
- ROM_LOAD16_BYTE( "ft-001-005.u12", 0x000001, 0x080000, CRC(de6432a8) SHA1(afee9b29e0b3db4815fc29456044532aee03597e) )
- ROM_LOAD16_BYTE( "ft-001-004.u13", 0x100000, 0x080000, CRC(69908c98) SHA1(1af069e9330a33cd2f0e1365e05c72eb23c3244e) )
- ROM_LOAD16_BYTE( "ft-001-003.u14", 0x100001, 0x080000, CRC(62fb22fb) SHA1(a67cb46152b73a47c2287c4058d0a22fb7064e7e) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "ft-001-007.u15", 0x000000, 0x080000, CRC(c98dacf0) SHA1(b508433e2383af1e8bd5fda253c9925c48443490) )
- ROM_LOAD( "ft-001-008.u16", 0x080000, 0x080000, CRC(b9c4b637) SHA1(82977d10de1048f71525bab5431b031cca510114) )
-ROM_END
-
-ROM_START( extdwnhl )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "fw001002.201", 0x000000, 0x080000, CRC(24d21924) SHA1(9914a68a578f884b06305ffcd9aeed7d83df1c7b) )
- ROM_LOAD16_BYTE( "fw001001.200", 0x000001, 0x080000, CRC(fb12a28b) SHA1(89167c042dc535b5f639057ff04a8e28824790f2) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "fw001003.202", 0x000000, 0x200000, CRC(ac9b31d5) SHA1(d362217ea0c474994e3c79ddcf87ee6688428ea5) )
-
- ROM_REGION( 0x400000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD24_WORD_SWAP( "fw001004.206", 0x000001, 0x200000, CRC(0dcb1d72) SHA1(ffc84f46f06f46750bddd1a303ed83a28fa9572f) )
- ROM_LOAD24_BYTE ( "fw001005.205", 0x000000, 0x100000, CRC(5c33b2f1) SHA1(9ea848aeaccbba0b71e60b39cf844665bd97928f) )
-
- ROM_REGION( 0x200000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD16_WORD_SWAP( "fw001006.152", 0x000000, 0x200000, CRC(d00e8ddd) SHA1(e13692034afec1a0e86d19abfb9efa518b374147) ) // FIRST AND SECOND HALF IDENTICAL
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "fw001007.026", 0x080000, 0x080000, CRC(16d84d7a) SHA1(fdc13776ba1ec9c48a33a9f2dfe8a0e55c54d89e) ) // swapped halves
- ROM_CONTINUE( 0x000000, 0x080000 )
-ROM_END
-
-ROM_START( gundhara )
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "bpgh-003.u3", 0x000000, 0x080000, CRC(14e9970a) SHA1(31964bd290cc94c40684adf3a5d129b1c3addc3b) )
- ROM_LOAD16_BYTE( "bpgh-004.u4", 0x000001, 0x080000, CRC(96dfc658) SHA1(f570bc49758535eb00d93ecce9f75832f97a0d8d) )
- ROM_LOAD16_BYTE( "bpgh-002.103", 0x100000, 0x080000, CRC(312f58e2) SHA1(a74819d2f84a00c233489893f12c9ab1a98459cf) )
- ROM_LOAD16_BYTE( "bpgh-001.102", 0x100001, 0x080000, CRC(8d23a23c) SHA1(9e9a6488db424c81a97edcb7115cc070fe35c077) )
-
- ROM_REGION( 0x800000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "bpgh-008.u64", 0x000000, 0x200000, CRC(7ed9d272) SHA1(2e9243b3ecee27c175234f9bb1893ab498090fce) )
- ROM_LOAD( "bpgh-006.201", 0x200000, 0x200000, CRC(5a81411d) SHA1(ebf90afe027a0dc0fa3022978677fb071b9083d1) )
- ROM_LOAD( "bpgh-007.u63", 0x400000, 0x200000, CRC(aa49ce7b) SHA1(fe0064d533bd895657b88a0ef96e835443a4077f) )
- ROM_LOAD( "bpgh-005.200", 0x600000, 0x200000, CRC(74138266) SHA1(c859acff358a61a32e5810ff369b9d5528137337) )
-
- ROM_REGION( 0x180000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD24_BYTE ( "bpgh-009.u65", 0x000000, 0x080000, CRC(b768e666) SHA1(473fa52c16c0a9f321e6429947a3e0fc1ef22f7e) )
- ROM_LOAD24_WORD_SWAP( "bpgh-010.u66", 0x000001, 0x100000, CRC(b742f0b8) SHA1(9246846c9ee839d5d84f5e02cf4605afcfd6bf7a) )
-
- ROM_REGION( 0x300000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD24_BYTE ( "bpgh-011.u67", 0x000000, 0x100000, CRC(49aff270) SHA1(de25209e520cd8747042078440ee20866097d0cb) )
- ROM_LOAD24_WORD_SWAP( "bpgh-012.u68", 0x000001, 0x200000, CRC(edfda595) SHA1(5942181430d59c0c303cd1cbe753910c26c109a2) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "bpgh-013.u70", 0x080000, 0x080000, CRC(0fa5d503) SHA1(fd7a80cd25c23e737cc2c3d11de2291e22313b58) ) // swapped halves
- ROM_CONTINUE( 0x000000, 0x080000 )
-ROM_END
-
-/* Chinese factory board, possibly bootleg but appears to come from the
- same factory as normal boards same as daiohc. Modified layout allowing
- split ROMs */
-ROM_START( gundharac )
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "4.u3", 0x000000, 0x080000, CRC(14e9970a) SHA1(31964bd290cc94c40684adf3a5d129b1c3addc3b) )
- ROM_LOAD16_BYTE( "2.u4", 0x000001, 0x080000, CRC(96dfc658) SHA1(f570bc49758535eb00d93ecce9f75832f97a0d8d) )
- ROM_LOAD16_BYTE( "3.u103", 0x100000, 0x080000, CRC(312f58e2) SHA1(a74819d2f84a00c233489893f12c9ab1a98459cf) )
- ROM_LOAD16_BYTE( "1.u102", 0x100001, 0x080000, CRC(8d23a23c) SHA1(9e9a6488db424c81a97edcb7115cc070fe35c077) )
-
- ROM_REGION( 0x800000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "19.u140", 0x000000, 0x080000, CRC(32d92c28) SHA1(7ba67f715f094aacf2dc2399809e4dfc7e4ca241) )
- ROM_LOAD16_BYTE( "23.u142", 0x000001, 0x080000, CRC(ff44db9b) SHA1(76ecd3ce3b6b33f3ae0b0454d58cf37d545dd72c) )
- ROM_LOAD16_BYTE( "21.u141", 0x100000, 0x080000, CRC(1901dc08) SHA1(b19428a7510d6e28a39bdf6ecc9732e3c2d19214) )
- ROM_LOAD16_BYTE( "25.u143", 0x100001, 0x080000, CRC(877289a2) SHA1(7482320e319d7b641fabba5aeeaa1237b693a219) )
- ROM_LOAD16_BYTE( "18.u140-b", 0x200000, 0x080000, CRC(4f023fb0) SHA1(815765c9783e44762bf57a3fbfad4385c316343a) )
- ROM_LOAD16_BYTE( "22.u142-b", 0x200001, 0x080000, CRC(6f3fe7e7) SHA1(71bc347c06678f4ae7850799da6346c6447bf3c0) )
- ROM_LOAD16_BYTE( "20.u141-b", 0x300000, 0x080000, CRC(7f1932e0) SHA1(13262a7322ad29cf7c85461204a3518e900c6145) )
- ROM_LOAD16_BYTE( "24.u143-b", 0x300001, 0x080000, CRC(066a2e2b) SHA1(186729918a89535484ab86dd58caf20ccce81501) )
- ROM_LOAD16_BYTE( "9.u144", 0x400000, 0x080000, CRC(6b4a531f) SHA1(701d6b2d87a742c8a2ab36331bd843dcd3309eae) )
- ROM_LOAD16_BYTE( "13.u146", 0x400001, 0x080000, CRC(45be3df4) SHA1(36667bf5e4b80d17a9d7b6ce4df7498f94681c46) )
- ROM_LOAD16_BYTE( "11.u145", 0x500000, 0x080000, CRC(f5210aa5) SHA1(4834d905f699dbec1cdacea6b320271c291aa2a7) )
- ROM_LOAD16_BYTE( "15.u147", 0x500001, 0x080000, CRC(17003119) SHA1(a2edd65c98bc654b541dad3e3783d90931c97597) )
- ROM_LOAD16_BYTE( "8.u144-b", 0x600000, 0x080000, CRC(ad9d9338) SHA1(33d6c881a20e2150017cc26f929473291e561718) )
- ROM_LOAD16_BYTE( "12.u146-b", 0x600001, 0x080000, CRC(0fd4c062) SHA1(7f418d43d9ba884c504f6fe3c04b11724412ac6b) )
- ROM_LOAD16_BYTE( "10.u145-b", 0x700000, 0x080000, CRC(7c5d12b9) SHA1(6ee45c4da6994540852153752e2818a8ea8ecf1a) )
- ROM_LOAD16_BYTE( "14.u147-b", 0x700001, 0x080000, CRC(5a8af50f) SHA1(3b7937ba720fcbbc5e29c1b95a97c29e8ff5490a) )
-
- ROM_REGION( 0x180000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD24_BYTE( "5.u148", 0x000002, 0x080000, CRC(0c740f9b) SHA1(f6d135c3318ff0d50d40921aa108b1b332c1a086) )
- ROM_LOAD24_BYTE( "6.u150", 0x000001, 0x080000, CRC(ba60eb98) SHA1(7204269816332bbb3401d9f20a513372ffe78500) )
- ROM_LOAD24_BYTE( "7.u154", 0x000000, 0x080000, CRC(b768e666) SHA1(473fa52c16c0a9f321e6429947a3e0fc1ef22f7e) )
-
- ROM_REGION( 0x300000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD24_BYTE( "26.u164", 0x000002, 0x080000, CRC(be3ccaba) SHA1(98f8b83cbed00932866375d21f86ee5c9bddb2a6) )
- ROM_LOAD24_BYTE( "28.u166", 0x000001, 0x080000, CRC(8a650a4e) SHA1(1f6eda27b39ad052e3d9a8a72cb0a072e7be4487) )
- ROM_LOAD24_BYTE( "16.u152", 0x000000, 0x080000, CRC(5ccc500b) SHA1(d3a2a5658cac8d788e0a1189c184309b8394b10a) )
- ROM_LOAD24_BYTE( "27.u165", 0x180002, 0x080000, CRC(47994ff0) SHA1(25211a9af01f77788578bb524619d95b5b86e241) )
- ROM_LOAD24_BYTE( "29.u167", 0x180001, 0x080000, CRC(453c3d3f) SHA1(151528b6b1e7f8c059d67dbaca61e7c382e9ce04) )
- ROM_LOAD24_BYTE( "17.u153", 0x180000, 0x080000, CRC(5586d086) SHA1(e43d5e8834701f40389400f68a99353e67598f6d) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "30.u69", 0x000000, 0x080000, CRC(3111a98a) SHA1(75e17a0113060a10551b2b8c17b19890eb7aa0a6) )
- ROM_LOAD( "31.u70", 0x080000, 0x080000, CRC(30cb2524) SHA1(85deb83262bbe481404705e163e5eb9362985b01) )
-ROM_END
-
-ROM_START( sokonuke )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "001-001.bin", 0x000000, 0x080000, CRC(9d0aa3ca) SHA1(f641c46f2c6e7f82bb9184daac62938afb607c09) )
- ROM_LOAD16_BYTE( "001-002.bin", 0x000001, 0x080000, CRC(96f2ef5f) SHA1(264e82e192089230f208edf609dee575bf5c6513) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "001-003.bin", 0x000000, 0x200000, CRC(ab9ba897) SHA1(650c1eadf82f6e2b4c598495c867118277565411) )
-
- ROM_REGION( 0x180000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD24_WORD_SWAP( "001-004.bin", 0x000001, 0x100000, CRC(34ca3540) SHA1(a9b6b395037870033a2a422453e304fd4666b99e) )
- ROM_LOAD24_BYTE ( "001-005.bin", 0x000000, 0x080000, CRC(2b95d68d) SHA1(2fb480c31a6a7e180a68bd774b5f86348bea0761) )
-
- ROM_REGION( 0x100, "gfx3", ROMREGION_ERASE ) /* Layer 2 */
- /* Unused */
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "001-006.bin", 0x080000, 0x080000, CRC(ecfac767) SHA1(3d05bdb2c2a8c7eb5fa77b0c4482f98d3947c6d6) )
- ROM_CONTINUE( 0x000000, 0x080000 )
-ROM_END
-
-ROM_START( zombraid )
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "fy001003.3", 0x000000, 0x080000, CRC(0b34b8f7) SHA1(8c6d7d208ece08695169f2e06806e7e55c595eb2) )
- ROM_LOAD16_BYTE( "fy001004.4", 0x000001, 0x080000, CRC(71bfeb1a) SHA1(75747b0c6e655624a5dc2e4fa8f16a6a51bd8769) )
- ROM_LOAD16_BYTE( "fy001002.103", 0x100000, 0x080000, CRC(313fd68f) SHA1(792733acc72b4719b3f7f79b57fb874c71e8abfb) )
- ROM_LOAD16_BYTE( "fy001001.102", 0x100001, 0x080000, CRC(a0f61f13) SHA1(ba14c5ae0d0b3f217c130eeebd987dfde4c64c0d) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "fy001006.200", 0x000000, 0x200000, CRC(e9ae99f7) SHA1(7ffd62e5db4a48d362c90e8fca991c5b63f22bd8) )
-
- ROM_REGION( 0x300000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD24_WORD_SWAP( "fy001008.66", 0x000001, 0x200000, CRC(73d7b0e1) SHA1(aa332b563005edb1a6e20fbceaba68b56761a634) )
- ROM_LOAD24_BYTE ( "fy001007.65", 0x000000, 0x100000, CRC(b2fc2c81) SHA1(2c529beccea353c3e90563215ddf3d8931e0fb83) )
-
- ROM_REGION( 0x300000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD24_WORD_SWAP( "fy001010.68", 0x000001, 0x200000, CRC(8b40ed7a) SHA1(05fcd7947a8419cab5ed2305fba9a671911e4850) )
- ROM_LOAD24_BYTE ( "fy001009.67", 0x000000, 0x100000, CRC(6bcca641) SHA1(49c9106e6f23e25e5b5917af11fc48d34457c61a) )
-
- ROM_REGION( 0x400000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "fy001012.b", 0x000000, 0x200000, CRC(fd30e102) SHA1(ae02f94f69aa301b0c37921ca1117e3ad20467b5) )
- ROM_LOAD( "fy001011.a", 0x200000, 0x200000, CRC(e3c431de) SHA1(1030adacbbfabc00231417e09f3de40e3052f65c) )
-
- ROM_REGION(0x10000, "nvram", 0)
- ROM_LOAD( "nvram.bin", 0x0000, 0x10000, CRC(1a4b2ee8) SHA1(9a14fb2089fef9d13e0a5fe0a83eb7bae51fe1ae) )
-ROM_END
-
-/* Notes about the Proto/Test roms:
-
-Each rom was labeled with PCB location, use, SUM16 and final date EX:
-
-LOGO Zombie Raid
-
-U3 Master USA
-PRG E_L DD28 9/28/95
-
-
-The "LOGO" above means that the actual Sammy logo was printed there.
-
-These look like final prototype or test roms before production and combining the data into larger MASK roms.
-*/
-
-
-ROM_START( zombraidp ) /* Prototype or test board version. Data matches released MASK rom version */
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "u3_master_usa_prg_e_l_dd28.u3", 0x000000, 0x080000, CRC(0b34b8f7) SHA1(8c6d7d208ece08695169f2e06806e7e55c595eb2) ) /* These 4 roms dated 9/28/95 */
- ROM_LOAD16_BYTE( "u4_master_usa_prg_o_l_5e2b.u4", 0x000001, 0x080000, CRC(71bfeb1a) SHA1(75747b0c6e655624a5dc2e4fa8f16a6a51bd8769) )
- ROM_LOAD16_BYTE( "u103_master_usa_prg_e_h_789e.u103", 0x100000, 0x080000, CRC(313fd68f) SHA1(792733acc72b4719b3f7f79b57fb874c71e8abfb) )
- ROM_LOAD16_BYTE( "u102_master_usa_prg_o_h_1f25.u102", 0x100001, 0x080000, CRC(a0f61f13) SHA1(ba14c5ae0d0b3f217c130eeebd987dfde4c64c0d) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "u142_master_obj_00_1bb3.u142", 0x000001, 0x040000, CRC(ed6c8541) SHA1(a119ad751184d575e135da0598cf1172025ddd48) ) /* These 6 roms dated 7/17/95 */
- ROM_LOAD16_BYTE( "obj_01", 0x000000, 0x040000, CRC(a423620e) SHA1(8d9351eddeecb444a1ab2f99d0da1d74f01bad88) )
- ROM_LOAD16_BYTE( "u143_master_obj_04_b5aa.u143", 0x080001, 0x040000, CRC(1242670d) SHA1(e6189a1974981cedbd16f5ea0295ff73cfd6a666) )
- ROM_LOAD16_BYTE( "obj_05", 0x080000, 0x040000, CRC(57fe3e97) SHA1(2f9e79d6984099495c0c025b11bea7c9f72f9ef4) )
- ROM_LOAD16_BYTE( "u146_master_obj_02_6cc6.u146", 0x100001, 0x040000, CRC(7562ee1b) SHA1(bffb1a172e5259687dc0bc84916127419825c1b7) )
- ROM_LOAD16_BYTE( "u144_master_obj_03_1cb5.u144", 0x100000, 0x040000, CRC(a83040f1) SHA1(c7efacaa706e7f07c95f23509c738665775db2d2) )
- ROM_LOAD16_BYTE( "u147_master_obj_06_c3d8.u147", 0x180001, 0x040000, CRC(a32c3da8) SHA1(fd63c0fb13fb546732351dc2ee5fa33c1c275274) )
- ROM_LOAD16_BYTE( "u145_master_obj_07_8ad4.u145", 0x180000, 0x040000, CRC(8071f0b6) SHA1(e596897e52beaf686e95ad643a36beefe311d85c) )
-
- ROM_REGION( 0x300000, "gfx2", ROMREGION_ERASE00 ) /* Layer 1 */
- ROM_LOAD24_BYTE( "u148_master_scn_1-0_3ef8.u148", 0x000000, 0x080000, CRC(7d722f2a) SHA1(6bcd18fe65a4a94a718f75c3813cea014c80b35a) ) /* These 6 roms dated 7/17/95 */
- ROM_LOAD24_BYTE( "u150_master_scn_1-1_89a6.u150", 0x000001, 0x080000, CRC(3c62a8af) SHA1(38d9a32817a928586fe027b4c974f7dde585e5b7) )
- ROM_LOAD24_BYTE( "u154_master_scn_1-2_0f4b.u154", 0x000000, 0x080000, CRC(0a1d647c) SHA1(66dede165438001a34317d5ab29a9553d25530a2) )
- ROM_LOAD24_BYTE( "u149_master_scn_1-3_71bb.u149", 0x180000, 0x080000, CRC(70d6af7f) SHA1(1c922882a90efe83eacf6e25c4fb0c0a9e29a22c) )
- ROM_LOAD24_BYTE( "u151_master_scn_1-4_872e.u151", 0x180001, 0x080000, CRC(83ef4d5f) SHA1(b7e804c3a702caaee320daf8604d0af6f5874946) )
- ROM_LOAD24_BYTE( "u155_master_scn_1-5_daef.u155", 0x180000, 0x080000, CRC(2508f67f) SHA1(43a9d56c49187891007457dd23d3ac696f8ce0fa) )
-
- ROM_REGION( 0x300000, "gfx3", ROMREGION_ERASE00 ) /* Layer 2 */
- ROM_LOAD24_BYTE( "u164_master_scn_2-0_e79c.u164", 0x000002, 0x080000, CRC(f8c89062) SHA1(08fd32b30923025b3769e56a8601b2ea1f85ebd1) ) /* These 6 roms dated 7/17/95 */
- ROM_LOAD24_BYTE( "u166_master_scn_2-1_0b75.u166", 0x000001, 0x080000, CRC(4d7a72d5) SHA1(83b7ca4ea4c83fdab5be3c17d816dfd4033fb89c) )
- ROM_LOAD24_BYTE( "u152_master_scn_2-2_c00e.u152", 0x000000, 0x080000, CRC(0870ad58) SHA1(20e076fa665c24db0e316598a0a5d7fae9fc2f2a) )
- ROM_LOAD24_BYTE( "u165_master_scn_2-3_be68.u165", 0x180002, 0x080000, CRC(8aaaef08) SHA1(12b9c8c170a4acf200e3fba45407a3e38f787926) )
- ROM_LOAD24_BYTE( "u167_master_scn_2-4_c515.u167", 0x180001, 0x080000, CRC(d22ff5c1) SHA1(c488a69c9a241e1ca2119264bf879140d16fe69f) )
- ROM_LOAD24_BYTE( "u153_master_scn_2-5_e1da.u153", 0x180000, 0x080000, CRC(814ac66a) SHA1(1fd13a0bf73b9bdede82a865789413308d989c3a) )
-
- ROM_REGION( 0x400000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "u156_master_snd_0_f630.u156", 0x000000, 0x080000, CRC(bfc467bd) SHA1(a234cb8e0259a21b7bad40a72d99bf379a4b4046) ) /* These 8 roms dated 7/17/95 */
- ROM_LOAD( "u157_master_snd_1_c20a.u157", 0x080000, 0x080000, CRC(b449a8ba) SHA1(3248a767132f60dec848fdc21a76481caa428cd2) )
- ROM_LOAD( "u158_master_snd_2_5c69.u158", 0x100000, 0x080000, CRC(ed6de791) SHA1(416c39c03a9ac2214702eaea7716e9aa74c8c228) )
- ROM_LOAD( "u159_master_snd_3_0727.u159", 0x180000, 0x080000, CRC(794cec21) SHA1(5c44286ea14c0e6a7a4588e523015f83d64dd1a7) )
- ROM_LOAD( "u160_master_snd_4_5a70.u160", 0x200000, 0x080000, CRC(e81ace66) SHA1(f4984e855c222e1cf3287538f536f7b0275f03d5) )
- ROM_LOAD( "u161_master_snd_5_599c.u161", 0x280000, 0x080000, CRC(1793dd13) SHA1(1b5b3c50e6df399c3e334c08be5313eef7d7ed95) )
- ROM_LOAD( "u162_master_snd_6_6d2e.u162", 0x300000, 0x080000, CRC(2ece241f) SHA1(1ebe4dd788799ec10c2eddf02f9bdaee8457993b) )
- ROM_LOAD( "u163_master_snd_7_c733.u163", 0x380000, 0x080000, CRC(d90f78b2) SHA1(e847eba6a4d6c1a3044041a9d32b6b534fb45307) )
-
- ROM_REGION(0x10000, "nvram", 0)
- ROM_LOAD( "nvram.bin", 0x0000, 0x10000, CRC(1a4b2ee8) SHA1(9a14fb2089fef9d13e0a5fe0a83eb7bae51fe1ae) )
-ROM_END
-
-ROM_START( zombraidpj ) /* Prototype or test board version. Data matches released MASK rom version */
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "u3_master_usa_prg_e_l_dd28.u3", 0x000000, 0x080000, CRC(0b34b8f7) SHA1(8c6d7d208ece08695169f2e06806e7e55c595eb2) ) /* These 4 roms dated 9/28/95 */
- ROM_LOAD16_BYTE( "u4_master_jpn_prg_o_l_5e2c.u4", 0x000001, 0x080000, CRC(3cb6bdf0) SHA1(4c1babeb4d7dbf7d26f8e34b552c0338432abd57) )
- ROM_LOAD16_BYTE( "u103_master_usa_prg_e_h_789e.u103", 0x100000, 0x080000, CRC(313fd68f) SHA1(792733acc72b4719b3f7f79b57fb874c71e8abfb) )
- ROM_LOAD16_BYTE( "u102_master_usa_prg_o_h_1f25.u102", 0x100001, 0x080000, CRC(a0f61f13) SHA1(ba14c5ae0d0b3f217c130eeebd987dfde4c64c0d) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "u142_master_obj_00_1bb3.u142", 0x000001, 0x040000, CRC(ed6c8541) SHA1(a119ad751184d575e135da0598cf1172025ddd48) ) /* These 6 roms dated 7/17/95 */
- ROM_LOAD16_BYTE( "obj_01", 0x000000, 0x040000, CRC(a423620e) SHA1(8d9351eddeecb444a1ab2f99d0da1d74f01bad88) )
- ROM_LOAD16_BYTE( "u143_master_obj_04_b5aa.u143", 0x080001, 0x040000, CRC(1242670d) SHA1(e6189a1974981cedbd16f5ea0295ff73cfd6a666) )
- ROM_LOAD16_BYTE( "obj_05", 0x080000, 0x040000, CRC(57fe3e97) SHA1(2f9e79d6984099495c0c025b11bea7c9f72f9ef4) )
- ROM_LOAD16_BYTE( "u146_master_obj_02_6cc6.u146", 0x100001, 0x040000, CRC(7562ee1b) SHA1(bffb1a172e5259687dc0bc84916127419825c1b7) )
- ROM_LOAD16_BYTE( "u144_master_obj_03_1cb5.u144", 0x100000, 0x040000, CRC(a83040f1) SHA1(c7efacaa706e7f07c95f23509c738665775db2d2) )
- ROM_LOAD16_BYTE( "u147_master_obj_06_c3d8.u147", 0x180001, 0x040000, CRC(a32c3da8) SHA1(fd63c0fb13fb546732351dc2ee5fa33c1c275274) )
- ROM_LOAD16_BYTE( "u145_master_obj_07_8ad4.u145", 0x180000, 0x040000, CRC(8071f0b6) SHA1(e596897e52beaf686e95ad643a36beefe311d85c) )
-
- ROM_REGION( 0x300000, "gfx2", ROMREGION_ERASE00 ) /* Layer 1 */
- ROM_LOAD24_BYTE( "u148_master_scn_1-0_3ef8.u148", 0x000002, 0x080000, CRC(7d722f2a) SHA1(6bcd18fe65a4a94a718f75c3813cea014c80b35a) ) /* These 6 roms dated 7/17/95 */
- ROM_LOAD24_BYTE( "u150_master_scn_1-1_89a6.u150", 0x000001, 0x080000, CRC(3c62a8af) SHA1(38d9a32817a928586fe027b4c974f7dde585e5b7) )
- ROM_LOAD24_BYTE( "u154_master_scn_1-2_0f4b.u154", 0x000000, 0x080000, CRC(0a1d647c) SHA1(66dede165438001a34317d5ab29a9553d25530a2) )
- ROM_LOAD24_BYTE( "u149_master_scn_1-3_71bb.u149", 0x180002, 0x080000, CRC(70d6af7f) SHA1(1c922882a90efe83eacf6e25c4fb0c0a9e29a22c) )
- ROM_LOAD24_BYTE( "u151_master_scn_1-4_872e.u151", 0x180001, 0x080000, CRC(83ef4d5f) SHA1(b7e804c3a702caaee320daf8604d0af6f5874946) )
- ROM_LOAD24_BYTE( "u155_master_scn_1-5_daef.u155", 0x180000, 0x080000, CRC(2508f67f) SHA1(43a9d56c49187891007457dd23d3ac696f8ce0fa) )
-
- ROM_REGION( 0x300000, "gfx3", ROMREGION_ERASE00 ) /* Layer 2 */
- ROM_LOAD24_BYTE( "u164_master_scn_2-0_e79c.u164", 0x000002, 0x080000, CRC(f8c89062) SHA1(08fd32b30923025b3769e56a8601b2ea1f85ebd1) ) /* These 6 roms dated 7/17/95 */
- ROM_LOAD24_BYTE( "u166_master_scn_2-1_0b75.u166", 0x000001, 0x080000, CRC(4d7a72d5) SHA1(83b7ca4ea4c83fdab5be3c17d816dfd4033fb89c) )
- ROM_LOAD24_BYTE( "u152_master_scn_2-2_c00e.u152", 0x000000, 0x080000, CRC(0870ad58) SHA1(20e076fa665c24db0e316598a0a5d7fae9fc2f2a) )
- ROM_LOAD24_BYTE( "u165_master_scn_2-3_be68.u165", 0x180002, 0x080000, CRC(8aaaef08) SHA1(12b9c8c170a4acf200e3fba45407a3e38f787926) )
- ROM_LOAD24_BYTE( "u167_master_scn_2-4_c515.u167", 0x180001, 0x080000, CRC(d22ff5c1) SHA1(c488a69c9a241e1ca2119264bf879140d16fe69f) )
- ROM_LOAD24_BYTE( "u153_master_scn_2-5_e1da.u153", 0x180000, 0x080000, CRC(814ac66a) SHA1(1fd13a0bf73b9bdede82a865789413308d989c3a) )
-
- ROM_REGION( 0x400000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "u156_master_snd_0_f630.u156", 0x000000, 0x080000, CRC(bfc467bd) SHA1(a234cb8e0259a21b7bad40a72d99bf379a4b4046) ) /* These 8 roms dated 7/17/95 */
- ROM_LOAD( "u157_master_snd_1_c20a.u157", 0x080000, 0x080000, CRC(b449a8ba) SHA1(3248a767132f60dec848fdc21a76481caa428cd2) )
- ROM_LOAD( "u158_master_snd_2_5c69.u158", 0x100000, 0x080000, CRC(ed6de791) SHA1(416c39c03a9ac2214702eaea7716e9aa74c8c228) )
- ROM_LOAD( "u159_master_snd_3_0727.u159", 0x180000, 0x080000, CRC(794cec21) SHA1(5c44286ea14c0e6a7a4588e523015f83d64dd1a7) )
- ROM_LOAD( "u160_master_snd_4_5a70.u160", 0x200000, 0x080000, CRC(e81ace66) SHA1(f4984e855c222e1cf3287538f536f7b0275f03d5) )
- ROM_LOAD( "u161_master_snd_5_599c.u161", 0x280000, 0x080000, CRC(1793dd13) SHA1(1b5b3c50e6df399c3e334c08be5313eef7d7ed95) )
- ROM_LOAD( "u162_master_snd_6_6d2e.u162", 0x300000, 0x080000, CRC(2ece241f) SHA1(1ebe4dd788799ec10c2eddf02f9bdaee8457993b) )
- ROM_LOAD( "u163_master_snd_7_c733.u163", 0x380000, 0x080000, CRC(d90f78b2) SHA1(e847eba6a4d6c1a3044041a9d32b6b534fb45307) )
-
- ROM_REGION(0x10000, "nvram", 0)
- ROM_LOAD( "nvram.bin", 0x0000, 0x10000, CRC(1a4b2ee8) SHA1(9a14fb2089fef9d13e0a5fe0a83eb7bae51fe1ae) )
-ROM_END
-
-ROM_START( madshark )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "fq001002.201", 0x000000, 0x080000, CRC(4286a811) SHA1(c8d4a28008548fe7d1d70758462205862142c56b) )
- ROM_LOAD16_BYTE( "fq001001.200", 0x000001, 0x080000, CRC(38bfa0ad) SHA1(59398ef69caa01f51cdfb20db23af494db658e5e) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "fq001004.202", 0x100000, 0x100000, CRC(e56a1b5e) SHA1(f0dd34122fd7db15cc56714b72b60d07ccb59222) )
- ROM_CONTINUE( 0x000000, 0x100000 )
-
- ROM_REGION( 0x300000, "user1", 0 ) /* Layers 1+2 */
- ROM_LOAD24_WORD_SWAP( "fq001006.152", 0x000001, 0x200000, CRC(3bc5e8e4) SHA1(74cdf1bb2e58bef29c6f4371ff40f64472bff3ce) )
- ROM_LOAD24_BYTE ( "fq001005.205", 0x000000, 0x100000, CRC(5f6c6d4a) SHA1(eed5661738282a14ce89917335fd1b695eb7351e) )
-
- ROM_REGION( 0x180000, "gfx2", 0 ) /* Layer 1 */
- ROM_COPY( "user1", 0x000000, 0x000000, 0x180000 )
-
- ROM_REGION( 0x180000, "gfx3", 0 ) /* Layer 2 */
- ROM_COPY( "user1", 0x180000, 0x000000, 0x180000 )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "fq001007.26", 0x000000, 0x100000, CRC(e4b33c13) SHA1(c4f9532de7a09c80f5a74c3a386e99a0f546846f) )
-ROM_END
-
-ROM_START( magspeed )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "fu001002.201", 0x00000, 0x40000, CRC(bdeb3fcc) SHA1(3a69eae49967fdad1f9bda6a09bffbd824254c92) )
- ROM_LOAD16_BYTE( "fu001001.200", 0x00001, 0x40000, CRC(9b873d46) SHA1(958502dea9f271249da715cd6b1ea5045369cbb9) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "fu001004.21", 0x000000, 0x100000, CRC(7582c5a8) SHA1(3754e3bbac8e4a50f5ca28390357f00b7579182d) )
- ROM_LOAD( "fu001005.22", 0x100000, 0x100000, CRC(fd4b1ff6) SHA1(188b74cdf120e9d6e0fe15b60997383929dfa5cd) )
-
- ROM_REGION( 0x100000, "user1", 0 ) /* Layers 1+2 */
- ROM_LOAD16_WORD_SWAP( "fu001006.152", 0x000000, 0x100000, CRC(70855139) SHA1(24d635aceb823b0569169c8ecced13ac82c17d6a) )
-
- ROM_REGION( 0x80000, "gfx2", 0 ) /* Layer 1 */
- ROM_COPY( "user1", 0x000000, 0x00000, 0x80000 )
-
- ROM_REGION( 0x80000, "gfx3", 0 ) /* Layer 2 */
- ROM_COPY( "user1", 0x80000, 0x00000, 0x80000 )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "fu001007.26", 0x000000, 0x100000, CRC(173463c2) SHA1(f7afc200662f72b3da149e0d17517c89ad66ef67) )
-ROM_END
-
-ROM_START( utoukond )
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "93uta010.3", 0x000000, 0x080000, CRC(c486ef5e) SHA1(36e4ef4805d543216269f1161028d8a436f72284) )
- ROM_LOAD16_BYTE( "93uta011.4", 0x000001, 0x080000, CRC(978978f7) SHA1(a7fd3a4ce3a7c6c9d9bdd60df29b4f427abf4f92) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
- ROM_LOAD( "93uta009.112", 0x0000, 0x10000, CRC(67f18483) SHA1(d9af58dec09c317ccab65553d53d82c8cce2bfb9) )
-
- ROM_REGION( 0x400000, "gfx1", ROMREGION_INVERT ) /* Sprites */
- ROM_LOAD( "93uta04.64", 0x000000, 0x100000, CRC(9cba0538) SHA1(83278918b6ad160d3e53c178b3cad252e7b0edfb) )
- ROM_LOAD( "93uta02.201", 0x100000, 0x100000, CRC(884fedfa) SHA1(3710003bd2e55bba03e2720fcab0fe080163222d) )
- ROM_LOAD( "93uta03.63", 0x200000, 0x100000, CRC(818484a5) SHA1(642252abe56e26aa8376db2e25b192b11586d1e4) )
- ROM_LOAD( "93uta01.200", 0x300000, 0x100000, CRC(364de841) SHA1(a025bd57f60eac05c0d7b4fb69b4b4979f357e6b) )
-
- ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_WORD_SWAP( "93uta05.66", 0x000000, 0x100000, CRC(5e640bfb) SHA1(37f30ae6ab9d7860da6ca6a343fa9adf4b3d355c) )
-
- ROM_REGION( 0x200000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD16_WORD_SWAP( "93uta07.68", 0x000000, 0x100000, CRC(67bdd036) SHA1(527b6a67e7a62263bee738dc82d6ff289ab54853) )
- ROM_LOAD16_WORD_SWAP( "93uta06.67", 0x100000, 0x100000, CRC(294c26e4) SHA1(459ec7f8c8db4f1e3906d5db240298405bda991c) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "93uta08.69", 0x000000, 0x100000, CRC(3d50bbcd) SHA1(e9b78d08466e1f9b42f11999bb53b6deceb81a12) )
-ROM_END
-
-ROM_START( neobattl ) // 1CC74: "SD GUNDAM v0.00. 1992/11/04 10:04:33"
- ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "bp923001.u45", 0x000000, 0x020000, CRC(0d0aeb73) SHA1(5ca631d5d68e53029f379d9877a056997c6c6afa) ) /* Alt label X1-001 which is also a Seta custom chip number */
- ROM_LOAD16_BYTE( "bp923002.u46", 0x000001, 0x020000, CRC(9731fbbc) SHA1(196c913fb67496f9da2943ad1e69edf89cb65fdf) ) /* Alt label X1-002A which is also a Seta custom chip number */
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "bp923-003.u15", 0x00000, 0x80000, CRC(91ca98a1) SHA1(b02b362e3a6118f52d9e1a262ca11aecef887b00) )
- ROM_LOAD( "bp923-004.u9", 0x80000, 0x80000, CRC(15c678e3) SHA1(8c0fa41a1f4e7b4e1c90faaeec7f6c910cc3ad0b) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "bp923-005.u4", 0x000000, 0x100000, CRC(7c0e37be) SHA1(5d5779de948f986971a82db2a5a4302044c3257a) )
-ROM_END
-
-ROM_START( pairlove )
- ROM_REGION( 0x040000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "ut2-001-001.1a", 0x000000, 0x010000, CRC(083338b7) SHA1(d775c1618272967713bd3f3164fdfc42dc5c36ca) )
- ROM_LOAD16_BYTE( "ut2-001-002.3a", 0x000001, 0x010000, CRC(39d88aae) SHA1(8498dfb221e9b34a889594fe5ed0431814b733e6) )
-
- ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD( "ut2-001-004.5j", 0x000000, 0x080000, CRC(fdc47b26) SHA1(0de51bcf67b909ac9578f0d1b14af8a4c758aacf) )
- ROM_LOAD( "ut2-001-005.5l", 0x080000, 0x080000, CRC(076f94a2) SHA1(94b4b41a497dea1b6db5396bd7cd81ebcb217735) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "ut2-001-003.12a", 0x000000, 0x080000, CRC(900219a9) SHA1(3260a900df25beba597bf947a9fbb6f7392827d7) )
- ROM_RELOAD( 0x080000, 0x080000 )
-ROM_END
-
-ROM_START( crazyfgt )
- ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "rom.u3", 0x00000, 0x40000, CRC(bf333e75) SHA1(be124558ca49963cc56d3255c546587558b61926) )
- ROM_LOAD16_BYTE( "rom.u4", 0x00001, 0x40000, CRC(505e9d47) SHA1(3797d396a24e46b891de4c40aafe960d1cf5f161) )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "rom.u225", 0x000000, 0x80000, CRC(451b4419) SHA1(ab32b3c452b566ddfc64c0a80a257c3baadd8f41) )
- ROM_LOAD16_BYTE( "rom.u226", 0x000001, 0x80000, CRC(ef210e34) SHA1(99241ffcbc8af889c8ab6f0bc67eedef27d455f0) )
- ROM_LOAD16_BYTE( "rom.u227", 0x100000, 0x80000, CRC(7905b5f2) SHA1(633f86bf2be620afbe8012ade5d1e59c359a25d4) )
- ROM_LOAD16_BYTE( "rom.u228", 0x100001, 0x80000, CRC(7181618e) SHA1(57c5aced95b0a11a43dc9bd532290f067113e65a) )
-
- ROM_REGION( 0xc0000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD24_BYTE ( "rom.u67", 0x000000, 0x40000, CRC(ec8c6831) SHA1(e0ef1c2e539c1780fc5816ec950d33cb2a69d55e) )
- ROM_LOAD24_WORD_SWAP( "rom.u68", 0x000001, 0x80000, CRC(2124312e) SHA1(1c6053c87a975bfdf910e75bd3e38d0898806ea0) )
-
- ROM_REGION( 0xc0000, "gfx3", 0 ) /* Layer 2 */
- ROM_LOAD24_BYTE ( "rom.u65", 0x000000, 0x40000, CRC(58448231) SHA1(711f24831777719f6a7b143f4f1bfd14f5a9ed4c) )
- ROM_LOAD24_WORD_SWAP( "rom.u66", 0x000001, 0x80000, CRC(c6f7735b) SHA1(0e77045f82d0bf659be5dbfe21cfc8f223faeee9) )
-
- ROM_REGION( 0x40000, "oki", 0 ) /* OKI samples */
- ROM_LOAD( "rom.u85", 0x00000, 0x40000, CRC(7b95d0bb) SHA1(f16dfd639eed6856e3ab93704caef592a07ba367) )
-ROM_END
-
-ROM_START( jockeyc )
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "ya_007_002.u23", 0x000000, 0x10000, CRC(c499bf4d) SHA1(2417eac2972bbb0f8f0a4a1fd72c9d78537367c7) )
- ROM_LOAD16_BYTE( "ya_007_003.u33", 0x000001, 0x10000, CRC(e7b0677e) SHA1(90dbd710623ff57b953483240e1006c9bda3fc91) )
- ROM_FILL( 0x020000, 0xe0000, 0xff )
- ROM_LOAD16_WORD_SWAP( "ya-002-001.u18", 0x100000, 0x80000, CRC(dd108016) SHA1(1554de4cc1a9436a1e62400cd96c9752a2098f99) )
- ROM_FILL( 0x180000, 0x80000, 0xff )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "ya-001-007-t77.u27", 0x000000, 0x80000, CRC(2dc7a294) SHA1(97f2aa9939a45aaa94d4aeb2fcd5b7f30204b942) )
- ROM_LOAD16_BYTE( "ya-001-006-t76.u22", 0x000001, 0x80000, CRC(bfae01a5) SHA1(3be83972c3987e9bf722cd6db7770f074587301c) )
- ROM_LOAD16_BYTE( "ya-001-005-t75.u17", 0x100000, 0x80000, CRC(4a6c804b) SHA1(b596b9b0b3b453c26f9c7f976ff4d56eac4fac04) )
- ROM_LOAD16_BYTE( "ya-001-004-t74.u10", 0x100001, 0x80000, CRC(eb74d2e0) SHA1(221ff6cc03ce57a7fcbe418f1c12a293990f8a7d) )
-
- ROM_REGION( 0x80000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_BYTE( "ya-001-008-t59.u35", 0x000000, 0x40000, CRC(4b890f83) SHA1(fde6544898a0691b550f3045803f2e81cfeb5fe9) )
- ROM_LOAD16_BYTE( "ya-001-009-t60.u41", 0x000001, 0x40000, CRC(caa5e3c1) SHA1(63cccc5479040a02872febc8d7f2d46096e138d1) )
-
- ROM_REGION( 0x400, "proms", 0 ) /* Colours */
- ROM_LOAD16_BYTE( "ya1-010.prom", 0x000, 0x200, CRC(778094b3) SHA1(270329a0d544dc7a8240d6dab08ccd54ea87ab70) )
- ROM_LOAD16_BYTE( "ya1-011.prom", 0x001, 0x200, CRC(bd4fe2f6) SHA1(83d9f9db3fbfa2d172f5227c397ea4d5a9687015) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "ya-001-013.u71", 0x00000, 0x80000, CRC(2bccaf47) SHA1(1658643444d575410f11b648e0d7ae6c43fcf1ea) )
- ROM_LOAD( "ya-001-012.u64", 0x80000, 0x80000, CRC(a8015ce6) SHA1(bb0b589856ec82e1fd42be9af89b07ba1d17e595) )
-ROM_END
-
-/***************************************************************************
-
- International Toote II (v1.24, P387.V01)
- (C) 1993 Coinmaster
-
- Program roms which were in use in Belgium. "International Toote" was the only name allowed in Belgium
- those days for horse racing gambling games, so every horse game was named International Toote
- (which means nothing even for us).
-
- I don't really know if Coinmaster owned the rights for this game or not, but they reverse engineered it,
- added some protection and made eproms sets for Germany, Belgium etc ... with their name and logo.
-
- Roms:
-
- P387_v01.002 new
- P387_v01.003 new
- YA-001-004.u10 same as YA-011-xxx from: International Toote (Germany, P523.V01)
- YA-001-005.u17 ""
- YA-001-006.u22 ""
- YA-001-007.u27 ""
- YA-001-008.u35 ""
- YA-001-009.u41 ""
- YA-001-012.u64 ""
- YA-001-013.u71 ""
- YA-002-001.u18 ""
- YA-010.prom ""
- YA-011.prom ""
-
- This set does not use the "fore" and "back" graphics roms
-
-***************************************************************************/
-
-ROM_START( inttoote2 )
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "p387.v01_horse_prog_2.002", 0x000000, 0x10000, CRC(1ced885e) SHA1(7bb444bbfa3c07c0c54378432186ff3b056b6090) )
- ROM_LOAD16_BYTE( "p387.v01_horse_prog_1.003", 0x000001, 0x10000, CRC(e24592af) SHA1(86ab84cb1c5cbb0dcc73e75c05ce446411fab08a) )
- ROM_FILL( 0x020000, 0xe0000, 0xff )
- ROM_LOAD16_WORD_SWAP( "ya_002_001.u18", 0x100000, 0x80000, CRC(dd108016) SHA1(1554de4cc1a9436a1e62400cd96c9752a2098f99) )
- ROM_FILL( 0x180000, 0x80000, 0xff )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "ya-001-007-t77.u27", 0x000000, 0x80000, CRC(2dc7a294) SHA1(97f2aa9939a45aaa94d4aeb2fcd5b7f30204b942) )
- ROM_LOAD16_BYTE( "ya-001-006-t76.u22", 0x000001, 0x80000, CRC(bfae01a5) SHA1(3be83972c3987e9bf722cd6db7770f074587301c) )
- ROM_LOAD16_BYTE( "ya-001-005-t75.u17", 0x100000, 0x80000, CRC(4a6c804b) SHA1(b596b9b0b3b453c26f9c7f976ff4d56eac4fac04) )
- ROM_LOAD16_BYTE( "ya-001-004-t74.u10", 0x100001, 0x80000, CRC(eb74d2e0) SHA1(221ff6cc03ce57a7fcbe418f1c12a293990f8a7d) )
-
- ROM_REGION( 0x80000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_BYTE( "ya-001-008-t59.u35", 0x000000, 0x40000, CRC(4b890f83) SHA1(fde6544898a0691b550f3045803f2e81cfeb5fe9) )
- ROM_LOAD16_BYTE( "ya-001-009-t60.u41", 0x000001, 0x40000, CRC(caa5e3c1) SHA1(63cccc5479040a02872febc8d7f2d46096e138d1) )
-
- ROM_REGION( 0x400, "proms", 0 ) /* Colours */
- ROM_LOAD16_BYTE( "ya-010.prom", 0x000, 0x200, CRC(778094b3) SHA1(270329a0d544dc7a8240d6dab08ccd54ea87ab70) )
- ROM_LOAD16_BYTE( "ya-011.prom", 0x001, 0x200, CRC(bd4fe2f6) SHA1(83d9f9db3fbfa2d172f5227c397ea4d5a9687015) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "ya-001-013.u71", 0x00000, 0x80000, CRC(2bccaf47) SHA1(1658643444d575410f11b648e0d7ae6c43fcf1ea) )
- ROM_LOAD( "ya-001-012.u64", 0x80000, 0x80000, CRC(a8015ce6) SHA1(bb0b589856ec82e1fd42be9af89b07ba1d17e595) )
-ROM_END
-
-ROM_START( inttoote )
- ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "p523.v01_horse_prog_2.002", 0x000000, 0x10000, CRC(6ce6f1ad) SHA1(82e7100721ca5b1a736f6523610b1f1edf225c12) ) // 27/8/98 German
- ROM_LOAD16_BYTE( "p523.v01_horse_prog_1.003", 0x000001, 0x10000, CRC(921fcff5) SHA1(cabc4e9936621132a6fbaa1a925d205c5f04a2ae) ) // ""
- ROM_FILL( 0x020000, 0xe0000, 0xff )
- ROM_LOAD16_WORD_SWAP( "ya_002_001.u18", 0x100000, 0x80000, CRC(dd108016) SHA1(1554de4cc1a9436a1e62400cd96c9752a2098f99) )
- ROM_FILL( 0x180000, 0x80000, 0xff )
-
- ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "ya_011_007.u27", 0x000000, 0x80000, CRC(2dc7a294) SHA1(97f2aa9939a45aaa94d4aeb2fcd5b7f30204b942) )
- ROM_LOAD16_BYTE( "ya_011_006.u22", 0x000001, 0x80000, CRC(bfae01a5) SHA1(3be83972c3987e9bf722cd6db7770f074587301c) )
- ROM_LOAD16_BYTE( "p523.v01_horse_fore_3.u133", 0x0e0001, 0x10000, CRC(c38596af) SHA1(d27141e28d8f8352f065c55121412e604c199a9a) )
- ROM_LOAD16_BYTE( "p523.v01_horse_fore_4.u132", 0x0e0000, 0x10000, CRC(64ef345e) SHA1(ef5d9f293ded44a2be91278549f5db8673fc7571) )
- ROM_LOAD16_BYTE( "ya_011_005.u17", 0x100000, 0x80000, CRC(4a6c804b) SHA1(b596b9b0b3b453c26f9c7f976ff4d56eac4fac04) )
- ROM_LOAD16_BYTE( "ya_011_004.u10", 0x100001, 0x80000, CRC(eb74d2e0) SHA1(221ff6cc03ce57a7fcbe418f1c12a293990f8a7d) )
- ROM_LOAD16_BYTE( "p523.v01_horse_fore_2.u134", 0x1e0000, 0x10000, CRC(26fb0339) SHA1(a134ecef00f690c82c8bddf26498b357ccf8d5c3) )
- ROM_LOAD16_BYTE( "p523.v01_horse_fore_1.u135", 0x1e0001, 0x10000, CRC(3a75df30) SHA1(f3b3a7428e3e125921686bc9aacde6b28b1947b5) )
-
- ROM_REGION( 0xc0000, "gfx2", 0 ) /* Layer 1 */
- ROM_LOAD16_BYTE( "ya_011_008.u35", 0x000000, 0x40000, CRC(4b890f83) SHA1(fde6544898a0691b550f3045803f2e81cfeb5fe9) )
- ROM_LOAD16_BYTE( "ya_011_009.u41", 0x000001, 0x40000, CRC(caa5e3c1) SHA1(63cccc5479040a02872febc8d7f2d46096e138d1) )
- ROM_LOAD16_BYTE( "p523.v01_horse_back_1.u137", 0x080000, 0x20000, CRC(39b221ea) SHA1(3b3367430733ed36d6a981cd2ec6df731d07c089) )
- ROM_LOAD16_BYTE( "p523.v01_horse_back_2.u136", 0x080001, 0x20000, CRC(9c5e32a0) SHA1(964734a626b5c7b9d7130addc642895df520dcb7) )
-
- ROM_REGION( 0x400, "proms", 0 ) /* Colours */
- ROM_LOAD16_BYTE( "ya-010.prom", 0x000, 0x200, CRC(778094b3) SHA1(270329a0d544dc7a8240d6dab08ccd54ea87ab70) )
- ROM_LOAD16_BYTE( "ya-011.prom", 0x001, 0x200, CRC(bd4fe2f6) SHA1(83d9f9db3fbfa2d172f5227c397ea4d5a9687015) )
-
- ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
- ROM_LOAD( "ya_011_013.u71", 0x00000, 0x80000, CRC(2bccaf47) SHA1(1658643444d575410f11b648e0d7ae6c43fcf1ea) )
- ROM_LOAD( "ya_011_012.u64", 0x80000, 0x80000, CRC(a8015ce6) SHA1(bb0b589856ec82e1fd42be9af89b07ba1d17e595) )
-ROM_END
-
-/***************************************************************************
-
-The Roulette (Visco)
-
-PCB P0-047A
-
-3x8 DSW
-SETA X1-004 (826100) (input)
-SETA X1-010 (811101) (sound)
-MC68B50P (ACIA)
-uPD4911C (RTC)
-M68000
-16MHz OSC, near CPU
-SETA X1-002A (sprites, near 005 - 008)
-SETA X1-001A (sprites, "")
-SETA X1-007 (737100)
-SETA X1-011
-SETA X1-012
- _____________________________________________________________________________________________________________________
-| W T S R P N M L K J H F E D C B A |
-| __________ _______ _______ _______ _______ ______________________________ |
-| |Hd74LS74AF| |UF0 | |UF0 | |UF0 | |UF0 | | | |
-| |__________| |008 | |007 | |006 | |005 | | | 1|
-| __________________ | | | | | | | | | | |
-| |UF0_009 W15| |TOSHIBA| |TOSHIBA| |TOSHIBA| |TOSHIBA| | | |
-| | | | | | | | | | | | | |
-| | 4M | |TMM2725| |TMM2725| |TMM2725| |TMM2725| __ |______________________________| 2|
-| |U13 | |6AD_20 | |6AD_20 | |6BD_15 | |6BD_15 | | | __ |
-| |__________________| | | | | | | | | | | | | __ |
-| __________________ | | | | | | | | |S | | | __ | | 3|
-| |UF0_010 W16| | | | | | | | | | | |T | | | | | |
-| | | | | | | | | | | | | | | | | |U | |
-| | 4M | |_______| |_______| |_______| |_______| |__| | | |A1| | | 4|
-| |U15 | __ |__| | | | | |
-| |__________________| | | _______________________________ _____ | | |__| __________________ |
-| __________________ | | | | |XTAL | |__| |UF1 002 | |
-| |UF0_011 W17| | | | SETA | | | __ | | 5|
-| | | | | | 8820KX | |16MHz| | | __ __ | | |
-| | 4M | | | | X1_002A | | | | | | | | | |27512 | |
-| |U22 | |__| | | | | |B | | | | | |__________________| 6|
-| |__________________| | | |_____| | | |V | |W | __________________ |
-| __________________ |_______________________________| | | | | | | |UF1 003 | |
-| |UF0_012 W18| __ __ |__| | | | | | | |
-| | | | | _______________________________ | | |__| |__| | | 7|
-| | 4M | | | | | | | |27512 | |
-| |U29 | | | | SETA | | | __ __ |__________________| |
-| |__________________| | | | 8836KX | |X | | | | | |
-| __________________ | | | X1_001A | | | | | | | |
-| |UF0_013 W19| |__| | | | | |D | |D | 8|
-| | | | | | | | | | | __________________ |
-| | 4M | |_______________________________| | | | | | | | TMM2063AP_12 | |
-| |U37 | |__| |__| |__| |__________________| |
-| |__________________| __ __ __ |
-| __________________ | | | | | | __ 9|
-| |UF0_014 W20| ____________ | | | | | | | | __________________ |
-| | | | | __________________ | | | | | | | | | | |
-| | 4M | | SETA | | TMM2063AP_10 | |Y | |A | |A | |S | |__________________| |
-| |U38 | | X1_011 | |__________________| | | | | | | | | _______________ |
-| |__________________| | | | | | | | | | | | | |
-| __________________ | | | | | | | | | | | MC68B50P | |
-| |UF0_015 W21| |____________| | | | | | | |__| | T6A J8905 | 10|
-| | | |__| |__| |__| | | |
-| | 4M | |_______________| |
-| |U40 | |
-| |__________________| _______ __ __ __ |
-| __________________ ____________ | | | | | | | | |
-| |UF0_016 W22| | | | | | | | | | | |
-| | | | SETA | |_______| | | | | | | ___ O |
-| | | | X1_012 | |A | |Z | |A | O | |#| F 11|
-| | | | | | | | | | | __ N |___| F |
-| |__________________| | | | | | | | | | | _________ |
-| ___________ |____________| | | | | | | | | |74HC00AP | |
-| | | | | | | | | | | |_________| |
-| |___________| |__| |__| |__| |A2| 12|
-| ___________ | | |
-| | | __ | | |
-| |___________| __ __ __ _______ __ __ | | |__| ________________ |
-| | | | | | | | | | | | | | | | TMM2063AP_12 | 13|
-| __________________ | | | | | | | | | | | | |A | |________________| |
-| | | |L | |I | |K | |_______| |C | |B | | | ___________________ |
-| | SETA | | | | | | | | | | | | | |UF1 004 | |
-| | X1_007 | | | | | | | | | | | | | | | 14|
-| | 737100 | |__| |__| |__| |__| |__| |__| | TC571001D_20 | |
-| |__________________| __ | | |
-| __________ | | |___________________| |
-| | | __ __ __ __ __ __ __ | | ____ 15|
-| |__________| | | | | | | | | | | | | | | | | __________ __ | | |
-| | | | | | | | | | | | | | | |A | | | | | | | |
-| __________ | | |C | |G | |F | |E | |D | | | | | | SETA | | | |DIP1| |
-| ___ O | | | | | | | | | | | | | | | | | | | X1_010 | |H | | | 16|
-| O |#| | F |__________| | | | | | | | | | | | | | | | | | 811101 | | | | | |
-| N |___| F |__| |__| |__| |__| |__| |__| |__| |__| |__________| | | |____| |
-| __________ _______ _________ _________ |__| ____ |
-| | O | | M | | I | | I | | | 17|
-| |__________| |_______| |_________| |_________| __________ __ | | |
-| ___ __________ _______ ________ |74HC273AP | | | |DIP2| |
-| | | | O | | N | | I | _________ |__________| | | | | |
-| |___| |__________| |_______| |________| | J | __________ |H | | | 18|
-| |_________| |74HC273AP | | | |____| |
-| ________ |__________| | | ____ |
-| | P | |__| | | 19|
-| |________| _____________________ | | |
-| ___ _______ ________ _________ __________ | SETA X1_004 | |DIP3| |
-| | | | Q | | Q | | Q | | P | | 826100 | | | 20|
-| |___| |_______| |________| |_________| |__________| | | | | |
-| |_____________________| |____| |
-| ________ _________ __________ ___________ _________ _________ |
-| | | | | | R | | A | | Q | | Q | 21|
-| |________| |_________| |__________| |___________| |_________| |_________| |
-| |
-| _ _ |
-| | | | | 22|
-| |_| |_| |
-| |
-| 23|
-| _______ |||||||||||||||||||||||||||||||||||||||||||||||||||||| __ ||||||| _____ |
-| | |||||||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||| | |
-|_______________________| |______________________________________________________| |_______| |_____________|
-
-
-A = 74HC245AP O = TC74HC4520P
-B = MB74LS32 P = TC4069UBP
-C = 74HC02AP Q = TC4050BP
-D = SN74HC138N R = MC14504B
-E = MC74HC32 S = 74HC367AP
-F = TC24HC27P T = M74LS04P
-G = SN74LS260N U = MC74HC20
-H = M74LS253P V = 74HC161AP
-I = 74HC74AP W = SN74LS146N
-J = TC74HC174P X = MC74F244N
-K = TC74HC157P Y = MC74F374N
-L = MB74LS08 Z = M74LS245P
-M = HD14040BP A1= 74HC60AP
-N = TC4013BP A2= D4911C
-
-
-DIP1: DIP2: DIP3:
-|___________________| |___________________| |___________________|
-| ON | | ON | | ON |
-| |_______________| | | |_______________| | | |_______________| |
-| |_|_|_|_|_|#|#|#| | | |_|_|#|#|_|_|_|_| | | |_|_|#|#|_|_|#|_| |
-| |#|#|#|#|#| | | | | | |#|#| | |#|#|#|#| | | |#|#| | |#|#| |#| |
-| |_______________| | | |_______________| | | |_______________| |
-| 1 2 3 4 5 6 7 8 | | 1 2 3 4 5 6 7 8 | | 1 2 3 4 5 6 7 8 |
-|___________________| |___________________| |___________________|
-
-***************************************************************************/
-
-ROM_START( setaroul )
- ROM_REGION( 0x0c0000, "maincpu", 0 ) /* 68000 Code */
- ROM_LOAD16_BYTE( "uf1-002.u14", 0x000000, 0x010000, CRC(b3a622b0) SHA1(bc4a02167002579149c19640e65e679b7c19fa66) )
- ROM_LOAD16_BYTE( "uf1-003.u16", 0x000001, 0x010000, CRC(a6afd769) SHA1(82c54c8a2219f20d08faf9f7afcf821d83511660) )
-
- ROM_REGION( 0x020000, "gfx1", 0 ) /* Sprites */
- ROM_LOAD16_BYTE( "uf0-005.u3", 0x010001, 0x008000, CRC(383c2d57) SHA1(3bbf0464f80f657dfa275e885fbce064a0a08f4a) )
- ROM_LOAD16_BYTE( "uf0-006.u4", 0x010000, 0x008000, CRC(90c9dae6) SHA1(a226aab82f5b8174644281fa3efab4f8a8f8d827) )
- ROM_LOAD16_BYTE( "uf0-007.u5", 0x000001, 0x008000, CRC(e72c3dba) SHA1(aaebb484e76d8f3da0ecff26c3c1bad4f3f11ac0) )
- ROM_LOAD16_BYTE( "uf0-008.u6", 0x000000, 0x008000, CRC(e198e602) SHA1(f53fa36d1ea51239e71fe1ea7432bb4b7b8b3466) )
-
- ROM_REGION( 0x400000, "gfx2", 0 ) /* Layer 1 - 8bpp */
- ROM_LOAD32_BYTE( "uf0-010.u15", 0x000000, 0x080000, CRC(0af13a56) SHA1(c294b7947d004c0e0b280ca44636e4059e05a57e) )
- ROM_LOAD32_BYTE( "uf0-012.u29", 0x000001, 0x080000, CRC(cba2a6b7) SHA1(8627eda24c6980a0e786fd9dc06176893a33c58f) )
- ROM_LOAD32_BYTE( "uf0-014.u38", 0x000002, 0x080000, CRC(da2bd4e4) SHA1(244af8705f2fa4ab3f3a002af16a0e4d60e03de8) )
- ROM_LOAD32_BYTE( "uf0-015.u40", 0x000003, 0x080000, CRC(11dc19fa) SHA1(e7084f61d075a61249d924a523c32e7993d9ae46) )
- ROM_LOAD32_BYTE( "uf0-009.u13", 0x200000, 0x080000, CRC(20f2d7f5) SHA1(343a8fac76d6ee7f845f9988c491698ebd0150d4) )
- ROM_LOAD32_BYTE( "uf0-011.u22", 0x200001, 0x080000, CRC(af60adf9) SHA1(6505cbce6e066d75b779fdbe2c034ba4daabbefe) )
- ROM_LOAD32_BYTE( "uf0-013.u37", 0x200002, 0x080000, CRC(645ec3c3) SHA1(e9b8056c68bf33b0b7130a5ce2bafd11dfd6c29b) )
- ROM_LOAD32_BYTE( "uf0-016.u48", 0x200003, 0x080000, CRC(10f99fa8) SHA1(7ef9a3f71dd071483cf3513ef57e2fcfe8702994) )
-
- ROM_REGION( 0x100000, "x1snd", ROMREGION_ERASE00 ) /* Samples */
- ROM_LOAD( "uf1-004.u52", 0x040000, 0x020000, CRC(6638054d) SHA1(f5c4a4c822ee56cfcbb4e8401253ae0a2c2c1df7) )
-
- ROM_REGION( 0x400, "proms", 0 )
- ROM_LOAD16_BYTE( "uf0-017.u50", 0x000, 0x200, CRC(bf50c303) SHA1(31685ed4849e5c27654f02945678db425d54bf5e) )
- ROM_LOAD16_BYTE( "uf0-018.u51", 0x001, 0x200, CRC(1c584d5f) SHA1(f1c7e3da8b108d78b459cae53fabb6e28d3a7ee8) )
-ROM_END
-
-READ16_MEMBER(seta_state::twineagl_debug_r)
-{
- /* At several points in the code, the program checks if four
- consecutive bytes in this range are equal to a string, and if they
- are, it fetches an address from the following 4 bytes and jumps there.
- They are probably hooks for debug routines to be found in an extra ROM.
-
- 0000 "MT00" + jump address
- 0008 "MT01" + jump address
- 0010 "MT02" + jump address
- 0018 "MT03" + jump address
- 0020 "MT04" + jump address
- 0028 "MT05" + jump address
- 0030 "MT06" + jump address
- 0038 "MT07" + jump address
- 0040 "WZ08" + jump address
- 0080 "KB00" + jump address
- 00C0 "MT18" + jump address
- 00C8 "MT19" + jump address
- 00D0 "MT1a" + jump address
- 00D8 "MT1b" + jump address
- 00E0 "MT1c" + jump address
- 00E8 "MT1d" + jump address
- 00F0 "MT1e" + jump address
- 00F8 "MT1f" + jump address
- */
-
- return 0;
-}
-
-void seta_state::init_bank6502()
-{
- u8 *rom = memregion("sub")->base();
- const u32 max = (memregion("sub")->bytes() - 0xc000) / 0x4000;
-
- if (max > 1) // if 6502 ROM is bankswitched(size is larger than 0x4000)
- {
- m_subbank->configure_entries(0, max, &rom[0xc000], 0x4000);
- if (max < 16)
- m_subbank->configure_entries(max, 16-max, &rom[0xc000], 0x4000); // Unverified : Bankswitching is Mirrored?
- }
- else
- m_subbank->configure_entries(0, 16, &rom[0xc000], 0); // Not bankswitched : for avoid crashing when accessing bank functions
-}
-
-/* Extra RAM ? Check code at 0x00ba90 */
-/* 2000F8 = A3 enables it, 2000F8 = 00 disables? see downtown too */
-READ16_MEMBER(seta_state::twineagl_200100_r)
-{
- // protection check at boot
- logerror("%04x: twineagl_200100_r %d\n",m_maincpu->pc(), offset);
- return m_twineagl_xram[offset];
-}
-WRITE16_MEMBER(seta_state::twineagl_200100_w)
-{
- logerror("%04x: twineagl_200100_w %d = %02x\n",m_maincpu->pc(), offset,data);
-
- if (ACCESSING_BITS_0_7)
- {
- m_twineagl_xram[offset] = data & 0xff;
- }
-}
-
-void seta_state::init_twineagl()
-{
- init_bank6502();
- /* debug? */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x800000, 0x8000ff, read16_delegate(*this, FUNC(seta_state::twineagl_debug_r)));
-
- /* This allows 2 simultaneous players and the use of the "Copyright" Dip Switch. */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200100, 0x20010f, read16_delegate(*this, FUNC(seta_state::twineagl_200100_r)), write16_delegate(*this, FUNC(seta_state::twineagl_200100_w)));
-}
-
-
-/* Protection? NVRAM is handled writing commands here */
-READ16_MEMBER(seta_state::downtown_protection_r)
-{
- const int job = m_downtown_protection[0xf8/2] & 0xff;
-
- switch (job)
- {
- case 0xa3:
- {
- static const u8 word[] = "WALTZ0";
- if (offset >= 0x100/2 && offset <= 0x10a/2) return word[offset - 0x100/2];
- else return 0;
- }
- default:
- return m_downtown_protection[offset] & 0xff;
- }
-}
-
-WRITE16_MEMBER(seta_state::downtown_protection_w)
-{
- COMBINE_DATA(&m_downtown_protection[offset]);
-}
-
-void seta_state::init_downtown()
-{
- init_bank6502();
-
- m_downtown_protection = make_unique_clear<u16[]>(0x200/2);
- save_pointer(NAME(m_downtown_protection),0x200/2);
-
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200000, 0x2001ff, read16_delegate(*this, FUNC(seta_state::downtown_protection_r)), write16_delegate(*this, FUNC(seta_state::downtown_protection_w)));
-}
-
-
-READ16_MEMBER(seta_state::arbalest_debug_r)
-{
- /* At some points in the code, the program checks if four
- consecutive bytes in this range are equal to a string, and if they
- are, it fetches an address from the following 4 bytes and jumps there.
- They are probably hooks for debug routines to be found in an extra ROM.
-
- 0000 "CHK1" + jump address
- 0008 "CHK2" + jump address
- */
-
- return 0;
-}
-
-void seta_state::init_arbalest()
-{
- init_bank6502();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80000, 0x8000f, read16_delegate(*this, FUNC(seta_state::arbalest_debug_r)));
-}
-
-
-READ16_MEMBER(seta_state::metafox_protection_r)
-{
- // very simplified protection simulation
- // 21c000-21c3ff, 21d000-21d3ff, and 21e000-21e3ff are tested as 8 bit reads/writes
- // the first address in each range is special and returns data written elsewhere in that range
- // 21fde0-21fdff appears to be control bytes?
-
- switch (offset)
- {
- case 0x0001/2:
- return 0x3d;
-
- case 0x1001/2:
- return 0x76;
-
- case 0x2001/2:
- return 0x10;
- }
-
- return offset * 0x1f;
-}
-
-void seta_state::init_metafox()
-{
- init_bank6502();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x21c000, 0x21ffff,read16_delegate(*this, FUNC(seta_state::metafox_protection_r)));
-}
-
-
-void seta_state::init_bankx1()
-{
- m_x1_bank->configure_entries(0, 8, memregion("x1snd")->base(), 0x40000);
-}
-
-void seta_state::init_eightfrc()
-{
- m_maincpu->space(AS_PROGRAM).nop_read(0x500004, 0x500005); // watchdog??
- init_bankx1();
-}
-
-void seta_state::init_rezon()
-{
- m_maincpu->space(AS_PROGRAM).nop_read(0x500006, 0x500007); // irq ack?
-}
-
-void seta_state::init_pairlove()
-{
- m_pairslove_protram = make_unique_clear<u16[]>(0x200/2);
- m_pairslove_protram_old = make_unique_clear<u16[]>(0x200/2);
- save_pointer(NAME(m_pairslove_protram), 0x200/2);
- save_pointer(NAME(m_pairslove_protram_old), 0x200/2);
-}
-
-void zombraid_state::init_zombraid()
-{
- /* bank 1 is never explicitly selected, 0 is used in its place */
- m_x1_bank->configure_entry(0, memregion("x1snd")->base() + 0x80000);
- m_x1_bank->configure_entries(1, 7, memregion("x1snd")->base() + 0x80000, 0x80000);
-}
-
-void seta_state::init_wiggie()
-{
- u8 temp[16];
- u8 *src = memregion("maincpu")->base();
- int len = memregion("maincpu")->bytes();
- for (int i = 0; i < len; i += 16)
- {
- std::copy(&src[i], &src[i+16], std::begin(temp));
- for (int j = 0; j < 16; j++)
- {
- static const int convtable[16] =
- {
- 0x0, 0x1, 0x8, 0x9,
- 0x2, 0x3, 0xa, 0xb,
- 0x4, 0x5, 0xc, 0xd,
- 0x6, 0x7, 0xe, 0xf
- };
-
- src[i+j] = temp[convtable[j]];
- }
-
- }
-}
-
-void seta_state::init_crazyfgt()
-{
- u16 *RAM = (u16 *) memregion("maincpu")->base();
-
- // protection check at boot
- RAM[0x1078/2] = 0x4e71;
-
- // fixed priorities?
-}
-
-void jockeyc_state::init_inttoote()
-{
- // code patches due to unemulated protection (to be removed...)
- u16 *ROM = (u16 *)memregion( "maincpu" )->base();
-
- ROM[0x4de0/2] = 0x4e71; // hardware test errors
- ROM[0x4de2/2] = 0x4e71;
-
- ROM[0x368a/2] = 0x50f9; // betting count down
-}
-
-
-/***************************************************************************
-
- Game Drivers
-
-***************************************************************************/
-
-/* 68000 + 65C02 */
-GAME( 1987, tndrcade, 0, tndrcade, tndrcade, seta_state, init_bank6502, ROT270, "Seta (Taito license)", "Thundercade / Twin Formation" , 0) // Title/License: DSW
-GAME( 1987, tndrcadej, tndrcade, tndrcade, tndrcadj, seta_state, init_bank6502, ROT270, "Seta (Taito license)", "Tokusyu Butai U.A.G. (Japan)" , 0) // License: DSW
-
-GAME( 1988, twineagl, 0, twineagl, twineagl, seta_state, init_twineagl, ROT270, "Seta (Taito license)", "Twin Eagle - Revenge Joe's Brother" , 0) // Country/License: DSW
-
-GAME( 1989, downtown, 0, downtown, downtown, seta_state, init_downtown, ROT270, "Seta", "DownTown / Mokugeki (set 1)" , 0) // Country/License: DSW
-GAME( 1989, downtown2, downtown, downtown, downtown, seta_state, init_downtown, ROT270, "Seta", "DownTown / Mokugeki (set 2)" , 0) // Country/License: DSW
-GAME( 1989, downtownj, downtown, downtown, downtown, seta_state, init_downtown, ROT270, "Seta", "DownTown / Mokugeki (joystick hack)" , 0) // Country/License: DSW
-GAME( 1989, downtownp, downtown, downtown, downtown, seta_state, init_downtown, ROT270, "Seta", "DownTown / Mokugeki (prototype)" , 0) // Country/License: DSW
-
-GAME( 1989, usclssic, 0, usclssic, usclssic, usclssic_state, init_bank6502, ROT270, "Seta", "U.S. Classic" , 0) // Country/License: DSW
-
-GAME( 1989, calibr50, 0, calibr50, calibr50, seta_state, init_bank6502, ROT270, "Athena / Seta", "Caliber 50 (Ver. 1.01)" , 0) // Country/License: DSW
-
-GAME( 1989, arbalest, 0, metafox, arbalest, seta_state, init_arbalest, ROT270, "Seta", "Arbalester" , 0) // Country/License: DSW
-
-GAME( 1989, metafox, 0, metafox, metafox, seta_state, init_metafox, ROT270, "Seta", "Meta Fox" , 0) // Country/License: DSW
-
-/* 68000 */
-
-GAME( 1989?,setaroul, 0, setaroul, setaroul, setaroul_state, empty_init, ROT270, "Visco", "The Roulette (Visco)", MACHINE_CLICKABLE_ARTWORK )
-
-GAME( 1989, drgnunit, 0, drgnunit, drgnunit, seta_state, empty_init, ROT0, "Seta", "Dragon Unit / Castle of Dragon", 0 )
-
-GAME( 1989, wits, 0, wits, wits, seta_state, empty_init, ROT0, "Athena (Visco license)", "Wit's (Japan)" , 0) // Country/License: DSW
-
-GAME( 1990, thunderl, 0, thunderl, thunderl, seta_state, empty_init, ROT270, "Seta", "Thunder & Lightning" , 0) // Country/License: DSW
-GAME( 1991, thunderlbl, thunderl,thunderlbl,thunderlbl,seta_state, empty_init, ROT270, "bootleg (Hyogo)", "Thunder & Lightning (bootleg with Tetris sound, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL ) // Country/License: DSW
-GAME( 1990, thunderlbl2,thunderl,thunderlbl,thunderl, seta_state, empty_init, ROT270, "bootleg", "Thunder & Lightning (bootleg with Tetris sound, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL ) // Country/License: DSW
-
-GAME( 1994, wiggie, 0, wiggie, thunderl, seta_state, init_wiggie, ROT270, "Promat", "Wiggie Waggie", MACHINE_IMPERFECT_GRAPHICS ) // hack of Thunder & Lightning
-GAME( 1994, superbar, wiggie, superbar, thunderl, seta_state, init_wiggie, ROT270, "Promat", "Super Bar", MACHINE_IMPERFECT_GRAPHICS ) // hack of Thunder & Lightning
-
-GAME( 1990, jockeyc, 0, jockeyc, jockeyc, jockeyc_state, empty_init, ROT0, "Seta (Visco license)", "Jockey Club (v1.18)", MACHINE_CLICKABLE_ARTWORK )
-GAME( 1993, inttoote2, jockeyc, jockeyc, jockeyc, jockeyc_state, empty_init, ROT0, "bootleg (Coinmaster)", "International Toote II (v1.24, P387.V01)", MACHINE_CLICKABLE_ARTWORK )
-GAME( 1998, inttoote, jockeyc, inttoote, inttoote, jockeyc_state, init_inttoote, ROT0, "bootleg (Coinmaster)", "International Toote (Germany, P523.V01)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_CLICKABLE_ARTWORK )
-
-GAME( 1991, rezon, 0, rezon, rezon, seta_state, init_rezon, ROT0, "Allumer", "Rezon", 0 )
-GAME( 1992, rezont, rezon, rezon, rezont, seta_state, init_rezon, ROT0, "Allumer (Taito license)", "Rezon (Taito)", 0 )
-
-GAME( 1991, stg, 0, drgnunit, stg, seta_state, empty_init, ROT270, "Athena / Tecmo", "Strike Gunner S.T.G", 0 )
-
-GAME( 1991, pairlove, 0, pairlove, pairlove, seta_state, init_pairlove, ROT270, "Athena", "Pairs Love", 0 )
-
-GAME( 1992, blandia, 0, blandia, blandia, seta_state, init_bankx1, ROT0, "Allumer", "Blandia", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1992, blandiap, blandia, blandiap, blandia, seta_state, init_bankx1, ROT0, "Allumer", "Blandia (prototype)", MACHINE_IMPERFECT_GRAPHICS )
-
-GAME( 1992, blockcar, 0, blockcar, blockcar, seta_state, empty_init, ROT90, "Visco", "Block Carnival / Thunder & Lightning 2" , 0) // Title: DSW
-GAME( 1992, blockcarb, blockcar, blockcarb, blockcar, seta_state, empty_init, ROT90, "bootleg", "Block Carnival / Thunder & Lightning 2 (bootleg)", MACHINE_IMPERFECT_SOUND)
-
-GAME( 1992, qzkklogy, 0, drgnunit, qzkklogy, seta_state, empty_init, ROT0, "Tecmo", "Quiz Kokology", 0 )
-
-GAME( 1992, neobattl, 0, umanclub, neobattl, seta_state, empty_init, ROT270, "Banpresto / Sotsu Agency. Sunrise", "SD Gundam Neo Battling (Japan)", 0 )
-
-GAME( 1992, umanclub, 0, umanclub, umanclub, seta_state, empty_init, ROT0, "Banpresto / Tsuburaya Productions", "Ultraman Club - Tatakae! Ultraman Kyoudai!!", 0 )
-
-GAME( 1992, zingzip, 0, zingzip, zingzip, seta_state, empty_init, ROT270, "Allumer / Tecmo", "Zing Zing Zip", 0 ) // This set has Chinese Characters in Title screen, it distributed for Chinese market/or Title: DSW?
-GAME( 1992, zingzipbl, zingzip, zingzipbl, zingzip, seta_state, empty_init, ROT270, "bootleg", "Zing Zing Zip (bootleg)", MACHINE_NOT_WORKING )
-
-GAME( 1993, atehate, 0, atehate, atehate, seta_state, empty_init, ROT0, "Athena", "Athena no Hatena ?", 0 )
-
-GAME( 1993, daioh, 0, daioh, daioh, seta_state, empty_init, ROT270, "Athena", "Daioh", 0 )
-GAME( 1993, daioha, daioh, daioh, daioh, seta_state, empty_init, ROT270, "Athena", "Daioh (earlier)", 0 )
-GAME( 1993, daiohp, daioh, daiohp, daiohp, seta_state, empty_init, ROT270, "Athena", "Daioh (prototype)", 0 )
-GAME( 1993, daiohc, daioh, wrofaero, daioh, seta_state, empty_init, ROT270, "Athena", "Daioh (93111A PCB conversion)", 0 )
-
-GAME( 1993, jjsquawk, 0, jjsquawk, jjsquawk, seta_state, empty_init, ROT0, "Athena / Able", "J. J. Squawkers", MACHINE_IMPERFECT_SOUND )
-GAME( 1993, jjsquawko, jjsquawk, jjsquawk, jjsquawk, seta_state, empty_init, ROT0, "Athena / Able", "J. J. Squawkers (older)", MACHINE_IMPERFECT_SOUND )
-GAME( 1999, jjsquawkb, jjsquawk, jjsquawb, jjsquawk, seta_state, empty_init, ROT0, "bootleg", "J. J. Squawkers (bootleg)", MACHINE_IMPERFECT_SOUND )
-GAME( 1999, jjsquawkb2,jjsquawk, jjsquawk, jjsquawk, seta_state, empty_init, ROT0, "bootleg", "J. J. Squawkers (bootleg, Blandia Conversion)", MACHINE_IMPERFECT_SOUND )
-GAME( 2003, simpsonjr, jjsquawk, jjsquawb, jjsquawk, seta_state, empty_init, ROT0, "bootleg (Daigom Games)", "Simpson Junior (bootleg of J. J. Squawkers)", MACHINE_IMPERFECT_SOUND )
-
-GAME( 1993, kamenrid, 0, kamenrid, kamenrid, seta_state, empty_init, ROT0, "Banpresto / Toei", "Masked Riders Club Battle Race", 0 )
-
-GAME( 1993, madshark, 0, madshark, madshark, seta_state, empty_init, ROT270, "Allumer", "Mad Shark", 0 )
-
-// end credits shows Allumer as developer.
-GAME( 1993, msgundam, 0, msgundam, msgundam, seta_state, empty_init, ROT0, "Banpresto / Allumer", "Mobile Suit Gundam", 0 )
-GAME( 1993, msgundam1, msgundam, msgundam, msgundam1, seta_state, empty_init, ROT0, "Banpresto / Allumer", "Mobile Suit Gundam (Japan)", 0 )
-GAME( 1993, msgundamb, msgundam, msgundamb, msgundam, seta_state, empty_init, ROT0, "bootleg", "Mobile Suit Gundam (bootleg)", 0 )
-
-GAME( 1993, oisipuzl, 0, oisipuzl, oisipuzl, seta_state, empty_init, ROT0, "Sunsoft / Atlus", "Oishii Puzzle Ha Irimasenka", 0 )
-GAME( 1993, triplfun, oisipuzl, triplfun, oisipuzl, seta_state, empty_init, ROT0, "bootleg", "Triple Fun", 0 )
-
-GAME( 1993, qzkklgy2, 0, qzkklgy2, qzkklgy2, seta_state, empty_init, ROT0, "Tecmo", "Quiz Kokology 2", 0 )
-
-GAME( 1993, utoukond, 0, utoukond, utoukond, seta_state, empty_init, ROT0, "Banpresto / Tsuburaya Productions", "Ultra Toukon Densetsu (Japan)", 0 )
-
-GAME( 1993, wrofaero, 0, wrofaero, wrofaero, seta_state, empty_init, ROT270, "Yang Cheng", "War of Aero - Project MEIOU", 0 )
-
-GAME( 1994, eightfrc, 0, eightfrc, eightfrc, seta_state, init_eightfrc, ROT90, "Tecmo", "Eight Forces", 0 )
-
-GAME( 1994, kiwame, 0, kiwame, kiwame, kiwame_state, empty_init, ROT0, "Athena", "Pro Mahjong Kiwame", 0 )
-
-GAME( 1994, krzybowl, 0, krzybowl, krzybowl, seta_state, empty_init, ROT270, "American Sammy", "Krazy Bowl", 0 )
-
-GAME( 1994, magspeed, 0, magspeed, magspeed, seta_state, empty_init, ROT0, "Allumer", "Magical Speed", 0 )
-
-GAME( 1994, orbs, 0, orbs, orbs, seta_state, empty_init, ROT0, "American Sammy", "Orbs (10/7/94 prototype?)", 0 )
-
-GAME( 1995, keroppi, 0, keroppi, keroppi, seta_state, empty_init, ROT0, "American Sammy", "Kero Kero Keroppi's Let's Play Together (USA, Version 2.0)", 0 ) // ROM labels are all v1.0 tho.
-GAME( 1993, keroppij, keroppi, keroppij, keroppij, seta_state, empty_init, ROT0, "Sammy Industries", "Kero Kero Keroppi no Issyoni Asobou (Japan)", 0 )
-
-GAME( 1995, extdwnhl, 0, extdwnhl, extdwnhl, seta_state, empty_init, ROT0, "Sammy Industries Japan", "Extreme Downhill (v1.5)", MACHINE_IMPERFECT_GRAPHICS )
-
-GAME( 1995, gundhara, 0, gundhara, gundhara, seta_state, empty_init, ROT270, "Banpresto", "Gundhara", 0 )
-GAME( 1995, gundharac, gundhara, gundhara, gundhara, seta_state, empty_init, ROT270, "Banpresto", "Gundhara (Chinese, bootleg?)", 0 )
-
-GAME( 1995, sokonuke, 0, extdwnhl, sokonuke, seta_state, empty_init, ROT0, "Sammy Industries", "Sokonuke Taisen Game (Japan)", MACHINE_IMPERFECT_SOUND )
-
-GAME( 1995, zombraid, 0, zombraid, zombraid, zombraid_state, init_zombraid, ROT0, "American Sammy", "Zombie Raid (9/28/95, US)", MACHINE_NO_COCKTAIL )
-GAME( 1995, zombraidp, zombraid, zombraid, zombraid, zombraid_state, init_zombraid, ROT0, "American Sammy", "Zombie Raid (9/28/95, US, prototype PCB)", MACHINE_NO_COCKTAIL ) // actual code is same as the released version
-GAME( 1995, zombraidpj,zombraid, zombraid, zombraid, zombraid_state, init_zombraid, ROT0, "Sammy Industries Co.,Ltd.", "Zombie Raid (9/28/95, Japan, prototype PCB)", MACHINE_NO_COCKTAIL ) // just 3 bytes different from above
-
-GAME( 1996, crazyfgt, 0, crazyfgt, crazyfgt, seta_state, init_crazyfgt, ROT0, "Subsino", "Crazy Fight", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )