Has anyone here been aware that the Spiny Egg movement in the NES version of Super Mario Brothers is not as intended? The link below will tell.
Link about this:
https://tcrf.net/Talk:Super_Mario_Br...ontal_Movement
What we got:
What should have been:Code:DifLoop: lda PRDiffAdjustData,y sta $01,x iny iny iny iny dex bpl DifLoop ldx ObjectOffset jsr PlayerLakituDiff ldy Player_X_Speed cpy #$08 bcs SetSpSpd tay lda PseudoRandomBitReg+1,x and #$03 beq UsePosv tya eor #$ff tay iny UsePosv: tya SetSpSpd: jsr SmallBBox ldy #$02 sta Enemy_X_Speed,x cmp #$00 bmi SpinyRte dey
Move the jsr instruction to below the dey instruction, and the movement will be as intended.Code:SetSpSpd: ldy #$02 sta Enemy_X_Speed,x cmp #$00 bmi SpinyRte dey SpinyRte: jsr SmallBBox
This same fix can also be applied to these other SMB variations:
Super Mario Bros. (FDS)
Super Mario Bros. 2 (Japan) (FDS)
All-Night Nippon Super Mario Bros. (FDS)
Vs. Super Mario Bros.
(Please note the offsets for the SetSpSpd instruction will be different for these versions than the NES cartridge version, which is at offset 0x4444 when using a hex editing program like Hexecute or Hex Workshop.)
~Ben





 
 
					
					
					
						
  Reply With Quote
			