fixed shops disregarding item counts (extra hitbox, etc) fixed rupee arrows regarding requiring wooden arrows before being able to fire them finished escape assist mode for ammo management in new game mode
688 lines
21 KiB
NASM
688 lines
21 KiB
NASM
;================================================================================
|
|
; Pendant / Crystal HUD Fix
|
|
;--------------------------------------------------------------------------------
|
|
;CheckPendantHUD:
|
|
; LDA !HUD_FLAG : CMP.b #$40 ; check for hud flag instead
|
|
;RTL
|
|
;================================================================================
|
|
FlipLWDWFlag:
|
|
PHP
|
|
SEP #$20 ; set 8-bit accumulator
|
|
LDA $7EF3CA : EOR.b #$40 : STA $7EF3CA
|
|
BEQ +
|
|
LDA.b #07 : BRA ++ ; dark world - crystals
|
|
+
|
|
LDA.b #03 ; light world - pendants
|
|
++
|
|
STA $7EF3C7
|
|
PLP
|
|
RTL
|
|
;================================================================================
|
|
HUDRebuildIndoorHole:
|
|
PHA
|
|
LDA.l GenericKeys : BEQ .normal
|
|
.generic
|
|
PLA
|
|
LDA $7EF38B ; generic key count
|
|
JSL.l HUD_RebuildIndoor_Palace
|
|
RTL
|
|
.normal
|
|
PLA
|
|
JSL.l HUD_RebuildIndoor_Palace
|
|
RTL
|
|
;================================================================================
|
|
HUDRebuildIndoor:
|
|
LDA.l GenericKeys : BEQ .normal
|
|
.generic
|
|
LDA.b #$00 : STA $7EC017
|
|
LDA $7EF38B ; generic key count
|
|
RTL
|
|
.normal
|
|
LDA.b #$00 : STA $7EC017
|
|
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"
|
|
OverworldMap_CheckObject:
|
|
PHX
|
|
;CPX.b #$01 : BNE + : BRL ++ : + : BRL .fail
|
|
LDA $7EF3CA : AND.b #$40 : BNE +
|
|
;LW Map
|
|
LDA.l MapMode : BEQ +++
|
|
LDA.l !INVENTORY_MAP : AND.b #$01 : BNE +++
|
|
PHX
|
|
LDA.l .lw_map_offsets, X : TAX ; put map offset into X
|
|
LDA.l !INVENTORY_MAP, X
|
|
PLX
|
|
AND.l .lw_map_masks, X : BNE +++
|
|
BRL .fail
|
|
+++
|
|
LDA.l .lw_offsets, X
|
|
BPL +++ : CLC : BRA .done : +++ ; don't display master sword
|
|
TAX : BRA ++
|
|
+
|
|
;DW Map
|
|
LDA.l MapMode : BEQ +++
|
|
LDA.l !INVENTORY_MAP : AND.b #$02 : BNE +++
|
|
PHX
|
|
LDA.l .dw_map_offsets, X : TAX ; put map offset into X
|
|
LDA.l !INVENTORY_MAP, X
|
|
PLX
|
|
AND.l .dw_map_masks, X : BNE +++
|
|
BRL .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
|
|
LDA $7EF3CA : EOR.b #$40
|
|
BNE +
|
|
LDA.b #07 : BRA ++ ; dark world - crystals
|
|
+
|
|
LDA.b #03 ; light world - pendants
|
|
++
|
|
STA $7EF3C7
|
|
PLP
|
|
RTL
|
|
;================================================================================
|
|
GetMapMode:
|
|
LDA $7EF3CA : AND.b #$40 : BEQ +
|
|
LDA.b #07 ; dark world - crystals
|
|
RTL
|
|
+
|
|
LDA.b #03 ; light world - pendants
|
|
RTL
|
|
;================================================================================
|
|
CheckHeraObject:
|
|
LDA CrystalPendantFlags_2_hera : AND.w #$00FF : BNE .crystal
|
|
|
|
.pendant
|
|
LDA $7EF374 : AND.l CrystalPendantFlags_hera : AND.w #$00FF
|
|
RTL
|
|
.crystal
|
|
LDA $7EF37A : AND.l CrystalPendantFlags_hera : AND.w #$00FF
|
|
RTL
|
|
;================================================================================
|
|
;GetPendantCrystalWorld:
|
|
; PHB : PHK : PLB
|
|
; PHX
|
|
; LDA $040C : LSR : TAX
|
|
; LDA .dungeon_worlds, X
|
|
; PLX : PLB
|
|
; CMP.b #$00
|
|
;RTL
|
|
;================================================================================
|
|
BringMenuDownEnhanced:
|
|
REP #$20 ; set 16-bit accumulator
|
|
LDA.l TournamentSeed : AND.w #$00FF
|
|
BEQ +
|
|
LDA.w #$0008 : BRA ++ ; use default speed on tournament seeds
|
|
+
|
|
LDA.l MenuSpeed
|
|
++
|
|
|
|
EOR.w #$FFFF : !ADD.w #$0001 ; negate menu speed
|
|
|
|
!ADD $EA : CMP.w #$FF18 : !BGE .noOvershoot
|
|
LDA.w #$FF18 ; if we went past the limit, go to the limit
|
|
.noOvershoot
|
|
STA $EA : CMP.w #$FF18
|
|
SEP #$20 ; set 8-bit accumulator
|
|
BNE .notDoneScrolling
|
|
INC $0200
|
|
.notDoneScrolling
|
|
RTL
|
|
;================================================================================
|
|
RaiseHudMenu:
|
|
LDA.l TournamentSeed : AND.w #$00FF
|
|
BEQ +
|
|
LDA.w #$0008 : BRA ++ ; use default speed on tournament seeds
|
|
+
|
|
LDA.l MenuSpeed : AND.w #$00FF
|
|
++
|
|
|
|
!ADD $EA : BMI .noOvershoot
|
|
LDA.w #$0000 ; if we went past the limit, go to the limit
|
|
.noOvershoot
|
|
STA $EA
|
|
RTL
|
|
;================================================================================
|
|
CheckCloseItemMenu:
|
|
LDA.l MenuCollapse : BNE +
|
|
LDA $F4 : AND.b #$10 : RTL
|
|
+
|
|
LDA $F0 : AND.b #$10 : EOR.b #$10
|
|
RTL
|
|
;================================================================================
|
|
ShowDungeonItems:
|
|
LDA $040C : AND.w #$00FF : CMP.w #$00FF : BNE + : RTL : + ; return normal result if outdoors or in a cave
|
|
;LDA $F0 : AND.w #$0020 ; check for select
|
|
LDA !HUD_FLAG : AND.w #$0020 ; check hud flag
|
|
BEQ + : LDA.w #$0000 : RTL : + ; if set, send the zero onwards
|
|
LDA $040C : AND.w #$00FF : CMP.w #$00FF ; original logic
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
UpdateKeys:
|
|
PHX : PHP
|
|
SEP #$30 ; set 8-bit accumulator & index registers
|
|
LDA $040C : CMP.b $1F : !BLT .skip
|
|
|
|
LSR : TAX ; get dungeon index and store to X
|
|
|
|
LDA $7EF36F ; load current key count
|
|
STA $7EF37C, X ; save to main counts
|
|
|
|
CPX.b #$00 : BNE +
|
|
STA $7EF37D ; copy HC to sewers
|
|
+ : CPX.b #$01 : BNE +
|
|
STA $7EF37C ; copy sewers to HC
|
|
+
|
|
.skip
|
|
JSL.l PostItemGet
|
|
PLP : PLX
|
|
RTL
|
|
;$37C = Sewer Passage
|
|
;$37D = Hyrule Castle
|
|
;$37E = Eastern Palace
|
|
;$37F = Desert Palace
|
|
;$380 = Hyrule Castle 2
|
|
;$381 = Swamp Palace
|
|
;$382 = Dark Palace
|
|
;$383 = Misery Mire
|
|
;$384 = Skull Woods
|
|
;$385 = Ice Palace
|
|
;$386 = Tower of Hera
|
|
;$387 = Gargoyle's Domain
|
|
;$388 = Turtle Rock
|
|
;$389 = Ganon's Tower
|
|
;--------------------------------------------------------------------------------
|
|
!INFINITE_ARROWS = "$7F50C8"
|
|
DrawArrowTens:
|
|
PHA : LDA.l ArrowMode : AND.w #$00FF : BNE +
|
|
LDA !INFINITE_ARROWS : AND.w #$00FF : BEQ .finite
|
|
.infinite
|
|
PLA : LDA.w #$2431 : STA $7EC760 : RTL
|
|
.finite
|
|
PLA : STA $7EC760 : RTL
|
|
+
|
|
PLA
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
DrawArrowOnes:
|
|
PHA : LDA.l ArrowMode : AND.w #$00FF : BNE +
|
|
LDA !INFINITE_ARROWS : AND.w #$00FF : BEQ .finite
|
|
.infinite
|
|
PLA : LDA.w #$2432 : STA $7EC762 : RTL
|
|
.finite
|
|
PLA : STA $7EC762 : RTL
|
|
+
|
|
PLA
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
;--------------------------------------------------------------------------------
|
|
!INFINITE_BOMBS = "$7F50C9"
|
|
DrawBombTens:
|
|
PHA ;;; LDA.l ArrowMode : AND.w #$00FF : BNE +
|
|
LDA !INFINITE_BOMBS : AND.w #$00FF : BEQ .finite
|
|
.infinite
|
|
PLA : LDA.w #$2431 : STA $7EC75A : RTL
|
|
.finite
|
|
PLA : STA $7EC75A : RTL
|
|
+
|
|
PLA
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
DrawBombOnes:
|
|
PHA ;;; LDA.l ArrowMode : AND.w #$00FF : BNE +
|
|
LDA !INFINITE_BOMBS : AND.w #$00FF : BEQ .finite
|
|
.infinite
|
|
PLA : LDA.w #$2432 : STA $7EC75C : RTL
|
|
.finite
|
|
PLA : STA $7EC75C : RTL
|
|
+
|
|
PLA
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
DrawBootsInMenuLocation:
|
|
LDA.l HUDDungeonItems : BNE +
|
|
LDA.w #$1608 : STA $00
|
|
RTL
|
|
+
|
|
LDA.w #$1588 : STA $00
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
!INFINITE_MAGIC = "$7F50CA"
|
|
!DrawMagicMeter_mp_tilemap = "$0DFE0F"
|
|
DrawMagicMeter:
|
|
LDA !INFINITE_MAGIC : BNE + : BRL .green : +
|
|
SEP #$20 : LDA.b #$80 : STA $7EF36E : REP #$20 ; set magic to max
|
|
LDX.w #$0080 ; load full magic meter graphics
|
|
LDA $1A : AND.w #$000C : LSR #2
|
|
BEQ .red
|
|
CMP.w #0001 : BEQ .yellow
|
|
CMP.w #0002 : BNE + : BRL .green : +
|
|
.blue
|
|
LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$EFFF : STA $7EC746
|
|
LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$EFFF : STA $7EC786
|
|
LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$EFFF : STA $7EC7C6
|
|
LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$EFFF : STA $7EC806
|
|
RTL
|
|
.red
|
|
LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$E7FF : STA $7EC746
|
|
LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$E7FF : STA $7EC786
|
|
LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$E7FF : STA $7EC7C6
|
|
LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$E7FF : STA $7EC806
|
|
RTL
|
|
.yellow
|
|
LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$EBFF : STA $7EC746
|
|
LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$EBFF : STA $7EC786
|
|
LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$EBFF : STA $7EC7C6
|
|
LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$EBFF : STA $7EC806
|
|
RTL
|
|
.orange
|
|
LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$E3FF : STA $7EC746
|
|
LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$E3FF : STA $7EC786
|
|
LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$E3FF : STA $7EC7C6
|
|
LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$E3FF : STA $7EC806
|
|
RTL
|
|
.green
|
|
LDA !DrawMagicMeter_mp_tilemap+0, X : STA $7EC746
|
|
LDA !DrawMagicMeter_mp_tilemap+2, X : STA $7EC786
|
|
LDA !DrawMagicMeter_mp_tilemap+4, X : STA $7EC7C6
|
|
LDA !DrawMagicMeter_mp_tilemap+6, X : STA $7EC806
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
DrawGlovesInMenuLocation:
|
|
LDA.l HUDDungeonItems : BNE +
|
|
LDA.w #$1610 : STA $00
|
|
RTL
|
|
+
|
|
LDA.w #$1590 : STA $00
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
DrawFlippersInMenuLocation:
|
|
LDA.l HUDDungeonItems : BNE +
|
|
LDA.w #$1618 : STA $00
|
|
RTL
|
|
+
|
|
LDA.w #$1598 : STA $00
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
DrawMoonPearlInMenuLocation:
|
|
LDA.l HUDDungeonItems : BNE +
|
|
LDA.w #$1620 : STA $00
|
|
RTL
|
|
+
|
|
LDA.w #$15A0 : STA $00
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
DrawHUDDungeonItems:
|
|
LDA.l HUDDungeonItems : BNE + : RTL : +
|
|
|
|
PHP
|
|
REP #$30 ; set 16-bit accumulator & index registers
|
|
|
|
; dungeon names
|
|
LDA.w #$2D50 : STA $1646 ; sewers
|
|
LDA.w #$2D54 : STA $1648 ; Agahnims Tower
|
|
|
|
LDA.w #$2D51 : STA $164C ; Eastern
|
|
LDA.w #$2D52 : STA $164E ; Desert
|
|
LDA.w #$2D53 : STA $1650 ; Hera
|
|
|
|
LDA.w #$2D55 : STA $1654 ; PoD
|
|
LDA.w #$2D56 : STA $1656 ; Swamp
|
|
LDA.w #$2D57 : STA $1658 ; Skull Woods
|
|
LDA.w #$2D58 : STA $165A ; Thieves Town
|
|
LDA.w #$2D59 : STA $165C ; Ice
|
|
LDA.w #$2D5A : STA $165E ; Mire
|
|
LDA.w #$2D5B : STA $1660 ; Turtle Rock
|
|
|
|
LDA.w #$2D5C : STA $1664 ; Ganon's Tower
|
|
|
|
; write black
|
|
LDX.w #$0000 ; Paint entire box black & draw empty pendants and crystals
|
|
-
|
|
LDA #$24F5 : STA $1686, X : STA $16C6, X
|
|
INX #2 : CPX.w #$0020 : BCC -
|
|
|
|
LDA !HUD_FLAG : AND.w #$0020 : BEQ + : BRL +++ : +
|
|
LDA HUDDungeonItems : AND.w #$0001 : BNE + : BRL ++ : +
|
|
LDA.w #$2810 : STA $1684 ; small keys icon
|
|
SEP #$20 ; set 8-bit accumulator
|
|
; Small Keys
|
|
LDA.b #$16 : !ADD $7EF37D : STA $1686 : LDA.b #$28 : ADC #$00 : sta $1686+1 ; Hyrule Castle
|
|
LDA.b #$16 : !ADD $7EF380 : STA $1688 : LDA.b #$28 : ADC #$00 : sta $1688+1 ; Agahnims Tower
|
|
|
|
LDA.b #$16 : !ADD $7EF37E : STA $168C : LDA.b #$28 : ADC #$00 : sta $168C+1 ; Eastern
|
|
LDA.b #$16 : !ADD $7EF37F : STA $168E : LDA.b #$28 : ADC #$00 : sta $168E+1 ; Desert
|
|
LDA.b #$16 : !ADD $7EF386 : STA $1690 : LDA.b #$28 : ADC #$00 : sta $1690+1 ; Hera
|
|
|
|
LDA.b #$16 : !ADD $7EF382 : STA $1694 : LDA.b #$28 : ADC #$00 : sta $1694+1 ; PoD
|
|
LDA.b #$16 : !ADD $7EF381 : STA $1696 : LDA.b #$28 : ADC #$00 : sta $1696+1 ; Swamp
|
|
LDA.b #$16 : !ADD $7EF384 : STA $1698 : LDA.b #$28 : ADC #$00 : sta $1698+1 ; Skull Woods
|
|
LDA.b #$16 : !ADD $7EF387 : STA $169A : LDA.b #$28 : ADC #$00 : sta $169A+1 ; Thieves Town
|
|
LDA.b #$16 : !ADD $7EF385 : STA $169C : LDA.b #$28 : ADC #$00 : sta $169C+1 ; Ice
|
|
LDA.b #$16 : !ADD $7EF383 : STA $169E : LDA.b #$28 : ADC #$00 : sta $169E+1 ; Mire
|
|
LDA.b #$16 : !ADD $7EF388 : STA $16A0 : LDA.b #$28 : ADC #$00 : sta $16A0+1 ; Turtle Rock
|
|
|
|
LDA.b #$16 : !ADD $7EF389 : STA $16A4 : LDA.b #$28 : ADC #$00 : sta $16A4+1 ; Ganon's Tower
|
|
|
|
REP #$20 ; set 16-bit accumulator
|
|
++
|
|
|
|
; Big Keys
|
|
LDA HUDDungeonItems : AND.w #$0002 : BNE + : BRL ++ : +
|
|
LDA.w #$2811 : STA $16C4 ; big key icon
|
|
LDA $7EF367 : AND.w #$0040 : BEQ + ; Hyrule Castle
|
|
LDA.w #$2826 : STA $16C6
|
|
+
|
|
LDA $7EF367 : AND.w #$0008 : BEQ + ; Agahnims Tower
|
|
LDA.w #$2826 : STA $16C8
|
|
+
|
|
LDA $7EF367 : AND.w #$0020 : BEQ + ; Eastern
|
|
LDA.w #$2826 : STA $16CC
|
|
+
|
|
LDA $7EF367 : AND.w #$0010 : BEQ + ; Desert
|
|
LDA.w #$2826 : STA $16CE
|
|
+
|
|
LDA $7EF366 : AND.w #$0020 : BEQ + ; Hera
|
|
LDA.w #$2826 : STA $16D0
|
|
+
|
|
LDA $7EF367 : AND.w #$0002 : BEQ + ; PoD
|
|
LDA.w #$2826 : STA $16D4
|
|
+
|
|
LDA $7EF367 : AND.w #$0004 : BEQ + ; Swamp
|
|
LDA.w #$2826 : STA $16D6
|
|
+
|
|
LDA $7EF366 : AND.w #$0080 : BEQ + ; Skull Woods
|
|
LDA.w #$2826 : STA $16D8
|
|
+
|
|
LDA $7EF366 : AND.w #$0010 : BEQ + ; Thieves Town
|
|
LDA.w #$2826 : STA $16DA
|
|
+
|
|
LDA $7EF366 : AND.w #$0040 : BEQ + ; Ice
|
|
LDA.w #$2826 : STA $16DC
|
|
+
|
|
LDA $7EF367 : AND.w #$0001 : BEQ + ; Mire
|
|
LDA.w #$2826 : STA $16DE
|
|
+
|
|
LDA $7EF366 : AND.w #$0008 : BEQ + ; Turtle Rock
|
|
LDA.w #$2826 : STA $16E0
|
|
+
|
|
LDA $7EF366 : AND.w #$0004 : BEQ + ; Ganon's Tower
|
|
LDA.w #$2826 : STA $16E4
|
|
+
|
|
++
|
|
|
|
; This should only display if select is pressed in hud
|
|
+++
|
|
LDA !HUD_FLAG : AND.w #$0020 : BNE + : BRL +++ : +
|
|
; Maps
|
|
LDA HUDDungeonItems : AND.w #$0004 : BNE + : BRL ++ : +
|
|
LDA.w #$2821 : STA $1684 ; map icon
|
|
LDA $7EF369 : AND.w #$0040 : BEQ + ; Hyrule Castle
|
|
LDA.w #$2826 : STA $1686
|
|
+
|
|
LDA $7EF369 : AND.w #$0008 : BEQ + ; Agahnims Tower
|
|
LDA.w #$2826 : STA $1688
|
|
+
|
|
LDA $7EF369 : AND.w #$0020 : BEQ + ; Eastern
|
|
LDA.w #$2826 : STA $168C
|
|
+
|
|
LDA $7EF369 : AND.w #$0010 : BEQ + ; Desert
|
|
LDA.w #$2826 : STA $168E
|
|
+
|
|
LDA $7EF368 : AND.w #$0020 : BEQ + ; Hera
|
|
LDA.w #$2826 : STA $1690
|
|
+
|
|
LDA $7EF369 : AND.w #$0002 : BEQ + ; PoD
|
|
LDA.w #$2826 : STA $1694
|
|
+
|
|
LDA $7EF369 : AND.w #$0004 : BEQ + ; Swamp
|
|
LDA.w #$2826 : STA $1696
|
|
+
|
|
LDA $7EF368 : AND.w #$0080 : BEQ + ; Skull Woods
|
|
LDA.w #$2826 : STA $1698
|
|
+
|
|
LDA $7EF368 : AND.w #$0010 : BEQ + ; Thieves Town
|
|
LDA.w #$2826 : STA $169A
|
|
+
|
|
LDA $7EF368 : AND.w #$0040 : BEQ + ; Ice
|
|
LDA.w #$2826 : STA $169C
|
|
+
|
|
LDA $7EF369 : AND.w #$0001 : BEQ + ; Mire
|
|
LDA.w #$2826 : STA $169E
|
|
+
|
|
LDA $7EF368 : AND.w #$0008 : BEQ + ; Turtle Rock
|
|
LDA.w #$2826 : STA $16A0
|
|
+
|
|
LDA $7EF368 : AND.w #$0004 : BEQ + ; Ganon's Tower
|
|
LDA.w #$2826 : STA $16A4
|
|
+
|
|
++
|
|
|
|
; Compasses
|
|
LDA HUDDungeonItems : AND.w #$0008 : BNE + : BRL ++ : +
|
|
LDA.w #$2C20 : STA $16C4 ; compass icon
|
|
LDA $7EF365 : AND.w #$0040 : BEQ + ; Hyrule Castle
|
|
LDA.w #$2C26 : STA $16C6
|
|
+
|
|
LDA $7EF365 : AND.w #$0008 : BEQ + ; Agahnims Tower
|
|
LDA.w #$2C26 : STA $16C8
|
|
+
|
|
LDA $7EF365 : AND.w #$0020 : BEQ + ; Eastern
|
|
LDA.w #$2C26 : STA $16CC
|
|
+
|
|
LDA $7EF365 : AND.w #$0010 : BEQ + ; Desert
|
|
LDA.w #$2C26 : STA $16CE
|
|
+
|
|
LDA $7EF364 : AND.w #$0020 : BEQ + ; Hera
|
|
LDA.w #$2C26 : STA $16D0
|
|
+
|
|
LDA $7EF365 : AND.w #$0002 : BEQ + ; PoD
|
|
LDA.w #$2C26 : STA $16D4
|
|
+
|
|
LDA $7EF365 : AND.w #$0004 : BEQ + ; Swamp
|
|
LDA.w #$2C26 : STA $16D6
|
|
+
|
|
LDA $7EF364 : AND.w #$0080 : BEQ + ; Skull Woods
|
|
LDA.w #$2C26 : STA $16D8
|
|
+
|
|
LDA $7EF364 : AND.w #$0010 : BEQ + ; Thieves Town
|
|
LDA.w #$2C26 : STA $16DA
|
|
+
|
|
LDA $7EF364 : AND.w #$0040 : BEQ + ; Ice
|
|
LDA.w #$2C26 : STA $16DC
|
|
+
|
|
LDA $7EF365 : AND.w #$0001 : BEQ + ; Mire
|
|
LDA.w #$2C26 : STA $16DE
|
|
+
|
|
LDA $7EF364 : AND.w #$0008 : BEQ + ; Turtle Rock
|
|
LDA.w #$2C26 : STA $16E0
|
|
+
|
|
LDA $7EF364 : AND.w #$0004 : BEQ + ; Ganon's Tower
|
|
LDA.w #$2C26 : STA $16E4
|
|
+
|
|
++ : +++
|
|
PLP
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
;================================================================================
|
|
DrawPendantCrystalDiagram:
|
|
PHP : PHB : PHK : PLB
|
|
REP #$30 ; Set 16-bit accumulator & index registers
|
|
LDX.w #$0000 ; Paint entire box black & draw empty pendants and crystals
|
|
-
|
|
LDA .row0, X : STA $12EA, X
|
|
LDA .row1, X : STA $132A, X
|
|
LDA .row2, X : STA $136A, X
|
|
LDA .row3, X : STA $13AA, X
|
|
LDA .row4, X : STA $13EA, X
|
|
LDA .row5, X : STA $142A, X
|
|
LDA .row6, X : STA $146A, X
|
|
LDA .row7, X : STA $14AA, X
|
|
LDA .row8, X : STA $14EA, X
|
|
INX #2 : CPX.w #$0014 : BCC -
|
|
|
|
;pendants
|
|
LDA $7EF374 : AND.w #$0004 : BEQ + ; pendant of courage (green)
|
|
LDA.w #$3D2B : STA $1332
|
|
LDA.w #$3D2C : STA $1334
|
|
LDA.w #$3D2D : STA $1372
|
|
LDA.w #$3D2E : STA $1374
|
|
+ LDA $7EF374 : AND.w #$0002 : BEQ + ; pendant of power (blue)
|
|
LDA.w #$2D2B : STA $13AE
|
|
LDA.w #$2D2C : STA $13B0
|
|
LDA.w #$2D2D : STA $13EE
|
|
LDA.w #$2D2E : STA $13F0
|
|
+ LDA $7EF374 : AND.w #$0001 : BEQ + ; pendant of wisdom (red)
|
|
LDA.w #$252B : STA $13B6
|
|
LDA.w #$252C : STA $13B8
|
|
LDA.w #$252D : STA $13F6
|
|
LDA.w #$252E : STA $13F8
|
|
+
|
|
|
|
;crystals
|
|
LDA $7EF37A : AND.w #$0002 : BEQ + ; crystal 1
|
|
LDA.w #$2D44 : STA $14AC
|
|
LDA.w #$2D45 : STA $14AE
|
|
+ LDA $7EF37A : AND.w #$0010 : BEQ + ; crystal 2
|
|
LDA.w #$2D44 : STA $146E
|
|
LDA.w #$2D45 : STA $1470
|
|
+ LDA $7EF37A : AND.w #$0040 : BEQ + ; crystal 3
|
|
LDA.w #$2D44 : STA $14B0
|
|
LDA.w #$2D45 : STA $14B2
|
|
+ LDA $7EF37A : AND.w #$0020 : BEQ + ; crystal 4
|
|
LDA.w #$2D44 : STA $1472
|
|
LDA.w #$2D45 : STA $1474
|
|
+ LDA $7EF37A : AND.w #$0004 : BEQ + ; crystal 5
|
|
LDA.w #$2544 : STA $14B4
|
|
LDA.w #$2545 : STA $14B6
|
|
+ LDA $7EF37A : AND.w #$0001 : BEQ + ; crystal 6
|
|
LDA.w #$2544 : STA $1476
|
|
LDA.w #$2545 : STA $1478
|
|
+ LDA $7EF37A : AND.w #$0008 : BEQ + ; crystal 7
|
|
LDA.w #$2D44 : STA $14B8
|
|
LDA.w #$2D45 : STA $14BA
|
|
+
|
|
PLB : PLP
|
|
RTL
|
|
;================================================================================
|
|
.row0 dw $28FB, $28F9, $28F9, $28F9, $28F9, $28F9, $28F9, $28F9, $28F9, $68FB
|
|
.row1 dw $28FC, $24F5, $24F5, $24F5, $312B, $312C, $24F5, $24F5, $24F5, $68FC
|
|
.row2 dw $28FC, $24F5, $24F5, $24F5, $313D, $312E, $24F5, $24F5, $24F5, $68FC
|
|
.row3 dw $28FC, $24F5, $312B, $312C, $24F5, $24F5, $312B, $312C, $24F5, $68FC
|
|
.row4 dw $28FC, $24F5, $313D, $312E, $24F5, $24F5, $313D, $312E, $24F5, $68FC
|
|
.row5 dw $28FC, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $68FC
|
|
.row6 dw $28FC, $24F5, $3146, $3147, $3146, $3147, $3146, $3147, $24F5, $68FC
|
|
.row7 dw $28FC, $3146, $3147, $3146, $3147, $3146, $3147, $3146, $3147, $68FC
|
|
.row8 dw $A8FB, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $E8FB
|
|
;================================================================================
|
|
;Crystal 1: $02
|
|
;Crystal 2: $10
|
|
;Crystal 3: $40
|
|
;Crystal 4: $20
|
|
;Crystal 5: $04
|
|
;Crystal 6: $01
|
|
;Crystal 7: $08
|
|
;;blank pendant
|
|
;db $2B, $31, $2C, $31, $3D, $31, $2E, $31
|
|
;
|
|
;;red pendant
|
|
;db $2B, $25, $2C, $25, $2D, $25, $2E, $25
|
|
;
|
|
;;blue pendant
|
|
;db $2B, $2D, $2C, $2D, $2D, $2D, $2E, $2D
|
|
;
|
|
;;green pendant
|
|
;db $2B, $3D, $2C, $3D, $2D, $3D, $2E, $3D
|
|
;================================================================================
|
|
.pendants
|
|
dw $28FB, $28F9, $28F9, $28F9, $28F9, $28F9, $28F9, $28F9, $28F9, $68FB
|
|
dw $28FC, $2521, $2522, $2523, $2524, $253F, $24F5, $24F5, $24F5, $68FC
|
|
dw $28FC, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $68FC
|
|
dw $28FC, $24F5, $24F5, $24F5, $213B, $213C, $24F5, $24F5, $24F5, $68FC
|
|
dw $28FC, $24F5, $24F5, $24F5, $213D, $213E, $24F5, $24F5, $24F5, $68FC
|
|
dw $28FC, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $68FC
|
|
dw $28FC, $24F5, $213B, $213C, $24F5, $24F5, $213B, $213C, $24F5, $68FC
|
|
dw $28FC, $24F5, $213D, $213E, $24F5, $24F5, $213D, $213E, $24F5, $68FC
|
|
dw $A8FB, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $E8FB
|
|
.crystals
|
|
dw $28FB, $28F9, $28F9, $28F9, $28F9, $28F9, $28F9, $28F9, $28F9, $68FB
|
|
dw $28FC, $252F, $2534, $2535, $2536, $2537, $24F5, $24F5, $24F5, $68FC
|
|
dw $28FC, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $68FC
|
|
dw $28FC, $24F5, $24F5, $3146, $3147, $3146, $3147, $24F5, $24F5, $68FC
|
|
dw $28FC, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $68FC
|
|
dw $28FC, $24F5, $3146, $3147, $3146, $3147, $3146, $3147, $24F5, $68FC
|
|
dw $28FC, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $68FC
|
|
dw $28FC, $24F5, $24F5, $3146, $3147, $3146, $3147, $24F5, $24F5, $68FC
|
|
dw $A8FB, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $E8FB
|
|
;================================================================================
|
|
; DATA - Dungeon Worlds
|
|
;.dungeon_worlds
|
|
;db $00, $00, $00, $00, $00, $40, $40, $40
|
|
;db $40, $40, $00, $40, $40, $40, $FF, $FF
|
|
;================================================================================
|
|
;0x00 - Sewer Passage
|
|
;0x02 - Hyrule Castle
|
|
;0x04 - Eastern Palace
|
|
;0x06 - Desert Palace
|
|
;0x08 - Hyrule Castle 2
|
|
;0x0A - Swamp Palace
|
|
;0x0C - Palace of Darkness
|
|
;0x0E - Misery Mire
|
|
;0x10 - Skull Woods
|
|
;0x12 - Ice Palace
|
|
;0x14 - Tower of Hera
|
|
;0x16 - Thieves' Town
|
|
;0x18 - Turtle Rock
|
|
;0x1A - Ganon's Tower
|
|
;0x1C - ??? possibly unused. (Were they planning two extra dungeons perhaps?)
|
|
;0x1E - ??? possibly unused.
|
|
;================================================================================ |