mirror of
https://github.com/holub/mame
synced 2025-05-28 08:33:05 +03:00
MPU4 Updates [James Wallace]:
* Added trackball support * Fixed quiz game controls * Restructured AWP games' characteriser handling New clones added ---------------- The Crystal Maze [2 sets] The Crystsl Maze Team Challenge [2 sets] The New Crystal Maze Featuring Ocean Zone [2 sets]
This commit is contained in:
parent
c5c5d73435
commit
b3f54f6f2b
@ -316,15 +316,14 @@ static UINT8 Lamps[128]; /* 128 multiplexed lamps */
|
||||
static int optic_pattern;
|
||||
|
||||
/* Lookup table for CHR data */
|
||||
static const UINT8 MPU4_chr_lut[72]= { 0x00,0x1A,0x04,0x10,0x18,0x0F,0x13,0x1B,
|
||||
0x03,0x07,0x17,0x1D,0x36,0x35,0x2B,0x28,
|
||||
0x39,0x21,0x22,0x25,0x2C,0x29,0x31,0x34,
|
||||
0x0A,0x1F,0x06,0x0E,0x1C,0x12,0x1E,0x0D,
|
||||
0x14,0x0A,0x19,0x15,0x06,0x0F,0x08,0x1B,
|
||||
0x1E,0x04,0x01,0x0C,0x18,0x1A,0x11,0x0B,
|
||||
0x03,0x17,0x10,0x1D,0x0E,0x07,0x12,0x09,
|
||||
0x0D,0x1F,0x16,0x05,0x13,0x1C,0x02,0x00,
|
||||
0x00,0x01,0x04,0x09,0x10,0x19,0x24,0x31};
|
||||
|
||||
struct mpu4_chr_table
|
||||
{
|
||||
UINT8 call;
|
||||
UINT8 response;
|
||||
};
|
||||
|
||||
static mpu4_chr_table* mpu4_current_chr_table;
|
||||
|
||||
/*
|
||||
LED Segments related to pins (5 is not connected):
|
||||
@ -745,11 +744,11 @@ static const pia6821_interface pia_ic4_intf =
|
||||
DEVCB_LINE(cpu0_irq) /* IRQB */
|
||||
};
|
||||
|
||||
|
||||
/* IC5, AUX ports, coin lockouts and AY sound chip select (MODs below 4 only) */
|
||||
static READ8_DEVICE_HANDLER( pia_ic5_porta_r )
|
||||
{
|
||||
LOG(("%s: IC5 PIA Read of Port A (AUX1)\n",cpuexec_describe_context(device->machine)));
|
||||
|
||||
return input_port_read(device->machine, "AUX1");
|
||||
}
|
||||
|
||||
@ -1631,27 +1630,34 @@ of all 00, is sometimes the correct answer, particularly in non-Barcrest use of
|
||||
there are again fixed call values.
|
||||
*/
|
||||
|
||||
|
||||
static WRITE8_HANDLER( characteriser_w )
|
||||
{
|
||||
UINT8 x;
|
||||
int x;
|
||||
int call=data;
|
||||
LOG_CHR_FULL(("%04x Characteriser write offset %02X data %02X", cpu_get_previouspc(space->cpu),offset,data));
|
||||
|
||||
if (!mpu4_current_chr_table)
|
||||
fatalerror("No Characteriser Table @ %04x\n", cpu_get_previouspc(space->cpu));
|
||||
|
||||
if (offset == 0)
|
||||
{
|
||||
if (call == 0)
|
||||
// for (x = prot_col; x < 64; x++)
|
||||
{
|
||||
prot_col = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (x = prot_col; x < 64; x++)
|
||||
if (call == 0)
|
||||
{
|
||||
if (MPU4_chr_lut[(x)] == call)
|
||||
prot_col = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (x = prot_col; x < 64; x++)
|
||||
{
|
||||
prot_col = x;
|
||||
LOG_CHR(("Characteriser find column %02X\n",prot_col));
|
||||
LOG_CHR(("Characteriser find data %02X\n",MPU4_chr_data[prot_col]));
|
||||
break;
|
||||
if (mpu4_current_chr_table[(x)].call == call)
|
||||
{
|
||||
prot_col = x;
|
||||
LOG_CHR(("Characteriser find column %02X\n",prot_col));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1661,7 +1667,7 @@ static WRITE8_HANDLER( characteriser_w )
|
||||
LOG_CHR(("Characteriser write 2 data %02X\n",data));
|
||||
for (x = lamp_col; x < 16; x++)
|
||||
{
|
||||
if (MPU4_chr_lut[(64+x)] == call)
|
||||
if (mpu4_current_chr_table[(64+x)].call == call)
|
||||
{
|
||||
lamp_col = x;
|
||||
LOG_CHR(("Characteriser find column %02X\n",lamp_col));
|
||||
@ -1678,59 +1684,56 @@ static WRITE8_HANDLER( characteriser_w )
|
||||
|
||||
static READ8_HANDLER( characteriser_r )
|
||||
{
|
||||
if (!mpu4_current_chr_table)
|
||||
fatalerror("No Characteriser Table @ %04x\n", cpu_get_previouspc(space->cpu));
|
||||
|
||||
LOG_CHR(("Characteriser read offset %02X \n",offset));
|
||||
LOG_CHR_FULL(("%04x Characteriser read offset %02X", cpu_get_previouspc(space->cpu),offset));
|
||||
if (offset == 0)
|
||||
{
|
||||
LOG_CHR(("Characteriser read data %02X \n",MPU4_chr_data[prot_col]));
|
||||
return MPU4_chr_data[prot_col];
|
||||
return mpu4_current_chr_table[prot_col].response;
|
||||
}
|
||||
if (offset == 3)
|
||||
{
|
||||
LOG_CHR(("Characteriser read data %02X \n",MPU4_chr_data[lamp_col+64]));
|
||||
return MPU4_chr_data[lamp_col+64];
|
||||
return mpu4_current_chr_table[lamp_col+64].response;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
mpu4_chr_table ccelbr_data[72] = {
|
||||
{0x00, 0x00},{0x1a, 0x84},{0x04, 0x8c},{0x10, 0xb8},{0x18, 0x74},{0x0f, 0x80},{0x13, 0x1c},{0x1b, 0xb4},
|
||||
{0x03, 0xd8},{0x07, 0x74},{0x17, 0x00},{0x1d, 0xd4},{0x36, 0xc8},{0x35, 0x78},{0x2b, 0xa4},{0x28, 0x4c},
|
||||
{0x39, 0xe0},{0x21, 0xdc},{0x22, 0xf4},{0x25, 0x88},{0x2c, 0x78},{0x29, 0x24},{0x31, 0x84},{0x34, 0xcc},
|
||||
{0x0a, 0xb8},{0x1f, 0x74},{0x06, 0x90},{0x0e, 0x48},{0x1c, 0xa0},{0x12, 0x1c},{0x1e, 0x24},{0x0d, 0x94},
|
||||
{0x14, 0xc8},{0x0a, 0xb8},{0x19, 0x74},{0x15, 0x00},{0x06, 0x94},{0x0f, 0x48},{0x08, 0x30},{0x1b, 0x90},
|
||||
{0x1e, 0x08},{0x04, 0x60},{0x01, 0xd4},{0x0c, 0x58},{0x18, 0xf4},{0x1a, 0x18},{0x11, 0x74},{0x0b, 0x80},
|
||||
{0x03, 0xdc},{0x17, 0x74},{0x10, 0xd0},{0x1d, 0x58},{0x0e, 0x24},{0x07, 0x94},{0x12, 0xd8},{0x09, 0x34},
|
||||
{0x0d, 0x90},{0x1f, 0x58},{0x16, 0xf4},{0x05, 0x88},{0x13, 0x38},{0x1c, 0x24},{0x02, 0xd4},{0x00, 0x00},
|
||||
{0x00, 0x00},{0x01, 0x50},{0x04, 0x00},{0x09, 0x50},{0x10, 0x10},{0x19, 0x40},{0x24, 0x04},{0x31, 0x00}
|
||||
};
|
||||
|
||||
mpu4_chr_table gmball_data[72] = {
|
||||
{0x00, 0x00},{0x1a, 0x0c},{0x04, 0x50},{0x10, 0x90},{0x18, 0xb0},{0x0f, 0x38},{0x13, 0xd4},{0x1b, 0xa0},
|
||||
{0x03, 0xbc},{0x07, 0xd4},{0x17, 0x30},{0x1d, 0x90},{0x36, 0x38},{0x35, 0xc4},{0x2b, 0xac},{0x28, 0x70},
|
||||
{0x39, 0x98},{0x21, 0xdc},{0x22, 0xdc},{0x25, 0x54},{0x2c, 0x80},{0x29, 0xb4},{0x31, 0x38},{0x34, 0xcc},
|
||||
{0x0a, 0xe8},{0x1f, 0xf8},{0x06, 0xd4},{0x0e, 0x30},{0x1c, 0x00},{0x12, 0x84},{0x1e, 0x2c},{0x0d, 0xc8},
|
||||
{0x14, 0xf8},{0x0a, 0x4c},{0x19, 0x58},{0x15, 0xd4},{0x06, 0xa8},{0x0f, 0x78},{0x08, 0x44},{0x1b, 0x0c},
|
||||
{0x1e, 0x48},{0x04, 0x50},{0x01, 0x98},{0x0c, 0xd4},{0x18, 0xb0},{0x1a, 0xa0},{0x11, 0xa4},{0x0b, 0x3c},
|
||||
{0x03, 0xdc},{0x17, 0xd4},{0x10, 0xb8},{0x1d, 0xd4},{0x0e, 0x30},{0x07, 0x88},{0x12, 0xe0},{0x09, 0x24},
|
||||
{0x0d, 0x8c},{0x1f, 0xf8},{0x16, 0xcc},{0x05, 0x70},{0x13, 0x90},{0x1c, 0x20},{0x02, 0x9c},{0x00, 0x00},
|
||||
{0x00, 0x00},{0x01, 0x18},{0x04, 0x08},{0x09, 0x10},{0x10, 0x00},{0x19, 0x18},{0x24, 0x08},{0x31, 0x00}
|
||||
};
|
||||
|
||||
static DRIVER_INIT (m_ccelbr)
|
||||
{
|
||||
int x;
|
||||
static const UINT8 chr_table[72]={ 0x00,0x84,0x8C,0xB8,0x74,0x80,0x1C,0xB4,
|
||||
0xD8,0x74,0x00,0xD4,0xC8,0x78,0xA4,0x4C,
|
||||
0xE0,0xDC,0xF4,0x88,0x78,0x24,0x84,0xCC,
|
||||
0xB8,0x74,0x90,0x48,0xA0,0x1C,0x24,0x94,
|
||||
0xC8,0xB8,0x74,0x00,0x94,0x48,0x30,0x90,
|
||||
0x08,0x60,0xD4,0x58,0xF4,0x18,0x74,0x80,
|
||||
0xDC,0x74,0xD0,0x58,0x24,0x94,0xD8,0x34,
|
||||
0x90,0x58,0xF4,0x88,0x38,0x24,0xD4,0x00,
|
||||
0x00,0x50,0x00,0x50,0x10,0x40,0x04,0x00};
|
||||
|
||||
for (x=0; x<72; x++)
|
||||
{
|
||||
MPU4_chr_data[(x)] = chr_table[(x)];
|
||||
}
|
||||
|
||||
mpu4_current_chr_table = ccelbr_data;
|
||||
}
|
||||
|
||||
static DRIVER_INIT (m_gmball)
|
||||
{
|
||||
int x;
|
||||
static const UINT8 chr_table[72]= { 0x00,0x0C,0x50,0x90,0xB0,0x38,0xD4,0xA0,
|
||||
0xBC,0xD4,0x30,0x90,0x38,0xC4,0xAC,0x70,
|
||||
0x98,0xDC,0xDC,0x54,0x80,0xB4,0x38,0xCC,
|
||||
0xE8,0xF8,0xD4,0x30,0x00,0x84,0x2C,0xC8,
|
||||
0xF8,0x4C,0x58,0xD4,0xA8,0x78,0x44,0x0C,
|
||||
0x48,0x50,0x98,0xD4,0xB0,0xA0,0xA4,0x3C,
|
||||
0xDC,0xD4,0xB8,0xD4,0x30,0x88,0xE0,0x24,
|
||||
0x8C,0xF8,0xCC,0x70,0x90,0x20,0x9C,0x00,
|
||||
0x00,0x18,0x08,0x10,0x00,0x18,0x08,0x00};
|
||||
|
||||
for (x=0; x < 72; x++)
|
||||
{
|
||||
MPU4_chr_data[(x)] = chr_table[(x)];
|
||||
}
|
||||
|
||||
mpu4_current_chr_table = gmball_data;
|
||||
}
|
||||
|
||||
|
||||
|
@ -3,7 +3,6 @@ Barcrest MPU4 highly preliminary driver by J.Wallace, and Anonymous.
|
||||
|
||||
Any MAME-approved games should go here.
|
||||
|
||||
See http://www.mameworld.net/agemame/techinfo/mpu4.php for Information.
|
||||
|
||||
--- Board Setup ---
|
||||
For the Barcrest MPU4 Video system, the GAME CARD (cartridge) contains the MPU4 video bios in the usual ROM
|
||||
@ -17,9 +16,7 @@ The VIDEO BOARD is driven by a 10mhz 68000 processor, and contains a 6840PTM, 68
|
||||
The VIDEO CARTRIDGE plugs into the video board, and contains the program ROMs for the video based game.
|
||||
Like the MPU4 game card, in some cases an extra OKI sound chip is added to the video board's game card,
|
||||
as well as extra RAM.
|
||||
There is a protection chip similar to and replacing the MPU4 Characteriser, which is often fed question
|
||||
data to descramble (unknown how it works). In non-question cases, however, the protection chip works
|
||||
near identically to the original.
|
||||
There is a protection chip similar to and replacing the MPU4 Characteriser.
|
||||
|
||||
No video card schematics ever left the PCB factory, but some decent scans of the board have been made,
|
||||
now also available for review.
|
||||
@ -168,7 +165,8 @@ IRQ line connected to CPU
|
||||
-----------+---+-----------------+--------------------------------------------------------------------------
|
||||
TODO:
|
||||
- Correctly implement characteriser protection for each game.
|
||||
- Hook up trackball control for The Crystal Maze and The Mating Game
|
||||
- Hook up trackball control for The Crystal Maze and The Mating Game - done, but game response is v. slow
|
||||
- Fix meter sense error when coining up in Team Challenge - different cabinet
|
||||
- Improve AVDC implementation, adding split-screen interrupts (needed for mid-screen palette changes)
|
||||
- Hook up OKIM6376 sound in The Mating Game
|
||||
- Get the BwB games running
|
||||
@ -1118,6 +1116,61 @@ static READ16_HANDLER( ef9369_r )
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Trackball interface
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static READ8_DEVICE_HANDLER( pia_ic5_porta_track_r )
|
||||
{
|
||||
/* The SWP trackball interface connects a standard trackball to the AUX1 port on the MPU4
|
||||
mainboard. As per usual, they've taken the cheap route here, reading and processing the
|
||||
raw quadrature signal from the encoder wheels for a 4 bit interface, rather than use any
|
||||
additional hardware to simplify matters. For our purposes, two fake ports give the X and Y positions,
|
||||
which are then worked back into the signal levels.
|
||||
We invert the X and Y data at source due to the use of Schmitt triggers in the interface, which
|
||||
clean up the pulses and flip the active phase.*/
|
||||
|
||||
LOG(("%s: IC5 PIA Read of Port A (AUX1)\n",cpuexec_describe_context(device->machine)));
|
||||
|
||||
UINT8 data = input_port_read(device->machine, "AUX1");
|
||||
|
||||
UINT16 dx = input_port_read(device->machine, "TRACKX");
|
||||
UINT16 dy = input_port_read(device->machine, "TRACKY");
|
||||
|
||||
UINT8 xa, xb, ya, yb;
|
||||
|
||||
/* generate pulses for the input port (A and B are 1 unit out of phase for direction sensing)*/
|
||||
xa = ((dx + 1) & 3) <= 1;
|
||||
xb = (dx & 3) <= 1;
|
||||
ya = ((dy + 1) & 3) <= 1;
|
||||
yb = (dy & 3) <= 1;
|
||||
|
||||
data |= (xa << 4); // XA
|
||||
data |= (ya << 5); // YA
|
||||
data |= (xb << 6); // XB
|
||||
data |= (yb << 7); // YB
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
static const pia6821_interface pia_ic5t_intf =
|
||||
{
|
||||
DEVCB_HANDLER(pia_ic5_porta_track_r), /* port A in */
|
||||
DEVCB_HANDLER(pia_ic5_portb_r), /* port B in */
|
||||
DEVCB_NULL, /* line CA1 in */
|
||||
DEVCB_NULL, /* line CB1 in */
|
||||
DEVCB_NULL, /* line CA2 in */
|
||||
DEVCB_NULL, /* line CB2 in */
|
||||
DEVCB_NULL, /* port A out */
|
||||
DEVCB_NULL, /* port B out */
|
||||
DEVCB_LINE(pia_ic5_ca2_w), /* line CA2 out */
|
||||
DEVCB_LINE(pia_ic5_cb2_w), /* port CB2 out */
|
||||
DEVCB_LINE(cpu0_irq), /* IRQA */
|
||||
DEVCB_LINE(cpu0_irq) /* IRQB */
|
||||
};
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Input defintions
|
||||
@ -1126,44 +1179,37 @@ static READ16_HANDLER( ef9369_r )
|
||||
|
||||
static INPUT_PORTS_START( crmaze )
|
||||
PORT_START("ORANGE1")
|
||||
// PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("00")
|
||||
// PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("01")
|
||||
// PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("02")
|
||||
// PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("03")
|
||||
// PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("04")
|
||||
// PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("05")
|
||||
// PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("06")
|
||||
// PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("07")
|
||||
PORT_BIT(0xFF, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("ORANGE2")
|
||||
// PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("08")
|
||||
// PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("09")
|
||||
// PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("10")
|
||||
// PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("11")
|
||||
// PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("12")
|
||||
// PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("13")
|
||||
// PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("14")
|
||||
// PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("200p?")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("08")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("09")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("10")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("11")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("12")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("13")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("14")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("200p")
|
||||
|
||||
PORT_START("BLACK1")
|
||||
// PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("16")
|
||||
// PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("17")
|
||||
// PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("18")
|
||||
// PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("19")
|
||||
// PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("20")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("16")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("17")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("18")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("19")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("20")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Test Switch")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Door Switch?") PORT_TOGGLE
|
||||
|
||||
PORT_START("BLACK2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Right Yellow")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Right Red")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("26")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Left Yellow")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Left Red")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Right Yellow")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Right Red")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Left Red")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Left Yellow")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Getout Yellow")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Getout Red")/* Labelled Escape on cabinet */
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("100p Service?")PORT_IMPULSE(100)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("Getout Red")/* Labelled Escape on cabinet */
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("DIL1")
|
||||
PORT_DIPNAME( 0x01, 0x00, "DIL101" ) PORT_DIPLOCATION("DIL1:01")
|
||||
@ -1218,14 +1264,14 @@ static INPUT_PORTS_START( crmaze )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
PORT_START("AUX1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("0")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("1")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("2")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("3")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("4")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("5")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("6")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("7")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_SPECIAL)//resets game if pressed - sometimes hoppers run here, but crmaze has tubes
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_SPECIAL)//XA
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_SPECIAL)//YA
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_SPECIAL)//XB
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_SPECIAL)//YB
|
||||
|
||||
PORT_START("AUX2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
@ -1236,6 +1282,11 @@ static INPUT_PORTS_START( crmaze )
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_COIN2) PORT_NAME("20p")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN3) PORT_NAME("50p")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_COIN4) PORT_NAME("100p")
|
||||
|
||||
PORT_START("TRACKX")//FAKE
|
||||
PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_INVERT
|
||||
PORT_START("TRACKY")//FAKE
|
||||
PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_INVERT
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( mating )
|
||||
@ -1331,15 +1382,15 @@ static INPUT_PORTS_START( mating )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
PORT_START("AUX1")/* Presumed to be trackball, but only one phase available? */
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("0")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("1")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("2")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("3")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("4")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("5")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("6")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("7")
|
||||
PORT_START("AUX1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_SPECIAL)//XA
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_SPECIAL)//YA
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_SPECIAL)//XB
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_SPECIAL)//YB
|
||||
|
||||
PORT_START("AUX2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
@ -1350,6 +1401,12 @@ static INPUT_PORTS_START( mating )
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_COIN2) PORT_NAME("20p")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN3) PORT_NAME("50p")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_COIN4) PORT_NAME("100p")
|
||||
|
||||
PORT_START("TRACKX")//FAKE
|
||||
PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_INVERT
|
||||
PORT_START("TRACKY")//FAKE
|
||||
PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_INVERT
|
||||
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -1481,6 +1538,347 @@ static INPUT_PORTS_START( dealem )
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_COIN4) PORT_NAME("100p")PORT_IMPULSE(5)
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( skiltrek )
|
||||
PORT_START("ORANGE1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("ORANGE2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("BLACK1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Pass")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("C")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("B")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("A")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Test Button") PORT_CODE(KEYCODE_W)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
|
||||
|
||||
PORT_START("BLACK2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("Continue")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("C")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_NAME("B")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON8) PORT_NAME("A")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_START1)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("DIL1")
|
||||
PORT_DIPNAME( 0x01, 0x00, "DIL101" ) PORT_DIPLOCATION("DIL1:01")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x00, "DIL102" ) PORT_DIPLOCATION("DIL1:02")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x00, "DIL103" ) PORT_DIPLOCATION("DIL1:03")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, "DIL104" ) PORT_DIPLOCATION("DIL1:04")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, "DIL105" ) PORT_DIPLOCATION("DIL1:05")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x00, "DIL106" ) PORT_DIPLOCATION("DIL1:06")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x00, "DIL107" ) PORT_DIPLOCATION("DIL1:07")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, "DIL108" ) PORT_DIPLOCATION("DIL1:08")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
PORT_START("DIL2")
|
||||
PORT_DIPNAME( 0x01, 0x00, "1 Pound for change" ) PORT_DIPLOCATION("DIL2:01")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x00, "DIL202" ) PORT_DIPLOCATION("DIL2:02")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x00, "DIL203" ) PORT_DIPLOCATION("DIL2:03")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, "Attract mode inhibit" ) PORT_DIPLOCATION("DIL2:04")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, "DIL205" ) PORT_DIPLOCATION("DIL2:05")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x00, "Coin alarm inhibit" ) PORT_DIPLOCATION("DIL2:06")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x00, "DIL207" ) PORT_DIPLOCATION("DIL2:07")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, "Single coin entry" ) PORT_DIPLOCATION("DIL2:08")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
PORT_START("AUX1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("AUX2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_COIN1) PORT_NAME("10p")PORT_IMPULSE(5)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_COIN2) PORT_NAME("20p")PORT_IMPULSE(5)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN3) PORT_NAME("50p")PORT_IMPULSE(5)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_COIN4) PORT_NAME("100p")PORT_IMPULSE(5)
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( turnover )
|
||||
PORT_START("ORANGE1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("ORANGE2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("BLACK1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Pass")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("C")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("B")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("A")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Test Button") PORT_CODE(KEYCODE_W)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
|
||||
|
||||
PORT_START("BLACK2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("Continue")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("C")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_NAME("B")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON8) PORT_NAME("A")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_START1)
|
||||
|
||||
PORT_START("DIL1")
|
||||
PORT_DIPNAME( 0x01, 0x00, "DIL101" ) PORT_DIPLOCATION("DIL1:01")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x00, "DIL102" ) PORT_DIPLOCATION("DIL1:02")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x00, "DIL103" ) PORT_DIPLOCATION("DIL1:03")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, "DIL104" ) PORT_DIPLOCATION("DIL1:04")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, "DIL105" ) PORT_DIPLOCATION("DIL1:05")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x00, "DIL106" ) PORT_DIPLOCATION("DIL1:06")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x00, "DIL107" ) PORT_DIPLOCATION("DIL1:07")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, "DIL108" ) PORT_DIPLOCATION("DIL1:08")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
PORT_START("DIL2")
|
||||
PORT_DIPNAME( 0x01, 0x00, "1 Pound for change" ) PORT_DIPLOCATION("DIL2:01")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x00, "DIL202" ) PORT_DIPLOCATION("DIL2:02")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x00, "DIL203" ) PORT_DIPLOCATION("DIL2:03")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, "Attract mode inhibit" ) PORT_DIPLOCATION("DIL2:04")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, "DIL205" ) PORT_DIPLOCATION("DIL2:05")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x00, "Coin alarm inhibit" ) PORT_DIPLOCATION("DIL2:06")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x00, "DIL207" ) PORT_DIPLOCATION("DIL2:07")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, "Single coin entry" ) PORT_DIPLOCATION("DIL2:08")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
PORT_START("AUX1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("AUX2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_COIN1) PORT_NAME("10p")PORT_IMPULSE(5)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_COIN2) PORT_NAME("20p")PORT_IMPULSE(5)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN3) PORT_NAME("50p")PORT_IMPULSE(5)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_COIN4) PORT_NAME("100p")PORT_IMPULSE(5)
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( adders )
|
||||
PORT_START("ORANGE1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("ORANGE2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("BLACK1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("C")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("B")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("A")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Pass")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Test Button") PORT_CODE(KEYCODE_W)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
|
||||
|
||||
PORT_START("BLACK2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("C")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("B")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_NAME("A")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_START1)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("DIL1")
|
||||
PORT_DIPNAME( 0x01, 0x00, "DIL101" ) PORT_DIPLOCATION("DIL1:01")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x00, "DIL102" ) PORT_DIPLOCATION("DIL1:02")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x00, "DIL103" ) PORT_DIPLOCATION("DIL1:03")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, "DIL104" ) PORT_DIPLOCATION("DIL1:04")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, "DIL105" ) PORT_DIPLOCATION("DIL1:05")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x00, "DIL106" ) PORT_DIPLOCATION("DIL1:06")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x00, "DIL107" ) PORT_DIPLOCATION("DIL1:07")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, "DIL108" ) PORT_DIPLOCATION("DIL1:08")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
PORT_START("DIL2")
|
||||
PORT_DIPNAME( 0x01, 0x00, "1 Pound for change" ) PORT_DIPLOCATION("DIL2:01")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x00, "DIL202" ) PORT_DIPLOCATION("DIL2:02")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x00, "DIL203" ) PORT_DIPLOCATION("DIL2:03")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, "Attract mode inhibit" ) PORT_DIPLOCATION("DIL2:04")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, "DIL205" ) PORT_DIPLOCATION("DIL2:05")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x00, "Coin alarm inhibit" ) PORT_DIPLOCATION("DIL2:06")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x00, "DIL207" ) PORT_DIPLOCATION("DIL2:07")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, "Single coin entry" ) PORT_DIPLOCATION("DIL2:08")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
PORT_START("AUX1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("AUX2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_SPECIAL)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_COIN1) PORT_NAME("10p")PORT_IMPULSE(5)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_COIN2) PORT_NAME("20p")PORT_IMPULSE(5)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN3) PORT_NAME("50p")PORT_IMPULSE(5)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_COIN4) PORT_NAME("100p")PORT_IMPULSE(5)
|
||||
INPUT_PORTS_END
|
||||
|
||||
/* OKI M6376 (for Mating Game) FIXME */
|
||||
static READ16_DEVICE_HANDLER( oki_r )
|
||||
@ -1801,8 +2199,13 @@ static MACHINE_DRIVER_START( mpu4_vid )
|
||||
MDRV_ACIA6850_ADD("acia6850_1", m68k_acia_if)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( mating )
|
||||
static MACHINE_DRIVER_START( crmaze )
|
||||
MDRV_IMPORT_FROM( mpu4_vid )
|
||||
MDRV_PIA6821_MODIFY("pia_ic5", pia_ic5t_intf)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( mating )
|
||||
MDRV_IMPORT_FROM( crmaze )
|
||||
|
||||
MDRV_SOUND_ADD("oki", OKIM6376, 64000) //?
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
@ -1861,43 +2264,25 @@ MACHINE_DRIVER_END
|
||||
|
||||
/*
|
||||
Characteriser (CHR)
|
||||
Despite the potential to radically overhaul the design, the 68k version of the chip appears to just be a
|
||||
16-bit version of the previous design, with some endian-swapping necessary. It is unclear, however, if it has any
|
||||
capacity to affect lamp matrices in the same way as before, as no software seen makes any request for the 'lamp' row.
|
||||
It has been left in the table, as it clearly exists, but is unused.
|
||||
The 'quiz' games on the board did use an address-scrambling PAL for encryption, and the very last mod of this board had
|
||||
a characteriser capable of scrambling the ROM address lines.
|
||||
|
||||
^^ I think this is wrong (DH)
|
||||
|
||||
The question data on the quiz games gets passed through the characterizer, the tables tested at startup are just a
|
||||
very specific test with known responses to make sure the device functions properly. Unless there is extra encryption
|
||||
applied to just the question ROMs then the assumptions made here are wrong, because the questions don't decode.
|
||||
|
||||
Perhaps the address lines for the question ROMS are scrambled somehow to make things decode, but how?
|
||||
|
||||
It seems more likely that the Characterizer (PAL) acts as a challenge / response system, but various writes cause
|
||||
'latching' behavior because if you study the sequence written at startup you can see that the same write value should
|
||||
generate different responses.
|
||||
|
||||
Note:
|
||||
the 'challenge' part of the startup check is always the same
|
||||
|
||||
|
||||
*/
|
||||
|
||||
struct mpu4_chr_table
|
||||
{
|
||||
UINT8 call;
|
||||
UINT8 response;
|
||||
};
|
||||
|
||||
mpu4_chr_table* mpu4_current_chr_table;
|
||||
|
||||
static WRITE16_HANDLER( characteriser16_w )
|
||||
{
|
||||
int x;
|
||||
int call=data;
|
||||
LOG_CHR_FULL(("%04x Characteriser write offset %02X data %02X", cpu_get_previouspc(space->cpu),offset,data));
|
||||
//printf("%04x Characteriser write offset %02X data %02X\n", cpu_get_previouspc(space->cpu),offset,data);
|
||||
|
||||
if (!mpu4_current_chr_table)
|
||||
fatalerror("No Characteriser Table @ %04x\n", cpu_get_previouspc(space->cpu));
|
||||
@ -1914,8 +2299,6 @@ static WRITE16_HANDLER( characteriser16_w )
|
||||
{
|
||||
prot_col = x;
|
||||
LOG_CHR(("Characteriser find column %02X\n",prot_col));
|
||||
//printf("Characteriser find column %02X\n",prot_col);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -1929,10 +2312,6 @@ static READ16_HANDLER( characteriser16_r )
|
||||
LOG_CHR(("Characteriser read offset %02X \n",offset));
|
||||
LOG_CHR(("Characteriser read data %02X \n",mpu4_current_chr_table[prot_col].response));
|
||||
|
||||
// printf("%04x Characteriser read offset %02X,data %02X\n", cpu_get_previouspc(space->cpu),offset,mpu4_current_chr_table[prot_col].response);
|
||||
// printf("Characteriser read offset %02X \n",offset);
|
||||
// printf("Characteriser read data %02X \n",mpu4_current_chr_table[prot_col].response);
|
||||
|
||||
if (!mpu4_current_chr_table)
|
||||
fatalerror("No Characteriser Table @ %04x\n", cpu_get_previouspc(space->cpu));
|
||||
|
||||
@ -1947,8 +2326,6 @@ static READ16_HANDLER( characteriser16_r )
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
mpu4_chr_table adders_data[64] = {
|
||||
{0x00, 0x00}, {0x1A, 0x8C}, {0x04, 0x64}, {0x10, 0x84}, {0x18, 0x84}, {0x0F, 0xC4}, {0x13, 0x84}, {0x1B, 0x84},
|
||||
{0x03, 0x9C}, {0x07, 0xF4}, {0x17, 0x04}, {0x1D, 0xCC}, {0x36, 0x24}, {0x35, 0x84}, {0x2B, 0xC4}, {0x28, 0x94},
|
||||
@ -1961,14 +2338,14 @@ mpu4_chr_table adders_data[64] = {
|
||||
};
|
||||
|
||||
mpu4_chr_table crmaze_data[64] = {
|
||||
{0x00, 0x00}, {0x1A, 0x84}, {0x04, 0x94}, {0x10, 0x3C}, {0x18, 0xEC}, {0x0F, 0x5C}, {0x13, 0xEC}, {0x1B, 0x50},
|
||||
{0x03, 0x2C}, {0x07, 0x68}, {0x17, 0x60}, {0x1D, 0xAC}, {0x36, 0x74}, {0x35, 0x00}, {0x2B, 0xAC}, {0x28, 0x58},
|
||||
{0x39, 0xEC}, {0x21, 0x7C}, {0x22, 0xEC}, {0x25, 0x58}, {0x2C, 0xE0}, {0x29, 0x90}, {0x31, 0x18}, {0x34, 0xEC},
|
||||
{0x0A, 0x54}, {0x1F, 0x28}, {0x06, 0x68}, {0x0E, 0x44}, {0x1C, 0x84}, {0x12, 0xB4}, {0x1E, 0x10}, {0x0D, 0x20},
|
||||
{0x14, 0x84}, {0x0A, 0xBC}, {0x19, 0xE8}, {0x15, 0x70}, {0x06, 0x24}, {0x0F, 0x84}, {0x08, 0xB8}, {0x1B, 0xE0},
|
||||
{0x1E, 0x94}, {0x04, 0x14}, {0x01, 0x2C}, {0x0C, 0x64}, {0x18, 0x8C}, {0x1A, 0x50}, {0x11, 0x28}, {0x0B, 0x4C},
|
||||
{0x03, 0x6C}, {0x17, 0x60}, {0x10, 0xA0}, {0x1D, 0xBC}, {0x0E, 0xCC}, {0x07, 0x78}, {0x12, 0xE8}, {0x09, 0x50},
|
||||
{0x0D, 0x20}, {0x1F, 0xAC}, {0x16, 0x74}, {0x05, 0x04}, {0x13, 0xA4}, {0x1C, 0x94}, {0x02, 0x3C}, {0x00, 0x00}
|
||||
{0x00, 0x00}, {0x1A, 0x34}, {0x04, 0x14}, {0x10, 0x0C}, {0x18, 0x54}, {0x0F, 0x04}, {0x13, 0x24}, {0x1B, 0x34},
|
||||
{0x03, 0x94}, {0x07, 0x94}, {0x17, 0x0C}, {0x1D, 0x5C}, {0x36, 0x6C}, {0x35, 0x44}, {0x2B, 0x24}, {0x28, 0x24},
|
||||
{0x39, 0x3C}, {0x21, 0x6C}, {0x22, 0xCC}, {0x25, 0x4C}, {0x2C, 0xC4}, {0x29, 0xA4}, {0x31, 0x24}, {0x34, 0x24},
|
||||
{0x0A, 0x34}, {0x1F, 0x84}, {0x06, 0xB4}, {0x0E, 0x1C}, {0x1C, 0x64}, {0x12, 0x24}, {0x1E, 0x34}, {0x0D, 0x04},
|
||||
{0x14, 0x24}, {0x0A, 0x34}, {0x19, 0x8C}, {0x15, 0xC4}, {0x06, 0xB4}, {0x0F, 0x1C}, {0x08, 0xE4}, {0x1B, 0x24},
|
||||
{0x1E, 0x34}, {0x04, 0x14}, {0x01, 0x10}, {0x0C, 0x84}, {0x18, 0x24}, {0x1A, 0x34}, {0x11, 0x04}, {0x0B, 0x24},
|
||||
{0x03, 0xB4}, {0x17, 0x04}, {0x10, 0x24}, {0x1D, 0x3C}, {0x0E, 0x74}, {0x07, 0x94}, {0x12, 0x0C}, {0x09, 0xC4},
|
||||
{0x0D, 0xA4}, {0x1F, 0x24}, {0x16, 0x24}, {0x05, 0x34}, {0x13, 0x04}, {0x1C, 0x34}, {0x02, 0x94}, {0x00, 0x00}
|
||||
};
|
||||
|
||||
mpu4_chr_table crmazea_data[64] = {
|
||||
@ -1982,6 +2359,39 @@ mpu4_chr_table crmazea_data[64] = {
|
||||
{0x0D, 0x48}, {0x1F, 0xD8}, {0x16, 0xDC}, {0x05, 0x94}, {0x13, 0xE8}, {0x1C, 0x38}, {0x02, 0xDC}, {0x00, 0x00}
|
||||
};
|
||||
|
||||
mpu4_chr_table crmaze2_data[64] = {
|
||||
{0x00, 0x00}, {0x1A, 0x88}, {0x04, 0x54}, {0x10, 0x40}, {0x18, 0x88}, {0x0F, 0x54}, {0x13, 0x40}, {0x1B, 0x88},
|
||||
{0x03, 0x74}, {0x07, 0x28}, {0x17, 0x30}, {0x1D, 0x60}, {0x36, 0x80}, {0x35, 0x84}, {0x2B, 0xC4}, {0x28, 0xA4},
|
||||
{0x39, 0xC4}, {0x21, 0x8C}, {0x22, 0x74}, {0x25, 0x08}, {0x2C, 0x30}, {0x29, 0x00}, {0x31, 0x80}, {0x34, 0x84},
|
||||
{0x0A, 0xC4}, {0x1F, 0x84}, {0x06, 0xAC}, {0x0E, 0x5C}, {0x1C, 0x90}, {0x12, 0x44}, {0x1E, 0x88}, {0x0D, 0x74},
|
||||
{0x14, 0x00}, {0x0A, 0x80}, {0x19, 0xC4}, {0x15, 0x84}, {0x06, 0xAC}, {0x0F, 0x5C}, {0x08, 0xB0}, {0x1B, 0x24},
|
||||
{0x1E, 0x88}, {0x04, 0x54}, {0x01, 0x08}, {0x0C, 0x30}, {0x18, 0x00}, {0x1A, 0x88}, {0x11, 0x34}, {0x0B, 0x08},
|
||||
{0x03, 0x70}, {0x17, 0x00}, {0x10, 0x80}, {0x1D, 0xC4}, {0x0E, 0x84}, {0x07, 0xAC}, {0x12, 0x34}, {0x09, 0x00},
|
||||
{0x0D, 0xA0}, {0x1F, 0x84}, {0x16, 0x84}, {0x05, 0x8C}, {0x13, 0x34}, {0x1C, 0x00}, {0x02, 0xA8}, {0x00, 0x00}
|
||||
};
|
||||
|
||||
mpu4_chr_table crmaze3_data[64] = {
|
||||
{0x00, 0x00}, {0x1A, 0x84}, {0x04, 0x94}, {0x10, 0x3C}, {0x18, 0xEC}, {0x0F, 0x5C}, {0x13, 0xEC}, {0x1B, 0x50},
|
||||
{0x03, 0x2C}, {0x07, 0x68}, {0x17, 0x60}, {0x1D, 0xAC}, {0x36, 0x74}, {0x35, 0x00}, {0x2B, 0xAC}, {0x28, 0x58},
|
||||
{0x39, 0xEC}, {0x21, 0x7C}, {0x22, 0xEC}, {0x25, 0x58}, {0x2C, 0xE0}, {0x29, 0x90}, {0x31, 0x18}, {0x34, 0xEC},
|
||||
{0x0A, 0x54}, {0x1F, 0x28}, {0x06, 0x68}, {0x0E, 0x44}, {0x1C, 0x84}, {0x12, 0xB4}, {0x1E, 0x10}, {0x0D, 0x20},
|
||||
{0x14, 0x84}, {0x0A, 0xBC}, {0x19, 0xE8}, {0x15, 0x70}, {0x06, 0x24}, {0x0F, 0x84}, {0x08, 0xB8}, {0x1B, 0xE0},
|
||||
{0x1E, 0x94}, {0x04, 0x14}, {0x01, 0x2C}, {0x0C, 0x64}, {0x18, 0x8C}, {0x1A, 0x50}, {0x11, 0x28}, {0x0B, 0x4C},
|
||||
{0x03, 0x6C}, {0x17, 0x60}, {0x10, 0xA0}, {0x1D, 0xBC}, {0x0E, 0xCC}, {0x07, 0x78}, {0x12, 0xE8}, {0x09, 0x50},
|
||||
{0x0D, 0x20}, {0x1F, 0xAC}, {0x16, 0x74}, {0x05, 0x04}, {0x13, 0xA4}, {0x1C, 0x94}, {0x02, 0x3C}, {0x00, 0x00}
|
||||
};
|
||||
|
||||
mpu4_chr_table crmaze3a_data[64] = {
|
||||
{0x00, 0x00}, {0x1A, 0x0C}, {0x04, 0x60}, {0x10, 0x84}, {0x18, 0x34}, {0x0F, 0x08}, {0x13, 0xC0}, {0x1B, 0x14},
|
||||
{0x03, 0xA8}, {0x07, 0xF0}, {0x17, 0x10}, {0x1D, 0xA0}, {0x36, 0x1C}, {0x35, 0xE4}, {0x2B, 0x1C}, {0x28, 0xE4},
|
||||
{0x39, 0x34}, {0x21, 0xA8}, {0x22, 0xF8}, {0x25, 0x64}, {0x2C, 0x8C}, {0x29, 0xF0}, {0x31, 0x30}, {0x34, 0x08},
|
||||
{0x0A, 0xE8}, {0x1F, 0xF8}, {0x06, 0xE4}, {0x0E, 0x3C}, {0x1C, 0x44}, {0x12, 0x8C}, {0x1E, 0x58}, {0x0D, 0xC4},
|
||||
{0x14, 0x3C}, {0x0A, 0x6C}, {0x19, 0x68}, {0x15, 0xC0}, {0x06, 0x9C}, {0x0F, 0x64}, {0x08, 0x04}, {0x1B, 0x0C},
|
||||
{0x1E, 0x48}, {0x04, 0x60}, {0x01, 0xAC}, {0x0C, 0xF8}, {0x18, 0xE4}, {0x1A, 0x14}, {0x11, 0xA8}, {0x0B, 0x78},
|
||||
{0x03, 0xEC}, {0x17, 0xD0}, {0x10, 0xB0}, {0x1D, 0xB0}, {0x0E, 0x38}, {0x07, 0xE4}, {0x12, 0x9C}, {0x09, 0xE4},
|
||||
{0x0D, 0xBC}, {0x1F, 0xE4}, {0x16, 0x1C}, {0x05, 0x64}, {0x13, 0x8C}, {0x1C, 0x58}, {0x02, 0xEC}, {0x00, 0x00}
|
||||
};
|
||||
|
||||
mpu4_chr_table mating_data[64] = {
|
||||
{0x00, 0x00}, {0x1A, 0x18}, {0x04, 0xC8}, {0x10, 0xA4}, {0x18, 0x0C}, {0x0F, 0x80}, {0x13, 0x0C}, {0x1B, 0x90},
|
||||
{0x03, 0x34}, {0x07, 0x30}, {0x17, 0x00}, {0x1D, 0x58}, {0x36, 0xC8}, {0x35, 0x84}, {0x2B, 0x4C}, {0x28, 0xA0},
|
||||
@ -2064,18 +2474,30 @@ static DRIVER_INIT (adders)
|
||||
mpu4_current_chr_table = adders_data;
|
||||
}
|
||||
|
||||
|
||||
static DRIVER_INIT (crmaze)
|
||||
{
|
||||
mpu4_current_chr_table = crmaze_data;
|
||||
}
|
||||
|
||||
|
||||
static DRIVER_INIT (crmazea)
|
||||
{
|
||||
mpu4_current_chr_table = crmazea_data;
|
||||
}
|
||||
|
||||
static DRIVER_INIT (crmaze2)
|
||||
{
|
||||
mpu4_current_chr_table = crmaze2_data;
|
||||
}
|
||||
|
||||
static DRIVER_INIT (crmaze3)
|
||||
{
|
||||
mpu4_current_chr_table = crmaze3_data;
|
||||
}
|
||||
|
||||
static DRIVER_INIT (crmaze3a)
|
||||
{
|
||||
mpu4_current_chr_table = crmaze3a_data;
|
||||
}
|
||||
|
||||
static DRIVER_INIT (mating)
|
||||
{
|
||||
@ -2189,22 +2611,38 @@ ROM_START( bloxd )
|
||||
ROM_LOAD16_BYTE( "blxv___2.0_6", 0x040001, 0x10000, CRC(a3d92b5b) SHA1(1e7042d5eae4a19a01a3ef7d806c434886dc9f4d) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( crmaze )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
VID_BIOS
|
||||
|
||||
ROM_REGION( 0x800000, "video", 0 )
|
||||
ROM_LOAD16_BYTE( "cm3.p1", 0x000000, 0x80000, CRC(2d2edee5) SHA1(0281ec97aaaaf4c7969340bd5995ac1541dbad54) )
|
||||
ROM_LOAD16_BYTE( "cm3.p2", 0x000001, 0x80000, CRC(c223d7b9) SHA1(da9d730716a30d0e93f2a02c1efa7f19457ae010) )
|
||||
ROM_LOAD16_BYTE( "cm3.p3", 0x100000, 0x80000, CRC(2959c77b) SHA1(8de533bfad48ad19a635dddcafa2a0825133b4de) )
|
||||
ROM_LOAD16_BYTE( "cm3.p4", 0x100001, 0x80000, CRC(b7873e9a) SHA1(a71fac883e02d5f49aee0a20f92dbdb00640ce8d) )
|
||||
ROM_LOAD16_BYTE( "cm3.p5", 0x200000, 0x80000, CRC(c8375070) SHA1(da2ba6591d8765f896c40d6526da8e945d02a182) )
|
||||
ROM_LOAD16_BYTE( "cm3.p6", 0x200001, 0x80000, CRC(1ea36938) SHA1(43f62935b21232d23f662e1e124663267edb1283) )
|
||||
ROM_LOAD16_BYTE( "cm3.p7", 0x300000, 0x80000, CRC(9de3802e) SHA1(ec792f115a0708d68046ba0beb314b7e1f1eb422) )
|
||||
ROM_LOAD16_BYTE( "cm3.p8", 0x300001, 0x80000, CRC(1e6e60b0) SHA1(5e71714747073dd89852a84585642388ee440325) )
|
||||
ROM_LOAD16_BYTE( "cm3.p9", 0x400000, 0x80000, CRC(bfba55a7) SHA1(22eb9b1f9fe83d3b424fd521b68e2976a1940df9) )
|
||||
ROM_LOAD16_BYTE( "cm3.pa", 0x400001, 0x80000, CRC(07edda81) SHA1(e94525be03f30e407051992925bb0d693f3d809b) )
|
||||
ROM_LOAD16_BYTE( "crys.p1", 0x000000, 0x80000, CRC(40fbde50) SHA1(91bd21c0aaffb9c9b89a114affbc485b12ae9bb4) )
|
||||
ROM_LOAD16_BYTE( "cry.p2", 0x000001, 0x80000, CRC(fa7d006f) SHA1(ecc03b4d7a4089feccc53ad05313c35b33e061d7) )
|
||||
ROM_LOAD16_BYTE( "cry.p3", 0x100000, 0x80000, CRC(e8cf8203) SHA1(e9f42e5c18b97807f51284ad2416346578ed73c4) )
|
||||
ROM_LOAD16_BYTE( "cry.p4", 0x100001, 0x80000, CRC(7b036151) SHA1(7b0040c296059b1e1798ddedf0ecb4582d67ee70) )
|
||||
ROM_LOAD16_BYTE( "cry.p5", 0x200000, 0x80000, CRC(48f17b20) SHA1(711c46fcfd86ded8ff7da883188d70560d20e42f) )
|
||||
ROM_LOAD16_BYTE( "cry.p6", 0x200001, 0x80000, CRC(2b3d9a97) SHA1(7468fffd90d840d245a70475b42308f1e48c5017) )
|
||||
ROM_LOAD16_BYTE( "cry.p7", 0x300000, 0x80000, CRC(20f73433) SHA1(593b40ac17591ac312ad41b4d3a5772626137bba) )
|
||||
ROM_LOAD16_BYTE( "cry.p8", 0x300001, 0x80000, CRC(835da1f2) SHA1(f93e075916d370466832871410591570ad7b9f3b) )
|
||||
ROM_LOAD16_BYTE( "cry.p9", 0x400000, 0x80000, CRC(c0e442ee) SHA1(a3877b200538642fe2bc96cfe8b33f04d8a82a98) )
|
||||
ROM_LOAD16_BYTE( "cry.p10", 0x400001, 0x80000, CRC(500172fa) SHA1(d83a37612daa79ba8425fdb28f39b8324b5736b6) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( crmazed )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
VID_BIOS
|
||||
|
||||
ROM_REGION( 0x800000, "video", 0 )
|
||||
ROM_LOAD16_BYTE( "cryd.p1", 0x000000, 0x80000, CRC(b245f661) SHA1(85a8baca8797fea74bc36eea077be56bde8e54a9) )
|
||||
ROM_LOAD16_BYTE( "cry.p2", 0x000001, 0x80000, CRC(fa7d006f) SHA1(ecc03b4d7a4089feccc53ad05313c35b33e061d7) )
|
||||
ROM_LOAD16_BYTE( "cry.p3", 0x100000, 0x80000, CRC(e8cf8203) SHA1(e9f42e5c18b97807f51284ad2416346578ed73c4) )
|
||||
ROM_LOAD16_BYTE( "cry.p4", 0x100001, 0x80000, CRC(7b036151) SHA1(7b0040c296059b1e1798ddedf0ecb4582d67ee70) )
|
||||
ROM_LOAD16_BYTE( "cry.p5", 0x200000, 0x80000, CRC(48f17b20) SHA1(711c46fcfd86ded8ff7da883188d70560d20e42f) )
|
||||
ROM_LOAD16_BYTE( "cry.p6", 0x200001, 0x80000, CRC(2b3d9a97) SHA1(7468fffd90d840d245a70475b42308f1e48c5017) )
|
||||
ROM_LOAD16_BYTE( "cry.p7", 0x300000, 0x80000, CRC(20f73433) SHA1(593b40ac17591ac312ad41b4d3a5772626137bba) )
|
||||
ROM_LOAD16_BYTE( "cry.p8", 0x300001, 0x80000, CRC(835da1f2) SHA1(f93e075916d370466832871410591570ad7b9f3b) )
|
||||
ROM_LOAD16_BYTE( "cry.p9", 0x400000, 0x80000, CRC(c0e442ee) SHA1(a3877b200538642fe2bc96cfe8b33f04d8a82a98) )
|
||||
ROM_LOAD16_BYTE( "cry.p10", 0x400001, 0x80000, CRC(500172fa) SHA1(d83a37612daa79ba8425fdb28f39b8324b5736b6) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( crmazea )
|
||||
@ -2224,7 +2662,38 @@ ROM_START( crmazea )
|
||||
ROM_LOAD16_BYTE( "am1g.p8", 0x400001, 0x80000, CRC(6f0f855b) SHA1(ab411d1af0f88049a6c435bafd4b1fa63f5519b1) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( crmazeb )
|
||||
//The New Crystal Maze Featuring Ocean Zone
|
||||
ROM_START( crmaze2 )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
VID_BIOS
|
||||
|
||||
ROM_REGION( 0x800000, "video", 0 )
|
||||
ROM_LOAD16_BYTE( "cm2s.p1", 0x000000, 0x80000, CRC(2bcdff56) SHA1(5ae4d4960db032ec9b8d66c53bc151830d009f61) )
|
||||
ROM_LOAD16_BYTE( "cm2s.p2", 0x000001, 0x80000, CRC(92126def) SHA1(531593dee05954000d9836018aeff9460aecbd26) )
|
||||
ROM_LOAD16_BYTE( "cm2.p3", 0x100000, 0x80000, CRC(88324715) SHA1(c6c8de4e5aeda14232ec7b026da389774b3c7bb1) )
|
||||
ROM_LOAD16_BYTE( "cm2.p4", 0x100001, 0x80000, CRC(8d54a81d) SHA1(37753cf8595647aaf8b8267ca177b6744de9c6d4) )
|
||||
ROM_LOAD16_BYTE( "cm2.p5", 0x200000, 0x80000, CRC(5cf8a2bf) SHA1(2514e78e82842fa5c85d26de35637269cd08b21d) )
|
||||
ROM_LOAD16_BYTE( "cm2.p6", 0x200001, 0x80000, CRC(cf793d2d) SHA1(579c759f57fb6bb87aa27c9d5fb684058913dedc) )
|
||||
ROM_LOAD16_BYTE( "cm2.p7", 0x300000, 0x80000, CRC(008aa4b0) SHA1(b4cec6d11abd0e111c295533700595398ff59075) )
|
||||
ROM_LOAD16_BYTE( "cm2.p8", 0x300001, 0x80000, CRC(bac04f5a) SHA1(130721b7abf28dea1f8162705c8bfc5a4bb78152) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( crmaze2d )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
VID_BIOS
|
||||
|
||||
ROM_REGION( 0x800000, "video", 0 )
|
||||
ROM_LOAD16_BYTE( "cm2d.p1", 0x000000, 0x80000, CRC(a150027b) SHA1(f737b0e3b8954c1589a929b7e567cb55df4a3997) )
|
||||
ROM_LOAD16_BYTE( "cm2d.p2", 0x000001, 0x80000, CRC(84ed6bce) SHA1(7a11473e7ec277508952f7ae6cfc7ed28e1b5c99) )
|
||||
ROM_LOAD16_BYTE( "cm2.p3", 0x100000, 0x80000, CRC(88324715) SHA1(c6c8de4e5aeda14232ec7b026da389774b3c7bb1) )
|
||||
ROM_LOAD16_BYTE( "cm2.p4", 0x100001, 0x80000, CRC(8d54a81d) SHA1(37753cf8595647aaf8b8267ca177b6744de9c6d4) )
|
||||
ROM_LOAD16_BYTE( "cm2.p5", 0x200000, 0x80000, CRC(5cf8a2bf) SHA1(2514e78e82842fa5c85d26de35637269cd08b21d) )
|
||||
ROM_LOAD16_BYTE( "cm2.p6", 0x200001, 0x80000, CRC(cf793d2d) SHA1(579c759f57fb6bb87aa27c9d5fb684058913dedc) )
|
||||
ROM_LOAD16_BYTE( "cm2.p7", 0x300000, 0x80000, CRC(008aa4b0) SHA1(b4cec6d11abd0e111c295533700595398ff59075) )
|
||||
ROM_LOAD16_BYTE( "cm2.p8", 0x300001, 0x80000, CRC(bac04f5a) SHA1(130721b7abf28dea1f8162705c8bfc5a4bb78152) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( crmaze2a )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
VID_BIOS
|
||||
|
||||
@ -2241,6 +2710,58 @@ ROM_START( crmazeb )
|
||||
ROM_LOAD16_BYTE( "am2g.p8", 0x400001, 0x80000, CRC(dda353ef) SHA1(56a5b43f0b0bd9dbf348946a5758ebe63eadb8cf) )
|
||||
ROM_END
|
||||
|
||||
//The Crystal Maze Team Challenge
|
||||
ROM_START( crmaze3 )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
VID_BIOS
|
||||
|
||||
ROM_REGION( 0x800000, "video", 0 )
|
||||
ROM_LOAD16_BYTE( "cm3.p1", 0x000000, 0x80000, CRC(2d2edee5) SHA1(0281ec97aaaaf4c7969340bd5995ac1541dbad54) )
|
||||
ROM_LOAD16_BYTE( "cm3.p2", 0x000001, 0x80000, CRC(c223d7b9) SHA1(da9d730716a30d0e93f2a02c1efa7f19457ae010) )
|
||||
ROM_LOAD16_BYTE( "cm3.p3", 0x100000, 0x80000, CRC(2959c77b) SHA1(8de533bfad48ad19a635dddcafa2a0825133b4de) )
|
||||
ROM_LOAD16_BYTE( "cm3.p4", 0x100001, 0x80000, CRC(b7873e9a) SHA1(a71fac883e02d5f49aee0a20f92dbdb00640ce8d) )
|
||||
ROM_LOAD16_BYTE( "cm3.p5", 0x200000, 0x80000, CRC(c8375070) SHA1(da2ba6591d8765f896c40d6526da8e945d02a182) )
|
||||
ROM_LOAD16_BYTE( "cm3.p6", 0x200001, 0x80000, CRC(1ea36938) SHA1(43f62935b21232d23f662e1e124663267edb1283) )
|
||||
ROM_LOAD16_BYTE( "cm3.p7", 0x300000, 0x80000, CRC(9de3802e) SHA1(ec792f115a0708d68046ba0beb314b7e1f1eb422) )
|
||||
ROM_LOAD16_BYTE( "cm3.p8", 0x300001, 0x80000, CRC(1e6e60b0) SHA1(5e71714747073dd89852a84585642388ee440325) )
|
||||
ROM_LOAD16_BYTE( "cm3.p9", 0x400000, 0x80000, CRC(bfba55a7) SHA1(22eb9b1f9fe83d3b424fd521b68e2976a1940df9) )
|
||||
ROM_LOAD16_BYTE( "cm3.p10", 0x400001, 0x80000, CRC(07edda81) SHA1(e94525be03f30e407051992925bb0d693f3d809b) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( crmaze3d )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
VID_BIOS
|
||||
|
||||
ROM_REGION( 0x800000, "video", 0 )
|
||||
ROM_LOAD16_BYTE( "cm3d.p1", 0x000000, 0x80000, CRC(245f00fa) SHA1(ff5ae1a2ae024dfc0b4104360626e4106f4cd36f) )
|
||||
ROM_LOAD16_BYTE( "cm3d.p2", 0x000001, 0x80000, CRC(091adbcb) SHA1(1466b036d06f6335c90426095ad0f60ea958a29d) )
|
||||
ROM_LOAD16_BYTE( "cm3.p3", 0x100000, 0x80000, CRC(2959c77b) SHA1(8de533bfad48ad19a635dddcafa2a0825133b4de) )
|
||||
ROM_LOAD16_BYTE( "cm3.p4", 0x100001, 0x80000, CRC(b7873e9a) SHA1(a71fac883e02d5f49aee0a20f92dbdb00640ce8d) )
|
||||
ROM_LOAD16_BYTE( "cm3.p5", 0x200000, 0x80000, CRC(c8375070) SHA1(da2ba6591d8765f896c40d6526da8e945d02a182) )
|
||||
ROM_LOAD16_BYTE( "cm3.p6", 0x200001, 0x80000, CRC(1ea36938) SHA1(43f62935b21232d23f662e1e124663267edb1283) )
|
||||
ROM_LOAD16_BYTE( "cm3.p7", 0x300000, 0x80000, CRC(9de3802e) SHA1(ec792f115a0708d68046ba0beb314b7e1f1eb422) )
|
||||
ROM_LOAD16_BYTE( "cm3.p8", 0x300001, 0x80000, CRC(1e6e60b0) SHA1(5e71714747073dd89852a84585642388ee440325) )
|
||||
ROM_LOAD16_BYTE( "cm3.p9", 0x400000, 0x80000, CRC(bfba55a7) SHA1(22eb9b1f9fe83d3b424fd521b68e2976a1940df9) )
|
||||
ROM_LOAD16_BYTE( "cm3.p10", 0x400001, 0x80000, CRC(07edda81) SHA1(e94525be03f30e407051992925bb0d693f3d809b) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( crmaze3a )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
VID_BIOS
|
||||
|
||||
ROM_REGION( 0x800000, "video", 0 )
|
||||
ROM_LOAD16_BYTE( "am3z.p1", 0x000000, 0x80000, CRC(9484e656) SHA1(3c35a8ebeddea56d73ce8db4e93c51cdd9546d59) )
|
||||
ROM_LOAD16_BYTE( "am3z.p2", 0x000001, 0x80000, CRC(1865ee80) SHA1(b3ff8e1631d811b8e88664dd84ae82231ce1f5aa) )
|
||||
ROM_LOAD16_BYTE( "am3g.p1", 0x100000, 0x80000, CRC(49fe36af) SHA1(7c39223b07f53ff57a56c3817299734491372170) )
|
||||
ROM_LOAD16_BYTE( "am3g.p2", 0x100001, 0x80000, CRC(b8823cbd) SHA1(206d3b1b2daff1979f97841041661f8407c35d4d) )
|
||||
ROM_LOAD16_BYTE( "am3g.p3", 0x200000, 0x80000, CRC(b1870f17) SHA1(54c6cabb56e4daa4ccf801d5e44b2789b116d562) )
|
||||
ROM_LOAD16_BYTE( "am3g.p4", 0x200001, 0x80000, CRC(c015d446) SHA1(669007e841afeb1084d9062d0a47c159e4c83cc9) )
|
||||
ROM_LOAD16_BYTE( "am3g.p5", 0x300000, 0x80000, CRC(9de3802e) SHA1(ec792f115a0708d68046ba0beb314b7e1f1eb422) )
|
||||
ROM_LOAD16_BYTE( "am3g.p6", 0x300001, 0x80000, CRC(1e6e60b0) SHA1(5e71714747073dd89852a84585642388ee440325) )
|
||||
ROM_LOAD16_BYTE( "am3g.p7", 0x400000, 0x80000, CRC(a4611e29) SHA1(91b164eea5dbdd1129ad12d7af2dbdb3cd68bcec) )
|
||||
ROM_LOAD16_BYTE( "am3g.p8", 0x400001, 0x80000, CRC(1a10c22e) SHA1(8533a5db3922b80b6e9f74e4e432a2b64bc24fc0) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( turnover )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
VID_BIOS
|
||||
@ -2567,20 +3088,32 @@ GAME( 1987, dealem, 0, dealem, dealem, 0, ROT0, "Zenitone"
|
||||
GAME( 199?, bctvidbs, 0, mpu4mod2, mpu4, 0, ROT0, "Barcrest", "MPU4 Video Firmware", GAME_IS_BIOS_ROOT )
|
||||
|
||||
/* Complete sets */
|
||||
GAME( 1994, crmaze, bctvidbs, mpu4_vid, crmaze, crmaze, ROT0, "Barcrest", "The Crystal Maze Team Challenge (SWP)", GAME_NOT_WORKING )
|
||||
GAME( 1993, crmazea, crmaze, mpu4_vid, crmaze, crmazea, ROT0, "Barcrest", "The Crystal Maze (AMLD Version)", GAME_NOT_WORKING )
|
||||
GAME( 1993, crmazeb, crmaze, mpu4_vid, crmaze, 0, ROT0, "Barcrest", "The New Crystal Maze Featuring Ocean Zone (AMLD Version)", GAME_NOT_WORKING ) /* unprotected? bootleg? */
|
||||
/* Standard sets are the most common setups, while Datapak releases use a BACTA datalogger (not emulated) to record more information about the game operation, for security etc.
|
||||
AMLD versions do not pay out, and instead just feature highscore tables. These were mainly intended for locations unwilling to pay for gaming licenses.
|
||||
The AMLD versions appear to be a mixture of the original game modules and Team Challenge's scoring system. This would suggest they were all made ~1994. */
|
||||
|
||||
GAME( 199?, turnover, bctvidbs, mpu4_vid, mpu4, turnover, ROT0, "Barcrest", "Turnover (v2.3)", GAME_NOT_WORKING )
|
||||
GAME( 1993, crmaze, bctvidbs, crmaze, crmaze, crmaze, ROT0, "Barcrest", "The Crystal Maze (v1.3)", GAME_NOT_WORKING )//SWP 0.9
|
||||
GAME( 1993, crmazed, crmaze, crmaze, crmaze, crmaze, ROT0, "Barcrest", "The Crystal Maze (v1.3, Datapak)", GAME_NOT_WORKING )//SWP 0.9D
|
||||
GAME( 1993, crmazea, crmaze, crmaze, crmaze, crmazea, ROT0, "Barcrest", "The Crystal Maze (v0.1, AMLD)", GAME_NOT_WORKING )//SWP 0.9
|
||||
|
||||
GAME( 1990, skiltrek, bctvidbs, mpu4_vid, mpu4, skiltrek, ROT0, "Barcrest", "Skill Trek (v1.1)", GAME_NOT_WORKING )
|
||||
GAME( 1993, crmaze2, bctvidbs, crmaze, crmaze, crmaze2, ROT0, "Barcrest", "The New Crystal Maze Featuring Ocean Zone (v2.2)", GAME_NOT_WORKING )//SWP 1.0
|
||||
GAME( 1993, crmaze2d, crmaze2, crmaze, crmaze, crmaze2, ROT0, "Barcrest", "The New Crystal Maze Featuring Ocean Zone (v2.2d)", GAME_NOT_WORKING )//SWP 1.0D
|
||||
GAME( 1993, crmaze2a, crmaze2, crmaze, crmaze, 0, ROT0, "Barcrest", "The New Crystal Maze Featuring Ocean Zone (v0.1, AMLD)", GAME_NOT_WORKING )//SWP 1.0 /* unprotected? bootleg? */
|
||||
|
||||
GAME( 1989, adders, bctvidbs, mpu4_vid, mpu4, adders, ROT0, "Barcrest", "Adders and Ladders (v2.0)", GAME_NOT_WORKING )
|
||||
GAME( 1994, crmaze3, bctvidbs, crmaze, crmaze, crmaze3, ROT0, "Barcrest", "The Crystal Maze Team Challenge (v0.9)", GAME_NOT_WORKING )//SWP 0.7
|
||||
GAME( 1994, crmaze3d, crmaze3, crmaze, crmaze, crmaze3, ROT0, "Barcrest", "The Crystal Maze Team Challenge (v0.9, Datapak)", GAME_NOT_WORKING )//SWP 0.7D
|
||||
GAME( 1994, crmaze3a, crmaze3, crmaze, crmaze, crmaze3a, ROT0, "Barcrest", "The Crystal Maze Team Challenge (v1.2, AMLD)", GAME_NOT_WORKING )//SWP 0.7
|
||||
|
||||
GAME( 1989, timemchn, bctvidbs, mpu4_vid, mpu4, timemchn, ROT0, "Barcrest", "Time Machine (v2.0)", GAME_NOT_WORKING )
|
||||
GAME( 199?, turnover, bctvidbs, mpu4_vid, turnover, turnover, ROT0, "Barcrest", "Turnover (v2.3)", GAME_NOT_WORKING )
|
||||
|
||||
GAME( 199?, mating, bctvidbs, mating, mpu4, mating, ROT0, "Barcrest", "The Mating Game (v0.2)", GAME_NOT_WORKING )
|
||||
GAME( 199?, matingd, mating, mating, mpu4, mating, ROT0, "Barcrest", "The Mating Game (v0.2d)", GAME_NOT_WORKING )
|
||||
GAME( 1990, skiltrek, bctvidbs, mpu4_vid, skiltrek, skiltrek, ROT0, "Barcrest", "Skill Trek (v1.1)", GAME_NOT_WORKING )
|
||||
|
||||
GAME( 1989, adders, bctvidbs, mpu4_vid, adders, adders, ROT0, "Barcrest", "Adders and Ladders (v2.0)", GAME_NOT_WORKING )
|
||||
|
||||
GAME( 1989, timemchn, bctvidbs, mpu4_vid, skiltrek, timemchn, ROT0, "Barcrest", "Time Machine (v2.0)", GAME_NOT_WORKING )
|
||||
|
||||
GAME( 199?, mating, bctvidbs, mating, mating, mating, ROT0, "Barcrest", "The Mating Game (v0.4)", GAME_NOT_WORKING )//SWP 0.2 /* Using crmaze controls for now, cabinet has trackball */
|
||||
GAME( 199?, matingd, mating, mating, mating, mating, ROT0, "Barcrest", "The Mating Game (v0.4, Datapak)", GAME_NOT_WORKING )//SWP 0.2D
|
||||
|
||||
/* Barquest */
|
||||
/* Barquest II */
|
||||
@ -2588,23 +3121,23 @@ GAME( 199?, matingd, mating, mating, mpu4, mating, ROT0, "Barcrest"
|
||||
|
||||
/* Games below are missing question ROMs */
|
||||
GAME( 199?, strikeit, bctvidbs, mpu4_vid, mpu4, strikeit, ROT0, "Barcrest", "Strike it Lucky (v0.5)", GAME_NOT_WORKING )
|
||||
GAME( 199?, strikeitd, strikeit, mpu4_vid, mpu4, strikeit, ROT0, "Barcrest", "Strike it Lucky (v0.5d)", GAME_NOT_WORKING )
|
||||
GAME( 199?, strikeitd, strikeit, mpu4_vid, mpu4, strikeit, ROT0, "Barcrest", "Strike it Lucky (v0.5, Datapak)", GAME_NOT_WORKING )
|
||||
GAME( 199?, strikeit2, strikeit, mpu4_vid, mpu4, strikeit, ROT0, "Barcrest", "Strike it Lucky (v0.53)", GAME_NOT_WORKING )
|
||||
GAME( 199?, strikeit2d,strikeit, mpu4_vid, mpu4, strikeit, ROT0, "Barcrest", "Strike it Lucky (v0.53d)", GAME_NOT_WORKING )
|
||||
GAME( 199?, strikeit2d,strikeit, mpu4_vid, mpu4, strikeit, ROT0, "Barcrest", "Strike it Lucky (v0.53, Datapak)", GAME_NOT_WORKING )
|
||||
|
||||
GAME( 199?, eyesdown, bctvidbs, mpu4_vid, mpu4, eyesdown, ROT0, "Barcrest", "Eyes Down (v1.3)", GAME_NOT_WORKING )
|
||||
GAME( 199?, eyesdownd, eyesdown, mpu4_vid, mpu4, eyesdown, ROT0, "Barcrest", "Eyes Down (v1.3d)", GAME_NOT_WORKING )
|
||||
GAME( 199?, eyesdownd, eyesdown, mpu4_vid, mpu4, eyesdown, ROT0, "Barcrest", "Eyes Down (v1.3, Datapak)", GAME_NOT_WORKING )
|
||||
|
||||
GAME( 199?, quidgrid, bctvidbs, mpu4_vid, mpu4, quidgrid, ROT0, "Barcrest", "Ten Quid Grid (v1.2)", GAME_NOT_WORKING )
|
||||
GAME( 199?, quidgridd, quidgrid, mpu4_vid, mpu4, quidgrid, ROT0, "Barcrest", "Ten Quid Grid (v1.2d)", GAME_NOT_WORKING )
|
||||
GAME( 199?, quidgrid2, quidgrid, mpu4_vid, mpu4, quidgrid, ROT0, "Barcrest", "Ten Quid Grid (v2.4)", GAME_NOT_WORKING )
|
||||
GAME( 199?, quidgrid2d,quidgrid, mpu4_vid, mpu4, quidgrid, ROT0, "Barcrest", "Ten Quid Grid (v2.4d)", GAME_NOT_WORKING )
|
||||
GAME( 199?, quidgrid, bctvidbs, mpu4_vid, mpu4, quidgrid, ROT0, "Barcrest", "Ten Quid Grid (v1.2)", GAME_NOT_WORKING )
|
||||
GAME( 199?, quidgridd, quidgrid, mpu4_vid, mpu4, quidgrid, ROT0, "Barcrest", "Ten Quid Grid (v1.2, Datapak)", GAME_NOT_WORKING )
|
||||
GAME( 199?, quidgrid2, quidgrid, mpu4_vid, mpu4, quidgrid, ROT0, "Barcrest", "Ten Quid Grid (v2.4)", GAME_NOT_WORKING )
|
||||
GAME( 199?, quidgrid2d,quidgrid, mpu4_vid, mpu4, quidgrid, ROT0, "Barcrest", "Ten Quid Grid (v2.4, Datapak)", GAME_NOT_WORKING )
|
||||
|
||||
/* Games below are newer BwB games and use their own BIOS ROMs */
|
||||
GAME( 199?, vgpoker, 0, vgpoker, mpu4, 0, ROT0, "BwB", "Vegas Poker (prototype, release 2)", GAME_NOT_WORKING )
|
||||
GAME( 199?, prizeinv, 0, mpu4_vid, mpu4, 0, ROT0, "BwB", "Prize Space Invaders (20\" v1.1)", GAME_NOT_WORKING )
|
||||
GAME( 199?, blox, 0, mpu4_vid, mpu4, 0, ROT0, "BwB", "Blox (v2.0)", GAME_NOT_WORKING )
|
||||
GAME( 199?, bloxd, blox, mpu4_vid, mpu4, 0, ROT0, "BwB", "Blox (v2.0, datapak)", GAME_NOT_WORKING )
|
||||
GAME( 199?, bloxd, blox, mpu4_vid, mpu4, 0, ROT0, "BwB", "Blox (v2.0, Datapak)", GAME_NOT_WORKING )
|
||||
|
||||
/* Games below are non-video (why are they in this file? not mpu4.c?) */
|
||||
GAMEL(1989?, connect4, 0, mpu4mod2, connect4, connect4, ROT0, "Dolbeck Systems","Connect 4", GAME_IMPERFECT_GRAPHICS|GAME_REQUIRES_ARTWORK,layout_connect4 )
|
||||
|
@ -8715,8 +8715,15 @@ Other Sun games
|
||||
DRIVER( turnover ) /* 199? */
|
||||
DRIVER( skiltrek ) /* 1990 */
|
||||
DRIVER( crmaze ) /* 1994 */
|
||||
DRIVER( crmazed ) /* 1993 */
|
||||
DRIVER( crmazea ) /* 1993 */
|
||||
DRIVER( crmazeb ) /* 1993 */
|
||||
DRIVER( crmaze2 ) /* 1993 */
|
||||
DRIVER( crmaze2d ) /* 1993 */
|
||||
DRIVER( crmaze2a ) /* 1993 */
|
||||
DRIVER( crmaze3 ) /* 1993 */
|
||||
DRIVER( crmaze3d ) /* 1993 */
|
||||
DRIVER( crmaze3a ) /* 1993 */
|
||||
|
||||
DRIVER( mating ) /* 199? */
|
||||
DRIVER( matingd ) /* 199? */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user