Previous 199869 Revisions Next

r17461 Saturday 25th August, 2012 at 10:30:00 UTC by smf
turned WD33C93 into a device & made cps3 flash roms optional on cd sets (nw)
[src/emu/machine]wd33c93.c wd33c93.h
[src/mame/drivers]cps3.c
[src/mame/includes]cps3.h
[src/mess/drivers]ip20.c ip22.c

trunk/src/mame/includes/cps3.h
r17460r17461
8787   DECLARE_READ32_MEMBER(cps3_40C0004_r);
8888   DECLARE_READ32_MEMBER(cps3_eeprom_r);
8989   DECLARE_WRITE32_MEMBER(cps3_eeprom_w);
90   DECLARE_READ32_MEMBER(cps3_cdrom_r);
91   DECLARE_WRITE32_MEMBER(cps3_cdrom_w);
9290   DECLARE_WRITE32_MEMBER(cps3_ss_bank_base_w);
9391   DECLARE_WRITE32_MEMBER(cps3_ss_pal_base_w);
9492   DECLARE_WRITE32_MEMBER(cps3_palettedma_w);
trunk/src/mame/drivers/cps3.c
r17460r17461
17151715
17161716}
17171717
1718READ32_MEMBER(cps3_state::cps3_cdrom_r)
1719{
1720   UINT32 retval = 0;
1721
1722   if (ACCESSING_BITS_24_31)
1723   {
1724      retval |= ((UINT16)wd33c93_r(&space,0))<<16;
1725   }
1726
1727   if (ACCESSING_BITS_0_7)
1728   {
1729      retval |= (UINT16)wd33c93_r(&space,1);
1730   }
1731
1732   return retval;
1733}
1734
1735WRITE32_MEMBER(cps3_state::cps3_cdrom_w)
1736{
1737   if (ACCESSING_BITS_24_31)
1738   {
1739      wd33c93_w(&space,0,(data & 0x00ff0000)>>16);
1740   }
1741
1742   if (ACCESSING_BITS_0_7)
1743   {
1744      wd33c93_w(&space,1,(data & 0x000000ff)>>0);
1745   }
1746}
1747
17481718WRITE32_MEMBER(cps3_state::cps3_ss_bank_base_w)
17491719{
17501720   // might be scroll registers or something else..
r17460r17461
21972167   AM_RANGE(0x05100000, 0x05100003) AM_WRITE(cps3_irq12_ack_w )
21982168   AM_RANGE(0x05110000, 0x05110003) AM_WRITE(cps3_irq10_ack_w )
21992169
2200   AM_RANGE(0x05140000, 0x05140003) AM_READWRITE(cps3_cdrom_r, cps3_cdrom_w )
2170   AM_RANGE(0x05140000, 0x05140003) AM_DEVREADWRITE8("wd33c93", wd33c93_device, read, write, 0x00ff00ff )
22012171
22022172   AM_RANGE(0x06000000, 0x067fffff) AM_READWRITE(cps3_flash1_r, cps3_flash1_w ) /* Flash ROMs simm 1 */
22032173   AM_RANGE(0x06800000, 0x06ffffff) AM_READWRITE(cps3_flash2_r, cps3_flash2_w ) /* Flash ROMs simm 2 */
r17460r17461
23052275   NULL         /* command completion IRQ */
23062276};
23072277
2308static MACHINE_START( cps3 )
2309{
2310   wd33c93_init(machine, &scsi_intf);
2311}
2312
23132278static MACHINE_RESET( cps3 )
23142279{
23152280   cps3_state *state = machine.driver_data<cps3_state>();
r17460r17461
25442509   MCFG_CPU_PERIODIC_INT(cps3_other_interrupt,80) /* ?source? */
25452510   MCFG_CPU_CONFIG(sh2_conf_cps3)
25462511
2512   MCFG_WD33C93_ADD("wd33c93", scsi_intf);
25472513   MCFG_SCSIDEV_ADD("cdrom", SCSICD, SCSI_ID_1)
25482514
25492515   /* video hardware */
r17460r17461
25612527         42.9545MHz / 15.4445kHz = 2781.217 / 6 = 463.536 -> unlikely
25622528*/
25632529
2564   MCFG_MACHINE_START(cps3)
25652530   MCFG_MACHINE_RESET(cps3)
25662531   MCFG_NVRAM_ADD_0FILL("eeprom")
25672532   MCFG_PALETTE_LENGTH(0x10000) // actually 0x20000 ...
r17460r17461
26252590   MCFG_FRAGMENT_ADD(simm5_128mbit)
26262591MACHINE_CONFIG_END
26272592
2628#define REDEARTH_961121_FLASH \
2629   ROM_REGION( 0x200000, "simm1.0", 0 ) ROM_LOAD( "redearth(__961121)-simm1.0", 0x00000, 0x200000, CRC(cad468f8) SHA1(b3aa4f7d3fae84e8821417ccde9528d3eda2b7a6) ) \
2630   ROM_REGION( 0x200000, "simm1.1", 0 ) ROM_LOAD( "redearth(__961121)-simm1.1", 0x00000, 0x200000, CRC(e9721d89) SHA1(5c63d10bdbce52d50b6dde14d4a0f1369383d656) ) \
2631   ROM_REGION( 0x200000, "simm1.2", 0 ) ROM_LOAD( "redearth(__961121)-simm1.2", 0x00000, 0x200000, CRC(2889ec98) SHA1(a94310eb4777f908d87e9d90969db8504b4140ff) ) \
2632   ROM_REGION( 0x200000, "simm1.3", 0 ) ROM_LOAD( "redearth(__961121)-simm1.3", 0x00000, 0x200000, CRC(5a6cd148) SHA1(d65c6e8378a91828474a16a3bbcd13c4b3b15f13) ) \
2633   ROM_REGION( 0x200000, "simm3.0", 0 ) ROM_LOAD( "redearth-simm3.0", 0x00000, 0x200000, CRC(83350cc5) SHA1(922b1abf80a4a89f35279b66311a7369d3965bd0) ) \
2634   ROM_REGION( 0x200000, "simm3.1", 0 ) ROM_LOAD( "redearth-simm3.1", 0x00000, 0x200000, CRC(56734de6) SHA1(75699fa6efe5bec335e4b02e15b3c45726b68fa8) ) \
2635   ROM_REGION( 0x200000, "simm3.2", 0 ) ROM_LOAD( "redearth-simm3.2", 0x00000, 0x200000, CRC(800ea0f1) SHA1(33871ab56dc1cd24441389d53e43fb8e43b149d9) ) \
2636   ROM_REGION( 0x200000, "simm3.3", 0 ) ROM_LOAD( "redearth-simm3.3", 0x00000, 0x200000, CRC(97e9146c) SHA1(ab7744709615081440bee72f4080d6fd5b938668) ) \
2637   ROM_REGION( 0x200000, "simm3.4", 0 ) ROM_LOAD( "redearth-simm3.4", 0x00000, 0x200000, CRC(0cb1d648) SHA1(7042a590c2b7ec55323062127e254da3cdc790a1) ) \
2638   ROM_REGION( 0x200000, "simm3.5", 0 ) ROM_LOAD( "redearth-simm3.5", 0x00000, 0x200000, CRC(7a1099f0) SHA1(c6a92ec86eb24485f1db530e0e78f647e8432231) ) \
2639   ROM_REGION( 0x200000, "simm3.6", 0 ) ROM_LOAD( "redearth-simm3.6", 0x00000, 0x200000, CRC(aeff8f54) SHA1(fd760e237c2e5fb2da45e32a1c12fd3defb4c3e4) ) \
2640   ROM_REGION( 0x200000, "simm3.7", 0 ) ROM_LOAD( "redearth-simm3.7", 0x00000, 0x200000, CRC(f770acd0) SHA1(4b3ccb6f91568f95f04ede6c574144918d131201) ) \
2641   ROM_REGION( 0x200000, "simm4.0", 0 ) ROM_LOAD( "redearth-simm4.0", 0x00000, 0x200000, CRC(301e56f2) SHA1(4847d971bff70a2aeed4599e1201c7ec9677da60) ) \
2642   ROM_REGION( 0x200000, "simm4.1", 0 ) ROM_LOAD( "redearth-simm4.1", 0x00000, 0x200000, CRC(2048e103) SHA1(b21f95b05cd99749bd3f25cc71b2671c2026847b) ) \
2643   ROM_REGION( 0x200000, "simm4.2", 0 ) ROM_LOAD( "redearth-simm4.2", 0x00000, 0x200000, CRC(c9433455) SHA1(63a269d76bac332c2e991d0f6a20c35e0e88680a) ) \
2644   ROM_REGION( 0x200000, "simm4.3", 0 ) ROM_LOAD( "redearth-simm4.3", 0x00000, 0x200000, CRC(c02171a8) SHA1(2e9228729b27a6113d9f2e42af310a834979f714) ) \
2645   ROM_REGION( 0x200000, "simm4.4", 0 ) ROM_LOAD( "redearth-simm4.4", 0x00000, 0x200000, CRC(2ddbf276) SHA1(b232baaa8edc8db18f8a3bdcc2d38fe984a94a34) ) \
2646   ROM_REGION( 0x200000, "simm4.5", 0 ) ROM_LOAD( "redearth-simm4.5", 0x00000, 0x200000, CRC(fea820a6) SHA1(55ee8ef95751f5a509fb126513e1b2a70a3414e5) ) \
2647   ROM_REGION( 0x200000, "simm4.6", 0 ) ROM_LOAD( "redearth-simm4.6", 0x00000, 0x200000, CRC(c7528df1) SHA1(aa312f80c2d7759d18d1aa8d416cf932b2850824) ) \
2648   ROM_REGION( 0x200000, "simm4.7", 0 ) ROM_LOAD( "redearth-simm4.7", 0x00000, 0x200000, CRC(2449cf3b) SHA1(c60d8042136d74e547f668ad787cae529c42eed9) ) \
2649   ROM_REGION( 0x200000, "simm5.0", 0 ) ROM_LOAD( "redearth-simm5.0", 0x00000, 0x200000, CRC(424451b9) SHA1(250fb92254c9e7ff5bc8dbeea5872f8a771dc9bd) ) \
2650   ROM_REGION( 0x200000, "simm5.1", 0 ) ROM_LOAD( "redearth-simm5.1", 0x00000, 0x200000, CRC(9b8cb56b) SHA1(2ff1081dc99bb7c2f1e036f4c112137c96b83d23) ) \
2593#define REDEARTH_961121_FLASH( flags ) \
2594   ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "redearth(__961121)-simm1.0", 0x00000, 0x200000, CRC(cad468f8) SHA1(b3aa4f7d3fae84e8821417ccde9528d3eda2b7a6), flags ) \
2595   ROM_REGION( 0x200000, "simm1.1", 0 ) ROMX_LOAD( "redearth(__961121)-simm1.1", 0x00000, 0x200000, CRC(e9721d89) SHA1(5c63d10bdbce52d50b6dde14d4a0f1369383d656), flags ) \
2596   ROM_REGION( 0x200000, "simm1.2", 0 ) ROMX_LOAD( "redearth(__961121)-simm1.2", 0x00000, 0x200000, CRC(2889ec98) SHA1(a94310eb4777f908d87e9d90969db8504b4140ff), flags ) \
2597   ROM_REGION( 0x200000, "simm1.3", 0 ) ROMX_LOAD( "redearth(__961121)-simm1.3", 0x00000, 0x200000, CRC(5a6cd148) SHA1(d65c6e8378a91828474a16a3bbcd13c4b3b15f13), flags ) \
2598   ROM_REGION( 0x200000, "simm3.0", 0 ) ROMX_LOAD( "redearth-simm3.0", 0x00000, 0x200000, CRC(83350cc5) SHA1(922b1abf80a4a89f35279b66311a7369d3965bd0), flags ) \
2599   ROM_REGION( 0x200000, "simm3.1", 0 ) ROMX_LOAD( "redearth-simm3.1", 0x00000, 0x200000, CRC(56734de6) SHA1(75699fa6efe5bec335e4b02e15b3c45726b68fa8), flags ) \
2600   ROM_REGION( 0x200000, "simm3.2", 0 ) ROMX_LOAD( "redearth-simm3.2", 0x00000, 0x200000, CRC(800ea0f1) SHA1(33871ab56dc1cd24441389d53e43fb8e43b149d9), flags ) \
2601   ROM_REGION( 0x200000, "simm3.3", 0 ) ROMX_LOAD( "redearth-simm3.3", 0x00000, 0x200000, CRC(97e9146c) SHA1(ab7744709615081440bee72f4080d6fd5b938668), flags ) \
2602   ROM_REGION( 0x200000, "simm3.4", 0 ) ROMX_LOAD( "redearth-simm3.4", 0x00000, 0x200000, CRC(0cb1d648) SHA1(7042a590c2b7ec55323062127e254da3cdc790a1), flags ) \
2603   ROM_REGION( 0x200000, "simm3.5", 0 ) ROMX_LOAD( "redearth-simm3.5", 0x00000, 0x200000, CRC(7a1099f0) SHA1(c6a92ec86eb24485f1db530e0e78f647e8432231), flags ) \
2604   ROM_REGION( 0x200000, "simm3.6", 0 ) ROMX_LOAD( "redearth-simm3.6", 0x00000, 0x200000, CRC(aeff8f54) SHA1(fd760e237c2e5fb2da45e32a1c12fd3defb4c3e4), flags ) \
2605   ROM_REGION( 0x200000, "simm3.7", 0 ) ROMX_LOAD( "redearth-simm3.7", 0x00000, 0x200000, CRC(f770acd0) SHA1(4b3ccb6f91568f95f04ede6c574144918d131201), flags ) \
2606   ROM_REGION( 0x200000, "simm4.0", 0 ) ROMX_LOAD( "redearth-simm4.0", 0x00000, 0x200000, CRC(301e56f2) SHA1(4847d971bff70a2aeed4599e1201c7ec9677da60), flags ) \
2607   ROM_REGION( 0x200000, "simm4.1", 0 ) ROMX_LOAD( "redearth-simm4.1", 0x00000, 0x200000, CRC(2048e103) SHA1(b21f95b05cd99749bd3f25cc71b2671c2026847b), flags ) \
2608   ROM_REGION( 0x200000, "simm4.2", 0 ) ROMX_LOAD( "redearth-simm4.2", 0x00000, 0x200000, CRC(c9433455) SHA1(63a269d76bac332c2e991d0f6a20c35e0e88680a), flags ) \
2609   ROM_REGION( 0x200000, "simm4.3", 0 ) ROMX_LOAD( "redearth-simm4.3", 0x00000, 0x200000, CRC(c02171a8) SHA1(2e9228729b27a6113d9f2e42af310a834979f714), flags ) \
2610   ROM_REGION( 0x200000, "simm4.4", 0 ) ROMX_LOAD( "redearth-simm4.4", 0x00000, 0x200000, CRC(2ddbf276) SHA1(b232baaa8edc8db18f8a3bdcc2d38fe984a94a34), flags ) \
2611   ROM_REGION( 0x200000, "simm4.5", 0 ) ROMX_LOAD( "redearth-simm4.5", 0x00000, 0x200000, CRC(fea820a6) SHA1(55ee8ef95751f5a509fb126513e1b2a70a3414e5), flags ) \
2612   ROM_REGION( 0x200000, "simm4.6", 0 ) ROMX_LOAD( "redearth-simm4.6", 0x00000, 0x200000, CRC(c7528df1) SHA1(aa312f80c2d7759d18d1aa8d416cf932b2850824), flags ) \
2613   ROM_REGION( 0x200000, "simm4.7", 0 ) ROMX_LOAD( "redearth-simm4.7", 0x00000, 0x200000, CRC(2449cf3b) SHA1(c60d8042136d74e547f668ad787cae529c42eed9), flags ) \
2614   ROM_REGION( 0x200000, "simm5.0", 0 ) ROMX_LOAD( "redearth-simm5.0", 0x00000, 0x200000, CRC(424451b9) SHA1(250fb92254c9e7ff5bc8dbeea5872f8a771dc9bd), flags ) \
2615   ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "redearth-simm5.1", 0x00000, 0x200000, CRC(9b8cb56b) SHA1(2ff1081dc99bb7c2f1e036f4c112137c96b83d23), flags ) \
26512616
26522617#define REDEARTH_961121_CDROM \
26532618   DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-wzd-5", 0, BAD_DUMP SHA1(e5676752b08283dc4a98c3d7b759e8aa6dcd0679) ) \
26542619
2655#define REDEARTH_961023_FLASH \
2656   ROM_REGION( 0x200000, "simm1.0", 0 ) ROM_LOAD( "redearth(__961023)-simm1.0", 0x00000, 0x200000, CRC(65bac346) SHA1(6f4ba0c2cae91a37fc97bea5fc8a50aaf6ca6513) ) \
2657   ROM_REGION( 0x200000, "simm1.1", 0 ) ROM_LOAD( "redearth(__961023)-simm1.1", 0x00000, 0x200000, CRC(a8ec4aae) SHA1(0012cb6ba630ddd74958f7759de34706bf919338) ) \
2658   ROM_REGION( 0x200000, "simm1.2", 0 ) ROM_LOAD( "redearth(__961023)-simm1.2", 0x00000, 0x200000, CRC(2caf8995) SHA1(ca012b6dec0481b043edf9c7e931bd952ec74ebb) ) \
2659   ROM_REGION( 0x200000, "simm1.3", 0 ) ROM_LOAD( "redearth(__961023)-simm1.3", 0x00000, 0x200000, CRC(13ebc21d) SHA1(465bdea0633526a8bf07b35495a5311c8bf213d5) ) \
2660   ROM_REGION( 0x200000, "simm3.0", 0 ) ROM_LOAD( "redearth-simm3.0",  0x00000, 0x200000, CRC(83350cc5) SHA1(922b1abf80a4a89f35279b66311a7369d3965bd0) ) \
2661   ROM_REGION( 0x200000, "simm3.1", 0 ) ROM_LOAD( "redearth-simm3.1",  0x00000, 0x200000, CRC(56734de6) SHA1(75699fa6efe5bec335e4b02e15b3c45726b68fa8) ) \
2662   ROM_REGION( 0x200000, "simm3.2", 0 ) ROM_LOAD( "redearth-simm3.2",  0x00000, 0x200000, CRC(800ea0f1) SHA1(33871ab56dc1cd24441389d53e43fb8e43b149d9) ) \
2663   ROM_REGION( 0x200000, "simm3.3", 0 ) ROM_LOAD( "redearth-simm3.3",  0x00000, 0x200000, CRC(97e9146c) SHA1(ab7744709615081440bee72f4080d6fd5b938668) ) \
2664   ROM_REGION( 0x200000, "simm3.4", 0 ) ROM_LOAD( "redearth-simm3.4",  0x00000, 0x200000, CRC(0cb1d648) SHA1(7042a590c2b7ec55323062127e254da3cdc790a1) ) \
2665   ROM_REGION( 0x200000, "simm3.5", 0 ) ROM_LOAD( "redearth-simm3.5",  0x00000, 0x200000, CRC(7a1099f0) SHA1(c6a92ec86eb24485f1db530e0e78f647e8432231) ) \
2666   ROM_REGION( 0x200000, "simm3.6", 0 ) ROM_LOAD( "redearth-simm3.6",  0x00000, 0x200000, CRC(aeff8f54) SHA1(fd760e237c2e5fb2da45e32a1c12fd3defb4c3e4) ) \
2667   ROM_REGION( 0x200000, "simm3.7", 0 ) ROM_LOAD( "redearth-simm3.7",  0x00000, 0x200000, CRC(f770acd0) SHA1(4b3ccb6f91568f95f04ede6c574144918d131201) ) \
2668   ROM_REGION( 0x200000, "simm4.0", 0 ) ROM_LOAD( "redearth-simm4.0",  0x00000, 0x200000, CRC(301e56f2) SHA1(4847d971bff70a2aeed4599e1201c7ec9677da60) ) \
2669   ROM_REGION( 0x200000, "simm4.1", 0 ) ROM_LOAD( "redearth-simm4.1",  0x00000, 0x200000, CRC(2048e103) SHA1(b21f95b05cd99749bd3f25cc71b2671c2026847b) ) \
2670   ROM_REGION( 0x200000, "simm4.2", 0 ) ROM_LOAD( "redearth-simm4.2",  0x00000, 0x200000, CRC(c9433455) SHA1(63a269d76bac332c2e991d0f6a20c35e0e88680a) ) \
2671   ROM_REGION( 0x200000, "simm4.3", 0 ) ROM_LOAD( "redearth-simm4.3",  0x00000, 0x200000, CRC(c02171a8) SHA1(2e9228729b27a6113d9f2e42af310a834979f714) ) \
2672   ROM_REGION( 0x200000, "simm4.4", 0 ) ROM_LOAD( "redearth-simm4.4",  0x00000, 0x200000, CRC(2ddbf276) SHA1(b232baaa8edc8db18f8a3bdcc2d38fe984a94a34) ) \
2673   ROM_REGION( 0x200000, "simm4.5", 0 ) ROM_LOAD( "redearth-simm4.5",  0x00000, 0x200000, CRC(fea820a6) SHA1(55ee8ef95751f5a509fb126513e1b2a70a3414e5) ) \
2674   ROM_REGION( 0x200000, "simm4.6", 0 ) ROM_LOAD( "redearth-simm4.6",  0x00000, 0x200000, CRC(c7528df1) SHA1(aa312f80c2d7759d18d1aa8d416cf932b2850824) ) \
2675   ROM_REGION( 0x200000, "simm4.7", 0 ) ROM_LOAD( "redearth-simm4.7",  0x00000, 0x200000, CRC(2449cf3b) SHA1(c60d8042136d74e547f668ad787cae529c42eed9) ) \
2676   ROM_REGION( 0x200000, "simm5.0", 0 ) ROM_LOAD( "redearth-simm5.0",  0x00000, 0x200000, CRC(424451b9) SHA1(250fb92254c9e7ff5bc8dbeea5872f8a771dc9bd) ) \
2677   ROM_REGION( 0x200000, "simm5.1", 0 ) ROM_LOAD( "redearth-simm5.1",  0x00000, 0x200000, CRC(9b8cb56b) SHA1(2ff1081dc99bb7c2f1e036f4c112137c96b83d23) ) \
2620#define REDEARTH_961023_FLASH( flags ) \
2621   ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "redearth(__961023)-simm1.0", 0x00000, 0x200000, CRC(65bac346) SHA1(6f4ba0c2cae91a37fc97bea5fc8a50aaf6ca6513), flags ) \
2622   ROM_REGION( 0x200000, "simm1.1", 0 ) ROMX_LOAD( "redearth(__961023)-simm1.1", 0x00000, 0x200000, CRC(a8ec4aae) SHA1(0012cb6ba630ddd74958f7759de34706bf919338), flags ) \
2623   ROM_REGION( 0x200000, "simm1.2", 0 ) ROMX_LOAD( "redearth(__961023)-simm1.2", 0x00000, 0x200000, CRC(2caf8995) SHA1(ca012b6dec0481b043edf9c7e931bd952ec74ebb), flags ) \
2624   ROM_REGION( 0x200000, "simm1.3", 0 ) ROMX_LOAD( "redearth(__961023)-simm1.3", 0x00000, 0x200000, CRC(13ebc21d) SHA1(465bdea0633526a8bf07b35495a5311c8bf213d5), flags ) \
2625   ROM_REGION( 0x200000, "simm3.0", 0 ) ROMX_LOAD( "redearth-simm3.0",  0x00000, 0x200000, CRC(83350cc5) SHA1(922b1abf80a4a89f35279b66311a7369d3965bd0), flags ) \
2626   ROM_REGION( 0x200000, "simm3.1", 0 ) ROMX_LOAD( "redearth-simm3.1",  0x00000, 0x200000, CRC(56734de6) SHA1(75699fa6efe5bec335e4b02e15b3c45726b68fa8), flags ) \
2627   ROM_REGION( 0x200000, "simm3.2", 0 ) ROMX_LOAD( "redearth-simm3.2",  0x00000, 0x200000, CRC(800ea0f1) SHA1(33871ab56dc1cd24441389d53e43fb8e43b149d9), flags ) \
2628   ROM_REGION( 0x200000, "simm3.3", 0 ) ROMX_LOAD( "redearth-simm3.3",  0x00000, 0x200000, CRC(97e9146c) SHA1(ab7744709615081440bee72f4080d6fd5b938668), flags ) \
2629   ROM_REGION( 0x200000, "simm3.4", 0 ) ROMX_LOAD( "redearth-simm3.4",  0x00000, 0x200000, CRC(0cb1d648) SHA1(7042a590c2b7ec55323062127e254da3cdc790a1), flags ) \
2630   ROM_REGION( 0x200000, "simm3.5", 0 ) ROMX_LOAD( "redearth-simm3.5",  0x00000, 0x200000, CRC(7a1099f0) SHA1(c6a92ec86eb24485f1db530e0e78f647e8432231), flags ) \
2631   ROM_REGION( 0x200000, "simm3.6", 0 ) ROMX_LOAD( "redearth-simm3.6",  0x00000, 0x200000, CRC(aeff8f54) SHA1(fd760e237c2e5fb2da45e32a1c12fd3defb4c3e4), flags ) \
2632   ROM_REGION( 0x200000, "simm3.7", 0 ) ROMX_LOAD( "redearth-simm3.7",  0x00000, 0x200000, CRC(f770acd0) SHA1(4b3ccb6f91568f95f04ede6c574144918d131201), flags ) \
2633   ROM_REGION( 0x200000, "simm4.0", 0 ) ROMX_LOAD( "redearth-simm4.0",  0x00000, 0x200000, CRC(301e56f2) SHA1(4847d971bff70a2aeed4599e1201c7ec9677da60), flags ) \
2634   ROM_REGION( 0x200000, "simm4.1", 0 ) ROMX_LOAD( "redearth-simm4.1",  0x00000, 0x200000, CRC(2048e103) SHA1(b21f95b05cd99749bd3f25cc71b2671c2026847b), flags ) \
2635   ROM_REGION( 0x200000, "simm4.2", 0 ) ROMX_LOAD( "redearth-simm4.2",  0x00000, 0x200000, CRC(c9433455) SHA1(63a269d76bac332c2e991d0f6a20c35e0e88680a), flags ) \
2636   ROM_REGION( 0x200000, "simm4.3", 0 ) ROMX_LOAD( "redearth-simm4.3",  0x00000, 0x200000, CRC(c02171a8) SHA1(2e9228729b27a6113d9f2e42af310a834979f714), flags ) \
2637   ROM_REGION( 0x200000, "simm4.4", 0 ) ROMX_LOAD( "redearth-simm4.4",  0x00000, 0x200000, CRC(2ddbf276) SHA1(b232baaa8edc8db18f8a3bdcc2d38fe984a94a34), flags ) \
2638   ROM_REGION( 0x200000, "simm4.5", 0 ) ROMX_LOAD( "redearth-simm4.5",  0x00000, 0x200000, CRC(fea820a6) SHA1(55ee8ef95751f5a509fb126513e1b2a70a3414e5), flags ) \
2639   ROM_REGION( 0x200000, "simm4.6", 0 ) ROMX_LOAD( "redearth-simm4.6",  0x00000, 0x200000, CRC(c7528df1) SHA1(aa312f80c2d7759d18d1aa8d416cf932b2850824), flags ) \
2640   ROM_REGION( 0x200000, "simm4.7", 0 ) ROMX_LOAD( "redearth-simm4.7",  0x00000, 0x200000, CRC(2449cf3b) SHA1(c60d8042136d74e547f668ad787cae529c42eed9), flags ) \
2641   ROM_REGION( 0x200000, "simm5.0", 0 ) ROMX_LOAD( "redearth-simm5.0",  0x00000, 0x200000, CRC(424451b9) SHA1(250fb92254c9e7ff5bc8dbeea5872f8a771dc9bd), flags ) \
2642   ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "redearth-simm5.1",  0x00000, 0x200000, CRC(9b8cb56b) SHA1(2ff1081dc99bb7c2f1e036f4c112137c96b83d23), flags ) \
26782643
26792644#define REDEARTH_961023_CDROM \
26802645   DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-wzd-3", 0, SHA1(a6ff67093db6bc80ee5fc46e4300e0177b213a52) ) \
26812646
2682#define SFIII_970204_FLASH \
2683   ROM_REGION( 0x200000, "simm1.0", 0 ) ROM_LOAD( "sfiii-simm1.0", 0x00000, 0x200000, CRC(cfc9e45a) SHA1(5d9061f76680642e730373e3ac29b24926dc5c0c) ) \
2684   ROM_REGION( 0x200000, "simm1.1", 0 ) ROM_LOAD( "sfiii-simm1.1", 0x00000, 0x200000, CRC(57920546) SHA1(c8452e7e101b8888fb806d1c9874c6be49fc7dbd) ) \
2685   ROM_REGION( 0x200000, "simm1.2", 0 ) ROM_LOAD( "sfiii-simm1.2", 0x00000, 0x200000, CRC(0d8f2680) SHA1(ade7b28acd11023696c4b20136f3d2f34da6b1be) ) \
2686   ROM_REGION( 0x200000, "simm1.3", 0 ) ROM_LOAD( "sfiii-simm1.3", 0x00000, 0x200000, CRC(ea4ca054) SHA1(f91c55c4e4fc428ce15d27be38aeed3a483d028c) ) \
2687   ROM_REGION( 0x200000, "simm3.0", 0 ) ROM_LOAD( "sfiii-simm3.0", 0x00000, 0x200000, CRC(080b3bd3) SHA1(f51bc5de95ab22b87ba09ea721285b308afd0bda) ) \
2688   ROM_REGION( 0x200000, "simm3.1", 0 ) ROM_LOAD( "sfiii-simm3.1", 0x00000, 0x200000, CRC(5c356f2f) SHA1(e969ce388f6e565d9612e65b0895560c7bb472e6) ) \
2689   ROM_REGION( 0x200000, "simm3.2", 0 ) ROM_LOAD( "sfiii-simm3.2", 0x00000, 0x200000, CRC(f9c97a45) SHA1(58a9691696c3f26a1150a451567c501f55cf1874) ) \
2690   ROM_REGION( 0x200000, "simm3.3", 0 ) ROM_LOAD( "sfiii-simm3.3", 0x00000, 0x200000, CRC(09de3ead) SHA1(2f41d84a96cb5e0d169200a4e9358ad5f407a2b7) ) \
2691   ROM_REGION( 0x200000, "simm3.4", 0 ) ROM_LOAD( "sfiii-simm3.4", 0x00000, 0x200000, CRC(7dd7e1f3) SHA1(bcf1023287457d97f09d9f6e9c93fdf24cc24a07) ) \
2692   ROM_REGION( 0x200000, "simm3.5", 0 ) ROM_LOAD( "sfiii-simm3.5", 0x00000, 0x200000, CRC(47a03a3a) SHA1(2509e5737059251888e4e1efbcdfac86a89ff1a1) ) \
2693   ROM_REGION( 0x200000, "simm3.6", 0 ) ROM_LOAD( "sfiii-simm3.6", 0x00000, 0x200000, CRC(e9eb7a26) SHA1(b8547edb7085e9149aa59d5226ad2d1976cab2bd) ) \
2694   ROM_REGION( 0x200000, "simm3.7", 0 ) ROM_LOAD( "sfiii-simm3.7", 0x00000, 0x200000, CRC(7f44395c) SHA1(f4d2e283cb3a4aad4eae4e13963a74e20be7c181) ) \
2695   ROM_REGION( 0x200000, "simm4.0", 0 ) ROM_LOAD( "sfiii-simm4.0", 0x00000, 0x200000, CRC(9ac080fc) SHA1(2e5024b35b147513ee42eda8748df9d669410377) ) \
2696   ROM_REGION( 0x200000, "simm4.1", 0 ) ROM_LOAD( "sfiii-simm4.1", 0x00000, 0x200000, CRC(6e2c4c94) SHA1(5a185cb76b5999bd826bc9b5ea584a5c3498f69d) ) \
2697   ROM_REGION( 0x200000, "simm4.2", 0 ) ROM_LOAD( "sfiii-simm4.2", 0x00000, 0x200000, CRC(8afc22d4) SHA1(04a419a3092c98fc4a7693e6acf30ae5a849e5c1) ) \
2698   ROM_REGION( 0x200000, "simm4.3", 0 ) ROM_LOAD( "sfiii-simm4.3", 0x00000, 0x200000, CRC(9f3873b8) SHA1(33499d6f02bc84c80acb56be078aaed7f8d1300d) ) \
2699   ROM_REGION( 0x200000, "simm4.4", 0 ) ROM_LOAD( "sfiii-simm4.4", 0x00000, 0x200000, CRC(166b3c97) SHA1(40e6e9d43cbbd8496b430931b8ab7db01dc1c6d5) ) \
2700   ROM_REGION( 0x200000, "simm4.5", 0 ) ROM_LOAD( "sfiii-simm4.5", 0x00000, 0x200000, CRC(e5ea2547) SHA1(a823c689098f37a3054d728bddb0033a4b8396f1) ) \
2701   ROM_REGION( 0x200000, "simm4.6", 0 ) ROM_LOAD( "sfiii-simm4.6", 0x00000, 0x200000, CRC(e85b9fdd) SHA1(264cb10fe9b3ede384c7db42bfc58ed5c21ea8f8) ) \
2702   ROM_REGION( 0x200000, "simm4.7", 0 ) ROM_LOAD( "sfiii-simm4.7", 0x00000, 0x200000, CRC(362c01b7) SHA1(9c404312a6aabe8e91e68dde193e3972bc1636cd) ) \
2703   ROM_REGION( 0x200000, "simm5.0", 0 ) ROM_LOAD( "sfiii-simm5.0", 0x00000, 0x200000, CRC(9bc108b2) SHA1(894dadab7957044bf877029c7f8e556d5d6e85d3) ) \
2704   ROM_REGION( 0x200000, "simm5.1", 0 ) ROM_LOAD( "sfiii-simm5.1", 0x00000, 0x200000, CRC(c6f1c066) SHA1(00de492dd1ef7aef05027a8c501c296b6602e917) ) \
2647#define SFIII_970204_FLASH( flags ) \
2648   ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "sfiii-simm1.0", 0x00000, 0x200000, CRC(cfc9e45a) SHA1(5d9061f76680642e730373e3ac29b24926dc5c0c), flags ) \
2649   ROM_REGION( 0x200000, "simm1.1", 0 ) ROMX_LOAD( "sfiii-simm1.1", 0x00000, 0x200000, CRC(57920546) SHA1(c8452e7e101b8888fb806d1c9874c6be49fc7dbd), flags ) \
2650   ROM_REGION( 0x200000, "simm1.2", 0 ) ROMX_LOAD( "sfiii-simm1.2", 0x00000, 0x200000, CRC(0d8f2680) SHA1(ade7b28acd11023696c4b20136f3d2f34da6b1be), flags ) \
2651   ROM_REGION( 0x200000, "simm1.3", 0 ) ROMX_LOAD( "sfiii-simm1.3", 0x00000, 0x200000, CRC(ea4ca054) SHA1(f91c55c4e4fc428ce15d27be38aeed3a483d028c), flags ) \
2652   ROM_REGION( 0x200000, "simm3.0", 0 ) ROMX_LOAD( "sfiii-simm3.0", 0x00000, 0x200000, CRC(080b3bd3) SHA1(f51bc5de95ab22b87ba09ea721285b308afd0bda), flags ) \
2653   ROM_REGION( 0x200000, "simm3.1", 0 ) ROMX_LOAD( "sfiii-simm3.1", 0x00000, 0x200000, CRC(5c356f2f) SHA1(e969ce388f6e565d9612e65b0895560c7bb472e6), flags ) \
2654   ROM_REGION( 0x200000, "simm3.2", 0 ) ROMX_LOAD( "sfiii-simm3.2", 0x00000, 0x200000, CRC(f9c97a45) SHA1(58a9691696c3f26a1150a451567c501f55cf1874), flags ) \
2655   ROM_REGION( 0x200000, "simm3.3", 0 ) ROMX_LOAD( "sfiii-simm3.3", 0x00000, 0x200000, CRC(09de3ead) SHA1(2f41d84a96cb5e0d169200a4e9358ad5f407a2b7), flags ) \
2656   ROM_REGION( 0x200000, "simm3.4", 0 ) ROMX_LOAD( "sfiii-simm3.4", 0x00000, 0x200000, CRC(7dd7e1f3) SHA1(bcf1023287457d97f09d9f6e9c93fdf24cc24a07), flags ) \
2657   ROM_REGION( 0x200000, "simm3.5", 0 ) ROMX_LOAD( "sfiii-simm3.5", 0x00000, 0x200000, CRC(47a03a3a) SHA1(2509e5737059251888e4e1efbcdfac86a89ff1a1), flags ) \
2658   ROM_REGION( 0x200000, "simm3.6", 0 ) ROMX_LOAD( "sfiii-simm3.6", 0x00000, 0x200000, CRC(e9eb7a26) SHA1(b8547edb7085e9149aa59d5226ad2d1976cab2bd), flags ) \
2659   ROM_REGION( 0x200000, "simm3.7", 0 ) ROMX_LOAD( "sfiii-simm3.7", 0x00000, 0x200000, CRC(7f44395c) SHA1(f4d2e283cb3a4aad4eae4e13963a74e20be7c181), flags ) \
2660   ROM_REGION( 0x200000, "simm4.0", 0 ) ROMX_LOAD( "sfiii-simm4.0", 0x00000, 0x200000, CRC(9ac080fc) SHA1(2e5024b35b147513ee42eda8748df9d669410377), flags ) \
2661   ROM_REGION( 0x200000, "simm4.1", 0 ) ROMX_LOAD( "sfiii-simm4.1", 0x00000, 0x200000, CRC(6e2c4c94) SHA1(5a185cb76b5999bd826bc9b5ea584a5c3498f69d), flags ) \
2662   ROM_REGION( 0x200000, "simm4.2", 0 ) ROMX_LOAD( "sfiii-simm4.2", 0x00000, 0x200000, CRC(8afc22d4) SHA1(04a419a3092c98fc4a7693e6acf30ae5a849e5c1), flags ) \
2663   ROM_REGION( 0x200000, "simm4.3", 0 ) ROMX_LOAD( "sfiii-simm4.3", 0x00000, 0x200000, CRC(9f3873b8) SHA1(33499d6f02bc84c80acb56be078aaed7f8d1300d), flags ) \
2664   ROM_REGION( 0x200000, "simm4.4", 0 ) ROMX_LOAD( "sfiii-simm4.4", 0x00000, 0x200000, CRC(166b3c97) SHA1(40e6e9d43cbbd8496b430931b8ab7db01dc1c6d5), flags ) \
2665   ROM_REGION( 0x200000, "simm4.5", 0 ) ROMX_LOAD( "sfiii-simm4.5", 0x00000, 0x200000, CRC(e5ea2547) SHA1(a823c689098f37a3054d728bddb0033a4b8396f1), flags ) \
2666   ROM_REGION( 0x200000, "simm4.6", 0 ) ROMX_LOAD( "sfiii-simm4.6", 0x00000, 0x200000, CRC(e85b9fdd) SHA1(264cb10fe9b3ede384c7db42bfc58ed5c21ea8f8), flags ) \
2667   ROM_REGION( 0x200000, "simm4.7", 0 ) ROMX_LOAD( "sfiii-simm4.7", 0x00000, 0x200000, CRC(362c01b7) SHA1(9c404312a6aabe8e91e68dde193e3972bc1636cd), flags ) \
2668   ROM_REGION( 0x200000, "simm5.0", 0 ) ROMX_LOAD( "sfiii-simm5.0", 0x00000, 0x200000, CRC(9bc108b2) SHA1(894dadab7957044bf877029c7f8e556d5d6e85d3), flags ) \
2669   ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "sfiii-simm5.1", 0x00000, 0x200000, CRC(c6f1c066) SHA1(00de492dd1ef7aef05027a8c501c296b6602e917), flags ) \
27052670
27062671#define SFIII_970204_CDROM \
27072672   DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-sf3-3", 0, BAD_DUMP SHA1(606e62cc5f46275e366e7dbb412dbaeb7e54cd0c) ) \
27082673
2709#define SFIII2_970930_FLASH \
2710   ROM_REGION( 0x200000, "simm1.0", 0 ) ROM_LOAD( "sfiii2-simm1.0", 0x00000, 0x200000, CRC(2d666f0b) SHA1(68de034b3a3aeaf4b26122a84ad48b0b763e4122) ) \
2711   ROM_REGION( 0x200000, "simm1.1", 0 ) ROM_LOAD( "sfiii2-simm1.1", 0x00000, 0x200000, CRC(2a3a8ef6) SHA1(31fb58fd1360ed8c951e2c4ac898a5a7104528d6) ) \
2712   ROM_REGION( 0x200000, "simm1.2", 0 ) ROM_LOAD( "sfiii2-simm1.2", 0x00000, 0x200000, CRC(161d2206) SHA1(58999f876e64c1a088e8765962a9cd504f22a706) ) \
2713   ROM_REGION( 0x200000, "simm1.3", 0 ) ROM_LOAD( "sfiii2-simm1.3", 0x00000, 0x200000, CRC(87ded8a3) SHA1(4ccef64f80d2ee63940b0958b500364ee515db51) ) \
2714   ROM_REGION( 0x200000, "simm2.0", 0 ) ROM_LOAD( "sfiii2-simm2.0", 0x00000, 0x200000, CRC(94a4ce0f) SHA1(2c8e26a66d1dcd17c22c70baa2a3ff5a54511514) ) \
2715   ROM_REGION( 0x200000, "simm2.1", 0 ) ROM_LOAD( "sfiii2-simm2.1", 0x00000, 0x200000, CRC(67585033) SHA1(24df9968a54c330fbe95f8e4dfe6e7dfd144ed0c) ) \
2716   ROM_REGION( 0x200000, "simm2.2", 0 ) ROM_LOAD( "sfiii2-simm2.2", 0x00000, 0x200000, CRC(fabffcd5) SHA1(9399f64c42f63a64e44a21a2690e44779943a2b2) ) \
2717   ROM_REGION( 0x200000, "simm2.3", 0 ) ROM_LOAD( "sfiii2-simm2.3", 0x00000, 0x200000, CRC(623c09ca) SHA1(dc9618a08bb7f44e569ac17605d268511155a14e) ) \
2718   ROM_REGION( 0x200000, "simm3.0", 0 ) ROM_LOAD( "sfiii2-simm3.0", 0x00000, 0x200000, CRC(dab2d766) SHA1(d265cc8b1b497eb4bedd63b3f1de60eb1c1db0df) ) \
2719   ROM_REGION( 0x200000, "simm3.1", 0 ) ROM_LOAD( "sfiii2-simm3.1", 0x00000, 0x200000, CRC(1f2aa34b) SHA1(38b224d34c4550f1f33c2c368e2a252d0d176cc0) ) \
2720   ROM_REGION( 0x200000, "simm3.2", 0 ) ROM_LOAD( "sfiii2-simm3.2", 0x00000, 0x200000, CRC(6f1a04eb) SHA1(980ca929114075d1920e2da44f9a22087cc92e55) ) \
2721   ROM_REGION( 0x200000, "simm3.3", 0 ) ROM_LOAD( "sfiii2-simm3.3", 0x00000, 0x200000, CRC(e05ef205) SHA1(e604e3832549740f953581fc91e850beda6a73c8) ) \
2722   ROM_REGION( 0x200000, "simm3.4", 0 ) ROM_LOAD( "sfiii2-simm3.4", 0x00000, 0x200000, CRC(affb074f) SHA1(0e76973807039bc66fd0f3233401cea8d2c45f84) ) \
2723   ROM_REGION( 0x200000, "simm3.5", 0 ) ROM_LOAD( "sfiii2-simm3.5", 0x00000, 0x200000, CRC(6962872e) SHA1(f16b2d0792697345145d0e9d950e912a2ffabe0d) ) \
2724   ROM_REGION( 0x200000, "simm3.6", 0 ) ROM_LOAD( "sfiii2-simm3.6", 0x00000, 0x200000, CRC(6eed87de) SHA1(5d5067ad36234c5efd57a2baebeffa2f44f2caec) ) \
2725   ROM_REGION( 0x200000, "simm3.7", 0 ) ROM_LOAD( "sfiii2-simm3.7", 0x00000, 0x200000, CRC(e18f479e) SHA1(cd4c1812ab422336bfa414e0b2098b472d2f9251) ) \
2726   ROM_REGION( 0x200000, "simm4.0", 0 ) ROM_LOAD( "sfiii2-simm4.0", 0x00000, 0x200000, CRC(764c2503) SHA1(cad3f20ade2e1d3ac52f8c318443da20062ae943) ) \
2727   ROM_REGION( 0x200000, "simm4.1", 0 ) ROM_LOAD( "sfiii2-simm4.1", 0x00000, 0x200000, CRC(3e16af6e) SHA1(afde2ed4bf3a3e95035fc02c572c5b83178a9467) ) \
2728   ROM_REGION( 0x200000, "simm4.2", 0 ) ROM_LOAD( "sfiii2-simm4.2", 0x00000, 0x200000, CRC(215705e6) SHA1(42d3849f8a9242a89ba465dbc205f310186c67cd) ) \
2729   ROM_REGION( 0x200000, "simm4.3", 0 ) ROM_LOAD( "sfiii2-simm4.3", 0x00000, 0x200000, CRC(e30cbd9c) SHA1(c205101ada86154921e09fed4f6908d15ec60761) ) \
2730   ROM_REGION( 0x200000, "simm4.4", 0 ) ROM_LOAD( "sfiii2-simm4.4", 0x00000, 0x200000, CRC(4185ded9) SHA1(24bf9b5f25d7753f1feb09b82611f7482f30d304) ) \
2731   ROM_REGION( 0x200000, "simm4.5", 0 ) ROM_LOAD( "sfiii2-simm4.5", 0x00000, 0x200000, CRC(4e8db013) SHA1(6816df2b6c60005fb375530ea93bb30a960c9b01) ) \
2732   ROM_REGION( 0x200000, "simm4.6", 0 ) ROM_LOAD( "sfiii2-simm4.6", 0x00000, 0x200000, CRC(08df48ce) SHA1(e8a3b68ebeab193539446c3f6e0a19b37f1f3495) ) \
2733   ROM_REGION( 0x200000, "simm4.7", 0 ) ROM_LOAD( "sfiii2-simm4.7", 0x00000, 0x200000, CRC(bb8f80a5) SHA1(35d9e86637d54405c97fdb7da9c42cc53907cae3) ) \
2734   ROM_REGION( 0x200000, "simm5.0", 0 ) ROM_LOAD( "sfiii2-simm5.0", 0x00000, 0x200000, CRC(ebdc4787) SHA1(f86e8ebf4b2214be166dbe4ea921058a552364ea) ) \
2735   ROM_REGION( 0x200000, "simm5.1", 0 ) ROM_LOAD( "sfiii2-simm5.1", 0x00000, 0x200000, CRC(6b7c550e) SHA1(77cdabccf3ecebf142ac86dffe6e24052941e3a1) ) \
2736   ROM_REGION( 0x200000, "simm5.2", 0 ) ROM_LOAD( "sfiii2-simm5.2", 0x00000, 0x200000, CRC(56ff8c50) SHA1(16f7602a4549a5b724e3fcdb75b0f3c397077b81) ) \
2737   ROM_REGION( 0x200000, "simm5.3", 0 ) ROM_LOAD( "sfiii2-simm5.3", 0x00000, 0x200000, CRC(3f2ac3e9) SHA1(a7b631f18ce572a42f46314f37a01d9840abc765) ) \
2738   ROM_REGION( 0x200000, "simm5.4", 0 ) ROM_LOAD( "sfiii2-simm5.4", 0x00000, 0x200000, CRC(48cda50e) SHA1(35e9f27fb8b69e3b3a313ea33dc53b1102e5f66e) ) \
2739   ROM_REGION( 0x200000, "simm5.5", 0 ) ROM_LOAD( "sfiii2-simm5.5", 0x00000, 0x200000, CRC(520c0af6) SHA1(7bed1b6707974eafbfb62ccb84a51df8a100e070) ) \
2740   ROM_REGION( 0x200000, "simm5.6", 0 ) ROM_LOAD( "sfiii2-simm5.6", 0x00000, 0x200000, CRC(2edc5986) SHA1(761ab2c67d0d873ffd74158eb77f7722c076f3e3) ) \
2741   ROM_REGION( 0x200000, "simm5.7", 0 ) ROM_LOAD( "sfiii2-simm5.7", 0x00000, 0x200000, CRC(93ffa199) SHA1(33ec2379f30c6fdf47ba72c1d0cad8bdd02f17df) ) \
2674#define SFIII2_970930_FLASH( flags ) \
2675   ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "sfiii2-simm1.0", 0x00000, 0x200000, CRC(2d666f0b) SHA1(68de034b3a3aeaf4b26122a84ad48b0b763e4122), flags ) \
2676   ROM_REGION( 0x200000, "simm1.1", 0 ) ROMX_LOAD( "sfiii2-simm1.1", 0x00000, 0x200000, CRC(2a3a8ef6) SHA1(31fb58fd1360ed8c951e2c4ac898a5a7104528d6), flags ) \
2677   ROM_REGION( 0x200000, "simm1.2", 0 ) ROMX_LOAD( "sfiii2-simm1.2", 0x00000, 0x200000, CRC(161d2206) SHA1(58999f876e64c1a088e8765962a9cd504f22a706), flags ) \
2678   ROM_REGION( 0x200000, "simm1.3", 0 ) ROMX_LOAD( "sfiii2-simm1.3", 0x00000, 0x200000, CRC(87ded8a3) SHA1(4ccef64f80d2ee63940b0958b500364ee515db51), flags ) \
2679   ROM_REGION( 0x200000, "simm2.0", 0 ) ROMX_LOAD( "sfiii2-simm2.0", 0x00000, 0x200000, CRC(94a4ce0f) SHA1(2c8e26a66d1dcd17c22c70baa2a3ff5a54511514), flags ) \
2680   ROM_REGION( 0x200000, "simm2.1", 0 ) ROMX_LOAD( "sfiii2-simm2.1", 0x00000, 0x200000, CRC(67585033) SHA1(24df9968a54c330fbe95f8e4dfe6e7dfd144ed0c), flags ) \
2681   ROM_REGION( 0x200000, "simm2.2", 0 ) ROMX_LOAD( "sfiii2-simm2.2", 0x00000, 0x200000, CRC(fabffcd5) SHA1(9399f64c42f63a64e44a21a2690e44779943a2b2), flags ) \
2682   ROM_REGION( 0x200000, "simm2.3", 0 ) ROMX_LOAD( "sfiii2-simm2.3", 0x00000, 0x200000, CRC(623c09ca) SHA1(dc9618a08bb7f44e569ac17605d268511155a14e), flags ) \
2683   ROM_REGION( 0x200000, "simm3.0", 0 ) ROMX_LOAD( "sfiii2-simm3.0", 0x00000, 0x200000, CRC(dab2d766) SHA1(d265cc8b1b497eb4bedd63b3f1de60eb1c1db0df), flags ) \
2684   ROM_REGION( 0x200000, "simm3.1", 0 ) ROMX_LOAD( "sfiii2-simm3.1", 0x00000, 0x200000, CRC(1f2aa34b) SHA1(38b224d34c4550f1f33c2c368e2a252d0d176cc0), flags ) \
2685   ROM_REGION( 0x200000, "simm3.2", 0 ) ROMX_LOAD( "sfiii2-simm3.2", 0x00000, 0x200000, CRC(6f1a04eb) SHA1(980ca929114075d1920e2da44f9a22087cc92e55), flags ) \
2686   ROM_REGION( 0x200000, "simm3.3", 0 ) ROMX_LOAD( "sfiii2-simm3.3", 0x00000, 0x200000, CRC(e05ef205) SHA1(e604e3832549740f953581fc91e850beda6a73c8), flags ) \
2687   ROM_REGION( 0x200000, "simm3.4", 0 ) ROMX_LOAD( "sfiii2-simm3.4", 0x00000, 0x200000, CRC(affb074f) SHA1(0e76973807039bc66fd0f3233401cea8d2c45f84), flags ) \
2688   ROM_REGION( 0x200000, "simm3.5", 0 ) ROMX_LOAD( "sfiii2-simm3.5", 0x00000, 0x200000, CRC(6962872e) SHA1(f16b2d0792697345145d0e9d950e912a2ffabe0d), flags ) \
2689   ROM_REGION( 0x200000, "simm3.6", 0 ) ROMX_LOAD( "sfiii2-simm3.6", 0x00000, 0x200000, CRC(6eed87de) SHA1(5d5067ad36234c5efd57a2baebeffa2f44f2caec), flags ) \
2690   ROM_REGION( 0x200000, "simm3.7", 0 ) ROMX_LOAD( "sfiii2-simm3.7", 0x00000, 0x200000, CRC(e18f479e) SHA1(cd4c1812ab422336bfa414e0b2098b472d2f9251), flags ) \
2691   ROM_REGION( 0x200000, "simm4.0", 0 ) ROMX_LOAD( "sfiii2-simm4.0", 0x00000, 0x200000, CRC(764c2503) SHA1(cad3f20ade2e1d3ac52f8c318443da20062ae943), flags ) \
2692   ROM_REGION( 0x200000, "simm4.1", 0 ) ROMX_LOAD( "sfiii2-simm4.1", 0x00000, 0x200000, CRC(3e16af6e) SHA1(afde2ed4bf3a3e95035fc02c572c5b83178a9467), flags ) \
2693   ROM_REGION( 0x200000, "simm4.2", 0 ) ROMX_LOAD( "sfiii2-simm4.2", 0x00000, 0x200000, CRC(215705e6) SHA1(42d3849f8a9242a89ba465dbc205f310186c67cd), flags ) \
2694   ROM_REGION( 0x200000, "simm4.3", 0 ) ROMX_LOAD( "sfiii2-simm4.3", 0x00000, 0x200000, CRC(e30cbd9c) SHA1(c205101ada86154921e09fed4f6908d15ec60761), flags ) \
2695   ROM_REGION( 0x200000, "simm4.4", 0 ) ROMX_LOAD( "sfiii2-simm4.4", 0x00000, 0x200000, CRC(4185ded9) SHA1(24bf9b5f25d7753f1feb09b82611f7482f30d304), flags ) \
2696   ROM_REGION( 0x200000, "simm4.5", 0 ) ROMX_LOAD( "sfiii2-simm4.5", 0x00000, 0x200000, CRC(4e8db013) SHA1(6816df2b6c60005fb375530ea93bb30a960c9b01), flags ) \
2697   ROM_REGION( 0x200000, "simm4.6", 0 ) ROMX_LOAD( "sfiii2-simm4.6", 0x00000, 0x200000, CRC(08df48ce) SHA1(e8a3b68ebeab193539446c3f6e0a19b37f1f3495), flags ) \
2698   ROM_REGION( 0x200000, "simm4.7", 0 ) ROMX_LOAD( "sfiii2-simm4.7", 0x00000, 0x200000, CRC(bb8f80a5) SHA1(35d9e86637d54405c97fdb7da9c42cc53907cae3), flags ) \
2699   ROM_REGION( 0x200000, "simm5.0", 0 ) ROMX_LOAD( "sfiii2-simm5.0", 0x00000, 0x200000, CRC(ebdc4787) SHA1(f86e8ebf4b2214be166dbe4ea921058a552364ea), flags ) \
2700   ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "sfiii2-simm5.1", 0x00000, 0x200000, CRC(6b7c550e) SHA1(77cdabccf3ecebf142ac86dffe6e24052941e3a1), flags ) \
2701   ROM_REGION( 0x200000, "simm5.2", 0 ) ROMX_LOAD( "sfiii2-simm5.2", 0x00000, 0x200000, CRC(56ff8c50) SHA1(16f7602a4549a5b724e3fcdb75b0f3c397077b81), flags ) \
2702   ROM_REGION( 0x200000, "simm5.3", 0 ) ROMX_LOAD( "sfiii2-simm5.3", 0x00000, 0x200000, CRC(3f2ac3e9) SHA1(a7b631f18ce572a42f46314f37a01d9840abc765), flags ) \
2703   ROM_REGION( 0x200000, "simm5.4", 0 ) ROMX_LOAD( "sfiii2-simm5.4", 0x00000, 0x200000, CRC(48cda50e) SHA1(35e9f27fb8b69e3b3a313ea33dc53b1102e5f66e), flags ) \
2704   ROM_REGION( 0x200000, "simm5.5", 0 ) ROMX_LOAD( "sfiii2-simm5.5", 0x00000, 0x200000, CRC(520c0af6) SHA1(7bed1b6707974eafbfb62ccb84a51df8a100e070), flags ) \
2705   ROM_REGION( 0x200000, "simm5.6", 0 ) ROMX_LOAD( "sfiii2-simm5.6", 0x00000, 0x200000, CRC(2edc5986) SHA1(761ab2c67d0d873ffd74158eb77f7722c076f3e3), flags ) \
2706   ROM_REGION( 0x200000, "simm5.7", 0 ) ROMX_LOAD( "sfiii2-simm5.7", 0x00000, 0x200000, CRC(93ffa199) SHA1(33ec2379f30c6fdf47ba72c1d0cad8bdd02f17df), flags ) \
27422707
27432708#define SFIII2_970930_CDROM \
27442709   DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-3ga000", 0, BAD_DUMP SHA1(4e162885b0b3265a56e0265037bcf247e820f027) ) \
27452710
2746#define JOJO_990128_FLASH \
2747   ROM_REGION( 0x200000, "simm1.0", 0 ) ROM_LOAD( "jojo(__990128)-simm1.0", 0x00000, 0x200000, CRC(9516948b) SHA1(4d7e6c1eb7d1bebff2a5069bcd186070a9105474) ) \
2748   ROM_REGION( 0x200000, "simm1.1", 0 ) ROM_LOAD( "jojo(__990128)-simm1.1", 0x00000, 0x200000, CRC(a847848d) SHA1(4df70309395f1d2a2e8f85bc34e17453d4a76f81) ) \
2749   ROM_REGION( 0x200000, "simm1.2", 0 ) ROM_LOAD( "jojo(__990128)-simm1.2", 0x00000, 0x200000, CRC(853e8846) SHA1(d120b7e2de9502e3261e8dd101f97589b2ed1c38) ) \
2750   ROM_REGION( 0x200000, "simm1.3", 0 ) ROM_LOAD( "jojo(__990128)-simm1.3", 0x00000, 0x200000, CRC(c04fe00e) SHA1(d09409b77460d19b56aaaf4a64356f3d37a1ee41) ) \
2751   ROM_REGION( 0x200000, "simm2.0", 0 ) ROM_LOAD( "jojo(__990128)-simm2.0", 0x00000, 0x200000, CRC(e1a4b3c8) SHA1(5dc298431644e1ca470aaab752a7d74f2f9dc7a1) ) \
2752   ROM_REGION( 0x200000, "simm2.1", 0 ) ROM_LOAD( "jojo(__990128)-simm2.1", 0x00000, 0x200000, CRC(189cef95) SHA1(ebe42a019358461557f69fb17d65d84d0f733415) ) \
2753   ROM_REGION( 0x200000, "simm2.2", 0 ) ROM_LOAD( "jojo(__990128)-simm2.2", 0x00000, 0x200000, CRC(47db5ec6) SHA1(e80271e4013e4391c2cc4229ff1fbd4a2b7c6f04) ) \
2754   ROM_REGION( 0x200000, "simm2.3", 0 ) ROM_LOAD( "jojo(__990128)-simm2.3", 0x00000, 0x200000, CRC(e3d3a155) SHA1(75e9b5da93dd8894cf70fa4dac56f3958be4c766) ) \
2755   ROM_REGION( 0x200000, "simm3.0", 0 ) ROM_LOAD( "jojo-simm3.0", 0x00000, 0x200000, CRC(de7fc9c1) SHA1(662b85a990b04c855773506c936317e62fab4a05) ) \
2756   ROM_REGION( 0x200000, "simm3.1", 0 ) ROM_LOAD( "jojo-simm3.1", 0x00000, 0x200000, CRC(43d053d3) SHA1(54ff0e9c164e0d1649522c330ccc7e5d79e0bc85) ) \
2757   ROM_REGION( 0x200000, "simm3.2", 0 ) ROM_LOAD( "jojo-simm3.2", 0x00000, 0x200000, CRC(2ffd7fa5) SHA1(9018c8e2b286a333ba606208e90caa764951ea3f) ) \
2758   ROM_REGION( 0x200000, "simm3.3", 0 ) ROM_LOAD( "jojo-simm3.3", 0x00000, 0x200000, CRC(4da4985b) SHA1(2552b1730a21ce17d58b69a79ad212a6a5829439) ) \
2759   ROM_REGION( 0x200000, "simm3.4", 0 ) ROM_LOAD( "jojo-simm3.4", 0x00000, 0x200000, CRC(fde98d72) SHA1(654563e12d033e8656dc74a268a08b15b171470d) ) \
2760   ROM_REGION( 0x200000, "simm3.5", 0 ) ROM_LOAD( "jojo-simm3.5", 0x00000, 0x200000, CRC(edb2a266) SHA1(19ebada8422c7f4bf70d0c9ad42b84268967b316) ) \
2761   ROM_REGION( 0x200000, "simm3.6", 0 ) ROM_LOAD( "jojo-simm3.6", 0x00000, 0x200000, CRC(be7cf319) SHA1(7893f5907992e6b903b2683980bba6d3d003bb06) ) \
2762   ROM_REGION( 0x200000, "simm3.7", 0 ) ROM_LOAD( "jojo-simm3.7", 0x00000, 0x200000, CRC(56fe1a9f) SHA1(01741fe1256f4e682f687e94040f4e8bbb8bedb2) ) \
2763   ROM_REGION( 0x200000, "simm4.0", 0 ) ROM_LOAD( "jojo-simm4.0", 0x00000, 0x200000, CRC(c4e7bf68) SHA1(a4d1ddea58a3d42db82a63a5e974cbf38d9b792a) ) \
2764   ROM_REGION( 0x200000, "simm4.1", 0 ) ROM_LOAD( "jojo-simm4.1", 0x00000, 0x200000, CRC(b62b2719) SHA1(cb577b89e9e14fda67715716fefd47a782d518ab) ) \
2765   ROM_REGION( 0x200000, "simm4.2", 0 ) ROM_LOAD( "jojo-simm4.2", 0x00000, 0x200000, CRC(18d15809) SHA1(2b406cd1aaa4799a436213dcaa65473eacb4c6d7) ) \
2766   ROM_REGION( 0x200000, "simm4.3", 0 ) ROM_LOAD( "jojo-simm4.3", 0x00000, 0x200000, CRC(9af0ad79) SHA1(075ee048e17b50188876f25d7a6571d6ace84d7d) ) \
2767   ROM_REGION( 0x200000, "simm4.4", 0 ) ROM_LOAD( "jojo-simm4.4", 0x00000, 0x200000, CRC(4124c1f0) SHA1(e4946a8029adc5d0bacead8d766521b4ccd1722b) ) \
2768   ROM_REGION( 0x200000, "simm4.5", 0 ) ROM_LOAD( "jojo-simm4.5", 0x00000, 0x200000, CRC(5e001fd1) SHA1(6457a39f336381b46e587aa2f5f719810ee5bcf9) ) \
2769   ROM_REGION( 0x200000, "simm4.6", 0 ) ROM_LOAD( "jojo-simm4.6", 0x00000, 0x200000, CRC(9affa23b) SHA1(e3d77e777c47277d841a9dadc1dd6e3157706a2e) ) \
2770   ROM_REGION( 0x200000, "simm4.7", 0 ) ROM_LOAD( "jojo-simm4.7", 0x00000, 0x200000, CRC(2511572a) SHA1(725adcf71bcee5c8bb839d2d1c5e3456b8c6886b) ) \
2771   ROM_REGION( 0x200000, "simm5.0", 0 ) ROM_LOAD( "jojo-simm5.0", 0x00000, 0x200000, CRC(797615fc) SHA1(29874be9f1da5515c90f5d601aa5924c263f8feb) ) \
2772   ROM_REGION( 0x200000, "simm5.1", 0 ) ROM_LOAD( "jojo-simm5.1", 0x00000, 0x200000, CRC(734fd162) SHA1(16cdfac74d18a6c2216afb1ce6afbd7f15297c32) ) \
2711#define JOJO_990128_FLASH( flags ) \
2712   ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "jojo(__990128)-simm1.0", 0x00000, 0x200000, CRC(9516948b) SHA1(4d7e6c1eb7d1bebff2a5069bcd186070a9105474), flags ) \
2713   ROM_REGION( 0x200000, "simm1.1", 0 ) ROMX_LOAD( "jojo(__990128)-simm1.1", 0x00000, 0x200000, CRC(a847848d) SHA1(4df70309395f1d2a2e8f85bc34e17453d4a76f81), flags ) \
2714   ROM_REGION( 0x200000, "simm1.2", 0 ) ROMX_LOAD( "jojo(__990128)-simm1.2", 0x00000, 0x200000, CRC(853e8846) SHA1(d120b7e2de9502e3261e8dd101f97589b2ed1c38), flags ) \
2715   ROM_REGION( 0x200000, "simm1.3", 0 ) ROMX_LOAD( "jojo(__990128)-simm1.3", 0x00000, 0x200000, CRC(c04fe00e) SHA1(d09409b77460d19b56aaaf4a64356f3d37a1ee41), flags ) \
2716   ROM_REGION( 0x200000, "simm2.0", 0 ) ROMX_LOAD( "jojo(__990128)-simm2.0", 0x00000, 0x200000, CRC(e1a4b3c8) SHA1(5dc298431644e1ca470aaab752a7d74f2f9dc7a1), flags ) \
2717   ROM_REGION( 0x200000, "simm2.1", 0 ) ROMX_LOAD( "jojo(__990128)-simm2.1", 0x00000, 0x200000, CRC(189cef95) SHA1(ebe42a019358461557f69fb17d65d84d0f733415), flags ) \
2718   ROM_REGION( 0x200000, "simm2.2", 0 ) ROMX_LOAD( "jojo(__990128)-simm2.2", 0x00000, 0x200000, CRC(47db5ec6) SHA1(e80271e4013e4391c2cc4229ff1fbd4a2b7c6f04), flags ) \
2719   ROM_REGION( 0x200000, "simm2.3", 0 ) ROMX_LOAD( "jojo(__990128)-simm2.3", 0x00000, 0x200000, CRC(e3d3a155) SHA1(75e9b5da93dd8894cf70fa4dac56f3958be4c766), flags ) \
2720   ROM_REGION( 0x200000, "simm3.0", 0 ) ROMX_LOAD( "jojo-simm3.0", 0x00000, 0x200000, CRC(de7fc9c1) SHA1(662b85a990b04c855773506c936317e62fab4a05), flags ) \
2721   ROM_REGION( 0x200000, "simm3.1", 0 ) ROMX_LOAD( "jojo-simm3.1", 0x00000, 0x200000, CRC(43d053d3) SHA1(54ff0e9c164e0d1649522c330ccc7e5d79e0bc85), flags ) \
2722   ROM_REGION( 0x200000, "simm3.2", 0 ) ROMX_LOAD( "jojo-simm3.2", 0x00000, 0x200000, CRC(2ffd7fa5) SHA1(9018c8e2b286a333ba606208e90caa764951ea3f), flags ) \
2723   ROM_REGION( 0x200000, "simm3.3", 0 ) ROMX_LOAD( "jojo-simm3.3", 0x00000, 0x200000, CRC(4da4985b) SHA1(2552b1730a21ce17d58b69a79ad212a6a5829439), flags ) \
2724   ROM_REGION( 0x200000, "simm3.4", 0 ) ROMX_LOAD( "jojo-simm3.4", 0x00000, 0x200000, CRC(fde98d72) SHA1(654563e12d033e8656dc74a268a08b15b171470d), flags ) \
2725   ROM_REGION( 0x200000, "simm3.5", 0 ) ROMX_LOAD( "jojo-simm3.5", 0x00000, 0x200000, CRC(edb2a266) SHA1(19ebada8422c7f4bf70d0c9ad42b84268967b316), flags ) \
2726   ROM_REGION( 0x200000, "simm3.6", 0 ) ROMX_LOAD( "jojo-simm3.6", 0x00000, 0x200000, CRC(be7cf319) SHA1(7893f5907992e6b903b2683980bba6d3d003bb06), flags ) \
2727   ROM_REGION( 0x200000, "simm3.7", 0 ) ROMX_LOAD( "jojo-simm3.7", 0x00000, 0x200000, CRC(56fe1a9f) SHA1(01741fe1256f4e682f687e94040f4e8bbb8bedb2), flags ) \
2728   ROM_REGION( 0x200000, "simm4.0", 0 ) ROMX_LOAD( "jojo-simm4.0", 0x00000, 0x200000, CRC(c4e7bf68) SHA1(a4d1ddea58a3d42db82a63a5e974cbf38d9b792a), flags ) \
2729   ROM_REGION( 0x200000, "simm4.1", 0 ) ROMX_LOAD( "jojo-simm4.1", 0x00000, 0x200000, CRC(b62b2719) SHA1(cb577b89e9e14fda67715716fefd47a782d518ab), flags ) \
2730   ROM_REGION( 0x200000, "simm4.2", 0 ) ROMX_LOAD( "jojo-simm4.2", 0x00000, 0x200000, CRC(18d15809) SHA1(2b406cd1aaa4799a436213dcaa65473eacb4c6d7), flags ) \
2731   ROM_REGION( 0x200000, "simm4.3", 0 ) ROMX_LOAD( "jojo-simm4.3", 0x00000, 0x200000, CRC(9af0ad79) SHA1(075ee048e17b50188876f25d7a6571d6ace84d7d), flags ) \
2732   ROM_REGION( 0x200000, "simm4.4", 0 ) ROMX_LOAD( "jojo-simm4.4", 0x00000, 0x200000, CRC(4124c1f0) SHA1(e4946a8029adc5d0bacead8d766521b4ccd1722b), flags ) \
2733   ROM_REGION( 0x200000, "simm4.5", 0 ) ROMX_LOAD( "jojo-simm4.5", 0x00000, 0x200000, CRC(5e001fd1) SHA1(6457a39f336381b46e587aa2f5f719810ee5bcf9), flags ) \
2734   ROM_REGION( 0x200000, "simm4.6", 0 ) ROMX_LOAD( "jojo-simm4.6", 0x00000, 0x200000, CRC(9affa23b) SHA1(e3d77e777c47277d841a9dadc1dd6e3157706a2e), flags ) \
2735   ROM_REGION( 0x200000, "simm4.7", 0 ) ROMX_LOAD( "jojo-simm4.7", 0x00000, 0x200000, CRC(2511572a) SHA1(725adcf71bcee5c8bb839d2d1c5e3456b8c6886b), flags ) \
2736   ROM_REGION( 0x200000, "simm5.0", 0 ) ROMX_LOAD( "jojo-simm5.0", 0x00000, 0x200000, CRC(797615fc) SHA1(29874be9f1da5515c90f5d601aa5924c263f8feb), flags ) \
2737   ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "jojo-simm5.1", 0x00000, 0x200000, CRC(734fd162) SHA1(16cdfac74d18a6c2216afb1ce6afbd7f15297c32), flags ) \
27732738
27742739#define JOJO_990128_CDROM \
27752740   DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-jjk-3", 0, SHA1(dc6e74b5e02e13f62cb8c4e234dd6061501e49c1) ) \
27762741
2777#define JOJO_990108_FLASH \
2778   ROM_REGION( 0x200000, "simm1.0", 0 ) ROM_LOAD( "jojo(__990108)-simm1.0", 0x00000, 0x200000, CRC(cfbc38d6) SHA1(c33e3a51fe8ab54e0912a1d6e662fe1ade73cee7) ) \
2779   ROM_REGION( 0x200000, "simm1.1", 0 ) ROM_LOAD( "jojo(__990108)-simm1.1", 0x00000, 0x200000, CRC(42578d94) SHA1(fa46f92ac1a6716430adec9ab27214a11fa61749) ) \
2780   ROM_REGION( 0x200000, "simm1.2", 0 ) ROM_LOAD( "jojo(__990108)-simm1.2", 0x00000, 0x200000, CRC(1b40c566) SHA1(9833799e9b4fecf7f9ce14bca64936646b3fdbde) ) \
2781   ROM_REGION( 0x200000, "simm1.3", 0 ) ROM_LOAD( "jojo(__990108)-simm1.3", 0x00000, 0x200000, CRC(bba709b4) SHA1(0dd71e575f2193505f2ab960568ac1eccf40d53f) ) \
2782   ROM_REGION( 0x200000, "simm2.0", 0 ) ROM_LOAD( "jojo(__990108)-simm2.0", 0x00000, 0x200000, CRC(417e5dc1) SHA1(54ee9596c1c51811f3bdef7dbe77b44b34f230ca) ) \
2783   ROM_REGION( 0x200000, "simm2.1", 0 ) ROM_LOAD( "jojo(__990108)-simm2.1", 0x00000, 0x200000, CRC(d3b3267d) SHA1(eb2cff347880f1489fb5b1b8bd16df8f50c7f494) ) \
2784   ROM_REGION( 0x200000, "simm2.2", 0 ) ROM_LOAD( "jojo(__990108)-simm2.2", 0x00000, 0x200000, CRC(c66d96b1) SHA1(909d5aac165748b549b6056a6091c41df012f5df) ) \
2785   ROM_REGION( 0x200000, "simm2.3", 0 ) ROM_LOAD( "jojo(__990108)-simm2.3", 0x00000, 0x200000, CRC(aa34cc85) SHA1(7677cc6fa913755fc699691b350698bbe8904118) ) \
2786   ROM_REGION( 0x200000, "simm3.0", 0 ) ROM_LOAD( "jojo-simm3.0", 0x00000, 0x200000, CRC(de7fc9c1) SHA1(662b85a990b04c855773506c936317e62fab4a05) ) \
2787   ROM_REGION( 0x200000, "simm3.1", 0 ) ROM_LOAD( "jojo-simm3.1", 0x00000, 0x200000, CRC(43d053d3) SHA1(54ff0e9c164e0d1649522c330ccc7e5d79e0bc85) ) \
2788   ROM_REGION( 0x200000, "simm3.2", 0 ) ROM_LOAD( "jojo-simm3.2", 0x00000, 0x200000, CRC(2ffd7fa5) SHA1(9018c8e2b286a333ba606208e90caa764951ea3f) ) \
2789   ROM_REGION( 0x200000, "simm3.3", 0 ) ROM_LOAD( "jojo-simm3.3", 0x00000, 0x200000, CRC(4da4985b) SHA1(2552b1730a21ce17d58b69a79ad212a6a5829439) ) \
2790   ROM_REGION( 0x200000, "simm3.4", 0 ) ROM_LOAD( "jojo-simm3.4", 0x00000, 0x200000, CRC(fde98d72) SHA1(654563e12d033e8656dc74a268a08b15b171470d) ) \
2791   ROM_REGION( 0x200000, "simm3.5", 0 ) ROM_LOAD( "jojo-simm3.5", 0x00000, 0x200000, CRC(edb2a266) SHA1(19ebada8422c7f4bf70d0c9ad42b84268967b316) ) \
2792   ROM_REGION( 0x200000, "simm3.6", 0 ) ROM_LOAD( "jojo-simm3.6", 0x00000, 0x200000, CRC(be7cf319) SHA1(7893f5907992e6b903b2683980bba6d3d003bb06) ) \
2793   ROM_REGION( 0x200000, "simm3.7", 0 ) ROM_LOAD( "jojo-simm3.7", 0x00000, 0x200000, CRC(56fe1a9f) SHA1(01741fe1256f4e682f687e94040f4e8bbb8bedb2) ) \
2794   ROM_REGION( 0x200000, "simm4.0", 0 ) ROM_LOAD( "jojo-simm4.0", 0x00000, 0x200000, CRC(c4e7bf68) SHA1(a4d1ddea58a3d42db82a63a5e974cbf38d9b792a) ) \
2795   ROM_REGION( 0x200000, "simm4.1", 0 ) ROM_LOAD( "jojo-simm4.1", 0x00000, 0x200000, CRC(b62b2719) SHA1(cb577b89e9e14fda67715716fefd47a782d518ab) ) \
2796   ROM_REGION( 0x200000, "simm4.2", 0 ) ROM_LOAD( "jojo-simm4.2", 0x00000, 0x200000, CRC(18d15809) SHA1(2b406cd1aaa4799a436213dcaa65473eacb4c6d7) ) \
2797   ROM_REGION( 0x200000, "simm4.3", 0 ) ROM_LOAD( "jojo-simm4.3", 0x00000, 0x200000, CRC(9af0ad79) SHA1(075ee048e17b50188876f25d7a6571d6ace84d7d) ) \
2798   ROM_REGION( 0x200000, "simm4.4", 0 ) ROM_LOAD( "jojo-simm4.4", 0x00000, 0x200000, CRC(4124c1f0) SHA1(e4946a8029adc5d0bacead8d766521b4ccd1722b) ) \
2799   ROM_REGION( 0x200000, "simm4.5", 0 ) ROM_LOAD( "jojo-simm4.5", 0x00000, 0x200000, CRC(5e001fd1) SHA1(6457a39f336381b46e587aa2f5f719810ee5bcf9) ) \
2800   ROM_REGION( 0x200000, "simm4.6", 0 ) ROM_LOAD( "jojo-simm4.6", 0x00000, 0x200000, CRC(9affa23b) SHA1(e3d77e777c47277d841a9dadc1dd6e3157706a2e) ) \
2801   ROM_REGION( 0x200000, "simm4.7", 0 ) ROM_LOAD( "jojo-simm4.7", 0x00000, 0x200000, CRC(2511572a) SHA1(725adcf71bcee5c8bb839d2d1c5e3456b8c6886b) ) \
2802   ROM_REGION( 0x200000, "simm5.0", 0 ) ROM_LOAD( "jojo-simm5.0", 0x00000, 0x200000, CRC(797615fc) SHA1(29874be9f1da5515c90f5d601aa5924c263f8feb) ) \
2803   ROM_REGION( 0x200000, "simm5.1", 0 ) ROM_LOAD( "jojo-simm5.1", 0x00000, 0x200000, CRC(734fd162) SHA1(16cdfac74d18a6c2216afb1ce6afbd7f15297c32) ) \
2742#define JOJO_990108_FLASH( flags ) \
2743   ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "jojo(__990108)-simm1.0", 0x00000, 0x200000, CRC(cfbc38d6) SHA1(c33e3a51fe8ab54e0912a1d6e662fe1ade73cee7), flags ) \
2744   ROM_REGION( 0x200000, "simm1.1", 0 ) ROMX_LOAD( "jojo(__990108)-simm1.1", 0x00000, 0x200000, CRC(42578d94) SHA1(fa46f92ac1a6716430adec9ab27214a11fa61749), flags ) \
2745   ROM_REGION( 0x200000, "simm1.2", 0 ) ROMX_LOAD( "jojo(__990108)-simm1.2", 0x00000, 0x200000, CRC(1b40c566) SHA1(9833799e9b4fecf7f9ce14bca64936646b3fdbde), flags ) \
2746   ROM_REGION( 0x200000, "simm1.3", 0 ) ROMX_LOAD( "jojo(__990108)-simm1.3", 0x00000, 0x200000, CRC(bba709b4) SHA1(0dd71e575f2193505f2ab960568ac1eccf40d53f), flags ) \
2747   ROM_REGION( 0x200000, "simm2.0", 0 ) ROMX_LOAD( "jojo(__990108)-simm2.0", 0x00000, 0x200000, CRC(417e5dc1) SHA1(54ee9596c1c51811f3bdef7dbe77b44b34f230ca), flags ) \
2748   ROM_REGION( 0x200000, "simm2.1", 0 ) ROMX_LOAD( "jojo(__990108)-simm2.1", 0x00000, 0x200000, CRC(d3b3267d) SHA1(eb2cff347880f1489fb5b1b8bd16df8f50c7f494), flags ) \
2749   ROM_REGION( 0x200000, "simm2.2", 0 ) ROMX_LOAD( "jojo(__990108)-simm2.2", 0x00000, 0x200000, CRC(c66d96b1) SHA1(909d5aac165748b549b6056a6091c41df012f5df), flags ) \
2750   ROM_REGION( 0x200000, "simm2.3", 0 ) ROMX_LOAD( "jojo(__990108)-simm2.3", 0x00000, 0x200000, CRC(aa34cc85) SHA1(7677cc6fa913755fc699691b350698bbe8904118), flags ) \
2751   ROM_REGION( 0x200000, "simm3.0", 0 ) ROMX_LOAD( "jojo-simm3.0", 0x00000, 0x200000, CRC(de7fc9c1) SHA1(662b85a990b04c855773506c936317e62fab4a05), flags ) \
2752   ROM_REGION( 0x200000, "simm3.1", 0 ) ROMX_LOAD( "jojo-simm3.1", 0x00000, 0x200000, CRC(43d053d3) SHA1(54ff0e9c164e0d1649522c330ccc7e5d79e0bc85), flags ) \
2753   ROM_REGION( 0x200000, "simm3.2", 0 ) ROMX_LOAD( "jojo-simm3.2", 0x00000, 0x200000, CRC(2ffd7fa5) SHA1(9018c8e2b286a333ba606208e90caa764951ea3f), flags ) \
2754   ROM_REGION( 0x200000, "simm3.3", 0 ) ROMX_LOAD( "jojo-simm3.3", 0x00000, 0x200000, CRC(4da4985b) SHA1(2552b1730a21ce17d58b69a79ad212a6a5829439), flags ) \
2755   ROM_REGION( 0x200000, "simm3.4", 0 ) ROMX_LOAD( "jojo-simm3.4", 0x00000, 0x200000, CRC(fde98d72) SHA1(654563e12d033e8656dc74a268a08b15b171470d), flags ) \
2756   ROM_REGION( 0x200000, "simm3.5", 0 ) ROMX_LOAD( "jojo-simm3.5", 0x00000, 0x200000, CRC(edb2a266) SHA1(19ebada8422c7f4bf70d0c9ad42b84268967b316), flags ) \
2757   ROM_REGION( 0x200000, "simm3.6", 0 ) ROMX_LOAD( "jojo-simm3.6", 0x00000, 0x200000, CRC(be7cf319) SHA1(7893f5907992e6b903b2683980bba6d3d003bb06), flags ) \
2758   ROM_REGION( 0x200000, "simm3.7", 0 ) ROMX_LOAD( "jojo-simm3.7", 0x00000, 0x200000, CRC(56fe1a9f) SHA1(01741fe1256f4e682f687e94040f4e8bbb8bedb2), flags ) \
2759   ROM_REGION( 0x200000, "simm4.0", 0 ) ROMX_LOAD( "jojo-simm4.0", 0x00000, 0x200000, CRC(c4e7bf68) SHA1(a4d1ddea58a3d42db82a63a5e974cbf38d9b792a), flags ) \
2760   ROM_REGION( 0x200000, "simm4.1", 0 ) ROMX_LOAD( "jojo-simm4.1", 0x00000, 0x200000, CRC(b62b2719) SHA1(cb577b89e9e14fda67715716fefd47a782d518ab), flags ) \
2761   ROM_REGION( 0x200000, "simm4.2", 0 ) ROMX_LOAD( "jojo-simm4.2", 0x00000, 0x200000, CRC(18d15809) SHA1(2b406cd1aaa4799a436213dcaa65473eacb4c6d7), flags ) \
2762   ROM_REGION( 0x200000, "simm4.3", 0 ) ROMX_LOAD( "jojo-simm4.3", 0x00000, 0x200000, CRC(9af0ad79) SHA1(075ee048e17b50188876f25d7a6571d6ace84d7d), flags ) \
2763   ROM_REGION( 0x200000, "simm4.4", 0 ) ROMX_LOAD( "jojo-simm4.4", 0x00000, 0x200000, CRC(4124c1f0) SHA1(e4946a8029adc5d0bacead8d766521b4ccd1722b), flags ) \
2764   ROM_REGION( 0x200000, "simm4.5", 0 ) ROMX_LOAD( "jojo-simm4.5", 0x00000, 0x200000, CRC(5e001fd1) SHA1(6457a39f336381b46e587aa2f5f719810ee5bcf9), flags ) \
2765   ROM_REGION( 0x200000, "simm4.6", 0 ) ROMX_LOAD( "jojo-simm4.6", 0x00000, 0x200000, CRC(9affa23b) SHA1(e3d77e777c47277d841a9dadc1dd6e3157706a2e), flags ) \
2766   ROM_REGION( 0x200000, "simm4.7", 0 ) ROMX_LOAD( "jojo-simm4.7", 0x00000, 0x200000, CRC(2511572a) SHA1(725adcf71bcee5c8bb839d2d1c5e3456b8c6886b), flags ) \
2767   ROM_REGION( 0x200000, "simm5.0", 0 ) ROMX_LOAD( "jojo-simm5.0", 0x00000, 0x200000, CRC(797615fc) SHA1(29874be9f1da5515c90f5d601aa5924c263f8feb), flags ) \
2768   ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "jojo-simm5.1", 0x00000, 0x200000, CRC(734fd162) SHA1(16cdfac74d18a6c2216afb1ce6afbd7f15297c32), flags ) \
28042769
28052770#define JOJO_990108_CDROM \
28062771   DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-jjk-2", 0, BAD_DUMP SHA1(0f5c09171409213e191a607ee89ca3a91fe9c96a) ) \
28072772
2808#define JOJO_981202_FLASH \
2809   ROM_REGION( 0x200000, "simm1.0", 0 ) ROM_LOAD( "jojo(__981202)-simm1.0", 0x00000, 0x200000, CRC(e06ba886) SHA1(4defd5e8e1e6d0c439fed8a6454e89a59e24ea4c) ) \
2810   ROM_REGION( 0x200000, "simm1.1", 0 ) ROM_LOAD( "jojo(__981202)-simm1.1", 0x00000, 0x200000, CRC(6dd177c8) SHA1(c39db980f6fcca9c221e9be6f777eaf38f1b136b) ) \
2811   ROM_REGION( 0x200000, "simm1.2", 0 ) ROM_LOAD( "jojo(__981202)-simm1.2", 0x00000, 0x200000, CRC(d35a15e0) SHA1(576b92a94505764a10b9bcf82c02335e7ef62014) ) \
2812   ROM_REGION( 0x200000, "simm1.3", 0 ) ROM_LOAD( "jojo(__981202)-simm1.3", 0x00000, 0x200000, CRC(66d865ac) SHA1(5248c3f124af62b4a672d954ef15f86629feeacb) ) \
2813   ROM_REGION( 0x200000, "simm2.0", 0 ) ROM_LOAD( "jojo(__981202)-simm2.0", 0x00000, 0x200000, CRC(417e5dc1) SHA1(54ee9596c1c51811f3bdef7dbe77b44b34f230ca) ) \
2814   ROM_REGION( 0x200000, "simm2.1", 0 ) ROM_LOAD( "jojo(__981202)-simm2.1", 0x00000, 0x200000, CRC(c891c887) SHA1(42e84f774ee655e9a39b016a3cfe94262ed2e9f1) ) \
2815   ROM_REGION( 0x200000, "simm2.2", 0 ) ROM_LOAD( "jojo(__981202)-simm2.2", 0x00000, 0x200000, CRC(1e101f30) SHA1(56518c1646bb9452334856bb8bcc58892f9f93b9) ) \
2816   ROM_REGION( 0x200000, "simm2.3", 0 ) ROM_LOAD( "jojo(__981202)-simm2.3", 0x00000, 0x200000, CRC(1fd1d3e4) SHA1(bed2b77d58f1fdf7ba5ca7126d3db1dd0f8c80b4) ) \
2817   ROM_REGION( 0x200000, "simm3.0", 0 ) ROM_LOAD( "jojo-simm3.0",  0x00000, 0x200000, CRC(de7fc9c1) SHA1(662b85a990b04c855773506c936317e62fab4a05) ) \
2818   ROM_REGION( 0x200000, "simm3.1", 0 ) ROM_LOAD( "jojo-simm3.1",  0x00000, 0x200000, CRC(43d053d3) SHA1(54ff0e9c164e0d1649522c330ccc7e5d79e0bc85) ) \
2819   ROM_REGION( 0x200000, "simm3.2", 0 ) ROM_LOAD( "jojo-simm3.2",  0x00000, 0x200000, CRC(2ffd7fa5) SHA1(9018c8e2b286a333ba606208e90caa764951ea3f) ) \
2820   ROM_REGION( 0x200000, "simm3.3", 0 ) ROM_LOAD( "jojo-simm3.3",  0x00000, 0x200000, CRC(4da4985b) SHA1(2552b1730a21ce17d58b69a79ad212a6a5829439) ) \
2821   ROM_REGION( 0x200000, "simm3.4", 0 ) ROM_LOAD( "jojo-simm3.4",  0x00000, 0x200000, CRC(fde98d72) SHA1(654563e12d033e8656dc74a268a08b15b171470d) ) \
2822   ROM_REGION( 0x200000, "simm3.5", 0 ) ROM_LOAD( "jojo-simm3.5",  0x00000, 0x200000, CRC(edb2a266) SHA1(19ebada8422c7f4bf70d0c9ad42b84268967b316) ) \
2823   ROM_REGION( 0x200000, "simm3.6", 0 ) ROM_LOAD( "jojo-simm3.6",  0x00000, 0x200000, CRC(be7cf319) SHA1(7893f5907992e6b903b2683980bba6d3d003bb06) ) \
2824   ROM_REGION( 0x200000, "simm3.7", 0 ) ROM_LOAD( "jojo-simm3.7",  0x00000, 0x200000, CRC(56fe1a9f) SHA1(01741fe1256f4e682f687e94040f4e8bbb8bedb2) ) \
2825   ROM_REGION( 0x200000, "simm4.0", 0 ) ROM_LOAD( "jojo-simm4.0",  0x00000, 0x200000, CRC(c4e7bf68) SHA1(a4d1ddea58a3d42db82a63a5e974cbf38d9b792a) ) \
2826   ROM_REGION( 0x200000, "simm4.1", 0 ) ROM_LOAD( "jojo-simm4.1",  0x00000, 0x200000, CRC(b62b2719) SHA1(cb577b89e9e14fda67715716fefd47a782d518ab) ) \
2827   ROM_REGION( 0x200000, "simm4.2", 0 ) ROM_LOAD( "jojo-simm4.2",  0x00000, 0x200000, CRC(18d15809) SHA1(2b406cd1aaa4799a436213dcaa65473eacb4c6d7) ) \
2828   ROM_REGION( 0x200000, "simm4.3", 0 ) ROM_LOAD( "jojo-simm4.3",  0x00000, 0x200000, CRC(9af0ad79) SHA1(075ee048e17b50188876f25d7a6571d6ace84d7d) ) \
2829   ROM_REGION( 0x200000, "simm4.4", 0 ) ROM_LOAD( "jojo-simm4.4",  0x00000, 0x200000, CRC(4124c1f0) SHA1(e4946a8029adc5d0bacead8d766521b4ccd1722b) ) \
2830   ROM_REGION( 0x200000, "simm4.5", 0 ) ROM_LOAD( "jojo-simm4.5",  0x00000, 0x200000, CRC(5e001fd1) SHA1(6457a39f336381b46e587aa2f5f719810ee5bcf9) ) \
2831   ROM_REGION( 0x200000, "simm4.6", 0 ) ROM_LOAD( "jojo-simm4.6",  0x00000, 0x200000, CRC(9affa23b) SHA1(e3d77e777c47277d841a9dadc1dd6e3157706a2e) ) \
2832   ROM_REGION( 0x200000, "simm4.7", 0 ) ROM_LOAD( "jojo-simm4.7",  0x00000, 0x200000, CRC(2511572a) SHA1(725adcf71bcee5c8bb839d2d1c5e3456b8c6886b) ) \
2833   ROM_REGION( 0x200000, "simm5.0", 0 ) ROM_LOAD( "jojo-simm5.0",  0x00000, 0x200000, CRC(797615fc) SHA1(29874be9f1da5515c90f5d601aa5924c263f8feb) ) \
2834   ROM_REGION( 0x200000, "simm5.1", 0 ) ROM_LOAD( "jojo-simm5.1",  0x00000, 0x200000, CRC(734fd162) SHA1(16cdfac74d18a6c2216afb1ce6afbd7f15297c32) ) \
2773#define JOJO_981202_FLASH( flags ) \
2774   ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "jojo(__981202)-simm1.0", 0x00000, 0x200000, CRC(e06ba886) SHA1(4defd5e8e1e6d0c439fed8a6454e89a59e24ea4c), flags ) \
2775   ROM_REGION( 0x200000, "simm1.1", 0 ) ROMX_LOAD( "jojo(__981202)-simm1.1", 0x00000, 0x200000, CRC(6dd177c8) SHA1(c39db980f6fcca9c221e9be6f777eaf38f1b136b), flags ) \
2776   ROM_REGION( 0x200000, "simm1.2", 0 ) ROMX_LOAD( "jojo(__981202)-simm1.2", 0x00000, 0x200000, CRC(d35a15e0) SHA1(576b92a94505764a10b9bcf82c02335e7ef62014), flags ) \
2777   ROM_REGION( 0x200000, "simm1.3", 0 ) ROMX_LOAD( "jojo(__981202)-simm1.3", 0x00000, 0x200000, CRC(66d865ac) SHA1(5248c3f124af62b4a672d954ef15f86629feeacb), flags ) \
2778   ROM_REGION( 0x200000, "simm2.0", 0 ) ROMX_LOAD( "jojo(__981202)-simm2.0", 0x00000, 0x200000, CRC(417e5dc1) SHA1(54ee9596c1c51811f3bdef7dbe77b44b34f230ca), flags ) \
2779   ROM_REGION( 0x200000, "simm2.1", 0 ) ROMX_LOAD( "jojo(__981202)-simm2.1", 0x00000, 0x200000, CRC(c891c887) SHA1(42e84f774ee655e9a39b016a3cfe94262ed2e9f1), flags ) \
2780   ROM_REGION( 0x200000, "simm2.2", 0 ) ROMX_LOAD( "jojo(__981202)-simm2.2", 0x00000, 0x200000, CRC(1e101f30) SHA1(56518c1646bb9452334856bb8bcc58892f9f93b9), flags ) \
2781   ROM_REGION( 0x200000, "simm2.3", 0 ) ROMX_LOAD( "jojo(__981202)-simm2.3", 0x00000, 0x200000, CRC(1fd1d3e4) SHA1(bed2b77d58f1fdf7ba5ca7126d3db1dd0f8c80b4), flags ) \
2782   ROM_REGION( 0x200000, "simm3.0", 0 ) ROMX_LOAD( "jojo-simm3.0",  0x00000, 0x200000, CRC(de7fc9c1) SHA1(662b85a990b04c855773506c936317e62fab4a05), flags ) \
2783   ROM_REGION( 0x200000, "simm3.1", 0 ) ROMX_LOAD( "jojo-simm3.1",  0x00000, 0x200000, CRC(43d053d3) SHA1(54ff0e9c164e0d1649522c330ccc7e5d79e0bc85), flags ) \
2784   ROM_REGION( 0x200000, "simm3.2", 0 ) ROMX_LOAD( "jojo-simm3.2",  0x00000, 0x200000, CRC(2ffd7fa5) SHA1(9018c8e2b286a333ba606208e90caa764951ea3f), flags ) \
2785   ROM_REGION( 0x200000, "simm3.3", 0 ) ROMX_LOAD( "jojo-simm3.3",  0x00000, 0x200000, CRC(4da4985b) SHA1(2552b1730a21ce17d58b69a79ad212a6a5829439), flags ) \
2786   ROM_REGION( 0x200000, "simm3.4", 0 ) ROMX_LOAD( "jojo-simm3.4",  0x00000, 0x200000, CRC(fde98d72) SHA1(654563e12d033e8656dc74a268a08b15b171470d), flags ) \
2787   ROM_REGION( 0x200000, "simm3.5", 0 ) ROMX_LOAD( "jojo-simm3.5",  0x00000, 0x200000, CRC(edb2a266) SHA1(19ebada8422c7f4bf70d0c9ad42b84268967b316), flags ) \
2788   ROM_REGION( 0x200000, "simm3.6", 0 ) ROMX_LOAD( "jojo-simm3.6",  0x00000, 0x200000, CRC(be7cf319) SHA1(7893f5907992e6b903b2683980bba6d3d003bb06), flags ) \
2789   ROM_REGION( 0x200000, "simm3.7", 0 ) ROMX_LOAD( "jojo-simm3.7",  0x00000, 0x200000, CRC(56fe1a9f) SHA1(01741fe1256f4e682f687e94040f4e8bbb8bedb2), flags ) \
2790   ROM_REGION( 0x200000, "simm4.0", 0 ) ROMX_LOAD( "jojo-simm4.0",  0x00000, 0x200000, CRC(c4e7bf68) SHA1(a4d1ddea58a3d42db82a63a5e974cbf38d9b792a), flags ) \
2791   ROM_REGION( 0x200000, "simm4.1", 0 ) ROMX_LOAD( "jojo-simm4.1",  0x00000, 0x200000, CRC(b62b2719) SHA1(cb577b89e9e14fda67715716fefd47a782d518ab), flags ) \
2792   ROM_REGION( 0x200000, "simm4.2", 0 ) ROMX_LOAD( "jojo-simm4.2",  0x00000, 0x200000, CRC(18d15809) SHA1(2b406cd1aaa4799a436213dcaa65473eacb4c6d7), flags ) \
2793   ROM_REGION( 0x200000, "simm4.3", 0 ) ROMX_LOAD( "jojo-simm4.3",  0x00000, 0x200000, CRC(9af0ad79) SHA1(075ee048e17b50188876f25d7a6571d6ace84d7d), flags ) \
2794   ROM_REGION( 0x200000, "simm4.4", 0 ) ROMX_LOAD( "jojo-simm4.4",  0x00000, 0x200000, CRC(4124c1f0) SHA1(e4946a8029adc5d0bacead8d766521b4ccd1722b), flags ) \
2795   ROM_REGION( 0x200000, "simm4.5", 0 ) ROMX_LOAD( "jojo-simm4.5",  0x00000, 0x200000, CRC(5e001fd1) SHA1(6457a39f336381b46e587aa2f5f719810ee5bcf9), flags ) \
2796   ROM_REGION( 0x200000, "simm4.6", 0 ) ROMX_LOAD( "jojo-simm4.6",  0x00000, 0x200000, CRC(9affa23b) SHA1(e3d77e777c47277d841a9dadc1dd6e3157706a2e), flags ) \
2797   ROM_REGION( 0x200000, "simm4.7", 0 ) ROMX_LOAD( "jojo-simm4.7",  0x00000, 0x200000, CRC(2511572a) SHA1(725adcf71bcee5c8bb839d2d1c5e3456b8c6886b), flags ) \
2798   ROM_REGION( 0x200000, "simm5.0", 0 ) ROMX_LOAD( "jojo-simm5.0",  0x00000, 0x200000, CRC(797615fc) SHA1(29874be9f1da5515c90f5d601aa5924c263f8feb), flags ) \
2799   ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "jojo-simm5.1",  0x00000, 0x200000, CRC(734fd162) SHA1(16cdfac74d18a6c2216afb1ce6afbd7f15297c32), flags ) \
28352800
28362801#define JOJO_981202_CDROM \
28372802   DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-jjk000", 0, BAD_DUMP SHA1(09869f6d8c032b527e02d815749dc8fab1289e86) ) \
28382803
2839#define SFIII3_990608_FLASH \
2840   ROM_REGION( 0x200000, "simm1.0", 0 ) ROM_LOAD( "sfiii3(__990608)-simm1.0", 0x00000, 0x200000, CRC(11dfd3cd) SHA1(dba1f77c46e80317e3279298411154dfb6db2309) ) \
2841   ROM_REGION( 0x200000, "simm1.1", 0 ) ROM_LOAD( "sfiii3(__990608)-simm1.1", 0x00000, 0x200000, CRC(c50585e6) SHA1(a289237957ea1c7f58b1c65e24c54ceb34cb1712) ) \
2842   ROM_REGION( 0x200000, "simm1.2", 0 ) ROM_LOAD( "sfiii3(__990608)-simm1.2", 0x00000, 0x200000, CRC(8e011d9b) SHA1(e0861bcd3c4f865474d7ce47aa9eeec7b3d28da6) ) \
2843   ROM_REGION( 0x200000, "simm1.3", 0 ) ROM_LOAD( "sfiii3(__990608)-simm1.3", 0x00000, 0x200000, CRC(dca8d92f) SHA1(7cd241641c943df446e2c75b88b5cf2d2ebf7b2e) ) \
2844   ROM_REGION( 0x200000, "simm2.0", 0 ) ROM_LOAD( "sfiii3-simm2.0", 0x00000, 0x200000, CRC(06eb969e) SHA1(d89f6a6585b76692d57d337f0f8186398fb056da) ) \
2845   ROM_REGION( 0x200000, "simm2.1", 0 ) ROM_LOAD( "sfiii3-simm2.1", 0x00000, 0x200000, CRC(e7039f82) SHA1(8e81e66b5a4f45ae14b070a491bde47a6a74499f) ) \
2846   ROM_REGION( 0x200000, "simm2.2", 0 ) ROM_LOAD( "sfiii3-simm2.2", 0x00000, 0x200000, CRC(645c96f7) SHA1(06d5a54874d4bf100b776131ec9060da209ad037) ) \
2847   ROM_REGION( 0x200000, "simm2.3", 0 ) ROM_LOAD( "sfiii3-simm2.3", 0x00000, 0x200000, CRC(610efab1) SHA1(bbc21ed6ff6220ff6017a3f02ebd9a341fbc9040) ) \
2848   ROM_REGION( 0x200000, "simm3.0", 0 ) ROM_LOAD( "sfiii3-simm3.0", 0x00000, 0x200000, CRC(7baa1f79) SHA1(3f409df28c24dd7221966b5340d59898ea756b6f) ) \
2849   ROM_REGION( 0x200000, "simm3.1", 0 ) ROM_LOAD( "sfiii3-simm3.1", 0x00000, 0x200000, CRC(234bf8fe) SHA1(2191781ae4d726cab28de97f27efa4a13f3bdd69) ) \
2850   ROM_REGION( 0x200000, "simm3.2", 0 ) ROM_LOAD( "sfiii3-simm3.2", 0x00000, 0x200000, CRC(d9ebc308) SHA1(af6a0dca77e5181c9f20533a06760a782c5fd51d) ) \
2851   ROM_REGION( 0x200000, "simm3.3", 0 ) ROM_LOAD( "sfiii3-simm3.3", 0x00000, 0x200000, CRC(293cba77) SHA1(294604cacdc24261aec4d39e489de91c41fa1758) ) \
2852   ROM_REGION( 0x200000, "simm3.4", 0 ) ROM_LOAD( "sfiii3-simm3.4", 0x00000, 0x200000, CRC(6055e747) SHA1(3813852c5a4a5355ef739ca8f0913bbd390b984b) ) \
2853   ROM_REGION( 0x200000, "simm3.5", 0 ) ROM_LOAD( "sfiii3-simm3.5", 0x00000, 0x200000, CRC(499aa6fc) SHA1(5b9b6eab3e99ff3e1d7c1f50b9d8bc6a81f3f8a9) ) \
2854   ROM_REGION( 0x200000, "simm3.6", 0 ) ROM_LOAD( "sfiii3-simm3.6", 0x00000, 0x200000, CRC(6c13879e) SHA1(de189b0b8f42bc7dd89983e62bc2ecb4237b3277) ) \
2855   ROM_REGION( 0x200000, "simm3.7", 0 ) ROM_LOAD( "sfiii3-simm3.7", 0x00000, 0x200000, CRC(cf4f8ede) SHA1(e0fb68fcb0e445f824c62fa828d6e1dcd7e3683a) ) \
2856   ROM_REGION( 0x200000, "simm4.0", 0 ) ROM_LOAD( "sfiii3-simm4.0", 0x00000, 0x200000, CRC(091fd5ba) SHA1(3327ad7c2623c119bf728af717ea2ce3b74673a9) ) \
2857   ROM_REGION( 0x200000, "simm4.1", 0 ) ROM_LOAD( "sfiii3-simm4.1", 0x00000, 0x200000, CRC(0bca8917) SHA1(b7b284e2f16f46d46bcfaae779b232c5b980924f) ) \
2858   ROM_REGION( 0x200000, "simm4.2", 0 ) ROM_LOAD( "sfiii3-simm4.2", 0x00000, 0x200000, CRC(a0fd578b) SHA1(100c9db9f00ecd88d518076f5a0822e6ac3695b3) ) \
2859   ROM_REGION( 0x200000, "simm4.3", 0 ) ROM_LOAD( "sfiii3-simm4.3", 0x00000, 0x200000, CRC(4bf8c699) SHA1(2c0b4288b5ebc5e54d9e782dfc39eb8c78fd4c21) ) \
2860   ROM_REGION( 0x200000, "simm4.4", 0 ) ROM_LOAD( "sfiii3-simm4.4", 0x00000, 0x200000, CRC(137b8785) SHA1(56a579520a8ce2abbf36be57777f024e80474eee) ) \
2861   ROM_REGION( 0x200000, "simm4.5", 0 ) ROM_LOAD( "sfiii3-simm4.5", 0x00000, 0x200000, CRC(4fb70671) SHA1(9aba83c18cfc099a5ce18793119bff0c2b9c777f) ) \
2862   ROM_REGION( 0x200000, "simm4.6", 0 ) ROM_LOAD( "sfiii3-simm4.6", 0x00000, 0x200000, CRC(832374a4) SHA1(c84629e32fbf47cb7b5b4ee7555bfc2ac9b3857f) ) \
2863   ROM_REGION( 0x200000, "simm4.7", 0 ) ROM_LOAD( "sfiii3-simm4.7", 0x00000, 0x200000, CRC(1c88576d) SHA1(0f039944d0c2305999ed5dbd351c3eb87812dc3b) ) \
2864   ROM_REGION( 0x200000, "simm5.0", 0 ) ROM_LOAD( "sfiii3-simm5.0", 0x00000, 0x200000, CRC(c67d9190) SHA1(d265475244099d0ec153059986f3445c7bd910a3) ) \
2865   ROM_REGION( 0x200000, "simm5.1", 0 ) ROM_LOAD( "sfiii3-simm5.1", 0x00000, 0x200000, CRC(6cb79868) SHA1(c94237f30e05bfcb2e23945530c812d9e4c73416) ) \
2866   ROM_REGION( 0x200000, "simm5.2", 0 ) ROM_LOAD( "sfiii3-simm5.2", 0x00000, 0x200000, CRC(df69930e) SHA1(c76b7c559a1d5558138afbc796249efa2f49f6a8) ) \
2867   ROM_REGION( 0x200000, "simm5.3", 0 ) ROM_LOAD( "sfiii3-simm5.3", 0x00000, 0x200000, CRC(333754e0) SHA1(4c18a569c26524a492ecd6f4c8b3c8e803a077d3) ) \
2868   ROM_REGION( 0x200000, "simm5.4", 0 ) ROM_LOAD( "sfiii3-simm5.4", 0x00000, 0x200000, CRC(78f6d417) SHA1(a69577cc5399fcf0a24548661168f27f3e7e8e40) ) \
2869   ROM_REGION( 0x200000, "simm5.5", 0 ) ROM_LOAD( "sfiii3-simm5.5", 0x00000, 0x200000, CRC(8ccad9b1) SHA1(f8bda399f87be2497b7ac39e9661f9863bf4f873) ) \
2870   ROM_REGION( 0x200000, "simm5.6", 0 ) ROM_LOAD( "sfiii3-simm5.6", 0x00000, 0x200000, CRC(85de59e5) SHA1(748b5c91f15777b85d8c1d35b685cd90d3185ec6) ) \
2871   ROM_REGION( 0x200000, "simm5.7", 0 ) ROM_LOAD( "sfiii3-simm5.7", 0x00000, 0x200000, CRC(ee7e29b3) SHA1(63dc30c6904ca2f58d229249bee5eef51fafa158) ) \
2872   ROM_REGION( 0x200000, "simm6.0", 0 ) ROM_LOAD( "sfiii3-simm6.0", 0x00000, 0x200000, CRC(8da69042) SHA1(fd3d08295342635b2136e48d543c9350d287bb22) ) \
2873   ROM_REGION( 0x200000, "simm6.1", 0 ) ROM_LOAD( "sfiii3-simm6.1", 0x00000, 0x200000, CRC(1c8c7ac4) SHA1(ac9f8353a4c356ef98aa7c226baba00b01f5a80f) ) \
2874   ROM_REGION( 0x200000, "simm6.2", 0 ) ROM_LOAD( "sfiii3-simm6.2", 0x00000, 0x200000, CRC(a671341d) SHA1(636f4c04962bc1e1ddb29d2e01244b00389b234f) ) \
2875   ROM_REGION( 0x200000, "simm6.3", 0 ) ROM_LOAD( "sfiii3-simm6.3", 0x00000, 0x200000, CRC(1a990249) SHA1(2acc639e2c0c53bf24096b8620eab090bc25d03b) ) \
2876   ROM_REGION( 0x200000, "simm6.4", 0 ) ROM_LOAD( "sfiii3-simm6.4", 0x00000, 0x200000, CRC(20cb39ac) SHA1(7d13a0fea1ef719dd2ff77dfb547d53c6023cc9e) ) \
2877   ROM_REGION( 0x200000, "simm6.5", 0 ) ROM_LOAD( "sfiii3-simm6.5", 0x00000, 0x200000, CRC(5f844b2f) SHA1(564e4934f89ed3b92a4c4874519f8f00f3b48696) ) \
2878   ROM_REGION( 0x200000, "simm6.6", 0 ) ROM_LOAD( "sfiii3-simm6.6", 0x00000, 0x200000, CRC(450e8d28) SHA1(885db658132aa27926df617ec2d2a1f38abdbb60) ) \
2879   ROM_REGION( 0x200000, "simm6.7", 0 ) ROM_LOAD( "sfiii3-simm6.7", 0x00000, 0x200000, CRC(cc5f4187) SHA1(248ddace21ed4736a56e92f77cc6ad219d7fef0b) ) \
2804#define SFIII3_990608_FLASH( flags ) \
2805   ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "sfiii3(__990608)-simm1.0", 0x00000, 0x200000, CRC(11dfd3cd) SHA1(dba1f77c46e80317e3279298411154dfb6db2309), flags ) \
2806   ROM_REGION( 0x200000, "simm1.1", 0 ) ROMX_LOAD( "sfiii3(__990608)-simm1.1", 0x00000, 0x200000, CRC(c50585e6) SHA1(a289237957ea1c7f58b1c65e24c54ceb34cb1712), flags ) \
2807   ROM_REGION( 0x200000, "simm1.2", 0 ) ROMX_LOAD( "sfiii3(__990608)-simm1.2", 0x00000, 0x200000, CRC(8e011d9b) SHA1(e0861bcd3c4f865474d7ce47aa9eeec7b3d28da6), flags ) \
2808   ROM_REGION( 0x200000, "simm1.3", 0 ) ROMX_LOAD( "sfiii3(__990608)-simm1.3", 0x00000, 0x200000, CRC(dca8d92f) SHA1(7cd241641c943df446e2c75b88b5cf2d2ebf7b2e), flags ) \
2809   ROM_REGION( 0x200000, "simm2.0", 0 ) ROMX_LOAD( "sfiii3-simm2.0", 0x00000, 0x200000, CRC(06eb969e) SHA1(d89f6a6585b76692d57d337f0f8186398fb056da), flags ) \
2810   ROM_REGION( 0x200000, "simm2.1", 0 ) ROMX_LOAD( "sfiii3-simm2.1", 0x00000, 0x200000, CRC(e7039f82) SHA1(8e81e66b5a4f45ae14b070a491bde47a6a74499f), flags ) \
2811   ROM_REGION( 0x200000, "simm2.2", 0 ) ROMX_LOAD( "sfiii3-simm2.2", 0x00000, 0x200000, CRC(645c96f7) SHA1(06d5a54874d4bf100b776131ec9060da209ad037), flags ) \
2812   ROM_REGION( 0x200000, "simm2.3", 0 ) ROMX_LOAD( "sfiii3-simm2.3", 0x00000, 0x200000, CRC(610efab1) SHA1(bbc21ed6ff6220ff6017a3f02ebd9a341fbc9040), flags ) \
2813   ROM_REGION( 0x200000, "simm3.0", 0 ) ROMX_LOAD( "sfiii3-simm3.0", 0x00000, 0x200000, CRC(7baa1f79) SHA1(3f409df28c24dd7221966b5340d59898ea756b6f), flags ) \
2814   ROM_REGION( 0x200000, "simm3.1", 0 ) ROMX_LOAD( "sfiii3-simm3.1", 0x00000, 0x200000, CRC(234bf8fe) SHA1(2191781ae4d726cab28de97f27efa4a13f3bdd69), flags ) \
2815   ROM_REGION( 0x200000, "simm3.2", 0 ) ROMX_LOAD( "sfiii3-simm3.2", 0x00000, 0x200000, CRC(d9ebc308) SHA1(af6a0dca77e5181c9f20533a06760a782c5fd51d), flags ) \
2816   ROM_REGION( 0x200000, "simm3.3", 0 ) ROMX_LOAD( "sfiii3-simm3.3", 0x00000, 0x200000, CRC(293cba77) SHA1(294604cacdc24261aec4d39e489de91c41fa1758), flags ) \
2817   ROM_REGION( 0x200000, "simm3.4", 0 ) ROMX_LOAD( "sfiii3-simm3.4", 0x00000, 0x200000, CRC(6055e747) SHA1(3813852c5a4a5355ef739ca8f0913bbd390b984b), flags ) \
2818   ROM_REGION( 0x200000, "simm3.5", 0 ) ROMX_LOAD( "sfiii3-simm3.5", 0x00000, 0x200000, CRC(499aa6fc) SHA1(5b9b6eab3e99ff3e1d7c1f50b9d8bc6a81f3f8a9), flags ) \
2819   ROM_REGION( 0x200000, "simm3.6", 0 ) ROMX_LOAD( "sfiii3-simm3.6", 0x00000, 0x200000, CRC(6c13879e) SHA1(de189b0b8f42bc7dd89983e62bc2ecb4237b3277), flags ) \
2820   ROM_REGION( 0x200000, "simm3.7", 0 ) ROMX_LOAD( "sfiii3-simm3.7", 0x00000, 0x200000, CRC(cf4f8ede) SHA1(e0fb68fcb0e445f824c62fa828d6e1dcd7e3683a), flags ) \
2821   ROM_REGION( 0x200000, "simm4.0", 0 ) ROMX_LOAD( "sfiii3-simm4.0", 0x00000, 0x200000, CRC(091fd5ba) SHA1(3327ad7c2623c119bf728af717ea2ce3b74673a9), flags ) \
2822   ROM_REGION( 0x200000, "simm4.1", 0 ) ROMX_LOAD( "sfiii3-simm4.1", 0x00000, 0x200000, CRC(0bca8917) SHA1(b7b284e2f16f46d46bcfaae779b232c5b980924f), flags ) \
2823   ROM_REGION( 0x200000, "simm4.2", 0 ) ROMX_LOAD( "sfiii3-simm4.2", 0x00000, 0x200000, CRC(a0fd578b) SHA1(100c9db9f00ecd88d518076f5a0822e6ac3695b3), flags ) \
2824   ROM_REGION( 0x200000, "simm4.3", 0 ) ROMX_LOAD( "sfiii3-simm4.3", 0x00000, 0x200000, CRC(4bf8c699) SHA1(2c0b4288b5ebc5e54d9e782dfc39eb8c78fd4c21), flags ) \
2825   ROM_REGION( 0x200000, "simm4.4", 0 ) ROMX_LOAD( "sfiii3-simm4.4", 0x00000, 0x200000, CRC(137b8785) SHA1(56a579520a8ce2abbf36be57777f024e80474eee), flags ) \
2826   ROM_REGION( 0x200000, "simm4.5", 0 ) ROMX_LOAD( "sfiii3-simm4.5", 0x00000, 0x200000, CRC(4fb70671) SHA1(9aba83c18cfc099a5ce18793119bff0c2b9c777f), flags ) \
2827   ROM_REGION( 0x200000, "simm4.6", 0 ) ROMX_LOAD( "sfiii3-simm4.6", 0x00000, 0x200000, CRC(832374a4) SHA1(c84629e32fbf47cb7b5b4ee7555bfc2ac9b3857f), flags ) \
2828   ROM_REGION( 0x200000, "simm4.7", 0 ) ROMX_LOAD( "sfiii3-simm4.7", 0x00000, 0x200000, CRC(1c88576d) SHA1(0f039944d0c2305999ed5dbd351c3eb87812dc3b), flags ) \
2829   ROM_REGION( 0x200000, "simm5.0", 0 ) ROMX_LOAD( "sfiii3-simm5.0", 0x00000, 0x200000, CRC(c67d9190) SHA1(d265475244099d0ec153059986f3445c7bd910a3), flags ) \
2830   ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "sfiii3-simm5.1", 0x00000, 0x200000, CRC(6cb79868) SHA1(c94237f30e05bfcb2e23945530c812d9e4c73416), flags ) \
2831   ROM_REGION( 0x200000, "simm5.2", 0 ) ROMX_LOAD( "sfiii3-simm5.2", 0x00000, 0x200000, CRC(df69930e) SHA1(c76b7c559a1d5558138afbc796249efa2f49f6a8), flags ) \
2832   ROM_REGION( 0x200000, "simm5.3", 0 ) ROMX_LOAD( "sfiii3-simm5.3", 0x00000, 0x200000, CRC(333754e0) SHA1(4c18a569c26524a492ecd6f4c8b3c8e803a077d3), flags ) \
2833   ROM_REGION( 0x200000, "simm5.4", 0 ) ROMX_LOAD( "sfiii3-simm5.4", 0x00000, 0x200000, CRC(78f6d417) SHA1(a69577cc5399fcf0a24548661168f27f3e7e8e40), flags ) \
2834   ROM_REGION( 0x200000, "simm5.5", 0 ) ROMX_LOAD( "sfiii3-simm5.5", 0x00000, 0x200000, CRC(8ccad9b1) SHA1(f8bda399f87be2497b7ac39e9661f9863bf4f873), flags ) \
2835   ROM_REGION( 0x200000, "simm5.6", 0 ) ROMX_LOAD( "sfiii3-simm5.6", 0x00000, 0x200000, CRC(85de59e5) SHA1(748b5c91f15777b85d8c1d35b685cd90d3185ec6), flags ) \
2836   ROM_REGION( 0x200000, "simm5.7", 0 ) ROMX_LOAD( "sfiii3-simm5.7", 0x00000, 0x200000, CRC(ee7e29b3) SHA1(63dc30c6904ca2f58d229249bee5eef51fafa158), flags ) \
2837   ROM_REGION( 0x200000, "simm6.0", 0 ) ROMX_LOAD( "sfiii3-simm6.0", 0x00000, 0x200000, CRC(8da69042) SHA1(fd3d08295342635b2136e48d543c9350d287bb22), flags ) \
2838   ROM_REGION( 0x200000, "simm6.1", 0 ) ROMX_LOAD( "sfiii3-simm6.1", 0x00000, 0x200000, CRC(1c8c7ac4) SHA1(ac9f8353a4c356ef98aa7c226baba00b01f5a80f), flags ) \
2839   ROM_REGION( 0x200000, "simm6.2", 0 ) ROMX_LOAD( "sfiii3-simm6.2", 0x00000, 0x200000, CRC(a671341d) SHA1(636f4c04962bc1e1ddb29d2e01244b00389b234f), flags ) \
2840   ROM_REGION( 0x200000, "simm6.3", 0 ) ROMX_LOAD( "sfiii3-simm6.3", 0x00000, 0x200000, CRC(1a990249) SHA1(2acc639e2c0c53bf24096b8620eab090bc25d03b), flags ) \
2841   ROM_REGION( 0x200000, "simm6.4", 0 ) ROMX_LOAD( "sfiii3-simm6.4", 0x00000, 0x200000, CRC(20cb39ac) SHA1(7d13a0fea1ef719dd2ff77dfb547d53c6023cc9e), flags ) \
2842   ROM_REGION( 0x200000, "simm6.5", 0 ) ROMX_LOAD( "sfiii3-simm6.5", 0x00000, 0x200000, CRC(5f844b2f) SHA1(564e4934f89ed3b92a4c4874519f8f00f3b48696), flags ) \
2843   ROM_REGION( 0x200000, "simm6.6", 0 ) ROMX_LOAD( "sfiii3-simm6.6", 0x00000, 0x200000, CRC(450e8d28) SHA1(885db658132aa27926df617ec2d2a1f38abdbb60), flags ) \
2844   ROM_REGION( 0x200000, "simm6.7", 0 ) ROMX_LOAD( "sfiii3-simm6.7", 0x00000, 0x200000, CRC(cc5f4187) SHA1(248ddace21ed4736a56e92f77cc6ad219d7fef0b), flags ) \
28802845
28812846#define SFIII3_990608_CDROM \
28822847   DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-33s-2", 0, BAD_DUMP SHA1(41b0e246db91cbfc3f8f0f62d981734feb4b4ab5) ) \
28832848
2884#define SFIII3_990512_FLASH \
2885   ROM_REGION( 0x200000, "simm1.0", 0 ) ROM_LOAD( "sfiii3(__990512)-simm1.0", 0x00000, 0x200000, CRC(66e66235) SHA1(0a98038721d176458d4f85dbd76c5edb93a65322) ) \
2886   ROM_REGION( 0x200000, "simm1.1", 0 ) ROM_LOAD( "sfiii3(__990512)-simm1.1", 0x00000, 0x200000, CRC(186e8c5f) SHA1(a63040201a660b56217a8cbab32f5c2c466ee5dd) ) \
2887   ROM_REGION( 0x200000, "simm1.2", 0 ) ROM_LOAD( "sfiii3(__990512)-simm1.2", 0x00000, 0x200000, CRC(bce18cab) SHA1(a5c28063d98c22403756fc926a20631456fb7dcc) ) \
2888   ROM_REGION( 0x200000, "simm1.3", 0 ) ROM_LOAD( "sfiii3(__990512)-simm1.3", 0x00000, 0x200000, CRC(129dc2c9) SHA1(c1e634d94b1c8f7f02a47703622de5cab3d0da3f) ) \
2889   ROM_REGION( 0x200000, "simm2.0", 0 ) ROM_LOAD( "sfiii3-simm2.0",  0x00000, 0x200000, CRC(06eb969e) SHA1(d89f6a6585b76692d57d337f0f8186398fb056da) ) \
2890   ROM_REGION( 0x200000, "simm2.1", 0 ) ROM_LOAD( "sfiii3-simm2.1",  0x00000, 0x200000, CRC(e7039f82) SHA1(8e81e66b5a4f45ae14b070a491bde47a6a74499f) ) \
2891   ROM_REGION( 0x200000, "simm2.2", 0 ) ROM_LOAD( "sfiii3-simm2.2",  0x00000, 0x200000, CRC(645c96f7) SHA1(06d5a54874d4bf100b776131ec9060da209ad037) ) \
2892   ROM_REGION( 0x200000, "simm2.3", 0 ) ROM_LOAD( "sfiii3-simm2.3",  0x00000, 0x200000, CRC(610efab1) SHA1(bbc21ed6ff6220ff6017a3f02ebd9a341fbc9040) ) \
2893   ROM_REGION( 0x200000, "simm3.0", 0 ) ROM_LOAD( "sfiii3-simm3.0",  0x00000, 0x200000, CRC(7baa1f79) SHA1(3f409df28c24dd7221966b5340d59898ea756b6f) ) \
2894   ROM_REGION( 0x200000, "simm3.1", 0 ) ROM_LOAD( "sfiii3-simm3.1",  0x00000, 0x200000, CRC(234bf8fe) SHA1(2191781ae4d726cab28de97f27efa4a13f3bdd69) ) \
2895   ROM_REGION( 0x200000, "simm3.2", 0 ) ROM_LOAD( "sfiii3-simm3.2",  0x00000, 0x200000, CRC(d9ebc308) SHA1(af6a0dca77e5181c9f20533a06760a782c5fd51d) ) \
2896   ROM_REGION( 0x200000, "simm3.3", 0 ) ROM_LOAD( "sfiii3-simm3.3",  0x00000, 0x200000, CRC(293cba77) SHA1(294604cacdc24261aec4d39e489de91c41fa1758) ) \
2897   ROM_REGION( 0x200000, "simm3.4", 0 ) ROM_LOAD( "sfiii3-simm3.4",  0x00000, 0x200000, CRC(6055e747) SHA1(3813852c5a4a5355ef739ca8f0913bbd390b984b) ) \
2898   ROM_REGION( 0x200000, "simm3.5", 0 ) ROM_LOAD( "sfiii3-simm3.5",  0x00000, 0x200000, CRC(499aa6fc) SHA1(5b9b6eab3e99ff3e1d7c1f50b9d8bc6a81f3f8a9) ) \
2899   ROM_REGION( 0x200000, "simm3.6", 0 ) ROM_LOAD( "sfiii3-simm3.6",  0x00000, 0x200000, CRC(6c13879e) SHA1(de189b0b8f42bc7dd89983e62bc2ecb4237b3277) ) \
2900   ROM_REGION( 0x200000, "simm3.7", 0 ) ROM_LOAD( "sfiii3-simm3.7",  0x00000, 0x200000, CRC(cf4f8ede) SHA1(e0fb68fcb0e445f824c62fa828d6e1dcd7e3683a) ) \
2901   ROM_REGION( 0x200000, "simm4.0", 0 ) ROM_LOAD( "sfiii3-simm4.0",  0x00000, 0x200000, CRC(091fd5ba) SHA1(3327ad7c2623c119bf728af717ea2ce3b74673a9) ) \
2902   ROM_REGION( 0x200000, "simm4.1", 0 ) ROM_LOAD( "sfiii3-simm4.1",  0x00000, 0x200000, CRC(0bca8917) SHA1(b7b284e2f16f46d46bcfaae779b232c5b980924f) ) \
2903   ROM_REGION( 0x200000, "simm4.2", 0 ) ROM_LOAD( "sfiii3-simm4.2",  0x00000, 0x200000, CRC(a0fd578b) SHA1(100c9db9f00ecd88d518076f5a0822e6ac3695b3) ) \
2904   ROM_REGION( 0x200000, "simm4.3", 0 ) ROM_LOAD( "sfiii3-simm4.3",  0x00000, 0x200000, CRC(4bf8c699) SHA1(2c0b4288b5ebc5e54d9e782dfc39eb8c78fd4c21) ) \
2905   ROM_REGION( 0x200000, "simm4.4", 0 ) ROM_LOAD( "sfiii3-simm4.4",  0x00000, 0x200000, CRC(137b8785) SHA1(56a579520a8ce2abbf36be57777f024e80474eee) ) \
2906   ROM_REGION( 0x200000, "simm4.5", 0 ) ROM_LOAD( "sfiii3-simm4.5",  0x00000, 0x200000, CRC(4fb70671) SHA1(9aba83c18cfc099a5ce18793119bff0c2b9c777f) ) \
2907   ROM_REGION( 0x200000, "simm4.6", 0 ) ROM_LOAD( "sfiii3-simm4.6",  0x00000, 0x200000, CRC(832374a4) SHA1(c84629e32fbf47cb7b5b4ee7555bfc2ac9b3857f) ) \
2908   ROM_REGION( 0x200000, "simm4.7", 0 ) ROM_LOAD( "sfiii3-simm4.7",  0x00000, 0x200000, CRC(1c88576d) SHA1(0f039944d0c2305999ed5dbd351c3eb87812dc3b) ) \
2909   ROM_REGION( 0x200000, "simm5.0", 0 ) ROM_LOAD( "sfiii3-simm5.0",  0x00000, 0x200000, CRC(c67d9190) SHA1(d265475244099d0ec153059986f3445c7bd910a3) ) \
2910   ROM_REGION( 0x200000, "simm5.1", 0 ) ROM_LOAD( "sfiii3-simm5.1",  0x00000, 0x200000, CRC(6cb79868) SHA1(c94237f30e05bfcb2e23945530c812d9e4c73416) ) \
2911   ROM_REGION( 0x200000, "simm5.2", 0 ) ROM_LOAD( "sfiii3-simm5.2",  0x00000, 0x200000, CRC(df69930e) SHA1(c76b7c559a1d5558138afbc796249efa2f49f6a8) ) \
2912   ROM_REGION( 0x200000, "simm5.3", 0 ) ROM_LOAD( "sfiii3-simm5.3",  0x00000, 0x200000, CRC(333754e0) SHA1(4c18a569c26524a492ecd6f4c8b3c8e803a077d3) ) \
2913   ROM_REGION( 0x200000, "simm5.4", 0 ) ROM_LOAD( "sfiii3-simm5.4",  0x00000, 0x200000, CRC(78f6d417) SHA1(a69577cc5399fcf0a24548661168f27f3e7e8e40) ) \
2914   ROM_REGION( 0x200000, "simm5.5", 0 ) ROM_LOAD( "sfiii3-simm5.5",  0x00000, 0x200000, CRC(8ccad9b1) SHA1(f8bda399f87be2497b7ac39e9661f9863bf4f873) ) \
2915   ROM_REGION( 0x200000, "simm5.6", 0 ) ROM_LOAD( "sfiii3-simm5.6",  0x00000, 0x200000, CRC(85de59e5) SHA1(748b5c91f15777b85d8c1d35b685cd90d3185ec6) ) \
2916   ROM_REGION( 0x200000, "simm5.7", 0 ) ROM_LOAD( "sfiii3-simm5.7",  0x00000, 0x200000, CRC(ee7e29b3) SHA1(63dc30c6904ca2f58d229249bee5eef51fafa158) ) \
2917   ROM_REGION( 0x200000, "simm6.0", 0 ) ROM_LOAD( "sfiii3-simm6.0",  0x00000, 0x200000, CRC(8da69042) SHA1(fd3d08295342635b2136e48d543c9350d287bb22) ) \
2918   ROM_REGION( 0x200000, "simm6.1", 0 ) ROM_LOAD( "sfiii3-simm6.1",  0x00000, 0x200000, CRC(1c8c7ac4) SHA1(ac9f8353a4c356ef98aa7c226baba00b01f5a80f) ) \
2919   ROM_REGION( 0x200000, "simm6.2", 0 ) ROM_LOAD( "sfiii3-simm6.2",  0x00000, 0x200000, CRC(a671341d) SHA1(636f4c04962bc1e1ddb29d2e01244b00389b234f) ) \
2920   ROM_REGION( 0x200000, "simm6.3", 0 ) ROM_LOAD( "sfiii3-simm6.3",  0x00000, 0x200000, CRC(1a990249) SHA1(2acc639e2c0c53bf24096b8620eab090bc25d03b) ) \
2921   ROM_REGION( 0x200000, "simm6.4", 0 ) ROM_LOAD( "sfiii3-simm6.4",  0x00000, 0x200000, CRC(20cb39ac) SHA1(7d13a0fea1ef719dd2ff77dfb547d53c6023cc9e) ) \
2922   ROM_REGION( 0x200000, "simm6.5", 0 ) ROM_LOAD( "sfiii3-simm6.5",  0x00000, 0x200000, CRC(5f844b2f) SHA1(564e4934f89ed3b92a4c4874519f8f00f3b48696) ) \
2923   ROM_REGION( 0x200000, "simm6.6", 0 ) ROM_LOAD( "sfiii3-simm6.6",  0x00000, 0x200000, CRC(450e8d28) SHA1(885db658132aa27926df617ec2d2a1f38abdbb60) ) \
2924   ROM_REGION( 0x200000, "simm6.7", 0 ) ROM_LOAD( "sfiii3-simm6.7",  0x00000, 0x200000, CRC(cc5f4187) SHA1(248ddace21ed4736a56e92f77cc6ad219d7fef0b) ) \
2849#define SFIII3_990512_FLASH( flags ) \
2850   ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "sfiii3(__990512)-simm1.0", 0x00000, 0x200000, CRC(66e66235) SHA1(0a98038721d176458d4f85dbd76c5edb93a65322), flags ) \
2851   ROM_REGION( 0x200000, "simm1.1", 0 ) ROMX_LOAD( "sfiii3(__990512)-simm1.1", 0x00000, 0x200000, CRC(186e8c5f) SHA1(a63040201a660b56217a8cbab32f5c2c466ee5dd), flags ) \
2852   ROM_REGION( 0x200000, "simm1.2", 0 ) ROMX_LOAD( "sfiii3(__990512)-simm1.2", 0x00000, 0x200000, CRC(bce18cab) SHA1(a5c28063d98c22403756fc926a20631456fb7dcc), flags ) \
2853   ROM_REGION( 0x200000, "simm1.3", 0 ) ROMX_LOAD( "sfiii3(__990512)-simm1.3", 0x00000, 0x200000, CRC(129dc2c9) SHA1(c1e634d94b1c8f7f02a47703622de5cab3d0da3f), flags ) \
2854   ROM_REGION( 0x200000, "simm2.0", 0 ) ROMX_LOAD( "sfiii3-simm2.0",  0x00000, 0x200000, CRC(06eb969e) SHA1(d89f6a6585b76692d57d337f0f8186398fb056da), flags ) \
2855   ROM_REGION( 0x200000, "simm2.1", 0 ) ROMX_LOAD( "sfiii3-simm2.1",  0x00000, 0x200000, CRC(e7039f82) SHA1(8e81e66b5a4f45ae14b070a491bde47a6a74499f), flags ) \
2856   ROM_REGION( 0x200000, "simm2.2", 0 ) ROMX_LOAD( "sfiii3-simm2.2",  0x00000, 0x200000, CRC(645c96f7) SHA1(06d5a54874d4bf100b776131ec9060da209ad037), flags ) \
2857   ROM_REGION( 0x200000, "simm2.3", 0 ) ROMX_LOAD( "sfiii3-simm2.3",  0x00000, 0x200000, CRC(610efab1) SHA1(bbc21ed6ff6220ff6017a3f02ebd9a341fbc9040), flags ) \
2858   ROM_REGION( 0x200000, "simm3.0", 0 ) ROMX_LOAD( "sfiii3-simm3.0",  0x00000, 0x200000, CRC(7baa1f79) SHA1(3f409df28c24dd7221966b5340d59898ea756b6f), flags ) \
2859   ROM_REGION( 0x200000, "simm3.1", 0 ) ROMX_LOAD( "sfiii3-simm3.1",  0x00000, 0x200000, CRC(234bf8fe) SHA1(2191781ae4d726cab28de97f27efa4a13f3bdd69), flags ) \
2860   ROM_REGION( 0x200000, "simm3.2", 0 ) ROMX_LOAD( "sfiii3-simm3.2",  0x00000, 0x200000, CRC(d9ebc308) SHA1(af6a0dca77e5181c9f20533a06760a782c5fd51d), flags ) \
2861   ROM_REGION( 0x200000, "simm3.3", 0 ) ROMX_LOAD( "sfiii3-simm3.3",  0x00000, 0x200000, CRC(293cba77) SHA1(294604cacdc24261aec4d39e489de91c41fa1758), flags ) \
2862   ROM_REGION( 0x200000, "simm3.4", 0 ) ROMX_LOAD( "sfiii3-simm3.4",  0x00000, 0x200000, CRC(6055e747) SHA1(3813852c5a4a5355ef739ca8f0913bbd390b984b), flags ) \
2863   ROM_REGION( 0x200000, "simm3.5", 0 ) ROMX_LOAD( "sfiii3-simm3.5",  0x00000, 0x200000, CRC(499aa6fc) SHA1(5b9b6eab3e99ff3e1d7c1f50b9d8bc6a81f3f8a9), flags ) \
2864   ROM_REGION( 0x200000, "simm3.6", 0 ) ROMX_LOAD( "sfiii3-simm3.6",  0x00000, 0x200000, CRC(6c13879e) SHA1(de189b0b8f42bc7dd89983e62bc2ecb4237b3277), flags ) \
2865   ROM_REGION( 0x200000, "simm3.7", 0 ) ROMX_LOAD( "sfiii3-simm3.7",  0x00000, 0x200000, CRC(cf4f8ede) SHA1(e0fb68fcb0e445f824c62fa828d6e1dcd7e3683a), flags ) \
2866   ROM_REGION( 0x200000, "simm4.0", 0 ) ROMX_LOAD( "sfiii3-simm4.0",  0x00000, 0x200000, CRC(091fd5ba) SHA1(3327ad7c2623c119bf728af717ea2ce3b74673a9), flags ) \
2867   ROM_REGION( 0x200000, "simm4.1", 0 ) ROMX_LOAD( "sfiii3-simm4.1",  0x00000, 0x200000, CRC(0bca8917) SHA1(b7b284e2f16f46d46bcfaae779b232c5b980924f), flags ) \
2868   ROM_REGION( 0x200000, "simm4.2", 0 ) ROMX_LOAD( "sfiii3-simm4.2",  0x00000, 0x200000, CRC(a0fd578b) SHA1(100c9db9f00ecd88d518076f5a0822e6ac3695b3), flags ) \
2869   ROM_REGION( 0x200000, "simm4.3", 0 ) ROMX_LOAD( "sfiii3-simm4.3",  0x00000, 0x200000, CRC(4bf8c699) SHA1(2c0b4288b5ebc5e54d9e782dfc39eb8c78fd4c21), flags ) \
2870   ROM_REGION( 0x200000, "simm4.4", 0 ) ROMX_LOAD( "sfiii3-simm4.4",  0x00000, 0x200000, CRC(137b8785) SHA1(56a579520a8ce2abbf36be57777f024e80474eee), flags ) \
2871   ROM_REGION( 0x200000, "simm4.5", 0 ) ROMX_LOAD( "sfiii3-simm4.5",  0x00000, 0x200000, CRC(4fb70671) SHA1(9aba83c18cfc099a5ce18793119bff0c2b9c777f), flags ) \
2872   ROM_REGION( 0x200000, "simm4.6", 0 ) ROMX_LOAD( "sfiii3-simm4.6",  0x00000, 0x200000, CRC(832374a4) SHA1(c84629e32fbf47cb7b5b4ee7555bfc2ac9b3857f), flags ) \
2873   ROM_REGION( 0x200000, "simm4.7", 0 ) ROMX_LOAD( "sfiii3-simm4.7",  0x00000, 0x200000, CRC(1c88576d) SHA1(0f039944d0c2305999ed5dbd351c3eb87812dc3b), flags ) \
2874   ROM_REGION( 0x200000, "simm5.0", 0 ) ROMX_LOAD( "sfiii3-simm5.0",  0x00000, 0x200000, CRC(c67d9190) SHA1(d265475244099d0ec153059986f3445c7bd910a3), flags ) \
2875   ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "sfiii3-simm5.1",  0x00000, 0x200000, CRC(6cb79868) SHA1(c94237f30e05bfcb2e23945530c812d9e4c73416), flags ) \
2876   ROM_REGION( 0x200000, "simm5.2", 0 ) ROMX_LOAD( "sfiii3-simm5.2",  0x00000, 0x200000, CRC(df69930e) SHA1(c76b7c559a1d5558138afbc796249efa2f49f6a8), flags ) \
2877   ROM_REGION( 0x200000, "simm5.3", 0 ) ROMX_LOAD( "sfiii3-simm5.3",  0x00000, 0x200000, CRC(333754e0) SHA1(4c18a569c26524a492ecd6f4c8b3c8e803a077d3), flags ) \
2878   ROM_REGION( 0x200000, "simm5.4", 0 ) ROMX_LOAD( "sfiii3-simm5.4",  0x00000, 0x200000, CRC(78f6d417) SHA1(a69577cc5399fcf0a24548661168f27f3e7e8e40), flags ) \
2879   ROM_REGION( 0x200000, "simm5.5", 0 ) ROMX_LOAD( "sfiii3-simm5.5",  0x00000, 0x200000, CRC(8ccad9b1) SHA1(f8bda399f87be2497b7ac39e9661f9863bf4f873), flags ) \
2880   ROM_REGION( 0x200000, "simm5.6", 0 ) ROMX_LOAD( "sfiii3-simm5.6",  0x00000, 0x200000, CRC(85de59e5) SHA1(748b5c91f15777b85d8c1d35b685cd90d3185ec6), flags ) \
2881   ROM_REGION( 0x200000, "simm5.7", 0 ) ROMX_LOAD( "sfiii3-simm5.7",  0x00000, 0x200000, CRC(ee7e29b3) SHA1(63dc30c6904ca2f58d229249bee5eef51fafa158), flags ) \
2882   ROM_REGION( 0x200000, "simm6.0", 0 ) ROMX_LOAD( "sfiii3-simm6.0",  0x00000, 0x200000, CRC(8da69042) SHA1(fd3d08295342635b2136e48d543c9350d287bb22), flags ) \
2883   ROM_REGION( 0x200000, "simm6.1", 0 ) ROMX_LOAD( "sfiii3-simm6.1",  0x00000, 0x200000, CRC(1c8c7ac4) SHA1(ac9f8353a4c356ef98aa7c226baba00b01f5a80f), flags ) \
2884   ROM_REGION( 0x200000, "simm6.2", 0 ) ROMX_LOAD( "sfiii3-simm6.2",  0x00000, 0x200000, CRC(a671341d) SHA1(636f4c04962bc1e1ddb29d2e01244b00389b234f), flags ) \
2885   ROM_REGION( 0x200000, "simm6.3", 0 ) ROMX_LOAD( "sfiii3-simm6.3",  0x00000, 0x200000, CRC(1a990249) SHA1(2acc639e2c0c53bf24096b8620eab090bc25d03b), flags ) \
2886   ROM_REGION( 0x200000, "simm6.4", 0 ) ROMX_LOAD( "sfiii3-simm6.4",  0x00000, 0x200000, CRC(20cb39ac) SHA1(7d13a0fea1ef719dd2ff77dfb547d53c6023cc9e), flags ) \
2887   ROM_REGION( 0x200000, "simm6.5", 0 ) ROMX_LOAD( "sfiii3-simm6.5",  0x00000, 0x200000, CRC(5f844b2f) SHA1(564e4934f89ed3b92a4c4874519f8f00f3b48696), flags ) \
2888   ROM_REGION( 0x200000, "simm6.6", 0 ) ROMX_LOAD( "sfiii3-simm6.6",  0x00000, 0x200000, CRC(450e8d28) SHA1(885db658132aa27926df617ec2d2a1f38abdbb60), flags ) \
2889   ROM_REGION( 0x200000, "simm6.7", 0 ) ROMX_LOAD( "sfiii3-simm6.7",  0x00000, 0x200000, CRC(cc5f4187) SHA1(248ddace21ed4736a56e92f77cc6ad219d7fef0b), flags ) \
29252890
29262891#define SFIII3_990512_CDROM \
29272892   DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-33s-1", 0, BAD_DUMP SHA1(2f4a9006a31903114f9f9dc09465ae253e565c51) ) \
29282893
2929#define JOJOBA_990927_FLASH \
2930   ROM_REGION( 0x200000, "simm1.0", 0 ) ROM_LOAD( "jojoba(__990927)-simm1.0", 0x00000, 0x200000, CRC(adcd8377) SHA1(f1aacbe061e3bcade5cca34435c3f86aec5f1499) ) \
2931   ROM_REGION( 0x200000, "simm1.1", 0 ) ROM_LOAD( "jojoba(__990927)-simm1.1", 0x00000, 0x200000, CRC(d7590b59) SHA1(bfee627ebb7cb7b28216527b17e1b06a4e6f19f4) ) \
2932   ROM_REGION( 0x200000, "simm1.2", 0 ) ROM_LOAD( "jojoba(__990927)-simm1.2", 0x00000, 0x200000, CRC(e62e240b) SHA1(70468cae67c009a80b45954c2a30794577343c77) ) \
2933   ROM_REGION( 0x200000, "simm1.3", 0 ) ROM_LOAD( "jojoba(__990927)-simm1.3", 0x00000, 0x200000, CRC(c95450c3) SHA1(55616e009b007180d1ac6290c8da44b0d864a494) ) \
2934   ROM_REGION( 0x200000, "simm2.0", 0 ) ROM_LOAD( "jojoba(__990927)-simm2.0", 0x00000, 0x200000, CRC(535f2eba) SHA1(167bec0dccfc2f91cb10cb1e2631ee619b3eb9fe) ) \
2935   ROM_REGION( 0x200000, "simm2.1", 0 ) ROM_LOAD( "jojoba(__990927)-simm2.1", 0x00000, 0x200000, CRC(01dd3a01) SHA1(08c462219796baa3ec28d78d038a18187cd838bb) ) \
2936   ROM_REGION( 0x200000, "simm2.2", 0 ) ROM_LOAD( "jojoba(__990927)-simm2.2", 0x00000, 0x200000, CRC(61432672) SHA1(d0416a75d395926041f90a3d34edb96a080acfd6) ) \
2937   ROM_REGION( 0x200000, "simm2.3", 0 ) ROM_LOAD( "jojoba(__990927)-simm2.3", 0x00000, 0x200000, CRC(acdc9aca) SHA1(89f77ddd6286709182a676fd9bd6c333a3b16271) ) \
2938   ROM_REGION( 0x200000, "simm3.0", 0 ) ROM_LOAD( "jojoba-simm3.0", 0x00000, 0x200000, CRC(4d16e111) SHA1(f198007375be65e89856d64ee2b3857a18b4eab8) ) \
2939   ROM_REGION( 0x200000, "simm3.1", 0 ) ROM_LOAD( "jojoba-simm3.1", 0x00000, 0x200000, CRC(9b3406d3) SHA1(54e90cd334d13e2c74305c6b87ebce1365ef3d59) ) \
2940   ROM_REGION( 0x200000, "simm3.2", 0 ) ROM_LOAD( "jojoba-simm3.2", 0x00000, 0x200000, CRC(f2414997) SHA1(fb89d5784250538ad17fd527267b513afb6eca20) ) \
2941   ROM_REGION( 0x200000, "simm3.3", 0 ) ROM_LOAD( "jojoba-simm3.3", 0x00000, 0x200000, CRC(954b9c7d) SHA1(0d64d97167d4e669d7e4f3a388f9d5ec1e18ed42) ) \
2942   ROM_REGION( 0x200000, "simm3.4", 0 ) ROM_LOAD( "jojoba-simm3.4", 0x00000, 0x200000, CRC(625adc1d) SHA1(533d62759ecece10c711d99bfca403e5cba279b5) ) \
2943   ROM_REGION( 0x200000, "simm3.5", 0 ) ROM_LOAD( "jojoba-simm3.5", 0x00000, 0x200000, CRC(20a70bb4) SHA1(3bd8376304ffc974fb8031eac8bebff27969538c) ) \
2944   ROM_REGION( 0x200000, "simm3.6", 0 ) ROM_LOAD( "jojoba-simm3.6", 0x00000, 0x200000, CRC(a10ec5af) SHA1(9b403260e8fbdacaa5369ab79fc05855cc6a6bdb) ) \
2945   ROM_REGION( 0x200000, "simm3.7", 0 ) ROM_LOAD( "jojoba-simm3.7", 0x00000, 0x200000, CRC(0bd0de7a) SHA1(1debecda5f282f2a1dd17e887e522a4d00c5dc9d) ) \
2946   ROM_REGION( 0x200000, "simm4.0", 0 ) ROM_LOAD( "jojoba-simm4.0", 0x00000, 0x200000, CRC(6ea14adc) SHA1(696b2ec66f3c197817a60f507a1b4c78db37f488) ) \
2947   ROM_REGION( 0x200000, "simm4.1", 0 ) ROM_LOAD( "jojoba-simm4.1", 0x00000, 0x200000, CRC(8f4c42fb) SHA1(363d769b0b066ce139125426d2da6dfa15d1eb28) ) \
2948   ROM_REGION( 0x200000, "simm4.2", 0 ) ROM_LOAD( "jojoba-simm4.2", 0x00000, 0x200000, CRC(ef0586d1) SHA1(8fcc350da20e3e59fa76fa14e10f2c47233ba9dc) ) \
2949   ROM_REGION( 0x200000, "simm4.3", 0 ) ROM_LOAD( "jojoba-simm4.3", 0x00000, 0x200000, CRC(93ccc470) SHA1(5d267679e61c0fb592ad5f696d3c06ec1746d0b3) ) \
2950   ROM_REGION( 0x200000, "simm4.4", 0 ) ROM_LOAD( "jojoba-simm4.4", 0x00000, 0x200000, CRC(3d9ec7d2) SHA1(665b867bab928be183c2006527e55f9b8ec4a271) ) \
2951   ROM_REGION( 0x200000, "simm4.5", 0 ) ROM_LOAD( "jojoba-simm4.5", 0x00000, 0x200000, CRC(03e66850) SHA1(8478662dc9db20d9a186d315a883bd1cbb5e5000) ) \
2952   ROM_REGION( 0x200000, "simm4.6", 0 ) ROM_LOAD( "jojoba-simm4.6", 0x00000, 0x200000, CRC(01606ac3) SHA1(ccc74edeca6abdd86fc1cf42ececa1ea393b3261) ) \
2953   ROM_REGION( 0x200000, "simm4.7", 0 ) ROM_LOAD( "jojoba-simm4.7", 0x00000, 0x200000, CRC(36392b87) SHA1(e62080c8461775c1e180400dfb44414679fd0fc1) ) \
2954   ROM_REGION( 0x200000, "simm5.0", 0 ) ROM_LOAD( "jojoba-simm5.0", 0x00000, 0x200000, CRC(2ef8c60c) SHA1(dea87a73a11b8edd27c3c9c5ab2af295cb5508f9) ) \
2955   ROM_REGION( 0x200000, "simm5.1", 0 ) ROM_LOAD( "jojoba-simm5.1", 0x00000, 0x200000, CRC(cf7d7ca6) SHA1(b347707b1e5bc71d28b282273f893592e5f9e333) ) \
2956   ROM_REGION( 0x200000, "simm5.2", 0 ) ROM_LOAD( "jojoba-simm5.2", 0x00000, 0x200000, CRC(b7815bfa) SHA1(0b5a3a2ffe1b3c0ca765dcedc297e78e5928302b) ) \
2957   ROM_REGION( 0x200000, "simm5.3", 0 ) ROM_LOAD( "jojoba-simm5.3", 0x00000, 0x200000, CRC(9bfec049) SHA1(62cc9a1920047863205544b77344ee18f310f084) ) \
2958   ROM_REGION( 0x200000, "simm5.4", 0 ) ROM_LOAD( "jojoba-simm5.4", 0x00000, 0x200000, CRC(d167536b) SHA1(e2637d3486f168ce44e0a00413d38960cb86db4c) ) \
2959   ROM_REGION( 0x200000, "simm5.5", 0 ) ROM_LOAD( "jojoba-simm5.5", 0x00000, 0x200000, CRC(55e7a042) SHA1(c18bda61fa005d9174a27b7b7d324004262a4525) ) \
2960   ROM_REGION( 0x200000, "simm5.6", 0 ) ROM_LOAD( "jojoba-simm5.6", 0x00000, 0x200000, CRC(4fb32906) SHA1(3a5965b3197517932c8aa4c07a6ea6a190a338d7) ) \
2961   ROM_REGION( 0x200000, "simm5.7", 0 ) ROM_LOAD( "jojoba-simm5.7", 0x00000, 0x200000, CRC(8c8be520) SHA1(c461f3f76a83592b36b29afb316679a7c8972404) ) \
2894#define JOJOBA_990927_FLASH( flags ) \
2895   ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "jojoba(__990927)-simm1.0", 0x00000, 0x200000, CRC(adcd8377) SHA1(f1aacbe061e3bcade5cca34435c3f86aec5f1499), flags ) \
2896   ROM_REGION( 0x200000, "simm1.1", 0 ) ROMX_LOAD( "jojoba(__990927)-simm1.1", 0x00000, 0x200000, CRC(d7590b59) SHA1(bfee627ebb7cb7b28216527b17e1b06a4e6f19f4), flags ) \
2897   ROM_REGION( 0x200000, "simm1.2", 0 ) ROMX_LOAD( "jojoba(__990927)-simm1.2", 0x00000, 0x200000, CRC(e62e240b) SHA1(70468cae67c009a80b45954c2a30794577343c77), flags ) \
2898   ROM_REGION( 0x200000, "simm1.3", 0 ) ROMX_LOAD( "jojoba(__990927)-simm1.3", 0x00000, 0x200000, CRC(c95450c3) SHA1(55616e009b007180d1ac6290c8da44b0d864a494), flags ) \
2899   ROM_REGION( 0x200000, "simm2.0", 0 ) ROMX_LOAD( "jojoba(__990927)-simm2.0", 0x00000, 0x200000, CRC(535f2eba) SHA1(167bec0dccfc2f91cb10cb1e2631ee619b3eb9fe), flags ) \
2900   ROM_REGION( 0x200000, "simm2.1", 0 ) ROMX_LOAD( "jojoba(__990927)-simm2.1", 0x00000, 0x200000, CRC(01dd3a01) SHA1(08c462219796baa3ec28d78d038a18187cd838bb), flags ) \
2901   ROM_REGION( 0x200000, "simm2.2", 0 ) ROMX_LOAD( "jojoba(__990927)-simm2.2", 0x00000, 0x200000, CRC(61432672) SHA1(d0416a75d395926041f90a3d34edb96a080acfd6), flags ) \
2902   ROM_REGION( 0x200000, "simm2.3", 0 ) ROMX_LOAD( "jojoba(__990927)-simm2.3", 0x00000, 0x200000, CRC(acdc9aca) SHA1(89f77ddd6286709182a676fd9bd6c333a3b16271), flags ) \
2903   ROM_REGION( 0x200000, "simm3.0", 0 ) ROMX_LOAD( "jojoba-simm3.0", 0x00000, 0x200000, CRC(4d16e111) SHA1(f198007375be65e89856d64ee2b3857a18b4eab8), flags ) \
2904   ROM_REGION( 0x200000, "simm3.1", 0 ) ROMX_LOAD( "jojoba-simm3.1", 0x00000, 0x200000, CRC(9b3406d3) SHA1(54e90cd334d13e2c74305c6b87ebce1365ef3d59), flags ) \
2905   ROM_REGION( 0x200000, "simm3.2", 0 ) ROMX_LOAD( "jojoba-simm3.2", 0x00000, 0x200000, CRC(f2414997) SHA1(fb89d5784250538ad17fd527267b513afb6eca20), flags ) \
2906   ROM_REGION( 0x200000, "simm3.3", 0 ) ROMX_LOAD( "jojoba-simm3.3", 0x00000, 0x200000, CRC(954b9c7d) SHA1(0d64d97167d4e669d7e4f3a388f9d5ec1e18ed42), flags ) \
2907   ROM_REGION( 0x200000, "simm3.4", 0 ) ROMX_LOAD( "jojoba-simm3.4", 0x00000, 0x200000, CRC(625adc1d) SHA1(533d62759ecece10c711d99bfca403e5cba279b5), flags ) \
2908   ROM_REGION( 0x200000, "simm3.5", 0 ) ROMX_LOAD( "jojoba-simm3.5", 0x00000, 0x200000, CRC(20a70bb4) SHA1(3bd8376304ffc974fb8031eac8bebff27969538c), flags ) \
2909   ROM_REGION( 0x200000, "simm3.6", 0 ) ROMX_LOAD( "jojoba-simm3.6", 0x00000, 0x200000, CRC(a10ec5af) SHA1(9b403260e8fbdacaa5369ab79fc05855cc6a6bdb), flags ) \
2910   ROM_REGION( 0x200000, "simm3.7", 0 ) ROMX_LOAD( "jojoba-simm3.7", 0x00000, 0x200000, CRC(0bd0de7a) SHA1(1debecda5f282f2a1dd17e887e522a4d00c5dc9d), flags ) \
2911   ROM_REGION( 0x200000, "simm4.0", 0 ) ROMX_LOAD( "jojoba-simm4.0", 0x00000, 0x200000, CRC(6ea14adc) SHA1(696b2ec66f3c197817a60f507a1b4c78db37f488), flags ) \
2912   ROM_REGION( 0x200000, "simm4.1", 0 ) ROMX_LOAD( "jojoba-simm4.1", 0x00000, 0x200000, CRC(8f4c42fb) SHA1(363d769b0b066ce139125426d2da6dfa15d1eb28), flags ) \
2913   ROM_REGION( 0x200000, "simm4.2", 0 ) ROMX_LOAD( "jojoba-simm4.2", 0x00000, 0x200000, CRC(ef0586d1) SHA1(8fcc350da20e3e59fa76fa14e10f2c47233ba9dc), flags ) \
2914   ROM_REGION( 0x200000, "simm4.3", 0 ) ROMX_LOAD( "jojoba-simm4.3", 0x00000, 0x200000, CRC(93ccc470) SHA1(5d267679e61c0fb592ad5f696d3c06ec1746d0b3), flags ) \
2915   ROM_REGION( 0x200000, "simm4.4", 0 ) ROMX_LOAD( "jojoba-simm4.4", 0x00000, 0x200000, CRC(3d9ec7d2) SHA1(665b867bab928be183c2006527e55f9b8ec4a271), flags ) \
2916   ROM_REGION( 0x200000, "simm4.5", 0 ) ROMX_LOAD( "jojoba-simm4.5", 0x00000, 0x200000, CRC(03e66850) SHA1(8478662dc9db20d9a186d315a883bd1cbb5e5000), flags ) \
2917   ROM_REGION( 0x200000, "simm4.6", 0 ) ROMX_LOAD( "jojoba-simm4.6", 0x00000, 0x200000, CRC(01606ac3) SHA1(ccc74edeca6abdd86fc1cf42ececa1ea393b3261), flags ) \
2918   ROM_REGION( 0x200000, "simm4.7", 0 ) ROMX_LOAD( "jojoba-simm4.7", 0x00000, 0x200000, CRC(36392b87) SHA1(e62080c8461775c1e180400dfb44414679fd0fc1), flags ) \
2919   ROM_REGION( 0x200000, "simm5.0", 0 ) ROMX_LOAD( "jojoba-simm5.0", 0x00000, 0x200000, CRC(2ef8c60c) SHA1(dea87a73a11b8edd27c3c9c5ab2af295cb5508f9), flags ) \
2920   ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "jojoba-simm5.1", 0x00000, 0x200000, CRC(cf7d7ca6) SHA1(b347707b1e5bc71d28b282273f893592e5f9e333), flags ) \
2921   ROM_REGION( 0x200000, "simm5.2", 0 ) ROMX_LOAD( "jojoba-simm5.2", 0x00000, 0x200000, CRC(b7815bfa) SHA1(0b5a3a2ffe1b3c0ca765dcedc297e78e5928302b), flags ) \
2922   ROM_REGION( 0x200000, "simm5.3", 0 ) ROMX_LOAD( "jojoba-simm5.3", 0x00000, 0x200000, CRC(9bfec049) SHA1(62cc9a1920047863205544b77344ee18f310f084), flags ) \
2923   ROM_REGION( 0x200000, "simm5.4", 0 ) ROMX_LOAD( "jojoba-simm5.4", 0x00000, 0x200000, CRC(d167536b) SHA1(e2637d3486f168ce44e0a00413d38960cb86db4c), flags ) \
2924   ROM_REGION( 0x200000, "simm5.5", 0 ) ROMX_LOAD( "jojoba-simm5.5", 0x00000, 0x200000, CRC(55e7a042) SHA1(c18bda61fa005d9174a27b7b7d324004262a4525), flags ) \
2925   ROM_REGION( 0x200000, "simm5.6", 0 ) ROMX_LOAD( "jojoba-simm5.6", 0x00000, 0x200000, CRC(4fb32906) SHA1(3a5965b3197517932c8aa4c07a6ea6a190a338d7), flags ) \
2926   ROM_REGION( 0x200000, "simm5.7", 0 ) ROMX_LOAD( "jojoba-simm5.7", 0x00000, 0x200000, CRC(8c8be520) SHA1(c461f3f76a83592b36b29afb316679a7c8972404), flags ) \
29622927
29632928#define JOJOBA_990927_CDROM \
29642929   DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-jjm-1", 0, SHA1(8628d3fa555fbd5f4121082e925c1834b76c5e65) ) \
29652930
2966#define JOJOBA_990913_FLASH \
2967   ROM_REGION( 0x200000, "simm1.0", 0 ) ROM_LOAD( "jojoba(__990913)-simm1.0", 0x00000, 0x200000, CRC(76976231) SHA1(90adde7e5983ec6a4e02789d5cefe9e85c9c52d5) ) \
2968   ROM_REGION( 0x200000, "simm1.1", 0 ) ROM_LOAD( "jojoba(__990913)-simm1.1", 0x00000, 0x200000, CRC(cedd78e7) SHA1(964988b90a2f14c1da2cfc48d943e16e54da3fd3) ) \
2969   ROM_REGION( 0x200000, "simm1.2", 0 ) ROM_LOAD( "jojoba(__990913)-simm1.2", 0x00000, 0x200000, CRC(2955b77f) SHA1(2a907a5cd91448bfc420c318584e5ef4bbe55a91) ) \
2970   ROM_REGION( 0x200000, "simm1.3", 0 ) ROM_LOAD( "jojoba(__990913)-simm1.3", 0x00000, 0x200000, CRC(280139d7) SHA1(b7c28f6f0218688fb873a3106d2f95ea2e1e927c) ) \
2971   ROM_REGION( 0x200000, "simm2.0", 0 ) ROM_LOAD( "jojoba(__990913)-simm2.0", 0x00000, 0x200000, CRC(305c4914) SHA1(c3a73ffe58f61ab8f1cd9e3f0891037638dc5a9b) ) \
2972   ROM_REGION( 0x200000, "simm2.1", 0 ) ROM_LOAD( "jojoba(__990913)-simm2.1", 0x00000, 0x200000, CRC(18af4f3b) SHA1(04b8fdf23a782b10c203b111cc634a6d3474044a) ) \
2973   ROM_REGION( 0x200000, "simm2.2", 0 ) ROM_LOAD( "jojoba(__990913)-simm2.2", 0x00000, 0x200000, CRC(397e5c9e) SHA1(021d86ee66bf951fb6a1dd90fb7007c6865cbb8b) ) \
2974   ROM_REGION( 0x200000, "simm2.3", 0 ) ROM_LOAD( "jojoba(__990913)-simm2.3", 0x00000, 0x200000, CRC(a9d0a7d7) SHA1(b2cfc0661f8903ddbeea8a604ee8b42097e10ab8) ) \
2975   ROM_REGION( 0x200000, "simm3.0", 0 ) ROM_LOAD( "jojoba-simm3.0",  0x00000, 0x200000, CRC(4d16e111) SHA1(f198007375be65e89856d64ee2b3857a18b4eab8) ) \
2976   ROM_REGION( 0x200000, "simm3.1", 0 ) ROM_LOAD( "jojoba-simm3.1",  0x00000, 0x200000, CRC(9b3406d3) SHA1(54e90cd334d13e2c74305c6b87ebce1365ef3d59) ) \
2977   ROM_REGION( 0x200000, "simm3.2", 0 ) ROM_LOAD( "jojoba-simm3.2",  0x00000, 0x200000, CRC(f2414997) SHA1(fb89d5784250538ad17fd527267b513afb6eca20) ) \
2978   ROM_REGION( 0x200000, "simm3.3", 0 ) ROM_LOAD( "jojoba-simm3.3",  0x00000, 0x200000, CRC(954b9c7d) SHA1(0d64d97167d4e669d7e4f3a388f9d5ec1e18ed42) ) \
2979   ROM_REGION( 0x200000, "simm3.4", 0 ) ROM_LOAD( "jojoba-simm3.4",  0x00000, 0x200000, CRC(625adc1d) SHA1(533d62759ecece10c711d99bfca403e5cba279b5) ) \
2980   ROM_REGION( 0x200000, "simm3.5", 0 ) ROM_LOAD( "jojoba-simm3.5",  0x00000, 0x200000, CRC(20a70bb4) SHA1(3bd8376304ffc974fb8031eac8bebff27969538c) ) \
2981   ROM_REGION( 0x200000, "simm3.6", 0 ) ROM_LOAD( "jojoba-simm3.6",  0x00000, 0x200000, CRC(a10ec5af) SHA1(9b403260e8fbdacaa5369ab79fc05855cc6a6bdb) ) \
2982   ROM_REGION( 0x200000, "simm3.7", 0 ) ROM_LOAD( "jojoba-simm3.7",  0x00000, 0x200000, CRC(0bd0de7a) SHA1(1debecda5f282f2a1dd17e887e522a4d00c5dc9d) ) \
2983   ROM_REGION( 0x200000, "simm4.0", 0 ) ROM_LOAD( "jojoba-simm4.0",  0x00000, 0x200000, CRC(6ea14adc) SHA1(696b2ec66f3c197817a60f507a1b4c78db37f488) ) \
2984   ROM_REGION( 0x200000, "simm4.1", 0 ) ROM_LOAD( "jojoba-simm4.1",  0x00000, 0x200000, CRC(8f4c42fb) SHA1(363d769b0b066ce139125426d2da6dfa15d1eb28) ) \
2985   ROM_REGION( 0x200000, "simm4.2", 0 ) ROM_LOAD( "jojoba-simm4.2",  0x00000, 0x200000, CRC(ef0586d1) SHA1(8fcc350da20e3e59fa76fa14e10f2c47233ba9dc) ) \
2986   ROM_REGION( 0x200000, "simm4.3", 0 ) ROM_LOAD( "jojoba-simm4.3",  0x00000, 0x200000, CRC(93ccc470) SHA1(5d267679e61c0fb592ad5f696d3c06ec1746d0b3) ) \
2987   ROM_REGION( 0x200000, "simm4.4", 0 ) ROM_LOAD( "jojoba-simm4.4",  0x00000, 0x200000, CRC(3d9ec7d2) SHA1(665b867bab928be183c2006527e55f9b8ec4a271) ) \
2988   ROM_REGION( 0x200000, "simm4.5", 0 ) ROM_LOAD( "jojoba-simm4.5",  0x00000, 0x200000, CRC(03e66850) SHA1(8478662dc9db20d9a186d315a883bd1cbb5e5000) ) \
2989   ROM_REGION( 0x200000, "simm4.6", 0 ) ROM_LOAD( "jojoba-simm4.6",  0x00000, 0x200000, CRC(01606ac3) SHA1(ccc74edeca6abdd86fc1cf42ececa1ea393b3261) ) \
2990   ROM_REGION( 0x200000, "simm4.7", 0 ) ROM_LOAD( "jojoba-simm4.7",  0x00000, 0x200000, CRC(36392b87) SHA1(e62080c8461775c1e180400dfb44414679fd0fc1) ) \
2991   ROM_REGION( 0x200000, "simm5.0", 0 ) ROM_LOAD( "jojoba-simm5.0",  0x00000, 0x200000, CRC(2ef8c60c) SHA1(dea87a73a11b8edd27c3c9c5ab2af295cb5508f9) ) \
2992   ROM_REGION( 0x200000, "simm5.1", 0 ) ROM_LOAD( "jojoba-simm5.1",  0x00000, 0x200000, CRC(cf7d7ca6) SHA1(b347707b1e5bc71d28b282273f893592e5f9e333) ) \
2993   ROM_REGION( 0x200000, "simm5.2", 0 ) ROM_LOAD( "jojoba-simm5.2",  0x00000, 0x200000, CRC(b7815bfa) SHA1(0b5a3a2ffe1b3c0ca765dcedc297e78e5928302b) ) \
2994   ROM_REGION( 0x200000, "simm5.3", 0 ) ROM_LOAD( "jojoba-simm5.3",  0x00000, 0x200000, CRC(9bfec049) SHA1(62cc9a1920047863205544b77344ee18f310f084) ) \
2995   ROM_REGION( 0x200000, "simm5.4", 0 ) ROM_LOAD( "jojoba-simm5.4",  0x00000, 0x200000, CRC(d167536b) SHA1(e2637d3486f168ce44e0a00413d38960cb86db4c) ) \
2996   ROM_REGION( 0x200000, "simm5.5", 0 ) ROM_LOAD( "jojoba-simm5.5",  0x00000, 0x200000, CRC(55e7a042) SHA1(c18bda61fa005d9174a27b7b7d324004262a4525) ) \
2997   ROM_REGION( 0x200000, "simm5.6", 0 ) ROM_LOAD( "jojoba-simm5.6",  0x00000, 0x200000, CRC(4fb32906) SHA1(3a5965b3197517932c8aa4c07a6ea6a190a338d7) ) \
2998   ROM_REGION( 0x200000, "simm5.7", 0 ) ROM_LOAD( "jojoba-simm5.7",  0x00000, 0x200000, CRC(8c8be520) SHA1(c461f3f76a83592b36b29afb316679a7c8972404) ) \
2931#define JOJOBA_990913_FLASH( flags ) \
2932   ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "jojoba(__990913)-simm1.0", 0x00000, 0x200000, CRC(76976231) SHA1(90adde7e5983ec6a4e02789d5cefe9e85c9c52d5), flags ) \
2933   ROM_REGION( 0x200000, "simm1.1", 0 ) ROMX_LOAD( "jojoba(__990913)-simm1.1", 0x00000, 0x200000, CRC(cedd78e7) SHA1(964988b90a2f14c1da2cfc48d943e16e54da3fd3), flags ) \
2934   ROM_REGION( 0x200000, "simm1.2", 0 ) ROMX_LOAD( "jojoba(__990913)-simm1.2", 0x00000, 0x200000, CRC(2955b77f) SHA1(2a907a5cd91448bfc420c318584e5ef4bbe55a91), flags ) \
2935   ROM_REGION( 0x200000, "simm1.3", 0 ) ROMX_LOAD( "jojoba(__990913)-simm1.3", 0x00000, 0x200000, CRC(280139d7) SHA1(b7c28f6f0218688fb873a3106d2f95ea2e1e927c), flags ) \
2936   ROM_REGION( 0x200000, "simm2.0", 0 ) ROMX_LOAD( "jojoba(__990913)-simm2.0", 0x00000, 0x200000, CRC(305c4914) SHA1(c3a73ffe58f61ab8f1cd9e3f0891037638dc5a9b), flags ) \
2937   ROM_REGION( 0x200000, "simm2.1", 0 ) ROMX_LOAD( "jojoba(__990913)-simm2.1", 0x00000, 0x200000, CRC(18af4f3b) SHA1(04b8fdf23a782b10c203b111cc634a6d3474044a), flags ) \
2938   ROM_REGION( 0x200000, "simm2.2", 0 ) ROMX_LOAD( "jojoba(__990913)-simm2.2", 0x00000, 0x200000, CRC(397e5c9e) SHA1(021d86ee66bf951fb6a1dd90fb7007c6865cbb8b), flags ) \
2939   ROM_REGION( 0x200000, "simm2.3", 0 ) ROMX_LOAD( "jojoba(__990913)-simm2.3", 0x00000, 0x200000, CRC(a9d0a7d7) SHA1(b2cfc0661f8903ddbeea8a604ee8b42097e10ab8), flags ) \
2940   ROM_REGION( 0x200000, "simm3.0", 0 ) ROMX_LOAD( "jojoba-simm3.0",  0x00000, 0x200000, CRC(4d16e111) SHA1(f198007375be65e89856d64ee2b3857a18b4eab8), flags ) \
2941   ROM_REGION( 0x200000, "simm3.1", 0 ) ROMX_LOAD( "jojoba-simm3.1",  0x00000, 0x200000, CRC(9b3406d3) SHA1(54e90cd334d13e2c74305c6b87ebce1365ef3d59), flags ) \
2942   ROM_REGION( 0x200000, "simm3.2", 0 ) ROMX_LOAD( "jojoba-simm3.2",  0x00000, 0x200000, CRC(f2414997) SHA1(fb89d5784250538ad17fd527267b513afb6eca20), flags ) \
2943   ROM_REGION( 0x200000, "simm3.3", 0 ) ROMX_LOAD( "jojoba-simm3.3",  0x00000, 0x200000, CRC(954b9c7d) SHA1(0d64d97167d4e669d7e4f3a388f9d5ec1e18ed42), flags ) \
2944   ROM_REGION( 0x200000, "simm3.4", 0 ) ROMX_LOAD( "jojoba-simm3.4",  0x00000, 0x200000, CRC(625adc1d) SHA1(533d62759ecece10c711d99bfca403e5cba279b5), flags ) \
2945   ROM_REGION( 0x200000, "simm3.5", 0 ) ROMX_LOAD( "jojoba-simm3.5",  0x00000, 0x200000, CRC(20a70bb4) SHA1(3bd8376304ffc974fb8031eac8bebff27969538c), flags ) \
2946   ROM_REGION( 0x200000, "simm3.6", 0 ) ROMX_LOAD( "jojoba-simm3.6",  0x00000, 0x200000, CRC(a10ec5af) SHA1(9b403260e8fbdacaa5369ab79fc05855cc6a6bdb), flags ) \
2947   ROM_REGION( 0x200000, "simm3.7", 0 ) ROMX_LOAD( "jojoba-simm3.7",  0x00000, 0x200000, CRC(0bd0de7a) SHA1(1debecda5f282f2a1dd17e887e522a4d00c5dc9d), flags ) \
2948   ROM_REGION( 0x200000, "simm4.0", 0 ) ROMX_LOAD( "jojoba-simm4.0",  0x00000, 0x200000, CRC(6ea14adc) SHA1(696b2ec66f3c197817a60f507a1b4c78db37f488), flags ) \
2949   ROM_REGION( 0x200000, "simm4.1", 0 ) ROMX_LOAD( "jojoba-simm4.1",  0x00000, 0x200000, CRC(8f4c42fb) SHA1(363d769b0b066ce139125426d2da6dfa15d1eb28), flags ) \
2950   ROM_REGION( 0x200000, "simm4.2", 0 ) ROMX_LOAD( "jojoba-simm4.2",  0x00000, 0x200000, CRC(ef0586d1) SHA1(8fcc350da20e3e59fa76fa14e10f2c47233ba9dc), flags ) \
2951   ROM_REGION( 0x200000, "simm4.3", 0 ) ROMX_LOAD( "jojoba-simm4.3",  0x00000, 0x200000, CRC(93ccc470) SHA1(5d267679e61c0fb592ad5f696d3c06ec1746d0b3), flags ) \
2952   ROM_REGION( 0x200000, "simm4.4", 0 ) ROMX_LOAD( "jojoba-simm4.4",  0x00000, 0x200000, CRC(3d9ec7d2) SHA1(665b867bab928be183c2006527e55f9b8ec4a271), flags ) \
2953   ROM_REGION( 0x200000, "simm4.5", 0 ) ROMX_LOAD( "jojoba-simm4.5",  0x00000, 0x200000, CRC(03e66850) SHA1(8478662dc9db20d9a186d315a883bd1cbb5e5000), flags ) \
2954   ROM_REGION( 0x200000, "simm4.6", 0 ) ROMX_LOAD( "jojoba-simm4.6",  0x00000, 0x200000, CRC(01606ac3) SHA1(ccc74edeca6abdd86fc1cf42ececa1ea393b3261), flags ) \
2955   ROM_REGION( 0x200000, "simm4.7", 0 ) ROMX_LOAD( "jojoba-simm4.7",  0x00000, 0x200000, CRC(36392b87) SHA1(e62080c8461775c1e180400dfb44414679fd0fc1), flags ) \
2956   ROM_REGION( 0x200000, "simm5.0", 0 ) ROMX_LOAD( "jojoba-simm5.0",  0x00000, 0x200000, CRC(2ef8c60c) SHA1(dea87a73a11b8edd27c3c9c5ab2af295cb5508f9), flags ) \
2957   ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "jojoba-simm5.1",  0x00000, 0x200000, CRC(cf7d7ca6) SHA1(b347707b1e5bc71d28b282273f893592e5f9e333), flags ) \
2958   ROM_REGION( 0x200000, "simm5.2", 0 ) ROMX_LOAD( "jojoba-simm5.2",  0x00000, 0x200000, CRC(b7815bfa) SHA1(0b5a3a2ffe1b3c0ca765dcedc297e78e5928302b), flags ) \
2959   ROM_REGION( 0x200000, "simm5.3", 0 ) ROMX_LOAD( "jojoba-simm5.3",  0x00000, 0x200000, CRC(9bfec049) SHA1(62cc9a1920047863205544b77344ee18f310f084), flags ) \
2960   ROM_REGION( 0x200000, "simm5.4", 0 ) ROMX_LOAD( "jojoba-simm5.4",  0x00000, 0x200000, CRC(d167536b) SHA1(e2637d3486f168ce44e0a00413d38960cb86db4c), flags ) \
2961   ROM_REGION( 0x200000, "simm5.5", 0 ) ROMX_LOAD( "jojoba-simm5.5",  0x00000, 0x200000, CRC(55e7a042) SHA1(c18bda61fa005d9174a27b7b7d324004262a4525), flags ) \
2962   ROM_REGION( 0x200000, "simm5.6", 0 ) ROMX_LOAD( "jojoba-simm5.6",  0x00000, 0x200000, CRC(4fb32906) SHA1(3a5965b3197517932c8aa4c07a6ea6a190a338d7), flags ) \
2963   ROM_REGION( 0x200000, "simm5.7", 0 ) ROMX_LOAD( "jojoba-simm5.7",  0x00000, 0x200000, CRC(8c8be520) SHA1(c461f3f76a83592b36b29afb316679a7c8972404), flags ) \
29992964
30002965#define JOJOBA_990913_CDROM \
30012966   DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-jjm-0", 0, BAD_DUMP SHA1(0678a0baeb853dcff1d230c14f0873cc9f143d7b) ) \
r17460r17461
30092974   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
30102975   ROM_LOAD( "redearth_euro.29f400.u2", 0x000000, 0x080000, CRC(02e0f336) SHA1(acc37e830dfeb9674f5a0fb24f4cc23217ae4ff5) )
30112976
3012   REDEARTH_961121_FLASH
2977   REDEARTH_961121_FLASH( ROM_OPTIONAL )
30132978   REDEARTH_961121_CDROM
30142979ROM_END
30152980
r17460r17461
30172982   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
30182983   ROM_LOAD( "redearth_euro.29f400.u2", 0x000000, 0x080000, CRC(02e0f336) SHA1(acc37e830dfeb9674f5a0fb24f4cc23217ae4ff5) )
30192984
3020   REDEARTH_961023_FLASH
2985   REDEARTH_961023_FLASH( ROM_OPTIONAL )
30212986   REDEARTH_961023_CDROM
30222987ROM_END
30232988
r17460r17461
30252990   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
30262991   ROM_LOAD( "warzard_japan.29f400.u2", 0x000000, 0x080000, CRC(f8e2f0c6) SHA1(93d6a986f44c211fff014e55681eca4d2a2774d6) )
30272992
3028   REDEARTH_961121_FLASH
2993   REDEARTH_961121_FLASH( ROM_OPTIONAL )
30292994   REDEARTH_961121_CDROM
30302995ROM_END
30312996
r17460r17461
30332998   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
30342999   ROM_LOAD( "warzard_japan.29f400.u2", 0x000000, 0x080000, CRC(f8e2f0c6) SHA1(93d6a986f44c211fff014e55681eca4d2a2774d6) )
30353000
3036   REDEARTH_961023_FLASH
3001   REDEARTH_961023_FLASH( ROM_OPTIONAL )
30373002   REDEARTH_961023_CDROM
30383003ROM_END
30393004
r17460r17461
30413006   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
30423007   ROM_LOAD( "sfiii_usa.29f400.u2", 0x000000, 0x080000, CRC(fb172a8e) SHA1(48ebf59910f246835f7dc0c588da30f7a908072f) )
30433008
3044   SFIII_970204_FLASH
3009   SFIII_970204_FLASH( ROM_OPTIONAL )
30453010   SFIII_970204_CDROM
30463011ROM_END
30473012
r17460r17461
30493014   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
30503015   ROM_LOAD( "sfiii_japan.29f400.u2", 0x000000, 0x080000, CRC(74205250) SHA1(c3e83ace7121d32da729162662ec6b5285a31211) )
30513016
3052   SFIII_970204_FLASH
3017   SFIII_970204_FLASH( ROM_OPTIONAL )
30533018   SFIII_970204_CDROM
30543019ROM_END
30553020
r17460r17461
30573022   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
30583023   ROM_LOAD( "sfiii_hispanic.29f400.u2", 0x000000, 0x080000, CRC(d2b3cd48) SHA1(00ebb270c24a66515c97e35331de54ff5358000e) )
30593024
3060   SFIII_970204_FLASH
3025   SFIII_970204_FLASH( ROM_OPTIONAL )
30613026   SFIII_970204_CDROM
30623027ROM_END
30633028
r17460r17461
30653030   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
30663031   ROM_LOAD( "sfiii2_usa.29f400.u2", 0x000000, 0x080000, CRC(75dd72e0) SHA1(5a12d6ea6734df5de00ecee6f9ef470749d2f242) )
30673032
3068   SFIII2_970930_FLASH
3033   SFIII2_970930_FLASH( ROM_OPTIONAL )
30693034   SFIII2_970930_CDROM
30703035ROM_END
30713036
r17460r17461
30733038   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
30743039   ROM_LOAD( "sfiii2_japan.29f400.u2", 0x000000, 0x080000, CRC(faea0a3e) SHA1(a03cd63bcf52e4d57f7a598c8bc8e243694624ec) )
30753040
3076   SFIII2_970930_FLASH
3041   SFIII2_970930_FLASH( ROM_OPTIONAL )
30773042   SFIII2_970930_CDROM
30783043ROM_END
30793044
r17460r17461
30813046   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
30823047   ROM_LOAD( "jojo_usa.29f400.u2", 0x000000, 0x080000, CRC(8d40f7be) SHA1(2a4bd83db2f959c33b071e517941aa55a0f919c0) )
30833048
3084   JOJO_990128_FLASH
3049   JOJO_990128_FLASH( ROM_OPTIONAL )
30853050   JOJO_990128_CDROM
30863051ROM_END
30873052
r17460r17461
30893054   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
30903055   ROM_LOAD( "jojo_usa.29f400.u2", 0x000000, 0x080000, CRC(8d40f7be) SHA1(2a4bd83db2f959c33b071e517941aa55a0f919c0) )
30913056
3092   JOJO_990108_FLASH
3057   JOJO_990108_FLASH( ROM_OPTIONAL )
30933058   JOJO_990108_CDROM
30943059ROM_END
30953060
r17460r17461
30973062   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
30983063   ROM_LOAD( "jojo_usa.29f400.u2", 0x000000, 0x080000, CRC(8d40f7be) SHA1(2a4bd83db2f959c33b071e517941aa55a0f919c0) )
30993064
3100   JOJO_981202_FLASH
3065   JOJO_981202_FLASH( ROM_OPTIONAL )
31013066   JOJO_981202_CDROM
31023067ROM_END
31033068
r17460r17461
31053070   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
31063071   ROM_LOAD( "jojo_japan.29f400.u2", 0x000000, 0x080000, CRC(02778f60) SHA1(a167f9ebe030592a0cdb0c6a3c75835c6a43be4c) )
31073072
3108   JOJO_990128_FLASH
3073   JOJO_990128_FLASH( ROM_OPTIONAL )
31093074   JOJO_990128_CDROM
31103075ROM_END
31113076
r17460r17461
31133078   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
31143079   ROM_LOAD( "jojo_japan.29f400.u2", 0x000000, 0x080000, CRC(02778f60) SHA1(a167f9ebe030592a0cdb0c6a3c75835c6a43be4c) )
31153080
3116   JOJO_990108_FLASH
3081   JOJO_990108_FLASH( ROM_OPTIONAL )
31173082   JOJO_990108_CDROM
31183083ROM_END
31193084
r17460r17461
31213086   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
31223087   ROM_LOAD( "jojo_japan.29f400.u2", 0x000000, 0x080000, CRC(02778f60) SHA1(a167f9ebe030592a0cdb0c6a3c75835c6a43be4c) )
31233088
3124   JOJO_981202_FLASH
3089   JOJO_981202_FLASH( ROM_OPTIONAL )
31253090   JOJO_981202_CDROM
31263091ROM_END
31273092
r17460r17461
31293094   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
31303095   ROM_LOAD( "sfiii3_euro.29f400.u2", 0x000000, 0x080000, CRC(30bbf293) SHA1(f094c2eeaf4f6709060197aca371a4532346bf78) )
31313096
3132   SFIII3_990608_FLASH
3097   SFIII3_990608_FLASH( ROM_OPTIONAL )
31333098   SFIII3_990608_CDROM
31343099ROM_END
31353100
r17460r17461
31373102   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
31383103   ROM_LOAD( "sfiii3_euro.29f400.u2", 0x000000, 0x080000, CRC(30bbf293) SHA1(f094c2eeaf4f6709060197aca371a4532346bf78) )
31393104
3140   SFIII3_990512_FLASH
3105   SFIII3_990512_FLASH( ROM_OPTIONAL )
31413106   SFIII3_990512_CDROM
31423107ROM_END
31433108
r17460r17461
31453110   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
31463111   ROM_LOAD( "sfiii3_usa.29f400.u2", 0x000000, 0x080000, CRC(ecc545c1) SHA1(e39083820aae914fd8b80c9765129bedb745ceba) )
31473112
3148   SFIII3_990608_FLASH
3113   SFIII3_990608_FLASH( ROM_OPTIONAL )
31493114   SFIII3_990608_CDROM
31503115ROM_END
31513116
r17460r17461
31533118   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
31543119   ROM_LOAD( "sfiii3_usa.29f400.u2", 0x000000, 0x080000, CRC(ecc545c1) SHA1(e39083820aae914fd8b80c9765129bedb745ceba) )
31553120
3156   SFIII3_990512_FLASH
3121   SFIII3_990512_FLASH( ROM_OPTIONAL )
31573122   SFIII3_990512_CDROM
31583123ROM_END
31593124
r17460r17461
31613126   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
31623127   ROM_LOAD( "jojoba_japan.29f400.u2", 0x000000, 0x080000, CRC(3085478c) SHA1(055eab1fc42816f370a44b17fd7e87ffcb10e8b7) )
31633128
3164   JOJOBA_990927_FLASH
3129   JOJOBA_990927_FLASH( ROM_OPTIONAL )
31653130   JOJOBA_990927_CDROM
31663131ROM_END
31673132
r17460r17461
31693134   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
31703135   ROM_LOAD( "jojoba_japan.29f400.u2", 0x000000, 0x080000, CRC(3085478c) SHA1(055eab1fc42816f370a44b17fd7e87ffcb10e8b7) )
31713136
3172   JOJOBA_990913_FLASH
3137   JOJOBA_990913_FLASH( ROM_OPTIONAL )
31733138   JOJOBA_990913_CDROM
31743139ROM_END
31753140
r17460r17461
31803145   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
31813146   ROM_LOAD( "sfiii_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(73e32463) SHA1(45d144e533e4b20cc5a744ca4f618e288430c601) )
31823147
3183   SFIII_970204_FLASH
3148   SFIII_970204_FLASH( 0 )
31843149ROM_END
31853150
31863151ROM_START( sfiii2n )
31873152   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
31883153   ROM_LOAD( "sfiii2_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(fd297c0d) SHA1(4323deda2789f104b53f32a663196ec16de73215) )
31893154
3190   SFIII2_970930_FLASH
3155   SFIII2_970930_FLASH( 0 )
31913156ROM_END
31923157
31933158ROM_START( jojon )
31943159   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
31953160   ROM_LOAD( "jojo_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(05b4f953) SHA1(c746c7bb5359acc9adced817cb4870b1912eaefd) )
31963161
3197   JOJO_990128_FLASH
3162   JOJO_990128_FLASH( 0 )
31983163ROM_END
31993164
32003165ROM_START( jojonr1 )
32013166   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
32023167   ROM_LOAD( "jojo_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(05b4f953) SHA1(c746c7bb5359acc9adced817cb4870b1912eaefd) )
32033168
3204   JOJO_990108_FLASH
3169   JOJO_990108_FLASH( 0 )
32053170ROM_END
32063171
32073172ROM_START( jojonr2 )
32083173   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
32093174   ROM_LOAD( "jojo_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(05b4f953) SHA1(c746c7bb5359acc9adced817cb4870b1912eaefd) )
32103175
3211   JOJO_981202_FLASH
3176   JOJO_981202_FLASH( 0 )
32123177ROM_END
32133178
32143179ROM_START( sfiii3n )
32153180   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
32163181   ROM_LOAD( "sfiii3_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(1edc6366) SHA1(60b4b9adeb030a33059d74fdf03873029e465b52) )
32173182
3218   SFIII3_990608_FLASH
3183   SFIII3_990608_FLASH( 0 )
32193184ROM_END
32203185
32213186ROM_START( sfiii3nr1 )
32223187   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
32233188   ROM_LOAD( "sfiii3_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(1edc6366) SHA1(60b4b9adeb030a33059d74fdf03873029e465b52) )
32243189
3225   SFIII3_990512_FLASH
3190   SFIII3_990512_FLASH( 0 )
32263191ROM_END
32273192
32283193ROM_START( jojoban )
32293194   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
32303195   ROM_LOAD( "jojoba_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(4dab19f5) SHA1(ba07190e7662937fc267f07285c51e99a45c061e) )
32313196
3232   JOJOBA_990927_FLASH
3197   JOJOBA_990927_FLASH( 0 )
32333198ROM_END
32343199
32353200ROM_START( jojobanr1 )
32363201   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
32373202   ROM_LOAD( "jojoba_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(4dab19f5) SHA1(ba07190e7662937fc267f07285c51e99a45c061e) )
32383203
3239   JOJOBA_990913_FLASH
3204   JOJOBA_990913_FLASH( 0 )
32403205ROM_END
32413206
32423207ROM_START( jojobane )
32433208   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
32443209   ROM_LOAD( "jojoba_euro_nocd.29f400.u2", 0x000000, 0x080000, CRC(1ee2d679) SHA1(9e129b454a376606b3f7e8aec64de425cf9c635c) )
32453210
3246   JOJOBA_990927_FLASH
3211   JOJOBA_990927_FLASH( 0 )
32473212ROM_END
32483213
32493214ROM_START( jojobaner1 )
32503215   ROM_REGION32_BE( 0x080000, "user1", 0 ) /* bios region */
32513216   ROM_LOAD( "jojoba_euro_nocd.29f400.u2", 0x000000, 0x080000, CRC(1ee2d679) SHA1(9e129b454a376606b3f7e8aec64de425cf9c635c) )
32523217
3253   JOJOBA_990913_FLASH
3218   JOJOBA_990913_FLASH( 0 )
32543219ROM_END
32553220
32563221
trunk/src/emu/machine/wd33c93.c
r17460r17461
1313
1414#include "emu.h"
1515#include "wd33c93.h"
16#include "machine/scsidev.h"
1716
1817#define VERBOSE 0
1918#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
2019
21static scsidev_device *devices[8];   // SCSI IDs 0-7
22static const struct WD33C93interface *intf;
23
24/* wd register names */
25#define WD_OWN_ID               0x00
26#define WD_CONTROL               0x01
27#define WD_TIMEOUT_PERIOD         0x02
28#define WD_CDB_1               0x03
29#define WD_CDB_2               0x04
30#define WD_CDB_3               0x05
31#define WD_CDB_4               0x06
32#define WD_CDB_5               0x07
33#define WD_CDB_6               0x08
34#define WD_CDB_7               0x09
35#define WD_CDB_8               0x0a
36#define WD_CDB_9               0x0b
37#define WD_CDB_10               0x0c
38#define WD_CDB_11               0x0d
39#define WD_CDB_12               0x0e
40#define WD_TARGET_LUN            0x0f
41#define WD_COMMAND_PHASE         0x10
42#define WD_SYNCHRONOUS_TRANSFER      0x11
43#define WD_TRANSFER_COUNT_MSB      0x12
44#define WD_TRANSFER_COUNT         0x13
45#define WD_TRANSFER_COUNT_LSB      0x14
46#define WD_DESTINATION_ID         0x15
47#define WD_SOURCE_ID            0x16
48#define WD_SCSI_STATUS            0x17
49#define WD_COMMAND               0x18
50#define WD_DATA                  0x19
51#define WD_QUEUE_TAG            0x1a
52#define WD_AUXILIARY_STATUS         0x1f
53
5420/* WD commands */
5521#define WD_CMD_RESET            0x00
5622#define WD_CMD_ABORT            0x01
r17460r17461
168134#define SRCID_ES               0x40
169135#define SRCID_ER               0x80
170136
171/* command handler definition */
172typedef void (*cmd_handler)(running_machine &machine);
173#define CMD_HANDLER(name) void name(running_machine &machine)
174
175#define TEMP_INPUT_LEN   262144
176#define FIFO_SIZE      12
177
178/* internal controller data definition */
179typedef struct
180{
181   UINT8      sasr;
182   UINT8      regs[WD_AUXILIARY_STATUS+1];
183   UINT8      fifo[FIFO_SIZE];
184   int         fifo_pos;
185   UINT8      *temp_input;
186   int         temp_input_pos;
187   UINT8      busphase;
188   UINT8      identify;
189   int         read_pending;
190   emu_timer *cmd_timer;
191} _wd33c93_data;
192
193/* local instance of controller data */
194static _wd33c93_data scsi_data;
195
196
197137/* convernience functions */
198static UINT8 wd33c93_getunit( void )
138UINT8 wd33c93_device::getunit( void )
199139{
200140   /* return the destination unit id */
201   return scsi_data.regs[WD_DESTINATION_ID] & SRCID_MASK;
141   return regs[WD_DESTINATION_ID] & SRCID_MASK;
202142}
203143
204static void wd33c93_set_xfer_count( int count )
144void wd33c93_device::set_xfer_count( int count )
205145{
206146   /* set the count */
207   scsi_data.regs[ WD_TRANSFER_COUNT_LSB ] = count & 0xff;
208   scsi_data.regs[ WD_TRANSFER_COUNT ] = ( count >> 8 ) & 0xff;
209   scsi_data.regs[ WD_TRANSFER_COUNT_MSB ] = ( count >> 16 ) & 0xff;
147   regs[ WD_TRANSFER_COUNT_LSB ] = count & 0xff;
148   regs[ WD_TRANSFER_COUNT ] = ( count >> 8 ) & 0xff;
149   regs[ WD_TRANSFER_COUNT_MSB ] = ( count >> 16 ) & 0xff;
210150}
211151
212static int wd33c93_get_xfer_count( void )
152int wd33c93_device::get_xfer_count( void )
213153{
214154   /* get the count */
215   int      count = scsi_data.regs[ WD_TRANSFER_COUNT_MSB ];
155   int count = regs[ WD_TRANSFER_COUNT_MSB ];
216156
217157   count <<= 8;
218   count |= scsi_data.regs[ WD_TRANSFER_COUNT ];
158   count |= regs[ WD_TRANSFER_COUNT ];
219159   count <<= 8;
220   count |= scsi_data.regs[ WD_TRANSFER_COUNT_LSB ];
160   count |= regs[ WD_TRANSFER_COUNT_LSB ];
221161
222162   return count;
223163}
224164
225static void wd33c93_read_data(int bytes, UINT8 *pData)
165void wd33c93_device::read_data(int bytes, UINT8 *pData)
226166{
227   UINT8   unit = wd33c93_getunit();
167   UINT8 unit = getunit();
228168
229169   if ( devices[unit] )
230170   {
r17460r17461
236176   }
237177}
238178
239static void wd33c93_complete_immediate( running_machine &machine, int status )
179void wd33c93_device::complete_immediate( int status )
240180{
241181   /* reset our timer */
242   scsi_data.cmd_timer->reset(  );
182   cmd_timer->reset();
243183
244184   /* set the new status */
245   scsi_data.regs[WD_SCSI_STATUS] = status & 0xff;
185   regs[WD_SCSI_STATUS] = status & 0xff;
246186
247187   /* set interrupt pending */
248   scsi_data.regs[WD_AUXILIARY_STATUS] |= ASR_INT;
188   regs[WD_AUXILIARY_STATUS] |= ASR_INT;
249189
250190   /* check for error conditions */
251   if ( wd33c93_get_xfer_count() > 0 )
191   if ( get_xfer_count() > 0 )
252192   {
253193      /* set data buffer ready */
254      scsi_data.regs[WD_AUXILIARY_STATUS] |= ASR_DBR;
194      regs[WD_AUXILIARY_STATUS] |= ASR_DBR;
255195   }
256196   else
257197   {
258198      /* clear data buffer ready */
259      scsi_data.regs[WD_AUXILIARY_STATUS] &= ~ASR_DBR;
199      regs[WD_AUXILIARY_STATUS] &= ~ASR_DBR;
260200   }
261201
262202   /* clear command in progress and bus busy */
263   scsi_data.regs[WD_AUXILIARY_STATUS] &= ~(ASR_CIP | ASR_BSY);
203   regs[WD_AUXILIARY_STATUS] &= ~(ASR_CIP | ASR_BSY);
264204
265205   /* if we have a callback, call it */
266   if (intf && intf->irq_callback)
206   if (irq_callback)
267207   {
268      intf->irq_callback(machine, 1);
208      irq_callback(machine(), 1);
269209   }
270210}
271211
272static TIMER_CALLBACK(wd33c93_complete_cb)
212void wd33c93_device::device_timer(emu_timer &timer, device_timer_id tid, int param, void *ptr)
273213{
274   wd33c93_complete_immediate( machine, param );
275}
214   switch( tid )
215   {
216   case 0:
217      complete_immediate( param );
218      break;
276219
277static TIMER_CALLBACK(wd33c93_service_request)
278{
279   /* issue a message out request */
280   wd33c93_complete_immediate(machine, CSR_SRV_REQ | scsi_data.busphase);
281}
220   case 1:
221      complete_immediate(CSR_SRV_REQ | busphase);
222      break;
282223
283static TIMER_CALLBACK(wd33c93_deassert_cip)
284{
285   scsi_data.regs[WD_AUXILIARY_STATUS] &= ~ASR_CIP;
224   case 2:
225      regs[WD_AUXILIARY_STATUS] &= ~ASR_CIP;
226      break;
227   }
286228}
287229
288static void wd33c93_complete_cmd( UINT8 status )
230void wd33c93_device::complete_cmd( UINT8 status )
289231{
290232   /* fire off a timer to complete the command */
291   scsi_data.cmd_timer->adjust( attotime::from_usec(1), status );
233   cmd_timer->adjust( attotime::from_usec(1), status );
292234}
293235
294236/* command handlers */
295static CMD_HANDLER( wd33c93_invalid_cmd )
237void wd33c93_device::unimplemented_cmd()
296238{
297   logerror( "%s:Unknown/Unimplemented SCSI controller command: %02x\n", machine.describe_context(), scsi_data.regs[WD_COMMAND] );
239   logerror( "%s:Unimplemented SCSI controller command: %02x\n", machine().describe_context(), regs[WD_COMMAND] );
298240
299241   /* complete the command */
300   wd33c93_complete_cmd( CSR_INVALID );
242   complete_cmd( CSR_INVALID );
301243}
302244
303static CMD_HANDLER( wd33c93_reset_cmd )
245void wd33c93_device::invalid_cmd()
304246{
305   int      advanced = 0;
247   logerror( "%s:Invalid SCSI controller command: %02x\n", machine().describe_context(), regs[WD_COMMAND] );
306248
249   /* complete the command */
250   complete_cmd( CSR_INVALID );
251}
252
253void wd33c93_device::reset_cmd()
254{
255   int advanced = 0;
256
307257   /* see if it wants us to reset with advanced features */
308   if ( scsi_data.regs[WD_OWN_ID] & OWNID_EAF )
258   if ( regs[WD_OWN_ID] & OWNID_EAF )
309259   {
310260      advanced = 1;
311261   }
312262
313263   /* clear out all registers */
314   memset( scsi_data.regs, 0, sizeof( scsi_data.regs ) );
264   memset( regs, 0, sizeof( regs ) );
315265
316266   /* complete the command */
317   wd33c93_complete_cmd(advanced ? CSR_RESET_AF : CSR_RESET);
267   complete_cmd(advanced ? CSR_RESET_AF : CSR_RESET);
318268}
319269
320static CMD_HANDLER( wd33c93_abort_cmd )
270void wd33c93_device::abort_cmd()
321271{
322272   /* complete the command */
323   wd33c93_complete_cmd(CSR_ABORT);
273   complete_cmd(CSR_ABORT);
324274}
325275
326static CMD_HANDLER( wd33c93_disconnect_cmd )
276void wd33c93_device::disconnect_cmd()
327277{
328278   /* complete the command */
329   scsi_data.regs[WD_AUXILIARY_STATUS] &= ~(ASR_CIP | ASR_BSY);
279   regs[WD_AUXILIARY_STATUS] &= ~(ASR_CIP | ASR_BSY);
330280}
331281
332static CMD_HANDLER( wd33c93_select_cmd )
282void wd33c93_device::select_cmd()
333283{
334   UINT8   unit = wd33c93_getunit();
335   UINT8   newstatus;
284   UINT8 unit = getunit();
285   UINT8 newstatus;
336286
337287   /* see if we can select that device */
338288   if ( devices[unit] )
r17460r17461
341291      newstatus = CSR_SELECT;
342292
343293      /* determine the next bus phase depending on the command */
344      if ( (scsi_data.regs[WD_COMMAND] & 0x7f) == WD_CMD_SEL_ATN )
294      if ( (regs[WD_COMMAND] & 0x7f) == WD_CMD_SEL_ATN )
345295      {
346296         /* /ATN asserted during select: Move to Message Out Phase to read identify */
347         scsi_data.busphase = PHS_MESS_OUT;
297         busphase = PHS_MESS_OUT;
348298      }
349299      else
350300      {
351301         /* No /ATN asserted: Move to Command Phase */
352         scsi_data.busphase = PHS_COMMAND;
302         busphase = PHS_COMMAND;
353303      }
354304
355305      /* queue up a service request out in the future */
356      machine.scheduler().timer_set( attotime::from_usec(50), FUNC(wd33c93_service_request ));
306      service_req_timer->adjust( attotime::from_usec(50) );
357307   }
358308   else
359309   {
r17460r17461
362312   }
363313
364314   /* complete the command */
365   wd33c93_complete_cmd(newstatus);
315   complete_cmd(newstatus);
366316}
367317
368static CMD_HANDLER( wd33c93_selectxfer_cmd )
318void wd33c93_device::selectxfer_cmd()
369319{
370   UINT8   unit = wd33c93_getunit();
371   UINT8   newstatus;
320   UINT8 unit = getunit();
321   UINT8 newstatus;
372322
373323   /* see if we can select that device */
374324   if ( devices[unit] )
375325   {
376      if ( scsi_data.regs[WD_COMMAND_PHASE] < 0x45 )
326      if ( regs[WD_COMMAND_PHASE] < 0x45 )
377327      {
378328         /* device is available */
379329         int xfercount;
380330         int phase;
381331
382332         /* do the request */
383         devices[unit]->SetCommand( &scsi_data.regs[WD_CDB_1], 12 );
333         devices[unit]->SetCommand( &regs[WD_CDB_1], 12 );
384334         devices[unit]->ExecCommand( &xfercount );
385335         devices[unit]->GetPhase( &phase );
386336
387337         /* set transfer count */
388         if ( wd33c93_get_xfer_count() > TEMP_INPUT_LEN )
338         if ( get_xfer_count() > TEMP_INPUT_LEN )
389339         {
390            logerror( "WD33C93: Transfer count too big. Please increase TEMP_INPUT_LEN (size=%d)\n", wd33c93_get_xfer_count() );
391            wd33c93_set_xfer_count( TEMP_INPUT_LEN );
340            logerror( "WD33C93: Transfer count too big. Please increase TEMP_INPUT_LEN (size=%d)\n", get_xfer_count() );
341            set_xfer_count( TEMP_INPUT_LEN );
392342         }
393343
394344         switch( phase )
395345         {
396346            case SCSI_PHASE_DATAIN:
397               scsi_data.read_pending = 1;
347               read_pending = 1;
398348               break;
399349         }
400350      }
401351
402      if ( scsi_data.read_pending )
352      if ( read_pending )
403353      {
404         int      len = TEMP_INPUT_LEN;
354         int len = TEMP_INPUT_LEN;
405355
406         if ( wd33c93_get_xfer_count() < len ) len = wd33c93_get_xfer_count();
356         if ( get_xfer_count() < len ) len = get_xfer_count();
407357
408         memset( &scsi_data.temp_input[0], 0, TEMP_INPUT_LEN );
409         wd33c93_read_data( len, &scsi_data.temp_input[0] );
410         scsi_data.temp_input_pos = 0;
411         scsi_data.read_pending = 0;
358         memset( &temp_input[0], 0, TEMP_INPUT_LEN );
359         read_data( len, &temp_input[0] );
360         temp_input_pos = 0;
361         read_pending = 0;
412362      }
413363
414      scsi_data.regs[WD_TARGET_LUN] = 0;
415      scsi_data.regs[WD_CONTROL] |= CTRL_EDI;
416      scsi_data.regs[WD_COMMAND_PHASE] = 0x60;
364      regs[WD_TARGET_LUN] = 0;
365      regs[WD_CONTROL] |= CTRL_EDI;
366      regs[WD_COMMAND_PHASE] = 0x60;
417367
418368      /* signal transfer ready */
419369      newstatus = CSR_SEL_XFER_DONE;
420370
421371      /* if allowed disconnect, queue a service request */
422      if ( scsi_data.identify & 0x40 )
372      if ( identify & 0x40 )
423373      {
424374         /* queue disconnect message in */
425         scsi_data.busphase = PHS_MESS_IN;
375         busphase = PHS_MESS_IN;
426376
427377         /* queue up a service request out in the future */
428         machine.scheduler().timer_set( attotime::from_msec(50), FUNC(wd33c93_service_request ));
378         service_req_timer->adjust( attotime::from_usec(50) );
429379      }
430380   }
431381   else
r17460r17461
433383      /* device is not available */
434384      newstatus = CSR_TIMEOUT;
435385
436      wd33c93_set_xfer_count( 0 );
386      set_xfer_count( 0 );
437387   }
438388
439389   /* complete the command */
440   wd33c93_complete_cmd(newstatus);
390   complete_cmd(newstatus);
441391}
442392
443static CMD_HANDLER( wd33c93_negate_ack )
393void wd33c93_device::negate_ack()
444394{
445395   logerror( "WD33C93: ACK Negated\n" );
446396
447397   /* complete the command */
448   scsi_data.regs[WD_AUXILIARY_STATUS] &= ~(ASR_CIP | ASR_BSY);
398   regs[WD_AUXILIARY_STATUS] &= ~(ASR_CIP | ASR_BSY);
449399}
450400
451static CMD_HANDLER( wd33c93_xferinfo_cmd )
401void wd33c93_device::xferinfo_cmd()
452402{
453403   /* make the buffer available right away */
454   scsi_data.regs[WD_AUXILIARY_STATUS] |= ASR_DBR;
455   scsi_data.regs[WD_AUXILIARY_STATUS] |= ASR_CIP;
404   regs[WD_AUXILIARY_STATUS] |= ASR_DBR;
405   regs[WD_AUXILIARY_STATUS] |= ASR_CIP;
456406
457407   /* the command will be completed once the data is transferred */
458   machine.scheduler().timer_set( attotime::from_msec(1), FUNC(wd33c93_deassert_cip ));
408   deassert_cip_timer->adjust( attotime::from_msec(1) );
459409}
460410
461/* Command handlers */
462static const cmd_handler wd33c93_cmds[0x22] =
463{
464   &wd33c93_reset_cmd,      /* 0x00 - WD_CMD_RESET */
465   &wd33c93_abort_cmd,      /* 0x01 - WD_CMD_ABORT */
466   &wd33c93_invalid_cmd,   /* 0x02 - WD_CMD_ASSERT_ATN (uninmplemented) */
467   &wd33c93_negate_ack,   /* 0x03 - WD_CMD_NEGATE_ACK */
468   &wd33c93_disconnect_cmd,/* 0x04 - WD_CMD_DISCONNECT */
469   &wd33c93_invalid_cmd,   /* 0x05 - WD_CMD_RESELECT (uninmplemented) */
470   &wd33c93_select_cmd,   /* 0x06 - WD_CMD_SEL_ATN */
471   &wd33c93_select_cmd,   /* 0x07 - WD_CMD_SEL */
472   &wd33c93_selectxfer_cmd,/* 0x08 - WD_CMD_SEL_ATN_XFER */
473   &wd33c93_selectxfer_cmd,/* 0x09 - WD_CMD_SEL_XFER */
474   &wd33c93_invalid_cmd,   /* 0x0a - WD_CMD_RESEL_RECEIVE (uninmplemented) */
475   &wd33c93_invalid_cmd,   /* 0x0b - WD_CMD_RESEL_SEND (uninmplemented) */
476   &wd33c93_invalid_cmd,   /* 0x0c - WD_CMD_WAIT_SEL_RECEIVE (uninmplemented) */
477   &wd33c93_invalid_cmd,   /* 0x0d - WD_CMD_SSCC (uninmplemented) */
478   &wd33c93_invalid_cmd,   /* 0x0e - WD_CMD_SND_DISC (uninmplemented) */
479   &wd33c93_invalid_cmd,   /* 0x0f - WD_CMD_SET_IDI (uninmplemented) */
480   &wd33c93_invalid_cmd,   /* 0x10 - WD_CMD_RCV_CMD (uninmplemented) */
481   &wd33c93_invalid_cmd,   /* 0x11 - WD_CMD_RCV_DATA (uninmplemented) */
482   &wd33c93_invalid_cmd,   /* 0x12 - WD_CMD_RCV_MSG_OUT (uninmplemented) */
483   &wd33c93_invalid_cmd,   /* 0x13 - WD_CMD_RCV (uninmplemented) */
484   &wd33c93_invalid_cmd,   /* 0x14 - WD_CMD_SND_STATUS (uninmplemented) */
485   &wd33c93_invalid_cmd,   /* 0x15 - WD_CMD_SND_DATA (uninmplemented) */
486   &wd33c93_invalid_cmd,   /* 0x16 - WD_CMD_SND_MSG_IN (uninmplemented) */
487   &wd33c93_invalid_cmd,   /* 0x17 - WD_CMD_SND (uninmplemented) */
488   &wd33c93_invalid_cmd,   /* 0x18 - WD_CMD_TRANS_ADDR (uninmplemented) */
489   &wd33c93_invalid_cmd,   /* 0x19 - WD_CMD_XFER_PAD (uninmplemented) */
490   &wd33c93_invalid_cmd,   /* 0x1a - invalid */
491   &wd33c93_invalid_cmd,   /* 0x1b - invalid */
492   &wd33c93_invalid_cmd,   /* 0x1c - invalid */
493   &wd33c93_invalid_cmd,   /* 0x1d - invalid */
494   &wd33c93_invalid_cmd,   /* 0x1e - invalid */
495   &wd33c93_invalid_cmd,   /* 0x1f - invalid */
496   &wd33c93_xferinfo_cmd,   /* 0x20 - WD_CMD_TRANS_INFO) */
497   &wd33c93_invalid_cmd   /* 0x21 - WD_CMD_TRANSFER_PAD (uninmplemented) */
498};
499
500411/* Handle pending commands */
501static void wd33c93_command( running_machine &machine )
412void wd33c93_device::dispatch_command()
502413{
503414   /* get the command */
504   UINT8 cmd = scsi_data.regs[WD_COMMAND];
415   UINT8 cmd = regs[WD_COMMAND] & 0x7f;
505416
506   /* check if its within valid bounds */
507   if ( (cmd & 0x7F) > WD_CMD_TRANSFER_PAD )
417   switch(cmd)
508418   {
509      wd33c93_invalid_cmd(machine);
510      return;
511   }
419   case WD_CMD_RESET:
420      reset_cmd();
421      break;
422     
423   case WD_CMD_ABORT:
424      abort_cmd();
425      break;
426     
427   case WD_CMD_NEGATE_ACK:
428      negate_ack();
429      break;
512430
513   /* call the command handler */
514   (*wd33c93_cmds[cmd & 0x7F])(machine);
431   case WD_CMD_DISCONNECT:
432      disconnect_cmd();
433      break;
434
435   case WD_CMD_SEL_ATN:
436   case WD_CMD_SEL:
437      select_cmd();
438      break;
439
440   case WD_CMD_SEL_ATN_XFER:
441   case WD_CMD_SEL_XFER:
442      selectxfer_cmd();
443      break;
444
445   case WD_CMD_TRANS_INFO:
446      xferinfo_cmd();
447      break;
448
449   case WD_CMD_ASSERT_ATN:
450   case WD_CMD_RESELECT:
451   case WD_CMD_RESEL_RECEIVE:
452   case WD_CMD_RESEL_SEND:
453   case WD_CMD_WAIT_SEL_RECEIVE:
454   case WD_CMD_SSCC:
455   case WD_CMD_SND_DISC:
456   case WD_CMD_SET_IDI:
457   case WD_CMD_RCV_CMD:
458   case WD_CMD_RCV_DATA:
459   case WD_CMD_RCV_MSG_OUT:
460   case WD_CMD_RCV:
461   case WD_CMD_SND_STATUS:
462   case WD_CMD_SND_DATA:
463   case WD_CMD_SND_MSG_IN:
464   case WD_CMD_SND:
465   case WD_CMD_TRANS_ADDR:
466   case WD_CMD_XFER_PAD:
467   case WD_CMD_TRANSFER_PAD:
468      unimplemented_cmd();
469      break;
470
471   default:
472      invalid_cmd();
473      break;
474   }
515475}
516476
517WRITE8_HANDLER(wd33c93_w)
477WRITE8_MEMBER(wd33c93_device::write)
518478{
519479   switch( offset )
520480   {
521481      case 0:
522482      {
523483         /* update register select */
524         scsi_data.sasr = data & 0x1f;
484         sasr = data & 0x1f;
525485      }
526486      break;
527487
528488      case 1:
529489      {
530         LOG(( "WD33C93: PC=%08x - Write REG=%02x, data = %02x\n", cpu_get_pc(&space->device()), scsi_data.sasr, data ));
490         LOG(( "WD33C93: PC=%08x - Write REG=%02x, data = %02x\n", cpu_get_pc(&space.device()), sasr, data ));
531491
532492         /* update the register */
533         scsi_data.regs[scsi_data.sasr] = data;
493         regs[sasr] = data;
534494
535495         /* if we receive a command, schedule to process it */
536         if ( scsi_data.sasr == WD_COMMAND )
496         if ( sasr == WD_COMMAND )
537497         {
538            LOG(( "WDC33C93: PC=%08x - Executing command %08x - unit %d\n", cpu_get_pc(&space->device()), data, wd33c93_getunit() ));
498            LOG(( "WDC33C93: PC=%08x - Executing command %08x - unit %d\n", cpu_get_pc(&space.device()), data, getunit() ));
539499
540500            /* signal we're processing it */
541            scsi_data.regs[WD_AUXILIARY_STATUS] |= ASR_CIP;
501            regs[WD_AUXILIARY_STATUS] |= ASR_CIP;
542502
543503            /* process the command */
544            wd33c93_command(space->machine());
504            dispatch_command();
545505         }
546         else if ( scsi_data.sasr == WD_CDB_1 )
506         else if ( sasr == WD_CDB_1 )
547507         {
548            scsi_data.regs[WD_COMMAND_PHASE] = 0;
508            regs[WD_COMMAND_PHASE] = 0;
549509         }
550         else if ( scsi_data.sasr == WD_DATA )
510         else if ( sasr == WD_DATA )
551511         {
552512            /* if data was written, and we have a count, send to device */
553            int      count = wd33c93_get_xfer_count();
513            int count = get_xfer_count();
554514
555            if ( scsi_data.regs[WD_COMMAND] & 0x80 )
515            if ( regs[WD_COMMAND] & 0x80 )
556516               count = 1;
557517
558518            if ( count-- > 0 )
559519            {
560520               /* write to FIFO */
561               if ( scsi_data.fifo_pos < FIFO_SIZE )
521               if ( fifo_pos < FIFO_SIZE )
562522               {
563                  scsi_data.fifo[scsi_data.fifo_pos++] = data;
523                  fifo[fifo_pos++] = data;
564524               }
565525
566526               /* update count */
567               wd33c93_set_xfer_count( count );
527               set_xfer_count( count );
568528
569529               /* if we're done with the write, see where we're at */
570530               if ( count == 0 )
571531               {
572                  scsi_data.regs[WD_AUXILIARY_STATUS] |= ASR_INT;
573                  scsi_data.regs[WD_AUXILIARY_STATUS] &= ~ASR_DBR;
532                  regs[WD_AUXILIARY_STATUS] |= ASR_INT;
533                  regs[WD_AUXILIARY_STATUS] &= ~ASR_DBR;
574534
575                  switch( scsi_data.busphase )
535                  switch( busphase )
576536                  {
577537                     case PHS_MESS_OUT:
578538                     {
579539                        /* reset fifo */
580                        scsi_data.fifo_pos = 0;
540                        fifo_pos = 0;
581541
582542                        /* Message out phase. Data is probably SCSI Identify. Move to command phase. */
583                        scsi_data.busphase = PHS_COMMAND;
543                        busphase = PHS_COMMAND;
584544
585                        scsi_data.identify = scsi_data.fifo[0];
545                        identify = fifo[0];
586546                     }
587547                     break;
588548
589549                     case PHS_COMMAND:
590550                     {
591                        UINT8   unit = wd33c93_getunit();
592                        int      xfercount;
551                        UINT8 unit = getunit();
552                        int xfercount;
593553                        int phase;
594554
595555                        /* Execute the command. Depending on the command, we'll move to data in or out */
596                        devices[unit]->SetCommand( &scsi_data.fifo[0], 12 );
556                        devices[unit]->SetCommand( &fifo[0], 12 );
597557                        devices[unit]->ExecCommand( &xfercount );
598558                        devices[unit]->GetPhase( &phase );
599559
600560                        /* reset fifo */
601                        scsi_data.fifo_pos = 0;
561                        fifo_pos = 0;
602562
603563                        /* set the new count */
604                        wd33c93_set_xfer_count( xfercount );
564                        set_xfer_count( xfercount );
605565
606566                        switch( phase )
607567                        {
608568                        case SCSI_PHASE_STATUS:
609                           scsi_data.busphase = PHS_STATUS;
569                           busphase = PHS_STATUS;
610570                           break;
611571
612572                        case SCSI_PHASE_DATAIN:
613                           scsi_data.busphase = PHS_DATA_IN;
614                           scsi_data.read_pending = 1;
573                           busphase = PHS_DATA_IN;
574                           read_pending = 1;
615575                           break;
616576
617577                        case SCSI_PHASE_DATAOUT:
618                           scsi_data.busphase = PHS_DATA_OUT;
578                           busphase = PHS_DATA_OUT;
619579                           break;
620580                        }
621581                     }
r17460r17461
624584                     case PHS_DATA_OUT:
625585                     {
626586                        /* write data out to device */
627                        wd33c93_write_data( scsi_data.fifo_pos, scsi_data.fifo );
587                        write_data( fifo_pos, fifo );
628588
629589                        /* reset fifo */
630                        scsi_data.fifo_pos = 0;
590                        fifo_pos = 0;
631591
632592                        /* move to status phase */
633                        scsi_data.busphase = PHS_STATUS;
593                        busphase = PHS_STATUS;
634594                     }
635595                     break;
636596                  }
637597
638598                  /* complete the command */
639                  wd33c93_complete_immediate(space->machine(), CSR_XFER_DONE | scsi_data.busphase);
599                  complete_immediate(CSR_XFER_DONE | busphase);
640600               }
641601            }
642602            else
r17460r17461
646606         }
647607
648608         /* auto-increment register select if not on special registers */
649         if ( scsi_data.sasr != WD_COMMAND && scsi_data.sasr != WD_DATA && scsi_data.sasr != WD_AUXILIARY_STATUS )
609         if ( sasr != WD_COMMAND && sasr != WD_DATA && sasr != WD_AUXILIARY_STATUS )
650610         {
651            scsi_data.sasr = ( scsi_data.sasr + 1 ) & 0x1f;
611            sasr = ( sasr + 1 ) & 0x1f;
652612         }
653613      }
654614      break;
r17460r17461
661621   }
662622}
663623
664READ8_HANDLER(wd33c93_r)
624READ8_MEMBER(wd33c93_device::read)
665625{
666626   switch( offset )
667627   {
668628      case 0:
669629      {
670630         /* read aux status */
671         return scsi_data.regs[WD_AUXILIARY_STATUS];
631         return regs[WD_AUXILIARY_STATUS];
672632      }
673633      break;
674634
675635      case 1:
676636      {
677         UINT8   ret;
637         UINT8 ret;
678638
679639         /* if reading status, clear irq flag */
680         if ( scsi_data.sasr == WD_SCSI_STATUS )
640         if ( sasr == WD_SCSI_STATUS )
681641         {
682            scsi_data.regs[WD_AUXILIARY_STATUS] &= ~ASR_INT;
642            regs[WD_AUXILIARY_STATUS] &= ~ASR_INT;
683643
684            if (intf && intf->irq_callback)
644            if (irq_callback)
685645            {
686               intf->irq_callback(space->machine(), 0);
646               irq_callback(machine(), 0);
687647            }
688648
689            LOG(( "WD33C93: PC=%08x - Status read (%02x)\n", cpu_get_pc(&space->device()), scsi_data.regs[WD_SCSI_STATUS] ));
649            LOG(( "WD33C93: PC=%08x - Status read (%02x)\n", cpu_get_pc(&space.device()), regs[WD_SCSI_STATUS] ));
690650         }
691         else if ( scsi_data.sasr == WD_DATA )
651         else if ( sasr == WD_DATA )
692652         {
693653            /* we're going to be doing synchronous reads */
694654
695655            /* get the transfer count */
696            int      count = wd33c93_get_xfer_count();
656            int count = get_xfer_count();
697657
698658            /* initialize the return value */
699            scsi_data.regs[WD_DATA] = 0;
659            regs[WD_DATA] = 0;
700660
701            if ( count <= 0 && scsi_data.busphase == PHS_MESS_IN )
661            if ( count <= 0 && busphase == PHS_MESS_IN )
702662            {
703663               /* move to disconnect */
704               wd33c93_complete_cmd(CSR_DISC);
664               complete_cmd(CSR_DISC);
705665            }
706            else if ( count == 1 && scsi_data.busphase == PHS_STATUS )
666            else if ( count == 1 && busphase == PHS_STATUS )
707667            {
708668               /* update the count */
709               wd33c93_set_xfer_count( 0 );
669               set_xfer_count( 0 );
710670
711671               /* move to message in phase */
712               scsi_data.busphase = PHS_MESS_IN;
672               busphase = PHS_MESS_IN;
713673
714674               /* complete the command */
715               wd33c93_complete_cmd(CSR_XFER_DONE | scsi_data.busphase);
675               complete_cmd(CSR_XFER_DONE | busphase);
716676            }
717677            else if ( count-- > 0 ) /* make sure we still have data to send */
718678            {
719               if ( scsi_data.read_pending )
679               if ( read_pending )
720680               {
721                  int      len = TEMP_INPUT_LEN;
681                  int len = TEMP_INPUT_LEN;
722682
723683                  if ( (count+1) < len ) len = count+1;
724                  wd33c93_read_data( len, &scsi_data.temp_input[0] );
725                  scsi_data.temp_input_pos = 0;
726                  scsi_data.read_pending = 0;
684                  read_data( len, &temp_input[0] );
685                  temp_input_pos = 0;
686                  read_pending = 0;
727687               }
728688
729               scsi_data.regs[WD_AUXILIARY_STATUS] &= ~ASR_INT;
689               regs[WD_AUXILIARY_STATUS] &= ~ASR_INT;
730690
731691               /* read in one byte */
732               if ( scsi_data.temp_input_pos < TEMP_INPUT_LEN )
733                  scsi_data.regs[WD_DATA] = scsi_data.temp_input[scsi_data.temp_input_pos++];
692               if ( temp_input_pos < TEMP_INPUT_LEN )
693                  regs[WD_DATA] = temp_input[temp_input_pos++];
734694
735695               /* update the count */
736               wd33c93_set_xfer_count( count );
696               set_xfer_count( count );
737697
738698               /* transfer finished, see where we're at */
739699               if ( count == 0 )
740700               {
741                  if ( scsi_data.regs[WD_COMMAND_PHASE] != 0x60 )
701                  if ( regs[WD_COMMAND_PHASE] != 0x60 )
742702                  {
743703                     /* move to status phase */
744                     scsi_data.busphase = PHS_STATUS;
704                     busphase = PHS_STATUS;
745705
746706                     /* complete the command */
747                     wd33c93_complete_cmd(CSR_XFER_DONE | scsi_data.busphase);
707                     complete_cmd(CSR_XFER_DONE | busphase);
748708                  }
749709                  else
750710                  {
751                     scsi_data.regs[WD_AUXILIARY_STATUS] |= ASR_INT;
752                     scsi_data.regs[WD_AUXILIARY_STATUS] &= ~ASR_DBR;
711                     regs[WD_AUXILIARY_STATUS] |= ASR_INT;
712                     regs[WD_AUXILIARY_STATUS] &= ~ASR_DBR;
753713                  }
754714               }
755715            }
756716         }
757717
758         LOG(( "WD33C93: PC=%08x - Data read (%02x)\n", cpu_get_pc(&space->device()), scsi_data.regs[WD_DATA] ));
718         LOG(( "WD33C93: PC=%08x - Data read (%02x)\n", cpu_get_pc(&space.device()), regs[WD_DATA] ));
759719
760720         /* get the register value */
761         ret = scsi_data.regs[scsi_data.sasr];
721         ret = regs[sasr];
762722
763723         /* auto-increment register select if not on special registers */
764         if ( scsi_data.sasr != WD_COMMAND && scsi_data.sasr != WD_DATA && scsi_data.sasr != WD_AUXILIARY_STATUS )
724         if ( sasr != WD_COMMAND && sasr != WD_DATA && sasr != WD_AUXILIARY_STATUS )
765725         {
766            scsi_data.sasr = ( scsi_data.sasr + 1 ) & 0x1f;
726            sasr = ( sasr + 1 ) & 0x1f;
767727         }
768728
769729         return ret;
r17460r17461
779739   return 0;
780740}
781741
782void wd33c93_init( running_machine &machine, const struct WD33C93interface *interface )
742wd33c93_device::wd33c93_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
743    : device_t(mconfig, WD33C93, "33C93 SCSI", tag, owner, clock)
783744{
784   // save interface pointer for later
785   intf = interface;
745}
786746
787   memset(&scsi_data, 0, sizeof(scsi_data));
747void wd33c93_device::device_start()
748{
749   memset(&regs, 0, sizeof(regs));
788750   memset(devices, 0, sizeof(devices));
789751
790752   // try to open the devices
791   for (int i = 0; i < interface->scsidevs->devs_present; i++)
753   for (int i = 0; i < scsidevs->devs_present; i++)
792754   {
793      scsidev_device *device = machine.device<scsidev_device>( interface->scsidevs->devices[i].tag );
755      scsidev_device *device = machine().device<scsidev_device>( scsidevs->devices[i].tag );
794756      devices[device->GetDeviceID()] = device;
795757   }
796758
797759   /* allocate a timer for commands */
798   scsi_data.cmd_timer = machine.scheduler().timer_alloc(FUNC(wd33c93_complete_cb));
760   cmd_timer = timer_alloc(0);
761   service_req_timer = timer_alloc(1);
762   deassert_cip_timer = timer_alloc(2);
799763
800   scsi_data.temp_input = auto_alloc_array( machine, UINT8, TEMP_INPUT_LEN );
764   save_item( NAME( sasr ) );
765   save_item( NAME( regs ) );
766   save_item( NAME( fifo ) );
767   save_item( NAME( fifo_pos ) );
768   save_item( NAME( temp_input ) );
769   save_item( NAME( temp_input_pos ) );
770   save_item( NAME( busphase ) );
771   save_item( NAME( identify ) );
772   save_item( NAME( read_pending ) );
773}
801774
802//  state_save_register_item_array(machine, "wd33c93", NULL, 0, scsi_data);
775void wd33c93_device::static_set_interface(device_t &device, const WD33C93interface &interface)
776{
777   wd33c93_device &wd33c93 = downcast<wd33c93_device &>(device);
778   static_cast<WD33C93interface &>(wd33c93) = interface;
803779}
804780
805void wd33c93_get_dma_data( int bytes, UINT8 *pData )
781void wd33c93_device::get_dma_data( int bytes, UINT8 *pData )
806782{
807   int   len = bytes;
783   int len = bytes;
808784
809   if ( len >= wd33c93_get_xfer_count() )
810      len = wd33c93_get_xfer_count();
785   if ( len >= get_xfer_count() )
786      len = get_xfer_count();
811787
812788   if ( len == 0 )
813789      return;
814790
815   if ( (scsi_data.temp_input_pos+len) >= TEMP_INPUT_LEN )
791   if ( (temp_input_pos+len) >= TEMP_INPUT_LEN )
816792   {
817793      logerror( "Reading past end of buffer, increase TEMP_INPUT_LEN size\n" );
818794      len = TEMP_INPUT_LEN - len;
r17460r17461
820796
821797   assert(len);
822798
823   memcpy( pData, &scsi_data.temp_input[scsi_data.temp_input_pos], len );
799   memcpy( pData, &temp_input[temp_input_pos], len );
824800
825   scsi_data.temp_input_pos += len;
826   len = wd33c93_get_xfer_count() - len;
827   wd33c93_set_xfer_count(len);
801   temp_input_pos += len;
802   len = get_xfer_count() - len;
803   set_xfer_count(len);
828804}
829805
830void wd33c93_write_data(int bytes, UINT8 *pData)
806void wd33c93_device::write_data(int bytes, UINT8 *pData)
831807{
832   UINT8   unit = wd33c93_getunit();
808   UINT8 unit = getunit();
833809
834810   if (devices[unit])
835811   {
r17460r17461
841817   }
842818}
843819
844void wd33c93_clear_dma(void)
820void wd33c93_device::clear_dma()
845821{
846822   /* indicate DMA completed by clearing the transfer count */
847   wd33c93_set_xfer_count(0);
848   scsi_data.regs[WD_AUXILIARY_STATUS] &= ~ASR_DBR;
823   set_xfer_count(0);
824   regs[WD_AUXILIARY_STATUS] &= ~ASR_DBR;
849825}
850826
851int wd33c93_get_dma_count(void)
827int wd33c93_device::get_dma_count()
852828{
853   return wd33c93_get_xfer_count();
829   return get_xfer_count();
854830}
831
832const device_type WD33C93 = &device_creator<wd33c93_device>;
trunk/src/emu/machine/wd33c93.h
r17460r17461
77#define _WD33C93_H_
88
99#include "machine/scsi.h"
10#include "scsidev.h"
1011
1112struct WD33C93interface
1213{
r17460r17461
1415   void (*irq_callback)(running_machine &machine, int state); /* irq callback */
1516};
1617
17extern void wd33c93_init( running_machine &machine, const struct WD33C93interface *interface );
18extern void wd33c93_get_dma_data(int bytes, UINT8 *pData);
19extern void wd33c93_write_data(int bytes, UINT8 *pData);
20extern void wd33c93_clear_dma(void);
21extern int wd33c93_get_dma_count(void);
22extern READ8_HANDLER(wd33c93_r);
23extern WRITE8_HANDLER(wd33c93_w);
18/* wd register names */
2419
20enum
21{
22   WD_OWN_ID            = 0x00,
23   WD_CONTROL            = 0x01,
24   WD_TIMEOUT_PERIOD      = 0x02,
25   WD_CDB_1            = 0x03,
26   WD_CDB_2            = 0x04,
27   WD_CDB_3            = 0x05,
28   WD_CDB_4            = 0x06,
29   WD_CDB_5            = 0x07,
30   WD_CDB_6            = 0x08,
31   WD_CDB_7            = 0x09,
32   WD_CDB_8            = 0x0a,
33   WD_CDB_9            = 0x0b,
34   WD_CDB_10            = 0x0c,
35   WD_CDB_11            = 0x0d,
36   WD_CDB_12            = 0x0e,
37   WD_TARGET_LUN         = 0x0f,
38   WD_COMMAND_PHASE      = 0x10,
39   WD_SYNCHRONOUS_TRANSFER   = 0x11,
40   WD_TRANSFER_COUNT_MSB   = 0x12,
41   WD_TRANSFER_COUNT      = 0x13,
42   WD_TRANSFER_COUNT_LSB   = 0x14,
43   WD_DESTINATION_ID      = 0x15,
44   WD_SOURCE_ID         = 0x16,
45   WD_SCSI_STATUS         = 0x17,
46   WD_COMMAND            = 0x18,
47   WD_DATA               = 0x19,
48   WD_QUEUE_TAG         = 0x1a,
49   WD_AUXILIARY_STATUS      = 0x1f
50};
51
52#define TEMP_INPUT_LEN   262144
53#define FIFO_SIZE      12
54
55#define MCFG_WD33C93_ADD( _tag, _interface ) \
56   MCFG_DEVICE_ADD( _tag, WD33C93, 0 ) \
57   wd33c93_device::static_set_interface(*device, _interface);
58
59class wd33c93_device : public device_t,
60                  public WD33C93interface
61{
62public:
63   // construction/destruction
64   wd33c93_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
65
66   // inline configuration helpers
67   static void static_set_interface(device_t &device, const WD33C93interface &interface);
68
69   DECLARE_READ8_MEMBER(read);
70   DECLARE_WRITE8_MEMBER(write);
71
72   void get_dma_data( int bytes, UINT8 *pData );
73   void write_data(int bytes, UINT8 *pData);
74   void clear_dma();
75   int get_dma_count();
76
77protected:
78   // device-level overrides
79   virtual void device_start();
80   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
81
82private:
83   UINT8 getunit( void );
84   void set_xfer_count( int count );
85   int get_xfer_count( void );
86   void read_data(int bytes, UINT8 *pData);
87   void complete_immediate( int status );
88   void complete_cmd( UINT8 status );
89   void unimplemented_cmd();
90   void invalid_cmd();
91   void reset_cmd();
92   void abort_cmd();
93   void disconnect_cmd();
94   void select_cmd();
95   void selectxfer_cmd();
96   void negate_ack();
97   void xferinfo_cmd();
98   void dispatch_command();
99
100   scsidev_device *devices[8];   // SCSI IDs 0-7
101
102   UINT8      sasr;
103   UINT8      regs[WD_AUXILIARY_STATUS+1];
104   UINT8      fifo[FIFO_SIZE];
105   int         fifo_pos;
106   UINT8      temp_input[TEMP_INPUT_LEN];
107   int         temp_input_pos;
108   UINT8      busphase;
109   UINT8      identify;
110   int         read_pending;
111   emu_timer   *cmd_timer;
112   emu_timer   *service_req_timer;
113   emu_timer   *deassert_cip_timer;
114};
115
116// device type definition
117extern const device_type WD33C93;
118
25119#endif
trunk/src/mess/drivers/ip22.c
r17460r17461
9595{
9696public:
9797   ip22_state(const machine_config &mconfig, device_type type, const char *tag)
98      : driver_device(mconfig, type, tag) ,
98      : driver_device(mconfig, type, tag),
99      m_wd33c93(*this, "wd33c93"),
99100      m_unkpbus0(*this, "unkpbus0"),
100101      m_mainram(*this, "mainram") { }
101102
103   required_device<wd33c93_device> m_wd33c93;
102104   required_shared_ptr<UINT32> m_unkpbus0;
103105   required_shared_ptr<UINT32> m_mainram;
104106   RTC_t m_RTC;
r17460r17461
480482//      //verboselog((machine, 2, "HPC3 HD0 Status Read: %08x (%08x): %08x\n", 0x1fb90000 + ( offset << 2), mem_mask, nHPC3_hd0_regs[0x17] );
481483      if (ACCESSING_BITS_0_7)
482484      {
483         return wd33c93_r( &space, 0 );
485         return m_wd33c93->read( space, 0 );
484486      }
485487      else
486488      {
r17460r17461
491493//      //verboselog((machine, 2, "HPC3 HD0 Register Read: %08x (%08x): %08x\n", 0x1fb90000 + ( offset << 2), mem_mask, nHPC3_hd0_regs[nHPC3_hd0_register] );
492494      if (ACCESSING_BITS_0_7)
493495      {
494         return wd33c93_r( &space, 1 );
496         return m_wd33c93->read( space, 1 );
495497      }
496498      else
497499      {
r17460r17461
515517//      //verboselog((machine, 2, "HPC3 HD0 Register Select Write: %08x\n", data );
516518      if (ACCESSING_BITS_0_7)
517519      {
518         wd33c93_w( &space, 0, data & 0x000000ff );
520         m_wd33c93->write( space, 0, data & 0x000000ff );
519521      }
520522      break;
521523   case 0x0004/4:
r17460r17461
523525//      //verboselog((machine, 2, "HPC3 HD0 Register %d Write: %08x\n", nHPC3_hd0_register, data );
524526      if (ACCESSING_BITS_0_7)
525527      {
526         wd33c93_w( &space, 1,  data & 0x000000ff );
528         m_wd33c93->write( space, 1,  data & 0x000000ff );
527529      }
528530      break;
529531   default:
r17460r17461
12611263
12621264   if (state)
12631265   {
1264      if (wd33c93_get_dma_count())
1266      if (drvstate->m_wd33c93->get_dma_count())
12651267      {
1266         printf("wd33c93_get_dma_count() is %d\n", wd33c93_get_dma_count() );
1268         printf("drvstate->m_wd33c93->get_dma_count() is %d\n", drvstate->m_wd33c93->get_dma_count() );
12671269         if (drvstate->m_HPC3.nSCSI0DMACtrl & HPC3_DMACTRL_ENABLE)
12681270         {
12691271            if (drvstate->m_HPC3.nSCSI0DMACtrl & HPC3_DMACTRL_IRQ) logerror("IP22: Unhandled SCSI DMA IRQ\n");
r17460r17461
12751277            UINT32 wptr, tmpword;
12761278            int words, dptr, twords;
12771279
1278            words = wd33c93_get_dma_count();
1280            words = drvstate->m_wd33c93->get_dma_count();
12791281            words /= 4;
12801282
12811283            wptr = space->read_dword(drvstate->m_HPC3.nSCSI0Descriptor);
r17460r17461
12891291            if (words <= (512/4))
12901292            {
12911293               // one-shot
1292               //wd33c93_get_dma_data(wd33c93_get_dma_count(), drvstate->m_dma_buffer);
1294               //drvstate->m_wd33c93->get_dma_data(drvstate->m_wd33c93->get_dma_count(), drvstate->m_dma_buffer);
12931295
12941296               while (words)
12951297               {
r17460r17461
13151317                  words--;
13161318               }
13171319
1318               words = wd33c93_get_dma_count();
1319               wd33c93_write_data(words, drvstate->m_dma_buffer);
1320               words = drvstate->m_wd33c93->get_dma_count();
1321               drvstate->m_wd33c93->write_data(words, drvstate->m_dma_buffer);
13201322            }
13211323            else
13221324            {
13231325               while (words)
13241326               {
1325                  //wd33c93_get_dma_data(512, drvstate->m_dma_buffer);
1327                  //drvstate->m_wd33c93->get_dma_data(512, drvstate->m_dma_buffer);
13261328                  twords = 512/4;
13271329                  drvstate->m_HPC3.nSCSI0Descriptor += 512;
13281330                  dptr = 0;
r17460r17461
13511353                     twords--;
13521354                  }
13531355
1354                  wd33c93_write_data(512, drvstate->m_dma_buffer);
1356                  drvstate->m_wd33c93->write_data(512, drvstate->m_dma_buffer);
13551357
13561358                  words -= (512/4);
13571359               }
13581360            }
13591361
13601362            // clear DMA on the controller too
1361            wd33c93_clear_dma();
1363            drvstate->m_wd33c93->clear_dma();
13621364#if 0
13631365            UINT32 dptr, tmpword;
13641366            UINT32 bc = space->read_dword(drvstate->m_HPC3.nSCSI0Descriptor + 4);
r17460r17461
13991401               }
14001402
14011403               length = space->read_dword(drvstate->m_HPC3.nSCSI0Descriptor+4) & 0x3fff;
1402               wd33c93_write_data(length, drvstate->m_dma_buffer);
1404               drvstate->m_wd33c93->write_data(length, drvstate->m_dma_buffer);
14031405
14041406               // clear DMA on the controller too
1405               wd33c93_clear_dma();
1407               drvstate->m_wd33c93->clear_dma();
14061408            }
14071409            else
14081410            {
r17460r17461
14171419            UINT32 wptr, tmpword;
14181420            int words, sptr, twords;
14191421
1420            words = wd33c93_get_dma_count();
1422            words = drvstate->m_wd33c93->get_dma_count();
14211423            words /= 4;
14221424
14231425            wptr = space->read_dword(drvstate->m_HPC3.nSCSI0Descriptor);
r17460r17461
14301432            if (words <= (1024/4))
14311433            {
14321434               // one-shot
1433               wd33c93_get_dma_data(wd33c93_get_dma_count(), drvstate->m_dma_buffer);
1435               drvstate->m_wd33c93->get_dma_data(drvstate->m_wd33c93->get_dma_count(), drvstate->m_dma_buffer);
14341436
14351437               while (words)
14361438               {
r17460r17461
14531455            {
14541456               while (words)
14551457               {
1456                  wd33c93_get_dma_data(512, drvstate->m_dma_buffer);
1458                  drvstate->m_wd33c93->get_dma_data(512, drvstate->m_dma_buffer);
14571459                  twords = 512/4;
14581460                  sptr = 0;
14591461
r17460r17461
14791481            }
14801482
14811483            // clear DMA on the controller too
1482            wd33c93_clear_dma();
1484            drvstate->m_wd33c93->clear_dma();
14831485         }
14841486      }
14851487
r17460r17461
15241526   sgi_mc_init(machine);
15251527
15261528   // SCSI init
1527   wd33c93_init(machine, &scsi_intf);
15281529   machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(ip225015_exit),&machine));
15291530
15301531   machine.device<nvram_device>("nvram_user")->set_base(state->m_RTC.nUserRAM, 0x200);
r17460r17461
16911692   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
16921693   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
16931694
1695   MCFG_WD33C93_ADD("wd33c93", scsi_intf);
16941696   MCFG_SCSIDEV_ADD("cdrom", SCSICD, SCSI_ID_4)
16951697   MCFG_SCSIDEV_ADD("harddisk1", SCSIHD, SCSI_ID_1)
16961698MACHINE_CONFIG_END
trunk/src/mess/drivers/ip20.c
r17460r17461
4949{
5050public:
5151   ip20_state(const machine_config &mconfig, device_type type, const char *tag)
52      : driver_device(mconfig, type, tag) { }
52      : driver_device(mconfig, type, tag),
53      m_wd33c93(*this, "wd33c93"){ }
5354
55   required_device<wd33c93_device> m_wd33c93;
56
5457   HPC_t m_HPC;
5558   RTC_t m_RTC;
5659   DECLARE_READ32_MEMBER(hpc_r);
r17460r17461
131134   case 0x0120:
132135      if (ACCESSING_BITS_8_15)
133136      {
134         return ( wd33c93_r( &space, 0 ) << 8 );
137         return ( m_wd33c93->read( space, 0 ) << 8 );
135138      }
136139      else
137140      {
r17460r17461
140143   case 0x0124:
141144      if (ACCESSING_BITS_8_15)
142145      {
143         return ( wd33c93_r( &space, 1 ) << 8 );
146         return ( m_wd33c93->read( space, 1 ) << 8 );
144147      }
145148      else
146149      {
r17460r17461
288291      if (ACCESSING_BITS_8_15)
289292      {
290293         verboselog(machine(), 2, "HPC SCSI Controller Register Write: %08x\n", ( data >> 8 ) & 0x000000ff );
291         wd33c93_w( &space, 0, ( data >> 8 ) & 0x000000ff );
294         m_wd33c93->write( space, 0, ( data >> 8 ) & 0x000000ff );
292295      }
293296      else
294297      {
r17460r17461
299302      if (ACCESSING_BITS_8_15)
300303      {
301304         verboselog(machine(), 2, "HPC SCSI Controller Data Write: %08x\n", ( data >> 8 ) & 0x000000ff );
302         wd33c93_w( &space, 1, ( data >> 8 ) & 0x000000ff );
305         m_wd33c93->write( space, 1, ( data >> 8 ) & 0x000000ff );
303306      }
304307      else
305308      {
r17460r17461
562565{
563566   ip20_state *state = machine.driver_data<ip20_state>();
564567
565   wd33c93_init(machine, &scsi_intf);
566
567568   sgi_mc_init(machine);
568569
569570   state->m_HPC.nMiscStatus = 0;
r17460r17461
615616
616617   MCFG_SCC8530_ADD("scc", 7000000, line_cb_t())
617618
619   MCFG_WD33C93_ADD("wd33c93", scsi_intf);
618620   MCFG_SCSIDEV_ADD("cdrom", SCSICD, SCSI_ID_6)
619621
620622   MCFG_EEPROM_ADD("eeprom", eeprom_interface_93C56)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team