No announcement yet.

Moon Patrol No Continue Hack.

  • Filter
  • Time
  • Show
Clear All
new posts

  • Moon Patrol No Continue Hack.

    As mentioned in my Kangaroo high score save mod I had a play around with the Moon Patrol code to remove the continue screen.
    Its something that's always bothered me specially for home use where we play to see how far we can get on one credit for a high score.
    Again the following are just notes I took for myself so don't expect them to make to much but it does explain what i did.

    Ram 2k
    E000 to E7FF
    Coin counter E04A
    Address 0496-04a0 adds one credit when coin entered.
    E511 : Time Counter
    E515 : 1p Lives
    8233-8234 : count from 10-0
    03DD write continue timer
    0068 start address for attract mode start
    010D Blank video ram before press 1 or 2 player screen.
    01A3 Blanks video ram before continue screen.

    8000-87FF gfx ram
    0D7F-0D85 - GFX Ram Clear
    0d7f 210080    ld      hl,8000h
    0d82 010008    ld      bc,0800h
    0d85 cd2906    call    0629h
    Jumps to 0629, this is basically a universal timer. 
    0629 3600      ld      (hl),00h
    062b 23        inc     hl
    062c 0b        dec     bc
    062d 78        ld      a,b
    062e b1        or      c
    062f 20f8      jr      nz,0629h
    0631 c9        ret 
    Decrement loop. Fills ram with zeros until BC is zero.
    0623-0624 work ram blanking
    0623 2100e0    ld      hl,0e000h
    0626 010007    ld      bc,0700h
    0629 3600      ld      (hl),00h
    062b 23        inc     hl
    062c 0b        dec     bc
    062d 78        ld      a,b
    062e b1        or      c
    062f 20f8      jr      nz,0629h
    0631 c9        ret
    Continue Screen Code
    01a3 cd7f0d    call    0d7fh
    01a6 21222a    ld      hl,2a22h ; Changed to "jp 01EE" bypasses the continue code.The code below essentially becomes free space.
    01ac 3e11      ld      a,11h
    01a9 cd1c03    call    031ch
    01ae a7        and     a
    01af 283d      jr      z,01eeh
    01b1 3d        dec     a
    01b2 27        daa     
    01b3 3256e0    ld      (0e056h),a
    01b6 113382    ld      de,8233h
    01b9 0e02      ld      c,02h
    01bb cdca03    call    03cah
    01be 3e40      ld      a,40h
    01c0 3252e0    ld      (0e052h),a
    01c3 3a52e0    ld      a,(0e052h)
    01c6 a7        and     a
    01c7 3a56e0    ld      a,(0e056h)
    01ca 28e2      jr      z,01aeh
    01cc 3a4ae0    ld      a,(0e04ah)
    01cf a7        and     a
    01d0 200b      jr      nz,01ddh
    01d2 214f2c    ld      hl,2c4fh
    01d5 cd9003    call    0390h
    01d8 cd5605    call    0556h
    01db 18e6      jr      01c3h
    01dd cd6205    call    0562h
    01e0 28e1      jr      z,01c3h
    01e2 cdf601    call    01f6h
    01e5 cdf601    call    01f6h
    01e8 cd150d    call    0d15h
    01eb c30d0c    jp      0c0dh
    Fix Checksum in Test for rom 1 "mpa-1w.3m"
    Rom Check is daft, game expects FF for each of the 4 program roms.
    With my edit rom 1 gets an error: "ROM0 NG FA"
    We need to "balance" it to FF so FA+05=FF
    There's a bunch of unused code from 0019 to 0026.
    Using a hex editor i changed 0x0026 to 05, now in test the Rom shows "ROM0 OK FF"

    High Score Save Kit from
    Most people would be running one of these.
    Rom is 64k (27C512) original rom is 4*4k(2732) = 16K
    Address area I modified above is already modified by this hack
    01a6 21222a ld hl,2a22h ; Original
    01a6 cd523f call 3f52h ; Jumps to address 0x3F52 at the end of the normal region of the 16k rom where normally
    there's a heap of unused space. Everything after this line is identical. We can expect our missing code above
    somewhere at this location.

    3f52 f5        push    af
    3f53 c5        push    bc
    3f54 d5        push    de
    3f55 dde5      push    ix
    3f57 fde5      push    iy
    3f59 cd703f    call    3f70h
    3f5c cd7e3f    call    3f7eh
    3f5f cd70f0    call    0f070h
    3f62 cd00f0    call    0f000h
    3f65 fde1      pop     iy
    3f67 dde1      pop     ix
    3f69 d1        pop     de
    3f6a c1        pop     bc
    3f6b f1        pop     af
    3f6c 21222a    ld      hl,2a22h ; Here's our missing line.
    3f6f c9        ret
    A lot of the unused space between 3F4F and 3FFF has been used by this Free Play/Highscore Table hack.
    I'm going to guess this region has the rewrite for the Attract Mode + Free Play and at the end of
    the 64k rom (F000-F7FA) is the code for the high score table itself.

    01A9 call 031ch becomes jp 01eeh
    Hex CD1C03 becomes C3EE01
    3F6C hl,2a22h ; will become nop nop nop
    Hex 21222A becomes 000000

    So there you have it The stock Williams version is attached below you can use on real hardware or MAME, if you want the version for the Souzaonline kit PM me.
    I only edited the Williams rom, if you want the Irem one PM me, would only take a few mins for me to modify it, I may actually do it anyway.
    I'll probably play around with this some more especially the Souzaonline kit, I'll probably change the flashing "Insert Coin" to "Free Play". Ive been playing around with compiling Mame myself so I wonder if its possible to write a driver for it so I can work on it in Mame, so far I haven't had any luck.
    Attached Files
    Last edited by Arcade King; 12th June 2017, 04:36 AM.

  • #2
    Cool, from the point of view of the learning and also for making something useful available to the masses.


    • #3
      I like how you finish a game now it goes straight into attract. I hope somebody finds it useful.


      • #4
        Originally posted by Arcade King View Post
        Ive been playing around with compiling Mame myself so I wonder if its possible to write a driver for it so I can work on it in Mame, so far I haven't had any luck.
        I used to do a LOT of minor modding and Mame compilation.

        Adding this as a separate game into Mame used to be dead easy. You shouldn't need to touch anything for CPU, Sound etc. All you'll be doing is adding this rom to the list in appropriate areas.

        My Projects - Space Invaders Bartop, Williams A-Go-Go, Galaxian Bartop, Jukebox Kiosk 1&2, Jukebox Kiosk 3, Virtual Minipin, Generic Upright, MultiCab, Rampage,


        • #5
          I will use this for sure (for the exact reasons you said).

          Thanks a lot!


          • #6
            Added in the Irem version for those who have original Irem (never seen one) and Bootleg Boards.
            If you want the one for the Souzaonline kit PM me.


            • #7
              Neat work with a lot of details and explanations.


              • #8
                Thanks mate.
                I've run out of idea's for other things to mod, most stuff has already been done although I think I will play around with Millipede next. The default high score table is stupidly high.


                Users Viewing Topic: 0 members and 1 (guests)