mirror of
https://github.com/holub/mame
synced 2025-04-20 23:42:22 +03:00
- irem/m72.cpp: Added more PLDs to various sets, added main board BPROMs to most sets. [Porchy, The PLD Archive, Brian Troha, The Dumping Union]
- nmk/quizdna.cpp, nmk/quizpanic.cpp: consolidated drivers in single files
This commit is contained in:
parent
fb47237dcb
commit
103a89ddeb
@ -71,7 +71,7 @@ Notes:
|
||||
|
||||
===================================================================================================
|
||||
|
||||
Pong Pong Car
|
||||
Pang Pang Car
|
||||
Icarus, 1999
|
||||
|
||||
This game runs on hardware that is similar to that used on 'See See Find Out'
|
||||
|
@ -2433,6 +2433,15 @@ ROM_START( bchopper )
|
||||
|
||||
ROM_REGION( 0x10000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "mh_c-v0-b.ic44", 0x00000, 0x10000, CRC(d0c27e58) SHA1(fec76217cc0c04c723989c3ec127a2bd33d64c60) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // Located on M72-A-C CPU/Sound board
|
||||
ROM_LOAD( "m72_a-8l-.ic66", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "m72_a-9l-.ic75", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0600, "pals", 0 )
|
||||
ROM_LOAD( "m72_a-3d-.ic11", 0x0000, 0x0117, CRC(8a3732ff) SHA1(6e3039e7dc424cbef7156312fa1ce67d7b082d30) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m72_a-4d-.ic19", 0x0200, 0x0117, CRC(56c29834) SHA1(a66c589845f9995c673325f1161c687eb90d68c1) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "mh-c-3f-.ic13", 0x0400, 0x0117, CRC(2d774e1e) SHA1(373c3cbfaf983961c17ebe96b5aff850f36cb30c) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_END
|
||||
|
||||
ROM_START( mrheli )
|
||||
@ -2469,6 +2478,15 @@ ROM_START( mrheli )
|
||||
|
||||
ROM_REGION( 0x10000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "mh_c-v0-b.ic44", 0x00000, 0x10000, CRC(d0c27e58) SHA1(fec76217cc0c04c723989c3ec127a2bd33d64c60) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // Located on M72-A-C CPU/Sound board
|
||||
ROM_LOAD( "m72_a-8l-.ic66", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "m72_a-9l-.ic75", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0600, "pals", 0 )
|
||||
ROM_LOAD( "m72_a-3d-.ic11", 0x0000, 0x0117, CRC(8a3732ff) SHA1(6e3039e7dc424cbef7156312fa1ce67d7b082d30) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m72_a-4d-.ic19", 0x0200, 0x0117, CRC(56c29834) SHA1(a66c589845f9995c673325f1161c687eb90d68c1) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "mh-c-3f-.ic13", 0x0400, 0x0117, CRC(2d774e1e) SHA1(373c3cbfaf983961c17ebe96b5aff850f36cb30c) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
@ -2725,10 +2743,14 @@ ROM_START( imgfight )
|
||||
ROM_LOAD( "if-c-v0.ic44", 0x00000, 0x10000, CRC(cb64a194) SHA1(940fad6b9147bccc8290e112f5973f8ea062b52f) )
|
||||
ROM_LOAD( "if-c-v1.ic45", 0x10000, 0x10000, CRC(45b68bf5) SHA1(2fb28793019ca85b3b6d7c4c31eedff1d71f2d83) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // Located on M72-A-C CPU/Sound board
|
||||
ROM_LOAD( "m72_a-8l-.ic66", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "m72_a-9l-.ic75", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0600, "pals", 0 )
|
||||
ROM_LOAD( "m72_a-3d-.ic11", 0x0000, 0x0117, CRC(8a3732ff) SHA1(6e3039e7dc424cbef7156312fa1ce67d7b082d30) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m72_a-4d-.ic19", 0x0200, 0x0117, CRC(56c29834) SHA1(a66c589845f9995c673325f1161c687eb90d68c1) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "if-c-3f.ic13", 0x0400, 0x0117, CRC(2d774e1e) SHA1(373c3cbfaf983961c17ebe96b5aff850f36cb30c) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_LOAD( "if-c-3f-.ic13", 0x0400, 0x0117, CRC(2d774e1e) SHA1(373c3cbfaf983961c17ebe96b5aff850f36cb30c) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_END
|
||||
|
||||
ROM_START( imgfightj )
|
||||
@ -2765,10 +2787,14 @@ ROM_START( imgfightj )
|
||||
ROM_LOAD( "if-c-v0.ic44", 0x00000, 0x10000, CRC(cb64a194) SHA1(940fad6b9147bccc8290e112f5973f8ea062b52f) )
|
||||
ROM_LOAD( "if-c-v1.ic45", 0x10000, 0x10000, CRC(45b68bf5) SHA1(2fb28793019ca85b3b6d7c4c31eedff1d71f2d83) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // Located on M72-A-C CPU/Sound board
|
||||
ROM_LOAD( "m72_a-8l-.ic66", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "m72_a-9l-.ic75", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0600, "pals", 0 )
|
||||
ROM_LOAD( "m72_a-3d-.ic11", 0x0000, 0x0117, CRC(8a3732ff) SHA1(6e3039e7dc424cbef7156312fa1ce67d7b082d30) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m72_a-4d-.ic19", 0x0200, 0x0117, CRC(56c29834) SHA1(a66c589845f9995c673325f1161c687eb90d68c1) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "if-c-3f.ic13", 0x0400, 0x0117, CRC(2d774e1e) SHA1(373c3cbfaf983961c17ebe96b5aff850f36cb30c) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_LOAD( "if-c-3f-.ic13", 0x0400, 0x0117, CRC(2d774e1e) SHA1(373c3cbfaf983961c17ebe96b5aff850f36cb30c) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_END
|
||||
|
||||
ROM_START( imgfightb ) // mostly identical to imgfightj content-wise, it's a 4 PCB stack bootleg with flying wires
|
||||
@ -2847,6 +2873,15 @@ ROM_START( loht )
|
||||
|
||||
ROM_REGION( 0x10000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "tom_m44.ic44", 0x00000, 0x10000, CRC(3ed51d1f) SHA1(84f3aa17d640df91387e5f1f5b5971cf8dcd4e17) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // Located on M72-A-C CPU/Sound board
|
||||
ROM_LOAD( "m72_a-8l-.ic66", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "m72_a-9l-.ic75", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0600, "pals", 0 )
|
||||
ROM_LOAD( "m72_a-3d-.ic11", 0x0000, 0x0117, CRC(8a3732ff) SHA1(6e3039e7dc424cbef7156312fa1ce67d7b082d30) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m72_a-4d-.ic19", 0x0200, 0x0117, CRC(56c29834) SHA1(a66c589845f9995c673325f1161c687eb90d68c1) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "tom-c-3f.ic13", 0x0400, 0x0117, CRC(2d774e1e) SHA1(373c3cbfaf983961c17ebe96b5aff850f36cb30c) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
@ -2921,26 +2956,35 @@ ROM_START( lohtj )
|
||||
ROM_REGION( 0x10000, "mcu", 0 ) // i8751 microcontroller
|
||||
ROM_LOAD( "tom_c-pr-.ic1", 0x00000, 0x01000, CRC(9fa9b496) SHA1(b529bcd7bf123894e11f2a8df8826932122e375a) ) // i8751 MCU labeled TOM C-PR-
|
||||
|
||||
ROM_REGION( 0x080000, "sprites", 0 )
|
||||
ROM_REGION( 0x080000, "sprites", 0 ) // same data as loht above, just mask ROMs without labels
|
||||
ROM_LOAD( "r200", 0x00000, 0x20000, CRC(0b83265f) SHA1(b31918d6442b79c9fe4f20410189788b050a994e) ) // sprites
|
||||
ROM_LOAD( "r210", 0x20000, 0x20000, CRC(8ec5f6f3) SHA1(210f2753f5eeb06396758d21ab1778d459add247) )
|
||||
ROM_LOAD( "r220", 0x40000, 0x20000, CRC(a41d3bfd) SHA1(536fb7c0321dbbc1a8b73e9647fba9c53a253fcc) )
|
||||
ROM_LOAD( "r230", 0x60000, 0x20000, CRC(9d81a25b) SHA1(a354537c2fbba85f06485aa8487d7583a7133357) )
|
||||
|
||||
ROM_REGION( 0x040000, "gfx2", 0 )
|
||||
ROM_REGION( 0x040000, "gfx2", 0 ) // same data as loht above, just mask ROMs without labels
|
||||
ROM_LOAD( "r2a0.a0", 0x00000, 0x10000, CRC(3ca3e771) SHA1(be052e01c5429ee89057c9d408794f2c7744047c) ) // tiles #1
|
||||
ROM_LOAD( "r2a1.a1", 0x10000, 0x10000, CRC(7a05ee2f) SHA1(7d1ca5db9a5a85610129e3bc6c640ade036fe7f9) )
|
||||
ROM_LOAD( "r2a2.a2", 0x20000, 0x10000, CRC(79aa2335) SHA1(6b70c79d800a7b755aa7c9a368c4ea74029aaa1e) )
|
||||
ROM_LOAD( "r2a3.a3", 0x30000, 0x10000, CRC(789e8b24) SHA1(e957cd25c3c155ca295ab1aea03d610f91562cfb) )
|
||||
|
||||
ROM_REGION( 0x040000, "gfx3", 0 )
|
||||
ROM_REGION( 0x040000, "gfx3", 0 ) // same data as loht above, just mask ROMs without labels
|
||||
ROM_LOAD( "078.b0", 0x00000, 0x10000, CRC(44626bf6) SHA1(571ef74d42d30a272ff0fb33f830652b4a4bad29) ) // tiles #2
|
||||
ROM_LOAD( "079.b1", 0x10000, 0x10000, CRC(464952cf) SHA1(6b99360b6ba1ed5a72c257f51291f9f7a1ddf363) )
|
||||
ROM_LOAD( "080.b2", 0x20000, 0x10000, CRC(3db9b2c7) SHA1(02a318ffc459c494b7f40827eff5f89b41ac0426) )
|
||||
ROM_LOAD( "081.b3", 0x30000, 0x10000, CRC(f01fe899) SHA1(c5ab967b7af55a757638bcdc9975f4b15064022d) )
|
||||
|
||||
ROM_REGION( 0x10000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "082", 0x00000, 0x10000, CRC(3ed51d1f) SHA1(84f3aa17d640df91387e5f1f5b5971cf8dcd4e17) )
|
||||
ROM_REGION( 0x10000, "samples", 0 ) // same data as loht above, just mask ROM without label
|
||||
ROM_LOAD( "082", 0x00000, 0x10000, CRC(3ed51d1f) SHA1(84f3aa17d640df91387e5f1f5b5971cf8dcd4e17) ) // samples
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // Located on M72-A-C CPU/Sound board
|
||||
ROM_LOAD( "m72_a-8l-.ic66", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "m72_a-9l-.ic75", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0600, "pals", 0 )
|
||||
ROM_LOAD( "m72_a-3d-.ic11", 0x0000, 0x0117, CRC(8a3732ff) SHA1(6e3039e7dc424cbef7156312fa1ce67d7b082d30) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m72_a-4d-.ic19", 0x0200, 0x0117, CRC(56c29834) SHA1(a66c589845f9995c673325f1161c687eb90d68c1) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "tom-c-3f.ic13", 0x0400, 0x0117, CRC(2d774e1e) SHA1(373c3cbfaf983961c17ebe96b5aff850f36cb30c) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
@ -3022,7 +3066,6 @@ ROM_START( lohtb2 )
|
||||
|
||||
ROM_REGION( 0x040000, "gfx2", 0 )
|
||||
ROM_LOAD( "loht-a19.bin", 0x00000, 0x10000, CRC(3ca3e771) SHA1(be052e01c5429ee89057c9d408794f2c7744047c) ) // tiles #1
|
||||
// ROM_LOAD( "loht-a20.bin", 0x10000, 0x10000, BAD_DUMP CRC(db2e3d77) SHA1(3f0758f74490b084321d8b2da29525dd1f19da09) )
|
||||
ROM_LOAD( "loht-a20.bin", 0x10000, 0x10000, CRC(7a05ee2f) SHA1(7d1ca5db9a5a85610129e3bc6c640ade036fe7f9) )
|
||||
ROM_LOAD( "loht-a18.bin", 0x20000, 0x10000, CRC(79aa2335) SHA1(6b70c79d800a7b755aa7c9a368c4ea74029aaa1e) )
|
||||
ROM_LOAD( "loht-a21.bin", 0x30000, 0x10000, CRC(789e8b24) SHA1(e957cd25c3c155ca295ab1aea03d610f91562cfb) )
|
||||
@ -3400,6 +3443,15 @@ ROM_START( xmultiplm72 )
|
||||
|
||||
ROM_REGION( 0x20000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "t52.v0.ic44", 0x00000, 0x20000, CRC(2db1bd80) SHA1(657006d0642ec7fb949bb52821d78fe51a599415) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // Located on M72-A-C CPU/Sound board
|
||||
ROM_LOAD( "m72_a-8l-.ic66", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "m72_a-9l-.ic75", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0600, "pals", 0 )
|
||||
ROM_LOAD( "m72_a-3d-.ic11", 0x0000, 0x0117, CRC(8a3732ff) SHA1(6e3039e7dc424cbef7156312fa1ce67d7b082d30) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m72_a-4d-.ic19", 0x0200, 0x0117, CRC(56c29834) SHA1(a66c589845f9995c673325f1161c687eb90d68c1) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "xm-c-3f-.ic13", 0x0400, 0x0117, CRC(f43e91e4) SHA1(37dd9b9436ad57232da7fd57040311ac140c1841) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -3436,10 +3488,14 @@ ROM_START( dbreedm72 )
|
||||
ROM_REGION( 0x20000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "db_c-v0.ic44", 0x00000, 0x20000, CRC(312f7282) SHA1(742d56980b4618180e9a0e02051c5aec4d5cdae4) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // Located on M72-A-C CPU/Sound board
|
||||
ROM_LOAD( "m72_a-8l-.ic66", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "m72_a-9l-.ic75", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0600, "pals", 0 )
|
||||
ROM_LOAD( "m72_a-3d-.ic11", 0x0000, 0x0117, CRC(8a3732ff) SHA1(6e3039e7dc424cbef7156312fa1ce67d7b082d30) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m72_a-4d-.ic19", 0x0200, 0x0117, CRC(56c29834) SHA1(a66c589845f9995c673325f1161c687eb90d68c1) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "db-c-3f.ic13", 0x0400, 0x0117, CRC(7184d421) SHA1(3120ac2ca32e89d2f2abdb278a8c8cfa298aad75) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_LOAD( "db-c-3f-.ic13", 0x0400, 0x0117, CRC(7184d421) SHA1(3120ac2ca32e89d2f2abdb278a8c8cfa298aad75) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_END
|
||||
|
||||
ROM_START( dbreedjm72 )
|
||||
@ -3475,10 +3531,14 @@ ROM_START( dbreedjm72 )
|
||||
ROM_REGION( 0x20000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "db_c-v0.ic44", 0x00000, 0x20000, CRC(312f7282) SHA1(742d56980b4618180e9a0e02051c5aec4d5cdae4) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // Located on M72-A-C CPU/Sound board
|
||||
ROM_LOAD( "m72_a-8l-.ic66", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "m72_a-9l-.ic75", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0600, "pals", 0 )
|
||||
ROM_LOAD( "m72_a-3d-.ic11", 0x0000, 0x0117, CRC(8a3732ff) SHA1(6e3039e7dc424cbef7156312fa1ce67d7b082d30) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m72_a-4d-.ic19", 0x0200, 0x0117, CRC(56c29834) SHA1(a66c589845f9995c673325f1161c687eb90d68c1) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "db-c-3f.ic13", 0x0400, 0x0117, CRC(7184d421) SHA1(3120ac2ca32e89d2f2abdb278a8c8cfa298aad75) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_LOAD( "db-c-3f-.ic13", 0x0400, 0x0117, CRC(7184d421) SHA1(3120ac2ca32e89d2f2abdb278a8c8cfa298aad75) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -3514,6 +3574,15 @@ ROM_START( dkgensanm72 )
|
||||
|
||||
ROM_REGION( 0x20000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "gen-vo.bin", 0x00000, 0x20000, CRC(d8595c66) SHA1(97920c9947fbac609fb901415e5471c6e4ca066c) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // Located on M72-A-C CPU/Sound board
|
||||
ROM_LOAD( "m72_a-8l-.ic66", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "m72_a-9l-.ic75", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0600, "pals", 0 ) // where you see gen=72= actual label reads GEN(72)
|
||||
ROM_LOAD( "m72_a-3d-.ic11", 0x0000, 0x0117, CRC(8a3732ff) SHA1(6e3039e7dc424cbef7156312fa1ce67d7b082d30) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m72_a-4d-.ic19", 0x0200, 0x0117, CRC(56c29834) SHA1(a66c589845f9995c673325f1161c687eb90d68c1) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "gen=m72=c-3f-b.ic13", 0x0400, 0x0117, CRC(028932a4) SHA1(04ec1fc874e7edb646777b301421953b26f49587) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -3550,10 +3619,14 @@ ROM_START( airduelm72 )
|
||||
ROM_REGION( 0x20000, "samples", 0 )
|
||||
ROM_LOAD( "ad-v0.ic44", 0x00000, 0x20000, CRC(339f474d) SHA1(a81bb52598a0e31b2ed6a538755237c5d14d1844) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // Located on M72-A-C CPU/Sound board
|
||||
ROM_LOAD( "m72_a-8l-.ic66", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "m72_a-9l-.ic75", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0600, "pals", 0 )
|
||||
ROM_LOAD( "m72_a-3d-.ic11", 0x0000, 0x0117, CRC(8a3732ff) SHA1(6e3039e7dc424cbef7156312fa1ce67d7b082d30) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m72_a-4d-.ic19", 0x0200, 0x0117, CRC(56c29834) SHA1(a66c589845f9995c673325f1161c687eb90d68c1) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "ad-c-3f.ic13", 0x0400, 0x0117, CRC(9748fa38) SHA1(cc883dd801be03f2559c0dcd77580fe7d9546ed3) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_LOAD( "ad-c-3f-.ic13", 0x0400, 0x0117, CRC(9748fa38) SHA1(cc883dd801be03f2559c0dcd77580fe7d9546ed3) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -3590,14 +3663,18 @@ ROM_START( airdueljm72 )
|
||||
ROM_REGION( 0x20000, "samples", 0 )
|
||||
ROM_LOAD( "ad-v0.ic44", 0x00000, 0x20000, CRC(339f474d) SHA1(a81bb52598a0e31b2ed6a538755237c5d14d1844) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // Located on M72-A-C CPU/Sound board
|
||||
ROM_LOAD( "m72_a-8l-.ic66", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "m72_a-9l-.ic75", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0600, "pals", 0 )
|
||||
ROM_LOAD( "m72_a-3d-.ic11", 0x0000, 0x0117, CRC(8a3732ff) SHA1(6e3039e7dc424cbef7156312fa1ce67d7b082d30) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m72_a-4d-.ic19", 0x0200, 0x0117, CRC(56c29834) SHA1(a66c589845f9995c673325f1161c687eb90d68c1) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "ad-c-3f.ic13", 0x0400, 0x0117, CRC(9748fa38) SHA1(cc883dd801be03f2559c0dcd77580fe7d9546ed3) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_LOAD( "ad-c-3f-.ic13", 0x0400, 0x0117, CRC(9748fa38) SHA1(cc883dd801be03f2559c0dcd77580fe7d9546ed3) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( gallopa )
|
||||
ROM_START( gallopm72 )
|
||||
ROM_REGION( 0x100000, "maincpu", 0 )
|
||||
ROM_LOAD16_BYTE( "cc-c-h0.ic40", 0x00001, 0x20000, CRC(2217dcd0) SHA1(9485b6c3eec99e720439e69dcbe0e55798bbff1c) )
|
||||
ROM_LOAD16_BYTE( "cc-c-l0.ic37", 0x00000, 0x20000, CRC(ff39d7fb) SHA1(fad95f76050fce04464268b5edff6622b2cb798f) )
|
||||
@ -3630,10 +3707,14 @@ ROM_START( gallopa )
|
||||
ROM_REGION( 0x20000, "samples", 0 ) // samples - same data as the cosmccop/gallop sets
|
||||
ROM_LOAD( "cc-c-v0.ic44", 0x00000, 0x20000, CRC(6247bade) SHA1(4bc9f86acd09908c74b1ab0e7817c4ff1cad6f0b) ) // == cc-d-v0.ic14
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // Located on M72-A-C CPU/Sound board
|
||||
ROM_LOAD( "m72_a-8l-.ic66", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "m72_a-9l-.ic75", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0600, "pals", 0 )
|
||||
ROM_LOAD( "m72_a-3d-.ic11", 0x0000, 0x0117, CRC(8a3732ff) SHA1(6e3039e7dc424cbef7156312fa1ce67d7b082d30) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m72_a-4d-.ic19", 0x0200, 0x0117, CRC(56c29834) SHA1(a66c589845f9995c673325f1161c687eb90d68c1) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "cc-c-3f.ic13", 0x0400, 0x0117, CRC(16ca7c50) SHA1(8291bb2fc12c374a970cdb7da6315b32a01cf3b8) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_LOAD( "cc-c-3f-.ic13", 0x0400, 0x0117, CRC(16ca7c50) SHA1(8291bb2fc12c374a970cdb7da6315b32a01cf3b8) ) // PAL16L8 - bruteforced - located on M72-C-A top board
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -3726,10 +3807,10 @@ ROM_START( hharry ) // where you see gen=81= actual label reads GEN(81)
|
||||
ROM_LOAD( "m81_a-9p-.ic74", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0800, "plds", 0 )
|
||||
ROM_LOAD( "m81_b-9h-.ic94", 0x0000, 0x0117, CRC(4bc1d393) SHA1(d9358a409b4568839ee6cea7241e37f557c3d3a9) ) // TIBPAL-16L8-25 - bruteforced - located on M81-B-B daughterboard
|
||||
ROM_LOAD( "m81_a-5l-.ic28", 0x0200, 0x0117, CRC(56c29834) SHA1(a66c589845f9995c673325f1161c687eb90d68c1) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "m81_a-2h-.ic2", 0x0400, 0x0117, CRC(21ede612) SHA1(5d05d3088f3d248db8948da175551ea29d7478b5) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "gen=81=_a-7d-a.ic48", 0x0600, 0x0117, CRC(92fe9eff) SHA1(970f9ed9b2fc3289cded9cde2b68cce2106fae7d) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "m81_b-9h-.ic94", 0x0000, 0x0117, CRC(4bc1d393) SHA1(d9358a409b4568839ee6cea7241e37f557c3d3a9) ) // TIBPAL-16L8-25 - bruteforced - located on M81-B-B daughterboard
|
||||
ROM_LOAD( "m81_a-5l-.ic28", 0x0200, 0x0117, CRC(56c29834) SHA1(a66c589845f9995c673325f1161c687eb90d68c1) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "m81_a-2h-.ic2", 0x0400, 0x0117, CRC(21ede612) SHA1(5d05d3088f3d248db8948da175551ea29d7478b5) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "gen=81=_a-7d-a.ic48", 0x0600, 0x0117, CRC(92fe9eff) SHA1(970f9ed9b2fc3289cded9cde2b68cce2106fae7d) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -3763,6 +3844,10 @@ ROM_START( dbreed )
|
||||
ROM_REGION( 0x20000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "db_a-v0.rom", 0x00000, 0x20000, CRC(312f7282) SHA1(742d56980b4618180e9a0e02051c5aec4d5cdae4) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // proms - located on M81-A-B mainboard
|
||||
ROM_LOAD( "m81_a-9l-.ic72", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "m81_a-9p-.ic74", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0800, "plds", 0 )
|
||||
ROM_LOAD( "m81_b-9h-.ic94", 0x0000, 0x0117, CRC(4bc1d393) SHA1(d9358a409b4568839ee6cea7241e37f557c3d3a9) ) // TIBPAL-16L8-25 - bruteforced - located on M81-B-B daughterboard
|
||||
ROM_LOAD( "m81_a-5l-.ic28", 0x0200, 0x0117, CRC(56c29834) SHA1(a66c589845f9995c673325f1161c687eb90d68c1) ) // TIBPAL-16L8-25 - bruteforced
|
||||
@ -3807,6 +3892,16 @@ ROM_START( majtitle )
|
||||
|
||||
ROM_REGION( 0x20000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "mt_vo.bin", 0x00000, 0x20000, CRC(eb24bb2c) SHA1(9fca04fba0249e8213dd164eb6829e1a5acbee65) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // proms - located on M82-B-B daughterboard
|
||||
ROM_LOAD( "mt_b-6a-.ic37", 0x0000, 0x0100, NO_DUMP ) // TBP24S10
|
||||
ROM_LOAD( "mt_b-7c-.ic47", 0x0100, 0x0100, NO_DUMP ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0800, "plds", 0 )
|
||||
ROM_LOAD( "mt_b-3q-.ic23", 0x0000, 0x0117, CRC(8c864543) SHA1(1167524b72a4d72898dcdc2561a9706f8683c888) ) // TIBPAL-16L8-25 - bruteforced - located on M82-B-B daughterboard
|
||||
ROM_LOAD( "mt_a-2h-.ic5", 0x0200, 0x0117, CRC(21ede612) SHA1(5d05d3088f3d248db8948da175551ea29d7478b5) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "mt_a-5l-.ic31", 0x0400, 0x0117, CRC(e3064bfe) SHA1(c25b0d734be332042f86661d8743008c2a9d3a4e) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "mt_a-7d-.ic43", 0x0600, 0x0117, CRC(d7ec1cc6) SHA1(94afb0098206777d68de5e6122114fdc76618931) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_END
|
||||
|
||||
ROM_START( majtitlej )
|
||||
@ -3841,6 +3936,16 @@ ROM_START( majtitlej )
|
||||
|
||||
ROM_REGION( 0x20000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "mt_vo.bin", 0x00000, 0x20000, CRC(eb24bb2c) SHA1(9fca04fba0249e8213dd164eb6829e1a5acbee65) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // proms - located on M82-B-B daughterboard
|
||||
ROM_LOAD( "mt_b-6a-.ic37", 0x0000, 0x0100, NO_DUMP ) // TBP24S10
|
||||
ROM_LOAD( "mt_b-7c-.ic47", 0x0100, 0x0100, NO_DUMP ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0800, "plds", 0 )
|
||||
ROM_LOAD( "mt_a-2h-.ic5", 0x0000, 0x0117, CRC(21ede612) SHA1(5d05d3088f3d248db8948da175551ea29d7478b5) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "mt_a-5l-.ic31", 0x0200, 0x0117, CRC(e3064bfe) SHA1(c25b0d734be332042f86661d8743008c2a9d3a4e) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "mt_a-7d-.ic43", 0x0400, 0x0117, CRC(d7ec1cc6) SHA1(94afb0098206777d68de5e6122114fdc76618931) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "mt_b-3q-.ic23", 0x0600, 0x0117, CRC(8c864543) SHA1(1167524b72a4d72898dcdc2561a9706f8683c888) ) // TIBPAL-16L8-25 - bruteforced - located on M82-B-B daughterboard
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -3876,6 +3981,11 @@ ROM_START( airduel )
|
||||
|
||||
ROM_REGION( 0x20000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "ad_=m82=_a-v0-d.ic12", 0x00000, 0x20000, CRC(339f474d) SHA1(a81bb52598a0e31b2ed6a538755237c5d14d1844) )
|
||||
|
||||
ROM_REGION( 0x0600, "plds", 0 )
|
||||
ROM_LOAD( "mt_a-2h-.ic5", 0x0000, 0x0117, CRC(21ede612) SHA1(5d05d3088f3d248db8948da175551ea29d7478b5) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "mt_a-5l-.ic31", 0x0200, 0x0117, CRC(e3064bfe) SHA1(c25b0d734be332042f86661d8743008c2a9d3a4e) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "mt_a-7d-.ic43", 0x0400, 0x0117, CRC(d7ec1cc6) SHA1(94afb0098206777d68de5e6122114fdc76618931) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_END
|
||||
|
||||
ROM_START( airduelu )
|
||||
@ -3910,6 +4020,11 @@ ROM_START( airduelu )
|
||||
|
||||
ROM_REGION( 0x20000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "r10-voice.ic12", 0x00000, 0x20000, CRC(339f474d) SHA1(a81bb52598a0e31b2ed6a538755237c5d14d1844) )
|
||||
|
||||
ROM_REGION( 0x0600, "plds", 0 )
|
||||
ROM_LOAD( "mt_a-2h-.ic5", 0x0000, 0x0117, CRC(21ede612) SHA1(5d05d3088f3d248db8948da175551ea29d7478b5) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "mt_a-5l-.ic31", 0x0200, 0x0117, CRC(e3064bfe) SHA1(c25b0d734be332042f86661d8743008c2a9d3a4e) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "mt_a-7d-.ic43", 0x0400, 0x0117, CRC(d7ec1cc6) SHA1(94afb0098206777d68de5e6122114fdc76618931) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -4014,6 +4129,12 @@ ROM_START( dkgensanm82 )
|
||||
|
||||
ROM_REGION( 0x20000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "gen_=m84=_a-v0-d.ic12", 0x00000, 0x20000, CRC(d8595c66) SHA1(97920c9947fbac609fb901415e5471c6e4ca066c) )
|
||||
|
||||
ROM_REGION( 0x0800, "plds", 0 )
|
||||
ROM_LOAD( "mt_a-2h-.ic5", 0x0000, 0x0117, CRC(21ede612) SHA1(5d05d3088f3d248db8948da175551ea29d7478b5) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "mt_a-5l-.ic31", 0x0200, 0x0117, CRC(e3064bfe) SHA1(c25b0d734be332042f86661d8743008c2a9d3a4e) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "gen=m84=a-7d-d.ic43", 0x0400, 0x0117, CRC(a3ee35fe) SHA1(c6d448c245d7c7dde981c970ce70f7d0f43723ed) ) // TIBPAL-16L8-25 labeled GEN(M84)-A-7D-D - bruteforced
|
||||
ROM_LOAD( "gen=m72=c-3f-b.ic23", 0x0600, 0x0117, CRC(028932a4) SHA1(04ec1fc874e7edb646777b301421953b26f49587) ) // TIBPAL-16L8-25 labeled GEN(M72)-C-3F-B - bruteforced - located on M82-B-B daughterboard
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -4053,8 +4174,8 @@ ROM_START( rtype2 )
|
||||
ROM_LOAD( "rt2_a-vo.ic14", 0x00000, 0x20000, CRC(637172d5) SHA1(9dd0dc409306287238826bf301e2a7a12d6cd9ce) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // located on M84-B-A daughterboard
|
||||
ROM_LOAD( "rt2_b-4n-.bin", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) )
|
||||
ROM_LOAD( "rt2_b-4p-.bin", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) )
|
||||
ROM_LOAD( "rt2_b-4n-.bin", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "rt2_b-4p-.bin", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0800, "plds", 0 )
|
||||
ROM_LOAD( "rt2-a-2h-.5", 0x0000, 0x0117, CRC(21ede612) SHA1(5d05d3088f3d248db8948da175551ea29d7478b5) ) // TIBPAL-16L8-25 - bruteforced
|
||||
@ -4095,8 +4216,8 @@ ROM_START( rtype2j )
|
||||
ROM_LOAD( "rt2_a-vo.ic14", 0x00000, 0x20000, CRC(637172d5) SHA1(9dd0dc409306287238826bf301e2a7a12d6cd9ce) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // located on M84-B-A daughterboard
|
||||
ROM_LOAD( "rt2_b-4n-.bin", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) )
|
||||
ROM_LOAD( "rt2_b-4p-.bin", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) )
|
||||
ROM_LOAD( "rt2_b-4n-.bin", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "rt2_b-4p-.bin", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0800, "plds", 0 )
|
||||
ROM_LOAD( "rt2-a-2h-.5", 0x0000, 0x0117, CRC(21ede612) SHA1(5d05d3088f3d248db8948da175551ea29d7478b5) ) // TIBPAL-16L8-25 - bruteforced
|
||||
@ -4137,8 +4258,8 @@ ROM_START( rtype2jc )
|
||||
ROM_LOAD( "rt2_a-vo.ic14", 0x00000, 0x20000, CRC(637172d5) SHA1(9dd0dc409306287238826bf301e2a7a12d6cd9ce) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // located on M84-B-A daughterboard
|
||||
ROM_LOAD( "rt2_b-4n-.bin", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) )
|
||||
ROM_LOAD( "rt2_b-4p-.bin", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) )
|
||||
ROM_LOAD( "rt2_b-4n-.bin", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "rt2_b-4p-.bin", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0800, "plds", 0 )
|
||||
ROM_LOAD( "rt2-a-2h-.5", 0x0000, 0x0117, CRC(21ede612) SHA1(5d05d3088f3d248db8948da175551ea29d7478b5) ) // TIBPAL-16L8-25 - bruteforced
|
||||
@ -4175,15 +4296,15 @@ ROM_START( hharryu ) // where you see gen=84= actual label reads GEN(84)
|
||||
ROM_REGION( 0x20000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "gen=84=_a-v0-f.ic17", 0x00000, 0x20000, CRC(faaacaff) SHA1(ea3a3920255c07aa9c0a7e0191eae257a9f7f558) )
|
||||
|
||||
ROM_REGION( 0x200, "proms", 0 ) // located on M84-C-A top board - NOT dumped from PCB, taken from bootleg
|
||||
ROM_LOAD( "gen=84=_c-4n-.ic21", 0x0000, 0x0100, BAD_DUMP CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "gen=84=_c-4p-.ic22", 0x0100, 0x0100, BAD_DUMP CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
ROM_REGION( 0x200, "proms", 0 ) // located on M84-C-A top board
|
||||
ROM_LOAD( "gen=84=_c-4n-.ic21", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "gen=84=_c-4p-.ic22", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0800, "plds", 0 )
|
||||
ROM_LOAD( "gen=84=_c-3a.ic8", 0x0000, 0x0117, CRC(c1e19913) SHA1(7292ea25df818fe25e00dc4f37b3338abf2caaa2) ) // TIBPAL-16L8-25 - bruteforced - located on M84-C-A top board
|
||||
ROM_LOAD( "gen=84=_a-7d.ic45", 0x0200, 0x0117, CRC(79ef86f2) SHA1(69d3ead62e2c70f5831ec6915920da356c922dfb) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "gen=84=_a-5l.ic33", 0x0400, 0x0117, CRC(579e257d) SHA1(bea2da60dc068fe16f469695f66786fe5406a823) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "gen=84=_a-2h.ic5", 0x0600, 0x0117, CRC(21ede612) SHA1(5d05d3088f3d248db8948da175551ea29d7478b5) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "m84-a-2h.ic5", 0x0000, 0x0117, CRC(21ede612) SHA1(5d05d3088f3d248db8948da175551ea29d7478b5) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "gen=84=_a-5l.ic33", 0x0200, 0x0117, CRC(579e257d) SHA1(bea2da60dc068fe16f469695f66786fe5406a823) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "gen=84=_a-7d.ic45", 0x0400, 0x0117, CRC(79ef86f2) SHA1(69d3ead62e2c70f5831ec6915920da356c922dfb) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "m84-c-3a.ic8", 0x0600, 0x0117, CRC(c1e19913) SHA1(7292ea25df818fe25e00dc4f37b3338abf2caaa2) ) // TIBPAL-16L8-25 - bruteforced - located on M84-C-A top board
|
||||
ROM_END
|
||||
|
||||
ROM_START( dkgensan ) // where you see gen=84= actual label reads GEN(84)
|
||||
@ -4213,9 +4334,15 @@ ROM_START( dkgensan ) // where you see gen=84= actual label reads GEN(84)
|
||||
ROM_REGION( 0x20000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "gen-vo.bin", 0x00000, 0x20000, CRC(d8595c66) SHA1(97920c9947fbac609fb901415e5471c6e4ca066c) )
|
||||
|
||||
ROM_REGION( 0x200, "proms", 0 ) // located on M84-C-A top board - NOT dumped from PCB, taken from bootleg
|
||||
ROM_LOAD( "gen=84=_c-4n-.ic21", 0x0000, 0x0100, BAD_DUMP CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "gen=84=_c-4p-.ic22", 0x0100, 0x0100, BAD_DUMP CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
ROM_REGION( 0x200, "proms", 0 ) // located on M84-C-A top board
|
||||
ROM_LOAD( "gen=84=_c-4n-.ic21", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) ) // TBP24S10
|
||||
ROM_LOAD( "gen=84=_c-4p-.ic22", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0800, "plds", 0 )
|
||||
ROM_LOAD( "m84-a-2h.ic5", 0x0000, 0x0117, CRC(21ede612) SHA1(5d05d3088f3d248db8948da175551ea29d7478b5) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "gen=84=_a-5l.ic33", 0x0200, 0x0117, CRC(579e257d) SHA1(bea2da60dc068fe16f469695f66786fe5406a823) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "gen=84=_a-7d.ic45", 0x0400, 0x0117, CRC(79ef86f2) SHA1(69d3ead62e2c70f5831ec6915920da356c922dfb) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "m84-c-3a.ic8", 0x0600, 0x0117, CRC(c1e19913) SHA1(7292ea25df818fe25e00dc4f37b3338abf2caaa2) ) // TIBPAL-16L8-25 - bruteforced - located on M84-C-A top board
|
||||
ROM_END
|
||||
|
||||
ROM_START( hharryb )
|
||||
@ -4284,10 +4411,10 @@ ROM_START( cosmccop )
|
||||
ROM_LOAD( "ken_b-4p-.ic24", 0x0100, 0x0100, CRC(526f10ca) SHA1(e0ecd4db0720a4a37489e4d725843a2fbf266ebf) ) // TBP24S10N
|
||||
|
||||
ROM_REGION( 0x0800, "plds", 0 )
|
||||
ROM_LOAD( "ken_d-2h-.ic5", 0x0000, 0x0117, NO_DUMP ) // TIBPAL-16L8-25
|
||||
ROM_LOAD( "ken_d-5l-.ic33", 0x0200, 0x0117, NO_DUMP ) // TIBPAL-16L8-25
|
||||
ROM_LOAD( "cc_d-7b-.ic45", 0x0600, 0x0117, CRC(75ff4517) SHA1(87ea8f44eaa7e317a066484b3cb5f20de1d80844) ) // TIBPAL-16L8-25
|
||||
ROM_LOAD( "ken_b-3a-.ic9", 0x0600, 0x0117, NO_DUMP ) // TIBPAL-16L8-25 - located on M84-B-B top board
|
||||
ROM_LOAD( "ken_d-2h-.ic5", 0x0000, 0x0117, CRC(a83807e9) SHA1(3875d9881789756870721cab41a198c5af67a446) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "ken_d-5l-.ic33", 0x0200, 0x0117, CRC(c719b8a3) SHA1(dba75220c002ca4c75c578ed6c8c56dcfbb781ca) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "cc_d-7b-.ic45", 0x0400, 0x0117, CRC(75ff4517) SHA1(87ea8f44eaa7e317a066484b3cb5f20de1d80844) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "ken_b-3a-.ic9", 0x0600, 0x0117, CRC(ad1a7942) SHA1(72c699de17e3d65081a5951581af90aadb4ba65b) ) // TIBPAL-16L8-25 - bruteforced - located on M84-B-B top board
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -4321,10 +4448,10 @@ ROM_START( gallop )
|
||||
ROM_LOAD( "ken_b-4p-.ic24", 0x0100, 0x0100, CRC(526f10ca) SHA1(e0ecd4db0720a4a37489e4d725843a2fbf266ebf) ) // TBP24S10N
|
||||
|
||||
ROM_REGION( 0x0800, "plds", 0 )
|
||||
ROM_LOAD( "ken_d-2h-.ic5", 0x0000, 0x0117, NO_DUMP ) // TIBPAL-16L8-25
|
||||
ROM_LOAD( "ken_d-5l-.ic33", 0x0200, 0x0117, NO_DUMP ) // TIBPAL-16L8-25
|
||||
ROM_LOAD( "cc_d-7b-.ic45", 0x0600, 0x0117, CRC(75ff4517) SHA1(87ea8f44eaa7e317a066484b3cb5f20de1d80844) ) // TIBPAL-16L8-25
|
||||
ROM_LOAD( "ken_b-3a-.ic9", 0x0600, 0x0117, NO_DUMP ) // TIBPAL-16L8-25 - located on M84-B-B top board
|
||||
ROM_LOAD( "ken_d-2h-.ic5", 0x0000, 0x0117, CRC(a83807e9) SHA1(3875d9881789756870721cab41a198c5af67a446) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "ken_d-5l-.ic33", 0x0200, 0x0117, CRC(c719b8a3) SHA1(dba75220c002ca4c75c578ed6c8c56dcfbb781ca) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "cc_d-7b-.ic45", 0x0400, 0x0117, CRC(75ff4517) SHA1(87ea8f44eaa7e317a066484b3cb5f20de1d80844) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "ken_b-3a-.ic9", 0x0600, 0x0117, CRC(ad1a7942) SHA1(72c699de17e3d65081a5951581af90aadb4ba65b) ) // TIBPAL-16L8-25 - bruteforced - located on M84-B-B top board
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -4358,10 +4485,10 @@ ROM_START( ltswords )
|
||||
ROM_LOAD( "ken_b-4p-.ic24", 0x0100, 0x0100, CRC(526f10ca) SHA1(e0ecd4db0720a4a37489e4d725843a2fbf266ebf) ) // TBP24S10N
|
||||
|
||||
ROM_REGION( 0x0800, "plds", 0 )
|
||||
ROM_LOAD( "ken_d-2h-.ic5", 0x0000, 0x0117, NO_DUMP ) // TIBPAL-16L8-25
|
||||
ROM_LOAD( "ken_d-5l-.ic33", 0x0200, 0x0117, NO_DUMP ) // TIBPAL-16L8-25
|
||||
ROM_LOAD( "ken_d-7b-.ic45", 0x0600, 0x0117, NO_DUMP ) // TIBPAL-16L8-25
|
||||
ROM_LOAD( "ken_b-3a-.ic9", 0x0600, 0x0117, NO_DUMP ) // TIBPAL-16L8-25 - located on M84-B-B top board
|
||||
ROM_LOAD( "ken_d-2h-.ic5", 0x0000, 0x0117, CRC(a83807e9) SHA1(3875d9881789756870721cab41a198c5af67a446) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "ken_d-5l-.ic33", 0x0200, 0x0117, CRC(c719b8a3) SHA1(dba75220c002ca4c75c578ed6c8c56dcfbb781ca) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "ken_d-7b-.ic45", 0x0400, 0x0117, CRC(b0558dc5) SHA1(e95d9a8ddc49f99062439803c3359fca6fecf703) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "ken_b-3a-.ic9", 0x0600, 0x0117, CRC(ad1a7942) SHA1(72c699de17e3d65081a5951581af90aadb4ba65b) ) // TIBPAL-16L8-25 - bruteforced - located on M84-B-B top board
|
||||
ROM_END
|
||||
|
||||
ROM_START( kengo )
|
||||
@ -4394,10 +4521,10 @@ ROM_START( kengo )
|
||||
ROM_LOAD( "ken_b-4p-.ic24", 0x0100, 0x0100, CRC(526f10ca) SHA1(e0ecd4db0720a4a37489e4d725843a2fbf266ebf) ) // TBP24S10N
|
||||
|
||||
ROM_REGION( 0x0800, "plds", 0 )
|
||||
ROM_LOAD( "ken_d-2h-.ic5", 0x0000, 0x0117, NO_DUMP ) // TIBPAL-16L8-25
|
||||
ROM_LOAD( "ken_d-5l-.ic33", 0x0200, 0x0117, NO_DUMP ) // TIBPAL-16L8-25
|
||||
ROM_LOAD( "ken_d-7b-.ic45", 0x0600, 0x0117, NO_DUMP ) // TIBPAL-16L8-25
|
||||
ROM_LOAD( "ken_b-3a-.ic9", 0x0600, 0x0117, NO_DUMP ) // TIBPAL-16L8-25 - located on M84-B-B top board
|
||||
ROM_LOAD( "ken_d-2h-.ic5", 0x0000, 0x0117, CRC(a83807e9) SHA1(3875d9881789756870721cab41a198c5af67a446) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "ken_d-5l-.ic33", 0x0200, 0x0117, CRC(c719b8a3) SHA1(dba75220c002ca4c75c578ed6c8c56dcfbb781ca) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "ken_d-7b-.ic45", 0x0400, 0x0117, CRC(b0558dc5) SHA1(e95d9a8ddc49f99062439803c3359fca6fecf703) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "ken_b-3a-.ic9", 0x0600, 0x0117, CRC(ad1a7942) SHA1(72c699de17e3d65081a5951581af90aadb4ba65b) ) // TIBPAL-16L8-25 - bruteforced - located on M84-B-B top board
|
||||
ROM_END
|
||||
|
||||
ROM_START( kengoa )
|
||||
@ -4430,10 +4557,10 @@ ROM_START( kengoa )
|
||||
ROM_LOAD( "ken_b-4p-.ic24", 0x0100, 0x0100, CRC(526f10ca) SHA1(e0ecd4db0720a4a37489e4d725843a2fbf266ebf) ) // TBP24S10N
|
||||
|
||||
ROM_REGION( 0x0800, "plds", 0 )
|
||||
ROM_LOAD( "ken_d-2h-.ic5", 0x0000, 0x0117, NO_DUMP ) // TIBPAL-16L8-25
|
||||
ROM_LOAD( "ken_d-5l-.ic33", 0x0200, 0x0117, NO_DUMP ) // TIBPAL-16L8-25
|
||||
ROM_LOAD( "ken_d-7b-.ic45", 0x0600, 0x0117, NO_DUMP ) // TIBPAL-16L8-25
|
||||
ROM_LOAD( "ken_b-3a-.ic9", 0x0600, 0x0117, NO_DUMP ) // TIBPAL-16L8-25 - located on M84-B-B top board
|
||||
ROM_LOAD( "ken_d-2h-.ic5", 0x0000, 0x0117, CRC(a83807e9) SHA1(3875d9881789756870721cab41a198c5af67a446) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "ken_d-5l-.ic33", 0x0200, 0x0117, CRC(c719b8a3) SHA1(dba75220c002ca4c75c578ed6c8c56dcfbb781ca) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "ken_d-7b-.ic45", 0x0400, 0x0117, CRC(b0558dc5) SHA1(e95d9a8ddc49f99062439803c3359fca6fecf703) ) // TIBPAL-16L8-25 - bruteforced
|
||||
ROM_LOAD( "ken_b-3a-.ic9", 0x0600, 0x0117, CRC(ad1a7942) SHA1(72c699de17e3d65081a5951581af90aadb4ba65b) ) // TIBPAL-16L8-25 - bruteforced - located on M84-B-B top board
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -4467,6 +4594,15 @@ ROM_START( poundfor )
|
||||
|
||||
ROM_REGION( 0x40000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "ppa-v0.bin", 0x00000, 0x40000, CRC(03321664) SHA1(51f2b2b712385c1cd55fd069829efac01838d603) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // proms - located on M85-B daughterboard
|
||||
ROM_LOAD( "m85_b-1f-.ic5", 0x0000, 0x0100, NO_DUMP ) // TBP24S10
|
||||
ROM_LOAD( "m85_b-3f-.ic12", 0x0100, 0x0100, NO_DUMP ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0600, "pals", 0 )
|
||||
ROM_LOAD( "m85_a-5h-.5h", 0x0000, 0x0117, CRC(a7ce2e57) SHA1(7af157d0ffb3001c3066d4abb1e3f731744243cb) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m85_a-6j-.6j", 0x0200, 0x0117, CRC(733ed0f9) SHA1(863055a2b13825a900095b18aad3829faef0f79e) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m85_b-1a-.ic1", 0x0400, 0x0117, CRC(3cf26744) SHA1(b367e142b24695aa42d2a6634d66072aad925614) ) // PAL16L8 - bruteforced - located on M85-B daughterboard
|
||||
ROM_END
|
||||
|
||||
ROM_START( poundforj )
|
||||
@ -4495,6 +4631,15 @@ ROM_START( poundforj )
|
||||
|
||||
ROM_REGION( 0x40000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "ppa-v0.bin", 0x00000, 0x40000, CRC(03321664) SHA1(51f2b2b712385c1cd55fd069829efac01838d603) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // proms - located on M85-B daughterboard
|
||||
ROM_LOAD( "m85_b-1f-.ic5", 0x0000, 0x0100, NO_DUMP ) // TBP24S10
|
||||
ROM_LOAD( "m85_b-3f-.ic12", 0x0100, 0x0100, NO_DUMP ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0600, "pals", 0 )
|
||||
ROM_LOAD( "m85_a-5h-.5h", 0x0000, 0x0117, CRC(a7ce2e57) SHA1(7af157d0ffb3001c3066d4abb1e3f731744243cb) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m85_a-6j-.6j", 0x0200, 0x0117, CRC(733ed0f9) SHA1(863055a2b13825a900095b18aad3829faef0f79e) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m85_b-1a-.ic1", 0x0400, 0x0117, CRC(3cf26744) SHA1(b367e142b24695aa42d2a6634d66072aad925614) ) // PAL16L8 - bruteforced - located on M85-B daughterboard
|
||||
ROM_END
|
||||
|
||||
ROM_START( poundforu )
|
||||
@ -4523,6 +4668,15 @@ ROM_START( poundforu )
|
||||
|
||||
ROM_REGION( 0x40000, "samples", 0 ) // samples
|
||||
ROM_LOAD( "ppa-v0.bin", 0x00000, 0x40000, CRC(03321664) SHA1(51f2b2b712385c1cd55fd069829efac01838d603) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) // proms - located on M85-B daughterboard
|
||||
ROM_LOAD( "m85_b-1f-.ic5", 0x0000, 0x0100, NO_DUMP ) // TBP24S10
|
||||
ROM_LOAD( "m85_b-3f-.ic12", 0x0100, 0x0100, NO_DUMP ) // TBP24S10
|
||||
|
||||
ROM_REGION( 0x0600, "pals", 0 )
|
||||
ROM_LOAD( "m85_a-5h-.5h", 0x0000, 0x0117, CRC(a7ce2e57) SHA1(7af157d0ffb3001c3066d4abb1e3f731744243cb) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m85_a-6j-.6j", 0x0200, 0x0117, CRC(733ed0f9) SHA1(863055a2b13825a900095b18aad3829faef0f79e) ) // PAL16L8 - bruteforced
|
||||
ROM_LOAD( "m85_b-1a-.ic1", 0x0400, 0x0117, CRC(3cf26744) SHA1(b367e142b24695aa42d2a6634d66072aad925614) ) // PAL16L8 - bruteforced - located on M85-B daughterboard
|
||||
ROM_END
|
||||
|
||||
// For i8751 protected games, each region uses unique internal MCU code. The MCU code provides checksum information
|
||||
@ -4556,7 +4710,7 @@ GAME( 1989, xmultiplm72, xmultipl, m72_xmultipl, xmultipl, m72_state, init_m
|
||||
GAME( 1989, dbreedm72, dbreed, m72_dbreedw, dbreed, m72_state, init_dbreedm72, ROT0, "Irem", "Dragon Breed (World, M72 hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // missing i8751 MCU code
|
||||
GAME( 1989, dbreedjm72, dbreed, m72_dbreed, dbreed, m72_state, init_m72_8751, ROT0, "Irem", "Dragon Breed (Japan, M72 hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1991, gallopa, cosmccop, m72, gallop, m72_state, init_gallop, ROT0, "Irem", "Gallop - Armed Police Unit (Japan, M72 hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // missing i8751 MCU code
|
||||
GAME( 1991, gallopm72, cosmccop, m72, gallop, m72_state, init_gallop, ROT0, "Irem", "Gallop - Armed Police Unit (Japan, M72 hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // missing i8751 MCU code
|
||||
|
||||
GAME( 1990, airduelm72, airduel, m72_airduel, airduel, m72_state, init_m72_8751, ROT270, "Irem", "Air Duel (World, M72 hardware)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1990, airdueljm72, airduel, m72_airduel, airduel, m72_state, init_m72_8751, ROT270, "Irem", "Air Duel (Japan, M72 hardware)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -20758,7 +20758,7 @@ dkgensan // (c) 1990 (Japan)
|
||||
dkgensanm72 // (c) 1990 (Japan)
|
||||
dkgensanm82 // (c) 1990 (Japan)
|
||||
gallop // (c) 1991 (Japan)
|
||||
gallopa // (c) 1991 (Japan)
|
||||
gallopm72 // (c) 1991 (Japan)
|
||||
hharry // (c) 1990 (World)
|
||||
hharryu // (c) 1990 Irem America (US)
|
||||
hharryb // bootleg
|
||||
|
@ -1,5 +1,6 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Uki
|
||||
// copyright-holders: Uki
|
||||
|
||||
/*****************************************************************************
|
||||
|
||||
Quiz DNA no Hanran (c) 1992 Face
|
||||
@ -11,24 +12,266 @@ Quiz Gekiretsu Scramble (Gakuen Paradise 2) (c) 1993 Face
|
||||
*****************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "quizdna.h"
|
||||
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "sound/okim6295.h"
|
||||
#include "sound/ymopn.h"
|
||||
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
#include "tilemap.h"
|
||||
|
||||
#define MCLK 16000000
|
||||
|
||||
namespace {
|
||||
|
||||
class quizdna_state : public driver_device
|
||||
{
|
||||
public:
|
||||
quizdna_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette"),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_generic_paletteram_8(*this, "paletteram"),
|
||||
m_banked_ram(*this, "banked_ram", 0x4000, ENDIANNESS_LITTLE),
|
||||
m_fgctrl_rom(*this, "fgctrl"),
|
||||
m_mainbank(*this, "mainbank")
|
||||
{ }
|
||||
|
||||
void gakupara(machine_config &config);
|
||||
void quizdna(machine_config &config);
|
||||
void gekiretu(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
required_shared_ptr<uint8_t> m_spriteram;
|
||||
required_shared_ptr<uint8_t> m_generic_paletteram_8;
|
||||
memory_share_creator<uint8_t> m_banked_ram;
|
||||
required_region_ptr<uint8_t> m_fgctrl_rom;
|
||||
required_memory_bank m_mainbank;
|
||||
|
||||
tilemap_t *m_bg_tilemap = nullptr;
|
||||
tilemap_t *m_fg_tilemap = nullptr;
|
||||
uint8_t m_bg_xscroll[2];
|
||||
int8_t m_flipscreen = 0;
|
||||
uint8_t m_video_enable = 0;
|
||||
|
||||
// common
|
||||
void bg_ram_w(offs_t offset, uint8_t data);
|
||||
void fg_ram_w(offs_t offset, uint8_t data);
|
||||
void bg_yscroll_w(uint8_t data);
|
||||
void bg_xscroll_w(offs_t offset, uint8_t data);
|
||||
void screen_ctrl_w(uint8_t data);
|
||||
void paletteram_xBGR_RRRR_GGGG_BBBB_w(offs_t offset, uint8_t data);
|
||||
void rombank_w(uint8_t data);
|
||||
|
||||
// game specific
|
||||
void gekiretu_rombank_w(uint8_t data);
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void gakupara_io_map(address_map &map);
|
||||
void gekiretu_io_map(address_map &map);
|
||||
void gekiretu_map(address_map &map);
|
||||
void quizdna_io_map(address_map &map);
|
||||
void quizdna_map(address_map &map);
|
||||
};
|
||||
|
||||
|
||||
// video
|
||||
|
||||
TILE_GET_INFO_MEMBER(quizdna_state::get_bg_tile_info)
|
||||
{
|
||||
int code = m_banked_ram[0x2000 + tile_index * 2] + m_banked_ram[0x2000 + tile_index * 2 + 1] * 0x100;
|
||||
int const col = m_banked_ram[0x2000 + tile_index * 2 + 0x1000] & 0x7f;
|
||||
|
||||
if (code > 0x7fff)
|
||||
code &= 0x83ff;
|
||||
|
||||
tileinfo.set(1, code, col, 0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(quizdna_state::get_fg_tile_info)
|
||||
{
|
||||
int const x = tile_index & 0x1f;
|
||||
int y = m_fgctrl_rom[(tile_index >> 5) & 0x1f] & 0x3f;
|
||||
int code = y & 1;
|
||||
|
||||
y >>= 1;
|
||||
|
||||
int col = m_banked_ram[x * 2 + y * 0x40 + 1];
|
||||
code += (m_banked_ram[x * 2 + y * 0x40] + (col & 0x1f) * 0x100) * 2;
|
||||
col >>= 5;
|
||||
col = (col & 3) | ((col & 4) << 1);
|
||||
|
||||
tileinfo.set(0, code, col, 0);
|
||||
}
|
||||
|
||||
|
||||
void quizdna_state::video_start()
|
||||
{
|
||||
m_flipscreen = -1;
|
||||
m_video_enable = 0;
|
||||
m_bg_xscroll[0] = 0;
|
||||
m_bg_xscroll[1] = 0;
|
||||
|
||||
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizdna_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
|
||||
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizdna_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
|
||||
|
||||
m_fg_tilemap->set_transparent_pen(0);
|
||||
|
||||
save_item(NAME(m_bg_xscroll));
|
||||
save_item(NAME(m_flipscreen));
|
||||
save_item(NAME(m_video_enable));
|
||||
}
|
||||
|
||||
void quizdna_state::bg_ram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_banked_ram[offset + 0x2000] = data;
|
||||
|
||||
m_bg_tilemap->mark_tile_dirty((offset & 0xfff) / 2);
|
||||
}
|
||||
|
||||
void quizdna_state::fg_ram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
int const offs = offset & 0xfff;
|
||||
|
||||
m_banked_ram[offs] = data;
|
||||
m_banked_ram[offs + 0x1000] = data; // mirror
|
||||
|
||||
for (int i = 0; i < 32; i++)
|
||||
m_fg_tilemap->mark_tile_dirty(((offs/2) & 0x1f) + i * 0x20);
|
||||
}
|
||||
|
||||
void quizdna_state::bg_yscroll_w(uint8_t data)
|
||||
{
|
||||
m_bg_tilemap->set_scrolldy(255 - data, 255 - data + 1);
|
||||
}
|
||||
|
||||
void quizdna_state::bg_xscroll_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_bg_xscroll[offset] = data;
|
||||
int const x = ~(m_bg_xscroll[0] + m_bg_xscroll[1] * 0x100) & 0x1ff;
|
||||
|
||||
m_bg_tilemap->set_scrolldx(x + 64, x - 64 + 10);
|
||||
}
|
||||
|
||||
void quizdna_state::screen_ctrl_w(uint8_t data)
|
||||
{
|
||||
int const tmp = (data & 0x10) >> 4;
|
||||
m_video_enable = data & 0x20;
|
||||
|
||||
machine().bookkeeping().coin_counter_w(0, data & 1);
|
||||
|
||||
if (m_flipscreen == tmp)
|
||||
return;
|
||||
|
||||
m_flipscreen = tmp;
|
||||
|
||||
flip_screen_set(tmp);
|
||||
m_fg_tilemap->set_scrolldx(64, -64 +16);
|
||||
}
|
||||
|
||||
void quizdna_state::paletteram_xBGR_RRRR_GGGG_BBBB_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
int const offs = offset & ~1;
|
||||
|
||||
m_generic_paletteram_8[offset] = data;
|
||||
|
||||
int const d0 = m_generic_paletteram_8[offs];
|
||||
int const d1 = m_generic_paletteram_8[offs+1];
|
||||
|
||||
int const r = ((d1 << 1) & 0x1e) | ((d1 >> 4) & 1);
|
||||
int const g = ((d0 >> 3) & 0x1e) | ((d1 >> 5) & 1);
|
||||
int const b = ((d0 << 1) & 0x1e) | ((d1 >> 6) & 1);
|
||||
|
||||
m_palette->set_pen_color(offs / 2, pal5bit(r), pal5bit(g), pal5bit(b));
|
||||
}
|
||||
|
||||
void quizdna_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
for (int offs = 0; offs < m_spriteram.bytes(); offs += 8)
|
||||
{
|
||||
int x = m_spriteram[offs + 3] * 0x100 + m_spriteram[offs + 2] + 64 - 8;
|
||||
int y = (m_spriteram[offs + 1] & 1) * 0x100 + m_spriteram[offs + 0];
|
||||
int code = (m_spriteram[offs + 5] * 0x100 + m_spriteram[offs + 4]) & 0x3fff;
|
||||
int col = m_spriteram[offs + 6];
|
||||
int const fx = col & 0x80;
|
||||
int const fy = col & 0x40;
|
||||
int const ysize = (m_spriteram[offs + 1] & 0xc0) >> 6;
|
||||
int dy = 0x10;
|
||||
col &= 0x1f;
|
||||
|
||||
if (m_flipscreen)
|
||||
{
|
||||
x -= 7;
|
||||
y += 1;
|
||||
}
|
||||
|
||||
x &= 0x1ff;
|
||||
if (x > 0x1f0)
|
||||
x -= 0x200;
|
||||
|
||||
if (fy)
|
||||
{
|
||||
dy = -0x10;
|
||||
y += 0x10 * ysize;
|
||||
}
|
||||
|
||||
if (code >= 0x2100)
|
||||
code &= 0x20ff;
|
||||
|
||||
for (int i = 0; i < ysize + 1; i++)
|
||||
{
|
||||
y &= 0x1ff;
|
||||
|
||||
m_gfxdecode->gfx(2)->transpen(bitmap, cliprect,
|
||||
code ^ i,
|
||||
col,
|
||||
fx, fy,
|
||||
x, y, 0);
|
||||
|
||||
y += dy;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t quizdna_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
if (m_video_enable)
|
||||
{
|
||||
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
draw_sprites(bitmap, cliprect);
|
||||
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
}
|
||||
else
|
||||
bitmap.fill(m_palette->black_pen(), cliprect);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// machine
|
||||
|
||||
void quizdna_state::rombank_w(uint8_t data)
|
||||
{
|
||||
membank("mainbank")->set_entry(data & 0x3f);
|
||||
m_mainbank->set_entry(data & 0x3f);
|
||||
}
|
||||
|
||||
void quizdna_state::gekiretu_rombank_w(uint8_t data)
|
||||
{
|
||||
membank("mainbank")->set_entry((data & 0x3f) ^ 0x0a);
|
||||
m_mainbank->set_entry((data & 0x3f) ^ 0x0a);
|
||||
}
|
||||
|
||||
/****************************************************************************/
|
||||
@ -36,11 +279,11 @@ void quizdna_state::gekiretu_rombank_w(uint8_t data)
|
||||
void quizdna_state::quizdna_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x7fff).rom();
|
||||
map(0x8000, 0xbfff).bankr("mainbank");
|
||||
map(0x8000, 0xbfff).bankr(m_mainbank);
|
||||
map(0x8000, 0x9fff).w(FUNC(quizdna_state::fg_ram_w));
|
||||
map(0xa000, 0xbfff).w(FUNC(quizdna_state::bg_ram_w));
|
||||
map(0xc000, 0xdfff).ram();
|
||||
map(0xe000, 0xe1ff).ram().share("spriteram");
|
||||
map(0xe000, 0xe1ff).ram().share(m_spriteram);
|
||||
map(0xe200, 0xefff).ram();
|
||||
map(0xf000, 0xffff).ram().w(FUNC(quizdna_state::paletteram_xBGR_RRRR_GGGG_BBBB_w)).share("paletteram");
|
||||
}
|
||||
@ -48,12 +291,12 @@ void quizdna_state::quizdna_map(address_map &map)
|
||||
void quizdna_state::gekiretu_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x7fff).rom();
|
||||
map(0x8000, 0xbfff).bankr("mainbank");
|
||||
map(0x8000, 0xbfff).bankr(m_mainbank);
|
||||
map(0x8000, 0x9fff).w(FUNC(quizdna_state::fg_ram_w));
|
||||
map(0xa000, 0xbfff).w(FUNC(quizdna_state::bg_ram_w));
|
||||
map(0xc000, 0xdfff).ram();
|
||||
map(0xe000, 0xefff).ram().w(FUNC(quizdna_state::paletteram_xBGR_RRRR_GGGG_BBBB_w)).share("paletteram");
|
||||
map(0xf000, 0xf1ff).ram().share("spriteram");
|
||||
map(0xf000, 0xf1ff).ram().share(m_spriteram);
|
||||
map(0xf200, 0xffff).ram();
|
||||
}
|
||||
|
||||
@ -62,7 +305,7 @@ void quizdna_state::quizdna_io_map(address_map &map)
|
||||
map.global_mask(0xff);
|
||||
map(0x02, 0x03).w(FUNC(quizdna_state::bg_xscroll_w));
|
||||
map(0x04, 0x04).w(FUNC(quizdna_state::bg_yscroll_w));
|
||||
map(0x05, 0x06).nopw(); /* unknown */
|
||||
map(0x05, 0x06).nopw(); // unknown
|
||||
map(0x80, 0x80).portr("P1");
|
||||
map(0x81, 0x81).portr("P2");
|
||||
map(0x90, 0x90).portr("SYSTEM");
|
||||
@ -78,7 +321,7 @@ void quizdna_state::gakupara_io_map(address_map &map)
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x01).w(FUNC(quizdna_state::bg_xscroll_w));
|
||||
map(0x02, 0x02).w(FUNC(quizdna_state::bg_yscroll_w));
|
||||
map(0x03, 0x04).nopw(); /* unknown */
|
||||
map(0x03, 0x04).nopw(); // unknown
|
||||
map(0x80, 0x80).portr("P1");
|
||||
map(0x81, 0x81).portr("P2");
|
||||
map(0x90, 0x90).portr("SYSTEM");
|
||||
@ -94,7 +337,7 @@ void quizdna_state::gekiretu_io_map(address_map &map)
|
||||
map.global_mask(0xff);
|
||||
map(0x02, 0x03).w(FUNC(quizdna_state::bg_xscroll_w));
|
||||
map(0x04, 0x04).w(FUNC(quizdna_state::bg_yscroll_w));
|
||||
map(0x05, 0x06).nopw(); /* unknown */
|
||||
map(0x05, 0x06).nopw(); // unknown
|
||||
map(0x80, 0x80).portr("P1");
|
||||
map(0x81, 0x81).portr("P2");
|
||||
map(0x90, 0x90).portr("SYSTEM");
|
||||
@ -397,9 +640,9 @@ INPUT_PORTS_END
|
||||
|
||||
static const gfx_layout fglayout =
|
||||
{
|
||||
16,8, /* 16*8 characters */
|
||||
8192*2, /* 16384 characters */
|
||||
1, /* 1 bit per pixel */
|
||||
16,8, // 16*8 characters
|
||||
8192*2, // 16384 characters
|
||||
1, // 1 bit per pixel
|
||||
{0},
|
||||
{ STEP16(0,1) },
|
||||
{ STEP8(0,16) },
|
||||
@ -408,9 +651,9 @@ static const gfx_layout fglayout =
|
||||
|
||||
static const gfx_layout bglayout =
|
||||
{
|
||||
8,8, /* 8*8 characters */
|
||||
32768+1024, /* 32768+1024 characters */
|
||||
4, /* 4 bits per pixel */
|
||||
8,8, // 8*8 characters
|
||||
32768+1024, // 32768+1024 characters
|
||||
4, // 4 bits per pixel
|
||||
{0,1,2,3},
|
||||
{ STEP8(0,4) },
|
||||
{ STEP8(0,32) },
|
||||
@ -419,9 +662,9 @@ static const gfx_layout bglayout =
|
||||
|
||||
static const gfx_layout objlayout =
|
||||
{
|
||||
16,16, /* 16*16 characters */
|
||||
8192+256, /* 8192+256 characters */
|
||||
4, /* 4 bits per pixel */
|
||||
16,16, // 16*16 characters
|
||||
8192+256, // 8192+256 characters
|
||||
4, // 4 bits per pixel
|
||||
{0,1,2,3},
|
||||
{ STEP16(0,4) },
|
||||
{ STEP16(0,64) },
|
||||
@ -429,29 +672,32 @@ static const gfx_layout objlayout =
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_quizdna )
|
||||
GFXDECODE_ENTRY( "gfx1", 0x0000, fglayout, 0x7e0, 16 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0x0000, bglayout, 0x000, 128 )
|
||||
GFXDECODE_ENTRY( "gfx3", 0x0000, objlayout, 0x600, 32 )
|
||||
GFXDECODE_ENTRY( "fgtiles", 0x0000, fglayout, 0x7e0, 16 )
|
||||
GFXDECODE_ENTRY( "bgtiles", 0x0000, bglayout, 0x000, 128 )
|
||||
GFXDECODE_ENTRY( "sprites", 0x0000, objlayout, 0x600, 32 )
|
||||
GFXDECODE_END
|
||||
|
||||
void quizdna_state::machine_start()
|
||||
{
|
||||
membank("mainbank")->configure_entries(0, 64, memregion("maincpu")->base() + 0x10000, 0x4000);
|
||||
m_mainbank->configure_entry(0, m_banked_ram);
|
||||
m_mainbank->configure_entries(1, 63, memregion("maincpu")->base() + 0x14000, 0x4000);
|
||||
}
|
||||
|
||||
|
||||
void quizdna_state::quizdna(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, MCLK/2); /* 8.000 MHz */
|
||||
static constexpr XTAL MCLK = 16_MHz_XTAL;
|
||||
|
||||
// basic machine hardware
|
||||
Z80(config, m_maincpu, MCLK / 2); // 8.000 MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &quizdna_state::quizdna_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &quizdna_state::quizdna_io_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(quizdna_state::irq0_line_hold));
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
|
||||
screen.set_size(64*8, 32*8);
|
||||
screen.set_visarea(8*8, 56*8-1, 2*8, 30*8-1);
|
||||
screen.set_screen_update(FUNC(quizdna_state::screen_update));
|
||||
@ -460,11 +706,10 @@ void quizdna_state::quizdna(machine_config &config)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_quizdna);
|
||||
PALETTE(config, m_palette).set_entries(2048);
|
||||
|
||||
|
||||
/* sound hardware */
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
ym2203_device &ymsnd(YM2203(config, "ymsnd", MCLK/4));
|
||||
ym2203_device &ymsnd(YM2203(config, "ymsnd", MCLK / 4));
|
||||
ymsnd.port_a_read_callback().set_ioport("DSW3");
|
||||
ymsnd.port_b_read_callback().set_ioport("DSW2");
|
||||
ymsnd.add_route(0, "mono", 0.10);
|
||||
@ -472,14 +717,14 @@ void quizdna_state::quizdna(machine_config &config)
|
||||
ymsnd.add_route(2, "mono", 0.10);
|
||||
ymsnd.add_route(3, "mono", 0.40);
|
||||
|
||||
OKIM6295(config, "oki", (MCLK/1024)*132, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.30); // clock frequency & pin 7 not verified
|
||||
OKIM6295(config, "oki", (MCLK / 1024) * 132, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.30); // clock frequency & pin 7 not verified
|
||||
}
|
||||
|
||||
void quizdna_state::gakupara(machine_config &config)
|
||||
{
|
||||
quizdna(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
// basic machine hardware
|
||||
|
||||
m_maincpu->set_addrmap(AS_IO, &quizdna_state::gakupara_io_map);
|
||||
}
|
||||
@ -488,7 +733,7 @@ void quizdna_state::gekiretu(machine_config &config)
|
||||
{
|
||||
quizdna(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
// basic machine hardware
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &quizdna_state::gekiretu_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &quizdna_state::gekiretu_io_map);
|
||||
@ -498,80 +743,83 @@ void quizdna_state::gekiretu(machine_config &config)
|
||||
/****************************************************************************/
|
||||
|
||||
ROM_START( quizdna )
|
||||
ROM_REGION( 0xd0000, "maincpu", 0 ) /* CPU */
|
||||
ROM_REGION( 0xd0000, "maincpu", 0 )
|
||||
ROM_LOAD( "quiz2-pr.28", 0x00000, 0x08000, CRC(a428ede4) SHA1(cdca3bd84b2ea421fb05502ea29e9eb605e574eb) )
|
||||
ROM_CONTINUE( 0x18000, 0x78000 ) /* banked */
|
||||
/* empty */
|
||||
ROM_CONTINUE( 0x18000, 0x78000 ) // banked
|
||||
// empty
|
||||
|
||||
ROM_REGION( 0x40000, "gfx1", 0 ) /* fg */
|
||||
ROM_REGION( 0x40000, "fgtiles", 0 )
|
||||
ROM_LOAD( "quiz2.102", 0x00000, 0x20000, CRC(62402ac9) SHA1(bf52d22b119d54410dad4949b0687bb0edf3e143) )
|
||||
/* empty */
|
||||
// empty
|
||||
|
||||
ROM_REGION( 0x108000, "gfx2", 0 ) /* bg */
|
||||
ROM_REGION( 0x108000, "bgtiles", 0 )
|
||||
ROM_LOAD( "quiz2-bg.100", 0x000000, 0x100000, CRC(f1d0cac2) SHA1(26d25c1157d1916dfe4496c6cf119c4a9339e31c) )
|
||||
/* empty */
|
||||
// empty
|
||||
|
||||
ROM_REGION( 0x108000, "gfx3", 0 ) /* obj */
|
||||
ROM_REGION( 0x108000, "sprites", 0 )
|
||||
ROM_LOAD( "quiz2-ob.98", 0x000000, 0x100000, CRC(682f19a6) SHA1(6b8e6e583f423cf8ef9095f2c300201db7d7b8b3) )
|
||||
ROM_LOAD( "quiz2ob2.97", 0x100000, 0x008000, CRC(03736b1a) SHA1(bc42ac293260f58a8a138702d890f69aec99c05e) )
|
||||
|
||||
ROM_REGION( 0x80000, "oki", 0 ) /* samples */
|
||||
ROM_REGION( 0x80000, "oki", 0 ) // samples
|
||||
ROM_LOAD( "quiz2-sn.32", 0x000000, 0x040000, CRC(1c044637) SHA1(dc749295e149f968495272f1a3ec27c6b719be8e) )
|
||||
|
||||
ROM_REGION( 0x00020, "user1", 0 ) /* fg control */
|
||||
ROM_REGION( 0x00020, "fgctrl", 0 )
|
||||
ROM_LOAD( "quiz2.148", 0x000000, 0x000020, CRC(91267e8a) SHA1(ae5bd8efea5322c4d9986d06680a781392f9a642) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( gakupara )
|
||||
ROM_REGION( 0xd0000, "maincpu", 0 ) /* CPU */
|
||||
ROM_REGION( 0xd0000, "maincpu", 0 )
|
||||
ROM_LOAD( "u28.bin", 0x00000, 0x08000, CRC(72124bb8) SHA1(e734acff7e9d6b8c6a95c76860732320a2e3a828) )
|
||||
ROM_CONTINUE( 0x18000, 0x78000 ) /* banked */
|
||||
ROM_LOAD( "u29.bin", 0x90000, 0x40000, CRC(09f4948e) SHA1(21ccf5af6935cf40c0cf73fbee14bff3c4e1d23d) ) /* banked */
|
||||
ROM_CONTINUE( 0x18000, 0x78000 ) // banked
|
||||
ROM_LOAD( "u29.bin", 0x90000, 0x40000, CRC(09f4948e) SHA1(21ccf5af6935cf40c0cf73fbee14bff3c4e1d23d) ) // banked
|
||||
|
||||
ROM_REGION( 0x40000, "gfx1", 0 ) /* fg */
|
||||
ROM_REGION( 0x40000, "fgtiles", 0 )
|
||||
ROM_LOAD( "u102.bin", 0x00000, 0x20000, CRC(62402ac9) SHA1(bf52d22b119d54410dad4949b0687bb0edf3e143) )
|
||||
ROM_LOAD( "u103.bin", 0x20000, 0x20000, CRC(38644251) SHA1(ebfdc43c38e1380709ed08575c346b2467ad1592) )
|
||||
|
||||
ROM_REGION( 0x108000, "gfx2", 0 ) /* bg */
|
||||
ROM_REGION( 0x108000, "bgtiles", 0 )
|
||||
ROM_LOAD( "u100.bin", 0x000000, 0x100000, CRC(f9d886ea) SHA1(d7763f54a165af720216b96e601a66fbc59e3568) )
|
||||
ROM_LOAD( "u99.bin", 0x100000, 0x008000, CRC(ac224d0a) SHA1(f187c3b74bc18606d0fe638f6a829f71c109998d) )
|
||||
|
||||
ROM_REGION( 0x108000, "gfx3", 0 ) /* obj */
|
||||
ROM_REGION( 0x108000, "sprites", 0 )
|
||||
ROM_LOAD( "u98.bin", 0x000000, 0x100000, CRC(a6e8cb56) SHA1(2fc85c1769513cc7aa5e23afaf0c99c38de9b855) )
|
||||
ROM_LOAD( "u97.bin", 0x100000, 0x008000, CRC(9dacd5c9) SHA1(e40211059e71408be3d67807463304f4d4ecae37) )
|
||||
|
||||
ROM_REGION( 0x80000, "oki", 0 ) /* samples */
|
||||
ROM_REGION( 0x80000, "oki", 0 ) // samples
|
||||
ROM_LOAD( "u32.bin", 0x000000, 0x040000, CRC(eb03c535) SHA1(4d6c749ccab4681eee0a1fb243e9f3dbe61b9f94) )
|
||||
|
||||
ROM_REGION( 0x00020, "user1", 0 ) /* fg control */
|
||||
ROM_REGION( 0x00020, "fgctrl", 0 )
|
||||
ROM_LOAD( "u148.bin", 0x000000, 0x000020, CRC(971df9d2) SHA1(280f5b386922b9902ca9211c719642c2bd0ba899) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( gekiretu )
|
||||
ROM_REGION( 0xd0000, "maincpu", 0 ) /* CPU */
|
||||
ROM_REGION( 0xd0000, "maincpu", 0 )
|
||||
ROM_LOAD( "quiz3-pr.28", 0x00000, 0x08000, CRC(a761e86f) SHA1(85331ef53598491e78c2d123b1ebd358aff46436) )
|
||||
ROM_CONTINUE( 0x18000, 0x78000 ) /* banked */
|
||||
/* empty */
|
||||
ROM_CONTINUE( 0x18000, 0x78000 ) // banked
|
||||
// empty
|
||||
|
||||
ROM_REGION( 0x40000, "gfx1", 0 ) /* fg */
|
||||
ROM_REGION( 0x40000, "fgtiles", 0 )
|
||||
ROM_LOAD( "quiz3.102", 0x00000, 0x20000, CRC(62402ac9) SHA1(bf52d22b119d54410dad4949b0687bb0edf3e143) )
|
||||
/* empty */
|
||||
// empty
|
||||
|
||||
ROM_REGION( 0x108000, "gfx2", 0 ) /* bg */
|
||||
ROM_REGION( 0x108000, "bgtiles", 0 )
|
||||
ROM_LOAD( "quiz3-bg.100", 0x000000, 0x100000, CRC(cb9272fd) SHA1(cfc1ff93d1fdc7d144e161a77e534cea75d7f181) )
|
||||
/* empty */
|
||||
// empty
|
||||
|
||||
ROM_REGION( 0x108000, "gfx3", 0 ) /* obj */
|
||||
ROM_REGION( 0x108000, "sprites", 0 )
|
||||
ROM_LOAD( "quiz3-ob.98", 0x000000, 0x100000, CRC(01bed020) SHA1(5cc56c8823ee5e538371debe1cbeb57c4976677b) )
|
||||
/* empty */
|
||||
// empty
|
||||
|
||||
ROM_REGION( 0x80000, "oki", 0 ) /* samples */
|
||||
ROM_REGION( 0x80000, "oki", 0 ) // samples
|
||||
ROM_LOAD( "quiz3-sn.32", 0x000000, 0x040000, CRC(36dca582) SHA1(2607602e942244cfaae931da2ad36da9a8f855f7) )
|
||||
|
||||
ROM_REGION( 0x00020, "user1", 0 ) /* fg control */
|
||||
ROM_REGION( 0x00020, "fgctrl", 0 )
|
||||
ROM_LOAD( "quiz3.148", 0x000000, 0x000020, CRC(91267e8a) SHA1(ae5bd8efea5322c4d9986d06680a781392f9a642) )
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
GAME( 1991, gakupara, 0, gakupara, gakupara, quizdna_state, empty_init, ROT0, "NMK", "Quiz Gakuen Paradise (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1992, quizdna, 0, quizdna, quizdna, quizdna_state, empty_init, ROT0, "Face", "Quiz DNA no Hanran (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1992, gekiretu, 0, gekiretu, gekiretu, quizdna_state, empty_init, ROT0, "Face", "Quiz Gekiretsu Scramble (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -1,63 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Uki
|
||||
|
||||
#include "emupal.h"
|
||||
#include "tilemap.h"
|
||||
|
||||
class quizdna_state : public driver_device
|
||||
{
|
||||
public:
|
||||
quizdna_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette"),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_generic_paletteram_8(*this, "paletteram") { }
|
||||
|
||||
void gakupara(machine_config &config);
|
||||
void quizdna(machine_config &config);
|
||||
void gekiretu(machine_config &config);
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
required_shared_ptr<uint8_t> m_spriteram;
|
||||
required_shared_ptr<uint8_t> m_generic_paletteram_8;
|
||||
|
||||
std::unique_ptr<uint8_t[]> m_bg_ram;
|
||||
std::unique_ptr<uint8_t[]> m_fg_ram;
|
||||
tilemap_t *m_bg_tilemap = nullptr;
|
||||
tilemap_t *m_fg_tilemap = nullptr;
|
||||
uint8_t m_bg_xscroll[2];
|
||||
int m_flipscreen = 0;
|
||||
int m_video_enable = 0;
|
||||
|
||||
// common
|
||||
void bg_ram_w(offs_t offset, uint8_t data);
|
||||
void fg_ram_w(offs_t offset, uint8_t data);
|
||||
void bg_yscroll_w(uint8_t data);
|
||||
void bg_xscroll_w(offs_t offset, uint8_t data);
|
||||
void screen_ctrl_w(uint8_t data);
|
||||
void paletteram_xBGR_RRRR_GGGG_BBBB_w(offs_t offset, uint8_t data);
|
||||
void rombank_w(uint8_t data);
|
||||
|
||||
// game specific
|
||||
void gekiretu_rombank_w(uint8_t data);
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
|
||||
virtual void machine_start() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void gakupara_io_map(address_map &map);
|
||||
void gekiretu_io_map(address_map &map);
|
||||
void gekiretu_map(address_map &map);
|
||||
void quizdna_io_map(address_map &map);
|
||||
void quizdna_map(address_map &map);
|
||||
};
|
@ -1,200 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Uki
|
||||
/******************************************************************************
|
||||
|
||||
Quiz DNA no Hanran (c) 1992 Face
|
||||
Quiz Gakuen Paradise (c) 1991 NMK
|
||||
Quiz Gekiretsu Scramble (Gakuen Paradise 2) (c) 1993 Face
|
||||
|
||||
Video hardware
|
||||
driver by Uki
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "quizdna.h"
|
||||
|
||||
|
||||
TILE_GET_INFO_MEMBER(quizdna_state::get_bg_tile_info)
|
||||
{
|
||||
int code = m_bg_ram[tile_index*2] + m_bg_ram[tile_index*2+1]*0x100 ;
|
||||
int col = m_bg_ram[tile_index*2+0x1000] & 0x7f;
|
||||
|
||||
if (code>0x7fff)
|
||||
code &= 0x83ff;
|
||||
|
||||
tileinfo.set(1, code, col, 0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(quizdna_state::get_fg_tile_info)
|
||||
{
|
||||
int code,col,x,y;
|
||||
uint8_t *FG = memregion("user1")->base();
|
||||
|
||||
x = tile_index & 0x1f;
|
||||
y = FG[(tile_index >> 5) & 0x1f] & 0x3f;
|
||||
code = y & 1;
|
||||
|
||||
y >>= 1;
|
||||
|
||||
col = m_fg_ram[x*2 + y*0x40 + 1];
|
||||
code += (m_fg_ram[x*2 + y*0x40] + (col & 0x1f) * 0x100) * 2;
|
||||
col >>= 5;
|
||||
col = (col & 3) | ((col & 4) << 1);
|
||||
|
||||
tileinfo.set(0, code, col, 0);
|
||||
}
|
||||
|
||||
|
||||
void quizdna_state::video_start()
|
||||
{
|
||||
m_flipscreen = -1;
|
||||
m_video_enable = 0;
|
||||
m_bg_xscroll[0] = 0;
|
||||
m_bg_xscroll[1] = 0;
|
||||
|
||||
m_bg_ram = std::make_unique<uint8_t[]>(0x2000);
|
||||
m_fg_ram = std::make_unique<uint8_t[]>(0x1000);
|
||||
|
||||
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizdna_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
|
||||
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizdna_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
|
||||
|
||||
m_fg_tilemap->set_transparent_pen(0);
|
||||
|
||||
save_pointer(NAME(m_bg_ram), 0x2000);
|
||||
save_pointer(NAME(m_fg_ram), 0x1000);
|
||||
save_item(NAME(m_bg_xscroll));
|
||||
save_item(NAME(m_flipscreen));
|
||||
save_item(NAME(m_video_enable));
|
||||
}
|
||||
|
||||
void quizdna_state::bg_ram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
uint8_t *RAM = memregion("maincpu")->base();
|
||||
m_bg_ram[offset] = data;
|
||||
RAM[0x12000+offset] = data;
|
||||
|
||||
m_bg_tilemap->mark_tile_dirty((offset & 0xfff) / 2 );
|
||||
}
|
||||
|
||||
void quizdna_state::fg_ram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
int i;
|
||||
int offs = offset & 0xfff;
|
||||
uint8_t *RAM = memregion("maincpu")->base();
|
||||
|
||||
RAM[0x10000+offs] = data;
|
||||
RAM[0x11000+offs] = data; /* mirror */
|
||||
m_fg_ram[offs] = data;
|
||||
|
||||
for (i=0; i<32; i++)
|
||||
m_fg_tilemap->mark_tile_dirty(((offs/2) & 0x1f) + i*0x20 );
|
||||
}
|
||||
|
||||
void quizdna_state::bg_yscroll_w(uint8_t data)
|
||||
{
|
||||
m_bg_tilemap->set_scrolldy(255-data, 255-data+1 );
|
||||
}
|
||||
|
||||
void quizdna_state::bg_xscroll_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
int x;
|
||||
m_bg_xscroll[offset] = data;
|
||||
x = ~(m_bg_xscroll[0] + m_bg_xscroll[1]*0x100) & 0x1ff;
|
||||
|
||||
m_bg_tilemap->set_scrolldx(x+64, x-64+10 );
|
||||
}
|
||||
|
||||
void quizdna_state::screen_ctrl_w(uint8_t data)
|
||||
{
|
||||
int tmp = (data & 0x10) >> 4;
|
||||
m_video_enable = data & 0x20;
|
||||
|
||||
machine().bookkeeping().coin_counter_w(0, data & 1);
|
||||
|
||||
if (m_flipscreen == tmp)
|
||||
return;
|
||||
|
||||
m_flipscreen = tmp;
|
||||
|
||||
flip_screen_set(tmp);
|
||||
m_fg_tilemap->set_scrolldx(64, -64 +16);
|
||||
}
|
||||
|
||||
void quizdna_state::paletteram_xBGR_RRRR_GGGG_BBBB_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
int r,g,b,d0,d1;
|
||||
int offs = offset & ~1;
|
||||
|
||||
m_generic_paletteram_8[offset] = data;
|
||||
|
||||
d0 = m_generic_paletteram_8[offs];
|
||||
d1 = m_generic_paletteram_8[offs+1];
|
||||
|
||||
r = ((d1 << 1) & 0x1e) | ((d1 >> 4) & 1);
|
||||
g = ((d0 >> 3) & 0x1e) | ((d1 >> 5) & 1);
|
||||
b = ((d0 << 1) & 0x1e) | ((d1 >> 6) & 1);
|
||||
|
||||
m_palette->set_pen_color(offs/2,pal5bit(r),pal5bit(g),pal5bit(b));
|
||||
}
|
||||
|
||||
void quizdna_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
for (int offs = 0; offs<m_spriteram.bytes(); offs+=8)
|
||||
{
|
||||
int x = m_spriteram[offs + 3]*0x100 + m_spriteram[offs + 2] + 64 - 8;
|
||||
int y = (m_spriteram[offs + 1] & 1)*0x100 + m_spriteram[offs + 0];
|
||||
int code = (m_spriteram[offs + 5] * 0x100 + m_spriteram[offs + 4]) & 0x3fff;
|
||||
int col = m_spriteram[offs + 6];
|
||||
int fx = col & 0x80;
|
||||
int fy = col & 0x40;
|
||||
int ysize = (m_spriteram[offs + 1] & 0xc0) >> 6;
|
||||
int dy = 0x10;
|
||||
col &= 0x1f;
|
||||
|
||||
if (m_flipscreen)
|
||||
{
|
||||
x -= 7;
|
||||
y += 1;
|
||||
}
|
||||
|
||||
x &= 0x1ff;
|
||||
if (x>0x1f0)
|
||||
x -= 0x200;
|
||||
|
||||
if (fy)
|
||||
{
|
||||
dy = -0x10;
|
||||
y += 0x10 * ysize;
|
||||
}
|
||||
|
||||
if (code >= 0x2100)
|
||||
code &= 0x20ff;
|
||||
|
||||
for (int i=0; i<ysize+1; i++)
|
||||
{
|
||||
y &= 0x1ff;
|
||||
|
||||
m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
|
||||
code ^ i,
|
||||
col,
|
||||
fx,fy,
|
||||
x,y,0);
|
||||
|
||||
y += dy;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t quizdna_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
if (m_video_enable)
|
||||
{
|
||||
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
draw_sprites(bitmap, cliprect);
|
||||
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
}
|
||||
else
|
||||
bitmap.fill(m_palette->black_pen(), cliprect);
|
||||
return 0;
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Haywood, Pierpaolo Prazzoli
|
||||
// copyright-holders: David Haywood, Pierpaolo Prazzoli
|
||||
|
||||
/*************************************************************************
|
||||
Quiz Panicuru Fantasy
|
||||
(c) 1993 NMK
|
||||
@ -48,39 +49,171 @@ Stephh's notes (based on the games M68000 code and some tests) :
|
||||
*************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "quizpani.h"
|
||||
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "machine/nmk112.h"
|
||||
#include "sound/okim6295.h"
|
||||
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
#include "tilemap.h"
|
||||
|
||||
|
||||
void quizpani_state::quizpani_map(address_map &map)
|
||||
namespace {
|
||||
|
||||
class quizpani_state : public driver_device
|
||||
{
|
||||
public:
|
||||
quizpani_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_scrollreg(*this, "scrollreg"),
|
||||
m_bg_videoram(*this, "bg_videoram"),
|
||||
m_txt_videoram(*this, "txt_videoram")
|
||||
{ }
|
||||
|
||||
void quizpani(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void video_start() override;
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
|
||||
required_shared_ptr<uint16_t> m_scrollreg;
|
||||
required_shared_ptr<uint16_t> m_bg_videoram;
|
||||
required_shared_ptr<uint16_t> m_txt_videoram;
|
||||
|
||||
tilemap_t *m_bg_tilemap = nullptr;
|
||||
tilemap_t *m_txt_tilemap = nullptr;
|
||||
uint8_t m_bgbank = 0;
|
||||
uint8_t m_txtbank = 0;
|
||||
|
||||
void bg_videoram_w(offs_t offset, uint16_t data);
|
||||
void txt_videoram_w(offs_t offset, uint16_t data);
|
||||
void tilesbank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
|
||||
|
||||
TILEMAP_MAPPER_MEMBER(bg_scan);
|
||||
TILE_GET_INFO_MEMBER(bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(txt_tile_info);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
void program_map(address_map &map);
|
||||
};
|
||||
|
||||
|
||||
// video
|
||||
|
||||
TILEMAP_MAPPER_MEMBER(quizpani_state::bg_scan)
|
||||
{
|
||||
// logical (col,row) -> memory offset
|
||||
return (row & 0x0f) + ((col & 0xff) << 4) + ((row & 0x70) << 8);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(quizpani_state::bg_tile_info)
|
||||
{
|
||||
int const code = m_bg_videoram[tile_index];
|
||||
|
||||
tileinfo.set(1,
|
||||
(code & 0xfff) + (0x1000 * m_bgbank),
|
||||
code >> 12,
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(quizpani_state::txt_tile_info)
|
||||
{
|
||||
int const code = m_txt_videoram[tile_index];
|
||||
|
||||
tileinfo.set(0,
|
||||
(code & 0xfff) + (0x1000 * m_txtbank),
|
||||
code >> 12,
|
||||
0);
|
||||
}
|
||||
|
||||
void quizpani_state::bg_videoram_w(offs_t offset, uint16_t data)
|
||||
{
|
||||
m_bg_videoram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
void quizpani_state::txt_videoram_w(offs_t offset, uint16_t data)
|
||||
{
|
||||
m_txt_videoram[offset] = data;
|
||||
m_txt_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
void quizpani_state::tilesbank_w(offs_t offset, uint16_t data, uint16_t mem_mask)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
if (m_txtbank != (data & 0x30) >> 4)
|
||||
{
|
||||
m_txtbank = (data & 0x30) >> 4;
|
||||
m_txt_tilemap->mark_all_dirty();
|
||||
}
|
||||
|
||||
if (m_bgbank != (data & 3))
|
||||
{
|
||||
m_bgbank = data & 3;
|
||||
m_bg_tilemap->mark_all_dirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void quizpani_state::video_start()
|
||||
{
|
||||
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizpani_state::bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(quizpani_state::bg_scan)), 16, 16, 256, 32);
|
||||
m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizpani_state::txt_tile_info)), tilemap_mapper_delegate(*this, FUNC(quizpani_state::bg_scan)), 16, 16, 256, 32);
|
||||
m_txt_tilemap->set_transparent_pen(15);
|
||||
|
||||
save_item(NAME(m_bgbank));
|
||||
save_item(NAME(m_txtbank));
|
||||
m_bg_tilemap->set_scrolldx(64, 64);
|
||||
m_txt_tilemap->set_scrolldx(64, 64);
|
||||
}
|
||||
|
||||
uint32_t quizpani_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bg_tilemap->set_scrollx(0, m_scrollreg[0]);
|
||||
m_bg_tilemap->set_scrolly(0, m_scrollreg[1]);
|
||||
m_txt_tilemap->set_scrollx(0, m_scrollreg[2]);
|
||||
m_txt_tilemap->set_scrolly(0, m_scrollreg[3]);
|
||||
|
||||
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_txt_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// machine
|
||||
|
||||
void quizpani_state::program_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x07ffff).rom();
|
||||
map(0x100000, 0x100001).portr("SYSTEM");
|
||||
map(0x100002, 0x100003).portr("P1_P2");
|
||||
map(0x100008, 0x100009).portr("DSW1");
|
||||
map(0x10000a, 0x10000b).portr("DSW2");
|
||||
map(0x100014, 0x100015).nopw(); /* screen flipping? */
|
||||
map(0x100016, 0x100017).nopw(); /* IRQ enable? */
|
||||
map(0x100014, 0x100015).nopw(); // screen flipping?
|
||||
map(0x100016, 0x100017).nopw(); // IRQ enable?
|
||||
map(0x100018, 0x100019).w(FUNC(quizpani_state::tilesbank_w));
|
||||
map(0x104001, 0x104001).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
|
||||
map(0x104020, 0x104027).w("nmk112", FUNC(nmk112_device::okibank_w)).umask16(0x00ff);
|
||||
map(0x108000, 0x1083ff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
|
||||
map(0x108400, 0x1085ff).nopw();
|
||||
map(0x10c000, 0x10c007).ram().share("scrollreg");
|
||||
map(0x10c000, 0x10c007).ram().share(m_scrollreg);
|
||||
map(0x10c008, 0x10c403).nopw();
|
||||
map(0x110000, 0x113fff).ram().w(FUNC(quizpani_state::bg_videoram_w)).share("bg_videoram");
|
||||
map(0x11c000, 0x11ffff).ram().w(FUNC(quizpani_state::txt_videoram_w)).share("txt_videoram");
|
||||
map(0x110000, 0x113fff).ram().w(FUNC(quizpani_state::bg_videoram_w)).share(m_bg_videoram);
|
||||
map(0x11c000, 0x11ffff).ram().w(FUNC(quizpani_state::txt_videoram_w)).share(m_txt_videoram);
|
||||
map(0x180000, 0x18ffff).ram();
|
||||
map(0x200000, 0x33ffff).rom();
|
||||
}
|
||||
|
||||
|
||||
/* verified from M68000 code */
|
||||
// verified from M68000 code
|
||||
static INPUT_PORTS_START( quizpani )
|
||||
PORT_START("SYSTEM")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
@ -94,7 +227,7 @@ static INPUT_PORTS_START( quizpani )
|
||||
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("P1_P2")
|
||||
/* "Standard" buttons layout */
|
||||
// "Standard" buttons layout
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_CONDITION("DSW1",0x0002,EQUALS,0x0002)
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_CONDITION("DSW1",0x0002,EQUALS,0x0002)
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_CONDITION("DSW1",0x0002,EQUALS,0x0002)
|
||||
@ -111,7 +244,7 @@ static INPUT_PORTS_START( quizpani )
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1",0x0002,EQUALS,0x0002)
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1",0x0002,EQUALS,0x0002)
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1",0x0002,EQUALS,0x0002)
|
||||
/* "Alternate" buttons layout */
|
||||
// "Alternate" buttons layout
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* dup. B1 P1 */ PORT_CONDITION("DSW1",0x0002,EQUALS,0x0000)
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* dup. B1 P1 */ PORT_CONDITION("DSW1",0x0002,EQUALS,0x0000)
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* dup. B1 P1 */ PORT_CONDITION("DSW1",0x0002,EQUALS,0x0000)
|
||||
@ -130,10 +263,10 @@ static INPUT_PORTS_START( quizpani )
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1",0x0002,EQUALS,0x0000)
|
||||
|
||||
PORT_START("DSW1")
|
||||
PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) /* guess, but check code at 0x004d9c and write to 0x100014 */
|
||||
PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) // guess, but check code at 0x004d9c and write to 0x100014
|
||||
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0002, 0x0002, "Buttons Layout" ) /* check code at 0x005d80 */
|
||||
PORT_DIPNAME( 0x0002, 0x0002, "Buttons Layout" ) // check code at 0x005d80
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( Standard ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Alternate ) )
|
||||
PORT_DIPNAME( 0x0004, 0x0018, DEF_STR( Difficulty ) )
|
||||
@ -146,14 +279,14 @@ static INPUT_PORTS_START( quizpani )
|
||||
PORT_DIPSETTING( 0x0020, "2" )
|
||||
PORT_DIPSETTING( 0x0030, "3" )
|
||||
PORT_DIPSETTING( 0x0010, "4" )
|
||||
PORT_DIPUNKNOWN( 0x0040, 0x0040 ) /* check code at 0x0083a6 - never called ? */
|
||||
PORT_DIPUNKNOWN( 0x0040, 0x0040 ) // check code at 0x0083a6 - never called ?
|
||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( On ) )
|
||||
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPUNUSED( 0x0001, 0x0001 )
|
||||
PORT_DIPNAME( 0x0002, 0x0002, "Sounds/Music" ) /* check code at 0x003ab4 */
|
||||
PORT_DIPNAME( 0x0002, 0x0002, "Sounds/Music" ) // check code at 0x003ab4
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) )
|
||||
@ -177,15 +310,15 @@ static INPUT_PORTS_START( quizpani )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static GFXDECODE_START( gfx_quizpani )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x4_col_2x2_group_packed_msb, 0x100, 16 ) /* Background */
|
||||
GFXDECODE_ENTRY( "gfx2", 0, gfx_8x8x4_col_2x2_group_packed_msb, 0x000, 16 ) /* Text */
|
||||
GFXDECODE_ENTRY( "bgtiles", 0, gfx_8x8x4_col_2x2_group_packed_msb, 0x100, 16 )
|
||||
GFXDECODE_ENTRY( "text", 0, gfx_8x8x4_col_2x2_group_packed_msb, 0x000, 16 )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
void quizpani_state::quizpani(machine_config &config)
|
||||
{
|
||||
M68000(config, m_maincpu, 10000000);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &quizpani_state::quizpani_map);
|
||||
M68000(config, m_maincpu, 10'000'000);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &quizpani_state::program_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(quizpani_state::irq4_line_hold));
|
||||
m_maincpu->set_periodic_int(FUNC(quizpani_state::irq1_line_hold), attotime::from_hz(164)); // music tempo
|
||||
|
||||
@ -202,25 +335,25 @@ void quizpani_state::quizpani(machine_config &config)
|
||||
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
OKIM6295(config, "oki", 16000000/4, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
OKIM6295(config, "oki", 16'000'000 / 4, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
|
||||
nmk112_device &nmk112(NMK112(config, "nmk112", 0));
|
||||
nmk112.set_rom0_tag("oki");
|
||||
}
|
||||
|
||||
ROM_START( quizpani )
|
||||
ROM_REGION( 0x340000, "maincpu", 0 ) /* 68000 Code */
|
||||
ROM_REGION( 0x340000, "maincpu", 0 ) // 68000
|
||||
ROM_LOAD16_WORD_SWAP( "93094-51.127", 0x000000, 0x080000, CRC(2b7a29d4) SHA1(f87b875e69410745ee46d5d94b6c28e5417afb0d) )
|
||||
/* No EVEN rom */
|
||||
// No even ROM
|
||||
ROM_LOAD16_BYTE( "93094-52.126", 0x200001, 0x080000, CRC(0617524e) SHA1(91ab5cb8a605c37c92632cf007ddb67172cc9863) )
|
||||
/* No EVEN rom */
|
||||
// No even ROM
|
||||
ROM_LOAD16_BYTE( "93094-53.125", 0x300001, 0x020000, CRC(7e0ab49c) SHA1(dd10f723ef74f3153e04b1a271b8761585799aa6) )
|
||||
|
||||
ROM_REGION( 0x200000, "gfx1", 0 )
|
||||
ROM_REGION( 0x200000, "bgtiles", 0 )
|
||||
ROM_LOAD( "93090-11.2", 0x000000, 0x100000, CRC(4b3ab155) SHA1(fc1210853ca262c42b927689cb8f04aca15de7d6) )
|
||||
ROM_LOAD( "93090-12.1", 0x100000, 0x100000, CRC(3f2ebfa5) SHA1(1c935d566f3980483356264a9216f9bf298bb815) )
|
||||
|
||||
ROM_REGION( 0x200000, "gfx2", 0 )
|
||||
ROM_REGION( 0x200000, "text", 0 )
|
||||
ROM_LOAD( "93090-21.10", 0x000000, 0x100000, CRC(63754242) SHA1(3698b89d8515b45b9bc0fff87ca94ab5c2b3d53a) )
|
||||
ROM_LOAD( "93090-22.9", 0x100000, 0x100000, CRC(93382cd3) SHA1(6527e92f696c21aae65d008bb237231eaba7a105) )
|
||||
|
||||
@ -230,9 +363,12 @@ ROM_START( quizpani )
|
||||
ROM_LOAD( "93090-4.56", 0x240000, 0x100000, CRC(ee370ed6) SHA1(9b1edfada5805014aa23d28d0c70227728b0e04f) )
|
||||
|
||||
ROM_REGION( 0x300, "proms", 0 )
|
||||
ROM_LOAD( "qz6.88", 0x000, 0x100, CRC(19dbbad2) SHA1(ebf7950d1869ca3bc1e72228505fbc17d095746a) ) /* unknown */
|
||||
ROM_LOAD( "qz7.99", 0x100, 0x100, CRC(1f802af1) SHA1(617bb7e5105ac202b5a8cf83c8c66178b91099e0) ) /* unknown */
|
||||
ROM_LOAD( "qz8.121", 0x200, 0x100, CRC(b4c19741) SHA1(a6d3686bad6ef2336463b89bc2d249003d9b4bcc) ) /* unknown */
|
||||
ROM_LOAD( "qz6.88", 0x000, 0x100, CRC(19dbbad2) SHA1(ebf7950d1869ca3bc1e72228505fbc17d095746a) ) // unknown
|
||||
ROM_LOAD( "qz7.99", 0x100, 0x100, CRC(1f802af1) SHA1(617bb7e5105ac202b5a8cf83c8c66178b91099e0) ) // unknown
|
||||
ROM_LOAD( "qz8.121", 0x200, 0x100, CRC(b4c19741) SHA1(a6d3686bad6ef2336463b89bc2d249003d9b4bcc) ) // unknown
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
GAME( 1993, quizpani, 0, quizpani, quizpani, quizpani_state, empty_init, ROT0, "NMK", "Quiz Panicuru Fantasy", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -1,51 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Haywood, Pierpaolo Prazzoli
|
||||
#ifndef MAME_NMK_QUIZPANI_H
|
||||
#define MAME_NMK_QUIZPANI_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "machine/nmk112.h"
|
||||
|
||||
#include "tilemap.h"
|
||||
|
||||
class quizpani_state : public driver_device
|
||||
{
|
||||
public:
|
||||
quizpani_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_scrollreg(*this, "scrollreg"),
|
||||
m_bg_videoram(*this, "bg_videoram"),
|
||||
m_txt_videoram(*this, "txt_videoram")
|
||||
{ }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
|
||||
required_shared_ptr<uint16_t> m_scrollreg;
|
||||
required_shared_ptr<uint16_t> m_bg_videoram;
|
||||
required_shared_ptr<uint16_t> m_txt_videoram;
|
||||
|
||||
tilemap_t *m_bg_tilemap = nullptr;
|
||||
tilemap_t *m_txt_tilemap = nullptr;
|
||||
int m_bgbank = 0;
|
||||
int m_txtbank = 0;
|
||||
|
||||
void bg_videoram_w(offs_t offset, uint16_t data);
|
||||
void txt_videoram_w(offs_t offset, uint16_t data);
|
||||
void tilesbank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
|
||||
|
||||
TILEMAP_MAPPER_MEMBER(bg_scan);
|
||||
TILE_GET_INFO_MEMBER(bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(txt_tile_info);
|
||||
|
||||
virtual void video_start() override;
|
||||
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void quizpani(machine_config &config);
|
||||
void quizpani_map(address_map &map);
|
||||
};
|
||||
|
||||
#endif // MAME_NMK_QUIZPANI_H
|
@ -1,91 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Haywood, Pierpaolo Prazzoli
|
||||
/************************************************************************
|
||||
|
||||
Quiz Panicuru Fantasy video hardware
|
||||
|
||||
************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "quizpani.h"
|
||||
|
||||
|
||||
TILEMAP_MAPPER_MEMBER(quizpani_state::bg_scan)
|
||||
{
|
||||
/* logical (col,row) -> memory offset */
|
||||
return (row & 0x0f) + ((col & 0xff) << 4) + ((row & 0x70) << 8);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(quizpani_state::bg_tile_info)
|
||||
{
|
||||
int code = m_bg_videoram[tile_index];
|
||||
|
||||
tileinfo.set(1,
|
||||
(code & 0xfff) + (0x1000 * m_bgbank),
|
||||
code >> 12,
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(quizpani_state::txt_tile_info)
|
||||
{
|
||||
int code = m_txt_videoram[tile_index];
|
||||
|
||||
tileinfo.set(0,
|
||||
(code & 0xfff) + (0x1000 * m_txtbank),
|
||||
code >> 12,
|
||||
0);
|
||||
}
|
||||
|
||||
void quizpani_state::bg_videoram_w(offs_t offset, uint16_t data)
|
||||
{
|
||||
m_bg_videoram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
void quizpani_state::txt_videoram_w(offs_t offset, uint16_t data)
|
||||
{
|
||||
m_txt_videoram[offset] = data;
|
||||
m_txt_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
void quizpani_state::tilesbank_w(offs_t offset, uint16_t data, uint16_t mem_mask)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
if(m_txtbank != (data & 0x30)>>4)
|
||||
{
|
||||
m_txtbank = (data & 0x30)>>4;
|
||||
m_txt_tilemap->mark_all_dirty();
|
||||
}
|
||||
|
||||
if(m_bgbank != (data & 3))
|
||||
{
|
||||
m_bgbank = data & 3;
|
||||
m_bg_tilemap->mark_all_dirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void quizpani_state::video_start()
|
||||
{
|
||||
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizpani_state::bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(quizpani_state::bg_scan)), 16,16, 256,32);
|
||||
m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizpani_state::txt_tile_info)), tilemap_mapper_delegate(*this, FUNC(quizpani_state::bg_scan)), 16,16, 256,32);
|
||||
m_txt_tilemap->set_transparent_pen(15);
|
||||
|
||||
save_item(NAME(m_bgbank));
|
||||
save_item(NAME(m_txtbank));
|
||||
m_bg_tilemap->set_scrolldx(64,64);
|
||||
m_txt_tilemap->set_scrolldx(64,64);
|
||||
}
|
||||
|
||||
uint32_t quizpani_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bg_tilemap->set_scrollx(0, m_scrollreg[0]);
|
||||
m_bg_tilemap->set_scrolly(0, m_scrollreg[1]);
|
||||
m_txt_tilemap->set_scrollx(0, m_scrollreg[2]);
|
||||
m_txt_tilemap->set_scrolly(0, m_scrollreg[3]);
|
||||
|
||||
m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);
|
||||
m_txt_tilemap->draw(screen, bitmap, cliprect, 0,0);
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user