Thanks Thanks:  0
Results 1 to 8 of 8

Thread: Moon Patrol No Continue Hack.

  1. #1
    Join Date
    Oct 2005
    State
    Redlands
    Posts
    18,254
    Mentioned
    181 Post(s)
    Quoted
    2070 Post(s)

    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.

    Code:
    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
    Code:
    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
    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 http://arcade.souzaonline.com/
    Most people would be running one of these.
    NOTES:
    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
    Changed
    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.

    Code:
    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.

    Edit.
    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.
    Last edited by Arcade King; 12th June 2017 at 04:36 AM.

  2. #2
    Join Date
    Jun 2009
    State
    Sydhey
    Posts
    3,473
    Mentioned
    148 Post(s)
    Quoted
    914 Post(s)
    Cool, from the point of view of the learning and also for making something useful available to the masses.

  3. #3
    Join Date
    Oct 2005
    State
    Redlands
    Posts
    18,254
    Mentioned
    181 Post(s)
    Quoted
    2070 Post(s)

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

  4. #4
    Join Date
    Mar 2006
    State
    Brisbane, Australia
    Posts
    11,468
    Mentioned
    203 Post(s)
    Quoted
    1505 Post(s)
    Quote 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.

    Brad

  5. #5
    Join Date
    Oct 2015
    State
    Victoria
    Posts
    363
    Mentioned
    14 Post(s)
    Quoted
    78 Post(s)
    I will use this for sure (for the exact reasons you said).

    Thanks a lot!

  6. #6
    Join Date
    Oct 2005
    State
    Redlands
    Posts
    18,254
    Mentioned
    181 Post(s)
    Quoted
    2070 Post(s)

    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. #7
    Join Date
    Apr 2017
    State
    Waikato
    Posts
    97
    Mentioned
    4 Post(s)
    Quoted
    20 Post(s)
    Neat work with a lot of details and explanations.

  8. #8
    Join Date
    Oct 2005
    State
    Redlands
    Posts
    18,254
    Mentioned
    181 Post(s)
    Quoted
    2070 Post(s)

    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.


Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •