trunk/src/mame/drivers/arkanoid.c
| r32595 | r32596 | |
| 11 | 11 | |
| 12 | 12 | arkanoid The earlier revisions. They each differ in the country byte. These |
| 13 | 13 | arkanoiduo versions work fine with the current MCU rom which needs to be |
| 14 | | arkanoidjo verified against a genuine decapped A75-06.IC16 M68705 MCU. |
| 14 | arkanoidjb verified against a genuine decapped A75-06.IC16 M68705 MCU. |
| 15 | 15 | arkanoidu USA version. A later revision, code has been inserted NOT patched. |
| 16 | 16 | The 68705 code for this one was not available; I made it up from |
| 17 | 17 | the current A75-06.IC16 changing the level data pointer table. |
| 18 | | arkanoidj Japanese version. A later revision with level selector. |
| 18 | arkanoidj Japanese version. Final revision, MCU code not dumped. |
| 19 | arkanoidja Japanese version. A later revision with level selector. |
| 19 | 20 | The 68705 code for this one was not available; I made it up from |
| 20 | 21 | the current A75-06.IC16 changing the level data pointer table. |
| 21 | | arkanoidjb Bootleg of the early Japanese version. The only difference is |
| 22 | arkanoidjbl Bootleg of the early Japanese version. The only difference is |
| 22 | 23 | that the warning text has been replaced by "WAIT" |
| 23 | 24 | This version works fine with the current A75-06.IC16 MCU ROM |
| 24 | 25 | arkatayt Another bootleg of the early Japanese one, more heavily modified |
| r32595 | r32596 | |
| 432 | 433 | * affects ball speed at start of level (0x06 or 0x08) |
| 433 | 434 | * affects level 2 (same as normal version or same as level 30) |
| 434 | 435 | - You can select your starting level (between 1 and 30) |
| 435 | | but they aren't displayed like in the original Japanese set we have ('arkanoidj'). |
| 436 | but they aren't displayed like in the original Japanese set we have ('arkanoidja'). |
| 436 | 437 | - Level 30 differs from original Japanese version |
| 437 | 438 | - There seems to be code to edit levels (check code at 0x8082), but the routines |
| 438 | 439 | don't seem to be called anymore. |
| r32595 | r32596 | |
| 455 | 456 | * affects ball speed at start of level (0x04 or 0x06) |
| 456 | 457 | * affects level 2 (same as normal version or same as level 30) |
| 457 | 458 | - You can select your starting level (between 1 and 30) |
| 458 | | but they aren't displayed like in the original Japanese set we have ('arkanoidj'). |
| 459 | but they aren't displayed like in the original Japanese set we have ('arkanoidja'). |
| 459 | 460 | No "What round do you want to start from ?" message though. |
| 460 | 461 | - Level 30 differs from original Japanese version (it also differs from 'arkangc') |
| 461 | 462 | - The routine to handle the paddle is completely different as in 'arkangc' |
| r32595 | r32596 | |
| 486 | 487 | - "Continue" Dip Switch has been replaced by sort of "Debug" Dip Switch as in 'arkangc'; |
| 487 | 488 | however, this has no effect due to newly patched code at 0x06e9 ! |
| 488 | 489 | - You can select your starting level (between 1 and 30) |
| 489 | | but they aren't displayed like in the original Japanese set we have ('arkanoidj'). |
| 490 | but they aren't displayed like in the original Japanese set we have ('arkanoidja'). |
| 490 | 491 | - Levels 1, 2, 3, 4, 6, 7, 11, 14, 30, 31 and 32 differ from original Japanese version; |
| 491 | 492 | level 1 starts at a different offset (0x90a8 instead of 0xbf15). |
| 492 | 493 | - Complerely different initials on high-scores table, but scores and rounds |
| 493 | | are the same as in the original Japanese set we have ('arkanoidj'). |
| 494 | are the same as in the original Japanese set we have ('arkanoidja'). |
| 494 | 495 | - There seems to be code to edit levels (check code at 0x8082), but the routines |
| 495 | 496 | don't seem to be called anymore. |
| 496 | 497 | - Known bugs : |
| r32595 | r32596 | |
| 525 | 526 | - All reads from 0xf002 are patched. |
| 526 | 527 | - Reads bit 5 from 0xd008. |
| 527 | 528 | - You can select your starting level (between 1 and 30) but they aren't displayed |
| 528 | | like in the original Japanese set we have ('arkanoidj'). |
| 529 | like in the original Japanese set we have ('arkanoidja'). |
| 529 | 530 | - "Continue" Dip Switch has been replaced by sort of "Debug" Dip Switch : |
| 530 | 531 | * affects ball speed at start of level (0x06 or 0x08) |
| 531 | 532 | * affects level 2 (same as normal version or same as level 30) |
| 532 | 533 | - You can select your starting level (between 1 and 30) |
| 533 | | but they aren't displayed like in the original Japanese set we have ('arkanoidj'). |
| 534 | but they aren't displayed like in the original Japanese set we have ('arkanoidja'). |
| 534 | 535 | - Level 30 differs from original Japanese version (same as the one from 'arkangc2') |
| 535 | 536 | - Known bugs : |
| 536 | 537 | * You can go from one side of the screen to the other through the walls |
| r32595 | r32596 | |
| 553 | 554 | - Different "Lives" Dip Switch (check table at 0x9a28) |
| 554 | 555 | - Specific coinage (always 2C_1C) |
| 555 | 556 | - If Dip Switch is set, you can select your starting level (between 1 and 30) |
| 556 | | but they aren't displayed like in the original Japanese set we have ('arkanoidj'). |
| 557 | but they aren't displayed like in the original Japanese set we have ('arkanoidja'). |
| 557 | 558 | - Same level 30 as original Japanese version |
| 558 | 559 | - Known bugs : |
| 559 | 560 | * You can go from one side of the screen to the other through the walls |
| r32595 | r32596 | |
| 581 | 582 | * "20K 60K 60K+" or "20K" when you continue |
| 582 | 583 | - Different "Lives" Dip Switch (check table at 0x9a28) |
| 583 | 584 | - If Dip Switch is set, you can select your starting level (between 1 and 30) |
| 584 | | but they aren't displayed like in the original Japanese set we have ('arkanoidj'). |
| 585 | but they aren't displayed like in the original Japanese set we have ('arkanoidja'). |
| 585 | 586 | - Levels are based on the ones from "Arkanoid II". |
| 586 | 587 | - Known bugs : |
| 587 | 588 | * You can go from one side of the screen to the other through the walls |
| r32595 | r32596 | |
| 633 | 634 | |
| 634 | 635 | - Check the following Taito sets (addresses, routines and Dip Switches) : |
| 635 | 636 | * 'arkanoid' = 'arkanoiduo' |
| 636 | | * 'arkanoidj' |
| 637 | * 'arkanoidja' |
| 637 | 638 | * 'arkanoidu' |
| 638 | 639 | * 'arkatour' |
| 639 | 640 | - Add more notes about main addresses and routines in the Z80 |
| r32595 | r32596 | |
| 750 | 751 | *************************************************************************** |
| 751 | 752 | |
| 752 | 753 | DIP locations verified for: |
| 753 | | - arkanoidj |
| 754 | - arkanoidja |
| 754 | 755 | - arkanoid |
| 755 | 756 | |
| 756 | 757 | ***************************************************************************/ |
| r32595 | r32596 | |
| 1356 | 1357 | |
| 1357 | 1358 | ROM_START( arkanoidj ) |
| 1358 | 1359 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1360 | ROM_LOAD( "a75_24.ic17", 0x0000, 0x8000, CRC(3f2b27e9) SHA1(656035f5292d6921448e74d3e1abab57b46e7d9e) ) |
| 1361 | ROM_LOAD( "a75_25.ic16", 0x8000, 0x8000, CRC(c13b2038) SHA1(0b8197b48e57ffe9ccad0ebbc24891d1da7c9880) ) |
| 1362 | |
| 1363 | ROM_REGION( 0x0800, "mcu", 0 ) /* 2k for the microcontroller */ |
| 1364 | ROM_LOAD( "a75-26.ic14", 0x0000, 0x0800, NO_DUMP ) |
| 1365 | |
| 1366 | ROM_REGION( 0x18000, "gfx1", 0 ) |
| 1367 | ROM_LOAD( "a75-03.ic64", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) |
| 1368 | ROM_LOAD( "a75-04.ic63", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) |
| 1369 | ROM_LOAD( "a75-05.ic62", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) |
| 1370 | |
| 1371 | ROM_REGION( 0x0600, "proms", 0 ) /* BPROMs are silkscreened as 7621, actual BPROMs used are MMI 6306-1N */ |
| 1372 | ROM_LOAD( "a75-07.ic24", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ |
| 1373 | ROM_LOAD( "a75-08.ic23", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ |
| 1374 | ROM_LOAD( "a75-09.ic22", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ |
| 1375 | ROM_END |
| 1376 | |
| 1377 | ROM_START( arkanoidja ) |
| 1378 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1359 | 1379 | ROM_LOAD( "a75-21.ic17", 0x0000, 0x8000, CRC(bf0455fc) SHA1(250522b84b9f491c3f4efc391bf6aa6124361369) ) |
| 1360 | 1380 | ROM_LOAD( "a75-22.ic16", 0x8000, 0x8000, CRC(3a2688d3) SHA1(9633a661352def3d85f95ca830f6d761b0b5450e) ) |
| 1361 | 1381 | |
| r32595 | r32596 | |
| 1373 | 1393 | ROM_LOAD( "a75-09.ic22", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ |
| 1374 | 1394 | ROM_END |
| 1375 | 1395 | |
| 1376 | | ROM_START( arkanoidjo ) |
| 1396 | ROM_START( arkanoidjb ) |
| 1377 | 1397 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1378 | 1398 | ROM_LOAD( "a75-01-1.ic17", 0x0000, 0x8000, CRC(5bcda3b0) SHA1(52cadd38b5f8e8856f007a9c602d6b508f30be65) ) |
| 1379 | 1399 | ROM_LOAD( "a75-02.ic16", 0x8000, 0x8000, CRC(bbc33ceb) SHA1(e9b6fef98d0d20e77c7a1c25eff8e9a8c668a258) ) |
| r32595 | r32596 | |
| 1392 | 1412 | ROM_LOAD( "a75-09.ic23", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ |
| 1393 | 1413 | ROM_END |
| 1394 | 1414 | |
| 1395 | | /* There is known to exist an undumped Arkanoid set that sits between the arkanoidj & arkatour sets rom number wise: |
| 1396 | 1415 | |
| 1397 | | A75-24.IC17 - Program roms |
| 1398 | | A75-25.IC16 / |
| 1399 | | A75-26.IC14 - MCU |
| 1400 | | */ |
| 1401 | | |
| 1402 | 1416 | ROM_START( arkatour ) |
| 1403 | 1417 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1404 | 1418 | ROM_LOAD( "a75-27.ic17", 0x0000, 0x8000, CRC(e3b8faf5) SHA1(4c09478fa41881fa89ee6afb676aeb780f17ac2e) ) |
| r32595 | r32596 | |
| 1418 | 1432 | ROM_LOAD( "a75-35.ic22", 0x0400, 0x0200, CRC(38acfd3b) SHA1(2841e9db047aa039eff8567a518b6250b355507b) ) /* blue component */ |
| 1419 | 1433 | ROM_END |
| 1420 | 1434 | |
| 1421 | | ROM_START( arkanoidjb ) /* This set requires a MCU. The MCU code included doesn't seem to work??? See USER1 region below */ |
| 1435 | ROM_START( arkanoidjbl ) /* This set requires a MCU. The MCU code included doesn't seem to work??? See USER1 region below */ |
| 1422 | 1436 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1423 | 1437 | ROM_LOAD( "e1.6d", 0x0000, 0x8000, CRC(dd4f2b72) SHA1(399a8636030a702dafc1da926f115df6f045bef1) ) /* Hacked up Notice warning text */ |
| 1424 | 1438 | ROM_LOAD( "e2.6f", 0x8000, 0x8000, CRC(bbc33ceb) SHA1(e9b6fef98d0d20e77c7a1c25eff8e9a8c668a258) ) /* == A75-02.IC16 */ |
| r32595 | r32596 | |
| 1442 | 1456 | ROM_LOAD( "68705p3.6i", 0x0000, 0x0800, CRC(389a8cfb) SHA1(9530c051b61b5bdec7018c6fdc1ea91288a406bd) ) // this has the 1986 by Yasu copyright like some of the new decaps loaded in the parent set! |
| 1443 | 1457 | ROM_END |
| 1444 | 1458 | |
| 1445 | | ROM_START( arkanoidjb2 ) |
| 1459 | ROM_START( arkanoidjbl2 ) |
| 1446 | 1460 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1447 | 1461 | ROM_LOAD( "1.ic81", 0x0000, 0x8000, CRC(9ff93dc2) SHA1(eee0975b799a8e6717f646dd40716dc454476106) ) |
| 1448 | 1462 | ROM_LOAD( "2.ic82", 0x8000, 0x8000, CRC(bbc33ceb) SHA1(e9b6fef98d0d20e77c7a1c25eff8e9a8c668a258) ) /* == A75-02.IC16 */ |
| r32595 | r32596 | |
| 1884 | 1898 | |
| 1885 | 1899 | /* Game Drivers */ |
| 1886 | 1900 | |
| 1887 | | GAME( 1986, arkanoid, 0, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito Corporation Japan", "Arkanoid (World)", GAME_SUPPORTS_SAVE ) |
| 1901 | // original sets of Arkanoid |
| 1902 | GAME( 1986, arkanoid, 0, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito Corporation Japan", "Arkanoid (World, oldest rev)", GAME_SUPPORTS_SAVE ) |
| 1888 | 1903 | GAME( 1986, arkanoidu, arkanoid, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito America Corporation (Romstar license)", "Arkanoid (US)", GAME_SUPPORTS_SAVE ) |
| 1889 | | GAME( 1986, arkanoiduo, arkanoid, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito America Corporation (Romstar license)", "Arkanoid (US, older)", GAME_SUPPORTS_SAVE ) |
| 1904 | GAME( 1986, arkanoiduo, arkanoid, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito America Corporation (Romstar license)", "Arkanoid (US, oldest rev)", GAME_SUPPORTS_SAVE ) |
| 1890 | 1905 | GAME( 1986, arkanoidj, arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "Taito Corporation", "Arkanoid (Japan)", GAME_SUPPORTS_SAVE ) |
| 1891 | | GAME( 1986, arkanoidjo, arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "Taito Corporation", "Arkanoid (Japan, older)", GAME_SUPPORTS_SAVE ) |
| 1892 | | GAME( 1986, arkanoidjb, arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "bootleg", "Arkanoid (bootleg with MCU, set 1)", GAME_SUPPORTS_SAVE ) |
| 1893 | | GAME( 1986, arkanoidjb2,arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "bootleg (Beta)", "Arkanoid (bootleg with MCU, set 2)", GAME_SUPPORTS_SAVE ) |
| 1906 | GAME( 1986, arkanoidja, arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "Taito Corporation", "Arkanoid (Japan, older rev)", GAME_SUPPORTS_SAVE ) |
| 1907 | GAME( 1986, arkanoidjb, arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "Taito Corporation", "Arkanoid (Japan, oldest rev)", GAME_SUPPORTS_SAVE ) |
| 1908 | // bootlegs of Arkanoid |
| 1909 | GAME( 1986, arkanoidjbl, arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "bootleg", "Arkanoid (bootleg with MCU, set 1)", GAME_SUPPORTS_SAVE ) |
| 1910 | GAME( 1986, arkanoidjbl2,arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "bootleg (Beta)", "Arkanoid (bootleg with MCU, set 2)", GAME_SUPPORTS_SAVE ) |
| 1894 | 1911 | GAME( 1986, ark1ball, arkanoid, arkanoid, ark1ball, driver_device, 0, ROT90, "bootleg", "Arkanoid (bootleg with MCU, harder)", GAME_SUPPORTS_SAVE ) |
| 1895 | 1912 | GAME( 1986, arkangc, arkanoid, bootleg, arkangc, arkanoid_state, arkangc, ROT90, "bootleg (Game Corporation)", "Arkanoid (Game Corporation bootleg, set 1)", GAME_SUPPORTS_SAVE ) |
| 1896 | 1913 | GAME( 1986, arkangc2, arkanoid, bootleg, arkangc2, arkanoid_state, arkangc2, ROT90, "bootleg (Game Corporation)", "Arkanoid (Game Corporation bootleg, set 2)", GAME_SUPPORTS_SAVE ) |
| r32595 | r32596 | |
| 1903 | 1920 | GAME( 1988, paddle2, arkanoid, bootleg, paddle2, arkanoid_state, paddle2, ROT90, "bootleg", "Paddle 2 (bootleg on Block hardware)", GAME_SUPPORTS_SAVE ) |
| 1904 | 1921 | GAME( 1986, arkatayt, arkanoid, bootleg, arkatayt, driver_device, 0, ROT90, "bootleg (Tayto)", "Arkanoid (Tayto bootleg)", GAME_SUPPORTS_SAVE ) |
| 1905 | 1922 | GAME( 1986, arktayt2, arkanoid, bootleg, arktayt2, driver_device, 0, ROT90, "bootleg (Tayto)", "Arkanoid (Tayto bootleg, harder)", GAME_SUPPORTS_SAVE ) |
| 1923 | // Other games |
| 1906 | 1924 | GAME( 1987, arkatour, 0, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito America Corporation (Romstar license)", "Tournament Arkanoid (US)", GAME_SUPPORTS_SAVE ) |
| 1925 | |
| 1907 | 1926 | GAME( 19??, tetrsark, 0, bootleg, tetrsark, arkanoid_state, tetrsark, ROT0, "D.R. Korea", "Tetris (D.R. Korea)", GAME_SUPPORTS_SAVE ) |
| 1927 | |
| 1908 | 1928 | GAME( 199?, hexa, 0, hexa, hexa, arkanoid_state, hexa, ROT0, "D.R. Korea", "Hexa", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1929 | |
| 1909 | 1930 | GAME( 1993, brixian, 0, brixian, brixian, arkanoid_state, brixian, ROT0, "Cheil Computer System", "Brixian", GAME_SUPPORTS_SAVE ) |