From 99be1d93b8a77fd5e9d7f2ff323e56350b4279ee Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Fri, 10 Mar 2017 18:29:01 +0100 Subject: [PATCH] phoenix.cpp: dumped / redumped the PROM for some of the bootlegs [f205] Also started documenting the differences. --- src/mame/drivers/phoenix.cpp | 174 ++++++++++++++++++++++------------- src/mame/includes/phoenix.h | 5 +- src/mame/video/phoenix.cpp | 4 +- 3 files changed, 116 insertions(+), 67 deletions(-) diff --git a/src/mame/drivers/phoenix.cpp b/src/mame/drivers/phoenix.cpp index 376a51a3b94..8b7411749f3 100644 --- a/src/mame/drivers/phoenix.cpp +++ b/src/mame/drivers/phoenix.cpp @@ -6,13 +6,31 @@ Phoenix hardware games driver by Richard Davies +There are 2 Phoenix board families: +* 2 PCBs with 2 50-pin connectors. The 'Main board' hosts the 8085 CPU, + the MN6221 sound chip, 2 PROMs, the volume trimmer, 1 bank of 8 dip switches + and 3 amplifiers (1x LM380 + 2x LM324), the 'ROMs board' hosts the ROMs, + the RAM and the oscillator. This board type is used by the Amstar original + and some of the clones, some of which introduce a small PCB for credits' + management (with 1 bank of 4 dip switch), while others substitute the MM8221 + with a piggyback PCB. These clones were manufactured between 1980 and 1981. +* Only 1 PCB, and 1 color PROM instead of 2. In most of these bootlegs the LM380 + isn't present and only the 2 LM324 remain. There are 2 banks of 4 switches + and 1 bank of 8, though not all bootlegs have all the banks fitted, probably + as a cost cutting measure. For the same reason, not all have the MN6221. These + bootlegs were all built in 1981 and are an evolution of the first family, + manufactured more cheaply thanks to some reengineering of the circuits. + Notes: -- Discrete sound emulation is in audio/phoenix.c, - pleiads is using another sound driver, audio/pleiads.c +- Discrete sound emulation is in audio/phoenix.cpp, + pleiads is using another sound driver, audio/pleiads.cpp To Do: +Phoenix: +- Emulate the different sound system used by phoenixc2. +- Better documentation of the bootlegs. Survival: @@ -23,7 +41,7 @@ Survival: Pleiads: - Palette banking. Controlled by 3 custom chips marked T-X, T-Y and T-Z. - These chips are reponsible for the protection as well. + These chips are responsible for the protection as well. ***************************************************************************/ @@ -754,7 +772,15 @@ ROM_START( phoenixc ) ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ ROM_END -ROM_START( phoenixc2 ) +/* +main PCB is marked: "PH2" +main PCB is labeled: "03814367" and "280402" and "N 132073" +ROMs PCB is marked: "PH1" +On top of main PCB there is a small piggyback PCB. it is a replacement for MN6221 Melody-Alarm Generator - sound. There are 3 PROMs (dumped) and a few 74xx logics. +This board was in a cocktail table cabinet manufactured by Model Racing and labeled "Thunderbird". +*/ + +ROM_START( phoenixc2 ) // verified main and ROMs PCBs and 2 PROMs ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "phoenix.45", 0x0000, 0x0800, CRC(5b8c55a8) SHA1(839c1ca9766f730ec3accd48db70f6429a9c3362) ) // 01.ic45 ROM_LOAD( "phoenix.46", 0x0800, 0x0800, CRC(dbc942fa) SHA1(9fe224e6ced407289dfa571468259a021d942b7d) ) // 01.ic46 @@ -783,7 +809,7 @@ ROM_START( phoenixc2 ) ROM_LOAD( "tbp24sa10n.185.bin", 0x0200, 0x0100, CRC(0a06bd1b) SHA1(8c5debc5502e88af8019266fedcbe4bad1e2e214) ) ROM_END -ROM_START( phoenixc3 ) +ROM_START( phoenixc3 ) // verified main and ROMs PCBs and 2 PROMs ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "phoenix.45", 0x0000, 0x0800, CRC(5b8c55a8) SHA1(839c1ca9766f730ec3accd48db70f6429a9c3362) ) ROM_LOAD( "phoenix.46", 0x0800, 0x0800, CRC(dbc942fa) SHA1(9fe224e6ced407289dfa571468259a021d942b7d) ) @@ -807,7 +833,12 @@ ROM_START( phoenixc3 ) ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ ROM_END -ROM_START( phoenixc4 ) +/* +main PCB is marked: "PX 031081" +There is an additional daughter board to handle coins credits; it's clearly an addition made by an operator. +*/ + +ROM_START( phoenixc4 ) // verified main and ROMs PCBs and 2 PROMs ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "phoenix.45", 0x0000, 0x0800, CRC(5b8c55a8) SHA1(839c1ca9766f730ec3accd48db70f6429a9c3362) ) ROM_LOAD( "phoenix.46", 0x0800, 0x0800, CRC(dbc942fa) SHA1(9fe224e6ced407289dfa571468259a021d942b7d) ) @@ -831,7 +862,7 @@ ROM_START( phoenixc4 ) ROM_RELOAD( 0x0000, 0x0100 ) /* the dump had 2 identical proms with different names */ ROM_END -ROM_START( phoenixi ) +ROM_START( phoenixi ) // verified single PCB, single PROM ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "0201.bin", 0x0000, 0x0800, CRC(c0f73929) SHA1(3cecf8341a5674165d2cae9b22ea5db26a9597de) ) ROM_LOAD( "0202.bin", 0x0800, 0x0800, CRC(440d56e8) SHA1(b3147d5416cec8c00c7df40b878b826434121737) ) @@ -851,7 +882,7 @@ ROM_START( phoenixi ) ROM_LOAD( "0212.bin", 0x0800, 0x0800, CRC(eba42f0f) SHA1(378282cb2c4e10c23179ae3c605ae7bf691150f6) ) ROM_REGION( 0x0200, "proms", 0 ) - ROM_LOAD( "sn74s471n.bin", 0x0100, 0x0100, CRC(a7d73fba) SHA1(ed7355c8ea86fb14c91dd0b5c5fb048a3c05cdfc) ) + ROM_LOAD( "sn74s471n.bin", 0x0100, 0x0100, CRC(c68a49bc) SHA1(1a015b89ac0622e73bcebd76cf5132830fe0bfc1) ) ROM_END ROM_START( condor ) @@ -878,7 +909,9 @@ ROM_START( condor ) ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ ROM_END -ROM_START( condorn ) +// PCB is marked: "NOVARMATIC" and "13200" + +ROM_START( condorn ) // verified single PCB, single PROM ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "1.bin", 0x0000, 0x0800, CRC(c0f73929) SHA1(3cecf8341a5674165d2cae9b22ea5db26a9597de) ) ROM_LOAD( "2.bin", 0x0800, 0x0800, CRC(440d56e8) SHA1(b3147d5416cec8c00c7df40b878b826434121737) ) @@ -897,9 +930,8 @@ ROM_START( condorn ) ROM_LOAD( "a.bin", 0x0000, 0x0800, CRC(cdd5ef12) SHA1(1eb4ff6a0d56640acf0de2d6e7b7070e5b2c90d4) ) ROM_LOAD( "b.bin", 0x0800, 0x0800, CRC(eba42f0f) SHA1(378282cb2c4e10c23179ae3c605ae7bf691150f6) ) - ROM_REGION( 0x0200, "proms", 0 ) // not dumped for this set - ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ - ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "sn74s471n.bin", 0x0100, 0x0100, CRC(c68a49bc) SHA1(1a015b89ac0622e73bcebd76cf5132830fe0bfc1) ) ROM_END ROM_START( falcon ) @@ -1021,7 +1053,12 @@ ROM_START( vautourz ) ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ ROM_END -ROM_START( fenix ) +/* +PCB is marked: "ORIO/G" +PCB is labeled: "FONECHIS" +*/ + +ROM_START( fenix ) // verified single PCB, single PROM ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "0.1e", 0x0000, 0x0800, NO_DUMP ) // socket at location '1e' is empty. ROM_LOAD( "1.1f", 0x0800, 0x0800, CRC(3699b11a) SHA1(7122685cbfcd75898eaa68f8c5bf87c11df59a3b) ) // 1.1f @@ -1120,7 +1157,11 @@ ROM_START( avefenixl ) ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ ROM_END -ROM_START( griffon ) +/* +PCB is marked: "003 LATO A" on component side and "003 LATO B" on solder side. (In Italian "lato" means "side") +*/ + +ROM_START( griffon ) // verified single PCB, single PROM ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "griffon0.a5", 0x0000, 0x0800, CRC(c0f73929) SHA1(3cecf8341a5674165d2cae9b22ea5db26a9597de) ) ROM_LOAD( "griffon1.a6", 0x0800, 0x0800, CRC(3cc33e4a) SHA1(45d16334f245cc185e18f63062e08627e9bd06bb) ) @@ -1140,8 +1181,7 @@ ROM_START( griffon ) ROM_LOAD( "griffon.d8", 0x0800, 0x0800, CRC(eba42f0f) SHA1(378282cb2c4e10c23179ae3c605ae7bf691150f6) ) ROM_REGION( 0x0200, "proms", 0 ) - ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ - ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ + ROM_LOAD( "sn74s471n.bin", 0x0100, 0x0100, CRC(c68a49bc) SHA1(1a015b89ac0622e73bcebd76cf5132830fe0bfc1) ) ROM_END ROM_START( nextfase ) @@ -1438,15 +1478,15 @@ ROM_START( survival ) ROM_END -DRIVER_INIT_MEMBER(phoenix_state,condor) +DRIVER_INIT_MEMBER(phoenix_state, coindsw) { /* additional inputs for coinage */ m_maincpu->space(AS_PROGRAM).install_read_port(0x5000, 0x5000, "DSW1"); } -DRIVER_INIT_MEMBER(phoenix_state,vautourza) +DRIVER_INIT_MEMBER(phoenix_state, oneprom) { - uint8_t *rgn = memregion("proms")->base(); + uint8_t *rgn = memregion("proms")->base(); // expand the 8-bit PROM into the same layout as the 4-bit PROMs used by most versions of the game for (int i = 0; i < 0x100; i++) @@ -1456,50 +1496,58 @@ DRIVER_INIT_MEMBER(phoenix_state,vautourza) } } -/*** Phoenix (& clones) ***/ -GAME( 1980, phoenix, 0, phoenix, phoenix, driver_device, 0, ROT90, "Amstar", "Phoenix (Amstar, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, phoenix2, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "Amstar", "Phoenix (Amstar, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, phoenixa, phoenix, phoenix, phoenixa, driver_device, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, phoenixb, phoenix, phoenix, phoenixa, driver_device, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, phoenixt, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "Amstar (Taito license)", "Phoenix (Taito)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, phoenixj, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "Amstar (Taito Japan license)", "Phoenix (Taito Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, phoenix3, phoenix, phoenix, phoenix3, driver_device, 0, ROT90, "bootleg (T.P.N.)", "Phoenix (T.P.N. bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, phoenixdal,phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg (D&L)", "Phoenix (D&L bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, phoenixc, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, phoenixc2,phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, phoenixc3,phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, phoenixc4,phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, phoenixi, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg (IDI)", "Phoenix (IDI bootleg)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // Needs correct color PROM decode -GAME( 1981, condor, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg (Sidam)", "Condor (Sidam bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, condorn, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg (S C Novar)", "Condor (S C Novar bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) -// the following 2 were common bootlegs in england & france respectively -GAME( 1980, falcon, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg (BGV Ltd.)", "Falcon (bootleg of Phoenix) (8085A CPU)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, vautour, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg (Jeutel)", "Vautour (bootleg of Phoenix) (8085A CPU)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, falconz, phoenix, condor, falconz, driver_device, 0, ROT90, "bootleg", "Falcon (bootleg of Phoenix) (Z80 CPU)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, vautourz, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg", "Vautour (bootleg of Phoenix) (Z80 CPU)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, vautourza,phoenix, condor , phoenixt,phoenix_state, vautourza,ROT90, "bootleg (Jeutel)", "Vautour (bootleg of Phoenix) (Z80 CPU, single PROM)", MACHINE_SUPPORTS_SAVE ) +DRIVER_INIT_MEMBER(phoenix_state, oneprom_coindsw) +{ + DRIVER_INIT_CALL(coindsw); -// fenix is an italian bootleg based on vautourz -GAME( 1980, fenix, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg", "Fenix (bootleg of Phoenix)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, griffon, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg (Videotron)", "Griffon (bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) -// nextfase is a spanish bootleg -GAME( 1981, nextfase, phoenix, phoenix, nextfase, driver_device, 0, ROT90, "bootleg (Petaco S.A.)", "Next Fase (bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) -// as is this -GAME( 1981, phoenixs, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Sonic)", "Phoenix (Sonic, Spanish bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, phoenixass,phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Assa)", "Phoenix (Assa, Spanish bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, avefenix, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Video Game)", "Ave Fenix (Electrogame, Spanish bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) // Electrogame (Barcelona) made the dedicated cabinet and is likely the real manufacturer, ingame shows 'Video Game' -GAME( 1981, avefenixrf,phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Recreativos Franco S.A.)", "Ave Fenix (Recreativos Franco, Spanish bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, avefenixl,phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Laguna)", "Ave Fenix (Laguna, Spanish bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) + DRIVER_INIT_CALL(oneprom); +} -/*** Pleiads (& clones) ***/ -GAME( 1981, pleiads, 0, pleiads, pleiads, driver_device, 0, ROT90, "Tehkan", "Pleiads (Tehkan)", MACHINE_IMPERFECT_COLORS ) -GAME( 1981, pleiadsb2,pleiads, pleiads, pleiads, driver_device, 0, ROT90, "bootleg (ESG)", "Pleiads (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, pleiadbl, pleiads, pleiads, pleiadbl, driver_device, 0, ROT90, "bootleg", "Pleiads (bootleg set 1)", MACHINE_IMPERFECT_COLORS ) -GAME( 1981, pleiadce, pleiads, pleiads, pleiadce, driver_device, 0, ROT90, "Tehkan (Centuri license)", "Pleiads (Centuri)", MACHINE_IMPERFECT_COLORS ) -GAME( 1981, pleiadsi, pleiads, pleiads, pleiadce, driver_device, 0, ROT90, "bootleg? (Irecsa)", "Pleiads (Irecsa)", MACHINE_IMPERFECT_COLORS ) // possibly licensed, but some of the roms match the bootlegs -GAME( 1981, pleiadsn, pleiads, phoenix, pleiadce, driver_device, 0, ROT90, "Niemer S.A.", "Pleiads (Niemer S.A.)", MACHINE_IMPERFECT_COLORS ) // possibly licensed, but some of the roms match the bootlegs -GAME( 1981, pleiadss, pleiads, phoenix, pleiadce, driver_device, 0, ROT90, "bootleg", "Pleiads (Spanish bootleg)", MACHINE_SUPPORTS_SAVE ) // colours match PCB (but are ugly) -GAME( 1981, capitol, pleiads, phoenix, capitol, driver_device, 0, ROT90, "bootleg? (Universal Video Spiel)", "Capitol", MACHINE_IMPERFECT_COLORS ) -/*** Others ***/ -GAME( 1982, survival, 0, survival, survival, driver_device, 0, ROT90, "Rock-Ola", "Survival", MACHINE_IMPERFECT_COLORS ) + /*** Phoenix (& clones) ***/ +GAME( 1980, phoenix, 0, phoenix, phoenix, driver_device, 0, ROT90, "Amstar", "Phoenix (Amstar, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, phoenix2, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "Amstar", "Phoenix (Amstar, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, phoenixa, phoenix, phoenix, phoenixa, driver_device, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, phoenixb, phoenix, phoenix, phoenixa, driver_device, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, phoenixt, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "Amstar (Taito license)", "Phoenix (Taito)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, phoenixj, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "Amstar (Taito Japan license)", "Phoenix (Taito Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, phoenix3, phoenix, phoenix, phoenix3, driver_device, 0, ROT90, "bootleg (T.P.N.)", "Phoenix (T.P.N. bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, phoenixdal, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg (D&L)", "Phoenix (D&L bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, phoenixc, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, phoenixc2, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, phoenixc3, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, phoenixc4, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, phoenixi, phoenix, condor, condor, phoenix_state, oneprom_coindsw, ROT90, "bootleg (IDI)", "Phoenix (IDI bootleg)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // Needs correct color PROM decode +GAME( 1981, condor, phoenix, condor, condor, phoenix_state, coindsw, ROT90, "bootleg (Sidam)", "Condor (Sidam bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, condorn, phoenix, condor, condor, phoenix_state, oneprom_coindsw, ROT90, "bootleg (S C Novar)", "Condor (S C Novar bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) +// the following 2 were common bootlegs in England & France respectively +GAME( 1980, falcon, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg", "Falcon (bootleg of Phoenix) (8085A CPU)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, vautour, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg (Jeutel)", "Vautour (bootleg of Phoenix) (8085A CPU)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, falconz, phoenix, condor, falconz, driver_device, 0, ROT90, "bootleg (Digimatic)", "Falcon (bootleg of Phoenix) (Z80 CPU)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, vautourz, phoenix, condor, condor, phoenix_state, coindsw, ROT90, "bootleg", "Vautour (bootleg of Phoenix) (Z80 CPU)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, vautourza, phoenix, condor , phoenixt, phoenix_state, oneprom, ROT90, "bootleg (Jeutel)", "Vautour (bootleg of Phoenix) (Z80 CPU, single PROM)", MACHINE_SUPPORTS_SAVE ) + +// fenix is an Italian bootleg based on vautourz +GAME( 1980, fenix, phoenix, condor, condor, phoenix_state, oneprom_coindsw, ROT90, "bootleg (Orio)", "Fenix (bootleg of Phoenix)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, griffon, phoenix, condor, condor, phoenix_state, oneprom_coindsw, ROT90, "bootleg (Videotron)", "Griffon (bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) +// nextfase is a Spanish bootleg +GAME( 1981, nextfase, phoenix, phoenix, nextfase, driver_device, 0, ROT90, "bootleg (Petaco S.A.)", "Next Fase (bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) + // as is this +GAME( 1981, phoenixs, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Sonic)", "Phoenix (Sonic, Spanish bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, phoenixass, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Assa)", "Phoenix (Assa, Spanish bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, avefenix, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Video Game)", "Ave Fenix (Electrogame, Spanish bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) // Electrogame (Barcelona) made the dedicated cabinet and is likely the real manufacturer, ingame shows 'Video Game' +GAME( 1980, avefenixrf, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Recreativos Franco S.A.)", "Ave Fenix (Recreativos Franco, Spanish bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, avefenixl, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Laguna)", "Ave Fenix (Laguna, Spanish bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) + + /*** Pleiads (& clones) ***/ +GAME( 1981, pleiads, 0, pleiads, pleiads, driver_device, 0, ROT90, "Tehkan", "Pleiads (Tehkan)", MACHINE_IMPERFECT_COLORS ) +GAME( 1981, pleiadsb2, pleiads, pleiads, pleiads, driver_device, 0, ROT90, "bootleg (ESG)", "Pleiads (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pleiadbl, pleiads, pleiads, pleiadbl, driver_device, 0, ROT90, "bootleg", "Pleiads (bootleg set 1)", MACHINE_IMPERFECT_COLORS ) +GAME( 1981, pleiadce, pleiads, pleiads, pleiadce, driver_device, 0, ROT90, "Tehkan (Centuri license)", "Pleiads (Centuri)", MACHINE_IMPERFECT_COLORS ) +GAME( 1981, pleiadsi, pleiads, pleiads, pleiadce, driver_device, 0, ROT90, "bootleg? (Irecsa)", "Pleiads (Irecsa)", MACHINE_IMPERFECT_COLORS ) // possibly licensed, but some of the roms match the bootlegs +GAME( 1981, pleiadsn, pleiads, phoenix, pleiadce, driver_device, 0, ROT90, "Niemer S.A.", "Pleiads (Niemer S.A.)", MACHINE_IMPERFECT_COLORS ) // possibly licensed, but some of the roms match the bootlegs +GAME( 1981, pleiadss, pleiads, phoenix, pleiadce, driver_device, 0, ROT90, "bootleg", "Pleiads (Spanish bootleg)", MACHINE_SUPPORTS_SAVE ) // colours match PCB (but are ugly) +GAME( 1981, capitol, pleiads, phoenix, capitol, driver_device, 0, ROT90, "bootleg? (Universal Video Spiel)", "Capitol", MACHINE_IMPERFECT_COLORS ) + + /*** Others ***/ +GAME( 1982, survival, 0, survival, survival, driver_device, 0, ROT90, "Rock-Ola", "Survival", MACHINE_IMPERFECT_COLORS ) diff --git a/src/mame/includes/phoenix.h b/src/mame/includes/phoenix.h index b5d6ab5cdc0..a14fbf13d85 100644 --- a/src/mame/includes/phoenix.h +++ b/src/mame/includes/phoenix.h @@ -34,8 +34,9 @@ public: DECLARE_READ8_MEMBER(survival_input_port_0_r); DECLARE_CUSTOM_INPUT_MEMBER(player_input_r); DECLARE_CUSTOM_INPUT_MEMBER(pleiads_protection_r); - DECLARE_DRIVER_INIT(condor); - DECLARE_DRIVER_INIT(vautourza); + DECLARE_DRIVER_INIT(oneprom); + DECLARE_DRIVER_INIT(coindsw); + DECLARE_DRIVER_INIT(oneprom_coindsw); TILE_GET_INFO_MEMBER(get_fg_tile_info); TILE_GET_INFO_MEMBER(get_bg_tile_info); DECLARE_MACHINE_RESET(phoenix); diff --git a/src/mame/video/phoenix.cpp b/src/mame/video/phoenix.cpp index 5c7b365924c..9407302810e 100644 --- a/src/mame/video/phoenix.cpp +++ b/src/mame/video/phoenix.cpp @@ -2,7 +2,7 @@ // copyright-holders:Richard Davies /*************************************************************************** - video.c + phoenix.cpp Functions to emulate the video hardware of the machine. @@ -273,7 +273,7 @@ WRITE8_MEMBER(phoenix_state::pleiads_videoreg_w) /* the palette table is at $0420-$042f and is set by $06bc. Four palette changes by level. The palette selection is - wrong, but the same paletter is used for both layers. */ + wrong, but the same palette is used for both layers. */ if (m_palette_bank != ((data >> 1) & 3)) {