summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/galaga.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/galaga.cpp')
-rw-r--r--src/mame/drivers/galaga.cpp3518
1 files changed, 0 insertions, 3518 deletions
diff --git a/src/mame/drivers/galaga.cpp b/src/mame/drivers/galaga.cpp
deleted file mode 100644
index 37b997a43ef..00000000000
--- a/src/mame/drivers/galaga.cpp
+++ /dev/null
@@ -1,3518 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Nicola Salmoria
-/***************************************************************************
-
-Bosconian (c) 1981 Namco
-Galaga (c) 1981 Namco
-Xevious (c) 1982 Namco
-Dig Dug (c) 1982 Namco
-
-driver by Nicola Salmoria
-based on previous work by Martin Scragg, Mirko Buffoni, Aaron Giles
-
-
-All these games are based on the same 3xZ80, shared memory, CPU design.
-Bosconian and Galaga use the same CPU board, with minor differences
-(Galaga has one missing RAM and no 50XX custom)
-Xevious is physically different, but logically identical.
-Dig Dug is the only one a bit different, because it reads the dip switches
-through a custom chip instead of having them mapped in memory.
-
-The video board, on the other hand, is completely different for all the games,
-that's why they use separate video/ source files.
-
-
-Custom ICs:
-----------
-Bosconian:
----------
-CPU board:
-06XX interface to custom 5xXX
-07XX clock divider
-08XX(x3) bus controller
-50XX player score control (protection)
-51XX I/O
-54XX explosion sound generator
-
-Video board:
-03XX(x2) ?
-05XX starfield generator
-06XX interface to custom 5xXX
-07XX clock divider
-50XX player score control (only used as protection check)
-52XX sample player
-
-Galaga:
-------
-CPU board:
-06XX interface to custom 5xXX
-07XX clock divider
-08XX(x3) bus controller
-51XX I/O
-54XX explosion sound generator
-
-Video board:
-00XX tilemap address generator with scrolling capability (only Super Pacman)
-02XX gfx data shifter and mixer (16-bit in, 4-bit out)
-04XX sprite address generator
-05XX starfield generator
-07XX clock divider
-
-Xevious:
--------
-CPU board:
-06XX interface to custom 5xXX
-07XX clock divider
-08XX(x3) bus controller
-50XX player score control (only used for a protection check on startup)
-51XX I/O
-54XX explosion sound generator
-
-Video board:
-03XX(x2) ?
-04XX sprite address generator
-07XX clock divider
-11XX(x2) gfx data shifter and mixer (16-bit in, 4-bit out)
-12XX sprite generator
-13XX dual scrolling tilemap address generator
-
-Dig Dug:
--------
-CPU board:
-06XX interface to custom 5xXX
-07XX clock divider
-08XX(x3) bus controller
-51XX I/O
-53XX I/O
-
-Video board:
-00XX tilemap address generator
-02XX gfx data shifter and mixer (16-bit in, 4-bit out)
-04XX sprite address generator
-07XX clock divider
-
-
-Memory maps:
------------
-Bosconian:
----------
-MAIN CPU:
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-0000xxxxxxxxxxxx R xxxxxxxx ROM 3N program ROM
-0001xxxxxxxxxxxx R xxxxxxxx ROM 3M program ROM
-0010xxxxxxxxxxxx R xxxxxxxx ROM 3L program ROM
-0011xxxxxxxxxxxx R xxxxxxxx ROM 3K program ROM
-the rest of the memory map is common to the other CPUs
-
-SUB CPU:
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-0000xxxxxxxxxxxx R xxxxxxxx ROM 3J program ROM
-0001xxxxxxxxxxxx R xxxxxxxx ROM 3H program ROM
-0010------------ n.c.
-0011------------ n.c.
-the rest of the memory map is common to the other CPUs
-
-SOUND CPU:
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-0000xxxxxxxxxxxx R xxxxxxxx ROM 3E program ROM
-0001------------ n.c.
-0010------------ n.c.
-0011------------ n.c.
-the rest of the memory map is common to the other CPUs
-
-COMMON:
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-01000----------- n.c.
-01001----------- n.c.
-01010----------- n.c.
-01011----------- n.c.
-01100----------- n.c.
-01101-----00xxxx W ----xxxx RAM 2A \ sound control registers
-01101-----01xxxx W ----xxxx RAM 2B /
-01101-----10-000 W -------x IRQ1 main CPU irq enable/acknowledge
-01101-----10-001 W -------x IRQ2 motion CPU irq enable/acknowledge
-01101-----10-010 W -------x NMION sound CPU nmi enable
-01101-----10-011 W -------x RESET reset sub and sound CPU, and 5xXX chips on CPU board
-01101-----10-100 W -------x n.c.
-01101-----10-101 W -------x MOD 0 unused?
-01101-----10-110 W -------x MOD 1 unused?
-01101-----10-111 W -------x MOD 2 unused?
-01101-----11---- W -------- WDR watchdog reset
-01101-----00-xxx R -------x DIP SW dip switch B
-01101-----00-xxx R ------x- DIP SW dip switch A
-01101-----01---- R n.c.
-01101-----10---- R n.c.
-01101-----11---- R n.c.
-01110--0-------- R/W xxxxxxxx I/O custom 06XX data
-01110--1-------- R/W xxxxxxxx I/O custom 06XX control
-01111xxxxxxxxxxx R/W xxxxxxxx RAM 2N work RAM (not present in Galaga)
-10000xxxxxxxxxxx R/W xxxxxxxx DHRAM tilemap RAM (tile code) [1]
-10001xxxxxxxxxxx R/W xxxxxxxx VCRAM tilemap RAM (tile attr) [1]
-10010--0-------- R/W xxxxxxxx EXCS custom 06XX #2 data
-10010--1-------- R/W xxxxxxxx EXCS custom 06XX #2 control
-10011----000xxxx W ----xxxx SOWR bullets shape and X pos msb [2]
-10011----001---- W xxxxxxxx POSI X playfield X scroll
-10011----010---- W xxxxxxxx POSI Y playfield Y scroll
-10011----011---- W -----xxx STAR to 05XX: starfield X scroll speed
-10011----011---- W --xxx--- STAR to 05XX: starfield Y scroll speed
-10011----100---- W -------- STARCLR to 05XX: unknown
-10011----101---- W n.c.
-10011----110---- W n.c.
-10011----111-000 W -------x FLIP flip screen
-10011----111-001 W -------x n.c.
-10011----111-010 W -------x n.c.
-10011----111-011 W -------x n.c.
-10011----111-100 W -------x BLK 0 \ to 05XX: starfield blink
-10011----111-101 W -------x BLK 1 / (select active subset)
-10011----111-110 W -------x n.c.
-10011----111-111 W -------x RESET reset 5xXX chips on video board
-10100----------- n.c.
-10101----------- n.c.
-10110----------- n.c.
-10111----------- n.c.
-
-[1] 1st half is radar + sprite registers, 2nd half is scrolling playfield
-[2] SO = Small Objects? Only locations 4-F are used.
-
-
-Galaga:
-------
-MAIN CPU:
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-0000xxxxxxxxxxxx R xxxxxxxx ROM 3N program ROM
-0001xxxxxxxxxxxx R xxxxxxxx ROM 3M program ROM
-0010xxxxxxxxxxxx R xxxxxxxx ROM 3L program ROM
-0011xxxxxxxxxxxx R xxxxxxxx ROM 3K program ROM
-the rest of the memory map is common to the other CPUs
-
-SUB CPU:
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-0000xxxxxxxxxxxx R xxxxxxxx ROM 3J program ROM
-0001------------ n.c.
-0010------------ n.c.
-0011------------ n.c.
-the rest of the memory map is common to the other CPUs
-
-SOUND CPU:
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-0000xxxxxxxxxxxx R xxxxxxxx ROM 3E program ROM
-0001------------ n.c.
-0010------------ n.c.
-0011------------ n.c.
-the rest of the memory map is common to the other CPUs
-
-COMMON:
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-01000----------- n.c.
-01001----------- n.c.
-01010----------- n.c.
-01011----------- n.c.
-01100----------- n.c.
-01101-----00---- W ----xxxx RAM 2A \ sound control registers
-01101-----01---- W ----xxxx RAM 2B /
-01101-----10-000 W -------x IRQ1 main CPU irq enable/acknowledge
-01101-----10-001 W -------x IRQ2 motion CPU irq enable/acknowledge
-01101-----10-010 W -------x NMION sound CPU nmi enable
-01101-----10-011 W -------x RESET reset sub and sound CPU, and 5xXX chips on CPU board
-01101-----10-100 W -------x n.c.
-01101-----10-101 W -------x MOD 0 unused?
-01101-----10-110 W -------x MOD 1 unused?
-01101-----10-111 W -------x MOD 2 unused?
-01101-----11---- W -------- WDR watchdog reset
-01101-----00-xxx R -------x DIP SW dip switch B
-01101-----00-xxx R ------x- DIP SW dip switch A
-01101-----01---- R n.c.
-01101-----10---- R n.c.
-01101-----11---- R n.c.
-01110--0-------- R/W xxxxxxxx I/O custom 06XX data
-01110--1-------- R/W xxxxxxxx I/O custom 06XX control
-10000xxxxxxxxxxx R/W xxxxxxxx RAM 1K tilemap RAM
-10001-xxxxxxxxxx R/W xxxxxxxx RAM 3E/3F work RAM
-10001-111xxxxxxx R/W xxxxxxxx portion holding sprite registers
-10010-xxxxxxxxxx R/W xxxxxxxx RAM 3K/3L work RAM
-10010-111xxxxxxx R/W xxxxxxxx portion holding sprite registers
-10011-xxxxxxxxxx R/W xxxxxxxx RAM 3H/3J work RAM
-10011-111xxxxxxx R/W xxxxxxxx portion holding sprite registers
-10100--------000 W -------x \
-10100--------001 W -------x > to 05XX: starfield X scroll speed
-10100--------010 W -------x /
-10100--------011 W -------x \ to 05XX: starfield blink
-10100--------100 W -------x / (select active subset)
-10100--------101 W -------x to 05XX: unknown. It is the same as STARCLR in Bosconian
-10100--------110 W -------x n.c.
-10100--------111 W -------x FLIP flip screen
-10101----------- n.c.
-10110----------- n.c.
-10111----------- n.c.
-
-
-Namco vs Midway ROM names and locations
----------------------------------------
-Location ID Location ID
--------- ---- -------- -----
-CPU 3P GG1-1 CPU 3N 3200A
-CPU 3M GG1-2 CPU 3M 3300B
-CPU 2M GG1-3 CPU 3L 3400C
-CPU 2L GG1-4 CPU 3K 3500D
-CPU 3F GG1-5 CPU 3J 3600E
-CPU 2C GG1-7 CPU 3E 3700G
-CPU 1D GG1-1[bpr] CPU 1D
-CPU 5C GG1-2[bpr] CPU 5C
-
-VID 4L GG1-9 VID 4L 2600J
-VID 4F GG1-10 VID 4F 2700K
-VID 4D GG1-11 VID 4D 2800L
-VID 1C GG1-3[bpr] VID 1C
-VID 2N GG1-4[bpr] VID 2N
-VID 5N GG1-5[bpr] VID 5N
-
-
-Xevious:
--------
-MAIN CPU:
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-000xxxxxxxxxxxxx R xxxxxxxx ROM 1 program ROM
-001xxxxxxxxxxxxx R xxxxxxxx ROM 2 program ROM
-the rest of the memory map is common to the other CPUs
-
-MOTION CPU:
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-000xxxxxxxxxxxxx R xxxxxxxx ROM 3 program ROM
-the rest of the memory map is common to the other CPUs
-
-SOUND CPU:
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-00-xxxxxxxxxxxxx R xxxxxxxx ROM 4 program ROM
-the rest of the memory map is common to the other CPUs
-
-COMMON:
-a small part of the decoding for the video board is done by a PAL so it is inferred by program behaviour
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-01000----------- n.c.
-01001----------- n.c.
-01010----------- n.c.
-01011----------- n.c.
-01100----------- n.c.
-01101-----00---- W ----xxxx SRAM 0 \ sound control registers
-01101-----01---- W ----xxxx SRAM 1 /
-01101-----10-000 W -------x IRQ1 main CPU irq enable/acknowledge
-01101-----10-001 W -------x IRQ2 motion CPU irq enable/acknowledge
-01101-----10-010 W -------x NMION sound CPU nmi enable
-01101-----10-011 W -------x RESET reset sub and sound CPU, and 5xXX chips on CPU board
-01101-----10-100 W -------x n.c.
-01101-----10-101 W -------x n.c.
-01101-----10-110 W -------x n.c.
-01101-----10-111 W -------x n.c.
-01101-----11---- W -------- WDR watchdog reset
-01101-----00-xxx R -------x DIP SW dip switch B
-01101-----00-xxx R ------x- DIP SW dip switch A
-01101-----01---- R n.c.
-01101-----10---- R n.c.
-01101-----11---- R n.c.
-01110--0-------- R/W xxxxxxxx I/O custom 06XX data
-01110--1-------- R/W xxxxxxxx I/O custom 06XX control
-01111xxxxxxxxxxx R/W xxxxxxxx work RAM
-1000-xxxxxxxxxxx R/W xxxxxxxx work RAM
-1000-1111xxxxxxx R/W xxxxxxxx portion holding sprite registers (x, y)
-1001-xxxxxxxxxxx R/W xxxxxxxx work RAM
-1001-1111xxxxxxx R/W xxxxxxxx portion holding sprite registers (flip, size)
-1010-xxxxxxxxxxx R/W xxxxxxxx work RAM
-1010-1111xxxxxxx R/W xxxxxxxx portion holding sprite registers (sprite number & color)
-10110xxxxxxxxxxx R/W xxxxxxxx PF0 fg tilemap RAM (tile attributes)
-10111xxxxxxxxxxx R/W xxxxxxxx PF1 bg tilemap RAM (tile attributes)
-11000xxxxxxxxxxx R/W xxxxxxxx PF2 fg tilemap RAM (tile code)
-11001xxxxxxxxxxx R/W xxxxxxxx PF3 bg tilemap RAM (tile code)
-1101-----000---x W xxxxxxxx bg X scroll (9-bit data: A0 is the msb)
-1101-----001---x W xxxxxxxx fg X scroll (9-bit data: A0 is the msb)
-1101-----010---x W xxxxxxxx bg Y scroll (9-bit data: A0 is the msb)
-1101-----011---x W xxxxxxxx fg Y scroll (9-bit data: A0 is the msb)
-1101-----111---- W -------x FLIP flip screen
-1110------------ n.c.
-1111-----------0 W xxxxxxxx BS0 \ address to read from background data ROMs
-1111-----------1 W xxxxxxxx BS1 / (see xevious_bb_r)
-1111-----------0 R xxxxxxxx BB0 \ read from background data ROMs
-1111-----------1 R xxxxxxxx BB1 /
-
-
-Namco vs Atari ROM names and locations
---------------------------------------
-Location ID Location ID
--------- ---- -------- ----------
-CPU 3P XVI-1 CPU 1M 136018-118
-CPU 3M XVI-2 " " " "
-CPU 2M XVI-3 CPU 1L 136018-119
-CPU 2L XVI-4 " " " "
-CPU 3F XVI-5 CPU 4C 136018-120
-CPU 3J XVI-6 " " " "
-CPU 2C XVI-7 CPU 2C 136018-127
-CPU 5N XVI-1[bpr] CPU 6M 136018-028
-CPU 7N XVI-2[bpr] CPU 8M 136018-029
-
-VID 2A XVI-9 VID 2A 136018-101
-VID 2B XVI-10 VID 2B 136018-102
-VID 2C XVI-11 VID 2C 136018-103
-VID 3B XVI-12 VID 3B 136018-104
-VID 3C XVI-13 VID 3C 136018-105
-VID 3D XVI-14 VID 3D 136018-106
-VID 4M XVI-15 VID 4M 136018-107
-VID 4N XVI-16 VID 4N 136018-108
-VID 4P XVI-17 VID 4P 136018-109
-VID 4R XVI-18 VID 4R 136018-110
-VID 3L XVI-4[bpr] VID 3L 136018-011
-VID 3M XVI-5[bpr] VID 3M 136018-012
-VID 4F XVI-6[bpr] VID 4F 136018-013
-VID 4H XVI-7[bpr] VID 4H 136018-014
-VID 6A XVI-8[bpr] VID 6A 136018-015
-VID 6D XVI-9[bpr] VID 6D 136018-016
-VID 6E XVI-10[bpr] VID 6E 136018-017
-
-
-Dig Dug:
--------
-MAIN CPU:
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-0000xxxxxxxxxxxx R xxxxxxxx ROM 0 program ROM
-0001xxxxxxxxxxxx R xxxxxxxx ROM 1 program ROM
-0010xxxxxxxxxxxx R xxxxxxxx ROM 2 program ROM
-0011xxxxxxxxxxxx R xxxxxxxx ROM 3 program ROM
-the rest of the memory map is common to the other CPUs
-
-SUB CPU:
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-0000xxxxxxxxxxxx R xxxxxxxx ROM 4 program ROM
-0001xxxxxxxxxxxx R xxxxxxxx ROM 5 program ROM
-0010------------ n.c.
-0011------------ n.c.
-the rest of the memory map is common to the other CPUs
-
-SOUND CPU:
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-0000xxxxxxxxxxxx R xxxxxxxx ROM 6 program ROM
-0001xxxxxxxxxxxx R xxxxxxxx ROM 7 program ROM (optional, not used)
-0010------------ n.c.
-0011------------ n.c.
-the rest of the memory map is common to the other CPUs
-
-COMMON:
-
-Address Dir Data Name Description
----------------- --- -------- --------- -----------------------
-01000----------- n.c.
-01001----------- n.c.
-01010----------- n.c.
-01011----------- n.c.
-01100----------- n.c.
-01101-----00---- W ----xxxx AUDIO 0 \ sound control registers
-01101-----01---- W ----xxxx AUDIO 1 /
-01101-----10-000 W -------x IRQ1 main CPU irq enable/acknowledge
-01101-----10-001 W -------x IRQ2 sub CPU irq enable/acknowledge
-01101-----10-010 W -------x NMION sound CPU nmi enable
-01101-----10-011 W -------x RESET reset sub and sound CPU, and 5xXX chips on CPU board
-01101-----10-100 W -------x n.c.
-01101-----10-101 W -------x MOD 0 \
-01101-----10-110 W -------x MOD 1 | to custom 53XX
-01101-----10-111 W -------x MOD 2 /
-01101-----11---- W -------- WDDIS watchdog reset
-01110--0-------- R/W xxxxxxxx I/O custom 06XX data
-01110--1-------- R/W xxxxxxxx I/O custom 06XX control
-01111----------- n.c.
-10000xxxxxxxxxxx R/W xxxxxxxx RAM 0 tilemap RAM + work RAM
-10001-xxxxxxxxxx R/W xxxxxxxx OBJRAM work RAM
-10001-111xxxxxxx R/W xxxxxxxx portion holding sprite registers (sprite number and color)
-10010-xxxxxxxxxx R/W xxxxxxxx POSRAM work RAM
-10010-111xxxxxxx R/W xxxxxxxx portion holding sprite registers (x and y)
-10011-xxxxxxxxxx R/W xxxxxxxx FLPRAM work RAM
-10011-111xxxxxxx R/W xxxxxxxx portion holding sprite registers (flip)
-10100--------000 W -------x \ background ROM (114) bank select
-10100--------001 W -------x /
-10100--------010 W -------x tilemap color select (low or high 4 bits of tilemap RAM)
-10100--------011 W -------x background enable
-10100--------100 W -------x \ background color lookup PROM (112) bank select
-10100--------101 W -------x /
-10100--------110 W -------x n.c.
-10100--------111 W -------x FLIP flip screen
-10101----------- n.c.
-10110----------- n.c.
-10111----0xxxxxx W xxxxxxxx EAROM non volatile memory address latch and data write
-10111----0------ R xxxxxxxx EAROM non volatile memory read
-10111----1------ W ----xxxx EAROM non volatile memory control
-
-
-
-Namco vs Atari ROM names and locations
---------------------------------------
-The Namco version is composed of two boards, while the Atari version is
-single board. There are two revisions of the Atari version.
-
-Location ID Location Location ID
- (type 1) (type 2)
--------- ---- -------- -------- ----------
-CPU 3P DD1-1 6L 2C/D 136007-101
-CPU 3M DD1-2 6M 2E 136007-102
-CPU 2M DD1-3 6N/P 2B/C 136007-103
-CPU 2L DD1-4 6R 2A 136007-104
-CPU 3F DD1-5 6C 2P 136007-105
-CPU 3J DD1-6 6D 2N 136007-106
-CPU 2C DD1-7 5L 2K/L 136007-107
-CPU 5N [bpr] 2K/L 10A 136007-109
-CPU 7N [bpr] 2P 11A 136007-110
-
-VID 2C DD1-9 8R 5K 136007-108
-VID 1C [bpr] 4G 8F 136007-111
-VID 2N [bpr] 10K/L 4N 136007-112
-VID 5N [bpr] 1R 8L 136007-113
-VID 2D DD1-10 9N 4J 136007-114
-VID 5C DD1-11 10C/D 4F 136007-115
-VID 5F DD1-12 7A/B 5B 136007-119
-VID 5H DD1-13 8A/B 5A 136007-118
-VID 5J DD1-14 7C 5C 136007-117
-VID 5K DD1-15 8C 5D 136007-116
-
-
-
-Gatsbee (Galaga mod/bootleg)
-----------------------------
-This game runs on modified bootleg Galaga hardware (blue board with PCB numbers DG-09-02 and DG-07-02)
-
-ROM8: is a 2764. pins 1, 26, 27, 28 tied together.
- pin2 out of socket, has wire that is tied to pin 4 of a LS259 that sits on top of the main Z80
- CPU located at 5B/6B
-
-Z80: There are 2 logic chips sitting on top of it which are wired up to the Z80 and to each other.
- Looks like this....
- |-------------------|
- | LS32 LS259 <
- |-------------------|
-
-Bend all the legs outwards.
-Line up the LS259 so pin 16 is in line with Z80 pin 11
-Line up the LS32 so pin 7 is in line with Z80 pin 29
-Atach the 2 chips to the top of the Z80 with some glue
-Connect like this....
-
-LS32 pin 1 tied to Z80 pin 22 (WR)
-LS32 pin 2 tied to Z80 pin 19 (MREQ)
-LS32 pin 3,4 tied together
-LS32 pin 5 tied to Z80 pin 4 (A14)
-LS32 pin 6 tied to pin 10 LS32
-LS32 pin 7 tied to Z80 pin 29 (GND)
-LS32 pin 8 tied to LS259 pin 14
-LS32 pin 9 tied to Z80 pin 5 (A15)
-LS32 pins 11, 12, 13 have NC
-LS32 pin 14 tied to Z80 pin 11 (+5V)
-
-LS259 pin 1 tied to Z80 pin 30 (A0)
-LS259 pin 2 tied to Z80 pin 31 (A1)
-LS259 pin 3 tied to Z80 pin 32 (A2)
-LS259 pin 4 to ROM 8 (as above)
-LS259 pins 5, 6, 7 have NC
-LS259 pin 8 tied to Z80 pin 29 (GND)
-LS259 pins 9, 10, 11, 12 have NC
-LS259 pin 13 tied to Z80 pin 14 (D0)
-LS259 pin 15 tied to Z80 pin 26 (RESET)
-LS259 pin 16 tied to Z80 pin 11 (+5V)
-
-
-
-Easter eggs:
------------
-- Bosconian:
- - enter service mode
- - keep B1 pressed and enter the following sequence:
- 5xU 6xR 1xD 4xL
- (c) 1981 NAMCO LTD. will be added at the bottom of the screen.
-
-- Galaga:
- - enter service mode
- - keep B1 pressed and enter the following sequence:
- 5xR 6xL 3xR 7xL
- (c) 1981 NAMCO LTD. will appear on the screen.
-
-- Xevious:
- - start a game
- - go to the bottom right of the screen and keep B2 pressed
- NAMCO ORIGINAL
- program by EVEZOO
- will be written at the bottom of the screen
- In Super Xevious this is changed to
- special thanks for you
- by game designer EVEZOO
-
-- Dig Dug:
- - enter service mode
- - keep B1 pressed and enter the following sequence:
- 6xU 3xR 4xD 8xL
- (c) 1982 NAMCO LTD. will appear on the screen.
-
-
-Notes:
------
-- The Cabinet Type "dip switch" actually comes from the edge connector, but is mapped
- in memory in place of dip switch #8. dip switch #8 selects single/dual coin counters
- and is entirely handled by hardware.
-
-- galaga: there is a bug in the sound CPU program. During initialization, it enables
- NMI before clearing RAM, but the NMI handler doesn't save the registers, so it cannot
- interrupt program execution. If the NMI happens before the LDIR that clears RAM has
- finished, the program will crash.
-
-- galaga: there were "fast shoot" hacks available, which are not supported.
- Their effects can be replicated with this line in cheat.dat:
- galaga:1:070D:0D:100:Fast Shoot
-
-- bosco: there appears to be a bug in the code at 0BB1, which handles communication
- with the 06XX custom chip. First it saves in A' the command to write, then if a
- transfer is still in progress it jups to 0BC1, does other things, then restores
- the command from A' and stores it in RAM. At that point (0BE1) it checks again if
- a transfer is in progress. If the trasnfer has terminated, it jumps to 0BEB, which
- restores the command from RAM, and jumps back to 0BBA to send the command. However,
- the instruction at 0BBA is ex af,af', so the command is overwritten with garbage.
- There's also an exx at 0BBB which seems unnecessary but that's harmless.
- Anyway, what this bug means is that we must make sure that the 06XX generates NMIs
- quickly enough to ensure that 0BB1 is usually not called with a transfer still is
- progress. It doesn't seem possible to prevent it altogether though, so we can only
- hope that the transfer doesn't terminate in the middle of the function.
-
-- bosco: we have two dumps of the sound shape ROM, "prom.1d" and "bosco.spr". Music
- changes a lot from one version to the other.
- I'm using the former because it is more similar to the other Namco games. The latter,
- after masking off the unused top 4 bits and inverting bit 3, matches the Galaga one,
- so it might have come from a (bootleg?) conversion.
-
-- bosco & galaga: the Midway arcade cabinet had an optional rapid fire board, using
- a 556 to generate autofire while the button was held. That really makes little
- sense in Galaga! For Bosconian, I guess it was for the boscomdo set I, because the
- other sets have autofire built-in.
-
-- the bosconian video system is (apart from the starfield) almost identical functionally
- to Rally X, but the hardware is quite different: Rally X has no custom ICs.
-
-- digdug: if you enter service mode and press press service coin something like
- the following is written at the bottom of the screen:
- 99.9999.9999.9999.9999.
- This is explained in the manual: it is the number of games played, of points, etc.
- The counters start from 999 and count backwards.
-
-- gallag is identical to galagao, apart from the title changed to "GALLAG" and the
- copyright notice changed from "(c) 1981 NAMCO LTD" to "1 9 8 2" (and the Namco logo
- removed from the gfx). The only interesting thing about it is the 4th Z80, used to
- simulate the custom 5xXX chips of the original.
- It also has different explosion and starfield circuitries, to do without the Namco
- custom chips.
-
-- differences between versions of digdug:
- - the background graphics are slightly different in the Atari versions; the earth is
- less regular.
-
- - "digduga1" is identical to "digdugb", apart from the gfx and copyright notices
- changed from "NAMCO LTD." to "ATARI INC.".
-
- - "digdug" fixes two bugs that were present in "digdugb": First, as monster speed
- increased in later rounds it could eventually roll over to 0, causing the monsters
- to stop moving altogether. Second, "double-killing" a monster by bursting it and
- immediately dropping a rock on the corpse could result in the round not ending
- even after all monsters were killed.
- This set also has the code to save high scores to EEPROM rewritten, though the
- reason for the changes is unclear.
-
- - "digdugat" is almost identical to "digdug" (apart from the Atari gfx/copyright
- changes), but there are three added instructions in the CPU0 program that change
- the code alignment. The change eliminates the "kill screen" at round 256 by
- making the round number roll over to 156, and hides the rollover from the player
- by only ever displaying the lower two digits of the round number. Interestingly,
- "digdug" actually contains all the code to implement the rollover (at $0018-$0026)
- but just doesn't call it, implying that Namco deliberately chose to keep the kill
- screen in this version.
-
- - "digsid" is intermediate between "digdugb" and "digdug"; it has the changed EEPROM
- handling, but not the gameplay bug fixes. It has some unique changes as well:
- the initial high scores are 25000 instead of 10000, and the game begins on the
- screen that is round 4 in the other sets, skipping the first three screens.
- The latter change seems likely to have been done by Namco themselves and not by
- Sidam, as it involves insertion of code right in the middle of the CPU0 program
- and realignment of all the code after the insertion.
-
- - "dzigzag" and "digdugb" are identical, apart from the hacked gfx and the copyright
- notices changed from "NAMCO LTD." to "1 9 8 2". It's a bootleg of "digdugb", and
- not of "digduga1", because the hidden "NAMCO" string at offset 0x1eea of CPU2 is
- still present, while it is replaced by "ATARI" in digduga1.
- The only interesting thing about the bootleg is the 4th Z80, used to simulate
- the custom 5xXX chips of the original.
-
-
-TODO:
-----
-
-- bosco: is the scrolling tilemap placement correct? It is currently aligned so that
- the test grid shown on startup is correct, but this way an unerased grey strip
- remains on the left of the screen during the title sequence. Alignment of the
- bullets/radar blips is also mysterious. Currently the radar blips are perfectly
- aligned with the radar, but the alignment of the player bullets with the player
- ship differs by one horizontal pixel when the screen is flipped.
-
-- gallag/gatsbee: explosions are not emulated since the bootleg board doesn't have
- the 54XX custom. Should probably use samples like Battles?
-
-- Xevios: emulate the 4th Z80 (ROM dump is complete)
-
-- xevious: I haven't found any Easter egg in service mode. The main loop is very
- simple so there might just not be one, though this would be the only Namco game
- of that era to not have a service mode Easter egg. On the other hand, the service
- mode in this game is VERY spartan when compared to the other Namco games.
-
-- dzigzag: emulate the 4th CPU (should be similar to battles)
-
-***************************************************************************/
-
-#include "emu.h"
-#include "includes/bosco.h"
-#include "includes/digdug.h"
-#include "includes/galaga.h"
-#include "includes/xevious.h"
-#include "audio/namco52.h"
-#include "audio/namco54.h"
-
-#include "cpu/mb88xx/mb88xx.h"
-#include "cpu/z80/z80.h"
-#include "machine/namco06.h"
-#include "machine/namco50.h"
-#include "machine/namco51.h"
-#include "machine/namco53.h"
-#include "machine/rescap.h"
-#include "machine/watchdog.h"
-#include "sound/samples.h"
-
-#include "speaker.h"
-
-
-#define MASTER_CLOCK (XTAL(18'432'000))
-
-
-#define STARFIELD_X_OFFSET_GALAGA 16
-#define STARFIELD_X_LIMIT_GALAGA 256 + STARFIELD_X_OFFSET_GALAGA
-
-#define STARFIELD_Y_OFFSET_BOSCO 16
-#define STARFIELD_X_LIMIT_BOSCO 224
-
-
-READ8_MEMBER(galaga_state::bosco_dsw_r)
-{
- int bit0,bit1;
-
- bit0 = (ioport("DSWB")->read() >> offset) & 1;
- bit1 = (ioport("DSWA")->read() >> offset) & 1;
-
- return bit0 | (bit1 << 1);
-}
-
-WRITE_LINE_MEMBER(galaga_state::flip_screen_w)
-{
- flip_screen_set(state);
-}
-
-WRITE_LINE_MEMBER(galaga_state::irq1_clear_w)
-{
- m_main_irq_mask = state;
- if (!m_main_irq_mask)
- m_maincpu->set_input_line(0, CLEAR_LINE);
-}
-
-WRITE_LINE_MEMBER(galaga_state::irq2_clear_w)
-{
- m_sub_irq_mask = state;
- if (!m_sub_irq_mask)
- m_subcpu->set_input_line(0, CLEAR_LINE);
-}
-
-WRITE_LINE_MEMBER(galaga_state::nmion_w)
-{
- m_sub2_nmi_mask = !state;
-}
-
-WRITE8_MEMBER(galaga_state::out_0)
-{
- m_leds[1] = BIT(data, 0);
- m_leds[0] = BIT(data, 1);
- machine().bookkeeping().coin_counter_w(1,~data & 4);
- machine().bookkeeping().coin_counter_w(0,~data & 8);
-}
-
-WRITE8_MEMBER(galaga_state::out_1)
-{
- machine().bookkeeping().coin_lockout_global_w(data & 1);
-}
-
-READ8_MEMBER(galaga_state::namco_52xx_rom_r)
-{
- uint32_t length = memregion("52xx")->bytes();
-//printf("ROM read %04X\n", offset);
- if (!(offset & 0x1000))
- offset = (offset & 0xfff) | 0x0000;
- else if (!(offset & 0x2000))
- offset = (offset & 0xfff) | 0x1000;
- else if (!(offset & 0x4000))
- offset = (offset & 0xfff) | 0x2000;
- else if (!(offset & 0x8000))
- offset = (offset & 0xfff) | 0x3000;
- return (offset < length) ? memregion("52xx")->base()[offset] : 0xff;
-}
-
-READ8_MEMBER(galaga_state::namco_52xx_si_r)
-{
- /* pulled to GND */
- return 0;
-}
-
-TIMER_CALLBACK_MEMBER(galaga_state::cpu3_interrupt_callback)
-{
- int scanline = param;
-
- if(m_sub2_nmi_mask)
- m_subcpu2->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
-
- scanline = scanline + 128;
- if (scanline >= 272)
- scanline = 64;
-
- /* the vertical synch chain is clocked by H256 -- this is probably not important, but oh well */
- m_cpu3_interrupt_timer->adjust(m_screen->time_until_pos(scanline), scanline);
-}
-
-
-READ8_MEMBER(digdug_state::earom_read)
-{
- return m_earom->data();
-}
-
-WRITE8_MEMBER(digdug_state::earom_write)
-{
- m_earom->set_address(offset & 0x3f);
- m_earom->set_data(data);
-}
-
-WRITE8_MEMBER(digdug_state::earom_control_w)
-{
- // CK = DB0, C1 = /DB1, C2 = DB2, CS1 = DB3, /CS2 = GND
- m_earom->set_control(BIT(data, 3), 1, !BIT(data, 1), BIT(data, 2));
- m_earom->set_clk(BIT(data, 0));
-}
-
-
-void galaga_state::machine_start()
-{
- m_leds.resolve();
- /* create the interrupt timer */
- m_cpu3_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(galaga_state::cpu3_interrupt_callback),this));
- save_item(NAME(m_main_irq_mask));
- save_item(NAME(m_sub_irq_mask));
- save_item(NAME(m_sub2_nmi_mask));
-}
-
-void digdug_state::machine_start()
-{
- galaga_state::machine_start();
- earom_control_w(machine().dummy_space(), 0, 0);
-}
-
-void galaga_state::machine_reset()
-{
- m_cpu3_interrupt_timer->adjust(m_screen->time_until_pos(64), 64);
-}
-
-void battles_state::machine_reset()
-{
- galaga_state::machine_reset();
-
- m_customio_command = 0;
- m_customio_prev_command = 0;
- m_customio_command_count = 0;
- m_customio_data = 0;
- m_sound_played = 0;
-}
-
-
-/* the same memory map is used by all three CPUs; all RAM areas are shared */
-void bosco_state::bosco_map(address_map &map)
-{
- map(0x0000, 0x3fff).rom().nopw(); /* the only area different for each CPU */
- map(0x6800, 0x6807).r(FUNC(bosco_state::bosco_dsw_r));
- map(0x6800, 0x681f).w(m_namco_sound, FUNC(namco_device::pacman_sound_w));
- map(0x6820, 0x6827).w("misclatch", FUNC(ls259_device::write_d0));
- map(0x6830, 0x6830).w("watchdog", FUNC(watchdog_timer_device::reset_w));
- map(0x7000, 0x70ff).rw("06xx_0", FUNC(namco_06xx_device::data_r), FUNC(namco_06xx_device::data_w));
- map(0x7100, 0x7100).rw("06xx_0", FUNC(namco_06xx_device::ctrl_r), FUNC(namco_06xx_device::ctrl_w));
- map(0x7800, 0x7fff).ram().share("share1");
- map(0x8000, 0x8fff).ram().w(FUNC(bosco_state::bosco_videoram_w)).share("videoram");/* + sprite registers */
- map(0x9000, 0x90ff).rw("06xx_1", FUNC(namco_06xx_device::data_r), FUNC(namco_06xx_device::data_w));
- map(0x9100, 0x9100).rw("06xx_1", FUNC(namco_06xx_device::ctrl_r), FUNC(namco_06xx_device::ctrl_w));
- map(0x9800, 0x980f).writeonly().share("bosco_radarattr");
- map(0x9810, 0x9810).w(FUNC(bosco_state::bosco_scrollx_w));
- map(0x9820, 0x9820).w(FUNC(bosco_state::bosco_scrolly_w));
- map(0x9830, 0x9830).writeonly().share("starcontrol");
- map(0x9840, 0x9840).w(FUNC(bosco_state::bosco_starclr_w));
- map(0x9870, 0x9877).w(m_videolatch, FUNC(ls259_device::write_d0));
-}
-
-
-void galaga_state::galaga_map(address_map &map)
-{
- map(0x0000, 0x3fff).rom().nopw(); /* the only area different for each CPU */
- map(0x6800, 0x6807).r(FUNC(galaga_state::bosco_dsw_r));
- map(0x6800, 0x681f).w(m_namco_sound, FUNC(namco_device::pacman_sound_w));
- map(0x6820, 0x6827).w("misclatch", FUNC(ls259_device::write_d0));
- map(0x6830, 0x6830).w("watchdog", FUNC(watchdog_timer_device::reset_w));
- map(0x7000, 0x70ff).rw("06xx", FUNC(namco_06xx_device::data_r), FUNC(namco_06xx_device::data_w));
- map(0x7100, 0x7100).rw("06xx", FUNC(namco_06xx_device::ctrl_r), FUNC(namco_06xx_device::ctrl_w));
- map(0x8000, 0x87ff).ram().w(FUNC(galaga_state::galaga_videoram_w)).share("videoram");
- map(0x8800, 0x8bff).ram().share("galaga_ram1");
- map(0x9000, 0x93ff).ram().share("galaga_ram2");
- map(0x9800, 0x9bff).ram().share("galaga_ram3");
- map(0xa000, 0xa007).w(m_videolatch, FUNC(ls259_device::write_d0));
-}
-
-void galaga_state::gatsbee_main_map(address_map &map)
-{
- galaga_map(map);
- map(0x0000, 0x0007).mirror(0x3ff8).w("extralatch", FUNC(ls259_device::write_d0));
-}
-
-
-void xevious_state::xevious_map(address_map &map)
-{
- map(0x0000, 0x3fff).rom().nopw(); /* the only area different for each CPU */
- map(0x6800, 0x6807).r(FUNC(xevious_state::bosco_dsw_r));
- map(0x6800, 0x681f).w(m_namco_sound, FUNC(namco_device::pacman_sound_w));
- map(0x6820, 0x6827).w("misclatch", FUNC(ls259_device::write_d0));
- map(0x6830, 0x6830).w("watchdog", FUNC(watchdog_timer_device::reset_w));
- map(0x7000, 0x70ff).rw("06xx", FUNC(namco_06xx_device::data_r), FUNC(namco_06xx_device::data_w));
- map(0x7100, 0x7100).rw("06xx", FUNC(namco_06xx_device::ctrl_r), FUNC(namco_06xx_device::ctrl_w));
- map(0x7800, 0x7fff).ram().share("share1"); /* work RAM */
- map(0x8000, 0x87ff).ram().share("xevious_sr1"); /* work RAM + sprite registers */
- map(0x9000, 0x97ff).ram().share("xevious_sr2"); /* work RAM + sprite registers */
- map(0xa000, 0xa7ff).ram().share("xevious_sr3"); /* work RAM + sprite registers */
- map(0xb000, 0xb7ff).ram().w(FUNC(xevious_state::xevious_fg_colorram_w)).share("fg_colorram");
- map(0xb800, 0xbfff).ram().w(FUNC(xevious_state::xevious_bg_colorram_w)).share("bg_colorram");
- map(0xc000, 0xc7ff).ram().w(FUNC(xevious_state::xevious_fg_videoram_w)).share("fg_videoram");
- map(0xc800, 0xcfff).ram().w(FUNC(xevious_state::xevious_bg_videoram_w)).share("bg_videoram");
- map(0xd000, 0xd07f).w(FUNC(xevious_state::xevious_vh_latch_w));
- map(0xf000, 0xffff).rw(FUNC(xevious_state::xevious_bb_r), FUNC(xevious_state::xevious_bs_w));
-}
-
-
-void digdug_state::digdug_map(address_map &map)
-{
- map(0x0000, 0x3fff).rom().nopw(); /* the only area different for each CPU */
- map(0x6800, 0x681f).w(m_namco_sound, FUNC(namco_device::pacman_sound_w));
- map(0x6820, 0x6827).w("misclatch", FUNC(ls259_device::write_d0));
- map(0x6830, 0x6830).w("watchdog", FUNC(watchdog_timer_device::reset_w));
- map(0x7000, 0x70ff).rw("06xx", FUNC(namco_06xx_device::data_r), FUNC(namco_06xx_device::data_w));
- map(0x7100, 0x7100).rw("06xx", FUNC(namco_06xx_device::ctrl_r), FUNC(namco_06xx_device::ctrl_w));
- map(0x8000, 0x83ff).ram().w(FUNC(digdug_state::digdug_videoram_w)).share("videoram"); /* tilemap RAM (bottom half of RAM 0 */
- map(0x8400, 0x87ff).ram().share("share1"); /* work RAM (top half for RAM 0 */
- map(0x8800, 0x8bff).ram().share("digdug_objram"); /* work RAM + sprite registers */
- map(0x9000, 0x93ff).ram().share("digdug_posram"); /* work RAM + sprite registers */
- map(0x9800, 0x9bff).ram().share("digdug_flpram"); /* work RAM + sprite registers */
- map(0xa000, 0xa007).nopr().w(m_videolatch, FUNC(ls259_device::write_d0)); /* video latches (spurious reads when setting latch bits) */
- map(0xb800, 0xb83f).rw(FUNC(digdug_state::earom_read), FUNC(digdug_state::earom_write)); /* non volatile memory data */
- map(0xb840, 0xb840).w(FUNC(digdug_state::earom_control_w)); /* non volatile memory control */
-}
-
-
-
-/* bootleg 4th CPU replacing the 5xXX chips */
-void galaga_state::galaga_mem4(address_map &map)
-{
- map(0x0000, 0x0fff).rom();
- map(0x1000, 0x107f).ram();
-}
-
-void battles_state::battles_mem4(address_map &map)
-{
- map(0x0000, 0x0fff).rom();
- map(0x4000, 0x4003).r(FUNC(battles_state::input_port_r));
- map(0x4001, 0x4001).w(FUNC(battles_state::cpu4_coin_w));
- map(0x5000, 0x5000).w(FUNC(battles_state::noise_sound_w));
- map(0x6000, 0x6000).rw(FUNC(battles_state::customio3_r), FUNC(battles_state::customio3_w));
- map(0x7000, 0x7000).rw(FUNC(battles_state::customio_data3_r), FUNC(battles_state::customio_data3_w));
- map(0x8000, 0x80ff).ram();
-}
-
-void galaga_state::dzigzag_mem4(address_map &map)
-{
- map(0x0000, 0x0fff).rom();
- map(0x1000, 0x107f).ram();
- map(0x4000, 0x4007).readonly(); // dip switches? bits 0 & 1 used
-}
-
-
-static INPUT_PORTS_START( bosco )
- PORT_START("IN0L")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
-
- PORT_START("IN0H")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_SERVICE( 0x08, IP_ACTIVE_LOW )
-
- PORT_START("IN1L")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
-
- PORT_START("IN1H")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
-
- PORT_START("DSWA")
- PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:1,2")
- PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x03, DEF_STR( Medium ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Hardest ) )
- PORT_DIPSETTING( 0x00, "Auto" )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWB:3")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) // factory default = "Yes"
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:4")
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, "Freeze" ) PORT_DIPLOCATION("SWB:5")
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SWB:6" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SWB:7" ) /* Listed as "Unused" */
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:8")
- PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
-
- PORT_START("DSWB")
- PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SWA:1,2,3")
- PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x04, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
- /* bonus scores are different for 5 lives */
- PORT_DIPNAME( 0x38, 0x20, "Bonus Fighter" ) PORT_DIPLOCATION("SWA:4,5,6")
- PORT_DIPSETTING( 0x30, "15K and 50K Only" ) PORT_CONDITION("DSWB",0xc0,NOTEQUALS,0xc0) /* Began with 1, 2 or 3 fighters */
- PORT_DIPSETTING( 0x38, "20K and 70K Only" ) PORT_CONDITION("DSWB",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x08, "10K, 50K, Every 50K" ) PORT_CONDITION("DSWB",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x10, "15K, 50K, Every 50K" ) PORT_CONDITION("DSWB",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x18, "15K, 70K, Every 70K" ) PORT_CONDITION("DSWB",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x20, "20K, 70K, Every 70K" ) PORT_CONDITION("DSWB",0xc0,NOTEQUALS,0xc0) // factory default = "20K, 70K, Every70K"
- PORT_DIPSETTING( 0x28, "30K, 100K, Every 100K" ) PORT_CONDITION("DSWB",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_CONDITION("DSWB",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x30, "30K, 100K, Every 100K" ) PORT_CONDITION("DSWB",0xc0,EQUALS,0xc0) /* Began with 5 fighters */
- PORT_DIPSETTING( 0x38, "30K, 120K, Every 120K" ) PORT_CONDITION("DSWB",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x08, "15K and 70K Only" ) PORT_CONDITION("DSWB",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x10, "20K and 70K Only" ) PORT_CONDITION("DSWB",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x18, "20K and 100K Only" ) PORT_CONDITION("DSWB",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x20, "30K and 120K Only" ) PORT_CONDITION("DSWB",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x28, "30K, 80K, Every 80K" ) PORT_CONDITION("DSWB",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_CONDITION("DSWB",0xc0,EQUALS,0xc0)
- PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWA:7,8")
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x40, "2" )
- PORT_DIPSETTING( 0x80, "3" ) // factory default = "3"
- PORT_DIPSETTING( 0xc0, "5" )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( boscomd )
- PORT_INCLUDE( bosco )
-
- PORT_MODIFY("DSWA")
- PORT_DIPNAME( 0x01, 0x01, "2 Credits Game" ) PORT_DIPLOCATION("SWB:1")
- PORT_DIPSETTING( 0x00, "1 Player" )
- PORT_DIPSETTING( 0x01, "2 Players" )
- PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:2,3")
- PORT_DIPSETTING( 0x02, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x06, DEF_STR( Medium ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Hardest ) )
- PORT_DIPSETTING( 0x00, "Auto" )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWB:4")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:5")
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, "Freeze" ) PORT_DIPLOCATION("SWB:6")
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( galaga )
- PORT_START("IN0L")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
-
- PORT_START("IN0H")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_SERVICE( 0x08, IP_ACTIVE_LOW )
-
- PORT_START("IN1L")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY
-
- PORT_START("IN1H")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
-
- PORT_START("DSWA")
- PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:1,2")
- PORT_DIPSETTING( 0x03, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
- PORT_DIPSETTING( 0x01, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Hardest ) )
- PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SWB:3" ) /* Listed as "Unused" */
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:4")
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, "Freeze" ) PORT_DIPLOCATION("SWB:5")
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, "Rack Test" ) PORT_DIPLOCATION("SWB:6")
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SWB:7" ) /* Listed as "Unused" */
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:8")
- PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
-
- PORT_START("DSWB")
- PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SWA:1,2,3")
- PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x06, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
- PORT_DIPNAME( 0x38, 0x10, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWA:4,5,6")
- PORT_DIPSETTING( 0x20, "20K, 60K, Every 60K" ) PORT_CONDITION("DSWB",0xc0,NOTEQUALS,0xc0) /* Began with 2, 3 or 4 fighters */
- PORT_DIPSETTING( 0x18, "20K and 60K Only" ) PORT_CONDITION("DSWB",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x10, "20K, 70K, Every 70K" ) PORT_CONDITION("DSWB",0xc0,NOTEQUALS,0xc0) // factory default = "20K, 70K, Every70K"
- PORT_DIPSETTING( 0x30, "20K, 80K, Every 80K" ) PORT_CONDITION("DSWB",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x38, "30K and 80K Only" ) PORT_CONDITION("DSWB",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x08, "30K, 100K, Every 100K" ) PORT_CONDITION("DSWB",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x28, "30K, 120K, Every 120K" ) PORT_CONDITION("DSWB",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_CONDITION("DSWB",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x20, "30K, 100K, Every 100K" ) PORT_CONDITION("DSWB",0xc0,EQUALS,0xc0) /* Began with 5 fighters */
- PORT_DIPSETTING( 0x18, "30K and 150K Only" ) PORT_CONDITION("DSWB",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x10, "30K, 120K, Every 120K" ) PORT_CONDITION("DSWB",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x30, "30K, 150K, Every 150K" ) PORT_CONDITION("DSWB",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x38, "30K Only" ) PORT_CONDITION("DSWB",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x08, "30K and 100K Only" ) PORT_CONDITION("DSWB",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x28, "30K and 120K Only" ) PORT_CONDITION("DSWB",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_CONDITION("DSWB",0xc0,EQUALS,0xc0)
- PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWA:7,8")
- PORT_DIPSETTING( 0x00, "2" )
- PORT_DIPSETTING( 0x80, "3" ) // factory default = "3"
- PORT_DIPSETTING( 0x40, "4" )
- PORT_DIPSETTING( 0xc0, "5" )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( galagamw )
- PORT_INCLUDE( galaga )
-
- PORT_MODIFY("DSWA")
- PORT_DIPNAME( 0x01, 0x01, "2 Credits Game" ) PORT_DIPLOCATION("SWB:1")
- PORT_DIPSETTING( 0x00, "1 Player" )
- PORT_DIPSETTING( 0x01, "2 Players" )
- PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:2,3")
- PORT_DIPSETTING( 0x06, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Medium ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Hardest ) )
-INPUT_PORTS_END
-
-/* the same as galaga but with vertical movement */
-static INPUT_PORTS_START( gatsbee )
- PORT_INCLUDE( galaga )
-
- PORT_MODIFY("IN1L")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
-
- PORT_MODIFY("IN1H")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( xevious )
- PORT_START("IN0L")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
-
- PORT_START("IN0H")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_SERVICE( 0x08, IP_ACTIVE_LOW )
-
- PORT_START("IN1L")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
-
- PORT_START("IN1H")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
-
- PORT_START("DSWA")
- PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:1,2")
- PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
- PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWA:3,4,5")
- PORT_DIPSETTING( 0x18, "10K, 40K, Every 40K" ) PORT_CONDITION("DSWA",0x60,NOTEQUALS,0x00)
- PORT_DIPSETTING( 0x14, "10K, 50K, Every 50K" ) PORT_CONDITION("DSWA",0x60,NOTEQUALS,0x00)
- PORT_DIPSETTING( 0x10, "20K, 50K, Every 50K" ) PORT_CONDITION("DSWA",0x60,NOTEQUALS,0x00)
- PORT_DIPSETTING( 0x1c, "20K, 60K, Every 60K" ) PORT_CONDITION("DSWA",0x60,NOTEQUALS,0x00) // factory default = "20K, 60K, Every60K"
- PORT_DIPSETTING( 0x0c, "20K, 70K, Every 70K" ) PORT_CONDITION("DSWA",0x60,NOTEQUALS,0x00)
- PORT_DIPSETTING( 0x08, "20K, 80K, Every 80K" ) PORT_CONDITION("DSWA",0x60,NOTEQUALS,0x00)
- PORT_DIPSETTING( 0x04, "20K and 60K Only" ) PORT_CONDITION("DSWA",0x60,NOTEQUALS,0x00)
- PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_CONDITION("DSWA",0x60,NOTEQUALS,0x00)
- PORT_DIPSETTING( 0x18, "10K, 50K, Every 50K" ) PORT_CONDITION("DSWA",0x60,EQUALS,0x00)
- PORT_DIPSETTING( 0x14, "20K, 50K, Every 50K" ) PORT_CONDITION("DSWA",0x60,EQUALS,0x00)
- PORT_DIPSETTING( 0x10, "20K, 60K, Every 60K" ) PORT_CONDITION("DSWA",0x60,EQUALS,0x00)
- PORT_DIPSETTING( 0x1c, "20K, 70K, Every 70K" ) PORT_CONDITION("DSWA",0x60,EQUALS,0x00)
- PORT_DIPSETTING( 0x0c, "20K, 80K, Every 80K" ) PORT_CONDITION("DSWA",0x60,EQUALS,0x00)
- PORT_DIPSETTING( 0x08, "30K, 100K, Every 100K" ) PORT_CONDITION("DSWA",0x60,EQUALS,0x00)
- PORT_DIPSETTING( 0x04, "20K and 80K Only" ) PORT_CONDITION("DSWA",0x60,EQUALS,0x00)
- PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_CONDITION("DSWA",0x60,EQUALS,0x00)
- PORT_DIPNAME( 0x60, 0x60, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWA:6,7")
- PORT_DIPSETTING( 0x40, "1" )
- PORT_DIPSETTING( 0x20, "2" )
- PORT_DIPSETTING( 0x60, "3" ) // factory default = "3"
- PORT_DIPSETTING( 0x00, "5" )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWA:8")
- PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
-
- PORT_START("DSWB")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_DIPNAME( 0x02, 0x02, "Flags Award Bonus Life" ) PORT_DIPLOCATION("SWB:2")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWB:3,4")
- PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
- PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:6,7")
- PORT_DIPSETTING( 0x40, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x60, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SWB:8")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-/* same as xevious but different "Coin B" Dip Switch and "Copyright" Dip Switch instead of "Freeze" */
-static INPUT_PORTS_START( xeviousa )
- PORT_INCLUDE( xevious )
-
- PORT_MODIFY("DSWB")
- PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWB:3,4")
- PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) )
- /* when switch is on Namco, high score names are 10 letters long */
- PORT_DIPNAME( 0x80, 0x80, "Copyright" ) PORT_DIPLOCATION("SWB:8")
- PORT_DIPSETTING( 0x00, "Namco" )
- PORT_DIPSETTING( 0x80, "Atari/Namco" )
-INPUT_PORTS_END
-
-/* same as xevious but "Copyright" Dip Switch instead of "Freeze" */
-static INPUT_PORTS_START( xeviousb )
- PORT_INCLUDE( xevious )
-
- PORT_MODIFY("DSWB")
- /* when switch is on Namco, high score names are 10 letters long */
- PORT_DIPNAME( 0x80, 0x80, "Copyright" ) PORT_DIPLOCATION("SWB:8")
- PORT_DIPSETTING( 0x00, "Namco" )
- PORT_DIPSETTING( 0x80, "Atari/Namco" )
-INPUT_PORTS_END
-
-/* same as xevious but different "Coin B" Dip Switch and inverted "Freeze" Dip Switch */
-static INPUT_PORTS_START( sxevious )
- PORT_INCLUDE( xevious )
-
- PORT_MODIFY("DSWB")
- PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWB:3,4")
- PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x80, 0x00, "Freeze" ) PORT_DIPLOCATION("SWB:8")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( digdug )
- PORT_START("IN0L")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
-
- PORT_START("IN0H")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_SERVICE( 0x08, IP_ACTIVE_LOW )
-
- PORT_START("IN1L")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
-
- PORT_START("IN1H")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
-
- PORT_START("DSWA")
- PORT_DIPNAME( 0x07, 0x01, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:1,2,3")
- PORT_DIPSETTING( 0x07, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x05, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x04, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_7C ) )
- PORT_DIPNAME( 0x38, 0x18, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWA:4,5,6")
- PORT_DIPSETTING( 0x20, "10K, 40K, Every 40K" ) PORT_CONDITION("DSWA",0xc0,NOTEQUALS,0xc0) // Atari factory default = "10K, 40K, Every40K"
- PORT_DIPSETTING( 0x10, "10K, 50K, Every 50K" ) PORT_CONDITION("DSWA",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x30, "20K, 60K, Every 60K" ) PORT_CONDITION("DSWA",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x08, "20K, 70K, Every 70K" ) PORT_CONDITION("DSWA",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x28, "10K and 40K Only" ) PORT_CONDITION("DSWA",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x18, "20K and 60K Only" ) PORT_CONDITION("DSWA",0xc0,NOTEQUALS,0xc0) // Namco factory default = "20K, 60K"
- PORT_DIPSETTING( 0x38, "10K Only" ) PORT_CONDITION("DSWA",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_CONDITION("DSWA",0xc0,NOTEQUALS,0xc0)
- PORT_DIPSETTING( 0x20, "20K, 60K, Every 60K" ) PORT_CONDITION("DSWA",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x10, "30K, 80K, Every 80K" ) PORT_CONDITION("DSWA",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x30, "20K and 50K Only" ) PORT_CONDITION("DSWA",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x08, "20K and 60K Only" ) PORT_CONDITION("DSWA",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x28, "30K and 70K Only" ) PORT_CONDITION("DSWA",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x18, "20K Only" ) PORT_CONDITION("DSWA",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x38, "30K Only" ) PORT_CONDITION("DSWA",0xc0,EQUALS,0xc0)
- PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_CONDITION("DSWA",0xc0,EQUALS,0xc0)
- PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWA:7,8")
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x40, "2" )
- PORT_DIPSETTING( 0x80, "3" ) // factory default = "3"
- PORT_DIPSETTING( 0xc0, "5" )
-
- PORT_START("DSWB") // reverse order against SWA
- PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWB:1,2")
- PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0xc0, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) )
- PORT_DIPNAME( 0x20, 0x20, "Freeze" ) PORT_DIPLOCATION("SWB:3")
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:4")
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWB:5")
- PORT_DIPSETTING( 0x08, DEF_STR( No ) ) // factory default = "No"
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:6")
- PORT_DIPSETTING( 0x04, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:7,8")
- PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Medium ) )
- PORT_DIPSETTING( 0x01, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
-INPUT_PORTS_END
-
-/*
-static INPUT_PORTS_START( digdugja ) // Namco older?
- PORT_INCLUDE( digdug )
-
- PORT_MODIFY("DSWB") // same order as SWA
- PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:2,1")
- PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Medium ) )
- PORT_DIPSETTING( 0x01, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x04, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWB:3")
- PORT_DIPSETTING( 0x04, DEF_STR( No ) ) // Namco factory default = "No"
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:4")
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, "Freeze" ) PORT_DIPLOCATION("SWB:5")
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x60, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWB:7,6")
- PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x60, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) )
- PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWB:8" )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( digdugus ) // Atari older?
- PORT_INCLUDE( digdug )
-
- PORT_MODIFY("DSWB") // reverse order against SWA
- PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWB:1,2")
- PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0xc0, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) )
- PORT_DIPNAME( 0x20, 0x20, "Freeze" ) PORT_DIPLOCATION("SWB:3")
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:4")
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWB:5")
- PORT_DIPSETTING( 0x08, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) // Atari factory default = "Yes"
- PORT_DIPNAME( 0x06, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:6,7")
- PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Medium ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x06, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x01, 0x01, "Number Of Coin Counter(s)" ) PORT_DIPLOCATION("SWB:8")
- PORT_DIPSETTING( 0x01, "Two Coin Counters" )
- PORT_DIPSETTING( 0x00, "One Coin Counter" )
-INPUT_PORTS_END
-*/
-
-
-
-static const gfx_layout charlayout_2bpp =
-{
- 8,8,
- RGN_FRAC(1,1),
- 2,
- { 0, 4 },
- { STEP4(8*8,1), STEP4(0*8,1) },
- { STEP8(0*8,8) },
- 16*8
-};
-
-static const gfx_layout charlayout_xevious =
-{
- 8,8,
- RGN_FRAC(1,1),
- 1,
- { 0 },
- { STEP8(0,1) },
- { STEP8(0,8) },
- 8*8
-};
-
-static const gfx_layout charlayout_digdug =
-{
- 8,8,
- RGN_FRAC(1,1),
- 1,
- { 0 },
- { STEP8(7,-1) },
- { STEP8(0,8) },
- 8*8
-};
-
-static const gfx_layout bgcharlayout =
-{
- 8,8,
- RGN_FRAC(1,2),
- 2,
- { 0, RGN_FRAC(1,2) },
- { STEP8(0,1) },
- { STEP8(0,8) },
- 8*8
-};
-
-static const gfx_layout spritelayout_bosco =
-{
- 16,16,
- RGN_FRAC(1,1),
- 2,
- { 0, 4 },
- { STEP4(8*8,1), STEP4(16*8,1), STEP4(24*8,1), STEP4(0*8,1) },
- { STEP8(0*8,8), STEP8(32*8,8) },
- 64*8
-};
-
-static const gfx_layout spritelayout_galaga =
-{
- 16,16,
- RGN_FRAC(1,1),
- 2,
- { 0, 4 },
- { STEP4(0*8,1), STEP4(8*8,1), STEP4(16*8,1), STEP4(24*8,1) },
- { STEP8(0*8,8), STEP8(32*8,8) },
- 64*8
-};
-
-static const gfx_layout spritelayout_xevious =
-{
- 16,16,
- RGN_FRAC(1,2),
- 3,
- { RGN_FRAC(1,2)+4, 0, 4 },
- { STEP4(0*8,1), STEP4(8*8,1), STEP4(16*8,1), STEP4(24*8,1) },
- { STEP8(0*8,8), STEP8(32*8,8) },
- 64*8
-};
-
-static const gfx_layout dotlayout =
-{
- 4,4,
- 8,
- 3, /* 2 bits color + 1 bit transparency */
- { 5, 6, 7 },
- { STEP4(0,8) },
- { STEP4(0,32) },
- 16*8
-};
-
-static GFXDECODE_START( gfx_bosco )
- GFXDECODE_ENTRY( "gfx1", 0, charlayout_2bpp, 0, 64 )
- GFXDECODE_ENTRY( "gfx2", 0, spritelayout_bosco, 64*4, 64 )
- GFXDECODE_ENTRY( "gfx3", 0, dotlayout, 64*4+64*4, 1 )
-GFXDECODE_END
-
-static GFXDECODE_START( gfx_galaga )
- GFXDECODE_ENTRY( "gfx1", 0, charlayout_2bpp, 0, 64 )
- GFXDECODE_ENTRY( "gfx2", 0, spritelayout_galaga, 64*4, 64 )
-GFXDECODE_END
-
-static GFXDECODE_START( gfx_xevious )
- GFXDECODE_ENTRY( "gfx1", 0, charlayout_xevious, 128*4+64*8, 64 )
- GFXDECODE_ENTRY( "gfx2", 0, bgcharlayout, 0, 128 )
- GFXDECODE_ENTRY( "gfx3", 0, spritelayout_xevious, 128*4, 64 )
-GFXDECODE_END
-
-static GFXDECODE_START( gfx_digdug )
- GFXDECODE_ENTRY( "gfx1", 0, charlayout_digdug, 0, 16 )
- GFXDECODE_ENTRY( "gfx2", 0, spritelayout_galaga, 16*2, 64 )
- GFXDECODE_ENTRY( "gfx3", 0, charlayout_2bpp, 64*4 + 16*2, 64 )
-GFXDECODE_END
-
-
-/* The resistance path of the namco sound is 16k compared to
- * the 10k of the highest gain 54xx filter. Giving a 10/16 gain.
- */
-
-static const char *const battles_sample_names[] =
-{
- "*battles",
- "explo1", /* ground target explosion */
- "explo2", /* Solvalou explosion */
- nullptr /* end of array */
-};
-
-WRITE_LINE_MEMBER(galaga_state::vblank_irq)
-{
- if (state && m_main_irq_mask)
- m_maincpu->set_input_line(0, ASSERT_LINE);
-
- if (state && m_sub_irq_mask)
- m_subcpu->set_input_line(0, ASSERT_LINE);
-}
-
-void bosco_state::bosco(machine_config &config)
-{
- /* basic machine hardware */
- Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &bosco_state::bosco_map);
-
- Z80(config, m_subcpu, MASTER_CLOCK/6); /* 3.072 MHz */
- m_subcpu->set_addrmap(AS_PROGRAM, &bosco_state::bosco_map);
-
- Z80(config, m_subcpu2, MASTER_CLOCK/6); /* 3.072 MHz */
- m_subcpu2->set_addrmap(AS_PROGRAM, &bosco_state::bosco_map);
-
- ls259_device &misclatch(LS259(config, "misclatch")); // 3C on CPU board
- misclatch.q_out_cb<0>().set(FUNC(galaga_state::irq1_clear_w));
- misclatch.q_out_cb<1>().set(FUNC(galaga_state::irq2_clear_w));
- misclatch.q_out_cb<2>().set(FUNC(galaga_state::nmion_w));
- misclatch.q_out_cb<3>().set_inputline("sub", INPUT_LINE_RESET).invert();
- misclatch.q_out_cb<3>().append_inputline("sub2", INPUT_LINE_RESET).invert();
-
- NAMCO_50XX(config, "50xx_1", MASTER_CLOCK/6/2); /* 1.536 MHz */
- NAMCO_50XX(config, "50xx_2", MASTER_CLOCK/6/2); /* 1.536 MHz */
-
- namco_51xx_device &n51xx(NAMCO_51XX(config, "51xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */
- n51xx.set_screen_tag(m_screen);
- n51xx.input_callback<0>().set_ioport("IN0L");
- n51xx.input_callback<1>().set_ioport("IN0H");
- n51xx.input_callback<2>().set_ioport("IN1L");
- n51xx.input_callback<3>().set_ioport("IN1H");
- n51xx.output_callback<0>().set(FUNC(galaga_state::out_0));
- n51xx.output_callback<1>().set(FUNC(galaga_state::out_1));
-
- namco_52xx_device &n52xx(NAMCO_52XX(config, "52xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */
- n52xx.set_discrete("discrete");
- n52xx.set_basenote(NODE_04);
- n52xx.set_extclock(ATTOSECONDS_IN_NSEC(PERIOD_OF_555_ASTABLE_NSEC(RES_K(33), RES_K(10), CAP_U(0.0047))));
- n52xx.romread_callback().set(FUNC(galaga_state::namco_52xx_rom_r));
- n52xx.si_callback().set(FUNC(galaga_state::namco_52xx_si_r));
-
- namco_54xx_device &n54xx(NAMCO_54XX(config, "54xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */
- n54xx.set_discrete("discrete");
- n54xx.set_basenote(NODE_01);
-
- namco_06xx_device &n06xx_0(NAMCO_06XX(config, "06xx_0", MASTER_CLOCK/6/64));
- n06xx_0.set_maincpu(m_maincpu);
- n06xx_0.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read));
- n06xx_0.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write));
- n06xx_0.read_callback<2>().set("50xx_1", FUNC(namco_50xx_device::read));
- n06xx_0.read_request_callback<2>().set("50xx_1", FUNC(namco_50xx_device::read_request));
- n06xx_0.write_callback<2>().set("50xx_1", FUNC(namco_50xx_device::write));
- n06xx_0.write_callback<3>().set("54xx", FUNC(namco_54xx_device::write));
-
- namco_06xx_device &n06xx_1(NAMCO_06XX(config, "06xx_1", MASTER_CLOCK/6/64));
- n06xx_1.set_maincpu(m_subcpu);
- n06xx_1.read_callback<0>().set("50xx_2", FUNC(namco_50xx_device::read));
- n06xx_1.read_request_callback<0>().set("50xx_2", FUNC(namco_50xx_device::read_request));
- n06xx_1.write_callback<0>().set("50xx_2", FUNC(namco_50xx_device::write));
- n06xx_1.write_callback<1>().set("52xx", FUNC(namco_52xx_device::write));
-
- LS259(config, m_videolatch); // 1B on video board
- m_videolatch->q_out_cb<0>().set(FUNC(galaga_state::flip_screen_w)).invert();
- // Q4-Q5 to 05XX for starfield blink
- //m_videolatch->q_out_cb<7>().set("50xx_2", FUNC(namco_50xx_device::reset_w));
- //m_videolatch->q_out_cb<7>().append("52xx", FUNC(namco_52xx_device, reset_w));
-
- WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8);
-
- config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_raw(MASTER_CLOCK/3, 384, 0, 288, 264, 16, 224+16);
- m_screen->set_screen_update(FUNC(bosco_state::screen_update_bosco));
- m_screen->screen_vblank().set(FUNC(bosco_state::screen_vblank_bosco));
- m_screen->screen_vblank().append(FUNC(galaga_state::vblank_irq));
- m_screen->set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_bosco);
- PALETTE(config, m_palette, FUNC(bosco_state::bosco_palette), 64*4 + 64*4 + 4 + 64, 32+64);
-
- STARFIELD_05XX(config, m_starfield, 0);
- m_starfield->set_starfield_config(0, STARFIELD_Y_OFFSET_BOSCO, STARFIELD_X_LIMIT_BOSCO);
-
- MCFG_VIDEO_START_OVERRIDE(bosco_state,bosco)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
- m_namco_sound->set_voices(3);
- m_namco_sound->add_route(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0);
-
- /* discrete circuit on the 54XX outputs */
- DISCRETE(config, "discrete", bosco_discrete).add_route(ALL_OUTPUTS, "mono", 0.90);
-}
-
-void galaga_state::galaga(machine_config &config)
-{
- /* basic machine hardware */
- Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &galaga_state::galaga_map);
-
- Z80(config, m_subcpu, MASTER_CLOCK/6); /* 3.072 MHz */
- m_subcpu->set_addrmap(AS_PROGRAM, &galaga_state::galaga_map);
-
- Z80(config, m_subcpu2, MASTER_CLOCK/6); /* 3.072 MHz */
- m_subcpu2->set_addrmap(AS_PROGRAM, &galaga_state::galaga_map);
-
- ls259_device &misclatch(LS259(config, "misclatch")); // 3C on CPU board
- misclatch.q_out_cb<0>().set(FUNC(galaga_state::irq1_clear_w));
- misclatch.q_out_cb<1>().set(FUNC(galaga_state::irq2_clear_w));
- misclatch.q_out_cb<2>().set(FUNC(galaga_state::nmion_w));
- misclatch.q_out_cb<3>().set_inputline("sub", INPUT_LINE_RESET).invert();
- misclatch.q_out_cb<3>().append_inputline("sub2", INPUT_LINE_RESET).invert();
-
- namco_51xx_device &n51xx(NAMCO_51XX(config, "51xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */
- n51xx.set_screen_tag(m_screen);
- n51xx.input_callback<0>().set_ioport("IN0L");
- n51xx.input_callback<1>().set_ioport("IN0H");
- n51xx.input_callback<2>().set_ioport("IN1L");
- n51xx.input_callback<3>().set_ioport("IN1H");
- n51xx.output_callback<0>().set(FUNC(galaga_state::out_0));
- n51xx.output_callback<1>().set(FUNC(galaga_state::out_1));
-
- namco_54xx_device &n54xx(NAMCO_54XX(config, "54xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */
- n54xx.set_discrete("discrete");
- n54xx.set_basenote(NODE_01);
-
- namco_06xx_device &n06xx(NAMCO_06XX(config, "06xx", MASTER_CLOCK/6/64));
- n06xx.set_maincpu(m_maincpu);
- n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read));
- n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write));
- n06xx.write_callback<3>().set("54xx", FUNC(namco_54xx_device::write));
-
- LS259(config, m_videolatch); // 5K on video board
- // Q0-Q5 to 05XX for starfield control
- m_videolatch->q_out_cb<7>().set(FUNC(galaga_state::flip_screen_w));
-
- WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8);
-
- config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_raw(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224);
- m_screen->set_screen_update(FUNC(galaga_state::screen_update_galaga));
- m_screen->screen_vblank().set(FUNC(galaga_state::screen_vblank_galaga));
- m_screen->screen_vblank().append(FUNC(galaga_state::vblank_irq));
- m_screen->set_palette("palette");
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_galaga);
- PALETTE(config, m_palette, FUNC(galaga_state::galaga_palette), 64*4 + 64*4 + 4 + 64, 32+64);
-
- STARFIELD_05XX(config, m_starfield, 0);
- m_starfield->set_starfield_config(STARFIELD_X_OFFSET_GALAGA, 0, STARFIELD_X_LIMIT_GALAGA);
-
- MCFG_VIDEO_START_OVERRIDE(galaga_state,galaga)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
- m_namco_sound->set_voices(3);
- m_namco_sound->add_route(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0);
-
- /* discrete circuit on the 54XX outputs */
- DISCRETE(config, "discrete", galaga_discrete).add_route(ALL_OUTPUTS, "mono", 0.90);
-}
-
-void galaga_state::galagab(machine_config &config)
-{
- galaga(config);
-
- /* basic machine hardware */
-
- config.device_remove("54xx");
- config.device_remove("06xx");
-
- /* FIXME: bootlegs should not have any Namco custom chip. However, this workaround is needed atm */
- namco_06xx_device &n06xx(NAMCO_06XX(config, "06xx", MASTER_CLOCK/6/64));
- n06xx.set_maincpu(m_maincpu);
- n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read));
- n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write));
-
- z80_device &sub3(Z80(config, "sub3", MASTER_CLOCK/6)); /* 3.072 MHz */
- sub3.set_addrmap(AS_PROGRAM, &galaga_state::galaga_mem4);
-
- /* sound hardware */
- config.device_remove("discrete");
-}
-
-void galaga_state::gatsbee(machine_config &config)
-{
- galaga(config);
- m_maincpu->set_addrmap(AS_PROGRAM, &galaga_state::gatsbee_main_map);
-
- ls259_device &extralatch(LS259(config, "extralatch"));
- extralatch.q_out_cb<0>().set(FUNC(galaga_state::gatsbee_bank_w));
-}
-
-void xevious_state::xevious(machine_config &config)
-{
- /* basic machine hardware */
- Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &xevious_state::xevious_map);
-
- Z80(config, m_subcpu, MASTER_CLOCK/6); /* 3.072 MHz */
- m_subcpu->set_addrmap(AS_PROGRAM, &xevious_state::xevious_map);
-
- Z80(config, m_subcpu2, MASTER_CLOCK/6); /* 3.072 MHz */
- m_subcpu2->set_addrmap(AS_PROGRAM, &xevious_state::xevious_map);
-
- ls259_device &misclatch(LS259(config, "misclatch")); // 5K
- misclatch.q_out_cb<0>().set(FUNC(galaga_state::irq1_clear_w));
- misclatch.q_out_cb<1>().set(FUNC(galaga_state::irq2_clear_w));
- misclatch.q_out_cb<2>().set(FUNC(galaga_state::nmion_w));
- misclatch.q_out_cb<3>().set_inputline("sub", INPUT_LINE_RESET).invert();
- misclatch.q_out_cb<3>().append_inputline("sub2", INPUT_LINE_RESET).invert();
-
- NAMCO_50XX(config, "50xx", MASTER_CLOCK/6/2); /* 1.536 MHz */
-
- namco_51xx_device &n51xx(NAMCO_51XX(config, "51xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */
- n51xx.set_screen_tag(m_screen);
- n51xx.input_callback<0>().set_ioport("IN0L");
- n51xx.input_callback<1>().set_ioport("IN0H");
- n51xx.input_callback<2>().set_ioport("IN1L");
- n51xx.input_callback<3>().set_ioport("IN1H");
- n51xx.output_callback<0>().set(FUNC(galaga_state::out_0));
- n51xx.output_callback<1>().set(FUNC(galaga_state::out_1));
-
- namco_54xx_device &n54xx(NAMCO_54XX(config, "54xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */
- n54xx.set_discrete("discrete");
- n54xx.set_basenote(NODE_01);
-
- namco_06xx_device &n06xx(NAMCO_06XX(config, "06xx", MASTER_CLOCK/6/64));
- n06xx.set_maincpu(m_maincpu);
- n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read));
- n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write));
- n06xx.read_callback<2>().set("50xx", FUNC(namco_50xx_device::read));
- n06xx.read_request_callback<2>().set("50xx", FUNC(namco_50xx_device::read_request));
- n06xx.write_callback<2>().set("50xx", FUNC(namco_50xx_device::write));
- n06xx.write_callback<3>().set("54xx", FUNC(namco_54xx_device::write));
-
- WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8);
-
- config.set_maximum_quantum(attotime::from_hz(60000)); /* 1000 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_raw(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224);
- m_screen->set_screen_update(FUNC(xevious_state::screen_update_xevious));
- m_screen->set_palette(m_palette);
- m_screen->screen_vblank().set(FUNC(galaga_state::vblank_irq));
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_xevious);
- PALETTE(config, m_palette, FUNC(xevious_state::xevious_palette), 128*4 + 64*8 + 64*2, 128+1);
-
- MCFG_VIDEO_START_OVERRIDE(xevious_state,xevious)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
- m_namco_sound->set_voices(3);
- m_namco_sound->add_route(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0);
-
- /* discrete circuit on the 54XX outputs */
- DISCRETE(config, "discrete", galaga_discrete).add_route(ALL_OUTPUTS, "mono", 0.90);
-}
-
-void battles_state::battles(machine_config &config)
-{
- xevious(config);
-
- /* basic machine hardware */
- config.device_remove("50xx");
- config.device_remove("54xx");
- config.device_remove("06xx");
-
- /* FIXME: bootlegs should not have any Namco custom chip. However, this workaround is needed atm */
- namco_06xx_device &n06xx(NAMCO_06XX(config, "06xx", MASTER_CLOCK/6/64));
- n06xx.set_maincpu(m_maincpu);
- n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read));
- n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write));
-
- Z80(config, m_subcpu3, MASTER_CLOCK/6); /* 3.072 MHz */
- m_subcpu3->set_addrmap(AS_PROGRAM, &battles_state::battles_mem4);
-
- m_screen->screen_vblank().append(FUNC(battles_state::interrupt_4));
-
- TIMER(config, "nmi").configure_generic(FUNC(battles_state::nmi_generate));
-
- /* sound hardware */
- config.device_remove("discrete");
-
- SAMPLES(config, m_samples);
- m_samples->set_channels(1);
- m_samples->set_samples_names(battles_sample_names);
- m_samples->add_route(ALL_OUTPUTS, "mono", 0.80);
-}
-
-void digdug_state::digdug(machine_config &config)
-{
- /* basic machine hardware */
- Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
- m_maincpu->set_addrmap(AS_PROGRAM, &digdug_state::digdug_map);
-
- Z80(config, m_subcpu, MASTER_CLOCK/6); /* 3.072 MHz */
- m_subcpu->set_addrmap(AS_PROGRAM, &digdug_state::digdug_map);
-
- Z80(config, m_subcpu2, MASTER_CLOCK/6); /* 3.072 MHz */
- m_subcpu2->set_addrmap(AS_PROGRAM, &digdug_state::digdug_map);
-
- ls259_device &misclatch(LS259(config, "misclatch")); // 8R
- misclatch.q_out_cb<0>().set(FUNC(galaga_state::irq1_clear_w));
- misclatch.q_out_cb<1>().set(FUNC(galaga_state::irq2_clear_w));
- misclatch.q_out_cb<2>().set(FUNC(galaga_state::nmion_w));
- misclatch.q_out_cb<3>().set_inputline("sub", INPUT_LINE_RESET).invert();
- misclatch.q_out_cb<3>().append_inputline("sub2", INPUT_LINE_RESET).invert();
- // Q5-Q7 also used (see below)
-
- namco_51xx_device &n51xx(NAMCO_51XX(config, "51xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */
- n51xx.set_screen_tag(m_screen);
- n51xx.input_callback<0>().set_ioport("IN0L");
- n51xx.input_callback<1>().set_ioport("IN0H");
- n51xx.input_callback<2>().set_ioport("IN1L");
- n51xx.input_callback<3>().set_ioport("IN1H");
- n51xx.output_callback<0>().set(FUNC(galaga_state::out_0));
- n51xx.output_callback<1>().set(FUNC(galaga_state::out_1));
-
- namco_53xx_device &n53xx(NAMCO_53XX(config, "53xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */
- n53xx.k_port_callback().set("misclatch", FUNC(ls259_device::q7_r)).lshift(3); // MOD 2 = K3
- n53xx.k_port_callback().append("misclatch", FUNC(ls259_device::q6_r)).lshift(2); // MOD 1 = K2
- n53xx.k_port_callback().append("misclatch", FUNC(ls259_device::q5_r)).lshift(1); // MOD 0 = K1
- // K0 is left unconnected
- n53xx.input_callback<0>().set_ioport("DSWA").mask(0x0f);
- n53xx.input_callback<1>().set_ioport("DSWA").rshift(4);
- n53xx.input_callback<2>().set_ioport("DSWB").mask(0x0f);
- n53xx.input_callback<3>().set_ioport("DSWB").rshift(4);
-
- namco_06xx_device &n06xx(NAMCO_06XX(config, "06xx", MASTER_CLOCK/6/64));
- n06xx.set_maincpu(m_maincpu);
- n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read));
- n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write));
- n06xx.read_callback<1>().set("53xx", FUNC(namco_53xx_device::read));
- n06xx.read_request_callback<1>().set("53xx", FUNC(namco_53xx_device::read_request));
-
- LS259(config, m_videolatch); // 5R
- m_videolatch->parallel_out_cb().set(FUNC(digdug_state::bg_select_w)).mask(0x33);
- m_videolatch->q_out_cb<2>().set(FUNC(digdug_state::tx_color_mode_w));
- m_videolatch->q_out_cb<3>().set(FUNC(digdug_state::bg_disable_w));
- m_videolatch->q_out_cb<7>().set(FUNC(digdug_state::flip_screen_w));
-
- config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
-
- ER2055(config, m_earom);
-
- WATCHDOG_TIMER(config, "watchdog");
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_raw(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224);
- m_screen->set_screen_update(FUNC(digdug_state::screen_update_digdug));
- m_screen->set_palette(m_palette);
- m_screen->screen_vblank().set(FUNC(galaga_state::vblank_irq));
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_digdug);
- PALETTE(config, m_palette, FUNC(digdug_state::digdug_palette), 16*2 + 64*4 + 64*4, 32);
-
- MCFG_VIDEO_START_OVERRIDE(digdug_state,digdug)
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
- m_namco_sound->set_voices(3);
- m_namco_sound->add_route(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0);
-}
-
-void digdug_state::dzigzag(machine_config &config)
-{
- digdug(config);
-
- /* basic machine hardware */
-
- z80_device &sub3(Z80(config, "sub3", MASTER_CLOCK/6)); /* 3.072 MHz */
- sub3.set_addrmap(AS_PROGRAM, &digdug_state::dzigzag_mem4);
-}
-
-
-
-/***************************************************************************
-
- Game driver(s)
-
-***************************************************************************/
-
-/**********************************************************************************************
- Bosconian & clones
-**********************************************************************************************/
-/*
-
-Bosconian
-Namco/Midway, 1981
-
-*/
-
-ROM_START( bosco )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "bos3_1.3n", 0x0000, 0x1000, CRC(96021267) SHA1(bd49b0caabcccf9df45a272d767456a4fc8a7c07) )
- ROM_LOAD( "bos1_2.3m", 0x1000, 0x1000, CRC(2d8f3ebe) SHA1(75de1cba7531ae4bf7fbbef7b8e37b9fec4ed0d0) )
- ROM_LOAD( "bos1_3.3l", 0x2000, 0x1000, CRC(c80ccfa5) SHA1(f2bbec2ea9846d4601f06c0b4242744447a88fda) )
- ROM_LOAD( "bos1_4b.3k", 0x3000, 0x1000, CRC(a3f7f4ab) SHA1(eb26184311bae0767c7a5593926e6eadcbcb680e) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "bos1_5c.3j", 0x0000, 0x1000, CRC(a7c8e432) SHA1(3607be75daa10f1f98dbfd9e600c5ba513130d44) )
- ROM_LOAD( "bos3_6.3h", 0x1000, 0x1000, CRC(4543cf82) SHA1(50ad7d1ab6694eb8fab88d0fa79ee04f6984f3ca) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "bos1_7.3e", 0x0000, 0x1000, CRC(d45a4911) SHA1(547236adca9174f5cc0ec05b9649618bb92ba630) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "bos1_14.5d", 0x0000, 0x1000, CRC(a956d3c5) SHA1(c5a9d7b1f9b4acda8fb9762414e085cb5fb80c9e) )
-
- ROM_REGION( 0x1000, "gfx2", 0 )
- ROM_LOAD( "bos1_13.5e", 0x0000, 0x1000, CRC(e869219c) SHA1(425614cd0642743a82ef9c1aada29774a92203ea) )
-
- ROM_REGION( 0x0100, "gfx3", 0 )
- ROM_LOAD( "bos1-4.2r", 0x0000, 0x0100, CRC(9b69b543) SHA1(47af3f67e50794e839b74fe61197af2228084efd) ) /* dots */
-
- ROM_REGION( 0x0260, "proms", 0 )
- ROM_LOAD( "bos1-6.6b", 0x0000, 0x0020, CRC(d2b96fb0) SHA1(54c100ec9d173d7dd48a453ebed5f625053cb6e0) ) /* palette */
- ROM_LOAD( "bos1-5.4m", 0x0020, 0x0100, CRC(4e15d59c) SHA1(3542ead6421d169c3569e121ec2be304e108787c) ) /* lookup table */
- ROM_LOAD( "bos1-3.2d", 0x0120, 0x0020, CRC(b88d5ba9) SHA1(7b97a38a540b7ca4b7d9ae338ec38b9b1a337846) ) /* video layout (not used) */
- ROM_LOAD( "bos1-7.7h", 0x0140, 0x0020, CRC(87d61353) SHA1(c7493e52662c921625676a4a4e8cf4371bd938b7) ) /* video timing (not used) */
-
- ROM_REGION( 0x0200, "namco", 0 )
- ROM_LOAD( "bos1-1.1d", 0x0000, 0x0100, CRC(de2316c6) SHA1(0e55c56046331888d1d3f0d9823d2ceb203e7d3f) )
- ROM_LOAD( "bos1-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-
- ROM_REGION( 0x3000, "52xx", 0 ) /* ROMs for digitised speech */
- ROM_LOAD( "bos1_9.5n", 0x0000, 0x1000, CRC(09acc978) SHA1(2b264aaeb6eba70ad91593413dca733990e5467b) )
- ROM_LOAD( "bos1_10.5m", 0x1000, 0x1000, CRC(e571e959) SHA1(9c81d7bec73bc605f7dd9a089171b0f34c4bb09a) )
- ROM_LOAD( "bos1_11.5k", 0x2000, 0x1000, CRC(17ac9511) SHA1(266f3fae90d2fe38d109096d352863a52b379899) )
-ROM_END
-
-ROM_START( boscoo )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "bos1_1.3n", 0x0000, 0x1000, CRC(0d9920e7) SHA1(e7633233f603ccb5b7a970ed5b58ef361ef2c94e) )
- ROM_LOAD( "bos1_2.3m", 0x1000, 0x1000, CRC(2d8f3ebe) SHA1(75de1cba7531ae4bf7fbbef7b8e37b9fec4ed0d0) )
- ROM_LOAD( "bos1_3.3l", 0x2000, 0x1000, CRC(c80ccfa5) SHA1(f2bbec2ea9846d4601f06c0b4242744447a88fda) )
- ROM_LOAD( "bos1_4b.3k", 0x3000, 0x1000, CRC(a3f7f4ab) SHA1(eb26184311bae0767c7a5593926e6eadcbcb680e) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "bos1_5c.3j", 0x0000, 0x1000, CRC(a7c8e432) SHA1(3607be75daa10f1f98dbfd9e600c5ba513130d44) )
- ROM_LOAD( "bos1_6.3h", 0x1000, 0x1000, CRC(31b8c648) SHA1(de0db24d385d2361ec989bf32388df8202ad535c) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "bos1_7.3e", 0x0000, 0x1000, CRC(d45a4911) SHA1(547236adca9174f5cc0ec05b9649618bb92ba630) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "bos1_14.5d", 0x0000, 0x1000, CRC(a956d3c5) SHA1(c5a9d7b1f9b4acda8fb9762414e085cb5fb80c9e) )
-
- ROM_REGION( 0x1000, "gfx2", 0 )
- ROM_LOAD( "bos1_13.5e", 0x0000, 0x1000, CRC(e869219c) SHA1(425614cd0642743a82ef9c1aada29774a92203ea) )
-
- ROM_REGION( 0x0100, "gfx3", 0 )
- ROM_LOAD( "bos1-4.2r", 0x0000, 0x0100, CRC(9b69b543) SHA1(47af3f67e50794e839b74fe61197af2228084efd) ) /* dots */
-
- ROM_REGION( 0x0260, "proms", 0 )
- ROM_LOAD( "bos1-6.6b", 0x0000, 0x0020, CRC(d2b96fb0) SHA1(54c100ec9d173d7dd48a453ebed5f625053cb6e0) ) /* palette */
- ROM_LOAD( "bos1-5.4m", 0x0020, 0x0100, CRC(4e15d59c) SHA1(3542ead6421d169c3569e121ec2be304e108787c) ) /* lookup table */
- ROM_LOAD( "bos1-3.2d", 0x0120, 0x0020, CRC(b88d5ba9) SHA1(7b97a38a540b7ca4b7d9ae338ec38b9b1a337846) ) /* video layout (not used) */
- ROM_LOAD( "bos1-7.7h", 0x0140, 0x0020, CRC(87d61353) SHA1(c7493e52662c921625676a4a4e8cf4371bd938b7) ) /* video timing (not used) */
-
- ROM_REGION( 0x0200, "namco", 0 )
- ROM_LOAD( "bos1-1.1d", 0x0000, 0x0100, CRC(de2316c6) SHA1(0e55c56046331888d1d3f0d9823d2ceb203e7d3f) )
- ROM_LOAD( "bos1-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-
- ROM_REGION( 0x3000, "52xx", 0 ) /* ROMs for digitised speech */
- ROM_LOAD( "bos1_9.5n", 0x0000, 0x1000, CRC(09acc978) SHA1(2b264aaeb6eba70ad91593413dca733990e5467b) )
- ROM_LOAD( "bos1_10.5m", 0x1000, 0x1000, CRC(e571e959) SHA1(9c81d7bec73bc605f7dd9a089171b0f34c4bb09a) )
- ROM_LOAD( "bos1_11.5k", 0x2000, 0x1000, CRC(17ac9511) SHA1(266f3fae90d2fe38d109096d352863a52b379899) )
-ROM_END
-
-ROM_START( boscoo2 )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "bos1_1.3n", 0x0000, 0x1000, CRC(0d9920e7) SHA1(e7633233f603ccb5b7a970ed5b58ef361ef2c94e) )
- ROM_LOAD( "bos1_2.3m", 0x1000, 0x1000, CRC(2d8f3ebe) SHA1(75de1cba7531ae4bf7fbbef7b8e37b9fec4ed0d0) )
- ROM_LOAD( "bos1_3.3l", 0x2000, 0x1000, CRC(c80ccfa5) SHA1(f2bbec2ea9846d4601f06c0b4242744447a88fda) )
- ROM_LOAD( "bos1_4.3k", 0x3000, 0x1000, CRC(7ebea2b8) SHA1(92fc66526ed77f3efd947b7d321b255aba4a0140) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "bos1_5b.3j", 0x0000, 0x1000, CRC(3d6955a8) SHA1(f89860d74865da5ced2f5b2196bdaa8eeb5e2322) )
- ROM_LOAD( "bos1_6.3h", 0x1000, 0x1000, CRC(31b8c648) SHA1(de0db24d385d2361ec989bf32388df8202ad535c) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "bos1_7.3e", 0x0000, 0x1000, CRC(d45a4911) SHA1(547236adca9174f5cc0ec05b9649618bb92ba630) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "bos1_14.5d", 0x0000, 0x1000, CRC(a956d3c5) SHA1(c5a9d7b1f9b4acda8fb9762414e085cb5fb80c9e) )
-
- ROM_REGION( 0x1000, "gfx2", 0 )
- ROM_LOAD( "bos1_13.5e", 0x0000, 0x1000, CRC(e869219c) SHA1(425614cd0642743a82ef9c1aada29774a92203ea) )
-
- ROM_REGION( 0x0100, "gfx3", 0 )
- ROM_LOAD( "bos1-4.2r", 0x0000, 0x0100, CRC(9b69b543) SHA1(47af3f67e50794e839b74fe61197af2228084efd) ) /* dots */
-
- ROM_REGION( 0x0260, "proms", 0 )
- ROM_LOAD( "bos1-6.6b", 0x0000, 0x0020, CRC(d2b96fb0) SHA1(54c100ec9d173d7dd48a453ebed5f625053cb6e0) ) /* palette */
- ROM_LOAD( "bos1-5.4m", 0x0020, 0x0100, CRC(4e15d59c) SHA1(3542ead6421d169c3569e121ec2be304e108787c) ) /* lookup table */
- ROM_LOAD( "bos1-3.2d", 0x0120, 0x0020, CRC(b88d5ba9) SHA1(7b97a38a540b7ca4b7d9ae338ec38b9b1a337846) ) /* video layout (not used) */
- ROM_LOAD( "bos1-7.7h", 0x0140, 0x0020, CRC(87d61353) SHA1(c7493e52662c921625676a4a4e8cf4371bd938b7) ) /* video timing (not used) */
-
- ROM_REGION( 0x0200, "namco", 0 )
- ROM_LOAD( "bos1-1.1d", 0x0000, 0x0100, CRC(de2316c6) SHA1(0e55c56046331888d1d3f0d9823d2ceb203e7d3f) )
- ROM_LOAD( "bos1-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-
- ROM_REGION( 0x3000, "52xx", 0 ) /* ROMs for digitised speech */
- ROM_LOAD( "bos1_9.5n", 0x0000, 0x1000, CRC(09acc978) SHA1(2b264aaeb6eba70ad91593413dca733990e5467b) )
- ROM_LOAD( "bos1_10.5m", 0x1000, 0x1000, CRC(e571e959) SHA1(9c81d7bec73bc605f7dd9a089171b0f34c4bb09a) )
- ROM_LOAD( "bos1_11.5k", 0x2000, 0x1000, CRC(17ac9511) SHA1(266f3fae90d2fe38d109096d352863a52b379899) )
-ROM_END
-
-/*
- Bosconian - Midway Version
-
- CPU/Sound Board: A084-91412-B550
- Video Board: A084-91413-B550
-*/
-
-ROM_START( boscomd )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "3n", 0x0000, 0x1000, CRC(441b501a) SHA1(7b4921ff40b3c56950fd32aa0ec5563b02a00929) )
- ROM_LOAD( "3m", 0x1000, 0x1000, CRC(a3c5c7ef) SHA1(70a095a8dbca857245a70404f803916f519e0cbc) )
- ROM_LOAD( "3l", 0x2000, 0x1000, CRC(6ca9a0cf) SHA1(8f70e29beae921e63cd65689a618ca678dd14614) )
- ROM_LOAD( "3k", 0x3000, 0x1000, CRC(d83bacc5) SHA1(cf2fbfa81dabb9b6bcf436d61992e705723776fb) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "3j", 0x0000, 0x1000, CRC(4374e39a) SHA1(7571fd5961f49a0e9ba4301ddd0aca52e94e2f8b) )
- ROM_LOAD( "3h", 0x1000, 0x1000, CRC(04e9fcef) SHA1(2115a9718d511854848704e2693f9efa1c80a307) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "2900.3e", 0x0000, 0x1000, CRC(d45a4911) SHA1(547236adca9174f5cc0ec05b9649618bb92ba630) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "5300.5d", 0x0000, 0x1000, CRC(a956d3c5) SHA1(c5a9d7b1f9b4acda8fb9762414e085cb5fb80c9e) )
-
- ROM_REGION( 0x1000, "gfx2", 0 )
- ROM_LOAD( "5200.5e", 0x0000, 0x1000, CRC(e869219c) SHA1(425614cd0642743a82ef9c1aada29774a92203ea) )
-
- ROM_REGION( 0x0100, "gfx3", 0 )
- ROM_LOAD( "prom.2d", 0x0000, 0x0100, CRC(9b69b543) SHA1(47af3f67e50794e839b74fe61197af2228084efd) ) /* dots */
-
- ROM_REGION( 0x0260, "proms", 0 )
- ROM_LOAD( "bosco.6b", 0x0000, 0x0020, CRC(d2b96fb0) SHA1(54c100ec9d173d7dd48a453ebed5f625053cb6e0) ) /* palette */
- ROM_LOAD( "bosco.4m", 0x0020, 0x0100, CRC(4e15d59c) SHA1(3542ead6421d169c3569e121ec2be304e108787c) ) /* lookup table */
- ROM_LOAD( "prom.2r", 0x0120, 0x0020, CRC(b88d5ba9) SHA1(7b97a38a540b7ca4b7d9ae338ec38b9b1a337846) ) /* video layout (not used) */
- ROM_LOAD( "prom.7h", 0x0140, 0x0020, CRC(87d61353) SHA1(c7493e52662c921625676a4a4e8cf4371bd938b7) ) /* video timing (not used) */
-
- ROM_REGION( 0x0200, "namco", 0 )
- ROM_LOAD( "prom.1d", 0x0000, 0x0100, CRC(de2316c6) SHA1(0e55c56046331888d1d3f0d9823d2ceb203e7d3f) )
- ROM_LOAD( "prom.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-
- ROM_REGION( 0x3000, "52xx", 0 ) /* ROMs for digitised speech */
- ROM_LOAD( "4900.5n", 0x0000, 0x1000, CRC(09acc978) SHA1(2b264aaeb6eba70ad91593413dca733990e5467b) )
- ROM_LOAD( "5000.5m", 0x1000, 0x1000, CRC(e571e959) SHA1(9c81d7bec73bc605f7dd9a089171b0f34c4bb09a) )
- ROM_LOAD( "5100.5l", 0x2000, 0x1000, CRC(17ac9511) SHA1(266f3fae90d2fe38d109096d352863a52b379899) )
-
- ROM_REGION( 0x0001, "pal_vidbd", 0 ) /* PAL located on the video board */
- ROM_LOAD( "0066-005xx-xxqx.5a", 0x00000, 0x00001, NO_DUMP ) /* According to the manual it's a PAL. What type is unknown. */
-ROM_END
-
-ROM_START( boscomdo )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "2300.3n", 0x0000, 0x1000, CRC(db6128b0) SHA1(ddd285f7e00d5e58ab9b15838528e0020d47fcd2) )
- ROM_LOAD( "2400.3m", 0x1000, 0x1000, CRC(86907614) SHA1(3295ab6c5171a069875c2239b3325296c1df6031) )
- ROM_LOAD( "2500.3l", 0x2000, 0x1000, CRC(a21fae11) SHA1(dff38d90ee30558274d2d399edc3281c2ef5cb69) )
- ROM_LOAD( "2600.3k", 0x3000, 0x1000, CRC(11d6ae23) SHA1(f2f72f5c777b684f7ffd53b9c034560211113499) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "2700.3j", 0x0000, 0x1000, CRC(7254e65e) SHA1(c2ee29fcb5173e8d46a80a8a1b931a53dbdeae66) )
- ROM_LOAD( "2800.3h", 0x1000, 0x1000, CRC(31b8c648) SHA1(de0db24d385d2361ec989bf32388df8202ad535c) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "2900.3e", 0x0000, 0x1000, CRC(d45a4911) SHA1(547236adca9174f5cc0ec05b9649618bb92ba630) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "5300.5d", 0x0000, 0x1000, CRC(a956d3c5) SHA1(c5a9d7b1f9b4acda8fb9762414e085cb5fb80c9e) )
-
- ROM_REGION( 0x1000, "gfx2", 0 )
- ROM_LOAD( "5200.5e", 0x0000, 0x1000, CRC(e869219c) SHA1(425614cd0642743a82ef9c1aada29774a92203ea) )
-
- ROM_REGION( 0x0100, "gfx3", 0 )
- ROM_LOAD( "prom.2d", 0x0000, 0x0100, CRC(9b69b543) SHA1(47af3f67e50794e839b74fe61197af2228084efd) ) /* dots */
-
- ROM_REGION( 0x0260, "proms", 0 )
- ROM_LOAD( "bosco.6b", 0x0000, 0x0020, CRC(d2b96fb0) SHA1(54c100ec9d173d7dd48a453ebed5f625053cb6e0) ) /* palette */
- ROM_LOAD( "bosco.4m", 0x0020, 0x0100, CRC(4e15d59c) SHA1(3542ead6421d169c3569e121ec2be304e108787c) ) /* lookup table */
- ROM_LOAD( "prom.2r", 0x0120, 0x0020, CRC(b88d5ba9) SHA1(7b97a38a540b7ca4b7d9ae338ec38b9b1a337846) ) /* video layout (not used) */
- ROM_LOAD( "prom.7h", 0x0140, 0x0020, CRC(87d61353) SHA1(c7493e52662c921625676a4a4e8cf4371bd938b7) ) /* video timing (not used) */
-
- ROM_REGION( 0x0200, "namco", 0 )
- ROM_LOAD( "prom.1d", 0x0000, 0x0100, CRC(de2316c6) SHA1(0e55c56046331888d1d3f0d9823d2ceb203e7d3f) )
- ROM_LOAD( "prom.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-
- ROM_REGION( 0x3000, "52xx", 0 ) /* ROMs for digitised speech */
- ROM_LOAD( "4900.5n", 0x0000, 0x1000, CRC(09acc978) SHA1(2b264aaeb6eba70ad91593413dca733990e5467b) )
- ROM_LOAD( "5000.5m", 0x1000, 0x1000, CRC(e571e959) SHA1(9c81d7bec73bc605f7dd9a089171b0f34c4bb09a) )
- ROM_LOAD( "5100.5l", 0x2000, 0x1000, CRC(17ac9511) SHA1(266f3fae90d2fe38d109096d352863a52b379899) )
-
- ROM_REGION( 0x0001, "pal_vidbd", 0 ) /* PAL located on the video board */
- ROM_LOAD( "0066-005xx-xxqx.5a", 0x00000, 0x00001, NO_DUMP ) /* According to the manual it's a PAL. What type is unknown. */
-ROM_END
-
-/**********************************************************************************************
- Galaga & clones
-**********************************************************************************************/
-/*
-
-Galaga
-Namco/Midway, 1982
-
-PCB Layout
-----------
-
-Top board
-
-23149611 (23149631
-|------------------------------------------|
-| LM324 |
-| 04M_G01.3N |
-| Z80 5400 |
-| 04K_G02.3M |
-| |
-| 0600 04J_G03.3L |-|
-| DSW1 |
-| 04H_G04.3K DSW2 |-|
-| |
-| 0801 04E_G05.3J Z80 4|
-| 4|
-| W|
-| * 5100 A|
-| 0801 Y|
-| TD62064 |
-| 04D_G06.3E Z80 |
-| |-|
-| 0801 |
-| * |-|
-| 0702 VOL |
-| MB3730|
-|GG1-1.1D |
-| GG1-2.5C |
-| 3101 |
-| 3101 4066 18.432MHz|
-|------------------------------------------|
-Notes:
- GG1-1.1D & GG1-2.5C are PROMs, type MB7052 (equivalent to TBP24S10 and 82S129).
- All other ROMs are 2732 EPROMs (i.e. 04*.*).
- *: Unpopulated sockets
-
- VSync : 60.606060Hz
- Z80 clocks (all): 1.536MHz
- 5400 clock : 1.536MHz
- 5100 clock : 1.536MHz
-
- 3101 : 16bytes x4 bit Bipolar SRAM, compatible with 7489, MB461 & AM31L01 (trivia - This was Intel's first product, released in 1969!)
- MB3730 : Sound AMP
- TD62064: Darlington transistor for driving coin counters.
- 4066 : Quad Bilateral Switch logic IC, used to mix several sound sources to one output.
-
- NAMCO customs:
- 0600 (DIP28): Bus Interface IC
- 0801 (DIP28): Multi CPU Bus Controller IC
- 5100 (DIP42): Controls player input, coins, DSW's (custom 4 bit I/O Microcontroller)
- 0702 (DIP28): Sync Generator/Clock Divider IC
- 5400 (DIP28): MUX 4-channel Audio Generator IC. Generates 'death bang'.
- This is not a Z80 with swapped pins as many sites have reported.
-
- Pinouts:
- Galaga PCB edge connector pinouts
-
- Parts Side Pin Pin Solder Side
- ----------------------------------
- Logic Ground A 1 Logic Ground
- Speaker + B 2 Speaker -
- C 3 Coin Counter 1
- P1 Start Lamp D 4 P2 Start Lamp
- +12 E 5 +12
- +5 F 6 +5
- Ground H 7 Ground
- Service Credit J 8 Test
- Coin 1 K 9 Coin 2
- Player 1 Start L 10 Player 2 Start
- P1 Fire M 11 P2 Fire
- P1 Left N 12 P2 Left
- P 13
- P1 Right R 14 P2 Right
- S 15
- T 16
- U 17
- V 18
- W 19
- X 20
- Coin Counter 2 Y 21 Cocktail Mode
- Ground Z 22 Ground
-
- Pin21: Ground this pin for cocktail mode
-
-
-Bottom board
-
-23149612 (23149632
-|------------------------------------------|
-| 0700 GG1-4.2N GG1-5.5N |
-| * RGBS|
-| 0015 |
-| |
-| 2114 |
-| 6116 8147 |
-| 2114 07M_G08.4L |
-| 8147 |
-| 2114 |
-| 0400 8147 |
-| 2114 |
-| 8147 |
-| 2114 0200 |
-| |
-| 2114 |
-| 07H_G09.4F 8147 |
-| |
-| 8147 |
-| |
-| 07E_G10.4D 8147 |
-| |
-| 8147 |
-| GG1-3.1C |
-| |
-| |
-|------------------------------------------|
-Notes:
- RGBS: Video output socket (Red, Green Blue, Sync to monitor)
- GG1* are PROMs, type MB7052 (equivalent to TBP24S10 and 82S129).
- All other ROMs are 2732 EPROMs.
- *: Unpopulated socket
-
- 2114 : 1K x4 SRAM
- 6116 : 2K x8 SRAM
- 8147 : 4K x1 SRAM (Note - you can remove the eight 8147 RAMs and install two 2148s (1K x 4) in their place at positions 6H and 6B.
-
- Bootup RAM Errors
- Error Code Meaning
- RAM OK All RAMs are good
- RAM 0L RAM located on Video PC board at position 1K is bad
- RAM 0H RAM located on Video PC board at position 1K is bad
- RAM 1L RAM located on Video PC board at position 1K is bad
- RAM 1H RAM located on Video PC board at position 1K is bad
- RAM 2L RAM located on Video PC board at position 3E is bad
- RAM 2H RAM located on Video PC board at position 3F is bad
- RAM 3L RAM located on Video PC board at position 3K is bad
- RAM 3H RAM located on Video PC board at position 3L is bad
- RAM 4L RAM located on Video PC board at position 3H is bad
- RAM 4H RAM located on Video PC board at position 3J is bad
-
- Bootup ROM Errors
- Error Code Meaning
- ROM OK All ROMs are good
- ROM 01 ROM located on CPU PC board at position 3N is bad
- ROM 02 ROM located on CPU PC board at position 3M is bad
- ROM 03 ROM located on CPU PC board at position 3L is bad
- ROM 04 ROM located on CPU PC board at position 3K is bad
- ROM 11 ROM located on CPU PC board at position 3J is bad
- ROM 21 ROM located on CPU PC board at position 3E is bad
-
- NAMCO customs:
- 0015 (DIP28): Video RAM addresser IC
- 0200 (DIP28): Graphics ROM Data Custom Shift Register IC
- 0400 (DIP28): Motion Object and Scratch RAM to CPU Bus Interface IC
- 0702 (DIP28): Sync Generator/Clock Divider IC
-
-*/
-
-ROM_START( galaga )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "gg1_1b.3p", 0x0000, 0x1000, CRC(ab036c9f) SHA1(ca7f5da42d4e76fd89bb0b35198a23c01462fbfe) )
- ROM_LOAD( "gg1_2b.3m", 0x1000, 0x1000, CRC(d9232240) SHA1(ab202aa259c3d332ef13dfb8fc8580ce2a5a253d) )
- ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
- ROM_LOAD( "gg1_4b.2l", 0x3000, 0x1000, CRC(499fcc76) SHA1(ddb8b121903646c320939c7d13f4aa4ebb130378) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "gg1_5b.3f", 0x0000, 0x1000, CRC(bb5caae3) SHA1(e957a581463caac27bc37ca2e2a90f27e4f62b6f) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "gg1_7b.2c", 0x0000, 0x1000, CRC(d016686b) SHA1(44c1a04fba3c7c826ff484185cb881b4b22e6657) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
-
- ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "gg1_11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
- ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
-
- ROM_REGION( 0x0220, "proms", 0 )
- ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */
- ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */
- ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */
-
- ROM_REGION( 0x0200, "namco", 0 )
- ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
- ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-ROM_START( galagao )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "gg1-1.3p", 0x0000, 0x1000, CRC(a3a0f743) SHA1(6907773db7c002ecde5e41853603d53387c5c7cd) )
- ROM_LOAD( "gg1-2.3m", 0x1000, 0x1000, CRC(43bb0d5c) SHA1(666975aed5ce84f09794c54b550d64d95ab311f0) )
- ROM_LOAD( "gg1-3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
- ROM_LOAD( "gg1-4.2l", 0x3000, 0x1000, CRC(83874442) SHA1(366cb0dbd31b787e64f88d182108b670d03b393e) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "gg1-5.3f", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "gg1-7.2c", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "gg1-9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
-
- ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "gg1-11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
- ROM_LOAD( "gg1-10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
-
- ROM_REGION( 0x0220, "proms", 0 )
- ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */
- ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */
- ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */
-
- ROM_REGION( 0x0200, "namco", 0 )
- ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
- ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-ROM_START( galagamw )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
- ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
- ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
- ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "3600e.bin", 0x0000, 0x1000, CRC(bc556e76) SHA1(0d3d68243c4571d985b4d8f7e0ea9f6fcffa2116) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "2600j.bin", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
-
- ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "2800l.bin", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
- ROM_LOAD( "2700k.bin", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
-
- ROM_REGION( 0x0220, "proms", 0 )
- ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */
- ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */
- ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */
-
- ROM_REGION( 0x0200, "namco", 0 )
- ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
- ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-ROM_START( galagamf )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
- ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
- ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
- ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "2600j.bin", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
-
- ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "2800l.bin", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
- ROM_LOAD( "2700k.bin", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
-
- ROM_REGION( 0x0220, "proms", 0 )
- ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */
- ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */
- ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */
-
- ROM_REGION( 0x0200, "namco", 0 )
- ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
- ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-ROM_START( galagamk )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "mk2-1", 0x0000, 0x1000, CRC(23cea1e2) SHA1(18db33ade0ca6e47cc48aa151d2ccbb4646e3ae3) )
- ROM_LOAD( "mk2-2", 0x1000, 0x1000, CRC(89695b1a) SHA1(fda5557018884e903f855bf3b69a25d75ed8a767) )
- ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
- ROM_LOAD( "mk2-4", 0x3000, 0x1000, CRC(24b767f5) SHA1(d4c03e2ed582cfa7f8168ac352f790ef7af54cb8) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "gg1-5.3f", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "gg1-7b.2c", 0x0000, 0x1000, CRC(d016686b) SHA1(44c1a04fba3c7c826ff484185cb881b4b22e6657) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "gg1-9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
-
- ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "gg1-11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
- ROM_LOAD( "gg1-10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
-
- ROM_REGION( 0x0220, "proms", 0 )
- ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */
- ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */
- ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */
-
- ROM_REGION( 0x0200, "namco", 0 )
- ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
- ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-ROM_START( gallag )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "gallag.1", 0x0000, 0x1000, CRC(a3a0f743) SHA1(6907773db7c002ecde5e41853603d53387c5c7cd) )
- ROM_LOAD( "gallag.2", 0x1000, 0x1000, CRC(5eda60a7) SHA1(853d7b974dd04abd7af3a8ba2681dfabce4dce18) )
- ROM_LOAD( "gallag.3", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
- ROM_LOAD( "gallag.4", 0x3000, 0x1000, CRC(83874442) SHA1(366cb0dbd31b787e64f88d182108b670d03b393e) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "gallag.5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "gallag.7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) )
-
- ROM_REGION( 0x10000, "sub3", 0 ) /* 64k for a Z80 which emulates the custom I/O chip (not used) */
- ROM_LOAD( "gallag.6", 0x0000, 0x1000, CRC(001b70bc) SHA1(b465eee91e75257b7b049d49c0064ab5fd66c576) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "gallag.8", 0x0000, 0x1000, CRC(169a98a4) SHA1(edbeb11076061e744ea88d9899dbdfe0964c7e78) )
-
- ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "gallag.a", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
- ROM_LOAD( "gallag.9", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
-
- ROM_REGION( 0x0220, "proms", 0 )
- ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */
- ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */
- ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */
-
- ROM_REGION( 0x0200, "namco", 0 )
- ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
- ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-ROM_START( gatsbee )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "1.4b", 0x0000, 0x1000, CRC(9fb8e28b) SHA1(7171e3fb37b0d6cc8f7a023c1775080d5986de99) )
- ROM_LOAD( "2.4c", 0x1000, 0x1000, CRC(bf6cb840) SHA1(5763140d32d35a38cdcb49e6de1fd5b07a9e8cc2) )
- ROM_LOAD( "3.4d", 0x2000, 0x1000, CRC(3604e2dd) SHA1(1736cf8497f7ac28e92ca94fa137c144353dc192) )
- ROM_LOAD( "4.4e", 0x3000, 0x1000, CRC(bf9f613b) SHA1(41c852fc77f0f35bf48a5b81a19234ed99871c89) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "gg1-5.3f", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) ) // 5.4j
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "gg1-7.2c", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) ) // 7.4k
-
- ROM_REGION( 0x10000, "sub3", 0 ) /* 64k for a Z80 which emulates the custom I/O chip (not used) */
- ROM_LOAD( "gallag.6", 0x0000, 0x1000, CRC(001b70bc) SHA1(b465eee91e75257b7b049d49c0064ab5fd66c576) )
-
- ROM_REGION( 0x2000, "gfx1", 0 )
- ROM_LOAD( "8.5r", 0x0000, 0x2000, CRC(b324f650) SHA1(7bcb254f7cf03bd84291b9fdc27b8962b3e12aa4) )
-
- ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "9.6a", 0x0000, 0x1000, CRC(22e339d5) SHA1(9ac2887ede802d28daa4ad0a0a54bcf7b1155a2e) )
- ROM_LOAD( "10.7a", 0x1000, 0x1000, CRC(60dcf940) SHA1(6530aa5b4afef4a8422ece76a93d0c5b1d93355e) )
-
- ROM_REGION( 0x0220, "proms", 0 )
- ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */
- ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */
- ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */
-
- ROM_REGION( 0x0200, "namco", 0 )
- ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
- ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-ROM_START( nebulbee )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "nebulbee.01", 0x0000, 0x1000, CRC(f405f2c4) SHA1(9249afeffd8df0f24539ea9b4f88c23a6ad58d8c) )
- ROM_LOAD( "nebulbee.02", 0x1000, 0x1000, CRC(31022b60) SHA1(90e64afb4128c6dfeeee89635ea9f97a34f70f5f) )
- ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
- ROM_LOAD( "nebulbee.04", 0x3000, 0x1000, CRC(d76788a5) SHA1(adcb83cf64951d86c701a99b410e9230912f8a48) )
-
- ROM_REGION( 0x10000, "sub", 0 )
- ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) )
-
- ROM_REGION( 0x10000, "sub2", 0 )
- ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) )
-
- ROM_REGION( 0x10000, "sub3", 0 ) /* 64k for a Z80 which emulates the custom I/O chip (not used) */
- ROM_LOAD( "nebulbee.07", 0x0000, 0x1000, CRC(035e300c) SHA1(cfda2467e71c27381b7150ff8fc7b69d61df123a) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
-
- ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "gg1_11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
- ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
-
- ROM_REGION( 0x0320, "proms", 0 )
- ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
- ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
- ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
- ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
-
- ROM_REGION( 0x0100, "namco", 0 )
- ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
-ROM_END
-
-/**********************************************************************************************
- Xevious & clones
-**********************************************************************************************/
-
-/*
- Xevious - Namco Version
-
- Single/Dual Board?
-*/
-
-ROM_START( xevious )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */
- ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) )
- ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) )
- ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) )
- ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) )
- ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) )
-
- ROM_REGION( 0x10000, "sub2", 0 )
- ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "xvi_12.3b", 0x0000, 0x1000, CRC(088c8b26) SHA1(9c3b61dfca2f84673a78f7f66e363777a8f47a59) ) /* foreground characters */
-
- ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */
- ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */
-
- ROM_REGION( 0xa000, "gfx3", 0 )
- ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */
- ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */
- ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */
- ROM_LOAD( "xvi_18.4r", 0x5000, 0x2000, CRC(02417d19) SHA1(b5f830dd2cf25cf154308d2e640f0ecdcda5d8cd) ) /* sprite set #1, plane 2, set #2, plane 2 */
- /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */
- ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel
-
- ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */
- ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
- ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
- ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
-
- ROM_REGION( 0x0b00, "proms", 0 )
- ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */
- ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */
- ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */
- ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */
- ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */
- ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */
- ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */
-
- ROM_REGION( 0x0200, "pals_vidbd", 0) /* PAL's located on the video board */
- ROM_LOAD( "xvi-3.1f", 0x0000, 0x0117, CRC(9192d57a) SHA1(5f36db93b6083767f93aa3a0e4bc2d4fc7e27f9c) ) /* N82S153N */
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */
- ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
- ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-/*
- Xevious - Atari Version
-
- CPU/Sound Board: A039785
- Video Board: A039787
-*/
-
-ROM_START( xeviousa )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */
- ROM_LOAD( "xea-1m-a.bin", 0x0000, 0x2000, CRC(8c2b50ec) SHA1(f770873b711d838556dde67a8aac8a7f572fcc5b) )
- ROM_LOAD( "xea-1l-a.bin", 0x2000, 0x2000, CRC(0821642b) SHA1(c6c322c61d0985a2ac59f5e92d4e351107afb9eb) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "xea-4c-a.bin", 0x0000, 0x2000, CRC(14d8fa03) SHA1(e8114141394adda86184b146f2497cfeef7fc2eb) )
-
- ROM_REGION( 0x10000, "sub2", 0 )
- ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "xvi_12.3b", 0x0000, 0x1000, CRC(088c8b26) SHA1(9c3b61dfca2f84673a78f7f66e363777a8f47a59) ) /* foreground characters */
-
- ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */
- ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */
-
- ROM_REGION( 0xa000, "gfx3", 0 )
- ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */
- ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */
- ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */
- ROM_LOAD( "xvi_18.4r", 0x5000, 0x2000, CRC(02417d19) SHA1(b5f830dd2cf25cf154308d2e640f0ecdcda5d8cd) ) /* sprite set #1, plane 2, set #2, plane 2 */
- /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */
- ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel
-
- ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */
- ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
- ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
- ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
-
- ROM_REGION( 0x0b00, "proms", 0 )
- ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */
- ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */
- ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */
- ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */
- ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */
- ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */
- ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */
-
- ROM_REGION( 0x0200, "pals_vidbd", 0) /* PAL's located on the video board */
- ROM_LOAD( "xvi-3.1f", 0x0000, 0x0117, CRC(9192d57a) SHA1(5f36db93b6083767f93aa3a0e4bc2d4fc7e27f9c) ) /* N82S153N - 137294-001*/
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */
- ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
- ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-ROM_START( xeviousb )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */
- ROM_LOAD( "1m.bin", 0x0000, 0x2000, CRC(e82a22f6) SHA1(6fd09a7fb263cda3d5268cc6d7bfe71a57ac4b47) )
- ROM_LOAD( "1l.bin", 0x2000, 0x2000, CRC(13831df9) SHA1(a7892d1d98868a83a5d1092976873b82577e9e94) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "4c.bin", 0x0000, 0x2000, CRC(827e7747) SHA1(d22645d71b164613834336e26e6942506a0e7eaa) )
-
- ROM_REGION( 0x10000, "sub2", 0 )
- ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "xvi_12.3b", 0x0000, 0x1000, CRC(088c8b26) SHA1(9c3b61dfca2f84673a78f7f66e363777a8f47a59) ) /* foreground characters */
-
- ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */
- ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */
-
- ROM_REGION( 0xa000, "gfx3", 0 )
- ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */
- ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */
- ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */
- ROM_LOAD( "xvi_18.4r", 0x5000, 0x2000, CRC(02417d19) SHA1(b5f830dd2cf25cf154308d2e640f0ecdcda5d8cd) ) /* sprite set #1, plane 2, set #2, plane 2 */
- /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */
- ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel
-
- ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */
- ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
- ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
- ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
-
- ROM_REGION( 0x0b00, "proms", 0 )
- ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */
- ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */
- ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */
- ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */
- ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */
- ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */
- ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */
-
- ROM_REGION( 0x0200, "pals_vidbd", 0) /* PAL's located on the video board */
- ROM_LOAD( "xvi-3.1f", 0x0000, 0x0117, CRC(9192d57a) SHA1(5f36db93b6083767f93aa3a0e4bc2d4fc7e27f9c) ) /* N82S153N - 137294-001*/
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */
- ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
- ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-ROM_START( xeviousc )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */
- ROM_LOAD( "xvi_u_.3p", 0x0000, 0x1000, CRC(7b203868) SHA1(3bafaa42bccddfaf8d9197e93416a731b7f8fb94) )
- ROM_LOAD( "xv_2-2.3m", 0x1000, 0x1000, CRC(b6fe738e) SHA1(23cdf1f2c2642f9bc3f843b5c338372027032380) )
- ROM_LOAD( "xv_2-3.2m", 0x2000, 0x1000, CRC(dbd52ff5) SHA1(eb42393720fc1fd4a1f6cdba87ac4177fd5827fe) )
- ROM_LOAD( "xvi_u_.2l", 0x3000, 0x1000, CRC(ad12af53) SHA1(ff3a96d6f7357fb2d33cd9d77d53477b9071ffc9) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "xv2_5.3f", 0x0000, 0x1000, CRC(f8cc2861) SHA1(9b02c00cff6c771d46776416295f9e12a2166cc5) )
- ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) )
-
- ROM_REGION( 0x10000, "sub2", 0 )
- ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "xvi_12.3b", 0x0000, 0x1000, CRC(088c8b26) SHA1(9c3b61dfca2f84673a78f7f66e363777a8f47a59) ) /* foreground characters */
-
- ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */
- ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */
-
- ROM_REGION( 0xa000, "gfx3", 0 )
- ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */
- ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */
- ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */
- ROM_LOAD( "xvi_18.4r", 0x5000, 0x2000, CRC(02417d19) SHA1(b5f830dd2cf25cf154308d2e640f0ecdcda5d8cd) ) /* sprite set #1, plane 2, set #2, plane 2 */
- /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */
- ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel
-
- ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */
- ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
- ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
- ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
-
- ROM_REGION( 0x0b00, "proms", 0 )
- ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */
- ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */
- ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */
- ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */
- ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */
- ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */
- ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */
-
- ROM_REGION( 0x0200, "pals_vidbd", 0) /* PAL's located on the video board */
- ROM_LOAD( "xvi-3.1f", 0x0000, 0x0117, CRC(9192d57a) SHA1(5f36db93b6083767f93aa3a0e4bc2d4fc7e27f9c) ) /* N82S153N - 137294-001*/
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */
- ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
- ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-/*
- Xevious Bootleg
-
- Dual Boards with no markings except row/column designations
-*/
-
-ROM_START( xevios )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */
- ROM_LOAD( "4.7h", 0x0000, 0x1000, CRC(1f8ca4c0) SHA1(9fdaa2e0016c07e274544f8334778fe81b8344a5) )
- ROM_LOAD( "5.6h", 0x1000, 0x1000, CRC(2e47ce8f) SHA1(fb35dd086e98279a5f17036f624ef5294c777d84) )
- ROM_LOAD( "6.5h", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) )
- ROM_LOAD( "7.4h", 0x3000, 0x1000, CRC(17f48277) SHA1(ffe590acf07985355ef91fbe0fc3dcf6e8fd62fd) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "8.2h", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) )
- ROM_LOAD( "9.1h", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) )
-
- ROM_REGION( 0x10000, "sub2", 0 )
- ROM_LOAD( "3.9h", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "17.8f", 0x0000, 0x1000, CRC(088c8b26) SHA1(9c3b61dfca2f84673a78f7f66e363777a8f47a59) ) /* foreground characters */
-
- ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "18.9f", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */
- ROM_LOAD( "19.11f", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */
-
- ROM_REGION( 0xa000, "gfx3", 0 )
- ROM_LOAD( "13.4d", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */
- ROM_LOAD( "15.7d", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */
- ROM_LOAD( "14.6d", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */
- ROM_LOAD( "16.8d", 0x5000, 0x2000, CRC(44262c04) SHA1(4291f83193d11064c2ba6a9af27951b93bb945c3) ) /* sprite set #1, plane 2, set #2, plane 2 */
- /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */
- ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel
-
- ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */
- ROM_LOAD( "10.1d", 0x0000, 0x1000, CRC(10baeebb) SHA1(c544c9e0bb7a1ef93b3f2c2c1397f659d5334373) )
- ROM_LOAD( "11.2d", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
- ROM_LOAD( "12.3d", 0x3000, 0x1000, CRC(51a4e83b) SHA1(fbf3b1e47b75c5e0b297ee2cd6597b1dfd80bc6f) )
-
- ROM_REGION( 0x0b00, "proms", 0 )
- ROM_LOAD( "8.12h", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */
- ROM_LOAD( "9.13h", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */
- ROM_LOAD( "10.14h", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */
- ROM_LOAD( "7.14f", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */
- ROM_LOAD( "6.13f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */
- ROM_LOAD( "6.5c", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */
- ROM_LOAD( "5.6c", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */
- ROM_LOAD( "1.10f", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
- ROM_LOAD( "2.10c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-
- ROM_REGION( 0x3000, "user1", 0 ) /* unknown roms */
- /* extra ROMs (function unknown, could be emulation of the custom I/O */
- /* chip with a Z80): */
- ROM_LOAD( "1.16j", 0x0000, 0x1000, CRC(2618f0ce) SHA1(54e8644b5609d6f6ec717a7469c76901eb79f26e) )
- ROM_LOAD( "2.17b", 0x1000, 0x2000, CRC(de359fac) SHA1(a55df9984bfffafeadae8a5a63b07f1fa9c5eebf) )
-
- ROM_REGION( 0x002c, "pals", 0 ) /* Located on the video board */
- ROM_LOAD( "pal10l8.16a.bin", 0x0000, 0x002c, CRC(6fb9bd9a) SHA1(698b5fc19f5873b02a4bed7d9ec1f24763a6fef7) )
-ROM_END
-
-/*
- Battles (Xevious Bootleg)
-
- Three Boards with no markings except row/column designations
-*/
-
-ROM_START( battles )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU (Located on the top board) */
- ROM_LOAD( "bg1.d9", 0x0000, 0x2000, CRC(b6e4f4f3) SHA1(ceaaa63b50e75dcb05aeb68574336dfe56a8434a) )
- ROM_LOAD( "bg2.d10", 0x2000, 0x2000, CRC(47017bc8) SHA1(0da73ae079fb6a64eed56197e2c88609ef34166c) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU (Located on the top board) */
- ROM_LOAD( "bg3.d12", 0x0000, 0x2000, CRC(0ede5706) SHA1(65b235c5abe487612e11d0235410f1ca59b06e95) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* (Located on the top board) */
- ROM_LOAD( "bg4.d13", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
-
- ROM_REGION( 0x10000, "sub3", 0 ) /* 64k for the CUSTOM I/O Emulation CPU (Located on the top board) */
- ROM_LOAD( "bg5.h5", 0x0000, 0x1000, CRC(23107dfb) SHA1(74c49a5648faab632ae5ed8dd18a1d8b39837e2d) )
-
- ROM_REGION( 0x1000, "gfx1", 0 ) /* (Located on the middle board) */
- ROM_LOAD( "bg9.c10", 0x0000, 0x1000, CRC(5bd6e9ae) SHA1(f16c7eec39fce856c775b2b81ab55fb42376850e) ) /* foreground characters */
-
- ROM_REGION( 0x2000, "gfx2", 0 ) /* (Located on the middle board) */
- ROM_LOAD( "bg10.c8", 0x0000, 0x1000, CRC(b43ea55d) SHA1(06f4c4e7fc71b9e173c3bdf91c40f47750051b5e) ) /* bg pattern B0 */
- ROM_LOAD( "bg11.c7", 0x1000, 0x1000, CRC(73603931) SHA1(1f7824b107a5a3d5c3434f02f17173a1f85fd29c) ) /* bg pattern B1 */
-
- ROM_REGION( 0xa000, "gfx3", 0 ) /* (Located on the bottom board) */
- ROM_LOAD( "bg13.c6", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */
- ROM_LOAD( "bg14.c4", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */
- ROM_LOAD( "bg12.c8", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */
- ROM_LOAD( "bg15.c2", 0x5000, 0x2000, CRC(02417d19) SHA1(b5f830dd2cf25cf154308d2e640f0ecdcda5d8cd) ) /* sprite set #1, plane 2, set #2, plane 2 */
- /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */
- ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel
-
- ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps (Located on the middle board) */
- ROM_LOAD( "bg6.b14", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
- ROM_LOAD( "bg7.b12", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
- ROM_LOAD( "bg8.b11", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
-
- ROM_REGION( 0x0b00, "proms", 0 )
- ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */
- ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */
- ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */
- ROM_LOAD( "b_-bpr.bin", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */
- ROM_LOAD( "b_6bpr.bin", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */
- ROM_LOAD( "b_4bpr.bin", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */
- ROM_LOAD( "b_5bpr.bin", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */
- ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
- ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-ROM_START( battles2 )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */
- ROM_LOAD( "bg1.h7", 0x0000, 0x1000, CRC(475d848a) SHA1(44a4abd1e922ba1fd89a5066a5d325f748236366) )
- ROM_LOAD( "bg2.h6", 0x1000, 0x1000, CRC(c66f2a87) SHA1(34f029253c8d49678d90aa7a37dba6bf856c5f0e) )
- ROM_LOAD( "bg3.h5", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) )
- ROM_LOAD( "bg4.h4", 0x3000, 0x1000, CRC(3da1a0a2) SHA1(5924cf88349808866bd160e77d0bddcf9247cbfc) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "bg5.h2", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) )
- ROM_LOAD( "bg6.h1", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) )
-
- ROM_REGION( 0x10000, "sub2", 0 )
- ROM_LOAD( "bg7.h8", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "bg17.f8", 0x0000, 0x1000, CRC(9571e400) SHA1(23027b9ebd006aa4635f89921824bbb460463a6e) ) /* foreground characters */
-
- ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "bg18.f9", 0x0000, 0x1000, CRC(b43ea55d) SHA1(06f4c4e7fc71b9e173c3bdf91c40f47750051b5e) ) /* bg pattern B0 */
- ROM_LOAD( "bg19.f11", 0x1000, 0x1000, CRC(73603931) SHA1(1f7824b107a5a3d5c3434f02f17173a1f85fd29c) ) /* bg pattern B1 */
-
- ROM_REGION( 0xa000, "gfx3", 0 )
- ROM_LOAD( "bg13.d4", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */
- ROM_LOAD( "bg15.d7", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */
- ROM_LOAD( "bg14.d6", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */
- ROM_LOAD( "bg16.d8", 0x5000, 0x2000, CRC(44262c04) SHA1(4291f83193d11064c2ba6a9af27951b93bb945c3) ) /* sprite set #1, plane 2, set #2, plane 2 */
- /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */
- ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel
-
- ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */
- ROM_LOAD( "bg10.d1", 0x0000, 0x1000, CRC(10baeebb) SHA1(c544c9e0bb7a1ef93b3f2c2c1397f659d5334373) )
- ROM_LOAD( "bg11.d2", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
- ROM_LOAD( "bg12.d3", 0x3000, 0x1000, CRC(51a4e83b) SHA1(fbf3b1e47b75c5e0b297ee2cd6597b1dfd80bc6f) )
-
- ROM_REGION( 0x0b00, "proms", 0 )
- ROM_LOAD( "82s123_bg.h12", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */
- ROM_LOAD( "82s123_bg.h13", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */
- ROM_LOAD( "82s123_bg.h14", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */
- ROM_LOAD( "7643_bg.f14", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */
- ROM_LOAD( "7643_bg.f13", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */
- ROM_LOAD( "7643_bg.c5", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */
- ROM_LOAD( "7643_bg.c6", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */
- ROM_LOAD( "82s123_bg.f10", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
- ROM_LOAD( "82s123_bg.c10", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-
- ROM_REGION( 0x3000, "user1", 0 ) /* unknown roms */
- /* extra ROMs (function unknown, could be emulation of the custom I/O */
- /* chip with a Z80): */
- ROM_LOAD( "bg9.j16", 0x0000, 0x1000, CRC(2618f0ce) SHA1(54e8644b5609d6f6ec717a7469c76901eb79f26e) )
- ROM_LOAD( "bg8.b17", 0x1000, 0x2000, CRC(de359fac) SHA1(a55df9984bfffafeadae8a5a63b07f1fa9c5eebf) )
-
- ROM_REGION( 0x002c, "pals", 0 ) /* Located on the video board */
- ROM_LOAD( "pal10l8_bg.a16", 0x0000, 0x002c, CRC(10ea110e) SHA1(8f165a04a221e6492d4cac0f485927b8caf58160) )
-ROM_END
-
-ROM_START( sxevious )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */
- ROM_LOAD( "cpu_3p.rom", 0x0000, 0x1000, CRC(1c8d27d5) SHA1(2c41303d8c74acb5840295a4b460a39a9a8e21bb) )
- ROM_LOAD( "cpu_3m.rom", 0x1000, 0x1000, CRC(fd04e615) SHA1(7169e7f3bd1e9cfae9671b89f2a45f56b968e1ff) )
- ROM_LOAD( "xv3_3.2m", 0x2000, 0x1000, CRC(294d5404) SHA1(ecc39fb2c0065a36f20541747089b4e30dfb99b1) )
- ROM_LOAD( "xv3_4.2l", 0x3000, 0x1000, CRC(6a44bf92) SHA1(0ca726f7f9528789f2a718df55e59406a283cdfa) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "xv3_5.3f", 0x0000, 0x1000, CRC(d4bd3d81) SHA1(5831bb306bd650779207936bfd00f25864733abb) )
- ROM_LOAD( "xv3_6.3j", 0x1000, 0x1000, CRC(af06be5f) SHA1(5a020822387ab8c69214db961180760fa9853e6e) )
-
- ROM_REGION( 0x10000, "sub2", 0 )
- ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "xvi_12.3b", 0x0000, 0x1000, CRC(088c8b26) SHA1(9c3b61dfca2f84673a78f7f66e363777a8f47a59) ) /* foreground characters */
-
- ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */
- ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */
-
- ROM_REGION( 0xa000, "gfx3", 0 )
- ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */
- ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */
- ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */
- ROM_LOAD( "xvi_18.4r", 0x5000, 0x2000, CRC(02417d19) SHA1(b5f830dd2cf25cf154308d2e640f0ecdcda5d8cd) ) /* sprite set #1, plane 2, set #2, plane 2 */
- /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */
- ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel
-
- ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */
- ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
- ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
- ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
-
- ROM_REGION( 0x0b00, "proms", 0 )
- ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */
- ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */
- ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */
- ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */
- ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */
- ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */
- ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */
- ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
- ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-ROM_START( sxeviousj )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */
- ROM_LOAD( "xv3_1.3p", 0x0000, 0x1000, CRC(afbc3372) SHA1(9001856aad0f31b40443f21b7a895e4101684307) )
- ROM_LOAD( "xv3_2.3m", 0x1000, 0x1000, CRC(1854a5ee) SHA1(2fb4034d9d757376df59378df539bf41d99ed43e) )
- ROM_LOAD( "xv3_3.2m", 0x2000, 0x1000, CRC(294d5404) SHA1(ecc39fb2c0065a36f20541747089b4e30dfb99b1) )
- ROM_LOAD( "xv3_4.2l", 0x3000, 0x1000, CRC(6a44bf92) SHA1(0ca726f7f9528789f2a718df55e59406a283cdfa) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "xv3_5.3f", 0x0000, 0x1000, CRC(d4bd3d81) SHA1(5831bb306bd650779207936bfd00f25864733abb) )
- ROM_LOAD( "xv3_6.3j", 0x1000, 0x1000, CRC(af06be5f) SHA1(5a020822387ab8c69214db961180760fa9853e6e) )
-
- ROM_REGION( 0x10000, "sub2", 0 )
- ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "xvi_12.3b", 0x0000, 0x1000, CRC(088c8b26) SHA1(9c3b61dfca2f84673a78f7f66e363777a8f47a59) ) /* foreground characters */
-
- ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */
- ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */
-
- ROM_REGION( 0xa000, "gfx3", 0 )
- ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */
- ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */
- ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */
- ROM_LOAD( "xvi_18.4r", 0x5000, 0x2000, CRC(02417d19) SHA1(b5f830dd2cf25cf154308d2e640f0ecdcda5d8cd) ) /* sprite set #1, plane 2, set #2, plane 2 */
- /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */
- ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel
-
- ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */
- ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
- ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
- ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
-
- ROM_REGION( 0x0b00, "proms", 0 )
- ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */
- ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */
- ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */
- ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */
- ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */
- ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */
- ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */
- ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
- ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-/**********************************************************************************************
- Dig Dug & clones
-**********************************************************************************************/
-
-ROM_START( digdug )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "dd1a.1", 0x0000, 0x1000, CRC(a80ec984) SHA1(86689980410b9429cd7582c7a76342721c87d030) )
- ROM_LOAD( "dd1a.2", 0x1000, 0x1000, CRC(559f00bd) SHA1(fde17785df21956d6fd06bcfe675c392dadb1524) )
- ROM_LOAD( "dd1a.3", 0x2000, 0x1000, CRC(8cbc6fe1) SHA1(57b8a5777f8bb9773caf0cafe5408c8b9768cb25) )
- ROM_LOAD( "dd1a.4", 0x3000, 0x1000, CRC(d066f830) SHA1(b0a615fe4a5c8742c1e4ef234ef34c369d2723b9) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "dd1a.5", 0x0000, 0x1000, CRC(6687933b) SHA1(c16144de7633595ddc1450ddce379f48e7b2195a) )
- ROM_LOAD( "dd1a.6", 0x1000, 0x1000, CRC(843d857f) SHA1(89b2ead7e478e119d33bfd67376cdf28f83de67a) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "dd1.7", 0x0000, 0x1000, CRC(a41bce72) SHA1(2b9b74f56aa7939d9d47cf29497ae11f10d78598) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "dd1.9", 0x0000, 0x0800, CRC(f14a6fe1) SHA1(0aa63300c2cb887196de590aceb98f3cf06fead4) )
-
- ROM_REGION( 0x4000, "gfx2", 0 )
- ROM_LOAD( "dd1.15", 0x0000, 0x1000, CRC(e22957c8) SHA1(4700c63f4f680cb8ab8c44e6f3e1712aabd5daa4) )
- ROM_LOAD( "dd1.14", 0x1000, 0x1000, CRC(2829ec99) SHA1(3e435c1afb2e44487cd7ba28a93ada2e5ccbb86d) )
- ROM_LOAD( "dd1.13", 0x2000, 0x1000, CRC(458499e9) SHA1(578bd839f9218c3cf4feee1223a461144e455df8) )
- ROM_LOAD( "dd1.12", 0x3000, 0x1000, CRC(c58252a0) SHA1(bd79e39e8a572d2b5c205e6de27ca23e43ec9f51) )
-
- ROM_REGION( 0x1000, "gfx3", 0 )
- ROM_LOAD( "dd1.11", 0x0000, 0x1000, CRC(7b383983) SHA1(57f1e8f5171d13f9f76bd091d81b4423b59f6b42) )
-
- ROM_REGION( 0x1000, "gfx4", 0 ) /* 4k for the playfield graphics */
- ROM_LOAD( "dd1.10b", 0x0000, 0x1000, CRC(2cf399c2) SHA1(317c48818992f757b1bd0e3997fa99937f81b52c) )
-
- ROM_REGION( 0x0220, "proms", 0 )
- ROM_LOAD( "136007.113", 0x0000, 0x0020, CRC(4cb9da99) SHA1(91a5852a15d4672c29fdcbae75921794651f960c) )
- ROM_LOAD( "136007.111", 0x0020, 0x0100, CRC(00c7c419) SHA1(7ea149e8eb36920c3b84984b5ce623729d492fd3) )
- ROM_LOAD( "136007.112", 0x0120, 0x0100, CRC(e9b3e08e) SHA1(a294cc4da846eb702d61678396bfcbc87d30ea95) )
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound prom */
- ROM_LOAD( "136007.110", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
- ROM_LOAD( "136007.109", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-ROM_START( digdug1 )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "dd1.1", 0x0000, 0x1000, CRC(b9198079) SHA1(1d3fe04020f584ed250e32fdc6f6a3b769342884) )
- ROM_LOAD( "dd1.2", 0x1000, 0x1000, CRC(b2acbe49) SHA1(c8f713e8cfa70d3bc64d3002ff7bffc65ee138e2) )
- ROM_LOAD( "dd1.3", 0x2000, 0x1000, CRC(d6407b49) SHA1(0e71a8f02778286488865e20439776dbb2a8ec78) )
- ROM_LOAD( "dd1.4b", 0x3000, 0x1000, CRC(f4cebc16) SHA1(19b568f92069a1cfe1c07287408efe3b0e253375) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "dd1.5b", 0x0000, 0x1000, CRC(370ef9b4) SHA1(746b1fa15f5f2cfd69d8b5a7d6fb8c770abc3b4d) )
- ROM_LOAD( "dd1.6b", 0x1000, 0x1000, CRC(361eeb71) SHA1(372c97c666411c3590d790213ae6fa1ccb5ffa1c) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "dd1.7", 0x0000, 0x1000, CRC(a41bce72) SHA1(2b9b74f56aa7939d9d47cf29497ae11f10d78598) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "dd1.9", 0x0000, 0x0800, CRC(f14a6fe1) SHA1(0aa63300c2cb887196de590aceb98f3cf06fead4) )
-
- ROM_REGION( 0x4000, "gfx2", 0 )
- ROM_LOAD( "dd1.15", 0x0000, 0x1000, CRC(e22957c8) SHA1(4700c63f4f680cb8ab8c44e6f3e1712aabd5daa4) )
- ROM_LOAD( "dd1.14", 0x1000, 0x1000, CRC(2829ec99) SHA1(3e435c1afb2e44487cd7ba28a93ada2e5ccbb86d) )
- ROM_LOAD( "dd1.13", 0x2000, 0x1000, CRC(458499e9) SHA1(578bd839f9218c3cf4feee1223a461144e455df8) )
- ROM_LOAD( "dd1.12", 0x3000, 0x1000, CRC(c58252a0) SHA1(bd79e39e8a572d2b5c205e6de27ca23e43ec9f51) )
-
- ROM_REGION( 0x1000, "gfx3", 0 )
- ROM_LOAD( "dd1.11", 0x0000, 0x1000, CRC(7b383983) SHA1(57f1e8f5171d13f9f76bd091d81b4423b59f6b42) )
-
- ROM_REGION( 0x1000, "gfx4", 0 ) /* 4k for the playfield graphics */
- ROM_LOAD( "dd1.10b", 0x0000, 0x1000, CRC(2cf399c2) SHA1(317c48818992f757b1bd0e3997fa99937f81b52c) )
-
- ROM_REGION( 0x0220, "proms", 0 )
- ROM_LOAD( "136007.113", 0x0000, 0x0020, CRC(4cb9da99) SHA1(91a5852a15d4672c29fdcbae75921794651f960c) )
- ROM_LOAD( "136007.111", 0x0020, 0x0100, CRC(00c7c419) SHA1(7ea149e8eb36920c3b84984b5ce623729d492fd3) )
- ROM_LOAD( "136007.112", 0x0120, 0x0100, CRC(e9b3e08e) SHA1(a294cc4da846eb702d61678396bfcbc87d30ea95) )
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound prom */
- ROM_LOAD( "136007.110", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
- ROM_LOAD( "136007.109", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-/*
- Dig Dug - Atari Version
-
- There are two revisions of the board and the placement of the components
- are different between the two versions.
-
- Revision A:
- * The letter "A" is silkscreened in the A10 corner of the board.
- * The 1st, 2nd and 3rd edition TM-203 and SP-203 manuals cover this board.
-
- Revision B:
- * The letter "B" is silkscreened in the P12 corner (on right side of
- the edge connector).
- * Also, the three Z80's are located on the opposite side of the edge connector and
- they are stacked in a column. (The Z80's are oriented vertically instead of
- horizontal as the other chips are.)
- * The 4th edition TM-203 and SP-203 manuals cover this board.
-*/
-
-ROM_START( digdugat )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "136007.201", 0x0000, 0x1000, CRC(23d0b1a4) SHA1(a118d55e03a9ccf069f37c7bac2c9044dccd1f5e) )
- ROM_LOAD( "136007.202", 0x1000, 0x1000, CRC(5453dc1f) SHA1(8be091dd53e9b44e80e1ac9b1751efbe832db78d) )
- ROM_LOAD( "136007.203", 0x2000, 0x1000, CRC(c9077dfa) SHA1(611b3e1b575a51639530917366557773534c80aa) )
- ROM_LOAD( "136007.204", 0x3000, 0x1000, CRC(a8fc8eac) SHA1(7a24197f4ec5989bc4d635b27b6578f4d62cb5f4) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "136007.205", 0x0000, 0x1000, CRC(5ba385c5) SHA1(f4577bddff74a14b13b212f5553fa13fe9ae4bcc) )
- ROM_LOAD( "136007.206", 0x1000, 0x1000, CRC(382b4011) SHA1(2b79ddcf48177c99b5fa1f957374f4baa2bec143) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "136007.107", 0x0000, 0x1000, CRC(a41bce72) SHA1(2b9b74f56aa7939d9d47cf29497ae11f10d78598) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "136007.108", 0x0000, 0x0800, CRC(3d24a3af) SHA1(857ae93e2a41258a129dcecbaed2df359540b735) )
-
- ROM_REGION( 0x4000, "gfx2", 0 )
- ROM_LOAD( "136007.116", 0x0000, 0x1000, CRC(e22957c8) SHA1(4700c63f4f680cb8ab8c44e6f3e1712aabd5daa4) )
- ROM_LOAD( "136007.117", 0x1000, 0x1000, CRC(a3bbfd85) SHA1(2105455762e0de120f2d943f9010a7d06c6b6448) )
- ROM_LOAD( "136007.118", 0x2000, 0x1000, CRC(458499e9) SHA1(578bd839f9218c3cf4feee1223a461144e455df8) )
- ROM_LOAD( "136007.119", 0x3000, 0x1000, CRC(c58252a0) SHA1(bd79e39e8a572d2b5c205e6de27ca23e43ec9f51) )
-
- ROM_REGION( 0x1000, "gfx3", 0 )
- ROM_LOAD( "136007.115", 0x0000, 0x1000, CRC(754539be) SHA1(466ae754eb4721df8814d4d33a31d867507d45b3) )
-
- ROM_REGION( 0x1000, "gfx4", 0 ) /* 4k for the playfield graphics */
- ROM_LOAD( "136007.114", 0x0000, 0x1000, CRC(d6822397) SHA1(055ca6514141323f1e6dfcf91451507c04114d41) )
-
- ROM_REGION( 0x0220, "proms", 0 )
- ROM_LOAD( "136007.113", 0x0000, 0x0020, CRC(4cb9da99) SHA1(91a5852a15d4672c29fdcbae75921794651f960c) )
- ROM_LOAD( "136007.111", 0x0020, 0x0100, CRC(00c7c419) SHA1(7ea149e8eb36920c3b84984b5ce623729d492fd3) )
- ROM_LOAD( "136007.112", 0x0120, 0x0100, CRC(e9b3e08e) SHA1(a294cc4da846eb702d61678396bfcbc87d30ea95) )
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound prom */
- ROM_LOAD( "136007.110", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
- ROM_LOAD( "136007.109", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-ROM_START( digdugat1 )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "136007.101", 0x0000, 0x1000, CRC(b9198079) SHA1(1d3fe04020f584ed250e32fdc6f6a3b769342884) )
- ROM_LOAD( "136007.102", 0x1000, 0x1000, CRC(b2acbe49) SHA1(c8f713e8cfa70d3bc64d3002ff7bffc65ee138e2) )
- ROM_LOAD( "136007.103", 0x2000, 0x1000, CRC(d6407b49) SHA1(0e71a8f02778286488865e20439776dbb2a8ec78) )
- ROM_LOAD( "136007.104", 0x3000, 0x1000, CRC(b3ad42c3) SHA1(83ea80f0dd42ec1cb62e6ed45d5dda43ed21f567) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "136007.105", 0x0000, 0x1000, CRC(0a2aef4a) SHA1(ef40974fde8e8c305059e1dd03ea811a6aaca737) )
- ROM_LOAD( "136007.106", 0x1000, 0x1000, CRC(a2876d6e) SHA1(08e8ac50918ae32dd6fb34e65534652beb0395b2) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "136007.107", 0x0000, 0x1000, CRC(a41bce72) SHA1(2b9b74f56aa7939d9d47cf29497ae11f10d78598) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "136007.108", 0x0000, 0x0800, CRC(3d24a3af) SHA1(857ae93e2a41258a129dcecbaed2df359540b735) )
-
- ROM_REGION( 0x4000, "gfx2", 0 )
- ROM_LOAD( "136007.116", 0x0000, 0x1000, CRC(e22957c8) SHA1(4700c63f4f680cb8ab8c44e6f3e1712aabd5daa4) )
- ROM_LOAD( "136007.117", 0x1000, 0x1000, CRC(a3bbfd85) SHA1(2105455762e0de120f2d943f9010a7d06c6b6448) )
- ROM_LOAD( "136007.118", 0x2000, 0x1000, CRC(458499e9) SHA1(578bd839f9218c3cf4feee1223a461144e455df8) )
- ROM_LOAD( "136007.119", 0x3000, 0x1000, CRC(c58252a0) SHA1(bd79e39e8a572d2b5c205e6de27ca23e43ec9f51) )
-
- ROM_REGION( 0x1000, "gfx3", 0 )
- ROM_LOAD( "136007.115", 0x0000, 0x1000, CRC(754539be) SHA1(466ae754eb4721df8814d4d33a31d867507d45b3) )
-
- ROM_REGION( 0x1000, "gfx4", 0 ) /* 4k for the playfield graphics */
- ROM_LOAD( "136007.114", 0x0000, 0x1000, CRC(d6822397) SHA1(055ca6514141323f1e6dfcf91451507c04114d41) )
-
- ROM_REGION( 0x0220, "proms", 0 )
- ROM_LOAD( "136007.113", 0x0000, 0x0020, CRC(4cb9da99) SHA1(91a5852a15d4672c29fdcbae75921794651f960c) )
- ROM_LOAD( "136007.111", 0x0020, 0x0100, CRC(00c7c419) SHA1(7ea149e8eb36920c3b84984b5ce623729d492fd3) )
- ROM_LOAD( "136007.112", 0x0120, 0x0100, CRC(e9b3e08e) SHA1(a294cc4da846eb702d61678396bfcbc87d30ea95) )
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound prom */
- ROM_LOAD( "136007.110", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
- ROM_LOAD( "136007.109", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-/*
- Zig Zag (Dig Dug bootleg)
-*/
-
-ROM_START( dzigzag )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "136007.101", 0x0000, 0x1000, CRC(b9198079) SHA1(1d3fe04020f584ed250e32fdc6f6a3b769342884) )
- ROM_LOAD( "136007.102", 0x1000, 0x1000, CRC(b2acbe49) SHA1(c8f713e8cfa70d3bc64d3002ff7bffc65ee138e2) )
- ROM_LOAD( "136007.103", 0x2000, 0x1000, CRC(d6407b49) SHA1(0e71a8f02778286488865e20439776dbb2a8ec78) )
- ROM_LOAD( "zigzag4", 0x3000, 0x1000, CRC(da20d2f6) SHA1(4eafe5ee917060d01d9df92d678c455edbbf27a6) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "zigzag5", 0x0000, 0x2000, CRC(f803c748) SHA1(a4c7dde0b794366cbfd03f339de980a6575a42fc) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "136007.107", 0x0000, 0x1000, CRC(a41bce72) SHA1(2b9b74f56aa7939d9d47cf29497ae11f10d78598) )
-
- ROM_REGION( 0x10000, "sub3", 0 ) /* 64k for a Z80 which emulates the custom I/O chip (not used) */
- ROM_LOAD( "zigzag7", 0x0000, 0x1000, CRC(24c3510c) SHA1(3214a16f697f88d23f3441e58c56110930d7c341) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "zigzag8", 0x0000, 0x0800, CRC(86120541) SHA1(c974441ee0421a38c25bc7c3edbc6b510b7df473) )
-
- ROM_REGION( 0x4000, "gfx2", 0 )
- ROM_LOAD( "136007.116", 0x0000, 0x1000, CRC(e22957c8) SHA1(4700c63f4f680cb8ab8c44e6f3e1712aabd5daa4) )
- ROM_LOAD( "zigzag12", 0x1000, 0x1000, CRC(386a0956) SHA1(79f5d6af1fdc467a503216a588cb03535c823a40) )
- ROM_LOAD( "zigzag13", 0x2000, 0x1000, CRC(69f6e395) SHA1(10a7518e963f2cecb494d77137e01a068116e20b) )
- ROM_LOAD( "136007.119", 0x3000, 0x1000, CRC(c58252a0) SHA1(bd79e39e8a572d2b5c205e6de27ca23e43ec9f51) )
-
- ROM_REGION( 0x1000, "gfx3", 0 )
- ROM_LOAD( "dd1.11", 0x0000, 0x1000, CRC(7b383983) SHA1(57f1e8f5171d13f9f76bd091d81b4423b59f6b42) )
-
- ROM_REGION( 0x1000, "gfx4", 0 ) /* 4k for the playfield graphics */
- ROM_LOAD( "dd1.10b", 0x0000, 0x1000, CRC(2cf399c2) SHA1(317c48818992f757b1bd0e3997fa99937f81b52c) )
-
- ROM_REGION( 0x0220, "proms", 0 )
- ROM_LOAD( "136007.113", 0x0000, 0x0020, CRC(4cb9da99) SHA1(91a5852a15d4672c29fdcbae75921794651f960c) )
- ROM_LOAD( "136007.111", 0x0020, 0x0100, CRC(00c7c419) SHA1(7ea149e8eb36920c3b84984b5ce623729d492fd3) )
- ROM_LOAD( "136007.112", 0x0120, 0x0100, CRC(e9b3e08e) SHA1(a294cc4da846eb702d61678396bfcbc87d30ea95) )
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound prom */
- ROM_LOAD( "136007.110", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
- ROM_LOAD( "136007.109", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-/*
-
-Year: 1982
-Manufacturer: Sidam
-
-CPUs:
-
-on main PCB (Sidam 11500):
-
-3x MK3880-4IRL-Z80CPU (main)
-1x LM324N (sound)
-1x TDA2003 (sound)
-1x custom 0640 (DIL28)(interface to custom 5303)
-1x custom 0748 (DIL28)(clock divider)
-3x custom 0883 (DIL28)(bus controller)
-1x custom 5156 (DIL42)(I/O)
-1x custom 5303 (DIL42)(I/O)
-1x oscillator 18432
-
-on bottom PCB (Sidam 11510):
-
-1x custom 0037 (DIL28)(unknown)
-1x custom 0228 (DIL28)(gfx data shifter and mixer(16-bit in, 4-bit out))
-1x custom 0425 (DIL28)(sprite address generator)
-1x custom 0764 (DIL28)(clock divider)
-1x custom DD1-6 (DIL20 300mil)(unknown)
-
-ROMs:
-
-on main PCB (Sidam 11500):
-
-7x TMS2531JL
-2x TBP24S10N (11220, 11221)
-
-on bottom PCB (Sidam 11510):
-
-1x TMS2516JL (8)
-6x D2732A
-1x TBP24S10N (11523)
-1x SN74S288N (11524)
-
-Notes:
-
-on main PCB (Sidam 11500):
-1x 22x2 edge connector
-1x 3 legs power connector
-1x 50 pins flat cable connector to bottom
-1x trimmer (volume)
-2x 8x2 switches DIP
-
-on bottom PCB (Sidam 11510):
-1x 50 pins flat cable connector to main
-1x 6 legs connector
-
-*/
-
-ROM_START( digsid )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */
- ROM_LOAD( "digdug0.0", 0x0000, 0x1000, CRC(602197f0) SHA1(bea3b98a3f0f89d3b9e87aa38550ddd6f7883921) )
- ROM_LOAD( "digdug1.1", 0x1000, 0x1000, CRC(c6c8306b) SHA1(53e63ccb7edfdeea75df961ac69ebe882d808920) )
- ROM_LOAD( "digdug2.2", 0x2000, 0x1000, CRC(b695ec17) SHA1(46811106dbb686df6dc73b29e9e7db97b8c0d412) )
- ROM_LOAD( "digdug3.3", 0x3000, 0x1000, CRC(17bbfa40) SHA1(d3c7bf986d1d2b1961cea0c5e548245e84d74924) )
-
- ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
- ROM_LOAD( "digdug4.4", 0x0000, 0x1000, CRC(370ef9b4) SHA1(746b1fa15f5f2cfd69d8b5a7d6fb8c770abc3b4d) )
- ROM_LOAD( "digdug5.5", 0x1000, 0x1000, CRC(d751df5d) SHA1(b08becb0176849a0fd1a706d6fae862684ff00b9) )
-
- ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */
- ROM_LOAD( "digdug6.6", 0x0000, 0x1000, CRC(a41bce72) SHA1(2b9b74f56aa7939d9d47cf29497ae11f10d78598) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "digdug8.8", 0x0000, 0x0800, CRC(f14a6fe1) SHA1(0aa63300c2cb887196de590aceb98f3cf06fead4) )
-
- ROM_REGION( 0x4000, "gfx2", 0 )
- ROM_LOAD( "digdug14.14", 0x0000, 0x1000, CRC(e22957c8) SHA1(4700c63f4f680cb8ab8c44e6f3e1712aabd5daa4) )
- ROM_LOAD( "digdug13.13", 0x1000, 0x1000, CRC(2829ec99) SHA1(3e435c1afb2e44487cd7ba28a93ada2e5ccbb86d) )
- ROM_LOAD( "digdug12.12", 0x2000, 0x1000, CRC(458499e9) SHA1(578bd839f9218c3cf4feee1223a461144e455df8) )
- ROM_LOAD( "digdug11.11", 0x3000, 0x1000, CRC(c58252a0) SHA1(bd79e39e8a572d2b5c205e6de27ca23e43ec9f51) )
-
- ROM_REGION( 0x1000, "gfx3", 0 )
- ROM_LOAD( "digdug10.10", 0x0000, 0x1000, CRC(7b383983) SHA1(57f1e8f5171d13f9f76bd091d81b4423b59f6b42) )
-
- ROM_REGION( 0x1000, "gfx4", 0 ) /* 4k for the playfield graphics */
- ROM_LOAD( "digdug9.9", 0x0000, 0x1000, CRC(2cf399c2) SHA1(317c48818992f757b1bd0e3997fa99937f81b52c) )
-
- /* Proms were not dumped with this set */
- ROM_REGION( 0x0220, "proms", 0 )
- ROM_LOAD( "136007.113", 0x0000, 0x0020, CRC(4cb9da99) SHA1(91a5852a15d4672c29fdcbae75921794651f960c) )
- ROM_LOAD( "136007.111", 0x0020, 0x0100, CRC(00c7c419) SHA1(7ea149e8eb36920c3b84984b5ce623729d492fd3) )
- ROM_LOAD( "136007.112", 0x0120, 0x0100, CRC(e9b3e08e) SHA1(a294cc4da846eb702d61678396bfcbc87d30ea95) )
-
- ROM_REGION( 0x0200, "namco", 0 ) /* sound prom */
- ROM_LOAD( "136007.110", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
- ROM_LOAD( "136007.109", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
-ROM_END
-
-void galaga_state::init_galaga()
-{
- /* swap bytes for flipped character so we can decode them together with normal characters */
- uint8_t *rom = memregion("gfx1")->base();
- int len = memregion("gfx1")->bytes();
-
- for (int i = 0; i < len; i++)
- {
- if ((i & 0x0808) == 0x0800)
- {
- int t = rom[i];
- rom[i] = rom[i+8];
- rom[i+8] = t;
- }
- }
-}
-
-
-void xevious_state::init_xevious()
-{
- uint8_t *rom = memregion("gfx3")->base() + 0x5000;
- for (int i = 0; i < 0x2000; i++)
- rom[i + 0x2000] = rom[i] >> 4;
-}
-
-void xevious_state::init_xevios()
-{
- /* convert one of the sprite ROMs to the format used by Xevious */
- uint8_t *rom = memregion("gfx3")->base();
- for (int A = 0x5000; A < 0x7000; A++)
- {
- rom[A] = bitswap<8>(rom[A],1,3,5,7,0,2,4,6);
- }
-
- /* convert one of tile map ROMs to the format used by Xevious */
- rom = memregion("gfx4")->base();
- for (int A = 0x0000; A < 0x1000; A++)
- {
- rom[A] = bitswap<8>(rom[A],3,7,5,1,2,6,4,0);
- }
-
- init_xevious();
-}
-
-
-void battles_state::driver_init()
-{
- /* replace the Namco I/O handlers with interface to the 4th CPU */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x7000, 0x700f, read8_delegate(*this, FUNC(battles_state::customio_data0_r)), write8_delegate(*this, FUNC(battles_state::customio_data0_w)));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x7100, 0x7100, read8_delegate(*this, FUNC(battles_state::customio0_r)), write8_delegate(*this, FUNC(battles_state::customio0_w)));
-
- init_xevious();
-}
-
-
-/* Original Namco hardware, with Namco Customs */
-
-// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR,COMPANY,FULLNAME,FLAGS
-GAME( 1981, bosco, 0, bosco, bosco, bosco_state, empty_init, ROT0, "Namco", "Bosconian (new version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1981, boscoo, bosco, bosco, bosco, bosco_state, empty_init, ROT0, "Namco", "Bosconian (old version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1981, boscoo2, bosco, bosco, bosco, bosco_state, empty_init, ROT0, "Namco", "Bosconian (older version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1981, boscomd, bosco, bosco, boscomd, bosco_state, empty_init, ROT0, "Namco (Midway license)", "Bosconian (Midway, new version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1981, boscomdo, bosco, bosco, boscomd, bosco_state, empty_init, ROT0, "Namco (Midway license)", "Bosconian (Midway, old version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
-
-GAME( 1981, galaga, 0, galaga, galaga, galaga_state, init_galaga, ROT90, "Namco", "Galaga (Namco rev. B)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, galagao, galaga, galaga, galaga, galaga_state, init_galaga, ROT90, "Namco", "Galaga (Namco)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, galagamw, galaga, galaga, galagamw, galaga_state, init_galaga, ROT90, "Namco (Midway license)", "Galaga (Midway set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, galagamk, galaga, galaga, galaga, galaga_state, init_galaga, ROT90, "Namco (Midway license)", "Galaga (Midway set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, galagamf, galaga, galaga, galaga, galaga_state, init_galaga, ROT90, "Namco (Midway license)", "Galaga (Midway set 1 with fast shoot hack)", MACHINE_SUPPORTS_SAVE )
-
-GAME( 1982, xevious, 0, xevious, xevious, xevious_state, init_xevious, ROT90, "Namco", "Xevious (Namco)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, xeviousa, xevious, xevious, xeviousa, xevious_state, init_xevious, ROT90, "Namco (Atari license)", "Xevious (Atari, harder)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, xeviousb, xevious, xevious, xeviousb, xevious_state, init_xevious, ROT90, "Namco (Atari license)", "Xevious (Atari)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, xeviousc, xevious, xevious, xeviousa, xevious_state, init_xevious, ROT90, "Namco (Atari license)", "Xevious (Atari, Namco PCB)", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, sxevious, xevious, xevious, sxevious, xevious_state, init_xevious, ROT90, "Namco", "Super Xevious", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, sxeviousj, xevious, xevious, sxevious, xevious_state, init_xevious, ROT90, "Namco", "Super Xevious (Japan)", MACHINE_SUPPORTS_SAVE )
-
-GAME( 1982, digdug, 0, digdug, digdug, digdug_state, empty_init, ROT90, "Namco", "Dig Dug (rev 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, digdug1, digdug, digdug, digdug, digdug_state, empty_init, ROT90, "Namco", "Dig Dug (rev 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, digdugat, digdug, digdug, digdug, digdug_state, empty_init, ROT90, "Namco (Atari license)", "Dig Dug (Atari, rev 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, digdugat1, digdug, digdug, digdug, digdug_state, empty_init, ROT90, "Namco (Atari license)", "Dig Dug (Atari, rev 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, digsid, digdug, digdug, digdug, digdug_state, empty_init, ROT90, "Namco (Sidam license)", "Dig Dug (manufactured by Sidam)", MACHINE_SUPPORTS_SAVE )
-
-/* Bootlegs with replacement I/O chips */
-
-GAME( 1982, gallag, galaga, galagab, galaga, galaga_state, init_galaga, ROT90, "bootleg", "Gallag", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
-GAME( 1984, gatsbee, galaga, gatsbee, gatsbee, galaga_state, init_galaga, ROT90, "hack (Uchida)", "Gatsbee", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
-GAME( 1981, nebulbee, galaga, galagab, galaga, galaga_state, init_galaga, ROT90, "bootleg", "Nebulous Bee", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
-
-GAME( 1982, xevios, xevious, xevious, xevious, xevious_state, init_xevios, ROT90, "bootleg", "Xevios", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, battles, xevious, battles, xevious, battles_state, driver_init, ROT90, "bootleg", "Battles (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, battles2, xevious, xevious, xevious, xevious_state, init_xevios, ROT90, "bootleg", "Battles (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-
-GAME( 1982, dzigzag, digdug, dzigzag, digdug, digdug_state, empty_init, ROT90, "bootleg", "Zig Zag (Dig Dug hardware)", MACHINE_SUPPORTS_SAVE )