Merge branch 'FancyDoorsMap' into MappableDoors
This commit is contained in:
@@ -210,6 +210,7 @@ incsrc special_weapons.asm
|
||||
incsrc variable_ganon_vulnerability.asm
|
||||
incsrc pseudoflute.asm
|
||||
incsrc dungeon_map/main.asm
|
||||
print "End of B9: ", pc
|
||||
|
||||
warnpc $B9E000 ; $E000 - EFFF reserved for custom door rando map data
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -243,7 +243,7 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
fclose(outptr);
|
||||
printf("Input file: %X bytes. Compressed: %X bytes.\n", size, oloc);
|
||||
printf("Input file: %lX bytes. Compressed: %X bytes.\n", size, oloc);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
fclose(outptr);
|
||||
printf("Input file: %X bytes. Decompressed: %X bytes.\n", size, oloc);
|
||||
printf("Input file: %lX bytes. Decompressed: %X bytes.\n", size, oloc);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -20,6 +20,17 @@ BlinkLoot:
|
||||
|
||||
StartDoubleWrite:
|
||||
; what we wrote over
|
||||
LDA.l DRMode
|
||||
BEQ .draw
|
||||
LDA.l DungeonMapMode
|
||||
BNE .draw
|
||||
|
||||
INC.w $020D ; next subsubmode
|
||||
PLA : PLA : PLA ; pull our jump to here off the stack
|
||||
PLB
|
||||
RTL
|
||||
|
||||
.draw
|
||||
REP #$30
|
||||
STZ.w GFXStripes
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ CheckLoot:
|
||||
REP #$30
|
||||
PHB : PHX : PHY
|
||||
|
||||
STA.b $00
|
||||
STA.b $CA
|
||||
|
||||
LDA.b $06 : PHA
|
||||
LDA.b $0E : PHA
|
||||
@@ -16,7 +16,8 @@ CheckLoot:
|
||||
AND.w #$00FF
|
||||
STA.b $0E
|
||||
|
||||
LDA.b $00
|
||||
LDA.b $CA
|
||||
AND.w #$00FF
|
||||
ASL A
|
||||
TAX
|
||||
|
||||
@@ -80,7 +81,9 @@ CheckLoot:
|
||||
RTL
|
||||
|
||||
CheckChests:
|
||||
LDA.b $00
|
||||
LDA.b $CA
|
||||
AND.w #$00FF
|
||||
STA.b $00
|
||||
ASL A
|
||||
TAX
|
||||
|
||||
@@ -90,6 +93,7 @@ CheckChests:
|
||||
|
||||
LDA.w #$0008
|
||||
STA.b $04
|
||||
STZ.b $06
|
||||
|
||||
LDY.w #$FFFD
|
||||
.increment_mask
|
||||
@@ -106,6 +110,11 @@ CheckChests:
|
||||
CMP.b $00
|
||||
BNE .next_chest
|
||||
|
||||
LDA.b $06
|
||||
JSR CheckChestSection
|
||||
INC.b $06
|
||||
BCC .increment_mask
|
||||
|
||||
LDA.l SaveDataWRAM, X
|
||||
AND.b $04
|
||||
BNE .increment_mask ; already got item
|
||||
@@ -119,6 +128,22 @@ CheckChests:
|
||||
RTS
|
||||
|
||||
CheckBoss:
|
||||
; we assume all bosses are in section 1 of split sections
|
||||
; mainly to simplify hera cage key and GT torch
|
||||
; which use the same flow
|
||||
; and bosses are always in their own section anyway
|
||||
LDA.b $CA
|
||||
AND.w #$F000
|
||||
XBA
|
||||
CMP.w #$0020
|
||||
BCC +
|
||||
RTS
|
||||
|
||||
+
|
||||
LDA.b $CA
|
||||
AND.w #$00FF
|
||||
STA.b $04
|
||||
|
||||
LDX.w #$FFFA
|
||||
.next_boss
|
||||
INX #6
|
||||
@@ -127,7 +152,7 @@ CheckBoss:
|
||||
RTS
|
||||
|
||||
.check
|
||||
CMP.b $00
|
||||
CMP.b $04
|
||||
BNE .next_boss
|
||||
|
||||
TXY
|
||||
@@ -170,6 +195,10 @@ CheckBoss:
|
||||
BRA .next_boss
|
||||
|
||||
CheckPrize:
|
||||
LDA.b $CA
|
||||
AND.w #$00FF
|
||||
STA.b $04
|
||||
|
||||
LDX.w #$FFFD
|
||||
.next_prize
|
||||
INX #3
|
||||
@@ -178,7 +207,7 @@ CheckPrize:
|
||||
RTS
|
||||
|
||||
.check
|
||||
CMP.b $00
|
||||
CMP.b $04
|
||||
BNE .next_prize
|
||||
|
||||
TXY
|
||||
@@ -202,7 +231,8 @@ CheckPrize:
|
||||
BRA .next_prize
|
||||
|
||||
CheckPots:
|
||||
LDA.b $00
|
||||
LDA.b $CA
|
||||
AND.w #$00FF
|
||||
ASL A
|
||||
TAX
|
||||
|
||||
@@ -221,6 +251,10 @@ CheckPots:
|
||||
LDA.b [$04], Y
|
||||
AND.w #$00FF
|
||||
CMP.w #$0008 : BEQ .small_key
|
||||
LDA.l PotCountMode
|
||||
BEQ +
|
||||
JSR CheckJunkPot
|
||||
+
|
||||
INY
|
||||
BRA .next_pot
|
||||
|
||||
@@ -231,18 +265,30 @@ CheckPots:
|
||||
PHX
|
||||
INY
|
||||
BRA .mask_set
|
||||
|
||||
.major_item
|
||||
LDA.b [$04], Y
|
||||
.continue
|
||||
PHA
|
||||
PHX
|
||||
INY
|
||||
TXA : ASL A
|
||||
TAX
|
||||
LDA.l DungeonMask, X : STA.b $08
|
||||
TXA : LSR A : TAX
|
||||
|
||||
.mask_set
|
||||
LDA.b $00 : ASL A : TAX
|
||||
TXA
|
||||
JSR CheckPotSection
|
||||
BCS +
|
||||
PLX
|
||||
PLA
|
||||
BRA .next_pot
|
||||
+
|
||||
|
||||
LDA.b $CA
|
||||
AND.w #$00FF
|
||||
ASL A
|
||||
TAX
|
||||
if !FEATURE_FIX_BASEROM
|
||||
LDA.l SpriteDropData, X
|
||||
else
|
||||
@@ -263,8 +309,50 @@ endif
|
||||
.done
|
||||
RTS
|
||||
|
||||
CheckJunkPot:
|
||||
LDA.b [$04], Y
|
||||
PHA
|
||||
PHX
|
||||
TXA : ASL A : TAX
|
||||
LDA.l DungeonMask, X : STA.b $08
|
||||
TXA : LSR A
|
||||
JSR CheckPotSection
|
||||
BCS +
|
||||
PLX
|
||||
PLA
|
||||
RTS
|
||||
+
|
||||
|
||||
LDA.b $CA
|
||||
AND.w #$00FF
|
||||
ASL A
|
||||
TAX
|
||||
LDA.l PotCollectionRateTable, X
|
||||
AND.b $08
|
||||
BEQ .not_important
|
||||
|
||||
if !FEATURE_FIX_BASEROM
|
||||
LDA.l SpriteDropData, X
|
||||
else
|
||||
LDA.l RoomPotData, X
|
||||
endif
|
||||
AND.b $08
|
||||
BNE .not_important
|
||||
|
||||
PLX
|
||||
PLA
|
||||
AND.w #$00FF
|
||||
JSR GetPotJunkClass
|
||||
RTS
|
||||
|
||||
.not_important
|
||||
PLX
|
||||
PLA
|
||||
RTS
|
||||
|
||||
CheckEnemies:
|
||||
LDA.b $00
|
||||
LDA.b $CA
|
||||
AND.w #$00FF
|
||||
ASL A
|
||||
TAX
|
||||
|
||||
@@ -279,9 +367,14 @@ CheckEnemies:
|
||||
.next_enemy
|
||||
LDA.b [$04], Y
|
||||
AND.w #$00FF
|
||||
CMP.w #$00FF : BEQ .done
|
||||
CMP.w #$00FF
|
||||
BNE +
|
||||
JMP .done
|
||||
+
|
||||
LDA.b [$04], Y
|
||||
BIT.w #$8000 : BNE .overlord
|
||||
AND.w #$E000
|
||||
CMP.w #$E000
|
||||
BEQ .overlord
|
||||
INY : INY
|
||||
LDA.b [$04], Y
|
||||
AND.w #$00FF
|
||||
@@ -331,15 +424,28 @@ CheckEnemies:
|
||||
TXA : ASL A
|
||||
TAX
|
||||
LDA.l DungeonMask, X : STA.b $08
|
||||
TXA : LSR A : TAX
|
||||
|
||||
.mask_set
|
||||
LDA.b $00 : ASL A : TAX
|
||||
TXA
|
||||
JSR CheckEnemySection
|
||||
BCS +
|
||||
PLX
|
||||
PLA
|
||||
JMP .next_enemy
|
||||
+
|
||||
|
||||
LDA.b $CA
|
||||
AND.w #$00FF
|
||||
ASL A
|
||||
TAX
|
||||
|
||||
LDA.l SpriteDropData, X
|
||||
PLX
|
||||
AND.b $08
|
||||
BEQ .not_obtained
|
||||
PLA
|
||||
BRA .next_enemy
|
||||
JMP .next_enemy
|
||||
|
||||
.not_obtained
|
||||
PLA
|
||||
@@ -380,3 +486,148 @@ GetLootClass:
|
||||
.done
|
||||
PLX
|
||||
RTS
|
||||
|
||||
; A = item id
|
||||
; updates "best loot" value if better
|
||||
GetPotJunkClass:
|
||||
PHX
|
||||
TAX
|
||||
|
||||
LDA.b $0E
|
||||
BEQ .done
|
||||
CMP.w #$0001
|
||||
BEQ .value_set
|
||||
|
||||
; hardcode as junk for now
|
||||
LDA.w #$0002
|
||||
|
||||
.value_set
|
||||
CMP.b $02
|
||||
BCC .done
|
||||
STA.b $02
|
||||
|
||||
.done
|
||||
PLX
|
||||
RTS
|
||||
|
||||
macro DefineGetFooSection(type, offset)
|
||||
Get<type>Section:
|
||||
PHX
|
||||
LDA.b $CA
|
||||
AND.w #$00FF
|
||||
ASL A
|
||||
TAX
|
||||
LDA.l SplitRooms, X
|
||||
TAX
|
||||
|
||||
LDA.l SplitRooms, X
|
||||
AND.w #$00FF
|
||||
STA.b $CE
|
||||
BEQ .found
|
||||
|
||||
INX
|
||||
.check_next_section
|
||||
PHX
|
||||
LDA.l SplitRooms+<offset>, X
|
||||
TAX
|
||||
-
|
||||
LDA.l SplitRooms, X
|
||||
AND.w #$00FF
|
||||
CMP.w #$00FF
|
||||
BEQ .not_this_section
|
||||
CMP.b $CC
|
||||
BEQ .plx_found
|
||||
|
||||
INX
|
||||
BRA -
|
||||
|
||||
.not_this_section
|
||||
PLX
|
||||
TXA : CLC : ADC.w #$000D : TAX
|
||||
DEC.b $CE
|
||||
BNE .check_next_section
|
||||
BRA .found
|
||||
|
||||
.plx_found
|
||||
PLX
|
||||
|
||||
.found
|
||||
PLX
|
||||
LDA.b $CE
|
||||
RTS
|
||||
endmacro
|
||||
|
||||
macro DefineCheckFooSection(type)
|
||||
Check<type>Section:
|
||||
STA.b $CC
|
||||
|
||||
LDA.b $CB
|
||||
AND.w #$00FF
|
||||
BEQ .yes
|
||||
|
||||
JSR Get<type>Section
|
||||
|
||||
LDA.b $CB
|
||||
AND.w #$00FF
|
||||
LSR A : LSR A : LSR A : LSR A
|
||||
DEC A
|
||||
CMP.b $CE
|
||||
BEQ .yes
|
||||
|
||||
.no
|
||||
CLC
|
||||
RTS
|
||||
|
||||
.yes
|
||||
SEC
|
||||
RTS
|
||||
endmacro
|
||||
|
||||
%DefineGetFooSection(Door, 3)
|
||||
%DefineGetFooSection(Stair, 5)
|
||||
%DefineGetFooSection(Chest, 7)
|
||||
%DefineGetFooSection(Pot, 9)
|
||||
%DefineGetFooSection(Enemy, 11)
|
||||
|
||||
%DefineCheckFooSection(Door)
|
||||
%DefineCheckFooSection(Stair)
|
||||
%DefineCheckFooSection(Chest)
|
||||
%DefineCheckFooSection(Pot)
|
||||
%DefineCheckFooSection(Enemy)
|
||||
|
||||
GetIncomingStairSection:
|
||||
PHX
|
||||
AND.w #$0300
|
||||
XBA
|
||||
ASL A
|
||||
TAX
|
||||
LDA.l $8098D8, X
|
||||
STA.b $CC
|
||||
|
||||
LDA.b $CA
|
||||
AND.w #$00FF
|
||||
ASL A
|
||||
TAX
|
||||
LDA.l SplitRooms, X
|
||||
TAX
|
||||
|
||||
LDA.l SplitRooms, X
|
||||
AND.w #$00FF
|
||||
STA.b $CE
|
||||
BEQ .found
|
||||
|
||||
INX
|
||||
.check_next_section
|
||||
LDA.l SplitRooms+0, X
|
||||
AND.w #$00FF
|
||||
AND.b $CC
|
||||
BNE .found
|
||||
TXA : CLC : ADC.w #$000D : TAX
|
||||
DEC.b $CE
|
||||
BNE .check_next_section
|
||||
BRA .found
|
||||
|
||||
.found
|
||||
PLX
|
||||
LDA.b $CE
|
||||
RTS
|
||||
|
||||
2162
dungeon_map/current_room_map.asm
Normal file
2162
dungeon_map/current_room_map.asm
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
||||
DoorConnectionTiles:
|
||||
.vertical
|
||||
dw $0000, $0000 ; $00
|
||||
dw $01C0, $0000 ; $01 left -> left
|
||||
dw $01D0, $01D1 ; $02 left -> middle
|
||||
@@ -10,12 +11,33 @@ DoorConnectionTiles:
|
||||
dw $41D1, $41D0 ; $08 right -> middle
|
||||
dw $0000, $01C0 ; $09 right -> right
|
||||
dw $41C2, $41C1 ; $0A left-middle -> left-middle
|
||||
dw $81D2, $81D0 ; $0B left-middle -> left-right
|
||||
dw $81D2, $C1D0 ; $0B left-middle -> left-right
|
||||
dw $41D3, $81D3 ; $0C left-middle -> middle-right
|
||||
dw $01D2, $01D0 ; $0D left-right -> left-middle
|
||||
dw $01D2, $41D0 ; $0D left-right -> left-middle
|
||||
dw $01C0, $01C0 ; $0E left-right -> left-right
|
||||
dw $01D0, $41D2 ; $0F left-right -> middle-right
|
||||
dw $C1D3, $01D3 ; $10 middle-right -> left-middle
|
||||
dw $81D0, $C1D2 ; $11 middle-right -> left-right
|
||||
dw $01C1, $01C2 ; $12 middle-right -> middle-right
|
||||
dw $41C2, $01C2 ; $13 triple -> triple
|
||||
.horizontal
|
||||
dw $0300, $0300 ; $00
|
||||
dw $01C4, $0300 ; $01 top -> top
|
||||
dw $C1D4, $C1D5 ; $02 top -> middle
|
||||
dw $81C7, $41C7 ; $03 top -> bottom
|
||||
dw $81D4, $81D5 ; $04 middle -> top
|
||||
dw $01C5, $81C5 ; $05 middle -> middle
|
||||
dw $01D5, $01D4 ; $06 middle -> bottom
|
||||
dw $C1C7, $01C7 ; $07 bottom -> top
|
||||
dw $41D5, $41D4 ; $08 bottom -> middle
|
||||
dw $0300, $01C4 ; $09 bottom -> bottom
|
||||
dw $41C6, $41C5 ; $0A top-middle -> top-middle
|
||||
dw $41D6, $01D4 ; $0B top-middle -> top-bottom
|
||||
dw $41D7, $81D7 ; $0C top-middle -> middle-bottom
|
||||
dw $01D6, $41D4 ; $0D top-bottom -> top-middle
|
||||
dw $01C4, $01C4 ; $0E top-bottom -> top-bottom
|
||||
dw $C1D4, $81D6 ; $0F top-bottom -> middle-bottom
|
||||
dw $C1D7, $01D7 ; $10 middle-bottom -> top-middle
|
||||
dw $81D4, $C1D6 ; $11 middle-bottom -> top-bottom
|
||||
dw $01C5, $01C6 ; $12 middle-bottom -> middle-bottom
|
||||
dw $81C6, $01C6 ; $13 triple -> triple
|
||||
|
||||
309
dungeon_map/data/doors_display.asm
Normal file
309
dungeon_map/data/doors_display.asm
Normal file
@@ -0,0 +1,309 @@
|
||||
DoorSlotsSprites:
|
||||
; center
|
||||
dw $48A8
|
||||
; north
|
||||
dw $2090, $20A8, $20C0
|
||||
dw $2098, $20B8
|
||||
; west
|
||||
dw $3080, $4880, $6080
|
||||
dw $3880, $5880
|
||||
; south
|
||||
dw $7090, $70A8, $70C0
|
||||
dw $7098, $70B8
|
||||
; east
|
||||
dw $30D0, $48D0, $60D0
|
||||
dw $38D0, $58D0
|
||||
; stairs
|
||||
dw $B080, $B098, $B0B0
|
||||
; drop/warp
|
||||
dw $B0D0
|
||||
|
||||
DoorSlotsBG1:
|
||||
; center
|
||||
dw $1135
|
||||
; north
|
||||
dw $1092, $1095, $1098
|
||||
dw $1093, $1097
|
||||
; west
|
||||
dw $10D0, $1130, $1190
|
||||
dw $10F0, $1170
|
||||
; south
|
||||
dw $11D2, $11D5, $11D8
|
||||
dw $11D3, $11D7
|
||||
; east
|
||||
dw $10DA, $113A, $119A
|
||||
dw $10FA, $117A
|
||||
; stairs
|
||||
dw $12D0, $12D3, $12D6
|
||||
; drop/warp
|
||||
dw $12DA
|
||||
|
||||
DoorSlotsBG2:
|
||||
; center
|
||||
dw $0000
|
||||
; north
|
||||
dw $FEBA, $FEC0, $FEC6
|
||||
dw $FEBC, $FEC4
|
||||
; west
|
||||
dw $FF36, $FFF6, $00B6
|
||||
dw $FF76, $0076
|
||||
; south
|
||||
dw $013A, $0140, $0146
|
||||
dw $013C, $0144
|
||||
; east
|
||||
dw $FF4A, $000A, $00CA
|
||||
dw $FF8A, $008A
|
||||
; stairs
|
||||
dw $0336, $033C, $0342
|
||||
; drop/warp
|
||||
dw $034A
|
||||
|
||||
DoorSlotSides:
|
||||
db $02, $0C, $16, $20
|
||||
|
||||
DoorSlotOffsets:
|
||||
db $02, $02, $06, $00
|
||||
|
||||
; up, left, down, right
|
||||
NextCursorSlot:
|
||||
db $80, $81, $82, $83
|
||||
; top
|
||||
db $FF, $C1, $00, $04
|
||||
db $FF, $04, $00, $05
|
||||
db $FF, $05, $00, $C3
|
||||
db $FF, $01, $00, $02
|
||||
db $FF, $02, $00, $03
|
||||
; left
|
||||
db $C0, $FF, $09, $00
|
||||
db $09, $FF, $0A, $00
|
||||
db $0A, $FF, $C2, $00
|
||||
db $06, $FF, $07, $00
|
||||
db $07, $FF, $08, $00
|
||||
; bottom
|
||||
db $00, $E1, $85, $0E
|
||||
db $00, $0E, $85, $0F
|
||||
db $00, $0F, $85, $E3
|
||||
db $00, $0B, $85, $0C
|
||||
db $00, $0C, $85, $0D
|
||||
; right
|
||||
db $E0, $00, $13, $FF
|
||||
db $13, $00, $14, $FF
|
||||
db $14, $00, $E2, $FF
|
||||
db $10, $00, $11, $FF
|
||||
db $11, $00, $12, $FF
|
||||
; stairs
|
||||
db $84, $18, $FF, $16
|
||||
db $84, $15, $FF, $17
|
||||
db $84, $16, $FF, $18
|
||||
; drop/warp
|
||||
db $84, $17, $FF, $15
|
||||
|
||||
NextCursorSpecial:
|
||||
.center
|
||||
db $02, $04, $05, $01, $03, $FF
|
||||
db $07, $09, $0A, $06, $08, $FF
|
||||
db $0C, $0E, $0F, $0B, $0D, $15, $16, $17, $18, $FF
|
||||
db $11, $13, $14, $10, $12, $FF
|
||||
db $0C, $0E, $0F, $0B, $0D, $00, $FF
|
||||
db $17, $16, $15, $18, $FF
|
||||
.center_offset
|
||||
db $00, $06, $0C, $16, $1C, $23
|
||||
.start_index
|
||||
db $01, $06, $0B, $10, $15
|
||||
.start_direction
|
||||
db $03, $02, $03, $02, $03
|
||||
.end_index
|
||||
db $03, $08, $0D, $12, $18
|
||||
.end_direction
|
||||
db $01, $00, $01, $00, $01
|
||||
|
||||
SingleEdgeCurrentRoomConnectors:
|
||||
.north
|
||||
dw $01C0, $0300, $01C0, $0300, $01C0, $0300 ; left -> left
|
||||
dw $01C1, $41C1, $81D0, $81D1, $01C0, $0300 ; left -> middle
|
||||
dw $41D1, $41D0, $01C1, $41C1, $81D0, $81D1 ; left -> right
|
||||
dw $01C0, $0300, $01D0, $01D1, $01C1, $41C1 ; middle -> left
|
||||
dw $01C1, $41C1, $01C1, $41C1, $01C1, $41C1 ; middle -> middle
|
||||
dw $0300, $01C0, $41D1, $41D0, $01C1, $41C1 ; middle -> right
|
||||
dw $01D0, $01D1, $01C1, $41C1, $C1D1, $C1D0 ; right -> left
|
||||
dw $01C1, $41C1, $C1D1, $C1D0, $0300, $01C0 ; right -> middle
|
||||
dw $0300, $01C0, $0300, $01C0, $0300, $01C0 ; right -> right
|
||||
.west
|
||||
dw $01C4, $01C4, $01C4, $0300, $0300, $0300 ; top -> top
|
||||
dw $01C5, $81D4, $01C4, $C1C5, $81D5, $0300 ; top -> middle
|
||||
dw $41D5, $01C5, $81D4, $41D4, $C1C5, $81D5 ; top -> bottom
|
||||
dw $01C4, $C1D4, $01C5, $0300, $C1D5, $C1C5 ; middle -> top
|
||||
dw $01C5, $01C5, $01C5, $C1C5, $C1C5, $C1C5 ; middle -> middle
|
||||
dw $0300, $41D5, $01C5, $01C4, $41D4, $C1C5 ; middle -> bottom
|
||||
dw $C1D4, $01C5, $01D5, $C1D5, $C1C5, $01D4 ; bottom -> top
|
||||
dw $01C5, $01D5, $0300, $C1C5, $01D4, $01C4 ; bottom -> middle
|
||||
dw $0300, $0300, $0300, $01C4, $01C4, $01C4 ; bottom -> bottom
|
||||
.south
|
||||
dw $01C0, $0300, $01C0, $0300, $01C0, $0300 ; left -> left
|
||||
dw $01C0, $0300, $01D0, $01D1, $01C1, $41C1 ; left -> middle
|
||||
dw $01D0, $01D1, $01C1, $41C1, $C1D1, $C1D0 ; left -> right
|
||||
dw $01C1, $41C1, $81D0, $81D1, $01C0, $0300 ; middle -> left
|
||||
dw $01C1, $41C1, $01C1, $41C1, $01C1, $41C1 ; middle -> middle
|
||||
dw $01C1, $41C1, $C1D1, $C1D0, $0300, $01C0 ; middle -> right
|
||||
dw $41D1, $41D0, $01C1, $41C1, $81D0, $81D1 ; right -> left
|
||||
dw $0300, $01C0, $41D1, $41D0, $01C1, $41C1 ; right -> middle
|
||||
dw $0300, $01C0, $0300, $01C0, $0300, $01C0 ; right -> right
|
||||
.east
|
||||
dw $01C4, $01C4, $01C4, $0300, $0300, $0300 ; top -> top
|
||||
dw $01C4, $C1D4, $01C5, $0300, $C1D5, $81C5 ; top -> middle
|
||||
dw $C1D4, $01C5, $01D5, $C1D5, $81C5, $01D4 ; top -> bottom
|
||||
dw $01C5, $81D4, $01C4, $81C5, $81D5, $0300 ; middle -> top
|
||||
dw $01C5, $01C5, $01C5, $81C5, $81C5, $81C5 ; middle -> middle
|
||||
dw $01C5, $01D5, $0300, $81C5, $01D4, $01C4 ; middle -> bottom
|
||||
dw $41D5, $01C5, $81D4, $41D4, $81C5, $81D5 ; bottom -> top
|
||||
dw $0300, $41D5, $01C5, $01C4, $41D4, $81C5 ; bottom -> middle
|
||||
dw $0300, $0300, $0300, $01C4, $01C4, $01C4 ; bottom -> bottom
|
||||
|
||||
QuadrantMasks:
|
||||
; north
|
||||
dw $0008, $000C, $0004
|
||||
; west
|
||||
dw $0008, $000A, $0002
|
||||
; south
|
||||
dw $0002, $0003, $0001
|
||||
; east
|
||||
dw $0004, $0005, $0001
|
||||
|
||||
EntranceQuadrantMasks:
|
||||
dw $0002
|
||||
dw $0003
|
||||
dw $0001
|
||||
|
||||
DropdownQuadrantMasks:
|
||||
dw $0008
|
||||
dw $000C
|
||||
dw $0004
|
||||
|
||||
MultiConnectorMapping:
|
||||
.two
|
||||
db $02, $00
|
||||
.three
|
||||
db $02, $01, $00
|
||||
|
||||
MultiConnectorTiles:
|
||||
.north
|
||||
..two
|
||||
dw $41C7, $81C7, $C1C7, $01C7
|
||||
..three
|
||||
dw $41C7, $01C4, $81F7, $C1F7, $01C4, $01C7
|
||||
.west
|
||||
..two
|
||||
dw $81C7, $41C7, $C1C7, $01C7
|
||||
..three
|
||||
dw $81C7, $01C0, $41E7, $C1E7, $01C0, $01C7
|
||||
.south
|
||||
..two
|
||||
dw $C1C7, $01C7, $41C7, $81C7
|
||||
..three
|
||||
dw $C1C7, $01C4, $01F7, $41F7, $01C4, $81C7
|
||||
.east
|
||||
..two
|
||||
dw $C1C7, $01C7, $81C7, $41C7
|
||||
..three
|
||||
dw $C1C7, $01C0, $01E7, $81E7, $01C0, $41C7
|
||||
.direction_index
|
||||
db $00, $14, $28, $3C
|
||||
.start_offset
|
||||
..two
|
||||
dw $FF7E, $FFBC, $00BE, $FFC6
|
||||
..three
|
||||
dw $FF7C, $FF7C, $00BC, $FF86
|
||||
.increment
|
||||
db $02, $40
|
||||
|
||||
EdgePositions:
|
||||
.north
|
||||
db $01, $00 ; HC Basement
|
||||
db $02 ; Desert West Wing
|
||||
db $00, $01, $02 ; Desert Lobby
|
||||
db $00 ; Desert East Wing
|
||||
db $01, $02 ; TT
|
||||
db $00, $01 ; different TT
|
||||
.west
|
||||
db $02 ; TT Attic
|
||||
db $02, $02 ; Desert North Hall
|
||||
db $00, $02 ; HC Basement
|
||||
db $00 ; Desert East Wing
|
||||
db $02, $00 ; TT Triple
|
||||
db $02 ; TT Big Key Chest
|
||||
.south
|
||||
db $01, $00 ; HC Basement
|
||||
db $02 ; Desert West Wing
|
||||
db $00, $01, $02 ; Desert Lobby
|
||||
db $00 ; Desert East Wing
|
||||
db $01, $02 ; TT
|
||||
db $00, $01 ; different TT
|
||||
.east
|
||||
db $02 ; TT Attic
|
||||
db $02, $02 ; Desert North Hall
|
||||
db $02, $00 ; HC Basement
|
||||
db $00 ; Desert East Wing
|
||||
db $02, $00 ; TT Triple
|
||||
db $02 ; TT Big Key Chest
|
||||
|
||||
EdgeConnectionIndices:
|
||||
; North
|
||||
dw $0182, $0000
|
||||
dw $0082, $0003
|
||||
dw $0283, $0006
|
||||
dw $0084, $0009
|
||||
dw $0184, $000C
|
||||
dw $0284, $000F
|
||||
dw $0085, $0012
|
||||
dw $01DB, $0015
|
||||
dw $02DB, $0018
|
||||
dw $00DC, $001B
|
||||
dw $01DC, $001E
|
||||
|
||||
; South
|
||||
dw $0772, $0021
|
||||
dw $0672, $0024
|
||||
dw $0873, $0027
|
||||
dw $0674, $002A
|
||||
dw $0774, $002D
|
||||
dw $0874, $0030
|
||||
dw $0675, $0033
|
||||
dw $07CB, $0036
|
||||
dw $08CB, $0039
|
||||
dw $06CC, $003C
|
||||
dw $07CC, $003F
|
||||
|
||||
; West
|
||||
dw $0565, $0042
|
||||
dw $0574, $0045
|
||||
dw $0575, $0048
|
||||
dw $0582, $004B
|
||||
dw $0382, $004E
|
||||
dw $0385, $0051
|
||||
dw $05CC, $0054
|
||||
dw $03CC, $0057
|
||||
dw $05DC, $005A
|
||||
|
||||
; East
|
||||
dw $0B64, $005D
|
||||
dw $0B73, $0060
|
||||
dw $0B74, $0063
|
||||
dw $0981, $0066
|
||||
dw $0B81, $0069
|
||||
dw $0984, $006C
|
||||
dw $0BCB, $006F
|
||||
dw $09CB, $0072
|
||||
dw $0BDB, $0075
|
||||
|
||||
dw $FFFF
|
||||
|
||||
InRoomConnectionIndices:
|
||||
dw $020B, $0000
|
||||
dw $081B, $0002
|
||||
dw $023F, $0004
|
||||
dw $081F, $0006
|
||||
dw $007E, $0008
|
||||
dw $065E, $000A
|
||||
dw $0296, $000C
|
||||
dw $083D, $000E
|
||||
dw $FFFF
|
||||
38
dungeon_map/data/fall_warps.asm
Normal file
38
dungeon_map/data/fall_warps.asm
Normal file
@@ -0,0 +1,38 @@
|
||||
FallTable:
|
||||
dw $1007, $1017 ; Moldorm Arena
|
||||
dw $1017, $1027 ; Below Moldorm drop to Big Chest
|
||||
dw $101E, $103E ; IP first drop
|
||||
dw $1027, $1031 ; ToH Big Chest drop
|
||||
dw $1031, $1077 ; Second Floor ToH
|
||||
dw $1039, $1029 ; Mothula drop
|
||||
dw $103A, $100A ; Pod front drop
|
||||
dw $103D, $1096 ; GT Torches drop
|
||||
dw $104D, $10A6 ; Moldorm 2 drop
|
||||
dw $1054, $1034 ; Left side Swamp
|
||||
dw $105E, $107E ; IP drop to tall icy room
|
||||
dw $107E, $109E ; Freezors drop (to big chest)
|
||||
dw $208C, $101C ; Ice Armos drop
|
||||
dw $1097, $10D1 ; Mire Cutscene
|
||||
dw $109E, $10BE ; IP Big Chest tile (push blocks)
|
||||
dw $10CE, $10DE ; Kholdstare drop
|
||||
; db $65, $AC ; TT Attic
|
||||
; db $77, $A7 ; ToH drop to fairy room (Herapot)
|
||||
; db $A9, $89 ; EP drop to fairy room
|
||||
; db $BE, $4F ; IP drop to fairy room
|
||||
dw $FFFF
|
||||
|
||||
WarpTable:
|
||||
dw $2009, $104B ; PoD Basement (start)
|
||||
dw $100A, $1009 ; PoD Stalfos Basement
|
||||
dw $100B, $206A ; PoD Turtle Room to Boss
|
||||
dw $104B, $2009 ; PoD Basement (mimics)
|
||||
dw $207B, $209D ; GT post-compass island hardhat
|
||||
dw $207D, $109B ; GT warp maze
|
||||
dw $109D, $307B ; GT compass room
|
||||
dw $109B, $207D ; GT warp maze
|
||||
dw $10B1, $20B2 ; South of Fishbone warp
|
||||
dw $10D1, $10B1 ; Mire Big Key Chest warp
|
||||
; db $89, $A9 ; EP Fairy Room
|
||||
; db $A7, $17 ; ToH Fairy Room
|
||||
; db $4F, $BE ; IP Fairy Room
|
||||
dw $FFFF
|
||||
@@ -1,261 +1,276 @@
|
||||
db $0B ; 00 - Fighter Sword and Shield
|
||||
db $0B ; 01 - Master Sword
|
||||
db $0B ; 02 - Tempered Sword
|
||||
db $0B ; 03 - Butter Sword
|
||||
db $06 ; 04 - Fighter Shield
|
||||
db $06 ; 05 - Fire Shield
|
||||
db $06 ; 06 - Mirror Shield
|
||||
db $0B ; 07 - Fire Rod
|
||||
db $0B ; 08 - Ice Rod
|
||||
db $0B ; 09 - Hammer
|
||||
db $0B ; 0A - Hookshot
|
||||
db $0B ; 0B - Bow
|
||||
db $06 ; 0C - Boomerang
|
||||
db $0B ; 0D - Powder
|
||||
db $02 ; 0E - Bottle Refill (bee)
|
||||
db $0B ; 0F - Bombos
|
||||
db $0B ; 10 - Ether
|
||||
db $0B ; 11 - Quake
|
||||
db $0B ; 12 - Lamp
|
||||
db $06 ; 13 - Shovel
|
||||
db $0B ; 14 - Flute
|
||||
db $0B ; 15 - Somaria
|
||||
db $06 ; 16 - Bottle
|
||||
db $05 ; 17 - Heartpiece
|
||||
db $06 ; 18 - Byrna
|
||||
db $0B ; 19 - Cape
|
||||
db $0B ; 1A - Mirror
|
||||
db $0B ; 1B - Glove
|
||||
db $0B ; 1C - Mitts
|
||||
db $0B ; 1D - Book
|
||||
db $0B ; 1E - Flippers
|
||||
db $0B ; 1F - Pearl
|
||||
db $0D ; 20 - Crystal
|
||||
db $06 ; 21 - Net
|
||||
db $06 ; 22 - Blue Mail
|
||||
db $06 ; 23 - Red Mail
|
||||
db $03 ; 24 - Small Key
|
||||
db $07 ; 25 - Compass
|
||||
db $05 ; 26 - Heart Container from 4/4
|
||||
db $02 ; 27 - Bomb
|
||||
db $02 ; 28 - 3 bombs
|
||||
db $06 ; 29 - Mushroom
|
||||
db $06 ; 2A - Red boomerang
|
||||
db $06 ; 2B - Full bottle (red)
|
||||
db $06 ; 2C - Full bottle (green)
|
||||
db $06 ; 2D - Full bottle (blue)
|
||||
db $05 ; 2E - Potion refill (red)
|
||||
db $05 ; 2F - Potion refill (green)
|
||||
db $05 ; 30 - Potion refill (blue)
|
||||
db $02 ; 31 - 10 bombs
|
||||
db $09 ; 32 - Big key
|
||||
db $02 ; 33 - Map
|
||||
db $02 ; 34 - 1 rupee
|
||||
db $02 ; 35 - 5 rupees
|
||||
db $02 ; 36 - 20 rupees
|
||||
db $0A ; 37 - Green pendant
|
||||
db $0A ; 38 - Blue pendant
|
||||
db $0A ; 39 - Red pendant
|
||||
db $0B ; 3A - Tossed bow
|
||||
db $0B ; 3B - Silvers
|
||||
db $06 ; 3C - Full bottle (bee)
|
||||
db $06 ; 3D - Full bottle (fairy)
|
||||
db $05 ; 3E - Boss heart
|
||||
db $05 ; 3F - Sanc heart
|
||||
db $02 ; 40 - 100 rupees
|
||||
db $02 ; 41 - 50 rupees
|
||||
db $02 ; 42 - Heart
|
||||
db $02 ; 43 - Arrow
|
||||
db $02 ; 44 - 10 arrows
|
||||
db $02 ; 45 - Small magic
|
||||
db $02 ; 46 - 300 rupees
|
||||
db $02 ; 47 - 20 rupees green
|
||||
db $06 ; 48 - Full bottle (good bee)
|
||||
db $0B ; 49 - Tossed fighter sword
|
||||
db $0B ; 4A - Active Flute
|
||||
db $0B ; 4B - Boots
|
||||
!TIER_UNKNOWN = $01
|
||||
!TIER_JUNK = $02
|
||||
!TIER_LOW_KEY = $03
|
||||
!TIER_HEALTH = $05
|
||||
!TIER_MINOR = $06
|
||||
!TIER_MAP = $07
|
||||
!TIER_COMPASS = $08
|
||||
!TIER_SM_KEY = $09
|
||||
!TIER_BIG_KEY = $0A
|
||||
!TIER_MAJOR = $0B
|
||||
!TIER_PENDANT = $0C
|
||||
!TIER_CRYSTAL = $0D
|
||||
!TIER_TFP = $0E
|
||||
!TIER_TFORCE = $0F
|
||||
|
||||
db $06 ; 4C - Bomb capacity (50)
|
||||
db $06 ; 4D - Arrow capacity (70)
|
||||
db $06 ; 4E - 1/2 magic
|
||||
db $06 ; 4F - 1/4 magic
|
||||
db $0B ; 50 - Safe master sword
|
||||
db $06 ; 51 - Bomb capacity (+5)
|
||||
db $06 ; 52 - Bomb capacity (+10)
|
||||
db $06 ; 53 - Arrow capacity (+5)
|
||||
db $06 ; 54 - Arrow capacity (+10)
|
||||
db $02 ; 55 - Programmable item 1
|
||||
db $02 ; 56 - Programmable item 2
|
||||
db $02 ; 57 - Programmable item 3
|
||||
db $0B ; 58 - Upgrade-only silver arrows
|
||||
db $02 ; 59 - Rupoor
|
||||
db $02 ; 5A - Nothing
|
||||
db $02 ; 5B - Red clock
|
||||
db $02 ; 5C - Blue clock
|
||||
db $02 ; 5D - Green clock
|
||||
db $0B ; 5E - Progressive sword
|
||||
db $06 ; 5F - Progressive shield
|
||||
db $06 ; 60 - Progressive armor
|
||||
db $0B ; 61 - Progressive glove
|
||||
db $02 ; 62 - RNG pool item (single)
|
||||
db $02 ; 63 - RNG pool item (multi)
|
||||
db $0B ; 64 - Progressive bow
|
||||
db $0B ; 65 - Progressive bow
|
||||
db $02 ; 66 -
|
||||
db $02 ; 67 -
|
||||
db $02 ; 68 -
|
||||
db $02 ; 69 -
|
||||
db $0F ; 6A - Triforce
|
||||
db $0E ; 6B - Power star
|
||||
db $0E ; 6C - Triforce Piece
|
||||
db $02 ; 6D - Server request item
|
||||
db $02 ; 6E - Server request item (dungeon drop)
|
||||
db $02 ; 6F -
|
||||
db !TIER_MAJOR ; 00 - Fighter Sword and Shield
|
||||
db !TIER_MAJOR ; 01 - Master Sword
|
||||
db !TIER_MAJOR ; 02 - Tempered Sword
|
||||
db !TIER_MAJOR ; 03 - Butter Sword
|
||||
db !TIER_JUNK ; 04 - Fighter Shield
|
||||
db !TIER_MINOR ; 05 - Fire Shield
|
||||
db !TIER_MINOR ; 06 - Mirror Shield
|
||||
db !TIER_MAJOR ; 07 - Fire Rod
|
||||
db !TIER_MAJOR ; 08 - Ice Rod
|
||||
db !TIER_MAJOR ; 09 - Hammer
|
||||
db !TIER_MAJOR ; 0A - Hookshot
|
||||
db !TIER_MAJOR ; 0B - Bow
|
||||
db !TIER_MINOR ; 0C - Boomerang
|
||||
db !TIER_MINOR ; 0D - Powder
|
||||
db !TIER_JUNK ; 0E - Bottle Refill (bee)
|
||||
db !TIER_MAJOR ; 0F - Bombos
|
||||
db !TIER_MAJOR ; 10 - Ether
|
||||
db !TIER_MAJOR ; 11 - Quake
|
||||
db !TIER_MAJOR ; 12 - Lamp
|
||||
db !TIER_MINOR ; 13 - Shovel
|
||||
db !TIER_MAJOR ; 14 - Flute
|
||||
db !TIER_MAJOR ; 15 - Somaria
|
||||
db !TIER_MINOR ; 16 - Bottle
|
||||
db !TIER_HEALTH ; 17 - Heartpiece
|
||||
db !TIER_MINOR ; 18 - Byrna
|
||||
db !TIER_MINOR ; 19 - Cape
|
||||
db !TIER_MAJOR ; 1A - Mirror
|
||||
db !TIER_MAJOR ; 1B - Glove
|
||||
db !TIER_MAJOR ; 1C - Mitts
|
||||
db !TIER_MAJOR ; 1D - Book
|
||||
db !TIER_MAJOR ; 1E - Flippers
|
||||
db !TIER_MAJOR ; 1F - Pearl
|
||||
db !TIER_CRYSTAL ; 20 - Crystal
|
||||
db !TIER_MINOR ; 21 - Net
|
||||
db !TIER_MINOR ; 22 - Blue Mail
|
||||
db !TIER_MINOR ; 23 - Red Mail
|
||||
db !TIER_LOW_KEY ; 24 - Small Key
|
||||
db !TIER_COMPASS ; 25 - Compass
|
||||
db !TIER_HEALTH ; 26 - Heart Container from 4/4
|
||||
db !TIER_JUNK ; 27 - Bomb
|
||||
db !TIER_JUNK ; 28 - 3 bombs
|
||||
db !TIER_MINOR ; 29 - Mushroom
|
||||
db !TIER_MINOR ; 2A - Red boomerang
|
||||
db !TIER_MINOR ; 2B - Full bottle (red)
|
||||
db !TIER_MINOR ; 2C - Full bottle (green)
|
||||
db !TIER_MINOR ; 2D - Full bottle (blue)
|
||||
db !TIER_HEALTH ; 2E - Potion refill (red)
|
||||
db !TIER_HEALTH ; 2F - Potion refill (green)
|
||||
db !TIER_HEALTH ; 30 - Potion refill (blue)
|
||||
db !TIER_JUNK ; 31 - 10 bombs
|
||||
db !TIER_BIG_KEY ; 32 - Big key
|
||||
db !TIER_MAP ; 33 - Map
|
||||
db !TIER_JUNK ; 34 - 1 rupee
|
||||
db !TIER_JUNK ; 35 - 5 rupees
|
||||
db !TIER_JUNK ; 36 - 20 rupees
|
||||
db !TIER_PENDANT ; 37 - Green pendant
|
||||
db !TIER_PENDANT ; 38 - Blue pendant
|
||||
db !TIER_PENDANT ; 39 - Red pendant
|
||||
db !TIER_MAJOR ; 3A - Tossed bow
|
||||
db !TIER_MAJOR ; 3B - Silvers
|
||||
db !TIER_MINOR ; 3C - Full bottle (bee)
|
||||
db !TIER_MINOR ; 3D - Full bottle (fairy)
|
||||
db !TIER_HEALTH ; 3E - Boss heart
|
||||
db !TIER_HEALTH ; 3F - Sanc heart
|
||||
db !TIER_JUNK ; 40 - 100 rupees
|
||||
db !TIER_JUNK ; 41 - 50 rupees
|
||||
db !TIER_JUNK ; 42 - Heart
|
||||
db !TIER_JUNK ; 43 - Arrow
|
||||
db !TIER_JUNK ; 44 - 10 arrows
|
||||
db !TIER_JUNK ; 45 - Small magic
|
||||
db !TIER_JUNK ; 46 - 300 rupees
|
||||
db !TIER_JUNK ; 47 - 20 rupees green
|
||||
db !TIER_MINOR ; 48 - Full bottle (good bee)
|
||||
db !TIER_MAJOR ; 49 - Tossed fighter sword
|
||||
db !TIER_MAJOR ; 4A - Active Flute
|
||||
db !TIER_MAJOR ; 4B - Boots
|
||||
|
||||
db $02 ; 70 - Map of Light World
|
||||
db $02 ; 71 - Map of Dark World
|
||||
db $02 ; 72 - Map of Ganon's Tower
|
||||
db $02 ; 73 - Map of Turtle Rock
|
||||
db $02 ; 74 - Map of Thieves' Town
|
||||
db $02 ; 75 - Map of Tower of Hera
|
||||
db $02 ; 76 - Map of Ice Palace
|
||||
db $02 ; 77 - Map of Skull Woods
|
||||
db $02 ; 78 - Map of Misery Mire
|
||||
db $02 ; 79 - Map of Dark Palace
|
||||
db $02 ; 7A - Map of Swamp Palace
|
||||
db $02 ; 7B - Map of Agahnim's Tower
|
||||
db $02 ; 7C - Map of Desert Palace
|
||||
db $02 ; 7D - Map of Eastern Palace
|
||||
db $02 ; 7E - Map of Hyrule Castle
|
||||
db $02 ; 7F - Map of Sewers
|
||||
db !TIER_MINOR ; 4C - Bomb capacity (50)
|
||||
db !TIER_MINOR ; 4D - Arrow capacity (70)
|
||||
db !TIER_MINOR ; 4E - 1/2 magic
|
||||
db !TIER_MINOR ; 4F - 1/4 magic
|
||||
db !TIER_MAJOR ; 50 - Safe master sword
|
||||
db !TIER_MINOR ; 51 - Bomb capacity (+5)
|
||||
db !TIER_MINOR ; 52 - Bomb capacity (+10)
|
||||
db !TIER_MINOR ; 53 - Arrow capacity (+5)
|
||||
db !TIER_MINOR ; 54 - Arrow capacity (+10)
|
||||
db !TIER_JUNK ; 55 - Programmable item 1
|
||||
db !TIER_JUNK ; 56 - Programmable item 2
|
||||
db !TIER_JUNK ; 57 - Programmable item 3
|
||||
db !TIER_MAJOR ; 58 - Upgrade-only silver arrows
|
||||
db !TIER_JUNK ; 59 - Rupoor
|
||||
db !TIER_JUNK ; 5A - Nothing
|
||||
db !TIER_JUNK ; 5B - Red clock
|
||||
db !TIER_JUNK ; 5C - Blue clock
|
||||
db !TIER_JUNK ; 5D - Green clock
|
||||
db !TIER_MAJOR ; 5E - Progressive sword
|
||||
db !TIER_MINOR ; 5F - Progressive shield
|
||||
db !TIER_MINOR ; 60 - Progressive armor
|
||||
db !TIER_MAJOR ; 61 - Progressive glove
|
||||
db !TIER_JUNK ; 62 - RNG pool item (single)
|
||||
db !TIER_JUNK ; 63 - RNG pool item (multi)
|
||||
db !TIER_MAJOR ; 64 - Progressive bow
|
||||
db !TIER_MAJOR ; 65 - Progressive bow
|
||||
db !TIER_JUNK ; 66 -
|
||||
db !TIER_JUNK ; 67 -
|
||||
db !TIER_JUNK ; 68 -
|
||||
db !TIER_JUNK ; 69 -
|
||||
db !TIER_TFORCE ; 6A - Triforce
|
||||
db !TIER_TFP ; 6B - Power star
|
||||
db !TIER_TFP ; 6C - Triforce Piece
|
||||
db !TIER_JUNK ; 6D - Server request item
|
||||
db !TIER_JUNK ; 6E - Server request item (dungeon drop)
|
||||
db !TIER_JUNK ; 6F -
|
||||
|
||||
db $07 ; 80 - Compass of Light World
|
||||
db $07 ; 81 - Compass of Dark World
|
||||
db $07 ; 82 - Compass of Ganon's Tower
|
||||
db $07 ; 83 - Compass of Turtle Rock
|
||||
db $07 ; 84 - Compass of Thieves' Town
|
||||
db $07 ; 85 - Compass of Tower of Hera
|
||||
db $07 ; 86 - Compass of Ice Palace
|
||||
db $07 ; 87 - Compass of Skull Woods
|
||||
db $07 ; 88 - Compass of Misery Mire
|
||||
db $07 ; 89 - Compass of Dark Palace
|
||||
db $07 ; 8A - Compass of Swamp Palace
|
||||
db $07 ; 8B - Compass of Agahnim's Tower
|
||||
db $07 ; 8C - Compass of Desert Palace
|
||||
db $07 ; 8D - Compass of Eastern Palace
|
||||
db $07 ; 8E - Compass of Hyrule Castle
|
||||
db $07 ; 8F - Compass of Sewers
|
||||
db !TIER_MAP ; 70 - Map of Light World
|
||||
db !TIER_MAP ; 71 - Map of Dark World
|
||||
db !TIER_MAP ; 72 - Map of Ganon's Tower
|
||||
db !TIER_MAP ; 73 - Map of Turtle Rock
|
||||
db !TIER_MAP ; 74 - Map of Thieves' Town
|
||||
db !TIER_MAP ; 75 - Map of Tower of Hera
|
||||
db !TIER_MAP ; 76 - Map of Ice Palace
|
||||
db !TIER_MAP ; 77 - Map of Skull Woods
|
||||
db !TIER_MAP ; 78 - Map of Misery Mire
|
||||
db !TIER_MAP ; 79 - Map of Dark Palace
|
||||
db !TIER_MAP ; 7A - Map of Swamp Palace
|
||||
db !TIER_MAP ; 7B - Map of Agahnim's Tower
|
||||
db !TIER_MAP ; 7C - Map of Desert Palace
|
||||
db !TIER_MAP ; 7D - Map of Eastern Palace
|
||||
db !TIER_MAP ; 7E - Map of Hyrule Castle
|
||||
db !TIER_MAP ; 7F - Map of Sewers
|
||||
|
||||
db $09 ; 90 - Skull key
|
||||
db $09 ; 91 - Reserved
|
||||
db $09 ; 92 - Big key of Ganon's Tower
|
||||
db $09 ; 93 - Big key of Turtle Rock
|
||||
db $09 ; 94 - Big key of Thieves' Town
|
||||
db $09 ; 95 - Big key of Tower of Hera
|
||||
db $09 ; 96 - Big key of Ice Palace
|
||||
db $09 ; 97 - Big key of Skull Woods
|
||||
db $09 ; 98 - Big key of Misery Mire
|
||||
db $09 ; 99 - Big key of Dark Palace
|
||||
db $09 ; 9A - Big key of Swamp Palace
|
||||
db $09 ; 9B - Big key of Agahnim's Tower
|
||||
db $09 ; 9C - Big key of Desert Palace
|
||||
db $09 ; 9D - Big key of Eastern Palace
|
||||
db $09 ; 9E - Big key of Hyrule Castle
|
||||
db $09 ; 9F - Big key of Sewers
|
||||
db !TIER_COMPASS ; 80 - Compass of Light World
|
||||
db !TIER_COMPASS ; 81 - Compass of Dark World
|
||||
db !TIER_COMPASS ; 82 - Compass of Ganon's Tower
|
||||
db !TIER_COMPASS ; 83 - Compass of Turtle Rock
|
||||
db !TIER_COMPASS ; 84 - Compass of Thieves' Town
|
||||
db !TIER_COMPASS ; 85 - Compass of Tower of Hera
|
||||
db !TIER_COMPASS ; 86 - Compass of Ice Palace
|
||||
db !TIER_COMPASS ; 87 - Compass of Skull Woods
|
||||
db !TIER_COMPASS ; 88 - Compass of Misery Mire
|
||||
db !TIER_COMPASS ; 89 - Compass of Dark Palace
|
||||
db !TIER_COMPASS ; 8A - Compass of Swamp Palace
|
||||
db !TIER_COMPASS ; 8B - Compass of Agahnim's Tower
|
||||
db !TIER_COMPASS ; 8C - Compass of Desert Palace
|
||||
db !TIER_COMPASS ; 8D - Compass of Eastern Palace
|
||||
db !TIER_COMPASS ; 8E - Compass of Hyrule Castle
|
||||
db !TIER_COMPASS ; 8F - Compass of Sewers
|
||||
|
||||
db $08 ; A0 - Small key of Sewers
|
||||
db $08 ; A1 - Small key of Hyrule Castle
|
||||
db $08 ; A2 - Small key of Eastern Palace
|
||||
db $08 ; A3 - Small key of Desert Palace
|
||||
db $08 ; A4 - Small key of Agahnim's Tower
|
||||
db $08 ; A5 - Small key of Swamp Palace
|
||||
db $08 ; A6 - Small key of Dark Palace
|
||||
db $08 ; A7 - Small key of Misery Mire
|
||||
db $08 ; A8 - Small key of Skull Woods
|
||||
db $08 ; A9 - Small key of Ice Palace
|
||||
db $08 ; AA - Small key of Tower of Hera
|
||||
db $08 ; AB - Small key of Thieves' Town
|
||||
db $08 ; AC - Small key of Turtle Rock
|
||||
db $08 ; AD - Small key of Ganon's Tower
|
||||
db $02 ; AE - Reserved
|
||||
db $03 ; AF - Generic small key
|
||||
db $0D ; B0 - Crystal 6
|
||||
db $0D ; B1 - Crystal 1
|
||||
db $0D ; B2 - Crystal 5
|
||||
db $0D ; B3 - Crystal 7
|
||||
db $0D ; B4 - Crystal 2
|
||||
db $0D ; B5 - Crystal 4
|
||||
db $0D ; B6 - Crystal 3
|
||||
db $02 ; B7 - Reserved
|
||||
db $02 ; B8 -
|
||||
db $02 ; B9 -
|
||||
db $02 ; BA -
|
||||
db $02 ; BB -
|
||||
db $02 ; BC -
|
||||
db $02 ; BD -
|
||||
db $02 ; BE -
|
||||
db $02 ; BF -
|
||||
db $02 ; C0 -
|
||||
db $02 ; C1 -
|
||||
db $02 ; C2 -
|
||||
db $02 ; C3 -
|
||||
db $02 ; C4 -
|
||||
db $02 ; C5 -
|
||||
db $02 ; C6 -
|
||||
db $02 ; C7 -
|
||||
db $02 ; C8 -
|
||||
db $02 ; C9 -
|
||||
db $02 ; CA -
|
||||
db $02 ; CB -
|
||||
db $02 ; CC -
|
||||
db $02 ; CD -
|
||||
db $02 ; CE -
|
||||
db $02 ; CF -
|
||||
db $02 ; D0 - Bee trap
|
||||
db $02 ; D1 - Apples
|
||||
db $02 ; D2 - Fairy
|
||||
db $02 ; D3 - Chicken
|
||||
db $02 ; D4 - Big Magic
|
||||
db $02 ; D5 - 5 Arrows
|
||||
db $02 ; D6 - Good Bee
|
||||
db $02 ; D7 -
|
||||
db $02 ; D8 -
|
||||
db $02 ; D9 -
|
||||
db $02 ; DA -
|
||||
db $02 ; DB -
|
||||
db $02 ; DC -
|
||||
db $02 ; DD -
|
||||
db $02 ; DE -
|
||||
db $02 ; DF -
|
||||
db $02 ; E0 -
|
||||
db $02 ; E1 -
|
||||
db $02 ; E2 -
|
||||
db $02 ; E3 -
|
||||
db $02 ; E4 -
|
||||
db $02 ; E5 -
|
||||
db $02 ; E6 -
|
||||
db $02 ; E7 -
|
||||
db $02 ; E8 -
|
||||
db $02 ; E9 -
|
||||
db $02 ; EA -
|
||||
db $02 ; EB -
|
||||
db $02 ; EC -
|
||||
db $02 ; ED -
|
||||
db $02 ; EE -
|
||||
db $02 ; EF -
|
||||
db $02 ; F0 -
|
||||
db $02 ; F1 -
|
||||
db $02 ; F2 -
|
||||
db $02 ; F3 -
|
||||
db $02 ; F4 -
|
||||
db $02 ; F5 -
|
||||
db $02 ; F6 -
|
||||
db $02 ; F7 -
|
||||
db $02 ; F8 -
|
||||
db $02 ; F9 -
|
||||
db $02 ; FA -
|
||||
db $02 ; FB -
|
||||
db $02 ; FC -
|
||||
db $02 ; FD -
|
||||
db $02 ; FE - Server request (async)
|
||||
db $02 ; FF -
|
||||
db !TIER_BIG_KEY ; 90 - Skull key
|
||||
db !TIER_BIG_KEY ; 91 - Reserved
|
||||
db !TIER_BIG_KEY ; 92 - Big key of Ganon's Tower
|
||||
db !TIER_BIG_KEY ; 93 - Big key of Turtle Rock
|
||||
db !TIER_BIG_KEY ; 94 - Big key of Thieves' Town
|
||||
db !TIER_BIG_KEY ; 95 - Big key of Tower of Hera
|
||||
db !TIER_BIG_KEY ; 96 - Big key of Ice Palace
|
||||
db !TIER_BIG_KEY ; 97 - Big key of Skull Woods
|
||||
db !TIER_BIG_KEY ; 98 - Big key of Misery Mire
|
||||
db !TIER_BIG_KEY ; 99 - Big key of Dark Palace
|
||||
db !TIER_BIG_KEY ; 9A - Big key of Swamp Palace
|
||||
db !TIER_BIG_KEY ; 9B - Big key of Agahnim's Tower
|
||||
db !TIER_BIG_KEY ; 9C - Big key of Desert Palace
|
||||
db !TIER_BIG_KEY ; 9D - Big key of Eastern Palace
|
||||
db !TIER_BIG_KEY ; 9E - Big key of Hyrule Castle
|
||||
db !TIER_BIG_KEY ; 9F - Big key of Sewers
|
||||
|
||||
db !TIER_SM_KEY ; A0 - Small key of Sewers
|
||||
db !TIER_SM_KEY ; A1 - Small key of Hyrule Castle
|
||||
db !TIER_SM_KEY ; A2 - Small key of Eastern Palace
|
||||
db !TIER_SM_KEY ; A3 - Small key of Desert Palace
|
||||
db !TIER_SM_KEY ; A4 - Small key of Agahnim's Tower
|
||||
db !TIER_SM_KEY ; A5 - Small key of Swamp Palace
|
||||
db !TIER_SM_KEY ; A6 - Small key of Dark Palace
|
||||
db !TIER_SM_KEY ; A7 - Small key of Misery Mire
|
||||
db !TIER_SM_KEY ; A8 - Small key of Skull Woods
|
||||
db !TIER_SM_KEY ; A9 - Small key of Ice Palace
|
||||
db !TIER_SM_KEY ; AA - Small key of Tower of Hera
|
||||
db !TIER_SM_KEY ; AB - Small key of Thieves' Town
|
||||
db !TIER_SM_KEY ; AC - Small key of Turtle Rock
|
||||
db !TIER_SM_KEY ; AD - Small key of Ganon's Tower
|
||||
db !TIER_JUNK ; AE - Reserved
|
||||
db !TIER_LOW_KEY ; AF - Generic small key
|
||||
db !TIER_CRYSTAL ; B0 - Crystal 6
|
||||
db !TIER_CRYSTAL ; B1 - Crystal 1
|
||||
db !TIER_CRYSTAL ; B2 - Crystal 5
|
||||
db !TIER_CRYSTAL ; B3 - Crystal 7
|
||||
db !TIER_CRYSTAL ; B4 - Crystal 2
|
||||
db !TIER_CRYSTAL ; B5 - Crystal 4
|
||||
db !TIER_CRYSTAL ; B6 - Crystal 3
|
||||
db !TIER_JUNK ; B7 - Reserved
|
||||
db !TIER_JUNK ; B8 -
|
||||
db !TIER_JUNK ; B9 -
|
||||
db !TIER_JUNK ; BA -
|
||||
db !TIER_JUNK ; BB -
|
||||
db !TIER_JUNK ; BC -
|
||||
db !TIER_JUNK ; BD -
|
||||
db !TIER_JUNK ; BE -
|
||||
db !TIER_JUNK ; BF -
|
||||
db !TIER_JUNK ; C0 -
|
||||
db !TIER_JUNK ; C1 -
|
||||
db !TIER_JUNK ; C2 -
|
||||
db !TIER_JUNK ; C3 -
|
||||
db !TIER_JUNK ; C4 -
|
||||
db !TIER_JUNK ; C5 -
|
||||
db !TIER_JUNK ; C6 -
|
||||
db !TIER_JUNK ; C7 -
|
||||
db !TIER_JUNK ; C8 -
|
||||
db !TIER_JUNK ; C9 -
|
||||
db !TIER_JUNK ; CA -
|
||||
db !TIER_JUNK ; CB -
|
||||
db !TIER_JUNK ; CC -
|
||||
db !TIER_JUNK ; CD -
|
||||
db !TIER_JUNK ; CE -
|
||||
db !TIER_JUNK ; CF -
|
||||
db !TIER_JUNK ; D0 - Bee trap
|
||||
db !TIER_JUNK ; D1 - Apples
|
||||
db !TIER_JUNK ; D2 - Fairy
|
||||
db !TIER_JUNK ; D3 - Chicken
|
||||
db !TIER_JUNK ; D4 - Big Magic
|
||||
db !TIER_JUNK ; D5 - 5 Arrows
|
||||
db !TIER_JUNK ; D6 - Good Bee
|
||||
db !TIER_JUNK ; D7 -
|
||||
db !TIER_JUNK ; D8 -
|
||||
db !TIER_JUNK ; D9 -
|
||||
db !TIER_JUNK ; DA -
|
||||
db !TIER_JUNK ; DB -
|
||||
db !TIER_JUNK ; DC -
|
||||
db !TIER_JUNK ; DD -
|
||||
db !TIER_JUNK ; DE -
|
||||
db !TIER_JUNK ; DF -
|
||||
db !TIER_JUNK ; E0 -
|
||||
db !TIER_JUNK ; E1 -
|
||||
db !TIER_JUNK ; E2 -
|
||||
db !TIER_JUNK ; E3 -
|
||||
db !TIER_JUNK ; E4 -
|
||||
db !TIER_JUNK ; E5 -
|
||||
db !TIER_JUNK ; E6 -
|
||||
db !TIER_JUNK ; E7 -
|
||||
db !TIER_JUNK ; E8 -
|
||||
db !TIER_JUNK ; E9 -
|
||||
db !TIER_JUNK ; EA -
|
||||
db !TIER_JUNK ; EB -
|
||||
db !TIER_JUNK ; EC -
|
||||
db !TIER_JUNK ; ED -
|
||||
db !TIER_JUNK ; EE -
|
||||
db !TIER_JUNK ; EF -
|
||||
db !TIER_JUNK ; F0 -
|
||||
db !TIER_JUNK ; F1 -
|
||||
db !TIER_JUNK ; F2 -
|
||||
db !TIER_JUNK ; F3 -
|
||||
db !TIER_JUNK ; F4 -
|
||||
db !TIER_JUNK ; F5 -
|
||||
db !TIER_JUNK ; F6 -
|
||||
db !TIER_JUNK ; F7 -
|
||||
db !TIER_JUNK ; F8 -
|
||||
db !TIER_JUNK ; F9 -
|
||||
db !TIER_JUNK ; FA -
|
||||
db !TIER_JUNK ; FB -
|
||||
db !TIER_JUNK ; FC -
|
||||
db !TIER_JUNK ; FD -
|
||||
db !TIER_JUNK ; FE - Server request (async)
|
||||
db !TIER_JUNK ; FF -
|
||||
|
||||
87
dungeon_map/data/spiral_stairs.asm
Normal file
87
dungeon_map/data/spiral_stairs.asm
Normal file
@@ -0,0 +1,87 @@
|
||||
SpiralPropsIndex:
|
||||
db $00, $04, $07, $00, $01, $00, $00, $0D, $00, $10, $04, $00, $15, $00, $0A, $00
|
||||
db $00, $07, $00, $00, $00, $01, $07, $1C, $00, $00, $21, $00, $26, $07, $0A, $00
|
||||
db $00, $00, $00, $00, $00, $00, $29, $30, $01, $00, $00, $00, $00, $00, $00, $00
|
||||
db $00, $35, $00, $00, $3A, $00, $00, $00, $01, $00, $04, $00, $00, $00, $00, $3D
|
||||
db $40, $07, $07, $00, $00, $01, $00, $00, $00, $00, $43, $00, $07, $07, $07, $00
|
||||
db $00, $00, $00, $01, $48, $00, $00, $00, $00, $00, $00, $00, $07, $07, $00, $4B
|
||||
db $00, $00, $00, $01, $50, $00, $07, $00, $00, $00, $53, $01, $01, $00, $58, $00
|
||||
; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||||
db $5B, $01, $04, $00, $00, $00, $60, $67, $00, $00, $00, $00, $00, $00, $00, $6E
|
||||
db $01, $00, $00, $00, $00, $00, $00, $71, $00, $00, $00, $00, $76, $00, $04, $00
|
||||
db $00, $07, $00, $04, $00, $00, $00, $01, $7D, $0A, $00, $00, $00, $00, $04, $00
|
||||
db $01, $00, $04, $00, $00, $01, $07, $00, $00, $00, $00, $0A, $00, $00, $07, $00
|
||||
db $80, $00, $00, $00, $00, $01, $01, $00, $00, $00, $00, $00, $01, $00, $07, $00
|
||||
db $85, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
||||
db $8A, $92, $8F, $00, $00, $00, $00, $00, $00, $00, $0A, $00, $00, $00, $00, $00
|
||||
db $04
|
||||
|
||||
SpiralProps:
|
||||
db $00 ;null row
|
||||
db $01, $00, $00 ; ($01) Single Top-Left Staircase
|
||||
db $01, $00, $01 ; ($04) Single Top-Middle Staircase
|
||||
db $01, $00, $02 ; ($07) Single Top-Right Staircase
|
||||
db $01, $00, $05 ; ($0A) Single Staircase at Top of Bottom Left Quadrant
|
||||
|
||||
db $01, $00, $04 ; ($0D) Moldorm
|
||||
db $02, $01, $00, $00, $02 ; ($10) Pod Basement
|
||||
db $03, $01, $0A, $02, $01, $00, $0B ; ($15) GT Entrance
|
||||
db $02, $00, $03, $01, $04 ; ($1C) Hera Below Moldorm
|
||||
db $02, $00, $01, $01, $0B ; ($21) PoD Bridge
|
||||
db $01, $00, $08 ; ($26) GT Ice Armos
|
||||
db $03, $00, $01, $01, $0B, $02, $09 ; ($29) Swamp Statue
|
||||
db $02, $01, $03, $00, $04 ; ($30) Hera Big Chest
|
||||
db $02, $00, $04, $02, $09 ; ($35) Hera Startiles (middle value unused)
|
||||
db $01, $00, $08 ; ($3A) West Swamp
|
||||
db $01, $00, $05 ; ($3D) Ice Hamlift
|
||||
db $01, $00, $07 ; ($40) Aga Guards
|
||||
db $02, $01, $00, $00, $02 ; ($43) Pod Entrance
|
||||
db $01, $00, $08 ; ($48) Swamp Attic
|
||||
db $02, $03, $0C, $04, $06 ; ($4B) Ice U (1st three values unused)
|
||||
db $01, $00, $05 ; ($50) TT Attic Left
|
||||
db $02, $00, $01, $01, $0B ; ($53) Pod Rupees
|
||||
db $01, $00, $04 ; ($58) Ice Gators
|
||||
db $02, $01, $0A, $02, $01 ; ($5B) HC Tiny (first value placeholder)
|
||||
db $03, $00, $01, $01, $0B, $02, $09 ; ($60) Swamp Sunken
|
||||
db $03, $01, $00, $03, $08, $02, $09 ; ($67) Hera Entrance (first value unused)
|
||||
db $01, $00, $08 ; ($6E) Ice Hookshot
|
||||
db $02, $01, $00, $03, $08 ; ($71) Hera Basement (first and third values unused)
|
||||
db $03, $01, $00, $00, $02, $03, $08 ; ($76) GT Circle (third value unused)
|
||||
db $01, $00, $07 ; ($7D) Mire Entrance
|
||||
db $02, $00, $02, $02, $09 ; ($80) Tower Usains (2nd value unused)
|
||||
db $02, $00, $02, $02, $09 ; ($85) Tower Dark2 (2nd value unused)
|
||||
db $02, $00, $02, $02, $09 ; ($8A) Tower Dark1 (2nd value unused)
|
||||
db $01, $00, $09 ; ($8F) Mire2
|
||||
db $01, $00, $0A ; ($92) Mire south of Torch Room
|
||||
|
||||
SpiralLabelOffsets:
|
||||
db 1, -9
|
||||
db 5, -9
|
||||
db 9, -9
|
||||
db -6, -1
|
||||
db 15, -1
|
||||
db 1, -1
|
||||
db 5, -1
|
||||
db 9, -1
|
||||
db -6, 7
|
||||
db 15, 7
|
||||
db -3, -9
|
||||
db 13, -9
|
||||
db -3, -1
|
||||
db 13, -1
|
||||
|
||||
SpiralLabelQuadrantMasks:
|
||||
dw $0008
|
||||
dw $000C
|
||||
dw $0004
|
||||
dw $0008
|
||||
dw $0004
|
||||
dw $0002
|
||||
dw $0003
|
||||
dw $0001
|
||||
dw $0002
|
||||
dw $0001
|
||||
dw $0008
|
||||
dw $0004
|
||||
dw $0002
|
||||
dw $0001
|
||||
571
dungeon_map/data/split_room.asm
Normal file
571
dungeon_map/data/split_room.asm
Normal file
@@ -0,0 +1,571 @@
|
||||
IncomingDoorMap:
|
||||
; north
|
||||
db $06, $07, $08
|
||||
; west
|
||||
db $09, $0A, $0B
|
||||
; south
|
||||
db $00, $01, $02
|
||||
; east
|
||||
db $03, $04, $05
|
||||
|
||||
macro d(label)
|
||||
dw <label>-SplitRooms
|
||||
endmacro
|
||||
|
||||
macro sq(byte)
|
||||
db <byte>
|
||||
endmacro
|
||||
|
||||
SplitRooms:
|
||||
; 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no)
|
||||
%d(.no) : %d(.09) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no)
|
||||
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.14) : %d(.no) : %d(.no) : %d(.no)
|
||||
%d(.no) : %d(.no) : %d(.1a) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no)
|
||||
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no)
|
||||
%d(.no) : %d(.no) : %d(.2a) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no)
|
||||
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.35) : %d(.36) : %d(.37)
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no)
|
||||
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no)
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no)
|
||||
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.57)
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no)
|
||||
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no)
|
||||
%d(.no) : %d(.no) : %d(.6a) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no)
|
||||
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.75) : %d(.no) : %d(.no)
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.7b) : %d(.7c) : %d(.7d) : %d(.no) : %d(.no)
|
||||
|
||||
; 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F
|
||||
%d(.no) : %d(.no) : %d(.82) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.87)
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.8c) : %d(.no) : %d(.no) : %d(.no)
|
||||
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no)
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.9d) : %d(.no) : %d(.no)
|
||||
|
||||
%d(.no) : %d(.no) : %d(.a2) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no)
|
||||
%d(.no) : %d(.a9) : %d(.aa) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no)
|
||||
|
||||
%d(.no) : %d(.no) : %d(.b2) : %d(.no) : %d(.no) : %d(.no) : %d(.b6) : %d(.no)
|
||||
%d(.no) : %d(.b9) : %d(.no) : %d(.no) : %d(.bc) : %d(.no) : %d(.no) : %d(.no)
|
||||
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.c7)
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.no)
|
||||
|
||||
%d(.no) : %d(.d1) : %d(.no) : %d(.no) : %d(.no) : %d(.no) : %d(.d6) : %d(.no)
|
||||
%d(.no) : %d(.no) : %d(.no) : %d(.db) : %d(.no) : %d(.no) : %d(.no) : %d(.no)
|
||||
|
||||
%d(.no)
|
||||
|
||||
.no
|
||||
db $00
|
||||
|
||||
.no_items
|
||||
db $FF
|
||||
|
||||
.09
|
||||
db $01
|
||||
%sq($04)
|
||||
%d(..areas) : %d(.no_items) : %d(..stairs)
|
||||
%d(.no_items) : %d(.no_items) : %d(..enemies)
|
||||
..areas
|
||||
db $03, $80, $FF, $00, $80
|
||||
db $FF
|
||||
..stairs
|
||||
db $01
|
||||
db $FF
|
||||
..enemies
|
||||
db $02
|
||||
db $FF
|
||||
|
||||
.14
|
||||
db $02
|
||||
%sq($00)
|
||||
%d(..areas3) : %d(..doors3) : %d(.no_items)
|
||||
%d(.no_items) : %d(.no_items) : %d(.no_items)
|
||||
%sq($00)
|
||||
%d(..areas2) : %d(..doors2) : %d(.no_items)
|
||||
%d(.no_items) : %d(.no_items) : %d(.no_items)
|
||||
..areas3
|
||||
db $03, $C0, $FF, $00, $50
|
||||
db $03, $00, $28, $30, $50
|
||||
db $03, $30, $50, $D0, $FF
|
||||
db $FF
|
||||
..doors3
|
||||
db $03, $06, $09
|
||||
db $FF
|
||||
..areas2
|
||||
db $03, $B0, $D0, $D0, $FF
|
||||
db $03, $30, $50, $00, $28
|
||||
db $FF
|
||||
..doors2
|
||||
db $00, $08
|
||||
db $FF
|
||||
|
||||
.1a ; PoD Big Chest (2) // Falling bridge and such (1)
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(..chests) : %d(.no_items) : %d(.no_items)
|
||||
..areas
|
||||
db $03, $00, $2C, $70, $98
|
||||
db $FF
|
||||
..doors
|
||||
db $04
|
||||
db $FF
|
||||
..chests
|
||||
db $00
|
||||
db $FF
|
||||
|
||||
.2a ; PoD Arena Right-Side Chest (2) // Arena (1)
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(..chests) : %d(.no_items) : %d(.no_items)
|
||||
..areas
|
||||
db $03, $D8, $FF, $A8, $C8
|
||||
db $FF
|
||||
..doors
|
||||
db $0B
|
||||
db $FF
|
||||
..chests
|
||||
db $00
|
||||
db $FF
|
||||
|
||||
.35 ; Swamp BK Chest (2) // Swamp second trench (1)
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(..chests) : %d(..pots) : %d(.no_items)
|
||||
..areas
|
||||
db $03, $00, $70, $00, $80
|
||||
db $FF
|
||||
..doors
|
||||
db $03
|
||||
db $FF
|
||||
..chests
|
||||
db $00
|
||||
db $FF
|
||||
..pots
|
||||
db $01, $02, $03, $04, $05
|
||||
db $FF
|
||||
|
||||
.36 ; Swamp Big Lobby (1) // Tiny Top-Right Blocked Corner (2)
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(.no_items) : %d(..pots) : %d(.no_items)
|
||||
..areas
|
||||
db $03, $D4, $FF, $00, $48
|
||||
db $FF
|
||||
..doors
|
||||
db $09
|
||||
db $FF
|
||||
..pots
|
||||
db $00, $01
|
||||
db $FF
|
||||
|
||||
.37 ; Swamp Second Chest (2) // Swamp first trench (1)
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(..chests) : %d(.no_items) : %d(..enemies)
|
||||
..areas
|
||||
db $03, $90, $FF, $00, $80
|
||||
db $FF
|
||||
..doors
|
||||
db $09
|
||||
db $FF
|
||||
..chests
|
||||
db $00
|
||||
db $FF
|
||||
..enemies
|
||||
db $02, $03
|
||||
db $FF
|
||||
|
||||
.57 ; SW pot cage (2) // middle section (1)
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(..chests) : %d(..pots) : %d(..enemies)
|
||||
..areas
|
||||
db $03, $80, $FF, $80, $FF
|
||||
db $FF
|
||||
..doors
|
||||
db $08, $0B
|
||||
db $FF
|
||||
..chests
|
||||
db $01
|
||||
db $FF
|
||||
..pots
|
||||
db $02, $03, $04, $05
|
||||
db $FF
|
||||
..enemies
|
||||
db $08, $09, $0A, $0B
|
||||
db $FF
|
||||
|
||||
.6a ; pre-helmasaur-king (2) // PoD rupee basement (1)
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(.no_items) : %d(.no_items) : %d(..enemies)
|
||||
..areas
|
||||
db $03, $B4, $C4, $00, $B4
|
||||
db $03, $A8, $D0, $B0, $D0
|
||||
db $FF
|
||||
..doors
|
||||
db $02
|
||||
db $FF
|
||||
..enemies
|
||||
db $00, $01, $04, $05
|
||||
db $FF
|
||||
|
||||
.74 ; desert north -- trapped area (2) // everything else (1)
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(.no_items) : %d(.no_items) : %d(..enemies)
|
||||
..areas
|
||||
db $03, $4C, $C4, $CC, $FF
|
||||
db $FF
|
||||
..doors
|
||||
db $07
|
||||
db $FF
|
||||
..enemies
|
||||
db $06, $07
|
||||
db $FF
|
||||
|
||||
.75 ; desert cannonball (2) // desert northeast + trap room (1)
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items) : %d(..chests) : %d(.no_items) : %d(..enemies)
|
||||
..areas
|
||||
db $03, $80, $FF, $00, $FF
|
||||
db $FF
|
||||
..doors
|
||||
db $08
|
||||
db $FF
|
||||
..chests
|
||||
db $00
|
||||
db $FF
|
||||
..enemies
|
||||
db $06, $07
|
||||
db $FF
|
||||
|
||||
.7b ; GT post-compass (3) // island hardhat (2) // DMs room (1)
|
||||
db $02
|
||||
%sq($00)
|
||||
%d(..areas3) : %d(..doors3) : %d(.no_items)
|
||||
%d(.no_items) : %d(..pots3) : %d(..enemies3)
|
||||
%sq($00)
|
||||
%d(..areas2) : %d(..doors2) : %d(.no_items)
|
||||
%d(.no_items) : %d(.no_items) : %d(..enemies2)
|
||||
|
||||
..areas3
|
||||
db $03, $00, $FF, $00, $80
|
||||
db $FF
|
||||
..doors3
|
||||
db $09
|
||||
db $FF
|
||||
..pots3
|
||||
db $00, $01, $02, $03, $04
|
||||
db $FF
|
||||
..enemies3
|
||||
db $00, $01
|
||||
db $FF
|
||||
|
||||
..areas2
|
||||
db $03, $80, $FF, $80, $FF
|
||||
db $FF
|
||||
..doors2
|
||||
db $0B
|
||||
db $FF
|
||||
..enemies2
|
||||
db $06, $07
|
||||
db $FF
|
||||
|
||||
.7c ; GT falling bridge // rando room
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(.no_items) : %d(..pots) : %d(..enemies)
|
||||
..areas
|
||||
db $03, $00, $80, $00, $FF
|
||||
db $FF
|
||||
..doors
|
||||
db $03, $05
|
||||
db $FF
|
||||
..pots
|
||||
db $00, $01, $02, $03
|
||||
db $FF
|
||||
..enemies
|
||||
db $01, $02, $03, $04
|
||||
db $FF
|
||||
|
||||
.7d ; GT warp maze (section next to rando room)
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(..chests) : %d(..pots) : %d(..enemies)
|
||||
..areas
|
||||
db $03, $00, $FF, $00, $80
|
||||
db $03, $00, $80, $80, $FF
|
||||
db $03, $CA, $DA, $9A, $A6
|
||||
db $FF
|
||||
..doors
|
||||
db $05
|
||||
db $FF
|
||||
..chests
|
||||
db $00
|
||||
db $FF
|
||||
..pots
|
||||
db $00, $01, $02, $03
|
||||
db $FF
|
||||
..enemies
|
||||
db $00, $01, $02, $03, $09
|
||||
db $FF
|
||||
|
||||
.82 ; HC Basement (1) + catwalk (2)
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(.no_items) : %d(.no_items) : %d(.no_items)
|
||||
..areas
|
||||
db $03, $00, $20, $00, $50
|
||||
db $FF
|
||||
..doors
|
||||
db $00, $03
|
||||
db $FF
|
||||
|
||||
.87 ; Hera basement: cage (0) // torches (1)
|
||||
db $01
|
||||
%sq($08)
|
||||
%d(..areas) : %d(.no_items) : %d(..stairs)
|
||||
%d(..chests) : %d(..pots) : %d(..enemies)
|
||||
..areas
|
||||
db $03, $00, $FF, $00, $80
|
||||
db $03, $80, $FF, $80, $FF
|
||||
db $FF
|
||||
..stairs
|
||||
db $00
|
||||
db $FF
|
||||
..chests
|
||||
db $00
|
||||
db $FF
|
||||
..pots
|
||||
db $00, $01, $02, $03, $04, $05, $06, $07
|
||||
db $FF
|
||||
..enemies
|
||||
db $00, $01, $02, $05, $06, $09, $0C
|
||||
db $FF
|
||||
|
||||
.8c
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(..chests) : %d(..pots) : %d(..enemies)
|
||||
..areas
|
||||
db $03, $80, $FF, $80, $FF
|
||||
db $FF
|
||||
..doors
|
||||
db $08
|
||||
db $FF
|
||||
..chests
|
||||
db $03
|
||||
db $FF
|
||||
..pots
|
||||
db $02, $03, $04, $05, $06
|
||||
db $FF
|
||||
..enemies
|
||||
db $06, $07, $09
|
||||
db $FF
|
||||
|
||||
.9d
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(.no_items) : %d(.no_items) : %d(..enemies)
|
||||
..areas
|
||||
db $03, $00, $FF, $80, $FF
|
||||
db $FF
|
||||
..doors
|
||||
db $05
|
||||
db $FF
|
||||
..enemies
|
||||
db $06, $07, $08
|
||||
db $FF
|
||||
|
||||
.a2 ; Mire abyss -- EW bridge (2), stairs to basement + hookable chest (1)
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(.no_items) : %d(.no_items) : %d(.no_items)
|
||||
..areas
|
||||
db $01, $00, $FF, $70, $84
|
||||
db $FF
|
||||
..doors
|
||||
db $04, $0A
|
||||
db $FF
|
||||
|
||||
.a9
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items) : %d(.no_items) : %d(..pots) : %d(.no_items)
|
||||
..areas
|
||||
db $03, $00, $40, $70, $FF
|
||||
db $03, $00, $FF, $A0, $FF
|
||||
db $03, $C0, $FF, $70, $FF
|
||||
db $FF
|
||||
..doors
|
||||
db $04, $07, $0A
|
||||
db $FF
|
||||
..pots
|
||||
db $04, $05, $06, $07
|
||||
db $FF
|
||||
|
||||
.aa
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items) : %d(.no_items) : %d(.no_items) : %d(.no_items)
|
||||
..areas
|
||||
db $02, $00, $80, $00, $FF
|
||||
db $01, $34, $D4, $B8, $FF
|
||||
db $FF
|
||||
..doors
|
||||
db $03, $06
|
||||
db $FF
|
||||
|
||||
.b2
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items) : %d(.no_items) : %d(..pots) : %d(..enemies)
|
||||
..areas
|
||||
db $02, $00, $FF, $00, $80
|
||||
db $03, $60, $A0, $00, $40
|
||||
db $FF
|
||||
..doors
|
||||
db $01, $09
|
||||
db $FF
|
||||
..pots
|
||||
db $00, $01, $02, $03, $04, $05, $06
|
||||
db $FF
|
||||
..enemies
|
||||
db $00, $01, $02, $03, $04
|
||||
db $FF
|
||||
|
||||
.b6
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(.no_items) : %d(..pots) : %d(..enemies)
|
||||
..areas
|
||||
db $03, $80, $FF, $00, $FF
|
||||
db $FF
|
||||
..doors
|
||||
db $08
|
||||
db $FF
|
||||
..pots
|
||||
db $00
|
||||
db $FF
|
||||
..enemies
|
||||
db $04
|
||||
db $FF
|
||||
|
||||
.b9
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items) : %d(.no_items) : %d(.no_items) : %d(.no_items)
|
||||
..areas
|
||||
db $01, $00, $20, $28, $60
|
||||
db $01, $E0, $FF, $28, $60
|
||||
db $01, $00, $FF, $58, $60
|
||||
db $FF
|
||||
..doors
|
||||
db $03, $09
|
||||
db $FF
|
||||
|
||||
.bc
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items) : %d(.no_items) : %d(..pots) : %d(.no_items)
|
||||
..areas
|
||||
db $03, $2C, $4C, $CA, $FF
|
||||
db $FF
|
||||
..doors
|
||||
db $06
|
||||
db $FF
|
||||
..pots
|
||||
db $0C, $0D
|
||||
db $FF
|
||||
|
||||
.c7 ; TR Torch Maze (1) // Tiny Bottom-Left Blocked Corner (2)
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(.no_items) : %d(..pots) : %d(.no_items)
|
||||
..areas
|
||||
db $03, $00, $1C, $A8, $FF
|
||||
db $FF
|
||||
..doors
|
||||
db $05
|
||||
db $FF
|
||||
..pots
|
||||
db $02, $03
|
||||
db $FF
|
||||
|
||||
.d1
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(.no_items) : %d(..pots) : %d(..enemies)
|
||||
..areas
|
||||
db $03, $80, $FF, $00, $A8
|
||||
db $FF
|
||||
..doors
|
||||
db $02
|
||||
db $FF
|
||||
..pots
|
||||
db $02, $03, $04, $05
|
||||
db $FF
|
||||
..enemies
|
||||
db $00, $01, $07
|
||||
db $FF
|
||||
|
||||
.d6
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(..chests) : %d(.no_items) : %d(..enemies)
|
||||
..areas
|
||||
db $03, $00, $80, $00, $FF
|
||||
db $FF
|
||||
..doors
|
||||
db $00
|
||||
db $FF
|
||||
..chests
|
||||
db $00
|
||||
db $FF
|
||||
..enemies
|
||||
db $00, $01, $02
|
||||
db $FF
|
||||
|
||||
.db
|
||||
db $01
|
||||
%sq($00)
|
||||
%d(..areas) : %d(..doors) : %d(.no_items)
|
||||
%d(..chests) : %d(.no_items) : %d(.no_items)
|
||||
..areas
|
||||
db $02, $B0, $FF, $90, $C0
|
||||
db $FF
|
||||
..doors
|
||||
db $0B
|
||||
db $FF
|
||||
..chests
|
||||
db $01
|
||||
db $FF
|
||||
@@ -21,7 +21,7 @@ dw $FFFF, $83B7, $FFFF, $03B7 ; 13
|
||||
dw $012E, $012F, $013E, $013F ; 14
|
||||
dw $C374, $8340, $4341, $0340 ; 15
|
||||
dw $0108, $0109, $436B, $036B ; 16
|
||||
dw $C114, $0104, $4114, $0114 ; 17
|
||||
dw $4104, $0104, $4114, $0114 ; 17
|
||||
dw $C3B5, $FFFF, $43B4, $FFFF ; 18 - useless fairy drop
|
||||
dw $FFFF, $8369, $FFFF, $035A ; 19
|
||||
dw $03E7, $03E8, $03F7, $0361 ; 1A
|
||||
@@ -37,7 +37,7 @@ dw $FFFF, $FFFF, $FFFF, $039B ; 23
|
||||
dw $4365, $0365, $0132, $0133 ; 24
|
||||
dw $FFFF, $FFFF, $FFFF, $FFFF ; 25 - unused
|
||||
dw $039B, $03E4, $4363, $0382 ; 26
|
||||
dw $C114, $0104, $4114, $0114 ; 27
|
||||
dw $4104, $0104, $4114, $0114 ; 27
|
||||
dw $C3A5, $FFFF, $4358, $0348 ; 28
|
||||
dw $FFFF, $FFFF, $FFFF, $0396 ; 29 - Mothula
|
||||
dw $C350, $8352, $4350, $03F8 ; 2A
|
||||
@@ -98,8 +98,8 @@ dw $FFFF, $8379, $FFFF, $036A ; 60
|
||||
dw $C387, $8385, $4356, $0356 ; 61
|
||||
dw $C346, $8354, $4352, $0340 ; 62
|
||||
dw $039A, $FFFF, $0361, $FFFF ; 63
|
||||
dw $FFFF, $FFFF, $8399, $C3B1 ; 64
|
||||
dw $FFFF, $FFFF, $83B1, $0381 ; 65
|
||||
dw $FFFF, $FFFF, $8399, $0367 ; 64
|
||||
dw $FFFF, $FFFF, $0367, $0381 ; 65
|
||||
dw $038F, $039A, $0362, $83B2 ; 66
|
||||
dw $83B4, $83B5, $03B7, $039F ; 67
|
||||
dw $C340, $8350, $4341, $0340 ; 68
|
||||
@@ -162,7 +162,7 @@ dw $839B, $C39C, $FFFF, $FFFF ; A0
|
||||
dw $C3B0, $835D, $FFFF, $036A ; A1
|
||||
dw $03EE, $03EF, $03FE, $03FF ; A2
|
||||
dw $C35A, $FFFF, $436A, $FFFF ; A3
|
||||
dw $FFFF, $FFFF, $438E, $FFFF ; A4
|
||||
dw $FFFF, $FFFF, $438F, $FFFF ; A4
|
||||
dw $039A, $0361, $C3B2, $83B2 ; A5
|
||||
dw $C340, $8370, $4340, $0340 ; A6
|
||||
dw $C396, $FFFF, $FFFF, $FFFF ; A7 - ToH fairy basement room
|
||||
|
||||
@@ -29,6 +29,12 @@ DrawLoot:
|
||||
LDA.b $07
|
||||
STA.w $021B
|
||||
|
||||
LDA.l DRMode
|
||||
BEQ +
|
||||
LDA.l DungeonMapMode
|
||||
BNE +
|
||||
BRA .skip
|
||||
+
|
||||
REP #$30
|
||||
PHX : PHY
|
||||
|
||||
@@ -60,6 +66,7 @@ DrawLoot:
|
||||
STA.b NMISTRIPES
|
||||
|
||||
PLY : PLX
|
||||
.skip
|
||||
LDA.b #$00
|
||||
RTL
|
||||
|
||||
|
||||
@@ -14,7 +14,13 @@ FinishRoom:
|
||||
TAX
|
||||
JML $8AE7F6
|
||||
|
||||
NormalDrawDungeonMapRoom:
|
||||
JSL DrawDungeonMapRoom
|
||||
JMP FinishRoom
|
||||
|
||||
; $CA has room_id
|
||||
; $0E has quadrant flags
|
||||
; X has address to draw at
|
||||
DrawDungeonMapRoom:
|
||||
REP #$20
|
||||
PHB : PHK : PLB ; need to keep this in same bank as data, or else specify bank
|
||||
@@ -136,7 +142,7 @@ DrawDungeonMapRoom:
|
||||
.done
|
||||
PLA : STA.b $0A
|
||||
PLB
|
||||
JMP FinishRoom
|
||||
RTL
|
||||
|
||||
DrawEntrances:
|
||||
REP #$30
|
||||
|
||||
@@ -1,4 +1,65 @@
|
||||
CheckSwitchMap:
|
||||
LDA.l DRMode
|
||||
BEQ .not_fancy_door_map
|
||||
LDA.l DungeonMapMode
|
||||
BNE .not_fancy_door_map
|
||||
|
||||
; fancy door map
|
||||
SEP #$20
|
||||
LDA.b $F6
|
||||
BIT.b #$30
|
||||
BNE .change_dungeon
|
||||
|
||||
BIT.b #$80
|
||||
BNE .select_new_room
|
||||
|
||||
LDA.b $F4
|
||||
BIT.b #$80
|
||||
BNE .select_new_room
|
||||
|
||||
BIT.b #$20
|
||||
BNE .next_entrance
|
||||
|
||||
BIT.b #$40
|
||||
BNE .current_room
|
||||
|
||||
AND.b #$0F
|
||||
BEQ .doors_done
|
||||
BIT.b #$08 : BEQ + : LDA.b #$00 : BRA .doors_move_cursor : +
|
||||
BIT.b #$04 : BEQ + : LDA.b #$02 : BRA .doors_move_cursor : +
|
||||
BIT.b #$02 : BEQ + : LDA.b #$01 : BRA .doors_move_cursor : +
|
||||
LDA.b #$03
|
||||
|
||||
.doors_move_cursor
|
||||
STA.b $00
|
||||
JSL MoveDoorsMapCursor
|
||||
BRA .doors_done
|
||||
|
||||
.select_new_room
|
||||
JSL DoorsMapSelectCursor
|
||||
BRA .doors_done
|
||||
|
||||
.next_entrance
|
||||
JSL DoorsMapNextEntrance
|
||||
BRA .doors_done
|
||||
|
||||
.change_dungeon
|
||||
JSL DoorsMapChangeDungeon
|
||||
BRA .doors_done
|
||||
|
||||
.current_room
|
||||
LDA.l CachedDungeonID
|
||||
CMP.w DungeonID
|
||||
BNE .doors_done
|
||||
JSL DoorsMapCurrentRoom
|
||||
BRA .doors_done
|
||||
|
||||
.doors_done
|
||||
REP #$20
|
||||
LDA.w #$0002 ; ignore input! nothing to see here!
|
||||
RTL
|
||||
|
||||
.not_fancy_door_map
|
||||
SEP #$20
|
||||
LDA.b $F6
|
||||
AND.b #$30
|
||||
@@ -6,7 +67,7 @@ CheckSwitchMap:
|
||||
|
||||
; what we wrote over
|
||||
REP #$20
|
||||
LDA.w $8AF5E9, X
|
||||
LDA.w DungeonMapFloorCountData, X
|
||||
AND.w #$000F
|
||||
CLC : ADC.b $00
|
||||
RTL
|
||||
@@ -99,7 +160,12 @@ SkipMapSprites:
|
||||
|
||||
LDA.l DRMode
|
||||
BEQ +
|
||||
JML $8AEAEE
|
||||
LDA.l DungeonMapMode
|
||||
BEQ .no_vanilla_draw
|
||||
JML $8AEADE
|
||||
.no_vanilla_draw
|
||||
JSL DrawDoorsMapSprites
|
||||
JML $8AEAFC
|
||||
+
|
||||
|
||||
LDA.l CachedDungeonID
|
||||
@@ -161,6 +227,7 @@ DrawDungeonLabel:
|
||||
LDY.b #$20
|
||||
+
|
||||
|
||||
; Dungeon Label
|
||||
REP #$20
|
||||
LDA.w #$E660
|
||||
STA.w GFXStripes+$02, Y
|
||||
@@ -171,9 +238,110 @@ DrawDungeonLabel:
|
||||
STA.w GFXStripes+$06, Y
|
||||
LDA.l DungeonLabels+2, X
|
||||
STA.w GFXStripes+$08, Y
|
||||
|
||||
TYA
|
||||
CLC : ADC.w #$0008
|
||||
TAY
|
||||
|
||||
; L/R switch indicators
|
||||
LDA.w #$E310
|
||||
STA.w GFXStripes+$02, Y
|
||||
LDA.w #$E910
|
||||
STA.w GFXStripes+$0A, Y
|
||||
LDA.w #$E318
|
||||
STA.w GFXStripes+$12, Y
|
||||
LDA.w #$E918
|
||||
STA.w GFXStripes+$1A, Y
|
||||
|
||||
LDA.w #$0300
|
||||
STA.w GFXStripes+$04, Y
|
||||
STA.w GFXStripes+$0C, Y
|
||||
STA.w GFXStripes+$14, Y
|
||||
STA.w GFXStripes+$1C, Y
|
||||
|
||||
LDA.w #$49AF
|
||||
STA.w GFXStripes+$06, Y
|
||||
STA.w GFXStripes+$16, Y
|
||||
LDA.w #$099E
|
||||
STA.w GFXStripes+$08, Y
|
||||
STA.w GFXStripes+$18, Y
|
||||
|
||||
LDA.w #$099F
|
||||
STA.w GFXStripes+$0E, Y
|
||||
STA.w GFXStripes+$1E, Y
|
||||
LDA.w #$09AF
|
||||
STA.w GFXStripes+$10, Y
|
||||
STA.w GFXStripes+$20, Y
|
||||
|
||||
TYA
|
||||
CLC : ADC.w #$0020
|
||||
TAY
|
||||
|
||||
LDA.l DRMode
|
||||
BEQ .not_doors
|
||||
LDA.l DungeonMapMode
|
||||
BEQ .doors
|
||||
.not_doors
|
||||
JMP .skip_doors
|
||||
|
||||
.doors
|
||||
; Select for Next Entrance indicator
|
||||
LDA.w #$E311
|
||||
STA.w GFXStripes+$02, Y
|
||||
LDA.w #$E319
|
||||
STA.w GFXStripes+$16, Y
|
||||
|
||||
LDA.w #$0F00
|
||||
STA.w GFXStripes+$04, Y
|
||||
STA.w GFXStripes+$18, Y
|
||||
|
||||
LDA.w #$09B8
|
||||
LDX.b #$07
|
||||
-
|
||||
STA.w GFXStripes+$06, Y
|
||||
STA.w GFXStripes+$1A, Y
|
||||
INC A
|
||||
INY : INY
|
||||
DEX
|
||||
BPL -
|
||||
|
||||
TYA
|
||||
CLC : ADC.w #$0018
|
||||
TAY
|
||||
|
||||
LDA.l CachedDungeonID
|
||||
AND.w #$00FF
|
||||
CMP.w DungeonID
|
||||
BNE .skip_doors
|
||||
|
||||
; Y for Current Location indicator
|
||||
LDA.w #$A411
|
||||
STA.w GFXStripes+$02, Y
|
||||
LDA.w #$A419
|
||||
STA.w GFXStripes+$12, Y
|
||||
|
||||
LDA.w #$0B00
|
||||
STA.w GFXStripes+$04, Y
|
||||
STA.w GFXStripes+$14, Y
|
||||
|
||||
LDA.w #$09A9
|
||||
LDX.b #$05
|
||||
-
|
||||
STA.w GFXStripes+$06, Y
|
||||
STA.w GFXStripes+$16, Y
|
||||
INC A
|
||||
INY : INY
|
||||
DEX
|
||||
BPL -
|
||||
|
||||
TYA
|
||||
CLC : ADC.w #$0014
|
||||
TAY
|
||||
|
||||
.skip_doors
|
||||
SEP #$20
|
||||
LDA.b #$FF
|
||||
STA.w GFXStripes+$0A, Y
|
||||
STA.w GFXStripes+$02, Y
|
||||
LDA.b #$01
|
||||
STA.b NMISTRIPES
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ db $08
|
||||
; use AA1 = $1C for map stuff
|
||||
org $80E193
|
||||
skip 4
|
||||
db $61, $62, $62, $D6
|
||||
db $61, $62, $63, $D6
|
||||
|
||||
org $8AE11D
|
||||
LDA.b #$1C
|
||||
@@ -13,10 +13,6 @@ LDA.b #$1C
|
||||
org $8AE12B
|
||||
LDA.b #$20
|
||||
|
||||
; change dungeon map subsheet gfx in TR
|
||||
; org $80DDC9
|
||||
; db $57
|
||||
|
||||
; dungeon map sheets
|
||||
org $80DD97
|
||||
db $61, $56, $57, $62
|
||||
@@ -75,7 +71,7 @@ org $8AEE2B
|
||||
;--------------------------------------------------------------------------------
|
||||
org $8AE64D
|
||||
PLX
|
||||
JML DrawDungeonMapRoom
|
||||
JML NormalDrawDungeonMapRoom
|
||||
|
||||
org $8AE606
|
||||
PLX
|
||||
@@ -221,3 +217,53 @@ org $8AE8F9
|
||||
org $8AEBC6
|
||||
JSL GetLocationMarkerLeft
|
||||
NOP
|
||||
|
||||
;================================================================================
|
||||
; Draw Wacky Door Rando Layouts
|
||||
;--------------------------------------------------------------------------------
|
||||
org $8AE3D7
|
||||
LDA.l DungeonMapMode
|
||||
BNE .normal
|
||||
LDA.l DRMode
|
||||
BEQ .normal
|
||||
|
||||
JSL DrawWackyDoorRandoStuff
|
||||
JMP.w $8AE422
|
||||
NOP
|
||||
|
||||
.normal
|
||||
warnpc $8AE3EB
|
||||
|
||||
org $8AE439
|
||||
dw $0F19, $4F19, $8F19, $CF19
|
||||
|
||||
org $8AE449
|
||||
dw $0F1A, $8F1A
|
||||
|
||||
org $8AE451
|
||||
dw $0F1B, $4F1B
|
||||
|
||||
org $8AE473
|
||||
NOP #2
|
||||
|
||||
org $8AE4A4
|
||||
NOP #2
|
||||
|
||||
org $8AE4DC
|
||||
NOP #2
|
||||
|
||||
org $8AE4F9
|
||||
dw $0F1E, $0F1F, $0F20, $0F21
|
||||
dw $0F22, $0F23, $0F24, $0F25
|
||||
|
||||
org $8AE539
|
||||
LDA.w #$0F1C
|
||||
|
||||
org $8AE573
|
||||
LDA.w #$0F1D
|
||||
|
||||
org $8AE555
|
||||
NOP #2
|
||||
|
||||
org $8AE576
|
||||
NOP #2
|
||||
|
||||
@@ -27,9 +27,14 @@ endmacro
|
||||
pullpc
|
||||
|
||||
incsrc mappable_doors.asm
|
||||
incsrc current_room_map.asm
|
||||
incsrc draw_rooms.asm
|
||||
incsrc map_bg3.asm
|
||||
incsrc dungeon_switch.asm
|
||||
incsrc draw_loot.asm
|
||||
incsrc check_loot.asm
|
||||
incsrc blink_loot.asm
|
||||
incsrc data/doors_display.asm
|
||||
incsrc data/spiral_stairs.asm
|
||||
incsrc data/fall_warps.asm
|
||||
incsrc data/split_room.asm
|
||||
|
||||
@@ -12,23 +12,34 @@ LoadStripes:
|
||||
|
||||
.dungeon_map
|
||||
LDA.l DungeonMapMode
|
||||
BNE .doors
|
||||
BNE .4x3
|
||||
LDA.l DRMode
|
||||
BNE .6x6
|
||||
|
||||
.not_doors
|
||||
LDA.b #BG3DungeonMapStripes>>0
|
||||
.5x5
|
||||
LDA.b #BG3DungeonMap5x5Stripes>>0
|
||||
STA.b $00
|
||||
LDA.b #BG3DungeonMapStripes>>8
|
||||
LDA.b #BG3DungeonMap5x5Stripes>>8
|
||||
STA.b $01
|
||||
LDA.b #BG3DungeonMapStripes>>16
|
||||
LDA.b #BG3DungeonMap5x5Stripes>>16
|
||||
STA.b $02
|
||||
RTL
|
||||
|
||||
.doors
|
||||
LDA.b #BG3DungeonMapDoorStripes>>0
|
||||
.4x3
|
||||
LDA.b #BG3DungeonMap4x3Stripes>>0
|
||||
STA.b $00
|
||||
LDA.b #BG3DungeonMapDoorStripes>>8
|
||||
LDA.b #BG3DungeonMap4x3Stripes>>8
|
||||
STA.b $01
|
||||
LDA.b #BG3DungeonMapDoorStripes>>16
|
||||
LDA.b #BG3DungeonMap4x3Stripes>>16
|
||||
STA.b $02
|
||||
RTL
|
||||
|
||||
.6x6
|
||||
LDA.b #BG3DungeonMap6x6Stripes>>0
|
||||
STA.b $00
|
||||
LDA.b #BG3DungeonMap6x6Stripes>>8
|
||||
STA.b $01
|
||||
LDA.b #BG3DungeonMap6x6Stripes>>16
|
||||
STA.b $02
|
||||
RTL
|
||||
|
||||
@@ -71,7 +82,7 @@ macro VanillaCommonMapStripes()
|
||||
endmacro
|
||||
|
||||
|
||||
BG3DungeonMapStripes:
|
||||
BG3DungeonMap5x5Stripes:
|
||||
%VanillaCommonMapStripes()
|
||||
; left edge of map border, from vanilla
|
||||
dw $4E60, $0100, $2100
|
||||
@@ -122,7 +133,7 @@ endmacro
|
||||
|
||||
db $FF
|
||||
|
||||
BG3DungeonMapDoorStripes:
|
||||
BG3DungeonMap4x3Stripes:
|
||||
%VanillaCommonMapStripes()
|
||||
; left edge of map border, adjusted from vanilla
|
||||
dw $4D60, $0100, $2100
|
||||
@@ -174,3 +185,96 @@ endmacro
|
||||
%FullDoorRow($6311)
|
||||
|
||||
db $FF
|
||||
|
||||
BG3DungeonMap6x6Stripes:
|
||||
; vanilla
|
||||
dw $4260, $0100, $2100
|
||||
dw $4360, $0E40, $2101
|
||||
dw $4B60, $0100, $6100
|
||||
dw $8460, $0B00, $2102, $2103, $2104, $2105, $2106, $2107
|
||||
dw $A460, $0B00, $2112, $2113, $2114, $2115, $2116, $2117
|
||||
dw $0060, $7E40, $2111
|
||||
dw $8063, $3E41, $2111
|
||||
dw $0060, $3EC0, $2111
|
||||
dw $0160, $3EC0, $2111
|
||||
dw $0C60, $3EC0, $2111
|
||||
dw $0D60, $3EC0, $2111
|
||||
dw $1E60, $3EC0, $2111
|
||||
dw $1F60, $3EC0, $2111
|
||||
|
||||
; left side border
|
||||
dw $6260, $1AC0, $2110
|
||||
dw $6B60, $1AC0, $6110
|
||||
dw $2262, $0100, $A100
|
||||
dw $2362, $0E40, $A101
|
||||
dw $2B62, $0100, $E100
|
||||
|
||||
; right side top area border
|
||||
dw $4E60, $0100, $2100
|
||||
dw $4F60, $1A40, $2101
|
||||
dw $5D60, $0100, $6100
|
||||
dw $6E60, $1AC0, $2110
|
||||
dw $7D60, $1AC0, $6110
|
||||
dw $2E62, $0100, $A100
|
||||
dw $2F62, $1A40, $A101
|
||||
dw $3D62, $0100, $E100
|
||||
|
||||
; right side bottom area border
|
||||
dw $8E62, $0100, $2100
|
||||
dw $8F62, $1A40, $2101
|
||||
dw $9D62, $0100, $6100
|
||||
dw $AE62, $06C0, $2110
|
||||
dw $BD62, $06C0, $6110
|
||||
dw $2E63, $0100, $A100
|
||||
dw $2F63, $1A40, $A101
|
||||
dw $3D63, $0100, $E100
|
||||
|
||||
; blank below left side
|
||||
dw $4262, $4440, $2111
|
||||
dw $6262, $4440, $2111
|
||||
|
||||
dw $8262, $1240, $2111
|
||||
dw $A262, $1240, $2111
|
||||
dw $C262, $1240, $2111
|
||||
dw $E262, $1240, $2111
|
||||
dw $0263, $1240, $2111
|
||||
dw $2263, $1240, $2111
|
||||
|
||||
dw $4263, $4440, $2111
|
||||
dw $6263, $4440, $2111
|
||||
|
||||
; map area inside top area
|
||||
dw $6F60, $1A40, $1D11
|
||||
dw $8F60, $1A40, $1D11
|
||||
dw $AF60, $1A40, $1D11
|
||||
dw $CF60, $1A40, $1D11
|
||||
dw $EF60, $1A40, $1D11
|
||||
dw $0F61, $1A40, $1D11
|
||||
dw $2F61, $1A40, $1D11
|
||||
dw $4F61, $1A40, $1D11
|
||||
dw $6F61, $1A40, $1D11
|
||||
dw $8F61, $1A40, $1D11
|
||||
dw $AF61, $1A40, $1D11
|
||||
dw $CF61, $1A40, $1D11
|
||||
dw $EF61, $1A40, $1D11
|
||||
dw $0F62, $1A40, $1D11
|
||||
|
||||
; center square
|
||||
dw $3561, $0300
|
||||
dw $5D4C, $1D4C
|
||||
|
||||
dw $5561, $0300
|
||||
dw $DD4C, $9D4C
|
||||
|
||||
; map area inside bottom area
|
||||
dw $AF62, $1A40, $1D11
|
||||
|
||||
dw $CF62, $1B00
|
||||
dw $1D11, $5D4C, $1D4C, $1D11, $5D4C, $1D4C, $1D11, $5D4C, $1D4C, $1D11, $1D11, $5D4C, $1D4C, $1D11
|
||||
|
||||
dw $EF62, $1B00
|
||||
dw $1D11, $DD4C, $9D4C, $1D11, $DD4C, $9D4C, $1D11, $DD4C, $9D4C, $1D11, $1D11, $DD4C, $9D4C, $1D11
|
||||
|
||||
dw $0F63, $1A40, $1D11
|
||||
|
||||
db $FF
|
||||
|
||||
@@ -54,10 +54,10 @@ dw $29CA, $69CA, $29DA, $29DB ; 03 - small key
|
||||
dw $29E9, $69E9, $29F9, $69F9 ; 04 - triforce piece
|
||||
dw $29DD, $69DD, $A9DD, $E9DD ; 05 - safety - plus
|
||||
dw $29EC, $69EC, $29FC, $69FC ; 06 - less important item - small chest
|
||||
dw $29E8, $69E8, $29F8, $69F8 ; 07 - compass
|
||||
dw $29CA, $69CA, $29DA, $29DB ; 08 - small key
|
||||
dw $29C8, $69C8, $29D8, $29D9 ; 09 - big key
|
||||
dw $29CC, $29CD, $29DC, $69DC ; 0A - pendant
|
||||
dw $29CE, $29CF, $29DE, $29DF ; 07 - map
|
||||
dw $29E8, $69E8, $29F8, $69F8 ; 08 - compass
|
||||
dw $29CA, $69CA, $29DA, $29DB ; 09 - small key
|
||||
dw $29C8, $69C8, $29D8, $29D9 ; 0A - big key
|
||||
dw $29ED, $69ED, $29FD, $69FD ; 0B - important inventory item - big chest
|
||||
dw $29CC, $29CD, $29DC, $69DC ; 0C - pendant
|
||||
dw $2DC9, $69C9, $A9C9, $EDC9 ; 0D - crystal
|
||||
@@ -129,7 +129,7 @@ pad $B9FB00
|
||||
; $B9FB00
|
||||
DungeonLabels:
|
||||
dw $2550, $2579 ; Sewers
|
||||
dw $2550, $2578 ; Hyrule Castle
|
||||
dw $2564, $255F ; Hyrule Castle
|
||||
dw $2561, $256C ; Eastern Palace
|
||||
dw $2560, $256C ; Desert Palace
|
||||
dw $255D, $2570 ; Agahnim's Tower
|
||||
@@ -197,11 +197,12 @@ org $B9FF10
|
||||
ItemSources:
|
||||
db $09
|
||||
|
||||
; $B9FF11
|
||||
AlwaysShowCompass:
|
||||
db $01
|
||||
|
||||
; $00 - vanilla 5x5 maps
|
||||
; $01 - special DR 4x3 maps
|
||||
; $B9FF12
|
||||
; $0000 - vanilla 5x5 maps
|
||||
; $0001 - special DR 4x3 maps
|
||||
DungeonMapMode:
|
||||
dw $0000
|
||||
|
||||
|
||||
@@ -248,7 +248,7 @@ DrawPlayerFileShared:
|
||||
|
||||
; Flute
|
||||
LDA.l InventoryTrackingSRAM : AND.w #$0003 : BEQ +
|
||||
LDA.l $7003C2 : AND.w #$00FF : CMP.w #$00FF : BNE .pseudo
|
||||
LDA.l $7003C2 : AND.w #$00FF : BNE .pseudo
|
||||
%fs_drawItem(7,16,FileSelectItems_flute)
|
||||
BRA ++
|
||||
.pseudo
|
||||
|
||||
@@ -115,7 +115,7 @@ InitInventoryTracking: skip 2 ; PC 0x18338C \ Need to set bits here fo
|
||||
InitBowTracking: skip 2 ; PC 0x18338E / boomerangs, powder/mushroom, etc
|
||||
InitItemLimitCounts: skip 16 ; PC 0x183390
|
||||
skip 34 ;
|
||||
InitFluteBitfield: db $FF ;
|
||||
InitFluteBitfield: db $00 ;
|
||||
InitSpecialWeaponLevel: db $00 ;
|
||||
InitItemOnB: db $00 ;
|
||||
InitProgressIndicator: db $02 ; PC 0x1833C5 - Set to $80 for instant post-aga with standard
|
||||
|
||||
@@ -34,16 +34,20 @@ RTL
|
||||
; Output: 0 locked, 1 open
|
||||
;--------------------------------------------------------------------------------
|
||||
CheckForZelda:
|
||||
LDA.l ProgressIndicator : CMP.b #$02 : !BLT + ; Skip if rain is falling
|
||||
LDA.b #$01 ; pretend we have zelda anyway
|
||||
RTL
|
||||
+
|
||||
LDA.l FollowerIndicator
|
||||
LDA.l ProgressIndicator : CMP.b #$02 : !BLT + ; Skip if rain is falling
|
||||
LDA.b #$01 ; pretend we have zelda anyway
|
||||
RTL
|
||||
+
|
||||
LDA.l FollowerIndicator
|
||||
RTL
|
||||
;================================================================================
|
||||
SetOverlayIfLamp:
|
||||
JSL LampCheck
|
||||
STA.b SUBDESQ ; write it directly to the overlay, this isn't a terrible idea at all
|
||||
JSL LampCheck
|
||||
CMP.b #$00
|
||||
BEQ +
|
||||
LDA.b #$01
|
||||
+
|
||||
STA.b SUBDESQ ; write it directly to the overlay, this isn't a terrible idea at all
|
||||
RTL
|
||||
;================================================================================
|
||||
; Mantle Object Changes
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -188,12 +188,12 @@ ItemBehavior:
|
||||
BRA .store_inventory_tracking
|
||||
|
||||
.flute_inactive
|
||||
LDA.b #$FF : STA.l FluteBitfield
|
||||
LDA.b #$00 : STA.l FluteBitfield
|
||||
LDA.l InventoryTracking : ORA.b #$02
|
||||
BRA .store_inventory_tracking
|
||||
|
||||
.flute_active
|
||||
LDA.b #$FF : STA.l FluteBitfield
|
||||
LDA.b #$00 : STA.l FluteBitfield
|
||||
LDA.l InventoryTracking : ORA.b #$01
|
||||
BRA .store_inventory_tracking
|
||||
|
||||
|
||||
@@ -320,7 +320,7 @@ OWLightWorldOrCrossed:
|
||||
|
||||
OWFluteCancel:
|
||||
{
|
||||
lda.l FluteBitfield : beq +
|
||||
lda.l FluteBitfield : cmp.b #$FF : beq +
|
||||
lda.l OWFlags+1 : and.b #$01 : bne +
|
||||
jsl FluteMenu_LoadTransport : rtl
|
||||
+ lda.w RandoOverworldTargetEdge : bne +
|
||||
@@ -332,7 +332,7 @@ OWFluteCancel2:
|
||||
lda.b Joy1B_All : ora.b Joy1A_All : and.b #$c0 : bne +
|
||||
jml FluteMenu_HandleSelection_NoSelection
|
||||
+ inc.w SubModuleInterface
|
||||
lda.l FluteBitfield : beq .cancel
|
||||
lda.l FluteBitfield : cmp.b #$FF : beq .cancel
|
||||
lda.l OWFlags+1 : and.b #$01 : beq +
|
||||
lda.b Joy1B_All : cmp.b #$40 : bne +
|
||||
.cancel
|
||||
|
||||
@@ -1,35 +1,37 @@
|
||||
SelectFirstFluteSpot:
|
||||
LDA.l FluteBitfield
|
||||
CMP.b #$FF
|
||||
BNE +
|
||||
RTL
|
||||
+ LDA.b #$07
|
||||
STA.w $1AF0
|
||||
STA.w FluteSelection
|
||||
.try_next
|
||||
LDA.w $1AF0
|
||||
LDA.w FluteSelection
|
||||
INC A
|
||||
AND.b #$07
|
||||
STA.w $1AF0
|
||||
STA.w FluteSelection
|
||||
TAX
|
||||
|
||||
LDA.l FluteBitfield
|
||||
AND.l $8AB7A3, X
|
||||
BEQ .try_next
|
||||
AND.l FluteMenuNumbers_bits, X
|
||||
BNE .try_next
|
||||
RTL
|
||||
|
||||
SelectFluteNext:
|
||||
LDA.l FluteBitfield
|
||||
CMP.b #$FF
|
||||
BEQ InvalidBeep
|
||||
|
||||
.try_next
|
||||
LDA.w $1AF0
|
||||
LDA.w FluteSelection
|
||||
INC A
|
||||
AND.b #$07
|
||||
STA.w $1AF0
|
||||
STA.w FluteSelection
|
||||
TAX
|
||||
|
||||
LDA.l FluteBitfield
|
||||
AND.l $8AB7A3, X
|
||||
BEQ .try_next
|
||||
AND.l FluteMenuNumbers_bits, X
|
||||
BNE .try_next
|
||||
|
||||
LDA.b #$20
|
||||
STA.w $012F
|
||||
@@ -37,18 +39,19 @@ RTL
|
||||
|
||||
SelectFlutePrev:
|
||||
LDA.l FluteBitfield
|
||||
CMP.b #$FF
|
||||
BEQ InvalidBeep
|
||||
|
||||
.try_next
|
||||
LDA.w $1AF0
|
||||
LDA.w FluteSelection
|
||||
DEC A
|
||||
AND.b #$07
|
||||
STA.w $1AF0
|
||||
STA.w FluteSelection
|
||||
TAX
|
||||
|
||||
LDA.l FluteBitfield
|
||||
AND.l $8AB7A3, X
|
||||
BEQ .try_next
|
||||
AND.l FluteMenuNumbers_bits, X
|
||||
BNE .try_next
|
||||
|
||||
LDA.b #$20
|
||||
STA.w $012F
|
||||
@@ -62,8 +65,8 @@ RTL
|
||||
SetFluteSpotPalette:
|
||||
XBA
|
||||
LDA.l FluteBitfield
|
||||
AND.l $8AB7A3, X
|
||||
BEQ .disabled
|
||||
AND.l FluteMenuNumbers_bits, X
|
||||
BNE .disabled
|
||||
.enabled
|
||||
XBA
|
||||
STA.b $0C
|
||||
@@ -93,8 +96,9 @@ MaybeMarkFluteSpotVisited:
|
||||
TXA
|
||||
LSR A
|
||||
TAX
|
||||
LDA.l FluteBitfield
|
||||
ORA.l $8AB7A3, X
|
||||
LDA.l FluteMenuNumbers_bits, X
|
||||
EOR.b #$FF
|
||||
AND.l FluteBitfield
|
||||
STA.l FluteBitfield
|
||||
|
||||
.done
|
||||
@@ -113,33 +117,9 @@ CheckTransitionOverworld:
|
||||
STA.w $040A ; what we wrote over
|
||||
JML MaybeMarkFluteSpotVisited
|
||||
|
||||
DrawFluteIcon:
|
||||
AND.w #$00FF
|
||||
CMP.w #$0002
|
||||
BCC .write
|
||||
CheckFlute:
|
||||
LDA.l FluteBitfield
|
||||
AND.w #$00FF
|
||||
CMP.w #$00FF
|
||||
BNE .pseudo
|
||||
.real
|
||||
LDA.w #$0003
|
||||
BRA .write
|
||||
.pseudo
|
||||
LDA.w #$0002
|
||||
.write
|
||||
STA.b $02
|
||||
RTL
|
||||
|
||||
CheckFluteInHUD:
|
||||
LDA.l $7EF33F, X
|
||||
AND.w #$00FF ; what we wrote over
|
||||
CPX.w #$000D
|
||||
BNE .done
|
||||
CMP.w #$0002
|
||||
BCC .done
|
||||
LDA.l FluteBitfield
|
||||
AND.w #$00FF
|
||||
CMP.w #$00FF
|
||||
BNE .pseudo
|
||||
.real
|
||||
LDA.w #$0003
|
||||
@@ -147,4 +127,24 @@ CheckFluteInHUD:
|
||||
.pseudo
|
||||
LDA.w #$0002
|
||||
.done
|
||||
RTS
|
||||
|
||||
DrawFluteIcon:
|
||||
AND.w #$00FF
|
||||
CMP.w #$0002
|
||||
BCC +
|
||||
JSR CheckFlute
|
||||
+
|
||||
STA.b $02
|
||||
RTL
|
||||
|
||||
CheckFluteInHUD:
|
||||
LDA.l EquipmentWRAM-1, X
|
||||
AND.w #$00FF ; what we wrote over
|
||||
CPX.w #$000D
|
||||
BNE +
|
||||
CMP.w #$0002
|
||||
BCC +
|
||||
JSR CheckFlute
|
||||
+
|
||||
RTL
|
||||
|
||||
10
ram.asm
10
ram.asm
@@ -473,6 +473,8 @@ RoomStripes = $7E1100 ; Used for room drawing.
|
||||
;
|
||||
MirrorPortalPosXH = $7E1ACF ; Mirror portal position. (High byte of X coordinate)
|
||||
;
|
||||
FluteSelection = $7E1AF0 ; Currently selected flute spot (zero-indexed)
|
||||
;
|
||||
IrisPtr = $7E1B00 ; Spotlight pointers for HDMA. $1C0 bytes (?).
|
||||
;
|
||||
MessageSubModule = $7E1CD8 ;
|
||||
@@ -566,6 +568,14 @@ GameOverSongCache = $7EC227 ;
|
||||
CachedDungeonID = $7EC22A ; Cached while opening dungeon map
|
||||
CachedCurrentFloor = $7EC22B ; to restore when closing
|
||||
;
|
||||
CurrentDisplayedRoom = $7EC22C ; 2 bytes, used by dungeon map
|
||||
DisplayedRoomDoorIndex = $7EC22E ; 2 bytes, used by dungeon map
|
||||
;
|
||||
DoorSlots = $7EC230 ; $32 bytes, used by dungeon map
|
||||
DoorSlotScratch = $7EC262 ; 6 bytes, used by dungeon map
|
||||
DoorSlotCursor = $7EC268 ; 2 bytes, used by dungeon map
|
||||
CurrentDoorEntrance = $7EC26A ; 2 bytes, used by dungeon map
|
||||
;
|
||||
LastBGSet = $7EC2F8 ; Lists loaded sheets to check for decompression. 4 bytes.
|
||||
;
|
||||
PaletteBufferAux = $7EC300 ; Secondary and main palette buffer. See symbols_wram.asm
|
||||
|
||||
@@ -280,10 +280,16 @@ Module1B_SpawnSelect_spawns = $828481
|
||||
Overworld_ActualScreenID = $82A4E3
|
||||
UnderworldTransitionLandingCoordinate = $82C034
|
||||
Overworld_FinalizeEntryOntoScreen_Data = $82C176
|
||||
EntranceData_room_id = $82C577
|
||||
EntranceData_y_coordinate = $82CCBD
|
||||
EntranceData_x_coordinate = $82CDC7
|
||||
EntranceData_dungeon_id = $82D1EF
|
||||
EntranceData_layer = $82D2F9
|
||||
EntranceData_song = $82D592
|
||||
SpawnPointData_room_id = $82D8D2
|
||||
Overworld_CheckForSpecialOverworldTrigger_Direction = $84E879
|
||||
Sprite_ShowSolicitedMessage_Direction = $85E1A3
|
||||
FluteMenuNumbers_bits = $8AB7A3
|
||||
WorldMap_RedXChars = $8ABF70
|
||||
WorldMap_CalculateOAMCoordinates = $8AC3B1
|
||||
WorldMap_HandleSpriteBlink = $8AC52E
|
||||
|
||||
Reference in New Issue
Block a user