Glorious Irem M72 multi

Image
For all Supergun and Consolized motherboard discussion.

Post Reply
Arcade-Projects
Corporate
Posts: 5926
Joined: Tue Jun 04, 2019 11:43 pm

Glorious Irem M72 multi

Post by Arcade-Projects »

Installation thread:
arcade-projects.com/forums/ind…it-installation-support/&

Yes, the glorious M72 hardware, host of many great and sought after games like R-Type, X-Multiply, Ninja Spirit, etc. to name few.
As you may have seen my projects are always a mix of software hack and hardware design, I repeated the process once again.

There are 10 know games on this hardware:
- Air Duel
- Battle Chopper/Mr.Heli
- Dragon Breed (Japanese version)
- Gallop
- Daiku No Gensan (Japanese version of Hammerin' Harry)
- Image Fight
- Legend Of Hero Tonma
- Ninja Spirit/ Saigo No Nindou
- R-Type
- X-Multiply (Japanese version)
[EDIT]
Two more games added to the list:
- R-Type II (World version, converted from M84)
- Lightning Swords (known in Japan as Kengo, converted from encrypted V35 M84)

Hardware is identical between games except for R-Type which uses a simpler romboard with no samples capability.

Also the top board contains a different PAL chip between games and a protection chip (again, except R-Type which has no protection).
This PAL has 2 functions:
- work RAM offset
- program ROMs mapping
I probed it and discovered it was very simple in the way it works: address lines on one side, multiplexed /CE lines on the other side.
I chose to handcraft an "universal" PAL mapping RAM @ 0xA0000 (7 games out of 10 use that) and 4 consecutive banks of 128kB for program ROMs.
Then I patched the 3 games not using RAM @ 0xA0000: Dragon Breed, R-Type and X-Multiply.
And by arranging program ROMs correctly I could run all the games BUT...

There comes the protection: the MCU (i8751) used for protection does 2 things:
- boot up protection (prevent the game from running by throwing a RAM error on boot up)
- samples playing
I patched all games to boot without any MCU installed. This was a good start but games played without any sample now.
Thing is the sample playing mechanism isn't understood in MAME and instead is simulated.
I spent a good saturday afternoon trying to fully figuring it out. It's not that often I can find so much time to work on my projects (i.e. 3 or 4 hours consecutilvely) so I had to succeed.
In fact when the game wants to play a sample it sends a command to the MCU which in turn sends a command to the sound CPU. I thought I could simply fork data to be sent directly to the sound CPU, bypassing the MCU, but on real hardware the needed port isn't accessible by the main CPU. It also thought of writting diretly to the sound RAM but I was worried about synchronisation (were samples going to be played fully and at the right pitch without any cuts?) and it was probably a lot of work patching all games.
I ended up handcrafting an universal MCU for samples playing! Yes the same MCU code supporting all the games for the sample part.
Only problematic game I could foresee was Gallop as MAME states the MCU isn't used for protection at all but only for samples playing. I have the feeling things are going to be different for this game.
Anyway, this means a lot of great things:
- games with a faulty MCU can now be revived
- any game (except R-Type due to the specific romboard) can be converted to any other game (including R-Type)
So now you're asking yourself "Why not making a universal MCU for the protection part too?". Beacause internal ROM of the MCU is 4kB only. Of course I could use external ROM but:
- then my code would be visible
- I would have to design an additional daughter board for the MCU, external ROM and at least one LS373 in between to latch lower address lines as the 8751/8951 MCUs use the same port for lower address lines (A0~7) and data lines (D0~7).

So now that I have found a solution for each problem it was time for testing:

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Known issues:
- Gallop: no samples at all => Fixed
- None ATM

Not bad I'd say!

WAIT LIST

First batch:
@djsheep => Received
@Derick2k => Received
@rtw => Received
@Astro X => Sent 19/10/2018
@frsj8112 => Sent 03/12/2018
@Darksoft => Sent 03/12/2018
@CPZ - SAVEYOURGAMES => Sent 04/12/2018
@archimage => Sent 03/12/2018
@kingau => Sent 03/12/2018

Second batch:
@-Ace- (SHIPPED 1/17/19)*
@zizer (SHIPPED 2/22/19)
@acblunden2 (PASS)
@ekorz (SHIPPED 1/17/19)*
@ShootTheCore (SHIPPED 1/17/19)*
@twistedsymphony (SHIPPED 1/18/19)*
@mastercello (SHIPPED 1/17/19)*
@AlxUnderBase (SHIPPED 2/22/19)
@West (PASS)
@rewrite (PASS)
@LHantz (SHIPPED 2/25/19)
@furbyxxl (PASS)
@sk8er000 (SHIPPED 1/17/19)*
@raidenmaniac1 * 2 (SHIPPED 2/25/19
@Yippikaye (SHIPPED 2/22/19)
@pulstarx (PASS)
@jepjepjep (SHIPPED 1/17/19)*
@tom5151 (SHIPPED 2/25/19)
@xtrasmiley (SHIPPED 4/30/19)
@udongein (PASS)
@Damsrpg (No response)
@NeoXbit (PASS)
@Michaelm (SHIPPED 2/26/19)
@90sCyberThriller (SHIPPED 2/28/19)
@redijedi808 (SHIPPED 3/1/19)
@kebrank (SHIPPED 3/8/19)
@blomman (SHIPPED 3/8/19)
@wyo_vr4 (Waited too long to respond)
@McKie1 (SHIPPED 3/4/19)
@remvel (SHIPPED 3/8/19)
@beast1x5 (SHIPPED 3/4/19)
@blahjedi (SHIPPED 3/6/19)
@nio (SHIPPED 1/18/19)*
@Nekoma (PASS)
@oneleaf86 (SHIPPED 3/6/19)
@aaronjmill (SHIPPED 3/8/19)
@glstar * 2 (SHIPPED 3/11/19)
@Eiko (SHIPPED 3/11/19)
@Akraten (SHIPPED 3/11/19)
@speedswan (SHIPPED 1/17/19)*
@Arcade game (SHIPPED 3/18/19)
@Derick2k (SHIPPED 3/14/19)
@waiwainl (SHIPPED 3/18/19)
@brentradio (SHIPPED 1/21/19)
@mncmt (SHIPPED 3/18/19)
@ben.shinobi (SHIPPED 3/18/19)
@alberto1225 * 2 (SHIPPED 3/18/19)
@FairWitness (SHIPPED 3/20/19)
@loegan43 (SHIPPED 3/25/19)
@asra
(SHIPPED 3/25/19)
@8bitforlife (PASS)
@Koston (PASS)
@KAKAKOKEOKUKU (SHIPPED 4/13/19)
@lemans123 (SHIPPED 4/24/19)
@Yukari Tamura (SHIPPED 4/15/19)
@hardyhell (PASS)
@sneek (No response)
@plasticfactory (SHIPPED 5/2/19)
@philsublime (SHIPPED 1/17/19)*
@KRG (SHIPPED 4/16/19)
@geosnow (SHIPPED 4/19/19)
@suverman (PASS)
@Mercks (PASS--Noone to program eproms for him)
@KalessinDB (PASS)
@stt1 (SHIPPED 5/2/19)
@Bigsingerdawg (SHIPPED 4/16/19)
@suverman (PASS)
@Pelly (SHIPPED 4/17/19)
@euphoria (SHIPPED 4/18/19)
@fafangus (SHIPPED 4/17/19)
@Nodoyuna (SHIPPED 4/18/19)
@CPZ - SAVEYOURGAMES * 2 (SHIPPED 1/22/19)
@Jaime * 2 (SHIPPED 4/24/19)
@Solmin (SHIPPED 4/23/19)
@radirgyman (SHIPPED 4/17/19)
@'CoinFeeder' (SHIPPED 4/19/19)
@Ryan the ryan (SHIPPED 4/19/19)
@Mrhide (SHIPPED 4/25/19)
ryantiger99 (email) (SHIPPED 4/25/19)
@xmas (No Response)
@howmuch4cash (SHIPPED 5/7/19)
@psykom1 (SHIPPED 5/7/19)
@Atari (No Response)
@hoagtech (SHIPPED 5/10/19)
@futasan (SHIPPED 5/8/19)
@fuzzbuddy (PASS)
@mathewbeall (SHIPPED 5/9/19)
RoZioN (arcade Otaku--contact @frsj8112) (SHIPPED 5/13/19)
@Joeybagadonuts (SHIPPED 5/13/19)
@KRG * 2 more (SHIPPED 5/21/19)
@truxpin (SHIPPED 5/16/19)
@masamuneGTO (SHIPPED 5/28/19)
@wolfsoft * 2 (PM sent)
@bagheera369 (SHIPPED 5/28/19)
@Takosuke (SHIPPED 5/28/19)
@futasan 1 more (SHIPPED 5/28/19)
@fivestars (SHIPPED 5/28/19)
@Joeybagadonuts (SHIPPED 5/24/19)
@MoppelTheWhale (PM sent)

More...
Post Reply

Return to “Modified Moderboards”