Irem M84 Conversions

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • @Hammy, let me know if you need more info. Conversions FROM M72 are actually much simpler than conversions TO M72.

      On M72 sound code is stored in main CPU ROMs and uploaded to the sound RAM by main CPU. Simply put a watchpoint for writes to 0xE0000 and you'll easily locate the sound code in program ROMs. Make the code a ROM file, modify ports and you'll be good.
      Then MCU does only few things, protection can be bypassed (simply replace the jump to the loaded sbr in MCU RAM by the return jump at the end of the sbr). Ninja Spirit also has few checks that compare a value written by the MCU in MCU RAM (replace the compare instruction by a register compare with itself or modify the conditional jump when it fails). Ignore the RAM test for those not existing outside of M72. Lastly modify samples writes (port 0xC0 on M72).
      Of course you also have the usual differences:
      - dma port
      - scroll ports (offset)
      - priority and flip bits for tiles
      - etc.
      Looking for:
      - OutRun boardset even untested or not working
      - Sega Super Scaler hardware (Out Run, Model X, Model Y), even with faulty PCM chip



      01010011 01000101 01000011 01010010 01000101 01010100 00100000 01001101 01000101 01001110 01010101 00100000 01000111 01010101 01011001
    • I found an issue, a DMA RET not working correctly, but it's just another fix that gets it a tiny bit further and not much improvement.

      It's maybe a good idea to scrap this attempt and start from a known good patched set, the regular changes are not a problem for me but the MCU is.
      Also i know the mame patches are no good, as they write some values into B000 (and work ram), and guess the game reads those at random.

      B000 is the new irq, so any time the game sends anything down there it crashes, same as e000 - sound ram on the 72 but work ram on the m84.

      The error below was an unneeded POP.
      Images
      • RET.png

        56.36 kB, 1,156×641, viewed 18 times

      The post was edited 1 time, last by Hammy ().

    • Well, it's running now!

      But there's some issues (and fixes since this post /videos) :

      Boss on 2nd attract loop does not show * SORTED :)
      Don't know the rom configuration to get the front and back layers showing at the same time?? (board will be ok i think)
      Still no sound * SORTED :) (still working on samples)
      Tilemap adjustments not done, and not easy for me...

      Video 1 showing background layer (the 'projectile' protection is fixed since this video was taken)



      Video 2 showing foreground layer and boss issue

      The post was edited 4 times, last by Hammy ().

    • Hardware test from last night:



      I figured this last problem out, the D400 writes need an added offset of 2000
      Otherwise they try to read the same data area as the other layer (that's why switching the data around makes the other layer fine).
      so more video ram work to do, at least it's easier than swapping the data around just a simple add.

      Sound samples are on hold at the moment, hopefully the master gets a spare 5 mins to check it out ;)
    • New

      More or less finished now:

      NEW IN THIS VERSION:
      GFX LAYERS FIXED,
      FINAL FLIPS FIXED,
      LAST BOSS HARDCODED TILES FIXED.
      FOR USE IN JAPAN SCREEN WORKING

      FIXED SINCE THE VIDEO WAS TAKEN
      ADD B4000 SCREEN BLANK * Done
      MOVE 33C0 / SHIFT CODE DOWN SO THE EXTRA CHARACTERS ARE NOT SHOWN ON THE DISCLAIMER * DONE
      1 ROUTINE THAT'S NOT USED BUT WANT TO CONVERT. * DONE

      TODO:
      CLEANUP ROM
      SOUND SAMPLES
      MAKE STATUS BAR CODE MORE ELEGANT


      The post was edited 3 times, last by Hammy: UPDATED STATUS ().