diff options
Diffstat (limited to 'src/mame/drivers/m72.cpp')
-rw-r--r-- | src/mame/drivers/m72.cpp | 244 |
1 files changed, 101 insertions, 143 deletions
diff --git a/src/mame/drivers/m72.cpp b/src/mame/drivers/m72.cpp index 87a4d16f218..0ce6cad4fc5 100644 --- a/src/mame/drivers/m72.cpp +++ b/src/mame/drivers/m72.cpp @@ -310,7 +310,7 @@ TIMER_CALLBACK_MEMBER(m72_state::delayed_ram16_w) uint16_t mem_mask = (BIT(param, 28) ? 0xff00 : 0x0000) | (BIT(param, 27) ? 0x00ff : 0x0000); logerror("MB8421/MB8431 left_w(0x%03x, 0x%04x, 0x%04x)\n", offset, val, mem_mask); - m_dpram->left_w(offset, val, mem_mask); + m_dpram->left_w(machine().dummy_space(), offset, val, mem_mask); } TIMER_CALLBACK_MEMBER(m72_state::delayed_ram8_w) @@ -319,9 +319,9 @@ TIMER_CALLBACK_MEMBER(m72_state::delayed_ram8_w) uint16_t offset = (param >> 9) & 0x07ff; if (BIT(param, 8)) - m_dpram->right_w(offset, val << 8, 0xff00); + m_dpram->right_w(machine().dummy_space(), offset, val << 8, 0xff00); else - m_dpram->right_w(offset, val, 0x00ff); + m_dpram->right_w(machine().dummy_space(), offset, val, 0x00ff); } @@ -337,7 +337,7 @@ WRITE8_MEMBER(m72_state::mcu_data_w) READ8_MEMBER(m72_state::mcu_data_r) { - return (m_dpram->right_r(offset >> 1) >> (BIT(offset, 0) ? 8 : 0)) & 0xff; + return (m_dpram->right_r(space, offset >> 1) >> (BIT(offset, 0) ? 8 : 0)) & 0xff; } READ8_MEMBER(m72_state::mcu_sample_r) @@ -1822,12 +1822,13 @@ void m72_state::m72_audio_chips(machine_config &config) DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.2); // unknown DAC voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); + vref.set_output(5.0); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); } -void m72_state::m72_base(machine_config &config) -{ +MACHINE_CONFIG_START(m72_state::m72_base) + /* basic machine hardware */ V30(config, m_maincpu, MASTER_CLOCK/2/2); /* 16 MHz external freq (8MHz internal) */ m_maincpu->set_addrmap(AS_PROGRAM, &m72_state::m72_map); @@ -1917,94 +1918,96 @@ void m72_state::m72_dbreed(machine_config &config) /****************************************** M81 ***********************************************/ // M81 is closest to M72 -void m72_state::m81_hharry(machine_config &config) -{ +MACHINE_CONFIG_START(m72_state::m81_hharry) m72_base(config); - m_maincpu->set_addrmap(AS_PROGRAM, &m72_state::hharry_map); - m_maincpu->set_addrmap(AS_IO, &m72_state::m81_portmap); + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(hharry_map) + MCFG_DEVICE_IO_MAP(m81_portmap) - m_soundcpu->set_addrmap(AS_PROGRAM, &m72_state::sound_rom_map); - m_soundcpu->set_addrmap(AS_IO, &m72_state::rtype2_sound_portmap); - m_soundcpu->set_periodic_int(FUNC(m72_state::nmi_line_pulse), attotime::from_hz(128*55)); + MCFG_DEVICE_MODIFY("soundcpu") + MCFG_DEVICE_PROGRAM_MAP(sound_rom_map) + MCFG_DEVICE_IO_MAP(rtype2_sound_portmap) + MCFG_DEVICE_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) MCFG_VIDEO_START_OVERRIDE(m72_state,hharry) - m_screen->set_screen_update(FUNC(m72_state::screen_update_m81)); -} + MCFG_SCREEN_MODIFY("screen") + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m81) +MACHINE_CONFIG_END -void m72_state::m81_xmultipl(machine_config &config) -{ +MACHINE_CONFIG_START(m72_state::m81_xmultipl) m81_hharry(config); /* basic machine hardware */ - m_maincpu->set_addrmap(AS_PROGRAM, &m72_state::xmultipl_map); + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(xmultipl_map) MCFG_VIDEO_START_OVERRIDE(m72_state,xmultipl) // different offsets -} +MACHINE_CONFIG_END -void m72_state::m81_dbreed(machine_config &config) -{ +MACHINE_CONFIG_START(m72_state::m81_dbreed) m81_xmultipl(config); - m_maincpu->set_addrmap(AS_PROGRAM, &m72_state::dbreed_map); -} + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(dbreed_map) +MACHINE_CONFIG_END /****************************************** M84 ***********************************************/ // M84 -void m72_state::rtype2(machine_config &config) -{ - /* basic machine hardware */ - V30(config, m_maincpu, MASTER_CLOCK/2/2); /* 16 MHz external freq (8MHz internal) */ - m_maincpu->set_addrmap(AS_PROGRAM, &m72_state::rtype2_map); - m_maincpu->set_addrmap(AS_IO, &m72_state::m84_portmap); - m_maincpu->set_irq_acknowledge_callback("upd71059c", FUNC(pic8259_device::inta_cb)); +MACHINE_CONFIG_START(m72_state::rtype2) - Z80(config, m_soundcpu, SOUND_CLOCK); - m_soundcpu->set_addrmap(AS_PROGRAM, &m72_state::sound_rom_map); - m_soundcpu->set_addrmap(AS_IO, &m72_state::rtype2_sound_portmap); - m_soundcpu->set_periodic_int(FUNC(m72_state::nmi_line_pulse), attotime::from_hz(128*55)); /* clocked by V1? (Vigilante) */ + /* basic machine hardware */ + MCFG_DEVICE_ADD("maincpu", V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */ + MCFG_DEVICE_PROGRAM_MAP(rtype2_map) + MCFG_DEVICE_IO_MAP(m84_portmap) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb) + + MCFG_DEVICE_ADD(m_soundcpu, Z80, SOUND_CLOCK) + MCFG_DEVICE_PROGRAM_MAP(sound_rom_map) + MCFG_DEVICE_IO_MAP(rtype2_sound_portmap) + MCFG_DEVICE_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */ /* IRQs are generated by main Z80 and YM2151 */ PIC8259(config, m_upd71059c, 0); m_upd71059c->out_int_callback().set_inputline(m_maincpu, 0); /* video hardware */ - GFXDECODE(config, m_gfxdecode, m_palette, gfx_rtype2); - PALETTE(config, m_palette).set_entries(512); + MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_rtype2) + MCFG_PALETTE_ADD("palette", 512) - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256); - m_screen->set_screen_update(FUNC(m72_state::screen_update)); - m_screen->set_palette(m_palette); + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update) + MCFG_SCREEN_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(m72_state,rtype2) m72_audio_chips(config); -} +MACHINE_CONFIG_END // not m72, different video system (less tiles regions?) (M84? M82?) -void m72_state::hharryu(machine_config &config) -{ +MACHINE_CONFIG_START(m72_state::hharryu) rtype2(config); /* basic machine hardware */ - m_maincpu->set_addrmap(AS_PROGRAM, &m72_state::hharryu_map); + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(hharryu_map) MCFG_VIDEO_START_OVERRIDE(m72_state,hharryu) -} +MACHINE_CONFIG_END // M84 -void m72_state::cosmccop(machine_config &config) -{ - /* basic machine hardware */ - V35(config, m_maincpu, MASTER_CLOCK/2); - m_maincpu->set_addrmap(AS_PROGRAM, &m72_state::kengo_map); - m_maincpu->set_addrmap(AS_IO, &m72_state::m84_v33_portmap); +MACHINE_CONFIG_START(m72_state::cosmccop) - Z80(config, m_soundcpu, SOUND_CLOCK); - m_soundcpu->set_addrmap(AS_PROGRAM, &m72_state::sound_rom_map); - m_soundcpu->set_addrmap(AS_IO, &m72_state::rtype2_sound_portmap); - m_soundcpu->set_periodic_int(FUNC(m72_state::nmi_line_pulse), attotime::from_hz(128*55)); /* clocked by V1? (Vigilante) */ + /* basic machine hardware */ + MCFG_DEVICE_ADD("maincpu", V35,MASTER_CLOCK/2) + MCFG_DEVICE_PROGRAM_MAP(kengo_map) + MCFG_DEVICE_IO_MAP(m84_v33_portmap) + + MCFG_DEVICE_ADD(m_soundcpu, Z80, SOUND_CLOCK) + MCFG_DEVICE_PROGRAM_MAP(sound_rom_map) + MCFG_DEVICE_IO_MAP(rtype2_sound_portmap) + MCFG_DEVICE_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */ /* IRQs are generated by main Z80 and YM2151 */ MCFG_MACHINE_START_OVERRIDE(m72_state,kengo) @@ -2013,18 +2016,18 @@ void m72_state::cosmccop(machine_config &config) // upd71059c isn't needed because the V35 has its own IRQ controller /* video hardware */ - GFXDECODE(config, m_gfxdecode, m_palette, gfx_rtype2); - PALETTE(config, m_palette).set_entries(512); + MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_rtype2) + MCFG_PALETTE_ADD("palette", 512) - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256); - m_screen->set_screen_update(FUNC(m72_state::screen_update)); - m_screen->set_palette(m_palette); + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update) + MCFG_SCREEN_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(m72_state,hharryu) m72_audio_chips(config); -} +MACHINE_CONFIG_END void m72_state::kengo(machine_config &config) { @@ -2041,53 +2044,52 @@ M82-A-A as the top board M82-B-A and as the bottom board */ -void m72_state::m82(machine_config &config) -{ +MACHINE_CONFIG_START(m72_state::m82) + /* basic machine hardware */ - V30(config, m_maincpu, MASTER_CLOCK/2/2); /* 16 MHz external freq (8MHz internal) */ - m_maincpu->set_addrmap(AS_PROGRAM, &m72_state::m82_map); - m_maincpu->set_addrmap(AS_IO, &m72_state::m82_portmap); - m_maincpu->set_irq_acknowledge_callback("upd71059c", FUNC(pic8259_device::inta_cb)); - Z80(config, m_soundcpu, SOUND_CLOCK); - m_soundcpu->set_addrmap(AS_PROGRAM, &m72_state::sound_rom_map); - m_soundcpu->set_addrmap(AS_IO, &m72_state::rtype2_sound_portmap); - m_soundcpu->set_periodic_int(FUNC(m72_state::nmi_line_pulse), attotime::from_hz(128*55)); /* clocked by V1? (Vigilante) */ + MCFG_DEVICE_ADD("maincpu", V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */ + MCFG_DEVICE_PROGRAM_MAP(m82_map) + MCFG_DEVICE_IO_MAP(m82_portmap) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb) + MCFG_DEVICE_ADD(m_soundcpu, Z80, SOUND_CLOCK) + MCFG_DEVICE_PROGRAM_MAP(sound_rom_map) + MCFG_DEVICE_IO_MAP(rtype2_sound_portmap) + MCFG_DEVICE_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */ /* IRQs are generated by main Z80 and YM2151 */ PIC8259(config, m_upd71059c, 0); m_upd71059c->out_int_callback().set_inputline(m_maincpu, 0); /* video hardware */ - GFXDECODE(config, m_gfxdecode, m_palette, gfx_majtitle); - PALETTE(config, m_palette).set_entries(512); + MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_majtitle) + MCFG_PALETTE_ADD("palette", 512) - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256); - m_screen->set_screen_update(FUNC(m72_state::screen_update_m82)); - m_screen->set_palette(m_palette); + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m82) + MCFG_SCREEN_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(m72_state,m82) m72_audio_chips(config); -} +MACHINE_CONFIG_END /* Pound for Pound uses M85-A-B / M85-B */ -void m72_state::poundfor(machine_config &config) -{ - /* basic machine hardware */ - V30(config, m_maincpu, MASTER_CLOCK/2/2); /* 16 MHz external freq (8MHz internal) */ - m_maincpu->set_addrmap(AS_PROGRAM, &m72_state::rtype2_map); - m_maincpu->set_addrmap(AS_IO, &m72_state::poundfor_portmap); - m_maincpu->set_irq_acknowledge_callback("upd71059c", FUNC(pic8259_device::inta_cb)); +MACHINE_CONFIG_START(m72_state::poundfor) - Z80(config, m_soundcpu, SOUND_CLOCK); - m_soundcpu->set_addrmap(AS_PROGRAM, &m72_state::sound_rom_map); - m_soundcpu->set_addrmap(AS_IO, &m72_state::poundfor_sound_portmap); - m_soundcpu->set_periodic_int(FUNC(m72_state::fake_nmi), attotime::from_hz(128*55)); /* clocked by V1? (Vigilante) */ + /* basic machine hardware */ + MCFG_DEVICE_ADD("maincpu", V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */ + MCFG_DEVICE_PROGRAM_MAP(rtype2_map) + MCFG_DEVICE_IO_MAP(poundfor_portmap) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb) + MCFG_DEVICE_ADD(m_soundcpu, Z80, SOUND_CLOCK) + MCFG_DEVICE_PROGRAM_MAP(sound_rom_map) + MCFG_DEVICE_IO_MAP(poundfor_sound_portmap) + MCFG_DEVICE_PERIODIC_INT_DRIVER(m72_state, fake_nmi, 128*55) /* clocked by V1? (Vigilante) */ /* IRQs are generated by main Z80 and YM2151 */ PIC8259(config, m_upd71059c, 0); @@ -2102,18 +2104,18 @@ void m72_state::poundfor(machine_config &config) m_upd4701[1]->set_porty_tag("TRACK1_Y"); /* video hardware */ - GFXDECODE(config, m_gfxdecode, m_palette, gfx_rtype2); - PALETTE(config, m_palette).set_entries(512); + MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_rtype2) + MCFG_PALETTE_ADD("palette", 512) - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256); - m_screen->set_screen_update(FUNC(m72_state::screen_update)); - m_screen->set_palette(m_palette); + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update) + MCFG_SCREEN_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(m72_state,poundfor) m72_audio_chips(config); -} +MACHINE_CONFIG_END /*************************************************************************** @@ -2672,49 +2674,6 @@ ROM_START( imgfightj ) ROM_LOAD( "if-c-v1.bin", 0x10000, 0x10000, CRC(45b68bf5) SHA1(2fb28793019ca85b3b6d7c4c31eedff1d71f2d83) ) ROM_END -ROM_START( imgfightb ) // mostly identical to imgfightj - ROM_REGION( 0x100000, "maincpu", 0 ) // identical, but ic111.9e - ROM_LOAD16_BYTE( "ic108.9b", 0x00001, 0x10000, CRC(592d2d80) SHA1(d54916a9bfe4b65a972b62202af706135e73518d) ) - ROM_LOAD16_BYTE( "ic89.7b", 0x00000, 0x10000, CRC(61f89056) SHA1(3e0724dbc2b00a30193ea6cfac8b4331055d4fd4) ) - ROM_LOAD16_BYTE( "ic111.9e", 0x40001, 0x10000, CRC(da50622e) SHA1(32c75b6270d401a6825632c66f3026cae7b5b81f) ) // slight difference: 99.998474%: 0x1116 from 0x09 to 0x0d - ROM_RELOAD( 0xc0001, 0x10000 ) - ROM_LOAD16_BYTE( "ic110.9d", 0x60001, 0x10000, CRC(0e0aefcd) SHA1(f5056a2d0612d912aff1e0eccb1182de7ae16990) ) - ROM_RELOAD( 0xe0001, 0x10000 ) - ROM_LOAD16_BYTE( "ic92.7e", 0x40000, 0x10000, CRC(38fce272) SHA1(4fe4d0838d21f3022b440a32ec69b25e936e62dd) ) - ROM_RELOAD( 0xc0000, 0x10000 ) - ROM_LOAD16_BYTE( "ic91.7d", 0x60000, 0x10000, CRC(d69c0722) SHA1(ef18e7b7057f19caaa61d0b8c07d2d0c6e0a555e) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - - ROM_REGION( 0x10000, "mcu", 0 ) - ROM_LOAD( "25.ic27.2l", 0x00000, 0x2000, CRC(3e66c629) SHA1(e1da7a85dd0a20c8692ceca188883c2abb5b816d) ) // i80c31 instead of i8751, FIXED BITS (xxxxxxxxxxxxxxx0) - - ROM_REGION( 0x080000, "sprites", 0 ) // half size ROMs, but identical content - ROM_LOAD( "ic96.7k", 0x00000, 0x10000, CRC(d4febb03) SHA1(6fe53b198bdcef1708ff134c64af9c064e274e1b) ) /* sprites */ - ROM_LOAD( "ic97.7l", 0x10000, 0x10000, CRC(973d7bbc) SHA1(409242ddc7eb90564a15b222641e53d11ab1e04a) ) - ROM_LOAD( "ic115.9k", 0x20000, 0x10000, CRC(2328880b) SHA1(a35c77a7d04614dbfbca4c79bb3e729115129ee4) ) - ROM_LOAD( "ic116.9l", 0x30000, 0x10000, CRC(6da001ea) SHA1(473ed89b77809b3b76bfa9f5ca4008c9534cdbb4) ) - ROM_LOAD( "ic94.7h", 0x40000, 0x10000, CRC(92bc7fda) SHA1(521d4a29e06eb8790fdeeba968f99a389f50a24e) ) - ROM_LOAD( "ic95.7j", 0x50000, 0x10000, CRC(e63a5918) SHA1(fd3374866f922cef72c0678aa751ad1e6f95a12a) ) - ROM_LOAD( "ic113.9h", 0x60000, 0x10000, CRC(27caec8e) SHA1(cc1943ba9548715425e799f418750cd70c3f88da) ) - ROM_LOAD( "ic114.9j", 0x70000, 0x10000, CRC(1933eb65) SHA1(4c24cfd059c11875f53b57cc020fbdbac903bd4a) ) - - ROM_REGION( 0x040000, "gfx2", 0 ) // identical - ROM_LOAD( "ic30.3d", 0x00000, 0x10000, CRC(34ee2d77) SHA1(38826e0318aa8da893fa4c93f217288c015df606) ) /* tiles #1 */ - ROM_LOAD( "ic31.3e", 0x10000, 0x10000, CRC(6bd2845b) SHA1(149cf14f919590da88b9a8e254690da010709862) ) - ROM_LOAD( "ic29.3c", 0x20000, 0x10000, CRC(090d50e5) SHA1(4f2a7c76320b3f8dafae90a246187e034fe7562b) ) - ROM_LOAD( "ic32.3f", 0x30000, 0x10000, CRC(3a8e3083) SHA1(8a75d556790b6bea41ead1a5f95589dd293bdf4e) ) - - ROM_REGION( 0x040000, "gfx3", 0 ) // identical - ROM_LOAD( "ic35.3k", 0x00000, 0x10000, CRC(b425c829) SHA1(0ccd487dba00bb7cb0ff5d1c67f8fee3e68df5d8) ) /* tiles #2 */ - ROM_LOAD( "ic36.3l", 0x10000, 0x10000, CRC(e9bfe23e) SHA1(f97a68dbdce7e06d07faab19acf7625cdc8eeaa8) ) - ROM_LOAD( "ic34.3j", 0x20000, 0x10000, CRC(256e50f2) SHA1(9e9fda4f1f1449548942c0da4478f61fe0d263d1) ) - ROM_LOAD( "ic33.3h", 0x30000, 0x10000, CRC(4c682785) SHA1(f61f1227e0ad629fdfca106306b17a9f6a9959e3) ) - - ROM_REGION( 0x20000, "samples", 0 ) /* samples, identical */ - ROM_LOAD( "ic28.lower.2n.bin", 0x00000, 0x10000, CRC(cb64a194) SHA1(940fad6b9147bccc8290e112f5973f8ea062b52f) ) - ROM_LOAD( "ic28.lower.2n.bin", 0x10000, 0x10000, CRC(45b68bf5) SHA1(2fb28793019ca85b3b6d7c4c31eedff1d71f2d83) ) -ROM_END - ROM_START( loht ) ROM_REGION( 0x100000, "maincpu", 0 ) ROM_LOAD16_BYTE( "tom_c-h0.rom", 0x00001, 0x20000, CRC(a63204b6) SHA1(d217bc70650a1a1bbe0cf536ec3bb678f670718d) ) @@ -2949,7 +2908,7 @@ ROM_START( lohtb3 ) // extremely similar to the original. Copyright changed to 1 ROM_RELOAD( 0xe0000, 0x10000 ) ROM_REGION( 0x10000, "mcu", 0 ) - ROM_LOAD( "c8751h.bin", 0x00000, 0x01000, CRC(9c9545f1) SHA1(ca800ce7467efb877d0fff4c47d72478a991e2a9) ) + ROM_LOAD( "loht-a26.bin", 0x00000, 0x02000, BAD_DUMP CRC(ac901e17) SHA1(70a73288d594c78ad2aca78ce55a699cb040bede) ) // undumped, using the dump from lohtb2 for now ROM_REGION( 0x080000, "sprites", 0 ) ROM_LOAD( "i-8.8", 0x00000, 0x10000, CRC(df5ac5ee) SHA1(5b45417ada402047d97dfb6cee6545686ad26e37) ) @@ -3873,12 +3832,11 @@ GAME( 1988, nspiritj, nspirit, m72_8751, nspirit, m72_state, init_m GAME( 1988, imgfight, 0, m72, imgfight, m72_state, init_imgfight, ROT270, "Irem", "Image Fight (World, revision A)", MACHINE_SUPPORTS_SAVE ) // doesn't wait / check for japan warning string.. fails rom check if used with japanese mcu rom (World version?) GAME( 1988, imgfightj, imgfight, m72_8751, imgfight, m72_state, init_m72_8751, ROT270, "Irem", "Image Fight (Japan)", MACHINE_SUPPORTS_SAVE ) // waits for japan warning screen, works with our mcu dump, can't actually see warning screen due to priority / mixing errors, check tilemap viewer (Japan Version) -GAME( 1988, imgfightb, imgfight, m72, imgfight, m72_state, init_imgfight, ROT270, "Irem", "Image Fight (Japan, bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // uses an 80c31 MCU, which isn't hooked up yet GAME( 1989, loht, 0, m72, loht, m72_state, init_loht, ROT0, "Irem", "Legend of Hero Tonma", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // fails rom check if used with Japan MCU rom (World version?) GAME( 1989, lohtj, loht, m72_8751, loht, m72_state, init_m72_8751, ROT0, "Irem", "Legend of Hero Tonma (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // waits for japan warning screen, works with our mcu dump (Japan Version) GAME( 1989, lohtb2, loht, m72_8751, loht, m72_state, init_m72_8751, ROT0, "bootleg", "Legend of Hero Tonma (Japan, bootleg with i8751)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // works like above, mcu code is the same as the real code, probably just an alt revision on a bootleg board -GAME( 1997, lohtb3, loht, m72_8751, loht, m72_state, init_m72_8751, ROT0, "bootleg", "Legend of Hero Tonma (World, bootleg with i8751)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, lohtb3, loht, m72_8751, loht, m72_state, init_m72_8751, ROT0, "bootleg", "Legend of Hero Tonma (World, bootleg with i8751)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // works like above, mcu code is the same as the real code, probably just an alt revision on a bootleg board GAME( 1989, xmultiplm72, xmultipl, m72_xmultipl, xmultipl, m72_state, init_m72_8751, ROT0, "Irem", "X Multiply (Japan, M72)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) |