src/mame/drivers/csplayh5.c
| r15097 | r15098 | |
| 9 | 9 | - fix h8 CPU core bugs, it trips various unhandled opcodes |
| 10 | 10 | - Implement DVD routing and YUV decoding; |
| 11 | 11 | - game timings seem busted, could be due of missing DVD hook-up |
| 12 | - csplayh8: inputs doesn't work at all, slower than the others too |
| 12 | 13 | |
| 13 | 14 | ***************************************************************************/ |
| 14 | 15 | |
| r15097 | r15098 | |
| 668 | 669 | |
| 669 | 670 | ***************************************************************************/ |
| 670 | 671 | |
| 671 | | void general_init(running_machine &machine, int patchaddress) |
| 672 | void general_init(running_machine &machine, int patchaddress, int patchvalue) |
| 672 | 673 | { |
| 673 | 674 | UINT16 *MAINROM = (UINT16 *)machine.root_device().memregion("maincpu")->base(); |
| 674 | 675 | UINT8 *SNDROM = machine.root_device().memregion("audiocpu")->base(); |
| r15097 | r15098 | |
| 677 | 678 | csplayh5_soundbank_w(machine, 0); |
| 678 | 679 | |
| 679 | 680 | /* patch DVD comms check */ |
| 680 | | MAINROM[patchaddress] = 0x6018; |
| 681 | MAINROM[patchaddress] = patchvalue; |
| 681 | 682 | |
| 682 | 683 | /* patch sound program */ |
| 683 | 684 | SNDROM[0x0213] = 0x00; // DI -> NOP |
| 684 | 685 | |
| 685 | 686 | } |
| 686 | 687 | |
| 687 | | static DRIVER_INIT( junai ) { general_init(machine, 0x679c/2); } |
| 688 | | static DRIVER_INIT( mjmania ) { general_init(machine, 0x6b96/2); } |
| 689 | | static DRIVER_INIT( junai2 ) { general_init(machine, 0x6588/2); } |
| 690 | | static DRIVER_INIT( csplayh5 ) { general_init(machine, 0x4cb4/2); } |
| 691 | | static DRIVER_INIT( bikiniko ) { general_init(machine, 0x585c/2); } |
| 692 | | static DRIVER_INIT( thenanpa ) { general_init(machine, 0x69ec/2); } |
| 693 | | static DRIVER_INIT( csplayh7 ) { general_init(machine, 0x7a20/2); } |
| 694 | | static DRIVER_INIT( fuudol ) { general_init(machine, 0x9166/2); } |
| 688 | static DRIVER_INIT( csplayh1 ) { general_init(machine, 0x6880/2,0x6020); } |
| 695 | 689 | |
| 690 | static DRIVER_INIT( junai ) { general_init(machine, 0x679c/2,0x6018); } |
| 691 | static DRIVER_INIT( mjmania ) { general_init(machine, 0x6b96/2,0x6018); } |
| 692 | static DRIVER_INIT( junai2 ) { general_init(machine, 0x6588/2,0x6018); } |
| 693 | static DRIVER_INIT( csplayh5 ) { general_init(machine, 0x4cb4/2,0x6018); } |
| 694 | static DRIVER_INIT( bikiniko ) { general_init(machine, 0x585c/2,0x6018); } |
| 695 | static DRIVER_INIT( thenanpa ) { general_init(machine, 0x69ec/2,0x6018); } |
| 696 | static DRIVER_INIT( csplayh7 ) { general_init(machine, 0x7a20/2,0x6018); } |
| 697 | static DRIVER_INIT( fuudol ) { general_init(machine, 0x9166/2,0x6018); } |
| 698 | |
| 699 | /* TODO: correct rom labels*/ |
| 700 | ROM_START( csplayh1 ) |
| 701 | ROM_REGION( 0x40000, "maincpu", 0 ) // tmp68301 prg |
| 702 | ROM_LOAD16_BYTE( "3.bin", 0x000000, 0x020000, CRC(86ac0289) SHA1(7ae3047fc7ea22705cc5b04d0ec6c792c429e8ee) ) |
| 703 | ROM_LOAD16_BYTE( "2.bin", 0x000001, 0x020000, CRC(1f056e64) SHA1(7c5fb318abcd87313ef739dec191af9bcf284f24) ) |
| 704 | |
| 705 | ROM_REGION( 0x20000, "subcpu", 0 ) // h8, dvd player |
| 706 | ROM_LOAD16_WORD_SWAP( "u2", 0x00000, 0x20000, NO_DUMP ) |
| 707 | |
| 708 | ROM_REGION( 0x20000, "audiocpu", 0 ) // z80 |
| 709 | ROM_LOAD( "1.bin", 0x000000, 0x020000, CRC(8296d67f) SHA1(20eb944a2bd27980e1aaf60ca544059e84129760) ) |
| 710 | |
| 711 | ROM_REGION( 0x400000, "blit_gfx", ROMREGION_ERASEFF ) // blitter based gfxs |
| 712 | ROM_LOAD16_BYTE( "4.bin", 0x000000, 0x080000, CRC(2e63ee15) SHA1(78fefbc277234458212cded997d393bd8b82cf76) ) |
| 713 | ROM_LOAD16_BYTE( "8.bin", 0x000001, 0x080000, CRC(a8567f1b) SHA1(2a854ef8b1988ad097bbcbeddc4b275ad738e1e1) ) |
| 714 | |
| 715 | DISK_REGION( "dvd" ) |
| 716 | DISK_IMAGE( "csplayh8", 0, SHA1(d6514882c2626e62c5079df9ac68ecb70fc33209) ) |
| 717 | |
| 718 | ROM_REGION( 0x1000, "gal", ROMREGION_ERASE00 ) |
| 719 | ROM_LOAD( "gal16v8b.ic8", 0x000000, 0x0008c1, NO_DUMP ) |
| 720 | ROM_END |
| 721 | |
| 696 | 722 | ROM_START( junai ) |
| 697 | 723 | ROM_REGION( 0x40000, "maincpu", 0 ) // tmp68301 prg |
| 698 | 724 | ROM_LOAD16_BYTE( "2.ic3", 0x00000, 0x20000, CRC(5923bf2e) SHA1(8fc7b95a44eb792ce03c1bffb9ad56f82d34b470) ) |
| r15097 | r15098 | |
| 865 | 891 | ROM_LOAD( "gal16v8b.ic8", 0x000000, 0x0008c1, CRC(30719630) SHA1(a8c7b6d0304c38691775c5af6c32fbeeefd9f9fa) ) |
| 866 | 892 | ROM_END |
| 867 | 893 | |
| 894 | // 1995 |
| 895 | GAME( 1995, csplayh1, 0, csplayh5, csplayh5, csplayh1, ROT0, "Sphinx/AV Japan/Astro System Japan", "Super CD Dai8dan Mahjong Hanafuda Cosplay Tengoku (Japan)", GAME_NOT_WORKING ) |
| 896 | |
| 868 | 897 | // 1998 |
| 869 | 898 | // 01 : Mahjong Gal-pri - World Gal-con Grandprix : Nichibutsu/Just&Just |
| 870 | 899 | // 02 : Sengoku Mahjong Kurenai Otome-tai : Nichibutsu/Just&Just |
| r15097 | r15098 | |
| 876 | 905 | |
| 877 | 906 | // 1999 |
| 878 | 907 | /* 07 */ GAME( 1999, mjmania, 0, csplayh5, csplayh5, mjmania, ROT0, "Sphinx/Just&Just", "Mahjong Mania - Kairakukan e Youkoso (Japan)", GAME_NOT_WORKING ) |
| 879 | | // 08 : Renai Mahjong Idol Gakuen : Nichibutsu/eic |
| 908 | ///* 08 */ GAME( 1995, renaimj, 0, csplayh5, csplayh5, renaimj, ROT0, "Nichibutsu/eic", "Renai Mahjong Idol Gakuen (Japan)", GAME_NOT_WORKING ) |
| 880 | 909 | /* 09 */ GAME( 1999, bikiniko, 0, csplayh5, csplayh5, bikiniko, ROT0, "Nichibutsu/eic", "BiKiNikko - Okinawa de Ippai Shichaimashita (Japan)", GAME_NOT_WORKING ) |
| 881 | 910 | // 10 : Mahjong Hanafuda Cosplay Tengoku 6 - Junai hen : Nichibutsu/eic |
| 882 | 911 | /* 11 */ GAME( 1999, thenanpa, 0, csplayh5, csplayh5, thenanpa, ROT0, "Nichibutsu/Love Factory/eic", "The Nanpa (Japan)", GAME_NOT_WORKING ) |
src/mame/drivers/policetr.c
| r15097 | r15098 | |
| 25 | 25 | Sound Roms: S12 - Sound rom v1.2 |
| 26 | 26 | |
| 27 | 27 | Noted differences in versions of SharpShooter: |
| 28 | Added a "Welcome to Sharpshooter" start-up screen showing rom versions for v1.9 |
| 28 | 29 | Initial High Score names are changed between v1.1 and v1.2 |
| 29 | 30 | Circus of Mystery: |
| 30 | 31 | The ballon challenge has been rewritten for v1.7 |
| r15097 | r15098 | |
| 588 | 589 | ROM_END |
| 589 | 590 | |
| 590 | 591 | |
| 591 | | ROM_START( sshooter ) /* Rev 0.5B PCB , unknown program rom date */ |
| 592 | ROM_START( sshooter ) /* Rev 0.5B PCB , Added a "Welcome" start-up screen which shows "This is Version C191012" */ |
| 592 | 593 | ROM_REGION( 0x800000, "gfx1", ROMREGION_ERASE00 ) /* Graphics v1.0 */ |
| 593 | 594 | ROM_LOAD16_BYTE( "ss-u121.bin", 0x000000, 0x100000, CRC(22e27dd6) SHA1(cb9e8c450352bb116a9c0407cc8ce6d8ae9d9881) ) // 1:1 |
| 594 | 595 | ROM_LOAD16_BYTE( "ss-u120.bin", 0x000001, 0x100000, CRC(30173b1b) SHA1(366464444ce208391ca350f1639403f0c2217330) ) // 1:2 |
| r15097 | r15098 | |
| 600 | 601 | ROM_LOAD16_BYTE( "ss-u126.bin", 0x600001, 0x100000, CRC(ab1b9d60) SHA1(ff51a71443f7774d3abf96c2eb8ef6a54d73dd8e) ) // 4:2 |
| 601 | 602 | |
| 602 | 603 | ROM_REGION32_BE( 0x100000, "user1", 0 ) |
| 604 | ROM_LOAD32_BYTE( "ss-u113.v19", 0x00000, 0x40000, CRC(de536a90) SHA1(76f0e0e2457d91b3c1bd2b3501591646a18db348) ) // 1:1 |
| 605 | ROM_LOAD32_BYTE( "ss-u112.v19", 0x00001, 0x40000, CRC(2e4e1837) SHA1(b4088269e1e7a3913d2841eb24f53b1c413cd0cc) ) // 1:2 |
| 606 | ROM_LOAD32_BYTE( "ss-u111.v19", 0x00002, 0x40000, CRC(485d03e8) SHA1(ebdf166b2354b318e6bfb68e0fb5647381b9c405) ) // 1:3 |
| 607 | ROM_LOAD32_BYTE( "ss-u110.v19", 0x00003, 0x40000, CRC(df6a0a45) SHA1(a73a9dcdc669c6e61a5983f3b2a2721fe1b35f34) ) // 1:4 |
| 608 | |
| 609 | ROM_REGION( 0x1000000, "bsmt", 0 ) /* Sound v1.2 */ |
| 610 | ROM_LOAD( "ss-u160.bin", 0x000000, 0x100000, CRC(1c603d42) SHA1(880992871be52129684052d542946de0cc32ba9a) ) // 1:1 |
| 611 | ROM_RELOAD( 0x3f8000, 0x100000 ) |
| 612 | ROM_LOAD( "ss-u162.bin", 0x100000, 0x100000, CRC(40ef448a) SHA1(c96f7b169be2576e9f3783af84c07259efefb812) ) // 2:1 |
| 613 | ROM_RELOAD( 0x4f8000, 0x100000 ) |
| 614 | ROM_END |
| 615 | |
| 616 | |
| 617 | ROM_START( sshooter17 ) /* Rev 0.5B PCB , unknown program rom date */ |
| 618 | ROM_REGION( 0x800000, "gfx1", ROMREGION_ERASE00 ) /* Graphics v1.0 */ |
| 619 | ROM_LOAD16_BYTE( "ss-u121.bin", 0x000000, 0x100000, CRC(22e27dd6) SHA1(cb9e8c450352bb116a9c0407cc8ce6d8ae9d9881) ) // 1:1 |
| 620 | ROM_LOAD16_BYTE( "ss-u120.bin", 0x000001, 0x100000, CRC(30173b1b) SHA1(366464444ce208391ca350f1639403f0c2217330) ) // 1:2 |
| 621 | ROM_LOAD16_BYTE( "ss-u125.bin", 0x200000, 0x100000, CRC(79e8520a) SHA1(682e5c7954f96db65a137f05cde67c310b85b526) ) // 2:1 |
| 622 | ROM_LOAD16_BYTE( "ss-u124.bin", 0x200001, 0x100000, CRC(8e805970) SHA1(bfc9940ed6425f136d768170275279c590da7003) ) // 2:2 |
| 623 | ROM_LOAD16_BYTE( "ss-u123.bin", 0x400000, 0x100000, CRC(d045bb62) SHA1(839209ff6a8e5db63a51a3494a6c973e0068a3c6) ) // 3:1 |
| 624 | ROM_LOAD16_BYTE( "ss-u122.bin", 0x400001, 0x100000, CRC(163cc133) SHA1(a5e84b5060fd32362aa097d0194ce72e8a90357c) ) // 3:2 |
| 625 | ROM_LOAD16_BYTE( "ss-u127.bin", 0x600000, 0x100000, CRC(76a7a591) SHA1(9fd7cce21b01f388966a3e8388ba95820ac10bfd) ) // 4:1 |
| 626 | ROM_LOAD16_BYTE( "ss-u126.bin", 0x600001, 0x100000, CRC(ab1b9d60) SHA1(ff51a71443f7774d3abf96c2eb8ef6a54d73dd8e) ) // 4:2 |
| 627 | |
| 628 | ROM_REGION32_BE( 0x100000, "user1", 0 ) |
| 603 | 629 | ROM_LOAD32_BYTE( "ss-u113.v17", 0x00000, 0x40000, CRC(a8c96af5) SHA1(a62458156603b74e0d84ce6928f7bb868bf5a219) ) // 1:1 |
| 604 | 630 | ROM_LOAD32_BYTE( "ss-u112.v17", 0x00001, 0x40000, CRC(c732d5fa) SHA1(2bcc26c8bbf55394173ca65b4b0df01bc6b719bb) ) // 1:2 |
| 605 | 631 | ROM_LOAD32_BYTE( "ss-u111.v17", 0x00002, 0x40000, CRC(4240fa2f) SHA1(54223207c1e228d6b836918601c0f65c2692e5bc) ) // 1:3 |
| r15097 | r15098 | |
| 714 | 740 | GAME( 1996, policetr13a, policetr, sshooter, policetr, plctr13b, ROT0, "P&P Marketing", "Police Trainer (Rev 1.3B Newer)", 0 ) |
| 715 | 741 | GAME( 1996, policetr13b, policetr, sshooter, policetr, plctr13b, ROT0, "P&P Marketing", "Police Trainer (Rev 1.3B)", 0 ) |
| 716 | 742 | |
| 717 | | GAME( 1998, sshooter, 0, sshooter, policetr, sshooter, ROT0, "P&P Marketing", "Sharpshooter (Rev 1.7)", 0 ) |
| 743 | GAME( 1998, sshooter, 0, sshooter, policetr, sshooter, ROT0, "P&P Marketing", "Sharpshooter (Rev 1.9)", 0 ) |
| 744 | GAME( 1998, sshooter17, sshooter, sshooter, policetr, sshooter, ROT0, "P&P Marketing", "Sharpshooter (Rev 1.7)", 0 ) |
| 718 | 745 | GAME( 1998, sshooter12, sshooter, sshooter, sshoot11, sshoot12, ROT0, "P&P Marketing", "Sharpshooter (Rev 1.2)", 0 ) |
| 719 | 746 | GAME( 1998, sshooter11, sshooter, sshooter, sshoot11, sshoot12, ROT0, "P&P Marketing", "Sharpshooter (Rev 1.1)", 0 ) |
src/mame/drivers/naomi.c
| r15097 | r15098 | |
| 2664 | 2664 | EPR-21576b - NAOMI BOOT ROM 1999 02/15 1.20 (Japan) |
| 2665 | 2665 | EPR-21576a - NAOMI BOOT ROM 1999 01/14 1.10 (Japan) |
| 2666 | 2666 | EPR-21576 - NAOMI BOOT ROM 1998 12/18 1.00 (Japan) |
| 2667 | EPR-21577h - NAOMI BOOT ROM 2002 07/08 1.8- (USA) |
| 2667 | 2668 | EPR-21577g - NAOMI BOOT ROM 2001 09/10 1.70 (USA) |
| 2668 | 2669 | EPR-21577e - NAOMI BOOT ROM 2000 08/25 1.50 (USA) |
| 2669 | 2670 | EPR-21577d - NAOMI BOOT ROM 1999 06/04 1.40 (USA) |
| r15097 | r15098 | |
| 2672 | 2673 | EPR-21578g - NAOMI BOOT ROM 2001 09/10 1.70 (Export) |
| 2673 | 2674 | EPR-21578e - NAOMI BOOT ROM 2000 08/25 1.50 (Export) |
| 2674 | 2675 | EPR-21578d - NAOMI BOOT ROM 1999 06/04 1.40 (Export) |
| 2675 | | EPR-21578b - NAOMI BOOT ROM 1999 02/15 1.20 (Export) <-- Also found as EPR-21578A |
| 2676 | EPR-21578a - NAOMI BOOT ROM 1999 02/15 1.20 (Export) <-- Also found as EPR-21578A |
| 2676 | 2677 | EPR-21579d - NAOMI BOOT ROM 1999 06/04 1.40 (Korea) |
| 2677 | 2678 | EPR-21579 - NAOMI BOOT ROM 1999 01/14 1.10 (Korea) |
| 2678 | 2679 | EPR-21580 - No known dump (Australia) |
| r15097 | r15098 | |
| 2733 | 2734 | #define NAOMI_BIOS \ |
| 2734 | 2735 | ROM_REGION( 0x200000, "maincpu", 0) \ |
| 2735 | 2736 | ROM_SYSTEM_BIOS( 0, "bios0", "epr-21576h (Japan)" ) \ |
| 2736 | | ROM_LOAD16_WORD_SWAP_BIOS( 0, "epr-21576h.ic27", 0x000000, 0x200000, CRC(d4895685) SHA1(91424d481ff99a8d3f4c45cea6d3f0eada049a6d) ) \ |
| 2737 | ROM_LOAD16_WORD_SWAP_BIOS( 0, "epr-21576h.ic27", 0x000000, 0x200000, CRC(d4895685) SHA1(91424d481ff99a8d3f4c45cea6d3f0eada049a6d) ) \ |
| 2737 | 2738 | ROM_SYSTEM_BIOS( 1, "bios1", "epr-21576g (Japan)" ) \ |
| 2738 | | ROM_LOAD16_WORD_SWAP_BIOS( 1, "epr-21576g.ic27", 0x000000, 0x200000, CRC(d2a1c6bf) SHA1(6d27d71aec4dfba98f66316ae74a1426d567698a) ) \ |
| 2739 | ROM_LOAD16_WORD_SWAP_BIOS( 1, "epr-21576g.ic27", 0x000000, 0x200000, CRC(d2a1c6bf) SHA1(6d27d71aec4dfba98f66316ae74a1426d567698a) ) \ |
| 2739 | 2740 | ROM_SYSTEM_BIOS( 2, "bios2", "epr-21576e (Japan)" ) \ |
| 2740 | | ROM_LOAD16_WORD_SWAP_BIOS( 2, "epr-21576e.ic27", 0x000000, 0x200000, CRC(08c0add7) SHA1(e7c1a7673cb2ccb21748ef44105e46d1bad7266d) ) \ |
| 2741 | ROM_LOAD16_WORD_SWAP_BIOS( 2, "epr-21576e.ic27", 0x000000, 0x200000, CRC(08c0add7) SHA1(e7c1a7673cb2ccb21748ef44105e46d1bad7266d) ) \ |
| 2741 | 2742 | ROM_SYSTEM_BIOS( 3, "bios3", "epr-21576d (Japan)" ) \ |
| 2742 | | ROM_LOAD16_WORD_SWAP_BIOS( 3, "epr-21576d.ic27", 0x000000, 0x200000, CRC(3b2afa7b) SHA1(d007e1d321c198a38c5baff86eb2ab84385d150a) ) \ |
| 2743 | ROM_LOAD16_WORD_SWAP_BIOS( 3, "epr-21576d.ic27", 0x000000, 0x200000, CRC(3b2afa7b) SHA1(d007e1d321c198a38c5baff86eb2ab84385d150a) ) \ |
| 2743 | 2744 | ROM_SYSTEM_BIOS( 4, "bios4", "epr-21576b (Japan)" ) \ |
| 2744 | | ROM_LOAD16_WORD_SWAP_BIOS( 4, "epr-21576b.ic27", 0x000000, 0x200000, CRC(755a6e07) SHA1(7e8b8ccfc063144d89668e7224dcd8a36c54f3b3) ) \ |
| 2745 | ROM_LOAD16_WORD_SWAP_BIOS( 4, "epr-21576b.ic27", 0x000000, 0x200000, CRC(755a6e07) SHA1(7e8b8ccfc063144d89668e7224dcd8a36c54f3b3) ) \ |
| 2745 | 2746 | ROM_SYSTEM_BIOS( 5, "bios5", "epr-21576a (Japan)" ) \ |
| 2746 | | ROM_LOAD16_WORD_SWAP_BIOS( 5, "epr-21576a.ic27", 0x000000, 0x200000, CRC(cedfe439) SHA1(f27798bf3d890863ef0c1d9dcb4e7782249dca27) ) \ |
| 2747 | ROM_LOAD16_WORD_SWAP_BIOS( 5, "epr-21576a.ic27", 0x000000, 0x200000, CRC(cedfe439) SHA1(f27798bf3d890863ef0c1d9dcb4e7782249dca27) ) \ |
| 2747 | 2748 | ROM_SYSTEM_BIOS( 6, "bios6", "epr-21576 (Japan)" ) \ |
| 2748 | | ROM_LOAD16_WORD_SWAP_BIOS( 6, "epr-21576.ic27", 0x000000, 0x200000, CRC(9dad3495) SHA1(5fb66f9a2b68d120f059c72758e65d34f461044a) ) \ |
| 2749 | ROM_LOAD16_WORD_SWAP_BIOS( 6, "epr-21576.ic27", 0x000000, 0x200000, CRC(9dad3495) SHA1(5fb66f9a2b68d120f059c72758e65d34f461044a) ) \ |
| 2749 | 2750 | ROM_SYSTEM_BIOS( 7, "bios7", "epr-21578h (Export)" ) \ |
| 2750 | 2751 | ROM_LOAD16_WORD_SWAP_BIOS( 7, "epr-21578h.ic27", 0x000000, 0x200000, CRC(7b452946) SHA1(8e9f153bbada24b37066dc45b64a7bf0d4f26a9b) ) \ |
| 2751 | 2752 | ROM_SYSTEM_BIOS( 8, "bios8", "epr-21578g (Export)" ) \ |
| 2752 | 2753 | ROM_LOAD16_WORD_SWAP_BIOS( 8, "epr-21578g.ic27", 0x000000, 0x200000, CRC(55413214) SHA1(bd2748365a9fc1821c9369aa7155d7c41c4df43e) ) \ |
| 2753 | 2754 | ROM_SYSTEM_BIOS( 9, "bios9", "epr-21578e (Export)" ) \ |
| 2754 | | ROM_LOAD16_WORD_SWAP_BIOS( 9, "epr-21578e.ic27", 0x000000, 0x200000, CRC(087f09a3) SHA1(0418eb2cf9766f0b1b874a4e92528779e22c0a4a) ) \ |
| 2755 | ROM_LOAD16_WORD_SWAP_BIOS( 9, "epr-21578e.ic27", 0x000000, 0x200000, CRC(087f09a3) SHA1(0418eb2cf9766f0b1b874a4e92528779e22c0a4a) ) \ |
| 2755 | 2756 | ROM_SYSTEM_BIOS( 10, "bios10", "epr-21578d (Export)" ) \ |
| 2756 | 2757 | ROM_LOAD16_WORD_SWAP_BIOS( 10, "epr-21578d.ic27", 0x000000, 0x200000, CRC(dfd5f42a) SHA1(614a0db4743a5e5a206190d6786ade24325afbfd) ) \ |
| 2757 | 2758 | ROM_SYSTEM_BIOS( 11, "bios11", "epr-21578b (Export)" ) \ |
| 2758 | 2759 | ROM_LOAD16_WORD_SWAP_BIOS( 11, "epr-21578b.ic27", 0x000000, 0x200000, CRC(6c9aad83) SHA1(555918de76d8dbee2a97d8a95297ef694b3e803f) ) \ |
| 2759 | | ROM_SYSTEM_BIOS( 12, "bios12", "epr-21577g (USA)" ) \ |
| 2760 | | ROM_LOAD16_WORD_SWAP_BIOS( 12, "epr-21577g.ic27", 0x000000, 0x200000, CRC(25f64af7) SHA1(99f9e6cc0642319bd2da492611220540add573e8) ) \ |
| 2761 | | ROM_SYSTEM_BIOS( 13, "bios13", "epr-21577e (USA)" ) \ |
| 2762 | | ROM_LOAD16_WORD_SWAP_BIOS( 13, "epr-21577e.ic27", 0x000000, 0x200000, CRC(cf36e97b) SHA1(b085305982e7572e58b03a9d35f17ae319c3bbc6) ) \ |
| 2763 | | ROM_SYSTEM_BIOS( 14, "bios14", "epr-21577d (USA)" ) \ |
| 2764 | | ROM_LOAD16_WORD_SWAP_BIOS( 14, "epr-21577d.ic27", 0x000000, 0x200000, CRC(60ddcbbe) SHA1(58b15096d269d6df617ca1810b66b47deb184958) ) \ |
| 2765 | | ROM_SYSTEM_BIOS( 15, "bios15", "epr-21579d (Korea)" ) \ |
| 2766 | | ROM_LOAD16_WORD_SWAP_BIOS( 15, "epr-21579d.ic27", 0x000000, 0x200000, CRC(33513691) SHA1(b1d8c7c516e1471a788fcf7a02a794ad2f05aeeb) ) \ |
| 2767 | | ROM_SYSTEM_BIOS( 16, "bios16", "epr-21579 (Korea)" ) \ |
| 2768 | | ROM_LOAD16_WORD_SWAP_BIOS( 16, "epr-21579.ic27", 0x000000, 0x200000, CRC(71f9c918) SHA1(d15af8b947f41eea7c203b565cd403e3f37a2017) ) \ |
| 2769 | | ROM_SYSTEM_BIOS( 17, "bios17", "Naomi Dev BIOS" ) \ |
| 2770 | | ROM_LOAD16_WORD_SWAP_BIOS( 17, "dcnaodev.bios", 0x000000, 0x080000, CRC(7a50fab9) SHA1(ef79f448e0bf735d1264ad4f051d24178822110f) ) /* This one comes from a dev / beta board. The eprom was a 27C4096 */ |
| 2760 | ROM_SYSTEM_BIOS( 12, "bios12", "epr-21577h (USA)" ) \ |
| 2761 | ROM_LOAD16_WORD_SWAP_BIOS( 12, "epr-21577h.ic27", 0x000000, 0x200000, CRC(fdf17452) SHA1(5f3e4b677f0046ce690a4f096b0481e5dd8bb6e6) ) \ |
| 2762 | ROM_SYSTEM_BIOS( 13, "bios13", "epr-21577g (USA)" ) \ |
| 2763 | ROM_LOAD16_WORD_SWAP_BIOS( 13, "epr-21577g.ic27", 0x000000, 0x200000, CRC(25f64af7) SHA1(99f9e6cc0642319bd2da492611220540add573e8) ) \ |
| 2764 | ROM_SYSTEM_BIOS( 14, "bios14", "epr-21577e (USA)" ) \ |
| 2765 | ROM_LOAD16_WORD_SWAP_BIOS( 14, "epr-21577e.ic27", 0x000000, 0x200000, CRC(cf36e97b) SHA1(b085305982e7572e58b03a9d35f17ae319c3bbc6) ) \ |
| 2766 | ROM_SYSTEM_BIOS( 15, "bios15", "epr-21577d (USA)" ) \ |
| 2767 | ROM_LOAD16_WORD_SWAP_BIOS( 15, "epr-21577d.ic27", 0x000000, 0x200000, CRC(60ddcbbe) SHA1(58b15096d269d6df617ca1810b66b47deb184958) ) \ |
| 2768 | ROM_SYSTEM_BIOS( 16, "bios16", "epr-21579d (Korea)" ) \ |
| 2769 | ROM_LOAD16_WORD_SWAP_BIOS( 16, "epr-21579d.ic27", 0x000000, 0x200000, CRC(33513691) SHA1(b1d8c7c516e1471a788fcf7a02a794ad2f05aeeb) ) \ |
| 2770 | ROM_SYSTEM_BIOS( 17, "bios17", "epr-21579 (Korea)" ) \ |
| 2771 | ROM_LOAD16_WORD_SWAP_BIOS( 17, "epr-21579.ic27", 0x000000, 0x200000, CRC(71f9c918) SHA1(d15af8b947f41eea7c203b565cd403e3f37a2017) ) \ |
| 2772 | ROM_SYSTEM_BIOS( 18, "bios18", "Naomi Dev BIOS" ) \ |
| 2773 | ROM_LOAD16_WORD_SWAP_BIOS( 18, "dcnaodev.bios", 0x000000, 0x080000, CRC(7a50fab9) SHA1(ef79f448e0bf735d1264ad4f051d24178822110f) ) /* This one comes from a dev / beta board. The eprom was a 27C4096 */ |
| 2771 | 2774 | |
| 2772 | 2775 | |
| 2773 | 2776 | // bios for House of the Dead 2 |
| r15097 | r15098 | |
| 2798 | 2801 | #define NAOMIGD_BIOS \ |
| 2799 | 2802 | ROM_REGION( 0x200000, "maincpu", 0) \ |
| 2800 | 2803 | ROM_SYSTEM_BIOS( 0, "bios0", "epr-21576e (Japan)" ) \ |
| 2801 | | ROM_LOAD16_WORD_SWAP_BIOS( 0, "epr-21576e.bin", 0x000000, 0x200000, CRC(08c0add7) SHA1(e7c1a7673cb2ccb21748ef44105e46d1bad7266d) ) \ |
| 2804 | ROM_LOAD16_WORD_SWAP_BIOS( 0, "epr-21576e.ic27", 0x000000, 0x200000, CRC(08c0add7) SHA1(e7c1a7673cb2ccb21748ef44105e46d1bad7266d) ) \ |
| 2802 | 2805 | ROM_SYSTEM_BIOS( 1, "bios1", "epr-21576g (Japan)" ) \ |
| 2803 | | ROM_LOAD16_WORD_SWAP_BIOS( 1, "epr-21576g.bin", 0x000000, 0x200000, CRC(d2a1c6bf) SHA1(6d27d71aec4dfba98f66316ae74a1426d567698a) ) \ |
| 2806 | ROM_LOAD16_WORD_SWAP_BIOS( 1, "epr-21576g.ic27", 0x000000, 0x200000, CRC(d2a1c6bf) SHA1(6d27d71aec4dfba98f66316ae74a1426d567698a) ) \ |
| 2804 | 2807 | ROM_SYSTEM_BIOS( 2, "bios2", "epr-21576h (Japan)" ) \ |
| 2805 | | ROM_LOAD16_WORD_SWAP_BIOS( 2, "epr-21576h.bin", 0x000000, 0x200000, CRC(d4895685) SHA1(91424d481ff99a8d3f4c45cea6d3f0eada049a6d) ) \ |
| 2808 | ROM_LOAD16_WORD_SWAP_BIOS( 2, "epr-21576h.ic27", 0x000000, 0x200000, CRC(d4895685) SHA1(91424d481ff99a8d3f4c45cea6d3f0eada049a6d) ) \ |
| 2806 | 2809 | ROM_SYSTEM_BIOS( 3, "bios3", "epr-21576d (Japan)" ) \ |
| 2807 | | ROM_LOAD16_WORD_SWAP_BIOS( 3, "epr-21576d.bin", 0x000000, 0x200000, CRC(3b2afa7b) SHA1(d007e1d321c198a38c5baff86eb2ab84385d150a) ) \ |
| 2810 | ROM_LOAD16_WORD_SWAP_BIOS( 3, "epr-21576d.ic27", 0x000000, 0x200000, CRC(3b2afa7b) SHA1(d007e1d321c198a38c5baff86eb2ab84385d150a) ) \ |
| 2808 | 2811 | ROM_SYSTEM_BIOS( 4, "bios4", "epr-21578h (Export)" ) \ |
| 2809 | | ROM_LOAD16_WORD_SWAP_BIOS( 4, "epr-21578h.ic27", 0x000000, 0x200000, CRC(7b452946) SHA1(8e9f153bbada24b37066dc45b64a7bf0d4f26a9b) ) \ |
| 2812 | ROM_LOAD16_WORD_SWAP_BIOS( 4, "epr-21578h.ic27", 0x000000, 0x200000, CRC(7b452946) SHA1(8e9f153bbada24b37066dc45b64a7bf0d4f26a9b) ) \ |
| 2810 | 2813 | ROM_SYSTEM_BIOS( 5, "bios5", "epr-21578g (Export)" ) \ |
| 2811 | | ROM_LOAD16_WORD_SWAP_BIOS( 5, "epr-21578g.ic27", 0x000000, 0x200000, CRC(55413214) SHA1(bd2748365a9fc1821c9369aa7155d7c41c4df43e) ) \ |
| 2814 | ROM_LOAD16_WORD_SWAP_BIOS( 5, "epr-21578g.ic27", 0x000000, 0x200000, CRC(55413214) SHA1(bd2748365a9fc1821c9369aa7155d7c41c4df43e) ) \ |
| 2812 | 2815 | ROM_SYSTEM_BIOS( 6, "bios6", "epr-21578e (Export)" ) \ |
| 2813 | | ROM_LOAD16_WORD_SWAP_BIOS( 6, "epr-21578e.bin", 0x000000, 0x200000, CRC(087f09a3) SHA1(0418eb2cf9766f0b1b874a4e92528779e22c0a4a) ) \ |
| 2816 | ROM_LOAD16_WORD_SWAP_BIOS( 6, "epr-21578e.ic27", 0x000000, 0x200000, CRC(087f09a3) SHA1(0418eb2cf9766f0b1b874a4e92528779e22c0a4a) ) \ |
| 2814 | 2817 | ROM_SYSTEM_BIOS( 7, "bios7", "epr-21578d (Export)" ) \ |
| 2815 | | ROM_LOAD16_WORD_SWAP_BIOS( 7, "epr-21578d.bin", 0x000000, 0x200000, CRC(dfd5f42a) SHA1(614a0db4743a5e5a206190d6786ade24325afbfd) ) \ |
| 2816 | | ROM_SYSTEM_BIOS( 8, "bios8", "epr-21577g (USA)" ) \ |
| 2817 | | ROM_LOAD16_WORD_SWAP_BIOS( 8, "epr-21577g.bin", 0x000000, 0x200000, CRC(25f64af7) SHA1(99f9e6cc0642319bd2da492611220540add573e8) ) \ |
| 2818 | | ROM_SYSTEM_BIOS( 9, "bios9", "epr-21577e (USA)" ) \ |
| 2819 | | ROM_LOAD16_WORD_SWAP_BIOS( 9, "epr-21577e.bin", 0x000000, 0x200000, CRC(cf36e97b) SHA1(b085305982e7572e58b03a9d35f17ae319c3bbc6) ) \ |
| 2820 | | ROM_SYSTEM_BIOS( 10, "bios10", "epr-21577d (USA)" ) \ |
| 2821 | | ROM_LOAD16_WORD_SWAP_BIOS( 10, "epr-21577d.bin", 0x000000, 0x200000, CRC(60ddcbbe) SHA1(58b15096d269d6df617ca1810b66b47deb184958) ) \ |
| 2822 | | ROM_SYSTEM_BIOS( 11, "bios11", "epr-21579d (Korea)" ) \ |
| 2823 | | ROM_LOAD16_WORD_SWAP_BIOS( 11, "epr-21579d.ic27", 0x000000, 0x200000, CRC(33513691) SHA1(b1d8c7c516e1471a788fcf7a02a794ad2f05aeeb) ) \ |
| 2818 | ROM_LOAD16_WORD_SWAP_BIOS( 7, "epr-21578d.ic27", 0x000000, 0x200000, CRC(dfd5f42a) SHA1(614a0db4743a5e5a206190d6786ade24325afbfd) ) \ |
| 2819 | ROM_SYSTEM_BIOS( 8, "bios8", "epr-21577h (USA)" ) \ |
| 2820 | ROM_LOAD16_WORD_SWAP_BIOS( 8, "epr-21577h.ic27", 0x000000, 0x200000, CRC(fdf17452) SHA1(5f3e4b677f0046ce690a4f096b0481e5dd8bb6e6) ) \ |
| 2821 | ROM_SYSTEM_BIOS( 9, "bios9", "epr-21577g (USA)" ) \ |
| 2822 | ROM_LOAD16_WORD_SWAP_BIOS( 9, "epr-21577g.ic27", 0x000000, 0x200000, CRC(25f64af7) SHA1(99f9e6cc0642319bd2da492611220540add573e8) ) \ |
| 2823 | ROM_SYSTEM_BIOS( 10, "bios10", "epr-21577e (USA)" ) \ |
| 2824 | ROM_LOAD16_WORD_SWAP_BIOS( 10, "epr-21577e.ic27", 0x000000, 0x200000, CRC(cf36e97b) SHA1(b085305982e7572e58b03a9d35f17ae319c3bbc6) ) \ |
| 2825 | ROM_SYSTEM_BIOS( 11, "bios11", "epr-21577d (USA)" ) \ |
| 2826 | ROM_LOAD16_WORD_SWAP_BIOS( 11, "epr-21577d.ic27", 0x000000, 0x200000, CRC(60ddcbbe) SHA1(58b15096d269d6df617ca1810b66b47deb184958) ) \ |
| 2827 | ROM_SYSTEM_BIOS( 12, "bios12", "epr-21579d (Korea)" ) \ |
| 2828 | ROM_LOAD16_WORD_SWAP_BIOS( 12, "epr-21579d.ic27", 0x000000, 0x200000, CRC(33513691) SHA1(b1d8c7c516e1471a788fcf7a02a794ad2f05aeeb) ) \ |
| 2824 | 2829 | ROM_REGION( 0x200000, "user2", 0) \ |
| 2825 | 2830 | ROM_LOAD16_WORD_SWAP( "fpr-23489c.ic14", 0x000000, 0x200000, CRC(bc38bea1) SHA1(b36fcc6902f397d9749e9d02de1bbb7a5e29d468) ) |
| 2826 | 2831 | |
| r15097 | r15098 | |
| 6110 | 6115 | NAOMI_DEFAULT_EEPROM |
| 6111 | 6116 | |
| 6112 | 6117 | DISK_REGION( "gdrom" ) |
| 6113 | | DISK_IMAGE_READONLY( "gdl-0018", 0, BAD_DUMP SHA1(3e40ca7d43173fe7048d199fdc127b9411e10360) ) |
| 6118 | DISK_IMAGE_READONLY( "gdl-0018", 0, SHA1(857d405b733c1de3534275a91afb939aec4e1279) ) |
| 6114 | 6119 | |
| 6115 | 6120 | ROM_REGION( 0x50, "pic", ROMREGION_ERASE) |
| 6116 | 6121 | //PIC16C622A (317-5091-JPN) |
src/mame/drivers/byvid.c
| r15097 | r15098 | |
| 28 | 28 | required_device<pia6821_device> m_videopia; |
| 29 | 29 | |
| 30 | 30 | DECLARE_READ8_MEMBER(m6803_port2_r); |
| 31 | DECLARE_WRITE8_MEMBER(m6803_port2_w); |
| 31 | 32 | |
| 32 | 33 | DECLARE_INPUT_CHANGED_MEMBER(video_test); |
| 33 | 34 | DECLARE_INPUT_CHANGED_MEMBER(sound_test); |
| 34 | | // UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
| 35 | | |
| 36 | | protected: |
| 37 | | |
| 38 | | // driver_device overrides |
| 39 | | virtual void machine_reset(); |
| 35 | |
| 36 | UINT8 m_sound_port2; |
| 40 | 37 | }; |
| 41 | 38 | |
| 42 | | #if 0 |
| 43 | | UINT32 by133_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect ) |
| 44 | | { |
| 45 | | return 0; |
| 46 | | } |
| 47 | | #endif |
| 48 | 39 | |
| 49 | 40 | static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, by133_state ) |
| 50 | 41 | AM_RANGE(0x0000, 0xffff) AM_NOP |
| r15097 | r15098 | |
| 67 | 58 | |
| 68 | 59 | READ8_MEMBER(by133_state::m6803_port2_r) |
| 69 | 60 | { |
| 70 | | // TODO: port 2 to /reset pin (see schematics) |
| 71 | | UINT8 d0 = m_videopia->cb2_output() ? 1 : 0; |
| 72 | | return (m_videopia->b_output() << 1 & 0x1e) | d0; |
| 61 | machine().scheduler().synchronize(); |
| 62 | return m_sound_port2; |
| 73 | 63 | } |
| 74 | 64 | |
| 65 | WRITE8_MEMBER(by133_state::m6803_port2_w) |
| 66 | { |
| 67 | } |
| 68 | |
| 75 | 69 | static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, by133_state ) |
| 76 | 70 | AM_RANGE(0xc000, 0xffff) AM_ROM |
| 77 | 71 | ADDRESS_MAP_END |
| 78 | 72 | |
| 79 | 73 | static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, by133_state ) |
| 80 | 74 | AM_RANGE(M6801_PORT1, M6801_PORT1) AM_DEVWRITE_LEGACY("dac", dac_w) |
| 81 | | AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ(m6803_port2_r) |
| 75 | AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READWRITE(m6803_port2_r, m6803_port2_w) |
| 82 | 76 | ADDRESS_MAP_END |
| 83 | 77 | |
| 84 | 78 | |
| r15097 | r15098 | |
| 101 | 95 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Sound Test") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, by133_state, sound_test, 0) |
| 102 | 96 | INPUT_PORTS_END |
| 103 | 97 | |
| 104 | | void by133_state::machine_reset() |
| 105 | | { |
| 106 | | } |
| 107 | 98 | |
| 108 | | static DRIVER_INIT( by133 ) |
| 109 | | { |
| 110 | | } |
| 111 | | |
| 112 | 99 | static WRITE_LINE_DEVICE_HANDLER(vdp_interrupt) |
| 113 | 100 | { |
| 114 | 101 | cputag_set_input_line(device->machine(), "videocpu", M6809_IRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); |
| r15097 | r15098 | |
| 129 | 116 | |
| 130 | 117 | static WRITE_LINE_DEVICE_HANDLER(by133_cb2) |
| 131 | 118 | { |
| 132 | | // to M6803 port 2 d0 |
| 133 | | by133_state *drv_state = device->machine().driver_data<by133_state>(); |
| 134 | | device_set_input_line(drv_state->m_audiocpu, M6801_TIN_LINE, state ? ASSERT_LINE : CLEAR_LINE); |
| 119 | // to M6803 port 2 d0? |
| 120 | // by133_state *drv_state = device->machine().driver_data<by133_state>(); |
| 121 | // device_set_input_line(drv_state->m_audiocpu, M6801_TIN_LINE, state ? ASSERT_LINE : CLEAR_LINE); |
| 135 | 122 | } |
| 136 | 123 | |
| 137 | 124 | static READ8_DEVICE_HANDLER(by133_portb_r) |
| r15097 | r15098 | |
| 139 | 126 | return 0; |
| 140 | 127 | } |
| 141 | 128 | |
| 129 | static WRITE8_DEVICE_HANDLER(by133_portb_w) |
| 130 | { |
| 131 | by133_state *state = device->machine().driver_data<by133_state>(); |
| 132 | device->machine().scheduler().synchronize(); |
| 133 | |
| 134 | // d0-d3 to m6803 d1-d4 |
| 135 | state->m_sound_port2 = data << 1 & 0x1f; |
| 136 | } |
| 137 | |
| 142 | 138 | static const pia6821_interface videopia_intf = |
| 143 | 139 | { |
| 144 | 140 | DEVCB_NULL, /* port A in */ |
| r15097 | r15098 | |
| 148 | 144 | DEVCB_NULL, /* line CA2 in */ |
| 149 | 145 | DEVCB_NULL, /* line CB2 in */ |
| 150 | 146 | DEVCB_NULL, /* port A out */ |
| 151 | | DEVCB_NULL, /* port B out */ |
| 147 | DEVCB_HANDLER(by133_portb_w), /* port B out */ |
| 152 | 148 | DEVCB_NULL, /* line CA2 out */ |
| 153 | 149 | DEVCB_LINE(by133_cb2), /* line CB2 out */ |
| 154 | 150 | DEVCB_LINE(by133_firq), /* IRQA */ |
| r15097 | r15098 | |
| 156 | 152 | }; |
| 157 | 153 | |
| 158 | 154 | |
| 155 | static MACHINE_RESET( by133 ) |
| 156 | { |
| 157 | by133_state *state = machine.driver_data<by133_state>(); |
| 158 | state->m_sound_port2 = 2; // forced to 010 on /reset |
| 159 | } |
| 160 | |
| 159 | 161 | static MACHINE_CONFIG_START( by133, by133_state ) |
| 160 | 162 | /* basic machine hardware */ |
| 161 | 163 | MCFG_CPU_ADD("maincpu", M6800, 3580000/4) |
| r15097 | r15098 | |
| 171 | 173 | |
| 172 | 174 | MCFG_PIA6821_ADD("videopia", videopia_intf) |
| 173 | 175 | |
| 176 | MCFG_MACHINE_RESET(by133) |
| 177 | |
| 174 | 178 | /* video hardware */ |
| 175 | 179 | MCFG_TMS9928A_ADD( "tms9928a", TMS9928A, byvid_tms9928a_interface ) |
| 176 | 180 | MCFG_TMS9928A_SCREEN_ADD_NTSC( "screen" ) |
| r15097 | r15098 | |
| 246 | 250 | ROM_END |
| 247 | 251 | |
| 248 | 252 | |
| 249 | | GAME( 1982, babypac, 0, by133, by133, by133, ROT90, "Bally", "Baby Pac-Man (set 1)", GAME_IS_SKELETON_MECHANICAL) |
| 250 | | GAME( 1982, babypac2, babypac, by133, by133, by133, ROT90, "Bally", "Baby Pac-Man (set 2)", GAME_IS_SKELETON_MECHANICAL) |
| 251 | | GAME( 1984, granny, 0, by133, by133, by133, ROT0, "Bally", "Granny and the Gators", GAME_IS_SKELETON_MECHANICAL) |
| 253 | GAME( 1982, babypac, 0, by133, by133, 0, ROT90, "Bally", "Baby Pac-Man (set 1)", GAME_IS_SKELETON_MECHANICAL) |
| 254 | GAME( 1982, babypac2, babypac, by133, by133, 0, ROT90, "Bally", "Baby Pac-Man (set 2)", GAME_IS_SKELETON_MECHANICAL) |
| 255 | GAME( 1984, granny, 0, by133, by133, 0, ROT0, "Bally", "Granny and the Gators", GAME_IS_SKELETON_MECHANICAL) |
src/mame/drivers/puckpkmn.c
| r15097 | r15098 | |
| 126 | 126 | INPUT_PORTS_END |
| 127 | 127 | |
| 128 | 128 | |
| 129 | |
| 130 | |
| 131 | static INPUT_PORTS_START( batlemp ) |
| 132 | PORT_START("P2") /* $700011.b */ |
| 133 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 134 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 135 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) |
| 136 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) |
| 137 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) |
| 138 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) |
| 139 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) |
| 140 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) |
| 141 | |
| 142 | PORT_START("P1") /* $700013.b */ |
| 143 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 144 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(10) |
| 145 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) |
| 146 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) |
| 147 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) |
| 148 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) |
| 149 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) |
| 150 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) |
| 151 | |
| 152 | PORT_START("UNK") /* $700015.b */ |
| 153 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) |
| 154 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) |
| 155 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 156 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 157 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) |
| 158 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) |
| 159 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 160 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 161 | |
| 162 | |
| 163 | PORT_START("DSW1") /* $700017.b */ |
| 164 | PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) |
| 165 | PORT_DIPSETTING( 0x03, DEF_STR( 5C_1C ) ) |
| 166 | PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) ) |
| 167 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) |
| 168 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_1C ) ) |
| 169 | PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) |
| 170 | PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) |
| 171 | PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) |
| 172 | PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) ) |
| 173 | PORT_DIPNAME( 0x38, 0x28, DEF_STR( Lives ) ) |
| 174 | PORT_DIPSETTING( 0x38, "1" ) |
| 175 | PORT_DIPSETTING( 0x30, "2" ) |
| 176 | PORT_DIPSETTING( 0x28, "3" ) |
| 177 | PORT_DIPSETTING( 0x20, "4" ) |
| 178 | PORT_DIPSETTING( 0x18, "5" ) |
| 179 | PORT_DIPSETTING( 0x10, "6" ) |
| 180 | PORT_DIPSETTING( 0x08, "7" ) |
| 181 | PORT_DIPSETTING( 0x00, "8" ) |
| 182 | PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Difficulty ) ) |
| 183 | PORT_DIPSETTING( 0xc0, DEF_STR( Easy ) ) |
| 184 | PORT_DIPSETTING( 0x80, DEF_STR( Normal ) ) |
| 185 | PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) |
| 186 | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) |
| 187 | |
| 188 | PORT_START("DSW2") /* $700019.b */ |
| 189 | PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) |
| 190 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) |
| 191 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 192 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| 193 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) |
| 194 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 195 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 196 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) |
| 197 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 198 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 199 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) |
| 200 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 201 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 202 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) |
| 203 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 204 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 205 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) |
| 206 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 207 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 208 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) |
| 209 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 210 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 211 | INPUT_PORTS_END |
| 212 | |
| 213 | |
| 129 | 214 | static ADDRESS_MAP_START( puckpkmn_map, AS_PROGRAM, 16, md_boot_state ) |
| 130 | | AM_RANGE(0x000000, 0x1fffff) AM_ROM /* Main 68k Program Roms */ |
| 215 | AM_RANGE(0x000000, 0x3fffff) AM_ROM /* Main 68k Program Roms */ |
| 131 | 216 | AM_RANGE(0x700010, 0x700011) AM_READ_PORT("P2") |
| 132 | 217 | AM_RANGE(0x700012, 0x700013) AM_READ_PORT("P1") |
| 133 | 218 | AM_RANGE(0x700014, 0x700015) AM_READ_PORT("UNK") |
| r15097 | r15098 | |
| 136 | 221 | AM_RANGE(0x700022, 0x700023) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) |
| 137 | 222 | AM_RANGE(0xa04000, 0xa04003) AM_DEVREADWRITE8_LEGACY("ymsnd", megadriv_68k_YM2612_read, megadriv_68k_YM2612_write, 0xffff) |
| 138 | 223 | AM_RANGE(0xc00000, 0xc0001f) AM_READWRITE_LEGACY(megadriv_vdp_r, megadriv_vdp_w) |
| 224 | AM_RANGE(0x000000, 0x00001f) AM_WRITE_LEGACY(megadriv_vdp_w) |
| 225 | |
| 139 | 226 | AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_MIRROR(0x1f0000) AM_BASE_LEGACY(&megadrive_ram) |
| 140 | 227 | |
| 141 | 228 | /* Unknown reads/writes: */ |
| r15097 | r15098 | |
| 148 | 235 | AM_RANGE(0xa11200, 0xa11201) AM_WRITENOP /* ? */ |
| 149 | 236 | ADDRESS_MAP_END |
| 150 | 237 | |
| 238 | |
| 239 | static ADDRESS_MAP_START( batlemp_map, AS_PROGRAM, 16, md_boot_state ) |
| 240 | AM_RANGE(0x000000, 0x3fffff) AM_ROM |
| 241 | AM_RANGE(0x700010, 0x700011) AM_READ_PORT("P2") |
| 242 | AM_RANGE(0x700012, 0x700013) AM_READ_PORT("P1") |
| 243 | AM_RANGE(0x700014, 0x700015) AM_READ_PORT("UNK") |
| 244 | AM_RANGE(0x700016, 0x700017) AM_READ_PORT("DSW1") |
| 245 | AM_RANGE(0x700018, 0x700019) AM_READ_PORT("DSW2") |
| 246 | AM_RANGE(0x700022, 0x700023) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) |
| 247 | AM_RANGE(0xa04000, 0xa04003) AM_DEVREADWRITE8_LEGACY("ymsnd", megadriv_68k_YM2612_read, megadriv_68k_YM2612_write, 0xffff) |
| 248 | AM_RANGE(0xc00000, 0xc0001f) AM_READWRITE_LEGACY(megadriv_vdp_r, megadriv_vdp_w) |
| 249 | |
| 250 | |
| 251 | AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_MIRROR(0x1f0000) AM_BASE_LEGACY(&megadrive_ram) |
| 252 | |
| 253 | AM_RANGE(0xa00000, 0xa00551) AM_NOP |
| 254 | |
| 255 | AM_RANGE(0xA11100, 0xA11101) AM_NOP |
| 256 | |
| 257 | AM_RANGE(0x710000, 0x710001) AM_READWRITE(bl_710000_r,bl_710000_w) // protection, will erase the VDP address causing writes to 0 unless this returns 0xe |
| 258 | |
| 259 | |
| 260 | |
| 261 | |
| 262 | ADDRESS_MAP_END |
| 263 | |
| 151 | 264 | static READ16_HANDLER(puckpkmna_70001c_r) |
| 152 | 265 | { |
| 153 | 266 | return 0x0e; |
| r15097 | r15098 | |
| 184 | 297 | |
| 185 | 298 | MACHINE_CONFIG_END |
| 186 | 299 | |
| 300 | static MACHINE_CONFIG_DERIVED( batlemp, puckpkmn ) |
| 301 | |
| 302 | MCFG_CPU_MODIFY("maincpu") |
| 303 | MCFG_CPU_PROGRAM_MAP(batlemp_map) |
| 304 | |
| 305 | MACHINE_CONFIG_END |
| 306 | |
| 187 | 307 | /* Genie's Hardware (contains no real sega parts) */ |
| 188 | 308 | |
| 189 | 309 | /*************************************************************************** |
| r15097 | r15098 | |
| 271 | 391 | } |
| 272 | 392 | |
| 273 | 393 | ROM_START( puckpkmn ) /* Puckman Pockimon (c)2000 Genie */ |
| 274 | | ROM_REGION( 0x200000, "maincpu", 0 ) |
| 394 | ROM_REGION( 0x400000, "maincpu", 0 ) |
| 275 | 395 | ROM_LOAD16_BYTE( "puckpoke.u5", 0x000000, 0x080000, CRC(fd334b91) SHA1(cf8bf6645a4082ea4392937e169b1686c9c7e246) ) |
| 276 | 396 | ROM_LOAD16_BYTE( "puckpoke.u4", 0x000001, 0x080000, CRC(839cc76b) SHA1(e15662a7175db7a8e222dda176a8ed92e0d56e9d) ) |
| 277 | 397 | ROM_LOAD16_BYTE( "puckpoke.u8", 0x100000, 0x080000, CRC(7936bec8) SHA1(4b350105abe514fbfeabae1c6f3aeee695c3d07a) ) |
| r15097 | r15098 | |
| 323 | 443 | */ |
| 324 | 444 | |
| 325 | 445 | ROM_START( puckpkmna ) /* Puckman Pockimon (c)2000 IBS Co. Ltd */ |
| 326 | | ROM_REGION( 0x200000, "maincpu", 0 ) |
| 446 | ROM_REGION( 0x400000, "maincpu", 0 ) |
| 327 | 447 | ROM_LOAD16_BYTE( "b2.u59", 0x000000, 0x080000, CRC(3fbea2c7) SHA1(89f3770ae92c62714f0795ddd2f311a9532eb25a) ) // FIRST AND SECOND HALF IDENTICAL |
| 328 | 448 | ROM_IGNORE(0x080000) |
| 329 | 449 | ROM_LOAD16_BYTE( "b1.u59", 0x000001, 0x080000, CRC(dc7b4254) SHA1(8ba5c5e8123e62e9af091971d0d0401d2df49350) ) // FIRST AND SECOND HALF IDENTICAL |
| r15097 | r15098 | |
| 337 | 457 | ROM_LOAD( "a.u3", 0x00000, 0x80000, CRC(77891c9b) SHA1(66f28b418a480a89ddb3fae3a7c2fe702c62364c) ) |
| 338 | 458 | ROM_END |
| 339 | 459 | |
| 460 | |
| 461 | |
| 462 | |
| 463 | |
| 464 | ROM_START( batlemp ) |
| 465 | ROM_REGION( 0x400000, "maincpu", 0 ) |
| 466 | ROM_LOAD16_BYTE( "s.y.u5", 0x000000, 0x080000, CRC(a4a526b5) SHA1(85d0299caf91ff50b6870f845b9aacbd358ed81f) ) |
| 467 | ROM_LOAD16_BYTE( "s.y.u4", 0x000001, 0x080000, CRC(c16654eb) SHA1(dca4b772a3b9caa7be3fa01511c401b591c2e6f3) ) |
| 468 | ROM_LOAD16_BYTE( "s.y.u8", 0x100000, 0x080000, CRC(b62e1068) SHA1(2484ae49a4a2a2c551b3b84bbc0b4e40e5d281e7) ) |
| 469 | ROM_LOAD16_BYTE( "s.y.u7", 0x100001, 0x080000, CRC(27fe424c) SHA1(14bee8c16aac3d5b04123c994167531f817634fd) ) |
| 470 | ROM_LOAD16_BYTE( "s.y.u64", 0x200000, 0x080000, CRC(62f52886) SHA1(07fc9765274c03eff4a09f48a0b1b2b2afc6078e) ) |
| 471 | ROM_LOAD16_BYTE( "s.y.u63", 0x200001, 0x080000, CRC(a6a32c8c) SHA1(d0c779751e4af459e9bf63e55c5e2b19a243b70d) ) |
| 472 | ROM_LOAD16_BYTE( "s.y.u66", 0x300000, 0x080000, CRC(fa4a09f5) SHA1(67d77c91a994ecb8b29e7661c3a12e84a64eb837)) |
| 473 | ROM_LOAD16_BYTE( "s.y.u65", 0x300001, 0x080000, CRC(de64e526) SHA1(e3b3e5c95b8ae36c0c57f8c9a6f55084464c4c05) ) |
| 474 | |
| 475 | ROM_REGION( 0x80000, "oki", 0 ) // there are 2 banks in here, so find bank switch |
| 476 | ROM_LOAD( "s.y.u3", 0x00000, 0x40000, CRC(38eef2f2) SHA1(2f750dbf71fea0622e8493f0a8be7c43555ed5cf) ) |
| 477 | ROM_CONTINUE(0x40000,0x40000) |
| 478 | ROM_END |
| 479 | |
| 340 | 480 | /* Genie Hardware (uses Genesis VDP) also has 'Sun Mixing Co' put into tile ram */ |
| 341 | 481 | GAME( 2000, puckpkmn, 0, puckpkmn, puckpkmn, puckpkmn, ROT0, "Genie", "Puckman Pockimon (set 1)", 0 ) |
| 342 | 482 | GAME( 2000, puckpkmna,puckpkmn, puckpkmna, puckpkmn, puckpkmn, ROT0, "IBS", "Puckman Pockimon (set 2)", 0 ) |
| 483 | GAME( 2000, batlemp, 0, batlemp, batlemp, puckpkmn, ROT0, "<unknown>", "Jue Zhan Tian Huang/Battle Emporer", GAME_IMPERFECT_SOUND ) |
src/mame/drivers/timeplt.c
| r15097 | r15098 | |
| 280 | 280 | INPUT_PORTS_END |
| 281 | 281 | |
| 282 | 282 | static INPUT_PORTS_START( chkun ) |
| 283 | | PORT_INCLUDE(timeplt) |
| 283 | PORT_START("IN0") |
| 284 | PORT_DIPNAME( 0x01, 0x01, "DSWA" ) |
| 285 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 286 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 287 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 288 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 289 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 290 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 291 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 292 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 293 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 294 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 295 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 296 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 297 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 298 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 299 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 300 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 301 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 302 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 303 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 304 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 305 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 306 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 307 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 284 | 308 | |
| 309 | PORT_START("IN1") |
| 310 | PORT_DIPNAME( 0x01, 0x01, "DSWA" ) |
| 311 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 312 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 313 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 314 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 315 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 316 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 317 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 318 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 319 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 320 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 321 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 322 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 323 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 324 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 325 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 326 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 327 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 328 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 329 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 330 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 331 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 332 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 333 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 285 | 334 | |
| 286 | | PORT_MODIFY("DSW0") |
| 287 | | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) |
| 335 | PORT_START("IN2") |
| 336 | PORT_DIPNAME( 0x01, 0x01, "DSWA" ) |
| 288 | 337 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 289 | 338 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 290 | 339 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| r15097 | r15098 | |
| 302 | 351 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 303 | 352 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 304 | 353 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 305 | | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) //service mode |
| 354 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 306 | 355 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 307 | 356 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 308 | | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 357 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 309 | 358 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 310 | 359 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 360 | |
| 361 | PORT_START("DSW0") |
| 362 | PORT_DIPNAME( 0x01, 0x01, "DSWA" ) |
| 363 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 364 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 365 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 366 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 367 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 368 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 369 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 370 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 371 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 372 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 373 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 374 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 375 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 376 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 377 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 378 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 379 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 380 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) // debug mode |
| 381 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 382 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 383 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) // Freeze? |
| 384 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 385 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 386 | |
| 387 | PORT_START("DSW1") |
| 388 | PORT_DIPNAME( 0x01, 0x01, "DSWA" ) |
| 389 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 390 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 391 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 392 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 393 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 394 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 395 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 396 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 397 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 398 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 399 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 400 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 401 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 402 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 403 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 404 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 405 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 406 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 407 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 408 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 409 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 410 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 411 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 311 | 412 | INPUT_PORTS_END |
| 312 | 413 | |
| 414 | static INPUT_PORTS_START( bikkuric ) |
| 415 | PORT_START("IN0") |
| 416 | PORT_DIPNAME( 0x01, 0x01, "DSWA" ) |
| 417 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 418 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 419 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 420 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 421 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 422 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 423 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 424 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 425 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 426 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 427 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 428 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 429 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 430 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 431 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 432 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 433 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 434 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 435 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 436 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 437 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 438 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 439 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 313 | 440 | |
| 441 | PORT_START("IN1") |
| 442 | PORT_DIPNAME( 0x01, 0x01, "DSWA" ) |
| 443 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 444 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 445 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 446 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 447 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 448 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 449 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 450 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 451 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 452 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 453 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 454 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 455 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 456 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 457 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 458 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 459 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 460 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 461 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 462 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 463 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 464 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 465 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 466 | |
| 467 | PORT_START("IN2") |
| 468 | PORT_DIPNAME( 0x01, 0x01, "DSWA" ) |
| 469 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 470 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 471 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 472 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 473 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 474 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 475 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 476 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 477 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 478 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 479 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 480 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 481 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 482 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 483 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 484 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 485 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 486 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 487 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 488 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 489 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 490 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 491 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 492 | |
| 493 | PORT_START("DSW0") |
| 494 | PORT_DIPNAME( 0x01, 0x01, "DSWA" ) |
| 495 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 496 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 497 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 498 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 499 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 500 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 501 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 502 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 503 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 504 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 505 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 506 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 507 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 508 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 509 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 510 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 511 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 512 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 513 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 514 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 515 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 516 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 517 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 518 | |
| 519 | PORT_START("DSW1") |
| 520 | PORT_DIPNAME( 0x01, 0x01, "DSWA" ) |
| 521 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 522 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 523 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 524 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 525 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 526 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 527 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 528 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 529 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 530 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 531 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 532 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 533 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 534 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 535 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 536 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 537 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 538 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 539 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 540 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 541 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 542 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 543 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 544 | INPUT_PORTS_END |
| 545 | |
| 314 | 546 | /************************************* |
| 315 | 547 | * |
| 316 | 548 | * Graphics layouts |
| r15097 | r15098 | |
| 578 | 810 | ROM_LOAD( "b.9f", 0x0100, 0x00eb, CRC(e3857f83) SHA1(674e70dc960fc02a9fbda4a0ef0770eb8214c466) ) |
| 579 | 811 | ROM_END |
| 580 | 812 | |
| 813 | ROM_START( bikkuric ) |
| 814 | ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) |
| 815 | ROM_LOAD( "1.a16", 0x00000, 0x04000, CRC(e8d595ab) SHA1(01f6a5321274befcd03a0ec18ed9770aca4527b6) ) |
| 816 | ROM_LOAD( "2.a14", 0x04000, 0x02000, CRC(63fd7d53) SHA1(b1ef666453c5c9e344bee544a0673068d60158fa) ) |
| 817 | |
| 818 | ROM_REGION( 0x10000, "tpsound", ROMREGION_ERASE00 ) |
| 819 | ROM_LOAD( "5.l3", 0x00000, 0x02000, CRC(bc438531) SHA1(e19badc417b0538010cf535d3f733acc54b0cd96) ) |
| 820 | |
| 821 | ROM_REGION( 0x8000, "gfx1", ROMREGION_ERASE00 ) |
| 822 | ROM_LOAD( "3.d4", 0x00000, 0x08000, CRC(74e8a64b) SHA1(b2542e1f6f4b54d8f7aec8f673cedcf5bff5e429) ) // 1st and 2nd identical, confirmed to be like this |
| 823 | |
| 824 | ROM_REGION( 0x2000, "gfx2", ROMREGION_ERASE00 ) |
| 825 | ROM_LOAD( "4.h8", 0x00000, 0x02000, CRC(d303942d) SHA1(688d43e6dbe505d44fc41fdde74858a02910080d) ) |
| 826 | |
| 827 | ROM_REGION( 0x0240, "proms", 0 ) |
| 828 | ROM_LOAD( "timeplt.b4", 0x0000, 0x0020, BAD_DUMP CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) /* palette */ |
| 829 | ROM_LOAD( "timeplt.b5", 0x0020, 0x0020, BAD_DUMP CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) /* palette */ |
| 830 | ROM_LOAD( "timeplt.e9", 0x0040, 0x0100, BAD_DUMP CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) /* sprite lookup table */ |
| 831 | ROM_LOAD( "timeplt.e12", 0x0140, 0x0100, BAD_DUMP CRC(f7b7663e) SHA1(151bd2dff4e4ef76d6438c1ab2cae71f987b9dad) ) /* char lookup table */ |
| 832 | ROM_END |
| 833 | |
| 834 | |
| 581 | 835 | /************************************* |
| 582 | 836 | * |
| 583 | 837 | * Game drivers |
| r15097 | r15098 | |
| 588 | 842 | GAME( 1982, timepltc, timeplt, timeplt, timeplt, 0, ROT90, "Konami (Centuri license)", "Time Pilot (Centuri)", GAME_SUPPORTS_SAVE ) |
| 589 | 843 | GAME( 1982, timeplta, timeplt, timeplt, timeplt, 0, ROT90, "Konami (Atari license)", "Time Pilot (Atari)", GAME_SUPPORTS_SAVE ) |
| 590 | 844 | GAME( 1982, spaceplt, timeplt, timeplt, timeplt, 0, ROT90, "bootleg", "Space Pilot", GAME_SUPPORTS_SAVE ) |
| 591 | | GAME( 1982, chkun, 0, chkun, chkun, 0, ROT90, "<unknown>", "Chance Kun", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND ) |
| 592 | 845 | GAME( 1988, psurge, 0, psurge, psurge, 0, ROT270, "<unknown>", "Power Surge", GAME_SUPPORTS_SAVE ) |
| 846 | // ROM says manufactured by Peni Soft for these two ... no, I'm not going to add THAT -.-" |
| 847 | GAME( 1982, chkun, 0, chkun, chkun, 0, ROT90, "<unknown>", "Chance Kun", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND ) |
| 848 | GAME( 1987, bikkuric, 0, chkun, bikkuric,0, ROT90, "<unknown>", "Bikkuri Card (Japan)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING | GAME_IMPERFECT_COLORS) |
| 849 | |
src/emu/ioport.c
| r15097 | r15098 | |
| 179 | 179 | INT32 delta() const { return m_delta; } |
| 180 | 180 | INT32 centerdelta() const { return m_centerdelta; } |
| 181 | 181 | |
| 182 | | // helpers |
| 183 | | ioport_value apply_min_max(ioport_value value) const; |
| 184 | | ioport_value apply_settings(ioport_value value) const; |
| 185 | | ioport_value apply_sensitivity(ioport_value value) const; |
| 186 | | ioport_value apply_inverse_sensitivity(ioport_value value) const; |
| 187 | | |
| 188 | 182 | // readers |
| 189 | 183 | void read(ioport_value &value); |
| 190 | 184 | float crosshair_read(); |
| 191 | 185 | void frame_update(running_machine &machine); |
| 192 | 186 | |
| 193 | 187 | private: |
| 188 | // helpers |
| 189 | INT32 apply_min_max(INT32 value) const; |
| 190 | INT32 apply_settings(INT32 value) const; |
| 191 | INT32 apply_sensitivity(INT32 value) const; |
| 192 | INT32 apply_inverse_sensitivity(INT32 value) const; |
| 193 | |
| 194 | 194 | // internal state |
| 195 | 195 | analog_field * m_next; // link to the next analog state for this port |
| 196 | 196 | ioport_field & m_field; // pointer to the input field referenced |
| r15097 | r15098 | |
| 316 | 316 | // from a numerator and a denominator |
| 317 | 317 | //------------------------------------------------- |
| 318 | 318 | |
| 319 | | inline INT32 compute_scale(INT32 num, INT32 den) |
| 319 | inline INT64 compute_scale(INT32 num, INT32 den) |
| 320 | 320 | { |
| 321 | 321 | return (INT64(num) << 24) / den; |
| 322 | 322 | } |
| r15097 | r15098 | |
| 327 | 327 | // an 8.24 scale value |
| 328 | 328 | //------------------------------------------------- |
| 329 | 329 | |
| 330 | | inline INT32 recip_scale(INT32 scale) |
| 330 | inline INT64 recip_scale(INT64 scale) |
| 331 | 331 | { |
| 332 | 332 | return (INT64(1) << 48) / scale; |
| 333 | 333 | } |
| r15097 | r15098 | |
| 338 | 338 | // a 32-bit value |
| 339 | 339 | //------------------------------------------------- |
| 340 | 340 | |
| 341 | | inline INT32 apply_scale(INT32 value, INT32 scale) |
| 341 | inline INT32 apply_scale(INT32 value, INT64 scale) |
| 342 | 342 | { |
| 343 | 343 | return (INT64(value) * scale) >> 24; |
| 344 | 344 | } |
| r15097 | r15098 | |
| 1692 | 1692 | |
| 1693 | 1693 | |
| 1694 | 1694 | //------------------------------------------------- |
| 1695 | | // seq - return the input sequence for the given |
| 1696 | | // input field |
| 1695 | // seq - return the live input sequence for the |
| 1696 | // given input field |
| 1697 | 1697 | //------------------------------------------------- |
| 1698 | 1698 | |
| 1699 | 1699 | const input_seq &ioport_field::seq(input_seq_type seqtype) const |
| 1700 | 1700 | { |
| 1701 | // if no live state, return default |
| 1702 | if (m_live == NULL) |
| 1703 | return defseq(seqtype); |
| 1704 | |
| 1701 | 1705 | // if the field is disabled, return no key |
| 1702 | 1706 | if (m_flags & FIELD_FLAG_UNUSED) |
| 1703 | 1707 | return input_seq::empty_seq; |
| 1704 | 1708 | |
| 1705 | | // select either the live or config state depending on whether we have live state |
| 1706 | | const input_seq &portseq = (m_live == NULL) ? m_seq[seqtype] : m_live->seq[seqtype]; |
| 1709 | // if the sequence is the special default code, return the expanded default value |
| 1710 | if (m_live->seq[seqtype].is_default()) |
| 1711 | return machine().ioport().type_seq(m_type, m_player, seqtype); |
| 1707 | 1712 | |
| 1708 | | // if the portseq is the special default code, return the expanded default value |
| 1709 | | if (portseq.is_default()) |
| 1713 | // otherwise, return the sequence as-is |
| 1714 | return m_live->seq[seqtype]; |
| 1715 | } |
| 1716 | |
| 1717 | |
| 1718 | //------------------------------------------------- |
| 1719 | // defseq - return the default input sequence for |
| 1720 | // the given input field |
| 1721 | //------------------------------------------------- |
| 1722 | |
| 1723 | const input_seq &ioport_field::defseq(input_seq_type seqtype) const |
| 1724 | { |
| 1725 | // if the field is disabled, return no key |
| 1726 | if (m_flags & FIELD_FLAG_UNUSED) |
| 1727 | return input_seq::empty_seq; |
| 1728 | |
| 1729 | // if the sequence is the special default code, return the expanded default value |
| 1730 | if (m_seq[seqtype].is_default()) |
| 1710 | 1731 | return machine().ioport().type_seq(m_type, m_player, seqtype); |
| 1711 | 1732 | |
| 1712 | 1733 | // otherwise, return the sequence as-is |
| 1713 | | return portseq; |
| 1734 | return m_seq[seqtype]; |
| 1714 | 1735 | } |
| 1715 | 1736 | |
| 1716 | 1737 | |
| r15097 | r15098 | |
| 1817 | 1838 | |
| 1818 | 1839 | // copy the basics |
| 1819 | 1840 | for (input_seq_type seqtype = SEQ_TYPE_STANDARD; seqtype < SEQ_TYPE_TOTAL; seqtype++) |
| 1820 | | settings.seq[seqtype] = m_live->seq[seqtype]; |
| 1841 | settings.seq[seqtype] = seq(seqtype); |
| 1821 | 1842 | |
| 1822 | 1843 | // if there's a list of settings or we're an adjuster, copy the current value |
| 1823 | 1844 | if (first_setting() != NULL || m_type == IPT_ADJUSTER) |
| r15097 | r15098 | |
| 2279 | 2300 | { |
| 2280 | 2301 | // fill in the basic values |
| 2281 | 2302 | for (input_seq_type seqtype = SEQ_TYPE_STANDARD; seqtype < SEQ_TYPE_TOTAL; seqtype++) |
| 2282 | | seq[seqtype] = field.seq(seqtype); |
| 2303 | seq[seqtype] = field.defseq(seqtype); |
| 2283 | 2304 | |
| 2284 | 2305 | // if this is a digital joystick field, make a note of it |
| 2285 | 2306 | if (field.is_digital_joystick()) |
| r15097 | r15098 | |
| 3014 | 3035 | // values based on the time between frames |
| 3015 | 3036 | //------------------------------------------------- |
| 3016 | 3037 | |
| 3017 | | ioport_value ioport_manager::frame_interpolate(ioport_value oldval, ioport_value newval) |
| 3038 | INT32 ioport_manager::frame_interpolate(INT32 oldval, INT32 newval) |
| 3018 | 3039 | { |
| 3019 | 3040 | // if no last delta, just use new value |
| 3020 | 3041 | if (m_last_delta_nsec == 0) |
| r15097 | r15098 | |
| 3326 | 3347 | // determine if we changed |
| 3327 | 3348 | bool changed = false; |
| 3328 | 3349 | for (input_seq_type seqtype = SEQ_TYPE_STANDARD; seqtype < SEQ_TYPE_TOTAL; seqtype++) |
| 3329 | | changed |= (field->live().seq[seqtype] != field->seq(seqtype)); |
| 3350 | changed |= (field->seq(seqtype) != field->defseq(seqtype)); |
| 3330 | 3351 | |
| 3331 | 3352 | // non-analog changes |
| 3332 | | if (field->live().analog == NULL) |
| 3353 | if (!field->is_analog()) |
| 3333 | 3354 | changed |= ((field->live().value & field->mask()) != (field->defvalue() & field->mask())); |
| 3334 | 3355 | |
| 3335 | 3356 | // analog changes |
| r15097 | r15098 | |
| 3357 | 3378 | |
| 3358 | 3379 | // add sequences if changed |
| 3359 | 3380 | for (input_seq_type seqtype = SEQ_TYPE_STANDARD; seqtype < SEQ_TYPE_TOTAL; seqtype++) |
| 3360 | | if (field->live().seq[seqtype] != field->seq(seqtype)) |
| 3361 | | save_sequence(portnode, seqtype, field->type(), field->live().seq[seqtype]); |
| 3381 | if (field->seq(seqtype) != field->defseq(seqtype)) |
| 3382 | save_sequence(portnode, seqtype, field->type(), field->seq(seqtype)); |
| 3362 | 3383 | |
| 3363 | 3384 | // write out non-analog changes |
| 3364 | | if (field->live().analog == NULL) |
| 3385 | if (!field->is_analog()) |
| 3365 | 3386 | { |
| 3366 | 3387 | if ((field->live().value & field->mask()) != (field->defvalue() & field->mask())) |
| 3367 | 3388 | xml_set_attribute_int(portnode, "value", field->live().value & field->mask()); |
| r15097 | r15098 | |
| 4149 | 4170 | // the appropriate min/max for the analog control |
| 4150 | 4171 | //------------------------------------------------- |
| 4151 | 4172 | |
| 4152 | | inline ioport_value analog_field::apply_min_max(ioport_value value) const |
| 4173 | inline INT32 analog_field::apply_min_max(INT32 value) const |
| 4153 | 4174 | { |
| 4154 | 4175 | // take the analog minimum and maximum values and apply the inverse of the |
| 4155 | 4176 | // sensitivity so that we can clamp against them before applying sensitivity |
| r15097 | r15098 | |
| 4185 | 4206 | // adjustment for a current value |
| 4186 | 4207 | //------------------------------------------------- |
| 4187 | 4208 | |
| 4188 | | inline ioport_value analog_field::apply_sensitivity(ioport_value value) const |
| 4209 | inline INT32 analog_field::apply_sensitivity(INT32 value) const |
| 4189 | 4210 | { |
| 4190 | 4211 | return INT32((INT64(value) * m_sensitivity) / 100.0 + 0.5); |
| 4191 | 4212 | } |
| r15097 | r15098 | |
| 4196 | 4217 | // sensitivity adjustment for a current value |
| 4197 | 4218 | //------------------------------------------------- |
| 4198 | 4219 | |
| 4199 | | inline ioport_value analog_field::apply_inverse_sensitivity(ioport_value value) const |
| 4220 | inline INT32 analog_field::apply_inverse_sensitivity(INT32 value) const |
| 4200 | 4221 | { |
| 4201 | 4222 | return INT32((INT64(value) * 100) / m_sensitivity); |
| 4202 | 4223 | } |
| r15097 | r15098 | |
| 4207 | 4228 | // analog input |
| 4208 | 4229 | //------------------------------------------------- |
| 4209 | 4230 | |
| 4210 | | ioport_value analog_field::apply_settings(ioport_value value) const |
| 4231 | INT32 analog_field::apply_settings(INT32 value) const |
| 4211 | 4232 | { |
| 4212 | 4233 | // apply the min/max and then the sensitivity |
| 4213 | 4234 | value = apply_min_max(value); |