米国版PS2ソフトになります。
www.amazon.com
ここらへんを参考にして解析してみる。
github.com
例えばTac/Scanであれば、TACSCAN.SRを展開してTACSCAN.ROMを生成します。
$ python xsr.py TACSCAN.SR
files: 22
./ic_TACSCAN.IA 0 11856
./ic_TACSCAN.PNG 12288 31859
./TACSCAN.ROM 45056 45056
./TacScanS18.wav 90112 24750
./TacScanS1C.wav 116736 45830
./TacScanS20.wav 163840 16766
./TacScanS28.wav 182272 24278
./TacScanS2C.wav 206848 45830
./TacScanS31.wav 253952 64206
./TacScanS32.wav 319488 67772
./TacScanS33.wav 389120 73858
./TacScanS34.wav 464896 69918
./TacScanS35.wav 536576 71846
./TacScanS36.wav 610304 74070
./TacScanS37.wav 686080 74970
./TacScanS37A.wav 761856 61740
./TacScanS48.wav 825344 7874
./TacScanS50.wav 833536 5036
./TacScanS51.wav 839680 2528
./TacScanS54.wav 843776 83748
./TacScanS60.wav 927744 17030
./TacScanS6C.wav 946176 37510
CRCを調べて切り出します。
https://github.com/mamedev/mame/blob/master/src/mame/sega/segag80v.cpp
ROM_START( tacscan )
ROM_REGION( 0xc000, "maincpu", 0 )
ROM_LOAD( "1711a.cpu-u25", 0x0000, 0x0800, CRC(0da13158) SHA1(256c5441a4841441501c9b7bcf09e0e99e8dd671) )
ROM_LOAD( "1670c.prom-u1", 0x0800, 0x0800, CRC(98de6fd5) SHA1(f22c215d7558e00366fec5092abb51c670468f8c) )
ROM_LOAD( "1671a.prom-u2", 0x1000, 0x0800, CRC(dc400074) SHA1(70093ef56e0784173a06da1ac781bb9d8c4e7fc5) )
ROM_LOAD( "1672a.prom-u3", 0x1800, 0x0800, CRC(2caf6f7e) SHA1(200119260f78bb1c5389707b3ceedfbc1ae43549) )
ROM_LOAD( "1673a.prom-u4", 0x2000, 0x0800, CRC(1495ce3d) SHA1(3189f8061961d90a52339c855c06e81f4537fb2b) )
ROM_LOAD( "1674a.prom-u5", 0x2800, 0x0800, CRC(ab7fc5d9) SHA1(b2d9241d83d175ead4da36d7311a41a5f972e06a) )
ROM_LOAD( "1675a.prom-u6", 0x3000, 0x0800, CRC(cf5e5016) SHA1(78a3f1e4a905515330d4737ac38576ac6e0d8611) )
ROM_LOAD( "1676a.prom-u7", 0x3800, 0x0800, CRC(b61a3ab3) SHA1(0f4ef5c7fe299ad20fa4637260282a733f1cf461) )
ROM_LOAD( "1677a.prom-u8", 0x4000, 0x0800, CRC(bc0273b1) SHA1(8e8d8830f17b9fa6d45d98108ca02d90c29de574) )
ROM_LOAD( "1678b.prom-u9", 0x4800, 0x0800, CRC(7894da98) SHA1(2de7c121ad847e51a10cb1b81aec84cc44a3d04c) )
ROM_LOAD( "1679a.prom-u10", 0x5000, 0x0800, CRC(db865654) SHA1(db4d5675b53ff2bbaf70090fd064e98862f4ad33) )
ROM_LOAD( "1680a.prom-u11", 0x5800, 0x0800, CRC(2c2454de) SHA1(74101806439c9faeba88ffe573fa4f93ffa0ba3c) )
ROM_LOAD( "1681a.prom-u12", 0x6000, 0x0800, CRC(77028885) SHA1(bc981620ebbfbe4e32b3b4d00504475634454c57) )
ROM_LOAD( "1682a.prom-u13", 0x6800, 0x0800, CRC(babe5cf1) SHA1(26219b7a26f818fee2fe579ec6fb0b16c6bf056f) )
ROM_LOAD( "1683a.prom-u14", 0x7000, 0x0800, CRC(1b98b618) SHA1(19854cb2741ba37c11ae6d429fa6c17ff930f5e5) )
ROM_LOAD( "1684a.prom-u15", 0x7800, 0x0800, CRC(cb3ded3b) SHA1(f1e886f4f71b0f6f2c11fb8b4921c3452fc9b2c0) )
ROM_LOAD( "1685a.prom-u16", 0x8000, 0x0800, CRC(43016a79) SHA1(ee22c1fe0c8df90d9215175104f8a796c3d2aed3) )
ROM_LOAD( "1686a.prom-u17", 0x8800, 0x0800, CRC(a4397772) SHA1(cadc95b869f5bf5dba7f03dfe5ae64a50899cced) )
ROM_LOAD( "1687a.prom-u18", 0x9000, 0x0800, CRC(002f3bc4) SHA1(7f3795a05d5651c90cdcd4d00c46d05178b433ea) )
ROM_LOAD( "1688a.prom-u19", 0x9800, 0x0800, CRC(0326d87a) SHA1(3a5ea4526db417b9e00b24b019c1c6016773c9e7) )
ROM_LOAD( "1709a.prom-u20", 0xa000, 0x0800, CRC(f35ed1ec) SHA1(dce95a862af0c6b67fb76b99fee0523d53b7551c) )
ROM_LOAD( "1710a.prom-u21", 0xa800, 0x0800, CRC(6203be22) SHA1(89731c7c88d0125a11368d707f566eb53c783266) )
ROM_REGION( 0x0420, "proms", 0 )
ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) // sine table
ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) // CPU board addressing
ROM_END
PROM以外はCRC32が一致しました!
$ ./crc
Usage: crc filename crc32 size [addr]
$ ./crc TACSCAN.ROM 0da13158 800
crc32=0da13158,size=0800
crc32=0da13158,addr=0000-07ff
$ ./crc TACSCAN.ROM 98de6fd5 800
crc32=98de6fd5,size=0800
crc32=98de6fd5,addr=0800-0fff
$ ./crc TACSCAN.ROM dc400074 800
crc32=dc400074,size=0800
crc32=dc400074,addr=1000-17ff
$ ./crc TACSCAN.ROM 2caf6f7e 800
crc32=2caf6f7e,size=0800
crc32=2caf6f7e,addr=1800-1fff
$ ./crc TACSCAN.ROM 1495ce3d 800
crc32=1495ce3d,size=0800
crc32=1495ce3d,addr=2000-27ff
$ ./crc TACSCAN.ROM ab7fc5d9 800
crc32=ab7fc5d9,size=0800
crc32=ab7fc5d9,addr=2800-2fff
$ ./crc TACSCAN.ROM cf5e5016 800
crc32=cf5e5016,size=0800
crc32=cf5e5016,addr=3000-37ff
$ ./crc TACSCAN.ROM b61a3ab3 800
crc32=b61a3ab3,size=0800
crc32=b61a3ab3,addr=3800-3fff
$ ./crc TACSCAN.ROM bc0273b1 800
crc32=bc0273b1,size=0800
crc32=bc0273b1,addr=4000-47ff
$ ./crc TACSCAN.ROM 7894da98 800
crc32=7894da98,size=0800
crc32=7894da98,addr=4800-4fff
$ ./crc TACSCAN.ROM db865654 800
crc32=db865654,size=0800
crc32=db865654,addr=5000-57ff
$ ./crc TACSCAN.ROM 2c2454de 800
crc32=2c2454de,size=0800
crc32=2c2454de,addr=5800-5fff
$ ./crc TACSCAN.ROM 77028885 800
crc32=77028885,size=0800
crc32=77028885,addr=6000-67ff
$ ./crc TACSCAN.ROM babe5cf1 800
crc32=babe5cf1,size=0800
crc32=babe5cf1,addr=6800-6fff
$ ./crc TACSCAN.ROM 1b98b618 800
crc32=1b98b618,size=0800
crc32=1b98b618,addr=7000-77ff
$ ./crc TACSCAN.ROM cb3ded3b 800
crc32=cb3ded3b,size=0800
crc32=cb3ded3b,addr=7800-7fff
$ ./crc TACSCAN.ROM 43016a79 800
crc32=43016a79,size=0800
crc32=43016a79,addr=8000-87ff
$ ./crc TACSCAN.ROM a4397772 800
crc32=a4397772,size=0800
crc32=a4397772,addr=8800-8fff
$ ./crc TACSCAN.ROM 002f3bc4 800
crc32=002f3bc4,size=0800
crc32=002f3bc4,addr=9000-97ff
$ ./crc TACSCAN.ROM 0326d87a 800
crc32=0326d87a,size=0800
crc32=0326d87a,addr=9800-9fff
$ ./crc TACSCAN.ROM f35ed1ec 800
crc32=f35ed1ec,size=0800
crc32=f35ed1ec,addr=a000-a7ff
$ ./crc TACSCAN.ROM 6203be22 800
crc32=6203be22,size=0800
crc32=6203be22,addr=a800-afff
$ ./crc TACSCAN.ROM 56484d19 400
crc32=56484d19,size=0400
$ ./crc TACSCAN.ROM c609b79e 20
crc32=c609b79e,size=0020
リネームしたものをtacscan.zipにまとめて、mame/roms配下に置いて起動してみます。
>mame.exe tacscan
s-c.xyt-u39 NOT FOUND (tried in tacscan)
pr-82.cpu-u15 NOT FOUND (tried in tacscan)
Fatal error: Required files are missing, the machine cannot be run.
最近のMAMEではROMが不足しているようですが、古いMAME(mame070b.zip)ではPROMは不要です。
