// license:BSD-3-Clause
// copyright-holders:Ernesto Corvi,Brad Oliver
/***************************************************************************
Playchoice 10 - (c) 1986 Nintendo of America
Written by Ernesto Corvi.
Portions of this code are heavily based on
Brad Oliver's MESS implementation of the NES.
Thanks to people that contributed to this driver, namely:
- Brad Oliver.
- Aaron Giles.
****************************************************************************
BIOS:
Memory Map
----------
0000 - 3fff = Program ROM (8T)
8000 - 87ff = RAM (8V)
8800 - 8fff = RAM (8W)
9000 - 97ff = SRAM (8R - Videoram)
Cxxx = /INST ROM SEL
Exxx = /IDSEL
Input Ports -----------
Read:
- Port 0
bit0 = CHSelect(?)
bit1 = Enter button
bit2 = Reset button
bit3 = INTDETECT
bit4 = N/C
bit5 = Coin 2
bit6 = Service button
bit7 = Coin 1
- Port 1 = Dipswitch 1
- Port 2 = Dipswitch 2
- Port 3 = /DETECTCLR
Write: (always bit 0)
- Port 0 = SDCS (ShareD CS)
- Port 1 = /CNTRLMASK
- Port 2 = /DISPMASK
- Port 3 = /SOUNDMASK
- Port 4 = /GAMERES
- Port 5 = /GAMESTOP
- Port 6 = N/C
- Port 7 = N/
- Port 8 = NMI Enable
- Port 9 = DOG DI
- Port A = /PPURES
- Port B = CSEL0 \
- Port C = CSEL1 \ (Cartridge select: 0 to 9)
- Port D = CSEL2 /
- Port E = CSEL3 /
- Port F = 8UP KEY
****************************************************************************
Working games:
--------------
- 1942 (NF) - Standard board
- Balloon Fight (BF) - Standard board
- Baseball (BA) - Standard board
- Baseball Stars (B9) - F board
- Captain Sky Hawk (YW) - i board
- Castlevania (CV) - B board
- Contra (CT) - B board
- Double Dragon (WD) - F board
- Double Dribble (DW) - B board
- Dr. Mario (VU) - F board
- Duck Hunt (DH) - Standard board
- Excite Bike (EB) - Standard board
- Fester's Quest (EQ) - F board
- Gauntlet (GL) - G board
- Golf (GF) - Standard board
- Gradius (GR) - A board
- Hogan's Alley (HA) - Standard board
- Kung Fu (SX) - Standard board
- Mario Bros. (MA) - Standard board
- Mario Open Golf (UG) - K board
- Mega Man 3 (XU) - G board
- Metroid (MT) - D board
- Ninja Gaiden (NG) - F board
- Ninja Gaiden 2 (NW) - G board
- Ninja Gaiden 3 (3N) - G board
- Nintendo World Cup (XZ) - G board
- Pinbot (IO) - H board
- Power Blade (7T) - G board
- Pro Wrestling (PW) - B board
- Rad Racer (RC) - D board
- Rad Racer II (QR) - G board
- RC Pro Am (PM) - F board
- Rescue Rangers (RU) - F board
- Rockin' Kats (7A) - G board
- Rush N' Attack (RA) - B board
- Rygar (RY) - B board
- Solar Jetman (LJ) - i board
- Super C (UE) - G board
- Super Mario Bros (SM) - Standard board
- Super Mario Bros 2 (MW) - G board
- Super Mario Bros 3 (UM) - G board
- Tecmo Bowl (TW) - F board
- Teenage Mutant Ninja Turtles (U2) - F board
- Teenage Mutant Ninja Turtles 2 (2N) - G board
- Tennis (TE) - Standard board
- Track & Field (TR) - A board
- Trojan (TJ) - B board
- The Goonies (GN) - C board
- Volley Ball (VB) - Standard board
- Wild Gunman (WG) - Standard board
- Yo Noid (YC) - F board
Non working games due to mapper/nes emulation issues:
-----------------------------------------------------
- Mike Tyson's Punchout (PT) - E board
Non working games due to missing roms:
--------------------------------------
- ShatterHand (??) - ? board
****************************************************************************
Dipswitches information:
------------------------
Steph 2000.09.07
The 6 first DSWA (A-F) are used for coinage (units of time given for coin A/coin B)
When bit 6 of DSWB (O) is ON, units of time given for coin B are divided by 2
The 6 first DSWB (I-N) are used to set timer speed :
[0x80d5] = ( ( (IN A,02) | 0xc0 ) + 0x3c ) & 0xff
When bit 7 of DSWB (P) is ON, you're in 'Freeplay' mode with 9999 units of time ...
However, this is effective ONLY if 7 other DSWB (I-O) are OFF !
I add the 32 combinations for coinage.
As I don't know what is the default value for timer speed, and I don't want to write
the 64 combinaisons, I only put some values ... Feel free to add the other ones ...
DSW A DSW B
HGFEDCBA PONMLKJI coin A coin B
xx000000 x0xxxxxx 300 0
xx000001 x0xxxxxx 300 100
xx000010 x0xxxxxx 300 200
xx000011 x0xxxxxx 300 300
xx000100 x0xxxxxx 300 400
xx000101 x0xxxxxx 300 500
xx000110 x0xxxxxx 300 600
xx000111 x0xxxxxx 300 700
xx001000 x0xxxxxx 300 800
xx001001 x0xxxxxx 300 900
xx001010 x0xxxxxx 150 0
xx001011 x0xxxxxx 150 200
xx001100 x0xxxxxx 150 400
xx001101 x0xxxxxx 150 600
xx001110 x0xxxxxx 150 800
xx001111 x0xxxxxx 150 500
xx010000 x0xxxxxx 300 1000
xx010001 x0xxxxxx 300 1100
xx010010 x0xxxxxx 300 1200
xx010011 x0xxxxxx 300 1300
xx010100 x0xxxxxx 300 1400
xx010101 x0xxxxxx 300 1500
xx010110 x0xxxxxx 300 1600
xx010111 x0xxxxxx 300 1700
xx011000 x0xxxxxx 300 1800
xx011001 x0xxxxxx 300 1900
xx011010 x0xxxxxx 150 1000
xx011011 x0xxxxxx 150 1200
xx011100 x0xxxxxx 150 1400
xx011101 x0xxxxxx 150 1600
xx011110 x0xxxxxx 150 1800
xx011111 x0xxxxxx 150 1500
xx100000 x0xxxxxx 300 2000
xx100001 x0xxxxxx 300 2100
xx100010 x0xxxxxx 300 2200
xx100011 x0xxxxxx 300 2300
xx100100 x0xxxxxx 300 2400
xx100101 x0xxxxxx 300 2500
xx100110 x0xxxxxx 300 2600
xx100111 x0xxxxxx 300 2700
xx101000 x0xxxxxx 300 2800
xx101001 x0xxxxxx 300 2900
xx101010 x0xxxxxx 150 2000
xx101011 x0xxxxxx 150 2200
xx101100 x0xxxxxx 150 2400
xx101101 x0xxxxxx 150 2600
xx101110 x0xxxxxx 150 2800
xx101111 x0xxxxxx 150 2500
xx110000 x0xxxxxx 300 3000
xx110001 x0xxxxxx 300 3100
xx110010 x0xxxxxx 300 3200
xx110011 x0xxxxxx 300 3300
xx110100 x0xxxxxx 300 3400
xx110101 x0xxxxxx 300 3500
xx110110 x0xxxxxx 300 3600
xx110111 x0xxxxxx 300 3700
xx111000 x0xxxxxx 300 3800
xx111001 x0xxxxxx 300 3900
xx111010 x0xxxxxx 150 3000
xx111011 x0xxxxxx 150 3200
xx111100 x0xxxxxx 150 3400
xx111101 x0xxxxxx 150 3600
xx111110 x0xxxxxx 150 3800
xx111111 x0xxxxxx 150 3500
xx000000 x1xxxxxx 300 0
xx000001 x1xxxxxx 300 50
xx000010 x1xxxxxx 300 100
xx000011 x1xxxxxx 300 150
xx000100 x1xxxxxx 300 200
xx000101 x1xxxxxx 300 250
xx000110 x1xxxxxx 300 300
xx000111 x1xxxxxx 300 350
xx001000 x1xxxxxx 300 400
xx001001 x1xxxxxx 300 450
xx001010 x1xxxxxx 150 0
xx001011 x1xxxxxx 150 100
xx001100 x1xxxxxx 150 200
xx001101 x1xxxxxx 150 300
xx001110 x1xxxxxx 150 400
xx001111 x1xxxxxx 150 250
xx010000 x1xxxxxx 300 500
xx010001 x1xxxxxx 300 550
xx010010 x1xxxxxx 300 600
xx010011 x1xxxxxx 300 650
xx010100 x1xxxxxx 300 700
xx010101 x1xxxxxx 300 750
xx010110 x1xxxxxx 300 800
xx010111 x1xxxxxx 300 850
xx011000 x1xxxxxx 300 900
xx011001 x1xxxxxx 300 950
xx011010 x1xxxxxx 150 500
xx011011 x1xxxxxx 150 600
xx011100 x1xxxxxx 150 700
xx011101 x1xxxxxx 150 800
xx011110 x1xxxxxx 150 750
xx100000 x1xxxxxx 300 1000
xx100001 x1xxxxxx 300 1050
xx100010 x1xxxxxx 300 1100
xx100011 x1xxxxxx 300 1150
xx100100 x1xxxxxx 300 1200
xx100101 x1xxxxxx 300 1250
xx100110 x1xxxxxx 300 1300
xx100111 x1xxxxxx 300 1350
xx101000 x1xxxxxx 300 1400
xx101001 x1xxxxxx 300 1450
xx101010 x1xxxxxx 150 1000
xx101011 x1xxxxxx 150 1100
xx101100 x1xxxxxx 150 1200
xx101101 x1xxxxxx 150 1300
xx101110 x1xxxxxx 150 1400
xx101111 x1xxxxxx 150 1250
xx110000 x1xxxxxx 300 1500
xx110001 x1xxxxxx 300 1550
xx110010 x1xxxxxx 300 1600
xx110011 x1xxxxxx 300 1650
xx110100 x1xxxxxx 300 1700
xx110101 x1xxxxxx 300 1750
xx110110 x1xxxxxx 300 1800
xx110111 x1xxxxxx 300 1850
xx111000 x1xxxxxx 300 1900
xx111001 x1xxxxxx 300 1950
xx111010 x1xxxxxx 150 1500
xx111011 x1xxxxxx 150 1600
xx111100 x1xxxxxx 150 1700
xx111101 x1xxxxxx 150 1800
xx111110 x1xxxxxx 150 1750
I know that the way I code the DSW isn't correct, but I don't know how to link
O to A-F AND, at the same time, O to P ... Any help is appreciated ...
****************************************************************************
Notes & Todo:
-------------
- Look at Ninja Gaiden 3. It has some slight timming issues on the
second level. Probably related to the mapper's irq timming.
- Fix some remaining bad gfx in Rad Racer II.
- Implement Dipswitches properly once Mame can support it.
- Better control layout?. This thing has odd buttons.
- Find dumps of the rest of the RP5H01's and add the remaining games.
- Any PPU optimizations that retain accuracy are certainly welcome.
***************************************************************************/
#include "emu.h"
#include "includes/playch10.h"
#include "cpu/m6502/n2a03.h"
#include "cpu/z80/z80.h"
#include "machine/74259.h"
#include "machine/rp5h01.h"
#include "machine/nvram.h"
#include "rendlay.h"
#include "screen.h"
#include "speaker.h"
#include "playch10.lh"
/******************************************************************************/
WRITE_LINE_MEMBER(playch10_state::up8w_w)
{
m_up_8w = state;
}
READ8_MEMBER(playch10_state::ram_8w_r)
{
if ( offset >= 0x400 && m_up_8w )
return m_ram_8w[offset];
return m_ram_8w[offset & 0x3ff];
}
WRITE8_MEMBER(playch10_state::ram_8w_w)
{
if ( offset >= 0x400 && m_up_8w )
m_ram_8w[offset] = data;
else
m_ram_8w[offset & 0x3ff] = data;
}
WRITE8_MEMBER(playch10_state::sprite_dma_w)
{
int source = ( data & 7 );
m_ppu->spriteram_dma(space, source);
}
/* Only used in single monitor bios */
WRITE8_MEMBER(playch10_state::time_w)
{
constexpr static uint8_t DIGIT_MAP[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
m_timedigits[offset] = DIGIT_MAP[data & 0x0f];
}
/******************************************************************************/
/* BIOS */
void playch10_state::bios_map(address_map &map)
{
map(0x0000, 0x3fff).rom();
map(0x8000, 0x87ff).ram(); // 8V
map(0x8800, 0x8fff).rw(this, FUNC(playch10_state::ram_8w_r), FUNC(playch10_state::ram_8w_w)).share("ram_8w"); // 8W
map(0x9000, 0x97ff).ram().w(this, FUNC(playch10_state::playch10_videoram_w)).share("videoram");
map(0xc000, 0xdfff).rom();
map(0xe000, 0xffff).rw(this, FUNC(playch10_state::pc10_prot_r), FUNC(playch10_state::pc10_prot_w));
}
void playch10_state::bios_io_map(address_map &map)
{
map.global_mask(0xff);
map(0x00, 0x00).portr("BIOS");
map(0x01, 0x01).portr("SW1");
map(0x02, 0x02).portr("SW2");
map(0x03, 0x03).r(this, FUNC(playch10_state::pc10_detectclr_r));
map(0x00, 0x07).w("outlatch1", FUNC(ls259_device::write_d0));
map(0x08, 0x0f).w("outlatch2", FUNC(ls259_device::write_d0));
map(0x10, 0x13).w(this, FUNC(playch10_state::time_w));
}
void playch10_state::cart_map(address_map &map)
{
map(0x0000, 0x07ff).ram().mirror(0x1800).share("work_ram");
map(0x2000, 0x3fff).rw(m_ppu, FUNC(ppu2c0x_device::read), FUNC(ppu2c0x_device::write));
map(0x4014, 0x4014).w(this, FUNC(playch10_state::sprite_dma_w));
map(0x4016, 0x4016).rw(this, FUNC(playch10_state::pc10_in0_r), FUNC(playch10_state::pc10_in0_w));
map(0x4017, 0x4017).r(this, FUNC(playch10_state::pc10_in1_r)); /* IN1 - input port 2 / PSG second control register */
map(0x8000, 0xffff).rom();
}
/******************************************************************************/
static INPUT_PORTS_START( playch10 )
PORT_START("BIOS")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Channel Select") PORT_CODE(KEYCODE_0)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Enter") PORT_CODE(KEYCODE_MINUS)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Reset") PORT_CODE(KEYCODE_EQUALS)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, playch10_state,pc10_int_detect_r, nullptr) // INT Detect
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE1 )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
/*
The correct way to handle DIPs according to the manual.
Doesn't work due to limitations of the conditional DIPs
implementation in MAME.
PORT_START("SW1")
PORT_DIPNAME( 0x3f, 0x09, "Prime Time Bonus" )
// STANDARD TIME (no bonus)
PORT_DIPSETTING( 0x00, "0%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
// PRIME TIME (bonus) for 2 COINS
PORT_DIPSETTING( 0x07, "8%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x08, "17%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x09, "25%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x10, "33%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x11, "42%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x12, "50%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x13, "58%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x14, "67%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x15, "75%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x16, "83%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x17, "92%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x18, "100%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
// PRIME TIME (bonus) for 4 COINS
PORT_DIPSETTING( 0x04, "8%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x05, "17%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x06, "25%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x07, "33%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x08, "42%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x09, "50%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x10, "58%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x11, "67%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x12, "75%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x13, "83%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x14, "92%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x15, "100%" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
PORT_SERVICE( 0x80, IP_ACTIVE_HIGH )
PORT_START("SW2")
PORT_DIPNAME( 0x3f, 0x28, "Play Time/Coin" )
// STANDARD TIME (no bonus)
PORT_DIPSETTING( 0x3f, DEF_STR( Free_Play ) ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x23, "2:00 (120)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x21, "2:10 (130)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x1f, "2:20 (140)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x1d, "2:30 (150)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x1b, "2:40 (160)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x19, "2:50 (170)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x17, "3:00 (180)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x15, "3:10 (190)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x13, "3:20 (200)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x11, "3:30 (210)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x0f, "3:40 (220)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x0d, "3:50 (230)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x0b, "4:00 (240)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x09, "4:10 (250)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x07, "4:20 (260)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x05, "4:30 (270)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x03, "4:40 (280)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
PORT_DIPSETTING( 0x01, "4:50 (290)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0xc0 )
// PRIME TIME (bonus) for 2 COINS
PORT_DIPSETTING( 0x1c, "2:00 (120)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x1e, "2:10 (130)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x20, "2:20 (140)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x22, "2:30 (150)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x24, "2:40 (160)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x26, "2:50 (170)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x28, "3:00 (180)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x2a, "3:10 (190)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x2c, "3:20 (200)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x2e, "3:30 (210)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x30, "3:40 (220)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x32, "3:50 (230)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
PORT_DIPSETTING( 0x34, "4:00 (240)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x80 )
// PRIME TIME (bonus) for 4 COINS
PORT_DIPSETTING( 0x1c, "2:00 (120)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x1e, "2:10 (130)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x20, "2:20 (140)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x22, "2:30 (150)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x24, "2:40 (160)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x26, "2:50 (170)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x28, "3:00 (180)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x2a, "3:10 (190)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x2c, "3:20 (200)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x2e, "3:30 (210)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x30, "3:40 (220)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x32, "3:50 (230)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPSETTING( 0x34, "4:00 (240)" ) PORT_CONDITION("SW2", 0xc0, EQUALS, 0x00 )
PORT_DIPNAME( 0xc0, 0x80, "Bonus" )
PORT_DIPSETTING( 0xc0, "Standard Time" )
PORT_DIPSETTING( 0x80, "Prime Time for 2 Coins" )
PORT_DIPSETTING( 0x00, "Prime Time for 4 Coins" )
*/
PORT_START("SW1")
PORT_DIPNAME( 0x3f, 0x00, "Units of time (coin A/coin B)" )
PORT_DIPSETTING( 0x00, "300/0" )
PORT_DIPSETTING( 0x01, "300/100" )
PORT_DIPSETTING( 0x02, "300/200" )
PORT_DIPSETTING( 0x03, "300/300" )
PORT_DIPSETTING( 0x04, "300/400" )
PORT_DIPSETTING( 0x05, "300/500" )
PORT_DIPSETTING( 0x06, "300/600" )
PORT_DIPSETTING( 0x07, "300/700" )
PORT_DIPSETTING( 0x08, "300/800" )
PORT_DIPSETTING( 0x09, "300/900" )
PORT_DIPSETTING( 0x0a, "150/0" )
PORT_DIPSETTING( 0x0b, "150/200" )
PORT_DIPSETTING( 0x0c, "150/400" )
PORT_DIPSETTING( 0x0f, "150/500" )
PORT_DIPSETTING( 0x0d, "150/600" )
PORT_DIPSETTING( 0x0e, "150/800" )
PORT_DIPSETTING( 0x10, "300/1000" )
PORT_DIPSETTING( 0x11, "300/1100" )
PORT_DIPSETTING( 0x12, "300/1200" )
PORT_DIPSETTING( 0x13, "300/1300" )
PORT_DIPSETTING( 0x14, "300/1400" )
PORT_DIPSETTING( 0x15, "300/1500" )
PORT_DIPSETTING( 0x16, "300/1600" )
PORT_DIPSETTING( 0x17, "300/1700" )
PORT_DIPSETTING( 0x18, "300/1800" )
PORT_DIPSETTING( 0x19, "300/1900" )
PORT_DIPSETTING( 0x1a, "150/1000" )
PORT_DIPSETTING( 0x1b, "150/1200" )
PORT_DIPSETTING( 0x1c, "150/1400" )
PORT_DIPSETTING( 0x1f, "150/1500" )
PORT_DIPSETTING( 0x1d, "150/1600" )
PORT_DIPSETTING( 0x1e, "150/1800" )
PORT_DIPSETTING( 0x20, "300/2000" )
PORT_DIPSETTING( 0x21, "300/2100" )
PORT_DIPSETTING( 0x22, "300/2200" )
PORT_DIPSETTING( 0x23, "300/2300" )
PORT_DIPSETTING( 0x24, "300/2400" )
PORT_DIPSETTING( 0x25, "300/2500" )
PORT_DIPSETTING( 0x26, "300/2600" )
PORT_DIPSETTING( 0x27, "300/2700" )
PORT_DIPSETTING( 0x28, "300/2800" )
PORT_DIPSETTING( 0x29, "300/2900" )
PORT_DIPSETTING( 0x2a, "150/2000" )
PORT_DIPSETTING( 0x2b, "150/2200" )
PORT_DIPSETTING( 0x2c, "150/2400" )
PORT_DIPSETTING( 0x2f, "150/2500" )
PORT_DIPSETTING( 0x2d, "150/2600" )
PORT_DIPSETTING( 0x2e, "150/2800" )
PORT_DIPSETTING( 0x30, "300/3000" )
PORT_DIPSETTING( 0x31, "300/3100" )
PORT_DIPSETTING( 0x32, "300/3200" )
PORT_DIPSETTING( 0x33, "300/3300" )
PORT_DIPSETTING( 0x34, "300/3400" )
PORT_DIPSETTING( 0x35, "300/3500" )
PORT_DIPSETTING( 0x36, "300/3600" )
PORT_DIPSETTING( 0x37, "300/3700" )
PORT_DIPSETTING( 0x38, "300/3800" )
PORT_DIPSETTING( 0x39, "300/3900" )
PORT_DIPSETTING( 0x3a, "150/3000" )
PORT_DIPSETTING( 0x3b, "150/3200" )
PORT_DIPSETTING( 0x3c, "150/3400" )
PORT_DIPSETTING( 0x3f, "150/3500" )
PORT_DIPSETTING( 0x3d, "150/3600" )
PORT_DIPSETTING( 0x3e, "150/3800" )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
PORT_SERVICE( 0x80, IP_ACTIVE_HIGH )
PORT_START("SW2")
PORT_DIPNAME( 0x40, 0x00, "Coin Mode" )
PORT_DIPSETTING( 0x00, "Mode 1" )
PORT_DIPSETTING( 0x40, "Mode 2" )
PORT_DIPNAME( 0xbf, 0x3f, "Timer speed" )
PORT_DIPSETTING( 0x05, "60 units per second" )
PORT_DIPSETTING( 0x06, "30 units per second" )
PORT_DIPSETTING( 0x07, "20 units per second" )
PORT_DIPSETTING( 0x08, "15 units per second" )
PORT_DIPSETTING( 0x0a, "10 units per second" )
PORT_DIPSETTING( 0x0e, "6 units per second" )
PORT_DIPSETTING( 0x10, "5 units per second" )
PORT_DIPSETTING( 0x13, "4 units per second" )
PORT_DIPSETTING( 0x18, "3 units per second" )
PORT_DIPSETTING( 0x22, "2 units per second" )
PORT_DIPSETTING( 0x3f, "1 unit per second" )
PORT_DIPSETTING( 0x00, "1 unit every 4 seconds" )
PORT_DIPSETTING( 0x80, DEF_STR( Free_Play ) )
PORT_START("P1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Button B")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Button A")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("Game Select")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Start")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
PORT_START("P2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P2 Button A") PORT_PLAYER(2)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P2 Button B") PORT_PLAYER(2)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) // wired to 1p select button
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) // wired to 1p start button
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
INPUT_PORTS_END
/*Input Ports for gun games*/
static INPUT_PORTS_START( playc10g )
PORT_INCLUDE(playch10)
PORT_START("GUNX") /* IN2 - FAKE - Gun X pos */
PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(70) PORT_KEYDELTA(30)
PORT_START("GUNY") /* IN3 - FAKE - Gun Y pos */
PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(30)
INPUT_PORTS_END
static const gfx_layout bios_charlayout =
{
8,8, /* 8*8 characters */
1024, /* 1024 characters */
3, /* 3 bits per pixel */
{ 0, 0x2000*8, 0x4000*8 }, /* the bitplanes are separated */
{ 0, 1, 2, 3, 4, 5, 6, 7 },
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
8*8 /* every char takes 8 consecutive bytes */
};
static GFXDECODE_START( gfx_playch10 )
GFXDECODE_ENTRY( "gfx1", 0, bios_charlayout, 0, 32 )
GFXDECODE_END
WRITE_LINE_MEMBER(playch10_state::vblank_irq)
{
if (state)
{
/* LS161A, Sheet 1 - bottom left of Z80 */
if (!m_pc10_dog_di && !m_pc10_nmi_enable)
m_maincpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero);
else if (m_pc10_nmi_enable)
m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
}
MACHINE_CONFIG_START(playch10_state::playch10)
// basic machine hardware
MCFG_DEVICE_ADD("maincpu", Z80, 8000000/2) // 4 MHz
MCFG_DEVICE_PROGRAM_MAP(bios_map)
MCFG_DEVICE_IO_MAP(bios_io_map)
MCFG_DEVICE_ADD("cart", N2A03, NTSC_APU_CLOCK)
MCFG_DEVICE_PROGRAM_MAP(cart_map)
MCFG_DEVICE_ADD("outlatch1", LS259, 0) // 7D
MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(*this, playch10_state, sdcs_w))
MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(*this, playch10_state, cntrl_mask_w))
MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(*this, playch10_state, disp_mask_w))
MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(*this, playch10_state, sound_mask_w))
MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(INPUTLINE("cart", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT // GAMERES
MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(INPUTLINE("cart", INPUT_LINE_HALT)) MCFG_DEVCB_INVERT // GAMESTOP
MCFG_DEVICE_ADD("outlatch2", LS259, 0) // 7E
MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(*this, playch10_state, nmi_enable_w))
MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(*this, playch10_state, dog_di_w))
MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(*this, playch10_state, ppu_reset_w))
MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(WRITELINE(*this, playch10_state, up8w_w))
MCFG_ADDRESSABLE_LATCH_PARALLEL_OUT_CB(WRITE8(*this, playch10_state, cart_sel_w)) MCFG_DEVCB_MASK(0x78) MCFG_DEVCB_RSHIFT(-3)
// video hardware
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_playch10)
MCFG_PALETTE_ADD("palette", 256)
MCFG_PALETTE_INIT_OWNER(playch10_state, playch10)
MCFG_DEFAULT_LAYOUT(layout_playch10)
MCFG_SCREEN_ADD("top", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 262)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(playch10_state, screen_update_playch10_top)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, playch10_state, vblank_irq))
MCFG_SCREEN_ADD("bottom", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 262)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(playch10_state, screen_update_playch10_bottom)
MCFG_PPU2C03B_ADD("ppu")
MCFG_PPU2C0X_SET_SCREEN("bottom")
MCFG_PPU2C0X_CPU("cart")
MCFG_PPU2C0X_INT_CALLBACK(INPUTLINE("cart", INPUT_LINE_NMI))
MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(*this, playch10_state, int_detect_w))
SPEAKER(config, "mono").front_center();
MCFG_RP5H01_ADD("rp5h01")
MACHINE_CONFIG_END
MACHINE_CONFIG_START(playch10_state::playchnv)
playch10(config);
MCFG_NVRAM_ADD_0FILL("nvram")
MACHINE_CONFIG_END
MACHINE_CONFIG_START(playch10_state::playch10_hboard)
playch10(config);
MCFG_VIDEO_START_OVERRIDE(playch10_state,playch10_hboard)
MCFG_MACHINE_START_OVERRIDE(playch10_state,playch10_hboard)
MACHINE_CONFIG_END
/***************************************************************************
Game driver(s)
***************************************************************************/
#define ROM_LOAD_BIOS(bios,name,offset,length,hash) \
ROMX_LOAD(name, offset, length, hash, ROM_BIOS(bios+1)) /* Note '+1' */
#define BIOS_CPU \
ROM_REGION( 0x10000, "maincpu", 0 ) \
ROM_SYSTEM_BIOS( 0, "dual", "Dual Monitor Version" ) \
ROM_LOAD_BIOS( 0, "pch1-c__8t_e-2.8t", 0x00000, 0x4000, CRC(d52fa07a) SHA1(55cabf52ae10c050c2229081a80b9fe5454ab8c5) ) \
ROM_SYSTEM_BIOS( 1, "single", "Single Monitor Version" ) \
ROM_LOAD_BIOS( 1, "pck1-c.8t", 0x00000, 0x4000, CRC(503ee8b1) SHA1(3bd20bc71cac742d1b8c1430a6426d0a19db7ad0) ) \
ROM_SYSTEM_BIOS( 2, "alt", "Alt Bios" ) /* this bios doens't work properly, selecting service mode causes it to hang, is it good? maybe different hw? */ \
ROM_LOAD_BIOS( 2, "pch1-c_8te.8t", 0x00000, 0x4000, CRC(123ffa37) SHA1(3bef754a5a85a8498bb6222ddf5cb9021f264db5) ) \
ROM_SYSTEM_BIOS( 3, "singleb", "Single Monitor Version (Newer?)" ) /* Newer single screen? Four bytes different, reported bugfix in freeplay */ \
ROM_LOAD_BIOS( 3, "pck1-c_fix.8t", 0x00000, 0x4000, CRC(0be8ceb4) SHA1(45b127a537370226e6b30be2b5a92ad05673ca7f) )
#define BIOS_GFX \
ROM_REGION( 0x6000, "gfx1", 0 ) \
ROM_LOAD_BIOS( 0, "pch1-c__8p_e-1.8p", 0x00000, 0x2000, CRC(30c15e23) SHA1(69166afdb2fe827c7f1919cdf4197caccbd961fa) ) \
ROM_LOAD_BIOS( 0, "pch1-c__8m_e-1.8m", 0x02000, 0x2000, CRC(c1232eee) SHA1(beaf9fa2d091a3c7f70c51e966d885b1f9f0935f) ) \
ROM_LOAD_BIOS( 0, "pch1-c__8k.8k", 0x04000, 0x2000, CRC(9acffb30) SHA1(b814f10ef23f2ca445fabafcbf7f25e2d454ba8c) ) \
\
ROM_LOAD_BIOS( 1, "pch1-c__8p_e-1.8p", 0x00000, 0x2000, CRC(30c15e23) SHA1(69166afdb2fe827c7f1919cdf4197caccbd961fa) ) \
ROM_LOAD_BIOS( 1, "pch1-c__8m_e-1.8m", 0x02000, 0x2000, CRC(c1232eee) SHA1(beaf9fa2d091a3c7f70c51e966d885b1f9f0935f) ) \
ROM_LOAD_BIOS( 1, "pch1-c__8k.8k", 0x04000, 0x2000, CRC(9acffb30) SHA1(b814f10ef23f2ca445fabafcbf7f25e2d454ba8c) ) \
\
ROM_LOAD_BIOS( 2, "pch1-c_8p-8p", 0x00000, 0x2000, CRC(90e1b80c) SHA1(c4f4b135b2a11743518aaa0554c365b4a8cf299a) ) \
ROM_LOAD_BIOS( 2, "pch1-c_8m.8m", 0x02000, 0x2000, CRC(83ebc7a3) SHA1(a7c607138f4f9b96ab5d3a82c47895f77672e296) ) \
ROM_LOAD_BIOS( 2, "pch1-c__8k.8k", 0x04000, 0x2000, CRC(9acffb30) SHA1(b814f10ef23f2ca445fabafcbf7f25e2d454ba8c) ) \
\
ROM_LOAD_BIOS( 3, "pch1-c__8p_e-1.8p", 0x00000, 0x2000, CRC(30c15e23) SHA1(69166afdb2fe827c7f1919cdf4197caccbd961fa) ) \
ROM_LOAD_BIOS( 3, "pch1-c__8m_e-1.8m", 0x02000, 0x2000, CRC(c1232eee) SHA1(beaf9fa2d091a3c7f70c51e966d885b1f9f0935f) ) \
ROM_LOAD_BIOS( 3, "pch1-c__8k.8k", 0x04000, 0x2000, CRC(9acffb30) SHA1(b814f10ef23f2ca445fabafcbf7f25e2d454ba8c) ) \
\
ROM_REGION( 0x0300, "proms", 0 ) \
ROM_LOAD( "pch1-c-6f.82s129an.6f", 0x0000, 0x0100, CRC(e5414ca3) SHA1(d2878411cda84ffe0afb2e538a67457f51bebffb) ) \
ROM_LOAD( "pch1-c-6e.82s129an.6e", 0x0100, 0x0100, CRC(a2625c6e) SHA1(a448b47c9289902e26a3d3c4c7d5a7968c385e81) ) \
ROM_LOAD( "pch1-c-6d.82s129an.6d", 0x0200, 0x0100, CRC(1213ebd4) SHA1(0ad386fc3eab5e53c0288ad1de33639a9e461b7c) ) \
ROM_REGION( 0xc0, "ppu:palette", 0 ) \
ROM_LOAD( "rp2c0x.pal", 0x00, 0xc0, CRC(48de65dc) SHA1(d10acafc8da9ff479c270ec01180cca61efe62f5) )
/******************************************************************************/
/* Standard Games */
ROM_START( pc_smb ) /* Super Mario Bros. */
BIOS_CPU
ROM_LOAD( "u3sm", 0x0c000, 0x2000, CRC(4b5f717d) SHA1(c39c90f9503c4692af4a8fdb3e18ef7cf04e897f) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "u1sm", 0x08000, 0x8000, CRC(5cf548d3) SHA1(fefa1097449a3a11ebf8c6199e905996c5dc8fbd) )
ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "u2sm", 0x00000, 0x2000, CRC(867b51ad) SHA1(394badaf0b0bdd0ea279a1bca89a9d9ddc00b1b5) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(bd82d775) SHA1(e15c369d638156eeb0cd141aeeec877c62810b64) )
ROM_END
ROM_START( pc_ebike ) /* Excite Bike */
BIOS_CPU
ROM_LOAD( "u3eb", 0x0c000, 0x2000, CRC(8ff0e787) SHA1(35a6d7186dee4fd4ba015ec0db5181768411aa3c) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "u1eb", 0x0c000, 0x4000, CRC(3a94fa0b) SHA1(6239e91ccefdc017d233cbae388c6568a17ed04b) )
ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "u2eb", 0x00000, 0x2000, CRC(e5f72401) SHA1(a8bf028e1a62677e48e88cf421bb2a8051eb800c) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(a0263750) SHA1(2ab6e43c2bc4c07fc7887defc4fc81502167ef60) )
ROM_END
ROM_START( pc_1942 ) /* 1942 */
BIOS_CPU
ROM_LOAD( "u3", 0x0c000, 0x2000, CRC(415b8807) SHA1(9d6161bbc6dec5873cc6d8a570141d4af42fa232) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "u1", 0x08000, 0x8000, CRC(c4e8c04a) SHA1(d608f769333b13da9c67f07599e405944893a950) )
ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "u2", 0x00000, 0x2000, CRC(03379b76) SHA1(d2a6ca1cdd8935525f59f1d38806b2296cb12a12) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(29893c7f) SHA1(58478b7de2177c8dc1d6885bd34eeeeb5e46d7a3) )
ROM_END
ROM_START( pc_bfght ) /* Balloon Fight */
BIOS_CPU
ROM_LOAD( "bf-u3", 0x0c000, 0x2000, CRC(a9949544) SHA1(0bb9fab67769a4eaa1b903a3217dbb5ca6feddb8) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "bf-u1", 0x0c000, 0x4000, CRC(575ed2fe) SHA1(63527ea590aa79a6b09896c35021de785fd40851) )
ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "bf-u2", 0x00000, 0x2000, CRC(c642a1df) SHA1(e73cd3d4c0bad8e6f7a1aa6a580f3817a83756a9) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(be3c42fb) SHA1(da40c57bda36d1dbacdf246e0d2579b6be616480) )
ROM_END
ROM_START( pc_bball ) /* Baseball */
BIOS_CPU
ROM_LOAD( "ba-u3", 0x0c000, 0x2000, CRC(06861a0d) SHA1(b7263280a39f544ca4ab1b4d3e8c5fe17ea95e57) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "ba-u1", 0x0c000, 0x4000, CRC(39d1fa03) SHA1(28d84cfefa81bbfd3d26e0f70f1b9f53383e54ad) )
ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "ba-u2", 0x00000, 0x2000, CRC(cde71b82) SHA1(296ccef8a1fd9209f414ce0c788ab0dc95058242) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(7940cfc4) SHA1(9e36ceb5aac023472f48f2f06cf171bffa49a664) )
ROM_END
ROM_START( pc_golf ) /* Golf */
BIOS_CPU
ROM_LOAD( "gf-u3", 0x0c000, 0x2000, CRC(882dea87) SHA1(e3bbca36efa66231b933713dec032bbb926b36e5) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "gf-u1", 0x0c000, 0x4000, CRC(f9622bfa) SHA1(b4e341a91f614bb19c67cc0205b2443591567aea) )
ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "gf-u2", 0x00000, 0x2000, CRC(ff6fc790) SHA1(40177839b61f375f2ad03b203328683264845b5b) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(2cd98ef6) SHA1(bd5142c6a29df674ab835c8beafff7e93712d88f) )
ROM_END
ROM_START( pc_kngfu ) /* Kung Fu */
BIOS_CPU
ROM_LOAD( "sx-u3", 0x0c000, 0x2000, CRC(ead71b7e) SHA1(e255c08f92d6188dad6b27446b0117cd7cee4364) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "sx-u1", 0x08000, 0x8000, CRC(0516375e) SHA1(55dc3550c6133f8624eb6cf3d2f145e4313c2ff6) )
ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "sx-u2", 0x00000, 0x2000, CRC(430b49a4) SHA1(7e618dbff521c3d5ee0f3d8bb01d2e770395a6bc) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(a1687f01) SHA1(ff4c3e925ece14acfa6f51c87af310ebbe3af638) )
ROM_END
ROM_START( pc_tenis ) /* Tennis */
BIOS_CPU
ROM_LOAD( "te-u3", 0x0c000, 0x2000, CRC(6928e920) SHA1(0bdc64a6f37d8cf5e8efacc5004a6ae43a28cd60) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "te-u1", 0x0c000, 0x4000, CRC(8b2e3e81) SHA1(e54274c0b0d651458c5459d41872b1f99904d0fb) )
ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "te-u2", 0x00000, 0x2000, CRC(3a34c45b) SHA1(2cc26a01c38ead50503dccb3ee929ba7a2b6772c) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(bcc9a48e) SHA1(a293898f17b627cdf8e7a1074ef30ad8c2392977) )
ROM_END
ROM_START( pc_vball ) /* Volley Ball */
BIOS_CPU
ROM_LOAD( "vb-u3", 0x0c000, 0x2000, CRC(9104354e) SHA1(84374b1df747800f7e70b5fb6a16fd3607b724c9) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "vb-u1", 0x08000, 0x8000, CRC(35226b99) SHA1(548787ba5ca00290da4efc9af40054dc1889014c) )
ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "vb-u2", 0x00000, 0x2000, CRC(2415dce2) SHA1(fd89b4a542989a89c2d0467257dca57518bfa96b) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(f701863f) SHA1(78614e6b8a78384d9aeab439eb8d53a3691dd0a1) )
ROM_END
ROM_START( pc_mario ) /* Mario Bros. */
BIOS_CPU
ROM_LOAD( "ma-u3", 0x0c000, 0x2000, CRC(a426c5c0) SHA1(0cf31de3eb18f17830dd9aa3a33fe4a6947f6ceb) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "ma-u1", 0x0c000, 0x4000, CRC(75f6a9f3) SHA1(b6f88f7a2f9a49cc9182a244571730198f1edc4b) )
ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "ma-u2", 0x00000, 0x2000, CRC(10f77435) SHA1(a646c3443832ada84d31a3a8a4b34aebc17cecd5) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(79006635) SHA1(10dcb24fb7717b993110512115ab04310dc637d0) )
ROM_END
/* Gun Games */
ROM_START( pc_duckh ) /* Duck Hunt */
BIOS_CPU
ROM_LOAD( "u3", 0x0c000, 0x2000, CRC(2f9ec5c6) SHA1(1e1b835339b030605841a032f066ccb5ca1fef20) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "u1", 0x0c000, 0x4000, CRC(90ca616d) SHA1(b742576317cd6a04caac25252d5593844c9a0bb6) )
ROM_REGION( 0x04000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "u2", 0x00000, 0x2000, CRC(4e049e03) SHA1(ffad32a3bab2fb3826bc554b1b9838e837513576) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(8cd6aad6) SHA1(4543cdb55c3521e1b5d61f82d4800c414658fd6d) )
ROM_END
ROM_START( pc_hgaly ) /* Hogan's Alley */
BIOS_CPU
ROM_LOAD( "ha-u3", 0x0c000, 0x2000, CRC(a2525180) SHA1(9c981c1679c59c7b7c069f7d1cb86cb8aa280f22) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "ha-u1", 0x0c000, 0x4000, CRC(8963ae6e) SHA1(bca489ed0fb58e1e99f36c427bc0d7d805b6c61a) )
ROM_REGION( 0x04000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "ha-u2", 0x00000, 0x2000, CRC(5df42fc4) SHA1(4fcf23151d9f11c1ef1b1007dd8058f5d5fe9ab8) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(5ac61521) SHA1(75d2ad958336061e70049272ce4c88bff182f96d) )
ROM_END
ROM_START( pc_wgnmn ) /* Wild Gunman */
BIOS_CPU
ROM_LOAD( "wg-u3", 0x0c000, 0x2000, CRC(da08afe5) SHA1(0f505ccee372a37971bad7bbbb7341336ee70f97) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "wg-u1", 0x0c000, 0x4000, CRC(389960db) SHA1(6b38f2c86ef27f653a2bdb9c682ac0bc981c7db6) )
ROM_REGION( 0x04000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "wg-u2", 0x00000, 0x2000, CRC(a5e04856) SHA1(9194d89a34f687742216889cbb3e717a9ae81c92) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(def015a3) SHA1(b542828a74744d87331821635777d7715e22a15b) )
ROM_END
/* A-Board Games */
ROM_START( pc_tkfld ) /* Track & Field */
BIOS_CPU
ROM_LOAD( "u4tr", 0x0c000, 0x2000, CRC(70184fd7) SHA1(bc6f6f942948ddf5a7130d9688f12ef5511a7a30) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "u2tr", 0x08000, 0x8000, CRC(d7961e01) SHA1(064cb6e3e5525682a1805b01ba64f2fd75462496) )
ROM_REGION( 0x08000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "u3tr", 0x00000, 0x8000, CRC(03bfbc4b) SHA1(ffc4e0e1d858fb4472423ae1c1fdc1e8197c30f0) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(1e2e7f1e) SHA1(4b65f5b217586653a1d0da96539cc9bc50d989e2) )
ROM_END
ROM_START( pc_grdus ) /* Gradius */
BIOS_CPU
ROM_LOAD( "gr-u4", 0x0c000, 0x2000, CRC(27d76160) SHA1(605d58c57969c831778b95356fcf103a1d5f98a3) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "gr-u2", 0x08000, 0x8000, CRC(aa96889c) SHA1(e4380a7c0778541af8216e3ac1e14ff23fb074a9) )
ROM_REGION( 0x08000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "gr-u3", 0x00000, 0x8000, CRC(de963bec) SHA1(ecb76b5897658ebac31a07516bb2a5820279474f) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(b8d5bf8a) SHA1(1c208fa5409b6e21aa576e1b9e086e830dc26a1a) )
ROM_END
ROM_START( pc_grdue ) /* Gradius (Early version) */
BIOS_CPU
ROM_LOAD( "gr-u4", 0x0c000, 0x2000, CRC(27d76160) SHA1(605d58c57969c831778b95356fcf103a1d5f98a3) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "gr-u1e", 0x08000, 0x8000, CRC(9204a65d) SHA1(500693f8f65b1e2f09b722c5fa28b32088e22a29) )
ROM_REGION( 0x08000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "gr-u3", 0x00000, 0x8000, CRC(de963bec) SHA1(ecb76b5897658ebac31a07516bb2a5820279474f) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(b8d5bf8a) SHA1(1c208fa5409b6e21aa576e1b9e086e830dc26a1a) )
ROM_END
/* B-Board Games */
ROM_START( pc_rnatk ) /* Rush N' Attack */
BIOS_CPU
ROM_LOAD( "ra-u4", 0x0c000, 0x2000, CRC(ebab7f8c) SHA1(ae46e46d878cdbc28cd42b40dae1fd1a6c1b31ed) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "ra-u1", 0x10000, 0x10000, CRC(5660b3a6) SHA1(4e7ad9be59990e4a560d87a1bac9b708074e9db1) ) /* banked */
ROM_LOAD( "ra-u2", 0x20000, 0x10000, CRC(2a1bca39) SHA1(ca1eebf85bea85ce7bcdf38933ae495856e17ae1) ) /* banked */
/* No cart gfx - uses vram */
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(1f6596b2) SHA1(e50780241ae3a16811bd92eb366f642a4b5eadf3) )
ROM_END
ROM_START( pc_cntra ) /* Contra */
BIOS_CPU
ROM_LOAD( "u4ct", 0x0c000, 0x2000, CRC(431486cf) SHA1(8b8a2bcddb1dfa027c249b62659dcc7bb8ec2778) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "u1ct", 0x10000, 0x10000, CRC(9fcc91d4) SHA1(ad1742a0da87cf7f26f81a99f185f0c28b9e7e6e) ) /* banked */
ROM_LOAD( "u2ct", 0x20000, 0x10000, CRC(612ad51d) SHA1(4428e136b55778299bb269520b459c7112c0d6b2) ) /* banked */
/* No cart gfx - uses vram */
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(8ab3977a) SHA1(61d3a7981fbe8a76ab7eee032059d42b50892e97) )
ROM_END
ROM_START( pc_pwrst ) /* Pro Wrestling */
BIOS_CPU
ROM_LOAD( "pw-u4", 0x0c000, 0x2000, CRC(0f03d71b) SHA1(82b94c2e4568d6de4d8cff49f3e416005a2e22ec) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "pw-u1", 0x10000, 0x08000, CRC(6242c2ce) SHA1(ea7d1cf9dece021c9a40772af7c6dcaf58b10585) ) /* banked */
ROM_RELOAD( 0x18000, 0x08000 )
ROM_LOAD( "pw-u2", 0x20000, 0x10000, CRC(ef6aa17c) SHA1(52171699eaee0b811952c5706584cff4e7cfb39a) ) /* banked */
/* No cart gfx - uses vram */
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(4c6b7983) SHA1(377bd6267ae1d3ab13389a8adf894e116b3c9daa) )
ROM_END
ROM_START( pc_cvnia ) /* Castlevania */
BIOS_CPU
ROM_LOAD( "u4cv", 0x0c000, 0x2000, CRC(a2d4245d) SHA1(3703171d526e6de99e475afe0d942d69b89950a9) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "u1cv", 0x10000, 0x10000, CRC(add4fc52) SHA1(bbb4638a8e7660911896393d61580610a6535c62) ) /* banked */
ROM_LOAD( "u2cv", 0x20000, 0x10000, CRC(7885e567) SHA1(de1e5a5b4bbd0116c91564edc3d552239074e8ae) ) /* banked */
/* No cart gfx - uses vram */
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(7da2f045) SHA1(e6048a1f94103c2896eeb33dd7f6bc639831dd7d) )
ROM_END
ROM_START( pc_dbldr ) /* Double Dribble */
BIOS_CPU
ROM_LOAD( "dw-u4", 0x0c000, 0x2000, CRC(5006eef8) SHA1(6051d4750d95cdc0a71ecec40b5be4477921ca54) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "dw-u1", 0x10000, 0x10000, CRC(78e08e61) SHA1(a278e012ac89b8ae56d4a186c99f5ea2591f87b5) ) /* banked */
ROM_LOAD( "dw-u2", 0x20000, 0x10000, CRC(ab554cde) SHA1(86f5788f856dd9336eaaadf8d5295435b0421486) ) /* banked */
/* No cart gfx - uses vram */
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(9b5f4bd2) SHA1(998d2766763eb66f4052f9f16fbfb93d5b41a582) )
ROM_END
ROM_START( pc_rygar ) /* Rygar */
BIOS_CPU
ROM_LOAD( "ry-u4", 0x0c000, 0x2000, CRC(7149071b) SHA1(fbc7157eb16eedfc8808ab6224406037e41c44ef) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "ry-u1", 0x10000, 0x10000, CRC(aa2e54bc) SHA1(b44cd385d4019a535a4924a093ee9b097b850db4) ) /* banked */
ROM_LOAD( "ry-u2", 0x20000, 0x10000, CRC(80cb158b) SHA1(012f378e0b5a5bbd32ad837cdfa096df6843d274) ) /* banked */
/* No cart gfx - uses vram */
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(b69309ab) SHA1(a11ae46ed4c6ae5c22bab36593a53535a257fd4f) )
ROM_END
ROM_START( pc_trjan ) /* Trojan */
BIOS_CPU
ROM_LOAD( "tj-u4", 0x0c000, 0x2000, CRC(10835e1d) SHA1(ae0f3ec8d52707088af79d00bca0871af105da36) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "tj-u1", 0x10000, 0x10000, CRC(335c0e62) SHA1(62164235dc8e2a4419cb38f4cacf7ba2f3eb536b) ) /* banked */
ROM_LOAD( "tj-u2", 0x20000, 0x10000, CRC(c0ddc79e) SHA1(5c23bb54eda6a55357e97d7322db453170e27598) ) /* banked */
/* No cart gfx - uses vram */
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(14df772f) SHA1(bb1c58d53ee8c059b3a06d43ee4faf849d4f005f) )
ROM_END
/* C-Board Games */
ROM_START( pc_goons ) /* The Goonies */
BIOS_CPU
ROM_LOAD( "gn-u3", 0x0c000, 0x2000, CRC(33adedd2) SHA1(c85151819e2550e60cbe8f7d247a8da88cb805a4) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x10000, "cart", 0 )
ROM_LOAD( "gn-u1", 0x08000, 0x8000, CRC(efeb0c34) SHA1(8e0374858dce0a10ffcfc5109f8287ebdea388e8) )
ROM_REGION( 0x04000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "gn-u2", 0x00000, 0x4000, CRC(0f9c7f49) SHA1(f2fcf55d22a38a01df45393c90c73ff14b3b647c) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(cdd62d08) SHA1(e2752127ac0b1217f0216854b68a5e5957a565b3) )
ROM_END
/* D-Board Games */
ROM_START( pc_radrc ) /* Rad Racer */
BIOS_CPU
ROM_LOAD( "rc-u5", 0x0c000, 0x2000, CRC(ae60fd08) SHA1(fa7c201499cd702d8eef545bb05b0df833d2b406) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "rc-u1", 0x10000, 0x10000, CRC(dce369a7) SHA1(d7f293956d605af7cb6b81dbb80eaa4ad482ac0e) )
ROM_LOAD( "rc-u2", 0x20000, 0x10000, CRC(389a79b5) SHA1(58de166d757e58c515272efc9d0bc03d1eb1086d) ) /* banked */
/* No cart gfx - uses vram */
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(17c880f9) SHA1(41be451fcc46a746d5d31dba09f524c0af0cd214) )
ROM_END
ROM_START( pc_mtoid ) /* Metroid */
BIOS_CPU
ROM_LOAD( "mt-u5", 0x0c000, 0x2000, CRC(3dc25049) SHA1(bf0f72db9e6904f065801e490014405a734eb04e) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "mt-u1", 0x10000, 0x10000, CRC(4006ff10) SHA1(9563a6b4ff91c78ab9cbf97ea47a3f62524844d2) )
ROM_LOAD( "mt-u2", 0x20000, 0x10000, CRC(ace6bbd8) SHA1(ac9c22bcc33aeee18b4f42a5a628bc5e147b4c29) ) /* banked */
/* No cart gfx - uses vram */
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(efab54c9) SHA1(1d0122b7c90a364d54bf6eaa37ce439d706a4357) )
ROM_END
/* E-Board Games */
ROM_START( pc_miket ) /* Mike Tyson's Punchout */
BIOS_CPU
ROM_LOAD( "u5pt", 0x0c000, 0x2000, CRC(b434e567) SHA1(8e23c580b5556aacbeeb36fe36e778137c780903) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "u1pt", 0x10000, 0x20000, CRC(dfd9a2ee) SHA1(484a6793949b8cbbc65e3bcc9188bc63bb17b575) ) /* banked */
ROM_REGION( 0x20000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "u3pt", 0x00000, 0x20000, CRC(570b48ea) SHA1(33de517b16b61625909d2eb5307c08b337b542c4) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(60f7ea1d) SHA1(fcc04cbd8ed233bb1358fc55800f9bb6c75b195b) )
ROM_END
/* F-Board Games */
ROM_START( pc_ngaid ) /* Ninja Gaiden */
BIOS_CPU
ROM_LOAD( "u2ng", 0x0c000, 0x2000, CRC(7505de96) SHA1(a9cbe6d4d2d33aeecb3e041315fbb266c886ebf1) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "u4ng", 0x10000, 0x20000, CRC(5f1e7b19) SHA1(ead83487d9be2f1d16c1d0b438a361a06508cd85) ) /* banked */
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "u1ng", 0x00000, 0x20000, CRC(eccd2dcb) SHA1(2a319086f7c22b8fe7ca8ab72436a7c8d07b915e) ) /* banked */
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(ec5641d6) SHA1(05f546aec5a9db167688a9abbac922f5ced7f7c5) )
ROM_END
ROM_START( pc_ddrgn ) /* Double Dragon */
BIOS_CPU
ROM_LOAD( "wd-u2", 0x0c000, 0x2000, CRC(dfca1578) SHA1(6bc00bb2913edeaecd885fee449b8a9955c509bf) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "wd-u4", 0x10000, 0x20000, CRC(05c97f64) SHA1(36913e92943c6bb40521ab13c843691a8db4cbc9) ) /* banked */
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "wd-u1", 0x00000, 0x20000, CRC(5ebe0fd0) SHA1(4a948c9784433e051f1015a6b6e985a98b81b80d) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(f9739d62) SHA1(c9574ed8f24ffb7ab5a6bb1b79805fb6dc6e991a) )
ROM_END
ROM_START( pc_drmro ) /* Dr Mario */
BIOS_CPU
ROM_LOAD( "vu-u2", 0x0c000, 0x2000, CRC(4b7869ac) SHA1(37afb84d963233ad92cc424fcf992aa76ea0599f) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "vu-u4", 0x10000, 0x08000, CRC(cb02a930) SHA1(6622564abc5ce28f523b0da95054d1ea825f7bd5) ) /* banked */
ROM_RELOAD( 0x18000, 0x08000 )
ROM_RELOAD( 0x20000, 0x08000 )
ROM_RELOAD( 0x28000, 0x08000 )
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "vu-u1", 0x00000, 0x08000, CRC(064d4ab3) SHA1(bcdc34435bf631422ea2701f00744a3606c6dce8) )
ROM_RELOAD( 0x08000, 0x08000 )
ROM_RELOAD( 0x10000, 0x08000 )
ROM_RELOAD( 0x18000, 0x08000 )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(1b26e58c) SHA1(bd2d81d3cc54966ef154b3487d43ecbc316d6d22) )
ROM_END
ROM_START( pc_virus ) /* Virus (from location test board) */
BIOS_CPU
ROM_LOAD( "u2", 0x0c000, 0x2000, CRC(d2764d91) SHA1(393b54148e9250f14d83318aed6686cc04b923e6) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "virus 3-12-90.u4", 0x10000, 0x08000, CRC(a5239a77) SHA1(f1e79906bcbee4e0c62036d6ba95385b95daa53f) ) /* banked */
ROM_RELOAD( 0x18000, 0x08000 )
ROM_RELOAD( 0x20000, 0x08000 )
ROM_RELOAD( 0x28000, 0x08000 )
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "virus 3-12-90.u1", 0x00000, 0x08000, CRC(d233c2ae) SHA1(0de301894edfc50b26b6e4cf3697a15065035c5e) )
ROM_RELOAD( 0x08000, 0x08000 )
ROM_RELOAD( 0x10000, 0x08000 )
ROM_RELOAD( 0x18000, 0x08000 )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.u6", 0x00, 0x10, CRC(5b4f6930) SHA1(bd152d6907fe55f80125b34360fdb44cfc348906) )
ROM_END
ROM_START( pc_bload ) /* Bases Loaded (from location test board) */
BIOS_CPU
ROM_LOAD( "new game 1.u2", 0x0c000, 0x2000, CRC(43879cc5) SHA1(dfde35e255825fffc22b5495c1e3bc1cfad7e9c0) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "u3", 0x10000, 0x20000, CRC(14a77a61) SHA1(6283f0dc8e9a2bbcd7ed452aa30cf646a6526837) ) /* banked */
ROM_LOAD( "bases loaded 9a70 prg-h.u4", 0x30000, 0x20000, CRC(f158f941) SHA1(e58bdcfb62d25348f5c81b2cf8001fc2c9e04eb2) ) /* banked */
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "u1", 0x00000, 0x20000, CRC(02ff6ae9) SHA1(ba15b91f917c9e722d1d8b24b5783bd5eac6a4e7) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.u6", 0x00, 0x10, CRC(5b4f6930) SHA1(bd152d6907fe55f80125b34360fdb44cfc348906) )
ROM_END
ROM_START( pc_ftqst ) /* Fester's Quest */
BIOS_CPU
ROM_LOAD( "eq-u2", 0x0c000, 0x2000, CRC(85326040) SHA1(866bd15e77d911147b191c13d062cef7ae4dcf62) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "eq-u4", 0x10000, 0x20000, CRC(953a3eaf) SHA1(a22c0a64d63036b6b8d147994a3055e1040a5282) ) /* banked */
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "eq-u1", 0x00000, 0x20000, CRC(0ca17ab5) SHA1(a8765d6245f64b2d94c454662a24f8d8e277aa5a) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(1c601cd7) SHA1(bc13067475aac4a7b8bf5f0df96bdd5ba33f1cd7) )
ROM_END
ROM_START( pc_rcpam ) /* RC Pro Am */
BIOS_CPU
ROM_LOAD( "pm-u2", 0x0c000, 0x2000, CRC(358c2de7) SHA1(0f37d7e8303a7b87ad0584c6e0a79f3029c529f8) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "pm-u4", 0x10000, 0x08000, CRC(82cfde25) SHA1(4eb9abe896e597f8ecabb4f044d8c4b545a51b11) ) /* banked */
ROM_RELOAD( 0x18000, 0x08000 )
ROM_RELOAD( 0x20000, 0x08000 )
ROM_RELOAD( 0x28000, 0x08000 )
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "pm-u1", 0x00000, 0x08000, CRC(83c90d47) SHA1(26917e1e016d2be0fa48d766d332779aae12b053) )
ROM_RELOAD( 0x08000, 0x08000 )
ROM_RELOAD( 0x10000, 0x08000 )
ROM_RELOAD( 0x18000, 0x08000 )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(d71d8085) SHA1(67e30ff0c31c6600890408c4dc4d0d2f19856363) )
ROM_END
ROM_START( pc_rrngr ) /* Rescue Rangers */
BIOS_CPU
ROM_LOAD( "ru-u2", 0x0c000, 0x2000, CRC(2a4bfc4b) SHA1(87f58659d43a236af22682df4bd01593b69c9975) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "ru-u4", 0x10000, 0x20000, CRC(02931525) SHA1(28ddca5d299e7894e3c3aa0a193684ca3e384ee9) ) /* banked */
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "ru-u1", 0x00000, 0x20000, CRC(218d4224) SHA1(37a729021173bec08a8497ad03fd58379b0fce39) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(1c2e1865) SHA1(ab2aa76d74c9e76c7ee3f9a211b1aefe5708a23f) )
ROM_END
ROM_START( pc_ynoid ) /* Yo! Noid */
BIOS_CPU
ROM_LOAD( "yc-u2", 0x0c000, 0x2000, CRC(0449805c) SHA1(3f96687eae047d1f8095fbb55c0659c9b0e10166) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "yc-u4", 0x10000, 0x20000, CRC(4affeee7) SHA1(54da2aa7ca56d9b593c8bcabf0bb1d701439013d) ) /* banked */
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "yc-u1", 0x00000, 0x20000, CRC(868f7343) SHA1(acb6f6eb9e8beb0636c59a999c8f5920ef7786a3) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(8c376465) SHA1(39b06fd2ecd5f06b90b2fe06406c9155f5601bd8) )
ROM_END
ROM_START( pc_tmnt ) /* Teenage Mutant Ninja Turtles */
BIOS_CPU
ROM_LOAD( "u2u2", 0x0c000, 0x2000, CRC(bdce58c0) SHA1(abaf89c0ac55cce816a7c6542a868ab47e02d550) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "u4u2", 0x10000, 0x20000, CRC(0ccd28d5) SHA1(05606cafba838eeb36198b5e5e9d11c3729971b3) ) /* banked */
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "u1u2", 0x00000, 0x20000, CRC(91f01f53) SHA1(171ed0792f3ca3f195145000d96b91aa57898773) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(f5a38e98) SHA1(26ef27294fc14d84920132023fbcf406d89ce2ee) )
ROM_END
ROM_START( pc_bstar ) /* Baseball Stars */
BIOS_CPU
ROM_LOAD( "b9-u2", 0x0c000, 0x2000, CRC(69f3fd7c) SHA1(1cfaa40f18b1455bb41ec0e57d6a227ed3e582eb) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "b9-u4", 0x10000, 0x20000, CRC(d007231a) SHA1(60690eaeacb79dbcab7dfe1c1e40da1aac235793) ) /* banked */
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "b9-u1", 0x00000, 0x20000, CRC(ce149864) SHA1(00c88525756a360f42b27f0e2afaa0a19c2645a6) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(3e871350) SHA1(b338f9ef4e18d14843c6a1e8ecb974bca1df73d4) )
ROM_END
ROM_START( pc_tbowl ) /* Tecmo Bowl */
BIOS_CPU
ROM_LOAD( "tw-u2", 0x0c000, 0x2000, CRC(162aa313) SHA1(d0849ce87969c077fc14790ce5658e9857035413) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x30000, "cart", 0 )
ROM_LOAD( "tw-u4", 0x10000, 0x20000, CRC(4f0c69be) SHA1(c0b09dc81070b935b3c621b07deb62dfa521a396) ) /* banked */
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "tw-u1", 0x00000, 0x20000, CRC(44b078ef) SHA1(ae0c24f4ddd822b19c60e31257279b33b5f3fcad) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(18b2d1d3) SHA1(f4d023531b3d69cad4c9c511878e5aa6afb0ac59) )
ROM_END
/* G-Board Games */
ROM_START( pc_smb3 ) /* Super Mario Bros 3 */
BIOS_CPU
ROM_LOAD( "u3um", 0x0c000, 0x2000, CRC(45e92f7f) SHA1(9071d5f18639ac58d6d4d72674856f9ecab911f0) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "u4um", 0x10000, 0x20000, CRC(590b4d7c) SHA1(ac45940b71215a3a48983e22e1c7e71a71642b91) ) /* banked */
ROM_LOAD( "u5um", 0x30000, 0x20000, CRC(bce25425) SHA1(69468643a3a8b9220d675e2cdc4245ada81a492c) ) /* banked */
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "u1um", 0x00000, 0x20000, CRC(c2928c49) SHA1(2697d1f21b72a6d8e7d2a2d2c51c9c5550f68b56) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(e48f4945) SHA1(66fe537cfe540317d6194847321ce4a9bdf0bba4) )
ROM_END
ROM_START( pc_gntlt ) /* Gauntlet */
BIOS_CPU
ROM_LOAD( "u3gl", 0x0c000, 0x2000, CRC(57575b92) SHA1(7ac633f253496f353d388bef30e6ec74a3d18814) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "gl-0.prg",0x10000, 0x20000, CRC(b19c48a5) SHA1(4ba8674cec6fa8b0b4d96a7b00d4883a9e58a0a9) ) /* banked */
ROM_RELOAD( 0x30000, 0x20000 )
ROM_REGION( 0x010000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "gl-0.chr", 0x00000, 0x10000, CRC(22af8849) SHA1(01054943c1d069f5f535e93f969a5b6bfb958e0b) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(ba7f2e13) SHA1(8b9ee3b18bcb4b258a46d1c900b18a9cb2594046) )
ROM_END
ROM_START( pc_pwbld ) /* Power Blade */
BIOS_CPU
ROM_LOAD( "7t-u3", 0x0c000, 0x2000, CRC(edcc21c6) SHA1(5d73c6a747cfe951dc7c6ddfbb29859e9548aded) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "7t-u5", 0x10000, 0x20000, CRC(faa957b1) SHA1(612c4823ed588652a78017096a6d76dd8064807a) ) /* banked */
ROM_RELOAD( 0x30000, 0x20000 )
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "7t-u1", 0x00000, 0x20000, CRC(344be4a6) SHA1(2894292544f4315df44cda1bdc96047453da03e8) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(31a05a48) SHA1(8b340600feae03bb5cdab852a9879ecffcc8a2b9) )
ROM_END
ROM_START( pc_ngai3 ) /* Ninja Gaiden 3 */
BIOS_CPU
ROM_LOAD( "u33n", 0x0c000, 0x2000, CRC(c7ba0f59) SHA1(a4822035a10a2b5de3517b461dd357b2fa5da917) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "u53n", 0x10000, 0x20000, CRC(f0c77dcb) SHA1(bda1184e27f3c3e92e58519508dd281b06c70d9b) ) /* banked */
ROM_RELOAD( 0x30000, 0x20000 )
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "u13n", 0x00000, 0x20000, CRC(584bcf5d) SHA1(f4582e2a382c8424f839e848e95e88a7f46307dc) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(13755943) SHA1(b7d809b0f60ef489777ccb35868f5c1e777356e0) )
ROM_END
// this is identcal to the USA NES release with the generic 'New Game 2' menu rom.
// TT-CHR.U1 = nes-ni-0 chr nes:ttoonadvu Tiny Toon Adventures (USA)
// TT-GM2.U3 = u2 pc_virus Virus (Dr. Mario prototype, PlayChoice-10)
// TT-PRG.U5 = nes-ni-0 prg nes:ttoonadvu Tiny Toon Adventures (USA)
ROM_START( pc_ttoon ) /* Tiny Toon Adventures */
BIOS_CPU
ROM_LOAD( "tt-gm2.u3", 0x0c000, 0x2000, CRC(d2764d91) SHA1(393b54148e9250f14d83318aed6686cc04b923e6) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "tt-prg.u5", 0x10000, 0x20000, CRC(9cb55b96) SHA1(437c326a4575895b9d7e567cab4f70b2f44ed8dd) ) /* banked */
ROM_RELOAD( 0x30000, 0x20000 )
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "tt-chr.u1", 0x00000, 0x20000, CRC(a024ae14) SHA1(2e797a173161a61c14ce299e3c5a31c6029f2b50) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.u6", 0x00, 0x10, CRC(5b4f6930) SHA1(bd152d6907fe55f80125b34360fdb44cfc348906) )
ROM_END
ROM_START( pc_radr2 ) /* Rad Racer II */
BIOS_CPU
ROM_LOAD( "qr-u3", 0x0c000, 0x2000, CRC(0c8fea63) SHA1(7ac04b151df732bd16708655352b7f13926f004f) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "qr-u5", 0x10000, 0x10000, CRC(ab90e397) SHA1(0956f7d9a216549dbd80b1dbf2653b36a320d0ab) ) /* banked */
ROM_RELOAD( 0x20000, 0x10000 )
ROM_RELOAD( 0x30000, 0x10000 )
ROM_RELOAD( 0x40000, 0x10000 )
ROM_REGION( 0x010000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "qr-u1", 0x00000, 0x10000, CRC(07df55d8) SHA1(dd0fa0a79d30eb04917d7309a62adfb037ef9ca5) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(40c4f294) SHA1(3fcac63fe6f147b662d59d25f905f797a1f5d0db) )
ROM_END
ROM_START( pc_rkats ) /* Rockin' Kats */
BIOS_CPU
ROM_LOAD( "7a-u3", 0x0c000, 0x2000, CRC(352b1e3c) SHA1(bb72b586ec4b482aef462b017de5662d83631df1) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "7a-u5", 0x10000, 0x20000, CRC(319ccfcc) SHA1(06e1c34af917b84a990db895c7b44df1b3393c96) ) /* banked */
ROM_RELOAD( 0x30000, 0x20000 )
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "7a-u1", 0x00000, 0x20000, CRC(487aa440) SHA1(ee7ebbcf89c81ba59beda1bd27289dae21bb8071) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(56ab5bf9) SHA1(9546f6e20fdb13146c5db5353a1cb2a95931d909) )
ROM_END
ROM_START( pc_suprc ) /* Super C */
BIOS_CPU
ROM_LOAD( "ue-u3", 0x0c000, 0x2000, CRC(a30ca248) SHA1(19feb1b4f749768773e0d24777d7e60b2b6260e2) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "ue-u5", 0x10000, 0x20000, CRC(c7fbecc3) SHA1(2653456c91031dfa73a50cab3835068a7bface8d) ) /* banked */
ROM_RELOAD( 0x30000, 0x20000 )
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "ue-u1", 0x00000, 0x20000, CRC(153295c1) SHA1(4ff1caaedca52fb9bb0ca6c8fac24edda77308d7) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(d477095e) SHA1(a179dffe529889f8e17e9f04958fea28611df0d3) )
ROM_END
ROM_START( pc_tmnt2 ) /* Teenage Mutant Ninja Turtles II */
BIOS_CPU
ROM_LOAD( "2n-u3", 0x0c000, 0x2000, CRC(65298370) SHA1(fd120f43e465a2622f2e2679ace2fb0fe7e709b1) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "2n-u5", 0x10000, 0x40000, CRC(717e1c46) SHA1(b49cc88e026dac7f5ba96f5c16bcb897addbe259) ) /* banked */
ROM_REGION( 0x040000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "2n-u1", 0x00000, 0x40000, CRC(0dbc575f) SHA1(8094278cf3267757953ab761dbccf38589142376) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(237e8519) SHA1(81b368d0784e4172c5cf9f4f4b92e29e05d34ae7) )
ROM_END
ROM_START( pc_wcup ) /* Nintendo World Cup */
BIOS_CPU
ROM_LOAD( "xz-u3", 0x0c000, 0x2000, CRC(c26cb22f) SHA1(18fea97b498812915bbd53a20b4f0a2130de6faf) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "xz-u5", 0x10000, 0x20000, CRC(314ee295) SHA1(0a5963feb5a6b47f0e7bea5bdd3d5835300af7b6) ) /* banked */
ROM_RELOAD( 0x30000, 0x20000 )
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "xz-u1", 0x00000, 0x20000, CRC(92477d53) SHA1(33225bd5ee72f92761fdce931c93dd54e6885bd4) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(e17e1d76) SHA1(3e4e1ddcc8524bf451cb568b1357ec1f0a8be44c) )
ROM_END
ROM_START( pc_mman3 ) /* Mega Man 3 */
BIOS_CPU
ROM_LOAD( "xu-u3", 0x0c000, 0x2000, CRC(c3984e09) SHA1(70d7e5d9cf9b1f358e1be84a0e8c5997b1aae2d9) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "xu-u4", 0x10000, 0x20000, CRC(98a3263c) SHA1(02c8d8301fb220c3f4fd82bdc8cd2388b975fd05) ) /* banked */
ROM_LOAD( "xu-u5", 0x30000, 0x20000, CRC(d365647a) SHA1(4f39de6249c5f8b7cfa34bc955fd7ea6251569b5) ) /* banked */
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "xu-u1", 0x00000, 0x20000, CRC(4028916e) SHA1(f986f72ba5284129620d31c0779ac6d50638e6f1) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(0fe6e900) SHA1(544d8af1aa9186bf76d0a35e78b20e94d3afbcb5) )
ROM_END
ROM_START( pc_smb2 ) /* Super Mario Bros 2 */
BIOS_CPU
ROM_LOAD( "mw-u3", 0x0c000, 0x2000, CRC(beaeb43a) SHA1(c7dd186d6167e39924a000eb80bd33beedb2b8c8) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "mw-u5", 0x10000, 0x20000, CRC(07854b3f) SHA1(9bea58ba97730c84232a4acbb23c3ea7bce14ec5) ) /* banked */
ROM_RELOAD( 0x30000, 0x20000 )
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "mw-u1", 0x00000, 0x20000, CRC(f2ba1170) SHA1(d9976b677ad222b76fbdaf31713374e2f283d44e) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(372f4e84) SHA1(cdf221d49f3b454997d696f213d60b5dce0ce9fb) )
ROM_END
ROM_START( pc_ngai2 ) /* Ninja Gaiden 2 */
BIOS_CPU
ROM_LOAD( "nw-u3", 0x0c000, 0x2000, CRC(bc178cde) SHA1(2613f501f92d358f0085aa7002c752cb9a8521ca) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "nw-u5", 0x10000, 0x20000, CRC(c43da8e2) SHA1(702a4cf2f57fff7183f2d3c18b8997a38cadc6cd) ) /* banked */
ROM_RELOAD( 0x30000, 0x20000 )
ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "nw-u1", 0x00000, 0x20000, CRC(8e0c8bb0) SHA1(6afe24b8e57f5a2174000a706b66209d7e310ed6) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(682dffd1) SHA1(87ea54b3d725a552b397ccb2af0ccf8bd6452a7c) )
ROM_END
/* H-Board Games */
ROM_START( pc_pinbt ) /* PinBot */
BIOS_CPU
ROM_LOAD( "io-u3", 0x0c000, 0x2000, CRC(15ba8a2e) SHA1(e64180b2f12189e3ac1e155f3544f28af8003f97) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "io-u5", 0x10000, 0x20000, CRC(9f75b83b) SHA1(703e41d4c1a4716b324dece6df2ce12a847f082c) ) /* banked */
ROM_RELOAD( 0x30000, 0x20000 ) /* banked */
ROM_REGION( 0x010000, "gfx2", 0 ) /* cart gfx */
ROM_LOAD( "io-u1", 0x00000, 0x10000, CRC(9089fc24) SHA1(0bc92a0853c5ebc47c3adbc4e919ea41a55297d0) )
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(ac75f323) SHA1(4bffff024132d6f71d6aa55e24af400d2915aca4) )
ROM_END
/* i-Board Games */
ROM_START( pc_cshwk ) /* Captain Sky Hawk */
BIOS_CPU
ROM_LOAD( "yw-u3", 0x0c000, 0x2000, CRC(9d988209) SHA1(b355911d31dfc611b9e90cca82fc10035483b89c) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "yw-u1", 0x10000, 0x20000, CRC(a5e0208a) SHA1(e12086a3f1a3b5e9ec035cb778505e43f501416a) ) /* banked */
ROM_RELOAD( 0x30000, 0x20000 )
/* No cart gfx - uses vram */
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(eb1c794f) SHA1(d32f841fd4306389d716229da9bffea909186689) )
ROM_END
ROM_START( pc_sjetm ) /* Solar Jetman */
BIOS_CPU
ROM_LOAD( "lj-u3", 0x0c000, 0x2000, CRC(273d8e75) SHA1(b13b97545b39f6b0459440fb6594ebe03366dfc9) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "lj-u1", 0x10000, 0x40000, CRC(8111ba08) SHA1(caa4d1ab710bd766f8505ef24f5702dac6e988af) ) /* banked */
/* No cart gfx - uses vram */
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(f3ae712a) SHA1(51f443c65e64f1a9eb565ce017b50ec9bd4a5520) )
ROM_END
/* K-Board Games */
ROM_START( pc_moglf ) /* Mario Open Golf */
BIOS_CPU
ROM_LOAD( "ug-u2", 0x0c000, 0x2000, CRC(e932fe2b) SHA1(563380482525fdadd05fced2af61d5198d1654a5) ) /* extra bios code for this game */
BIOS_GFX
ROM_REGION( 0x50000, "cart", 0 )
ROM_LOAD( "ug-u4", 0x10000, 0x40000, CRC(091a6a4c) SHA1(2d5ac7c65ce63d409b6e0b2e2185d81bc7c57c69) ) /* banked */
/* No cart gfx - uses vram */
ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
ROM_LOAD( "security.prm", 0x00, 0x10, CRC(633766d5) SHA1(3a2564f3a2daf3a789e4c4056822f12243c89619) )
ROM_END
/***************************************************************************
BIOS driver(s)
***************************************************************************/
ROM_START( playch10 )
BIOS_CPU
BIOS_GFX
ROM_REGION( 0x50000, "cart", ROMREGION_ERASE00 )
ROM_END
/******************************************************************************/
/* A dummy driver, so that the bios can be debugged, and to serve as */
/* parent for the other drivers, so that we do not have to include */
/* them in every zip file */
GAME( 1986, playch10, 0, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo of America", "PlayChoice-10 BIOS", MACHINE_IS_BIOS_ROOT )
/******************************************************************************/
void playch10_state::init_virus()
{
uint8_t *ROM = memregion("rp5h01")->base();
uint32_t len = memregion("rp5h01")->bytes();
for (int i = 0; i < len; i++)
{
ROM[i] = bitswap<8>(ROM[i],0,1,2,3,4,5,6,7);
ROM[i] ^= 0xff;
}
/* common init */
init_pcfboard();
}
void playch10_state::init_ttoon()
{
uint8_t *ROM = memregion("rp5h01")->base();
uint32_t len = memregion("rp5h01")->bytes();
for (int i = 0; i < len; i++)
{
ROM[i] = bitswap<8>(ROM[i],0,1,2,3,4,5,6,7);
ROM[i] ^= 0xff;
}
/* common init */
init_pcgboard();
}
/* YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR */
/* Standard Games */
GAME( 1983, pc_tenis, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Tennis (PlayChoice-10)", 0 )
GAME( 1983, pc_mario, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Mario Bros. (PlayChoice-10)", 0 )
GAME( 1984, pc_bball, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo of America", "Baseball (PlayChoice-10)", 0 )
GAME( 1984, pc_bfght, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Balloon Fight (PlayChoice-10)", 0 )
GAME( 1984, pc_ebike, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Excite Bike (PlayChoice-10)", 0 )
GAME( 1984, pc_golf, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Golf (PlayChoice-10)", 0 )
GAME( 1985, pc_kngfu, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Irem (Nintendo license)", "Kung Fu (PlayChoice-10)", 0 )
GAME( 1985, pc_smb, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Super Mario Bros. (PlayChoice-10)", 0 )
GAME( 1986, pc_vball, playch10, playch10, playch10, playch10_state, init_playch10, ROT0, "Nintendo", "Volley Ball (PlayChoice-10)", 0 )
GAME( 1987, pc_1942, playch10, playch10, playch10, playch10_state, init_pc_hrz, ROT0, "Capcom", "1942 (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS )
/* Gun Games */
GAME( 1984, pc_duckh, playch10, playch10, playc10g, playch10_state, init_pc_gun, ROT0, "Nintendo", "Duck Hunt (PlayChoice-10)", 0 )
GAME( 1984, pc_hgaly, playch10, playch10, playc10g, playch10_state, init_pc_gun, ROT0, "Nintendo", "Hogan's Alley (PlayChoice-10)", 0 )
GAME( 1984, pc_wgnmn, playch10, playch10, playc10g, playch10_state, init_pc_gun, ROT0, "Nintendo", "Wild Gunman (PlayChoice-10)", 0 )
/* A-Board Games */
GAME( 1986, pc_grdus, playch10, playch10, playch10, playch10_state, init_pcaboard, ROT0, "Konami", "Gradius (PlayChoice-10)" , 0) // date: 860917
GAME( 1986, pc_grdue, pc_grdus, playch10, playch10, playch10_state, init_pcaboard, ROT0, "Konami", "Gradius (PlayChoice-10, older)" , 0) // date: 860219
GAME( 1987, pc_tkfld, playch10, playch10, playch10, playch10_state, init_pcaboard, ROT0, "Konami (Nintendo of America license)", "Track & Field (PlayChoice-10)", 0 )
/* B-Board Games */
GAME( 1986, pc_pwrst, playch10, playch10, playch10, playch10_state, init_pcbboard, ROT0, "Nintendo", "Pro Wrestling (PlayChoice-10)", 0 )
GAME( 1986, pc_trjan, playch10, playch10, playch10, playch10_state, init_pcbboard, ROT0, "Capcom USA (Nintendo of America license)", "Trojan (PlayChoice-10)", 0 )
GAME( 1987, pc_cvnia, playch10, playch10, playch10, playch10_state, init_pcbboard, ROT0, "Konami (Nintendo of America license)", "Castlevania (PlayChoice-10)", 0 )
GAME( 1987, pc_dbldr, playch10, playch10, playch10, playch10_state, init_pcbboard, ROT0, "Konami (Nintendo of America license)", "Double Dribble (PlayChoice-10)", 0 )
GAME( 1987, pc_rnatk, playch10, playch10, playch10, playch10_state, init_pcbboard, ROT0, "Konami (Nintendo of America license)", "Rush'n Attack (PlayChoice-10)", 0 )
GAME( 1987, pc_rygar, playch10, playch10, playch10, playch10_state, init_pcbboard, ROT0, "Tecmo (Nintendo of America license)", "Rygar (PlayChoice-10)", 0 )
GAME( 1988, pc_cntra, playch10, playch10, playch10, playch10_state, init_pcbboard, ROT0, "Konami (Nintendo of America license)", "Contra (PlayChoice-10)", 0 )
/* C-Board Games */
GAME( 1986, pc_goons, playch10, playch10, playch10, playch10_state, init_pccboard, ROT0, "Konami", "The Goonies (PlayChoice-10)", 0 )
/* D-Board Games */
GAME( 1986, pc_mtoid, playch10, playch10, playch10, playch10_state, init_pcdboard_2, ROT0, "Nintendo", "Metroid (PlayChoice-10)", 0 )
GAME( 1987, pc_radrc, playch10, playch10, playch10, playch10_state, init_pcdboard, ROT0, "Square", "Rad Racer (PlayChoice-10)", 0 )
/* E-Board Games */
GAME( 1987, pc_miket, playch10, playchnv, playch10, playch10_state, init_pceboard, ROT0, "Nintendo", "Mike Tyson's Punch-Out!! (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS )
/* F-Board Games */
GAME( 1987, pc_rcpam, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Rare", "R.C. Pro-Am (PlayChoice-10)", 0 )
GAME( 1987, pc_rrngr, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Capcom USA (Nintendo of America license)", "Chip'n Dale: Rescue Rangers (PlayChoice-10)", 0 )
GAME( 1988, pc_ddrgn, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Technos Japan", "Double Dragon (PlayChoice-10)", 0 )
GAME( 1989, pc_ngaid, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden (PlayChoice-10)", 0 )
GAME( 1989, pc_tmnt, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Konami (Nintendo of America license)", "Teenage Mutant Ninja Turtles (PlayChoice-10)", 0 )
GAME( 1989, pc_ftqst, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Sunsoft (Nintendo of America license)", "Uncle Fester's Quest: The Addams Family (PlayChoice-10)", 0 )
GAME( 1989, pc_bstar, playch10, playch10, playch10, playch10_state, init_pcfboard_2, ROT0, "SNK (Nintendo of America license)", "Baseball Stars: Be a Champ! (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1989, pc_tbowl, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Tecmo (Nintendo of America license)", "Tecmo Bowl (PlayChoice-10)", 0 )
GAME( 1990, pc_virus, pc_drmro, playch10, playch10, playch10_state, init_virus, ROT0, "Nintendo", "Virus (Dr. Mario prototype, PlayChoice-10)", 0 )
GAME( 1990, pc_drmro, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Nintendo", "Dr. Mario (PlayChoice-10)", 0 )
GAME( 1990, pc_bload, playch10, playch10, playch10, playch10_state, init_virus, ROT0, "Jaleco (Nintendo of America license)", "Bases Loaded (Prototype, PlayChoice-10)", 0 )
GAME( 1990, pc_ynoid, playch10, playch10, playch10, playch10_state, init_pcfboard, ROT0, "Capcom USA (Nintendo of America license)", "Yo! Noid (PlayChoice-10)", 0 )
/* G-Board Games */
GAME( 1988, pc_smb2, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Nintendo", "Super Mario Bros. 2 (PlayChoice-10)", 0 )
GAME( 1988, pc_smb3, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Nintendo", "Super Mario Bros. 3 (PlayChoice-10)", 0 )
GAME( 1990, pc_mman3, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Capcom USA (Nintendo of America license)", "Mega Man III (PlayChoice-10)", 0 )
GAME( 1990, pc_suprc, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Konami (Nintendo of America license)", "Super C (PlayChoice-10)", 0 )
GAME( 1990, pc_tmnt2, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Konami (Nintendo of America license)", "Teenage Mutant Ninja Turtles II: The Arcade Game (PlayChoice-10)", 0 )
GAME( 1990, pc_wcup, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Technos Japan (Nintendo license)", "Nintendo World Cup (PlayChoice-10)", 0 )
GAME( 1990, pc_ngai2, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden Episode II: The Dark Sword of Chaos (PlayChoice-10)", 0 )
GAME( 1991, pc_ngai3, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden Episode III: The Ancient Ship of Doom (PlayChoice-10)", 0 )
GAME( 1991, pc_pwbld, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Taito (Nintendo of America license)", "Power Blade (PlayChoice-10)", 0 )
GAME( 1991, pc_rkats, playch10, playch10, playch10, playch10_state, init_pcgboard, ROT0, "Atlus (Nintendo of America license)", "Rockin' Kats (PlayChoice-10)", 0 )
GAME( 1991, pc_ttoon, playch10, playch10, playch10, playch10_state, init_ttoon, ROT0, "Konami (Nintendo of America license)", "Tiny Toon Adventures (prototype) (PlayChoice-10)", 0 ) // Code is final USA NES version of the game, (which is MMC3C according to nes.xml, but this cart has MMC3B)
/* variant with 4 screen mirror */
GAME( 1990, pc_radr2, playch10, playch10, playch10, playch10_state, init_pcgboard_type2, ROT0, "Square (Nintendo of America license)", "Rad Racer II (PlayChoice-10)", 0 )
GAME( 1985, pc_gntlt, playch10, playch10, playch10, playch10_state, init_pcgboard_type2, ROT0, "Atari / Tengen (Nintendo of America license)", "Gauntlet (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS )
/* H-Board Games */
GAME( 1988, pc_pinbt, playch10, playch10_hboard, playch10, playch10_state, init_pchboard, ROT0, "Rare (Nintendo of America license)", "PinBot (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS )
/* i-Board Games */
GAME( 1989, pc_cshwk, playch10, playch10, playch10, playch10_state, init_pciboard, ROT0, "Rare (Nintendo of America license)", "Captain Sky Hawk (PlayChoice-10)", 0 )
GAME( 1990, pc_sjetm, playch10, playch10, playch10, playch10_state, init_pciboard, ROT0, "Rare", "Solar Jetman (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS )
/* K-Board Games */
GAME( 1991, pc_moglf, playch10, playch10, playch10, playch10_state, init_pckboard, ROT0, "Nintendo", "Mario's Open Golf (PlayChoice-10)", 0 )