I just recently installed 2 patches in my hack and have noticed 1up Mushrooms don't add a 1up to the life counter anymore. But you can still get 1ups from 100 coins or 5 dragon coins (as seen here).
The 2 patches I used were "Give coin instead of points" patch by KevinM & "Spinning Coin on Fireball Kill" by RussianMan. Both were patch in an effort entirely replace score with coins, and both work well outside of this 1up issue. to Below are the respective codes.
"Give coin instead of points"
"Spinning Coin on Fireball Kill"
Any ideas on what the problem may be?
The 2 patches I used were "Give coin instead of points" patch by KevinM & "Spinning Coin on Fireball Kill" by RussianMan. Both were patch in an effort entirely replace score with coins, and both work well outside of this 1up issue. to Below are the respective codes.
"Give coin instead of points"
Code
if read1($00FFD5) == $23 ; check if the rom is sa-1 sa1rom !addr = $6000 !D8 = $3216 !E4 = $322C !14D4 = $3258 !14E0 = $326E else lorom !addr = $0000 !D8 = $D8 !E4 = $E4 !14D4 = $14D4 !14E0 = $14E0 endif org $02ACE6 autoclean JSL GiveCoin PLX RTL freedata GiveCoin: INC $13CC|!addr ; Give 1 coin LDA $0DC0|!addr ;\ Update the green star block counter BEQ + ;| DEC $0DC0|!addr ;/ + LDA !14E0,x ;\ If the sprite is offscreen, don't spawn the spinning coin XBA ;| LDA !E4,x ;| REP #$20 ;| SEC ;| SBC $1A ;| CLC ;| ADC #$0010 ;| CMP #$0120 ;| SEP #$20 ;| BCS .Return ;/ ; LDA #$01 ;\ Play coin sfx ; STA $1DFC|!addr ;/ PHY ; Save Y for later LDY #$03 ;\ Find free spinning coin slot (and overrite if necessary) - LDA $17D0|!addr,y ;| BEQ + ;| DEY ;| BPL - ;| INY ;/ + LDA #$01 ;\ Set slot as taken STA $17D0|!addr,y ;/ LDA !E4,x ;\ Position of coin = position of sprite STA $17E0|!addr,y ;| LDA !14E0,x ;| STA $17EC|!addr,y ;| LDA !D8,x ;| STA $17D4|!addr,y ;| LDA !14D4,x ;| STA $17E8|!addr,y ;/ LDA #$00 ;\ Set spawned from layer 1 STA $17E4|!addr,y ;/ LDA #$D0 ;\ Y speed STA $17D8|!addr,y ;/ PLY ; Restore Y .Return RTL ; Return
"Spinning Coin on Fireball Kill"
Code
!bank = $800000 !addr = $0000 !D8 = $D8 !E4 = $E4 !14D4 = $14D4 !14E0 = $14E0 !14C8 = $14C8 if read1($00FFD5) == $23 sa1rom !bank = $000000 !addr = $6000 !D8 = $3216 !E4 = $322C !14D4 = $3258 !14E0 = $326E !14C8 = $3242 endif org $02A124 autoclean JML TurnIntoSpinningCoin freecode TurnIntoSpinningCoin: LDA #$03 ;restore sound effect STA $1DF9|!addr ; STZ !14C8,x ;the sprite is dead, really dead SpawnSpinningCoin: LDY #$03 ;all spinning coin sprite slots .Loop LDA $17D0|!addr,y ; BEQ .Spawn ; DEY ; BPL .Loop ; DEC $1865|!addr ;if no slot is free, replace one of them BPL .UseDisAddr ; LDA #$03 ; STA $1865|!addr ; .UseDisAddr LDY $1865|!addr ; .Spawn LDA #$01 ; STA $17D0|!addr,y ; DEC ;process on layer 1 STA $17E4|!addr,y ; JSL $05B34A|!bank ;add a single coin LDA !D8,x ;set position, Y STA $17D4|!addr,y ; LDA !14D4,x ;high byte STA $17E8|!addr,y ; LDA !E4,x ;set position, X STA $17E0|!addr,y ; LDA !14E0,x ;high byte STA $17EC|!addr,y ; LDA #$D0 ;coin timer STA $17D8|!addr,y ; JML $02A143|!bank ;next slot and stuff
Any ideas on what the problem may be?