Merge branch 'DRVolatile' into Potsanity
This commit is contained in:
@@ -237,6 +237,7 @@ incsrc contrib.asm
|
||||
org $A38000
|
||||
incsrc stats/main.asm
|
||||
|
||||
incsrc menu/overworldmap.asm ; overwrites some code in bank 0A
|
||||
incsrc doorrando.asm ; bank 27 likely A7 in the future
|
||||
;bank 28/A8 for keydropshuffle
|
||||
incsrc keydrop/potsanity.asm
|
||||
|
||||
20
bugfixes.asm
20
bugfixes.asm
@@ -127,10 +127,9 @@ RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
;Fix for PoD causing accidental Exploration Glitch
|
||||
PodEGFix:
|
||||
;Fix for SQ jumping causing accidental Exploration Glitch
|
||||
SQEGFix:
|
||||
LDA Bugfix_PodEG : BNE .done
|
||||
LDA $040C : CMP.b #$0C : BNE .done ;check if we are in PoD
|
||||
STZ $047A ;disarm exploration glitch
|
||||
.done
|
||||
RTL
|
||||
@@ -200,3 +199,18 @@ LDA $1B : BNE +
|
||||
LDA $8C : CMP.b #$97
|
||||
+
|
||||
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
|
||||
LDA #$40 : STA $7EF3CA ; set flag to dark world
|
||||
LDA $7EF3CC
|
||||
CMP #$07 : BNE .done ; clear frog
|
||||
CMP #$08 : BNE .done ; clear dwarf - consider flute implications
|
||||
CMP #$07 : BEQ .clear ; clear frog
|
||||
CMP #$08 : BEQ .clear ; clear dwarf - consider flute implications
|
||||
BRA .done
|
||||
.clear
|
||||
LDA.b #$00 : STA $7EF3CC ; clear follower
|
||||
.done
|
||||
|
||||
@@ -24,11 +24,12 @@ LockAgahnimDoors:
|
||||
|
||||
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
|
||||
|
||||
.locked
|
||||
LDA #$0001 : RTL ;Keep the door locked
|
||||
++
|
||||
SEP #$30
|
||||
JSL $099B6F ;Add tower break seal
|
||||
LDA $7EF2C3 : ORA #$20 : STA $7EF2C3 ; activate GT overlay
|
||||
REP #$30
|
||||
LDA #$0001 ;Prevent door from opening that frame otherwise it glitchy
|
||||
RTL
|
||||
@@ -39,6 +40,17 @@ LockAgahnimDoors:
|
||||
LDA.w #$0000 ; fallback to never locked
|
||||
|
||||
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:
|
||||
LDA $22 : CMP.w #1992 : !BLT + ; door too far left, skip
|
||||
|
||||
20
events.asm
20
events.asm
@@ -37,7 +37,7 @@ RTL
|
||||
OnDungeonExit:
|
||||
PHA : PHP
|
||||
SEP #$20 ; set 8-bit accumulator
|
||||
JSL.l PodEGFix
|
||||
JSL.l SQEGFix
|
||||
PLP : PLA
|
||||
|
||||
STA $040C : STZ $04AC ; thing we wrote over
|
||||
@@ -50,8 +50,8 @@ OnDungeonExit:
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
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
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
@@ -184,6 +184,7 @@ OnInitFileSelect:
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
OnLinkDamaged:
|
||||
JSL.l IncrementDamageTakenCounter_Arb
|
||||
JSL.l FlipperKill
|
||||
JML.l OHKOTimer
|
||||
|
||||
@@ -197,8 +198,17 @@ RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
OnLinkDamagedFromPit:
|
||||
JSL.l OHKOTimer
|
||||
LDA.b #$14 : STA $11 ; thing we wrote over
|
||||
RTL
|
||||
|
||||
LDA.l AllowAccidentalMajorGlitch
|
||||
BEQ ++
|
||||
-- LDA.b #$14 : STA $11 ; thing we wrote over
|
||||
|
||||
RTL
|
||||
|
||||
++ LDA.b $10 : CMP.b #$12 : BNE --
|
||||
|
||||
STZ.b $11
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
OnLinkDamagedFromPitOutdoors:
|
||||
JML.l OHKOTimer ; make sure this is last
|
||||
|
||||
82
hooks.asm
82
hooks.asm
@@ -1079,6 +1079,9 @@ JSL.l InitializeBottles
|
||||
;================================================================================
|
||||
; Agahnim Doors Fix
|
||||
;--------------------------------------------------------------------------------
|
||||
org $099BBA
|
||||
JSL FlagAgahnimDoor
|
||||
|
||||
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
|
||||
|
||||
@@ -1526,6 +1529,9 @@ org $1DBAB1 ; <- EBAB1 - sprite_sidenexx.asm : 314 (JSL GetRandomInt : AND.b #$0
|
||||
JSL.l RNG_Trinexx
|
||||
org $1DBAC3 ; <- EBAC3 - sprite_sidenexx.asm : 323 (JSL GetRandomInt : AND.b #$0F : ADD.b #$0C : STA $02 : STZ $03)
|
||||
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
|
||||
;--------------------------------------------------------------------------------
|
||||
@@ -1822,13 +1828,13 @@ LDA CrystalPendantFlags_2, X
|
||||
;NOP #10
|
||||
;CLC
|
||||
;================================================================================
|
||||
org $0AC5BB ; < 545BB - Bank0A.asm:1856 - (LDA $7EF3C7 : CMP.b #$03 : BNE .fail)
|
||||
JSL.l OverworldMap_CheckObject : RTS
|
||||
org $0AC5D8 ; < 545D8 - Bank0A.asm:1885 - (LDA $7EF3C7 : CMP.b #$07 : BNE OverworldMap_CheckPendant_fail)
|
||||
JSL.l OverworldMap_CheckObject : RTS
|
||||
;org $0AC5BB ; < 545BB - Bank0A.asm:1856 - (LDA $7EF3C7 : CMP.b #$03 : BNE .fail)
|
||||
;JSL.l OverworldMap_CheckObject : RTS
|
||||
;org $0AC5D8 ; < 545D8 - Bank0A.asm:1885 - (LDA $7EF3C7 : CMP.b #$07 : BNE OverworldMap_CheckPendant_fail)
|
||||
;JSL.l OverworldMap_CheckObject : RTS
|
||||
;================================================================================
|
||||
org $0AC53e ; <- 5453E - Bank0A.asm:1771 - (LDA $0AC50D, X : STA $0D)
|
||||
JSL.l GetCrystalNumber
|
||||
LDA.l CrystalNumberTable, X
|
||||
;================================================================================
|
||||
; EVERY INSTANCE OF STA $7EF3C7 IN THE ENTIRE CODEBASE
|
||||
org $029D51 ; <- 11D51
|
||||
@@ -1864,34 +1870,35 @@ JSL.l GetMapMode
|
||||
|
||||
org $0AC01A ; <- 5401A
|
||||
JSL.l GetMapMode
|
||||
org $0AC037 ; <- 54037
|
||||
JSL.l GetMapMode
|
||||
org $0AC079 ; <- 54079
|
||||
JSL.l GetMapMode
|
||||
org $0AC0B8 ; <- 540B8 x
|
||||
JSL.l GetMapMode
|
||||
org $0AC0F8 ; <- 540F8
|
||||
JSL.l GetMapMode
|
||||
org $0AC137 ; <- 54137
|
||||
JSL.l GetMapMode
|
||||
org $0AC179 ; <- 54179
|
||||
JSL.l GetMapMode
|
||||
org $0AC1B3 ; <- 541B3
|
||||
JSL.l GetMapMode
|
||||
org $0AC1F5 ; <- 541F5
|
||||
JSL.l GetMapMode
|
||||
org $0AC22F ; <- 5422F
|
||||
JSL.l GetMapMode
|
||||
org $0AC271 ; <- 54271
|
||||
JSL.l GetMapMode
|
||||
org $0AC2AB ; <- 542AB
|
||||
JSL.l GetMapMode
|
||||
org $0AC2ED ; <- 542ED
|
||||
JSL.l GetMapMode
|
||||
org $0AC327 ; <- 54327
|
||||
JSL.l GetMapMode
|
||||
org $0AC369 ; <- 54369
|
||||
JSL.l GetMapMode
|
||||
;Overwritten
|
||||
;org $0AC037 ; <- 54037
|
||||
;JSL.l GetMapMode
|
||||
;org $0AC079 ; <- 54079
|
||||
;JSL.l GetMapMode
|
||||
;org $0AC0B8 ; <- 540B8 x
|
||||
;JSL.l GetMapMode
|
||||
;org $0AC0F8 ; <- 540F8
|
||||
;JSL.l GetMapMode
|
||||
;org $0AC137 ; <- 54137
|
||||
;JSL.l GetMapMode
|
||||
;org $0AC179 ; <- 54179
|
||||
;JSL.l GetMapMode
|
||||
;org $0AC1B3 ; <- 541B3
|
||||
;JSL.l GetMapMode
|
||||
;org $0AC1F5 ; <- 541F5
|
||||
;JSL.l GetMapMode
|
||||
;org $0AC22F ; <- 5422F
|
||||
;JSL.l GetMapMode
|
||||
;org $0AC271 ; <- 54271
|
||||
;JSL.l GetMapMode
|
||||
;org $0AC2AB ; <- 542AB
|
||||
;JSL.l GetMapMode
|
||||
;org $0AC2ED ; <- 542ED
|
||||
;JSL.l GetMapMode
|
||||
;org $0AC327 ; <- 54327
|
||||
;JSL.l GetMapMode
|
||||
;org $0AC369 ; <- 54369
|
||||
;JSL.l GetMapMode
|
||||
|
||||
org $0DC849 ; <- 6C849
|
||||
JSL.l GetMapMode
|
||||
@@ -2766,8 +2773,6 @@ JSL FastTextScroll : NOP
|
||||
org $01FFEE : JSL IncrementDamageTakenCounter_Eight ; overworld pit
|
||||
org $079506 : JSL IncrementDamageTakenCounter_Eight ; underworld pit
|
||||
|
||||
org $0780C6 : JSL IncrementDamageTakenCounter_Arb
|
||||
|
||||
org $07B0B1 : JSL IncrementMagicUseCounter
|
||||
|
||||
;================================================================================
|
||||
@@ -2786,6 +2791,13 @@ org $0AEEF2
|
||||
org $008BE5 ; hijack stripes for boss GFX transfer
|
||||
JSL DoDungeonMapBossIcon
|
||||
|
||||
;================================================================================
|
||||
|
||||
org $01C4B8 : JSL FixJingleGlitch
|
||||
org $01C536 : JSL FixJingleGlitch
|
||||
org $01C592 : JSL FixJingleGlitch
|
||||
org $01C65F : JSL FixJingleGlitch
|
||||
|
||||
;================================================================================
|
||||
; Terrorpin AI fix
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
299
menu/overworldmap.asm
Normal file
299
menu/overworldmap.asm
Normal file
@@ -0,0 +1,299 @@
|
||||
; adding support for up to 13 markers
|
||||
!MC_FLAG = "$7F5420"
|
||||
!INVENTORY_MAP = "$7EF368"
|
||||
!INVENTORY_COMPASS = "$7EF364"
|
||||
!MAP_OVERLAY = "$7EF414" ; [2]
|
||||
|
||||
; tables
|
||||
org $0ABDF6
|
||||
WorldMapIcon_posx_vanilla:
|
||||
dw $0F31 ; prize1
|
||||
dw $08D0 ; prize2
|
||||
dw $0108
|
||||
dw $0F40
|
||||
|
||||
dw $0082
|
||||
dw $0F11
|
||||
dw $01D0
|
||||
dw $0100
|
||||
|
||||
dw $0CA0
|
||||
dw $0759
|
||||
dw $FF00
|
||||
dw $FF00
|
||||
|
||||
dw $FF00
|
||||
dw $FFFF ; reserved - not used
|
||||
dw $FFFF
|
||||
dw $FFFF
|
||||
|
||||
org $0ABE16
|
||||
WorldMapIcon_posy_vanilla:
|
||||
dw $0620 ; prize1
|
||||
dw $0080 ; prize2
|
||||
dw $0D70
|
||||
dw $0620
|
||||
|
||||
dw $00B0
|
||||
dw $0103
|
||||
dw $0780
|
||||
dw $0CA0
|
||||
|
||||
dw $0DA0
|
||||
dw $0ED0
|
||||
dw $FF00
|
||||
dw $FF00
|
||||
|
||||
dw $FF00
|
||||
dw $FFFF ; reserved - not used
|
||||
dw $FFFF
|
||||
dw $FFFF
|
||||
|
||||
org $0ABE36
|
||||
WorldMapIcon_posx_located:
|
||||
dw $FF00 ; prize1
|
||||
dw $FF00 ; prize2
|
||||
dw $FF00
|
||||
dw $FF00
|
||||
|
||||
dw $FF00
|
||||
dw $FF00
|
||||
dw $FF00
|
||||
dw $FF00
|
||||
|
||||
dw $FF00
|
||||
dw $FF00
|
||||
dw $FF00
|
||||
dw $FF00
|
||||
|
||||
dw $FF00
|
||||
dw $FFFF ; reserved - not used
|
||||
dw $FFFF
|
||||
dw $FFFF
|
||||
|
||||
org $0ABE56
|
||||
WorldMapIcon_posy_located:
|
||||
dw $FF00 ; prize1
|
||||
dw $FF00 ; prize2
|
||||
dw $FF00
|
||||
dw $FF00
|
||||
|
||||
dw $FF00
|
||||
dw $FF00
|
||||
dw $FF00
|
||||
dw $FF00
|
||||
|
||||
dw $FF00
|
||||
dw $FF00
|
||||
dw $FF00
|
||||
dw $FF00
|
||||
|
||||
dw $FF00
|
||||
dw $FFFF ; reserved - not used
|
||||
dw $FFFF
|
||||
dw $FFFF
|
||||
|
||||
org $0ABE76
|
||||
WorldMapIcon_tile:
|
||||
db $38, $62 ; green pendant
|
||||
db $32, $60 ; red pendant
|
||||
db $34, $60 ; blue pendant
|
||||
db $34, $64 ; crystal
|
||||
|
||||
db $34, $64 ; crystal
|
||||
db $34, $64 ; crystal
|
||||
db $34, $64 ; crystal
|
||||
db $34, $64 ; crystal
|
||||
|
||||
db $34, $64 ; crystal
|
||||
db $34, $64 ; crystal
|
||||
db $32, $66 ; skull looking thing
|
||||
db $00, $00 ; red x
|
||||
|
||||
db $00, $00 ; red x
|
||||
db $00, $00 ; unused red x's
|
||||
db $00, $00
|
||||
db $00, $00
|
||||
|
||||
org $0ABE96
|
||||
CompassExists:
|
||||
; dw $37FC ; todo: convert to two bytes with masks? so much extra code...
|
||||
; eastern hera desert pod skull trock thieves mire ice swamp gt at escape
|
||||
db $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00, $00
|
||||
|
||||
; 0 = light world, 1 = dark world
|
||||
org $0ABEA6
|
||||
WorldCompassMask:
|
||||
db $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00, $00
|
||||
|
||||
; eastern desert hera pod skull trock thieves mire ice swamp gt at escape x1 x2 x3
|
||||
|
||||
; refs
|
||||
org $0AC59B
|
||||
WorldMapIcon_AdjustCoordinate:
|
||||
org $0AC3B1
|
||||
WorldMap_CalculateOAMCoordinates:
|
||||
org $0AC52E
|
||||
WorldMap_HandleSpriteBlink:
|
||||
org $0ABF70
|
||||
WorldMap_RedXChars:
|
||||
|
||||
org $0AC02B
|
||||
DrawPrizesOverride:
|
||||
LDX.b #$FF
|
||||
.loopStart
|
||||
INX : PHX
|
||||
JSR OverworldMap_CheckForPrize
|
||||
BCC + : JMP .skip_draw : +
|
||||
|
||||
TXA : ASL A : TAX
|
||||
LDA.l !MC_FLAG
|
||||
AND #$01 : BNE +
|
||||
LDA.l WorldMapIcon_posx_vanilla+1, X : STA.l $7EC10B
|
||||
LDA.l WorldMapIcon_posx_vanilla, X : STA.l $7EC10A
|
||||
LDA.l WorldMapIcon_posy_vanilla+1, X : STA.l $7EC109
|
||||
LDA.l WorldMapIcon_posy_vanilla, X : STA.l $7EC108
|
||||
BRA .adjustment
|
||||
+ LDA.l WorldMapIcon_posx_located+1, X : STA.l $7EC10B
|
||||
LDA.l WorldMapIcon_posx_located, X : STA.l $7EC10A
|
||||
LDA.l WorldMapIcon_posy_located+1, X : STA.l $7EC109
|
||||
LDA.l WorldMapIcon_posy_located, X : STA.l $7EC108
|
||||
.adjustment
|
||||
LDA.l WorldMapIcon_tile+1, X : BEQ .dont_adjust
|
||||
CMP.b #$64 : BEQ .is_crystal
|
||||
LDA.b $1A : AND.b #$10 : BNE .skip_draw
|
||||
.is_crystal
|
||||
JSR WorldMapIcon_AdjustCoordinate
|
||||
.dont_adjust
|
||||
JSR WorldMap_CalculateOAMCoordinates
|
||||
BCC .skip_draw
|
||||
PLX : PHX : TXA : ASL A : TAX
|
||||
LDA.l WorldMapIcon_tile+1, X : BEQ .is_red_x
|
||||
LDA.l !MC_FLAG : CMP.b #$01 : BEQ .is_red_x
|
||||
LDA.l WorldMapIcon_tile+1, X : STA.b $0D
|
||||
LDA.l WorldMapIcon_tile, X : STA.b $0C
|
||||
LDA.b #$02 : BRA .continue
|
||||
.is_red_x
|
||||
LDA.b $1A : LSR #3 : AND.b #$03 : TAX
|
||||
LDA.l WorldMap_RedXChars,X : STA.b $0D
|
||||
LDA.b #$32 : STA.b $0C : LDA.b #$00
|
||||
.continue
|
||||
STA.b $0B
|
||||
PLX : PHX
|
||||
JSR WorldMap_HandleSpriteBlink
|
||||
.skip_draw
|
||||
; end of loop
|
||||
PLX : CPX #12 : BCS + : JMP .loopStart : +
|
||||
|
||||
PLA : STA.l $7EC10B
|
||||
PLA : STA.l $7EC10A
|
||||
PLA : STA.l $7EC109
|
||||
PLA : STA.l $7EC108
|
||||
RTS
|
||||
|
||||
|
||||
; X - the index of the prize marker
|
||||
OverworldMap_CheckForPrize:
|
||||
PHX
|
||||
LDA #$00 : STA.l !MC_FLAG
|
||||
JSR OverworldMap_CheckForCompass
|
||||
BCC +
|
||||
LDA.l !MC_FLAG : ORA #$01 : STA.l !MC_FLAG
|
||||
LDA $7EF3CA : AND #$40 : BNE ++ ; is the compass position on LW or DW?
|
||||
LDA.l WorldCompassMask, X : BEQ + : JMP .fail
|
||||
++ LDA.l WorldCompassMask, X : BNE + : JMP .fail
|
||||
+ JSR OverworldMap_CheckForMap
|
||||
BCC +
|
||||
LDA.l !MC_FLAG : ORA #$02 : STA.l !MC_FLAG
|
||||
+
|
||||
LDA.l !MC_FLAG : BEQ .fail
|
||||
CMP #$02 : BNE .checkIfObtained
|
||||
LDA $7EF3CA : AND #$40 : BNE +
|
||||
CPX #3 : BCS .fail : BRA .checkIfObtained
|
||||
+ CPX #10 : BCS .fail
|
||||
CPX #3 : BCC .fail
|
||||
|
||||
.checkIfObtained
|
||||
LDA.l MC_DungeonIdsForPrize, X
|
||||
BPL +++ : CLC : BRA .done : +++ ; non-prize flags
|
||||
|
||||
TAX : LDA.l CrystalPendantFlags_2, X : BEQ .checkPendant
|
||||
AND.b #$40 : BNE .checkCrystal
|
||||
LDA.l CrystalPendantFlags_2, X : AND.b #$01 : BNE .checkAga1
|
||||
LDA.l CrystalPendantFlags_2, X : AND.b #$02 : BNE .checkAga2
|
||||
|
||||
; see if hyrule castle has been completely cleared
|
||||
LDA.l CompassTotal, X : SEC : SBC $7EF4BF, X : BEQ .fail
|
||||
CLC : BRA .done
|
||||
|
||||
.checkPendant
|
||||
LDA $7EF374 : AND.l CrystalPendantFlags, X : BNE .fail
|
||||
CLC : BRA .done
|
||||
|
||||
.checkCrystal
|
||||
LDA $7EF37A : AND.l CrystalPendantFlags, X : BNE .fail
|
||||
CLC : BRA .done
|
||||
|
||||
.checkAga1
|
||||
LDA $7EF3C5 : CMP #$03 : BEQ .fail
|
||||
CLC : BRA .done
|
||||
|
||||
.checkAga2
|
||||
LDA $7EF2DB : AND #$20 : BNE .fail
|
||||
CLC : BRA .done
|
||||
|
||||
.fail
|
||||
SEC
|
||||
.done
|
||||
PLX
|
||||
RTS
|
||||
|
||||
; X - which compass in question
|
||||
; CLC - should not move indicator
|
||||
; SEC - yep indicator can move
|
||||
OverworldMap_CheckForCompass:
|
||||
LDA.l CompassMode : AND #$80 : BEQ .unset ; should I check for compass logic
|
||||
LDA.l CompassMode : AND #$40 : BEQ .set ; compasses aren't shuffled
|
||||
LDA.l CompassExists, X : BEQ .set ; compass doesn't exits
|
||||
PHX
|
||||
LDA.l MC_SRAM_Offsets, X : TAX ; put compass offset into X
|
||||
LDA !INVENTORY_COMPASS, X : ORA !MAP_OVERLAY, X
|
||||
PLX
|
||||
AND.l MC_Masks, X : BNE .set ; is the compass obtained
|
||||
.unset
|
||||
CLC
|
||||
RTS
|
||||
.set
|
||||
SEC
|
||||
RTS
|
||||
|
||||
; map - which map in question
|
||||
; CLC - should not show exact prize
|
||||
; SEC - yep should show exact prize
|
||||
OverworldMap_CheckForMap:
|
||||
LDA.l MapMode : BEQ .set ; obtaining map doesn't change anything
|
||||
LDA $7EF3CA : AND #$40 : BNE + ; not really sure on this check
|
||||
LDA !INVENTORY_MAP : ORA !MAP_OVERLAY : AND.b #$01 : BNE .set : BRA .continue
|
||||
+ LDA !INVENTORY_MAP : ORA !MAP_OVERLAY : AND.b #$02 : BNE .set
|
||||
.continue
|
||||
PHX
|
||||
LDA.l MC_SRAM_Offsets, X : TAX ; put map offset into X
|
||||
LDA !INVENTORY_MAP, X : ORA !MAP_OVERLAY, X
|
||||
PLX
|
||||
AND.l MC_Masks, X : BNE .set ; is the map obtained?
|
||||
.unset
|
||||
CLC
|
||||
RTS
|
||||
.set
|
||||
SEC
|
||||
RTS
|
||||
|
||||
; eastern desert hera pod skull trock thieves mire ice swamp gt at escape
|
||||
MC_DungeonIdsForPrize:
|
||||
db $02, $0A, $03, $06, $08, $0C, $0B, $07, $09, $05, $00, $04, $01
|
||||
MC_SRAM_Offsets:
|
||||
db $01, $00, $01, $01, $00, $00, $00, $01, $00, $01, $00, $01, $01
|
||||
MC_Masks:
|
||||
; EP TH DP PD SK TR TT MM
|
||||
db $20, $20, $10, $02, $80, $08, $10, $01, $40, $04, $04, $08, $40
|
||||
|
||||
6
msu.asm
6
msu.asm
@@ -323,10 +323,8 @@ CheckMusicLoadRequest:
|
||||
.load
|
||||
REP #$10
|
||||
STZ $4200
|
||||
STA !REG_SPC_CONTROL
|
||||
- : 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
|
||||
- : STA !REG_SPC_CONTROL : 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
|
||||
LDA.b #$81 : STA $4200
|
||||
|
||||
LDA !REG_MUSIC_CONTROL_REQUEST : CMP.b #08 : BEQ .done+3 ; No SFX during warp track
|
||||
|
||||
@@ -98,7 +98,7 @@ SEP #$30
|
||||
; Draw Dungeon Compass Counts
|
||||
;================================================================================
|
||||
REP #$20
|
||||
LDA.l CompassMode : AND #$00FF : BEQ + ; skip if CompassMode is 0.
|
||||
LDA.l CompassMode : AND #$003F : BEQ + ; skip if CompassMode is 0.
|
||||
JSL.l DrawDungeonCompassCounts ; compasses.asm
|
||||
+
|
||||
|
||||
|
||||
@@ -42,82 +42,6 @@ RTL
|
||||
LDA.b #$FF ; don't show keys
|
||||
RTL
|
||||
;================================================================================
|
||||
GetCrystalNumber:
|
||||
PHX
|
||||
TXA : ASL : TAX
|
||||
LDA $7EF3CA : EOR.b #$40 : BNE +
|
||||
INX
|
||||
+
|
||||
LDA.l CrystalNumberTable-16, X
|
||||
PLX
|
||||
RTL
|
||||
;================================================================================
|
||||
!INVENTORY_MAP = "$7EF368"
|
||||
!MAP_OVERLAY = "$7EF414" ; [2]
|
||||
OverworldMap_CheckObject:
|
||||
PHX
|
||||
;CPX.b #$01 : BNE + : JMP ++ : + : JMP .fail
|
||||
LDA $7EF3CA : AND.b #$40 : BNE +
|
||||
;LW Map
|
||||
LDA.l MapMode : BEQ +++
|
||||
LDA !INVENTORY_MAP : ORA !MAP_OVERLAY : AND.b #$01 : BNE +++
|
||||
PHX
|
||||
LDA.l .lw_map_offsets, X : TAX ; put map offset into X
|
||||
LDA !INVENTORY_MAP, X : ORA !MAP_OVERLAY, X
|
||||
PLX
|
||||
AND.l .lw_map_masks, X : BNE +++
|
||||
JMP .fail
|
||||
+++
|
||||
LDA.l .lw_offsets, X
|
||||
BPL +++ : CLC : BRA .done : +++ ; don't display master sword
|
||||
TAX : BRA ++
|
||||
+
|
||||
;DW Map
|
||||
LDA.l MapMode : BEQ +++
|
||||
LDA !INVENTORY_MAP : ORA !MAP_OVERLAY : AND.b #$02 : BNE +++
|
||||
PHX
|
||||
LDA.l .dw_map_offsets, X : TAX ; put map offset into X
|
||||
LDA.l !INVENTORY_MAP, X : ORA !MAP_OVERLAY, X
|
||||
PLX
|
||||
AND.l .dw_map_masks, X : BNE +++
|
||||
JMP .fail
|
||||
+++
|
||||
LDA.l .dw_offsets, X
|
||||
TAX : BRA ++
|
||||
SEC
|
||||
PLX
|
||||
RTL
|
||||
++
|
||||
LDA.l CrystalPendantFlags_2, X
|
||||
AND.b #$40 : BNE .checkCrystal
|
||||
|
||||
.checkPendant
|
||||
LDA $7EF374 : AND.l CrystalPendantFlags, X : BNE .fail
|
||||
CLC : BRA .done
|
||||
|
||||
.checkCrystal
|
||||
LDA $7EF37A : AND.l CrystalPendantFlags, X : BNE .fail
|
||||
CLC : BRA .done
|
||||
|
||||
.fail
|
||||
SEC
|
||||
.done
|
||||
PLX
|
||||
RTL
|
||||
.lw_offsets
|
||||
db $02, $0A, $03, $FF
|
||||
.dw_offsets
|
||||
db $06, $08, $0C, $0B, $07, $09, $05
|
||||
.lw_map_offsets
|
||||
db $01, $00, $01
|
||||
; pod skull trock thieves mire ice swamp
|
||||
.dw_map_offsets
|
||||
db $01, $00, $00, $00, $01, $00, $01
|
||||
.lw_map_masks
|
||||
db $20, $20, $10, $00
|
||||
.dw_map_masks
|
||||
db $02, $80, $08, $10, $01, $40, $04
|
||||
;================================================================================
|
||||
SetLWDWMap:
|
||||
PHP
|
||||
SEP #$20 ; set 8-bit accumulator
|
||||
|
||||
16
rngfixes.asm
16
rngfixes.asm
@@ -4,8 +4,7 @@
|
||||
RigDigRNG:
|
||||
LDA $7FFE01 : CMP.l DiggingGameRNG : !BGE .forceHeart
|
||||
.normalItem
|
||||
JSL $0DBA71 ; GetRandomInt
|
||||
RTL
|
||||
JML GetRandomInt
|
||||
.forceHeart
|
||||
LDA $7FFE00 : BNE .normalItem
|
||||
LDA #$04
|
||||
@@ -15,7 +14,7 @@ RigChestRNG:
|
||||
JSL.l DecrementChestCounter
|
||||
LDA $04C4 : CMP.l ChestGameRNG : BEQ .forceHeart
|
||||
.normalItem
|
||||
JSL $0DBA71 ; GetRandomInt
|
||||
JSL GetRandomInt
|
||||
AND.b #$07 ; restrict values to 0-7
|
||||
CMP #$07 : BEQ .notHeart
|
||||
JSL.l DecrementItemCounter
|
||||
@@ -30,7 +29,7 @@ RTL
|
||||
JSL.l DecrementItemCounter
|
||||
;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
|
||||
CMP #$07 : BNE + ; player got prize item AGAIN
|
||||
LDA.b #$00 ; give them money instead
|
||||
@@ -98,6 +97,11 @@ RNG_Ganon_Extra_Warp:
|
||||
+
|
||||
PLA
|
||||
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:
|
||||
JSL.l GetStaticRNG
|
||||
RTL
|
||||
@@ -143,5 +147,5 @@ dw #$02C0 ; 11 = Agahnim 2
|
||||
dw #$0300 ; 12 = Agahnim 2 Phantoms
|
||||
dw #$0340 ; 13 = Ganon
|
||||
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"
|
||||
IncrementUWMirror:
|
||||
PHA
|
||||
LDA.b #$00 : STA $7F5035 ; bandaid patch bug with mirroring away from text
|
||||
LDA !LOCK_STATS : BNE +
|
||||
LDA $040C : CMP #$FF : BEQ + ; skip if we're in a cave or house
|
||||
LDA !UW_MIRROR_COUNTER : INC : STA !UW_MIRROR_COUNTER
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
;===================================================================================================
|
||||
; LEAVE THIS HERE FOR PHP WRITES
|
||||
;===================================================================================================
|
||||
table "creditscharmapbighi.txt"
|
||||
YourSpriteCreditsHi:
|
||||
db 2
|
||||
db 55
|
||||
db " " ; $238002
|
||||
|
||||
table "creditscharmapbiglo.txt"
|
||||
YourSpriteCreditsLo:
|
||||
db 2
|
||||
db 55
|
||||
@@ -501,6 +503,15 @@ CreditsLineBlank:
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("WEBSITE LOGO", "green")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("PLEASURE")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("SPECIAL THANKS", "red")
|
||||
|
||||
%blankline()
|
||||
@@ -568,12 +579,6 @@ CreditsLineBlank:
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
|
||||
;===================================================================================================
|
||||
|
||||
|
||||
@@ -218,7 +218,7 @@ endmacro
|
||||
|
||||
!ColonOffset = $83
|
||||
!PeriodOffset = $80
|
||||
!BlankTile = $883D
|
||||
!BlankTile = #$883D
|
||||
|
||||
RenderCreditsStatCounter:
|
||||
PHB
|
||||
|
||||
46
tables.asm
46
tables.asm
@@ -139,6 +139,8 @@ MapMode:
|
||||
db #$00 ; #$00 = Always On (default) - #$01 = Require Map Item
|
||||
CompassMode:
|
||||
db #$00 ; #$00 = Off (default) - #$01 = Display Dungeon Count w/Compass - #$02 = Display Dungeon Count Always
|
||||
; #$8x = Moves prize indicator to a special position if bit on
|
||||
; #$4x = Compasses are shuffled and must be obtained to show position if bit on
|
||||
;--------------------------------------------------------------------------------
|
||||
org $30803D ; PC 0x18003D
|
||||
PersistentFloodgate:
|
||||
@@ -240,13 +242,13 @@ org $30804F ; PC 0x18004F
|
||||
ByrnaInvulnerability:
|
||||
db #$01 ; #$00 = Off - #$01 = On (default)
|
||||
;--------------------------------------------------------------------------------
|
||||
org $308050 ; PC 0x180050 - 0x18005C
|
||||
org $308050 ; PC 0x180050 - 0x18005D
|
||||
CrystalPendantFlags_2:
|
||||
db $00 ; Sewers
|
||||
db $00 ; Hyrule Castle
|
||||
db $02 ; Ganons Tower - because 5D is not available right now - sewers doesn't get one
|
||||
db $04 ; Hyrule Castle
|
||||
db $00 ; Eastern Palace
|
||||
db $00 ; Desert Palace
|
||||
db $00 ; Agahnim's Tower
|
||||
db $01 ; Agahnim's Tower
|
||||
db $40 ; Swamp Palace
|
||||
db $40 ; Palace of Darkness
|
||||
db $40 ; Misery Mire
|
||||
@@ -258,6 +260,9 @@ CrystalPendantFlags_2:
|
||||
db $40 ; Turtle Rock
|
||||
;Pendant: $00
|
||||
;Crystal: $40
|
||||
;Aga1: $01
|
||||
;Aga2: $02
|
||||
;HC special check $04
|
||||
;--------------------------------------------------------------------------------
|
||||
org $30805E ; PC 0x18005E - Number of crystals required to enter GT
|
||||
NumberOfCrystalsRequiredForTower:
|
||||
@@ -288,20 +293,20 @@ dl #$000000
|
||||
;--------------------------------------------------------------------------------
|
||||
org $308070 ; PC 0x180070 - 0x18007F
|
||||
CrystalNumberTable:
|
||||
db $00 ;
|
||||
db $69 ; Eastern
|
||||
db $69 ; Hera
|
||||
db $69 ; Desert
|
||||
db $7F ; Darkness
|
||||
db $6C ; Skull
|
||||
db $7C ; TRock
|
||||
db $6D ; Thieves
|
||||
db $6F ; Mire
|
||||
db $6E ; Ice
|
||||
db $79 ; Swamp
|
||||
db $00 ;
|
||||
db $6E ; Ice
|
||||
db $00 ;
|
||||
db $6F ; Mire
|
||||
db $00 ;
|
||||
db $6D ; Thieves
|
||||
db $69 ; Desert
|
||||
db $7C ; TRock
|
||||
db $69 ; Hera
|
||||
db $6C ; Skull
|
||||
db $69 ; Eastern
|
||||
db $7F ; Darkness
|
||||
db $00 ;
|
||||
db $00 ;
|
||||
db $00 ;
|
||||
|
||||
@@ -1082,8 +1087,15 @@ db $00, $00, $00, $00, $00, $00, $00, $00
|
||||
org $308350 ; PC 0x180350
|
||||
ShouldStartatExit:
|
||||
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
|
||||
; Replacement Ending Sequence Text Data
|
||||
@@ -1555,6 +1567,8 @@ dw #9999 ; Rupee Limit
|
||||
; $7F5400 - $7F540F - MSU Block
|
||||
|
||||
; $7F5410 - $7F56FF - Unused
|
||||
; $7F5420 - MapCompass flag - used during Overworld Map processing
|
||||
; $7F5421 - $7F56FF - Unused
|
||||
|
||||
; $7F5700 - $7F57FF - Dialog Buffer
|
||||
;
|
||||
@@ -1865,7 +1879,7 @@ db #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00,
|
||||
|
||||
org $30E37D ; PC 0x18637D
|
||||
Enable_TerrorPin_AI_Fix:
|
||||
db #$01
|
||||
db #$00
|
||||
|
||||
;Shop slot count as check
|
||||
org $30E560 ; PC 0x18650
|
||||
|
||||
@@ -24,8 +24,7 @@ GetSpriteID:
|
||||
PHA : JSR.w CountBottles : CMP.l BottleLimit : !BLT +
|
||||
LDA !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE +
|
||||
PLA : LDA.l BottleLimitReplacement
|
||||
JSL.l GetSpriteID
|
||||
RTL
|
||||
JMP GetSpriteID
|
||||
+
|
||||
PLA : BRA .normal
|
||||
.server_F0
|
||||
@@ -59,8 +58,7 @@ RTL
|
||||
LDA !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE +
|
||||
LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit
|
||||
LDA.l ProgressiveArmorReplacement
|
||||
JSL.l GetSpriteID
|
||||
RTL
|
||||
JMP GetSpriteID
|
||||
+
|
||||
LDA.b #$04 : RTL
|
||||
++ CMP.b #$FE : BNE ++ ; Progressive Sword
|
||||
@@ -68,8 +66,7 @@ RTL
|
||||
LDA $7EF359
|
||||
CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit
|
||||
LDA.l ProgressiveSwordReplacement
|
||||
JSL.l GetSpriteID
|
||||
RTL
|
||||
JMP GetSpriteID
|
||||
.skipswordlimit : LDA $7EF359
|
||||
+ : CMP.b #$FF : BNE + ; Swordless
|
||||
LDA.b #$43 : RTL
|
||||
@@ -87,8 +84,7 @@ RTL
|
||||
LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6
|
||||
CMP.l ProgressiveShieldLimit : !BLT + ; Progressive Shield Limit
|
||||
LDA.l ProgressiveShieldReplacement
|
||||
JSL.l GetSpriteID
|
||||
RTL
|
||||
JMP GetSpriteID
|
||||
.skipshieldlimit : LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6
|
||||
+ : CMP.b #$00 : BNE + ; No Shield
|
||||
LDA.b #$2D : RTL
|
||||
@@ -101,8 +97,7 @@ RTL
|
||||
LDA $7EF340 : INC : LSR
|
||||
CMP.l ProgressiveBowLimit : !BLT +
|
||||
LDA.l ProgressiveBowReplacement
|
||||
JSL.l GetSpriteID
|
||||
RTL
|
||||
JMP GetSpriteID
|
||||
.skipbowlimit : LDA $7EF340 : INC : LSR
|
||||
+ : CMP.b #$00 : BNE + ; No Bow
|
||||
LDA.b #$29 : RTL
|
||||
@@ -187,8 +182,7 @@ GetSpritePalette:
|
||||
.bottle
|
||||
PHA : JSR.w CountBottles : CMP.l BottleLimit : !BLT +
|
||||
PLA : LDA.l BottleLimitReplacement
|
||||
JSL.l GetSpritePalette
|
||||
RTL
|
||||
JMP GetSpritePalette
|
||||
+
|
||||
PLA : .notBottle
|
||||
PHX
|
||||
@@ -203,8 +197,7 @@ RTL
|
||||
LDA $7EF359
|
||||
CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit
|
||||
LDA.l ProgressiveSwordReplacement
|
||||
JSL.l GetSpritePalette
|
||||
RTL
|
||||
JMP GetSpritePalette
|
||||
+ : CMP.b #$00 : BNE + ; No Sword
|
||||
LDA.b #$04 : RTL
|
||||
+ : CMP.b #$01 : BNE + ; Fighter Sword
|
||||
@@ -217,8 +210,7 @@ RTL
|
||||
LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6
|
||||
CMP.l ProgressiveShieldLimit : !BLT + ; Progressive Shield Limit
|
||||
LDA.l ProgressiveShieldReplacement
|
||||
JSL.l GetSpritePalette
|
||||
RTL
|
||||
JMP GetSpritePalette
|
||||
+ : CMP.b #$00 : BNE + ; No Shield
|
||||
LDA.b #$04 : RTL
|
||||
+ : CMP.b #$01 : BNE + ; Fighter Shield
|
||||
@@ -228,8 +220,7 @@ RTL
|
||||
++ : CMP.b #$FF : BNE ++ ; Progressive Armor
|
||||
LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit
|
||||
LDA.l ProgressiveArmorReplacement
|
||||
JSL.l GetSpritePalette
|
||||
RTL
|
||||
JMP GetSpritePalette
|
||||
+ : CMP.b #$00 : BNE + ; Green Tunic
|
||||
LDA.b #$04 : RTL
|
||||
+ ; Everything Else
|
||||
@@ -243,8 +234,7 @@ RTL
|
||||
LDA $7EF340 : INC : LSR
|
||||
CMP.l ProgressiveBowLimit : !BLT +
|
||||
LDA.l ProgressiveBowReplacement
|
||||
JSL.l GetSpritePalette
|
||||
RTL
|
||||
JMP GetSpritePalette
|
||||
+ : CMP.b #$00 : BNE + ; No Bow
|
||||
LDA.b #$08 : RTL
|
||||
+ ; Any Bow
|
||||
@@ -326,35 +316,37 @@ IsNarrowSprite:
|
||||
LDA.l BottleLimitReplacement
|
||||
JSL.l IsNarrowSprite
|
||||
JMP .done
|
||||
+ : BRA .continue
|
||||
+ : JMP .continue
|
||||
.notBottle
|
||||
CMP.b #$5E : BNE ++ ; Progressive Sword
|
||||
LDA $7EF359 : CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit
|
||||
LDA.l ProgressiveSwordReplacement
|
||||
JSL.l IsNarrowSprite
|
||||
BRA .done
|
||||
+ : BRA .continue
|
||||
++ : CMP.b #$5F : BNE ++ ; Progressive Shield
|
||||
LDA !PROGRESSIVE_SHIELD : AND #$C0 : BNE + : SEC : BRA .done ; No Shield
|
||||
LSR #6 : CMP.l ProgressiveShieldLimit : !BLT + ; Progressive Shield Limit
|
||||
JMP .done
|
||||
+ : JMP .continue
|
||||
++ CMP.b #$5F : BNE ++ ; Progressive Shield
|
||||
LDA !PROGRESSIVE_SHIELD : AND #$C0 : BNE + : SEC : JMP .done ; No Shield
|
||||
+ : LSR #6 : CMP.l ProgressiveShieldLimit : !BLT .continue
|
||||
LDA.l ProgressiveShieldReplacement
|
||||
JSL.l IsNarrowSprite
|
||||
BRA .done
|
||||
+
|
||||
;LDA $7EF35A : BNE + : SEC : BRA .done : +; No Shield
|
||||
BRA .false ; Everything Else
|
||||
JMP .done
|
||||
++ 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
|
||||
JSL.l IsNarrowSprite
|
||||
BRA .done
|
||||
JMP .done
|
||||
+
|
||||
++ CMP.b #$62 : BNE ++ ; RNG Item (Single)
|
||||
JSL.l GetRNGItemSingle : BRA .continue
|
||||
JSL.l GetRNGItemSingle : JMP .continue
|
||||
++ CMP.b #$63 : BNE ++ ; RNG Item (Multi)
|
||||
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
|
||||
;--------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user