Merge remote-tracking branch 'baserom/master' into MergeDecompression
# Conflicts: # LTTP_RND_GeneralBugfixes.asm # bookofmudora.asm # build.bat # catfish.asm # compasses.asm # contrib.asm # darkworldspawn.asm # entrances.asm # events.asm # floodgatesoftlock.asm # flute.asm # framehook.asm # goalitem.asm # halfmagicbat.asm # heartpieces.asm # hooks.asm # inventory.asm # invertedmaps.asm # itemtext_lower.asm # lampmantlecone.asm # mantle.asm # msu.asm # music.asm # newhud.asm # newitems.asm # pendantcrystalhud.asm # ram.asm # rngfixes.asm # roomloading.asm # shopkeeper.asm # stats.asm # stats/credits.asm # stats/creditsnew.asm # stats/statConfig.asm # tables.asm # tablets.asm # utilities.asm # zoraking.asm
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
OnMenuLoad:
|
||||
LDA.b #UploadMenuOnlyIcons>>0 : STA !NMI_AUX
|
||||
LDA.b #UploadMenuOnlyIcons>>8 : STA !NMI_AUX+1
|
||||
LDA.b #UploadMenuOnlyIcons>>16 : STA !NMI_AUX+2
|
||||
LDA.b #UploadMenuOnlyIcons>>0 : STA NMIAux
|
||||
LDA.b #UploadMenuOnlyIcons>>8 : STA NMIAux+1
|
||||
LDA.b #UploadMenuOnlyIcons>>16 : STA NMIAux+2
|
||||
LDA.b #$0E : STA.b $10 ; what we overwrote
|
||||
RTL
|
||||
|
||||
|
||||
@@ -1,150 +1,16 @@
|
||||
; adding support for up to 13 markers
|
||||
!MC_FLAG = "$7F5420"
|
||||
|
||||
; tables
|
||||
org $8ABDF6
|
||||
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 $8ABE16
|
||||
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 $8ABE36
|
||||
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 $8ABE56
|
||||
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 $8ABE76
|
||||
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 $8ABE96
|
||||
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 $8ABEA6
|
||||
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 $8AC59B
|
||||
WorldMapIcon_AdjustCoordinate:
|
||||
org $8AC3B1
|
||||
WorldMap_CalculateOAMCoordinates:
|
||||
org $8AC52E
|
||||
WorldMap_HandleSpriteBlink:
|
||||
org $8ABF70
|
||||
WorldMap_RedXChars:
|
||||
pushpc
|
||||
|
||||
org $8AC02B
|
||||
DrawPrizesOverride:
|
||||
LDX.b #$FF
|
||||
|
||||
.loopStart
|
||||
INX : PHX
|
||||
JSR OverworldMap_CheckForPrize
|
||||
BCC + : JMP .skip_draw : +
|
||||
|
||||
TXA : ASL A : TAX
|
||||
LDA.l !MC_FLAG
|
||||
LDA.l MapCompassFlag
|
||||
AND #$01 : BNE +
|
||||
LDA.l WorldMapIcon_posx_vanilla+1, X : STA.l $7EC10B
|
||||
LDA.l WorldMapIcon_posx_vanilla, X : STA.l $7EC10A
|
||||
@@ -161,13 +27,13 @@ LDX.b #$FF
|
||||
CMP.b #$64 : BEQ .is_crystal
|
||||
LDA.b $1A : AND.b #$10 : BNE .skip_draw
|
||||
.is_crystal
|
||||
JSR WorldMapIcon_AdjustCoordinate
|
||||
JSR.w WorldMapIcon_AdjustCoordinate
|
||||
.dont_adjust
|
||||
JSR WorldMap_CalculateOAMCoordinates
|
||||
JSR.w 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 MapCompassFlag : 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
|
||||
@@ -178,7 +44,7 @@ LDX.b #$FF
|
||||
.continue
|
||||
STA.b $0B
|
||||
PLX : PHX
|
||||
INX : JSR WorldMap_HandleSpriteBlink
|
||||
INX : JSR.w WorldMap_HandleSpriteBlink
|
||||
.skip_draw
|
||||
; end of loop
|
||||
PLX : CPX #12 : BCS + : JMP .loopStart : +
|
||||
@@ -193,18 +59,18 @@ LDX.b #$FF
|
||||
; X - the index of the prize marker
|
||||
OverworldMap_CheckForPrize:
|
||||
PHX
|
||||
LDA #$00 : STA.l !MC_FLAG
|
||||
LDA #$00 : STA.l MapCompassFlag
|
||||
JSR OverworldMap_CheckForCompass
|
||||
BCC +
|
||||
LDA.l !MC_FLAG : ORA #$01 : STA.l !MC_FLAG
|
||||
LDA.l MapCompassFlag : ORA #$01 : STA.l MapCompassFlag
|
||||
LDA CurrentWorld : 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 MapCompassFlag : ORA #$02 : STA.l MapCompassFlag
|
||||
+
|
||||
LDA.l !MC_FLAG : BEQ .fail
|
||||
LDA.l MapCompassFlag : BEQ .fail
|
||||
CMP #$02 : BNE .checkIfObtained
|
||||
LDA CurrentWorld : AND #$40 : BNE +
|
||||
CPX #3 : BCS .fail : BRA .checkIfObtained
|
||||
@@ -214,35 +80,21 @@ PHX
|
||||
.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
|
||||
CMP.b #$02 : BCC .hyrule_castle
|
||||
ASL : TAX
|
||||
REP #$20
|
||||
LDA.l DungeonsCompleted : AND.l DungeonItemMasks,X : BNE .fail
|
||||
CLC : BRA .done
|
||||
|
||||
; see if hyrule castle has been completely cleared
|
||||
.hyrule_castle
|
||||
LDA.l CompassTotalsWRAM, X : SEC : SBC DungeonLocationsChecked, X : BEQ .fail
|
||||
CLC : BRA .done
|
||||
|
||||
.checkPendant
|
||||
LDA PendantsField : AND.l CrystalPendantFlags, X : BNE .fail
|
||||
CLC : BRA .done
|
||||
|
||||
.checkCrystal
|
||||
LDA CrystalsField : AND.l CrystalPendantFlags, X : BNE .fail
|
||||
CLC : BRA .done
|
||||
|
||||
.checkAga1
|
||||
LDA ProgressIndicator : CMP #$03 : BEQ .fail
|
||||
CLC : BRA .done
|
||||
|
||||
.checkAga2
|
||||
LDA RoomDataWRAM[$0D].high : AND #$08 : BNE .fail
|
||||
CLC : BRA .done
|
||||
|
||||
.fail
|
||||
SEC
|
||||
.done
|
||||
SEP #$20
|
||||
PLX
|
||||
RTS
|
||||
|
||||
@@ -288,12 +140,4 @@ RTS
|
||||
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
|
||||
|
||||
pullpc
|
||||
|
||||
Reference in New Issue
Block a user