News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Some technical help for SMB3 and Ms. Pac-Man  (Read 890 times)

Googie

  • Hero Member
  • *****
  • Posts: 942
  • I'd like to solve the puzzle... Jiggers!
    • View Profile
    • My work in progress ROM Hacking site
Some technical help for SMB3 and Ms. Pac-Man
« on: July 11, 2020, 07:29:28 pm »
Hey fellas, I'm looking for someone who has some time on their hands to help me out with some offsets for Super Mario Bros. 3 and Ms. Pac-Man (Namco) version.

These are two dead SMB3 hacks, this is what I need help in.

1. In the Luigi Coin Quest demo when you have the Tanooki suit you can turn into a Twimp (which I already did switch the graphics) you can break the regular bricks.

2. In the Luigi vs. Mario demo, Boom Boom acts differently when you fight him.

If I can get a hand with these I would really appreciate it, I've been trying to use the debugger and for the life of me I can't find them.

I uploaded the demos, so you can take a peek at them here.
-----------------------------------------------------------------------

In this old Ms. Pac-Man hack, I need the offsets for the speed to make Ms. Pac-Man faster and to have the fruit appear under the ghost house.

This'll be a sequel to my SMB1 hack Super Luigi: The Forgotten Adventure, it's call Super Luigi: The Forgotten Tale.



All the graphics are done, the levels and text are ready to be edited now.

And this is my third and final Ms. Pac-Man hack, titled Ms. Pac-Man G3





Thanks for taking the time to look at my help wanted ad. :beer:

Edited on 7/18/2020

Here's a couple of save states for the SMB3 hacks, you can get 'em here. 
« Last Edit: July 18, 2020, 03:44:59 pm by Googie »

binarck

  • Jr. Member
  • **
  • Posts: 21
    • View Profile
Re: Some technical help for SMB3 and Ms. Pac-Man
« Reply #1 on: July 18, 2020, 04:04:05 pm »
Quote
In this old Ms. Pac-Man hack, I need the offsets for the speed to make Ms. Pac-Man faster

$6551 rom + $10 header = $6561. Logged a bunch of samples (16-bit speed).

Code: [Select]
01:E081: B9 51 E5  LDA $E551,Y @ $E551 = #$B0
01:E081: B9 51 E5  LDA $E551,Y @ $E561 = #$B0
01:E081: B9 51 E5  LDA $E551,Y @ $E571 = #$C0
01:E081: B9 51 E5  LDA $E551,Y @ $E591 = #$D0
01:E081: B9 51 E5  LDA $E551,Y @ $E5A1 = #$D0
01:E081: B9 51 E5  LDA $E551,Y @ $E5B1 = #$E0
01:E081: B9 51 E5  LDA $E551,Y @ $E5C1 = #$E0

______________________________________________


Quote
and to have the fruit appear under the ghost house.


Code: [Select]
old code
 01:D81A: 18        CLC
 01:D81B: 65 05     ADC $05 = #$00


new code
 01:D81A: 20 90 FF  JSR $FF90

 01:FF90: 18        CLC
 01:FF91: 65 05     ADC $05 = #$01
 01:FF93: E0 08     CPX #$08
 01:FF95: D0 09     BNE $FFA0
 01:FF97: C0 02     CPY #$02
 01:FF99: D0 03     BNE $FF9E
 01:FF9B: A9 B0     LDA #$B0        ; ypos
 01:FF9D: 60        RTS -----------------------------------------
 01:FF9E: A9 58     LDA #$58        ; xpos
 01:FFA0: 60        RTS -----------------------------------------

_______________________________________________


Quote
1. In the Luigi Coin Quest demo when you have the Tanooki suit you can turn into a Twimp (which I already did switch the graphics) you can break the regular bricks.

Code: [Select]
old code
 $04:B716: B9 73 B6  LDA $B673,Y


new code
 04:B716: 20 A4 E2  JSR $E2A4

 0F:E2A4: C0 01     CPY #$01          ; check block type ?
 0F:E2A6: D0 08     BNE $E2B0

 0F:E2A8: AD 7A 05  LDA $057A = #$AC  ; check tanooki statue ?
 0F:E2AB: F0 07     BEQ $E2B4

>0F:E2AD: A9 06     LDA #$06          ; break block
 0F:E2AF: 60        RTS -----------------------------------------
 0F:E2B0: B9 73 B6  LDA $B673,Y @ $B674 = #$00   ; normal
 0F:E2B3: 60        RTS -----------------------------------------
 0F:E2B4: A9 00     LDA #$00          ; do nothing
 0F:E2B6: 60        RTS -----------------------------------------

___________________________________________________

Quote
2. In the Luigi vs. Mario demo, Boom Boom acts differently when you fight him.


1. Switch Boom Boom behavior state

Code: [Select]
old code
>01:AE68: B5 9A     LDA $9A,X @ $009E = #$02
 01:AE6A: F6 9A     INC $9A,X @ $009E = #$02


new code = change boom state  [2 (ground) -> 3 (jump) -> 2 (ground) -> 3 (fly) -> 4 (bounce)]
 01:AE68: 20 BF BF  JSR $BFBF
 01:AE6B: EA        NOP


>01:BFBF: B5 9A     LDA $9A,X @ $009E = #$03
 01:BFC1: C9 03     CMP #$03
 01:BFC3: D0 0F     BNE $BFD4
 01:BFC5: A9 4C     LDA #$4C
 01:BFC7: DD 71 06  CMP $0671,X @ $0675 = #$4C
 01:BFCA: F0 08     BEQ $BFD4
 01:BFCC: 9D 71 06  STA $0671,X @ $0675 = #$4C
 01:BFCF: A9 02     LDA #$02
 01:BFD1: 95 9A     STA $9A,X @ $009E = #$03
 01:BFD3: 60        RTS -----------------------------------------
 01:BFD4: B5 9A     LDA $9A,X @ $009E = #$03
 01:BFD6: F6 9A     INC $9A,X @ $009E = #$03
 01:BFD8: 60        RTS -----------------------------------------


2. New jump behavior (less delay, less height)

Code: [Select]
old code
 01:AC0A: A9 A0     LDA #$A0
 01:AC0C: 95 D0     STA $D0,X @ $00D4 = #$12


new code = boom 2  (jump height)
 01:AC0A: A9 D0     LDA #$D0
 01:AC0C: 95 D0     STA $D0,X @ $00D4 = #$12

Code: [Select]
old code
>01:AC47: A5 15     LDA $15 = #$32
 01:AC49: 29 3F     AND #$3F
 01:AC4B: F0 14     BEQ $AC61
 01:AC4D: A5 15     LDA $15 = #$32
 01:AC4F: 18        CLC
 01:AC50: 69 1F     ADC #$1F
 01:AC52: 0A        ASL
 01:AC53: D0 14     BNE $AC69
 01:AC55: A9 18     LDA #$18
 01:AC57: AC 27 07  LDY $0727 = #$00
 01:AC5A: D0 01     BNE $AC5D
 01:AC5C: 0A        ASL
 01:AC5D: 9D 21 04  STA $0421,X @ $0425 = #$00
 01:AC60: 60        RTS -----------------------------------------


new code = boom 2  (wait time)
 01:AC47: A5 15     LDA $15 = #$D1
 01:AC49: 29 01     AND #$01
 01:AC4B: D0 14     BNE $AC61
 01:AC4D: F0 0C     BEQ $AC5B
 01:AC4F: EA        NOP
 01:AC50: EA        NOP
 01:AC51: EA        NOP
 01:AC52: EA        NOP
 01:AC53: EA        NOP
 01:AC54: EA        NOP
 01:AC55: EA        NOP
 01:AC56: EA        NOP
 01:AC57: EA        NOP
 01:AC58: EA        NOP
 01:AC59: EA        NOP
 01:AC5A: EA        NOP
 01:AC5B: A9 01     LDA #$01
 01:AC5D: 9D 21 04  STA $0421,X @ $0425 = #$00
 01:AC60: 60        RTS -----------------------------------------


3. New wall bounce behavior

Code: [Select]
old code
 01:AA67: BC 20 05  LDY $0520,X @ $0524 = #$00


new code = boom boom #5  (super jump)
 01:AA67: 20 ED BF  JSR $BFED

>01:BFED: C9 04     CMP #$04                   ; boom 5
 01:BFEF: D0 08     BNE $BFF9
 01:BFF1: B5 D0     LDA $D0,X @ $00D4 = #$00
 01:BFF3: D0 04     BNE $BFF9
 01:BFF5: A9 90     LDA #$90                   ; new AI
 01:BFF7: 95 D0     STA $D0,X @ $00D4 = #$00
 01:BFF9: BC 20 05  LDY $0520,X @ $0524 = #$00
 01:BFFC: 60        RTS -----------------------------------------
« Last Edit: July 18, 2020, 11:07:58 pm by binarck »

Googie

  • Hero Member
  • *****
  • Posts: 942
  • I'd like to solve the puzzle... Jiggers!
    • View Profile
    • My work in progress ROM Hacking site
Re: Some technical help for SMB3 and Ms. Pac-Man
« Reply #2 on: July 22, 2020, 02:55:50 pm »
binarck: you're a life saver, man. I really do appreciate you taking the time to look for the data for me, when I'm done with world 1 I'll pass the hack to you if you'd like to beta test, I'll keep you in the loop. Thanks again.  :thumbsup: :beer: :cookie:

binarck

  • Jr. Member
  • **
  • Posts: 21
    • View Profile
Re: Some technical help for SMB3 and Ms. Pac-Man
« Reply #3 on: July 24, 2020, 10:42:06 pm »
I had a decent challenge pulling out that data, so I am happy it saved you time! And sure, I'd be willing to give the W1 teaser a whirl when ready.