New games added

---------------
Skater (cassette)
Super Doubles Tennis (cassette)

[Chack'n & Team Japump!!!, Charles MacDonald, Dr. Spankenstein, Kevin Eshbach, T. Huff, SteveS, E. Page-Hanify, Hikari, ArcadeDude, F. Bukor, N. Francfort, jmurjr, arcade-history.com, ThumB, Hurray Banana, Paratech, Xiaou2, Cornishdavey, A. Costin, M. Ponweiser, Tormod & Rambo]

also renamed cgsumo to coozumou as it's a Japanese version
This commit is contained in:
Yasuhiro Ogawa 2012-03-10 04:05:23 +00:00
parent 104879cea0
commit de4cb7d134
4 changed files with 601 additions and 483 deletions

File diff suppressed because it is too large Load Diff

View File

@ -40,6 +40,7 @@ enum {
TYPE3_SWAP_25,
TYPE3_SWAP_34_0,
TYPE3_SWAP_34_7,
TYPE3_SWAP_45,
TYPE3_SWAP_23_56,
TYPE3_SWAP_56,
TYPE3_SWAP_67
@ -260,13 +261,12 @@ static void decocass_fno( running_machine &machine, offs_t offset, UINT8 data )
/***************************************************************************
*
* TYPE1 DONGLE (DE-0061)
* - Lock 'n Chase
* - Treasure Island
* - Super Astro Fighter
* - Lucky Poker
* - Terranian
* - Explorer
* - Super Astro Fighter
* - Lock 'n Chase
* - Pro Golf
* - Lucky Poker
* - Treasure Island
*
* Latch bits 2 and 6, pass bit 3, invert bit 2.
* Lookup PROM DE-0061 using bits 0, 1, 4, 5, and 7 as the
@ -671,10 +671,10 @@ static READ8_HANDLER( decocass_type1_latch_16_pass_3_inv_1_r )
/***************************************************************************
*
* TYPE2 DONGLE (CS82-007)
* - Mission X
* - Disco No 1
* - Pro Tennis
* - Tornado
* - Mission X
* - Pro Tennis
*
***************************************************************************/
static READ8_HANDLER( decocass_type2_r )
@ -746,17 +746,19 @@ static WRITE8_HANDLER( decocass_type2_w )
/***************************************************************************
*
* TYPE3 DONGLE
* - Burger Time
* - Bump 'n Jump
* - Burnin' Rubber
* - Burger Time
* - Graplop
* - Cluster Buster
* - LaPaPa
* - Fighting Ice Hockey
* - Skater
* - Pro Bowling
* - Night Star
* - Pro Soccer
* - Super Doubles Tennis
* - Peter Pepper's Ice Cream Factory
* - Fighting Ice Hockey
*
***************************************************************************/
static READ8_HANDLER( decocass_type3_r )
@ -879,6 +881,17 @@ static READ8_HANDLER( decocass_type3_r )
(BIT(save, 6) << 6) |
(state->m_type3_d0_latch << 7);
break;
case TYPE3_SWAP_45:
data =
state->m_type3_d0_latch |
(BIT(save, 1) << 1) |
(BIT(save, 2) << 2) |
(BIT(save, 3) << 3) |
(BIT(save, 5) << 4) |
(BIT(save, 4) << 5) |
(BIT(save, 6) << 6) |
(BIT(save, 7) << 7);
break;
case TYPE3_SWAP_23_56:
data =
(state->m_type3_d0_latch << 0) |
@ -979,6 +992,7 @@ static WRITE8_HANDLER( decocass_type3_w )
*
* TYPE4 DONGLE
* - Scrum Try
* - Oozumou/The Grand Sumo
* Contains a 32K (EP)ROM that can be read from any byte
* boundary sequentially. The EPROM is enable after writing
* 1100xxxx to E5x1 once. Then an address is written LSB
@ -1065,7 +1079,7 @@ static WRITE8_HANDLER( decocass_type4_w )
/***************************************************************************
*
* TYPE5 DONGLE
* TYPE4 DONGLE
* - Boulder Dash
* Actually a NOP dongle returning 0x55 after triggering a latch
* by writing 1100xxxx to E5x1
@ -1418,24 +1432,22 @@ MACHINE_RESET( chwy )
state->m_dongle_r = decocass_type1_latch_27_pass_3_inv_2_r;
}
MACHINE_RESET( clocknch )
MACHINE_RESET( cterrani )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #1 (DE-0061 flip 2-3)\n"));
LOG(0,("dongle type #1 (DE-0061 straight)\n"));
state->m_dongle_r = decocass_type1_latch_26_pass_3_inv_2_r;
state->m_type1_inmap = MAKE_MAP(0,1,3,2,4,5,6,7);
state->m_type1_outmap = MAKE_MAP(0,1,3,2,4,5,6,7);
state->m_type1_inmap = MAKE_MAP(0,1,2,3,4,5,6,7);
state->m_type1_outmap = MAKE_MAP(0,1,2,3,4,5,6,7);
}
MACHINE_RESET( ctisland )
MACHINE_RESET( castfant )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #1 (DE-0061 flip 0-2)\n"));
state->m_dongle_r = decocass_type1_latch_26_pass_3_inv_2_r;
state->m_type1_inmap = MAKE_MAP(2,1,0,3,4,5,6,7);
state->m_type1_outmap = MAKE_MAP(2,1,0,3,4,5,6,7);
LOG(0,("dongle type #1 (DE-0061)\n"));
state->m_dongle_r = decocass_type1_latch_16_pass_3_inv_1_r;
}
MACHINE_RESET( csuperas )
@ -1448,40 +1460,14 @@ MACHINE_RESET( csuperas )
state->m_type1_outmap = MAKE_MAP(0,1,2,3,5,4,6,7);
}
MACHINE_RESET( castfant )
MACHINE_RESET( clocknch )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #1 (DE-0061)\n"));
state->m_dongle_r = decocass_type1_latch_16_pass_3_inv_1_r;
}
MACHINE_RESET( cluckypo )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #1 (DE-0061 flip 1-3)\n"));
LOG(0,("dongle type #1 (DE-0061 flip 2-3)\n"));
state->m_dongle_r = decocass_type1_latch_26_pass_3_inv_2_r;
state->m_type1_inmap = MAKE_MAP(0,3,2,1,4,5,6,7);
state->m_type1_outmap = MAKE_MAP(0,3,2,1,4,5,6,7);
}
MACHINE_RESET( cterrani )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #1 (DE-0061 straight)\n"));
state->m_dongle_r = decocass_type1_latch_26_pass_3_inv_2_r;
state->m_type1_inmap = MAKE_MAP(0,1,2,3,4,5,6,7);
state->m_type1_outmap = MAKE_MAP(0,1,2,3,4,5,6,7);
}
MACHINE_RESET( cexplore )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #1 (DE-0061 own PROM)\n"));
state->m_dongle_r = decocass_type1_latch_26_pass_5_inv_2_r;
state->m_type1_inmap = MAKE_MAP(0,1,3,2,4,5,6,7);
state->m_type1_outmap = MAKE_MAP(0,1,3,2,4,5,6,7);
}
MACHINE_RESET( cprogolf )
@ -1494,13 +1480,32 @@ MACHINE_RESET( cprogolf )
state->m_type1_outmap = MAKE_MAP(1,0,2,3,4,5,6,7);
}
MACHINE_RESET( cmissnx )
MACHINE_RESET( cluckypo )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #2 (CS82-007)\n"));
state->m_dongle_r = decocass_type2_r;
state->m_dongle_w = decocass_type2_w;
LOG(0,("dongle type #1 (DE-0061 flip 1-3)\n"));
state->m_dongle_r = decocass_type1_latch_26_pass_3_inv_2_r;
state->m_type1_inmap = MAKE_MAP(0,3,2,1,4,5,6,7);
state->m_type1_outmap = MAKE_MAP(0,3,2,1,4,5,6,7);
}
MACHINE_RESET( ctisland )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #1 (DE-0061 flip 0-2)\n"));
state->m_dongle_r = decocass_type1_latch_26_pass_3_inv_2_r;
state->m_type1_inmap = MAKE_MAP(2,1,0,3,4,5,6,7);
state->m_type1_outmap = MAKE_MAP(2,1,0,3,4,5,6,7);
}
MACHINE_RESET( cexplore )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #1 (DE-0061 own PROM)\n"));
state->m_dongle_r = decocass_type1_latch_26_pass_5_inv_2_r;
}
MACHINE_RESET( cdiscon1 )
@ -1512,15 +1517,6 @@ MACHINE_RESET( cdiscon1 )
state->m_dongle_w = decocass_type2_w;
}
MACHINE_RESET( cptennis )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #2 (CS82-007)\n"));
state->m_dongle_r = decocass_type2_r;
state->m_dongle_w = decocass_type2_w;
}
MACHINE_RESET( ctornado )
{
decocass_state *state = machine.driver_data<decocass_state>();
@ -1530,24 +1526,22 @@ MACHINE_RESET( ctornado )
state->m_dongle_w = decocass_type2_w;
}
MACHINE_RESET( cbnj )
MACHINE_RESET( cmissnx )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #3 (PAL)\n"));
state->m_dongle_r = decocass_type3_r;
state->m_dongle_w = decocass_type3_w;
state->m_type3_swap = TYPE3_SWAP_67;
LOG(0,("dongle type #2 (CS82-007)\n"));
state->m_dongle_r = decocass_type2_r;
state->m_dongle_w = decocass_type2_w;
}
MACHINE_RESET( cburnrub )
MACHINE_RESET( cptennis )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #3 (PAL)\n"));
state->m_dongle_r = decocass_type3_r;
state->m_dongle_w = decocass_type3_w;
state->m_type3_swap = TYPE3_SWAP_67;
LOG(0,("dongle type #2 (CS82-007)\n"));
state->m_dongle_r = decocass_type2_r;
state->m_dongle_w = decocass_type2_w;
}
MACHINE_RESET( cbtime )
@ -1560,6 +1554,16 @@ MACHINE_RESET( cbtime )
state->m_type3_swap = TYPE3_SWAP_12;
}
MACHINE_RESET( cburnrub )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #3 (PAL)\n"));
state->m_dongle_r = decocass_type3_r;
state->m_dongle_w = decocass_type3_w;
state->m_type3_swap = TYPE3_SWAP_67;
}
MACHINE_RESET( cgraplop )
{
decocass_state *state = machine.driver_data<decocass_state>();
@ -1590,14 +1594,14 @@ MACHINE_RESET( clapapa )
state->m_type3_swap = TYPE3_SWAP_34_7;
}
MACHINE_RESET( cfghtice )
MACHINE_RESET( cskater )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #3 (PAL)\n"));
state->m_dongle_r = decocass_type3_r;
state->m_dongle_w = decocass_type3_w;
state->m_type3_swap = TYPE3_SWAP_25;
state->m_type3_swap = TYPE3_SWAP_45;
}
MACHINE_RESET( cprobowl )
@ -1630,40 +1634,14 @@ MACHINE_RESET( cpsoccer )
state->m_type3_swap = TYPE3_SWAP_24;
}
MACHINE_RESET( cppicf )
MACHINE_RESET( csdtenis )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #3 (PAL)\n"));
state->m_dongle_r = decocass_type3_r;
state->m_dongle_w = decocass_type3_w;
state->m_type3_swap = TYPE3_SWAP_01;
}
MACHINE_RESET( cscrtry )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #4 (32K ROM)\n"));
state->m_dongle_r = decocass_type4_r;
state->m_dongle_w = decocass_type4_w;
}
MACHINE_RESET( cbdash )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #5 (NOP)\n"));
state->m_dongle_r = decocass_type5_r;
state->m_dongle_w = decocass_type5_w;
}
MACHINE_RESET( cflyball )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("no dongle\n"));
state->m_dongle_r = decocass_nodong_r;
state->m_type3_swap = TYPE3_SWAP_23_56;
}
MACHINE_RESET( czeroize )
@ -1690,6 +1668,52 @@ MACHINE_RESET( czeroize )
mem[0x08a1] = 0xf7;
}
MACHINE_RESET( cppicf )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #3 (PAL)\n"));
state->m_dongle_r = decocass_type3_r;
state->m_dongle_w = decocass_type3_w;
state->m_type3_swap = TYPE3_SWAP_01;
}
MACHINE_RESET( cfghtice )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #3 (PAL)\n"));
state->m_dongle_r = decocass_type3_r;
state->m_dongle_w = decocass_type3_w;
state->m_type3_swap = TYPE3_SWAP_25;
}
MACHINE_RESET( type4 )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #4 (32K ROM)\n"));
state->m_dongle_r = decocass_type4_r;
state->m_dongle_w = decocass_type4_w;
}
MACHINE_RESET( cbdash )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("dongle type #5 (NOP)\n"));
state->m_dongle_r = decocass_type5_r;
state->m_dongle_w = decocass_type5_w;
}
MACHINE_RESET( cflyball )
{
decocass_state *state = machine.driver_data<decocass_state>();
decocass_reset_common(machine);
LOG(0,("no dongle\n"));
state->m_dongle_r = decocass_nodong_r;
}
/***************************************************************************
*
* 8041 port handlers

View File

@ -141,33 +141,34 @@ MACHINE_START( decocass );
MACHINE_RESET( decocass );
MACHINE_RESET( ctsttape );
MACHINE_RESET( chwy );
MACHINE_RESET( clocknch );
MACHINE_RESET( ctisland );
MACHINE_RESET( csuperas );
MACHINE_RESET( castfant );
MACHINE_RESET( cluckypo );
MACHINE_RESET( cterrani );
MACHINE_RESET( cexplore );
MACHINE_RESET( castfant );
MACHINE_RESET( csuperas );
MACHINE_RESET( clocknch );
MACHINE_RESET( cprogolf );
MACHINE_RESET( cmissnx );
MACHINE_RESET( cluckypo );
MACHINE_RESET( ctisland );
MACHINE_RESET( cexplore );
MACHINE_RESET( cdiscon1 );
MACHINE_RESET( cptennis );
MACHINE_RESET( ctornado );
MACHINE_RESET( cbnj );
MACHINE_RESET( cburnrub );
MACHINE_RESET( cmissnx );
MACHINE_RESET( cptennis );
MACHINE_RESET( cbtime );
MACHINE_RESET( cburnrub );
MACHINE_RESET( cgraplop );
MACHINE_RESET( cgraplop2 );
MACHINE_RESET( cskater );
MACHINE_RESET( clapapa );
MACHINE_RESET( cfghtice );
MACHINE_RESET( cprobowl );
MACHINE_RESET( cnightst );
MACHINE_RESET( cpsoccer );
MACHINE_RESET( csdtenis );
MACHINE_RESET( czeroize );
MACHINE_RESET( cppicf );
MACHINE_RESET( cscrtry );
MACHINE_RESET( cfghtice );
MACHINE_RESET( type4 );
MACHINE_RESET( cflyball );
MACHINE_RESET( cbdash );
MACHINE_RESET( czeroize );
WRITE8_HANDLER( i8041_p1_w );
READ8_HANDLER( i8041_p1_r );

View File

@ -5220,13 +5220,13 @@ cgraplop // 28 1982.11 Cluster Buster / Graplop
cgraplop2 // 28
clapapa // 29 1982.11 La-Pa-Pa
clapapa2 // 29 Rootin' Tootin' // this one doesn't display lapapa anywhere
// 30 1983.03 Skater
cskater // 30 1983.03 Skater
cprobowl // 31 1983.03 Pro Bowling
cnightst // 32 1983.04 Night Star
cnightst2 // 32
cpsoccer // 33 1982.08 Pro Soccer
cpsoccerj // 33 1982.08 Pro Soccer (Japan)
// 34 1983.09 Super Doubles Tennis
csdtenis // 34 1983.09 Super Doubles Tennis
cflyball // 35 1983.?? Flying Ball/Bampoline
// 36 1984.04 Genesis/Boomer Rang'r
czeroize // 37 1983.10 Zeroize
@ -5235,7 +5235,7 @@ cscrtry2 // 38
cppicf // 39 1984.02 Peter Pepper's Ice Cream Factory
cppicf2 // 39
cfghtice // 40 1984.04 Fighting Ice Hockey
cgsumo // 41 1984.05 Oozumou/The Grand Sumo
coozumou // 41 1984.05 Oozumou/The Grand Sumo
// 42 1984.08 Hellow Gateball // not a typo, this is official spelling
// 43 1984.08 Yellow Cab
cbdash // 44 1985.08 Boulder Dash