// 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 #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 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<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(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(0x200/2); m_pairslove_protram_old = make_unique_clear(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 )