Merge remote-tracking branch 'baserom/master' into DRMain
# Conflicts: # hooks.asm # newhud.asm # utilities.asm
This commit is contained in:
20
bugfixes.asm
20
bugfixes.asm
@@ -127,10 +127,9 @@ RTL
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
;Fix for PoD causing accidental Exploration Glitch
|
;Fix for SQ jumping causing accidental Exploration Glitch
|
||||||
PodEGFix:
|
SQEGFix:
|
||||||
LDA Bugfix_PodEG : BNE .done
|
LDA Bugfix_PodEG : BNE .done
|
||||||
LDA $040C : CMP.b #$0C : BNE .done ;check if we are in PoD
|
|
||||||
STZ $047A ;disarm exploration glitch
|
STZ $047A ;disarm exploration glitch
|
||||||
.done
|
.done
|
||||||
RTL
|
RTL
|
||||||
@@ -200,3 +199,18 @@ LDA $1B : BNE +
|
|||||||
LDA $8C : CMP.b #$97
|
LDA $8C : CMP.b #$97
|
||||||
+
|
+
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
FixJingleGlitch:
|
||||||
|
LDA.b $11
|
||||||
|
BEQ .set_doors
|
||||||
|
|
||||||
|
LDA.l AllowAccidentalMajorGlitch
|
||||||
|
BEQ .exit
|
||||||
|
|
||||||
|
.set_doors
|
||||||
|
LDA.b #$05
|
||||||
|
STA.b $11
|
||||||
|
|
||||||
|
.exit
|
||||||
|
RTL
|
||||||
|
|||||||
@@ -53,8 +53,9 @@ DoWorldFix_Inverted:
|
|||||||
.aga1Alive
|
.aga1Alive
|
||||||
LDA #$40 : STA $7EF3CA ; set flag to dark world
|
LDA #$40 : STA $7EF3CA ; set flag to dark world
|
||||||
LDA $7EF3CC
|
LDA $7EF3CC
|
||||||
CMP #$07 : BNE .done ; clear frog
|
CMP #$07 : BEQ .clear ; clear frog
|
||||||
CMP #$08 : BNE .done ; clear dwarf - consider flute implications
|
CMP #$08 : BEQ .clear ; clear dwarf - consider flute implications
|
||||||
|
BRA .done
|
||||||
.clear
|
.clear
|
||||||
LDA.b #$00 : STA $7EF3CC ; clear follower
|
LDA.b #$00 : STA $7EF3CC ; clear follower
|
||||||
.done
|
.done
|
||||||
|
|||||||
@@ -24,11 +24,12 @@ LockAgahnimDoors:
|
|||||||
|
|
||||||
LDA $7EF2C3 : AND.w #$0020 : BNE .unlock ; Check if GT overlay is already on or not
|
LDA $7EF2C3 : AND.w #$0020 : BNE .unlock ; Check if GT overlay is already on or not
|
||||||
LDA $0308 : AND.w #$0080 : BEQ ++ ;If we are holding an item
|
LDA $0308 : AND.w #$0080 : BEQ ++ ;If we are holding an item
|
||||||
|
|
||||||
|
.locked
|
||||||
LDA #$0001 : RTL ;Keep the door locked
|
LDA #$0001 : RTL ;Keep the door locked
|
||||||
++
|
++
|
||||||
SEP #$30
|
SEP #$30
|
||||||
JSL $099B6F ;Add tower break seal
|
JSL $099B6F ;Add tower break seal
|
||||||
LDA $7EF2C3 : ORA #$20 : STA $7EF2C3 ; activate GT overlay
|
|
||||||
REP #$30
|
REP #$30
|
||||||
LDA #$0001 ;Prevent door from opening that frame otherwise it glitchy
|
LDA #$0001 ;Prevent door from opening that frame otherwise it glitchy
|
||||||
RTL
|
RTL
|
||||||
@@ -39,6 +40,17 @@ LockAgahnimDoors:
|
|||||||
LDA.w #$0000 ; fallback to never locked
|
LDA.w #$0000 ; fallback to never locked
|
||||||
|
|
||||||
RTL
|
RTL
|
||||||
|
;---------------------------------------------------------------------------------
|
||||||
|
FlagAgahnimDoor:
|
||||||
|
LDA.l InvertedMode : BEQ .vanilla
|
||||||
|
|
||||||
|
LDA $7EF2C3 : ORA #$20 : STA $7EF2C3 ; activate GT overlay
|
||||||
|
|
||||||
|
.vanilla
|
||||||
|
LDA.b #$28 : STA.b $72
|
||||||
|
RTL
|
||||||
|
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
LockAgahnimDoorsCore:
|
LockAgahnimDoorsCore:
|
||||||
LDA $22 : CMP.w #1992 : !BLT + ; door too far left, skip
|
LDA $22 : CMP.w #1992 : !BLT + ; door too far left, skip
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ RTL
|
|||||||
OnDungeonExit:
|
OnDungeonExit:
|
||||||
PHA : PHP
|
PHA : PHP
|
||||||
SEP #$20 ; set 8-bit accumulator
|
SEP #$20 ; set 8-bit accumulator
|
||||||
JSL.l PodEGFix
|
JSL.l SQEGFix
|
||||||
PLP : PLA
|
PLP : PLA
|
||||||
|
|
||||||
STA $040C : STZ $04AC ; thing we wrote over
|
STA $040C : STZ $04AC ; thing we wrote over
|
||||||
@@ -50,8 +50,8 @@ OnDungeonExit:
|
|||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
OnQuit:
|
OnQuit:
|
||||||
JSL.l PodEGFix
|
JSL.l SQEGFix
|
||||||
|
LDA.b #$00 : STA $7F5035 ; bandaid patch bug with mirroring away from text
|
||||||
LDA.b #$10 : STA $1C ; thing we wrote over
|
LDA.b #$10 : STA $1C ; thing we wrote over
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -184,6 +184,7 @@ OnInitFileSelect:
|
|||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
OnLinkDamaged:
|
OnLinkDamaged:
|
||||||
|
JSL.l IncrementDamageTakenCounter_Arb
|
||||||
JSL.l FlipperKill
|
JSL.l FlipperKill
|
||||||
JML.l OHKOTimer
|
JML.l OHKOTimer
|
||||||
|
|
||||||
|
|||||||
28
hooks.asm
28
hooks.asm
@@ -1079,6 +1079,9 @@ JSL.l InitializeBottles
|
|||||||
;================================================================================
|
;================================================================================
|
||||||
; Agahnim Doors Fix
|
; Agahnim Doors Fix
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
org $099BBA
|
||||||
|
JSL FlagAgahnimDoor
|
||||||
|
|
||||||
org $1BBC94 ; <- DBC94 - Bank1B.asm : 201 (LDA $7EF3C5 : AND.w #$000F : CMP.w #$0003 : BCS BRANCH_EPSILON)
|
org $1BBC94 ; <- DBC94 - Bank1B.asm : 201 (LDA $7EF3C5 : AND.w #$000F : CMP.w #$0003 : BCS BRANCH_EPSILON)
|
||||||
JSL.l LockAgahnimDoors : BNE Overworld_Entrance_BRANCH_EPSILON : NOP #6
|
JSL.l LockAgahnimDoors : BNE Overworld_Entrance_BRANCH_EPSILON : NOP #6
|
||||||
|
|
||||||
@@ -1526,6 +1529,9 @@ org $1DBAB1 ; <- EBAB1 - sprite_sidenexx.asm : 314 (JSL GetRandomInt : AND.b #$0
|
|||||||
JSL.l RNG_Trinexx
|
JSL.l RNG_Trinexx
|
||||||
org $1DBAC3 ; <- EBAC3 - sprite_sidenexx.asm : 323 (JSL GetRandomInt : AND.b #$0F : ADD.b #$0C : STA $02 : STZ $03)
|
org $1DBAC3 ; <- EBAC3 - sprite_sidenexx.asm : 323 (JSL GetRandomInt : AND.b #$0F : ADD.b #$0C : STA $02 : STZ $03)
|
||||||
JSL.l RNG_Trinexx
|
JSL.l RNG_Trinexx
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
org $6F9B8 ; <- 379B8 - bank06.asm : 6693 (JSL GetRandomInt : PLY : AND $FA5C, Y : BNE BRANCH_MU)
|
||||||
|
JSL.l RNG_Enemy_Drops
|
||||||
;================================================================================
|
;================================================================================
|
||||||
; HUD Changes
|
; HUD Changes
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -2766,8 +2772,6 @@ JSL FastTextScroll : NOP
|
|||||||
org $01FFEE : JSL IncrementDamageTakenCounter_Eight ; overworld pit
|
org $01FFEE : JSL IncrementDamageTakenCounter_Eight ; overworld pit
|
||||||
org $079506 : JSL IncrementDamageTakenCounter_Eight ; underworld pit
|
org $079506 : JSL IncrementDamageTakenCounter_Eight ; underworld pit
|
||||||
|
|
||||||
org $0780C6 : JSL IncrementDamageTakenCounter_Arb
|
|
||||||
|
|
||||||
org $07B0B1 : JSL IncrementMagicUseCounter
|
org $07B0B1 : JSL IncrementMagicUseCounter
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
@@ -2786,6 +2790,26 @@ org $0AEEF2
|
|||||||
org $008BE5 ; hijack stripes for boss GFX transfer
|
org $008BE5 ; hijack stripes for boss GFX transfer
|
||||||
JSL DoDungeonMapBossIcon
|
JSL DoDungeonMapBossIcon
|
||||||
|
|
||||||
|
;================================================================================
|
||||||
|
; Fix quadrant glitch
|
||||||
|
org $07A879
|
||||||
|
JSR SwordSpinQuadrantFix
|
||||||
|
|
||||||
|
org $07F877 ; free rom
|
||||||
|
SwordSpinQuadrantFix:
|
||||||
|
LDA.l AllowAccidentalMajorGlitch
|
||||||
|
BEQ ++
|
||||||
|
JMP.w $07E8D9 ; HandleIndoorCameraAndDoors
|
||||||
|
|
||||||
|
++ RTS
|
||||||
|
|
||||||
|
;================================================================================
|
||||||
|
|
||||||
|
org $01C4B8 : JSL FixJingleGlitch
|
||||||
|
org $01C536 : JSL FixJingleGlitch
|
||||||
|
org $01C592 : JSL FixJingleGlitch
|
||||||
|
org $01C65F : JSL FixJingleGlitch
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
; Terrorpin AI fix
|
; Terrorpin AI fix
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
6
msu.asm
6
msu.asm
@@ -323,10 +323,8 @@ CheckMusicLoadRequest:
|
|||||||
.load
|
.load
|
||||||
REP #$10
|
REP #$10
|
||||||
STZ $4200
|
STZ $4200
|
||||||
STA !REG_SPC_CONTROL
|
- : STA !REG_SPC_CONTROL : CMP !REG_SPC_CONTROL : BNE - ; Wait until mute/unmute command is ACK'ed
|
||||||
- : CMP !REG_SPC_CONTROL : BNE - ; Wait until mute/unmute command is ACK'ed
|
- : STZ !REG_SPC_CONTROL : LDA !REG_SPC_CONTROL : BNE - ; Wait until mute/unmute command is completed
|
||||||
STZ !REG_SPC_CONTROL
|
|
||||||
- : LDA !REG_SPC_CONTROL : BNE - ; Wait until mute/unmute command is completed
|
|
||||||
LDA.b #$81 : STA $4200
|
LDA.b #$81 : STA $4200
|
||||||
|
|
||||||
LDA !REG_MUSIC_CONTROL_REQUEST : CMP.b #08 : BEQ .done+3 ; No SFX during warp track
|
LDA !REG_MUSIC_CONTROL_REQUEST : CMP.b #08 : BEQ .done+3 ; No SFX during warp track
|
||||||
|
|||||||
16
rngfixes.asm
16
rngfixes.asm
@@ -4,8 +4,7 @@
|
|||||||
RigDigRNG:
|
RigDigRNG:
|
||||||
LDA $7FFE01 : CMP.l DiggingGameRNG : !BGE .forceHeart
|
LDA $7FFE01 : CMP.l DiggingGameRNG : !BGE .forceHeart
|
||||||
.normalItem
|
.normalItem
|
||||||
JSL $0DBA71 ; GetRandomInt
|
JML GetRandomInt
|
||||||
RTL
|
|
||||||
.forceHeart
|
.forceHeart
|
||||||
LDA $7FFE00 : BNE .normalItem
|
LDA $7FFE00 : BNE .normalItem
|
||||||
LDA #$04
|
LDA #$04
|
||||||
@@ -15,7 +14,7 @@ RigChestRNG:
|
|||||||
JSL.l DecrementChestCounter
|
JSL.l DecrementChestCounter
|
||||||
LDA $04C4 : CMP.l ChestGameRNG : BEQ .forceHeart
|
LDA $04C4 : CMP.l ChestGameRNG : BEQ .forceHeart
|
||||||
.normalItem
|
.normalItem
|
||||||
JSL $0DBA71 ; GetRandomInt
|
JSL GetRandomInt
|
||||||
AND.b #$07 ; restrict values to 0-7
|
AND.b #$07 ; restrict values to 0-7
|
||||||
CMP #$07 : BEQ .notHeart
|
CMP #$07 : BEQ .notHeart
|
||||||
JSL.l DecrementItemCounter
|
JSL.l DecrementItemCounter
|
||||||
@@ -30,7 +29,7 @@ RTL
|
|||||||
JSL.l DecrementItemCounter
|
JSL.l DecrementItemCounter
|
||||||
;LDA #$00 ; bullshit rupee farming in chest game
|
;LDA #$00 ; bullshit rupee farming in chest game
|
||||||
|
|
||||||
JSL $0DBA71 ; GetRandomInt ; spam RNG until we stop getting the prize item
|
JSL GetRandomInt ; spam RNG until we stop getting the prize item
|
||||||
AND.b #$07 ; restrict values to 0-7
|
AND.b #$07 ; restrict values to 0-7
|
||||||
CMP #$07 : BNE + ; player got prize item AGAIN
|
CMP #$07 : BNE + ; player got prize item AGAIN
|
||||||
LDA.b #$00 ; give them money instead
|
LDA.b #$00 ; give them money instead
|
||||||
@@ -98,6 +97,11 @@ RNG_Ganon_Extra_Warp:
|
|||||||
+
|
+
|
||||||
PLA
|
PLA
|
||||||
RTL
|
RTL
|
||||||
|
RNG_Enemy_Drops:
|
||||||
|
LDA.l $7EF3C5 : CMP #$01 : BEQ + ; drops are static after uncle pickup & before rescuing zelda
|
||||||
|
JML GetRandomInt
|
||||||
|
+
|
||||||
|
LDA.b #$0F
|
||||||
_rng_done:
|
_rng_done:
|
||||||
JSL.l GetStaticRNG
|
JSL.l GetStaticRNG
|
||||||
RTL
|
RTL
|
||||||
@@ -143,5 +147,5 @@ dw #$02C0 ; 11 = Agahnim 2
|
|||||||
dw #$0300 ; 12 = Agahnim 2 Phantoms
|
dw #$0300 ; 12 = Agahnim 2 Phantoms
|
||||||
dw #$0340 ; 13 = Ganon
|
dw #$0340 ; 13 = Ganon
|
||||||
dw #$0380 ; 14 = Ganon Extra Warp
|
dw #$0380 ; 14 = Ganon Extra Warp
|
||||||
dw #$03C0 ; 15 = Unused
|
dw #$03C0 ; 15 = Standard Escape Enemy Drops
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -447,6 +447,7 @@ JMP StatTransitionCounter
|
|||||||
!UW_MIRROR_COUNTER = "$7EF43B"
|
!UW_MIRROR_COUNTER = "$7EF43B"
|
||||||
IncrementUWMirror:
|
IncrementUWMirror:
|
||||||
PHA
|
PHA
|
||||||
|
LDA.b #$00 : STA $7F5035 ; bandaid patch bug with mirroring away from text
|
||||||
LDA !LOCK_STATS : BNE +
|
LDA !LOCK_STATS : BNE +
|
||||||
LDA $040C : CMP #$FF : BEQ + ; skip if we're in a cave or house
|
LDA $040C : CMP #$FF : BEQ + ; skip if we're in a cave or house
|
||||||
LDA !UW_MIRROR_COUNTER : INC : STA !UW_MIRROR_COUNTER
|
LDA !UW_MIRROR_COUNTER : INC : STA !UW_MIRROR_COUNTER
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
;===================================================================================================
|
;===================================================================================================
|
||||||
; LEAVE THIS HERE FOR PHP WRITES
|
; LEAVE THIS HERE FOR PHP WRITES
|
||||||
;===================================================================================================
|
;===================================================================================================
|
||||||
|
table "creditscharmapbighi.txt"
|
||||||
YourSpriteCreditsHi:
|
YourSpriteCreditsHi:
|
||||||
db 2
|
db 2
|
||||||
db 55
|
db 55
|
||||||
db " " ; $238002
|
db " " ; $238002
|
||||||
|
|
||||||
|
table "creditscharmapbiglo.txt"
|
||||||
YourSpriteCreditsLo:
|
YourSpriteCreditsLo:
|
||||||
db 2
|
db 2
|
||||||
db 55
|
db 55
|
||||||
@@ -501,6 +503,15 @@ CreditsLineBlank:
|
|||||||
%blankline()
|
%blankline()
|
||||||
%blankline()
|
%blankline()
|
||||||
|
|
||||||
|
%smallcredits("WEBSITE LOGO", "green")
|
||||||
|
|
||||||
|
%blankline()
|
||||||
|
|
||||||
|
%bigcredits("PLEASURE")
|
||||||
|
|
||||||
|
%blankline()
|
||||||
|
%blankline()
|
||||||
|
|
||||||
%smallcredits("SPECIAL THANKS", "red")
|
%smallcredits("SPECIAL THANKS", "red")
|
||||||
|
|
||||||
%blankline()
|
%blankline()
|
||||||
@@ -568,12 +579,6 @@ CreditsLineBlank:
|
|||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
|
||||||
%emptyline()
|
|
||||||
%emptyline()
|
|
||||||
%emptyline()
|
|
||||||
%emptyline()
|
|
||||||
%emptyline()
|
|
||||||
|
|
||||||
;===================================================================================================
|
;===================================================================================================
|
||||||
|
|
||||||
|
|||||||
@@ -218,7 +218,7 @@ endmacro
|
|||||||
|
|
||||||
!ColonOffset = $83
|
!ColonOffset = $83
|
||||||
!PeriodOffset = $80
|
!PeriodOffset = $80
|
||||||
!BlankTile = $883D
|
!BlankTile = #$883D
|
||||||
|
|
||||||
RenderCreditsStatCounter:
|
RenderCreditsStatCounter:
|
||||||
PHB
|
PHB
|
||||||
|
|||||||
@@ -1082,8 +1082,15 @@ db $00, $00, $00, $00, $00, $00, $00, $00
|
|||||||
org $308350 ; PC 0x180350
|
org $308350 ; PC 0x180350
|
||||||
ShouldStartatExit:
|
ShouldStartatExit:
|
||||||
db $00, $00, $00
|
db $00, $00, $00
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
; $308358 (0x180358) fixes major glitches
|
||||||
|
; 0x00 - fix
|
||||||
|
; otherwise dont fix various major glitches
|
||||||
|
org $308358
|
||||||
|
AllowAccidentalMajorGlitch:
|
||||||
|
db $00
|
||||||
;================================================================================
|
;================================================================================
|
||||||
; 0x180350 - 0x1814FF (unused)
|
; 0x180359 - 0x1814FF (unused)
|
||||||
;================================================================================
|
;================================================================================
|
||||||
; $309500 (0x181500) - $309FFF (0x181FFF) original 0x39C bytes
|
; $309500 (0x181500) - $309FFF (0x181FFF) original 0x39C bytes
|
||||||
; Replacement Ending Sequence Text Data
|
; Replacement Ending Sequence Text Data
|
||||||
|
|||||||
@@ -24,8 +24,7 @@ GetSpriteID:
|
|||||||
PHA : JSR.w CountBottles : CMP.l BottleLimit : !BLT +
|
PHA : JSR.w CountBottles : CMP.l BottleLimit : !BLT +
|
||||||
LDA !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE +
|
LDA !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE +
|
||||||
PLA : LDA.l BottleLimitReplacement
|
PLA : LDA.l BottleLimitReplacement
|
||||||
JSL.l GetSpriteID
|
JMP GetSpriteID
|
||||||
RTL
|
|
||||||
+
|
+
|
||||||
PLA : BRA .normal
|
PLA : BRA .normal
|
||||||
.server_F0
|
.server_F0
|
||||||
@@ -59,8 +58,7 @@ RTL
|
|||||||
LDA !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE +
|
LDA !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE +
|
||||||
LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit
|
LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit
|
||||||
LDA.l ProgressiveArmorReplacement
|
LDA.l ProgressiveArmorReplacement
|
||||||
JSL.l GetSpriteID
|
JMP GetSpriteID
|
||||||
RTL
|
|
||||||
+
|
+
|
||||||
LDA.b #$04 : RTL
|
LDA.b #$04 : RTL
|
||||||
++ CMP.b #$FE : BNE ++ ; Progressive Sword
|
++ CMP.b #$FE : BNE ++ ; Progressive Sword
|
||||||
@@ -68,8 +66,7 @@ RTL
|
|||||||
LDA $7EF359
|
LDA $7EF359
|
||||||
CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit
|
CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit
|
||||||
LDA.l ProgressiveSwordReplacement
|
LDA.l ProgressiveSwordReplacement
|
||||||
JSL.l GetSpriteID
|
JMP GetSpriteID
|
||||||
RTL
|
|
||||||
.skipswordlimit : LDA $7EF359
|
.skipswordlimit : LDA $7EF359
|
||||||
+ : CMP.b #$FF : BNE + ; Swordless
|
+ : CMP.b #$FF : BNE + ; Swordless
|
||||||
LDA.b #$43 : RTL
|
LDA.b #$43 : RTL
|
||||||
@@ -87,8 +84,7 @@ RTL
|
|||||||
LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6
|
LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6
|
||||||
CMP.l ProgressiveShieldLimit : !BLT + ; Progressive Shield Limit
|
CMP.l ProgressiveShieldLimit : !BLT + ; Progressive Shield Limit
|
||||||
LDA.l ProgressiveShieldReplacement
|
LDA.l ProgressiveShieldReplacement
|
||||||
JSL.l GetSpriteID
|
JMP GetSpriteID
|
||||||
RTL
|
|
||||||
.skipshieldlimit : LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6
|
.skipshieldlimit : LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6
|
||||||
+ : CMP.b #$00 : BNE + ; No Shield
|
+ : CMP.b #$00 : BNE + ; No Shield
|
||||||
LDA.b #$2D : RTL
|
LDA.b #$2D : RTL
|
||||||
@@ -101,8 +97,7 @@ RTL
|
|||||||
LDA $7EF340 : INC : LSR
|
LDA $7EF340 : INC : LSR
|
||||||
CMP.l ProgressiveBowLimit : !BLT +
|
CMP.l ProgressiveBowLimit : !BLT +
|
||||||
LDA.l ProgressiveBowReplacement
|
LDA.l ProgressiveBowReplacement
|
||||||
JSL.l GetSpriteID
|
JMP GetSpriteID
|
||||||
RTL
|
|
||||||
.skipbowlimit : LDA $7EF340 : INC : LSR
|
.skipbowlimit : LDA $7EF340 : INC : LSR
|
||||||
+ : CMP.b #$00 : BNE + ; No Bow
|
+ : CMP.b #$00 : BNE + ; No Bow
|
||||||
LDA.b #$29 : RTL
|
LDA.b #$29 : RTL
|
||||||
@@ -187,8 +182,7 @@ GetSpritePalette:
|
|||||||
.bottle
|
.bottle
|
||||||
PHA : JSR.w CountBottles : CMP.l BottleLimit : !BLT +
|
PHA : JSR.w CountBottles : CMP.l BottleLimit : !BLT +
|
||||||
PLA : LDA.l BottleLimitReplacement
|
PLA : LDA.l BottleLimitReplacement
|
||||||
JSL.l GetSpritePalette
|
JMP GetSpritePalette
|
||||||
RTL
|
|
||||||
+
|
+
|
||||||
PLA : .notBottle
|
PLA : .notBottle
|
||||||
PHX
|
PHX
|
||||||
@@ -203,8 +197,7 @@ RTL
|
|||||||
LDA $7EF359
|
LDA $7EF359
|
||||||
CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit
|
CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit
|
||||||
LDA.l ProgressiveSwordReplacement
|
LDA.l ProgressiveSwordReplacement
|
||||||
JSL.l GetSpritePalette
|
JMP GetSpritePalette
|
||||||
RTL
|
|
||||||
+ : CMP.b #$00 : BNE + ; No Sword
|
+ : CMP.b #$00 : BNE + ; No Sword
|
||||||
LDA.b #$04 : RTL
|
LDA.b #$04 : RTL
|
||||||
+ : CMP.b #$01 : BNE + ; Fighter Sword
|
+ : CMP.b #$01 : BNE + ; Fighter Sword
|
||||||
@@ -217,8 +210,7 @@ RTL
|
|||||||
LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6
|
LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6
|
||||||
CMP.l ProgressiveShieldLimit : !BLT + ; Progressive Shield Limit
|
CMP.l ProgressiveShieldLimit : !BLT + ; Progressive Shield Limit
|
||||||
LDA.l ProgressiveShieldReplacement
|
LDA.l ProgressiveShieldReplacement
|
||||||
JSL.l GetSpritePalette
|
JMP GetSpritePalette
|
||||||
RTL
|
|
||||||
+ : CMP.b #$00 : BNE + ; No Shield
|
+ : CMP.b #$00 : BNE + ; No Shield
|
||||||
LDA.b #$04 : RTL
|
LDA.b #$04 : RTL
|
||||||
+ : CMP.b #$01 : BNE + ; Fighter Shield
|
+ : CMP.b #$01 : BNE + ; Fighter Shield
|
||||||
@@ -228,8 +220,7 @@ RTL
|
|||||||
++ : CMP.b #$FF : BNE ++ ; Progressive Armor
|
++ : CMP.b #$FF : BNE ++ ; Progressive Armor
|
||||||
LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit
|
LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit
|
||||||
LDA.l ProgressiveArmorReplacement
|
LDA.l ProgressiveArmorReplacement
|
||||||
JSL.l GetSpritePalette
|
JMP GetSpritePalette
|
||||||
RTL
|
|
||||||
+ : CMP.b #$00 : BNE + ; Green Tunic
|
+ : CMP.b #$00 : BNE + ; Green Tunic
|
||||||
LDA.b #$04 : RTL
|
LDA.b #$04 : RTL
|
||||||
+ ; Everything Else
|
+ ; Everything Else
|
||||||
@@ -243,8 +234,7 @@ RTL
|
|||||||
LDA $7EF340 : INC : LSR
|
LDA $7EF340 : INC : LSR
|
||||||
CMP.l ProgressiveBowLimit : !BLT +
|
CMP.l ProgressiveBowLimit : !BLT +
|
||||||
LDA.l ProgressiveBowReplacement
|
LDA.l ProgressiveBowReplacement
|
||||||
JSL.l GetSpritePalette
|
JMP GetSpritePalette
|
||||||
RTL
|
|
||||||
+ : CMP.b #$00 : BNE + ; No Bow
|
+ : CMP.b #$00 : BNE + ; No Bow
|
||||||
LDA.b #$08 : RTL
|
LDA.b #$08 : RTL
|
||||||
+ ; Any Bow
|
+ ; Any Bow
|
||||||
@@ -326,35 +316,37 @@ IsNarrowSprite:
|
|||||||
LDA.l BottleLimitReplacement
|
LDA.l BottleLimitReplacement
|
||||||
JSL.l IsNarrowSprite
|
JSL.l IsNarrowSprite
|
||||||
JMP .done
|
JMP .done
|
||||||
+ : BRA .continue
|
+ : JMP .continue
|
||||||
.notBottle
|
.notBottle
|
||||||
CMP.b #$5E : BNE ++ ; Progressive Sword
|
CMP.b #$5E : BNE ++ ; Progressive Sword
|
||||||
LDA $7EF359 : CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit
|
LDA $7EF359 : CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit
|
||||||
LDA.l ProgressiveSwordReplacement
|
LDA.l ProgressiveSwordReplacement
|
||||||
JSL.l IsNarrowSprite
|
JSL.l IsNarrowSprite
|
||||||
BRA .done
|
JMP .done
|
||||||
+ : BRA .continue
|
+ : JMP .continue
|
||||||
++ : CMP.b #$5F : BNE ++ ; Progressive Shield
|
++ CMP.b #$5F : BNE ++ ; Progressive Shield
|
||||||
LDA !PROGRESSIVE_SHIELD : AND #$C0 : BNE + : SEC : BRA .done ; No Shield
|
LDA !PROGRESSIVE_SHIELD : AND #$C0 : BNE + : SEC : JMP .done ; No Shield
|
||||||
LSR #6 : CMP.l ProgressiveShieldLimit : !BLT + ; Progressive Shield Limit
|
+ : LSR #6 : CMP.l ProgressiveShieldLimit : !BLT .continue
|
||||||
LDA.l ProgressiveShieldReplacement
|
LDA.l ProgressiveShieldReplacement
|
||||||
JSL.l IsNarrowSprite
|
JSL.l IsNarrowSprite
|
||||||
BRA .done
|
JMP .done
|
||||||
+
|
|
||||||
;LDA $7EF35A : BNE + : SEC : BRA .done : +; No Shield
|
|
||||||
BRA .false ; Everything Else
|
|
||||||
++ CMP.b #$60 : BNE ++ ; Progressive Armor
|
++ CMP.b #$60 : BNE ++ ; Progressive Armor
|
||||||
LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit
|
LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT .continue
|
||||||
LDA.l ProgressiveArmorReplacement
|
LDA.l ProgressiveArmorReplacement
|
||||||
JSL.l IsNarrowSprite
|
JSL.l IsNarrowSprite
|
||||||
BRA .done
|
JMP .done
|
||||||
+
|
+
|
||||||
++ CMP.b #$62 : BNE ++ ; RNG Item (Single)
|
++ CMP.b #$62 : BNE ++ ; RNG Item (Single)
|
||||||
JSL.l GetRNGItemSingle : BRA .continue
|
JSL.l GetRNGItemSingle : JMP .continue
|
||||||
++ CMP.b #$63 : BNE ++ ; RNG Item (Multi)
|
++ CMP.b #$63 : BNE ++ ; RNG Item (Multi)
|
||||||
JSL.l GetRNGItemMulti
|
JSL.l GetRNGItemMulti
|
||||||
++
|
++ CMP.b #$64 : BEQ + ; Progressive Bow
|
||||||
|
CMP.b #$65 : BNE .continue ; Progressive Bow (alt)
|
||||||
|
+ : LDA $7EF340 : INC : LSR
|
||||||
|
CMP.l ProgressiveBowLimit : !BLT +
|
||||||
|
LDA.l ProgressiveBowReplacement
|
||||||
|
JSL.l IsNarrowSprite
|
||||||
|
JMP .done
|
||||||
.continue
|
.continue
|
||||||
;--------
|
;--------
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user