summaryrefslogtreecommitdiffstatshomepage
path: root/trunk/src/mame/drivers/balsente.c
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/mame/drivers/balsente.c')
-rw-r--r--trunk/src/mame/drivers/balsente.c2230
1 files changed, 2230 insertions, 0 deletions
diff --git a/trunk/src/mame/drivers/balsente.c b/trunk/src/mame/drivers/balsente.c
new file mode 100644
index 00000000000..482b6f6d4fe
--- /dev/null
+++ b/trunk/src/mame/drivers/balsente.c
@@ -0,0 +1,2230 @@
+/***************************************************************************
+
+ Bally/Sente SAC-1 system
+
+ driver by Aaron Giles
+
+ Games supported:
+ * Chicken Shift
+ * Gimme a Break
+ * Goalie Ghost
+ * Grudge Match
+ * Hat Trick
+ * Mini Golf
+ * Name that Tune
+ * Night Stocker
+ * Off the Wall
+ * Rescue Raider
+ * Sente Diagnostic Cartridge
+ * Shrike Avenger
+ * Snacks'n Jaxson
+ * Snake Pit
+ * Spiker
+ * Stocker
+ * Stompin'
+ * Street Football
+ * Toggle
+ * Trivial Pursuit (Genus I)
+ * Trivial Pursuit (Genus II)
+ * Trivial Pursuit (All Sports Edition)
+ * Trivial Pursuit (Young Player's Edition)
+ * Trivial Pursuit (Baby Boomer Series)
+ * Trivial Pursuit (Spanish)
+
+ Looking for ROMs for these:
+ * Euro Stocker
+ * Team Hat Trick
+
+ Known bugs:
+ * CEM3394 emulation is not perfect
+ * Shrike Avenger doesn't work properly
+
+ Other:
+ * Some of the cartridge types are unknown
+ * Do any of the remaining unknown cartridge types contain a PAL
+ that needs to be dumped?
+
+****************************************************************************
+
+ Memory map
+
+****************************************************************************
+
+ ========================================================================
+ CPU #1
+ ========================================================================
+ 0000-007F R/W xxxxxxxx Sprite RAM (32 entries x 4 bytes)
+ R/W x------- (0: Vertical flip)
+ R/W -x------ (0: Horizontal flip)
+ R/W ------xx (0: Upper 2 bits of image number)
+ R/W xxxxxxxx (1: Lower 8 bits of image number)
+ R/W xxxxxxxx (2: Y position, offset by 17 pixels)
+ R/W xxxxxxxx (3: X position)
+ 0080-00DF R/W xxxxxxxx Program RAM
+ 00E0-00FF R/W xxxxxxxx Additional sprite RAM (8 entries x 4 bytes)
+ 0100-07FF R/W xxxxxxxx Program RAM
+ 0800-7FFF R/W xxxxxxxx Video RAM (256x240 pixels)
+ R/W xxxx---- (left pixel)
+ R/W ----xxxx (right pixel)
+ 8000-8FFF R/W ----xxxx Palette RAM (1024 entries x 4 bytes)
+ R/W ----xxxx (0: red entry)
+ R/W ----xxxx (1: green entry)
+ R/W ----xxxx (2: blue entry)
+ 9000-9007 W -------- ADC start trigger, inputs 0-7
+ 9400 R xxxxxxxx ADC data read
+ 9800-9801 W x------- External output #0
+ 9802-9803 W x------- External output #1
+ 9804-9805 W x------- External output #2
+ 9806-9807 W x------- External output #3
+ 9808-9809 W x------- External output #4
+ 980A-980B W x------- External output #5
+ 980C-980D W x------- External output #6
+ 980E-980F W x------- NVRAM recall
+ 9880 W -------- Random number generator reset
+ 98A0 W -xxx---- A000-DFFF bank select
+ 98C0 W ------xx Palette bank select
+ 98E0 W -------- Watchdog reset
+ 9900 R xxxxxxxx DIP switch bank 1 (G) (active low)
+ 9901 R xxxxxxxx DIP switch bank 2 (H) (active low)
+ 9902 R x------- Self test (active low)
+ R -x------ Left coin (active low)
+ R --xxxxxx External inputs (active low)
+ 9903 R x------- VBLANK state (active high)
+ R -x------ Right coin (active low)
+ R --xxxx-- External inputs (active low)
+ R ------x- Player 2 start (active low)
+ R -------x Player 1 start (active low)
+ 9A00 R xxxxxxxx Random number generator
+ 9A04-9A05 R/W xxxxxxxx 6850 UART I/O (to sound board)
+ 9B00-9CFF R/W xxxxxxxx NOVRAM
+ 9F00 W --x--xxx Independent bank select (Night Stocker only?)
+ 9e00-9fff R/W Shrike Avenger shares with 68k at 0x18000 (see Shrike notes below)
+ A000-BFFF R xxxxxxxx Banked A/B ROM
+ C000-DFFF R xxxxxxxx Banked C/D ROM
+ E000-FFFF R xxxxxxxx Fixed program ROM
+ ========================================================================
+ Interrupts:
+ NMI not connected
+ IRQ generated by 32L
+ FIRQ generated by 6850 UART
+ ========================================================================
+
+
+ ========================================================================
+ CPU #2
+ ========================================================================
+ 0000-1FFF R xxxxxxxx Program ROM
+ 2000-3FFF R/W xxxxxxxx Option RAM/ROM (assumed to be RAM for now)
+ 4000-5FFF R/W xxxxxxxx Program RAM
+ 6000-6001 W xxxxxxxx 6850 UART output (to main board)
+ E000-E001 R xxxxxxxx 6850 UART input (from main board)
+ ========================================================================
+ 0000-0003 R/W xxxxxxxx 8253 counter chip I/O
+ 0008 R ------xx Counter state
+ R ------x- State of counter #0 OUT signal (active high)
+ R -------x State of flip-flop feeding counter #0 (active low)
+ 0008 W --xxxxxx Counter control
+ W --x----- NMI enable (1=enabled, 0=disabled/clear)
+ W ---x---- CLEAR on flip-flop feeding counter #0 (active low)
+ W ----x--- Input of flip-flop feeding counter #0
+ W -----x-- PRESET on flip-flop feeding counter #0 (active low)
+ W ------x- GATE signal for counter #0 (active high)
+ W -------x Audio enable
+ 000A W --xxxxxx DAC data latch (upper 6 bits)
+ 000B W xxxxxx-- DAC data latch (lower 6 bits)
+ 000C W -----xxx CEM3394 register select
+ 000E W --xxxxxx CEM3394 chip enable (active high)
+ W --x----- CEM3394 chip 0 enable
+ W ---x---- CEM3394 chip 1 enable
+ W ----x--- CEM3394 chip 2 enable
+ W -----x-- CEM3394 chip 3 enable
+ W ------x- CEM3394 chip 4 enable
+ W -------x CEM3394 chip 5 enable
+ ========================================================================
+ Interrupts:
+ INT generated by counter #2 OUT signal on 8253
+ NMI generated by 6850 UART
+ ========================================================================
+
+ ========================================================================
+ Shrike SHM
+ Many thanks to Owen Rubin and Brian Deuel ( http://www.atarimuseum.com/orubin/ ) for their time,
+ interest, and memories!
+
+ From Owen: The motor drive included 2 motors side by side at the rear of the cabinet with a U joint pivot
+ at the front. L & R motors were used independently for side to side "roll" motion, and together for pitch.
+ The motors were guarded by two sets of h/w limit switches - stop switch and (emergency) auto-reverse
+ switch - in tandem with soft limiting. The software calibrated the motors by running the motors slowly to
+ full limits and using the data for the soft limiting. (max chops?)
+
+ The proto was never completed, there was to be a final round against a mother ship where you would have
+ to shoot out 4 engines and a target array. (He thinks there was another bank of sprite ROMs for this that
+ may never have been included.) He also says 'There was going to be a "death blossom" shot you could
+ use once that would have been a wild ride as well, but that motion was VERY tough in the simulator, so I
+ did not complete it.'
+
+ Owen's recollection of the motion diagnostics screen, the second cursor is the controllers feedback
+ and should match the yoke cursor. Two of the channels (sine/bar) are probably calculated/reported
+ motor pos. Red sine meant over/underspeed or calculated/reported discrepancy. All memories came with
+ a disclaimer ;)
+
+ Shrike shares 9e00 - 9fff as 18000 - 181ff, 9e00-9e0f as registers, and the rest as GFX RAM.
+ 10000-1001f appear to be the interface to the motors/sensors.
+
+ For more detailed (but unfinished as yet) disassembly of 68000, get me at my hotmail address, 'nuapete'
+ ========================================================================
+ m6809 m68000
+ 9e00 RW - RW 18000 ($0,A3) : 6809 command register, commands in range 0-19
+ cmd $0 nop
+ cmd $10 check RAM
+ cmd $11 check u22 ( 0000-3FFE )
+ cmd $12 check u24 ( 0001-3FFF )
+ cmd $13 check "u26" ( 8000-BFFE ) \ these appear to be for unused expansion slots
+ cmd $14 check "u28" ( 8001-BFFF ) /
+ cmd $15 check IRQs
+ cmd $16 check FIRQs
+ cmd $17 fetch max chops
+ cmd $18 fetch pulse width
+ 9e01 W - R 18001 ($1,A3) : &0x80 sprite bank select
+ 9e02 W - R 18002 ($2,A3) : \ joy x
+ 9e03 W - R 18003 ($3,A3) : / joy y
+ 9e04 R - W 18004 ($4,A3) : \ cursor y pos in diags screen
+ 9e05 R - W 18005 ($5,A3) : / cursor x pos in diags screen
+ 9e06 R - W 18006 ($6,A3) : 68k status
+ 00 = OK
+ 02 = cmd 3 or a failed
+ 01 = Initial status (not OK)
+ 10 = RAM bad
+ 11 = ROM(s) bad
+ 15 = IRQs bad
+ 16 = FIRQs bad
+ F7 = 68k didn't get handshake from 6809
+ F8 = Too many spurious interrupts
+ F9 = Both limit switches at once
+ FA = 120 Hz signal slower than 80Hz
+ FB = Excess current sensor not working
+ FC = Motor range outside of expected
+ FD = Failed to detect limit switch
+ FE = No mech movement detected
+ FF = Excess current for too long
+ 9e07 W - R 18007 ($7,A3) : \ writes random stuff from 9A00 which is the random number generator?
+ 9e08 RW - R 18008 ($8,A3) : / as 9e07
+ 9e09 RW - W 18009 ($9,A3) : \ 68k watchdog writes 0xaa
+ 9e0a W - RW 1800a ($a,A3) : / 6809 watchdog writes 0x55
+ 9e0b - RW 1800b ($b,A3) : Only writes are 0
+ 9e0c R - RW 1800c ($c,A3) : \ ypos returned from controller (affects enemy ship pos)
+ 9e0d R - W 1800d ($d,A3) : / xpos returned from controller
+ 9e0e W - R 1800e ($e,A3) : \
+ 9e0f W - 1800f ($f,A3) : / partial pointer into SHM gfx data
+
+***************************************************************************
+
+DIP locations verified for:
+ - stompin (manual)
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "cpu/m6809/m6809.h"
+#include "cpu/m68000/m68000.h"
+#include "includes/balsente.h"
+#include "sound/cem3394.h"
+#include "machine/nvram.h"
+
+#include "stocker.lh"
+
+
+
+/*************************************
+ *
+ * Main CPU memory handlers
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_MEMBER(balsente_state, m_spriteram)
+ AM_RANGE(0x0800, 0x7fff) AM_RAM_WRITE(balsente_videoram_w) AM_BASE_MEMBER(balsente_state, m_videoram)
+ AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(balsente_paletteram_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x9000, 0x9007) AM_WRITE(balsente_adc_select_w)
+ AM_RANGE(0x9400, 0x9401) AM_READ(balsente_adc_data_r)
+ AM_RANGE(0x9800, 0x987f) AM_WRITE(balsente_misc_output_w)
+ AM_RANGE(0x9880, 0x989f) AM_WRITE(balsente_random_reset_w)
+ AM_RANGE(0x98a0, 0x98bf) AM_WRITE(balsente_rombank_select_w)
+ AM_RANGE(0x98c0, 0x98df) AM_WRITE(balsente_palette_select_w)
+ AM_RANGE(0x98e0, 0x98ff) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x9900, 0x9900) AM_READ_PORT("SWH")
+ AM_RANGE(0x9901, 0x9901) AM_READ_PORT("SWG")
+ AM_RANGE(0x9902, 0x9902) AM_READ_PORT("IN0")
+ AM_RANGE(0x9903, 0x9903) AM_READ_PORT("IN1") AM_WRITENOP
+ AM_RANGE(0x9a00, 0x9a03) AM_READ(balsente_random_num_r)
+ AM_RANGE(0x9a04, 0x9a05) AM_READWRITE(balsente_m6850_r, balsente_m6850_w)
+ AM_RANGE(0x9b00, 0x9cff) AM_RAM AM_SHARE("nvram") /* system+cart NOVRAM */
+ AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xc000, 0xffff) AM_ROMBANK("bank2")
+ADDRESS_MAP_END
+
+
+
+/*************************************
+ *
+ * Sound CPU memory handlers
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
+ AM_RANGE(0x2000, 0x5fff) AM_RAM
+ AM_RANGE(0x6000, 0x7fff) AM_WRITE(balsente_m6850_sound_w)
+ AM_RANGE(0xe000, 0xffff) AM_READ(balsente_m6850_sound_r)
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( cpu2_io_map, AS_IO, 8 )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x03) AM_READWRITE(balsente_counter_8253_r, balsente_counter_8253_w)
+ AM_RANGE(0x08, 0x0f) AM_READ(balsente_counter_state_r)
+ AM_RANGE(0x08, 0x09) AM_WRITE(balsente_counter_control_w)
+ AM_RANGE(0x0a, 0x0b) AM_WRITE(balsente_dac_data_w)
+ AM_RANGE(0x0c, 0x0d) AM_WRITE(balsente_register_addr_w)
+ AM_RANGE(0x0e, 0x0f) AM_WRITE(balsente_chip_select_w)
+ADDRESS_MAP_END
+
+
+
+/*************************************
+ *
+ * Shrike Avenger CPU memory handlers
+ *
+ *************************************/
+
+/* CPU 1 read addresses */
+static ADDRESS_MAP_START( shrike68k_map, AS_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x003fff) AM_ROM
+ AM_RANGE(0x010000, 0x01001f) AM_RAM AM_BASE_MEMBER(balsente_state, m_shrike_io)
+ AM_RANGE(0x018000, 0x018fff) AM_RAM AM_BASE_MEMBER(balsente_state, m_shrike_shared)
+ADDRESS_MAP_END
+
+
+
+/*************************************
+ *
+ * Port definitions
+ *
+ *************************************/
+
+#define UNUSED_ANALOG PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+#define BALSENTE_COINAGE_ALT \
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) PORT_DIPLOCATION("H1:1,2") \
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
+
+#define BALSENTE_COINAGE_ALT2 \
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("H1:1,2") \
+ PORT_DIPSETTING( 0x03, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) )
+
+#define BALSENTE_PLAYERS_PER_COIN \
+ PORT_DIPNAME( 0x04, 0x04, "Players Per Credit" ) PORT_DIPLOCATION("H1:3") \
+ PORT_DIPSETTING( 0x00, "1" ) \
+ PORT_DIPSETTING( 0x04, "1 Or 2" )
+
+static INPUT_PORTS_START( sentetst )
+ PORT_START("SWH")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) PORT_DIPLOCATION("H1:1,2")
+ PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
+ PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "H1:3" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "H1:4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "H1:5" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "H1:6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "H1:7" )
+ PORT_DIPNAME( 0x80, 0x80, "High Scores" ) PORT_DIPLOCATION("H1:8")
+ PORT_DIPSETTING( 0x80, "Keep Top 5" )
+ PORT_DIPSETTING( 0x00, "Keep All" )
+
+ PORT_START("SWG")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("G1:1,2")
+ PORT_DIPSETTING( 0x00, "Every 10,000" )
+ PORT_DIPSETTING( 0x01, "Every 15,000" )
+ PORT_DIPSETTING( 0x02, "Every 20,000" )
+ PORT_DIPSETTING( 0x03, "Every 25,000" )
+ PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives ) ) PORT_DIPLOCATION("G1:3,4")
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPSETTING( 0x08, "4" )
+ PORT_DIPSETTING( 0x0c, "5" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "G1:5" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "G1:6" )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("G1:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("G1:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(1)
+ PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x38, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK )
+
+ /* Analog ports */
+ PORT_START("AN0")
+ UNUSED_ANALOG
+
+ PORT_START("AN1")
+ UNUSED_ANALOG
+
+ /* Player 1 Trackball */
+ PORT_START("AN2")
+ PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_PLAYER(1)
+
+ PORT_START("AN3")
+ PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_REVERSE PORT_PLAYER(1)
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( cshift )
+ PORT_INCLUDE( sentetst )
+
+ PORT_MODIFY("SWG")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "G1:1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "G1:2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) PORT_DIPLOCATION("G1:3")
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "G1:4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "G1:5" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "G1:6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "G1:7" )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
+ PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("AN2")
+ UNUSED_ANALOG
+
+ PORT_MODIFY("AN3")
+ UNUSED_ANALOG
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( gghost )
+ PORT_INCLUDE( sentetst )
+
+ PORT_MODIFY("SWH")
+ BALSENTE_PLAYERS_PER_COIN
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "H1:7" )
+
+ PORT_MODIFY("SWG")
+ PORT_DIPNAME( 0x07, 0x05, "Game Duration" ) PORT_DIPLOCATION("G1:1,2,3")
+ PORT_DIPSETTING( 0x00, "9 Points" )
+ PORT_DIPSETTING( 0x02, "11 Points" )
+ PORT_DIPSETTING( 0x04, "15 Points" )
+ PORT_DIPSETTING( 0x06, "21 Points" )
+ PORT_DIPSETTING( 0x01, "Timed, 1:15" )
+ PORT_DIPSETTING( 0x03, "Timed, 1:30" )
+ PORT_DIPSETTING( 0x05, "Timed, 2:00" )
+ PORT_DIPSETTING( 0x07, "Timed, 2:30" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "G1:4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "G1:5" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "G1:6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "G1:7" )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ /* Player 2 Trackball */
+ PORT_MODIFY("AN0")
+ PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_PLAYER(2)
+
+ PORT_MODIFY("AN1")
+ PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_REVERSE PORT_PLAYER(2)
+
+ /* Player 1 Trackball */
+ PORT_MODIFY("AN2")
+ PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_PLAYER(1)
+
+ PORT_MODIFY("AN3")
+ PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_REVERSE PORT_PLAYER(1)
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( hattrick )
+ PORT_INCLUDE( sentetst )
+
+ PORT_MODIFY("SWH")
+ BALSENTE_PLAYERS_PER_COIN
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "H1:8" )
+
+ PORT_MODIFY("SWG")
+ PORT_DIPNAME( 0x07, 0x02, DEF_STR( Game_Time ) ) PORT_DIPLOCATION("G1:1,2,3")
+ PORT_DIPSETTING( 0x00, "1:15" )
+ PORT_DIPSETTING( 0x01, "1:30" )
+ PORT_DIPSETTING( 0x02, "1:45" )
+ PORT_DIPSETTING( 0x03, "2:00" )
+ PORT_DIPSETTING( 0x04, "2:15" )
+ PORT_DIPSETTING( 0x05, "2:30" )
+ PORT_DIPSETTING( 0x06, "2:45" )
+ PORT_DIPSETTING( 0x07, "3:00" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "G1:4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "G1:5" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "G1:6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "G1:7" )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
+
+ PORT_MODIFY("AN2")
+ UNUSED_ANALOG
+
+ PORT_MODIFY("AN3")
+ UNUSED_ANALOG
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( otwalls )
+ PORT_INCLUDE( sentetst )
+
+ PORT_MODIFY("SWH")
+ BALSENTE_PLAYERS_PER_COIN
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "H1:8" )
+
+ PORT_MODIFY("SWG")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "G1:1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "G1:2" )
+ PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "G1:3" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "G1:4" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "G1:7" )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(2)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(1)
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ /* Player 1 Dial */
+ PORT_MODIFY("AN2")
+ PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_REVERSE PORT_PLAYER(1)
+
+ /* Player 2 Dial */
+ PORT_MODIFY("AN3")
+ PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_REVERSE PORT_PLAYER(2)
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( snakjack )
+ PORT_INCLUDE( sentetst )
+
+ PORT_MODIFY("SWG")
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("G1:1,2")
+ PORT_DIPSETTING( 0x00, "Every 15,000" )
+ PORT_DIPSETTING( 0x01, "Every 20,000" )
+ PORT_DIPSETTING( 0x02, "Every 25,000" )
+ PORT_DIPSETTING( 0x03, "Every 30,000" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "G1:7" )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( stocker )
+ PORT_INCLUDE( sentetst )
+
+ PORT_MODIFY("SWH")
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) PORT_DIPLOCATION("H1:1,2")
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
+
+ PORT_DIPNAME( 0x1c, 0x00, "Bonus Coins" ) PORT_DIPLOCATION("H1:3,4,5")
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+ PORT_DIPSETTING( 0x04, "2 Coins = 1 Bonus" )
+ PORT_DIPSETTING( 0x08, "3 Coins = 1 Bonus" )
+ PORT_DIPSETTING( 0x0c, "4 Coins = 1 Bonus" )
+ PORT_DIPSETTING( 0x10, "4 Coins = 2 Bonus" )
+ PORT_DIPSETTING( 0x14, "5 Coins = 1 Bonus" )
+ PORT_DIPSETTING( 0x18, "5 Coins = 2 Bonus" )
+ PORT_DIPSETTING( 0x1c, "5 Coins = 3 Bonus" )
+ PORT_DIPNAME( 0x20, 0x00, "Left Coin Mech" ) PORT_DIPLOCATION("H1:6")
+ PORT_DIPSETTING( 0x00, "x1" )
+ PORT_DIPSETTING( 0x20, "x2" )
+ PORT_DIPNAME( 0xc0, 0x00, "Right Coin Mech" ) PORT_DIPLOCATION("H1:7,8")
+ PORT_DIPSETTING( 0x00, "x1" )
+ PORT_DIPSETTING( 0x40, "x4" )
+ PORT_DIPSETTING( 0x80, "x5" )
+ PORT_DIPSETTING( 0xc0, "x6" )
+
+ PORT_MODIFY("SWG")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "G1:1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "G1:2" )
+ PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "G1:3" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "G1:4" )
+ PORT_DIPNAME( 0x40, 0x40, "End Of Game" ) PORT_DIPLOCATION("G1:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, "3 Tickets" )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("AN2")
+ UNUSED_ANALOG
+
+ /* Player 1 Wheel */
+ PORT_MODIFY("AN3")
+ PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_PLAYER(1)
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( triviag1 )
+ PORT_INCLUDE( sentetst )
+
+ PORT_MODIFY("SWH")
+ PORT_DIPNAME( 0x20, 0x00, "Sound" ) PORT_DIPLOCATION("H1:6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, "Sound Test" ) PORT_DIPLOCATION("H1:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, "High Scores" ) PORT_DIPLOCATION("H1:8")
+ PORT_DIPSETTING( 0x00, "Keep Top 5" )
+ PORT_DIPSETTING( 0x80, "Keep Top 10" )
+
+ PORT_MODIFY("SWG")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "G1:1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "G1:2" )
+ PORT_DIPNAME( 0x0c, 0x04, "Guesses" ) PORT_DIPLOCATION("G1:3,4")
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x04, "4" )
+ PORT_DIPSETTING( 0x08, "5" )
+ PORT_DIPSETTING( 0x0c, "6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "G1:7" )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START3 )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START4 )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Red Button")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Green Button")
+
+ PORT_MODIFY("AN2")
+ UNUSED_ANALOG
+
+ PORT_MODIFY("AN3")
+ UNUSED_ANALOG
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( triviaes )
+ PORT_INCLUDE( triviag1 )
+
+ PORT_MODIFY("SWH")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("H1:1,2")
+ PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Free_Play ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) )
+
+ PORT_MODIFY("SWG")
+ PORT_DIPNAME( 0x0c, 0x04, "Guesses" ) PORT_DIPLOCATION("G1:3,4")
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPSETTING( 0x08, "4" )
+ PORT_DIPSETTING( 0x0c, "5" )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( gimeabrk )
+ PORT_INCLUDE( stocker )
+
+ PORT_MODIFY("SWH")
+ BALSENTE_COINAGE_ALT
+
+ PORT_MODIFY("SWG")
+ PORT_DIPNAME( 0x03, 0x01, "Bonus Shot" ) PORT_DIPLOCATION("G1:1,2")
+ PORT_DIPSETTING( 0x00, "Every 6 Balls" )
+ PORT_DIPSETTING( 0x01, "Every 8 Balls" )
+ PORT_DIPSETTING( 0x02, "Every 10 Balls" )
+ PORT_DIPSETTING( 0x03, "Every 12 Balls" )
+ PORT_DIPNAME( 0x0c, 0x08, "Initial Shots" ) PORT_DIPLOCATION("G1:3,4")
+ PORT_DIPSETTING( 0x00, "8" )
+ PORT_DIPSETTING( 0x04, "10" )
+ PORT_DIPSETTING( 0x08, "12" )
+ PORT_DIPSETTING( 0x0c, "14" )
+ PORT_DIPNAME( 0x10, 0x00, "Players Per Credit" ) PORT_DIPLOCATION("G1:5")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x10, "1 Or 2" )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("G1:6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+ PORT_DIPNAME( 0x40, 0x40, "High Scores" ) PORT_DIPLOCATION("G1:7")
+ PORT_DIPSETTING( 0x40, "Keep Top 5" )
+ PORT_DIPSETTING( 0x00, "Keep All" )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ /* Player 1 Trackball, Cocktail acts as Player 2*/
+ PORT_MODIFY("AN0")
+ PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_PLAYER(1)
+ PORT_MODIFY("AN1")
+ PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_REVERSE PORT_PLAYER(1)
+
+ /* Player 2 Trackball, Cocktail acts as Player 1 */
+ PORT_MODIFY("AN2")
+ PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_COCKTAIL PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_PLAYER(2)
+ PORT_MODIFY("AN3")
+ PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_COCKTAIL PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_REVERSE PORT_PLAYER(2)
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( minigolf )
+ PORT_INCLUDE( stocker )
+
+ PORT_MODIFY("SWH")
+ BALSENTE_COINAGE_ALT2
+
+ PORT_MODIFY("SWG")
+ PORT_DIPNAME( 0x01, 0x01, "Add-A-Coin" ) PORT_DIPLOCATION("G1:1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, "Display Kids" ) PORT_DIPLOCATION("G1:2")
+ PORT_DIPSETTING( 0x02, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x04, 0x04, "Kid On Left Located" ) PORT_DIPLOCATION("G1:3")
+ PORT_DIPSETTING( 0x04, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x08, 0x08, "Kid On Right Located" ) PORT_DIPLOCATION("G1:4")
+ PORT_DIPSETTING( 0x08, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "G1:5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "G1:6" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "G1:7" )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START3 )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START4 )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ /* Player 1 Trackball */
+ PORT_MODIFY("AN2")
+ PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_PLAYER(1)
+
+ PORT_MODIFY("AN3")
+ PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_REVERSE PORT_PLAYER(1)
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( minigolf2 )
+ PORT_INCLUDE( minigolf )
+
+ PORT_MODIFY("SWH")
+ BALSENTE_COINAGE_ALT
+
+ PORT_MODIFY("SWG")
+ PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "G1:2" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "G1:3" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "G1:4" )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( toggle )
+ PORT_INCLUDE( sentetst )
+
+ PORT_MODIFY("SWG")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "G1:1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "G1:2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) PORT_DIPLOCATION("G1:3")
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "G1:4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "G1:5" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "G1:6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "G1:7" )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
+
+ PORT_MODIFY("AN2")
+ UNUSED_ANALOG
+
+ PORT_MODIFY("AN3")
+ UNUSED_ANALOG
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( nametune )
+ PORT_INCLUDE( stocker )
+
+ PORT_MODIFY("SWH")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("H1:1,2")
+ PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 3C_2C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) )
+
+ PORT_MODIFY("SWG")
+ PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "G1:1" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "G1:2" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "G1:3" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "G1:4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "G1:5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "G1:6" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "G1:7" )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Blue Button") PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Green Button") PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Yellow Button") PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Red Button") PORT_PLAYER(1)
+ PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Red Button") PORT_PLAYER(2)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Yellow Button") PORT_PLAYER(2)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Green Button") PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P2 Blue Button") PORT_PLAYER(2)
+
+ PORT_MODIFY("AN3")
+ UNUSED_ANALOG
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( nstocker )
+ PORT_INCLUDE( stocker )
+
+ PORT_MODIFY("SWH")
+ BALSENTE_COINAGE_ALT2
+
+ PORT_MODIFY("SWG")
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("G1:1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "G1:7" )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nstocker_bits_r, NULL)
+
+ /* cheese alert -- we have to map this to player 2 so that it doesn't interfere with
+ the crosshair controls */
+ PORT_MODIFY("AN3")
+ PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20)
+ PORT_CODE_DEC(KEYCODE_S) PORT_CODE_DEC(JOYCODE_X_LEFT_SWITCH) PORT_CODE_INC(KEYCODE_F) PORT_CODE_INC(JOYCODE_X_RIGHT_SWITCH) PORT_RESET PORT_PLAYER(2)
+
+ /* extra ports for shooters */
+ PORT_START("FAKEX") /* fake analog X */
+ PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(10)
+
+ PORT_START("FAKEY") /* fake analog Y */
+ PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(70) PORT_KEYDELTA(10)
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( sfootbal )
+ PORT_INCLUDE( stocker )
+
+ PORT_MODIFY("SWH")
+ BALSENTE_COINAGE_ALT2
+
+ PORT_MODIFY("SWG")
+ PORT_DIPNAME( 0x07, 0x03, DEF_STR( Game_Time ) ) PORT_DIPLOCATION("G1:1,2,3")
+ PORT_DIPSETTING( 0x00, "1:30" )
+ PORT_DIPSETTING( 0x01, "1:40" )
+ PORT_DIPSETTING( 0x02, "1:50" )
+ PORT_DIPSETTING( 0x03, "2:00" )
+ PORT_DIPSETTING( 0x04, "2:20" )
+ PORT_DIPSETTING( 0x05, "2:40" )
+ PORT_DIPSETTING( 0x06, "3:00" )
+ PORT_DIPSETTING( 0x07, "3:30" )
+ PORT_DIPNAME( 0x08, 0x00, "Players Per Credit" ) PORT_DIPLOCATION("G1:4")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x08, "1 Or 2" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "G1:7" )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x38, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ /* Player 2 Analog Joystick */
+ PORT_MODIFY("AN0")
+ PORT_BIT( 0xff, 0, IPT_AD_STICK_Y ) PORT_MINMAX(0x80,0x7f) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(2)
+
+ PORT_MODIFY("AN1")
+ PORT_BIT( 0xff, 0, IPT_AD_STICK_X ) PORT_MINMAX(0x80,0x7f) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_REVERSE PORT_PLAYER(2)
+
+ /* Player 1 Analog Joystick */
+ PORT_MODIFY("AN2")
+ PORT_BIT( 0xff, 0, IPT_AD_STICK_Y ) PORT_MINMAX(0x80,0x7f) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(1)
+
+ PORT_MODIFY("AN3")
+ PORT_BIT( 0xff, 0, IPT_AD_STICK_X ) PORT_MINMAX(0x80,0x7f) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_REVERSE PORT_PLAYER(1)
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( spiker )
+ PORT_INCLUDE( stocker )
+
+ PORT_MODIFY("SWH")
+ BALSENTE_COINAGE_ALT2
+
+ PORT_MODIFY("SWG")
+ PORT_DIPNAME( 0x01, 0x00, "Game Duration" ) PORT_DIPLOCATION("G1:1")
+ PORT_DIPSETTING( 0x00, "11 Points" )
+ PORT_DIPSETTING( 0x01, "15 Points" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "G1:2" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "G1:3" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "G1:4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "G1:5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "G1:6" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "G1:7" )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+
+ /* Player 2 Trackball */
+ PORT_MODIFY("AN0")
+ PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_PLAYER(2)
+
+ PORT_MODIFY("AN1")
+ PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_REVERSE PORT_PLAYER(2)
+
+ /* Player 1 Trackball */
+ PORT_MODIFY("AN2")
+ PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_PLAYER(1)
+
+ PORT_MODIFY("AN3")
+ PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_REVERSE PORT_PLAYER(1)
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( stompin )
+ PORT_INCLUDE( stocker )
+ /* Set H:1-8 all to OFF to enable Free Play */
+ PORT_MODIFY("SWH")
+ BALSENTE_COINAGE_ALT2
+
+ PORT_MODIFY("SWG")
+ PORT_DIPNAME( 0x01, 0x00, "Display Kids" ) PORT_DIPLOCATION("G1:1")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x02, 0x02, "Kid On Right Located" ) PORT_DIPLOCATION("G1:2")
+ PORT_DIPSETTING( 0x02, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x04, 0x04, "Kid On Left Located" ) PORT_DIPLOCATION("G1:3")
+ PORT_DIPSETTING( 0x04, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("G1:6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, "Bee In Game" ) PORT_DIPLOCATION("G1:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x00, "Bug Generation" ) PORT_DIPLOCATION("G1:8")
+ PORT_DIPSETTING( 0x00, "Regular" )
+ PORT_DIPSETTING( 0x80, DEF_STR( None ) )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("AN0")
+ PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Top-Right") PORT_CODE(KEYCODE_9_PAD) PORT_PLAYER(1)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Top") PORT_CODE(KEYCODE_8_PAD) PORT_PLAYER(1)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Top-Left") PORT_CODE(KEYCODE_7_PAD) PORT_PLAYER(1)
+
+ PORT_MODIFY("AN1")
+ PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Right") PORT_CODE(KEYCODE_6_PAD) PORT_PLAYER(1)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Left") PORT_CODE(KEYCODE_4_PAD) PORT_PLAYER(1)
+
+ PORT_MODIFY("AN2")
+ PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Bot-Right") PORT_CODE(KEYCODE_3_PAD) PORT_PLAYER(1)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Bottom") PORT_CODE(KEYCODE_2_PAD) PORT_PLAYER(1)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Bot-Left") PORT_CODE(KEYCODE_1_PAD) PORT_PLAYER(1)
+
+ PORT_MODIFY("AN3")
+ UNUSED_ANALOG
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( grudge )
+ PORT_INCLUDE( sentetst )
+
+ PORT_MODIFY("SWH")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Unknown ) ) PORT_DIPLOCATION("H1:1,2")
+ PORT_DIPSETTING( 0x00, "0" )
+ PORT_DIPSETTING( 0x01, "1" )
+ PORT_DIPSETTING( 0x02, "2" )
+ PORT_DIPSETTING( 0x03, "3" )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("H1:8")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+
+ PORT_MODIFY("SWG")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "G1:1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "G1:2" )
+ PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "G1:3" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "G1:4" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "G1:7" )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Players ) ) PORT_DIPLOCATION("G1:8")
+ PORT_DIPSETTING( 0x80, "2" )
+ PORT_DIPSETTING( 0x00, "3" )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START3 )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("AN0")
+ PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(20) PORT_PLAYER(1)
+
+ PORT_MODIFY("AN1")
+ PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(20) PORT_PLAYER(2)
+
+ PORT_MODIFY("AN2")
+ PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(20) PORT_PLAYER(3)
+
+ PORT_MODIFY("AN3")
+ UNUSED_ANALOG
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( rescraid )
+ PORT_INCLUDE( stocker )
+
+ PORT_MODIFY("SWH")
+ BALSENTE_COINAGE_ALT2
+
+ PORT_MODIFY("SWG")
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("G1:1")
+ PORT_DIPSETTING( 0x00, "4" )
+ PORT_DIPSETTING( 0x01, "5" )
+ PORT_DIPNAME( 0x0c, 0x04, "Minimum Game Time" ) PORT_DIPLOCATION("G1:3,4")
+ PORT_DIPSETTING( 0x08, "45" )
+ PORT_DIPSETTING( 0x04, "60" )
+ PORT_DIPSETTING( 0x00, "90" )
+ PORT_DIPSETTING( 0x0c, "120" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "G1:5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "G1:6" )
+ PORT_DIPNAME( 0x40, 0x40, "Keep High Scores" ) PORT_DIPLOCATION("G1:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(1)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_PLAYER(1)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_PLAYER(1)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_PLAYER(1)
+
+ PORT_MODIFY("AN3")
+ UNUSED_ANALOG
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( shrike )
+ PORT_INCLUDE( sentetst )
+
+ PORT_MODIFY("SWH")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage )) PORT_DIPLOCATION("H1:1,2")
+ PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ))
+ PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ))
+ PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ))
+ PORT_DIPSETTING( 0x03, DEF_STR( Free_Play ))
+ PORT_DIPNAME( 0x40, 0x40, "Reset High Scores" ) PORT_DIPLOCATION("H1:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ))
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ))
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "H1:8" )
+
+ PORT_MODIFY("SWG")
+ PORT_DIPNAME( 0x03, 0x03, "Minimum Game Time" ) PORT_DIPLOCATION("G1:1,2")
+ PORT_DIPSETTING( 0x00, "1:00" )
+ PORT_DIPSETTING( 0x01, "1:30" )
+ PORT_DIPSETTING( 0x02, "2:00" )
+ PORT_DIPSETTING( 0x03, "2:30" )
+ PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "G1:3" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "G1:4" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x20, "G1:7" )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x1c, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) // carpet switch
+
+ PORT_MODIFY("AN0")
+ PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(1)
+
+ PORT_MODIFY("AN1")
+ PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(1)
+
+ PORT_MODIFY("AN2")
+ UNUSED_ANALOG
+
+ PORT_MODIFY("AN3")
+ UNUSED_ANALOG
+INPUT_PORTS_END
+
+
+
+/*************************************
+ *
+ * Sound definitions
+ *
+ *************************************/
+
+static const cem3394_interface cem_interface =
+{
+ 431.894,
+ 1300.0,
+ balsente_noise_gen
+};
+
+
+
+/*************************************
+ *
+ * Machine driver
+ *
+ *************************************/
+
+static MACHINE_CONFIG_START( balsente, balsente_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M6809, XTAL_20MHz/16) /* xtal verified but not speed */
+ MCFG_CPU_PROGRAM_MAP(cpu1_map)
+ MCFG_CPU_VBLANK_INT("screen", balsente_update_analog_inputs)
+
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_8MHz/2) /* xtal verified but not speed */
+ MCFG_CPU_PROGRAM_MAP(cpu2_map)
+ MCFG_CPU_IO_MAP(cpu2_io_map)
+
+ MCFG_QUANTUM_TIME(attotime::from_hz(600))
+
+ MCFG_MACHINE_START(balsente)
+ MCFG_MACHINE_RESET(balsente)
+ MCFG_NVRAM_ADD_0FILL("nvram")
+
+ MCFG_TIMER_ADD("scan_timer", balsente_interrupt_timer)
+ MCFG_TIMER_ADD("8253_0_timer", balsente_clock_counter_0_ff)
+ MCFG_TIMER_ADD("8253_1_timer", balsente_counter_callback)
+ MCFG_TIMER_ADD("8253_2_timer", balsente_counter_callback)
+
+ /* video hardware */
+ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
+
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
+ MCFG_SCREEN_RAW_PARAMS(BALSENTE_PIXEL_CLOCK, BALSENTE_HTOTAL, BALSENTE_HBEND, BALSENTE_HBSTART, BALSENTE_VTOTAL, BALSENTE_VBEND, BALSENTE_VBSTART)
+ MCFG_SCREEN_UPDATE(balsente)
+
+ MCFG_PALETTE_LENGTH(1024)
+
+ MCFG_VIDEO_START(balsente)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_SOUND_ADD("cem1", CEM3394, 0)
+ MCFG_SOUND_CONFIG(cem_interface)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
+
+ MCFG_SOUND_ADD("cem2", CEM3394, 0)
+ MCFG_SOUND_CONFIG(cem_interface)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
+
+ MCFG_SOUND_ADD("cem3", CEM3394, 0)
+ MCFG_SOUND_CONFIG(cem_interface)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
+
+ MCFG_SOUND_ADD("cem4", CEM3394, 0)
+ MCFG_SOUND_CONFIG(cem_interface)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
+
+ MCFG_SOUND_ADD("cem5", CEM3394, 0)
+ MCFG_SOUND_CONFIG(cem_interface)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
+
+ MCFG_SOUND_ADD("cem6", CEM3394, 0)
+ MCFG_SOUND_CONFIG(cem_interface)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
+MACHINE_CONFIG_END
+
+
+static MACHINE_CONFIG_DERIVED( shrike, balsente )
+
+ /* basic machine hardware */
+
+ MCFG_CPU_ADD("68k", M68000, 8000000)
+ MCFG_CPU_PROGRAM_MAP(shrike68k_map)
+
+ MCFG_QUANTUM_TIME(attotime::from_hz(6000))
+MACHINE_CONFIG_END
+
+
+
+/*************************************
+ *
+ * ROM definitions
+ *
+ *************************************/
+
+#define MOTHERBOARD_PALS \
+ ROM_REGION( 0x00001, "motherbrd_pals", 0) /* Motherboard PAL's */ \
+ ROM_LOAD( "u01508001100b.u20f", 0x00000, 0x00001, NO_DUMP ) /* PAL16L8 */
+
+#define SOUNDBOARD_ROMS \
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for Z80 */ \
+ ROM_LOAD( "8002-10 9-25-84.5", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) )
+
+ROM_START( sentetst )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "sdiagef.bin", 0x2e000, 0x2000, CRC(2a39fc53) SHA1(04ea68bfad455cc928e57390eba5597c38bbab69) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "sdiaggr0.bin", 0x00000, 0x2000, CRC(5e0ff62a) SHA1(3f0ebebb2f58530af7fac57a4780dfb37ef1ee1d) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( cshift )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "cs-ab0.bin", 0x10000, 0x2000, CRC(d2069e75) SHA1(17d5719e6e1976cebb332932cf3e900a88136928) )
+ ROM_LOAD( "cs-ab1.bin", 0x12000, 0x2000, CRC(198f25a8) SHA1(5ca25fe57e94d8362896c903196e0080efd35ef5) )
+ ROM_LOAD( "cs-ab2.bin", 0x14000, 0x2000, CRC(2e2b2b82) SHA1(a540f3ff2a0a10b19aafe1528b7dcaeae9b7393d) )
+ ROM_LOAD( "cs-ab3.bin", 0x16000, 0x2000, CRC(b97fc520) SHA1(f45c5ec93eab1bfd1f9533df7ac624c2e99f6573) )
+ ROM_LOAD( "cs-ab4.bin", 0x18000, 0x2000, CRC(b4f0d673) SHA1(cb97dc8836c497fa03a862227340f8c351986a39) )
+ ROM_LOAD( "cs-ab5.bin", 0x1a000, 0x2000, CRC(b1f8e589) SHA1(d837beff063ed987571c5af6130f2c7d637d7c39) )
+ ROM_LOAD( "cs-cd.bin", 0x2c000, 0x2000, CRC(f555a0b2) SHA1(49668f8363fdcec4686ec80bf2e99003cd11e2c1) )
+ ROM_LOAD( "cs-ef.bin", 0x2e000, 0x2000, CRC(368b1ce3) SHA1(8003ef99adcb26feb42e1b0945b1185e438582b2) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "cs-gr0.bin", 0x00000, 0x2000, CRC(67f9d3b3) SHA1(4f3f80e4272b20611206636b6ccb627087efd0c3) )
+ ROM_LOAD( "cs-gr1.bin", 0x02000, 0x2000, CRC(78973d50) SHA1(de7891ef47c277d733d9b4810d68621718644655) )
+ ROM_LOAD( "cs-gr2.bin", 0x04000, 0x2000, CRC(1784f939) SHA1(ff7f43451580e3b314c24b00a66765c0b395ddf6) )
+ ROM_LOAD( "cs-gr3.bin", 0x06000, 0x2000, CRC(b43916a2) SHA1(8d42fb6ae7cf8b2d94eb0c14e00bb115f8ef01b4) )
+ ROM_LOAD( "cs-gr4.bin", 0x08000, 0x2000, CRC(a94cd35b) SHA1(0ca0497a1b055ff1ae6b7bc36ae45749dff50caa) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( gghost )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "ggh-ab0.bin", 0x10000, 0x2000, CRC(ed0fdeac) SHA1(294cee47c0541c58d4d766388c281ed30b8f5426) )
+ ROM_LOAD( "ggh-ab1.bin", 0x12000, 0x2000, CRC(5bfbae58) SHA1(65c795354223cd5e2474ad9e779b77f58ed5b896) )
+ ROM_LOAD( "ggh-ab2.bin", 0x14000, 0x2000, CRC(f0baf921) SHA1(4b7ee06838dcdb68ddec51f5eafab53ff3f25bfe) )
+ ROM_LOAD( "ggh-ab3.bin", 0x16000, 0x2000, CRC(ed0fdeac) SHA1(294cee47c0541c58d4d766388c281ed30b8f5426) )
+ ROM_LOAD( "ggh-ab4.bin", 0x18000, 0x2000, CRC(5bfbae58) SHA1(65c795354223cd5e2474ad9e779b77f58ed5b896) )
+ ROM_LOAD( "ggh-ab5.bin", 0x1a000, 0x2000, CRC(f0baf921) SHA1(4b7ee06838dcdb68ddec51f5eafab53ff3f25bfe) )
+ ROM_LOAD( "ggh-cd.bin", 0x2c000, 0x2000, CRC(d3d75f84) SHA1(f19f99ea05ad5b7e4b0485e80d7b6a329b8ef4d8) )
+ ROM_LOAD( "ggh-ef.bin", 0x2e000, 0x2000, CRC(a02b4243) SHA1(f242fc017c9ae1997409825c34e8f5c6e6a0615e) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "ggh-gr0.bin", 0x00000, 0x2000, CRC(03515526) SHA1(bceb7c8c3aa4c39b6cf1b976c5765c920399fe31) )
+ ROM_LOAD( "ggh-gr1.bin", 0x02000, 0x2000, CRC(b4293435) SHA1(5e2b96c19c4f5c63a5afa2de504d29fe64a4c908) )
+ ROM_LOAD( "ggh-gr2.bin", 0x04000, 0x2000, CRC(ece0cb97) SHA1(13bfb38de30992b9597c9d0f87f7b2a5c061ba51) )
+ ROM_LOAD( "ggh-gr3.bin", 0x06000, 0x2000, CRC(dd7e25d0) SHA1(cc6402835d1b46d160869ba1d1cad54f24d3fe86) )
+ ROM_LOAD( "ggh-gr4.bin", 0x08000, 0x2000, CRC(b4293435) SHA1(5e2b96c19c4f5c63a5afa2de504d29fe64a4c908) )
+ ROM_LOAD( "ggh-gr5.bin", 0x0a000, 0x2000, CRC(d3da0093) SHA1(7474901b089ea62abad0a2f657fd8c4a1be09bf0) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( hattrick )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "rom-ab0.u9a", 0x10000, 0x2000, CRC(f25c1b99) SHA1(43b2334be7cfb8091eea963e10547295362372d3) ) /* The Hat Trick cartridge does not have any PAL's */
+ ROM_LOAD( "rom-ab1.u8a", 0x12000, 0x2000, CRC(c1df3d1f) SHA1(754f537d12efe8891638fd11a2ee8a5b234fb079) )
+ ROM_LOAD( "rom-ab2.u7a", 0x14000, 0x2000, CRC(f6c41257) SHA1(05f5e71d08241c559da3bfc286c76cbb22710586) )
+ ROM_LOAD( "rom-cd.u3a", 0x2c000, 0x2000, CRC(fc44f36c) SHA1(227d0c93c579d743b615b1fa6da56128e8202e51) )
+ ROM_LOAD( "rom-ef.u2a", 0x2e000, 0x2000, CRC(d8f910fb) SHA1(b74a305dd848c7bf574e4b0aa32147b8d5c89e9e) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "rom-gr0.u9b", 0x00000, 0x2000, CRC(9f41baba) SHA1(fa817a8e4d2f7b86a2294132e3991f7b6d8cb11a) )
+ ROM_LOAD( "rom-gr1.u8b", 0x02000, 0x2000, CRC(951f08c9) SHA1(059a575dd35cd8e822e12ac2606b47b6272bbb41) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( otwalls )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "otw-ab0.bin", 0x10000, 0x2000, CRC(474441c7) SHA1(16fb5be9f94e072d4f3003abcc9dcf6d7af2359a) )
+ ROM_LOAD( "otw-ab1.bin", 0x12000, 0x2000, CRC(2e9e9411) SHA1(7dfd8dafa34e4d22fa0c5e472e3e98a1c0969f43) )
+ ROM_LOAD( "otw-ab2.bin", 0x14000, 0x2000, CRC(ba092128) SHA1(a38305c3ea9c8bf3596c18829655049f9468166e) )
+ ROM_LOAD( "otw-ab3.bin", 0x16000, 0x2000, CRC(74bc479d) SHA1(905dab90aa11f3f4359185bb67d8c2bdc957516d) )
+ ROM_LOAD( "otw-ab4.bin", 0x18000, 0x2000, CRC(f5f67619) SHA1(e3eb1434dff987d27056ae0749046f32f280160b) )
+ ROM_LOAD( "otw-ab5.bin", 0x1a000, 0x2000, CRC(f5f67619) SHA1(e3eb1434dff987d27056ae0749046f32f280160b) )
+ ROM_LOAD( "otw-cd.bin", 0x2c000, 0x2000, CRC(8e2d15ab) SHA1(8043fdf637de7752e8d42554ebad2e155a6f5939) )
+ ROM_LOAD( "otw-ef.bin", 0x2e000, 0x2000, CRC(57eab299) SHA1(475d800c03d6b2786bd23861d61dc113b837a585) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "otw-gr0.bin", 0x00000, 0x2000, CRC(210bad3c) SHA1(703769c6a569b17f2ad18441da7de0237be4721e) )
+ ROM_LOAD( "otw-gr1.bin", 0x02000, 0x2000, CRC(13e6aaa5) SHA1(ac8b9d16d2159d4a578d8fa988b59c058c5efc88) )
+ ROM_LOAD( "otw-gr2.bin", 0x04000, 0x2000, CRC(5cfefee5) SHA1(9aa74f0e1116098f43a4f8b4957db8923ddaf780) )
+ ROM_LOAD( "otw-gr3.bin", 0x06000, 0x2000, CRC(6b17e4a9) SHA1(f9c57da863d613a456ee056569a87a9552ad3874) )
+ ROM_LOAD( "otw-gr4.bin", 0x08000, 0x2000, CRC(15985c8c) SHA1(94f21c348bfbe4db6d0cfa5b5e35d2df4b8f936d) )
+ ROM_LOAD( "otw-gr5.bin", 0x0a000, 0x2000, CRC(448f7e3c) SHA1(505724e90f17b05ccf0137dbed0d33e39db1d5ab) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( snakepit )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "spit-ab0.bin", 0x10000, 0x2000, CRC(5aa86081) SHA1(e65e256661b13a0631398e115dd02fce281bafa4) )
+ ROM_LOAD( "spit-ab1.bin", 0x12000, 0x2000, CRC(588228b8) SHA1(b64032a4fd1f52179d38e2073380bba6ec321302) )
+ ROM_LOAD( "spit-ab2.bin", 0x14000, 0x2000, CRC(60173ab6) SHA1(45b27492023771a53ea5857592a2a113746a72b6) )
+ ROM_LOAD( "spit-ab3.bin", 0x16000, 0x2000, CRC(56cb51a8) SHA1(fceb2fbae91bbab0b25410072805449ef531f360) )
+ ROM_LOAD( "spit-ab4.bin", 0x18000, 0x2000, CRC(40ba61e0) SHA1(91b06d116633c5261f3aa97d4e65bd61bae3c0eb) )
+ ROM_LOAD( "spit-ab5.bin", 0x1a000, 0x2000, CRC(2a1d9d8f) SHA1(3364f4bc507576323560bf14fc99036c47d0297c) )
+ ROM_LOAD( "spit-cd.bin", 0x2c000, 0x2000, CRC(54095cbb) SHA1(a43b78b2876359a29ecb2f169c876a0026375ea2) )
+ ROM_LOAD( "spit-ef.bin", 0x2e000, 0x2000, CRC(5f836a66) SHA1(cc3c11003f9e49cac10c0296ab6d156e5677d0f8) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "spit-gr0.bin", 0x00000, 0x2000, CRC(f77fd85d) SHA1(f8e69d1d0030412d6129a8ebfee40b3f1f189d8d) )
+ ROM_LOAD( "spit-gr1.bin", 0x02000, 0x2000, CRC(3ad10334) SHA1(1d82a7948fbee627c80a9e03ade90e57972a6a31) )
+ ROM_LOAD( "spit-gr2.bin", 0x04000, 0x2000, CRC(24887703) SHA1(089f077400c9a3e3f5b43e8aa60b41160e296d52) )
+ ROM_LOAD( "spit-gr3.bin", 0x06000, 0x2000, CRC(c6703ec2) SHA1(0f5d7c17ee508f8fea316b7f92cdd7cc174b155f) )
+ ROM_LOAD( "spit-gr4.bin", 0x08000, 0x2000, CRC(b4293435) SHA1(5e2b96c19c4f5c63a5afa2de504d29fe64a4c908) )
+ ROM_LOAD( "spit-gr5.bin", 0x0a000, 0x2000, CRC(dc27c970) SHA1(291ef10a8c330ef8e47622246b6301d2e5171df7) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( snakjack )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "rom-ab0.u9a", 0x10000, 0x2000, CRC(da2dd119) SHA1(85ae452b137e69e051fa66648f295d180339794e) )
+ ROM_LOAD( "rom-ab1.u8a", 0x12000, 0x2000, CRC(657ddf26) SHA1(48591a6b0c30d576f0e08dd54c95cbda76b5dfbd) )
+ ROM_LOAD( "rom-ab2.u7a", 0x14000, 0x2000, CRC(15333dcf) SHA1(13546bd058a10513fe4cbe3a3fa268b7c38b5993) )
+ ROM_LOAD( "rom-ab3.u6a", 0x16000, 0x2000, CRC(57671f6f) SHA1(49e76e03d828fed28e7e0608985172af20084f7f) )
+ ROM_LOAD( "rom-ab4.u5a", 0x18000, 0x2000, CRC(c16c5dc0) SHA1(93e36758f4e5bb8dac29f9a2bc3ac5f9589e8c9a) )
+ ROM_LOAD( "rom-ab5.u4a", 0x1a000, 0x2000, CRC(d7019747) SHA1(c8b1a6ea463b5932bc9ed2c91faea2e2639d7934) )
+ ROM_LOAD( "rom-cd.u3a", 0x2c000, 0x2000, CRC(7b44ca4c) SHA1(8697055da489fcf0244dc94fe5393418a8003bf7) )
+ ROM_LOAD( "rom-ef.u1a", 0x2e000, 0x2000, CRC(f5309b38) SHA1(864f759dc6822b548742140b7ea2ea2aba43beba) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "rom-gr0.u9b", 0x00000, 0x2000, CRC(3e64b5d5) SHA1(ab681eabb4f8e5b946c288ffb8df0624c0473d82) )
+ ROM_LOAD( "rom-gr1.u8b", 0x02000, 0x2000, CRC(b3b8baee) SHA1(b37638784a3903f2dcd698104da75b4ab59e8257) )
+ ROM_LOAD( "rom-gr2.u7b", 0x04000, 0x2000, CRC(e9d89dac) SHA1(570809ec5f8a64f280e13cbf801664cb548997e9) )
+ ROM_LOAD( "rom-gr3.u6b", 0x06000, 0x2000, CRC(b6602be8) SHA1(c5bc95e0116fb2cf86a694561dc2c21612ba4434) )
+ ROM_LOAD( "rom-gr4.u5b", 0x08000, 0x2000, CRC(3fbfa686) SHA1(6c137d177c7aa2701497ac3ac922fdb8cd9f52b3) )
+ ROM_LOAD( "rom-gr5.u4b", 0x0a000, 0x2000, CRC(345f94fb) SHA1(0af24f4e1a797efe5272f64b8a34483fe6002436) )
+
+ /* From a picture in an eBay auction the board appears to have a PAL that needs to be dumped. */
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( stocker )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "ab01.u8a", 0x10000, 0x4000, CRC(6a914d99) SHA1(0df23fcdcb3743d84ce0363424b7c5dd249c6dcf) )
+ ROM_LOAD( "ab23.u7a", 0x14000, 0x4000, CRC(48e432c2) SHA1(af87009089a3e83fab5c935696edbbf2a15215f9) )
+ ROM_LOAD( "cd6ef.u1a",0x2c000, 0x4000, CRC(83e6e5c9) SHA1(f0e38a95cb2ea385a587f330c48fc787db0cc65e) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "gr01.u6b", 0x00000, 0x4000, CRC(2e66ac35) SHA1(c65b4991a88f8359c85f904f66a7fe73330aface) )
+ ROM_LOAD( "gr23.u5b", 0x04000, 0x4000, CRC(6fa43631) SHA1(7000907b914bf851b09811e3736af8c02e1aeda9) )
+
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */
+
+ MOTHERBOARD_PALS
+ROM_END
+
+// the old dump for reference, it had a different cart layout.
+#if 0
+ROM_START( stocker )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "stkr-ab0.bin", 0x10000, 0x2000, CRC(784a00ad) SHA1(33e76be44207bc24dbb9c2f04204df22ba5154ff) )
+ ROM_LOAD( "stkr-ab1.bin", 0x12000, 0x2000, CRC(cdae01dc) SHA1(7c2956acae639fd2f2cf061d1c32ae9edabe9270) )
+ ROM_LOAD( "stkr-ab2.bin", 0x14000, 0x2000, CRC(18527d57) SHA1(cbb85f9e0b6169f4c2e03dc54b4937043535fc42) )
+ ROM_LOAD( "stkr-ab3.bin", 0x16000, 0x2000, CRC(028f6c06) SHA1(f1d30efcd7e967b0390f441848bb655111fdde65) )
+ ROM_LOAD( "stkr-cd.bin", 0x2c000, 0x2000, BAD_DUMP CRC(53dbc4e5) SHA1(e389978b5472174681fa180c6a2edf49903a6514) ) // 1 bad byte
+ ROM_LOAD( "stkr-ef.bin", 0x2e000, 0x2000, BAD_DUMP CRC(cdcf46bc) SHA1(8b1e801dab1efed002d484135264998d255dc041) ) // 1 bad byte
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for Z80 */
+ ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "stkr-gr0.bin", 0x00000, 0x2000, CRC(76d5694c) SHA1(e2b155fc7178886eb37a532d961b99b8c864397c) )
+ ROM_LOAD( "stkr-gr1.bin", 0x02000, 0x2000, CRC(4a5cc00b) SHA1(9ce46ed94e715a5997998aee6377baf2869ab3a6) )
+ ROM_LOAD( "stkr-gr2.bin", 0x04000, 0x2000, CRC(70002382) SHA1(c151ad3df2714a2f9f8b047894e7585ca16bd29e) )
+ ROM_LOAD( "stkr-gr3.bin", 0x06000, 0x2000, CRC(68c862d8) SHA1(302ce10e23d17af9aa7fa13d18c602656a262eaa) ) // the data here also differs from the good set, although the change is meaningless (data at the end blanked out here)
+
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */
+
+ MOTHERBOARD_PALS
+ROM_END
+#endif
+
+ROM_START( triviag1 )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "tpg1-ab0.bin", 0x10000, 0x2000, CRC(79fd3ac3) SHA1(52db0ba445f9a953f6ceb43c3d173b73c71af192) )
+ ROM_LOAD( "tpg1-ab1.bin", 0x12000, 0x2000, CRC(0ff677e9) SHA1(14fdc1ee87893ea91eea40949aeac5381c569bdd) )
+ ROM_LOAD( "tpg1-ab2.bin", 0x14000, 0x2000, CRC(3b4d03e7) SHA1(b5bb541daf59b2a62b17a10afa37bfae50563393) )
+ ROM_LOAD( "tpg1-ab3.bin", 0x16000, 0x2000, CRC(2c6c0651) SHA1(9ff5dcc4a54df653ae43d503e153f4e48ea4735b) )
+ ROM_LOAD( "tpg1-ab4.bin", 0x18000, 0x2000, CRC(397529e7) SHA1(af1898dc35545981513ec251eed162b329709692) )
+ ROM_LOAD( "tpg1-ab5.bin", 0x1a000, 0x2000, CRC(499773a4) SHA1(c0c0ad2a63a9dbb7585cab7e21162bbc58fec0d8) )
+ ROM_LOAD( "tpg1-cd.bin", 0x2c000, 0x2000, CRC(35c9b9c2) SHA1(aac57022098656dac99bf9ceeaa2bf9a3d139986) )
+ ROM_LOAD( "tpg1-ef.bin", 0x2e000, 0x2000, CRC(64878342) SHA1(dd93d64b3fe351a9d2bd4c473ecefde58f0b0041) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "tpg1-gr0.bin", 0x00000, 0x2000, CRC(20c9217a) SHA1(79ef058633149da8d2835405954ac31c661bf660) )
+ ROM_LOAD( "tpg1-gr1.bin", 0x02000, 0x2000, CRC(d7f44504) SHA1(804dbc4c006b20bdb01bdf02754e0d98f6fbacbe) )
+ ROM_LOAD( "tpg1-gr2.bin", 0x04000, 0x2000, CRC(4e59a15d) SHA1(c584bae32e2e5d8b5a48c44a31272b4f9dadfcd1) )
+ ROM_LOAD( "tpg1-gr3.bin", 0x06000, 0x2000, CRC(323a8640) SHA1(7ec6f8f9bcfa5de442dce4f6e81e697da34dbab8) )
+ ROM_LOAD( "tpg1-gr4.bin", 0x08000, 0x2000, CRC(673acf42) SHA1(7b36a86441732ba14576f9c1dd14fe0da575d4bf) )
+ ROM_LOAD( "tpg1-gr5.bin", 0x0a000, 0x2000, CRC(067bfd66) SHA1(32f5973f2f0aed67c8f9b5886f52b9dc516a611e) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+ROM_START( trivia12 )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "ab0.u9a", 0x10000, 0x2000, CRC(41ca9a81) SHA1(127beee924d4213de874f7def9875fd3a26c6b5f) )
+ ROM_LOAD( "ab1.u8a", 0x12000, 0x2000, CRC(b3b48a3d) SHA1(e9554887430014116ff8e5e3d0ef5678d13f224c) )
+ ROM_LOAD( "ab2.u7a", 0x14000, 0x2000, CRC(ab652ce9) SHA1(06f47c274b94f046a59a1dc432c55ee8f450a246) )
+ ROM_LOAD( "ab3.u6a", 0x16000, 0x2000, CRC(4b382c77) SHA1(4a14166c90542ecec3677d9098a26723be6a26e2) )
+ ROM_LOAD( "ab4.u5a", 0x18000, 0x2000, CRC(9b4a8c4e) SHA1(c0354862b428ad8a5b1d229cadfcfc7e688b06c1) )
+ ROM_LOAD( "ab5.u4a", 0x1a000, 0x2000, CRC(499773a4) SHA1(c0c0ad2a63a9dbb7585cab7e21162bbc58fec0d8) )
+ ROM_LOAD( "cd.u3a", 0x2c000, 0x2000, CRC(12d870ba) SHA1(b86a8cbf8037df78437056f5ff57e7b8b5e4c94e) )
+ ROM_LOAD( "ef.u2a", 0x2e000, 0x2000, CRC(d902ee28) SHA1(18e3c96e1ac50f847d1b9f4f868f19e074d147ff) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "gr0.u9b", 0x00000, 0x2000, CRC(20c9217a) SHA1(79ef058633149da8d2835405954ac31c661bf660) )
+ ROM_LOAD( "gr1.u8b", 0x02000, 0x2000, CRC(d7f44504) SHA1(804dbc4c006b20bdb01bdf02754e0d98f6fbacbe) )
+ ROM_LOAD( "gr2.u7b", 0x04000, 0x2000, CRC(4e59a15d) SHA1(c584bae32e2e5d8b5a48c44a31272b4f9dadfcd1) )
+ ROM_LOAD( "gr3.u6b", 0x06000, 0x2000, CRC(323a8640) SHA1(7ec6f8f9bcfa5de442dce4f6e81e697da34dbab8) )
+ ROM_LOAD( "gr4.u5b", 0x08000, 0x2000, CRC(673acf42) SHA1(7b36a86441732ba14576f9c1dd14fe0da575d4bf) )
+ ROM_LOAD( "gr5.u4b", 0x0a000, 0x2000, CRC(d17d5431) SHA1(b92741f6eda01f2e360e73a9f4df728fc44d7e1b) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( triviag2 )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "ab01.bin", 0x10000, 0x4000, CRC(4fca20c5) SHA1(595b32ff035036cafbf49d75aa170f39e9f52b38) )
+ ROM_LOAD( "ab23.bin", 0x14000, 0x4000, CRC(6cf2ddeb) SHA1(0d6667babd9ab70820cf165900d90003f0893be7) )
+ ROM_LOAD( "ab45.bin", 0x18000, 0x4000, CRC(a7ff789c) SHA1(a3421ae46dadd6f514cfc514ff07dfcca2cb1478) )
+ ROM_LOAD( "ab67.bin", 0x1c000, 0x4000, CRC(cc5c68ef) SHA1(38713796e07f84c9a1b21d8c66f76e620132d77e) )
+ ROM_LOAD( "cd45.bin", 0x28000, 0x4000, CRC(fc9c752a) SHA1(239507fb5d75e86aca295978aab1dd4514d8d761) )
+ ROM_LOAD( "cd6ef.bin", 0x2c000, 0x4000, CRC(23b56fb8) SHA1(9ac726de69e4b374886a3542829745f7477d7556) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "gr01.bin", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) )
+ ROM_LOAD( "gr23.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) )
+ ROM_LOAD( "gr45.bin", 0x08000, 0x4000, CRC(1e870293) SHA1(32149c9c8047854f2b2ad8844c4bd00a8ded588e) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( triviasp )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "allsport.8a", 0x10000, 0x4000, CRC(54b7ff31) SHA1(1bdf9c9eb1a0fb4c1013680372d289882abf4b47) )
+ ROM_LOAD( "allsport.7a", 0x14000, 0x4000, CRC(59fae9d2) SHA1(a555f0679c59bf7c9dad0ecb9656a2f8faf39902) )
+ ROM_LOAD( "allsport.6a", 0x18000, 0x4000, CRC(237b6b95) SHA1(9d2937c1ecea9d92775f380d40f465f68c44fe06) )
+ ROM_LOAD( "allsport.5a", 0x1c000, 0x4000, CRC(b64d7f61) SHA1(25a7034b18a1623209dc0d06bdb4490243d43261) )
+ ROM_LOAD( "allsport.3a", 0x28000, 0x4000, CRC(e45d09d6) SHA1(8bde18d25f8bd1056e42672d428473be23eab260) )
+ ROM_LOAD( "allsport.1a", 0x2c000, 0x4000, CRC(8bb3e831) SHA1(ecc8fb0f2143e3ea03bb52773cc0a81d4dcc742d) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "gr01.bin", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) )
+ ROM_LOAD( "gr23.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) )
+ ROM_LOAD( "allsport.3b", 0x08000, 0x4000, CRC(7415a7fc) SHA1(93d832434f359ce7b02aef276c89456b16438979) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( triviayp )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "ab01.bin", 0x10000, 0x4000, CRC(97d35a85) SHA1(3ee8400fc3a2bf8a2f6374ffc34a4d295ee13bab) )
+ ROM_LOAD( "ab23.bin", 0x14000, 0x4000, CRC(2ff67c70) SHA1(c45b5fde4ec979322c9e251e66183632552d35bd) )
+ ROM_LOAD( "ab45.bin", 0x18000, 0x4000, CRC(511a0fab) SHA1(a2fefe2b86028c7e8c15d6a737509b7dc30430cd) )
+ ROM_LOAD( "ab67.bin", 0x1c000, 0x4000, CRC(df99d00c) SHA1(7eba6b85e2d9a06635e97d12123fd2a17368e6bc) )
+ ROM_LOAD( "cd45.bin", 0x28000, 0x4000, CRC(ac45809e) SHA1(1151c4e55f21a7e2eb8e163ac782b4449af84cdc) )
+ ROM_LOAD( "cd6ef.bin", 0x2c000, 0x4000, CRC(a008059f) SHA1(45e4cfc259e801a189ec19fdc58135dbbbe130ea) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "gr01.bin", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) )
+ ROM_LOAD( "gr23.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) )
+ ROM_LOAD( "gr45.bin", 0x08000, 0x4000, CRC(1242033e) SHA1(1a3fe186bb261e2c7d9fbbb2a3103b39bf029b35) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( triviabb )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "ab01.bin", 0x10000, 0x4000, CRC(1b7c439d) SHA1(8b3020dcb375b2f2e5e975a8067df6504aa8691e) )
+ ROM_LOAD( "ab23.bin", 0x14000, 0x4000, CRC(e4f1e704) SHA1(e5135134b54e1e2e95c5bfe6e5f0e2dd280db69d) )
+ ROM_LOAD( "ab45.bin", 0x18000, 0x4000, CRC(daa2d8bc) SHA1(feae215877ba42ab33182dfd74083f1d48443d8c) )
+ ROM_LOAD( "ab67.bin", 0x1c000, 0x4000, CRC(3622c4f1) SHA1(d180bb1c4a73d95c369cc507697421fb38a92d2c) )
+ ROM_LOAD( "cd45.bin", 0x28000, 0x4000, CRC(07fd88ff) SHA1(c3168ecf6562e09790c4f18cdd91c7a347223323) )
+ ROM_LOAD( "cd6ef.bin", 0x2c000, 0x4000, CRC(2d03f241) SHA1(986ca6ea20c306e83ae88acc2d6837c7ed5fe351) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "gr01.bin", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) )
+ ROM_LOAD( "gr23.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) )
+ ROM_LOAD( "gr45.bin", 0x08000, 0x4000, CRC(92fb6fb1) SHA1(1a322bd3cfacdf82d4fcc4b4d47f78a701411919) )
+
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */
+
+ MOTHERBOARD_PALS
+ROM_END
+
+ROM_START( triviaes )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "tp_a2.bin", 0x10000, 0x04000, CRC(b4d69463) SHA1(8d6b2024600ab0a5d76d2b8ec53cf4c6c6618901) )
+ ROM_LOAD( "tp_a7.bin", 0x14000, 0x04000, CRC(d78bd4b6) SHA1(0542fc4ef2501c7649b9fd257340c4392a19d7ad) )
+ ROM_LOAD( "tp_a4.bin", 0x18000, 0x04000, CRC(0de9e14d) SHA1(3d5fdf8531cb10a41e3f604165fce682e7e019d5) )
+ ROM_LOAD( "tp_a5.bin", 0x1c000, 0x04000, CRC(e749adac) SHA1(426665249a57ba6f4a890808a1c84edeade149bb) )
+ ROM_LOAD( "tp_a8.bin", 0x20000, 0x04000, CRC(168ef5ed) SHA1(677a83dfcb12af7e13f00213e2eec48fa2fa63c8) )
+ ROM_LOAD( "tp_a1.bin", 0x24000, 0x04000, CRC(1f6ef37f) SHA1(c399404e05d817ffb361eb8ef274a86f07085940) )
+ ROM_LOAD( "tp_a6.bin", 0x28000, 0x04000, CRC(421c1a29) SHA1(3e0de8734a39fb887aff40e89cb0936d4cacf9a5) )
+ ROM_LOAD( "tp_a3.bin", 0x2c000, 0x04000, CRC(c6254f46) SHA1(47f3d05d0c31983ed1576f91fa193fe58e80bb60) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "tp_gr3.bin", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) )
+ ROM_LOAD( "tp_gr2.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) )
+ ROM_LOAD( "tp_gr1.bin", 0x08000, 0x4000, CRC(1242033e) SHA1(1a3fe186bb261e2c7d9fbbb2a3103b39bf029b35) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( gimeabrk )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "ab01.u8a", 0x10000, 0x4000, CRC(18cc53db) SHA1(3bb47c349b3ab7b81e3557e3b4877617fb549c9e) )
+ ROM_LOAD( "ab23.u7a", 0x14000, 0x4000, CRC(6bd4190a) SHA1(b6562b3575dc8265c01719cfbcb554b69bc1b37f) )
+ ROM_LOAD( "ab45.u6a", 0x18000, 0x4000, CRC(5dca4f33) SHA1(aa45d5a960491c85f332f22cffe61999fe3db826) )
+ ROM_LOAD( "cd6ef.u1a", 0x2c000, 0x4000, CRC(5e2b3510) SHA1(e3501b9bd73bc724aee0436700625bd2af94f72d) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "gr01.u6b", 0x00000, 0x4000, CRC(e3cdc476) SHA1(2f17c3f84767850d45192dfb507dd2716ecadc20) )
+ ROM_LOAD( "gr23.u5b", 0x04000, 0x4000, CRC(0555d9c0) SHA1(da0d1f207ad056b2d82a5ad6382372066883d161) )
+
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( minigolf )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "ab01.u8a", 0x10000, 0x4000, CRC(348f827f) SHA1(a013ef3068e14e0738bcfa4de26c0c2df4c0a7f6) )
+ ROM_LOAD( "ab23.u7a", 0x14000, 0x4000, CRC(19a6ff47) SHA1(70b6da3b4186e5b9463f2ea0fefefad21ec80637) )
+ ROM_LOAD( "ab45.u6a", 0x18000, 0x4000, CRC(925d76eb) SHA1(29d2d7b26d2e81817c4d135935dab70a5aa2d146) )
+ ROM_LOAD( "ab67.u5a", 0x1c000, 0x4000, CRC(6a311c9a) SHA1(b0409e5f4bd3bf898b8701561aac6dbbc28417bd) )
+ ROM_LOAD( "1a-ver2", 0x20000, 0x10000, CRC(60b6cd58) SHA1(f79bf2d1f6c4e63f666073c5ecb22604c1ab57d8) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "gr01.u6b", 0x00000, 0x4000, CRC(8e24d594) SHA1(d35329fb78f90ec478418917aa1ef06d0967e6f8) )
+ ROM_LOAD( "gr23.u5b", 0x04000, 0x4000, CRC(3bf355ef) SHA1(691df25b35b00e21ad09d17a21fe98a353aa3dda) )
+ ROM_LOAD( "gr45.u4b", 0x08000, 0x4000, CRC(8eb14921) SHA1(fda8b8f8e801360310f7cb1aa4c6aea1fa0a4b25) )
+
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( minigolf2 )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "ab01.u8a", 0x10000, 0x4000, CRC(348f827f) SHA1(a013ef3068e14e0738bcfa4de26c0c2df4c0a7f6) ) /* Labeled as MINI GOLF UR, then name (like AB01) & dated 11/25/85 */
+ ROM_LOAD( "ab23.u7a", 0x14000, 0x4000, CRC(19a6ff47) SHA1(70b6da3b4186e5b9463f2ea0fefefad21ec80637) )
+ ROM_LOAD( "ab45.u6a", 0x18000, 0x4000, CRC(925d76eb) SHA1(29d2d7b26d2e81817c4d135935dab70a5aa2d146) )
+ ROM_LOAD( "ab67.u5a", 0x1c000, 0x4000, CRC(6a311c9a) SHA1(b0409e5f4bd3bf898b8701561aac6dbbc28417bd) )
+ ROM_LOAD( "cd23.u3a", 0x24000, 0x4000, CRC(52279801) SHA1(d8de92c296d5c91db3bea7a0093260158961036e) )
+ ROM_LOAD( "cd6ef.u1a", 0x2c000, 0x4000, CRC(34c64f4c) SHA1(ce55f5f6ebddcacf20cb78fb738b5f569b531b61) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "gr01.u6b", 0x00000, 0x4000, CRC(8e24d594) SHA1(d35329fb78f90ec478418917aa1ef06d0967e6f8) )
+ ROM_LOAD( "gr23.u5b", 0x04000, 0x4000, CRC(3bf355ef) SHA1(691df25b35b00e21ad09d17a21fe98a353aa3dda) )
+ ROM_LOAD( "gr45.u4b", 0x08000, 0x4000, CRC(8eb14921) SHA1(fda8b8f8e801360310f7cb1aa4c6aea1fa0a4b25) )
+
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( toggle )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "tgle-ab0.bin", 0x10000, 0x2000, CRC(8c7b7fad) SHA1(13eaf5b3727ff8b7ce2cfbab99541ca1e538aeba) )
+ ROM_LOAD( "tgle-ab1.bin", 0x12000, 0x2000, CRC(771e5434) SHA1(b1bcefc81054c81a22a91106c5bc99ef204cd009) )
+ ROM_LOAD( "tgle-ab2.bin", 0x14000, 0x2000, CRC(9b4baa3f) SHA1(5b0776d983ad40a0051939810bb854f014fea28b) )
+ ROM_LOAD( "tgle-ab3.bin", 0x16000, 0x2000, CRC(35308a41) SHA1(3846446b60897bfce8fcfd1561b5b74cdd19c36e) )
+ ROM_LOAD( "tgle-ab4.bin", 0x18000, 0x2000, CRC(baf5617b) SHA1(95c91fc81c975f522c1bd4f14bfb5f453801ffb6) )
+ ROM_LOAD( "tgle-ab5.bin", 0x1a000, 0x2000, CRC(88077dad) SHA1(51b36177a4bfbb62c91d87282bfc1ff791626d19) )
+ ROM_LOAD( "tgle-cd.bin", 0x2c000, 0x2000, CRC(0a2bb949) SHA1(350dc782fc21640794c6ecb502554cb693adbb7d) )
+ ROM_LOAD( "tgle-ef.bin", 0x2e000, 0x2000, CRC(3ec10804) SHA1(ae719081e8114ccc23c6b24c7fe904a11fbdd992) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "tgle-gr0.bin", 0x00000, 0x2000, CRC(0e0e5d0e) SHA1(363858ce08767f8a9b8eaec56405377cdd74b178) )
+ ROM_LOAD( "tgle-gr1.bin", 0x02000, 0x2000, CRC(3b141ad2) SHA1(72430fd616adbc72d86a5f10672572a31bed0b5d) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( nametune )
+ ROM_REGION( 0x70000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "nttab01.bin", 0x10000, 0x4000, CRC(f99054f1) SHA1(aaa3aae71f67be2df34b9682b1b4092a208fbf26) )
+ ROM_CONTINUE( 0x40000, 0x4000 )
+ ROM_LOAD( "nttab23.bin", 0x14000, 0x4000, CRC(f2b8f7fa) SHA1(b9f81a29b031af31118b77e77fc29e59f2059109) )
+ ROM_CONTINUE( 0x44000, 0x4000 )
+ ROM_LOAD( "nttab45.bin", 0x18000, 0x4000, CRC(89e1c769) SHA1(8e976182d99b93bb1cf6e306d134b66ba6fe6052) )
+ ROM_CONTINUE( 0x48000, 0x4000 )
+ ROM_LOAD( "nttab67.bin", 0x1c000, 0x4000, CRC(7e5572a1) SHA1(d957a495ad4100b857e163d7399528f62e8a39a7) )
+ ROM_CONTINUE( 0x4c000, 0x4000 )
+ ROM_LOAD( "nttcd01.bin", 0x20000, 0x4000, CRC(db9d6154) SHA1(8db17fda6c4113f5b791163fc9e289cf3f003a51) )
+ ROM_CONTINUE( 0x50000, 0x4000 )
+ ROM_LOAD( "nttcd23.bin", 0x24000, 0x4000, CRC(9d2e458f) SHA1(f08c2d7ba6be9745d13fc9dc7141ad101a8b747e) )
+ ROM_CONTINUE( 0x54000, 0x4000 )
+ ROM_LOAD( "nttcd45.bin", 0x28000, 0x4000, CRC(9a4b87aa) SHA1(ca82ddd4d8d40b35ba21cb9333e182b8a2e7f95e) )
+ ROM_CONTINUE( 0x58000, 0x4000 )
+ ROM_LOAD( "nttcd6ef.bin", 0x2c000, 0x4000, CRC(0459e6f8) SHA1(7dbdbfa8f2e9e3956af926f5f782b8d3c3334099) )
+ ROM_CONTINUE( 0x5c000, 0x4000 )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "nttgr0.bin", 0x00000, 0x8000, CRC(6b75bb4b) SHA1(e7131d112fb0b36985c5b6383700f55728a1c4fd) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+ROM_START( nametune2 )
+ ROM_REGION( 0x70000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "ab 01.u8a", 0x10000, 0x4000, CRC(4044891d) SHA1(4e1e7cb9846939e03b035b95ba04f62a78719bb2) )
+ ROM_CONTINUE( 0x40000, 0x4000 )
+ ROM_LOAD( "ab 23.u7a", 0x14000, 0x4000, CRC(df3454bc) SHA1(82faf87ca8974629e546b6854718908721b64ad0) )
+ ROM_CONTINUE( 0x44000, 0x4000 )
+ ROM_LOAD( "ab 45.u6a", 0x18000, 0x4000, CRC(fb4050b0) SHA1(a4d185e02aa08e886b90454f681f49de3de76f86) )
+ ROM_CONTINUE( 0x48000, 0x4000 )
+ ROM_LOAD( "ab 67.u5a", 0x1c000, 0x4000, CRC(276a28f4) SHA1(cceeb9c05ff72cfe86ab55555055cf8195d3ea16) )
+ ROM_CONTINUE( 0x4c000, 0x4000 )
+ ROM_LOAD( "cd 01.u4a", 0x20000, 0x4000, CRC(88bed028) SHA1(69c83ba07f34dd1d45f432e2ed6a50e2d13c4acb) )
+ ROM_CONTINUE( 0x50000, 0x4000 )
+ ROM_LOAD( "cd 23.u3a", 0x24000, 0x4000, CRC(38c63308) SHA1(1a26642cbe91ebc96444eb05fa1454c9175d370c) )
+ ROM_CONTINUE( 0x54000, 0x4000 )
+ ROM_LOAD( "cd 45.u2a", 0x28000, 0x4000, CRC(d19a3671) SHA1(b68010ad235175c73258f64f9a64b37b2a06efdc) )
+ ROM_CONTINUE( 0x58000, 0x4000 )
+ ROM_LOAD( "cd 6 ef.u1a", 0x2c000, 0x4000, CRC(e73c7cda) SHA1(c6f751923d0c7930db2e173f680674759f94c8bb) )
+ ROM_CONTINUE( 0x5c000, 0x4000 )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "gr 0.u3c", 0x00000, 0x8000, CRC(a0121b80) SHA1(ba38e9b738baac85fa33ae3751d02cb223fa3e65) )
+
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal16r8.u7c", 0x00000, 0x0001, NO_DUMP ) /* PAL16R8ANC */
+
+ MOTHERBOARD_PALS
+ROM_END
+
+/*
+ Night Stocker
+
+ This game utilizes the standard motherboard and sound board, but in addition it
+ also uses a Gun Interface Board (Board: 006-8032-01-0B) and video interface? board.
+*/
+
+ROM_START( nstocker )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "ab01.u8a", 0x10000, 0x4000, CRC(a635f973) SHA1(edb12469818a3114fb97d21e11c63eb37678a07b) )
+ ROM_LOAD( "ab23.u7a", 0x14000, 0x4000, CRC(223acbb2) SHA1(195ebd349722cce323616c81cc4e86f0a9c6fa13) )
+ ROM_LOAD( "ab45.u6a", 0x18000, 0x4000, CRC(27a728b5) SHA1(c72634112a04d58a695fb43bf30f44e3f7ba7de2) )
+ ROM_LOAD( "ab67.u5a", 0x1c000, 0x4000, CRC(2999cdf2) SHA1(a64ae04f264ad286a87069cfb176e7511df08e78) )
+ ROM_LOAD( "cd01.u4a", 0x20000, 0x4000, CRC(75e9b51a) SHA1(dbe575d37836245746ea85ffe85e8e6665ec37ea) )
+ ROM_LOAD( "cd23.u3a", 0x24000, 0x4000, CRC(0a32e0a5) SHA1(dedbe08aed483bae27e1a607334e24cdfcb2f851) )
+ ROM_LOAD( "cd45.u2a", 0x28000, 0x4000, CRC(9bb292fe) SHA1(6fc7abcc110c2cf7399d11a478cfdadb3439b6ab) )
+ ROM_LOAD( "cd6ef.u1a", 0x2c000, 0x4000, CRC(e77c1aea) SHA1(9e2e595530cb15c634a6052c773ff5d998c0c828) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "gr01.u4c", 0x00000, 0x4000, CRC(fd0c38be) SHA1(b9e12e76f44f2b2b3ca6a57c58f0cbb019b1971f) )
+ ROM_LOAD( "gr23.u3c", 0x04000, 0x4000, CRC(35d4433e) SHA1(399d04c2a29d993f77d0d5c2d62915081d4a85dd) )
+ ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(734b858a) SHA1(71763789807021938b840a88af34aad7f4751298) )
+ ROM_LOAD( "gr67.u1c", 0x0c000, 0x4000, CRC(3311f9c0) SHA1(63b185c761b258113c31cc269ce0b1462bf37f40) )
+
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */
+
+ ROM_REGION( 0x00004, "gun_io_bd_pals", 0) /* Gun I/O Board PALs */
+ ROM_LOAD( "pal16r8acn.u6", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */
+ ROM_LOAD( "pal16r8acn.u7", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */
+ ROM_LOAD( "pal16r8acn.u8", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */
+ ROM_LOAD( "pal16r8acn.u9", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */
+
+ MOTHERBOARD_PALS
+ROM_END
+
+ROM_START( nstocker2 )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "ab01.u8a", 0x10000, 0x4000, CRC(a635f973) SHA1(edb12469818a3114fb97d21e11c63eb37678a07b) )
+ ROM_LOAD( "ab23.u7a", 0x14000, 0x4000, CRC(223acbb2) SHA1(195ebd349722cce323616c81cc4e86f0a9c6fa13) )
+ ROM_LOAD( "ab45.u6a", 0x18000, 0x4000, CRC(27a728b5) SHA1(c72634112a04d58a695fb43bf30f44e3f7ba7de2) )
+ ROM_LOAD( "ab67.u5a", 0x1c000, 0x4000, CRC(2999cdf2) SHA1(a64ae04f264ad286a87069cfb176e7511df08e78) )
+ ROM_LOAD( "cd01.u4a", 0x20000, 0x4000, CRC(75e9b51a) SHA1(dbe575d37836245746ea85ffe85e8e6665ec37ea) )
+ ROM_LOAD( "cd23.u3a", 0x24000, 0x4000, CRC(0a32e0a5) SHA1(dedbe08aed483bae27e1a607334e24cdfcb2f851) )
+ ROM_LOAD( "cd45.u2a", 0x28000, 0x4000, CRC(9bb292fe) SHA1(6fc7abcc110c2cf7399d11a478cfdadb3439b6ab) )
+ ROM_LOAD( "cd6ef.u1a", 0x2c000, 0x4000, CRC(c77d2302) SHA1(2b0956a7d6bdff5e4f77084149a9528fb07154dc) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "gr01.u4c", 0x00000, 0x4000, CRC(fd0c38be) SHA1(b9e12e76f44f2b2b3ca6a57c58f0cbb019b1971f) )
+ ROM_LOAD( "gr23.u3c", 0x04000, 0x4000, CRC(35d4433e) SHA1(399d04c2a29d993f77d0d5c2d62915081d4a85dd) )
+ ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(734b858a) SHA1(71763789807021938b840a88af34aad7f4751298) )
+ ROM_LOAD( "gr67.u1c", 0x0c000, 0x4000, CRC(3311f9c0) SHA1(63b185c761b258113c31cc269ce0b1462bf37f40) )
+
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */
+
+ ROM_REGION( 0x00004, "gun_io_bd_pals", 0) /* Gun I/O Board PALs */
+ ROM_LOAD( "pal16r8acn.u6", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */
+ ROM_LOAD( "pal16r8acn.u7", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */
+ ROM_LOAD( "pal16r8acn.u8", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */
+ ROM_LOAD( "pal16r8acn.u9", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( sfootbal )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "sfbab01.bin", 0x10000, 0x4000, CRC(2a69803f) SHA1(ca86c9d079fbebae4c93c889d98a8573facc05da) )
+ ROM_LOAD( "sfbab23.bin", 0x14000, 0x4000, CRC(89f157c2) SHA1(59701b7770dce7ec01d0feb01d67450943e6cfbb) )
+ ROM_LOAD( "sfbab45.bin", 0x18000, 0x4000, CRC(91ad42c5) SHA1(0b6fc3ed3a633c825809668d49f209c130f3e978) )
+ ROM_LOAD( "sfbcd6ef.bin", 0x2c000, 0x4000, CRC(bf80bb1a) SHA1(2b70b36d946c36e3f354c7edfd3e34784ffce406) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "sfbgr01.bin", 0x00000, 0x4000, CRC(e3108d35) SHA1(05b7f1a1a18d7f72a3d3f6102cb8ab42421b7366) )
+ ROM_LOAD( "sfbgr23.bin", 0x04000, 0x4000, CRC(5c5af726) SHA1(04cdd476e6689d17273659fb1fe0ca642edbe5a8) )
+ ROM_LOAD( "sfbgr45.bin", 0x08000, 0x4000, CRC(e767251e) SHA1(3c05295317a673fb1de5924f27de276d2846d805) )
+ ROM_LOAD( "sfbgr67.bin", 0x0c000, 0x4000, CRC(42452a7a) SHA1(37479d6e9071ac775215a6815dbaf280b3c6a57f) )
+
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8ANC */
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( spiker )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "ab01.u8a", 0x10000, 0x4000, CRC(2d53d023) SHA1(01c1d2cd7d8be60c40527e9c1571b84388a39bd8) )
+ ROM_LOAD( "ab23.u7a", 0x14000, 0x4000, CRC(3be87edf) SHA1(0d4f1ff501d5d865abc3906f6b232ec04586d3dc) )
+ ROM_LOAD( "cd6ef.u1a", 0x2c000, 0x4000, CRC(f2c73ece) SHA1(4fc108823102fd17c5b7d9be1a0c76667788ba1a) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "gr01.u4c", 0x00000, 0x4000, CRC(0caa6e3e) SHA1(ce6765d44e444d24129ec99f04a41a866a32eee2) )
+ ROM_LOAD( "gr23.u3c", 0x04000, 0x4000, CRC(970c81f6) SHA1(f22189e172a795d115597feb48ccbc04be3859b9) )
+ ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(90ddd737) SHA1(8e1dde2f42e9bf755dedeef218745d1fc54faac7) )
+
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8ANC */
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( stompin )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "ab 01.u8a", 0x10000, 0x4000, CRC(46f428c6) SHA1(06c59d06ccc0bd7067e419f12781050ab4ac98c2) )
+ ROM_LOAD( "ab 23.u7a", 0x14000, 0x4000, CRC(0e13132f) SHA1(d572e5d170df99bb99db7d41ede881c24e5b8d1c) )
+ ROM_LOAD( "ab 45.u6a", 0x18000, 0x4000, CRC(6ed26069) SHA1(35f6b8cff54c35a1a0eeb9c23e446ade69d13375) )
+ ROM_LOAD( "ab 67.u5a", 0x1c000, 0x4000, CRC(7f63b516) SHA1(4ffd9dd579c8c4574f2f039b30761e901ee6dd5c) )
+ ROM_LOAD( "cd 23.u3a", 0x24000, 0x4000, CRC(52b29048) SHA1(e0873137201ad9b2e87a17dd68046e88dbeeb5e1) )
+ ROM_LOAD( "cd 6 ef.u1a", 0x2c000, 0x4000, CRC(b880961a) SHA1(11700af516517b7176a840fd5a8fd5ed0fb9bd6e) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "gr 01.u4c", 0x00000, 0x4000, CRC(14ffdd1e) SHA1(4528548c07789f9dca2cabd2c64ea1ff8f36a99e) )
+ ROM_LOAD( "gr 23.u3c", 0x04000, 0x4000, CRC(761abb80) SHA1(a1278e93a4fa66cc4d347954dd45121120da568d) )
+ ROM_LOAD( "gr 45.u2c", 0x08000, 0x4000, CRC(0d2cf2e6) SHA1(beccb1342127e79a845c4b6b20f20052097ebb98) )
+ ROM_LOAD( "gr 67.u2c", 0x0c000, 0x4000, CRC(2bab2784) SHA1(a4020fd8f5ca2fdb37efd37cbccf86cae0468eb0) )
+
+ ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */
+ ROM_LOAD( "pal16r8.u7c", 0x00000, 0x0001, NO_DUMP ) /* PAL16R8ACN */
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( rescraid )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "ab 1.a10", 0x10000, 0x8000, CRC(33a76b47) SHA1(72cefb3ae7d0ecfc099f9d09a26533dd7ca7c4f2) )
+ ROM_LOAD( "ab 12.a12", 0x18000, 0x8000, CRC(7c7a9f12) SHA1(2dbe1158d124ecd24aeb6e46079a8e08fda61208) )
+ ROM_LOAD( "cd 8.a16", 0x20000, 0x8000, CRC(90917a43) SHA1(3abd68d0c147ed792ace41f701c04bc225efede4) )
+ ROM_LOAD( "cd 12.a18", 0x28000, 0x8000, CRC(0450e9d7) SHA1(b5d0a79d1bac3596d241f80ac4e3e13c98d28709) )
+
+ SOUNDBOARD_ROMS
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "gr 0.a5", 0x00000, 0x8000, CRC(e0dfc133) SHA1(0b120b4410098d8db26b5819043d4fe7c426b948) )
+ ROM_LOAD( "gr 4.a7", 0x08000, 0x8000, CRC(952ade30) SHA1(f065368f645616d6d84be469ba45a9afa8788eda) )
+
+ ROM_REGION( 0x00001, "pals", 0) /* PAL's */
+ ROM_LOAD( "12 b.12b", 0x00000, 0x00001, NO_DUMP ) /* PAL16L8 */
+ ROM_LOAD( "11 b.11b", 0x00000, 0x00001, NO_DUMP ) /* PAL10L8 */
+ ROM_LOAD( "4 c.4c", 0x00000, 0x00001, NO_DUMP ) /* PAL16R6 */
+ ROM_LOAD( "10 d.10d", 0x00000, 0x00001, NO_DUMP ) /* PAL16R6 */
+ ROM_LOAD( "16 e.16e", 0x00000, 0x00001, NO_DUMP ) /* PAL16R6 */
+ ROM_LOAD( "15 e.15e", 0x00000, 0x00001, NO_DUMP ) /* PAL16R6 */
+ ROM_LOAD( "8 g.8g", 0x00000, 0x00001, NO_DUMP ) /* PAL16R6 */
+ROM_END
+
+
+ROM_START( rescraida )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "ab1-sa.a10", 0x10000, 0x8000, CRC(aa0a9f48) SHA1(b871573df0abdba20de78f655da846423191f0b4) )
+ ROM_LOAD( "ab12-sa.a12", 0x18000, 0x8000, CRC(16d4da86) SHA1(240cfe8c5c4c005da9b9f370a04ed32fc245ec64) )
+ ROM_LOAD( "cd8-sa.a16", 0x20000, 0x8000, CRC(9dfb50c2) SHA1(24280b48106cbcedeb6d7b10f951db906a123819) )
+ ROM_LOAD( "cd12-sa.a18", 0x28000, 0x8000, CRC(18c62613) SHA1(a55b4b948805bdd5d1e8c8ff803826a7bbfa383e) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for Z80 */
+ ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "gr0.a5", 0x00000, 0x8000, CRC(e0dfc133) SHA1(0b120b4410098d8db26b5819043d4fe7c426b948) )
+ ROM_LOAD( "gr4.a7", 0x08000, 0x8000, CRC(952ade30) SHA1(f065368f645616d6d84be469ba45a9afa8788eda) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( grudge )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "grudge.ab0", 0x10000, 0x8000, CRC(260965ca) SHA1(79eb5dc6605974ece3d5564f10c4598204907398) )
+ ROM_LOAD( "grudge.ab4", 0x18000, 0x8000, CRC(c6cd734d) SHA1(076546569e9c8ff40f96bd2cac014bcabc53099d) )
+ ROM_LOAD( "grudge.cd0", 0x20000, 0x8000, CRC(e51db1f2) SHA1(57fc0f1df358dd6ea982dcbe9c3f79b3f072be53) )
+ ROM_LOAD( "grudge.cd4", 0x28000, 0x8000, CRC(6b60e47e) SHA1(5a399942d4ef9b7349fffd07c07092b667cf6247) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for Z80 */
+ ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 ) /* up to 64k of sprites */
+ ROM_LOAD( "grudge.gr0", 0x00000, 0x8000, CRC(b9681f53) SHA1(bb0c516408f1769e018f0ec8707786d4d1e9ef7e) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+ROM_START( shrike )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */
+ ROM_LOAD( "savgu35.bin", 0x10000, 0x2000, CRC(dd2230a0) SHA1(72be0e07d76ee1f170ab457ae62db87111758697) )
+ ROM_LOAD( "savgu20.bin", 0x12000, 0x2000, CRC(3d140edc) SHA1(6c7e7dda7718e3f9644aad317da0b2277c2c1402) )
+ ROM_LOAD( "savgu34.bin", 0x14000, 0x2000, CRC(779eca9d) SHA1(6783a62885ed129f436471a1c4a93ad898eb7965) )
+ ROM_LOAD( "savgu19.bin", 0x16000, 0x2000, CRC(9ec89a80) SHA1(0a862d2a58adaf6726654a9a7b1b4b13e14d4d4b) )
+ ROM_LOAD( "savgu33.bin", 0x18000, 0x2000, CRC(20596f48) SHA1(11827b86d184231d3d4f82496a0bb9ac7ac874dc) )
+ ROM_LOAD( "savgu18.bin", 0x1a000, 0x2000, CRC(7abc3f14) SHA1(0a18be804927181c1bc86def595b22b3249fb6a0) )
+ ROM_LOAD( "savgu32.bin", 0x1c000, 0x2000, CRC(807f0a3b) SHA1(b2df2422751b32a25258134f571a5f874ebc3a09) )
+ ROM_LOAD( "savgu17.bin", 0x1e000, 0x2000, CRC(e0dbf6ad) SHA1(4618723116e2d83f9a775bb8b503faea995fda1b) )
+ ROM_LOAD( "savgu21.bin", 0x2c000, 0x2000, CRC(c22b93e1) SHA1(15d3925abb3e7e928925f5781f228d1bc0dfe31c) )
+ ROM_LOAD( "savgu36.bin", 0x2e000, 0x2000, CRC(28431c4a) SHA1(522df8224c559f51c36d2bc01c189b019fabc5eb) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for Z80 */
+ ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) )
+
+ ROM_REGION( 0x4000, "68k", 0 ) /* 16k for M68000 */
+ ROM_LOAD16_BYTE( "savgu22.bin", 0x00000, 0x2000, CRC(c7787162) SHA1(52d8d148206c6ceb9c28ba747b301121a7790802) )
+ ROM_LOAD16_BYTE( "savgu24.bin", 0x00001, 0x2000, CRC(a9105ca8) SHA1(1a94a052a4a8d221e1eafec0cd5b0ada6f1987f4) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 ) /* up to 128k of banked sprites */
+ ROM_LOAD( "savgu8.bin", 0x00000, 0x2000, CRC(499a1d06) SHA1(0f3ed5ff345abb655f5a9f926ac3eb5dbca72a14) )
+ ROM_LOAD( "savgu7.bin", 0x02000, 0x2000, CRC(ce0607f9) SHA1(0f6708d92e69a67b3eaba98f7ab4ad70eda3c854) )
+ ROM_LOAD( "savgu6.bin", 0x04000, 0x2000, CRC(01d1b31e) SHA1(8061227f18f08e3b74bc6fc341ed4902c415db6c) )
+ ROM_LOAD( "savgu5.bin", 0x06000, 0x2000, CRC(8bc6d101) SHA1(24f0b3ec3ed56b0496d07caa2475fca49a4a9b19) )
+ ROM_LOAD( "savgu4.bin", 0x08000, 0x2000, CRC(72644753) SHA1(01bdb39d32df6d8cf69cbc9370033db46e18cb59) )
+ ROM_LOAD( "savgu3.bin", 0x0a000, 0x2000, CRC(606a9cfd) SHA1(ce99a0e6d09580d35ec423177cdf41c35c7eecb7) )
+ ROM_LOAD( "savgu2.bin", 0x0c000, 0x2000, CRC(69f600f6) SHA1(5b9545897f59b5049adc0fd910c7d65f38696d30) )
+ ROM_LOAD( "savgu1.bin", 0x0e000, 0x2000, CRC(303b8e7b) SHA1(29055b621c68e93649eb0aa9cc9ecc43ac6f6eb8) )
+ ROM_LOAD( "savgu16.bin", 0x10000, 0x2000, CRC(b8f60607) SHA1(4971db01a87bd80c23b7a0ab8aaa7c8300be4ec9) )
+ ROM_LOAD( "savgu15.bin", 0x12000, 0x2000, CRC(6b332a5d) SHA1(58939cec237db1f741d24eb9f94488e3cf8700d2) )
+ ROM_LOAD( "savgu14.bin", 0x14000, 0x2000, CRC(8d5117aa) SHA1(a82911219c49ff96e3c16acec7ef37406dae2be4) )
+ ROM_LOAD( "savgu13.bin", 0x16000, 0x2000, CRC(d3ce645e) SHA1(4e775af7886d699675941f74e18be2d4dbd6f41b) )
+ ROM_LOAD( "savgu12.bin", 0x18000, 0x2000, CRC(ccdfedb1) SHA1(b87e885df46e814626f46102f323ccd8396bcf8f) )
+ ROM_LOAD( "savgu11.bin", 0x1a000, 0x2000, CRC(db11ff4c) SHA1(cd85486cd08ec4392421e9b94d380b81a575c811) )
+ ROM_LOAD( "savgu10.bin", 0x1c000, 0x2000, CRC(6f3d9aa1) SHA1(7616dd016f5c8990b4972cf6edf758e27857aa1e) )
+
+ MOTHERBOARD_PALS
+ROM_END
+
+
+
+/*************************************
+ *
+ * Driver initialization
+ *
+ *************************************/
+
+#define EXPAND_ALL 0x00
+#define EXPAND_NONE 0x3f
+#define SWAP_HALVES 0x80
+
+static void expand_roms(running_machine &machine, UINT8 cd_rom_mask)
+{
+ /* load AB bank data from 0x10000-0x20000 */
+ /* load CD bank data from 0x20000-0x2e000 */
+ /* load EF from 0x2e000-0x30000 */
+ /* ROM region must be 0x40000 total */
+
+ UINT8 *temp = auto_alloc_array(machine, UINT8, 0x20000);
+ {
+ UINT8 *rom = machine.region("maincpu")->base();
+ UINT32 len = machine.region("maincpu")->bytes();
+ UINT32 base;
+
+ for (base = 0x10000; base < len; base += 0x30000)
+ {
+ UINT8 *ab_base = &temp[0x00000];
+ UINT8 *cd_base = &temp[0x10000];
+ UINT8 *cd_common = &temp[0x1c000];
+ UINT8 *ef_common = &temp[0x1e000];
+ UINT32 dest;
+
+ for (dest = 0x00000; dest < 0x20000; dest += 0x02000)
+ {
+ if (cd_rom_mask & SWAP_HALVES)
+ memcpy(&temp[dest ^ 0x02000], &rom[base + dest], 0x02000);
+ else
+ memcpy(&temp[dest], &rom[base + dest], 0x02000);
+ }
+
+ memcpy(&rom[base + 0x2e000], ef_common, 0x2000);
+ memcpy(&rom[base + 0x2c000], cd_common, 0x2000);
+ memcpy(&rom[base + 0x2a000], &ab_base[0xe000], 0x2000);
+
+ memcpy(&rom[base + 0x28000], ef_common, 0x2000);
+ memcpy(&rom[base + 0x26000], cd_common, 0x2000);
+ memcpy(&rom[base + 0x24000], &ab_base[0xc000], 0x2000);
+
+ memcpy(&rom[base + 0x22000], ef_common, 0x2000);
+ memcpy(&rom[base + 0x20000], (cd_rom_mask & 0x20) ? &cd_base[0xa000] : cd_common, 0x2000);
+ memcpy(&rom[base + 0x1e000], &ab_base[0xa000], 0x2000);
+
+ memcpy(&rom[base + 0x1c000], ef_common, 0x2000);
+ memcpy(&rom[base + 0x1a000], (cd_rom_mask & 0x10) ? &cd_base[0x8000] : cd_common, 0x2000);
+ memcpy(&rom[base + 0x18000], &ab_base[0x8000], 0x2000);
+
+ memcpy(&rom[base + 0x16000], ef_common, 0x2000);
+ memcpy(&rom[base + 0x14000], (cd_rom_mask & 0x08) ? &cd_base[0x6000] : cd_common, 0x2000);
+ memcpy(&rom[base + 0x12000], &ab_base[0x6000], 0x2000);
+
+ memcpy(&rom[base + 0x10000], ef_common, 0x2000);
+ memcpy(&rom[base + 0x0e000], (cd_rom_mask & 0x04) ? &cd_base[0x4000] : cd_common, 0x2000);
+ memcpy(&rom[base + 0x0c000], &ab_base[0x4000], 0x2000);
+
+ memcpy(&rom[base + 0x0a000], ef_common, 0x2000);
+ memcpy(&rom[base + 0x08000], (cd_rom_mask & 0x02) ? &cd_base[0x2000] : cd_common, 0x2000);
+ memcpy(&rom[base + 0x06000], &ab_base[0x2000], 0x2000);
+
+ memcpy(&rom[base + 0x04000], ef_common, 0x2000);
+ memcpy(&rom[base + 0x02000], (cd_rom_mask & 0x01) ? &cd_base[0x0000] : cd_common, 0x2000);
+ memcpy(&rom[base + 0x00000], &ab_base[0x0000], 0x2000);
+ }
+
+ auto_free(machine, temp);
+ }
+}
+
+INLINE void config_shooter_adc(running_machine &machine, UINT8 shooter, UINT8 adc_shift)
+{
+ balsente_state *state = machine.driver_data<balsente_state>();
+ state->m_shooter = shooter;
+ state->m_adc_shift = adc_shift;
+}
+
+static DRIVER_INIT( sentetst ) { expand_roms(machine, EXPAND_ALL); config_shooter_adc(machine, FALSE, 0 /* noanalog */); }
+static DRIVER_INIT( cshift ) { expand_roms(machine, EXPAND_ALL); config_shooter_adc(machine, FALSE, 0 /* noanalog */); }
+static DRIVER_INIT( gghost ) { expand_roms(machine, EXPAND_ALL); config_shooter_adc(machine, FALSE, 1); }
+static DRIVER_INIT( hattrick ) { expand_roms(machine, EXPAND_ALL); config_shooter_adc(machine, FALSE, 0 /* noanalog */); }
+static DRIVER_INIT( otwalls ) { expand_roms(machine, EXPAND_ALL); config_shooter_adc(machine, FALSE, 0); }
+static DRIVER_INIT( snakepit ) { expand_roms(machine, EXPAND_ALL); config_shooter_adc(machine, FALSE, 1); }
+static DRIVER_INIT( snakjack ) { expand_roms(machine, EXPAND_ALL); config_shooter_adc(machine, FALSE, 1); }
+static DRIVER_INIT( stocker ) { expand_roms(machine, EXPAND_ALL); config_shooter_adc(machine, FALSE, 0); }
+static DRIVER_INIT( triviag1 ) { expand_roms(machine, EXPAND_ALL); config_shooter_adc(machine, FALSE, 0 /* noanalog */); }
+static DRIVER_INIT( triviag2 )
+{
+ UINT8 *rom = machine.region("maincpu")->base();
+ memcpy(&rom[0x20000], &rom[0x28000], 0x4000);
+ memcpy(&rom[0x24000], &rom[0x28000], 0x4000);
+ expand_roms(machine, EXPAND_NONE); config_shooter_adc(machine, FALSE, 0 /* noanalog */);
+}
+static DRIVER_INIT( triviaes ) { expand_roms(machine, EXPAND_NONE | SWAP_HALVES); config_shooter_adc(machine, FALSE, 0 /* noanalog */); }
+static DRIVER_INIT( gimeabrk ) { expand_roms(machine, EXPAND_ALL); config_shooter_adc(machine, FALSE, 1); }
+static DRIVER_INIT( minigolf ) { expand_roms(machine, EXPAND_NONE); config_shooter_adc(machine, FALSE, 2); }
+static DRIVER_INIT( minigolf2 ) { expand_roms(machine, 0x0c); config_shooter_adc(machine, FALSE, 2); }
+static DRIVER_INIT( toggle ) { expand_roms(machine, EXPAND_ALL); config_shooter_adc(machine, FALSE, 0 /* noanalog */); }
+static DRIVER_INIT( nametune )
+{
+ address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ space->install_legacy_write_handler(0x9f00, 0x9f00, FUNC(balsente_rombank2_select_w));
+ expand_roms(machine, EXPAND_NONE | SWAP_HALVES); config_shooter_adc(machine, FALSE, 0 /* noanalog */);
+}
+static DRIVER_INIT( nstocker )
+{
+ address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ space->install_legacy_write_handler(0x9f00, 0x9f00, FUNC(balsente_rombank2_select_w));
+ expand_roms(machine, EXPAND_NONE | SWAP_HALVES); config_shooter_adc(machine, TRUE, 1);
+}
+static DRIVER_INIT( sfootbal )
+{
+ address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ space->install_legacy_write_handler(0x9f00, 0x9f00, FUNC(balsente_rombank2_select_w));
+ expand_roms(machine, EXPAND_ALL | SWAP_HALVES); config_shooter_adc(machine, FALSE, 0);
+}
+static DRIVER_INIT( spiker )
+{
+ address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ space->install_legacy_readwrite_handler(0x9f80, 0x9f8f, FUNC(spiker_expand_r), FUNC(spiker_expand_w));
+ space->install_legacy_write_handler(0x9f00, 0x9f00, FUNC(balsente_rombank2_select_w));
+ expand_roms(machine, EXPAND_ALL | SWAP_HALVES); config_shooter_adc(machine, FALSE, 1);
+}
+static DRIVER_INIT( stompin )
+{
+ address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ space->install_legacy_write_handler(0x9f00, 0x9f00, FUNC(balsente_rombank2_select_w));
+ expand_roms(machine, 0x0c | SWAP_HALVES); config_shooter_adc(machine, FALSE, 32);
+}
+static DRIVER_INIT( rescraid ) { expand_roms(machine, EXPAND_NONE); config_shooter_adc(machine, FALSE, 0 /* noanalog */); }
+static DRIVER_INIT( grudge )
+{
+ address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ space->install_legacy_read_handler(0x9400, 0x9400, FUNC(grudge_steering_r));
+ expand_roms(machine, EXPAND_NONE); config_shooter_adc(machine, FALSE, 0);
+}
+static DRIVER_INIT( shrike )
+{
+ address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ space->install_legacy_readwrite_handler(0x9e00, 0x9fff, FUNC(shrike_shared_6809_r), FUNC(shrike_shared_6809_w));
+ space->install_legacy_write_handler(0x9e01, 0x9e01, FUNC(shrike_sprite_select_w) );
+ machine.device("68k")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x10000, 0x1001f, FUNC(shrike_io_68k_r), FUNC(shrike_io_68k_w));
+
+ expand_roms(machine, EXPAND_ALL); config_shooter_adc(machine, FALSE, 32);
+}
+
+
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+/* Board: Unknown */
+GAME( 1984, sentetst, 0, balsente, sentetst, sentetst, ROT0, "Bally/Sente", "Sente Diagnostic Cartridge", GAME_SUPPORTS_SAVE )
+GAME( 1984, cshift, 0, balsente, cshift, cshift, ROT0, "Bally/Sente", "Chicken Shift", GAME_SUPPORTS_SAVE )
+GAME( 1984, gghost, 0, balsente, gghost, gghost, ROT0, "Bally/Sente", "Goalie Ghost", GAME_SUPPORTS_SAVE )
+
+/* Board: 006-8003-01-0D Rev D */
+GAME( 1984, hattrick, 0, balsente, hattrick, hattrick, ROT0, "Bally/Sente", "Hat Trick", GAME_SUPPORTS_SAVE )
+GAME( 1984, trivia12, 0, balsente, triviag1, triviag1, ROT0, "Bally/Sente", "Trivial Pursuit (Genus I) (12-14-84)", GAME_SUPPORTS_SAVE )
+
+/* Board: Unknown (From a picture on eBay Snacks'n Jaxson does not match any documented types here.) */
+GAME( 1984, otwalls, 0, balsente, otwalls, otwalls, ROT0, "Bally/Sente", "Off the Wall (Sente)", GAME_SUPPORTS_SAVE )
+GAME( 1984, snakepit, 0, balsente, sentetst, snakepit, ROT0, "Bally/Sente", "Snake Pit", GAME_SUPPORTS_SAVE )
+GAME( 1984, snakjack, 0, balsente, snakjack, snakjack, ROT0, "Bally/Sente", "Snacks'n Jaxson", GAME_SUPPORTS_SAVE )
+
+/* Board: 006-8025-01-0B Rev B */
+GAMEL(1984, stocker, 0, balsente, stocker, stocker, ROT0, "Bally/Sente", "Stocker (3/19/85)", GAME_SUPPORTS_SAVE, layout_stocker ) // date from ROM chips
+GAME( 1985, gimeabrk, 0, balsente, gimeabrk, gimeabrk, ROT0, "Bally/Sente", "Gimme A Break (7/7/85)", GAME_SUPPORTS_SAVE )
+GAME( 1985, minigolf, 0, balsente, minigolf, minigolf, ROT0, "Bally/Sente", "Mini Golf (set 1)", GAME_SUPPORTS_SAVE )
+GAME( 1985, minigolf2,minigolf, balsente, minigolf2,minigolf2,ROT0, "Bally/Sente", "Mini Golf (set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1984, triviabb, 0, balsente, triviag1, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Baby Boomer Edition)", GAME_SUPPORTS_SAVE )
+
+/* Board: Unknown */
+GAME( 1984, triviag1, 0, balsente, triviag1, triviag1, ROT0, "Bally/Sente", "Trivial Pursuit (Genus I) (set 1)", GAME_SUPPORTS_SAVE )
+GAME( 1984, triviag2, 0, balsente, triviag1, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Genus II)", GAME_SUPPORTS_SAVE )
+GAME( 1984, triviasp, 0, balsente, triviag1, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (All Star Sports Edition)", GAME_SUPPORTS_SAVE )
+GAME( 1984, triviayp, 0, balsente, triviag1, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Young Players Edition)", GAME_SUPPORTS_SAVE )
+GAME( 1987, triviaes, 0, balsente, triviaes, triviaes, ROT0, "Bally/Sente", "Trivial Pursuit (Spanish Edition)", GAME_SUPPORTS_SAVE )
+GAME( 1985, toggle, 0, balsente, toggle, toggle, ROT0, "Bally/Sente", "Toggle (prototype)", GAME_SUPPORTS_SAVE )
+GAME( 1986, nametune, 0, balsente, nametune, nametune, ROT0, "Bally/Sente", "Name That Tune", GAME_SUPPORTS_SAVE )
+
+/* Board: 006-8030-01-0A Rev A */
+GAME( 1986, nametune2,nametune, balsente, nametune, nametune, ROT0, "Bally/Sente", "Name That Tune (3/23/86)", GAME_SUPPORTS_SAVE )
+
+/* Board: 006-8027-01-0B Rev B */
+GAME( 1986, nstocker, 0, balsente, nstocker, nstocker, ROT0, "Bally/Sente", "Night Stocker (set 1)", GAME_SUPPORTS_SAVE )
+GAME( 1986, nstocker2,nstocker, balsente, nstocker, nstocker, ROT0, "Bally/Sente", "Night Stocker (set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1986, sfootbal, 0, balsente, sfootbal, sfootbal, ROT0, "Bally/Sente", "Street Football", GAME_SUPPORTS_SAVE )
+GAME( 1986, spiker, 0, balsente, spiker, spiker, ROT0, "Bally/Sente", "Spiker", GAME_SUPPORTS_SAVE )
+GAME( 1986, stompin, 0, balsente, stompin, stompin, ROT0, "Bally/Sente", "Stompin' (4/4/86)", GAME_SUPPORTS_SAVE )
+
+/* Board: A084-91889-A000 (Not a cartridge, but dedicated board) */
+GAME( 1987, rescraid, 0, balsente, rescraid, rescraid, ROT0, "Bally Midway", "Rescue Raider (5/11/87) (non-cartridge)", GAME_SUPPORTS_SAVE )
+
+/* Board: Unknown */
+GAME( 1986, shrike, 0, shrike, shrike, shrike, ROT0, "Bally/Sente", "Shrike Avenger (prototype)", GAME_SUPPORTS_SAVE )
+GAME( 1987, rescraida,rescraid, balsente, rescraid, rescraid, ROT0, "Bally Midway", "Rescue Raider (stand-alone)", GAME_SUPPORTS_SAVE )
+GAME( 198?, grudge, 0, balsente, grudge, grudge, ROT0, "Bally Midway", "Grudge Match (prototype)", GAME_SUPPORTS_SAVE )