src/mame/drivers/balsente.c
| r7772 | r7773 | |
| 1287 | 1287 | ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */ |
| 1288 | 1288 | ROM_LOAD( "sdiaggr0.bin", 0x00000, 0x2000, CRC(5e0ff62a) SHA1(3f0ebebb2f58530af7fac57a4780dfb37ef1ee1d) ) |
| 1289 | 1289 | |
| 1290 | | MOTHERBOARD_PALS |
| 1290 | MOTHERBOARD_PALS |
| 1291 | 1291 | ROM_END |
| 1292 | 1292 | |
| 1293 | 1293 | |
| r7772 | r7773 | |
| 1312 | 1312 | ROM_LOAD( "cs-gr3.bin", 0x06000, 0x2000, CRC(b43916a2) SHA1(8d42fb6ae7cf8b2d94eb0c14e00bb115f8ef01b4) ) |
| 1313 | 1313 | ROM_LOAD( "cs-gr4.bin", 0x08000, 0x2000, CRC(a94cd35b) SHA1(0ca0497a1b055ff1ae6b7bc36ae45749dff50caa) ) |
| 1314 | 1314 | |
| 1315 | | MOTHERBOARD_PALS |
| 1315 | MOTHERBOARD_PALS |
| 1316 | 1316 | ROM_END |
| 1317 | 1317 | |
| 1318 | 1318 | |
| r7772 | r7773 | |
| 1338 | 1338 | ROM_LOAD( "ggh-gr4.bin", 0x08000, 0x2000, CRC(b4293435) SHA1(5e2b96c19c4f5c63a5afa2de504d29fe64a4c908) ) |
| 1339 | 1339 | ROM_LOAD( "ggh-gr5.bin", 0x0a000, 0x2000, CRC(d3da0093) SHA1(7474901b089ea62abad0a2f657fd8c4a1be09bf0) ) |
| 1340 | 1340 | |
| 1341 | | MOTHERBOARD_PALS |
| 1341 | MOTHERBOARD_PALS |
| 1342 | 1342 | ROM_END |
| 1343 | 1343 | |
| 1344 | 1344 | |
| 1345 | | /* |
| 1346 | | The Hat Trick cartridge does not have any PAL's. |
| 1347 | | */ |
| 1348 | | |
| 1349 | 1345 | ROM_START( hattrick ) |
| 1350 | 1346 | ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ |
| 1351 | | ROM_LOAD( "rom-ab0.u9a", 0x10000, 0x2000, CRC(f25c1b99) SHA1(43b2334be7cfb8091eea963e10547295362372d3) ) |
| 1347 | ROM_LOAD( "rom-ab0.u9a", 0x10000, 0x2000, CRC(f25c1b99) SHA1(43b2334be7cfb8091eea963e10547295362372d3) ) /* The Hat Trick cartridge does not have any PAL's */ |
| 1352 | 1348 | ROM_LOAD( "rom-ab1.u8a", 0x12000, 0x2000, CRC(c1df3d1f) SHA1(754f537d12efe8891638fd11a2ee8a5b234fb079) ) |
| 1353 | 1349 | ROM_LOAD( "rom-ab2.u7a", 0x14000, 0x2000, CRC(f6c41257) SHA1(05f5e71d08241c559da3bfc286c76cbb22710586) ) |
| 1354 | 1350 | ROM_LOAD( "rom-cd.u3a", 0x2c000, 0x2000, CRC(fc44f36c) SHA1(227d0c93c579d743b615b1fa6da56128e8202e51) ) |
| r7772 | r7773 | |
| 1361 | 1357 | ROM_LOAD( "rom-gr0.u9b", 0x00000, 0x2000, CRC(9f41baba) SHA1(fa817a8e4d2f7b86a2294132e3991f7b6d8cb11a) ) |
| 1362 | 1358 | ROM_LOAD( "rom-gr1.u8b", 0x02000, 0x2000, CRC(951f08c9) SHA1(059a575dd35cd8e822e12ac2606b47b6272bbb41) ) |
| 1363 | 1359 | |
| 1364 | | MOTHERBOARD_PALS |
| 1360 | MOTHERBOARD_PALS |
| 1365 | 1361 | ROM_END |
| 1366 | 1362 | |
| 1367 | 1363 | |
| r7772 | r7773 | |
| 1387 | 1383 | ROM_LOAD( "otw-gr4.bin", 0x08000, 0x2000, CRC(15985c8c) SHA1(94f21c348bfbe4db6d0cfa5b5e35d2df4b8f936d) ) |
| 1388 | 1384 | ROM_LOAD( "otw-gr5.bin", 0x0a000, 0x2000, CRC(448f7e3c) SHA1(505724e90f17b05ccf0137dbed0d33e39db1d5ab) ) |
| 1389 | 1385 | |
| 1390 | | MOTHERBOARD_PALS |
| 1386 | MOTHERBOARD_PALS |
| 1391 | 1387 | ROM_END |
| 1392 | 1388 | |
| 1393 | 1389 | |
| r7772 | r7773 | |
| 1413 | 1409 | ROM_LOAD( "spit-gr4.bin", 0x08000, 0x2000, CRC(b4293435) SHA1(5e2b96c19c4f5c63a5afa2de504d29fe64a4c908) ) |
| 1414 | 1410 | ROM_LOAD( "spit-gr5.bin", 0x0a000, 0x2000, CRC(dc27c970) SHA1(291ef10a8c330ef8e47622246b6301d2e5171df7) ) |
| 1415 | 1411 | |
| 1416 | | MOTHERBOARD_PALS |
| 1412 | MOTHERBOARD_PALS |
| 1417 | 1413 | ROM_END |
| 1418 | 1414 | |
| 1419 | 1415 | |
| r7772 | r7773 | |
| 1439 | 1435 | ROM_LOAD( "rom-gr4.u5b", 0x08000, 0x2000, CRC(3fbfa686) SHA1(6c137d177c7aa2701497ac3ac922fdb8cd9f52b3) ) |
| 1440 | 1436 | ROM_LOAD( "rom-gr5.u4b", 0x0a000, 0x2000, CRC(345f94fb) SHA1(0af24f4e1a797efe5272f64b8a34483fe6002436) ) |
| 1441 | 1437 | |
| 1442 | | /* From a picture in an eBay auction the board appears to have a PAL that needs to be dumped. */ |
| 1438 | /* From a picture in an eBay auction the board appears to have a PAL that needs to be dumped. */ |
| 1443 | 1439 | |
| 1444 | | MOTHERBOARD_PALS |
| 1440 | MOTHERBOARD_PALS |
| 1445 | 1441 | ROM_END |
| 1446 | 1442 | |
| 1447 | 1443 | |
| 1448 | 1444 | ROM_START( stocker ) |
| 1449 | 1445 | ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ |
| 1446 | ROM_LOAD( "ab01.u8a", 0x10000, 0x4000, CRC(6a914d99) SHA1(0df23fcdcb3743d84ce0363424b7c5dd249c6dcf) ) |
| 1447 | ROM_LOAD( "ab23.u7a", 0x14000, 0x4000, CRC(48e432c2) SHA1(af87009089a3e83fab5c935696edbbf2a15215f9) ) |
| 1448 | ROM_LOAD( "cd6ef.u1a",0x2c000, 0x4000, CRC(83e6e5c9) SHA1(f0e38a95cb2ea385a587f330c48fc787db0cc65e) ) |
| 1449 | |
| 1450 | ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for Z80 */ |
| 1451 | ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) |
| 1452 | |
| 1453 | ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */ |
| 1454 | ROM_LOAD( "gr01.u6b", 0x00000, 0x4000, CRC(2e66ac35) SHA1(c65b4991a88f8359c85f904f66a7fe73330aface) ) |
| 1455 | ROM_LOAD( "gr23.u5b", 0x04000, 0x4000, CRC(6fa43631) SHA1(7000907b914bf851b09811e3736af8c02e1aeda9) ) |
| 1456 | |
| 1457 | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1458 | ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */ |
| 1459 | |
| 1460 | MOTHERBOARD_PALS |
| 1461 | ROM_END |
| 1462 | |
| 1463 | // the old dump for reference, it had a different cart layout. |
| 1464 | #if 0 |
| 1465 | ROM_START( stocker ) |
| 1466 | ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ |
| 1450 | 1467 | ROM_LOAD( "stkr-ab0.bin", 0x10000, 0x2000, CRC(784a00ad) SHA1(33e76be44207bc24dbb9c2f04204df22ba5154ff) ) |
| 1451 | 1468 | ROM_LOAD( "stkr-ab1.bin", 0x12000, 0x2000, CRC(cdae01dc) SHA1(7c2956acae639fd2f2cf061d1c32ae9edabe9270) ) |
| 1452 | 1469 | ROM_LOAD( "stkr-ab2.bin", 0x14000, 0x2000, CRC(18527d57) SHA1(cbb85f9e0b6169f4c2e03dc54b4937043535fc42) ) |
| 1453 | 1470 | ROM_LOAD( "stkr-ab3.bin", 0x16000, 0x2000, CRC(028f6c06) SHA1(f1d30efcd7e967b0390f441848bb655111fdde65) ) |
| 1454 | | ROM_LOAD( "stkr-cd.bin", 0x2c000, 0x2000, CRC(53dbc4e5) SHA1(e389978b5472174681fa180c6a2edf49903a6514) ) |
| 1455 | | ROM_LOAD( "stkr-ef.bin", 0x2e000, 0x2000, CRC(cdcf46bc) SHA1(8b1e801dab1efed002d484135264998d255dc041) ) |
| 1471 | ROM_LOAD( "stkr-cd.bin", 0x2c000, 0x2000, BAD_DUMP CRC(53dbc4e5) SHA1(e389978b5472174681fa180c6a2edf49903a6514) ) // 1 bad byte |
| 1472 | ROM_LOAD( "stkr-ef.bin", 0x2e000, 0x2000, BAD_DUMP CRC(cdcf46bc) SHA1(8b1e801dab1efed002d484135264998d255dc041) ) // 1 bad byte |
| 1456 | 1473 | |
| 1457 | 1474 | ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for Z80 */ |
| 1458 | 1475 | ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) |
| r7772 | r7773 | |
| 1461 | 1478 | ROM_LOAD( "stkr-gr0.bin", 0x00000, 0x2000, CRC(76d5694c) SHA1(e2b155fc7178886eb37a532d961b99b8c864397c) ) |
| 1462 | 1479 | ROM_LOAD( "stkr-gr1.bin", 0x02000, 0x2000, CRC(4a5cc00b) SHA1(9ce46ed94e715a5997998aee6377baf2869ab3a6) ) |
| 1463 | 1480 | ROM_LOAD( "stkr-gr2.bin", 0x04000, 0x2000, CRC(70002382) SHA1(c151ad3df2714a2f9f8b047894e7585ca16bd29e) ) |
| 1464 | | ROM_LOAD( "stkr-gr3.bin", 0x06000, 0x2000, CRC(68c862d8) SHA1(302ce10e23d17af9aa7fa13d18c602656a262eaa) ) |
| 1481 | ROM_LOAD( "stkr-gr3.bin", 0x06000, 0x2000, CRC(68c862d8) SHA1(302ce10e23d17af9aa7fa13d18c602656a262eaa) ) // the data here also differs from the good set, although the change is meaningless (data at the end blanked out here) |
| 1465 | 1482 | |
| 1466 | | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1467 | | ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */ |
| 1483 | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1484 | ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */ |
| 1468 | 1485 | |
| 1469 | | MOTHERBOARD_PALS |
| 1486 | MOTHERBOARD_PALS |
| 1470 | 1487 | ROM_END |
| 1488 | #endif |
| 1471 | 1489 | |
| 1472 | | |
| 1473 | 1490 | ROM_START( triviag1 ) |
| 1474 | 1491 | ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ |
| 1475 | 1492 | ROM_LOAD( "tpg1-ab0.bin", 0x10000, 0x2000, CRC(79fd3ac3) SHA1(52db0ba445f9a953f6ceb43c3d173b73c71af192) ) |
| r7772 | r7773 | |
| 1492 | 1509 | ROM_LOAD( "tpg1-gr4.bin", 0x08000, 0x2000, CRC(673acf42) SHA1(7b36a86441732ba14576f9c1dd14fe0da575d4bf) ) |
| 1493 | 1510 | ROM_LOAD( "tpg1-gr5.bin", 0x0a000, 0x2000, CRC(067bfd66) SHA1(32f5973f2f0aed67c8f9b5886f52b9dc516a611e) ) |
| 1494 | 1511 | |
| 1495 | | MOTHERBOARD_PALS |
| 1512 | MOTHERBOARD_PALS |
| 1496 | 1513 | ROM_END |
| 1497 | 1514 | |
| 1498 | 1515 | ROM_START( trivia12 ) |
| r7772 | r7773 | |
| 1517 | 1534 | ROM_LOAD( "gr4.u5b", 0x08000, 0x2000, CRC(673acf42) SHA1(7b36a86441732ba14576f9c1dd14fe0da575d4bf) ) |
| 1518 | 1535 | ROM_LOAD( "gr5.u4b", 0x0a000, 0x2000, CRC(d17d5431) SHA1(b92741f6eda01f2e360e73a9f4df728fc44d7e1b) ) |
| 1519 | 1536 | |
| 1520 | | MOTHERBOARD_PALS |
| 1537 | MOTHERBOARD_PALS |
| 1521 | 1538 | ROM_END |
| 1522 | 1539 | |
| 1523 | 1540 | |
| r7772 | r7773 | |
| 1538 | 1555 | ROM_LOAD( "gr23.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) ) |
| 1539 | 1556 | ROM_LOAD( "gr45.bin", 0x08000, 0x4000, CRC(1e870293) SHA1(32149c9c8047854f2b2ad8844c4bd00a8ded588e) ) |
| 1540 | 1557 | |
| 1541 | | MOTHERBOARD_PALS |
| 1558 | MOTHERBOARD_PALS |
| 1542 | 1559 | ROM_END |
| 1543 | 1560 | |
| 1544 | 1561 | |
| r7772 | r7773 | |
| 1559 | 1576 | ROM_LOAD( "gr23.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) ) |
| 1560 | 1577 | ROM_LOAD( "allsport.3b", 0x08000, 0x4000, CRC(7415a7fc) SHA1(93d832434f359ce7b02aef276c89456b16438979) ) |
| 1561 | 1578 | |
| 1562 | | MOTHERBOARD_PALS |
| 1579 | MOTHERBOARD_PALS |
| 1563 | 1580 | ROM_END |
| 1564 | 1581 | |
| 1565 | 1582 | |
| r7772 | r7773 | |
| 1580 | 1597 | ROM_LOAD( "gr23.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) ) |
| 1581 | 1598 | ROM_LOAD( "gr45.bin", 0x08000, 0x4000, CRC(1242033e) SHA1(1a3fe186bb261e2c7d9fbbb2a3103b39bf029b35) ) |
| 1582 | 1599 | |
| 1583 | | MOTHERBOARD_PALS |
| 1600 | MOTHERBOARD_PALS |
| 1584 | 1601 | ROM_END |
| 1585 | 1602 | |
| 1586 | 1603 | |
| r7772 | r7773 | |
| 1601 | 1618 | ROM_LOAD( "gr23.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) ) |
| 1602 | 1619 | ROM_LOAD( "gr45.bin", 0x08000, 0x4000, CRC(92fb6fb1) SHA1(1a322bd3cfacdf82d4fcc4b4d47f78a701411919) ) |
| 1603 | 1620 | |
| 1604 | | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1605 | | ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */ |
| 1621 | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1622 | ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */ |
| 1606 | 1623 | |
| 1607 | | MOTHERBOARD_PALS |
| 1624 | MOTHERBOARD_PALS |
| 1608 | 1625 | ROM_END |
| 1609 | 1626 | |
| 1610 | 1627 | ROM_START( triviaes ) |
| r7772 | r7773 | |
| 1626 | 1643 | ROM_LOAD( "tp_gr2.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) ) |
| 1627 | 1644 | ROM_LOAD( "tp_gr1.bin", 0x08000, 0x4000, CRC(1242033e) SHA1(1a3fe186bb261e2c7d9fbbb2a3103b39bf029b35) ) |
| 1628 | 1645 | |
| 1629 | | MOTHERBOARD_PALS |
| 1646 | MOTHERBOARD_PALS |
| 1630 | 1647 | ROM_END |
| 1631 | 1648 | |
| 1632 | 1649 | |
| r7772 | r7773 | |
| 1644 | 1661 | ROM_LOAD( "gr01.u6b", 0x00000, 0x4000, CRC(e3cdc476) SHA1(2f17c3f84767850d45192dfb507dd2716ecadc20) ) |
| 1645 | 1662 | ROM_LOAD( "gr23.u5b", 0x04000, 0x4000, CRC(0555d9c0) SHA1(da0d1f207ad056b2d82a5ad6382372066883d161) ) |
| 1646 | 1663 | |
| 1647 | | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1648 | | ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */ |
| 1664 | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1665 | ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */ |
| 1649 | 1666 | |
| 1650 | | MOTHERBOARD_PALS |
| 1667 | MOTHERBOARD_PALS |
| 1651 | 1668 | ROM_END |
| 1652 | 1669 | |
| 1653 | 1670 | |
| r7772 | r7773 | |
| 1667 | 1684 | ROM_LOAD( "gr23.u5b", 0x04000, 0x4000, CRC(3bf355ef) SHA1(691df25b35b00e21ad09d17a21fe98a353aa3dda) ) |
| 1668 | 1685 | ROM_LOAD( "gr45.u4b", 0x08000, 0x4000, CRC(8eb14921) SHA1(fda8b8f8e801360310f7cb1aa4c6aea1fa0a4b25) ) |
| 1669 | 1686 | |
| 1670 | | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1671 | | ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */ |
| 1687 | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1688 | ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */ |
| 1672 | 1689 | |
| 1673 | | MOTHERBOARD_PALS |
| 1690 | MOTHERBOARD_PALS |
| 1674 | 1691 | ROM_END |
| 1675 | 1692 | |
| 1676 | 1693 | |
| 1677 | 1694 | ROM_START( minigolf2 ) |
| 1678 | 1695 | ROM_REGION( 0x40000, "maincpu", 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ |
| 1679 | | ROM_LOAD( "ab01.u8a", 0x10000, 0x4000, CRC(348f827f) SHA1(a013ef3068e14e0738bcfa4de26c0c2df4c0a7f6) ) |
| 1696 | ROM_LOAD( "ab01.u8a", 0x10000, 0x4000, CRC(348f827f) SHA1(a013ef3068e14e0738bcfa4de26c0c2df4c0a7f6) ) /* Labeled as MINI GOLF UR, then name (like AB01) & dated 11/25/85 */ |
| 1680 | 1697 | ROM_LOAD( "ab23.u7a", 0x14000, 0x4000, CRC(19a6ff47) SHA1(70b6da3b4186e5b9463f2ea0fefefad21ec80637) ) |
| 1681 | 1698 | ROM_LOAD( "ab45.u6a", 0x18000, 0x4000, CRC(925d76eb) SHA1(29d2d7b26d2e81817c4d135935dab70a5aa2d146) ) |
| 1682 | 1699 | ROM_LOAD( "ab67.u5a", 0x1c000, 0x4000, CRC(6a311c9a) SHA1(b0409e5f4bd3bf898b8701561aac6dbbc28417bd) ) |
| r7772 | r7773 | |
| 1691 | 1708 | ROM_LOAD( "gr23.u5b", 0x04000, 0x4000, CRC(3bf355ef) SHA1(691df25b35b00e21ad09d17a21fe98a353aa3dda) ) |
| 1692 | 1709 | ROM_LOAD( "gr45.u4b", 0x08000, 0x4000, CRC(8eb14921) SHA1(fda8b8f8e801360310f7cb1aa4c6aea1fa0a4b25) ) |
| 1693 | 1710 | |
| 1694 | | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1695 | | ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */ |
| 1711 | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1712 | ROM_LOAD( "pal10l8.u1c", 0x0000, 0x0001, NO_DUMP ) /* PAL10L8CN */ |
| 1696 | 1713 | |
| 1697 | | MOTHERBOARD_PALS |
| 1714 | MOTHERBOARD_PALS |
| 1698 | 1715 | ROM_END |
| 1699 | 1716 | |
| 1700 | 1717 | |
| r7772 | r7773 | |
| 1716 | 1733 | ROM_LOAD( "tgle-gr0.bin", 0x00000, 0x2000, CRC(0e0e5d0e) SHA1(363858ce08767f8a9b8eaec56405377cdd74b178) ) |
| 1717 | 1734 | ROM_LOAD( "tgle-gr1.bin", 0x02000, 0x2000, CRC(3b141ad2) SHA1(72430fd616adbc72d86a5f10672572a31bed0b5d) ) |
| 1718 | 1735 | |
| 1719 | | MOTHERBOARD_PALS |
| 1736 | MOTHERBOARD_PALS |
| 1720 | 1737 | ROM_END |
| 1721 | 1738 | |
| 1722 | 1739 | |
| r7772 | r7773 | |
| 1745 | 1762 | ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */ |
| 1746 | 1763 | ROM_LOAD( "nttgr0.bin", 0x00000, 0x8000, CRC(6b75bb4b) SHA1(e7131d112fb0b36985c5b6383700f55728a1c4fd) ) |
| 1747 | 1764 | |
| 1748 | | MOTHERBOARD_PALS |
| 1765 | MOTHERBOARD_PALS |
| 1749 | 1766 | ROM_END |
| 1750 | 1767 | |
| 1751 | 1768 | ROM_START( nametune2 ) |
| r7772 | r7773 | |
| 1773 | 1790 | ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */ |
| 1774 | 1791 | ROM_LOAD( "nmetneur_gr_0.u3c", 0x00000, 0x8000, CRC(a0121b80) SHA1(ba38e9b738baac85fa33ae3751d02cb223fa3e65) ) |
| 1775 | 1792 | |
| 1776 | | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1777 | | ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8ANC */ |
| 1793 | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1794 | ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8ANC */ |
| 1778 | 1795 | |
| 1779 | | MOTHERBOARD_PALS |
| 1796 | MOTHERBOARD_PALS |
| 1780 | 1797 | ROM_END |
| 1781 | 1798 | |
| 1782 | 1799 | /* |
| r7772 | r7773 | |
| 1806 | 1823 | ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(734b858a) SHA1(71763789807021938b840a88af34aad7f4751298) ) |
| 1807 | 1824 | ROM_LOAD( "gr67.u1c", 0x0c000, 0x4000, CRC(3311f9c0) SHA1(63b185c761b258113c31cc269ce0b1462bf37f40) ) |
| 1808 | 1825 | |
| 1809 | | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1810 | | ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */ |
| 1826 | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1827 | ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */ |
| 1811 | 1828 | |
| 1812 | | ROM_REGION( 0x00004, "gun_io_bd_pals", 0) /* Gun I/O Board PALs */ |
| 1813 | | ROM_LOAD( "pal16r8acn.u6", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */ |
| 1814 | | ROM_LOAD( "pal16r8acn.u7", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */ |
| 1815 | | ROM_LOAD( "pal16r8acn.u8", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */ |
| 1816 | | ROM_LOAD( "pal16r8acn.u9", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */ |
| 1829 | ROM_REGION( 0x00004, "gun_io_bd_pals", 0) /* Gun I/O Board PALs */ |
| 1830 | ROM_LOAD( "pal16r8acn.u6", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */ |
| 1831 | ROM_LOAD( "pal16r8acn.u7", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */ |
| 1832 | ROM_LOAD( "pal16r8acn.u8", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */ |
| 1833 | ROM_LOAD( "pal16r8acn.u9", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */ |
| 1817 | 1834 | |
| 1818 | | MOTHERBOARD_PALS |
| 1835 | MOTHERBOARD_PALS |
| 1819 | 1836 | ROM_END |
| 1820 | 1837 | |
| 1821 | 1838 | ROM_START( nstocker2 ) |
| r7772 | r7773 | |
| 1838 | 1855 | ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(734b858a) SHA1(71763789807021938b840a88af34aad7f4751298) ) |
| 1839 | 1856 | ROM_LOAD( "gr67.u1c", 0x0c000, 0x4000, CRC(3311f9c0) SHA1(63b185c761b258113c31cc269ce0b1462bf37f40) ) |
| 1840 | 1857 | |
| 1841 | | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1842 | | ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */ |
| 1858 | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1859 | ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */ |
| 1843 | 1860 | |
| 1844 | | ROM_REGION( 0x00004, "gun_io_bd_pals", 0) /* Gun I/O Board PALs */ |
| 1845 | | ROM_LOAD( "pal16r8acn.u6", 0x0000, 0x0001, NO_DUMP ) |
| 1846 | | ROM_LOAD( "pal16r8acn.u7", 0x0000, 0x0001, NO_DUMP ) |
| 1847 | | ROM_LOAD( "pal16r8acn.u8", 0x0000, 0x0001, NO_DUMP ) |
| 1848 | | ROM_LOAD( "pal16r8acn.u9", 0x0000, 0x0001, NO_DUMP ) |
| 1861 | ROM_REGION( 0x00004, "gun_io_bd_pals", 0) /* Gun I/O Board PALs */ |
| 1862 | ROM_LOAD( "pal16r8acn.u6", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */ |
| 1863 | ROM_LOAD( "pal16r8acn.u7", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */ |
| 1864 | ROM_LOAD( "pal16r8acn.u8", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */ |
| 1865 | ROM_LOAD( "pal16r8acn.u9", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8 */ |
| 1849 | 1866 | |
| 1850 | | MOTHERBOARD_PALS |
| 1867 | MOTHERBOARD_PALS |
| 1851 | 1868 | ROM_END |
| 1852 | 1869 | |
| 1853 | 1870 | |
| r7772 | r7773 | |
| 1867 | 1884 | ROM_LOAD( "sfbgr45.bin", 0x08000, 0x4000, CRC(e767251e) SHA1(3c05295317a673fb1de5924f27de276d2846d805) ) |
| 1868 | 1885 | ROM_LOAD( "sfbgr67.bin", 0x0c000, 0x4000, CRC(42452a7a) SHA1(37479d6e9071ac775215a6815dbaf280b3c6a57f) ) |
| 1869 | 1886 | |
| 1870 | | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1871 | | ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8ANC */ |
| 1887 | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1888 | ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8ANC */ |
| 1872 | 1889 | |
| 1873 | | MOTHERBOARD_PALS |
| 1890 | MOTHERBOARD_PALS |
| 1874 | 1891 | ROM_END |
| 1875 | 1892 | |
| 1876 | 1893 | |
| r7772 | r7773 | |
| 1888 | 1905 | ROM_LOAD( "gr23.u3c", 0x04000, 0x4000, CRC(970c81f6) SHA1(f22189e172a795d115597feb48ccbc04be3859b9) ) |
| 1889 | 1906 | ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(90ddd737) SHA1(8e1dde2f42e9bf755dedeef218745d1fc54faac7) ) |
| 1890 | 1907 | |
| 1891 | | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1892 | | ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8ANC */ |
| 1908 | ROM_REGION( 0x00001, "cart_pals", 0) /* PAL's located on the cartridge */ |
| 1909 | ROM_LOAD( "pal16r8.u7c", 0x0000, 0x0001, NO_DUMP ) /* PAL16R8ANC */ |
| 1893 | 1910 | |
| 1894 | | MOTHERBOARD_PALS |
| 1911 | MOTHERBOARD_PALS |
| 1895 | 1912 | ROM_END |
| 1896 | 1913 | |
| 1897 | 1914 | |
| r7772 | r7773 | |
| 1913 | 1930 | ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(0d2cf2e6) SHA1(beccb1342127e79a845c4b6b20f20052097ebb98) ) |
| 1914 | 1931 | ROM_LOAD( "gr67.u2c", 0x0c000, 0x4000, CRC(2bab2784) SHA1(a4020fd8f5ca2fdb37efd37cbccf86cae0468eb0) ) |
| 1915 | 1932 | |
| 1916 | | MOTHERBOARD_PALS |
| 1933 | MOTHERBOARD_PALS |
| 1917 | 1934 | ROM_END |
| 1918 | 1935 | |
| 1919 | 1936 | |
| r7772 | r7773 | |
| 1931 | 1948 | ROM_LOAD( "gr0.a5", 0x00000, 0x8000, CRC(e0dfc133) SHA1(0b120b4410098d8db26b5819043d4fe7c426b948) ) |
| 1932 | 1949 | ROM_LOAD( "gr4.a7", 0x08000, 0x8000, CRC(952ade30) SHA1(f065368f645616d6d84be469ba45a9afa8788eda) ) |
| 1933 | 1950 | |
| 1934 | | MOTHERBOARD_PALS |
| 1951 | MOTHERBOARD_PALS |
| 1935 | 1952 | ROM_END |
| 1936 | 1953 | |
| 1937 | 1954 | |
| r7772 | r7773 | |
| 1948 | 1965 | ROM_REGION( 0x10000, "gfx1", 0 ) /* up to 64k of sprites */ |
| 1949 | 1966 | ROM_LOAD( "gr0.a5", 0x00000, 0x8000, CRC(e0dfc133) SHA1(0b120b4410098d8db26b5819043d4fe7c426b948) ) |
| 1950 | 1967 | ROM_LOAD( "gr4.a7", 0x08000, 0x8000, CRC(952ade30) SHA1(f065368f645616d6d84be469ba45a9afa8788eda) ) |
| 1968 | |
| 1969 | MOTHERBOARD_PALS |
| 1951 | 1970 | ROM_END |
| 1952 | 1971 | |
| 1953 | 1972 | |
| r7772 | r7773 | |
| 1964 | 1983 | ROM_REGION( 0x8000, "gfx1", 0 ) /* up to 64k of sprites */ |
| 1965 | 1984 | ROM_LOAD( "grudge.gr0", 0x00000, 0x8000, CRC(b9681f53) SHA1(bb0c516408f1769e018f0ec8707786d4d1e9ef7e) ) |
| 1966 | 1985 | |
| 1967 | | MOTHERBOARD_PALS |
| 1986 | MOTHERBOARD_PALS |
| 1968 | 1987 | ROM_END |
| 1969 | 1988 | |
| 1970 | 1989 | |
| r7772 | r7773 | |
| 2004 | 2023 | ROM_LOAD( "savgu12.bin", 0x18000, 0x2000, CRC(ccdfedb1) SHA1(b87e885df46e814626f46102f323ccd8396bcf8f) ) |
| 2005 | 2024 | ROM_LOAD( "savgu11.bin", 0x1a000, 0x2000, CRC(db11ff4c) SHA1(cd85486cd08ec4392421e9b94d380b81a575c811) ) |
| 2006 | 2025 | ROM_LOAD( "savgu10.bin", 0x1c000, 0x2000, CRC(6f3d9aa1) SHA1(7616dd016f5c8990b4972cf6edf758e27857aa1e) ) |
| 2026 | |
| 2027 | MOTHERBOARD_PALS |
| 2007 | 2028 | ROM_END |
| 2008 | 2029 | |
| 2009 | 2030 | |
| r7772 | r7773 | |
| 2182 | 2203 | GAME( 1984, snakjack, 0, balsente, snakjack, snakjack, ROT0, "Bally/Sente", "Snacks'n Jaxson", GAME_SUPPORTS_SAVE ) |
| 2183 | 2204 | |
| 2184 | 2205 | /* Board: 006-8025-01-0B Rev B */ |
| 2185 | | GAMEL(1984, stocker, 0, balsente, stocker, stocker, ROT0, "Bally/Sente", "Stocker", GAME_SUPPORTS_SAVE, layout_stocker ) |
| 2206 | GAMEL(1984, stocker, 0, balsente, stocker, stocker, ROT0, "Bally/Sente", "Stocker (3/19/85)", GAME_SUPPORTS_SAVE, layout_stocker ) // date from ROM chips |
| 2186 | 2207 | GAME( 1985, gimeabrk, 0, balsente, gimeabrk, gimeabrk, ROT0, "Bally/Sente", "Gimme A Break", GAME_SUPPORTS_SAVE ) |
| 2187 | 2208 | GAME( 1985, minigolf, 0, balsente, minigolf, minigolf, ROT0, "Bally/Sente", "Mini Golf (set 1)", GAME_SUPPORTS_SAVE ) |
| 2188 | 2209 | GAME( 1985, minigolf2,minigolf, balsente, minigolf2,minigolf2,ROT0, "Bally/Sente", "Mini Golf (set 2)", GAME_SUPPORTS_SAVE ) |
src/mame/drivers/segaybd.c
| r7772 | r7773 | |
| 1694 | 1694 | /************************************************************************************************************************** |
| 1695 | 1695 | ************************************************************************************************************************** |
| 1696 | 1696 | ************************************************************************************************************************** |
| 1697 | | Rail Chase, Sega Y-board |
| 1697 | Rail Chase World, Sega Y-board |
| 1698 | 1698 | CPU: 68000 (317-????) |
| 1699 | CPU BD 837-8073-05 |
| 1700 | VIDEO BD 837-8074-01 |
| 1701 | GAME BD 834-8072-05 |
| 1699 | 1702 | */ |
| 1700 | 1703 | ROM_START( rchase ) |
| 1701 | 1704 | ROM_REGION( 0x080000, "maincpu", 0 ) // M |
| 1702 | | ROM_LOAD16_BYTE( "ic25.bin", 0x000000, 0x20000, CRC(388b2365) SHA1(0f006f9120b96b8d8be968878ce1d6dd853cd977) ) |
| 1703 | | ROM_LOAD16_BYTE( "ic24.bin", 0x000001, 0x20000, CRC(14dba5d4) SHA1(ad09c55273ab1105630f2f76019aedc234fb9292) ) |
| 1704 | | ROM_LOAD16_BYTE( "ic27.bin", 0x040000, 0x20000, CRC(dc1cd5a4) SHA1(3b2b6afbeb7daa7c0cc75279bc495221c2508e25) ) |
| 1705 | | ROM_LOAD16_BYTE( "ic26.bin", 0x040001, 0x20000, BAD_DUMP CRC(969fdb3a) SHA1(2d98f1bab2c20cad3d4c20ee2c4022d04fa9ffce) ) //fails ROM checksum in service mode |
| 1705 | ROM_LOAD16_BYTE( "epr-13986.25", 0x000000, 0x20000, CRC(388b2365) SHA1(0f006f9120b96b8d8be968878ce1d6dd853cd977) ) |
| 1706 | ROM_LOAD16_BYTE( "epr-13985.24", 0x000001, 0x20000, CRC(14dba5d4) SHA1(ad09c55273ab1105630f2f76019aedc234fb9292) ) |
| 1707 | ROM_LOAD16_BYTE( "epr-13988.27", 0x040000, 0x20000, CRC(dc1cd5a4) SHA1(3b2b6afbeb7daa7c0cc75279bc495221c2508e25) ) |
| 1708 | ROM_LOAD16_BYTE( "epr-13987.26", 0x040001, 0x20000, CRC(43be9e60) SHA1(107a9c126c2bff9030fe621f6b4ab8f29c994ef2) ) |
| 1706 | 1709 | |
| 1707 | 1710 | ROM_REGION( 0x040000, "subx", 0 ) // X |
| 1708 | | ROM_LOAD16_BYTE( "ic81.bin", 0x000000, 0x20000, CRC(c5d525b6) SHA1(1fab7f761be67b67ee346a1af1f1fe12aef87dc5) ) |
| 1709 | | ROM_LOAD16_BYTE( "ic80.bin", 0x000001, 0x20000, CRC(299e3c7c) SHA1(e4903816ec364e9352abd1180e8a609fed75e1a7) ) |
| 1711 | ROM_LOAD16_BYTE( "epr-13992a.81", 0x000000, 0x20000, CRC(c5d525b6) SHA1(1fab7f761be67b67ee346a1af1f1fe12aef87dc5) ) |
| 1712 | ROM_LOAD16_BYTE( "epr-13991a.80", 0x000001, 0x20000, CRC(299e3c7c) SHA1(e4903816ec364e9352abd1180e8a609fed75e1a7) ) |
| 1710 | 1713 | |
| 1711 | 1714 | ROM_REGION( 0x040000, "suby", 0 ) // Y |
| 1712 | | ROM_LOAD16_BYTE( "ic54.bin", 0x000000, 0x20000, CRC(18eb23c5) SHA1(53e5681c7450a3879ed80c1680168d6295caa887) ) |
| 1713 | | ROM_LOAD16_BYTE( "ic53.bin", 0x000001, 0x20000, CRC(8f4f824e) SHA1(d470f23ce2dca4e75b7b714175d47338c41bb721) ) |
| 1715 | ROM_LOAD16_BYTE( "epr-14092.54", 0x000000, 0x20000, CRC(18eb23c5) SHA1(53e5681c7450a3879ed80c1680168d6295caa887) ) |
| 1716 | ROM_LOAD16_BYTE( "epr-14091.53", 0x000001, 0x20000, CRC(72a56f71) SHA1(d45d3072ea92b5dde5c70138e56e7f0ca248880e) ) |
| 1714 | 1717 | |
| 1715 | 1718 | ROM_REGION16_BE( 0x080000, "gfx2", 0 ) |
| 1716 | | ROM_LOAD16_BYTE( "vic16.bin", 0x000000, 0x40000, CRC(9a1dd53c) SHA1(cb01f2c64554914ea693879dfcb498181a1e7a9a) ) |
| 1717 | | ROM_LOAD16_BYTE( "vic14.bin", 0x000001, 0x40000, CRC(1fdf1b87) SHA1(ed46af0f72081d545015b73a8d12240664f29506) ) |
| 1719 | ROM_LOAD16_BYTE( "mpr-13999.16", 0x000000, 0x40000, CRC(9a1dd53c) SHA1(cb01f2c64554914ea693879dfcb498181a1e7a9a) ) |
| 1720 | ROM_LOAD16_BYTE( "mpr-13997.14", 0x000001, 0x40000, CRC(1fdf1b87) SHA1(ed46af0f72081d545015b73a8d12240664f29506) ) |
| 1718 | 1721 | |
| 1719 | 1722 | ROM_REGION64_BE( 0xc00000, "gfx1", 0) |
| 1720 | | ROMX_LOAD( "vic67.bin", 0x000000, 0x80000, CRC(9fa88781) SHA1(a035fd0fe1d37a589adf3a5029c20d237d5cc827), ROM_SKIP(7) ) |
| 1721 | | ROMX_LOAD( "vic75.bin", 0x000001, 0x80000, CRC(49e824bb) SHA1(c1330719b5718aa664b5788244d8cb7b7103a57c), ROM_SKIP(7) ) |
| 1722 | | ROMX_LOAD( "vic63.bin", 0x000002, 0x80000, CRC(35b5187e) SHA1(6f0f6471c4135d07a2c852cdc50322b99176712e), ROM_SKIP(7) ) |
| 1723 | | ROMX_LOAD( "vic71.bin", 0x000003, 0x80000, CRC(9a538b9b) SHA1(cd84a39bd3858fa6c1d8eb4a349d939261cea6b6), ROM_SKIP(7) ) |
| 1724 | | ROMX_LOAD( "vic86.bin", 0x000004, 0x80000, CRC(e11c6c67) SHA1(839e71690e75e47d11b758f5b525452bcc75b823), ROM_SKIP(7) ) |
| 1725 | | ROMX_LOAD( "vic114.bin", 0x000005, 0x80000, CRC(16344535) SHA1(a9bd101ae93c24a2e8002ad6a111cf0d0d3b1a64), ROM_SKIP(7) ) |
| 1726 | | ROMX_LOAD( "vic82.bin", 0x000006, 0x80000, CRC(78e9983b) SHA1(c0f6577b55acda2cc8cdf0884d5c0517f79de4e9), ROM_SKIP(7) ) |
| 1727 | | ROMX_LOAD( "vic110.bin", 0x000007, 0x80000, CRC(e9daa1a4) SHA1(24ad782e88a586fbb31f7ad86be4cdeb38823102), ROM_SKIP(7) ) |
| 1723 | ROMX_LOAD( "mpr-14021.67", 0x000000, 0x80000, CRC(9fa88781) SHA1(a035fd0fe1d37a589adf3a5029c20d237d5cc827), ROM_SKIP(7) ) |
| 1724 | ROMX_LOAD( "mpr-14022.75", 0x000001, 0x80000, CRC(49e824bb) SHA1(c1330719b5718aa664b5788244d8cb7b7103a57c), ROM_SKIP(7) ) |
| 1725 | ROMX_LOAD( "mpr-14009.63", 0x000002, 0x80000, CRC(35b5187e) SHA1(6f0f6471c4135d07a2c852cdc50322b99176712e), ROM_SKIP(7) ) |
| 1726 | ROMX_LOAD( "mpr-14010.71", 0x000003, 0x80000, CRC(9a538b9b) SHA1(cd84a39bd3858fa6c1d8eb4a349d939261cea6b6), ROM_SKIP(7) ) |
| 1727 | ROMX_LOAD( "mpr-14023.86", 0x000004, 0x80000, CRC(e11c6c67) SHA1(839e71690e75e47d11b758f5b525452bcc75b823), ROM_SKIP(7) ) |
| 1728 | ROMX_LOAD( "mpr-14024.114", 0x000005, 0x80000, CRC(16344535) SHA1(a9bd101ae93c24a2e8002ad6a111cf0d0d3b1a64), ROM_SKIP(7) ) |
| 1729 | ROMX_LOAD( "mpr-14011.82", 0x000006, 0x80000, CRC(78e9983b) SHA1(c0f6577b55acda2cc8cdf0884d5c0517f79de4e9), ROM_SKIP(7) ) |
| 1730 | ROMX_LOAD( "mpr-14012.110", 0x000007, 0x80000, CRC(e9daa1a4) SHA1(24ad782e88a586fbb31f7ad86be4cdeb38823102), ROM_SKIP(7) ) |
| 1728 | 1731 | |
| 1729 | | ROMX_LOAD( "vic66.bin", 0x400000, 0x80000, CRC(b83df159) SHA1(f0cf99e6ddae1d26fd68240a731f3e28e9c6073b), ROM_SKIP(7) ) |
| 1730 | | ROMX_LOAD( "vic74.bin", 0x400001, 0x80000, CRC(76dbe9ce) SHA1(2f5af8d015cf8fb90a0862bc37235bc20d4dac0d), ROM_SKIP(7) ) |
| 1731 | | ROMX_LOAD( "vic62.bin", 0x400002, 0x80000, CRC(9e998209) SHA1(c0d39d11d554fd6a43db77ccf96ac04dd634edff), ROM_SKIP(7) ) |
| 1732 | | ROMX_LOAD( "vic70.bin", 0x400003, 0x80000, CRC(2caddf1a) SHA1(a2e891e65c7cd156a3131a084ff51ae9b1663bc0), ROM_SKIP(7) ) |
| 1733 | | ROMX_LOAD( "vic85.bin", 0x400004, 0x80000, CRC(b15e19ff) SHA1(947c35301875b4842835f2ba6aca216f087a3fc7), ROM_SKIP(7) ) |
| 1734 | | ROMX_LOAD( "vic113.bin", 0x400005, 0x80000, CRC(84c7008f) SHA1(b92f3c636c5d91c5b1c6090a48be7bb1be6b927e), ROM_SKIP(7) ) |
| 1735 | | ROMX_LOAD( "vic81.bin", 0x400006, 0x80000, CRC(c3cf5faa) SHA1(02bca1b248fcb6313cd529ca2aa0f7516177166b), ROM_SKIP(7) ) |
| 1736 | | ROMX_LOAD( "vic109.bin", 0x400007, 0x80000, CRC(7e91beb2) SHA1(bc1a7ce68d6b825daf93ca437dda803857cee0a2), ROM_SKIP(7) ) |
| 1732 | ROMX_LOAD( "mpr-14017.66", 0x400000, 0x80000, CRC(b83df159) SHA1(f0cf99e6ddae1d26fd68240a731f3e28e9c6073b), ROM_SKIP(7) ) |
| 1733 | ROMX_LOAD( "mpr-14018.74", 0x400001, 0x80000, CRC(76dbe9ce) SHA1(2f5af8d015cf8fb90a0862bc37235bc20d4dac0d), ROM_SKIP(7) ) |
| 1734 | ROMX_LOAD( "mpr-14005.62", 0x400002, 0x80000, CRC(9e998209) SHA1(c0d39d11d554fd6a43db77ccf96ac04dd634edff), ROM_SKIP(7) ) |
| 1735 | ROMX_LOAD( "mpr-14006.70", 0x400003, 0x80000, CRC(2caddf1a) SHA1(a2e891e65c7cd156a3131a084ff51ae9b1663bc0), ROM_SKIP(7) ) |
| 1736 | ROMX_LOAD( "mpr-14019.85", 0x400004, 0x80000, CRC(b15e19ff) SHA1(947c35301875b4842835f2ba6aca216f087a3fc7), ROM_SKIP(7) ) |
| 1737 | ROMX_LOAD( "mpr-14020.113", 0x400005, 0x80000, CRC(84c7008f) SHA1(b92f3c636c5d91c5b1c6090a48be7bb1be6b927e), ROM_SKIP(7) ) |
| 1738 | ROMX_LOAD( "mpr-14007.81", 0x400006, 0x80000, CRC(c3cf5faa) SHA1(02bca1b248fcb6313cd529ca2aa0f7516177166b), ROM_SKIP(7) ) |
| 1739 | ROMX_LOAD( "mpr-14008.109", 0x400007, 0x80000, CRC(7e91beb2) SHA1(bc1a7ce68d6b825daf93ca437dda803857cee0a2), ROM_SKIP(7) ) |
| 1737 | 1740 | |
| 1738 | | ROMX_LOAD( "vic65.bin", 0x800000, 0x80000, CRC(31dbb2c3) SHA1(3efeff785d78056e2615dc2267f7bb80a6d4c663), ROM_SKIP(7) ) |
| 1739 | | ROMX_LOAD( "vic73.bin", 0x800001, 0x80000, CRC(7e68257d) SHA1(600d1066cfa83f5df46e240a473a8f04179e70f8), ROM_SKIP(7) ) |
| 1740 | | ROMX_LOAD( "vic61.bin", 0x800002, 0x80000, CRC(71031ad0) SHA1(02b6240461d66907199f846310e72d37faa5fb50), ROM_SKIP(7) ) |
| 1741 | | ROMX_LOAD( "vic69.bin", 0x800003, 0x80000, CRC(27e70a5e) SHA1(fa767f6cc8e46c0e804c37666a8499376c09b025), ROM_SKIP(7) ) |
| 1742 | | ROMX_LOAD( "vic84.bin", 0x800004, 0x80000, CRC(7540bf85) SHA1(e8f9208aea6ecedb6ae810a362476cdf1d424319), ROM_SKIP(7) ) |
| 1743 | | ROMX_LOAD( "vic112.bin", 0x800005, 0x80000, CRC(7d87b94d) SHA1(4ef5b7b114c25b9e274e3f3dd7e3d7bd29d2d8b9), ROM_SKIP(7) ) |
| 1744 | | ROMX_LOAD( "vic80.bin", 0x800006, 0x80000, CRC(87725d74) SHA1(d284512ad15362a886072aaa1a3af98f7a0bddf9), ROM_SKIP(7) ) |
| 1745 | | ROMX_LOAD( "vic108.bin", 0x800007, 0x80000, CRC(73477291) SHA1(1fe9d7666d89ee55a0178dceb7cfea7ce94b9e18), ROM_SKIP(7) ) |
| 1741 | ROMX_LOAD( "mpr-14013.65", 0x800000, 0x80000, CRC(31dbb2c3) SHA1(3efeff785d78056e2615dc2267f7bb80a6d4c663), ROM_SKIP(7) ) |
| 1742 | ROMX_LOAD( "mpr-14014.73", 0x800001, 0x80000, CRC(7e68257d) SHA1(600d1066cfa83f5df46e240a473a8f04179e70f8), ROM_SKIP(7) ) |
| 1743 | ROMX_LOAD( "mpr-14001.61", 0x800002, 0x80000, CRC(71031ad0) SHA1(02b6240461d66907199f846310e72d37faa5fb50), ROM_SKIP(7) ) |
| 1744 | ROMX_LOAD( "mpr-14002.69", 0x800003, 0x80000, CRC(27e70a5e) SHA1(fa767f6cc8e46c0e804c37666a8499376c09b025), ROM_SKIP(7) ) |
| 1745 | ROMX_LOAD( "mpr-14015.84", 0x800004, 0x80000, CRC(7540bf85) SHA1(e8f9208aea6ecedb6ae810a362476cdf1d424319), ROM_SKIP(7) ) |
| 1746 | ROMX_LOAD( "mpr-14016.112", 0x800005, 0x80000, CRC(7d87b94d) SHA1(4ef5b7b114c25b9e274e3f3dd7e3d7bd29d2d8b9), ROM_SKIP(7) ) |
| 1747 | ROMX_LOAD( "mpr-14003.80", 0x800006, 0x80000, CRC(87725d74) SHA1(d284512ad15362a886072aaa1a3af98f7a0bddf9), ROM_SKIP(7) ) |
| 1748 | ROMX_LOAD( "mpr-14004.108", 0x800007, 0x80000, CRC(73477291) SHA1(1fe9d7666d89ee55a0178dceb7cfea7ce94b9e18), ROM_SKIP(7) ) |
| 1746 | 1749 | |
| 1747 | 1750 | ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 sound CPU */ |
| 1748 | | ROM_LOAD( "ic102.bin", 0x000000, 0x10000, CRC(7cc3b543) SHA1(c5e6a2dca891d0b6528e6d66ccd18b24ed4a9464) ) |
| 1751 | ROM_LOAD( "epr-13993.102", 0x000000, 0x10000, CRC(7cc3b543) SHA1(c5e6a2dca891d0b6528e6d66ccd18b24ed4a9464) ) |
| 1749 | 1752 | |
| 1750 | 1753 | ROM_REGION( 0x200000, "pcm", ROMREGION_ERASEFF ) /* SegaPCM samples */ |
| 1751 | | ROM_LOAD( "ic107.bin", 0x000000, 0x80000, CRC(345f5a41) SHA1(d414c3485ba31863c2b36282756709e06a41d262) ) |
| 1752 | | ROM_LOAD( "ic106.bin", 0x080000, 0x80000, CRC(f604c270) SHA1(02023786fec2f2702c2f19f51aff5b7e4928ae91) ) |
| 1753 | | ROM_LOAD( "ic105.bin", 0x100000, 0x80000, CRC(76095538) SHA1(aab830e3675116c475fe69e0e991118c045b131b) ) |
| 1754 | ROM_LOAD( "mpr-13996.107", 0x000000, 0x80000, CRC(345f5a41) SHA1(d414c3485ba31863c2b36282756709e06a41d262) ) |
| 1755 | ROM_LOAD( "mpr-13995.106", 0x080000, 0x80000, CRC(f604c270) SHA1(02023786fec2f2702c2f19f51aff5b7e4928ae91) ) |
| 1756 | ROM_LOAD( "mpr-13994.105", 0x100000, 0x80000, CRC(76095538) SHA1(aab830e3675116c475fe69e0e991118c045b131b) ) |
| 1754 | 1757 | ROM_END |
| 1755 | 1758 | |
| 1759 | /************************************************************************************************************************** |
| 1760 | ************************************************************************************************************************** |
| 1761 | ************************************************************************************************************************** |
| 1762 | Rail Chase Japan, Sega Y-board |
| 1763 | CPU: 68000 (317-????) |
| 1764 | */ |
| 1756 | 1765 | |
| 1766 | ROM_START( rchasej ) |
| 1767 | ROM_REGION( 0x080000, "maincpu", 0 ) // M |
| 1768 | ROM_LOAD16_BYTE( "epr-13986.25", 0x000000, 0x20000, CRC(388b2365) SHA1(0f006f9120b96b8d8be968878ce1d6dd853cd977) ) |
| 1769 | ROM_LOAD16_BYTE( "epr-13985.24", 0x000001, 0x20000, CRC(14dba5d4) SHA1(ad09c55273ab1105630f2f76019aedc234fb9292) ) |
| 1770 | ROM_LOAD16_BYTE( "epr-13988.27", 0x040000, 0x20000, CRC(dc1cd5a4) SHA1(3b2b6afbeb7daa7c0cc75279bc495221c2508e25) ) |
| 1771 | ROM_LOAD16_BYTE( "epr-13987.26", 0x040001, 0x20000, CRC(43be9e60) SHA1(107a9c126c2bff9030fe621f6b4ab8f29c994ef2) ) |
| 1757 | 1772 | |
| 1773 | ROM_REGION( 0x040000, "subx", 0 ) // X |
| 1774 | ROM_LOAD16_BYTE( "epr-13992a.81", 0x000000, 0x20000, CRC(c5d525b6) SHA1(1fab7f761be67b67ee346a1af1f1fe12aef87dc5) ) |
| 1775 | ROM_LOAD16_BYTE( "epr-13991a.80", 0x000001, 0x20000, CRC(299e3c7c) SHA1(e4903816ec364e9352abd1180e8a609fed75e1a7) ) |
| 1776 | |
| 1777 | ROM_REGION( 0x040000, "suby", 0 ) // Y |
| 1778 | ROM_LOAD16_BYTE( "epr-13990.54.verify", 0x000000, 0x20000, CRC(18eb23c5) SHA1(53e5681c7450a3879ed80c1680168d6295caa887) ) /* Need to verify EPR #, same as epr-14092.54 above */ |
| 1779 | ROM_LOAD16_BYTE( "epr-13989.53.verify", 0x000001, 0x20000, CRC(8f4f824e) SHA1(d470f23ce2dca4e75b7b714175d47338c41bb721) ) /* Need to verify EPR # */ |
| 1780 | |
| 1781 | ROM_REGION16_BE( 0x080000, "gfx2", 0 ) |
| 1782 | ROM_LOAD16_BYTE( "mpr-13999.16", 0x000000, 0x40000, CRC(9a1dd53c) SHA1(cb01f2c64554914ea693879dfcb498181a1e7a9a) ) |
| 1783 | ROM_LOAD16_BYTE( "mpr-13997.14", 0x000001, 0x40000, CRC(1fdf1b87) SHA1(ed46af0f72081d545015b73a8d12240664f29506) ) |
| 1784 | |
| 1785 | ROM_REGION64_BE( 0xc00000, "gfx1", 0) |
| 1786 | ROMX_LOAD( "mpr-14021.67", 0x000000, 0x80000, CRC(9fa88781) SHA1(a035fd0fe1d37a589adf3a5029c20d237d5cc827), ROM_SKIP(7) ) |
| 1787 | ROMX_LOAD( "mpr-14022.75", 0x000001, 0x80000, CRC(49e824bb) SHA1(c1330719b5718aa664b5788244d8cb7b7103a57c), ROM_SKIP(7) ) |
| 1788 | ROMX_LOAD( "mpr-14009.63", 0x000002, 0x80000, CRC(35b5187e) SHA1(6f0f6471c4135d07a2c852cdc50322b99176712e), ROM_SKIP(7) ) |
| 1789 | ROMX_LOAD( "mpr-14010.71", 0x000003, 0x80000, CRC(9a538b9b) SHA1(cd84a39bd3858fa6c1d8eb4a349d939261cea6b6), ROM_SKIP(7) ) |
| 1790 | ROMX_LOAD( "mpr-14023.86", 0x000004, 0x80000, CRC(e11c6c67) SHA1(839e71690e75e47d11b758f5b525452bcc75b823), ROM_SKIP(7) ) |
| 1791 | ROMX_LOAD( "mpr-14024.114", 0x000005, 0x80000, CRC(16344535) SHA1(a9bd101ae93c24a2e8002ad6a111cf0d0d3b1a64), ROM_SKIP(7) ) |
| 1792 | ROMX_LOAD( "mpr-14011.82", 0x000006, 0x80000, CRC(78e9983b) SHA1(c0f6577b55acda2cc8cdf0884d5c0517f79de4e9), ROM_SKIP(7) ) |
| 1793 | ROMX_LOAD( "mpr-14012.110", 0x000007, 0x80000, CRC(e9daa1a4) SHA1(24ad782e88a586fbb31f7ad86be4cdeb38823102), ROM_SKIP(7) ) |
| 1794 | |
| 1795 | ROMX_LOAD( "mpr-14017.66", 0x400000, 0x80000, CRC(b83df159) SHA1(f0cf99e6ddae1d26fd68240a731f3e28e9c6073b), ROM_SKIP(7) ) |
| 1796 | ROMX_LOAD( "mpr-14018.74", 0x400001, 0x80000, CRC(76dbe9ce) SHA1(2f5af8d015cf8fb90a0862bc37235bc20d4dac0d), ROM_SKIP(7) ) |
| 1797 | ROMX_LOAD( "mpr-14005.62", 0x400002, 0x80000, CRC(9e998209) SHA1(c0d39d11d554fd6a43db77ccf96ac04dd634edff), ROM_SKIP(7) ) |
| 1798 | ROMX_LOAD( "mpr-14006.70", 0x400003, 0x80000, CRC(2caddf1a) SHA1(a2e891e65c7cd156a3131a084ff51ae9b1663bc0), ROM_SKIP(7) ) |
| 1799 | ROMX_LOAD( "mpr-14019.85", 0x400004, 0x80000, CRC(b15e19ff) SHA1(947c35301875b4842835f2ba6aca216f087a3fc7), ROM_SKIP(7) ) |
| 1800 | ROMX_LOAD( "mpr-14020.113", 0x400005, 0x80000, CRC(84c7008f) SHA1(b92f3c636c5d91c5b1c6090a48be7bb1be6b927e), ROM_SKIP(7) ) |
| 1801 | ROMX_LOAD( "mpr-14007.81", 0x400006, 0x80000, CRC(c3cf5faa) SHA1(02bca1b248fcb6313cd529ca2aa0f7516177166b), ROM_SKIP(7) ) |
| 1802 | ROMX_LOAD( "mpr-14008.109", 0x400007, 0x80000, CRC(7e91beb2) SHA1(bc1a7ce68d6b825daf93ca437dda803857cee0a2), ROM_SKIP(7) ) |
| 1803 | |
| 1804 | ROMX_LOAD( "mpr-14013.65", 0x800000, 0x80000, CRC(31dbb2c3) SHA1(3efeff785d78056e2615dc2267f7bb80a6d4c663), ROM_SKIP(7) ) |
| 1805 | ROMX_LOAD( "mpr-14014.73", 0x800001, 0x80000, CRC(7e68257d) SHA1(600d1066cfa83f5df46e240a473a8f04179e70f8), ROM_SKIP(7) ) |
| 1806 | ROMX_LOAD( "mpr-14001.61", 0x800002, 0x80000, CRC(71031ad0) SHA1(02b6240461d66907199f846310e72d37faa5fb50), ROM_SKIP(7) ) |
| 1807 | ROMX_LOAD( "mpr-14002.69", 0x800003, 0x80000, CRC(27e70a5e) SHA1(fa767f6cc8e46c0e804c37666a8499376c09b025), ROM_SKIP(7) ) |
| 1808 | ROMX_LOAD( "mpr-14015.84", 0x800004, 0x80000, CRC(7540bf85) SHA1(e8f9208aea6ecedb6ae810a362476cdf1d424319), ROM_SKIP(7) ) |
| 1809 | ROMX_LOAD( "mpr-14016.112", 0x800005, 0x80000, CRC(7d87b94d) SHA1(4ef5b7b114c25b9e274e3f3dd7e3d7bd29d2d8b9), ROM_SKIP(7) ) |
| 1810 | ROMX_LOAD( "mpr-14003.80", 0x800006, 0x80000, CRC(87725d74) SHA1(d284512ad15362a886072aaa1a3af98f7a0bddf9), ROM_SKIP(7) ) |
| 1811 | ROMX_LOAD( "mpr-14004.108", 0x800007, 0x80000, CRC(73477291) SHA1(1fe9d7666d89ee55a0178dceb7cfea7ce94b9e18), ROM_SKIP(7) ) |
| 1812 | |
| 1813 | ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 sound CPU */ |
| 1814 | ROM_LOAD( "epr-13993.102", 0x000000, 0x10000, CRC(7cc3b543) SHA1(c5e6a2dca891d0b6528e6d66ccd18b24ed4a9464) ) |
| 1815 | |
| 1816 | ROM_REGION( 0x200000, "pcm", ROMREGION_ERASEFF ) /* SegaPCM samples */ |
| 1817 | ROM_LOAD( "mpr-13996.107", 0x000000, 0x80000, CRC(345f5a41) SHA1(d414c3485ba31863c2b36282756709e06a41d262) ) |
| 1818 | ROM_LOAD( "mpr-13995.106", 0x080000, 0x80000, CRC(f604c270) SHA1(02023786fec2f2702c2f19f51aff5b7e4928ae91) ) |
| 1819 | ROM_LOAD( "mpr-13994.105", 0x100000, 0x80000, CRC(76095538) SHA1(aab830e3675116c475fe69e0e991118c045b131b) ) |
| 1820 | ROM_END |
| 1821 | |
| 1822 | |
| 1823 | |
| 1758 | 1824 | /************************************************************************************************************************** |
| 1759 | 1825 | ************************************************************************************************************************** |
| 1760 | 1826 | ************************************************************************************************************************** |
| r7772 | r7773 | |
| 1857 | 1923 | GAMEL(1988, pdrifta, pdrift, yboard, pdrift, generic_yboard, ROT0, "Sega", "Power Drift (World)", GAME_SUPPORTS_SAVE, layout_pdrift ) |
| 1858 | 1924 | GAMEL(1988, pdrifte, pdrift, yboard, pdrifte, generic_yboard, ROT0, "Sega", "Power Drift (World, Earlier)", GAME_SUPPORTS_SAVE, layout_pdrift ) |
| 1859 | 1925 | GAMEL(1988, pdriftj, pdrift, yboard, pdriftj, generic_yboard, ROT0, "Sega", "Power Drift (Japan)", GAME_SUPPORTS_SAVE, layout_pdrift ) |
| 1860 | | GAME( 1991, rchase, 0, yboard, rchase, generic_yboard, ROT0, "Sega", "Rail Chase (Japan)", GAME_SUPPORTS_SAVE ) |
| 1926 | GAME( 1991, rchase, 0, yboard, rchase, generic_yboard, ROT0, "Sega", "Rail Chase (World)", GAME_SUPPORTS_SAVE ) |
| 1927 | GAME( 1991, rchasej, rchase, yboard, rchase, generic_yboard, ROT0, "Sega", "Rail Chase (Japan)", GAME_SUPPORTS_SAVE ) |
| 1861 | 1928 | GAME( 1991, strkfgtr, 0, yboard, strkfgtr, generic_yboard, ROT0, "Sega", "Strike Fighter (Japan)", GAME_SUPPORTS_SAVE ) |
src/mame/drivers/pgm.c
| r7772 | r7773 | |
| 1071 | 1071 | PORT_START("Region") |
| 1072 | 1072 | PORT_DIPNAME( 0x0003, 0x0000, DEF_STR( Region ) ) |
| 1073 | 1073 | PORT_DIPSETTING( 0x0000, DEF_STR( World ) ) |
| 1074 | | // PORT_DIPSETTING( 0x0001, DEF_STR( World ) ) // again? |
| 1074 | PORT_DIPSETTING( 0x0001, "World (duplicate)" ) // again? |
| 1075 | 1075 | PORT_DIPSETTING( 0x0002, "Korea" ) |
| 1076 | 1076 | PORT_DIPSETTING( 0x0003, "China" ) |
| 1077 | 1077 | INPUT_PORTS_END |
| r7772 | r7773 | |
| 1575 | 1575 | ROM_LOAD( "m0100.rom", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) |
| 1576 | 1576 | ROM_END |
| 1577 | 1577 | |
| 1578 | ROM_START( orlegendca ) |
| 1579 | ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ |
| 1580 | ROM_LOAD16_WORD_SWAP( "pgm_p01s.rom", 0x000000, 0x020000, CRC(e42b166e) SHA1(2a9df9ec746b14b74fae48b1a438da14973702ea) )// (BIOS) |
| 1581 | ROM_LOAD16_WORD_SWAP( "p0101.102", 0x100000, 0x200000, CRC(7a22e1cb) SHA1(4fe0fde00521b0915146334ea7213f3eb7e2affc) ) |
| 1582 | |
| 1583 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 1584 | |
| 1585 | ROM_REGION( 0x800000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ |
| 1586 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 1587 | ROM_LOAD( "t0100.rom", 0x400000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) |
| 1588 | |
| 1589 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */ |
| 1590 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 1591 | |
| 1592 | ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */ |
| 1593 | ROM_LOAD( "a0100.rom", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) |
| 1594 | ROM_LOAD( "a0101.rom", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) |
| 1595 | ROM_LOAD( "a0102.rom", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) |
| 1596 | ROM_LOAD( "a0103.rom", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) |
| 1597 | ROM_LOAD( "a0104.rom", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) |
| 1598 | ROM_LOAD( "a0105.rom", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) |
| 1599 | |
| 1600 | ROM_REGION( 0x1000000, "gfx4", 0 ) /* Sprite Masks + Colour Indexes */ |
| 1601 | ROM_LOAD( "b0100.rom", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) |
| 1602 | ROM_LOAD( "b0101.rom", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) |
| 1603 | ROM_LOAD( "b0102.rom", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) |
| 1604 | |
| 1605 | ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ |
| 1606 | ROM_LOAD( "pgm_m01s.rom", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) // (BIOS) |
| 1607 | ROM_LOAD( "m0100.rom", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) |
| 1608 | ROM_END |
| 1609 | |
| 1610 | |
| 1578 | 1611 | /* |
| 1579 | 1612 | |
| 1580 | 1613 | Oriental Legend / Xi You Shi E Zhuan (CHINA 111 Ver.) |
| r7772 | r7773 | |
| 2216 | 2249 | ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) |
| 2217 | 2250 | ROM_END |
| 2218 | 2251 | |
| 2252 | |
| 2253 | ROM_START( kovsh103 ) |
| 2254 | ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ |
| 2255 | ROM_LOAD16_WORD_SWAP( "pgm_p01s.rom", 0x000000, 0x020000, CRC(e42b166e) SHA1(2a9df9ec746b14b74fae48b1a438da14973702ea) ) // (BIOS) |
| 2256 | ROM_LOAD16_WORD_SWAP( "p0600.103", 0x100000, 0x400000, CRC(f0b3da82) SHA1(4067beb69c049b51bce6154f4cf880600ca4de11) ) |
| 2257 | |
| 2258 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 2259 | |
| 2260 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 2261 | ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) |
| 2262 | |
| 2263 | ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ |
| 2264 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2265 | ROM_LOAD( "t0600.rom", 0x400000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) |
| 2266 | |
| 2267 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */ |
| 2268 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2269 | |
| 2270 | /* all roms below need checking to see if they're the same on this board */ |
| 2271 | ROM_REGION( 0x1e00000, "gfx3", 0 ) /* Sprite Colour Data */ |
| 2272 | ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2273 | ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2274 | ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2275 | ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) |
| 2276 | ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) |
| 2277 | |
| 2278 | ROM_REGION( 0x1000000, "gfx4", 0 ) /* Sprite Masks + Colour Indexes */ |
| 2279 | ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) |
| 2280 | ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) |
| 2281 | ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) // tis dump had the same rom 4x bigger but with the data duplicated 4x, which is correct? |
| 2282 | |
| 2283 | ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ |
| 2284 | ROM_LOAD( "pgm_m01s.rom", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) // (BIOS) |
| 2285 | ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) |
| 2286 | ROM_END |
| 2287 | |
| 2288 | |
| 2219 | 2289 | ROM_START( photoy2k ) |
| 2220 | 2290 | ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ |
| 2221 | 2291 | ROM_LOAD16_WORD_SWAP( "pgm_p01s.rom", 0x000000, 0x020000, CRC(e42b166e) SHA1(2a9df9ec746b14b74fae48b1a438da14973702ea) ) // (BIOS) |
| r7772 | r7773 | |
| 3236 | 3306 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 3237 | 3307 | |
| 3238 | 3308 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 3239 | | ROM_LOAD( "martial_masters_v102_usa.asic", 0x000000, 0x04000, BAD_DUMP CRC(a6c0828c) SHA1(0a5bda56dca264c3c7ff7698b8f699563f203c4d) ) // not verified, could be bad |
| 3309 | ROM_LOAD( "martial_masters_v102_usa.asic", 0x000000, 0x04000, CRC(a6c0828c) SHA1(0a5bda56dca264c3c7ff7698b8f699563f203c4d) ) // not verified, could be bad |
| 3240 | 3310 | |
| 3241 | 3311 | ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ |
| 3242 | 3312 | ROM_LOAD( "v102_16m.u10", 0x000000, 0x200000, CRC(18b745e6) SHA1(7bcb58dd3a2d6072f492cf0dd7181cb061c1f49d) ) |
| r7772 | r7773 | |
| 3273 | 3343 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 3274 | 3344 | |
| 3275 | 3345 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 3276 | | ROM_LOAD( "martial_masters_v101_cn.asic", 0x000000, 0x04000, BAD_DUMP CRC(b3e25b7d) SHA1(6147d7ee2e11636521df1bb96ed5da8ad21b2a57) ) // not verified, could be bad |
| 3346 | ROM_LOAD( "martial_masters_v101_cn.asic", 0x000000, 0x04000, CRC(b3e25b7d) SHA1(6147d7ee2e11636521df1bb96ed5da8ad21b2a57) ) // not verified, could be bad |
| 3277 | 3347 | |
| 3278 | 3348 | ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ |
| 3279 | 3349 | ROM_LOAD( "v102_16m.u10", 0x000000, 0x200000, CRC(18b745e6) SHA1(7bcb58dd3a2d6072f492cf0dd7181cb061c1f49d) ) |
| r7772 | r7773 | |
| 3302 | 3372 | ROM_LOAD( "m1001.u7", 0xc00000, 0x400000, CRC(662d2d48) SHA1(2fcc3099d9c04456cae3b13035fb28eaf709e7d8) ) |
| 3303 | 3373 | ROM_END |
| 3304 | 3374 | |
| 3375 | ROM_START( martmastc102 ) |
| 3376 | ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ |
| 3377 | ROM_LOAD16_WORD_SWAP( "pgm_p01s.rom", 0x000000, 0x020000, CRC(e42b166e) SHA1(2a9df9ec746b14b74fae48b1a438da14973702ea) ) // (BIOS) |
| 3378 | ROM_LOAD16_WORD_SWAP( "martmast_u9-v102.322", 0x100000, 0x400000, CRC(bb24b92a) SHA1(442cb9e3f51727be82f71c078c5c3e49dc1a23f0) ) |
| 3379 | |
| 3380 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 3381 | |
| 3382 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 3383 | ROM_LOAD( "martial_masters_v101_cn.asic", 0x000000, 0x04000, CRC(b3e25b7d) SHA1(6147d7ee2e11636521df1bb96ed5da8ad21b2a57) ) // not verified, could be bad |
| 3384 | |
| 3385 | ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ |
| 3386 | ROM_LOAD( "martmast_u10-v101.160", 0x000000, 0x200000, CRC(d5d93294) SHA1(58d0a99749f7dc05814892b508ce21b160410947) ) |
| 3387 | |
| 3388 | ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ |
| 3389 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3390 | ROM_LOAD( "t1000.u3", 0x400000, 0x800000, CRC(bbf879b5) SHA1(bd9a6aea34ad4001e89e62ff4b7a2292eb833c00) ) |
| 3391 | |
| 3392 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */ |
| 3393 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3394 | |
| 3395 | ROM_REGION( 0x2800000, "gfx3", 0 ) /* Sprite Colour Data */ |
| 3396 | ROM_LOAD( "a1000.u3", 0x0000000, 0x0800000, CRC(43577ac8) SHA1(6eea8b455985d5bac74dcc9943cdc3c0902de6cc) ) |
| 3397 | ROM_LOAD( "a1001.u4", 0x0800000, 0x0800000, CRC(fe7a476f) SHA1(a8c7f1f0dd3e53141aed6d927eb88a3ceebb81e4) ) |
| 3398 | ROM_LOAD( "a1002.u6", 0x1000000, 0x0800000, CRC(62e33d38) SHA1(96163d583e25073594f8413ce263e56b66bd69a1) ) |
| 3399 | ROM_LOAD( "a1003.u8", 0x1800000, 0x0800000, CRC(b2c4945a) SHA1(7b18287a2db56db3651cfd4deb607af53522fefd) ) |
| 3400 | ROM_LOAD( "a1004.u10", 0x2000000, 0x0400000, CRC(9fd3f5fd) SHA1(057531f91062be51589c6cf8f4170089b9be6380) ) |
| 3401 | |
| 3402 | ROM_REGION( 0x1000000, "gfx4", 0 ) /* Sprite Masks + Colour Indexes */ |
| 3403 | ROM_LOAD( "b1000.u9", 0x0000000, 0x0800000, CRC(c5961f6f) SHA1(a68060b10edbd084cbde79d2ed1c9084777beb10) ) |
| 3404 | ROM_LOAD( "b1001.u11", 0x0800000, 0x0800000, CRC(0b7e1c06) SHA1(545e15e0087f8621d593fecd8b4013f7ca311686) ) |
| 3405 | |
| 3406 | ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ |
| 3407 | ROM_LOAD( "pgm_m01s.rom", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) // (BIOS) |
| 3408 | ROM_LOAD( "m1000.u5", 0x400000, 0x800000, CRC(ed407ae8) SHA1(a6e9c09b39c13e8fb7fbc89fa9f823cbeb66e901) ) |
| 3409 | ROM_LOAD( "m1001.u7", 0xc00000, 0x400000, CRC(662d2d48) SHA1(2fcc3099d9c04456cae3b13035fb28eaf709e7d8) ) |
| 3410 | ROM_END |
| 3411 | |
| 3412 | |
| 3305 | 3413 | /* |
| 3306 | 3414 | |
| 3307 | 3415 | Demon Front |
| r7772 | r7773 | |
| 4491 | 4599 | Working (at least one set of the game is fully working) |
| 4492 | 4600 | -----------------------------------------------------------------------------------------------------------------------*/ |
| 4493 | 4601 | |
| 4494 | | GAME( 1997, orlegend, pgm, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 126)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 4495 | | GAME( 1997, orlegende, orlegend, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 112)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 4496 | | GAME( 1997, orlegendc, orlegend, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 112, Chinese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 4497 | | GAME( 1997, orlegend111c, orlegend, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 111, Chinese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 4498 | | GAME( 1997, orlegend105k, orlegend, pgm, orld105k, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 105, Korean Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 4602 | // the version numbering on these is a mess... date srings from ROM (and in some cases even those are missing..) |
| 4603 | GAME( 1997, orlegend, pgm, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 126)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // V0001 01/14/98 18:16:38 - runs as World |
| 4604 | GAME( 1997, orlegende, orlegend, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 112)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // V0001 07/14/97 11:19:45 - runs as World |
| 4605 | GAME( 1997, orlegendc, orlegend, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 112, Chinese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // V0001 05/05/97 10:08:21 - runs as World, Korea, China |
| 4606 | GAME( 1997, orlegendca, orlegend, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. ???, Chinese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // V0001 04/02/97 13:35:43 - runs as HongKong, China, China |
| 4607 | GAME( 1997, orlegend111c, orlegend, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 111, Chinese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // V0001 no date! - runs as HongKong, China, China |
| 4608 | GAME( 1997, orlegend105k, orlegend, pgm, orld105k, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 105, Korean Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // V0000 no date! - runs as Korea |
| 4499 | 4609 | |
| 4500 | 4610 | GAME( 1997, drgw2, pgm, drgw2, pgm, drgw2, ROT0, "IGS", "Dragon World II (ver. 110X, Export)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // This set still has protection issues! |
| 4501 | 4611 | GAME( 1997, drgw2j, drgw2, drgw2, pgm, drgw2j, ROT0, "IGS", "Chuugokuryuu II (ver. 100J, Japan)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // This set still has protection issues! |
| r7772 | r7773 | |
| 4504 | 4614 | GAME( 1999, photoy2k, pgm, kov, photoy2k, djlzz, ROT0, "IGS", "Photo Y2K (ver. 104)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) /* region provided by protection device */ |
| 4505 | 4615 | GAME( 1999, photoy2k102, photoy2k, kov, photoy2k, djlzz, ROT0, "IGS", "Photo Y2K (ver. 102, Japanese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) /* region provided by protection device */ |
| 4506 | 4616 | |
| 4507 | | GAME( 1999, kovsh, pgm, kov, sango, kovsh, ROT0, "IGS", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 104)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 4617 | GAME( 1999, kovsh, pgm, kov, sango, kovsh, ROT0, "IGS", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 104, CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k V104, China internal ROM |
| 4618 | GAME( 1999, kovsh103, kovsh, kov, sango, kovsh, ROT0, "IGS", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 103, CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k V103, China internal ROM |
| 4508 | 4619 | |
| 4509 | | GAME( 2000, kov2, pgm, kov2, sango, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 107)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 05/10/01 14:24:08 V107 (Ext. Arm V102, Int. Arm V100HK) |
| 4510 | | GAME( 2000, kov2106, kov2, kov2, sango, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 106)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 02/27/01 13:26:46 V106 (Ext. Arm V102, Int. Arm V100HK) |
| 4511 | | GAME( 2000, kov2103, kov2, kov2, sango, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 103)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 12/28/00 15:09:31 V103 (Ext. Arm V101, Int. Arm V100HK) |
| 4512 | | GAME( 2000, kov2102, kov2, kov2, sango, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 102)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 12/14/00 10:33:36 V102 (Ext. Arm V101, Int. Arm V100HK) |
| 4513 | | GAME( 2000, kov2100, kov2, kov2, sango, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 100)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 11/29/00 11:03:08 V100 (Ext. Arm V100, Int. Arm V100HK) |
| 4620 | GAME( 2000, kov2, pgm, kov2, sango, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 107, 102, 100HK)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 05/10/01 14:24:08 V107 (Ext. Arm V102, Int. Arm V100HK) |
| 4621 | GAME( 2000, kov2106, kov2, kov2, sango, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 106, 102, 100KH)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 02/27/01 13:26:46 V106 (Ext. Arm V102, Int. Arm V100HK) |
| 4622 | GAME( 2000, kov2103, kov2, kov2, sango, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 103, 101, 100HK)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 12/28/00 15:09:31 V103 (Ext. Arm V101, Int. Arm V100HK) |
| 4623 | GAME( 2000, kov2102, kov2, kov2, sango, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 102, 101, 100HK)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 12/14/00 10:33:36 V102 (Ext. Arm V101, Int. Arm V100HK) |
| 4624 | GAME( 2000, kov2100, kov2, kov2, sango, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 100, 100, 100HK)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 11/29/00 11:03:08 V100 (Ext. Arm V100, Int. Arm V100HK) |
| 4514 | 4625 | |
| 4515 | | GAME( 2001, martmast, pgm, kov2, sango, martmast, ROT0, "IGS", "Martial Masters (ver. 102)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 4516 | | GAME( 2001, martmastc, martmast, kov2, sango, martmast, ROT0, "IGS", "Martial Masters (ver. 101, Chinese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 4626 | GAME( 2001, martmast, pgm, kov2, sango, martmast, ROT0, "IGS", "Martial Masters (ver. 104, 102, 102US)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k V104, Ext Arm 102, Int Arm 102US |
| 4627 | GAME( 2001, martmastc, martmast, kov2, sango, martmast, ROT0, "IGS", "Martial Masters (ver. 104, 102, 101CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k V104, Ext Arm 102, Int Arm 101CN |
| 4628 | GAME( 2001, martmastc102, martmast, kov2, sango, martmast, ROT0, "IGS", "Martial Masters (ver. 102, 101, 101CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k V102, Ext Arm 101, Int Arm 101CN |
| 4517 | 4629 | |
| 4518 | 4630 | /* ----------------------------------------------------------------------------------------------------------------------- |
| 4519 | 4631 | Partially Working, playable, but some imperfections |
| 4520 | 4632 | -----------------------------------------------------------------------------------------------------------------------*/ |
| 4521 | 4633 | |
| 4522 | | GAME( 1998, killbld, 0, killbld, killbld, killbld, ROT0, "IGS", "The Killing Blade (ver. 109, Chinese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // it's playable, but there are some things unclear about the protection |
| 4634 | GAME( 1998, killbld, pgm, killbld, killbld, killbld, ROT0, "IGS", "The Killing Blade (ver. 109, Chinese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // it's playable, but there are some things unclear about the protection |
| 4523 | 4635 | GAME( 1998, killbld104, killbld, killbld, killbld, killbld, ROT0, "IGS", "The Killing Blade (ver. 104)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // this set doesn't work, needs the DMA device emulating properly rather than using extracted data |
| 4524 | 4636 | |
| 4525 | 4637 | GAME( 1998, olds, pgm, olds, olds, olds, ROT0, "IGS", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 101, Korean Board)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) |
| 4526 | 4638 | GAME( 1998, olds100, olds, olds, olds, olds, ROT0, "IGS", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) |
| 4527 | | GAME( 1998, olds100a, olds, olds, olds, olds, ROT0, "IGS", "Oriental Legend Special / Xi You Shi E Zhuan Super (alt ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // grashes on some bosses, high score table etc. |
| 4639 | GAME( 1998, olds100a, olds, olds, olds, olds, ROT0, "IGS", "Oriental Legend Special / Xi You Shi E Zhuan Super (alt ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // crashes on some bosses, high score table etc. |
| 4528 | 4640 | |
| 4529 | 4641 | /* ----------------------------------------------------------------------------------------------------------------------- |
| 4530 | 4642 | NOT Working (mostly due to needing internal protection roms dumped) |
| r7772 | r7773 | |
| 4532 | 4644 | GAME( 1998, drgw3, pgm, pgm, sango, dw3, ROT0, "IGS", "Dragon World 3 (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) |
| 4533 | 4645 | GAME( 1998, drgw3k, drgw3, pgm, sango, dw3, ROT0, "IGS", "Dragon World 3 (ver. 106, Korean Board)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) |
| 4534 | 4646 | |
| 4535 | | GAME( 1999, kov, pgm, kov, sango, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 117)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ |
| 4536 | | GAME( 1999, kov115, kov, kov, sango, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 115)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ |
| 4537 | | GAME( 1999, kov100, kov, kov, sango, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 100, Japanese Board)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ |
| 4647 | GAME( 1999, kov, pgm, kov, sango, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 117)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // V0008 04/27/99 10:33:33 |
| 4648 | GAME( 1999, kov115, kov, kov, sango, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 115)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // V0006 02/22/99 11:53:18 |
| 4649 | GAME( 1999, kov100, kov, kov, sango, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 100, Japanese Board)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // V0002 01/31/99 01:54:16 |
| 4538 | 4650 | |
| 4539 | 4651 | GAME( 1999, kovplus, pgm, kov, sango, kov, ROT0, "IGS", "Knights of Valour Plus / Sangoku Senki Plus (ver. 119)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ |
| 4540 | 4652 | GAME( 1999, kovplusa, kovplus, kov, sango, kov, ROT0, "IGS", "Knights of Valour Plus / Sangoku Senki Plus (alt ver. 119)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ |
| r7772 | r7773 | |
| 4557 | 4669 | |
| 4558 | 4670 | GAME( 2004, oldsplus, pgm, kov, olds, oldsplus, ROT0, "IGS", "Oriental Legend Special Plus / Xi You Shi E Zhuan Super Plus", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ |
| 4559 | 4671 | |
| 4560 | | GAME( 2004, kovshp, kov, kov, sango, kovshp, ROT0, "IGS", "Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ |
| 4672 | GAME( 2004, kovshp, pgm, kov, sango, kovshp, ROT0, "IGS", "Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ |
| 4561 | 4673 | |
| 4562 | 4674 | GAME( 2005, killbldp, pgm, svg, sango, killbldp, ROT0, "IGS", "The Killing Blade Plus (ver. 300)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ |
| 4563 | 4675 | |
src/mame/drivers/namcos23.c
| r7772 | r7773 | |
| 21 | 21 | - Text layer is (almost?) identical to System 22 & Super System 22. |
| 22 | 22 | |
| 23 | 23 | TODO: |
| 24 | | - Palette is not right. |
| 25 | | |
| 26 | 24 | - Hook up gun inputs (?) via the 2 serial latches at d00004 and d00006. |
| 27 | 25 | Works like this: write to d00004, then read d00004 12 times. Ditto at |
| 28 | 26 | d00006. This gives 24 bits of inputs (?) from the I/O board (?) or guns (?) |
| 29 | 27 | |
| 30 | | - The entire 3D subsystem. Is there a DSP living down there? |
| 31 | | |
| 32 | 28 | - There are currently no differences seen between System 23 (Time Crisis 2) and |
| 33 | 29 | Super System 23 (GP500, Final Furlong 2). These will presumably appear when |
| 34 | 30 | the 3D hardware is emulated. |
| r7772 | r7773 | |
| 36 | 32 | - Serial number data is at offset 0x201 in the BIOS. Until the games are running |
| 37 | 33 | and displaying it I'm not going to meddle with it though. |
| 38 | 34 | |
| 39 | | - Ok, it's the "mt" roms, which the game calls data roms. One pair is |
| 40 | | at a8000000, the other at aa000000. Point roms are accessed for |
| 41 | | checksumming through a port at a200000x: |
| 35 | - Point roms are accessed for checksumming through a port at a200000x: |
| 42 | 36 | - reset the port by writing 0000 to a2000006 |
| 43 | 37 | - write offset >> 16 to a2000004 |
| 44 | 38 | - write offset & ffff to a2000004 (yes, same address, hence the reset) |
| r7772 | r7773 | |
| 1166 | 1160 | */ |
| 1167 | 1161 | |
| 1168 | 1162 | #include "emu.h" |
| 1163 | #include <float.h> |
| 1164 | #include "video/poly.h" |
| 1169 | 1165 | #include "cpu/mips/mips3.h" |
| 1170 | 1166 | #include "cpu/h83002/h8.h" |
| 1171 | 1167 | #include "cpu/sh2/sh2.h" |
| r7772 | r7773 | |
| 1177 | 1173 | #define S23_HSYNC (16666150) |
| 1178 | 1174 | #define S23_MODECLOCK (130205) |
| 1179 | 1175 | |
| 1180 | | //static int ss23_vstat = 0, hstat = 0, vstate = 0; |
| 1181 | 1176 | static tilemap_t *bgtilemap; |
| 1182 | 1177 | static UINT32 *namcos23_textram, *namcos23_shared_ram, *gmen_sh2_shared; |
| 1183 | 1178 | static UINT32 *namcos23_charram; |
| r7772 | r7773 | |
| 1190 | 1185 | |
| 1191 | 1186 | static UINT16 c417_ram[0x10000], c417_adr = 0; |
| 1192 | 1187 | |
| 1193 | | static UINT16 c412_sdram_a[0x100000]; |
| 1188 | static UINT16 c412_sdram_a[0x100000]; // Framebuffers, probably |
| 1194 | 1189 | static UINT16 c412_sdram_b[0x100000]; |
| 1195 | | static UINT16 c412_sram[0x20000]; |
| 1196 | | static UINT16 c412_pczram[0x200]; |
| 1190 | static UINT16 c412_sram[0x20000]; // Ram-based tiles for rendering |
| 1191 | static UINT16 c412_pczram[0x200]; // Ram-based tilemap for rendering, or something else |
| 1197 | 1192 | static UINT32 c412_adr = 0; |
| 1198 | 1193 | |
| 1199 | 1194 | static UINT16 c421_dram_a[0x40000]; |
| r7772 | r7773 | |
| 1204 | 1199 | static INT16 s23_c422_regs[0x10]; |
| 1205 | 1200 | static int s23_subcpu_running; |
| 1206 | 1201 | |
| 1202 | static emu_timer *c361_timer; |
| 1203 | |
| 1207 | 1204 | static UINT32 p3d_address, p3d_size; |
| 1208 | 1205 | |
| 1206 | static const UINT32 *ptrom; |
| 1207 | static const UINT16 *tmlrom; |
| 1208 | static const UINT8 *tmhrom, *texrom; |
| 1209 | static UINT32 tileid_mask, tile_mask, ptrom_limit; |
| 1210 | |
| 1211 | // It may only be 128 |
| 1212 | // At 0x1e bytes per slot, rounded up to 0x20, that's 0x1000 to 0x2000 bytes. |
| 1213 | // That fits pretty much anywhere, including inside a IC |
| 1214 | // No idea at that point if it's CPU-reachable. DMA's probably more efficient anyway. |
| 1215 | |
| 1216 | // Matrices are stored in signed 2.14 fixed point |
| 1217 | // Vectors are stored in signed 10.14 fixed point |
| 1218 | |
| 1219 | static INT16 matrices[256][9]; |
| 1220 | static INT32 vectors[256][3]; |
| 1221 | static INT32 light_vector[3]; |
| 1222 | static UINT16 scaling; |
| 1223 | |
| 1224 | |
| 1209 | 1225 | static UINT16 nthword( const UINT32 *pSource, int offs ) |
| 1210 | 1226 | { |
| 1211 | 1227 | pSource += offs/2; |
| r7772 | r7773 | |
| 1231 | 1247 | tilemap_mark_tile_dirty(bgtilemap, (offset*2)+1); |
| 1232 | 1248 | } |
| 1233 | 1249 | |
| 1234 | | static VIDEO_START( ss23 ) |
| 1235 | | { |
| 1236 | | gfx_element_set_source(machine->gfx[0], (UINT8 *)namcos23_charram); |
| 1237 | | bgtilemap = tilemap_create(machine, TextTilemapGetInfo, tilemap_scan_rows, 16, 16, 64, 64); |
| 1238 | | tilemap_set_transparent_pen(bgtilemap, 0xf); |
| 1239 | | } |
| 1240 | | |
| 1241 | | static VIDEO_UPDATE( ss23 ) |
| 1242 | | { |
| 1243 | | bitmap_fill(bitmap, cliprect, get_black_pen(screen->machine)); |
| 1244 | | bitmap_fill(screen->machine->priority_bitmap, cliprect, 0); |
| 1245 | | |
| 1246 | | gfx_element *gfx = screen->machine->gfx[0]; |
| 1247 | | memset(gfx->dirty, 1, gfx->total_elements); |
| 1248 | | |
| 1249 | | tilemap_draw( bitmap, cliprect, bgtilemap, 0/*flags*/, 0/*priority*/ ); /* opaque */ |
| 1250 | | return 0; |
| 1251 | | } |
| 1252 | | |
| 1253 | 1250 | static WRITE32_HANDLER( s23_txtchar_w ) |
| 1254 | 1251 | { |
| 1255 | 1252 | COMBINE_DATA(&namcos23_charram[offset]); |
| r7772 | r7773 | |
| 1372 | 1369 | switch(offset) { |
| 1373 | 1370 | case 8: c412_adr = (data & mem_mask) | (c412_adr & (0xffffffff ^ mem_mask)); break; |
| 1374 | 1371 | case 9: c412_adr = ((data & mem_mask) << 16) | (c412_adr & (0xffffffff ^ (mem_mask << 16))); break; |
| 1375 | | case 10: s23_c412_ram_w(space, c412_adr, data, mem_mask); break; |
| 1372 | case 10: s23_c412_ram_w(space, c412_adr, data, mem_mask); c412_adr += 2; break; |
| 1376 | 1373 | default: |
| 1377 | 1374 | logerror("c412_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, cpu_get_pc(space->cpu), (unsigned int)cpu_get_reg(space->cpu, MIPS3_R31)); |
| 1378 | 1375 | break; |
| r7772 | r7773 | |
| 1418 | 1415 | static WRITE16_HANDLER(s23_c421_w) |
| 1419 | 1416 | { |
| 1420 | 1417 | switch(offset) { |
| 1421 | | case 0: s23_c421_ram_w(space, c421_adr & 0xfffff, data, mem_mask); break; |
| 1418 | case 0: s23_c421_ram_w(space, c421_adr & 0xfffff, data, mem_mask); c421_adr += 2; break; |
| 1422 | 1419 | case 2: c421_adr = ((data & mem_mask) << 16) | (c421_adr & (0xffffffff ^ (mem_mask << 16))); break; |
| 1423 | 1420 | case 3: c421_adr = (data & mem_mask) | (c421_adr & (0xffffffff ^ mem_mask)); break; |
| 1424 | 1421 | default: |
| r7772 | r7773 | |
| 1482 | 1479 | return 0xffff; |
| 1483 | 1480 | } |
| 1484 | 1481 | |
| 1482 | // raster timer. TC2 indicates it's probably one-shot since it resets it each VBL... |
| 1483 | static int c361_scanline; |
| 1484 | static TIMER_CALLBACK( c361_timer_cb ) |
| 1485 | { |
| 1486 | if (c361_scanline != 511) |
| 1487 | { |
| 1488 | cputag_set_input_line(machine, "maincpu", MIPS3_IRQ1, ASSERT_LINE); |
| 1489 | timer_adjust_oneshot(c361_timer, attotime_never, 0); |
| 1490 | } |
| 1491 | } |
| 1492 | |
| 1485 | 1493 | static WRITE16_HANDLER(s23_c361_w) |
| 1486 | 1494 | { |
| 1487 | 1495 | switch(offset) { |
| 1496 | case 0: |
| 1497 | tilemap_set_scrollx(bgtilemap, 0, data&0xfff); |
| 1498 | break; |
| 1499 | |
| 1500 | case 1: |
| 1501 | tilemap_set_scrolly(bgtilemap, 0, data&0xfff); |
| 1502 | break; |
| 1503 | |
| 1488 | 1504 | case 4: // interrupt control |
| 1489 | | if (data == 0xc8) |
| 1505 | c361_scanline = data; |
| 1506 | if (data == 0x1ff) |
| 1490 | 1507 | { |
| 1491 | | logerror("c361_w: raise IRQ 1\n"); |
| 1492 | | cputag_set_input_line(space->machine, "maincpu", MIPS3_IRQ1, ASSERT_LINE); |
| 1493 | | } |
| 1494 | | else if (data == 0x1ff) |
| 1495 | | { |
| 1496 | | logerror("c361_w: ack IRQ 1\n"); |
| 1497 | 1508 | cputag_set_input_line(space->machine, "maincpu", MIPS3_IRQ1, CLEAR_LINE); |
| 1509 | timer_adjust_oneshot(c361_timer, attotime_never, 0); |
| 1498 | 1510 | } |
| 1499 | 1511 | else |
| 1500 | 1512 | { |
| 1501 | | logerror("c361_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, cpu_get_pc(space->cpu), (unsigned int)cpu_get_reg(space->cpu, MIPS3_R31)); |
| 1513 | timer_adjust_oneshot(c361_timer, video_screen_get_time_until_pos(space->machine->primary_screen, c361_scanline, 0), 0); |
| 1502 | 1514 | } |
| 1503 | 1515 | break; |
| 1504 | 1516 | |
| r7772 | r7773 | |
| 1510 | 1522 | static READ16_HANDLER(s23_c361_r) |
| 1511 | 1523 | { |
| 1512 | 1524 | switch(offset) { |
| 1513 | | case 5: return video_screen_get_vpos(space->machine->primary_screen); |
| 1525 | case 5: return video_screen_get_vpos(space->machine->primary_screen)*2; |
| 1514 | 1526 | case 6: return video_screen_get_vblank(space->machine->primary_screen); |
| 1515 | 1527 | } |
| 1516 | 1528 | logerror("c361_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, cpu_get_pc(space->cpu), (unsigned int)cpu_get_reg(space->cpu, MIPS3_R31)); |
| r7772 | r7773 | |
| 1548 | 1560 | COMBINE_DATA(&s23_c422_regs[offset]); |
| 1549 | 1561 | } |
| 1550 | 1562 | |
| 1551 | | static INTERRUPT_GEN(s23_interrupt) |
| 1552 | | { |
| 1553 | | if(!ctl_vbl_active) { |
| 1554 | | ctl_vbl_active = true; |
| 1555 | | cpu_set_input_line(device, MIPS3_IRQ0, ASSERT_LINE); |
| 1556 | | } |
| 1557 | | } |
| 1558 | | |
| 1559 | | |
| 1560 | 1563 | // as with System 22, we need to halt the MCU while checking shared RAM |
| 1561 | 1564 | static WRITE32_HANDLER( s23_mcuen_w ) |
| 1562 | 1565 | { |
| r7772 | r7773 | |
| 1614 | 1617 | return 0x00020002; |
| 1615 | 1618 | } |
| 1616 | 1619 | |
| 1617 | | static void p3d_packet(const address_space *space, UINT32 adr, UINT32 size) |
| 1620 | |
| 1621 | // 3D hardware, to throw at least in part in video/namcos23.c |
| 1622 | |
| 1623 | enum { MODEL, FLUSH }; |
| 1624 | |
| 1625 | struct namcos23_render_entry { |
| 1626 | int type; |
| 1627 | |
| 1628 | union { |
| 1629 | struct { |
| 1630 | UINT16 model; |
| 1631 | INT16 m[9]; |
| 1632 | INT32 v[3]; |
| 1633 | float scaling; |
| 1634 | } model; |
| 1635 | }; |
| 1636 | }; |
| 1637 | |
| 1638 | struct namcos23_render_data { |
| 1639 | const pen_t *pens; |
| 1640 | UINT32 (*texture_lookup)(const pen_t *pens, float x, float y); |
| 1641 | }; |
| 1642 | |
| 1643 | struct namcos23_poly_entry { |
| 1644 | namcos23_render_data rd; |
| 1645 | float zkey; |
| 1646 | int front; |
| 1647 | int vertex_count; |
| 1648 | poly_vertex pv[16]; |
| 1649 | }; |
| 1650 | |
| 1651 | enum { RENDER_MAX_ENTRIES = 1000, POLY_MAX_ENTRIES = 10000 }; |
| 1652 | static namcos23_render_entry render_entries[2][RENDER_MAX_ENTRIES]; |
| 1653 | static namcos23_poly_entry render_polys[POLY_MAX_ENTRIES]; |
| 1654 | static int render_poly_order[POLY_MAX_ENTRIES]; |
| 1655 | static int render_count[2], render_cur, render_poly_count; |
| 1656 | static poly_manager *polymgr; |
| 1657 | |
| 1658 | static inline INT32 u32_to_s24(UINT32 v) |
| 1618 | 1659 | { |
| 1619 | | logerror("p3d dma %08x %08x [%08x]\n", adr, size, (unsigned int)cpu_get_reg(space->cpu, MIPS3_R31)); |
| 1660 | return v & 0x800000 ? v | 0xff000000 : v & 0xffffff; |
| 1620 | 1661 | } |
| 1621 | 1662 | |
| 1663 | static inline INT32 u32_to_s10(UINT32 v) |
| 1664 | { |
| 1665 | return v & 0x200 ? v | 0xfffffe00 : v & 0x1ff; |
| 1666 | } |
| 1667 | |
| 1668 | |
| 1669 | static inline UINT8 light(UINT8 c, float l) |
| 1670 | { |
| 1671 | if(l < 1) |
| 1672 | l = l*c; |
| 1673 | else |
| 1674 | l = 255 - (255-c)/l; |
| 1675 | return UINT8(l); |
| 1676 | } |
| 1677 | |
| 1678 | static UINT32 texture_lookup_nocache_point(const pen_t *pens, float x, float y) |
| 1679 | { |
| 1680 | UINT32 xx = UINT32(x); |
| 1681 | UINT32 yy = UINT32(y); |
| 1682 | UINT32 tileid = ((xx >> 4) & 0xff) | ((yy << 4) & tileid_mask); |
| 1683 | UINT8 attr = tmhrom[tileid >> 1]; |
| 1684 | if(tileid & 1) |
| 1685 | attr &= 15; |
| 1686 | else |
| 1687 | attr >>= 4; |
| 1688 | UINT32 tile = (tmlrom[tileid] | (attr << 16)) & tile_mask; |
| 1689 | |
| 1690 | // Probably swapx/swapy to add on bits 2-3 of attr |
| 1691 | // Bits used by motoxgo at least |
| 1692 | UINT8 color = texrom[(tile << 8) | ((yy << 4) & 0xf0) | (xx & 0x0f)]; |
| 1693 | return pens[color]; |
| 1694 | } |
| 1695 | |
| 1696 | static void render_scanline(void *dest, INT32 scanline, const poly_extent *extent, const void *extradata, int threadid) |
| 1697 | { |
| 1698 | const namcos23_render_data *rd = (const namcos23_render_data *)extradata; |
| 1699 | |
| 1700 | float w = extent->param[0].start; |
| 1701 | float u = extent->param[1].start; |
| 1702 | float v = extent->param[2].start; |
| 1703 | float l = extent->param[3].start; |
| 1704 | float dw = extent->param[0].dpdx; |
| 1705 | float du = extent->param[1].dpdx; |
| 1706 | float dv = extent->param[2].dpdx; |
| 1707 | float dl = extent->param[3].dpdx; |
| 1708 | bitmap_t *bitmap = (bitmap_t *)dest; |
| 1709 | UINT32 *img = BITMAP_ADDR32(bitmap, scanline, extent->startx); |
| 1710 | |
| 1711 | for(int x = extent->startx; x < extent->stopx; x++) { |
| 1712 | float z = w ? 1/w : 0; |
| 1713 | UINT32 pcol = rd->texture_lookup(rd->pens, u*z, v*z); |
| 1714 | float ll = l*z; |
| 1715 | *img = (light(pcol >> 16, ll) << 16) | (light(pcol >> 8, ll) << 8) | light(pcol, ll); |
| 1716 | |
| 1717 | w += dw; |
| 1718 | u += du; |
| 1719 | v += dv; |
| 1720 | l += dl; |
| 1721 | img++; |
| 1722 | } |
| 1723 | } |
| 1724 | |
| 1725 | static INT32 *p3d_getv(UINT16 id) |
| 1726 | { |
| 1727 | static INT32 sp[3]; |
| 1728 | if(id == 0x8000) |
| 1729 | return light_vector; |
| 1730 | if(id >= 0x100) { |
| 1731 | memset(sp, 0, sizeof(sp)); |
| 1732 | return sp; |
| 1733 | } |
| 1734 | return vectors[id]; |
| 1735 | } |
| 1736 | |
| 1737 | static INT16 *p3d_getm(UINT16 id) |
| 1738 | { |
| 1739 | static INT16 sp[3]; |
| 1740 | if(id >= 0x100) { |
| 1741 | memset(sp, 0, sizeof(sp)); |
| 1742 | return sp; |
| 1743 | } |
| 1744 | return matrices[id]; |
| 1745 | } |
| 1746 | |
| 1747 | static void p3d_matrix_set(const UINT16 *p, int size) |
| 1748 | { |
| 1749 | if(size != 10) { |
| 1750 | logerror("WARNING: p3d_matrix_set with size %d\n", size); |
| 1751 | return; |
| 1752 | } |
| 1753 | INT16 *t = p3d_getm(*p++); |
| 1754 | for(int i=0; i<9; i++) |
| 1755 | t[i] = *p++; |
| 1756 | } |
| 1757 | |
| 1758 | static void p3d_vector_set(const UINT16 *p, int size) |
| 1759 | { |
| 1760 | if(size != 7) { |
| 1761 | logerror("WARNING: p3d_vector_set with size %d\n", size); |
| 1762 | return; |
| 1763 | } |
| 1764 | INT32 *t = p3d_getv(*p++); |
| 1765 | for(int i=0; i<3; i++) { |
| 1766 | t[i] = u32_to_s24((p[0] << 16) | p[1]); |
| 1767 | p += 2; |
| 1768 | } |
| 1769 | } |
| 1770 | |
| 1771 | static void p3d_scaling_set(const UINT16 *p, int size) |
| 1772 | { |
| 1773 | if(size != 1) { |
| 1774 | logerror("WARNING: p3d_scaling_set with size %d\n", size); |
| 1775 | return; |
| 1776 | } |
| 1777 | scaling = *p; |
| 1778 | } |
| 1779 | |
| 1780 | static void p3d_vector_matrix_mul(const UINT16 *p, int size) |
| 1781 | { |
| 1782 | if(size != 4) { |
| 1783 | logerror("WARNING: p3d_vector_matrix_mul with size %d\n", size); |
| 1784 | return; |
| 1785 | } |
| 1786 | if(p[2] != 0xffff) |
| 1787 | logerror("WARNING: p3d_vector_matrix_mul with +2=%04x\n", p[2]); |
| 1788 | |
| 1789 | INT32 *t = p3d_getv(p[0]); |
| 1790 | const INT16 *m = p3d_getm(p[1]); |
| 1791 | const INT32 *v = p3d_getv(p[3]); |
| 1792 | |
| 1793 | t[0] = INT32((m[0]*INT64(v[0]) + m[3]*INT64(v[1]) + m[6]*INT64(v[2])) >> 14); |
| 1794 | t[1] = INT32((m[1]*INT64(v[0]) + m[4]*INT64(v[1]) + m[7]*INT64(v[2])) >> 14); |
| 1795 | t[2] = INT32((m[2]*INT64(v[0]) + m[5]*INT64(v[1]) + m[8]*INT64(v[2])) >> 14); |
| 1796 | } |
| 1797 | |
| 1798 | static void p3d_matrix_vector_mul(const UINT16 *p, int size) |
| 1799 | { |
| 1800 | if(size != 4) { |
| 1801 | logerror("WARNING: p3d_matrix_vector_mul with size %d\n", size); |
| 1802 | return; |
| 1803 | } |
| 1804 | if(p[2] != 0xffff) |
| 1805 | logerror("WARNING: p3d_matrix_vector_mul with +2=%04x\n", p[2]); |
| 1806 | |
| 1807 | INT32 *t = p3d_getv(p[0]); |
| 1808 | const INT16 *m = p3d_getm(p[1]); |
| 1809 | const INT32 *v = p3d_getv(p[3]); |
| 1810 | |
| 1811 | t[0] = INT32((m[0]*INT64(v[0]) + m[1]*INT64(v[1]) + m[2]*INT64(v[2])) >> 14); |
| 1812 | t[1] = INT32((m[3]*INT64(v[0]) + m[4]*INT64(v[1]) + m[7]*INT64(v[2])) >> 14); |
| 1813 | t[2] = INT32((m[6]*INT64(v[0]) + m[7]*INT64(v[1]) + m[8]*INT64(v[2])) >> 14); |
| 1814 | } |
| 1815 | |
| 1816 | |
| 1817 | static void p3d_matrix_matrix_mul(const UINT16 *p, int size) |
| 1818 | { |
| 1819 | if(size != 4) { |
| 1820 | logerror("WARNING: p3d_matrix_matrix_mul with size %d\n", size); |
| 1821 | return; |
| 1822 | } |
| 1823 | if(p[2] != 0xffff) |
| 1824 | logerror("WARNING: p3d_matrix_matrix_mul with +2=%04x\n", p[2]); |
| 1825 | |
| 1826 | INT16 *t = p3d_getm(p[0]); |
| 1827 | const INT16 *m1 = p3d_getm(p[1]); |
| 1828 | const INT16 *m2 = p3d_getm(p[3]); |
| 1829 | |
| 1830 | t[0] = INT16((m1[0]*m2[0] + m1[1]*m2[3] + m1[2]*m2[6]) >> 14); |
| 1831 | t[1] = INT16((m1[0]*m2[1] + m1[1]*m2[4] + m1[2]*m2[7]) >> 14); |
| 1832 | t[2] = INT16((m1[0]*m2[2] + m1[1]*m2[5] + m1[2]*m2[8]) >> 14); |
| 1833 | t[3] = INT16((m1[3]*m2[0] + m1[4]*m2[3] + m1[5]*m2[6]) >> 14); |
| 1834 | t[4] = INT16((m1[3]*m2[1] + m1[4]*m2[4] + m1[5]*m2[7]) >> 14); |
| 1835 | t[5] = INT16((m1[3]*m2[2] + m1[4]*m2[5] + m1[5]*m2[8]) >> 14); |
| 1836 | t[6] = INT16((m1[6]*m2[0] + m1[7]*m2[3] + m1[8]*m2[6]) >> 14); |
| 1837 | t[7] = INT16((m1[6]*m2[1] + m1[7]*m2[4] + m1[8]*m2[7]) >> 14); |
| 1838 | t[8] = INT16((m1[6]*m2[2] + m1[7]*m2[5] + m1[8]*m2[8]) >> 14); |
| 1839 | } |
| 1840 | |
| 1841 | static void p3d_render(const UINT16 *p, int size, bool use_scaling) |
| 1842 | { |
| 1843 | if(size != 3) { |
| 1844 | logerror("WARNING: p3d_render with size %d\n", size); |
| 1845 | return; |
| 1846 | } |
| 1847 | |
| 1848 | logerror("render model %x %swith matrix %x and vector %x\n", p[0], use_scaling ? "scaled " : "", p[1], p[2]); |
| 1849 | |
| 1850 | // Temporary gross hack for timecrs2 |
| 1851 | if(p[0] == 0xd96) |
| 1852 | return; |
| 1853 | |
| 1854 | if(render_count[render_cur] >= RENDER_MAX_ENTRIES) { |
| 1855 | logerror("WARNING: render buffer full\n"); |
| 1856 | return; |
| 1857 | } |
| 1858 | |
| 1859 | // Vector and matrix may be inverted |
| 1860 | const INT16 *m = p3d_getm(p[1]); |
| 1861 | const INT32 *v = p3d_getv(p[2]); |
| 1862 | |
| 1863 | namcos23_render_entry *re = render_entries[render_cur] + render_count[render_cur]; |
| 1864 | re->type = MODEL; |
| 1865 | re->model.model = p[0]; |
| 1866 | re->model.scaling = use_scaling ? scaling / 16384.0 : 1.0; |
| 1867 | memcpy(re->model.m, m, sizeof(re->model.m)); |
| 1868 | memcpy(re->model.v, v, sizeof(re->model.v)); |
| 1869 | if(0) |
| 1870 | fprintf(stderr, "Render %04x (%f %f %f %f %f %f %f %f %f) (%f %f %f)\n", |
| 1871 | re->model.model, |
| 1872 | re->model.m[0]/16384.0, re->model.m[1]/16384.0, re->model.m[2]/16384.0, |
| 1873 | re->model.m[3]/16384.0, re->model.m[4]/16384.0, re->model.m[5]/16384.0, |
| 1874 | re->model.m[6]/16384.0, re->model.m[7]/16384.0, re->model.m[8]/16384.0, |
| 1875 | re->model.v[0]/16384.0, re->model.v[1]/16384.0, re->model.v[2]/16384.0); |
| 1876 | |
| 1877 | render_count[render_cur]++; |
| 1878 | } |
| 1879 | |
| 1880 | |
| 1881 | static void p3d_flush(const UINT16 *p, int size) |
| 1882 | { |
| 1883 | if(size != 0) { |
| 1884 | logerror("WARNING: p3d_flush with size %d\n", size); |
| 1885 | return; |
| 1886 | } |
| 1887 | |
| 1888 | namcos23_render_entry *re = render_entries[render_cur] + render_count[render_cur]; |
| 1889 | re->type = FLUSH; |
| 1890 | render_count[render_cur]++; |
| 1891 | } |
| 1892 | |
| 1893 | static void p3d_dma(const address_space *space, UINT32 adr, UINT32 size) |
| 1894 | { |
| 1895 | adr &= 0x1fffffff; |
| 1896 | UINT16 buffer[256]; |
| 1897 | int pos = 0; |
| 1898 | while(pos < size) { |
| 1899 | UINT16 h = memory_read_word(space, adr+pos); |
| 1900 | |
| 1901 | pos += 2; |
| 1902 | |
| 1903 | UINT16 h1; |
| 1904 | int psize; |
| 1905 | if(h & 0x4000) { |
| 1906 | h1 = h & 0xff00; |
| 1907 | psize = h & 0xff; |
| 1908 | } else { |
| 1909 | h1 = h & 0xfff0; |
| 1910 | psize = h & 0xf; |
| 1911 | } |
| 1912 | |
| 1913 | if(size-pos < psize*2) { |
| 1914 | logerror("WARNING: short packet (header %04x, remaining %x)\n", h, (size-pos)/2); |
| 1915 | return; |
| 1916 | } |
| 1917 | |
| 1918 | for(int i=0; i < psize; i++) { |
| 1919 | buffer[i] = memory_read_word(space, adr+pos); |
| 1920 | pos += 2; |
| 1921 | } |
| 1922 | |
| 1923 | switch(h1) { |
| 1924 | case 0x0040: p3d_matrix_set(buffer, psize); break; |
| 1925 | case 0x0050: p3d_vector_set(buffer, psize); break; |
| 1926 | case 0x0000: p3d_matrix_matrix_mul(buffer, psize); break; |
| 1927 | case 0x0810: p3d_matrix_vector_mul(buffer, psize); break; |
| 1928 | case 0x1010: p3d_vector_matrix_mul(buffer, psize); break; |
| 1929 | case 0x4400: p3d_scaling_set(buffer, psize); break; |
| 1930 | case 0x8000: p3d_render(buffer, psize, false); break; |
| 1931 | case 0x8080: p3d_render(buffer, psize, true); break; |
| 1932 | case 0xc000: p3d_flush(buffer, psize); break; |
| 1933 | default: { |
| 1934 | if(0) { |
| 1935 | logerror("p3d - [%04x] %04x", h1, h); |
| 1936 | for(int i=0; i<psize; i++) |
| 1937 | logerror(" %04x", buffer[i]); |
| 1938 | logerror("\n"); |
| 1939 | } |
| 1940 | break; |
| 1941 | } |
| 1942 | } |
| 1943 | } |
| 1944 | } |
| 1945 | |
| 1622 | 1946 | static READ32_HANDLER( p3d_r ) |
| 1623 | 1947 | { |
| 1624 | 1948 | switch(offset) { |
| r7772 | r7773 | |
| 1636 | 1960 | case 0x8: COMBINE_DATA(&p3d_size); return; |
| 1637 | 1961 | case 0x9: |
| 1638 | 1962 | if(data & 1) |
| 1639 | | p3d_packet(space, p3d_address, p3d_size); |
| 1963 | p3d_dma(space, p3d_address, p3d_size); |
| 1640 | 1964 | return; |
| 1641 | | case 0x17: return; |
| 1965 | case 0x17: |
| 1966 | cputag_set_input_line(space->machine, "maincpu", MIPS3_IRQ1, CLEAR_LINE); |
| 1967 | timer_adjust_oneshot(c361_timer, attotime_never, 0); |
| 1968 | return; |
| 1642 | 1969 | } |
| 1643 | 1970 | logerror("p3d_w %02x, %08x @ %08x (%08x, %08x)\n", offset, data, mem_mask, cpu_get_pc(space->cpu), (unsigned int)cpu_get_reg(space->cpu, MIPS3_R31)); |
| 1644 | 1971 | } |
| 1645 | 1972 | |
| 1973 | static void render_apply_transform(INT32 xi, INT32 yi, INT32 zi, const namcos23_render_entry *re, poly_vertex &pv) |
| 1974 | { |
| 1975 | pv.x = (INT32((re->model.m[0]*INT64(xi) + re->model.m[3]*INT64(yi) + re->model.m[6]*INT64(zi)) >> 14)*re->model.scaling + re->model.v[0])/16384.0; |
| 1976 | pv.y = (INT32((re->model.m[1]*INT64(xi) + re->model.m[4]*INT64(yi) + re->model.m[7]*INT64(zi)) >> 14)*re->model.scaling + re->model.v[1])/16384.0; |
| 1977 | pv.p[0] = (INT32((re->model.m[2]*INT64(xi) + re->model.m[5]*INT64(yi) + re->model.m[8]*INT64(zi)) >> 14)*re->model.scaling + re->model.v[2])/16384.0; |
| 1978 | } |
| 1979 | |
| 1980 | static void render_apply_matrot(INT32 xi, INT32 yi, INT32 zi, const namcos23_render_entry *re, INT32 &x, INT32 &y, INT32 &z) |
| 1981 | { |
| 1982 | x = (re->model.m[0]*xi + re->model.m[3]*yi + re->model.m[6]*zi) >> 14; |
| 1983 | y = (re->model.m[1]*xi + re->model.m[4]*yi + re->model.m[7]*zi) >> 14; |
| 1984 | z = (re->model.m[2]*xi + re->model.m[5]*yi + re->model.m[8]*zi) >> 14; |
| 1985 | } |
| 1986 | |
| 1987 | static void render_project(poly_vertex &pv) |
| 1988 | { |
| 1989 | // 768 validated by the title screen size on tc2: |
| 1990 | // texture is 640x480, x range is 3.125, y range is 2.34375, z is 3.75 |
| 1991 | // 640/(3.125/3.75) = 768 |
| 1992 | // 480/(2.34375/3.75) = 768 |
| 1993 | |
| 1994 | float w = pv.p[0] ? 1/pv.p[0] : 0; |
| 1995 | pv.x = 320 + 768*w*pv.x; |
| 1996 | pv.y = 240 - 768*w*pv.y; |
| 1997 | pv.p[0] = w; |
| 1998 | } |
| 1999 | |
| 2000 | static void render_one_model(running_machine *machine, const namcos23_render_entry *re) |
| 2001 | { |
| 2002 | UINT32 adr = ptrom[re->model.model]; |
| 2003 | if(adr >= ptrom_limit) { |
| 2004 | logerror("WARNING: model %04x base address %08x out-of-bounds - pointram?\n", re->model.model, adr); |
| 2005 | return; |
| 2006 | } |
| 2007 | |
| 2008 | while(adr < ptrom_limit) { |
| 2009 | poly_vertex pv[15]; |
| 2010 | |
| 2011 | UINT32 type = ptrom[adr++]; |
| 2012 | UINT32 h = ptrom[adr++]; |
| 2013 | |
| 2014 | |
| 2015 | float tbase = (type >> 24) << 12; |
| 2016 | UINT8 color = (h >> 24) & 0x7f; |
| 2017 | int lmode = (type >> 19) & 3; |
| 2018 | int ne = (type >> 8) & 15; |
| 2019 | |
| 2020 | // Something to do with Z-sorting at least? |
| 2021 | if(type & 0x00001000) |
| 2022 | adr++; |
| 2023 | |
| 2024 | UINT32 light = 0; |
| 2025 | UINT32 extptr = 0; |
| 2026 | |
| 2027 | if(lmode == 3) { |
| 2028 | extptr = adr; |
| 2029 | adr += ne; |
| 2030 | } else |
| 2031 | light = ptrom[adr++]; |
| 2032 | |
| 2033 | float minz = FLT_MAX; |
| 2034 | float maxz = FLT_MIN; |
| 2035 | |
| 2036 | for(int i=0; i<ne; i++) { |
| 2037 | UINT32 v1 = ptrom[adr++]; |
| 2038 | UINT32 v2 = ptrom[adr++]; |
| 2039 | UINT32 v3 = ptrom[adr++]; |
| 2040 | |
| 2041 | render_apply_transform(u32_to_s24(v1), u32_to_s24(v2), u32_to_s24(v3), re, pv[i]); |
| 2042 | pv[i].p[1] = (((v1 >> 20) & 0xf00) | ((v2 >> 24 & 0xff))) + 0.5; |
| 2043 | pv[i].p[2] = (((v1 >> 16) & 0xf00) | ((v3 >> 24 & 0xff))) + 0.5 + tbase; |
| 2044 | |
| 2045 | if(pv[i].p[0] > maxz) |
| 2046 | maxz = pv[i].p[0]; |
| 2047 | if(pv[i].p[0] < minz) |
| 2048 | minz = pv[i].p[0]; |
| 2049 | |
| 2050 | switch(lmode) { |
| 2051 | case 0: case 1: |
| 2052 | pv[i].p[3] = ((light >> (8*(3-i))) & 0xff) / 64.0; |
| 2053 | break; |
| 2054 | case 2: |
| 2055 | pv[i].p[3] = 1.0; |
| 2056 | break; |
| 2057 | case 3: { |
| 2058 | UINT32 norm = ptrom[extptr++]; |
| 2059 | INT32 nx = u32_to_s10(norm >> 20); |
| 2060 | INT32 ny = u32_to_s10(norm >> 10); |
| 2061 | INT32 nz = u32_to_s10(norm); |
| 2062 | INT32 nrx, nry, nrz; |
| 2063 | render_apply_matrot(nx, ny, nz, re, nrx, nry, nrz); |
| 2064 | |
| 2065 | float lsi = float(nrx*light_vector[0] + nry*light_vector[1] + nrz*light_vector[2])/4194304.0; |
| 2066 | if(lsi < 0) |
| 2067 | lsi = 0; |
| 2068 | |
| 2069 | // Mapping taken out of a hat |
| 2070 | pv[i].p[3] = 0.5+lsi; |
| 2071 | break; |
| 2072 | } |
| 2073 | } |
| 2074 | } |
| 2075 | |
| 2076 | namcos23_poly_entry *p = render_polys + render_poly_count; |
| 2077 | |
| 2078 | p->vertex_count = poly_zclip_if_less(ne, pv, p->pv, 4, 0.001); |
| 2079 | |
| 2080 | if(p->vertex_count >= 3) { |
| 2081 | for(int i=0; i<p->vertex_count; i++) { |
| 2082 | render_project(p->pv[i]); |
| 2083 | float w = p->pv[i].p[0]; |
| 2084 | p->pv[i].p[1] *= w; |
| 2085 | p->pv[i].p[2] *= w; |
| 2086 | p->pv[i].p[3] *= w; |
| 2087 | } |
| 2088 | p->zkey = 0.5*(minz+maxz); |
| 2089 | p->front = !(h & 0x00000001); |
| 2090 | p->rd.texture_lookup = texture_lookup_nocache_point; |
| 2091 | p->rd.pens = machine->pens + (color << 8); |
| 2092 | render_poly_count++; |
| 2093 | } |
| 2094 | |
| 2095 | if(type & 0x000010000) |
| 2096 | break; |
| 2097 | } |
| 2098 | } |
| 2099 | |
| 2100 | static int render_poly_compare(const void *i1, const void *i2) |
| 2101 | { |
| 2102 | const namcos23_poly_entry *p1 = render_polys + *(const int *)i1; |
| 2103 | const namcos23_poly_entry *p2 = render_polys + *(const int *)i2; |
| 2104 | |
| 2105 | if(p1->front != p2->front) |
| 2106 | return p1->front ? 1 : -1; |
| 2107 | |
| 2108 | return p1->zkey < p2->zkey ? 1 : p1->zkey > p2->zkey ? -1 : 0; |
| 2109 | } |
| 2110 | |
| 2111 | static void render_flush(running_machine *machine, bitmap_t *bitmap) |
| 2112 | { |
| 2113 | if(!render_poly_count) |
| 2114 | return; |
| 2115 | |
| 2116 | for(int i=0; i<render_poly_count; i++) |
| 2117 | render_poly_order[i] = i; |
| 2118 | |
| 2119 | qsort(render_poly_order, render_poly_count, sizeof(int), render_poly_compare); |
| 2120 | |
| 2121 | const static rectangle scissor = { 0, 639, 0, 479 }; |
| 2122 | |
| 2123 | for(int i=0; i<render_poly_count; i++) { |
| 2124 | const namcos23_poly_entry *p = render_polys + render_poly_order[i]; |
| 2125 | namcos23_render_data *rd = (namcos23_render_data *)poly_get_extra_data(polymgr); |
| 2126 | *rd = p->rd; |
| 2127 | poly_render_triangle_fan(polymgr, bitmap, &scissor, render_scanline, 4, p->vertex_count, p->pv); |
| 2128 | } |
| 2129 | render_poly_count = 0; |
| 2130 | } |
| 2131 | |
| 2132 | static void render_run(running_machine *machine, bitmap_t *bitmap) |
| 2133 | { |
| 2134 | render_poly_count = 0; |
| 2135 | const namcos23_render_entry *re = render_entries[!render_cur]; |
| 2136 | for(int i=0; i<render_count[!render_cur]; i++) { |
| 2137 | switch(re->type) { |
| 2138 | case MODEL: |
| 2139 | render_one_model(machine, re); |
| 2140 | break; |
| 2141 | case FLUSH: |
| 2142 | render_flush(machine, bitmap); |
| 2143 | break; |
| 2144 | } |
| 2145 | re++; |
| 2146 | } |
| 2147 | render_flush(machine, bitmap); |
| 2148 | |
| 2149 | poly_wait(polymgr, "render_run"); |
| 2150 | } |
| 2151 | |
| 2152 | |
| 2153 | static VIDEO_START( ss23 ) |
| 2154 | { |
| 2155 | gfx_element_set_source(machine->gfx[0], (UINT8 *)namcos23_charram); |
| 2156 | bgtilemap = tilemap_create(machine, TextTilemapGetInfo, tilemap_scan_rows, 16, 16, 64, 64); |
| 2157 | tilemap_set_transparent_pen(bgtilemap, 0xf); |
| 2158 | |
| 2159 | // Gorgon's tilemap offset is 0, S23/SS23's is 860 |
| 2160 | if ((!strcmp(machine->gamedrv->name, "rapidrvr")) || |
| 2161 | (!strcmp(machine->gamedrv->name, "rapidrvr2")) || |
| 2162 | (!strcmp(machine->gamedrv->name, "finlflng"))) |
| 2163 | { |
| 2164 | tilemap_set_scrolldx(bgtilemap, 0, 0); |
| 2165 | } |
| 2166 | else |
| 2167 | { |
| 2168 | tilemap_set_scrolldx(bgtilemap, 860, 860); |
| 2169 | } |
| 2170 | polymgr = poly_alloc(machine, 10000, sizeof(namcos23_render_data), POLYFLAG_NO_WORK_QUEUE); |
| 2171 | } |
| 2172 | |
| 2173 | static VIDEO_UPDATE( ss23 ) |
| 2174 | { |
| 2175 | bitmap_fill(bitmap, cliprect, get_black_pen(screen->machine)); |
| 2176 | |
| 2177 | render_run( screen->machine, bitmap ); |
| 2178 | |
| 2179 | gfx_element *gfx = screen->machine->gfx[0]; |
| 2180 | memset(gfx->dirty, 1, gfx->total_elements); |
| 2181 | |
| 2182 | tilemap_draw( bitmap, cliprect, bgtilemap, 0/*flags*/, 0/*priority*/ ); /* opaque */ |
| 2183 | return 0; |
| 2184 | } |
| 2185 | |
| 2186 | static INTERRUPT_GEN(s23_interrupt) |
| 2187 | { |
| 2188 | if(!ctl_vbl_active) { |
| 2189 | ctl_vbl_active = true; |
| 2190 | cpu_set_input_line(device, MIPS3_IRQ0, ASSERT_LINE); |
| 2191 | } |
| 2192 | |
| 2193 | render_cur = !render_cur; |
| 2194 | render_count[render_cur] = 0; |
| 2195 | } |
| 2196 | |
| 2197 | static MACHINE_START( s23 ) |
| 2198 | { |
| 2199 | c361_timer = timer_alloc(machine, c361_timer_cb, 0); |
| 2200 | timer_adjust_oneshot(c361_timer, attotime_never, 0); |
| 2201 | } |
| 1646 | 2202 | static ADDRESS_MAP_START( gorgon_map, ADDRESS_SPACE_PROGRAM, 32 ) |
| 1647 | 2203 | AM_RANGE(0x00000000, 0x003fffff) AM_RAM |
| 1648 | 2204 | AM_RANGE(0x01000000, 0x010000ff) AM_READWRITE( p3d_r, p3d_w ) |
| r7772 | r7773 | |
| 2223 | 2779 | |
| 2224 | 2780 | static DRIVER_INIT(ss23) |
| 2225 | 2781 | { |
| 2782 | ptrom = (const UINT32 *)memory_region(machine, "pointrom"); |
| 2783 | tmlrom = (const UINT16 *)memory_region(machine, "textilemapl"); |
| 2784 | tmhrom = memory_region(machine, "textilemaph"); |
| 2785 | texrom = memory_region(machine, "textile"); |
| 2786 | |
| 2787 | tileid_mask = (memory_region_length(machine, "textilemapl")/2 - 1) & ~0xff; // Used for y masking |
| 2788 | tile_mask = memory_region_length(machine, "textile")/256 - 1; |
| 2789 | ptrom_limit = memory_region_length(machine, "pointrom")/4; |
| 2790 | |
| 2226 | 2791 | mi_rd = mi_wr = im_rd = im_wr = 0; |
| 2227 | 2792 | namcos23_jvssense = 1; |
| 2228 | 2793 | ctl_vbl_active = false; |
| r7772 | r7773 | |
| 2233 | 2798 | s23_tssio_port_4 = 0; |
| 2234 | 2799 | s23_porta = 0, s23_rtcstate = 0; |
| 2235 | 2800 | s23_subcpu_running = 1; |
| 2801 | render_count[0] = render_count[1] = 0; |
| 2802 | render_cur = 0; |
| 2236 | 2803 | |
| 2237 | 2804 | if ((!strcmp(machine->gamedrv->name, "motoxgo")) || |
| 2238 | 2805 | (!strcmp(machine->gamedrv->name, "panicprk")) || |
| r7772 | r7773 | |
| 2301 | 2868 | MDRV_SCREEN_ADD("screen", RASTER) |
| 2302 | 2869 | MDRV_SCREEN_REFRESH_RATE(S23_VSYNC1) |
| 2303 | 2870 | MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate |
| 2304 | | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) |
| 2871 | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) |
| 2305 | 2872 | MDRV_SCREEN_SIZE(640, 480) |
| 2306 | 2873 | MDRV_SCREEN_VISIBLE_AREA(0, 639, 0, 479) |
| 2307 | 2874 | |
| r7772 | r7773 | |
| 2314 | 2881 | MDRV_VIDEO_START(ss23) |
| 2315 | 2882 | MDRV_VIDEO_UPDATE(ss23) |
| 2316 | 2883 | |
| 2884 | MDRV_MACHINE_START(s23) |
| 2885 | |
| 2317 | 2886 | /* sound hardware */ |
| 2318 | 2887 | MDRV_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 2319 | 2888 | |
| r7772 | r7773 | |
| 2345 | 2914 | MDRV_SCREEN_ADD("screen", RASTER) |
| 2346 | 2915 | MDRV_SCREEN_REFRESH_RATE(S23_VSYNC1) |
| 2347 | 2916 | MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate |
| 2348 | | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) |
| 2917 | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) |
| 2349 | 2918 | MDRV_SCREEN_SIZE(640, 480) |
| 2350 | 2919 | MDRV_SCREEN_VISIBLE_AREA(0, 639, 0, 479) |
| 2351 | 2920 | |
| r7772 | r7773 | |
| 2358 | 2927 | MDRV_VIDEO_START(ss23) |
| 2359 | 2928 | MDRV_VIDEO_UPDATE(ss23) |
| 2360 | 2929 | |
| 2930 | MDRV_MACHINE_START(s23) |
| 2931 | |
| 2361 | 2932 | /* sound hardware */ |
| 2362 | 2933 | MDRV_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 2363 | 2934 | |
| r7772 | r7773 | |
| 2385 | 2956 | MDRV_SCREEN_ADD("screen", RASTER) |
| 2386 | 2957 | MDRV_SCREEN_REFRESH_RATE(S23_VSYNC1) |
| 2387 | 2958 | MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate |
| 2388 | | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) |
| 2959 | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) |
| 2389 | 2960 | MDRV_SCREEN_SIZE(640, 480) |
| 2390 | 2961 | MDRV_SCREEN_VISIBLE_AREA(0, 639, 0, 479) |
| 2391 | 2962 | |
| r7772 | r7773 | |
| 2398 | 2969 | MDRV_VIDEO_START(ss23) |
| 2399 | 2970 | MDRV_VIDEO_UPDATE(ss23) |
| 2400 | 2971 | |
| 2972 | MDRV_MACHINE_START(s23) |
| 2973 | |
| 2401 | 2974 | /* sound hardware */ |
| 2402 | 2975 | MDRV_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 2403 | 2976 | |
src/mame/drivers/galdrvr.c
| r7772 | r7773 | |
| 1159 | 1159 | INPUT_PORTS_END |
| 1160 | 1160 | |
| 1161 | 1161 | |
| 1162 | static INPUT_PORTS_START( tdpgal ) |
| 1163 | PORT_START("IN0") |
| 1164 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) |
| 1165 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) |
| 1166 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) |
| 1167 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) |
| 1168 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) |
| 1169 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) |
| 1170 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) |
| 1171 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 1172 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1173 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) |
| 1174 | |
| 1175 | PORT_START("IN1") |
| 1176 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) |
| 1177 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) |
| 1178 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) |
| 1179 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 1180 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1181 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) |
| 1182 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 1183 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1184 | PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) |
| 1185 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 1186 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1187 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 1188 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 1189 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1190 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) |
| 1191 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 1192 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1193 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 1194 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 1195 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1196 | |
| 1197 | PORT_START("IN2") |
| 1198 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) |
| 1199 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 1200 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1201 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) |
| 1202 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 1203 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1204 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) |
| 1205 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 1206 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1207 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) |
| 1208 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 1209 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1210 | PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) |
| 1211 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 1212 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1213 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 1214 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 1215 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1216 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) |
| 1217 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 1218 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1219 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 1220 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 1221 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1222 | INPUT_PORTS_END |
| 1223 | |
| 1224 | |
| 1162 | 1225 | static INPUT_PORTS_START( skybase ) |
| 1163 | 1226 | PORT_INCLUDE(mooncrst) |
| 1164 | 1227 | |
| r7772 | r7773 | |
| 2230 | 2293 | INPUT_PORTS_END |
| 2231 | 2294 | |
| 2232 | 2295 | |
| 2296 | /* verified from Z80 code */ |
| 2233 | 2297 | static INPUT_PORTS_START( scobra ) |
| 2234 | 2298 | PORT_START("IN0") |
| 2235 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL |
| 2299 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL |
| 2236 | 2300 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) |
| 2237 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) |
| 2301 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* see notes */ |
| 2238 | 2302 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) |
| 2239 | 2303 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY |
| 2240 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY |
| 2304 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY |
| 2241 | 2305 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 2242 | 2306 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2243 | 2307 | |
| 2244 | 2308 | PORT_START("IN1") |
| 2245 | | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Allow_Continue ) ) |
| 2309 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Allow_Continue ) ) |
| 2246 | 2310 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 2247 | | PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) |
| 2311 | PORT_DIPSETTING( 0x01, "4 Times" ) |
| 2248 | 2312 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Lives ) ) |
| 2249 | 2313 | PORT_DIPSETTING( 0x00, "3" ) |
| 2250 | 2314 | PORT_DIPSETTING( 0x02, "4" ) |
| 2251 | 2315 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL |
| 2252 | 2316 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL |
| 2253 | 2317 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL |
| 2254 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL |
| 2318 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL |
| 2255 | 2319 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) |
| 2256 | 2320 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) |
| 2257 | 2321 | |
| 2258 | 2322 | PORT_START("IN2") |
| 2259 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL |
| 2260 | | PORT_DIPNAME( 0x06, 0x02, DEF_STR( Coinage ) ) |
| 2323 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL |
| 2324 | PORT_DIPNAME( 0x06, 0x02, DEF_STR( Coinage ) ) /* see notes */ |
| 2261 | 2325 | PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) |
| 2262 | 2326 | PORT_DIPSETTING( 0x06, DEF_STR( 4C_3C ) ) |
| 2263 | 2327 | PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) |
| 2264 | | PORT_DIPSETTING( 0x00, "1 Coin/99 Credits" ) |
| 2328 | PORT_DIPSETTING( 0x00, "99 Credits" ) |
| 2265 | 2329 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) |
| 2266 | 2330 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 2267 | 2331 | PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) |
| 2268 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY |
| 2269 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2270 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 2271 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2332 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY |
| 2333 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2334 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 2335 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2272 | 2336 | |
| 2273 | 2337 | PORT_START("IN3") /* need for some PPI accesses */ |
| 2274 | 2338 | PORT_BIT( 0xff, 0x00, IPT_UNUSED ) |
| 2275 | 2339 | INPUT_PORTS_END |
| 2276 | 2340 | |
| 2277 | | |
| 2341 | /* verified from Z80 code */ |
| 2278 | 2342 | static INPUT_PORTS_START( scobras ) |
| 2279 | 2343 | PORT_INCLUDE(scobra) |
| 2280 | 2344 | |
| 2281 | 2345 | PORT_MODIFY("IN1") |
| 2346 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Allow_Continue ) ) |
| 2347 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 2348 | PORT_DIPSETTING( 0x01, "255 Times" ) |
| 2282 | 2349 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Lives ) ) |
| 2283 | 2350 | PORT_DIPSETTING( 0x00, "3" ) |
| 2284 | 2351 | PORT_DIPSETTING( 0x02, "5" ) |
| 2285 | 2352 | INPUT_PORTS_END |
| 2286 | 2353 | |
| 2287 | 2354 | |
| 2288 | | static INPUT_PORTS_START( spdcoin ) |
| 2289 | | PORT_START("IN0") |
| 2290 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2291 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) |
| 2292 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2293 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) |
| 2294 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) |
| 2295 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) |
| 2296 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 2297 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2355 | static CUSTOM_INPUT( moonwar_dial_r ) |
| 2356 | { |
| 2357 | static const char *const dialname[2] = { "P1_DIAL", "P2_DIAL" }; |
| 2358 | int p = (~moonwar_port_select >> 4) & 1; |
| 2298 | 2359 | |
| 2299 | | PORT_START("IN1") |
| 2300 | | PORT_DIPNAME( 0x01, 0x00, "Freeze" ) /* Dip Sw #2 */ |
| 2301 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2302 | | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 2303 | | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Free_Play ) ) /* Dip Sw #1 */ |
| 2304 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2305 | | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| 2306 | | PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2360 | // see http://www.cityofberwyn.com/schematics/stern/MoonWar_opto.tiff for schematic |
| 2361 | // I.e. a 74ls161 counts from 0 to 15 which is the absolute number of bars passed on the quadrature |
| 2307 | 2362 | |
| 2308 | | PORT_START("IN2") |
| 2309 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2310 | | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) /* Dip Sw #5 - Check code at 0x0569 */ |
| 2311 | | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 2312 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2313 | | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Difficulty ) ) /* Dip Sw #4 */ |
| 2314 | | PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) |
| 2315 | | PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) |
| 2316 | | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) /* Dip Sw #3 */ |
| 2317 | | PORT_DIPSETTING( 0x08, "3" ) |
| 2318 | | PORT_DIPSETTING( 0x00, "5" ) |
| 2319 | | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2363 | static int counter_74ls161[2] = {0, 0}; |
| 2364 | static int direction[2] = {0, 0}; |
| 2365 | signed char dialread = input_port_read(field->port->machine, dialname[p]); |
| 2320 | 2366 | |
| 2321 | | PORT_START("IN3") /* need for some PPI accesses */ |
| 2322 | | PORT_BIT( 0xff, 0x00, IPT_UNUSED ) |
| 2323 | | INPUT_PORTS_END |
| 2367 | UINT8 ret; |
| 2324 | 2368 | |
| 2325 | | /* cocktail mode is N/A */ |
| 2326 | | static INPUT_PORTS_START( superbon ) |
| 2369 | if (dialread < 0) direction[p] = 0x00; |
| 2370 | else if (dialread > 0) direction[p] = 0x10; |
| 2371 | |
| 2372 | counter_74ls161[p] += abs(dialread); |
| 2373 | counter_74ls161[p] &= 0xf; |
| 2374 | |
| 2375 | ret = counter_74ls161[p] | direction[p]; |
| 2376 | //fprintf(stderr, "dialread1: %02x, counter_74ls161: %02x, spinner ret is %02x\n", dialread, counter_74ls161[p], ret); |
| 2377 | |
| 2378 | return ret; |
| 2379 | } |
| 2380 | |
| 2381 | /* verified from Z80 code */ |
| 2382 | static INPUT_PORTS_START( moonwar ) |
| 2327 | 2383 | PORT_START("IN0") |
| 2328 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) |
| 2329 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) |
| 2330 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY |
| 2331 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 2332 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_8WAY |
| 2333 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY |
| 2384 | PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(moonwar_dial_r, (void *)0) |
| 2385 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL // cocktail: p2 shield |
| 2334 | 2386 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 2335 | 2387 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2336 | 2388 | |
| 2337 | 2389 | PORT_START("IN1") |
| 2338 | | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) |
| 2339 | | PORT_DIPSETTING( 0x01, "3" ) |
| 2390 | PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) |
| 2391 | PORT_DIPSETTING( 0x00, "3" ) |
| 2392 | PORT_DIPSETTING( 0x01, "4" ) |
| 2340 | 2393 | PORT_DIPSETTING( 0x02, "5" ) |
| 2341 | | PORT_DIPSETTING( 0x03, DEF_STR( Free_Play ) ) |
| 2342 | | PORT_DIPSETTING( 0x00, "Invulnerability (Cheat)") |
| 2343 | | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) |
| 2344 | | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 2345 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2346 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) |
| 2347 | | PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) |
| 2348 | | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 2349 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2350 | | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 2351 | | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 2352 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2353 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) |
| 2354 | | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 2355 | | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 2356 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2394 | PORT_DIPSETTING( 0x03, DEF_STR( Free_Play ) ) /* see notes */ |
| 2395 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) |
| 2396 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) |
| 2397 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_CONDITION("IN2", 0x08, PORTCOND_EQUALS, 0x08) // cocktail: p2 thrust |
| 2398 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_CONDITION("IN2", 0x08, PORTCOND_EQUALS, 0x00) // upright: p1&p2 hyperflip |
| 2399 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) // both: p1(upright: &p2) shield |
| 2400 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) // both: p1(upright: &p2) thrust |
| 2401 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) // both: p1(upright: &p2) fire |
| 2357 | 2402 | |
| 2358 | 2403 | PORT_START("IN2") |
| 2359 | | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) |
| 2360 | | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 2361 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2404 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL // cocktail: p2 fire |
| 2362 | 2405 | PORT_DIPNAME( 0x06, 0x02, DEF_STR( Coinage ) ) |
| 2363 | | PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) |
| 2364 | | PORT_DIPSETTING( 0x00, "A 1/2 B 2/1" ) |
| 2365 | | PORT_DIPSETTING( 0x04, "A 1/3 B 3/1" ) |
| 2366 | | PORT_DIPSETTING( 0x06, "A 1/4 B 4/1" ) |
| 2367 | | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) |
| 2368 | | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 2369 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2370 | | PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) |
| 2371 | | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 2372 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2373 | | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 2374 | | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 2375 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2376 | | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) |
| 2377 | | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 2378 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2379 | | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 2380 | | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 2381 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2406 | PORT_DIPSETTING( 0x02, "A 1/1 B 1/1" ) |
| 2407 | PORT_DIPSETTING( 0x00, "A 1/2 B 2/1" ) |
| 2408 | PORT_DIPSETTING( 0x04, "A 1/3 B 3/1" ) |
| 2409 | PORT_DIPSETTING( 0x06, "A 1/4 B 4/1" ) |
| 2410 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) |
| 2411 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 2412 | PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) |
| 2413 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) /* output bits */ |
| 2382 | 2414 | |
| 2383 | 2415 | PORT_START("IN3") /* need for some PPI accesses */ |
| 2384 | | PORT_BIT( 0xff, 0x00, IPT_UNUSED ) |
| 2416 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2417 | |
| 2418 | PORT_START("P1_DIAL") |
| 2419 | PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(4) PORT_REVERSE PORT_RESET PORT_CONDITION("IN2", 0x08, PORTCOND_EQUALS, 0x08) // cocktail: dial is reversed |
| 2420 | PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(4) PORT_RESET PORT_CONDITION("IN2", 0x08, PORTCOND_EQUALS, 0x00) // upright: dial works normally |
| 2421 | |
| 2422 | PORT_START("P2_DIAL") |
| 2423 | PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(4) PORT_RESET PORT_COCKTAIL PORT_REVERSE // cocktail: dial is reversed |
| 2385 | 2424 | INPUT_PORTS_END |
| 2386 | 2425 | |
| 2426 | /* verified from Z80 code */ |
| 2427 | static INPUT_PORTS_START( moonwara ) |
| 2428 | PORT_INCLUDE(moonwar) |
| 2387 | 2429 | |
| 2388 | | /* cocktail mode is N/A */ |
| 2389 | | static INPUT_PORTS_START( losttomb ) |
| 2390 | | PORT_START("IN0") |
| 2391 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) |
| 2392 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) |
| 2393 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_8WAY |
| 2394 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_8WAY |
| 2395 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT) PORT_8WAY |
| 2396 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_8WAY |
| 2397 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 2398 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2430 | PORT_MODIFY("IN2") |
| 2431 | PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) ) |
| 2432 | PORT_DIPSETTING( 0x00, "A 1/1 B 4/1" ) |
| 2433 | PORT_DIPSETTING( 0x02, "A 1/2 B 3/1" ) |
| 2434 | PORT_DIPSETTING( 0x04, "A 1/3 B 1/1" ) |
| 2435 | PORT_DIPSETTING( 0x06, "A 1/4 B 2/1" ) |
| 2399 | 2436 | |
| 2400 | | PORT_START("IN1") |
| 2401 | | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) |
| 2402 | | PORT_DIPSETTING( 0x01, "3" ) |
| 2403 | | PORT_DIPSETTING( 0x02, "5" ) |
| 2404 | | PORT_DIPSETTING( 0x03, DEF_STR( Free_Play ) ) |
| 2405 | | PORT_DIPSETTING( 0x00, "Invulnerability (Cheat)") |
| 2406 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_8WAY |
| 2407 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_8WAY |
| 2408 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT) PORT_8WAY |
| 2409 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_8WAY |
| 2410 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) |
| 2411 | | PORT_DIPUNKNOWN( 0x80, 0x00 ) |
| 2437 | PORT_MODIFY("P1_DIAL") |
| 2438 | PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(4) PORT_RESET // both: p1 dial works normally, p2 dial is reversed, both share same port |
| 2412 | 2439 | |
| 2413 | | PORT_START("IN2") |
| 2414 | | PORT_DIPUNKNOWN( 0x01, 0x00 ) |
| 2415 | | PORT_DIPNAME( 0x06, 0x02, DEF_STR( Coinage ) ) |
| 2416 | | PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) |
| 2417 | | PORT_DIPSETTING( 0x00, "A 1/2 B 2/1" ) |
| 2418 | | PORT_DIPSETTING( 0x04, "A 1/3 B 3/1" ) |
| 2419 | | PORT_DIPSETTING( 0x06, "A 1/4 B 4/1" ) |
| 2420 | | PORT_DIPUNKNOWN( 0x08, 0x00 ) |
| 2421 | | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2422 | | |
| 2423 | | PORT_START("IN3") /* need for some PPI accesses */ |
| 2424 | | PORT_BIT( 0xff, 0x00, IPT_UNUSED ) |
| 2440 | PORT_MODIFY("P2_DIAL") /* doesn't actually work due to bug in game code */ |
| 2441 | PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(4) PORT_RESET PORT_COCKTAIL |
| 2425 | 2442 | INPUT_PORTS_END |
| 2426 | 2443 | |
| 2427 | 2444 | |
| 2445 | /* verified from Z80 code */ |
| 2428 | 2446 | static INPUT_PORTS_START( armorcar ) |
| 2429 | 2447 | PORT_START("IN0") |
| 2430 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL |
| 2448 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL |
| 2431 | 2449 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) |
| 2432 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2450 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2433 | 2451 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) |
| 2434 | 2452 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY |
| 2435 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY |
| 2453 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY |
| 2436 | 2454 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 2437 | 2455 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2438 | 2456 | |
| r7772 | r7773 | |
| 2446 | 2464 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL |
| 2447 | 2465 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL |
| 2448 | 2466 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL |
| 2449 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL |
| 2467 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL |
| 2450 | 2468 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) |
| 2451 | 2469 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) |
| 2452 | 2470 | |
| 2453 | 2471 | PORT_START("IN2") |
| 2454 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL |
| 2472 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL |
| 2455 | 2473 | PORT_DIPNAME( 0x06, 0x02, DEF_STR( Coinage ) ) |
| 2456 | | PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) |
| 2457 | | PORT_DIPSETTING( 0x00, "Coin A 1/2 Coin B 2/1" ) |
| 2458 | | PORT_DIPSETTING( 0x04, "Coin A 1/3 Coin B 3/1" ) |
| 2459 | | PORT_DIPSETTING( 0x06, "Coin A 1/4 Coin B 4/1" ) |
| 2474 | PORT_DIPSETTING( 0x02, "A 1/1 B 1/1" ) |
| 2475 | PORT_DIPSETTING( 0x00, "A 1/2 B 2/1" ) |
| 2476 | PORT_DIPSETTING( 0x04, "A 1/3 B 3/1" ) |
| 2477 | PORT_DIPSETTING( 0x06, "A 1/4 B 4/1" ) |
| 2460 | 2478 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) |
| 2461 | 2479 | PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) |
| 2462 | 2480 | PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) |
| 2463 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY |
| 2464 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2465 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY |
| 2466 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2481 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY |
| 2482 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2483 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY |
| 2484 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2467 | 2485 | |
| 2468 | 2486 | PORT_START("IN3") /* need for some PPI accesses */ |
| 2469 | | PORT_BIT( 0xff, 0x00, IPT_UNUSED ) |
| 2487 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2470 | 2488 | INPUT_PORTS_END |
| 2471 | 2489 | |
| 2490 | /* verified from Z80 code */ |
| 2491 | static INPUT_PORTS_START( armorcar2 ) |
| 2492 | PORT_INCLUDE(armorcar) |
| 2472 | 2493 | |
| 2494 | PORT_MODIFY("IN0") |
| 2495 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) /* see notes */ |
| 2496 | |
| 2497 | PORT_MODIFY("IN1") |
| 2498 | PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED ) /* see notes */ |
| 2499 | |
| 2500 | PORT_MODIFY("IN2") |
| 2501 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) /* see notes */ |
| 2502 | PORT_DIPUNUSED( 0x08, IP_ACTIVE_LOW ) /* see notes */ |
| 2503 | INPUT_PORTS_END |
| 2504 | |
| 2505 | |
| 2506 | /* verified from Z80 code */ |
| 2473 | 2507 | static INPUT_PORTS_START( tazmania ) |
| 2474 | 2508 | PORT_START("IN0") |
| 2475 | 2509 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) |
| 2476 | 2510 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) |
| 2477 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY |
| 2478 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 2511 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY |
| 2512 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 2479 | 2513 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY |
| 2480 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY |
| 2514 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY |
| 2481 | 2515 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 2482 | 2516 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2483 | 2517 | |
| r7772 | r7773 | |
| 2488 | 2522 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) |
| 2489 | 2523 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 2490 | 2524 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2491 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL |
| 2492 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL |
| 2525 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL |
| 2526 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL |
| 2493 | 2527 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL |
| 2494 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL |
| 2528 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL |
| 2495 | 2529 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL |
| 2496 | 2530 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL |
| 2497 | 2531 | |
| 2498 | 2532 | PORT_START("IN2") |
| 2499 | 2533 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) |
| 2500 | 2534 | PORT_DIPNAME( 0x06, 0x02, DEF_STR( Coinage ) ) |
| 2501 | | PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) |
| 2502 | | PORT_DIPSETTING( 0x00, "Coin A 1/2 Coin B 2/1" ) |
| 2503 | | PORT_DIPSETTING( 0x04, "Coin A 1/3 Coin B 3/1" ) |
| 2504 | | PORT_DIPSETTING( 0x06, "Coin A 1/4 Coin B 4/1" ) |
| 2535 | PORT_DIPSETTING( 0x02, "A 1/1 B 1/1" ) |
| 2536 | PORT_DIPSETTING( 0x00, "A 1/2 B 2/1" ) |
| 2537 | PORT_DIPSETTING( 0x04, "A 1/3 B 3/1" ) |
| 2538 | PORT_DIPSETTING( 0x06, "A 1/4 B 4/1" ) |
| 2505 | 2539 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) |
| 2506 | 2540 | PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) |
| 2507 | 2541 | PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) |
| r7772 | r7773 | |
| 2511 | 2545 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2512 | 2546 | |
| 2513 | 2547 | PORT_START("IN3") /* need for some PPI accesses */ |
| 2514 | | PORT_BIT( 0xff, 0x00, IPT_UNUSED ) |
| 2548 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2515 | 2549 | INPUT_PORTS_END |
| 2516 | 2550 | |
| 2517 | 2551 | |
| 2518 | | /* cocktail mode not working due to bug in game code */ |
| 2552 | /* verified from Z80 code */ |
| 2519 | 2553 | static INPUT_PORTS_START( anteater ) |
| 2520 | 2554 | PORT_START("IN0") |
| 2521 | 2555 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) |
| 2522 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2523 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY |
| 2524 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY |
| 2556 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2557 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY |
| 2558 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY |
| 2525 | 2559 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY |
| 2526 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY |
| 2560 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY |
| 2527 | 2561 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 2528 | 2562 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2529 | 2563 | |
| r7772 | r7773 | |
| 2534 | 2568 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) |
| 2535 | 2569 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 2536 | 2570 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2537 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL |
| 2538 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL |
| 2539 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL |
| 2540 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL |
| 2541 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL |
| 2542 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2571 | // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL |
| 2572 | // PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL |
| 2573 | // PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL |
| 2574 | // PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL |
| 2575 | // PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL |
| 2576 | PORT_BIT( 0x7c, IP_ACTIVE_LOW, IPT_UNUSED ) /* see notes */ |
| 2577 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2543 | 2578 | |
| 2544 | 2579 | PORT_START("IN2") |
| 2545 | 2580 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) |
| 2546 | 2581 | PORT_DIPNAME( 0x06, 0x02, DEF_STR( Coinage ) ) |
| 2547 | | PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) |
| 2548 | | PORT_DIPSETTING( 0x00, "Coin A 1/2 Coin B 2/1" ) |
| 2549 | | PORT_DIPSETTING( 0x04, "Coin A 1/3 Coin B 3/1" ) |
| 2550 | | PORT_DIPSETTING( 0x06, "Coin A 1/4 Coin B 4/1" ) |
| 2551 | | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) |
| 2552 | | PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) |
| 2553 | | PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) |
| 2554 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2555 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2582 | PORT_DIPSETTING( 0x02, "A 1/1 B 1/1" ) |
| 2583 | PORT_DIPSETTING( 0x00, "A 1/2 B 2/1" ) |
| 2584 | PORT_DIPSETTING( 0x04, "A 1/3 B 3/1" ) |
| 2585 | PORT_DIPSETTING( 0x06, "A 1/4 B 4/1" ) |
| 2586 | // PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) |
| 2587 | // PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) |
| 2588 | // PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) |
| 2589 | PORT_DIPUNUSED( 0x08, IP_ACTIVE_LOW ) /* see notes */ |
| 2556 | 2590 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) |
| 2557 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2591 | PORT_BIT( 0xb0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2558 | 2592 | |
| 2559 | 2593 | PORT_START("IN3") /* need for some PPI accesses */ |
| 2560 | | PORT_BIT( 0xff, 0x00, IPT_UNUSED ) |
| 2594 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2561 | 2595 | INPUT_PORTS_END |
| 2562 | 2596 | |
| 2563 | 2597 | |
| 2564 | | /* cocktail mode is N/A */ |
| 2598 | /* verified from Z80 code */ |
| 2565 | 2599 | static INPUT_PORTS_START( calipso ) |
| 2566 | 2600 | PORT_START("IN0") |
| 2567 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) |
| 2568 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2569 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY |
| 2570 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 2571 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY |
| 2572 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY |
| 2601 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* also START2 - see notes */ |
| 2602 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2603 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) |
| 2604 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) |
| 2605 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) |
| 2606 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) |
| 2573 | 2607 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 2574 | 2608 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2575 | 2609 | |
| r7772 | r7773 | |
| 2580 | 2614 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) |
| 2581 | 2615 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 2582 | 2616 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2583 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) |
| 2584 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) |
| 2617 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) |
| 2618 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) |
| 2585 | 2619 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) |
| 2586 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) |
| 2587 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2588 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2620 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) |
| 2621 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2622 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2589 | 2623 | |
| 2590 | 2624 | PORT_START("IN2") |
| 2591 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) |
| 2625 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* also START1 - see notes */ |
| 2592 | 2626 | PORT_DIPNAME( 0x06, 0x02, DEF_STR( Coinage ) ) |
| 2593 | | PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) |
| 2594 | | PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) |
| 2595 | | PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) |
| 2596 | | PORT_DIPSETTING( 0x06, DEF_STR( 1C_4C ) ) |
| 2597 | | PORT_DIPNAME( 0x08, 0x08, "Cabinet (Not Supported)" ) |
| 2598 | | PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) |
| 2599 | | PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) |
| 2600 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2601 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2602 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2603 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2627 | PORT_DIPSETTING( 0x02, "A 1/1 B 1/1" ) |
| 2628 | PORT_DIPSETTING( 0x00, "A 1/2 B 2/1" ) |
| 2629 | PORT_DIPSETTING( 0x04, "A 1/3 B 3/1" ) |
| 2630 | PORT_DIPSETTING( 0x06, "A 1/4 B 4/1" ) |
| 2631 | // PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) |
| 2632 | // PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) |
| 2633 | // PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) |
| 2634 | PORT_DIPUNUSED( 0x08, IP_ACTIVE_LOW ) /* see notes */ |
| 2635 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2604 | 2636 | |
| 2605 | 2637 | PORT_START("IN3") /* need for some PPI accesses */ |
| 2606 | | PORT_BIT( 0xff, 0x00, IPT_UNUSED ) |
| 2638 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2607 | 2639 | INPUT_PORTS_END |
| 2608 | 2640 | |
| 2609 | | // Note that in moon war, when in cocktail mode, NEITHER player seems to have a hyperflip button? Can someone check the code to see if this is true? |
| 2610 | | static INPUT_PORTS_START( moonwar_common ) |
| 2641 | |
| 2642 | /* verified from Z80 code */ |
| 2643 | static INPUT_PORTS_START( losttomb ) |
| 2611 | 2644 | PORT_START("IN0") |
| 2612 | | PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_SPECIAL ) /* the spinner */ |
| 2613 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL // cocktail: p2 shield |
| 2645 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) |
| 2646 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) |
| 2647 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_8WAY |
| 2648 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_8WAY |
| 2649 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_8WAY |
| 2650 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_8WAY |
| 2614 | 2651 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 2615 | 2652 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2616 | 2653 | |
| 2617 | 2654 | PORT_START("IN1") |
| 2618 | | PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) |
| 2619 | | PORT_DIPSETTING( 0x00, "3" ) |
| 2620 | | PORT_DIPSETTING( 0x01, "4" ) |
| 2655 | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) |
| 2656 | PORT_DIPSETTING( 0x01, "3" ) |
| 2621 | 2657 | PORT_DIPSETTING( 0x02, "5" ) |
| 2622 | | PORT_DIPSETTING( 0x03, DEF_STR( Free_Play ) ) |
| 2623 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) |
| 2624 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) |
| 2625 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_CONDITION("IN2", 0x08, PORTCOND_EQUALS, 0x08) // cocktail: p2 thrust |
| 2626 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_CONDITION("IN2", 0x08, PORTCOND_EQUALS, 0x00) // upright: p1&p2 hyperflip |
| 2627 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) // both: p1(upright: &p2) shield |
| 2628 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) // both: p1(upright: &p2) thrust |
| 2629 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) // both: p1(upright: &p2) fire |
| 2630 | | INPUT_PORTS_END |
| 2658 | PORT_DIPSETTING( 0x03, DEF_STR( Free_Play ) ) /* see notes */ |
| 2659 | PORT_DIPSETTING( 0x00, "Invulnerability (Cheat)") |
| 2660 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_8WAY |
| 2661 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_8WAY |
| 2662 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_8WAY |
| 2663 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_8WAY |
| 2664 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* "WHIP" */ |
| 2665 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2631 | 2666 | |
| 2632 | | |
| 2633 | | static INPUT_PORTS_START( moonwar ) |
| 2634 | | PORT_INCLUDE( moonwar_common ) |
| 2635 | | |
| 2636 | 2667 | PORT_START("IN2") |
| 2637 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL // cocktail: p2 fire |
| 2668 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2638 | 2669 | PORT_DIPNAME( 0x06, 0x02, DEF_STR( Coinage ) ) |
| 2639 | | PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) |
| 2640 | | PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) |
| 2641 | | PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) |
| 2642 | | PORT_DIPSETTING( 0x06, DEF_STR( 1C_4C ) ) |
| 2643 | | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) |
| 2644 | | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 2645 | | PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) |
| 2646 | | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) /* output bits */ |
| 2670 | PORT_DIPSETTING( 0x02, "A 1/1 B 1/1" ) |
| 2671 | PORT_DIPSETTING( 0x00, "A 1/2 B 2/1" ) |
| 2672 | PORT_DIPSETTING( 0x04, "A 1/3 B 3/1" ) |
| 2673 | PORT_DIPSETTING( 0x06, "A 1/4 B 4/1" ) |
| 2674 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) /* see notes */ |
| 2675 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 2676 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2677 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2647 | 2678 | |
| 2648 | | PORT_START("IN3") /* IN3/4 - dummy ports for the dial */ |
| 2649 | | |
| 2650 | | PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(4) PORT_REVERSE PORT_RESET PORT_CONDITION("IN2", 0x08, PORTCOND_EQUALS, 0x08) // cocktail: dial is reversed |
| 2651 | | PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(4) PORT_RESET PORT_CONDITION("IN2", 0x08, PORTCOND_EQUALS, 0x00) // upright: dial works normally |
| 2652 | | |
| 2653 | | PORT_START("IN4") |
| 2654 | | PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(4) PORT_RESET PORT_COCKTAIL PORT_REVERSE // cocktail: dial is reversed |
| 2679 | PORT_START("IN3") /* need for some PPI accesses */ |
| 2680 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2655 | 2681 | INPUT_PORTS_END |
| 2656 | 2682 | |
| 2657 | | /* same as above, but coinage is different */ |
| 2658 | | static INPUT_PORTS_START( moonwara ) |
| 2659 | | PORT_INCLUDE( moonwar_common ) |
| 2660 | 2683 | |
| 2661 | | PORT_START("IN2") |
| 2662 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL // cocktail: p2 fire |
| 2663 | | PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) ) |
| 2664 | | PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) |
| 2665 | | PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) |
| 2666 | | PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) |
| 2667 | | PORT_DIPSETTING( 0x06, DEF_STR( 1C_4C ) ) |
| 2668 | | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) |
| 2669 | | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 2670 | | PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) |
| 2671 | | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) /* output bits */ |
| 2672 | | |
| 2673 | | PORT_START("IN3") /* IN3/4 - dummy ports for the dial */ |
| 2674 | | PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(4) PORT_RESET // both: p1 dial works normally, p2 dial is reversed, both share same port |
| 2675 | | |
| 2676 | | PORT_START("IN4") /* doesn't actually work due to bug in game code */ |
| 2677 | | PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(4) PORT_RESET PORT_COCKTAIL |
| 2678 | | INPUT_PORTS_END |
| 2679 | | |
| 2680 | | static INPUT_PORTS_START( tdpgal ) |
| 2684 | /* verified from Z80 code - IN2 bit 1 still needs to be understood */ |
| 2685 | static INPUT_PORTS_START( spdcoin ) |
| 2681 | 2686 | PORT_START("IN0") |
| 2682 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) |
| 2683 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) |
| 2684 | | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) |
| 2685 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) |
| 2686 | | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) |
| 2687 | | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) |
| 2688 | | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) |
| 2689 | | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 2690 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2691 | | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) |
| 2687 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2688 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) |
| 2689 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2690 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) |
| 2691 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) |
| 2692 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) |
| 2693 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 2694 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2692 | 2695 | |
| 2693 | 2696 | PORT_START("IN1") |
| 2694 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) |
| 2695 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) |
| 2696 | | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) |
| 2697 | | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 2698 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2699 | | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) |
| 2700 | | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 2701 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2702 | | PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) |
| 2703 | | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 2704 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2705 | | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 2706 | | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 2707 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2708 | | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) |
| 2709 | | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 2710 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2711 | | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 2712 | | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 2713 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2697 | PORT_DIPNAME( 0x01, 0x00, "Freeze" ) /* Dip Sw #2 */ |
| 2698 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2699 | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 2700 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Free_Play ) ) /* Dip Sw #1 */ |
| 2701 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2702 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| 2703 | PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2714 | 2704 | |
| 2715 | 2705 | PORT_START("IN2") |
| 2716 | | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) |
| 2717 | | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 2718 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2719 | | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) |
| 2706 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2707 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) /* Dip Sw #5 - Check code at 0x0569 */ |
| 2720 | 2708 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 2721 | 2709 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2722 | | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) |
| 2723 | | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 2724 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2725 | | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) |
| 2726 | | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 2727 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2728 | | PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) |
| 2729 | | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 2730 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2731 | | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 2732 | | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 2733 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2734 | | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) |
| 2735 | | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 2736 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2737 | | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 2738 | | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 2739 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2710 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Difficulty ) ) /* Dip Sw #4 */ |
| 2711 | PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) |
| 2712 | PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) |
| 2713 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) /* Dip Sw #3 */ |
| 2714 | PORT_DIPSETTING( 0x08, "3" ) |
| 2715 | PORT_DIPSETTING( 0x00, "5" ) |
| 2716 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2717 | |
| 2718 | PORT_START("IN3") /* need for some PPI accesses */ |
| 2719 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2740 | 2720 | INPUT_PORTS_END |
| 2741 | 2721 | |
| 2722 | /* verified from Z80 code */ |
| 2723 | static INPUT_PORTS_START( superbon ) |
| 2724 | PORT_INCLUDE(losttomb) |
| 2725 | |
| 2726 | PORT_MODIFY("IN0") |
| 2727 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY |
| 2728 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 2729 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY |
| 2730 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY |
| 2731 | |
| 2732 | PORT_MODIFY("IN1") |
| 2733 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* "HOLD" */ |
| 2734 | PORT_BIT( 0x34, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2735 | INPUT_PORTS_END |
| 2736 | |
| 2737 | |
| 2742 | 2738 | /************************************* |
| 2743 | 2739 | * |
| 2744 | 2740 | * ROM definitions |
| r7772 | r7773 | |
| 3205 | 3201 | ROM_LOAD( "l06_prom.bin", 0x0000, 0x0020, CRC(6a0c7d87) SHA1(140335d85c67c75b65689d4e76d29863c209cf32) ) |
| 3206 | 3202 | ROM_END |
| 3207 | 3203 | |
| 3204 | ROM_START( tdpgal ) |
| 3205 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 3206 | ROM_LOAD( "1.bin", 0x0000, 0x0800, CRC(7be819fe) SHA1(ab5a332914546692f9976e243daf3040f0d9952e) ) |
| 3207 | ROM_LOAD( "2.bin", 0x0800, 0x0800, CRC(70c83a5e) SHA1(7b781b027c73d6c3901c6d27901f97fae61a352d) ) |
| 3208 | ROM_LOAD( "3.bin", 0x1000, 0x0800, CRC(475eb5a0) SHA1(b7436873fd74aff3577540474420a1abaa2babcb) ) |
| 3209 | ROM_LOAD( "4.bin", 0x1800, 0x0800, CRC(20a71943) SHA1(e196eea20bd0518545dcde61f2697a1d6f61568b) ) |
| 3210 | ROM_LOAD( "5.bin", 0x2000, 0x0800, CRC(72c4f2dc) SHA1(30a9c69afd2c4da4a14363fc0b17b1e0da188927) ) |
| 3211 | ROM_LOAD( "6.bin", 0x2800, 0x0800, CRC(fa4e2be4) SHA1(a30d43189660f8a1437faf87064fce28c9c760ad) ) |
| 3208 | 3212 | |
| 3213 | ROM_REGION( 0x1000, "gfx1", 0 ) |
| 3214 | ROM_LOAD( "8.bin", 0x0000, 0x0800, CRC(d701b1d4) SHA1(8f23ba3c9f42fedd8b8f38d321118a86889f00dc) ) |
| 3215 | ROM_LOAD( "7.bin", 0x0800, 0x0800, CRC(3113bcfd) SHA1(e2792e5fe7d7f27bb329e3104dee3ca29d72ef48) ) |
| 3216 | |
| 3217 | ROM_REGION( 0x0020, "proms", 0 ) |
| 3218 | ROM_LOAD( "bprom.bin", 0x0000, 0x0020, CRC(2b4cf53f) SHA1(8d7eb0453173b9821eea32419b67559bfb4578d0) ) |
| 3219 | ROM_END |
| 3220 | |
| 3221 | |
| 3209 | 3222 | ROM_START( azurian ) |
| 3210 | 3223 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 3211 | 3224 | ROM_LOAD( "pgm.1", 0x0000, 0x1000, CRC(17a0fca7) SHA1(0ffb80d433fbaa0631d0d982a453f9e6cccab297) ) |
| r7772 | r7773 | |
| 4355 | 4368 | ROM_END |
| 4356 | 4369 | |
| 4357 | 4370 | |
| 4371 | /* |
| 4372 | |
| 4373 | The Pit (on Moon Quasar hardware) |
| 4374 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 4375 | |
| 4376 | Dumped by Andrew Welburn |
| 4377 | on the sunny morning of 2/03/10 |
| 4378 | |
| 4379 | http://www.andys-arcade.com |
| 4380 | |
| 4381 | ************************************************* |
| 4382 | **Do not seperate this text file from the roms.** |
| 4383 | ************************************************* |
| 4384 | |
| 4385 | Nichibutsu Moon Quasar pcb largely unhacked, but |
| 4386 | with an odd looking set of roms. One gfx rom |
| 4387 | identifies itself as 'The Pit' so that is my only |
| 4388 | guess at what the game actually is. |
| 4389 | |
| 4390 | Roms 1 through 8 read well in-circuit in the right |
| 4391 | places in the memory map for moon cresta, |
| 4392 | (through the fluke 9100) but the game does not |
| 4393 | currently run. Roms dumped adn verified with no |
| 4394 | anomolies. |
| 4395 | |
| 4396 | Rom 9 was placed on the through-socket and has |
| 4397 | pins 20 and 18 (/E and A11 respectively) tied to |
| 4398 | pin 5 of 8E (A14/A15/MREQ demux). This demux has |
| 4399 | some patches, the trace to pin 13 is cut, and is |
| 4400 | instead wired to pin 3. |
| 4401 | |
| 4402 | */ |
| 4403 | |
| 4404 | ROM_START( thepitm ) |
| 4405 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 4406 | ROM_LOAD( "1.bin", 0x0000, 0x0800, CRC(0f78d6ea) SHA1(e224b2fb9b4a26295b03af720fa647d4488a1287) ) |
| 4407 | ROM_LOAD( "2.bin", 0x0800, 0x0800, CRC(ebacc6eb) SHA1(8b73d96ebe8070fbbb16434aa6a30ec8985ddec6) ) |
| 4408 | ROM_LOAD( "3.bin", 0x1000, 0x0800, CRC(14fd0706) SHA1(5d905d8272731c307dc9f96caf4973b28413198e) ) |
| 4409 | ROM_LOAD( "4.bin", 0x1800, 0x0800, CRC(613e920f) SHA1(078c7f36ba0145fbbd24bdae4cb6b03c5c27c1cc) ) |
| 4410 | ROM_LOAD( "5.bin", 0x2000, 0x0800, CRC(5a791f3f) SHA1(166f07f7fe260e53e611784976792638a25485c1) ) |
| 4411 | ROM_LOAD( "6.bin", 0x2800, 0x0800, CRC(0bb37f51) SHA1(32e31678388bad048c829bd43a18dc4e24869840) ) |
| 4412 | ROM_LOAD( "7.bin", 0x3000, 0x0800, CRC(4dfdec6f) SHA1(eb88a278860998c343f94e27c8c6c723cffb2dd9) ) |
| 4413 | ROM_LOAD( "8.bin", 0x3800, 0x0800, CRC(a39a9189) SHA1(aacd54edca6bc7f7feacd651a0de57b3d9592aad) ) |
| 4414 | ROM_LOAD( "9.bin", 0x4000, 0x0800, CRC(2eb90e07) SHA1(92678fc5cfeb7119ce27f042571daa831fa1dad5) ) |
| 4415 | |
| 4416 | ROM_REGION( 0x2000, "gfx1", 0 ) |
| 4417 | ROM_LOAD( "1h.bin", 0x0000, 0x0800, CRC(00dce65f) SHA1(ba0cce484d1f8693a85b85e0689d107588df9043) ) |
| 4418 | ROM_LOAD( "1k.bin", 0x1000, 0x0800, CRC(3ec0056e) SHA1(1dd19e7535ab9abd62b4b32663437f8e8acb91b5) ) |
| 4419 | |
| 4420 | ROM_REGION( 0x0020, "proms", 0 ) |
| 4421 | ROM_LOAD( "6l.bin", 0x0000, 0x0020, CRC(6a0c7d87) SHA1(140335d85c67c75b65689d4e76d29863c209cf32) ) |
| 4422 | ROM_END |
| 4423 | |
| 4424 | |
| 4358 | 4425 | ROM_START( skybase ) |
| 4359 | 4426 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 4360 | 4427 | ROM_LOAD( "skybase.9a", 0x0000, 0x1000, CRC(845b87a5) SHA1(8a249c1ec921532cb1bb85ed7fec11396634ca38) ) |
| r7772 | r7773 | |
| 5412 | 5479 | ROM_LOAD( "82s123.6e", 0x0000, 0x0020, CRC(9b87f90d) SHA1(d11ac5e4a6057301ea2a9cbb404c2b978eb4c1dc) ) |
| 5413 | 5480 | ROM_END |
| 5414 | 5481 | |
| 5415 | | ROM_START( scobras ) |
| 5482 | ROM_START( scobrase ) |
| 5416 | 5483 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 5417 | | ROM_LOAD( "scobra2c.bin", 0x0000, 0x1000, CRC(e15ade38) SHA1(21cf26d1781d133fa336d275d8a61d3f95d10b77) ) |
| 5418 | | ROM_LOAD( "scobra2e.bin", 0x1000, 0x1000, CRC(a270e44d) SHA1(8b7307af458b9cd3c45bb72b35e682d6d109ed01) ) |
| 5419 | | ROM_LOAD( "scobra2f.bin", 0x2000, 0x1000, CRC(bdd70346) SHA1(bda0dc5777233a86a3a0aceb6eded45145057ba8) ) |
| 5420 | | ROM_LOAD( "scobra2h.bin", 0x3000, 0x1000, CRC(dca5ec31) SHA1(50073d44ccef76a3c36c73a6ed4479127f2c98ee) ) |
| 5421 | | ROM_LOAD( "scobra2j.bin", 0x4000, 0x1000, CRC(0d8f6b6e) SHA1(0ca0096cd55cdb87d14cb7f4c7c7b853ec1661c7) ) |
| 5422 | | ROM_LOAD( "scobra2l.bin", 0x5000, 0x1000, CRC(6f80f3a9) SHA1(817d212454c5eb16c5d7471d2ccefc4f8708d57f) ) |
| 5484 | ROM_LOAD( "epr1265.2c", 0x0000, 0x1000, CRC(a0744b3f) SHA1(8949298a04f8ba8a82d5d84a7b012a0e7cff11df) ) |
| 5485 | ROM_LOAD( "epr1266.2e", 0x1000, 0x1000, CRC(65306279) SHA1(f6e10d57c9b88e3fcd7333f76708e190a97b4faa) ) |
| 5486 | ROM_LOAD( "epr1267.2f", 0x2000, 0x1000, CRC(47a4e6fb) SHA1(01775ad11dc23469649539ee8fb8a5800df031c6) ) |
| 5487 | ROM_LOAD( "epr1268.2h", 0x3000, 0x1000, CRC(53eecaf2) SHA1(08ca34097f63af8ab69b1d836a12a8bd4d42e4a2) ) |
| 5488 | ROM_LOAD( "epr1269.2j", 0x4000, 0x1000, CRC(e1f8a801) SHA1(2add8270352d6596052d3ff22c891ceccaa92071) ) |
| 5489 | ROM_LOAD( "epr1270.2l", 0x5000, 0x1000, CRC(f7709710) SHA1(dff9ae72ba00a98d4f5acdd6d506e3d7add6b2c6) ) |
| 5423 | 5490 | |
| 5424 | 5491 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 5425 | 5492 | ROM_LOAD( "epr1275.5c", 0x0000, 0x0800, CRC(deeb0dd3) SHA1(b815a586f05361b75078d58f1fddfdb36f9d8fae) ) |
| r7772 | r7773 | |
| 5431 | 5498 | ROM_LOAD( "epr1273.5f", 0x0800, 0x0800, CRC(a96316d3) SHA1(9de0e94932e91dc34aea7c81880bde6a486d103b) ) |
| 5432 | 5499 | |
| 5433 | 5500 | ROM_REGION( 0x0020, "proms", 0 ) |
| 5434 | | ROM_LOAD( "82s123.6e", 0x0000, 0x0020, CRC(9b87f90d) SHA1(d11ac5e4a6057301ea2a9cbb404c2b978eb4c1dc) ) |
| 5501 | ROM_LOAD( "pr1278.6e", 0x0000, 0x0020, CRC(fd35c561) SHA1(590f60beb443dd689c890c37cc100e0b936bf8c9) ) |
| 5435 | 5502 | ROM_END |
| 5436 | 5503 | |
| 5437 | | ROM_START( scobrase ) |
| 5504 | ROM_START( scobras ) |
| 5438 | 5505 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 5439 | | ROM_LOAD( "epr1265.2c", 0x0000, 0x1000, CRC(a0744b3f) SHA1(8949298a04f8ba8a82d5d84a7b012a0e7cff11df) ) |
| 5440 | | ROM_LOAD( "epr1266.2e", 0x1000, 0x1000, CRC(65306279) SHA1(f6e10d57c9b88e3fcd7333f76708e190a97b4faa) ) |
| 5441 | | ROM_LOAD( "epr1267.2f", 0x2000, 0x1000, CRC(47a4e6fb) SHA1(01775ad11dc23469649539ee8fb8a5800df031c6) ) |
| 5442 | | ROM_LOAD( "epr1268.2h", 0x3000, 0x1000, CRC(53eecaf2) SHA1(08ca34097f63af8ab69b1d836a12a8bd4d42e4a2) ) |
| 5443 | | ROM_LOAD( "epr1269.2j", 0x4000, 0x1000, CRC(e1f8a801) SHA1(2add8270352d6596052d3ff22c891ceccaa92071) ) |
| 5444 | | ROM_LOAD( "epr1270.2l", 0x5000, 0x1000, CRC(f7709710) SHA1(dff9ae72ba00a98d4f5acdd6d506e3d7add6b2c6) ) |
| 5506 | ROM_LOAD( "scobra2c.bin", 0x0000, 0x1000, CRC(e15ade38) SHA1(21cf26d1781d133fa336d275d8a61d3f95d10b77) ) |
| 5507 | ROM_LOAD( "scobra2e.bin", 0x1000, 0x1000, CRC(a270e44d) SHA1(8b7307af458b9cd3c45bb72b35e682d6d109ed01) ) |
| 5508 | ROM_LOAD( "scobra2f.bin", 0x2000, 0x1000, CRC(bdd70346) SHA1(bda0dc5777233a86a3a0aceb6eded45145057ba8) ) |
| 5509 | ROM_LOAD( "scobra2h.bin", 0x3000, 0x1000, CRC(dca5ec31) SHA1(50073d44ccef76a3c36c73a6ed4479127f2c98ee) ) |
| 5510 | ROM_LOAD( "scobra2j.bin", 0x4000, 0x1000, CRC(0d8f6b6e) SHA1(0ca0096cd55cdb87d14cb7f4c7c7b853ec1661c7) ) |
| 5511 | ROM_LOAD( "scobra2l.bin", 0x5000, 0x1000, CRC(6f80f3a9) SHA1(817d212454c5eb16c5d7471d2ccefc4f8708d57f) ) |
| 5445 | 5512 | |
| 5446 | 5513 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 5447 | 5514 | ROM_LOAD( "epr1275.5c", 0x0000, 0x0800, CRC(deeb0dd3) SHA1(b815a586f05361b75078d58f1fddfdb36f9d8fae) ) |
| r7772 | r7773 | |
| 5453 | 5520 | ROM_LOAD( "epr1273.5f", 0x0800, 0x0800, CRC(a96316d3) SHA1(9de0e94932e91dc34aea7c81880bde6a486d103b) ) |
| 5454 | 5521 | |
| 5455 | 5522 | ROM_REGION( 0x0020, "proms", 0 ) |
| 5456 | | ROM_LOAD( "pr1278.6e", 0x0000, 0x0020, CRC(fd35c561) SHA1(590f60beb443dd689c890c37cc100e0b936bf8c9) ) |
| 5523 | ROM_LOAD( "82s123.6e", 0x0000, 0x0020, CRC(9b87f90d) SHA1(d11ac5e4a6057301ea2a9cbb404c2b978eb4c1dc) ) |
| 5457 | 5524 | ROM_END |
| 5458 | 5525 | |
| 5459 | 5526 | ROM_START( scobrab ) |
| r7772 | r7773 | |
| 5467 | 5534 | ROM_LOAD( "scobra2l.bin", 0x5000, 0x1000, CRC(6f80f3a9) SHA1(817d212454c5eb16c5d7471d2ccefc4f8708d57f) ) |
| 5468 | 5535 | |
| 5469 | 5536 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 5470 | | ROM_LOAD( "snd_5c.bin", 0x0000, 0x0800, CRC(deeb0dd3) SHA1(b815a586f05361b75078d58f1fddfdb36f9d8fae) ) |
| 5471 | | ROM_LOAD( "snd_5d.bin", 0x0800, 0x0800, CRC(872c1a74) SHA1(20f05bf398ad2690f5ba4e4158ad62aeec226413) ) |
| 5472 | | ROM_LOAD( "snd_5e.bin", 0x1000, 0x0800, CRC(ccd7a110) SHA1(5a247e360530be0f94c90fcc7d0ce628d460449f) ) |
| 5537 | ROM_LOAD( "epr1275.5c", 0x0000, 0x0800, CRC(deeb0dd3) SHA1(b815a586f05361b75078d58f1fddfdb36f9d8fae) ) /* snd_5c.bin */ |
| 5538 | ROM_LOAD( "epr1276.5d", 0x0800, 0x0800, CRC(872c1a74) SHA1(20f05bf398ad2690f5ba4e4158ad62aeec226413) ) /* snd_5d.bin */ |
| 5539 | ROM_LOAD( "epr1277.5e", 0x1000, 0x0800, CRC(ccd7a110) SHA1(5a247e360530be0f94c90fcc7d0ce628d460449f) ) /* snd_5e.bin */ |
| 5473 | 5540 | |
| 5474 | 5541 | ROM_REGION( 0x1000, "gfx1", 0 ) |
| 5475 | 5542 | ROM_LOAD( "epr1274.5h", 0x0000, 0x0800, CRC(64d113b4) SHA1(7b439bb74d5ecc792e0ca8964bcca8c6b7a51262) ) |
| r7772 | r7773 | |
| 5502 | 5569 | ROM_LOAD( "k.6e", 0x0000, 0x0020, CRC(fd35c561) SHA1(590f60beb443dd689c890c37cc100e0b936bf8c9) ) /* this dump matches the prom from scobrase, it was labeled "K" with a marker here at 6E */ |
| 5503 | 5570 | ROM_END |
| 5504 | 5571 | |
| 5505 | | /* |
| 5506 | | Lost Tomb |
| 5507 | 5572 | |
| 5508 | | CPU/Sound Board: A969 |
| 5509 | | Video Board: A2048 |
| 5510 | | */ |
| 5511 | | |
| 5512 | | ROM_START( losttomb ) |
| 5573 | ROM_START( moonwar ) |
| 5513 | 5574 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 5514 | | ROM_LOAD( "2c", 0x0000, 0x1000, CRC(d6176d2c) SHA1(bc2bf63ee8d3e376f155d218704ceb5adcdf8e54) ) |
| 5515 | | ROM_LOAD( "2e", 0x1000, 0x1000, CRC(a5f55f4a) SHA1(3609fc2b15b6856e81738bbd370250735dba694d) ) |
| 5516 | | ROM_LOAD( "2f", 0x2000, 0x1000, CRC(0169fa3c) SHA1(2c06b1deca6c80d067032bfc2386da6ab0111e5f) ) |
| 5517 | | ROM_LOAD( "2h-easy", 0x3000, 0x1000, CRC(054481b6) SHA1(b0f5d19af0336883e4d9813e58a75c176a63a987) ) |
| 5518 | | ROM_LOAD( "2j", 0x4000, 0x1000, CRC(249ee040) SHA1(7297039e95e67220fa3e75fc50635f4df4c46a86) ) |
| 5519 | | ROM_LOAD( "2l", 0x5000, 0x1000, CRC(c7d2e608) SHA1(8aabecabd1dcd6833fb581e4571d71a680e6563a) ) |
| 5520 | | ROM_LOAD( "2m", 0x6000, 0x1000, CRC(bc4bc5b1) SHA1(95ffa72e57d1da10ddeda4d9333c9e0a2fb33e82) ) |
| 5575 | ROM_LOAD( "mw2.2c", 0x0000, 0x1000, CRC(7c11b4d9) SHA1(a27bdff6ce728647ec811df843ac235c32c293d6) ) |
| 5576 | ROM_LOAD( "mw2.2e", 0x1000, 0x1000, CRC(1b6362be) SHA1(2fbd95869146adcc0c8be1df653251fda8849e8e) ) |
| 5577 | ROM_LOAD( "mw2.2f", 0x2000, 0x1000, CRC(4fd8ba4b) SHA1(3da784267a96d05f66b00626a22cb3f06211d202) ) |
| 5578 | ROM_LOAD( "mw2.2h", 0x3000, 0x1000, CRC(56879f0d) SHA1(d1e9932863aebc5761e71fca8d24f3c400e1250d) ) |
| 5521 | 5579 | |
| 5522 | 5580 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 5523 | | ROM_LOAD( "5c", 0x0000, 0x0800, CRC(b899be2a) SHA1(9b343a682531255104db61177a43ad933c3af34e) ) |
| 5524 | | ROM_LOAD( "5d", 0x0800, 0x0800, CRC(6907af31) SHA1(8496c8db5342129d81381eec196facbca45bca77) ) |
| 5581 | ROM_LOAD( "mw2.5c", 0x0000, 0x0800, CRC(c26231eb) SHA1(5b19edfaefe1a535059311d067ea53405879d627) ) |
| 5582 | ROM_LOAD( "mw2.5d", 0x0800, 0x0800, CRC(bb48a646) SHA1(cf51202d16b03bbed12ff24501be68683f28c992) ) |
| 5525 | 5583 | |
| 5526 | 5584 | ROM_REGION( 0x1000, "gfx1", 0 ) |
| 5527 | | ROM_LOAD( "5f", 0x0000, 0x0800, CRC(61f137e7) SHA1(8bff09bc29fa829e21e6b36f7b3f67f19f6bbb26) ) |
| 5528 | | ROM_LOAD( "5h", 0x0800, 0x0800, CRC(5581de5f) SHA1(763dacb0d2183c159e7f1f04c7ecb1182da18abf) ) |
| 5585 | ROM_LOAD( "mw2.5f", 0x0000, 0x0800, CRC(c5fa1aa0) SHA1(6c6b5b2ce5de278ff436d3e7252ece5b086cc41d) ) |
| 5586 | ROM_LOAD( "mw2.5h", 0x0800, 0x0800, CRC(a6ccc652) SHA1(286b3dc1f3a7da3ac66664e774b441ef075745f1) ) |
| 5529 | 5587 | |
| 5530 | 5588 | ROM_REGION( 0x0020, "proms", 0 ) |
| 5531 | | ROM_LOAD( "ltprom", 0x0000, 0x0020, CRC(1108b816) SHA1(49fdb08f8f31fefa2f3dca3d3455318cb21847a3) ) |
| 5589 | ROM_LOAD( "mw2.clr", 0x0000, 0x0020, CRC(99614c6c) SHA1(f068985f3c5e0cd88551a02c32f9baeabfd50241) ) |
| 5532 | 5590 | ROM_END |
| 5533 | 5591 | |
| 5534 | | ROM_START( losttombh ) |
| 5592 | ROM_START( moonwara ) |
| 5535 | 5593 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 5536 | | ROM_LOAD( "2c", 0x0000, 0x1000, CRC(d6176d2c) SHA1(bc2bf63ee8d3e376f155d218704ceb5adcdf8e54) ) |
| 5537 | | ROM_LOAD( "2e", 0x1000, 0x1000, CRC(a5f55f4a) SHA1(3609fc2b15b6856e81738bbd370250735dba694d) ) |
| 5538 | | ROM_LOAD( "2f", 0x2000, 0x1000, CRC(0169fa3c) SHA1(2c06b1deca6c80d067032bfc2386da6ab0111e5f) ) |
| 5539 | | ROM_LOAD( "lthard", 0x3000, 0x1000, CRC(e32cbf0e) SHA1(c4a63e01fad7bd450def5c4412690d4bb8d12691) ) |
| 5540 | | ROM_LOAD( "2j", 0x4000, 0x1000, CRC(249ee040) SHA1(7297039e95e67220fa3e75fc50635f4df4c46a86) ) |
| 5541 | | ROM_LOAD( "2l", 0x5000, 0x1000, CRC(c7d2e608) SHA1(8aabecabd1dcd6833fb581e4571d71a680e6563a) ) |
| 5542 | | ROM_LOAD( "2m", 0x6000, 0x1000, CRC(bc4bc5b1) SHA1(95ffa72e57d1da10ddeda4d9333c9e0a2fb33e82) ) |
| 5594 | ROM_LOAD( "2c", 0x0000, 0x1000, CRC(bc20b734) SHA1(c6fe550987d0052979aad43c67aa1b9248049669) ) |
| 5595 | ROM_LOAD( "2e", 0x1000, 0x1000, CRC(db6ffec2) SHA1(0fcd55b1e415e2e7041d10778052a235251f85fe) ) |
| 5596 | ROM_LOAD( "2f", 0x2000, 0x1000, CRC(378931b8) SHA1(663f1eea9b0e8dc38de818df66c5211dac41c33b) ) |
| 5597 | ROM_LOAD( "2h", 0x3000, 0x1000, CRC(031dbc2c) SHA1(5f2ca8b8763398bf161ee0c2c748a12d36cb40ec) ) |
| 5543 | 5598 | |
| 5544 | 5599 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 5545 | | ROM_LOAD( "5c", 0x0000, 0x0800, CRC(b899be2a) SHA1(9b343a682531255104db61177a43ad933c3af34e) ) |
| 5546 | | ROM_LOAD( "5d", 0x0800, 0x0800, CRC(6907af31) SHA1(8496c8db5342129d81381eec196facbca45bca77) ) |
| 5600 | ROM_LOAD( "mw2.5c", 0x0000, 0x0800, CRC(c26231eb) SHA1(5b19edfaefe1a535059311d067ea53405879d627) ) |
| 5601 | ROM_LOAD( "mw2.5d", 0x0800, 0x0800, CRC(bb48a646) SHA1(cf51202d16b03bbed12ff24501be68683f28c992) ) |
| 5547 | 5602 | |
| 5548 | 5603 | ROM_REGION( 0x1000, "gfx1", 0 ) |
| 5549 | | ROM_LOAD( "5f", 0x0000, 0x0800, CRC(61f137e7) SHA1(8bff09bc29fa829e21e6b36f7b3f67f19f6bbb26) ) |
| 5550 | | ROM_LOAD( "5h", 0x0800, 0x0800, CRC(5581de5f) SHA1(763dacb0d2183c159e7f1f04c7ecb1182da18abf) ) |
| 5604 | ROM_LOAD( "mw2.5f", 0x0000, 0x0800, CRC(c5fa1aa0) SHA1(6c6b5b2ce5de278ff436d3e7252ece5b086cc41d) ) |
| 5605 | ROM_LOAD( "mw2.5h", 0x0800, 0x0800, CRC(a6ccc652) SHA1(286b3dc1f3a7da3ac66664e774b441ef075745f1) ) |
| 5551 | 5606 | |
| 5552 | 5607 | ROM_REGION( 0x0020, "proms", 0 ) |
| 5553 | | ROM_LOAD( "ltprom", 0x0000, 0x0020, CRC(1108b816) SHA1(49fdb08f8f31fefa2f3dca3d3455318cb21847a3) ) |
| 5608 | ROM_LOAD( "moonwara.clr", 0x0000, 0x0020, CRC(f58d4f58) SHA1(12a80d1edf3c80dafa0e1e3622d2a03224b62f14) ) /* olive, instead of white */ |
| 5554 | 5609 | ROM_END |
| 5555 | 5610 | |
| 5556 | 5611 | |
| r7772 | r7773 | |
| 5636 | 5691 | ROM_END |
| 5637 | 5692 | |
| 5638 | 5693 | |
| 5639 | | ROM_START( spdcoin ) |
| 5640 | | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 5641 | | ROM_LOAD( "spdcoin.2c", 0x0000, 0x1000, CRC(65cf1e49) SHA1(a4570f0d7868fcdd378de3fd9e5346780afcf427) ) |
| 5642 | | ROM_LOAD( "spdcoin.2e", 0x1000, 0x1000, CRC(1ee59232) SHA1(b58c1de69d33cf80432012b9b6d8b1e3d8b00662) ) |
| 5643 | | |
| 5644 | | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 5645 | | ROM_LOAD( "spdcoin.5c", 0x0000, 0x0800, CRC(b4cf64b7) SHA1(a95d94be2e374b78b4ba49b6931f0c214ff9d033) ) |
| 5646 | | ROM_LOAD( "spdcoin.5d", 0x0800, 0x0800, CRC(92304df0) SHA1(01471bf7cbea0090933a253b1b46f80c8f240df5) ) |
| 5647 | | |
| 5648 | | ROM_REGION( 0x1000, "gfx1", 0 ) |
| 5649 | | ROM_LOAD( "spdcoin.5f", 0x0000, 0x0800, CRC(dd5f1dbc) SHA1(e7c40972a7530cac19ce04de3272244959d337ab) ) |
| 5650 | | ROM_LOAD( "spdcoin.5h", 0x0800, 0x0800, CRC(ab1fe81b) SHA1(98057932cb5faad60d425b547590ab22bfc67ff6) ) |
| 5651 | | |
| 5652 | | ROM_REGION( 0x0020, "proms", 0 ) |
| 5653 | | ROM_LOAD( "spdcoin.clr", 0x0000, 0x0020, CRC(1a2ccc56) SHA1(58bedaa8b3e21e916295603b38529084b6c0099a) ) |
| 5654 | | ROM_END |
| 5655 | | |
| 5656 | | |
| 5657 | | ROM_START( superbon ) |
| 5658 | | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 5659 | | ROM_LOAD( "2d.cpu", 0x0000, 0x1000, CRC(60c0ba18) SHA1(6ad09e01dd3c86c8d9c465916227c9b00f38e025) ) |
| 5660 | | ROM_LOAD( "2e.cpu", 0x1000, 0x1000, CRC(ddcf44bf) SHA1(b862622f4aa8af6da568b4f82ef043359ece530f) ) |
| 5661 | | ROM_LOAD( "2f.cpu", 0x2000, 0x1000, CRC(bb66c2d5) SHA1(cbb7f4279ae48460790cb8abf976b978ae6a1a25) ) |
| 5662 | | ROM_LOAD( "2h.cpu", 0x3000, 0x1000, CRC(74f4f04d) SHA1(d51c5d2c21453ee0dab60253c3124b6112d1f859) ) |
| 5663 | | ROM_LOAD( "2j.cpu", 0x4000, 0x1000, CRC(78effb08) SHA1(64f211b34c2f37c25a36200b393f145b39ae67b5) ) |
| 5664 | | ROM_LOAD( "2l.cpu", 0x5000, 0x1000, CRC(e9dcecbd) SHA1(ec61cec2b66c041872a2ca29cf724a89c73fc9a3) ) |
| 5665 | | ROM_LOAD( "2m.cpu", 0x6000, 0x1000, CRC(3ed0337e) SHA1(975b93aee851867e335614419aa6db16fbf8063f) ) |
| 5666 | | |
| 5667 | | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 5668 | | ROM_LOAD( "5c", 0x0000, 0x0800, CRC(b899be2a) SHA1(9b343a682531255104db61177a43ad933c3af34e) ) |
| 5669 | | ROM_LOAD( "5d.snd", 0x0800, 0x0800, CRC(80640a04) SHA1(83f2bafcfa5737441194d3058a76b2582317cfcb) ) |
| 5670 | | |
| 5671 | | ROM_REGION( 0x1000, "gfx1", 0 ) |
| 5672 | | ROM_LOAD( "5f.cpu", 0x0000, 0x0800, CRC(5b9d4686) SHA1(c7814aefaccab9c8a3a0b015447d366cd2e43c3a) ) |
| 5673 | | ROM_LOAD( "5h.cpu", 0x0800, 0x0800, CRC(58c29927) SHA1(b88515d9c3108d2ad59f30fed5d74877b1636280) ) |
| 5674 | | |
| 5675 | | /* conversion instructions do not mention color proms */ |
| 5676 | | /* http://www.arcadeflyers.com/?page=flyer&db=videodb&id=5353&image=2 */ |
| 5677 | | /* however, pages may be missing. In addition, it is mentioned that the */ |
| 5678 | | /* conversion kit may be used for scramble, amidar and frogger as well. */ |
| 5679 | | /* They all have different color proms. */ |
| 5680 | | ROM_REGION( 0x0020, "proms", 0 ) |
| 5681 | | ROM_LOAD( "superbon.clr", 0x0000, 0x0020, NO_DUMP ) |
| 5682 | | |
| 5683 | | ROM_END |
| 5684 | | |
| 5685 | 5694 | ROM_START( calipso ) |
| 5686 | 5695 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 5687 | 5696 | ROM_LOAD( "calipso.2c", 0x0000, 0x1000, CRC(0fcb703c) SHA1(2bb096f114911973afdf3088c860c9566df06f60) ) |
| r7772 | r7773 | |
| 5704 | 5713 | ROM_END |
| 5705 | 5714 | |
| 5706 | 5715 | |
| 5707 | | ROM_START( moonwar ) |
| 5716 | /* |
| 5717 | Lost Tomb |
| 5718 | |
| 5719 | CPU/Sound Board: A969 |
| 5720 | Video Board: A2048 |
| 5721 | */ |
| 5722 | |
| 5723 | ROM_START( losttomb ) |
| 5708 | 5724 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 5709 | | ROM_LOAD( "mw2.2c", 0x0000, 0x1000, CRC(7c11b4d9) SHA1(a27bdff6ce728647ec811df843ac235c32c293d6) ) |
| 5710 | | ROM_LOAD( "mw2.2e", 0x1000, 0x1000, CRC(1b6362be) SHA1(2fbd95869146adcc0c8be1df653251fda8849e8e) ) |
| 5711 | | ROM_LOAD( "mw2.2f", 0x2000, 0x1000, CRC(4fd8ba4b) SHA1(3da784267a96d05f66b00626a22cb3f06211d202) ) |
| 5712 | | ROM_LOAD( "mw2.2h", 0x3000, 0x1000, CRC(56879f0d) SHA1(d1e9932863aebc5761e71fca8d24f3c400e1250d) ) |
| 5725 | ROM_LOAD( "2c", 0x0000, 0x1000, CRC(d6176d2c) SHA1(bc2bf63ee8d3e376f155d218704ceb5adcdf8e54) ) |
| 5726 | ROM_LOAD( "2e", 0x1000, 0x1000, CRC(a5f55f4a) SHA1(3609fc2b15b6856e81738bbd370250735dba694d) ) |
| 5727 | ROM_LOAD( "2f", 0x2000, 0x1000, CRC(0169fa3c) SHA1(2c06b1deca6c80d067032bfc2386da6ab0111e5f) ) |
| 5728 | ROM_LOAD( "2h-easy", 0x3000, 0x1000, CRC(054481b6) SHA1(b0f5d19af0336883e4d9813e58a75c176a63a987) ) |
| 5729 | ROM_LOAD( "2j", 0x4000, 0x1000, CRC(249ee040) SHA1(7297039e95e67220fa3e75fc50635f4df4c46a86) ) |
| 5730 | ROM_LOAD( "2l", 0x5000, 0x1000, CRC(c7d2e608) SHA1(8aabecabd1dcd6833fb581e4571d71a680e6563a) ) |
| 5731 | ROM_LOAD( "2m", 0x6000, 0x1000, CRC(bc4bc5b1) SHA1(95ffa72e57d1da10ddeda4d9333c9e0a2fb33e82) ) |
| 5713 | 5732 | |
| 5714 | 5733 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 5715 | | ROM_LOAD( "mw2.5c", 0x0000, 0x0800, CRC(c26231eb) SHA1(5b19edfaefe1a535059311d067ea53405879d627) ) |
| 5716 | | ROM_LOAD( "mw2.5d", 0x0800, 0x0800, CRC(bb48a646) SHA1(cf51202d16b03bbed12ff24501be68683f28c992) ) |
| 5734 | ROM_LOAD( "5c", 0x0000, 0x0800, CRC(b899be2a) SHA1(9b343a682531255104db61177a43ad933c3af34e) ) |
| 5735 | ROM_LOAD( "5d", 0x0800, 0x0800, CRC(6907af31) SHA1(8496c8db5342129d81381eec196facbca45bca77) ) |
| 5717 | 5736 | |
| 5718 | 5737 | ROM_REGION( 0x1000, "gfx1", 0 ) |
| 5719 | | ROM_LOAD( "mw2.5f", 0x0000, 0x0800, CRC(c5fa1aa0) SHA1(6c6b5b2ce5de278ff436d3e7252ece5b086cc41d) ) |
| 5720 | | ROM_LOAD( "mw2.5h", 0x0800, 0x0800, CRC(a6ccc652) SHA1(286b3dc1f3a7da3ac66664e774b441ef075745f1) ) |
| 5738 | ROM_LOAD( "5f", 0x0000, 0x0800, CRC(61f137e7) SHA1(8bff09bc29fa829e21e6b36f7b3f67f19f6bbb26) ) |
| 5739 | ROM_LOAD( "5h", 0x0800, 0x0800, CRC(5581de5f) SHA1(763dacb0d2183c159e7f1f04c7ecb1182da18abf) ) |
| 5721 | 5740 | |
| 5722 | 5741 | ROM_REGION( 0x0020, "proms", 0 ) |
| 5723 | | ROM_LOAD( "mw2.clr", 0x0000, 0x0020, CRC(99614c6c) SHA1(f068985f3c5e0cd88551a02c32f9baeabfd50241) ) |
| 5742 | ROM_LOAD( "ltprom", 0x0000, 0x0020, CRC(1108b816) SHA1(49fdb08f8f31fefa2f3dca3d3455318cb21847a3) ) |
| 5724 | 5743 | ROM_END |
| 5725 | 5744 | |
| 5726 | | ROM_START( moonwara ) |
| 5745 | ROM_START( losttombh ) |
| 5727 | 5746 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 5728 | | ROM_LOAD( "2c", 0x0000, 0x1000, CRC(bc20b734) SHA1(c6fe550987d0052979aad43c67aa1b9248049669) ) |
| 5729 | | ROM_LOAD( "2e", 0x1000, 0x1000, CRC(db6ffec2) SHA1(0fcd55b1e415e2e7041d10778052a235251f85fe) ) |
| 5730 | | ROM_LOAD( "2f", 0x2000, 0x1000, CRC(378931b8) SHA1(663f1eea9b0e8dc38de818df66c5211dac41c33b) ) |
| 5731 | | ROM_LOAD( "2h", 0x3000, 0x1000, CRC(031dbc2c) SHA1(5f2ca8b8763398bf161ee0c2c748a12d36cb40ec) ) |
| 5747 | ROM_LOAD( "2c", 0x0000, 0x1000, CRC(d6176d2c) SHA1(bc2bf63ee8d3e376f155d218704ceb5adcdf8e54) ) |
| 5748 | ROM_LOAD( "2e", 0x1000, 0x1000, CRC(a5f55f4a) SHA1(3609fc2b15b6856e81738bbd370250735dba694d) ) |
| 5749 | ROM_LOAD( "2f", 0x2000, 0x1000, CRC(0169fa3c) SHA1(2c06b1deca6c80d067032bfc2386da6ab0111e5f) ) |
| 5750 | ROM_LOAD( "lthard", 0x3000, 0x1000, CRC(e32cbf0e) SHA1(c4a63e01fad7bd450def5c4412690d4bb8d12691) ) |
| 5751 | ROM_LOAD( "2j", 0x4000, 0x1000, CRC(249ee040) SHA1(7297039e95e67220fa3e75fc50635f4df4c46a86) ) |
| 5752 | ROM_LOAD( "2l", 0x5000, 0x1000, CRC(c7d2e608) SHA1(8aabecabd1dcd6833fb581e4571d71a680e6563a) ) |
| 5753 | ROM_LOAD( "2m", 0x6000, 0x1000, CRC(bc4bc5b1) SHA1(95ffa72e57d1da10ddeda4d9333c9e0a2fb33e82) ) |
| 5732 | 5754 | |
| 5733 | 5755 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 5734 | | ROM_LOAD( "mw2.5c", 0x0000, 0x0800, CRC(c26231eb) SHA1(5b19edfaefe1a535059311d067ea53405879d627) ) |
| 5735 | | ROM_LOAD( "mw2.5d", 0x0800, 0x0800, CRC(bb48a646) SHA1(cf51202d16b03bbed12ff24501be68683f28c992) ) |
| 5756 | ROM_LOAD( "5c", 0x0000, 0x0800, CRC(b899be2a) SHA1(9b343a682531255104db61177a43ad933c3af34e) ) |
| 5757 | ROM_LOAD( "5d", 0x0800, 0x0800, CRC(6907af31) SHA1(8496c8db5342129d81381eec196facbca45bca77) ) |
| 5736 | 5758 | |
| 5737 | 5759 | ROM_REGION( 0x1000, "gfx1", 0 ) |
| 5738 | | ROM_LOAD( "mw2.5f", 0x0000, 0x0800, CRC(c5fa1aa0) SHA1(6c6b5b2ce5de278ff436d3e7252ece5b086cc41d) ) |
| 5739 | | ROM_LOAD( "mw2.5h", 0x0800, 0x0800, CRC(a6ccc652) SHA1(286b3dc1f3a7da3ac66664e774b441ef075745f1) ) |
| 5760 | ROM_LOAD( "5f", 0x0000, 0x0800, CRC(61f137e7) SHA1(8bff09bc29fa829e21e6b36f7b3f67f19f6bbb26) ) |
| 5761 | ROM_LOAD( "5h", 0x0800, 0x0800, CRC(5581de5f) SHA1(763dacb0d2183c159e7f1f04c7ecb1182da18abf) ) |
| 5740 | 5762 | |
| 5741 | 5763 | ROM_REGION( 0x0020, "proms", 0 ) |
| 5742 | | ROM_LOAD( "moonwara.clr", 0x0000, 0x0020, CRC(f58d4f58) SHA1(12a80d1edf3c80dafa0e1e3622d2a03224b62f14) ) /* olive, instead of white */ |
| 5764 | ROM_LOAD( "ltprom", 0x0000, 0x0020, CRC(1108b816) SHA1(49fdb08f8f31fefa2f3dca3d3455318cb21847a3) ) |
| 5743 | 5765 | ROM_END |
| 5744 | 5766 | |
| 5745 | 5767 | |
| 5746 | | ROM_START( tdpgal ) |
| 5768 | ROM_START( spdcoin ) |
| 5747 | 5769 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 5748 | | ROM_LOAD( "1.bin", 0x0000, 0x0800, CRC(7be819fe) SHA1(ab5a332914546692f9976e243daf3040f0d9952e) ) |
| 5749 | | ROM_LOAD( "2.bin", 0x0800, 0x0800, CRC(70c83a5e) SHA1(7b781b027c73d6c3901c6d27901f97fae61a352d) ) |
| 5750 | | ROM_LOAD( "3.bin", 0x1000, 0x0800, CRC(475eb5a0) SHA1(b7436873fd74aff3577540474420a1abaa2babcb) ) |
| 5751 | | ROM_LOAD( "4.bin", 0x1800, 0x0800, CRC(20a71943) SHA1(e196eea20bd0518545dcde61f2697a1d6f61568b) ) |
| 5752 | | ROM_LOAD( "5.bin", 0x2000, 0x0800, CRC(72c4f2dc) SHA1(30a9c69afd2c4da4a14363fc0b17b1e0da188927) ) |
| 5753 | | ROM_LOAD( "6.bin", 0x2800, 0x0800, CRC(fa4e2be4) SHA1(a30d43189660f8a1437faf87064fce28c9c760ad) ) |
| 5770 | ROM_LOAD( "spdcoin.2c", 0x0000, 0x1000, CRC(65cf1e49) SHA1(a4570f0d7868fcdd378de3fd9e5346780afcf427) ) |
| 5771 | ROM_LOAD( "spdcoin.2e", 0x1000, 0x1000, CRC(1ee59232) SHA1(b58c1de69d33cf80432012b9b6d8b1e3d8b00662) ) |
| 5754 | 5772 | |
| 5773 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 5774 | ROM_LOAD( "spdcoin.5c", 0x0000, 0x0800, CRC(b4cf64b7) SHA1(a95d94be2e374b78b4ba49b6931f0c214ff9d033) ) |
| 5775 | ROM_LOAD( "spdcoin.5d", 0x0800, 0x0800, CRC(92304df0) SHA1(01471bf7cbea0090933a253b1b46f80c8f240df5) ) |
| 5776 | |
| 5755 | 5777 | ROM_REGION( 0x1000, "gfx1", 0 ) |
| 5756 | | ROM_LOAD( "8.bin", 0x0000, 0x0800, CRC(d701b1d4) SHA1(8f23ba3c9f42fedd8b8f38d321118a86889f00dc) ) |
| 5757 | | ROM_LOAD( "7.bin", 0x0800, 0x0800, CRC(3113bcfd) SHA1(e2792e5fe7d7f27bb329e3104dee3ca29d72ef48) ) |
| 5778 | ROM_LOAD( "spdcoin.5f", 0x0000, 0x0800, CRC(dd5f1dbc) SHA1(e7c40972a7530cac19ce04de3272244959d337ab) ) |
| 5779 | ROM_LOAD( "spdcoin.5h", 0x0800, 0x0800, CRC(ab1fe81b) SHA1(98057932cb5faad60d425b547590ab22bfc67ff6) ) |
| 5758 | 5780 | |
| 5759 | 5781 | ROM_REGION( 0x0020, "proms", 0 ) |
| 5760 | | ROM_LOAD( "bprom.bin", 0x0000, 0x0020, CRC(2b4cf53f) SHA1(8d7eb0453173b9821eea32419b67559bfb4578d0) ) |
| 5782 | ROM_LOAD( "spdcoin.clr", 0x0000, 0x0020, CRC(1a2ccc56) SHA1(58bedaa8b3e21e916295603b38529084b6c0099a) ) |
| 5761 | 5783 | ROM_END |
| 5762 | 5784 | |
| 5763 | | /* |
| 5764 | 5785 | |
| 5765 | | The Pit (on Moon Quasar hardware) |
| 5766 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 5786 | ROM_START( superbon ) |
| 5787 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 5788 | ROM_LOAD( "2d.cpu", 0x0000, 0x1000, CRC(60c0ba18) SHA1(6ad09e01dd3c86c8d9c465916227c9b00f38e025) ) |
| 5789 | ROM_LOAD( "2e.cpu", 0x1000, 0x1000, CRC(ddcf44bf) SHA1(b862622f4aa8af6da568b4f82ef043359ece530f) ) |
| 5790 | ROM_LOAD( "2f.cpu", 0x2000, 0x1000, CRC(bb66c2d5) SHA1(cbb7f4279ae48460790cb8abf976b978ae6a1a25) ) |
| 5791 | ROM_LOAD( "2h.cpu", 0x3000, 0x1000, CRC(74f4f04d) SHA1(d51c5d2c21453ee0dab60253c3124b6112d1f859) ) |
| 5792 | ROM_LOAD( "2j.cpu", 0x4000, 0x1000, CRC(78effb08) SHA1(64f211b34c2f37c25a36200b393f145b39ae67b5) ) |
| 5793 | ROM_LOAD( "2l.cpu", 0x5000, 0x1000, CRC(e9dcecbd) SHA1(ec61cec2b66c041872a2ca29cf724a89c73fc9a3) ) |
| 5794 | ROM_LOAD( "2m.cpu", 0x6000, 0x1000, CRC(3ed0337e) SHA1(975b93aee851867e335614419aa6db16fbf8063f) ) |
| 5767 | 5795 | |
| 5768 | | Dumped by Andrew Welburn |
| 5769 | | on the sunny morning of 2/03/10 |
| 5796 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 5797 | ROM_LOAD( "5c", 0x0000, 0x0800, CRC(b899be2a) SHA1(9b343a682531255104db61177a43ad933c3af34e) ) |
| 5798 | ROM_LOAD( "5d.snd", 0x0800, 0x0800, CRC(80640a04) SHA1(83f2bafcfa5737441194d3058a76b2582317cfcb) ) |
| 5770 | 5799 | |
| 5771 | | http://www.andys-arcade.com |
| 5800 | ROM_REGION( 0x1000, "gfx1", 0 ) |
| 5801 | ROM_LOAD( "5f.cpu", 0x0000, 0x0800, CRC(5b9d4686) SHA1(c7814aefaccab9c8a3a0b015447d366cd2e43c3a) ) |
| 5802 | ROM_LOAD( "5h.cpu", 0x0800, 0x0800, CRC(58c29927) SHA1(b88515d9c3108d2ad59f30fed5d74877b1636280) ) |
| 5772 | 5803 | |
| 5773 | | ************************************************* |
| 5774 | | **Do not seperate this text file from the roms.** |
| 5775 | | ************************************************* |
| 5804 | /* conversion instructions do not mention color proms */ |
| 5805 | /* http://www.arcadeflyers.com/?page=flyer&db=videodb&id=5353&image=2 */ |
| 5806 | /* however, pages may be missing. In addition, it is mentioned that the */ |
| 5807 | /* conversion kit may be used for scramble, amidar and frogger as well. */ |
| 5808 | /* They all have different color proms. */ |
| 5809 | ROM_REGION( 0x0020, "proms", 0 ) |
| 5810 | ROM_LOAD( "superbon.clr", 0x0000, 0x0020, NO_DUMP ) |
| 5776 | 5811 | |
| 5777 | | Nichibutsu Moon Quasar pcb largely unhacked, but |
| 5778 | | with an odd looking set of roms. One gfx rom |
| 5779 | | identifies itself as 'The Pit' so that is my only |
| 5780 | | guess at what the game actually is. |
| 5812 | ROM_END |
| 5781 | 5813 | |
| 5782 | | Roms 1 through 8 read well in-circuit in the right |
| 5783 | | places in the memory map for moon cresta, |
| 5784 | | (through the fluke 9100) but the game does not |
| 5785 | | currently run. Roms dumped adn verified with no |
| 5786 | | anomolies. |
| 5787 | 5814 | |
| 5788 | | Rom 9 was placed on the through-socket and has |
| 5789 | | pins 20 and 18 (/E and A11 respectively) tied to |
| 5790 | | pin 5 of 8E (A14/A15/MREQ demux). This demux has |
| 5791 | | some patches, the trace to pin 13 is cut, and is |
| 5792 | | instead wired to pin 3. |
| 5793 | | |
| 5794 | | */ |
| 5795 | | |
| 5796 | | ROM_START( thepitm ) |
| 5797 | | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 5798 | | ROM_LOAD( "1.bin", 0x0000, 0x0800, CRC(0f78d6ea) SHA1(e224b2fb9b4a26295b03af720fa647d4488a1287) ) |
| 5799 | | ROM_LOAD( "2.bin", 0x0800, 0x0800, CRC(ebacc6eb) SHA1(8b73d96ebe8070fbbb16434aa6a30ec8985ddec6) ) |
| 5800 | | ROM_LOAD( "3.bin", 0x1000, 0x0800, CRC(14fd0706) SHA1(5d905d8272731c307dc9f96caf4973b28413198e) ) |
| 5801 | | ROM_LOAD( "4.bin", 0x1800, 0x0800, CRC(613e920f) SHA1(078c7f36ba0145fbbd24bdae4cb6b03c5c27c1cc) ) |
| 5802 | | ROM_LOAD( "5.bin", 0x2000, 0x0800, CRC(5a791f3f) SHA1(166f07f7fe260e53e611784976792638a25485c1) ) |
| 5803 | | ROM_LOAD( "6.bin", 0x2800, 0x0800, CRC(0bb37f51) SHA1(32e31678388bad048c829bd43a18dc4e24869840) ) |
| 5804 | | ROM_LOAD( "7.bin", 0x3000, 0x0800, CRC(4dfdec6f) SHA1(eb88a278860998c343f94e27c8c6c723cffb2dd9) ) |
| 5805 | | ROM_LOAD( "8.bin", 0x3800, 0x0800, CRC(a39a9189) SHA1(aacd54edca6bc7f7feacd651a0de57b3d9592aad) ) |
| 5806 | | ROM_LOAD( "9.bin", 0x4000, 0x0800, CRC(2eb90e07) SHA1(92678fc5cfeb7119ce27f042571daa831fa1dad5) ) |
| 5807 | | |
| 5808 | | ROM_REGION( 0x2000, "gfx1", 0 ) |
| 5809 | | ROM_LOAD( "1h.bin", 0x0000, 0x0800, CRC(00dce65f) SHA1(ba0cce484d1f8693a85b85e0689d107588df9043) ) |
| 5810 | | ROM_LOAD( "1k.bin", 0x1000, 0x0800, CRC(3ec0056e) SHA1(1dd19e7535ab9abd62b4b32663437f8e8acb91b5) ) |
| 5811 | | |
| 5812 | | ROM_REGION( 0x0020, "proms", 0 ) |
| 5813 | | ROM_LOAD( "6l.bin", 0x0000, 0x0020, CRC(6a0c7d87) SHA1(140335d85c67c75b65689d4e76d29863c209cf32) ) |
| 5814 | | ROM_END |
| 5815 | | |
| 5816 | 5815 | /************************************* |
| 5817 | 5816 | * |
| 5818 | 5817 | * Game drivers |
| r7772 | r7773 | |
| 6021 | 6020 | |
| 6022 | 6021 | |
| 6023 | 6022 | /* scobra */ |
| 6024 | | GAME( 1981, scobra, 0, scobra, scobra, scobra, ROT90, "Konami", "Super Cobra", GAME_SUPPORTS_SAVE ) |
| 6025 | | GAME( 1981, scobras, scobra, scobra, scobras, scobra, ROT90, "[Konami] (Stern license)", "Super Cobra (Stern)", GAME_SUPPORTS_SAVE ) |
| 6026 | | GAME( 1981, scobrase, scobra, scobra, scobras, scobra, ROT90, "[Konami] (Sega license)", "Super Cobra (Sega)", GAME_SUPPORTS_SAVE ) |
| 6027 | | GAME( 1981, scobrab, scobra, scobra, scobras, scobra, ROT90, "bootleg", "Super Cobra (bootleg)", GAME_SUPPORTS_SAVE ) |
| 6028 | | GAME( 1981, suprheli, scobra, scobra, scobras, scobra, ROT90, "bootleg", "Super Heli (Super Cobra bootleg)", GAME_SUPPORTS_SAVE ) |
| 6023 | GAME( 1981, scobra, 0, scobra, scobra, scobra, ROT90, "Konami", "Super Cobra", GAME_SUPPORTS_SAVE ) |
| 6024 | GAME( 1981, scobrase, scobra, scobra, scobra, scobra, ROT90, "[Konami] (Sega license)", "Super Cobra (Sega)", GAME_SUPPORTS_SAVE ) |
| 6025 | GAME( 1981, scobras, scobra, scobra, scobras, scobra, ROT90, "[Konami] (Stern license)", "Super Cobra (Stern)", GAME_SUPPORTS_SAVE ) |
| 6026 | GAME( 1981, scobrab, scobra, scobra, scobras, scobra, ROT90, "bootleg", "Super Cobra (bootleg)", GAME_SUPPORTS_SAVE ) |
| 6027 | GAME( 1981, suprheli, scobra, scobra, scobras, scobra, ROT90, "bootleg", "Super Heli (Super Cobra bootleg)", GAME_SUPPORTS_SAVE ) |
| 6029 | 6028 | |
| 6030 | | GAME( 1982, losttomb, 0, scobra, losttomb, losttomb, ROT90, "Stern", "Lost Tomb (easy)", GAME_SUPPORTS_SAVE ) |
| 6031 | | GAME( 1982, losttombh,losttomb, scobra, losttomb, losttomb, ROT90, "Stern", "Lost Tomb (hard)", GAME_SUPPORTS_SAVE ) |
| 6029 | GAME( 1981, moonwar, 0, moonwar, moonwar, moonwar, ROT90, "Stern", "Moonwar", GAME_SUPPORTS_SAVE ) |
| 6030 | GAME( 1981, moonwara, moonwar, moonwar, moonwara, moonwar, ROT90, "Stern", "Moonwar (older)", GAME_SUPPORTS_SAVE ) |
| 6032 | 6031 | |
| 6033 | | GAME( 1981, armorcar, 0, scobra, armorcar, scobra, ROT90, "Stern", "Armored Car (set 1)", GAME_SUPPORTS_SAVE ) |
| 6034 | | GAME( 1981, armorcar2,armorcar, scobra, armorcar, scobra, ROT90, "Stern", "Armored Car (set 2)", GAME_SUPPORTS_SAVE ) |
| 6032 | GAME( 1981, armorcar, 0, scobra, armorcar, scobra, ROT90, "Stern", "Armored Car (set 1)", GAME_SUPPORTS_SAVE ) |
| 6033 | GAME( 1981, armorcar2, armorcar, scobra, armorcar2, scobra, ROT90, "Stern", "Armored Car (set 2)", GAME_SUPPORTS_SAVE ) |
| 6035 | 6034 | |
| 6036 | | GAME( 1982, tazmania, 0, scobra, tazmania, scobra, ROT90, "Stern", "Tazz-Mania (set 1)", GAME_SUPPORTS_SAVE ) |
| 6035 | GAME( 1982, tazmania, 0, scobra, tazmania, scobra, ROT90, "Stern", "Tazz-Mania (set 1)", GAME_SUPPORTS_SAVE ) |
| 6037 | 6036 | |
| 6038 | | GAME( 1982, anteater, 0, anteater, anteater, anteater, ROT90, "[Stern] (Tago license)", "Anteater", GAME_SUPPORTS_SAVE ) |
| 6037 | GAME( 1982, anteater, 0, anteater, anteater, anteater, ROT90, "[Stern] (Tago license)", "Anteater", GAME_SUPPORTS_SAVE ) |
| 6039 | 6038 | |
| 6040 | | GAME( 1984, spdcoin, 0, scobra, spdcoin, scobra, ROT90, "Stern", "Speed Coin (prototype)", GAME_SUPPORTS_SAVE ) |
| 6041 | | GAME( 1985, superbon, 0, scobra, superbon, superbon, ROT90, "Signatron USA", "Agent Super Bond (Scobra Hardware)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) |
| 6039 | GAME( 1982, calipso, 0, scobra, calipso, calipso, ROT90, "[Stern] (Tago license)", "Calipso", GAME_SUPPORTS_SAVE ) |
| 6042 | 6040 | |
| 6043 | | GAME( 1982, calipso, 0, scobra, calipso, calipso, ROT90, "[Stern] (Tago license)", "Calipso", GAME_SUPPORTS_SAVE ) |
| 6041 | GAME( 1982, losttomb, 0, scobra, losttomb, losttomb, ROT90, "Stern", "Lost Tomb (easy)", GAME_SUPPORTS_SAVE ) |
| 6042 | GAME( 1982, losttombh, losttomb, scobra, losttomb, losttomb, ROT90, "Stern", "Lost Tomb (hard)", GAME_SUPPORTS_SAVE ) |
| 6044 | 6043 | |
| 6045 | | GAME( 1981, moonwar, 0, moonwar, moonwar, moonwar, ROT90, "Stern", "Moonwar", GAME_SUPPORTS_SAVE ) |
| 6046 | | GAME( 1981, moonwara, moonwar, moonwar, moonwara, moonwar, ROT90, "Stern", "Moonwar (older)", GAME_SUPPORTS_SAVE ) |
| 6044 | GAME( 1984, spdcoin, 0, scobra, spdcoin, scobra, ROT90, "Stern", "Speed Coin (prototype)", GAME_SUPPORTS_SAVE ) |
| 6047 | 6045 | |
| 6046 | GAME( 1985, superbon, 0, scobra, superbon, superbon, ROT90, "Signatron USA", "Agent Super Bond (Scobra Hardware)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) |
| 6048 | 6047 | |
| 6049 | 6048 | |
| 6049 | |
| 6050 | 6050 | /* currently in galaxold.c and should be moved here */ |
| 6051 | 6051 | //GAME( 1981, 4in1, 0, 4in1, 4in1, 4in1, ROT90, "Armenia / Food and Fun", "4 Fun in 1", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 6052 | 6052 | //GAME( 1982, bagmanmc, bagman, bagmanmc, bagmanmc, galaxian, ROT90, "bootleg", "Bagman (Moon Cresta hardware)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) |
src/mame/drivers/subsino.c
| r7772 | r7773 | |
| 2059 | 2059 | ROM_LOAD( "sn82s129an.u13", 0x200, 0x100, CRC(0ef5f218) SHA1(a02cf266661385aa078563bd83240d36549c1cf0) ) |
| 2060 | 2060 | ROM_END |
| 2061 | 2061 | |
| 2062 | |
| 2063 | ROM_START( sharkpye ) |
| 2064 | ROM_REGION( 0x14000, "maincpu", 0 ) |
| 2065 | ROM_LOAD( "sharkpye.u18", 0x0a000, 0x6000, CRC(12473814) SHA1(9c24ed41781aefee0161add912e730ba0d4f4d3e) ) |
| 2066 | ROM_CONTINUE(0x0000, 0xa000) |
| 2067 | |
| 2068 | |
| 2069 | ROM_REGION( 0x40000, "tilemap", 0 ) |
| 2070 | ROM_LOAD( "sharkpye.u16", 0x00000, 0x08000, CRC(90862185) SHA1(9d632bfa707d3449a87d7f370eb2b5c36e61aadd) ) |
| 2071 | ROM_CONTINUE( 0x10000, 0x08000 ) |
| 2072 | ROM_CONTINUE( 0x08000, 0x08000 ) |
| 2073 | ROM_CONTINUE( 0x18000, 0x08000 ) |
| 2074 | ROM_LOAD( "sharkpye.u17", 0x20000, 0x08000, CRC(b7b6119a) SHA1(b61c77d2170d96fcb39ea31c4136387441b9037f) ) |
| 2075 | ROM_CONTINUE( 0x30000, 0x08000 ) |
| 2076 | ROM_CONTINUE( 0x28000, 0x08000 ) |
| 2077 | ROM_CONTINUE( 0x38000, 0x08000 ) |
| 2078 | |
| 2079 | ROM_REGION( 0x40000, "oki", 0 ) |
| 2080 | ROM_LOAD( "sharkpye.u54", 0x00000, 0x20000, CRC(9f384c59) SHA1(d2b087b8370b40b6f0944de661ea6aebaebea06f) ) |
| 2081 | |
| 2082 | ROM_REGION( 0x300, "proms", 0 ) |
| 2083 | ROM_LOAD( "n82s129an.u11", 0x000, 0x100, CRC(daf3657a) SHA1(93005938e2d60d54e7bbf1e234bba3802ee1af21) ) |
| 2084 | ROM_LOAD( "n82s129an.u12", 0x100, 0x100, CRC(5a7a25ed) SHA1(eebd679195e6ea50f64f3c46cd06ee21a1550491) ) |
| 2085 | ROM_LOAD( "n82s129an.u13", 0x200, 0x100, CRC(0ef5f218) SHA1(a02cf266661385aa078563bd83240d36549c1cf0) ) |
| 2086 | ROM_END |
| 2087 | |
| 2062 | 2088 | /*************************************************************************** |
| 2063 | 2089 | |
| 2064 | 2090 | Super Rider (Italy Ver 1.6) |
| r7772 | r7773 | |
| 2211 | 2237 | } |
| 2212 | 2238 | #endif |
| 2213 | 2239 | |
| 2240 | unsigned char victor5_xors[8] = { 0x99, 0x99, 0x33, 0x44, 0xbb, 0x88, 0x88, 0xbb }; |
| 2241 | unsigned char victor21_xors[8] = { 0x44, 0xbb, 0x66, 0x44, 0xaa, 0x55, 0x88, 0x22 }; |
| 2242 | unsigned char crsbingo_xors[8] = { 0xbb, 0xcc, 0xcc, 0xdd, 0xaa, 0x11, 0x44, 0xee }; |
| 2243 | unsigned char sharkpy_xors[8] = { 0xcc, 0xaa, 0x66, 0xaa, 0xee, 0x33, 0xff, 0xff }; |
| 2214 | 2244 | |
| 2215 | | static DRIVER_INIT( victor5 ) |
| 2245 | |
| 2246 | void victor5_bitswaps(UINT8* decrypt, int i) |
| 2216 | 2247 | { |
| 2217 | | unsigned char xors[8] = { 0x99, 0x99, 0x33, 0x44, 0xBB, 0x88, 0x88, 0xBB }; |
| 2218 | | int i; |
| 2219 | | UINT8 *decrypt = auto_alloc_array(machine, UINT8, 0x10000); |
| 2220 | | UINT8* region = memory_region(machine,"maincpu"); |
| 2248 | if ((i&7) == 0) decrypt[i] = BITSWAP8(decrypt[i],7,2,5,4,3,6,1,0); |
| 2249 | if ((i&7) == 1) decrypt[i] = BITSWAP8(decrypt[i],7,6,5,0,3,2,1,4); |
| 2250 | if ((i&7) == 2) decrypt[i] = BITSWAP8(decrypt[i],7,2,1,0,3,6,5,4); |
| 2251 | if ((i&7) == 3) decrypt[i] = BITSWAP8(decrypt[i],7,2,1,0,3,6,5,4); |
| 2252 | if ((i&7) == 4) decrypt[i] = BITSWAP8(decrypt[i],3,2,1,0,7,6,5,4); |
| 2253 | if ((i&7) == 5) decrypt[i] = BITSWAP8(decrypt[i],7,6,5,0,3,2,1,4); |
| 2254 | if ((i&7) == 6) decrypt[i] = BITSWAP8(decrypt[i],3,6,1,0,7,2,5,4); |
| 2255 | if ((i&7) == 7) decrypt[i] = BITSWAP8(decrypt[i],7,2,1,4,3,6,5,0); |
| 2256 | } |
| 2221 | 2257 | |
| 2222 | | for (i=0;i<0x10000;i++) |
| 2223 | | { |
| 2224 | | if (i<0xc000) |
| 2225 | | { |
| 2226 | | decrypt[i] = region[i]^xors[i&7]; |
| 2227 | 2258 | |
| 2228 | | if ((i&7) == 0) decrypt[i] = BITSWAP8(decrypt[i],7,2,5,4,3,6,1,0); |
| 2229 | | if ((i&7) == 1) decrypt[i] = BITSWAP8(decrypt[i],7,6,5,0,3,2,1,4); |
| 2230 | | if ((i&7) == 2) decrypt[i] = BITSWAP8(decrypt[i],7,2,1,0,3,6,5,4); |
| 2231 | | if ((i&7) == 3) decrypt[i] = BITSWAP8(decrypt[i],7,2,1,0,3,6,5,4); |
| 2232 | | if ((i&7) == 4) decrypt[i] = BITSWAP8(decrypt[i],3,2,1,0,7,6,5,4); |
| 2233 | | if ((i&7) == 5) decrypt[i] = BITSWAP8(decrypt[i],7,6,5,0,3,2,1,4); |
| 2234 | | if ((i&7) == 6) decrypt[i] = BITSWAP8(decrypt[i],3,6,1,0,7,2,5,4); |
| 2235 | | if ((i&7) == 7) decrypt[i] = BITSWAP8(decrypt[i],7,2,1,4,3,6,5,0); |
| 2236 | | } |
| 2237 | | else |
| 2238 | | { |
| 2239 | | decrypt[i] = region[i]; |
| 2240 | | } |
| 2241 | | } |
| 2259 | void victor21_bitswaps(UINT8* decrypt, int i) |
| 2260 | { |
| 2261 | if ((i&7) == 0) decrypt[i] = BITSWAP8(decrypt[i],7,2,1,0,3,6,5,4); |
| 2262 | if ((i&7) == 1) decrypt[i] = BITSWAP8(decrypt[i],3,6,1,4,7,2,5,0); |
| 2263 | if ((i&7) == 2) decrypt[i] = BITSWAP8(decrypt[i],3,2,1,4,7,6,5,0); |
| 2264 | if ((i&7) == 3) decrypt[i] = BITSWAP8(decrypt[i],7,2,5,4,3,6,1,0); |
| 2265 | if ((i&7) == 4) decrypt[i] = BITSWAP8(decrypt[i],7,2,5,4,3,6,1,0); |
| 2266 | if ((i&7) == 5) decrypt[i] = BITSWAP8(decrypt[i],3,6,5,0,7,2,1,4); |
| 2267 | if ((i&7) == 6) decrypt[i] = BITSWAP8(decrypt[i],7,6,5,4,3,2,1,0); |
| 2268 | if ((i&7) == 7) decrypt[i] = BITSWAP8(decrypt[i],3,2,1,4,7,6,5,0); |
| 2269 | } |
| 2242 | 2270 | |
| 2243 | | // dump_decrypted(machine, decrypt); |
| 2271 | void crsbingo_bitswaps(UINT8* decrypt, int i) |
| 2272 | { |
| 2273 | if ((i&7) == 0) decrypt[i] = BITSWAP8(decrypt[i],7,2,5,4,3,6,1,0); |
| 2274 | if ((i&7) == 1) decrypt[i] = BITSWAP8(decrypt[i],7,2,1,0,3,6,5,4); |
| 2275 | if ((i&7) == 2) decrypt[i] = BITSWAP8(decrypt[i],3,2,5,0,7,6,1,4); |
| 2276 | if ((i&7) == 3) decrypt[i] = BITSWAP8(decrypt[i],7,2,5,0,3,6,1,4); |
| 2277 | if ((i&7) == 4) decrypt[i] = BITSWAP8(decrypt[i],7,6,5,0,3,2,1,4); |
| 2278 | if ((i&7) == 5) decrypt[i] = BITSWAP8(decrypt[i],7,2,1,4,3,6,5,0); |
| 2279 | if ((i&7) == 6) decrypt[i] = BITSWAP8(decrypt[i],7,2,1,0,3,6,5,4); |
| 2280 | if ((i&7) == 7) decrypt[i] = BITSWAP8(decrypt[i],3,2,1,0,7,6,5,4); |
| 2281 | } |
| 2244 | 2282 | |
| 2245 | | memcpy(region, decrypt, 0x10000); |
| 2283 | void sharkpy_bitswaps(UINT8* decrypt, int i) |
| 2284 | { |
| 2285 | if ((i&7) == 0) decrypt[i] = BITSWAP8(decrypt[i],3,2,1,0,7,6,5,4); |
| 2286 | if ((i&7) == 1) decrypt[i] = BITSWAP8(decrypt[i],7,2,5,4,3,6,1,0); |
| 2287 | if ((i&7) == 2) decrypt[i] = BITSWAP8(decrypt[i],7,2,1,4,3,6,5,0); |
| 2288 | if ((i&7) == 3) decrypt[i] = BITSWAP8(decrypt[i],3,6,1,0,7,2,5,4); |
| 2289 | if ((i&7) == 4) decrypt[i] = BITSWAP8(decrypt[i],7,2,5,4,3,6,1,0); |
| 2290 | if ((i&7) == 5) decrypt[i] = BITSWAP8(decrypt[i],3,2,5,4,7,6,1,0); |
| 2291 | if ((i&7) == 6) decrypt[i] = BITSWAP8(decrypt[i],7,6,1,4,3,2,5,0); |
| 2292 | if ((i&7) == 7) decrypt[i] = BITSWAP8(decrypt[i],3,6,1,4,7,2,5,0); |
| 2246 | 2293 | } |
| 2247 | 2294 | |
| 2248 | | static DRIVER_INIT( victor21 ) |
| 2295 | void subsino_decrypt(running_machine* machine, void (*bitswaps)(UINT8* decrypt, int i), UINT8* xors, int size) |
| 2249 | 2296 | { |
| 2250 | | unsigned char xors[8] = { 0x44, 0xBB, 0x66, 0x44, 0xAA, 0x55, 0x88, 0x22 }; |
| 2251 | 2297 | int i; |
| 2252 | 2298 | UINT8 *decrypt = auto_alloc_array(machine, UINT8, 0x10000); |
| 2253 | 2299 | UINT8* region = memory_region(machine,"maincpu"); |
| 2254 | 2300 | |
| 2255 | 2301 | for (i=0;i<0x10000;i++) |
| 2256 | 2302 | { |
| 2257 | | if (i<0xc000) |
| 2303 | if (i<size) |
| 2258 | 2304 | { |
| 2259 | 2305 | decrypt[i] = region[i]^xors[i&7]; |
| 2260 | | |
| 2261 | | if ((i&7) == 0) decrypt[i] = BITSWAP8(decrypt[i],7,2,1,0,3,6,5,4); |
| 2262 | | if ((i&7) == 1) decrypt[i] = BITSWAP8(decrypt[i],3,6,1,4,7,2,5,0); |
| 2263 | | if ((i&7) == 2) decrypt[i] = BITSWAP8(decrypt[i],3,2,1,4,7,6,5,0); |
| 2264 | | if ((i&7) == 3) decrypt[i] = BITSWAP8(decrypt[i],7,2,5,4,3,6,1,0); |
| 2265 | | if ((i&7) == 4) decrypt[i] = BITSWAP8(decrypt[i],7,2,5,4,3,6,1,0); |
| 2266 | | if ((i&7) == 5) decrypt[i] = BITSWAP8(decrypt[i],3,6,5,0,7,2,1,4); |
| 2267 | | if ((i&7) == 6) decrypt[i] = BITSWAP8(decrypt[i],7,6,5,4,3,2,1,0); |
| 2268 | | if ((i&7) == 7) decrypt[i] = BITSWAP8(decrypt[i],3,2,1,4,7,6,5,0); |
| 2306 | bitswaps(decrypt, i); |
| 2269 | 2307 | } |
| 2270 | 2308 | else |
| 2271 | 2309 | { |
| 2272 | 2310 | decrypt[i] = region[i]; |
| 2273 | 2311 | } |
| 2274 | 2312 | } |
| 2275 | | |
| 2276 | 2313 | // dump_decrypted(machine, decrypt); |
| 2277 | | |
| 2278 | 2314 | memcpy(region, decrypt, 0x10000); |
| 2279 | 2315 | } |
| 2280 | 2316 | |
| 2281 | | static DRIVER_INIT( crsbingo ) |
| 2282 | | { |
| 2283 | | unsigned char xors[8] = { 0x44, 0x33, 0x33, 0x22, 0x55, 0xEE, 0xBB, 0x11 }; |
| 2284 | | int i; |
| 2285 | | UINT8 *decrypt = auto_alloc_array(machine, UINT8, 0x10000); |
| 2286 | | UINT8* region = memory_region(machine,"maincpu"); |
| 2287 | 2317 | |
| 2288 | | for (i=0;i<0x10000;i++) |
| 2289 | | { |
| 2290 | | if (i<0xc000) |
| 2291 | | { |
| 2292 | | decrypt[i] = region[i]^xors[i&7]^0xff; |
| 2293 | 2318 | |
| 2294 | | if ((i&7) == 0) decrypt[i] = BITSWAP8(decrypt[i],7,2,5,4,3,6,1,0); |
| 2295 | | if ((i&7) == 1) decrypt[i] = BITSWAP8(decrypt[i],7,2,1,0,3,6,5,4); |
| 2296 | | if ((i&7) == 2) decrypt[i] = BITSWAP8(decrypt[i],3,2,5,0,7,6,1,4); |
| 2297 | | if ((i&7) == 3) decrypt[i] = BITSWAP8(decrypt[i],7,2,5,0,3,6,1,4); |
| 2298 | | if ((i&7) == 4) decrypt[i] = BITSWAP8(decrypt[i],7,6,5,0,3,2,1,4); |
| 2299 | | if ((i&7) == 5) decrypt[i] = BITSWAP8(decrypt[i],7,2,1,4,3,6,5,0); |
| 2300 | | if ((i&7) == 6) decrypt[i] = BITSWAP8(decrypt[i],7,2,1,0,3,6,5,4); |
| 2301 | | if ((i&7) == 7) decrypt[i] = BITSWAP8(decrypt[i],3,2,1,0,7,6,5,4); |
| 2302 | | } |
| 2303 | | else |
| 2304 | | { |
| 2305 | | decrypt[i] = region[i]; |
| 2306 | | } |
| 2307 | | } |
| 2319 | static DRIVER_INIT( victor5 ) |
| 2320 | { |
| 2321 | subsino_decrypt(machine, victor5_bitswaps, victor5_xors, 0xc000); |
| 2322 | } |
| 2308 | 2323 | |
| 2309 | | // dump_decrypted(machine, decrypt); |
| 2324 | static DRIVER_INIT( victor21 ) |
| 2325 | { |
| 2326 | subsino_decrypt(machine, victor21_bitswaps, victor21_xors, 0xc000); |
| 2327 | } |
| 2310 | 2328 | |
| 2311 | | memcpy(region, decrypt, 0x10000); |
| 2329 | static DRIVER_INIT( crsbingo ) |
| 2330 | { |
| 2331 | subsino_decrypt(machine, crsbingo_bitswaps, crsbingo_xors, 0xc000); |
| 2312 | 2332 | } |
| 2313 | 2333 | |
| 2314 | 2334 | static DRIVER_INIT( sharkpy ) |
| 2315 | 2335 | { |
| 2316 | | unsigned char xors[8] = { 0x33, 0x55, 0x99, 0x55, 0x11, 0xCC, 0x00, 0x00 }; |
| 2317 | | int i; |
| 2318 | | UINT8 *decrypt = auto_alloc_array(machine, UINT8, 0x10000); |
| 2319 | | UINT8* region = memory_region(machine,"maincpu"); |
| 2336 | subsino_decrypt(machine, sharkpy_bitswaps, sharkpy_xors, 0xa000); |
| 2337 | } |
| 2320 | 2338 | |
| 2321 | | for (i=0;i<0x10000;i++) |
| 2322 | | { |
| 2323 | | if (i<0xa000) |
| 2324 | | { |
| 2325 | | decrypt[i] = region[i]^xors[i&7]^0xff; |
| 2326 | | if ((i&7) == 0) decrypt[i] = BITSWAP8(decrypt[i],3,2,1,0,7,6,5,4); |
| 2327 | | if ((i&7) == 1) decrypt[i] = BITSWAP8(decrypt[i],7,2,5,4,3,6,1,0); |
| 2328 | | if ((i&7) == 2) decrypt[i] = BITSWAP8(decrypt[i],7,2,1,4,3,6,5,0); |
| 2329 | | if ((i&7) == 3) decrypt[i] = BITSWAP8(decrypt[i],3,6,1,0,7,2,5,4); |
| 2330 | | if ((i&7) == 4) decrypt[i] = BITSWAP8(decrypt[i],7,2,5,4,3,6,1,0); |
| 2331 | | if ((i&7) == 5) decrypt[i] = BITSWAP8(decrypt[i],3,2,5,4,7,6,1,0); |
| 2332 | | if ((i&7) == 6) decrypt[i] = BITSWAP8(decrypt[i],7,6,1,4,3,2,5,0); |
| 2333 | | if ((i&7) == 7) decrypt[i] = BITSWAP8(decrypt[i],3,6,1,4,7,2,5,0); |
| 2334 | | } |
| 2335 | | else |
| 2336 | | { |
| 2337 | | decrypt[i] = region[i]; |
| 2338 | | } |
| 2339 | | } |
| 2340 | | |
| 2341 | | // dump_decrypted(machine, decrypt); |
| 2342 | | |
| 2343 | | memcpy(region, decrypt, 0x10000); |
| 2339 | static DRIVER_INIT( sharkpye ) |
| 2340 | { |
| 2341 | subsino_decrypt(machine, victor5_bitswaps, victor5_xors, 0xa000); |
| 2344 | 2342 | } |
| 2345 | 2343 | |
| 2346 | 2344 | static DRIVER_INIT( smoto20 ) |
| r7772 | r7773 | |
| 2371 | 2369 | |
| 2372 | 2370 | /* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ |
| 2373 | 2371 | GAMEL( 1990, victor21, 0, victor21, victor21, victor21, ROT0, "Subsino / Buffy", "Victor 21", 0, layout_victor21 ) |
| 2374 | | GAMEL( 1991, victor5, 0, victor5, victor5, victor5, ROT0, "Subsino", "Victor 5", 0, layout_victor5 ) // board sticker says Victor 5, in-game says G.E.A with no manufacturer info? |
| 2372 | GAMEL( 1991, victor5, 0, victor5, victor5, victor5, ROT0, "Subsino", "G.E.A.", 0, layout_victor5 ) // PCB black-box was marked 'victor 5' - in-game says G.E.A with no manufacturer info? |
| 2375 | 2373 | GAMEL( 1991, tisub, 0, tisub, tisub, tisub, ROT0, "Subsino", "Treasure Island (Subsino)", GAME_WRONG_COLORS, layout_tisub ) |
| 2376 | | GAMEL( 1991, crsbingo, 0, crsbingo, crsbingo, crsbingo, ROT0, "Subsino", "Poker Carnival", 0, layout_crsbingo ) // alt version of Cross Bingo? |
| 2374 | GAMEL( 1991, crsbingo, 0, crsbingo, crsbingo, crsbingo, ROT0, "Subsino", "Poker Carnival", 0, layout_crsbingo ) |
| 2377 | 2375 | GAMEL( 1996, sharkpy, 0, sharkpy, sharkpy, sharkpy, ROT0, "Subsino", "Shark Party (Italy, v1.3)", 0, layout_sharkpy ) // missing POST messages? |
| 2378 | 2376 | GAMEL( 1996, sharkpya, sharkpy, sharkpy, sharkpy, sharkpy, ROT0, "Subsino", "Shark Party (Italy, v1.6)", 0, layout_sharkpy ) // missing POST messages? |
| 2377 | GAMEL( 1995, sharkpye, sharkpy, sharkpy, sharkpy, sharkpye, ROT0, "Alpha", "Shark Party (English, Alpha license)", 0, layout_sharkpy ) // PCB black-box was marked 'victor 6' |
| 2379 | 2378 | GAMEL( 1996, smoto20, 0, srider, smoto20, smoto20, ROT0, "Subsino", "Super Rider (Italy, v2.0)", 0, layout_smoto ) |
| 2380 | 2379 | GAMEL( 1996, smoto16, smoto20, srider, smoto16, smoto16, ROT0, "Subsino", "Super Moto (Italy, v1.6)", 0, layout_smoto ) |
src/mame/drivers/1943.c
| r7772 | r7773 | |
| 24 | 24 | TODO: |
| 25 | 25 | |
| 26 | 26 | - use priority PROM for drawing sprites |
| 27 | - dump / decap the C8751H-88 MCU and use it's code to emulate the protection |
| 27 | 28 | |
| 28 | 29 | */ |
| 29 | 30 | |
| r7772 | r7773 | |
| 305 | 306 | |
| 306 | 307 | ROM_START( 1943 ) |
| 307 | 308 | ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for the banked ROMs images */ |
| 308 | | ROM_LOAD( "1943.01", 0x00000, 0x08000, CRC(c686cc5c) SHA1(5efb2d9df737564d599f71b71a6438f7624b27c3) ) |
| 309 | | ROM_LOAD( "1943.02", 0x10000, 0x10000, CRC(d8880a41) SHA1(2f9b6a3922efa05eed66c63284bace5f337304ac) ) |
| 310 | | ROM_LOAD( "1943.03", 0x20000, 0x10000, CRC(3f0ee26c) SHA1(8da74fe91a6be3f23fc625f2a433f1f79c424994) ) |
| 309 | ROM_LOAD( "bmu01c.12d", 0x00000, 0x08000, CRC(c686cc5c) SHA1(5efb2d9df737564d599f71b71a6438f7624b27c3) ) |
| 310 | ROM_LOAD( "bmu02c.13d", 0x10000, 0x10000, CRC(d8880a41) SHA1(2f9b6a3922efa05eed66c63284bace5f337304ac) ) |
| 311 | ROM_LOAD( "bmu03c.14d", 0x20000, 0x10000, CRC(3f0ee26c) SHA1(8da74fe91a6be3f23fc625f2a433f1f79c424994) ) |
| 311 | 312 | |
| 312 | 313 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 313 | | ROM_LOAD( "1943.05", 0x00000, 0x8000, CRC(ee2bd2d7) SHA1(4d2d019a9f8452fbbb247e893280568a2e86073e) ) |
| 314 | ROM_LOAD( "bm04.5h", 0x00000, 0x8000, CRC(ee2bd2d7) SHA1(4d2d019a9f8452fbbb247e893280568a2e86073e) ) |
| 314 | 315 | |
| 316 | ROM_REGION( 0x10000, "mcu", 0 ) /* C8751H-88 MCU Code */ |
| 317 | ROM_LOAD( "bm.7k", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */ |
| 318 | |
| 315 | 319 | ROM_REGION( 0x8000, "gfx1", 0 ) |
| 316 | | ROM_LOAD( "1943.04", 0x00000, 0x8000, CRC(46cb9d3d) SHA1(96fd0e714b91fe13a2ca0d185ada9e4b4baa0c0b) ) /* characters */ |
| 320 | ROM_LOAD( "bm05.4k", 0x00000, 0x8000, CRC(46cb9d3d) SHA1(96fd0e714b91fe13a2ca0d185ada9e4b4baa0c0b) ) /* characters */ |
| 317 | 321 | |
| 318 | 322 | ROM_REGION( 0x40000, "gfx2", 0 ) |
| 319 | | ROM_LOAD( "1943.15", 0x00000, 0x8000, CRC(6b1a0443) SHA1(32337c840ccd6815fd5844c194365c58d708f6dc) ) /* bg tiles */ |
| 320 | | ROM_LOAD( "1943.16", 0x08000, 0x8000, CRC(23c908c2) SHA1(42b83ff5781be9181802a21ff1b23c17ab1bc5a2) ) |
| 321 | | ROM_LOAD( "1943.17", 0x10000, 0x8000, CRC(46bcdd07) SHA1(38feda668be25d1adc04aa36afc73b07c1545f89) ) |
| 322 | | ROM_LOAD( "1943.18", 0x18000, 0x8000, CRC(e6ae7ba0) SHA1(959c306dc28b9be2adc54b3d46312d26764c7b8b) ) |
| 323 | | ROM_LOAD( "1943.19", 0x20000, 0x8000, CRC(868ababc) SHA1(1c7be905f53c63bad25fbbd9b3cf82d2c7749bc3) ) |
| 324 | | ROM_LOAD( "1943.20", 0x28000, 0x8000, CRC(0917e5d4) SHA1(62dd277bc1fa54cfe168ae2380bc147bd17f4205) ) |
| 325 | | ROM_LOAD( "1943.21", 0x30000, 0x8000, CRC(9bfb0d89) SHA1(f1bae7ec46edcf46c7af84c054e89b322f8c8972) ) |
| 326 | | ROM_LOAD( "1943.22", 0x38000, 0x8000, CRC(04f3c274) SHA1(932780c04abe285e1ec67b726b145175f73eafe0) ) |
| 323 | ROM_LOAD( "bm15.10f", 0x00000, 0x8000, CRC(6b1a0443) SHA1(32337c840ccd6815fd5844c194365c58d708f6dc) ) /* bg tiles */ |
| 324 | ROM_LOAD( "bm16.11f", 0x08000, 0x8000, CRC(23c908c2) SHA1(42b83ff5781be9181802a21ff1b23c17ab1bc5a2) ) |
| 325 | ROM_LOAD( "bm17.12f", 0x10000, 0x8000, CRC(46bcdd07) SHA1(38feda668be25d1adc04aa36afc73b07c1545f89) ) |
| 326 | ROM_LOAD( "bm18.14f", 0x18000, 0x8000, CRC(e6ae7ba0) SHA1(959c306dc28b9be2adc54b3d46312d26764c7b8b) ) |
| 327 | ROM_LOAD( "bm19.10j", 0x20000, 0x8000, CRC(868ababc) SHA1(1c7be905f53c63bad25fbbd9b3cf82d2c7749bc3) ) |
| 328 | ROM_LOAD( "bm20.11j", 0x28000, 0x8000, CRC(0917e5d4) SHA1(62dd277bc1fa54cfe168ae2380bc147bd17f4205) ) |
| 329 | ROM_LOAD( "bm21.12j", 0x30000, 0x8000, CRC(9bfb0d89) SHA1(f1bae7ec46edcf46c7af84c054e89b322f8c8972) ) |
| 330 | ROM_LOAD( "bm22.14j", 0x38000, 0x8000, CRC(04f3c274) SHA1(932780c04abe285e1ec67b726b145175f73eafe0) ) |
| 327 | 331 | |
| 328 | 332 | ROM_REGION( 0x10000, "gfx3", 0 ) |
| 329 | | ROM_LOAD( "1943.24", 0x00000, 0x8000, CRC(11134036) SHA1(88da112ab9fc7e0d8f0e901f273715b950ae588c) ) /* fg tiles */ |
| 330 | | ROM_LOAD( "1943.25", 0x08000, 0x8000, CRC(092cf9c1) SHA1(19fe3c714b1d52cbb21dea25cdee5af841f525db) ) |
| 333 | ROM_LOAD( "bm24.14k", 0x00000, 0x8000, CRC(11134036) SHA1(88da112ab9fc7e0d8f0e901f273715b950ae588c) ) /* fg tiles */ |
| 334 | ROM_LOAD( "bm25.14l", 0x08000, 0x8000, CRC(092cf9c1) SHA1(19fe3c714b1d52cbb21dea25cdee5af841f525db) ) |
| 331 | 335 | |
| 332 | 336 | ROM_REGION( 0x40000, "gfx4", 0 ) |
| 333 | | ROM_LOAD( "1943.06", 0x00000, 0x8000, CRC(97acc8af) SHA1(c9fa07cb61f6905408b355edabfe453fb652ff0d) ) /* sprites */ |
| 334 | | ROM_LOAD( "1943.07", 0x08000, 0x8000, CRC(d78f7197) SHA1(6367c7e80e80d4a0d33d7840b5c843c63c80123e) ) |
| 335 | | ROM_LOAD( "1943.08", 0x10000, 0x8000, CRC(1a626608) SHA1(755c27a07728fd686168e9d9e4dee3d8f274892a) ) |
| 336 | | ROM_LOAD( "1943.09", 0x18000, 0x8000, CRC(92408400) SHA1(3ab299bad1ba115efead53ebd92254abe7a092ba) ) |
| 337 | | ROM_LOAD( "1943.10", 0x20000, 0x8000, CRC(8438a44a) SHA1(873629b00cf3f6d8976a7fdafe63cd16e47b7491) ) |
| 338 | | ROM_LOAD( "1943.11", 0x28000, 0x8000, CRC(6c69351d) SHA1(c213d5c3e76a5749bc32539604716dcef6dcb694) ) |
| 339 | | ROM_LOAD( "1943.12", 0x30000, 0x8000, CRC(5e7efdb7) SHA1(fef271a38dc1a9e45a0c6e27e28e713c77c8f8c9) ) |
| 340 | | ROM_LOAD( "1943.13", 0x38000, 0x8000, CRC(1143829a) SHA1(2b3a65e354a205c05a87f783e9938b64bc62396f) ) |
| 337 | ROM_LOAD( "bm06.10a", 0x00000, 0x8000, CRC(97acc8af) SHA1(c9fa07cb61f6905408b355edabfe453fb652ff0d) ) /* sprites */ |
| 338 | ROM_LOAD( "bm07.11a", 0x08000, 0x8000, CRC(d78f7197) SHA1(6367c7e80e80d4a0d33d7840b5c843c63c80123e) ) |
| 339 | ROM_LOAD( "bm08.12a", 0x10000, 0x8000, CRC(1a626608) SHA1(755c27a07728fd686168e9d9e4dee3d8f274892a) ) |
| 340 | ROM_LOAD( "bm09.14a", 0x18000, 0x8000, CRC(92408400) SHA1(3ab299bad1ba115efead53ebd92254abe7a092ba) ) |
| 341 | ROM_LOAD( "bm10.10c", 0x20000, 0x8000, CRC(8438a44a) SHA1(873629b00cf3f6d8976a7fdafe63cd16e47b7491) ) |
| 342 | ROM_LOAD( "bm11.11c", 0x28000, 0x8000, CRC(6c69351d) SHA1(c213d5c3e76a5749bc32539604716dcef6dcb694) ) |
| 343 | ROM_LOAD( "bm12.12c", 0x30000, 0x8000, CRC(5e7efdb7) SHA1(fef271a38dc1a9e45a0c6e27e28e713c77c8f8c9) ) |
| 344 | ROM_LOAD( "bm13.14c", 0x38000, 0x8000, CRC(1143829a) SHA1(2b3a65e354a205c05a87f783e9938b64bc62396f) ) |
| 341 | 345 | |
| 342 | 346 | ROM_REGION( 0x10000, "gfx5", 0 ) /* tilemaps */ |
| 343 | | ROM_LOAD( "1943.14", 0x0000, 0x8000, CRC(4d3c6401) SHA1(ce4f6dbf8fa030ad45cbb5afd58df27fed2d4618) ) /* front background */ |
| 344 | | ROM_LOAD( "1943.23", 0x8000, 0x8000, CRC(a52aecbd) SHA1(45b0283d84d394c16c35802463ca95d70d1062d4) ) /* back background */ |
| 347 | ROM_LOAD( "bm14.5f", 0x0000, 0x8000, CRC(4d3c6401) SHA1(ce4f6dbf8fa030ad45cbb5afd58df27fed2d4618) ) /* front background */ |
| 348 | ROM_LOAD( "bm23.8k", 0x8000, 0x8000, CRC(a52aecbd) SHA1(45b0283d84d394c16c35802463ca95d70d1062d4) ) /* back background */ |
| 345 | 349 | |
| 346 | 350 | ROM_REGION( 0x0c00, "proms", 0 ) |
| 347 | | ROM_LOAD( "bmprom.01", 0x0000, 0x0100, CRC(74421f18) SHA1(5b8b59f6f4e5ad358611de50608f47f41a5b0e51) ) /* red component */ |
| 348 | | ROM_LOAD( "bmprom.02", 0x0100, 0x0100, CRC(ac27541f) SHA1(1796c4c9041dfe28e6319576f21df1dbcb8d12bf) ) /* green component */ |
| 349 | | ROM_LOAD( "bmprom.03", 0x0200, 0x0100, CRC(251fb6ff) SHA1(d1118159b3d429d841e4efa938728ebedadd7ec5) ) /* blue component */ |
| 350 | | ROM_LOAD( "bmprom.05", 0x0300, 0x0100, CRC(206713d0) SHA1(fa609f6d675af18c379838583505724d28bcff0e) ) /* char lookup table */ |
| 351 | | ROM_LOAD( "bmprom.10", 0x0400, 0x0100, CRC(33c2491c) SHA1(13da924e4b182759c4aae49034f3a7cbe556ea65) ) /* foreground lookup table */ |
| 352 | | ROM_LOAD( "bmprom.09", 0x0500, 0x0100, CRC(aeea4af7) SHA1(98f4570ee061e9aa58d8ed2d2f8ae59ce2ec5795) ) /* foreground palette bank */ |
| 353 | | ROM_LOAD( "bmprom.12", 0x0600, 0x0100, CRC(c18aa136) SHA1(684f04d9a5b94ae1db5fb95763e65271f4cf8e01) ) /* background lookup table */ |
| 354 | | ROM_LOAD( "bmprom.11", 0x0700, 0x0100, CRC(405aae37) SHA1(94a06f81b775c4e49d57d42fc064d3072a253bbd) ) /* background palette bank */ |
| 355 | | ROM_LOAD( "bmprom.08", 0x0800, 0x0100, CRC(c2010a9e) SHA1(be9852500209066e2f0ff2770e0c217d1636a0b5) ) /* sprite lookup table */ |
| 356 | | ROM_LOAD( "bmprom.07", 0x0900, 0x0100, CRC(b56f30c3) SHA1(9f5e6db464d21457a33ec8bdfdff069632b791db) ) /* sprite palette bank */ |
| 357 | | ROM_LOAD( "bmprom.04", 0x0a00, 0x0100, CRC(91a8a2e1) SHA1(9583c87eff876f04bc2ccf7218cd8081f1bcdb94) ) /* priority encoder / palette selector (not used) */ |
| 358 | | ROM_LOAD( "bmprom.06", 0x0b00, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ |
| 351 | ROM_LOAD( "bm1.12a", 0x0000, 0x0100, CRC(74421f18) SHA1(5b8b59f6f4e5ad358611de50608f47f41a5b0e51) ) /* red component */ |
| 352 | ROM_LOAD( "bm2.13a", 0x0100, 0x0100, CRC(ac27541f) SHA1(1796c4c9041dfe28e6319576f21df1dbcb8d12bf) ) /* green component */ |
| 353 | ROM_LOAD( "bm3.14a", 0x0200, 0x0100, CRC(251fb6ff) SHA1(d1118159b3d429d841e4efa938728ebedadd7ec5) ) /* blue component */ |
| 354 | ROM_LOAD( "bm5.7f", 0x0300, 0x0100, CRC(206713d0) SHA1(fa609f6d675af18c379838583505724d28bcff0e) ) /* char lookup table */ |
| 355 | ROM_LOAD( "bm10.7l", 0x0400, 0x0100, CRC(33c2491c) SHA1(13da924e4b182759c4aae49034f3a7cbe556ea65) ) /* foreground lookup table */ |
| 356 | ROM_LOAD( "bm9.6l", 0x0500, 0x0100, CRC(aeea4af7) SHA1(98f4570ee061e9aa58d8ed2d2f8ae59ce2ec5795) ) /* foreground palette bank */ |
| 357 | ROM_LOAD( "bm12.12m", 0x0600, 0x0100, CRC(c18aa136) SHA1(684f04d9a5b94ae1db5fb95763e65271f4cf8e01) ) /* background lookup table */ |
| 358 | ROM_LOAD( "bm11.12l", 0x0700, 0x0100, CRC(405aae37) SHA1(94a06f81b775c4e49d57d42fc064d3072a253bbd) ) /* background palette bank */ |
| 359 | ROM_LOAD( "bm8.8c", 0x0800, 0x0100, CRC(c2010a9e) SHA1(be9852500209066e2f0ff2770e0c217d1636a0b5) ) /* sprite lookup table */ |
| 360 | ROM_LOAD( "bm7.7c", 0x0900, 0x0100, CRC(b56f30c3) SHA1(9f5e6db464d21457a33ec8bdfdff069632b791db) ) /* sprite palette bank */ |
| 361 | ROM_LOAD( "bm4.12c", 0x0a00, 0x0100, CRC(91a8a2e1) SHA1(9583c87eff876f04bc2ccf7218cd8081f1bcdb94) ) /* priority encoder / palette selector (not used) */ |
| 362 | ROM_LOAD( "bm6.4b", 0x0b00, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ |
| 359 | 363 | ROM_END |
| 360 | 364 | |
| 361 | 365 | ROM_START( 1943j ) |
| 362 | 366 | ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for the banked ROMs images */ |
| 363 | | ROM_LOAD( "1943jap.001", 0x00000, 0x08000, CRC(f6935937) SHA1(6fe8885d734447c2a667cf80dd545200aad6c767) ) |
| 364 | | ROM_LOAD( "1943jap.002", 0x10000, 0x10000, CRC(af971575) SHA1(af1d8ce73e8671b7b41248ce6486c9b5aaf6a233) ) |
| 365 | | ROM_LOAD( "1943jap.003", 0x20000, 0x10000, CRC(300ec713) SHA1(f66d2356b413a418c887b4085a5315475c7a8bba) ) |
| 367 | ROM_LOAD( "bmj01.12d", 0x00000, 0x08000, CRC(f6935937) SHA1(6fe8885d734447c2a667cf80dd545200aad6c767) ) /* Rom labels/names + revision needs to be verified */ |
| 368 | ROM_LOAD( "bmj02.13d", 0x10000, 0x10000, CRC(af971575) SHA1(af1d8ce73e8671b7b41248ce6486c9b5aaf6a233) ) |
| 369 | ROM_LOAD( "bmj03.14d", 0x20000, 0x10000, CRC(300ec713) SHA1(f66d2356b413a418c887b4085a5315475c7a8bba) ) |
| 366 | 370 | |
| 367 | 371 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 368 | | ROM_LOAD( "1943.05", 0x00000, 0x8000, CRC(ee2bd2d7) SHA1(4d2d019a9f8452fbbb247e893280568a2e86073e) ) |
| 372 | ROM_LOAD( "bm04.5h", 0x00000, 0x8000, CRC(ee2bd2d7) SHA1(4d2d019a9f8452fbbb247e893280568a2e86073e) ) |
| 369 | 373 | |
| 374 | ROM_REGION( 0x10000, "mcu", 0 ) /* C8751H-88 MCU Code */ |
| 375 | ROM_LOAD( "bm.7k", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */ |
| 376 | |
| 370 | 377 | ROM_REGION( 0x8000, "gfx1", 0 ) |
| 371 | | ROM_LOAD( "1943.04", 0x00000, 0x8000, CRC(46cb9d3d) SHA1(96fd0e714b91fe13a2ca0d185ada9e4b4baa0c0b) ) /* characters */ |
| 378 | ROM_LOAD( "bm05.4k", 0x00000, 0x8000, CRC(46cb9d3d) SHA1(96fd0e714b91fe13a2ca0d185ada9e4b4baa0c0b) ) /* characters */ |
| 372 | 379 | |
| 373 | 380 | ROM_REGION( 0x40000, "gfx2", 0 ) |
| 374 | | ROM_LOAD( "1943.15", 0x00000, 0x8000, CRC(6b1a0443) SHA1(32337c840ccd6815fd5844c194365c58d708f6dc) ) /* bg tiles */ |
| 375 | | ROM_LOAD( "1943.16", 0x08000, 0x8000, CRC(23c908c2) SHA1(42b83ff5781be9181802a21ff1b23c17ab1bc5a2) ) |
| 376 | | ROM_LOAD( "1943.17", 0x10000, 0x8000, CRC(46bcdd07) SHA1(38feda668be25d1adc04aa36afc73b07c1545f89) ) |
| 377 | | ROM_LOAD( "1943.18", 0x18000, 0x8000, CRC(e6ae7ba0) SHA1(959c306dc28b9be2adc54b3d46312d26764c7b8b) ) |
| 378 | | ROM_LOAD( "1943.19", 0x20000, 0x8000, CRC(868ababc) SHA1(1c7be905f53c63bad25fbbd9b3cf82d2c7749bc3) ) |
| 379 | | ROM_LOAD( "1943.20", 0x28000, 0x8000, CRC(0917e5d4) SHA1(62dd277bc1fa54cfe168ae2380bc147bd17f4205) ) |
| 380 | | ROM_LOAD( "1943.21", 0x30000, 0x8000, CRC(9bfb0d89) SHA1(f1bae7ec46edcf46c7af84c054e89b322f8c8972) ) |
| 381 | | ROM_LOAD( "1943.22", 0x38000, 0x8000, CRC(04f3c274) SHA1(932780c04abe285e1ec67b726b145175f73eafe0) ) |
| 381 | ROM_LOAD( "bm15.10f", 0x00000, 0x8000, CRC(6b1a0443) SHA1(32337c840ccd6815fd5844c194365c58d708f6dc) ) /* bg tiles */ |
| 382 | ROM_LOAD( "bm16.11f", 0x08000, 0x8000, CRC(23c908c2) SHA1(42b83ff5781be9181802a21ff1b23c17ab1bc5a2) ) |
| 383 | ROM_LOAD( "bm17.12f", 0x10000, 0x8000, CRC(46bcdd07) SHA1(38feda668be25d1adc04aa36afc73b07c1545f89) ) |
| 384 | ROM_LOAD( "bm18.14f", 0x18000, 0x8000, CRC(e6ae7ba0) SHA1(959c306dc28b9be2adc54b3d46312d26764c7b8b) ) |
| 385 | ROM_LOAD( "bm19.10j", 0x20000, 0x8000, CRC(868ababc) SHA1(1c7be905f53c63bad25fbbd9b3cf82d2c7749bc3) ) |
| 386 | ROM_LOAD( "bm20.11j", 0x28000, 0x8000, CRC(0917e5d4) SHA1(62dd277bc1fa54cfe168ae2380bc147bd17f4205) ) |
| 387 | ROM_LOAD( "bm21.12j", 0x30000, 0x8000, CRC(9bfb0d89) SHA1(f1bae7ec46edcf46c7af84c054e89b322f8c8972) ) |
| 388 | ROM_LOAD( "bm22.14j", 0x38000, 0x8000, CRC(04f3c274) SHA1(932780c04abe285e1ec67b726b145175f73eafe0) ) |
| 382 | 389 | |
| 383 | 390 | ROM_REGION( 0x10000, "gfx3", 0 ) |
| 384 | | ROM_LOAD( "1943.24", 0x00000, 0x8000, CRC(11134036) SHA1(88da112ab9fc7e0d8f0e901f273715b950ae588c) ) /* fg tiles */ |
| 385 | | ROM_LOAD( "1943.25", 0x08000, 0x8000, CRC(092cf9c1) SHA1(19fe3c714b1d52cbb21dea25cdee5af841f525db) ) |
| 391 | ROM_LOAD( "bm24.14k", 0x00000, 0x8000, CRC(11134036) SHA1(88da112ab9fc7e0d8f0e901f273715b950ae588c) ) /* fg tiles */ |
| 392 | ROM_LOAD( "bm25.14l", 0x08000, 0x8000, CRC(092cf9c1) SHA1(19fe3c714b1d52cbb21dea25cdee5af841f525db) ) |
| 386 | 393 | |
| 387 | 394 | ROM_REGION( 0x40000, "gfx4", 0 ) |
| 388 | | ROM_LOAD( "1943.06", 0x00000, 0x8000, CRC(97acc8af) SHA1(c9fa07cb61f6905408b355edabfe453fb652ff0d) ) /* sprites */ |
| 389 | | ROM_LOAD( "1943.07", 0x08000, 0x8000, CRC(d78f7197) SHA1(6367c7e80e80d4a0d33d7840b5c843c63c80123e) ) |
| 390 | | ROM_LOAD( "1943.08", 0x10000, 0x8000, CRC(1a626608) SHA1(755c27a07728fd686168e9d9e4dee3d8f274892a) ) |
| 391 | | ROM_LOAD( "1943.09", 0x18000, 0x8000, CRC(92408400) SHA1(3ab299bad1ba115efead53ebd92254abe7a092ba) ) |
| 392 | | ROM_LOAD( "1943.10", 0x20000, 0x8000, CRC(8438a44a) SHA1(873629b00cf3f6d8976a7fdafe63cd16e47b7491) ) |
| 393 | | ROM_LOAD( "1943.11", 0x28000, 0x8000, CRC(6c69351d) SHA1(c213d5c3e76a5749bc32539604716dcef6dcb694) ) |
| 394 | | ROM_LOAD( "1943.12", 0x30000, 0x8000, CRC(5e7efdb7) SHA1(fef271a38dc1a9e45a0c6e27e28e713c77c8f8c9) ) |
| 395 | | ROM_LOAD( "1943.13", 0x38000, 0x8000, CRC(1143829a) SHA1(2b3a65e354a205c05a87f783e9938b64bc62396f) ) |
| 395 | ROM_LOAD( "bm06.10a", 0x00000, 0x8000, CRC(97acc8af) SHA1(c9fa07cb61f6905408b355edabfe453fb652ff0d) ) /* sprites */ |
| 396 | ROM_LOAD( "bm07.11a", 0x08000, 0x8000, CRC(d78f7197) SHA1(6367c7e80e80d4a0d33d7840b5c843c63c80123e) ) |
| 397 | ROM_LOAD( "bm08.12a", 0x10000, 0x8000, CRC(1a626608) SHA1(755c27a07728fd686168e9d9e4dee3d8f274892a) ) |
| 398 | ROM_LOAD( "bm09.14a", 0x18000, 0x8000, CRC(92408400) SHA1(3ab299bad1ba115efead53ebd92254abe7a092ba) ) |
| 399 | ROM_LOAD( "bm10.10c", 0x20000, 0x8000, CRC(8438a44a) SHA1(873629b00cf3f6d8976a7fdafe63cd16e47b7491) ) |
| 400 | ROM_LOAD( "bm11.11c", 0x28000, 0x8000, CRC(6c69351d) SHA1(c213d5c3e76a5749bc32539604716dcef6dcb694) ) |
| 401 | ROM_LOAD( "bm12.12c", 0x30000, 0x8000, CRC(5e7efdb7) SHA1(fef271a38dc1a9e45a0c6e27e28e713c77c8f8c9) ) |
| 402 | ROM_LOAD( "bm13.14c", 0x38000, 0x8000, CRC(1143829a) SHA1(2b3a65e354a205c05a87f783e9938b64bc62396f) ) |
| 396 | 403 | |
| 397 | 404 | ROM_REGION( 0x10000, "gfx5", 0 ) /* tilemaps */ |
| 398 | | ROM_LOAD( "1943.14", 0x0000, 0x8000, CRC(4d3c6401) SHA1(ce4f6dbf8fa030ad45cbb5afd58df27fed2d4618) ) /* front background */ |
| 399 | | ROM_LOAD( "1943.23", 0x8000, 0x8000, CRC(a52aecbd) SHA1(45b0283d84d394c16c35802463ca95d70d1062d4) ) /* back background */ |
| 405 | ROM_LOAD( "bm14.5f", 0x0000, 0x8000, CRC(4d3c6401) SHA1(ce4f6dbf8fa030ad45cbb5afd58df27fed2d4618) ) /* front background */ |
| 406 | ROM_LOAD( "bm23.8k", 0x8000, 0x8000, CRC(a52aecbd) SHA1(45b0283d84d394c16c35802463ca95d70d1062d4) ) /* back background */ |
| 400 | 407 | |
| 401 | 408 | ROM_REGION( 0x0c00, "proms", 0 ) |
| 402 | | ROM_LOAD( "bmprom.01", 0x0000, 0x0100, CRC(74421f18) SHA1(5b8b59f6f4e5ad358611de50608f47f41a5b0e51) ) /* red component */ |
| 403 | | ROM_LOAD( "bmprom.02", 0x0100, 0x0100, CRC(ac27541f) SHA1(1796c4c9041dfe28e6319576f21df1dbcb8d12bf) ) /* green component */ |
| 404 | | ROM_LOAD( "bmprom.03", 0x0200, 0x0100, CRC(251fb6ff) SHA1(d1118159b3d429d841e4efa938728ebedadd7ec5) ) /* blue component */ |
| 405 | | ROM_LOAD( "bmprom.05", 0x0300, 0x0100, CRC(206713d0) SHA1(fa609f6d675af18c379838583505724d28bcff0e) ) /* char lookup table */ |
| 406 | | ROM_LOAD( "bmprom.10", 0x0400, 0x0100, CRC(33c2491c) SHA1(13da924e4b182759c4aae49034f3a7cbe556ea65) ) /* foreground lookup table */ |
| 407 | | ROM_LOAD( "bmprom.09", 0x0500, 0x0100, CRC(aeea4af7) SHA1(98f4570ee061e9aa58d8ed2d2f8ae59ce2ec5795) ) /* foreground palette bank */ |
| 408 | | ROM_LOAD( "bmprom.12", 0x0600, 0x0100, CRC(c18aa136) SHA1(684f04d9a5b94ae1db5fb95763e65271f4cf8e01) ) /* background lookup table */ |
| 409 | | ROM_LOAD( "bmprom.11", 0x0700, 0x0100, CRC(405aae37) SHA1(94a06f81b775c4e49d57d42fc064d3072a253bbd) ) /* background palette bank */ |
| 410 | | ROM_LOAD( "bmprom.08", 0x0800, 0x0100, CRC(c2010a9e) SHA1(be9852500209066e2f0ff2770e0c217d1636a0b5) ) /* sprite lookup table */ |
| 411 | | ROM_LOAD( "bmprom.07", 0x0900, 0x0100, CRC(b56f30c3) SHA1(9f5e6db464d21457a33ec8bdfdff069632b791db) ) /* sprite palette bank */ |
| 412 | | ROM_LOAD( "bmprom.04", 0x0a00, 0x0100, CRC(91a8a2e1) SHA1(9583c87eff876f04bc2ccf7218cd8081f1bcdb94) ) /* priority encoder / palette selector (not used) */ |
| 413 | | ROM_LOAD( "bmprom.06", 0x0b00, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ |
| 409 | ROM_LOAD( "bm1.12a", 0x0000, 0x0100, CRC(74421f18) SHA1(5b8b59f6f4e5ad358611de50608f47f41a5b0e51) ) /* red component */ |
| 410 | ROM_LOAD( "bm2.13a", 0x0100, 0x0100, CRC(ac27541f) SHA1(1796c4c9041dfe28e6319576f21df1dbcb8d12bf) ) /* green component */ |
| 411 | ROM_LOAD( "bm3.14a", 0x0200, 0x0100, CRC(251fb6ff) SHA1(d1118159b3d429d841e4efa938728ebedadd7ec5) ) /* blue component */ |
| 412 | ROM_LOAD( "bm5.7f", 0x0300, 0x0100, CRC(206713d0) SHA1(fa609f6d675af18c379838583505724d28bcff0e) ) /* char lookup table */ |
| 413 | ROM_LOAD( "bm10.7l", 0x0400, 0x0100, CRC(33c2491c) SHA1(13da924e4b182759c4aae49034f3a7cbe556ea65) ) /* foreground lookup table */ |
| 414 | ROM_LOAD( "bm9.6l", 0x0500, 0x0100, CRC(aeea4af7) SHA1(98f4570ee061e9aa58d8ed2d2f8ae59ce2ec5795) ) /* foreground palette bank */ |
| 415 | ROM_LOAD( "bm12.12m", 0x0600, 0x0100, CRC(c18aa136) SHA1(684f04d9a5b94ae1db5fb95763e65271f4cf8e01) ) /* background lookup table */ |
| 416 | ROM_LOAD( "bm11.12l", 0x0700, 0x0100, CRC(405aae37) SHA1(94a06f81b775c4e49d57d42fc064d3072a253bbd) ) /* background palette bank */ |
| 417 | ROM_LOAD( "bm8.8c", 0x0800, 0x0100, CRC(c2010a9e) SHA1(be9852500209066e2f0ff2770e0c217d1636a0b5) ) /* sprite lookup table */ |
| 418 | ROM_LOAD( "bm7.7c", 0x0900, 0x0100, CRC(b56f30c3) SHA1(9f5e6db464d21457a33ec8bdfdff069632b791db) ) /* sprite palette bank */ |
| 419 | ROM_LOAD( "bm4.12c", 0x0a00, 0x0100, CRC(91a8a2e1) SHA1(9583c87eff876f04bc2ccf7218cd8081f1bcdb94) ) /* priority encoder / palette selector (not used) */ |
| 420 | ROM_LOAD( "bm6.4b", 0x0b00, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ |
| 414 | 421 | ROM_END |
| 415 | 422 | |
| 416 | 423 | ROM_START( 1943kai ) |
| 417 | 424 | ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for the banked ROMs images */ |
| 418 | | ROM_LOAD( "1943kai.01", 0x00000, 0x08000, CRC(7d2211db) SHA1(b02a0b3daf7e1e224b7cad8fbe93439bd5ec9f0b) ) |
| 419 | | ROM_LOAD( "1943kai.02", 0x10000, 0x10000, CRC(2ebbc8c5) SHA1(3be5ad061411642723e3f2bcb7b3c3caa11ee15f) ) |
| 420 | | ROM_LOAD( "1943kai.03", 0x20000, 0x10000, CRC(475a6ac5) SHA1(fa07a855ba9173b6f81641c806ec7d938b0c282e) ) |
| 425 | ROM_LOAD( "bmk01.12d", 0x00000, 0x08000, CRC(7d2211db) SHA1(b02a0b3daf7e1e224b7cad8fbe93439bd5ec9f0b) ) /* Rom labels/names + revision needs to be verified */ |
| 426 | ROM_LOAD( "bmk02.13d", 0x10000, 0x10000, CRC(2ebbc8c5) SHA1(3be5ad061411642723e3f2bcb7b3c3caa11ee15f) ) |
| 427 | ROM_LOAD( "bmk03.14d", 0x20000, 0x10000, CRC(475a6ac5) SHA1(fa07a855ba9173b6f81641c806ec7d938b0c282e) ) |
| 421 | 428 | |
| 422 | 429 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 423 | | ROM_LOAD( "1943kai.05", 0x00000, 0x8000, CRC(25f37957) SHA1(1e50c2a920eb3b5c881843686db857e9fee5ba1d) ) |
| 430 | ROM_LOAD( "bmk04.5h", 0x00000, 0x8000, CRC(25f37957) SHA1(1e50c2a920eb3b5c881843686db857e9fee5ba1d) ) |
| 424 | 431 | |
| 432 | ROM_REGION( 0x10000, "mcu", 0 ) /* C8751H-88 MCU Code */ |
| 433 | ROM_LOAD( "bm.7k", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */ |
| 434 | |
| 425 | 435 | ROM_REGION( 0x8000, "gfx1", 0 ) |
| 426 | | ROM_LOAD( "1943kai.04", 0x00000, 0x8000, CRC(884a8692) SHA1(027aa8c868dc07ccd9e27705031107881aef4b91) ) /* characters */ |
| 436 | ROM_LOAD( "bmk05.4k", 0x00000, 0x8000, CRC(884a8692) SHA1(027aa8c868dc07ccd9e27705031107881aef4b91) ) /* characters */ |
| 427 | 437 | |
| 428 | 438 | ROM_REGION( 0x40000, "gfx2", 0 ) |
| 429 | | ROM_LOAD( "1943kai.15", 0x00000, 0x8000, CRC(6b1a0443) SHA1(32337c840ccd6815fd5844c194365c58d708f6dc) ) /* bg tiles */ |
| 430 | | ROM_LOAD( "1943kai.16", 0x08000, 0x8000, CRC(9416fe0d) SHA1(92fbc8fffa4497747ab80abe20eef361f6525114) ) |
| 431 | | ROM_LOAD( "1943kai.17", 0x10000, 0x8000, CRC(3d5acab9) SHA1(887d45b648fda952ae2137579f383ab8ede1facd) ) |
| 432 | | ROM_LOAD( "1943kai.18", 0x18000, 0x8000, CRC(7b62da1d) SHA1(1926109a2ab2f550ca87b0d2af73abd2b4a7498d) ) |
| 433 | | ROM_LOAD( "1943kai.19", 0x20000, 0x8000, CRC(868ababc) SHA1(1c7be905f53c63bad25fbbd9b3cf82d2c7749bc3) ) |
| 434 | | ROM_LOAD( "1943kai.20", 0x28000, 0x8000, CRC(b90364c1) SHA1(104bc02237eeead84c7f35462186d0a1af8761bc) ) |
| 435 | | ROM_LOAD( "1943kai.21", 0x30000, 0x8000, CRC(8c7fe74a) SHA1(8846b57d7f47c10ab1f505c359ecf36dcbacb011) ) |
| 436 | | ROM_LOAD( "1943kai.22", 0x38000, 0x8000, CRC(d5ef8a0e) SHA1(2e42b1fbbfe823a33740a56d1334657db56d24d2) ) |
| 439 | ROM_LOAD( "bmk15.10f", 0x00000, 0x8000, CRC(6b1a0443) SHA1(32337c840ccd6815fd5844c194365c58d708f6dc) ) /* bg tiles */ |
| 440 | ROM_LOAD( "bmk16.11f", 0x08000, 0x8000, CRC(9416fe0d) SHA1(92fbc8fffa4497747ab80abe20eef361f6525114) ) |
| 441 | ROM_LOAD( "bmk17.12f", 0x10000, 0x8000, CRC(3d5acab9) SHA1(887d45b648fda952ae2137579f383ab8ede1facd) ) |
| 442 | ROM_LOAD( "bmk18.14f", 0x18000, 0x8000, CRC(7b62da1d) SHA1(1926109a2ab2f550ca87b0d2af73abd2b4a7498d) ) |
| 443 | ROM_LOAD( "bmk19.10j", 0x20000, 0x8000, CRC(868ababc) SHA1(1c7be905f53c63bad25fbbd9b3cf82d2c7749bc3) ) |
| 444 | ROM_LOAD( "bmk20.11j", 0x28000, 0x8000, CRC(b90364c1) SHA1(104bc02237eeead84c7f35462186d0a1af8761bc) ) |
| 445 | ROM_LOAD( "bmk21.12j", 0x30000, 0x8000, CRC(8c7fe74a) SHA1(8846b57d7f47c10ab1f505c359ecf36dcbacb011) ) |
| 446 | ROM_LOAD( "bmk22.14j", 0x38000, 0x8000, CRC(d5ef8a0e) SHA1(2e42b1fbbfe823a33740a56d1334657db56d24d2) ) |
| 437 | 447 | |
| 438 | 448 | ROM_REGION( 0x10000, "gfx3", 0 ) |
| 439 | | ROM_LOAD( "1943kai.24", 0x00000, 0x8000, CRC(bf186ef2) SHA1(cacbb8a61f8a64c3ba4ffde5ca6f07fe120b9a7e) ) /* fg tiles */ |
| 440 | | ROM_LOAD( "1943kai.25", 0x08000, 0x8000, CRC(a755faf1) SHA1(8ee286d6ad7454ae34971f5891ddba4b76c244b0) ) |
| 449 | ROM_LOAD( "bmk24.14k", 0x00000, 0x8000, CRC(bf186ef2) SHA1(cacbb8a61f8a64c3ba4ffde5ca6f07fe120b9a7e) ) /* fg tiles */ |
| 450 | ROM_LOAD( "bmk25.14l", 0x08000, 0x8000, CRC(a755faf1) SHA1(8ee286d6ad7454ae34971f5891ddba4b76c244b0) ) |
| 441 | 451 | |
| 442 | 452 | ROM_REGION( 0x40000, "gfx4", 0 ) |
| 443 | | ROM_LOAD( "1943kai.06", 0x00000, 0x8000, CRC(5f7e38b3) SHA1(33f69ebe91a0ee45d9107171fed26da475aaab3a) ) /* sprites */ |
| 444 | | ROM_LOAD( "1943kai.07", 0x08000, 0x8000, CRC(ff3751fd) SHA1(bc942ddd46e7b147115e8ac22d24c2d018a7c373) ) |
| 445 | | ROM_LOAD( "1943kai.08", 0x10000, 0x8000, CRC(159d51bd) SHA1(746aa49b18aff0eaf2fb875c573d455416d45a1d) ) |
| 446 | | ROM_LOAD( "1943kai.09", 0x18000, 0x8000, CRC(8683e3d2) SHA1(591dc4811b226fe11cd5441ecb51aa3e95e68ac5) ) |
| 447 | | ROM_LOAD( "1943kai.10", 0x20000, 0x8000, CRC(1e0d9571) SHA1(44ea9603020e9ab717e3e506f7ecf288506c0502) ) |
| 448 | | ROM_LOAD( "1943kai.11", 0x28000, 0x8000, CRC(f1fc5ee1) SHA1(4ffc8e57734d3b59df695b86070511f1c447b992) ) |
| 449 | | ROM_LOAD( "1943kai.12", 0x30000, 0x8000, CRC(0f50c001) SHA1(0e6367d3f0ba39a00ee0fa6e42ae9d43d12da23d) ) |
| 450 | | ROM_LOAD( "1943kai.13", 0x38000, 0x8000, CRC(fd1acf8e) SHA1(88477ff1e5fbbca251d8cd4f241b42618ba64a80) ) |
| 453 | ROM_LOAD( "bmk06.10a", 0x00000, 0x8000, CRC(5f7e38b3) SHA1(33f69ebe91a0ee45d9107171fed26da475aaab3a) ) /* sprites */ |
| 454 | ROM_LOAD( "bmk07.11a", 0x08000, 0x8000, CRC(ff3751fd) SHA1(bc942ddd46e7b147115e8ac22d24c2d018a7c373) ) |
| 455 | ROM_LOAD( "bmk08.12a", 0x10000, 0x8000, CRC(159d51bd) SHA1(746aa49b18aff0eaf2fb875c573d455416d45a1d) ) |
| 456 | ROM_LOAD( "bmk09.14a", 0x18000, 0x8000, CRC(8683e3d2) SHA1(591dc4811b226fe11cd5441ecb51aa3e95e68ac5) ) |
| 457 | ROM_LOAD( "bmk10.10c", 0x20000, 0x8000, CRC(1e0d9571) SHA1(44ea9603020e9ab717e3e506f7ecf288506c0502) ) |
| 458 | ROM_LOAD( "bmk11.11c", 0x28000, 0x8000, CRC(f1fc5ee1) SHA1(4ffc8e57734d3b59df695b86070511f1c447b992) ) |
| 459 | ROM_LOAD( "bmk12.12c", 0x30000, 0x8000, CRC(0f50c001) SHA1(0e6367d3f0ba39a00ee0fa6e42ae9d43d12da23d) ) |
| 460 | ROM_LOAD( "bmk13.14c", 0x38000, 0x8000, CRC(fd1acf8e) SHA1(88477ff1e5fbbca251d8cd4f241b42618ba64a80) ) |
| 451 | 461 | |
| 452 | 462 | ROM_REGION( 0x10000, "gfx5", 0 ) /* tilemaps */ |
| 453 | | ROM_LOAD( "1943kai.14", 0x0000, 0x8000, CRC(cf0f5a53) SHA1(dc50f3f937f52910dbd0cedbc232acfed0aa6a42) ) /* front background */ |
| 454 | | ROM_LOAD( "1943kai.23", 0x8000, 0x8000, CRC(17f77ef9) SHA1(8ebb4b440042436ec2db52bad808cced832db77c) ) /* back background */ |
| 463 | ROM_LOAD( "bmk14.5f", 0x0000, 0x8000, CRC(cf0f5a53) SHA1(dc50f3f937f52910dbd0cedbc232acfed0aa6a42) ) /* front background */ |
| 464 | ROM_LOAD( "bmk23.8k", 0x8000, 0x8000, CRC(17f77ef9) SHA1(8ebb4b440042436ec2db52bad808cced832db77c) ) /* back background */ |
| 455 | 465 | |
| 456 | 466 | ROM_REGION( 0x0c00, "proms", 0 ) |
| 457 | | ROM_LOAD( "bmk01.bin", 0x0000, 0x0100, CRC(e001ea33) SHA1(4204bdf87820ac84bab2a1b5571a2ee28c4cdfc5) ) /* red component */ |
| 458 | | ROM_LOAD( "bmk02.bin", 0x0100, 0x0100, CRC(af34d91a) SHA1(94bc6514c980fdd1cb013ff0819d6f32464c581c) ) /* green component */ |
| 459 | | ROM_LOAD( "bmk03.bin", 0x0200, 0x0100, CRC(43e9f6ef) SHA1(e1f58368fe0bd9b53f6c286ce5009b218a5197dc) ) /* blue component */ |
| 460 | | ROM_LOAD( "bmk05.bin", 0x0300, 0x0100, CRC(41878934) SHA1(8f28210ab1d409c89600169a136b74a706001cdf) ) /* char lookup table */ |
| 461 | | ROM_LOAD( "bmk10.bin", 0x0400, 0x0100, CRC(de44b748) SHA1(0694fb19d98ccda728424436fc7350da7b5bd05e) ) /* foreground lookup table */ |
| 462 | | ROM_LOAD( "bmk09.bin", 0x0500, 0x0100, CRC(59ea57c0) SHA1(f961c7e9981cc819c2adf4efdc977841d284a3a2) ) /* foreground palette bank */ |
| 463 | | ROM_LOAD( "bmk12.bin", 0x0600, 0x0100, CRC(8765f8b0) SHA1(f32bab8e3587434b864fe97da9423f2335ccba2e) ) /* background lookup table */ |
| 464 | | ROM_LOAD( "bmk11.bin", 0x0700, 0x0100, CRC(87a8854e) SHA1(0cbc601b736d566d625867d65e0f7b2abb535c65) ) /* background palette bank */ |
| 465 | | ROM_LOAD( "bmk08.bin", 0x0800, 0x0100, CRC(dad17e2d) SHA1(fdb18ddc7574153bb7e27ba08b04b9dc87061c02) ) /* sprite lookup table */ |
| 466 | | ROM_LOAD( "bmk07.bin", 0x0900, 0x0100, CRC(76307f8d) SHA1(8d655e2a5c50541795316d924b2f18b55f4b9571) ) /* sprite palette bank */ |
| 467 | | ROM_LOAD( "bmprom.04", 0x0a00, 0x0100, CRC(91a8a2e1) SHA1(9583c87eff876f04bc2ccf7218cd8081f1bcdb94) ) /* priority encoder / palette selector (not used) */ |
| 468 | | ROM_LOAD( "bmprom.06", 0x0b00, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ |
| 467 | ROM_LOAD( "bmk1.12a", 0x0000, 0x0100, CRC(e001ea33) SHA1(4204bdf87820ac84bab2a1b5571a2ee28c4cdfc5) ) /* red component */ |
| 468 | ROM_LOAD( "bmk2.13a", 0x0100, 0x0100, CRC(af34d91a) SHA1(94bc6514c980fdd1cb013ff0819d6f32464c581c) ) /* green component */ |
| 469 | ROM_LOAD( "bmk3.14a", 0x0200, 0x0100, CRC(43e9f6ef) SHA1(e1f58368fe0bd9b53f6c286ce5009b218a5197dc) ) /* blue component */ |
| 470 | ROM_LOAD( "bmk5.7f", 0x0300, 0x0100, CRC(41878934) SHA1(8f28210ab1d409c89600169a136b74a706001cdf) ) /* char lookup table */ |
| 471 | ROM_LOAD( "bmk10.7l", 0x0400, 0x0100, CRC(de44b748) SHA1(0694fb19d98ccda728424436fc7350da7b5bd05e) ) /* foreground lookup table */ |
| 472 | ROM_LOAD( "bmk9.6l", 0x0500, 0x0100, CRC(59ea57c0) SHA1(f961c7e9981cc819c2adf4efdc977841d284a3a2) ) /* foreground palette bank */ |
| 473 | ROM_LOAD( "bmk12.12m", 0x0600, 0x0100, CRC(8765f8b0) SHA1(f32bab8e3587434b864fe97da9423f2335ccba2e) ) /* background lookup table */ |
| 474 | ROM_LOAD( "bmk11.12l", 0x0700, 0x0100, CRC(87a8854e) SHA1(0cbc601b736d566d625867d65e0f7b2abb535c65) ) /* background palette bank */ |
| 475 | ROM_LOAD( "bmk8.8c", 0x0800, 0x0100, CRC(dad17e2d) SHA1(fdb18ddc7574153bb7e27ba08b04b9dc87061c02) ) /* sprite lookup table */ |
| 476 | ROM_LOAD( "bmk7.7c", 0x0900, 0x0100, CRC(76307f8d) SHA1(8d655e2a5c50541795316d924b2f18b55f4b9571) ) /* sprite palette bank */ |
| 477 | ROM_LOAD( "bm4.12c", 0x0a00, 0x0100, CRC(91a8a2e1) SHA1(9583c87eff876f04bc2ccf7218cd8081f1bcdb94) ) /* priority encoder / palette selector (not used) */ |
| 478 | ROM_LOAD( "bm6.4b", 0x0b00, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ |
| 469 | 479 | ROM_END |
| 470 | 480 | |
| 471 | 481 | static DRIVER_INIT( 1943 ) |
src/mame/drivers/supdrapo.c
| r7772 | r7773 | |
| 1 | | /* |
| 2 | | Super Draw Poker (c) Stern 1983 |
| 1 | /************************************************************************ |
| 3 | 2 | |
| 4 | | driver by Pierpaolo Prazzoli |
| 3 | Super Draw Poker (c) Stern 1983 |
| 5 | 4 | |
| 5 | Driver by Pierpaolo Prazzoli. |
| 6 | Additional work by Angelo Salese & Roberto Fresca. |
| 6 | 7 | |
| 7 | | A2-1C 8910 |
| 8 | | A2-1D Z80 |
| 9 | | A1-1E |
| 10 | | A1-1H |
| 11 | | A3-1J |
| 8 | ************************************************************************* |
| 12 | 9 | |
| 13 | | A1-4K |
| 14 | | A1-4L |
| 15 | | A1-4N |
| 16 | | A1-4P A1-9N (6301) |
| 17 | | A1-9P |
| 10 | Notes: |
| 18 | 11 | |
| 19 | | Notes: |
| 20 | | - According to some original screenshots floating around the net, this game uses a weird coloring scheme for |
| 21 | | the char text that dynamically changes the color of an entire column. For now I can only guess about how |
| 22 | | it truly works. |
| 23 | | An original snap of these can be seen at -> http://mamedev.emulab.it/kale/fast/files/A00000211628-007.jpg |
| 12 | - According to some original screenshots floating around the net, this game |
| 13 | uses a weird coloring scheme for the char text that dynamically changes |
| 14 | the color of an entire column. For now I can only guess about how it |
| 15 | truly works. |
| 24 | 16 | |
| 25 | | To do: |
| 26 | | - Needs schematics to check if the current implementation of the "global column coloring" is correct. |
| 27 | | - Check unknown read/writes, too many of them. |
| 17 | - An original snap of these can be seen at: |
| 18 | http://mamedev.emulab.it/kale/fast/files/A00000211628-007.jpg |
| 28 | 19 | |
| 29 | | */ |
| 30 | 20 | |
| 21 | ************************************************************************* |
| 22 | |
| 23 | |
| 24 | Updates: |
| 25 | |
| 26 | - Reworked inputs to match the standard poker inputs names/layout. |
| 27 | - Hooked the payout switch. |
| 28 | - Hooked a watchdog circuitery, that seems intended to reset |
| 29 | the game and/or an external device. |
| 30 | - Added machine start & reset. |
| 31 | - All clocks pre defined. |
| 32 | - Added ay8910 interfase as a preliminary attempt to analyze the unknown |
| 33 | port writes when these ports are set as input. |
| 34 | - Figured out the following DIP switches: |
| 35 | Auto Bet (No, Yes). |
| 36 | Allow Raise (No, Yes). |
| 37 | Double-Up (No, Yes). |
| 38 | Minimal Winner Hand (Jacks or Better, Two Pair). |
| 39 | Deal Speed (Slow, Fast). |
| 40 | Aces Type (Normal Aces, Number 1). |
| 41 | Cards Deck Type (english cards, french cards). |
| 42 | Max Bet (5, 10, 15, 20). |
| 43 | - Added NVRAM support. |
| 44 | - Reorganized and cleaned-up the driver. |
| 45 | |
| 46 | |
| 47 | To do: |
| 48 | |
| 49 | - Needs schematics to check if the current implementation of the |
| 50 | "global column coloring" is correct. |
| 51 | - Check unknown read/writes, too many of them. |
| 52 | - Check the correct CPU and AY8910 clocks from PCB. |
| 53 | - A workaround for writes to ay8910 ports when these are set as input. |
| 54 | |
| 55 | |
| 56 | ************************************************************************/ |
| 57 | |
| 58 | |
| 59 | #define MASTER_CLOCK XTAL_12MHz |
| 60 | #define CPU_CLOCK MASTER_CLOCK/4 /* guess */ |
| 61 | #define SND_CLOCK MASTER_CLOCK/8 /* guess */ |
| 62 | |
| 31 | 63 | #include "emu.h" |
| 32 | 64 | #include "cpu/z80/z80.h" |
| 33 | 65 | #include "sound/ay8910.h" |
| 34 | 66 | |
| 67 | UINT8 wdog; |
| 35 | 68 | |
| 36 | 69 | class supdrapo_state |
| 37 | 70 | { |
| r7772 | r7773 | |
| 45 | 78 | UINT8 *videoram; |
| 46 | 79 | }; |
| 47 | 80 | |
| 81 | |
| 82 | /********************************************************************* |
| 83 | Video Hardware |
| 84 | **********************************************************************/ |
| 85 | |
| 86 | static VIDEO_START( supdrapo ) |
| 87 | { |
| 88 | } |
| 89 | |
| 90 | |
| 91 | static VIDEO_UPDATE( supdrapo ) |
| 92 | { |
| 93 | supdrapo_state *state = (supdrapo_state *)screen->machine->driver_data; |
| 94 | int x, y; |
| 95 | int count; |
| 96 | int color; |
| 97 | |
| 98 | count = 0; |
| 99 | |
| 100 | for(y = 0; y < 32; y++) |
| 101 | { |
| 102 | for(x = 0; x < 32; x++) |
| 103 | { |
| 104 | int tile = state->videoram[count] + state->char_bank[count] * 0x100; |
| 105 | /* Global Column Coloring, GUESS! */ |
| 106 | color = state->col_line[(x*2) + 1] ? (state->col_line[(x*2) + 1] - 1) & 7 : 0; |
| 107 | |
| 108 | drawgfx_opaque(bitmap, cliprect, screen->machine->gfx[0], tile,color, 0, 0, x*8, y*8); |
| 109 | |
| 110 | count++; |
| 111 | } |
| 112 | } |
| 113 | |
| 114 | return 0; |
| 115 | } |
| 116 | |
| 117 | |
| 118 | /*Maybe bit 2 & 3 of the second color prom are intensity bits? */ |
| 119 | static PALETTE_INIT( sdpoker ) |
| 120 | { |
| 121 | int bit0, bit1, bit2 , r, g, b; |
| 122 | int i; |
| 123 | |
| 124 | for (i = 0; i < 0x100; ++i) |
| 125 | { |
| 126 | bit0 = 0;//(color_prom[0] >> 0) & 0x01; |
| 127 | bit1 = (color_prom[0] >> 0) & 0x01; |
| 128 | bit2 = (color_prom[0] >> 1) & 0x01; |
| 129 | g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; |
| 130 | |
| 131 | bit0 = 0;//(color_prom[0] >> 3) & 0x01; |
| 132 | bit1 = (color_prom[0] >> 2) & 0x01; |
| 133 | bit2 = (color_prom[0] >> 3) & 0x01; |
| 134 | b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; |
| 135 | |
| 136 | bit0 = 0;//(color_prom[0] >> 0) & 0x01; |
| 137 | bit1 = (color_prom[0x100] >> 0) & 0x01; |
| 138 | bit2 = (color_prom[0x100] >> 1) & 0x01; |
| 139 | r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; |
| 140 | |
| 141 | palette_set_color(machine, i, MAKE_RGB(r, g, b)); |
| 142 | color_prom++; |
| 143 | } |
| 144 | } |
| 145 | |
| 146 | |
| 147 | /********************************************************************* |
| 148 | R/W Handlers |
| 149 | **********************************************************************/ |
| 150 | |
| 48 | 151 | static READ8_HANDLER( sdpoker_rng_r ) |
| 49 | 152 | { |
| 50 | 153 | return mame_rand(space->machine); |
| 51 | 154 | } |
| 52 | 155 | |
| 156 | static WRITE8_HANDLER( wdog8000_w ) |
| 157 | { |
| 158 | /* Kind of state watchdog alternating 0x00 & 0x01 writes. |
| 159 | Used when exit the test mode (writes 2 consecutive 0's). |
| 160 | Seems to be intended to reset some external device. |
| 161 | |
| 162 | Watchdog: 01 |
| 163 | Watchdog: 00 |
| 164 | Watchdog: 01 |
| 165 | Watchdog: 00 |
| 166 | Watchdog: 01 |
| 167 | Watchdog: 00 |
| 168 | Watchdog: 00 ---> Exit from test mode. |
| 169 | |
| 170 | Debug3: 00 |
| 171 | Watchdog: 00 |
| 172 | Watchdog: 00 |
| 173 | |
| 174 | Debug3: 00 |
| 175 | Watchdog: 01 |
| 176 | Watchdog: 00 |
| 177 | Watchdog: 01 |
| 178 | Watchdog: 00 |
| 179 | Watchdog: 01 |
| 180 | Watchdog: 00 |
| 181 | |
| 182 | */ |
| 183 | if (wdog == data) |
| 184 | { |
| 185 | watchdog_reset_w(space, 0, 0); /* Reset */ |
| 186 | } |
| 187 | |
| 188 | wdog = data; |
| 189 | // logerror("Watchdog: %02X\n", data); |
| 190 | } |
| 191 | |
| 192 | |
| 193 | static WRITE8_HANDLER( debug8004_w ) |
| 194 | { |
| 195 | /* Writes 0x00 each time the machine is initialized */ |
| 196 | |
| 197 | logerror("debug8004: %02X\n", data); |
| 198 | // popmessage("written : %02X", data); |
| 199 | } |
| 200 | |
| 201 | static WRITE8_HANDLER( debug7c00_w ) |
| 202 | { |
| 203 | /* This one write 0's constantly when the input test mode is running */ |
| 204 | logerror("debug7c00: %02X\n", data); |
| 205 | } |
| 206 | |
| 207 | |
| 208 | /********************************************************************* |
| 209 | Coin I/O Counters |
| 210 | **********************************************************************/ |
| 211 | |
| 212 | static WRITE8_HANDLER( coinin_w ) |
| 213 | { |
| 214 | coin_counter_w(space->machine, 0, data & 0x01); /* Coin In */ |
| 215 | } |
| 216 | |
| 217 | static WRITE8_HANDLER( payout_w ) |
| 218 | { |
| 219 | coin_counter_w(space->machine, 1, data & 0x01); /* Payout */ |
| 220 | } |
| 221 | |
| 222 | |
| 223 | /********************************************************************* |
| 224 | Machine Start & Reset |
| 225 | **********************************************************************/ |
| 226 | |
| 227 | static MACHINE_START( supdrapo ) |
| 228 | { |
| 229 | wdog = 1; |
| 230 | } |
| 231 | |
| 232 | |
| 233 | static MACHINE_RESET( supdrapo ) |
| 234 | { |
| 235 | wdog = 1; |
| 236 | } |
| 237 | |
| 238 | |
| 239 | /********************************************************************* |
| 240 | Memory Map |
| 241 | **********************************************************************/ |
| 242 | |
| 53 | 243 | static ADDRESS_MAP_START( sdpoker_mem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 54 | 244 | AM_RANGE(0x0000, 0x4fff) AM_ROM |
| 55 | 245 | AM_RANGE(0x5000, 0x50ff) AM_RAM AM_SHARE("share1") |
| r7772 | r7773 | |
| 59 | 249 | AM_RANGE(0x6800, 0x6bff) AM_RAM AM_BASE_MEMBER(supdrapo_state,videoram) |
| 60 | 250 | AM_RANGE(0x6c00, 0x6fff) AM_RAM AM_BASE_MEMBER(supdrapo_state,char_bank) |
| 61 | 251 | AM_RANGE(0x7000, 0x7bff) AM_RAM //$7600 seems watchdog |
| 62 | | AM_RANGE(0x7c00, 0x7c00) AM_WRITENOP //? |
| 63 | | AM_RANGE(0x8000, 0x8000) AM_READ_PORT("IN4") AM_WRITENOP |
| 252 | AM_RANGE(0x7c00, 0x7c00) AM_WRITE(debug7c00_w) |
| 253 | AM_RANGE(0x8000, 0x8000) AM_READ_PORT("IN4") AM_WRITE(wdog8000_w) |
| 64 | 254 | AM_RANGE(0x8001, 0x8001) AM_READ_PORT("IN0") |
| 65 | | AM_RANGE(0x8002, 0x8002) AM_READ_PORT("IN1") |
| 66 | | AM_RANGE(0x8003, 0x8003) AM_READ_PORT("IN2") AM_WRITENOP |
| 67 | | AM_RANGE(0x8004, 0x8004) AM_READ_PORT("IN3") AM_WRITENOP |
| 68 | | AM_RANGE(0x8005, 0x8005) AM_READ_PORT("IN6") |
| 69 | | AM_RANGE(0x8006, 0x8006) AM_READ_PORT("IN5") //dips? |
| 70 | | AM_RANGE(0x9000, 0x90ff) AM_RAM |
| 255 | AM_RANGE(0x8002, 0x8002) AM_READ_PORT("IN1") AM_WRITE(payout_w) |
| 256 | AM_RANGE(0x8003, 0x8003) AM_READ_PORT("IN2") AM_WRITE(coinin_w) |
| 257 | AM_RANGE(0x8004, 0x8004) AM_READ_PORT("IN3") AM_WRITE(debug8004_w) |
| 258 | AM_RANGE(0x8005, 0x8005) AM_READ_PORT("SW2") |
| 259 | AM_RANGE(0x8006, 0x8006) AM_READ_PORT("SW1") |
| 260 | AM_RANGE(0x9000, 0x90ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) |
| 71 | 261 | AM_RANGE(0x9400, 0x9400) AM_READ(sdpoker_rng_r) |
| 72 | 262 | AM_RANGE(0x9800, 0x9801) AM_DEVWRITE("aysnd", ay8910_data_address_w) |
| 73 | 263 | ADDRESS_MAP_END |
| 74 | 264 | |
| 265 | |
| 266 | /********************************************************************* |
| 267 | Input Ports |
| 268 | **********************************************************************/ |
| 269 | |
| 75 | 270 | static INPUT_PORTS_START( supdrapo ) |
| 76 | 271 | PORT_START("IN0") |
| 77 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON9 ) PORT_NAME("P1 Win") PORT_CODE(KEYCODE_D) PORT_PLAYER(1) |
| 78 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("P1 Cancel") PORT_CODE(KEYCODE_S) PORT_PLAYER(1) |
| 79 | | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) |
| 80 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON11 ) PORT_NAME("P1 Bet") PORT_CODE(KEYCODE_A) PORT_PLAYER(1) |
| 81 | | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_NAME("Coin : 10") |
| 82 | | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_NAME("Coin : 5") |
| 83 | | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_NAME("Coin : 2") |
| 84 | | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_NAME("Coin : 1") |
| 272 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON9 ) PORT_NAME("P1 Win/Take") PORT_CODE(KEYCODE_4) PORT_PLAYER(1) |
| 273 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("P1 Cancel") PORT_CODE(KEYCODE_N) PORT_PLAYER(1) |
| 274 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("P1 Deal") PORT_CODE(KEYCODE_2) PORT_PLAYER(1) |
| 275 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON11 ) PORT_NAME("P1 Bet/Play") PORT_CODE(KEYCODE_1) PORT_PLAYER(1) |
| 276 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_NAME("Coin 4: 10") |
| 277 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_NAME("Coin 3: 5") |
| 278 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_NAME("Coin 2: 2") |
| 279 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_NAME("Coin 1: 1") |
| 85 | 280 | |
| 86 | 281 | PORT_START("IN1") |
| 87 | 282 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("P1 Hold 5") PORT_CODE(KEYCODE_B) PORT_PLAYER(1) |
| r7772 | r7773 | |
| 89 | 284 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P1 Hold 3") PORT_CODE(KEYCODE_C) PORT_PLAYER(1) |
| 90 | 285 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Hold 2") PORT_CODE(KEYCODE_X) PORT_PLAYER(1) |
| 91 | 286 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Hold 1") PORT_CODE(KEYCODE_Z) PORT_PLAYER(1) |
| 92 | | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("P1 Black") PORT_CODE(KEYCODE_Q) PORT_PLAYER(1) |
| 93 | | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("P1 Red") PORT_CODE(KEYCODE_W) PORT_PLAYER(1) |
| 94 | | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON10 ) PORT_NAME("P1 Double Up") PORT_CODE(KEYCODE_E) PORT_PLAYER(1) |
| 287 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("P1 Black") PORT_CODE(KEYCODE_A) PORT_PLAYER(1) |
| 288 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("P1 Red") PORT_CODE(KEYCODE_S) PORT_PLAYER(1) |
| 289 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON10 ) PORT_NAME("P1 Double Up") PORT_CODE(KEYCODE_3) PORT_PLAYER(1) |
| 95 | 290 | |
| 96 | 291 | PORT_START("IN2") |
| 97 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Win") PORT_PLAYER(2) |
| 292 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Win/Take") PORT_PLAYER(2) |
| 98 | 293 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Cancel") PORT_PLAYER(2) |
| 99 | | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START2 ) |
| 100 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Bet") PORT_PLAYER(2) |
| 294 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Deal") PORT_PLAYER(2) |
| 295 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Bet/Play") PORT_PLAYER(2) |
| 101 | 296 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Coin : 10") |
| 102 | 297 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Coin : 5") |
| 103 | 298 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Coin : 2") |
| r7772 | r7773 | |
| 125 | 320 | PORT_DIPNAME( 0x10, 0x00, "4-5" ) |
| 126 | 321 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 127 | 322 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 128 | | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_NAME("Credit Clear") |
| 323 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_NAME("Payout") PORT_CODE(KEYCODE_W) |
| 129 | 324 | PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_HIGH ) |
| 130 | 325 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) |
| 131 | 326 | PORT_DIPSETTING( 0x00, "1 Player" ) |
| 132 | 327 | PORT_DIPSETTING( 0x80, "2 Players" ) |
| 133 | 328 | |
| 134 | | PORT_START("IN5") |
| 135 | | PORT_DIPNAME( 0x01, 0x00, "5-1" ) |
| 136 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 137 | | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 138 | | PORT_DIPNAME( 0x02, 0x00, "5-2" ) |
| 139 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 140 | | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| 141 | | PORT_DIPNAME( 0x04, 0x00, "5-3" ) |
| 142 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 143 | | PORT_DIPSETTING( 0x04, DEF_STR( On ) ) |
| 144 | | PORT_DIPNAME( 0x08, 0x00, "5-4" ) |
| 145 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 146 | | PORT_DIPSETTING( 0x08, DEF_STR( On ) ) |
| 147 | | PORT_DIPNAME( 0x10, 0x00, "5-5" ) |
| 148 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 149 | | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 150 | | PORT_DIPNAME( 0x20, 0x00, "5-6" ) |
| 151 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 152 | | PORT_DIPSETTING( 0x20, DEF_STR( On ) ) |
| 329 | PORT_START("SW1") |
| 330 | PORT_DIPNAME( 0x01, 0x01, "Auto Bet" ) |
| 331 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 332 | PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) |
| 333 | PORT_DIPNAME( 0x02, 0x02, "Allow Raise" ) |
| 334 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 335 | PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) |
| 336 | PORT_DIPNAME( 0x04, 0x04, "Double-Up" ) |
| 337 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 338 | PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) |
| 339 | PORT_DIPNAME( 0x08, 0x08, "Minimal Winner Hand" ) |
| 340 | PORT_DIPSETTING( 0x08, "Jacks or Better" ) |
| 341 | PORT_DIPSETTING( 0x00, "Two Pair" ) |
| 342 | PORT_DIPNAME( 0x10, 0x00, "Deal Speed" ) |
| 343 | PORT_DIPSETTING( 0x00, "Slow" ) |
| 344 | PORT_DIPSETTING( 0x10, "Fast" ) |
| 345 | PORT_DIPNAME( 0x20, 0x00, "Aces Type" ) |
| 346 | PORT_DIPSETTING( 0x00, "Normal Aces" ) |
| 347 | PORT_DIPSETTING( 0x20, "Number 1" ) |
| 153 | 348 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Language ) ) |
| 154 | 349 | PORT_DIPSETTING( 0x00, DEF_STR( English ) ) |
| 155 | 350 | PORT_DIPSETTING( 0x40, DEF_STR( French ) ) |
| 156 | | PORT_DIPNAME( 0x80, 0x00, "5-8" ) |
| 157 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 158 | | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 351 | PORT_DIPNAME( 0x80, 0x00, "Cards Deck Type" ) |
| 352 | PORT_DIPSETTING( 0x00, "English Cards" ) |
| 353 | PORT_DIPSETTING( 0x80, "French Cards" ) |
| 159 | 354 | |
| 160 | | PORT_START("IN6") |
| 355 | PORT_START("SW2") |
| 161 | 356 | PORT_DIPNAME( 0x01, 0x00, "6-1" ) |
| 162 | 357 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 163 | 358 | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| r7772 | r7773 | |
| 176 | 371 | PORT_DIPNAME( 0x20, 0x00, "6-6" ) |
| 177 | 372 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 178 | 373 | PORT_DIPSETTING( 0x20, DEF_STR( On ) ) |
| 179 | | PORT_DIPNAME( 0x40, 0x00, "6-7" ) |
| 180 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 181 | | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 182 | | PORT_DIPNAME( 0x80, 0x00, "6-8" ) |
| 183 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 184 | | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 374 | PORT_DIPNAME( 0xc0, 0xc0, "Max Bet" ) |
| 375 | PORT_DIPSETTING( 0x00, "5" ) |
| 376 | PORT_DIPSETTING( 0x40, "10" ) |
| 377 | PORT_DIPSETTING( 0x80, "15" ) |
| 378 | PORT_DIPSETTING( 0xc0, "30" ) |
| 185 | 379 | INPUT_PORTS_END |
| 186 | 380 | |
| 381 | |
| 382 | /********************************************************************* |
| 383 | Graphics Decode / Layout |
| 384 | **********************************************************************/ |
| 385 | |
| 187 | 386 | static const gfx_layout charlayout = |
| 188 | 387 | { |
| 189 | 388 | 8,8, |
| r7772 | r7773 | |
| 199 | 398 | GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 16 ) |
| 200 | 399 | GFXDECODE_END |
| 201 | 400 | |
| 202 | | static VIDEO_START( supdrapo ) |
| 401 | |
| 402 | /********************************************************************* |
| 403 | Sound Interface |
| 404 | **********************************************************************/ |
| 405 | |
| 406 | static WRITE8_DEVICE_HANDLER( ay8910_outputa_w ) |
| 203 | 407 | { |
| 408 | // popmessage("ay8910_outputa_w %02x",data); |
| 204 | 409 | } |
| 205 | 410 | |
| 206 | | static VIDEO_UPDATE( supdrapo ) |
| 411 | static WRITE8_DEVICE_HANDLER( ay8910_outputb_w ) |
| 207 | 412 | { |
| 208 | | supdrapo_state *state = (supdrapo_state *)screen->machine->driver_data; |
| 209 | | int x,y; |
| 210 | | int count; |
| 211 | | int color; |
| 212 | | |
| 213 | | count = 0; |
| 214 | | |
| 215 | | for(y=0;y<32;y++) |
| 216 | | { |
| 217 | | for(x=0;x<32;x++) |
| 218 | | { |
| 219 | | int tile = state->videoram[count] + state->char_bank[count] * 0x100; |
| 220 | | /* Global Column Coloring, GUESS! */ |
| 221 | | color = state->col_line[(x*2)+1] ? (state->col_line[(x*2)+1]-1) & 0x7 : 0; |
| 222 | | |
| 223 | | drawgfx_opaque(bitmap,cliprect,screen->machine->gfx[0],tile,color,0,0,x*8,y*8); |
| 224 | | |
| 225 | | count++; |
| 226 | | } |
| 227 | | } |
| 228 | | |
| 229 | | return 0; |
| 413 | // popmessage("ay8910_outputb_w %02x",data); |
| 230 | 414 | } |
| 231 | 415 | |
| 232 | 416 | |
| 233 | | /*Maybe bit 2 & 3 of the second color prom are intensity bits? */ |
| 234 | | static PALETTE_INIT( sdpoker ) |
| 417 | static const ay8910_interface ay8910_config = |
| 235 | 418 | { |
| 236 | | int bit0, bit1, bit2 , r, g, b; |
| 237 | | int i; |
| 419 | AY8910_LEGACY_OUTPUT, |
| 420 | AY8910_DEFAULT_LOADS, |
| 421 | DEVCB_NULL, |
| 422 | DEVCB_NULL, |
| 423 | DEVCB_HANDLER(ay8910_outputa_w), |
| 424 | DEVCB_HANDLER(ay8910_outputb_w) |
| 425 | }; |
| 238 | 426 | |
| 239 | | for (i = 0; i < 0x100; ++i) |
| 240 | | { |
| 241 | | bit0 = 0;//(color_prom[0] >> 0) & 0x01; |
| 242 | | bit1 = (color_prom[0] >> 0) & 0x01; |
| 243 | | bit2 = (color_prom[0] >> 1) & 0x01; |
| 244 | | g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; |
| 245 | | bit0 = 0;//(color_prom[0] >> 3) & 0x01; |
| 246 | | bit1 = (color_prom[0] >> 2) & 0x01; |
| 247 | | bit2 = (color_prom[0] >> 3) & 0x01; |
| 248 | | b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; |
| 249 | | bit0 = 0;//(color_prom[0] >> 0) & 0x01; |
| 250 | | bit1 = (color_prom[0x100] >> 0) & 0x01; |
| 251 | | bit2 = (color_prom[0x100] >> 1) & 0x01; |
| 252 | | r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; |
| 253 | 427 | |
| 254 | | palette_set_color(machine, i, MAKE_RGB(r, g, b)); |
| 255 | | color_prom++; |
| 256 | | } |
| 257 | | } |
| 428 | /********************************************************************* |
| 429 | Machine Driver |
| 430 | **********************************************************************/ |
| 258 | 431 | |
| 259 | 432 | static MACHINE_DRIVER_START( supdrapo ) |
| 260 | 433 | |
| 261 | 434 | MDRV_DRIVER_DATA( supdrapo_state ) |
| 262 | 435 | |
| 263 | | MDRV_CPU_ADD("maincpu", Z80,8000000/2) /* ??? */ |
| 436 | MDRV_CPU_ADD("maincpu", Z80, CPU_CLOCK) /* guess */ |
| 264 | 437 | MDRV_CPU_PROGRAM_MAP(sdpoker_mem) |
| 265 | 438 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) |
| 266 | 439 | |
| 440 | MDRV_MACHINE_START(supdrapo) |
| 441 | MDRV_MACHINE_RESET(supdrapo) |
| 442 | |
| 443 | MDRV_NVRAM_HANDLER(generic_0fill) |
| 444 | |
| 267 | 445 | /* video hardware */ |
| 268 | 446 | MDRV_SCREEN_ADD("screen", RASTER) |
| 269 | 447 | MDRV_SCREEN_REFRESH_RATE(60) |
| r7772 | r7773 | |
| 281 | 459 | |
| 282 | 460 | MDRV_SPEAKER_STANDARD_MONO("mono") |
| 283 | 461 | |
| 284 | | MDRV_SOUND_ADD("aysnd", AY8910, 8000000/2) /* ??? */ |
| 462 | MDRV_SOUND_ADD("aysnd", AY8910, SND_CLOCK) /* guess */ |
| 463 | MDRV_SOUND_CONFIG(ay8910_config) |
| 285 | 464 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 286 | 465 | MACHINE_DRIVER_END |
| 287 | 466 | |
| 467 | |
| 468 | /********************************************************************* |
| 469 | ROMs Load |
| 470 | **********************************************************************/ |
| 471 | |
| 472 | /* |
| 473 | A2-1C 8910 |
| 474 | A2-1D Z80 |
| 475 | A1-1E |
| 476 | A1-1H |
| 477 | A3-1J |
| 478 | |
| 479 | A1-4K |
| 480 | A1-4L |
| 481 | A1-4N |
| 482 | A1-4P A1-9N (6301) |
| 483 | A1-9P |
| 484 | */ |
| 288 | 485 | ROM_START( supdrapo ) |
| 289 | 486 | ROM_REGION( 0x010000, "maincpu", 0 ) |
| 290 | 487 | ROM_LOAD( "a2-1c", 0x0000, 0x1000, CRC(b65af689) SHA1(b45cd15ca8f9c931d83a90f3cdbebf218070b195) ) |
| r7772 | r7773 | |
| 304 | 501 | ROM_LOAD( "a1-9p", 0x0100, 0x0100, CRC(a0547746) SHA1(747c8aef5afa26124fe0763e7f96c4ff6be31863) ) |
| 305 | 502 | ROM_END |
| 306 | 503 | |
| 504 | /* |
| 505 | ------------------------------------------ |
| 307 | 506 | |
| 308 | | GAME( 1983, supdrapo, 0, supdrapo, supdrapo, 0, ROT90, "Valadon Automation (Stern license)", "Super Draw Poker", 0 ) |
| 507 | Jeutel (bootleg?) |
| 508 | |
| 509 | 1x MOSTEK 8236 / MK3880N-IRL / Z80-CPU |
| 510 | 1x SOUND AY-3-8910 |
| 511 | 1x X-TAL 12,000 |
| 512 | 2x 8 DIP switches banks. |
| 513 | |
| 514 | ------------------------------------------ |
| 515 | */ |
| 516 | ROM_START( supdrapoa ) |
| 517 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 518 | ROM_LOAD( "0.c1", 0x0000, 0x1000, CRC(63e2775a) SHA1(742e8db5378631fd93a22d2131f9523ee74c03a5) ) |
| 519 | ROM_LOAD( "1.d1", 0x1000, 0x1000, CRC(aa1578de) SHA1(8f1a33864b2c8e09a25c7603522ebfc7e0757d56) ) |
| 520 | ROM_LOAD( "2.e1", 0x2000, 0x1000, CRC(ffe0415c) SHA1(0233d192814ced0b32abd4b7d2e93431a339732f) ) |
| 521 | ROM_LOAD( "3.h1", 0x3000, 0x1000, CRC(1bae52fa) SHA1(f89d48d67e52d0fca51eb23fee2d5cb94afcf7f4) ) |
| 522 | ROM_LOAD( "4.j1", 0x4000, 0x1000, CRC(7af26f63) SHA1(aeeca69ef1c21acae4283183e4b073ec0d303f4a) ) |
| 523 | |
| 524 | ROM_REGION( 0x4000, "gfx1", 0 ) |
| 525 | ROM_LOAD( "8.p4", 0x0000, 0x1000, CRC(ef0700c5) SHA1(53f49d99f310fdf675e3b7339bdca1115e4a1935) ) |
| 526 | ROM_LOAD( "7.n4", 0x1000, 0x1000, CRC(3f77031b) SHA1(2d282d39ea568aa44af8b56228b6e096c2713a15) ) |
| 527 | ROM_LOAD( "6.l4", 0x2000, 0x1000, CRC(d70cd50e) SHA1(c3e3dcf79f8a25df5b878ef8734a6d0dc22004ba) ) |
| 528 | ROM_LOAD( "5.k4", 0x3000, 0x1000, CRC(34564917) SHA1(90b49fe8a5371159388839d42913352cf58c60e6) ) |
| 529 | |
| 530 | ROM_REGION( 0x00200, "proms", 0 ) /* using the color PROMs from the parent set */ |
| 531 | ROM_LOAD( "a1-9n", 0x0000, 0x0100, BAD_DUMP CRC(e62529e3) SHA1(176f2069b0c06c1d088909e81658652af06c8eec) ) |
| 532 | ROM_LOAD( "a1-9p", 0x0100, 0x0100, BAD_DUMP CRC(a0547746) SHA1(747c8aef5afa26124fe0763e7f96c4ff6be31863) ) |
| 533 | ROM_END |
| 534 | |
| 535 | |
| 536 | /********************************************************************* |
| 537 | Games Drivers |
| 538 | **********************************************************************/ |
| 539 | |
| 540 | /* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS... */ |
| 541 | GAME( 1983, supdrapo, 0, supdrapo, supdrapo, 0, ROT90, "Valadon Automation (Stern license)", "Super Draw Poker (set 1)", 0 ) |
| 542 | GAME( 1983, supdrapoa, supdrapo, supdrapo, supdrapo, 0, ROT90, "Valadon Automation / Jeutel", "Super Draw Poker (set 2)", 0 ) |
src/mame/drivers/hng64.c
| r7772 | r7773 | |
| 7 | 7 | Notes: |
| 8 | 8 | * The top board is likely identical for all revisions and all "versions" of the hardware. |
| 9 | 9 | It contains the main MIPS CPU and a secondary communications KL5C80. |
| 10 | |
| 10 | 11 | * The bottom board is what changes between hardware "versions". It has a Toshiba MCU with |
| 11 | 12 | a protected internal ROM. This MCU controls (at least) the inputs per game and communicates |
| 12 | 13 | with the main board through dualport RAM. |
| 14 | |
| 13 | 15 | * I believe that this secondary board is used as a protection device. |
| 14 | 16 | The "board type" code comes from it in dualport RAM, and each game reads its inputs differently through dualport. |
| 15 | 17 | It's capable of changing the input ports dynamically (maybe explaining Roads Edge's "do not touch" quote below). |
| 16 | 18 | It probably has a lot to do with the network (Roads Edge network connectors are on this board). |
| 17 | | And since it can return any value at any time, it may be responsible for fatfurwa's missing palette. |
| 19 | |
| 18 | 20 | * The Toshiba CPU datasheet is here : http://www.semicon.toshiba.co.jp/openb2b/websearch/productDetails.jsp?partKey=TMP87CH40N |
| 19 | 21 | |
| 20 | 22 | * From the Roads Edge manual : "The Network Check screen will be displayed for about 40 seconds whether |
| r7772 | r7773 | |
| 28 | 30 | |
| 29 | 31 | ToDo: |
| 30 | 32 | * Buriki One / Xrally and Roads Edge doesn't coin it up, irq issue? |
| 31 | | * sprite garbage in Beast Busters 2nd Nightmare, another irq issue? |
| 33 | * Sprite garbage in Beast Busters 2nd Nightmare, another irq issue? |
| 32 | 34 | * Samurai Shodown 64 2 puts "Press 1p & 2p button" msg in gameplay, known to be a MCU simulation issue, i/o port 4 doesn't |
| 33 | 35 | seem to be just an input port but controls program flow too. |
| 34 | | * work out the purpose of the interrupts and how many are needed |
| 35 | | * correct game speed (seems too fast) |
| 36 | * Work out the purpose of the interrupts and how many are needed. |
| 37 | * Correct game speed (seems too fast). |
| 36 | 38 | |
| 37 | 39 | 2d: |
| 38 | | * scroll (base registers?) |
| 39 | | * roz (4th tilemap in fatal fury should be floor [in progress], background should zoom) |
| 40 | | * find registers to control tilemap mode (4bpp/8bpp, 8x8, 16x16) |
| 41 | | * fix zooming sprites (zoom registers not understood, center versus edge pivot) |
| 42 | | * priorities |
| 43 | | * still some bad sprites/tiles (waterfall level 'splash' - health bar at 50% - intro top and bottom - fatfurwa test mode) |
| 44 | | * is all the bitmap decoding right? |
| 45 | | * upgrade to modern video timing. |
| 40 | * Scroll (base registers?) |
| 41 | * ROZ (4th tilemap in fatal fury should be floor [in progress], background should zoom) |
| 42 | * Find registers to control tilemap mode (4bpp/8bpp, 8x8, 16x16) |
| 43 | * Fix zooming sprites (zoom registers not understood, center versus edge pivot) |
| 44 | * Priorities |
| 45 | * Is all the bitmap decoding right? |
| 46 | * Upgrade to modern video timing. |
| 46 | 47 | |
| 47 | 48 | 3d: |
| 48 | 49 | * Find where the remainder of the 3d display list information is 'hiding' |
| r7772 | r7773 | |
| 53 | 54 | |
| 54 | 55 | Other: |
| 55 | 56 | * Translate KL5C80 docs and finish up the implementation |
| 56 | | * figure out what IO $54 & $72 are on the communications CPU |
| 57 | | * hook up CPU2 (v30 based?) no rom? (maybe its the 'sound driver' the game uploads?) |
| 58 | | * add sound |
| 59 | | * backup ram etc. |
| 60 | | * correct cpu speed and find idle skips |
| 57 | * Figure out what IO $54 & $72 are on the communications CPU |
| 58 | * Hook up CPU2 (v30 based?) no rom? (maybe its the 'sound driver' the game uploads?) |
| 59 | * Add sound |
| 60 | * Backup ram etc. |
| 61 | * Correct cpu speed |
| 61 | 62 | * What is ROM1? Data for the KL5C80? There's plenty of physical space to map it to. |
| 62 | 63 | */ |
| 63 | 64 | |
| r7772 | r7773 | |
| 200 | 201 | |
| 201 | 202 | |
| 202 | 203 | |
| 203 | | |
| 204 | 204 | Hyper Neo Geo game cartridges |
| 205 | 205 | ----------------------------- |
| 206 | 206 | |
| r7772 | r7773 | |
| 284 | 284 | |
| 285 | 285 | Bottom |
| 286 | 286 | ------ |
| 287 | | |
| 288 | 287 | LVS-DG1 |
| 289 | 288 | |----------------------------------------------------------------------------| |
| 290 | 289 | | |----------------------| | |
| r7772 | r7773 | |
| 424 | 423 | |
| 425 | 424 | info from Daemon |
| 426 | 425 | |
| 427 | | (MACHINE CODE ERROR): |
| 428 | | Is given when you try to put a "RACING GAME" on a "FIGHTING" board. |
| 429 | | |
| 430 | 426 | There are various types of neogeo64 boards: |
| 431 | | FIGHTING (revision 1 and 2) |
| 432 | | RACING |
| 433 | | SHOOTING |
| 434 | | and |
| 435 | | SAMURAI SHODOWN ONLY (Korean) |
| 427 | FIGHTING (revision 1 & 2), RACING, SHOOTING, and SAMURAI SHODOWN ONLY (Korean) |
| 428 | (MACHINE CODE ERROR): Is given when you try to put a "RACING GAME" on a "FIGHTING" board. |
| 436 | 429 | |
| 437 | 430 | FIGHTING boards will ONLY play fighting games. |
| 438 | 431 | |
| r7772 | r7773 | |
| 480 | 473 | VIDEO_UPDATE( hng64 ); |
| 481 | 474 | |
| 482 | 475 | static UINT32 activeBuffer; |
| 483 | | |
| 484 | | |
| 485 | 476 | static UINT32 no_machine_error_code; |
| 486 | 477 | static int hng64_interrupt_level_request; |
| 487 | 478 | |
| r7772 | r7773 | |
| 493 | 484 | |
| 494 | 485 | /* Communications stuff */ |
| 495 | 486 | static UINT32 *hng64_com_ram; |
| 487 | static UINT8 *hng64_com_op_base; |
| 488 | static UINT8 *hng64_com_mmu_mem; |
| 489 | static UINT8 *hng64_com_virtual_mem; |
| 496 | 490 | |
| 497 | | static UINT8 *hng64_com_virtual_mem; |
| 498 | | static UINT8 *hng64_com_op_base; |
| 499 | 491 | |
| 500 | | static UINT8 *hng64_com_mmu_mem; |
| 501 | | |
| 502 | | |
| 503 | 492 | #ifdef UNUSED_FUNCTION |
| 504 | 493 | WRITE32_HANDLER( trap_write ) |
| 505 | 494 | { |
| 506 | 495 | logerror("Remapped write... %08x %08x\n",offset,data); |
| 507 | 496 | } |
| 508 | | #endif |
| 509 | 497 | |
| 510 | | |
| 511 | | |
| 512 | | #if 0 |
| 513 | 498 | static READ32_HANDLER( hng64_random_read ) |
| 514 | 499 | { |
| 515 | 500 | return mame_rand(space->machine)&0xffffffff; |
| r7772 | r7773 | |
| 522 | 507 | return hng64_com_ram[offset]; |
| 523 | 508 | } |
| 524 | 509 | |
| 525 | | |
| 526 | 510 | static WRITE32_HANDLER( hng64_com_w ) |
| 527 | 511 | { |
| 528 | 512 | logerror("com write (PC=%08x): %08x %08x = %08x\n", cpu_get_pc(space->cpu), (offset*4)+0xc0000000, mem_mask, data); |
| r7772 | r7773 | |
| 554 | 538 | return 0x00; |
| 555 | 539 | } |
| 556 | 540 | |
| 557 | | |
| 558 | | |
| 559 | 541 | static WRITE32_HANDLER( hng64_pal_w ) |
| 560 | 542 | { |
| 561 | | int r,g,b,a; |
| 543 | int r, g, b/*, a*/; |
| 562 | 544 | COMBINE_DATA(&space->machine->generic.paletteram.u32[offset]); |
| 563 | 545 | |
| 564 | 546 | b = ((space->machine->generic.paletteram.u32[offset] & 0x000000ff) >>0); |
| 565 | 547 | g = ((space->machine->generic.paletteram.u32[offset] & 0x0000ff00) >>8); |
| 566 | 548 | r = ((space->machine->generic.paletteram.u32[offset] & 0x00ff0000) >>16); |
| 567 | | a = ((space->machine->generic.paletteram.u32[offset] & 0xff000000) >>24); |
| 568 | | |
| 569 | | // a sure ain't alpha. |
| 570 | | // mame_printf_debug("Alpha : %d %d %d %d\n", a, b, g, r); |
| 571 | | |
| 572 | | //if (a != 0) |
| 573 | | // popmessage("Alpha is not zero!"); |
| 574 | | |
| 549 | //a = ((space->machine->generic.paletteram.u32[offset] & 0xff000000) >>24); |
| 575 | 550 | palette_set_color(space->machine,offset,MAKE_RGB(r,g,b)); |
| 576 | 551 | } |
| 577 | 552 | |
| r7772 | r7773 | |
| 581 | 556 | mame_get_base_datetime(space->machine, &systime); |
| 582 | 557 | |
| 583 | 558 | // if((offset*4) != 0x1084) |
| 584 | | // printf("HNG64 port read (PC=%08x) 0x%08x\n", cpu_get_pc(space->cpu),offset*4); |
| 559 | // printf("HNG64 port read (PC=%08x) 0x%08x\n", cpu_get_pc(space->cpu),offset*4); |
| 585 | 560 | |
| 586 | 561 | switch(offset*4) |
| 587 | 562 | { |
| r7772 | r7773 | |
| 614 | 589 | |
| 615 | 590 | // printf("%08x\n",offset*4); |
| 616 | 591 | |
| 617 | | //return mame_rand(space->machine)&0xffffffff; |
| 592 | // return mame_rand(space->machine)&0xffffffff; |
| 618 | 593 | return hng64_sysregs[offset]; |
| 619 | 594 | } |
| 620 | 595 | |
| r7772 | r7773 | |
| 623 | 598 | |
| 624 | 599 | static void hng64_do_dma(const address_space *space) |
| 625 | 600 | { |
| 626 | | //printf("Performing DMA Start %08x Len %08x Dst %08x\n",hng_dma_start, hng_dma_len, hng_dma_dst); |
| 601 | // printf("Performing DMA Start %08x Len %08x Dst %08x\n",hng_dma_start, hng_dma_len, hng_dma_dst); |
| 627 | 602 | |
| 628 | 603 | while (hng_dma_len>=0) |
| 629 | 604 | { |
| r7772 | r7773 | |
| 647 | 622 | // AM_RANGE(0x1F70124C, 0x1F70124F) AM_WRITENOP // dma related? |
| 648 | 623 | // AM_RANGE(0x1F70125C, 0x1F70125F) AM_WRITENOP // dma related? |
| 649 | 624 | // AM_RANGE(0x1F7021C4, 0x1F7021C7) AM_WRITENOP // ?? often |
| 650 | | |
| 651 | 625 | */ |
| 652 | 626 | |
| 653 | 627 | static WRITE32_HANDLER( hng64_sysregs_w ) |
| r7772 | r7773 | |
| 655 | 629 | COMBINE_DATA (&hng64_sysregs[offset]); |
| 656 | 630 | |
| 657 | 631 | // if(((offset*4) & 0x1200) == 0x1200) |
| 658 | | // printf("HNG64 writing to SYSTEM Registers 0x%08x == 0x%08x. (PC=%08x)\n", offset*4, hng64_sysregs[offset], cpu_get_pc(space->cpu)); |
| 632 | // printf("HNG64 writing to SYSTEM Registers 0x%08x == 0x%08x. (PC=%08x)\n", offset*4, hng64_sysregs[offset], cpu_get_pc(space->cpu)); |
| 659 | 633 | |
| 660 | 634 | switch(offset*4) |
| 661 | 635 | { |
| 662 | | //case 0x100c: Extremely likely to be involved with the ROZ groundplane. |
| 663 | | // Probably tells the groundplane which scanline to start drawing at. |
| 636 | //case 0x100c: *DOCUMENT* |
| 664 | 637 | |
| 665 | 638 | case 0x1084: //MIPS->MCU latch port |
| 666 | 639 | hng_mcu_en = (data & 0xff); //command-based, i.e. doesn't control halt line and such? |
| r7772 | r7773 | |
| 744 | 717 | { |
| 745 | 718 | static UINT32 p1_trig; |
| 746 | 719 | |
| 747 | | /* quick kludge for use the input test items */ |
| 720 | /* Quick kludge for use the input test items */ |
| 748 | 721 | if(input_port_read(space->machine, "D_IN") & 0x01000000) |
| 749 | 722 | p1_trig = mame_rand(space->machine) & 0x01000000; |
| 750 | 723 | |
| r7772 | r7773 | |
| 841 | 814 | COMBINE_DATA (&hng64_dualport[offset]); |
| 842 | 815 | } |
| 843 | 816 | |
| 817 | |
| 844 | 818 | // Hardware calls these '3d buffers' |
| 845 | 819 | // They're only read during the startup check of fatfurwa. Z-buffer memory? Front buffer, back buffer? |
| 846 | 820 | // They're definitely mirrored in the startup test. Elsemi says: |
| r7772 | r7773 | |
| 870 | 844 | COMBINE_DATA (&hng64_3d_2[offset]); |
| 871 | 845 | } |
| 872 | 846 | |
| 873 | | |
| 874 | | |
| 875 | | // The 3d 'display list' - is it a fifo? |
| 876 | | // sams64 / sams64_2 access it in a very different way to fatal fury... |
| 847 | // The 3d 'display list' |
| 877 | 848 | static WRITE32_HANDLER( dl_w ) |
| 878 | 849 | { |
| 879 | 850 | int i; |
| r7772 | r7773 | |
| 908 | 879 | #if 0 |
| 909 | 880 | static READ32_HANDLER( dl_r ) |
| 910 | 881 | { |
| 911 | | // mame_printf_debug("dl R (%08x) : %x %x\n", cpu_get_pc(space->cpu), offset, hng64_dl[offset]); |
| 912 | | // usrintf_showmessage("dl R (%08x) : %x %x", cpu_get_pc(space->cpu), offset, hng64_dl[offset]); |
| 882 | //mame_printf_debug("dl R (%08x) : %x %x\n", cpu_get_pc(space->cpu), offset, hng64_dl[offset]); |
| 883 | //usrintf_showmessage("dl R (%08x) : %x %x", cpu_get_pc(space->cpu), offset, hng64_dl[offset]); |
| 913 | 884 | return hng64_dl[offset]; |
| 914 | 885 | } |
| 915 | 886 | #endif |
| 916 | 887 | |
| 917 | | |
| 918 | | // A read at 0x20300217 ONLY happens if there are more display lists than what are readily available. |
| 919 | | |
| 920 | 888 | // Some kind of buffering of the display lists, or 'render current buffer' write? |
| 921 | 889 | static WRITE32_HANDLER( dl_control_w ) |
| 922 | 890 | { |
| 923 | | //printf("\n"); // Debug - ajg |
| 891 | // printf("\n"); // Debug - ajg |
| 924 | 892 | // TODO: put this back in. |
| 925 | 893 | /* |
| 926 | 894 | if (activeBuffer==0 || activeBuffer==1) |
| r7772 | r7773 | |
| 957 | 925 | max_x = (hng64_tcram[2] & 0xffff0000) >> 16; |
| 958 | 926 | max_y = (hng64_tcram[2] & 0x0000ffff) >> 0; |
| 959 | 927 | |
| 960 | | if(max_x == 0 || max_y == 0) //bail out if values are invalid, Fatal Fury WA sets this to disable the screen. |
| 928 | if(max_x == 0 || max_y == 0) // bail out if values are invalid, Fatal Fury WA sets this to disable the screen. |
| 961 | 929 | { |
| 962 | 930 | hng64_screen_dis = 1; |
| 963 | 931 | return; |
| r7772 | r7773 | |
| 975 | 943 | |
| 976 | 944 | static READ32_HANDLER( tcram_r ) |
| 977 | 945 | { |
| 978 | | // printf("Q1 R : %.8x %.8x\n", offset, hng64_tcram[offset]); |
| 979 | | |
| 946 | // printf("Q1 R : %.8x %.8x\n", offset, hng64_tcram[offset]); |
| 980 | 947 | if(offset == 0x12) |
| 981 | 948 | return input_port_read(space->machine, "VBLANK"); |
| 982 | 949 | |
| r7772 | r7773 | |
| 992 | 959 | } |
| 993 | 960 | |
| 994 | 961 | |
| 995 | | /* |
| 996 | | <ElSemi> 0xE0000000 sound |
| 997 | | <ElSemi> 0xD0100000 3D bank A |
| 998 | | <ElSemi> 0xD0200000 3D bank B |
| 999 | | <ElSemi> 0xC0000000-0xC000C000 Sprite |
| 1000 | | <ElSemi> 0xC0200000-0xC0204000 palette |
| 1001 | | <ElSemi> 0xC0100000-0xC0180000 Tilemap |
| 1002 | | <ElSemi> 0xBF808000-0xBF808800 Dualport ram |
| 1003 | | <ElSemi> 0xBF800000-0xBF808000 S-RAM |
| 1004 | | <ElSemi> 0x60000000-0x60001000 Comm dualport ram |
| 1005 | | */ |
| 1006 | | |
| 1007 | 962 | static WRITE32_HANDLER( hng64_soundram_w ) |
| 1008 | 963 | { |
| 1009 | 964 | UINT32 mem_mask32 = mem_mask; |
| 1010 | 965 | UINT32 data32 = data; |
| 1011 | 966 | |
| 1012 | | /* swap data around.. keep the v30 happy;-) */ |
| 967 | /* swap data around.. keep the v55 happy */ |
| 1013 | 968 | data = data32 >> 16; |
| 1014 | 969 | data = FLIPENDIAN_INT16(data); |
| 1015 | 970 | mem_mask = mem_mask32 >> 16; |
| r7772 | r7773 | |
| 1076 | 1031 | } |
| 1077 | 1032 | } |
| 1078 | 1033 | |
| 1034 | /* |
| 1035 | <ElSemi> 0xE0000000 sound |
| 1036 | <ElSemi> 0xD0100000 3D bank A |
| 1037 | <ElSemi> 0xD0200000 3D bank B |
| 1038 | <ElSemi> 0xC0000000-0xC000C000 Sprite |
| 1039 | <ElSemi> 0xC0200000-0xC0204000 palette |
| 1040 | <ElSemi> 0xC0100000-0xC0180000 Tilemap |
| 1041 | <ElSemi> 0xBF808000-0xBF808800 Dualport ram |
| 1042 | <ElSemi> 0xBF800000-0xBF808000 S-RAM |
| 1043 | <ElSemi> 0x60000000-0x60001000 Comm dualport ram |
| 1044 | */ |
| 1079 | 1045 | static ADDRESS_MAP_START( hng_map, ADDRESS_SPACE_PROGRAM, 32 ) |
| 1080 | 1046 | |
| 1081 | 1047 | AM_RANGE(0x00000000, 0x00ffffff) AM_RAM AM_BASE(&hng_mainram) |
| r7772 | r7773 | |
| 1134 | 1100 | /* a0000000-a3ffffff */ |
| 1135 | 1101 | ADDRESS_MAP_END |
| 1136 | 1102 | |
| 1137 | | /* |
| 1138 | | roadedge_full: |
| 1139 | | index=00000000 pagesize=01000000 vaddr=00000000C0000000 paddr=0000000020000000 asid=00 r=0 c=2 dvg=dvg |
| 1140 | | index=00000000 pagesize=01000000 vaddr=00000000C1000000 paddr=0000000021000000 asid=00 r=0 c=2 dvg=dvg |
| 1141 | | index=00000001 pagesize=01000000 vaddr=00000000D0000000 paddr=0000000030000000 asid=00 r=0 c=2 dvg=dvg |
| 1142 | | index=00000001 pagesize=01000000 vaddr=00000000D1000000 paddr=0000000031000000 asid=00 r=0 c=2 dvg=dvg |
| 1143 | | index=00000002 pagesize=01000000 vaddr=00000000D2000000 paddr=0000000032000000 asid=00 r=0 c=2 dvg=dvg |
| 1144 | | index=00000002 pagesize=01000000 vaddr=00000000D3000000 paddr=0000000033000000 asid=00 r=0 c=2 dvg=dvg |
| 1145 | | index=00000003 pagesize=01000000 vaddr=00000000D4000000 paddr=0000000034000000 asid=00 r=0 c=2 dvg=dvg |
| 1146 | | index=00000003 pagesize=01000000 vaddr=00000000D5000000 paddr=0000000035000000 asid=00 r=0 c=2 dvg=dvg |
| 1147 | | index=00000004 pagesize=01000000 vaddr=00000000E0000000 paddr=0000000060000000 asid=00 r=0 c=2 dvg=dvg |
| 1148 | | index=00000004 pagesize=01000000 vaddr=00000000E1000000 paddr=0000000061000000 asid=00 r=0 c=2 dvg=dvg |
| 1149 | | index=00000005 pagesize=01000000 vaddr=00000000E8000000 paddr=0000000068000000 asid=00 r=0 c=2 dvg=dvg |
| 1150 | | index=00000005 pagesize=01000000 vaddr=00000000E9000000 paddr=0000000069000000 asid=00 r=0 c=2 dvg=dvg |
| 1151 | | index=00000006 pagesize=01000000 vaddr=00000000EE000000 paddr=000000006E000000 asid=00 r=0 c=2 dvg=dvg |
| 1152 | | index=00000006 pagesize=01000000 vaddr=00000000EF000000 paddr=000000006F000000 asid=00 r=0 c=2 dvg=dvg |
| 1153 | | index=00000007 pagesize=01000000 vaddr=0000000060000000 paddr=00000000C0000000 asid=00 r=0 c=2 dvg=dvg |
| 1154 | | index=00000007 pagesize=01000000 vaddr=0000000061000000 paddr=00000000C1000000 asid=00 r=0 c=2 dvg=dvg |
| 1155 | | index=00000008 pagesize=01000000 vaddr=0000000000000000 paddr=0000000004000000 asid=00 r=0 c=2 dvg=dvg |
| 1156 | | index=00000008 pagesize=01000000 vaddr=0000000001000000 paddr=0000000004000000 asid=00 r=0 c=2 dvg=dvg |
| 1157 | | index=00000009 pagesize=01000000 vaddr=0000000010000000 paddr=0000000080000000 asid=00 r=0 c=2 dvg=dvg |
| 1158 | | index=00000009 pagesize=01000000 vaddr=0000000011000000 paddr=0000000081000000 asid=00 r=0 c=2 dvg=dvg |
| 1159 | | index=0000000A pagesize=01000000 vaddr=0000000020000000 paddr=0000000088000000 asid=00 r=0 c=2 dvg=dvg |
| 1160 | | index=0000000A pagesize=01000000 vaddr=0000000021000000 paddr=0000000089000000 asid=00 r=0 c=2 dvg=dvg |
| 1161 | | index=0000000B pagesize=01000000 vaddr=0000000030000000 paddr=0000000090000000 asid=00 r=0 c=2 dvg=dvg |
| 1162 | | index=0000000B pagesize=01000000 vaddr=0000000031000000 paddr=0000000091000000 asid=00 r=0 c=2 dvg=dvg |
| 1163 | | index=0000000C pagesize=01000000 vaddr=0000000032000000 paddr=0000000092000000 asid=00 r=0 c=2 dvg=dvg |
| 1164 | | index=0000000C pagesize=01000000 vaddr=0000000033000000 paddr=0000000093000000 asid=00 r=0 c=2 dvg=dvg |
| 1165 | | index=0000000D pagesize=01000000 vaddr=0000000034000000 paddr=0000000094000000 asid=00 r=0 c=2 dvg=dvg |
| 1166 | | index=0000000D pagesize=01000000 vaddr=0000000035000000 paddr=0000000095000000 asid=00 r=0 c=2 dvg=dvg |
| 1167 | | index=0000000E pagesize=01000000 vaddr=0000000036000000 paddr=0000000096000000 asid=00 r=0 c=2 dvg=dvg |
| 1168 | | index=0000000E pagesize=01000000 vaddr=0000000037000000 paddr=0000000097000000 asid=00 r=0 c=2 dvg=dvg |
| 1169 | | index=0000000F pagesize=01000000 vaddr=0000000040000000 paddr=0000000098000000 asid=00 r=0 c=2 dvg=dvg |
| 1170 | | index=0000000F pagesize=01000000 vaddr=0000000041000000 paddr=0000000099000000 asid=00 r=0 c=2 dvg=dvg |
| 1171 | | index=00000010 pagesize=01000000 vaddr=0000000042000000 paddr=000000009A000000 asid=00 r=0 c=2 dvg=dvg |
| 1172 | | index=00000010 pagesize=01000000 vaddr=0000000043000000 paddr=000000009B000000 asid=00 r=0 c=2 dvg=dvg |
| 1173 | | index=00000011 pagesize=01000000 vaddr=0000000050000000 paddr=00000000A0000000 asid=00 r=0 c=2 dvg=dvg |
| 1174 | | index=00000011 pagesize=01000000 vaddr=0000000051000000 paddr=00000000A1000000 asid=00 r=0 c=2 dvg=dvg |
| 1175 | | index=00000012 pagesize=01000000 vaddr=0000000052000000 paddr=00000000A2000000 asid=00 r=0 c=2 dvg=dvg |
| 1176 | | index=00000012 pagesize=01000000 vaddr=0000000053000000 paddr=00000000A3000000 asid=00 r=0 c=2 dvg=dvg |
| 1177 | | |
| 1178 | | fatfurwa_full: |
| 1179 | | index=00000000 pagesize=01000000 vaddr=00000000C0000000 paddr=0000000020000000 asid=00 r=0 c=2 dvg=dvg |
| 1180 | | index=00000000 pagesize=01000000 vaddr=00000000C1000000 paddr=0000000021000000 asid=00 r=0 c=2 dvg=dvg |
| 1181 | | index=00000001 pagesize=01000000 vaddr=00000000D0000000 paddr=0000000030000000 asid=00 r=0 c=2 dvg=dvg |
| 1182 | | index=00000001 pagesize=01000000 vaddr=00000000D1000000 paddr=0000000031000000 asid=00 r=0 c=2 dvg=dvg |
| 1183 | | index=00000002 pagesize=01000000 vaddr=00000000D2000000 paddr=0000000032000000 asid=00 r=0 c=2 dvg=dvg |
| 1184 | | index=00000002 pagesize=01000000 vaddr=00000000D3000000 paddr=0000000033000000 asid=00 r=0 c=2 dvg=dvg |
| 1185 | | index=00000003 pagesize=01000000 vaddr=00000000D4000000 paddr=0000000034000000 asid=00 r=0 c=2 dvg=dvg |
| 1186 | | index=00000003 pagesize=01000000 vaddr=00000000D5000000 paddr=0000000035000000 asid=00 r=0 c=2 dvg=dvg |
| 1187 | | index=00000004 pagesize=01000000 vaddr=00000000E0000000 paddr=0000000060000000 asid=00 r=0 c=2 dvg=dvg |
| 1188 | | index=00000004 pagesize=01000000 vaddr=00000000E1000000 paddr=0000000061000000 asid=00 r=0 c=2 dvg=dvg |
| 1189 | | index=00000006 pagesize=01000000 vaddr=00000000E8000000 paddr=0000000068000000 asid=00 r=0 c=2 dvg=dvg |
| 1190 | | index=00000006 pagesize=01000000 vaddr=00000000E9000000 paddr=0000000069000000 asid=00 r=0 c=2 dvg=dvg |
| 1191 | | index=00000009 pagesize=01000000 vaddr=00000000EE000000 paddr=000000006E000000 asid=00 r=0 c=2 dvg=dvg |
| 1192 | | index=00000009 pagesize=01000000 vaddr=00000000EF000000 paddr=000000006F000000 asid=00 r=0 c=2 dvg=dvg |
| 1193 | | index=0000000B pagesize=01000000 vaddr=0000000000000000 paddr=0000000004000000 asid=00 r=0 c=2 dvg=dvg |
| 1194 | | index=0000000B pagesize=01000000 vaddr=0000000001000000 paddr=0000000004000000 asid=00 r=0 c=2 dvg=dvg |
| 1195 | | index=0000000C pagesize=01000000 vaddr=0000000010000000 paddr=0000000080000000 asid=00 r=0 c=2 dvg=dvg |
| 1196 | | index=0000000C pagesize=01000000 vaddr=0000000011000000 paddr=0000000081000000 asid=00 r=0 c=2 dvg=dvg |
| 1197 | | index=0000000D pagesize=01000000 vaddr=0000000020000000 paddr=0000000088000000 asid=00 r=0 c=2 dvg=dvg |
| 1198 | | index=0000000D pagesize=01000000 vaddr=0000000021000000 paddr=0000000089000000 asid=00 r=0 c=2 dvg=dvg |
| 1199 | | index=0000000E pagesize=01000000 vaddr=0000000030000000 paddr=0000000090000000 asid=00 r=0 c=2 dvg=dvg |
| 1200 | | index=0000000E pagesize=01000000 vaddr=0000000031000000 paddr=0000000091000000 asid=00 r=0 c=2 dvg=dvg |
| 1201 | | index=0000000F pagesize=01000000 vaddr=0000000032000000 paddr=0000000092000000 asid=00 r=0 c=2 dvg=dvg |
| 1202 | | index=0000000F pagesize=01000000 vaddr=0000000033000000 paddr=0000000093000000 asid=00 r=0 c=2 dvg=dvg |
| 1203 | | index=00000010 pagesize=01000000 vaddr=0000000034000000 paddr=0000000094000000 asid=00 r=0 c=2 dvg=dvg |
| 1204 | | index=00000010 pagesize=01000000 vaddr=0000000035000000 paddr=0000000095000000 asid=00 r=0 c=2 dvg=dvg |
| 1205 | | index=00000011 pagesize=01000000 vaddr=0000000036000000 paddr=0000000096000000 asid=00 r=0 c=2 dvg=dvg |
| 1206 | | index=00000011 pagesize=01000000 vaddr=0000000037000000 paddr=0000000097000000 asid=00 r=0 c=2 dvg=dvg |
| 1207 | | index=00000012 pagesize=01000000 vaddr=0000000040000000 paddr=0000000098000000 asid=00 r=0 c=2 dvg=dvg |
| 1208 | | index=00000012 pagesize=01000000 vaddr=0000000041000000 paddr=0000000099000000 asid=00 r=0 c=2 dvg=dvg |
| 1209 | | index=00000013 pagesize=01000000 vaddr=0000000042000000 paddr=000000009A000000 asid=00 r=0 c=2 dvg=dvg |
| 1210 | | index=00000013 pagesize=01000000 vaddr=0000000043000000 paddr=000000009B000000 asid=00 r=0 c=2 dvg=dvg |
| 1211 | | index=00000014 pagesize=01000000 vaddr=0000000050000000 paddr=00000000A0000000 asid=00 r=0 c=2 dvg=dvg |
| 1212 | | index=00000014 pagesize=01000000 vaddr=0000000051000000 paddr=00000000A1000000 asid=00 r=0 c=2 dvg=dvg |
| 1213 | | index=00000015 pagesize=01000000 vaddr=0000000052000000 paddr=00000000A2000000 asid=00 r=0 c=2 dvg=dvg |
| 1214 | | index=00000015 pagesize=01000000 vaddr=0000000053000000 paddr=00000000A3000000 asid=00 r=0 c=2 dvg=dvg |
| 1215 | | index=00000016 pagesize=01000000 vaddr=0000000060000000 paddr=00000000C0000000 asid=00 r=0 c=2 dvg=dvg |
| 1216 | | index=00000016 pagesize=01000000 vaddr=0000000061000000 paddr=00000000C1000000 asid=00 r=0 c=2 dvg=dvg |
| 1217 | | |
| 1218 | | |
| 1219 | | roadedge/fatfurwa/buriki: |
| 1220 | | index=00000000 pagesize=01000000 vaddr=00000000C0000000 paddr=0000000020000000 asid=00 r=0 c=2 dvg=dvg |
| 1221 | | index=00000000 pagesize=01000000 vaddr=00000000C1000000 paddr=0000000021000000 asid=00 r=0 c=2 dvg=dvg |
| 1222 | | index=00000001 pagesize=01000000 vaddr=00000000D0000000 paddr=0000000030000000 asid=00 r=0 c=2 dvg=dvg |
| 1223 | | index=00000001 pagesize=01000000 vaddr=00000000D1000000 paddr=0000000031000000 asid=00 r=0 c=2 dvg=dvg |
| 1224 | | index=00000004 pagesize=01000000 vaddr=00000000E0000000 paddr=0000000060000000 asid=00 r=0 c=2 dvg=dvg |
| 1225 | | index=00000004 pagesize=01000000 vaddr=00000000E1000000 paddr=0000000061000000 asid=00 r=0 c=2 dvg=dvg |
| 1226 | | index=00000007 pagesize=01000000 vaddr=0000000060000000 paddr=00000000C0000000 asid=00 r=0 c=2 dvg=dvg |
| 1227 | | index=00000007 pagesize=01000000 vaddr=0000000061000000 paddr=00000000C1000000 asid=00 r=0 c=2 dvg=dvg |
| 1228 | | |
| 1229 | | sams64_2: |
| 1230 | | index=00000000 pagesize=01000000 vaddr=00000000C0000000 paddr=0000000020000000 asid=00 r=0 c=2 dvg=dvg |
| 1231 | | index=00000000 pagesize=01000000 vaddr=00000000C1000000 paddr=0000000021000000 asid=00 r=0 c=2 dvg=dvg |
| 1232 | | index=00000001 pagesize=01000000 vaddr=00000000C2000000 paddr=0000000030000000 asid=00 r=0 c=2 dvg=dvg |
| 1233 | | index=00000001 pagesize=01000000 vaddr=00000000C3000000 paddr=0000000031000000 asid=00 r=0 c=2 dvg=dvg |
| 1234 | | index=00000002 pagesize=01000000 vaddr=00000000C4000000 paddr=0000000060000000 asid=00 r=0 c=2 dvg=dvg |
| 1235 | | index=00000002 pagesize=01000000 vaddr=00000000C5000000 paddr=0000000061000000 asid=00 r=0 c=2 dvg=dvg |
| 1236 | | index=00000003 pagesize=01000000 vaddr=00000000C6000000 paddr=000000006E000000 asid=00 r=0 c=2 dvg=dvg |
| 1237 | | index=00000003 pagesize=01000000 vaddr=00000000C7000000 paddr=000000006F000000 asid=00 r=0 c=2 dvg=dvg |
| 1238 | | index=00000004 pagesize=01000000 vaddr=00000000C8000000 paddr=0000000068000000 asid=00 r=0 c=2 dvg=dvg |
| 1239 | | index=00000004 pagesize=01000000 vaddr=00000000C9000000 paddr=0000000069000000 asid=00 r=0 c=2 dvg=dvg |
| 1240 | | */ |
| 1241 | | |
| 1242 | | |
| 1243 | | /* COMM CPU */ |
| 1103 | /**************/ |
| 1104 | /** COMM CPU **/ |
| 1105 | /**************/ |
| 1244 | 1106 | #define KL5C_MMU_A(xxx) ( (xxx==0) ? 0x0000 : (hng64_com_mmu_mem[((xxx-1)*2)+1] << 2) | ((hng64_com_mmu_mem[(xxx-1)*2] & 0xc0) >> 6) ) |
| 1245 | 1107 | #define KL5C_MMU_B(xxx) ( (xxx==0) ? 0x0000 : (hng64_com_mmu_mem[(xxx-1)*2] & 0x3f) ) |
| 1246 | 1108 | |
| r7772 | r7773 | |
| 1336 | 1198 | |
| 1337 | 1199 | static WRITE8_HANDLER( hng64_comm_memory_w ) |
| 1338 | 1200 | { |
| 1201 | // Write to both virtual and physical memory |
| 1339 | 1202 | // UINT32 physical_address = KL5C80_translate_address(offset); |
| 1340 | 1203 | // logerror("WRITING 0x%02x to 0x%04x (0x%05x)\n", hng64_com_virtual_mem[physical_address], offset, physical_address); |
| 1341 | | |
| 1342 | | // Write to both virtual and physical memory |
| 1343 | 1204 | } |
| 1344 | 1205 | |
| 1345 | | |
| 1346 | 1206 | /* KL5C80 I/O handlers */ |
| 1347 | 1207 | static WRITE8_HANDLER( hng64_comm_io_mmu ) |
| 1348 | 1208 | { |
| r7772 | r7773 | |
| 1412 | 1272 | ADDRESS_MAP_END |
| 1413 | 1273 | |
| 1414 | 1274 | |
| 1415 | | |
| 1416 | | |
| 1417 | 1275 | static ADDRESS_MAP_START( hng_sound_map, ADDRESS_SPACE_PROGRAM, 16 ) |
| 1418 | 1276 | AM_RANGE(0x00000, 0x3ffff) AM_ROMBANK("bank2") |
| 1419 | 1277 | AM_RANGE(0xe0000, 0xfffff) AM_ROMBANK("bank1") |
| r7772 | r7773 | |
| 1461 | 1319 | PORT_BIT( 0x40000000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 1462 | 1320 | PORT_BIT( 0x80000000, IP_ACTIVE_HIGH, IPT_SERVICE ) |
| 1463 | 1321 | |
| 1464 | | |
| 1465 | 1322 | PORT_START("P1_P2") |
| 1466 | 1323 | PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) |
| 1467 | 1324 | PORT_BIT( 0x00000002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) |
| r7772 | r7773 | |
| 1554 | 1411 | RGN_FRAC(1,1), |
| 1555 | 1412 | 4, |
| 1556 | 1413 | { 0,1,2,3 }, |
| 1557 | | { 24, 28, 8,12, 16,20, 0,4}, |
| 1414 | { 24, 28, 8, 12, 16, 20, 0, 4 }, |
| 1558 | 1415 | { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, |
| 1559 | 1416 | 8*32 |
| 1560 | 1417 | }; |
| r7772 | r7773 | |
| 1565 | 1422 | RGN_FRAC(1,1), |
| 1566 | 1423 | 8, |
| 1567 | 1424 | { 0,1,2,3,4,5,6,7 }, |
| 1568 | | { 24, 8, 16, 0, 256+24, 256+8, 256+16, 256+0}, |
| 1425 | { 24, 8, 16, 0, |
| 1426 | 256+24, 256+8, 256+16, 256+0 }, |
| 1569 | 1427 | { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, |
| 1570 | 1428 | 16*32 |
| 1571 | 1429 | }; |
| r7772 | r7773 | |
| 1576 | 1434 | RGN_FRAC(1,1), |
| 1577 | 1435 | 4, |
| 1578 | 1436 | { 0,1,2,3 }, |
| 1579 | | { 24, 28, 8,12, 16,20, 0,4, |
| 1580 | | 256+24,256+28,256+8,256+12,256+16,256+20,256+0,256+4 |
| 1581 | | |
| 1582 | | }, |
| 1583 | | { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, 16*32,17*32,18*32,19*32,20*32,21*32,22*32,23*32 }, |
| 1437 | { 24, 28, 8, 12, 16, 20, 0, 4, |
| 1438 | 256+24, 256+28, 256+8, 256+12, 256+16, 256+20, 256+0, 256+4 }, |
| 1439 | { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, |
| 1440 | 16*32, 17*32, 18*32, 19*32, 20*32, 21*32, 22*32, 23*32 }, |
| 1584 | 1441 | 32*32 |
| 1585 | 1442 | }; |
| 1586 | 1443 | |
| r7772 | r7773 | |
| 1591 | 1448 | RGN_FRAC(1,1), |
| 1592 | 1449 | 8, |
| 1593 | 1450 | { 0,1,2,3,4,5,6,7 }, |
| 1594 | | { 24, 8, 16, 0, |
| 1595 | | 256+24, 256+8, 256+16, 256+0, |
| 1596 | | 1024+24,1024+8,1024+16,1024+0, |
| 1597 | | 1280+24,1280+8,1280+16,1280+0, |
| 1598 | | }, |
| 1451 | { 24, 8, 16, 0, |
| 1452 | 256+24, 256+8, 256+16, 256+0, |
| 1453 | 1024+24, 1024+8, 1024+16, 1024+0, |
| 1454 | 1280+24, 1280+8, 1280+16, 1280+0, }, |
| 1599 | 1455 | { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, |
| 1600 | | 16*32, 17*32, 18*32, 19*32, 20*32, 21*32, 22*32, 23*32 |
| 1601 | | }, |
| 1456 | 16*32, 17*32, 18*32, 19*32, 20*32, 21*32, 22*32, 23*32 }, |
| 1602 | 1457 | 64*32 |
| 1603 | 1458 | }; |
| 1604 | 1459 | |
| r7772 | r7773 | |
| 1608 | 1463 | RGN_FRAC(1,1), |
| 1609 | 1464 | 4, |
| 1610 | 1465 | { 0,1,2,3 }, |
| 1611 | | { 56,60, 24, 28, 48,52, 16, 20,40, 44, 8,12, 32,36, 0,4 }, |
| 1612 | | { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,8*64,9*64,10*64,11*64,12*64,13*64,14*64,15*64 }, |
| 1466 | { 56, 60, 24, 28, 48, 52, 16, 20, 40, 44, 8, 12, 32, 36, 0, 4 }, |
| 1467 | { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, |
| 1613 | 1468 | 16*64 |
| 1614 | 1469 | }; |
| 1615 | 1470 | |
| r7772 | r7773 | |
| 1619 | 1474 | RGN_FRAC(1,1), |
| 1620 | 1475 | 8, |
| 1621 | 1476 | { 0,1,2,3,4,5,6,7 }, |
| 1622 | | |
| 1623 | | { 56, 24, 48,16, 40, 8, 32, 0, |
| 1624 | | 1024+56, 1024+24, 1024+48,1024+16, 1024+40, 1024+8, 1024+32, 1024+0 }, |
| 1625 | | { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,8*64,9*64,10*64,11*64,12*64,13*64,14*64,15*64 }, |
| 1477 | { 56, 24, 48, 16, 40, 8, 32, 0, |
| 1478 | 1024+56, 1024+24, 1024+48, 1024+16, 1024+40, 1024+8, 1024+32, 1024+0 }, |
| 1479 | { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, |
| 1626 | 1480 | 32*64 |
| 1627 | 1481 | }; |
| 1628 | 1482 | |
| 1629 | | |
| 1630 | | static const UINT32 texlayout_xoffset[1024] = |
| 1631 | | { |
| 1632 | | STEP1024(0,8), |
| 1633 | | |
| 1634 | | }; |
| 1635 | | |
| 1636 | | static const UINT32 texlayout_yoffset[512] = |
| 1637 | | { |
| 1638 | | STEP512(0,8192), |
| 1639 | | }; |
| 1640 | | |
| 1483 | static const UINT32 texlayout_xoffset[1024] = { STEP1024(0,8) }; |
| 1484 | static const UINT32 texlayout_yoffset[512] = { STEP512(0,8192) }; |
| 1641 | 1485 | static const gfx_layout hng64_texlayout = |
| 1642 | 1486 | { |
| 1643 | 1487 | 1024, 512, |
| r7772 | r7773 | |
| 1686 | 1530 | memcpy(gfxregion, buffer, gfxregionsize); |
| 1687 | 1531 | |
| 1688 | 1532 | auto_free (machine, buffer); |
| 1689 | | |
| 1690 | 1533 | } |
| 1691 | 1534 | |
| 1692 | | |
| 1693 | 1535 | static DRIVER_INIT( hng64_reorder_gfx ) |
| 1694 | 1536 | { |
| 1695 | 1537 | hng64_reorder(machine, memory_region(machine,"scrtile"), memory_region_length(machine, "scrtile")); |
| 1696 | 1538 | } |
| 1697 | 1539 | |
| 1698 | 1540 | #define HACK_REGION |
| 1699 | | |
| 1700 | | |
| 1701 | 1541 | #ifdef HACK_REGION |
| 1702 | 1542 | static void hng64_patch_bios_region(running_machine* machine, int region) |
| 1703 | 1543 | { |
| r7772 | r7773 | |
| 1710 | 1550 | rom[0x4003] = region; |
| 1711 | 1551 | |
| 1712 | 1552 | } |
| 1713 | | |
| 1714 | | |
| 1715 | 1553 | } |
| 1716 | 1554 | #endif |
| 1717 | 1555 | |
| r7772 | r7773 | |
| 1754 | 1592 | hng64_mcu_type = SAMSHO_MCU; |
| 1755 | 1593 | } |
| 1756 | 1594 | |
| 1757 | | |
| 1758 | 1595 | static DRIVER_INIT(hng64_race) |
| 1759 | 1596 | { |
| 1760 | 1597 | no_machine_error_code=0x02000000; |
| r7772 | r7773 | |
| 1770 | 1607 | } |
| 1771 | 1608 | |
| 1772 | 1609 | |
| 1773 | | |
| 1774 | 1610 | /* ?? */ |
| 1775 | 1611 | static const mips3_config config = |
| 1776 | 1612 | { |
| r7772 | r7773 | |
| 1833 | 1669 | cputag_set_input_line(machine, "audiocpu", INPUT_LINE_HALT, ASSERT_LINE); |
| 1834 | 1670 | cputag_set_input_line(machine, "audiocpu", INPUT_LINE_RESET, ASSERT_LINE); |
| 1835 | 1671 | |
| 1836 | | |
| 1837 | 1672 | /* Comm CPU */ |
| 1838 | 1673 | KL5C80_init(); |
| 1839 | 1674 | |
| r7772 | r7773 | |
| 1862 | 1697 | MDRV_CPU_PROGRAM_MAP(hng_map) |
| 1863 | 1698 | MDRV_CPU_VBLANK_INT_HACK(irq_start,4) |
| 1864 | 1699 | |
| 1865 | | MDRV_CPU_ADD("audiocpu", V30,8000000) // v53, 16? mhz! |
| 1700 | MDRV_CPU_ADD("audiocpu", V33, 8000000) // v53, 16? mhz! |
| 1866 | 1701 | MDRV_CPU_PROGRAM_MAP(hng_sound_map) |
| 1867 | 1702 | |
| 1868 | 1703 | MDRV_CPU_ADD("comm", Z80,MASTER_CLOCK/4) /* KL5C80A12CFP - binary compatible with Z80. */ |
| r7772 | r7773 | |
| 1889 | 1724 | MACHINE_DRIVER_END |
| 1890 | 1725 | |
| 1891 | 1726 | |
| 1892 | | |
| 1893 | 1727 | ROM_START( hng64 ) |
| 1894 | 1728 | /* BIOS */ |
| 1895 | 1729 | ROM_REGION32_BE( 0x0100000, "user1", 0 ) /* 512k for R4300 BIOS code */ |
| r7772 | r7773 | |
| 1904 | 1738 | ROM_REGION( 0x4000, "sprtile", ROMREGION_ERASEFF ) |
| 1905 | 1739 | ROM_REGION( 0x1000000, "textures", ROMREGION_ERASEFF ) |
| 1906 | 1740 | ROM_REGION16_BE( 0x0c00000, "verts", ROMREGION_ERASEFF ) |
| 1907 | | ROM_REGION( 0x1000000, "samples", ROMREGION_ERASEFF ) /* Sound Samples? */ |
| 1741 | ROM_REGION( 0x1000000, "samples", ROMREGION_ERASEFF ) /* Sound Samples */ |
| 1908 | 1742 | ROM_END |
| 1909 | 1743 | |
| 1910 | 1744 | |
| 1911 | | /* roads edge might need a different bios (driving board bios?) */ |
| 1912 | 1745 | ROM_START( roadedge ) |
| 1913 | 1746 | /* BIOS */ |
| 1914 | 1747 | ROM_REGION32_BE( 0x0100000, "user1", 0 ) /* 512k for R4300 BIOS code */ |
| r7772 | r7773 | |
| 1962 | 1795 | ROMX_LOAD( "001vt02a.18", 0x0000002, 0x400000, CRC(449f94d0) SHA1(2228690532d82d2661285aeb4260689b027597cb), ROM_GROUPWORD | ROM_SKIP(4) ) |
| 1963 | 1796 | ROMX_LOAD( "001vt03a.19", 0x0000004, 0x400000, CRC(50ac8639) SHA1(dd2d3689466990a7c479bb8f11bd930ea45e47b5), ROM_GROUPWORD | ROM_SKIP(4) ) |
| 1964 | 1797 | |
| 1965 | | ROM_REGION( 0x1000000, "samples", 0 ) /* Sound Samples? */ |
| 1798 | ROM_REGION( 0x1000000, "samples", 0 ) /* Sound Samples */ |
| 1966 | 1799 | ROM_LOAD( "001sd01a.77", 0x0000000, 0x400000, CRC(a851da99) SHA1(2ba24feddafc5fadec155cdb7af305fdffcf6690) ) |
| 1967 | 1800 | ROM_LOAD( "001sd02a.78", 0x0400000, 0x400000, CRC(ca5cec15) SHA1(05e91a602728a048d61bf86aa8d43bb4186aeac1) ) |
| 1968 | 1801 | ROM_END |
| r7772 | r7773 | |
| 2022 | 1855 | ROMX_LOAD( "002-vt05a.21", 0x0c00002, 0x400000, CRC(d32ee9cb) SHA1(a768dfc15899924eb05eccbf8e85cb29c7b60396), ROM_GROUPWORD | ROM_SKIP(4) ) |
| 2023 | 1856 | ROMX_LOAD( "002-vt06a.22", 0x0c00004, 0x400000, CRC(13bf3636) SHA1(7c704bf66b571350207bccc7a2d6ed1ec9de4cd5), ROM_GROUPWORD | ROM_SKIP(4) ) |
| 2024 | 1857 | |
| 2025 | | ROM_REGION( 0x1000000, "samples", 0 ) /* Sound Samples? */ |
| 1858 | ROM_REGION( 0x1000000, "samples", 0 ) /* Sound Samples */ |
| 2026 | 1859 | ROM_LOAD( "002-sd01a.77", 0x0000000, 0x400000, CRC(6215036b) SHA1(ded71dce98b7f7ef78ef32d966a292bbf0d15332) ) |
| 2027 | 1860 | ROM_LOAD( "002-sd02a.78", 0x0400000, 0x400000, CRC(32b28310) SHA1(5b80750a66c12b035b493d06e3842741a3334d0f) ) |
| 2028 | 1861 | ROM_LOAD( "002-sd03a.79", 0x0800000, 0x400000, CRC(53591413) SHA1(36c7efa1aced0ca38b3ce7b95af28755973698f3) ) |
| r7772 | r7773 | |
| 2070 | 1903 | ROMX_LOAD( "003-vt02a.18", 0x0000002, 0x400000, CRC(da7b956e) SHA1(c57cbb8c51145ae224faba5b6a1a7e61cb2bee64), ROM_GROUPWORD | ROM_SKIP(4) ) |
| 2071 | 1904 | ROMX_LOAD( "003-vt03a.19", 0x0000004, 0x400000, CRC(4fe72cb7) SHA1(9f8e662f0656f201924834d1ee78498d4223745e), ROM_GROUPWORD | ROM_SKIP(4) ) |
| 2072 | 1905 | |
| 2073 | | ROM_REGION( 0x1000000, "samples", 0 ) /* Sound Samples? */ |
| 1906 | ROM_REGION( 0x1000000, "samples", 0 ) /* Sound Samples */ |
| 2074 | 1907 | ROM_LOAD( "003-sd01a.77", 0x0000000, 0x400000, CRC(c43898ff) SHA1(0e49b87181b56c62a674d255d326f761942b99b1) ) |
| 2075 | 1908 | ROM_LOAD( "003-sd02a.78", 0x0400000, 0x400000, CRC(079a3d5a) SHA1(a97b052de69fee7d605cae30f5a228e6ffeabb26) ) |
| 2076 | 1909 | ROM_LOAD( "003-sd03a.79", 0x0800000, 0x400000, CRC(96c0991a) SHA1(01be872b3e307258236fe96a544417dd8a0bc8bd) ) |
| r7772 | r7773 | |
| 2124 | 1957 | ROMX_LOAD( "004-vt02a.18", 0x0000002, 0x400000, CRC(279fc216) SHA1(eb90cc347745491c1d1b1fb611fd6e227310731c), ROM_GROUPWORD | ROM_SKIP(4) ) |
| 2125 | 1958 | ROMX_LOAD( "004-vt03a.19", 0x0000004, 0x400000, CRC(e0cf6a42) SHA1(dd09b3d05739cf030c820cd7dbaea2e7262764ab), ROM_GROUPWORD | ROM_SKIP(4) ) |
| 2126 | 1959 | |
| 2127 | | ROM_REGION( 0x1000000, "samples", 0 ) /* Sound Samples? */ |
| 1960 | ROM_REGION( 0x1000000, "samples", 0 ) /* Sound Samples */ |
| 2128 | 1961 | ROM_LOAD( "004-sd01a.77", 0x0000000, 0x400000, CRC(2ef868bd) SHA1(0a1ef002efe6738698ebe98a1c3695b151fdd282) ) |
| 2129 | 1962 | ROM_LOAD( "004-sd02a.78", 0x0400000, 0x400000, CRC(07fb3135) SHA1(56cc8e29ba9b13f82a4c9248bff02e2b7a0c49b0) ) |
| 2130 | 1963 | ROM_LOAD( "004-sd03a.79", 0x0800000, 0x400000, CRC(42571f1d) SHA1(425cbd3f7c8aea1c0f057ea8f186acffb0091dc0) ) |
| r7772 | r7773 | |
| 2201 | 2034 | ROMX_LOAD( "005vt05a.21", 0x0c00002, 0x400000, CRC(49c82bec) SHA1(09255279edb9a204bbe1cce8cef58d5c81e86d1f), ROM_GROUPWORD | ROM_SKIP(4) ) |
| 2202 | 2035 | ROMX_LOAD( "005vt06a.22", 0x0c00004, 0x400000, CRC(7ba05b6c) SHA1(729c1d182d74998dd904b587a2405f55af9825e0), ROM_GROUPWORD | ROM_SKIP(4) ) |
| 2203 | 2036 | |
| 2204 | | ROM_REGION( 0x1000000, "samples", 0 ) /* Sound Samples? */ |
| 2037 | ROM_REGION( 0x1000000, "samples", 0 ) /* Sound Samples */ |
| 2205 | 2038 | ROM_LOAD( "005sd01a.77", 0x0000000, 0x400000, CRC(8f68150f) SHA1(a1e5efdfd1ed29f81e25c8da669851ddb7b0c826) ) |
| 2206 | 2039 | ROM_LOAD( "005sd02a.78", 0x0400000, 0x400000, CRC(6b4da6a0) SHA1(8606c413c129635bdaaa37254edbfd19b10426bb) ) |
| 2207 | 2040 | ROM_LOAD( "005sd03a.79", 0x0800000, 0x400000, CRC(a529fab3) SHA1(8559d402c8f66f638590b8b57ec9efa775010c96) ) |
| 2208 | | ROM_LOAD( "005sd04a.80", 0x0800000, 0x400000, CRC(dca95ead) SHA1(39afdfba0e5262b524f25706a96be00e5d14548e) ) |
| 2041 | ROM_LOAD( "005sd04a.80", 0x0c00000, 0x400000, CRC(dca95ead) SHA1(39afdfba0e5262b524f25706a96be00e5d14548e) ) |
| 2209 | 2042 | ROM_END |
| 2210 | 2043 | |
| 2211 | 2044 | |
| r7772 | r7773 | |
| 2272 | 2105 | ROMX_LOAD( "006vt02a.18", 0x0000002, 0x400000, CRC(150eb717) SHA1(9acb067346eb386256047c0f1d24dc8fcc2118ca), ROM_GROUPWORD | ROM_SKIP(4) ) |
| 2273 | 2106 | ROMX_LOAD( "006vt03a.19", 0x0000004, 0x400000, CRC(021cfcaf) SHA1(fb8b5f50d3490b31f0a4c3e6d3ae1b98bae41c97), ROM_GROUPWORD | ROM_SKIP(4) ) |
| 2274 | 2107 | |
| 2275 | | ROM_REGION( 0x1000000, "samples", 0 ) /* Sound Samples? */ |
| 2108 | ROM_REGION( 0x1000000, "samples", 0 ) /* Sound Samples */ |
| 2276 | 2109 | ROM_LOAD( "006sd01a.77", 0x0000000, 0x400000, CRC(790efb6d) SHA1(23ddd3ee8ae808e58cbcaf92a9ef56d3ca6289b5) ) |
| 2277 | 2110 | ROM_LOAD( "006sd02a.78", 0x0400000, 0x400000, CRC(f7f020c7) SHA1(b72fde4ff6384b80166a3cb67d31bf7afda750bc) ) |
| 2278 | 2111 | ROM_LOAD( "006sd03a.79", 0x0800000, 0x400000, CRC(1a678084) SHA1(f52efb6145102d289f332d8341d89a5d231ba003) ) |
| 2279 | | ROM_LOAD( "006sd04a.80", 0x0800000, 0x400000, CRC(3c280a5c) SHA1(9d3fc78e18de45382878268db47ff9d9716f1505) ) |
| 2112 | ROM_LOAD( "006sd04a.80", 0x0c00000, 0x400000, CRC(3c280a5c) SHA1(9d3fc78e18de45382878268db47ff9d9716f1505) ) |
| 2280 | 2113 | ROM_END |
| 2281 | 2114 | |
| 2115 | |
| 2282 | 2116 | ROM_START( buriki ) |
| 2283 | 2117 | /* BIOS */ |
| 2284 | 2118 | ROM_REGION32_BE( 0x0100000, "user1", 0 ) /* 512k for R4300 BIOS code */ |
| r7772 | r7773 | |
| 2344 | 2178 | ROMX_LOAD( "007vt02a.18", 0x0000002, 0x400000, CRC(f365f608) SHA1(035fd9b829b7720c4aee6fdf204c080e6157994f), ROM_GROUPWORD | ROM_SKIP(4) ) |
| 2345 | 2179 | ROMX_LOAD( "007vt03a.19", 0x0000004, 0x400000, CRC(ba05654d) SHA1(b7fe532732c0af7860c8eded3c5abd304d74e08e), ROM_GROUPWORD | ROM_SKIP(4) ) |
| 2346 | 2180 | |
| 2347 | | ROM_REGION( 0x1000000, "samples", 0 ) /* Sound Samples? */ |
| 2181 | ROM_REGION( 0x1000000, "samples", 0 ) /* Sound Samples */ |
| 2348 | 2182 | ROM_LOAD( "007sd01a.77", 0x0000000, 0x400000, CRC(1afb48c6) SHA1(b072d4fe72d6c5267864818d300b32e85b426213) ) |
| 2349 | 2183 | ROM_LOAD( "007sd02a.78", 0x0400000, 0x400000, CRC(c65f1dd5) SHA1(7f504c585a10c1090dbd1ac31a3a0db920c992a0) ) |
| 2350 | 2184 | ROM_LOAD( "007sd03a.79", 0x0800000, 0x400000, CRC(356f25c8) SHA1(5250865900894232960686f40c5da35b3868b78c) ) |
| 2351 | | ROM_LOAD( "007sd04a.80", 0x0800000, 0x400000, CRC(dabfbbad) SHA1(7d58d5181705618e0e2d69c6fdb81b9b3d2b9e0f) ) |
| 2185 | ROM_LOAD( "007sd04a.80", 0x0c00000, 0x400000, CRC(dabfbbad) SHA1(7d58d5181705618e0e2d69c6fdb81b9b3d2b9e0f) ) |
| 2352 | 2186 | ROM_END |
| 2353 | 2187 | |
| 2354 | 2188 | /* Bios */ |
| 2355 | | GAME( 1997, hng64, 0, hng64, hng64, hng64, ROT0, "SNK", "Hyper NeoGeo 64 Bios", GAME_NOT_WORKING|GAME_NO_SOUND|GAME_IS_BIOS_ROOT ) |
| 2189 | GAME( 1997, hng64, 0, hng64, hng64, hng64, ROT0, "SNK", "Hyper NeoGeo 64 Bios", GAME_NOT_WORKING|GAME_NO_SOUND|GAME_IS_BIOS_ROOT ) |
| 2356 | 2190 | |
| 2357 | 2191 | /* Games */ |
| 2358 | 2192 | GAME( 1997, roadedge, hng64, hng64, hng64, hng64_race, ROT0, "SNK", "Roads Edge / Round Trip (rev.B)", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 001 */ |
src/mame/drivers/poker72.c
| r0 | r7773 | |
| 1 | /* |
| 2 | Unknown game, dump was marked 'slot 72 - poker' |
| 3 | |
| 4 | GFX roms contain |
| 5 | 'Extrema Systems International Ltd' |
| 6 | as well as a logo for the company. |
| 7 | |
| 8 | There are also 'Lucky Boy' graphics in various places, which might be the title. |
| 9 | |
| 10 | |
| 11 | */ |
| 12 | |
| 13 | #include "emu.h" |
| 14 | #include "cpu/z80/z80.h" |
| 15 | #include "sound/ay8910.h" |
| 16 | |
| 17 | static UINT8 *poker72_vram,*poker72_pal; |
| 18 | static UINT8 tile_bank; |
| 19 | |
| 20 | VIDEO_START(poker72) |
| 21 | { |
| 22 | |
| 23 | } |
| 24 | |
| 25 | VIDEO_UPDATE(poker72) |
| 26 | { |
| 27 | int x,y,count; |
| 28 | |
| 29 | count = 0; |
| 30 | |
| 31 | for (y=0;y<32;y++) |
| 32 | { |
| 33 | for (x=0;x<64;x++) |
| 34 | { |
| 35 | int tile = ((poker72_vram[count+1] & 0x0f) << 8 ) | (poker72_vram[count+0] & 0xff); //TODO: tile bank |
| 36 | int fx = (poker72_vram[count+1] & 0x10); |
| 37 | int fy = (poker72_vram[count+1] & 0x20); |
| 38 | int color = (poker72_vram[count+1] & 0xc0) >> 6; |
| 39 | |
| 40 | tile|= tile_bank << 12; |
| 41 | |
| 42 | drawgfx_opaque(bitmap,cliprect,screen->machine->gfx[0],tile,color,fx,fy,x*8,y*8); |
| 43 | |
| 44 | count+=2; |
| 45 | } |
| 46 | } |
| 47 | |
| 48 | return 0; |
| 49 | } |
| 50 | |
| 51 | static WRITE8_HANDLER( poker72_paletteram_w ) |
| 52 | { |
| 53 | int r,g,b; |
| 54 | poker72_pal[offset] = data; |
| 55 | |
| 56 | r = poker72_pal[(offset & 0x3ff)+0x000] & 0x3f; |
| 57 | g = poker72_pal[(offset & 0x3ff)+0x400] & 0x3f; |
| 58 | b = poker72_pal[(offset & 0x3ff)+0x800] & 0x3f; |
| 59 | |
| 60 | palette_set_color_rgb( space->machine, offset & 0x3ff, pal6bit(r), pal6bit(g), pal6bit(b)); |
| 61 | } |
| 62 | |
| 63 | static WRITE8_HANDLER( output_w ) |
| 64 | { |
| 65 | UINT8 *ROM = memory_region(space->machine, "maincpu"); |
| 66 | |
| 67 | printf("%02x\n",data); |
| 68 | |
| 69 | /* if((data & 0xc) == 0xc) |
| 70 | memory_set_bankptr(space->machine, "bank1", &ROM[0x10000]); |
| 71 | else*/ |
| 72 | if(data & 8) |
| 73 | memory_set_bankptr(space->machine, "bank1", &ROM[0x08000]); |
| 74 | else |
| 75 | memory_set_bankptr(space->machine, "bank1", &ROM[0x00000]); |
| 76 | } |
| 77 | |
| 78 | static WRITE8_HANDLER( tile_bank_w ) |
| 79 | { |
| 80 | tile_bank = (data & 4) >> 2; |
| 81 | } |
| 82 | |
| 83 | static ADDRESS_MAP_START( poker72_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| 84 | AM_RANGE(0x0000, 0xbfff) AM_ROMBANK("bank1") |
| 85 | AM_RANGE(0xc000, 0xdfff) AM_RAM //work ram |
| 86 | AM_RANGE(0xe000, 0xefff) AM_RAM AM_BASE(&poker72_vram) |
| 87 | AM_RANGE(0xf000, 0xfbff) AM_RAM_WRITE(poker72_paletteram_w) AM_BASE(&poker72_pal) |
| 88 | AM_RANGE(0xfc00, 0xfdff) AM_RAM //??? |
| 89 | AM_RANGE(0xfe08, 0xfe08) AM_READ_PORT("IN0") |
| 90 | AM_RANGE(0xfe09, 0xfe09) AM_READ_PORT("IN1") |
| 91 | AM_RANGE(0xfe0a, 0xfe0a) AM_READ_PORT("IN2") |
| 92 | AM_RANGE(0xfe0c, 0xfe0c) AM_READ_PORT("IN3") |
| 93 | AM_RANGE(0xfe0d, 0xfe0d) AM_READ_PORT("IN4") |
| 94 | AM_RANGE(0xfe0e, 0xfe0e) AM_READ_PORT("IN5") |
| 95 | |
| 96 | AM_RANGE(0xfe17, 0xfe17) AM_READNOP //irq ack |
| 97 | AM_RANGE(0xfe20, 0xfe20) AM_WRITE(output_w) //output, irq enable? |
| 98 | AM_RANGE(0xfe22, 0xfe22) AM_WRITE(tile_bank_w) |
| 99 | AM_RANGE(0xfe40, 0xfe40) AM_DEVREADWRITE("ay", ay8910_r, ay8910_data_w) |
| 100 | AM_RANGE(0xfe60, 0xfe60) AM_DEVWRITE("ay", ay8910_address_w) |
| 101 | ADDRESS_MAP_END |
| 102 | |
| 103 | |
| 104 | static INPUT_PORTS_START( poker72 ) |
| 105 | PORT_START("IN0") |
| 106 | PORT_DIPNAME( 0x01, 0x00, "IN0" ) |
| 107 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 108 | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 109 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) |
| 110 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 111 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| 112 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) |
| 113 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 114 | PORT_DIPSETTING( 0x04, DEF_STR( On ) ) |
| 115 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) |
| 116 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 117 | PORT_DIPSETTING( 0x08, DEF_STR( On ) ) |
| 118 | PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) |
| 119 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 120 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 121 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 122 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 123 | PORT_DIPSETTING( 0x20, DEF_STR( On ) ) |
| 124 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) |
| 125 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 126 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 127 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 128 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 129 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 130 | |
| 131 | PORT_START("IN1") |
| 132 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) |
| 133 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) |
| 134 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) |
| 135 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) |
| 136 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) |
| 137 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("M. Bet") |
| 138 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 139 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Black") |
| 140 | |
| 141 | |
| 142 | PORT_START("IN2") |
| 143 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Red") |
| 144 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) |
| 145 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) |
| 146 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) |
| 147 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) |
| 148 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 149 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) |
| 150 | PORT_SERVICE( 0x0080, IP_ACTIVE_LOW ) |
| 151 | |
| 152 | PORT_START("IN3") |
| 153 | PORT_DIPNAME( 0x01, 0x00, "IN3" ) |
| 154 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 155 | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 156 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) |
| 157 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 158 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| 159 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) |
| 160 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 161 | PORT_DIPSETTING( 0x04, DEF_STR( On ) ) |
| 162 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) |
| 163 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 164 | PORT_DIPSETTING( 0x08, DEF_STR( On ) ) |
| 165 | PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) |
| 166 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 167 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 168 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 169 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 170 | PORT_DIPSETTING( 0x20, DEF_STR( On ) ) |
| 171 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) |
| 172 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 173 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 174 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 175 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 176 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 177 | PORT_START("IN4") |
| 178 | PORT_DIPNAME( 0x01, 0x00, "IN4" ) |
| 179 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 180 | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 181 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) |
| 182 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 183 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| 184 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) |
| 185 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 186 | PORT_DIPSETTING( 0x04, DEF_STR( On ) ) |
| 187 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) |
| 188 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 189 | PORT_DIPSETTING( 0x08, DEF_STR( On ) ) |
| 190 | PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) |
| 191 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 192 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 193 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 194 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 195 | PORT_DIPSETTING( 0x20, DEF_STR( On ) ) |
| 196 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) |
| 197 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 198 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 199 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 200 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 201 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 202 | PORT_START("IN5") |
| 203 | PORT_DIPNAME( 0x01, 0x00, "IN5" ) |
| 204 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 205 | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 206 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) |
| 207 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 208 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| 209 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) |
| 210 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 211 | PORT_DIPSETTING( 0x04, DEF_STR( On ) ) |
| 212 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) |
| 213 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 214 | PORT_DIPSETTING( 0x08, DEF_STR( On ) ) |
| 215 | PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) |
| 216 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 217 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 218 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 219 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 220 | PORT_DIPSETTING( 0x20, DEF_STR( On ) ) |
| 221 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) |
| 222 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 223 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 224 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 225 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 226 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 227 | |
| 228 | |
| 229 | PORT_START("DSW0") |
| 230 | PORT_DIPNAME( 0x01, 0x00, "DSW0" ) |
| 231 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 232 | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 233 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) |
| 234 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 235 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| 236 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) |
| 237 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 238 | PORT_DIPSETTING( 0x04, DEF_STR( On ) ) |
| 239 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) |
| 240 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 241 | PORT_DIPSETTING( 0x08, DEF_STR( On ) ) |
| 242 | PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) |
| 243 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 244 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 245 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 246 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 247 | PORT_DIPSETTING( 0x20, DEF_STR( On ) ) |
| 248 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) |
| 249 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 250 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 251 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 252 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 253 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 254 | |
| 255 | PORT_START("DSW1") |
| 256 | PORT_DIPNAME( 0x01, 0x00, "DSW1" ) |
| 257 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 258 | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 259 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) |
| 260 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 261 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| 262 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) |
| 263 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 264 | PORT_DIPSETTING( 0x04, DEF_STR( On ) ) |
| 265 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) |
| 266 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 267 | PORT_DIPSETTING( 0x08, DEF_STR( On ) ) |
| 268 | PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) |
| 269 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 270 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 271 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 272 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 273 | PORT_DIPSETTING( 0x20, DEF_STR( On ) ) |
| 274 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) |
| 275 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 276 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 277 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 278 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 279 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 280 | |
| 281 | |
| 282 | INPUT_PORTS_END |
| 283 | |
| 284 | static const gfx_layout tiles8x8_layout = |
| 285 | { |
| 286 | 8,8, |
| 287 | RGN_FRAC(1,4), |
| 288 | 8, |
| 289 | { RGN_FRAC(3,4), RGN_FRAC(3,4)+4, RGN_FRAC(2,4), RGN_FRAC(2,4)+4 ,RGN_FRAC(1,4),RGN_FRAC(1,4)+4, RGN_FRAC(0,4),RGN_FRAC(0,4)+4 }, |
| 290 | { 0,1,2,3,8,9,10,11 }, |
| 291 | { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, |
| 292 | 16*8 |
| 293 | }; |
| 294 | |
| 295 | |
| 296 | |
| 297 | static GFXDECODE_START( poker72 ) |
| 298 | GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 16 ) |
| 299 | GFXDECODE_END |
| 300 | |
| 301 | /* default 444 palette for debug purpose */ |
| 302 | static PALETTE_INIT( poker72 ) |
| 303 | { |
| 304 | int x,r,g,b; |
| 305 | |
| 306 | for(x=0;x<0x100;x++) |
| 307 | { |
| 308 | r = (x & 0xf)*0x10; |
| 309 | g = ((x & 0x3c)>>2)*0x10; |
| 310 | b = ((x & 0xf0)>>4)*0x10; |
| 311 | palette_set_color(machine,x,MAKE_RGB(r,g,b)); |
| 312 | } |
| 313 | } |
| 314 | |
| 315 | static const ay8910_interface ay8910_config = |
| 316 | { |
| 317 | AY8910_LEGACY_OUTPUT, |
| 318 | AY8910_DEFAULT_LOADS, |
| 319 | DEVCB_INPUT_PORT("DSW0"), |
| 320 | DEVCB_INPUT_PORT("DSW1"), |
| 321 | DEVCB_NULL, |
| 322 | DEVCB_NULL |
| 323 | }; |
| 324 | |
| 325 | static MACHINE_RESET( poker72 ) |
| 326 | { |
| 327 | UINT8 *ROM = memory_region(machine, "maincpu"); |
| 328 | |
| 329 | memory_set_bankptr(machine, "bank1", &ROM[0]); |
| 330 | } |
| 331 | |
| 332 | static MACHINE_DRIVER_START( poker72 ) |
| 333 | |
| 334 | |
| 335 | /* basic machine hardware */ |
| 336 | MDRV_CPU_ADD("maincpu", Z80,8000000) /* ? MHz */ |
| 337 | MDRV_CPU_PROGRAM_MAP(poker72_map) |
| 338 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) |
| 339 | |
| 340 | MDRV_MACHINE_RESET(poker72) |
| 341 | |
| 342 | /* video hardware */ |
| 343 | MDRV_SCREEN_ADD("screen", RASTER) |
| 344 | MDRV_SCREEN_REFRESH_RATE(60) |
| 345 | MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 346 | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) |
| 347 | MDRV_SCREEN_SIZE(64*8, 32*8) |
| 348 | MDRV_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) |
| 349 | |
| 350 | MDRV_GFXDECODE(poker72) |
| 351 | MDRV_PALETTE_LENGTH(0xe00) |
| 352 | MDRV_PALETTE_INIT(poker72) |
| 353 | |
| 354 | MDRV_VIDEO_START(poker72) |
| 355 | MDRV_VIDEO_UPDATE(poker72) |
| 356 | |
| 357 | MDRV_SPEAKER_STANDARD_MONO("mono") |
| 358 | |
| 359 | MDRV_SOUND_ADD("ay", AY8910, 8000000/8) /* ? Mhz */ |
| 360 | MDRV_SOUND_CONFIG(ay8910_config) |
| 361 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 362 | MACHINE_DRIVER_END |
| 363 | |
| 364 | |
| 365 | |
| 366 | ROM_START( poker72 ) |
| 367 | ROM_REGION( 0x20000, "maincpu", 0 ) |
| 368 | ROM_LOAD( "27010.bin", 0x00000, 0x20000, CRC(62447341) SHA1(e442c1f834a5dd2ab6ab3bdd316dfa86f2ca6647) ) |
| 369 | |
| 370 | ROM_REGION( 0x1000, "89c51", 0 ) |
| 371 | ROM_LOAD( "89c51.bin", 0x00000, 0x1000, CRC(3fdd2148) SHA1(ea39a52482967268c7387aec77cfab1ae5c427fa) ) |
| 372 | |
| 373 | ROM_REGION( 0x80000, "gfx1", 0 ) |
| 374 | ROM_LOAD( "270135.bin", 0x00000, 0x20000, CRC(188c96ee) SHA1(7e883454cb080cdc82ce47ac92f51c8d45a55085) ) |
| 375 | ROM_LOAD( "270136.bin", 0x20000, 0x20000, CRC(f84c5068) SHA1(49178fe7b12f547a50879002236105a882767ebb) ) |
| 376 | ROM_LOAD( "270137.bin", 0x40000, 0x20000, CRC(310281d1) SHA1(c28f97bb3613c0b481ab6e16e215549c44b83c47) ) |
| 377 | ROM_LOAD( "270138.bin", 0x60000, 0x20000, CRC(d689313d) SHA1(8b9661b3af0e2ced7fe9fa487641e445ce7835b8) ) |
| 378 | ROM_END |
| 379 | |
| 380 | static DRIVER_INIT( poker72 ) |
| 381 | { |
| 382 | UINT8 *rom = memory_region(machine, "maincpu"); |
| 383 | |
| 384 | rom[0x4a9] = 0x28; |
| 385 | } |
| 386 | |
| 387 | GAME( 1995, poker72, 0, poker72, poker72, poker72, ROT0, "Extrema Systems International Ltd.", "Poker Monarch (v2.50)", GAME_NOT_WORKING ) // actually unknown, was marked 'slot 72 poker' Manufacturers logo and 'Lucky Boy' gfx in rom.. |
src/mame/drivers/sf.c
| r7772 | r7773 | |
| 7 | 7 | TODO: |
| 8 | 8 | - is there a third coin input? |
| 9 | 9 | |
| 10 | - Is sfj confirmed to have a 68705?, sfua has an i8751 and the actual |
| 11 | gamecode is closer to sfua than the other sets. The protection |
| 12 | appears to be the same on both. |
| 13 | |
| 10 | 14 | ***************************************************************************/ |
| 11 | 15 | |
| 12 | 16 | #include "emu.h" |
| r7772 | r7773 | |
| 47 | 51 | } |
| 48 | 52 | |
| 49 | 53 | |
| 50 | | /* The protection of the japanese version */ |
| 51 | | /* I'd love to see someone dump the 68705 rom */ |
| 54 | /* The protection of the Japanese (and alt US) version */ |
| 55 | /* I'd love to see someone dump the 68705 / i8751 roms */ |
| 52 | 56 | |
| 53 | 57 | static void write_dword( const address_space *space, offs_t offset, UINT32 data ) |
| 54 | 58 | { |
| r7772 | r7773 | |
| 202 | 206 | AM_RANGE(0xc00018, 0xc00019) AM_WRITE(sf_bg_scroll_w) |
| 203 | 207 | AM_RANGE(0xc0001a, 0xc0001b) AM_WRITE(sf_gfxctrl_w) |
| 204 | 208 | AM_RANGE(0xc0001c, 0xc0001d) AM_WRITE(soundcmd_w) |
| 205 | | AM_RANGE(0xc0001e, 0xc0001f) AM_WRITE(protection_w) |
| 209 | // AM_RANGE(0xc0001e, 0xc0001f) AM_WRITE(protection_w) |
| 206 | 210 | AM_RANGE(0xff8000, 0xffdfff) AM_RAM |
| 207 | 211 | AM_RANGE(0xffe000, 0xffffff) AM_RAM AM_BASE_MEMBER(sf_state, objectram) |
| 208 | 212 | ADDRESS_MAP_END |
| r7772 | r7773 | |
| 224 | 228 | AM_RANGE(0xc00018, 0xc00019) AM_WRITE(sf_bg_scroll_w) |
| 225 | 229 | AM_RANGE(0xc0001a, 0xc0001b) AM_WRITE(sf_gfxctrl_w) |
| 226 | 230 | AM_RANGE(0xc0001c, 0xc0001d) AM_WRITE(soundcmd_w) |
| 227 | | AM_RANGE(0xc0001e, 0xc0001f) AM_WRITE(protection_w) |
| 231 | // AM_RANGE(0xc0001e, 0xc0001f) AM_WRITE(protection_w) |
| 228 | 232 | AM_RANGE(0xff8000, 0xffdfff) AM_RAM |
| 229 | 233 | AM_RANGE(0xffe000, 0xffffff) AM_RAM AM_BASE_MEMBER(sf_state, objectram) |
| 230 | 234 | ADDRESS_MAP_END |
| r7772 | r7773 | |
| 938 | 942 | ROM_LOAD( "sf-35.bin", 0x0e0000, 0x020000, CRC(70c00fb4) SHA1(7c5504a5aedd3be7b663c5090eb22243e3fa669b) ) |
| 939 | 943 | |
| 940 | 944 | ROM_REGION( 0x1c0000, "gfx3", 0 ) |
| 941 | | ROM_LOAD( "sf-15.bin", 0x000000, 0x020000, CRC(fc0113db) SHA1(7c19603129be5f6e1ccd07fd8b7ee1cbf86468db) ) /* Sprites planes 1-2 */ |
| 945 | /* Sprites planes 1-2 */ |
| 946 | ROM_LOAD( "sf-15.bin", 0x000000, 0x020000, CRC(fc0113db) SHA1(7c19603129be5f6e1ccd07fd8b7ee1cbf86468db) ) |
| 942 | 947 | ROM_LOAD( "sf-16.bin", 0x020000, 0x020000, CRC(82e4a6d3) SHA1(5ec519c2740c66f5da27ced1db99e19fe38fdad7) ) |
| 943 | 948 | ROM_LOAD( "sf-11.bin", 0x040000, 0x020000, CRC(e112df1b) SHA1(3f9856f69b457d79fe085bf51dfb2efcd98f883d) ) |
| 944 | 949 | ROM_LOAD( "sf-12.bin", 0x060000, 0x020000, CRC(42d52299) SHA1(6560c38f5fd5a47db7728cc7df83d2169157174f) ) |
| 945 | 950 | ROM_LOAD( "sf-07.bin", 0x080000, 0x020000, CRC(49f340d9) SHA1(65822efefa198791a632ef851a5ce06a71b4ed0f) ) |
| 946 | 951 | ROM_LOAD( "sf-08.bin", 0x0a0000, 0x020000, CRC(95ece9b1) SHA1(f0a15fce5cd9617fa5d4dd43bd5b6ea190dace85) ) |
| 947 | 952 | ROM_LOAD( "sf-03.bin", 0x0c0000, 0x020000, CRC(5ca05781) SHA1(004f5ad34798471b39bd4612c797f0913ed0fb4a) ) |
| 948 | | ROM_LOAD( "sf-17.bin", 0x0e0000, 0x020000, CRC(69fac48e) SHA1(c9272217256c73cb8ddb4fbbfb5905ce1122c746) ) /* planes 2-3 */ |
| 953 | /* Sprites planes 2-3 */ |
| 954 | ROM_LOAD( "sf-17.bin", 0x0e0000, 0x020000, CRC(69fac48e) SHA1(c9272217256c73cb8ddb4fbbfb5905ce1122c746) ) |
| 949 | 955 | ROM_LOAD( "sf-18.bin", 0x100000, 0x020000, CRC(71cfd18d) SHA1(4c17e2124f3456d6b13ede8ad3ae916b53f9bb7e) ) |
| 950 | 956 | ROM_LOAD( "sf-13.bin", 0x120000, 0x020000, CRC(fa2eb24b) SHA1(96f3bd54c340771577cc232ebde93965421f2557) ) |
| 951 | 957 | ROM_LOAD( "sf-14.bin", 0x140000, 0x020000, CRC(ad955c95) SHA1(549d6a5125432aa45d03f15e76f6c2c8ab2e05a3) ) |
| r7772 | r7773 | |
| 969 | 975 | ROM_LOAD( "mmi-7603.13h", 0x0300, 0x0020, CRC(06bcda53) SHA1(fa69b77697bb12aa6012d82ef5b504d3a1d20232) ) /* unknown */ |
| 970 | 976 | ROM_END |
| 971 | 977 | |
| 972 | | ROM_START( sfus ) |
| 978 | ROM_START( sfu ) |
| 973 | 979 | ROM_REGION( 0x60000, "maincpu", 0 ) |
| 974 | 980 | ROM_LOAD16_BYTE("sfd-19", 0x00000, 0x10000, CRC(faaf6255) SHA1(f6d0186c6109780839576c141fc6b557c170c182) ) |
| 975 | 981 | ROM_LOAD16_BYTE("sfd-22", 0x00001, 0x10000, CRC(e1fe3519) SHA1(5c59343a8acaaa4f36636d8e28a4ca7854110dad) ) |
| r7772 | r7773 | |
| 1002 | 1008 | ROM_LOAD( "sf-35.bin", 0x0e0000, 0x020000, CRC(70c00fb4) SHA1(7c5504a5aedd3be7b663c5090eb22243e3fa669b) ) |
| 1003 | 1009 | |
| 1004 | 1010 | ROM_REGION( 0x1c0000, "gfx3", 0 ) |
| 1005 | | ROM_LOAD( "sf-15.bin", 0x000000, 0x020000, CRC(fc0113db) SHA1(7c19603129be5f6e1ccd07fd8b7ee1cbf86468db) ) /* Sprites planes 1-2 */ |
| 1011 | /* Sprites planes 1-2 */ |
| 1012 | ROM_LOAD( "sf-15.bin", 0x000000, 0x020000, CRC(fc0113db) SHA1(7c19603129be5f6e1ccd07fd8b7ee1cbf86468db) ) |
| 1006 | 1013 | ROM_LOAD( "sf-16.bin", 0x020000, 0x020000, CRC(82e4a6d3) SHA1(5ec519c2740c66f5da27ced1db99e19fe38fdad7) ) |
| 1007 | 1014 | ROM_LOAD( "sf-11.bin", 0x040000, 0x020000, CRC(e112df1b) SHA1(3f9856f69b457d79fe085bf51dfb2efcd98f883d) ) |
| 1008 | 1015 | ROM_LOAD( "sf-12.bin", 0x060000, 0x020000, CRC(42d52299) SHA1(6560c38f5fd5a47db7728cc7df83d2169157174f) ) |
| 1009 | 1016 | ROM_LOAD( "sf-07.bin", 0x080000, 0x020000, CRC(49f340d9) SHA1(65822efefa198791a632ef851a5ce06a71b4ed0f) ) |
| 1010 | 1017 | ROM_LOAD( "sf-08.bin", 0x0a0000, 0x020000, CRC(95ece9b1) SHA1(f0a15fce5cd9617fa5d4dd43bd5b6ea190dace85) ) |
| 1011 | 1018 | ROM_LOAD( "sf-03.bin", 0x0c0000, 0x020000, CRC(5ca05781) SHA1(004f5ad34798471b39bd4612c797f0913ed0fb4a) ) |
| 1012 | | ROM_LOAD( "sf-17.bin", 0x0e0000, 0x020000, CRC(69fac48e) SHA1(c9272217256c73cb8ddb4fbbfb5905ce1122c746) ) /* planes 2-3 */ |
| 1019 | /* Sprites planes 2-3 */ |
| 1020 | ROM_LOAD( "sf-17.bin", 0x0e0000, 0x020000, CRC(69fac48e) SHA1(c9272217256c73cb8ddb4fbbfb5905ce1122c746) ) |
| 1013 | 1021 | ROM_LOAD( "sf-18.bin", 0x100000, 0x020000, CRC(71cfd18d) SHA1(4c17e2124f3456d6b13ede8ad3ae916b53f9bb7e) ) |
| 1014 | 1022 | ROM_LOAD( "sf-13.bin", 0x120000, 0x020000, CRC(fa2eb24b) SHA1(96f3bd54c340771577cc232ebde93965421f2557) ) |
| 1015 | 1023 | ROM_LOAD( "sf-14.bin", 0x140000, 0x020000, CRC(ad955c95) SHA1(549d6a5125432aa45d03f15e76f6c2c8ab2e05a3) ) |
| r7772 | r7773 | |
| 1033 | 1041 | ROM_LOAD( "mmi-7603.13h", 0x0300, 0x0020, CRC(06bcda53) SHA1(fa69b77697bb12aa6012d82ef5b504d3a1d20232) ) /* unknown */ |
| 1034 | 1042 | ROM_END |
| 1035 | 1043 | |
| 1044 | |
| 1045 | ROM_START( sfua ) |
| 1046 | ROM_REGION( 0x60000, "maincpu", 0 ) |
| 1047 | ROM_LOAD16_BYTE("sfs19u.1a", 0x00000, 0x10000, CRC(c8e41c49) SHA1(01f023864a662fa451901b8689341b00a36973c1) ) |
| 1048 | ROM_LOAD16_BYTE("sfs22u.1b", 0x00001, 0x10000, CRC(667e9309) SHA1(3d895874cf86470e4f2041d21e751fac3170b4c5) ) |
| 1049 | ROM_LOAD16_BYTE("sfs20u.2a", 0x20000, 0x10000, CRC(303065bf) SHA1(152bb707cd71a8614f6d17cf9a145c8a8184ded7) ) |
| 1050 | ROM_LOAD16_BYTE("sfs23u.2b", 0x20001, 0x10000, CRC(de6927a3) SHA1(862a62b71fbd2049f05968a238b97344d3b7404e) ) |
| 1051 | ROM_LOAD16_BYTE("sfs21u.3a", 0x40000, 0x10000, CRC(004a418b) SHA1(1048afe2e0dbc22969d79a031394f3c8ab4c8901) ) |
| 1052 | ROM_LOAD16_BYTE("sfs24u.3b", 0x40001, 0x10000, CRC(2b4545ff) SHA1(19bdae7947d13b861ace25b96e46f199ee9a6eb2) ) |
| 1053 | |
| 1054 | ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the music CPU */ |
| 1055 | ROM_LOAD( "sf-02.bin", 0x0000, 0x8000, CRC(4a9ac534) SHA1(933645f8db4756aa2a35a843c3ac6f93cb8d565d) ) |
| 1056 | |
| 1057 | ROM_REGION( 0x40000, "audio2", 0 ) /* 256k for the samples CPU */ |
| 1058 | ROM_LOAD( "sfu-00", 0x00000, 0x20000, CRC(a7cce903) SHA1(76f521c9a00abd95a3491ab95e8eccd0fc7ea0e5) ) |
| 1059 | ROM_LOAD( "sf-01.bin", 0x20000, 0x20000, CRC(86e0f0d5) SHA1(7cef8056f83dac15f1b47d7be705d26170858337) ) |
| 1060 | |
| 1061 | ROM_REGION( 0x0800, "mcu", 0 ) /* i8751 MCU */ |
| 1062 | ROM_LOAD( "i8751.bin", 0x0000, 0x0800, NO_DUMP ) |
| 1063 | |
| 1064 | ROM_REGION( 0x080000, "gfx1", 0 ) |
| 1065 | ROM_LOAD( "sf-39.bin", 0x000000, 0x020000, CRC(cee3d292) SHA1(a8c22f1dc81976e8dd5d6c70361c61fa3f9f89d6) ) /* Background b planes 0-1*/ |
| 1066 | ROM_LOAD( "sf-38.bin", 0x020000, 0x020000, CRC(2ea99676) SHA1(5f3eb77e75f0ee27fb8fc7bab2819b3fdd480206) ) |
| 1067 | ROM_LOAD( "sf-41.bin", 0x040000, 0x020000, CRC(e0280495) SHA1(e52c79feed590535b9a0b71ccadd0ed27d04ff45) ) /* planes 2-3 */ |
| 1068 | ROM_LOAD( "sf-40.bin", 0x060000, 0x020000, CRC(c70b30de) SHA1(26112ee1720b6ad0e2e29e2d25ee2ec76fca0e3a) ) |
| 1069 | |
| 1070 | ROM_REGION( 0x100000, "gfx2", 0 ) |
| 1071 | ROM_LOAD( "sf-25.bin", 0x000000, 0x020000, CRC(7f23042e) SHA1(a355fd7047fb1a71ab5cd08e1afd82c2558494c1) ) /* Background m planes 0-1 */ |
| 1072 | ROM_LOAD( "sf-28.bin", 0x020000, 0x020000, CRC(92f8b91c) SHA1(6d958bc45131810d7b0af02be939ce37a39c35e8) ) |
| 1073 | ROM_LOAD( "sf-30.bin", 0x040000, 0x020000, CRC(b1399856) SHA1(7c956d49b2e73291182ea1ec4cebd3411d1322a1) ) |
| 1074 | ROM_LOAD( "sf-34.bin", 0x060000, 0x020000, CRC(96b6ae2e) SHA1(700e050463b7a29a1eb08007a2add045afdcd8a0) ) |
| 1075 | ROM_LOAD( "sf-26.bin", 0x080000, 0x020000, CRC(54ede9f5) SHA1(c2cb354a6b32047759945fa3ecafc70ba7d1dda1) ) /* planes 2-3 */ |
| 1076 | ROM_LOAD( "sf-29.bin", 0x0a0000, 0x020000, CRC(f0649a67) SHA1(eeda256527f7a2ee2d5e0688c505a01de548bc54) ) |
| 1077 | ROM_LOAD( "sf-31.bin", 0x0c0000, 0x020000, CRC(8f4dd71a) SHA1(28b82c540df04c91a2dd6cbbc9a95bbebda6643b) ) |
| 1078 | ROM_LOAD( "sf-35.bin", 0x0e0000, 0x020000, CRC(70c00fb4) SHA1(7c5504a5aedd3be7b663c5090eb22243e3fa669b) ) |
| 1079 | |
| 1080 | ROM_REGION( 0x1c0000, "gfx3", 0 ) |
| 1081 | /* Sprites planes 1-2 */ |
| 1082 | ROM_LOAD( "sf-15.bin", 0x000000, 0x020000, CRC(fc0113db) SHA1(7c19603129be5f6e1ccd07fd8b7ee1cbf86468db) ) |
| 1083 | ROM_LOAD( "sf-16.bin", 0x020000, 0x020000, CRC(82e4a6d3) SHA1(5ec519c2740c66f5da27ced1db99e19fe38fdad7) ) |
| 1084 | ROM_LOAD( "sf-11.bin", 0x040000, 0x020000, CRC(e112df1b) SHA1(3f9856f69b457d79fe085bf51dfb2efcd98f883d) ) |
| 1085 | ROM_LOAD( "sf-12.bin", 0x060000, 0x020000, CRC(42d52299) SHA1(6560c38f5fd5a47db7728cc7df83d2169157174f) ) |
| 1086 | ROM_LOAD( "sf-07.bin", 0x080000, 0x020000, CRC(49f340d9) SHA1(65822efefa198791a632ef851a5ce06a71b4ed0f) ) |
| 1087 | ROM_LOAD( "sf-08.bin", 0x0a0000, 0x020000, CRC(95ece9b1) SHA1(f0a15fce5cd9617fa5d4dd43bd5b6ea190dace85) ) |
| 1088 | ROM_LOAD( "sf-03.bin", 0x0c0000, 0x020000, CRC(5ca05781) SHA1(004f5ad34798471b39bd4612c797f0913ed0fb4a) ) |
| 1089 | /* Sprites planes 2-3 */ |
| 1090 | ROM_LOAD( "sf-17.bin", 0x0e0000, 0x020000, CRC(69fac48e) SHA1(c9272217256c73cb8ddb4fbbfb5905ce1122c746) ) |
| 1091 | ROM_LOAD( "sf-18.bin", 0x100000, 0x020000, CRC(71cfd18d) SHA1(4c17e2124f3456d6b13ede8ad3ae916b53f9bb7e) ) |
| 1092 | ROM_LOAD( "sf-13.bin", 0x120000, 0x020000, CRC(fa2eb24b) SHA1(96f3bd54c340771577cc232ebde93965421f2557) ) |
| 1093 | ROM_LOAD( "sf-14.bin", 0x140000, 0x020000, CRC(ad955c95) SHA1(549d6a5125432aa45d03f15e76f6c2c8ab2e05a3) ) |
| 1094 | ROM_LOAD( "sf-09.bin", 0x160000, 0x020000, CRC(41b73a31) SHA1(aaa7a53e29fe23a1ca8ec4430f7efcbd774a8cbf) ) |
| 1095 | ROM_LOAD( "sf-10.bin", 0x180000, 0x020000, CRC(91c41c50) SHA1(b03fb9b3c553fb4aae45ad6997eeb7bb95fdcce3) ) |
| 1096 | ROM_LOAD( "sf-05.bin", 0x1a0000, 0x020000, CRC(538c7cbe) SHA1(f030a9562fbb93d1534b91343ca3f429cdbd0136) ) |
| 1097 | |
| 1098 | ROM_REGION( 0x004000, "gfx4", 0 ) |
| 1099 | ROM_LOAD( "sf-27.bin", 0x000000, 0x004000, CRC(2b09b36d) SHA1(9fe1dd3a9396fbb06f30247cfe526653553beca1) ) /* Characters planes 1-2 */ |
| 1100 | |
| 1101 | ROM_REGION( 0x40000, "gfx5", 0 ) /* background tilemaps */ |
| 1102 | ROM_LOAD( "sf-37.bin", 0x000000, 0x010000, CRC(23d09d3d) SHA1(a0c71abc49c5fe59487a63b502e3d03021bfef13) ) |
| 1103 | ROM_LOAD( "sf-36.bin", 0x010000, 0x010000, CRC(ea16df6c) SHA1(68709a314b775c500817fc17d40a80204b2ae06c) ) |
| 1104 | ROM_LOAD( "sf-32.bin", 0x020000, 0x010000, CRC(72df2bd9) SHA1(9a0da618139673738b6b3302207255e44c5491a2) ) |
| 1105 | ROM_LOAD( "sf-33.bin", 0x030000, 0x010000, CRC(3e99d3d5) SHA1(9168a977e80f8c23c6126b9e64eb176290cf941a) ) |
| 1106 | |
| 1107 | ROM_REGION( 0x0320, "proms", 0 ) |
| 1108 | ROM_LOAD( "sfb05.bin", 0x0000, 0x0100, CRC(864199ad) SHA1(b777df20b19fa7b7536120191df1875101e9d7af) ) /* unknown */ |
| 1109 | ROM_LOAD( "sfb00.bin", 0x0100, 0x0100, CRC(bd3f8c5d) SHA1(c31ee9f466f05a21612f5ea29fb8c7c25dc9e011) ) /* unknown */ |
| 1110 | ROM_LOAD( "mb7114h.12j", 0x0200, 0x0100, CRC(4c734b64) SHA1(7a122b643bad3e3586821980efff023a63e5a029) ) /* unknown */ |
| 1111 | ROM_LOAD( "mmi-7603.13h", 0x0300, 0x0020, CRC(06bcda53) SHA1(fa69b77697bb12aa6012d82ef5b504d3a1d20232) ) /* unknown */ |
| 1112 | ROM_END |
| 1113 | |
| 1114 | |
| 1036 | 1115 | ROM_START( sfj ) |
| 1037 | 1116 | ROM_REGION( 0x60000, "maincpu", 0 ) |
| 1038 | 1117 | ROM_LOAD16_BYTE("sf-19.bin", 0x00000, 0x10000, CRC(116027d7) SHA1(6bcb117ee415aff4d8ea962d4eff4088ca94c251) ) |
| r7772 | r7773 | |
| 1049 | 1128 | ROM_LOAD( "sf-00.bin", 0x00000, 0x20000, CRC(4b733845) SHA1(f7ff46e02f8ce6682d6e573588271bae2edfa90f) ) |
| 1050 | 1129 | ROM_LOAD( "sf-01.bin", 0x20000, 0x20000, CRC(86e0f0d5) SHA1(7cef8056f83dac15f1b47d7be705d26170858337) ) |
| 1051 | 1130 | |
| 1052 | | ROM_REGION( 0x0800, "mcu", 0 ) /* 68705 MCU */ |
| 1131 | ROM_REGION( 0x0800, "mcu", 0 ) /* 68705 MCU */ // or should it be an i8751 like the above set? the protection is the same! |
| 1053 | 1132 | ROM_LOAD( "68705.bin", 0x0000, 0x0800, NO_DUMP ) |
| 1054 | 1133 | |
| 1055 | 1134 | ROM_REGION( 0x080000, "gfx1", 0 ) |
| r7772 | r7773 | |
| 1069 | 1148 | ROM_LOAD( "sf-35.bin", 0x0e0000, 0x020000, CRC(70c00fb4) SHA1(7c5504a5aedd3be7b663c5090eb22243e3fa669b) ) |
| 1070 | 1149 | |
| 1071 | 1150 | ROM_REGION( 0x1c0000, "gfx3", 0 ) |
| 1072 | | ROM_LOAD( "sf-15.bin", 0x000000, 0x020000, CRC(fc0113db) SHA1(7c19603129be5f6e1ccd07fd8b7ee1cbf86468db) ) /* Sprites planes 1-2 */ |
| 1151 | /* Sprites planes 1-2 */ |
| 1152 | ROM_LOAD( "sf-15.bin", 0x000000, 0x020000, CRC(fc0113db) SHA1(7c19603129be5f6e1ccd07fd8b7ee1cbf86468db) ) |
| 1073 | 1153 | ROM_LOAD( "sf-16.bin", 0x020000, 0x020000, CRC(82e4a6d3) SHA1(5ec519c2740c66f5da27ced1db99e19fe38fdad7) ) |
| 1074 | 1154 | ROM_LOAD( "sf-11.bin", 0x040000, 0x020000, CRC(e112df1b) SHA1(3f9856f69b457d79fe085bf51dfb2efcd98f883d) ) |
| 1075 | 1155 | ROM_LOAD( "sf-12.bin", 0x060000, 0x020000, CRC(42d52299) SHA1(6560c38f5fd5a47db7728cc7df83d2169157174f) ) |
| 1076 | 1156 | ROM_LOAD( "sf-07.bin", 0x080000, 0x020000, CRC(49f340d9) SHA1(65822efefa198791a632ef851a5ce06a71b4ed0f) ) |
| 1077 | 1157 | ROM_LOAD( "sf-08.bin", 0x0a0000, 0x020000, CRC(95ece9b1) SHA1(f0a15fce5cd9617fa5d4dd43bd5b6ea190dace85) ) |
| 1078 | 1158 | ROM_LOAD( "sf-03.bin", 0x0c0000, 0x020000, CRC(5ca05781) SHA1(004f5ad34798471b39bd4612c797f0913ed0fb4a) ) |
| 1079 | | ROM_LOAD( "sf-17.bin", 0x0e0000, 0x020000, CRC(69fac48e) SHA1(c9272217256c73cb8ddb4fbbfb5905ce1122c746) ) /* planes 2-3 */ |
| 1159 | /* Sprites planes 2-3 */ |
| 1160 | ROM_LOAD( "sf-17.bin", 0x0e0000, 0x020000, CRC(69fac48e) SHA1(c9272217256c73cb8ddb4fbbfb5905ce1122c746) ) |
| 1080 | 1161 | ROM_LOAD( "sf-18.bin", 0x100000, 0x020000, CRC(71cfd18d) SHA1(4c17e2124f3456d6b13ede8ad3ae916b53f9bb7e) ) |
| 1081 | 1162 | ROM_LOAD( "sf-13.bin", 0x120000, 0x020000, CRC(fa2eb24b) SHA1(96f3bd54c340771577cc232ebde93965421f2557) ) |
| 1082 | 1163 | ROM_LOAD( "sf-14.bin", 0x140000, 0x020000, CRC(ad955c95) SHA1(549d6a5125432aa45d03f15e76f6c2c8ab2e05a3) ) |
| r7772 | r7773 | |
| 1100 | 1181 | ROM_LOAD( "mmi-7603.13h", 0x0300, 0x0020, CRC(06bcda53) SHA1(fa69b77697bb12aa6012d82ef5b504d3a1d20232) ) /* unknown */ |
| 1101 | 1182 | ROM_END |
| 1102 | 1183 | |
| 1184 | |
| 1103 | 1185 | ROM_START( sfp ) |
| 1104 | 1186 | ROM_REGION( 0x60000, "maincpu", 0 ) |
| 1105 | 1187 | ROM_LOAD16_BYTE("prg8.2a", 0x00000, 0x20000, CRC(d48d06a3) SHA1(d899771c66c1e7a5caa11f67a1122adb6f0f4d28) ) |
| r7772 | r7773 | |
| 1127 | 1209 | ROM_LOAD( "mchr.2g", 0x0c0000, 0x020000, CRC(1283ac09) SHA1(229a507e0a1c46b451d8879e690e8557d21d588d) ) |
| 1128 | 1210 | ROM_LOAD( "mchr.2h", 0x0e0000, 0x020000, CRC(cc6bf05c) SHA1(4e83dd55c88d5b539ab1dcae5bfd16195bcd2565) ) |
| 1129 | 1211 | |
| 1130 | | ROM_REGION( 0xc0000, "gfx3", 0 ) |
| 1131 | | ROM_LOAD( "b1m.bin", 0x000000, 0x010000, CRC(64758232) SHA1(20d21677b791a7f96afed54b286ee92adb80456d) ) /* Sprites planes 1-2 */ |
| 1212 | /* these graphic roms seem mismatched with this version of the prototype, they don't contain the graphics needed |
| 1213 | for the bonus round, or have complete tile sets graphic set for 2 of the characters which are used by the prototype |
| 1214 | (all of Joe is missing, many of Mike's poses are missing) If you use the original ROMs instead the graphics are |
| 1215 | correct, so the prototype is clearly already referencing the final tile arrangement for them. The glitches |
| 1216 | therefore are not emulation bugs, if the PCB contained the same mismatched ROMs it would exhibit the same glitches. */ |
| 1217 | ROM_REGION( 0x1c0000, "gfx3", ROMREGION_ERASE00 ) |
| 1218 | /* Sprites planes 1-2 */ |
| 1219 | ROM_LOAD( "b1m.bin", 0x000000, 0x010000, CRC(64758232) SHA1(20d21677b791a7f96afed54b286ee92adb80456d) ) |
| 1132 | 1220 | ROM_LOAD( "b2m.bin", 0x010000, 0x010000, CRC(d958f5ad) SHA1(0e5c98a24814f5e1e6346dba4cfbd3a3a72ed724) ) |
| 1133 | 1221 | ROM_LOAD( "b1k.bin", 0x020000, 0x010000, CRC(e766f5fe) SHA1(ad48a543507a981d844f0e2d5cceb689775b9ad6) ) |
| 1134 | 1222 | ROM_LOAD( "b2k.bin", 0x030000, 0x010000, CRC(e71572d3) SHA1(752540bbabf56c883208b132e285b485d4b5b4ee) ) |
| 1135 | 1223 | ROM_LOAD( "b1h.bin", 0x040000, 0x010000, CRC(8494f38c) SHA1(8d99ae088bd5b479f10e69b0a960f07d10adc23b) ) |
| 1136 | 1224 | ROM_LOAD( "b2h.bin", 0x050000, 0x010000, CRC(1fc5f049) SHA1(bb6d5622247ec32ad044cde856cf67dddc3c732f) ) |
| 1137 | | ROM_LOAD( "b3m.bin", 0x060000, 0x010000, CRC(d136802e) SHA1(84c2a6b2a8bad7e9249b6dce9cbf5301526aa6af) ) /* planes 2-3 */ |
| 1138 | | ROM_LOAD( "b4m.bin", 0x070000, 0x010000, CRC(b4fa85d3) SHA1(c15e36000bf68a838eb34c3872e342acbb9c140a) ) |
| 1139 | | ROM_LOAD( "b3k.bin", 0x080000, 0x010000, CRC(40e11cc8) SHA1(ed469a8629080da88ce6faeb232633f94e2816c3) ) |
| 1140 | | ROM_LOAD( "b4k.bin", 0x090000, 0x010000, CRC(5ca9716e) SHA1(87620083aa6a7697f6faf742ac0e47115af3e0f3) ) |
| 1141 | | ROM_LOAD( "b3h.bin", 0x0a0000, 0x010000, CRC(8c3d9173) SHA1(08df92d962852f88b42e76dfaf6bb23a80d84657) ) |
| 1142 | | ROM_LOAD( "b4h.bin", 0x0b0000, 0x010000, CRC(a2df66f8) SHA1(9349704fdb7b0919813cb48d4deacdbbdebb2fee) ) |
| 1225 | /* Sprites planes 2-3 */ |
| 1226 | ROM_LOAD( "b3m.bin", 0x0e0000, 0x010000, CRC(d136802e) SHA1(84c2a6b2a8bad7e9249b6dce9cbf5301526aa6af) ) |
| 1227 | ROM_LOAD( "b4m.bin", 0x0f0000, 0x010000, CRC(b4fa85d3) SHA1(c15e36000bf68a838eb34c3872e342acbb9c140a) ) |
| 1228 | ROM_LOAD( "b3k.bin", 0x100000, 0x010000, CRC(40e11cc8) SHA1(ed469a8629080da88ce6faeb232633f94e2816c3) ) |
| 1229 | ROM_LOAD( "b4k.bin", 0x110000, 0x010000, CRC(5ca9716e) SHA1(87620083aa6a7697f6faf742ac0e47115af3e0f3) ) |
| 1230 | ROM_LOAD( "b3h.bin", 0x120000, 0x010000, CRC(8c3d9173) SHA1(08df92d962852f88b42e76dfaf6bb23a80d84657) ) |
| 1231 | ROM_LOAD( "b4h.bin", 0x130000, 0x010000, CRC(a2df66f8) SHA1(9349704fdb7b0919813cb48d4deacdbbdebb2fee) ) |
| 1143 | 1232 | |
| 1144 | 1233 | ROM_REGION( 0x004000, "gfx4", 0 ) |
| 1145 | 1234 | ROM_LOAD( "vram.4d", 0x000000, 0x004000, CRC(bfadfb32) SHA1(8443ad9f02da5fb032017fc0c657b1bdc15e4f27) ) /* Characters planes 1-2 */ |
| r7772 | r7773 | |
| 1159 | 1248 | |
| 1160 | 1249 | |
| 1161 | 1250 | |
| 1162 | | GAME( 1987, sf, 0, sf, sf, 0, ROT0, "Capcom", "Street Fighter (World)", GAME_SUPPORTS_SAVE ) |
| 1163 | | GAME( 1987, sfus, sf, sfus, sfus, 0, ROT0, "Capcom", "Street Fighter (US)", GAME_SUPPORTS_SAVE ) |
| 1164 | | GAME( 1987, sfj, sf, sfjp, sfjp, 0, ROT0, "Capcom", "Street Fighter (Japan)", GAME_SUPPORTS_SAVE ) |
| 1251 | GAME( 1987, sf, 0, sf, sf, 0, ROT0, "Capcom", "Street Fighter (World, Analog buttons)", GAME_SUPPORTS_SAVE ) |
| 1252 | GAME( 1987, sfu, sf, sfus, sfus, 0, ROT0, "Capcom", "Street Fighter (US, set 1)", GAME_SUPPORTS_SAVE ) // Shows Capcom copyright |
| 1253 | GAME( 1987, sfua, sf, sfjp, sfjp, 0, ROT0, "Capcom", "Street Fighter (US, set 2) (protected)", GAME_SUPPORTS_SAVE ) // Shows Capcom USA copyright |
| 1254 | GAME( 1987, sfj, sf, sfjp, sfjp, 0, ROT0, "Capcom", "Street Fighter (Japan) (protected)", GAME_SUPPORTS_SAVE ) |
| 1165 | 1255 | GAME( 1987, sfp, sf, sfp, sf, 0, ROT0, "Capcom", "Street Fighter (prototype)", GAME_SUPPORTS_SAVE ) |
src/emu/cpu/nec/necdasm.c
| r7772 | r7773 | |
| 29 | 29 | PARAM_REG2_16, /* 16-bit register */ |
| 30 | 30 | PARAM_RM8, /* 8-bit memory or register */ |
| 31 | 31 | PARAM_RM16, /* 16-bit memory or register */ |
| 32 | | PARAM_I4, /* 4-bit signed immediate */ |
| 32 | PARAM_I3, /* 3-bit immediate */ |
| 33 | PARAM_I4, /* 4-bit immediate */ |
| 33 | 34 | PARAM_I8, /* 8-bit signed immediate */ |
| 34 | 35 | PARAM_I16, /* 16-bit signed immediate */ |
| 35 | 36 | PARAM_UI8, /* 8-bit unsigned immediate */ |
| 36 | | PARAM_UI16, /* 16-bit unsigned immediate */ |
| 37 | 37 | PARAM_IMM, /* 16-bit immediate */ |
| 38 | 38 | PARAM_ADDR, /* 16:16 address */ |
| 39 | 39 | PARAM_REL8, /* 8-bit PC-relative displacement */ |
| 40 | 40 | PARAM_REL16, /* 16-bit PC-relative displacement */ |
| 41 | | PARAM_MEM_OFFS_B, /* 8-bit mem offset */ |
| 42 | | PARAM_MEM_OFFS_W, /* 16-bit mem offset */ |
| 41 | PARAM_MEM_OFFS, /* 16-bit mem offset */ |
| 43 | 42 | PARAM_SREG, /* segment register */ |
| 44 | | PARAM_RBANK, /* register bank (V25) */ |
| 43 | PARAM_SFREG, /* V25/V35 special function register */ |
| 45 | 44 | PARAM_1, /* used by shift/rotate instructions */ |
| 46 | 45 | PARAM_AL, |
| 47 | 46 | PARAM_CL, |
| r7772 | r7773 | |
| 199 | 198 | {"push r", 0, 0, 0, 0 }, |
| 200 | 199 | {"pop r", 0, 0, 0, 0 }, |
| 201 | 200 | {"chkind", MODRM, PARAM_REG16, PARAM_RM16, 0 }, |
| 202 | | {"brkn", MODRM, PARAM_RM16, PARAM_REG16, 0 }, /* break into native */ |
| 201 | {"brkn", 0, PARAM_UI8, 0, 0, DASMFLAG_STEP_OVER}, /* V25S/V35S only */ |
| 203 | 202 | {"repnc", PREFIX, 0, 0, 0 }, |
| 204 | 203 | {"repc", PREFIX, 0, 0, 0 }, |
| 205 | | {"fpo2 0", 0,/*OP_SIZE*/ 0, 0, 0 }, |
| 206 | | {"fpo2 1", 0,/*ADDR_SIZE*/ 0, 0, 0 }, |
| 204 | {"fpo2 0", 0, 0, 0, 0 }, /* for a coprocessor that was never made */ |
| 205 | {"fpo2 1", 0, 0, 0, 0 }, /* for a coprocessor that was never made */ |
| 207 | 206 | {"push", 0, PARAM_IMM, 0, 0 }, |
| 208 | 207 | {"mul", MODRM, PARAM_REG16, PARAM_RM16, PARAM_IMM }, |
| 209 | 208 | {"push", 0, PARAM_I8, 0, 0 }, |
| r7772 | r7773 | |
| 264 | 263 | {"mov psw,ah", 0, 0, 0, 0 }, |
| 265 | 264 | {"mov ah,psw", 0, 0, 0, 0 }, |
| 266 | 265 | // 0xa0 |
| 267 | | {"mov", 0, PARAM_AL, PARAM_MEM_OFFS_W, 0 }, |
| 268 | | {"mov", 0, PARAM_AW, PARAM_MEM_OFFS_W, 0 }, |
| 269 | | {"mov", 0, PARAM_MEM_OFFS_W, PARAM_AL, 0 }, |
| 270 | | {"mov", 0, PARAM_MEM_OFFS_W, PARAM_AW, 0 }, |
| 266 | {"mov", 0, PARAM_AL, PARAM_MEM_OFFS, 0 }, |
| 267 | {"mov", 0, PARAM_AW, PARAM_MEM_OFFS, 0 }, |
| 268 | {"mov", 0, PARAM_MEM_OFFS, PARAM_AL, 0 }, |
| 269 | {"mov", 0, PARAM_MEM_OFFS, PARAM_AW, 0 }, |
| 271 | 270 | {"movbkb", 0, 0, 0, 0 }, |
| 272 | 271 | {"movbkw", 0, 0, 0, 0 }, |
| 273 | 272 | {"cmpbkb", 0, 0, 0, 0 }, |
| r7772 | r7773 | |
| 325 | 324 | {"trans", 0, 0, 0, 0 }, |
| 326 | 325 | {"escape", FPU, 0, 0, 0 }, |
| 327 | 326 | {"escape", FPU, 0, 0, 0 }, |
| 328 | | {"premov", MODRM, PARAM_REG8, PARAM_RM8, 0 }, |
| 329 | | {"premov", MODRM, PARAM_REG16, PARAM_RM16, 0 }, |
| 327 | {"premov", MODRM, PARAM_REG8, PARAM_RM8, 0 }, /* ??? */ |
| 328 | {"premov", MODRM, PARAM_REG16, PARAM_RM16, 0 }, /* ??? */ |
| 330 | 329 | {"escape", FPU, 0, 0, 0 }, |
| 331 | 330 | {"escape", FPU, 0, 0, 0 }, |
| 332 | 331 | {"escape", FPU, 0, 0, 0 }, |
| r7772 | r7773 | |
| 350 | 349 | {"out", 0, PARAM_DW, PARAM_AW, 0 }, |
| 351 | 350 | // 0xf0 |
| 352 | 351 | {"buslock", PREFIX, 0, 0, 0 }, |
| 353 | | {"brks", 0, 0, 0, 0 }, /* break into secure mode */ |
| 352 | {"brks", 0, PARAM_UI8, 0, 0, DASMFLAG_STEP_OVER}, /* V25S/V35S only */ |
| 354 | 353 | {"repne", PREFIX, 0, 0, 0 }, |
| 355 | 354 | {"rep", PREFIX, 0, 0, 0 }, |
| 356 | 355 | {"halt", 0, 0, 0, 0 }, |
| r7772 | r7773 | |
| 386 | 385 | {"???", 0, 0, 0, 0 }, |
| 387 | 386 | {"???", 0, 0, 0, 0 }, |
| 388 | 387 | {"???", 0, 0, 0, 0 }, |
| 389 | | // 0x10 - NEC V series only |
| 390 | | {"test1", MODRM, PARAM_RM8, PARAM_1, 0 }, |
| 391 | | {"test1", MODRM, PARAM_RM16, PARAM_1, 0 }, |
| 392 | | {"clr1", MODRM, PARAM_RM8, PARAM_1, 0 }, |
| 393 | | {"clr1", MODRM, PARAM_RM16, PARAM_1, 0 }, |
| 394 | | {"set1", MODRM, PARAM_RM8, PARAM_1, 0 }, |
| 395 | | {"set1", MODRM, PARAM_RM16, PARAM_1, 0 }, |
| 396 | | {"not1", MODRM, PARAM_RM8, PARAM_1, 0 }, |
| 397 | | {"not1", MODRM, PARAM_RM16, PARAM_1, 0 }, |
| 398 | | {"test1", MODRM, PARAM_RM8, PARAM_I8, 0 }, |
| 399 | | {"test1", MODRM, PARAM_RM16, PARAM_I8, 0 }, |
| 400 | | {"clr1", MODRM, PARAM_RM8, PARAM_I8, 0 }, |
| 401 | | {"clr1", MODRM, PARAM_RM16, PARAM_I8, 0 }, |
| 402 | | {"set1", MODRM, PARAM_RM8, PARAM_I8, 0 }, |
| 403 | | {"set1", MODRM, PARAM_RM16, PARAM_I8, 0 }, |
| 404 | | {"not1", MODRM, PARAM_RM8, PARAM_I8, 0 }, |
| 405 | | {"not1", MODRM, PARAM_RM16, PARAM_I8, 0 }, |
| 388 | // 0x10 |
| 389 | {"test1", MODRM, PARAM_RM8, PARAM_CL, 0 }, |
| 390 | {"test1", MODRM, PARAM_RM16, PARAM_CL, 0 }, |
| 391 | {"clr1", MODRM, PARAM_RM8, PARAM_CL, 0 }, |
| 392 | {"clr1", MODRM, PARAM_RM16, PARAM_CL, 0 }, |
| 393 | {"set1", MODRM, PARAM_RM8, PARAM_CL, 0 }, |
| 394 | {"set1", MODRM, PARAM_RM16, PARAM_CL, 0 }, |
| 395 | {"not1", MODRM, PARAM_RM8, PARAM_CL, 0 }, |
| 396 | {"not1", MODRM, PARAM_RM16, PARAM_CL, 0 }, |
| 397 | {"test1", MODRM, PARAM_RM8, PARAM_I3, 0 }, |
| 398 | {"test1", MODRM, PARAM_RM16, PARAM_I4, 0 }, |
| 399 | {"clr1", MODRM, PARAM_RM8, PARAM_I3, 0 }, |
| 400 | {"clr1", MODRM, PARAM_RM16, PARAM_I4, 0 }, |
| 401 | {"set1", MODRM, PARAM_RM8, PARAM_I3, 0 }, |
| 402 | {"set1", MODRM, PARAM_RM16, PARAM_I4, 0 }, |
| 403 | {"not1", MODRM, PARAM_RM8, PARAM_I3, 0 }, |
| 404 | {"not1", MODRM, PARAM_RM16, PARAM_I4, 0 }, |
| 406 | 405 | // 0x20 |
| 407 | 406 | {"add4s", 0, 0, 0, 0 }, |
| 408 | 407 | {"???", 0, 0, 0, 0 }, |
| 409 | 408 | {"sub4s", 0, 0, 0, 0 }, |
| 410 | 409 | {"???", 0, 0, 0, 0 }, |
| 411 | 410 | {"???", 0, 0, 0, 0 }, |
| 412 | | {"movspa", 0, 0, 0, 0 }, /* V25/35 only */ |
| 411 | {"movspa", 0, 0, 0, 0 }, /* V25/V35 only */ |
| 413 | 412 | {"cmp4s", 0, 0, 0, 0 }, |
| 414 | 413 | {"???", 0, 0, 0, 0 }, |
| 415 | 414 | {"rol4", MODRM, PARAM_RM8, 0, 0 }, |
| r7772 | r7773 | |
| 417 | 416 | {"ror4", MODRM, PARAM_RM8, 0, 0 }, |
| 418 | 417 | {"???", 0, 0, 0, 0 }, |
| 419 | 418 | {"???", 0, 0, 0, 0 }, |
| 420 | | {"brkcs", MODRM, PARAM_REG2_8, 0, 0 }, /* V25/35 only */ |
| 419 | {"brkcs", MODRM, PARAM_REG2_16, 0, 0, DASMFLAG_STEP_OVER}, /* V25/V35 only */ |
| 421 | 420 | {"???", 0, 0, 0, 0 }, |
| 422 | 421 | {"???", 0, 0, 0, 0 }, |
| 423 | 422 | // 0x30 |
| r7772 | r7773 | |
| 524 | 523 | {"???", 0, 0, 0, 0 }, |
| 525 | 524 | // 0x90 |
| 526 | 525 | {"???", 0, 0, 0, 0 }, |
| 527 | | {"retrbi", 0, 0, 0, 0 }, /* V25/35 only */ |
| 528 | | {"fint", 0, 0, 0, 0 }, /* V25/35 only */ |
| 526 | {"retrbi", 0, 0, 0, 0 }, /* V25/V35 only */ |
| 527 | {"fint", 0, 0, 0, 0 }, /* V25/V35 only */ |
| 529 | 528 | {"???", 0, 0, 0, 0 }, |
| 530 | | {"tsksw", MODRM, PARAM_REG2_8, 0, 0 }, /* V25/35 only */ |
| 531 | | {"movspb", 0, PARAM_RBANK, 0, 0 }, /* V25/35 only */ |
| 529 | {"tsksw", MODRM, PARAM_REG2_16, 0, 0 }, /* V25/V35 only */ |
| 530 | {"movspb", MODRM, PARAM_REG2_16, 0, 0 }, /* V25/V35 only */ |
| 532 | 531 | {"???", 0, 0, 0, 0 }, |
| 533 | 532 | {"???", 0, 0, 0, 0 }, |
| 534 | 533 | {"???", 0, 0, 0, 0 }, |
| 535 | 534 | {"???", 0, 0, 0, 0 }, |
| 536 | 535 | {"???", 0, 0, 0, 0 }, |
| 537 | 536 | {"???", 0, 0, 0, 0 }, |
| 538 | | {"btclr", MODRM, PARAM_REG2_8, PARAM_I8, PARAM_REL8 }, /* V25/35 only */ |
| 537 | {"btclr", MODRM, PARAM_SFREG, PARAM_I3, PARAM_REL8 }, /* V25/V35 only */ |
| 539 | 538 | {"???", 0, 0, 0, 0 }, |
| 540 | | {"stop", 0, 0, 0, 0 }, /* V25/35 only */ |
| 539 | {"stop", 0, 0, 0, 0 }, /* V25/V35 only */ |
| 541 | 540 | {"???", 0, 0, 0, 0 }, |
| 542 | 541 | // 0xa0 |
| 543 | 542 | {"???", 0, 0, 0, 0 }, |
| r7772 | r7773 | |
| 821 | 820 | static const char *const nec_reg[8] = { "aw", "cw", "dw", "bw", "sp", "bp", "ix", "iy" }; |
| 822 | 821 | static const char *const neg_reg8[8] = { "al", "cl", "dl", "bl", "ah", "ch", "dh", "bh" }; |
| 823 | 822 | static const char *const nec_sreg[8] = { "ds1", "ps", "ss", "ds0", "???", "???", "???", "???" }; |
| 823 | static const char *const nec_sfreg[256] = |
| 824 | { |
| 825 | /* 0x00 */ |
| 826 | "p0", "pm0", "pmc0", "???", "???", "???", "???", "???", |
| 827 | "p1", "pm1", "pmc1", "???", "???", "???", "???", "???", |
| 828 | /* 0x10 */ |
| 829 | "p2", "pm2", "pmc2", "???", "???", "???", "???", "???", |
| 830 | "???", "???", "???", "???", "???", "???", "???", "???", |
| 831 | /* 0x20 */ |
| 832 | "???", "???", "???", "???", "???", "???", "???", "???", |
| 833 | "???", "???", "???", "???", "???", "???", "???", "???", |
| 834 | /* 0x30 */ |
| 835 | "???", "???", "???", "???", "???", "???", "???", "???", |
| 836 | "pt", "???", "???", "pmt", "???", "???", "???", "???", |
| 837 | /* 0x40 */ |
| 838 | "intm", "???", "???", "???", "ems0", "ems1", "ems2", "???", |
| 839 | "???", "???", "???", "???", "exic0","exic1","exic2","???", |
| 840 | /* 0x50 */ |
| 841 | "???", "???", "???", "???", "???", "???", "???", "???", |
| 842 | "???", "???", "???", "???", "???", "???", "???", "???", |
| 843 | /* 0x60 */ |
| 844 | "rxb0", "???", "txb0", "???", "???", "srms0","stms0","???", |
| 845 | "scm0", "scc0", "brg0", "scs0", "seic0","sric0","stic0","???", |
| 846 | /* 0x70 */ |
| 847 | "rxb1", "???", "txb1", "???", "???", "srms1","stms1","???", |
| 848 | "scm1", "scc1", "brg1", "scs1", "seic1","sric1","stic1","???", |
| 849 | /* 0x80 */ |
| 850 | "tm0", "???", "md0", "???", "???", "???", "???", "???", |
| 851 | "tm1", "???", "md1", "???", "???", "???", "???", "???", |
| 852 | /* 0x90 */ |
| 853 | "tmc0", "tmc1", "???", "???", "tmms0","tmms1","tmms2","???", |
| 854 | "???", "???", "???", "???", "tmic0","tmic1","tmic2","???", |
| 855 | /* 0xa0 */ |
| 856 | "dmac0","dmam0","dmac1","dmam1","???", "???", "???", "???", |
| 857 | "???", "???", "???", "???", "dic0", "dic1", "???", "???", |
| 858 | /* 0xb0 */ |
| 859 | "???", "???", "???", "???", "???", "???", "???", "???", |
| 860 | "???", "???", "???", "???", "???", "???", "???", "???", |
| 861 | /* 0xc0 */ |
| 862 | "sar0l","sar0m","sar0h","???", "dar0l","dar0m","dar0h","???", |
| 863 | "tc0l", "tc0h", "???", "???", "???", "???", "???", "???", |
| 864 | /* 0xd0 */ |
| 865 | "sar1l","sar1m","sar1h","???", "dar1l","dar1m","dar1h","???", |
| 866 | "tc1l", "tc1h", "???", "???", "???", "???", "???", "???", |
| 867 | /* 0xe0 */ |
| 868 | "stbc", "rfm", "???", "???", "???", "???", "???", "???", |
| 869 | "wtc", "???", "flag", "prc", "tbic", "???", "???", "irqs", |
| 870 | /* 0xf0 */ |
| 871 | "???", "???", "???", "???", "???", "???", "???", "???", |
| 872 | "???", "???", "???", "???", "ispr", "???", "???", "idb" |
| 873 | }; |
| 824 | 874 | |
| 825 | 875 | static UINT32 pc; |
| 826 | 876 | static UINT8 modrm; |
| r7772 | r7773 | |
| 987 | 1037 | } |
| 988 | 1038 | break; |
| 989 | 1039 | |
| 1040 | case PARAM_I3: |
| 1041 | i8 = FETCHD(); |
| 1042 | s += sprintf( s, "%d", i8 & 0x07 ); |
| 1043 | break; |
| 1044 | |
| 990 | 1045 | case PARAM_I4: |
| 991 | 1046 | i8 = FETCHD(); |
| 992 | 1047 | s += sprintf( s, "%d", i8 & 0x0f ); |
| r7772 | r7773 | |
| 1007 | 1062 | s += sprintf( s, "%s", shexstring((UINT8)i8, 0, FALSE) ); |
| 1008 | 1063 | break; |
| 1009 | 1064 | |
| 1010 | | case PARAM_UI16: |
| 1011 | | i16 = FETCHD16(); |
| 1012 | | s += sprintf( s, "%s", shexstring((UINT16)i16, 0, FALSE) ); |
| 1013 | | break; |
| 1014 | | |
| 1015 | 1065 | case PARAM_IMM: |
| 1016 | 1066 | i16 = FETCHD16(); |
| 1017 | 1067 | s += sprintf( s, "%s", hexstring(i16, 0) ); |
| r7772 | r7773 | |
| 1035 | 1085 | s += sprintf( s, "%s", hexstring(pc + d8, 0) ); |
| 1036 | 1086 | break; |
| 1037 | 1087 | |
| 1038 | | case PARAM_MEM_OFFS_B: |
| 1039 | | d8 = FETCHD(); |
| 1040 | | s += sprintf( s, "[%s]", hexstring(d8, 0) ); |
| 1041 | | break; |
| 1088 | case PARAM_MEM_OFFS: |
| 1089 | switch(segment) |
| 1090 | { |
| 1091 | case SEG_PS: s += sprintf( s, "ps:" ); break; |
| 1092 | case SEG_DS0: s += sprintf( s, "ds0:" ); break; |
| 1093 | case SEG_DS1: s += sprintf( s, "ds1:" ); break; |
| 1094 | case SEG_SS: s += sprintf( s, "ss:" ); break; |
| 1095 | } |
| 1042 | 1096 | |
| 1043 | | case PARAM_MEM_OFFS_W: |
| 1044 | 1097 | d16 = FETCHD16(); |
| 1045 | 1098 | s += sprintf( s, "[%s]", hexstring(d16, 0) ); |
| 1046 | 1099 | break; |
| r7772 | r7773 | |
| 1049 | 1102 | s += sprintf( s, "%s", nec_sreg[MODRM_REG1] ); |
| 1050 | 1103 | break; |
| 1051 | 1104 | |
| 1105 | case PARAM_SFREG: |
| 1106 | d8 = FETCHD(); |
| 1107 | s += sprintf( s, "%s", nec_sfreg[d8] ); |
| 1108 | break; |
| 1109 | |
| 1052 | 1110 | case PARAM_1: |
| 1053 | 1111 | s += sprintf( s, "1" ); |
| 1054 | 1112 | break; |
| 1055 | 1113 | |
| 1056 | | case PARAM_RBANK: |
| 1057 | | s += sprintf( s, "%d", FETCHD() & 7 ); |
| 1058 | | break; |
| 1059 | | |
| 1060 | 1114 | case PARAM_AL: s += sprintf( s, "al" ); break; |
| 1061 | 1115 | case PARAM_CL: s += sprintf( s, "cl" ); break; |
| 1062 | 1116 | case PARAM_DL: s += sprintf( s, "dl" ); break; |