Previous 199869 Revisions Next

r36346 Monday 9th March, 2015 at 17:49:20 UTC by David Haywood
use dumped (from unprotected MCU) MCU rom on mrheli [Silvio Grazini]

note, it does now write the 'for use in Japan' message to one of the tilemaps, but you don't currently see it, either due to timing or video emulation issues
[src/mame/drivers]m72.c
[src/mame/includes]m72.h

trunk/src/mame/drivers/m72.c
r244857r244858
556556   0xc6,0x06,0x00,0x00,0xcb^0xff,  // mov [0000h], byte 0cbh ; retf : bypass protection check during the game
557557   0x68,0x00,0xd0,             // push 0d000h
558558   0x1f,                       // pop ds
559   // the following is for mrheli only, the game checks for
560   // "This game can only be played in Japan..." message in the video text buffer
561   // the message is nowhere to be found in the ROMs, so has to be displayed by the mcu
562   0xc6,0x06,0x70,0x16,0x77,   // mov [1670h], byte 077h
563559   0xea,0x68,0x01,0x40,0x00    // jmp  0040:$0168
564560};
565561static const UINT8 bchopper_crc[CRC_LEN] =  {   0x1a,0x12,0x5c,0x08, 0x84,0xb6,0x73,0xd1,
566562                                    0x54,0x91,0x94,0xeb, 0x00,0x00 };
567static const UINT8 mrheli_crc[CRC_LEN] =      { 0x24,0x21,0x1f,0x14, 0xf9,0x28,0xfb,0x47,
568                                    0x4c,0x77,0x9e,0xc2, 0x00,0x00 };
569563
570564/* Ninja Spirit */
571565static const UINT8 nspirit_code[CODE_LEN] =
r244857r244858
722716   m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::bchopper_sample_trigger_w),this));
723717}
724718
725DRIVER_INIT_MEMBER(m72_state,mrheli)
726{
727   install_protection_handler(bchopper_code,mrheli_crc);
728   m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::bchopper_sample_trigger_w),this));
729}
730719
731720DRIVER_INIT_MEMBER(m72_state,nspirit)
732721{
r244857r244858
25942583   ROM_LOAD16_BYTE( "mh-c-l3.bin",  0x60000, 0x10000, CRC(c0982536) SHA1(45399f8d0577c6e2a277a69303954ce5d2de7c07) )
25952584   ROM_RELOAD(                      0xe0000, 0x10000 )
25962585
2597   ROM_REGION( 0x10000, "cpu2", 0 )
2598   ROM_LOAD( "mrheli_i8751.mcu",  0x00000, 0x10000, NO_DUMP ) // read protected
2586   ROM_REGION( 0x10000, "mcu", 0 )
2587   ROM_LOAD( "mh-c-pr.bin",  0x00000, 0x1000, CRC(897dc4ee) SHA1(05a24bf76e8fa9ca96ba9376cbf44d299df04138) )
25992588
26002589   ROM_REGION( 0x080000, "gfx1", 0 )
26012590   ROM_LOAD( "mh-c-00.bin",  0x00000, 0x20000, CRC(dec4e121) SHA1(92169b523f1600e994e016dc1959a52958e1d89d) )  /* sprites */
r244857r244858
37573746GAME( 1987, rtypeu,      rtype,    rtype,       rtype, driver_device,    0,           ROT0,   "Irem (Nintendo of America license)", "R-Type (US)", GAME_NO_COCKTAIL )
37583747GAME( 1987, rtypeb,      rtype,    rtype,       rtype, driver_device,    0,           ROT0,   "bootleg", "R-Type (World bootleg)", GAME_NO_COCKTAIL )
37593748GAME( 1987, bchopper,    0,        m72,         bchopper, m72_state, bchopper,    ROT0,   "Irem", "Battle Chopper", GAME_NO_COCKTAIL )
3760GAME( 1987, mrheli,      bchopper, m72,         bchopper, m72_state, mrheli,      ROT0,   "Irem", "Mr. HELI no Daibouken", GAME_NO_COCKTAIL )
3749GAME( 1987, mrheli,      bchopper, m72_8751,    bchopper, m72_state, m72_8751,    ROT0,   "Irem", "Mr. HELI no Daibouken (Japan)", GAME_NO_COCKTAIL )
37613750GAME( 1988, nspirit,     0,        m72,         nspirit, m72_state,  nspirit,     ROT0,   "Irem", "Ninja Spirit", GAME_NO_COCKTAIL )                 // doesn't wait / check for japan warning string.. fails rom check if used with japanese mcu rom (World version?)
37623751GAME( 1988, nspiritj,    nspirit,  m72_8751,    nspirit, m72_state,  m72_8751,    ROT0,   "Irem", "Saigo no Nindou (Japan)", GAME_NO_COCKTAIL )      // waits for japan warning screen, works with our mcu dump, corrupt warning screen due to priority / mixing errors (Japan Version)
37633752GAME( 1988, imgfight,    0,        m72,         imgfight, m72_state, imgfight,    ROT270, "Irem", "Image Fight (World, revision A)", 0 )             // doesn't wait / check for japan warning string.. fails rom check if used with japanese mcu rom (World version?)
trunk/src/mame/includes/m72.h
r244857r244858
113113   DECLARE_DRIVER_INIT(gallop);
114114   DECLARE_DRIVER_INIT(m72_8751);
115115   DECLARE_DRIVER_INIT(xmultiplm72);
116   DECLARE_DRIVER_INIT(mrheli);
117116   DECLARE_DRIVER_INIT(dbreedm72);
118117   DECLARE_DRIVER_INIT(airduel);
119118   DECLARE_DRIVER_INIT(nspirit);


Previous 199869 Revisions Next


© 1997-2024 The MAME Team