Merge branch 'FancyDoorsMap' into MappableDoors
This commit is contained in:
@@ -210,6 +210,7 @@ incsrc special_weapons.asm
|
|||||||
incsrc variable_ganon_vulnerability.asm
|
incsrc variable_ganon_vulnerability.asm
|
||||||
incsrc pseudoflute.asm
|
incsrc pseudoflute.asm
|
||||||
incsrc dungeon_map/main.asm
|
incsrc dungeon_map/main.asm
|
||||||
|
print "End of B9: ", pc
|
||||||
|
|
||||||
warnpc $B9E000 ; $E000 - EFFF reserved for custom door rando map data
|
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);
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ int main(int argc, char *argv[]) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fclose(outptr);
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -20,6 +20,17 @@ BlinkLoot:
|
|||||||
|
|
||||||
StartDoubleWrite:
|
StartDoubleWrite:
|
||||||
; what we wrote over
|
; 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
|
REP #$30
|
||||||
STZ.w GFXStripes
|
STZ.w GFXStripes
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ CheckLoot:
|
|||||||
REP #$30
|
REP #$30
|
||||||
PHB : PHX : PHY
|
PHB : PHX : PHY
|
||||||
|
|
||||||
STA.b $00
|
STA.b $CA
|
||||||
|
|
||||||
LDA.b $06 : PHA
|
LDA.b $06 : PHA
|
||||||
LDA.b $0E : PHA
|
LDA.b $0E : PHA
|
||||||
@@ -16,7 +16,8 @@ CheckLoot:
|
|||||||
AND.w #$00FF
|
AND.w #$00FF
|
||||||
STA.b $0E
|
STA.b $0E
|
||||||
|
|
||||||
LDA.b $00
|
LDA.b $CA
|
||||||
|
AND.w #$00FF
|
||||||
ASL A
|
ASL A
|
||||||
TAX
|
TAX
|
||||||
|
|
||||||
@@ -80,7 +81,9 @@ CheckLoot:
|
|||||||
RTL
|
RTL
|
||||||
|
|
||||||
CheckChests:
|
CheckChests:
|
||||||
LDA.b $00
|
LDA.b $CA
|
||||||
|
AND.w #$00FF
|
||||||
|
STA.b $00
|
||||||
ASL A
|
ASL A
|
||||||
TAX
|
TAX
|
||||||
|
|
||||||
@@ -90,6 +93,7 @@ CheckChests:
|
|||||||
|
|
||||||
LDA.w #$0008
|
LDA.w #$0008
|
||||||
STA.b $04
|
STA.b $04
|
||||||
|
STZ.b $06
|
||||||
|
|
||||||
LDY.w #$FFFD
|
LDY.w #$FFFD
|
||||||
.increment_mask
|
.increment_mask
|
||||||
@@ -106,6 +110,11 @@ CheckChests:
|
|||||||
CMP.b $00
|
CMP.b $00
|
||||||
BNE .next_chest
|
BNE .next_chest
|
||||||
|
|
||||||
|
LDA.b $06
|
||||||
|
JSR CheckChestSection
|
||||||
|
INC.b $06
|
||||||
|
BCC .increment_mask
|
||||||
|
|
||||||
LDA.l SaveDataWRAM, X
|
LDA.l SaveDataWRAM, X
|
||||||
AND.b $04
|
AND.b $04
|
||||||
BNE .increment_mask ; already got item
|
BNE .increment_mask ; already got item
|
||||||
@@ -119,6 +128,22 @@ CheckChests:
|
|||||||
RTS
|
RTS
|
||||||
|
|
||||||
CheckBoss:
|
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
|
LDX.w #$FFFA
|
||||||
.next_boss
|
.next_boss
|
||||||
INX #6
|
INX #6
|
||||||
@@ -127,7 +152,7 @@ CheckBoss:
|
|||||||
RTS
|
RTS
|
||||||
|
|
||||||
.check
|
.check
|
||||||
CMP.b $00
|
CMP.b $04
|
||||||
BNE .next_boss
|
BNE .next_boss
|
||||||
|
|
||||||
TXY
|
TXY
|
||||||
@@ -170,6 +195,10 @@ CheckBoss:
|
|||||||
BRA .next_boss
|
BRA .next_boss
|
||||||
|
|
||||||
CheckPrize:
|
CheckPrize:
|
||||||
|
LDA.b $CA
|
||||||
|
AND.w #$00FF
|
||||||
|
STA.b $04
|
||||||
|
|
||||||
LDX.w #$FFFD
|
LDX.w #$FFFD
|
||||||
.next_prize
|
.next_prize
|
||||||
INX #3
|
INX #3
|
||||||
@@ -178,7 +207,7 @@ CheckPrize:
|
|||||||
RTS
|
RTS
|
||||||
|
|
||||||
.check
|
.check
|
||||||
CMP.b $00
|
CMP.b $04
|
||||||
BNE .next_prize
|
BNE .next_prize
|
||||||
|
|
||||||
TXY
|
TXY
|
||||||
@@ -202,7 +231,8 @@ CheckPrize:
|
|||||||
BRA .next_prize
|
BRA .next_prize
|
||||||
|
|
||||||
CheckPots:
|
CheckPots:
|
||||||
LDA.b $00
|
LDA.b $CA
|
||||||
|
AND.w #$00FF
|
||||||
ASL A
|
ASL A
|
||||||
TAX
|
TAX
|
||||||
|
|
||||||
@@ -221,6 +251,10 @@ CheckPots:
|
|||||||
LDA.b [$04], Y
|
LDA.b [$04], Y
|
||||||
AND.w #$00FF
|
AND.w #$00FF
|
||||||
CMP.w #$0008 : BEQ .small_key
|
CMP.w #$0008 : BEQ .small_key
|
||||||
|
LDA.l PotCountMode
|
||||||
|
BEQ +
|
||||||
|
JSR CheckJunkPot
|
||||||
|
+
|
||||||
INY
|
INY
|
||||||
BRA .next_pot
|
BRA .next_pot
|
||||||
|
|
||||||
@@ -231,18 +265,30 @@ CheckPots:
|
|||||||
PHX
|
PHX
|
||||||
INY
|
INY
|
||||||
BRA .mask_set
|
BRA .mask_set
|
||||||
|
|
||||||
.major_item
|
.major_item
|
||||||
LDA.b [$04], Y
|
LDA.b [$04], Y
|
||||||
.continue
|
|
||||||
PHA
|
PHA
|
||||||
PHX
|
PHX
|
||||||
INY
|
INY
|
||||||
TXA : ASL A
|
TXA : ASL A
|
||||||
TAX
|
TAX
|
||||||
LDA.l DungeonMask, X : STA.b $08
|
LDA.l DungeonMask, X : STA.b $08
|
||||||
|
TXA : LSR A : TAX
|
||||||
|
|
||||||
.mask_set
|
.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
|
if !FEATURE_FIX_BASEROM
|
||||||
LDA.l SpriteDropData, X
|
LDA.l SpriteDropData, X
|
||||||
else
|
else
|
||||||
@@ -263,8 +309,50 @@ endif
|
|||||||
.done
|
.done
|
||||||
RTS
|
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:
|
CheckEnemies:
|
||||||
LDA.b $00
|
LDA.b $CA
|
||||||
|
AND.w #$00FF
|
||||||
ASL A
|
ASL A
|
||||||
TAX
|
TAX
|
||||||
|
|
||||||
@@ -279,9 +367,14 @@ CheckEnemies:
|
|||||||
.next_enemy
|
.next_enemy
|
||||||
LDA.b [$04], Y
|
LDA.b [$04], Y
|
||||||
AND.w #$00FF
|
AND.w #$00FF
|
||||||
CMP.w #$00FF : BEQ .done
|
CMP.w #$00FF
|
||||||
|
BNE +
|
||||||
|
JMP .done
|
||||||
|
+
|
||||||
LDA.b [$04], Y
|
LDA.b [$04], Y
|
||||||
BIT.w #$8000 : BNE .overlord
|
AND.w #$E000
|
||||||
|
CMP.w #$E000
|
||||||
|
BEQ .overlord
|
||||||
INY : INY
|
INY : INY
|
||||||
LDA.b [$04], Y
|
LDA.b [$04], Y
|
||||||
AND.w #$00FF
|
AND.w #$00FF
|
||||||
@@ -331,15 +424,28 @@ CheckEnemies:
|
|||||||
TXA : ASL A
|
TXA : ASL A
|
||||||
TAX
|
TAX
|
||||||
LDA.l DungeonMask, X : STA.b $08
|
LDA.l DungeonMask, X : STA.b $08
|
||||||
|
TXA : LSR A : TAX
|
||||||
|
|
||||||
.mask_set
|
.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
|
LDA.l SpriteDropData, X
|
||||||
PLX
|
PLX
|
||||||
AND.b $08
|
AND.b $08
|
||||||
BEQ .not_obtained
|
BEQ .not_obtained
|
||||||
PLA
|
PLA
|
||||||
BRA .next_enemy
|
JMP .next_enemy
|
||||||
|
|
||||||
.not_obtained
|
.not_obtained
|
||||||
PLA
|
PLA
|
||||||
@@ -380,3 +486,148 @@ GetLootClass:
|
|||||||
.done
|
.done
|
||||||
PLX
|
PLX
|
||||||
RTS
|
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:
|
DoorConnectionTiles:
|
||||||
|
.vertical
|
||||||
dw $0000, $0000 ; $00
|
dw $0000, $0000 ; $00
|
||||||
dw $01C0, $0000 ; $01 left -> left
|
dw $01C0, $0000 ; $01 left -> left
|
||||||
dw $01D0, $01D1 ; $02 left -> middle
|
dw $01D0, $01D1 ; $02 left -> middle
|
||||||
@@ -10,12 +11,33 @@ DoorConnectionTiles:
|
|||||||
dw $41D1, $41D0 ; $08 right -> middle
|
dw $41D1, $41D0 ; $08 right -> middle
|
||||||
dw $0000, $01C0 ; $09 right -> right
|
dw $0000, $01C0 ; $09 right -> right
|
||||||
dw $41C2, $41C1 ; $0A left-middle -> left-middle
|
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 $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 $01C0, $01C0 ; $0E left-right -> left-right
|
||||||
dw $01D0, $41D2 ; $0F left-right -> middle-right
|
dw $01D0, $41D2 ; $0F left-right -> middle-right
|
||||||
dw $C1D3, $01D3 ; $10 middle-right -> left-middle
|
dw $C1D3, $01D3 ; $10 middle-right -> left-middle
|
||||||
dw $81D0, $C1D2 ; $11 middle-right -> left-right
|
dw $81D0, $C1D2 ; $11 middle-right -> left-right
|
||||||
dw $01C1, $01C2 ; $12 middle-right -> middle-right
|
dw $01C1, $01C2 ; $12 middle-right -> middle-right
|
||||||
dw $41C2, $01C2 ; $13 triple -> triple
|
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
|
!TIER_UNKNOWN = $01
|
||||||
db $0B ; 01 - Master Sword
|
!TIER_JUNK = $02
|
||||||
db $0B ; 02 - Tempered Sword
|
!TIER_LOW_KEY = $03
|
||||||
db $0B ; 03 - Butter Sword
|
!TIER_HEALTH = $05
|
||||||
db $06 ; 04 - Fighter Shield
|
!TIER_MINOR = $06
|
||||||
db $06 ; 05 - Fire Shield
|
!TIER_MAP = $07
|
||||||
db $06 ; 06 - Mirror Shield
|
!TIER_COMPASS = $08
|
||||||
db $0B ; 07 - Fire Rod
|
!TIER_SM_KEY = $09
|
||||||
db $0B ; 08 - Ice Rod
|
!TIER_BIG_KEY = $0A
|
||||||
db $0B ; 09 - Hammer
|
!TIER_MAJOR = $0B
|
||||||
db $0B ; 0A - Hookshot
|
!TIER_PENDANT = $0C
|
||||||
db $0B ; 0B - Bow
|
!TIER_CRYSTAL = $0D
|
||||||
db $06 ; 0C - Boomerang
|
!TIER_TFP = $0E
|
||||||
db $0B ; 0D - Powder
|
!TIER_TFORCE = $0F
|
||||||
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
|
|
||||||
|
|
||||||
db $06 ; 4C - Bomb capacity (50)
|
db !TIER_MAJOR ; 00 - Fighter Sword and Shield
|
||||||
db $06 ; 4D - Arrow capacity (70)
|
db !TIER_MAJOR ; 01 - Master Sword
|
||||||
db $06 ; 4E - 1/2 magic
|
db !TIER_MAJOR ; 02 - Tempered Sword
|
||||||
db $06 ; 4F - 1/4 magic
|
db !TIER_MAJOR ; 03 - Butter Sword
|
||||||
db $0B ; 50 - Safe master sword
|
db !TIER_JUNK ; 04 - Fighter Shield
|
||||||
db $06 ; 51 - Bomb capacity (+5)
|
db !TIER_MINOR ; 05 - Fire Shield
|
||||||
db $06 ; 52 - Bomb capacity (+10)
|
db !TIER_MINOR ; 06 - Mirror Shield
|
||||||
db $06 ; 53 - Arrow capacity (+5)
|
db !TIER_MAJOR ; 07 - Fire Rod
|
||||||
db $06 ; 54 - Arrow capacity (+10)
|
db !TIER_MAJOR ; 08 - Ice Rod
|
||||||
db $02 ; 55 - Programmable item 1
|
db !TIER_MAJOR ; 09 - Hammer
|
||||||
db $02 ; 56 - Programmable item 2
|
db !TIER_MAJOR ; 0A - Hookshot
|
||||||
db $02 ; 57 - Programmable item 3
|
db !TIER_MAJOR ; 0B - Bow
|
||||||
db $0B ; 58 - Upgrade-only silver arrows
|
db !TIER_MINOR ; 0C - Boomerang
|
||||||
db $02 ; 59 - Rupoor
|
db !TIER_MINOR ; 0D - Powder
|
||||||
db $02 ; 5A - Nothing
|
db !TIER_JUNK ; 0E - Bottle Refill (bee)
|
||||||
db $02 ; 5B - Red clock
|
db !TIER_MAJOR ; 0F - Bombos
|
||||||
db $02 ; 5C - Blue clock
|
db !TIER_MAJOR ; 10 - Ether
|
||||||
db $02 ; 5D - Green clock
|
db !TIER_MAJOR ; 11 - Quake
|
||||||
db $0B ; 5E - Progressive sword
|
db !TIER_MAJOR ; 12 - Lamp
|
||||||
db $06 ; 5F - Progressive shield
|
db !TIER_MINOR ; 13 - Shovel
|
||||||
db $06 ; 60 - Progressive armor
|
db !TIER_MAJOR ; 14 - Flute
|
||||||
db $0B ; 61 - Progressive glove
|
db !TIER_MAJOR ; 15 - Somaria
|
||||||
db $02 ; 62 - RNG pool item (single)
|
db !TIER_MINOR ; 16 - Bottle
|
||||||
db $02 ; 63 - RNG pool item (multi)
|
db !TIER_HEALTH ; 17 - Heartpiece
|
||||||
db $0B ; 64 - Progressive bow
|
db !TIER_MINOR ; 18 - Byrna
|
||||||
db $0B ; 65 - Progressive bow
|
db !TIER_MINOR ; 19 - Cape
|
||||||
db $02 ; 66 -
|
db !TIER_MAJOR ; 1A - Mirror
|
||||||
db $02 ; 67 -
|
db !TIER_MAJOR ; 1B - Glove
|
||||||
db $02 ; 68 -
|
db !TIER_MAJOR ; 1C - Mitts
|
||||||
db $02 ; 69 -
|
db !TIER_MAJOR ; 1D - Book
|
||||||
db $0F ; 6A - Triforce
|
db !TIER_MAJOR ; 1E - Flippers
|
||||||
db $0E ; 6B - Power star
|
db !TIER_MAJOR ; 1F - Pearl
|
||||||
db $0E ; 6C - Triforce Piece
|
db !TIER_CRYSTAL ; 20 - Crystal
|
||||||
db $02 ; 6D - Server request item
|
db !TIER_MINOR ; 21 - Net
|
||||||
db $02 ; 6E - Server request item (dungeon drop)
|
db !TIER_MINOR ; 22 - Blue Mail
|
||||||
db $02 ; 6F -
|
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 !TIER_MINOR ; 4C - Bomb capacity (50)
|
||||||
db $02 ; 71 - Map of Dark World
|
db !TIER_MINOR ; 4D - Arrow capacity (70)
|
||||||
db $02 ; 72 - Map of Ganon's Tower
|
db !TIER_MINOR ; 4E - 1/2 magic
|
||||||
db $02 ; 73 - Map of Turtle Rock
|
db !TIER_MINOR ; 4F - 1/4 magic
|
||||||
db $02 ; 74 - Map of Thieves' Town
|
db !TIER_MAJOR ; 50 - Safe master sword
|
||||||
db $02 ; 75 - Map of Tower of Hera
|
db !TIER_MINOR ; 51 - Bomb capacity (+5)
|
||||||
db $02 ; 76 - Map of Ice Palace
|
db !TIER_MINOR ; 52 - Bomb capacity (+10)
|
||||||
db $02 ; 77 - Map of Skull Woods
|
db !TIER_MINOR ; 53 - Arrow capacity (+5)
|
||||||
db $02 ; 78 - Map of Misery Mire
|
db !TIER_MINOR ; 54 - Arrow capacity (+10)
|
||||||
db $02 ; 79 - Map of Dark Palace
|
db !TIER_JUNK ; 55 - Programmable item 1
|
||||||
db $02 ; 7A - Map of Swamp Palace
|
db !TIER_JUNK ; 56 - Programmable item 2
|
||||||
db $02 ; 7B - Map of Agahnim's Tower
|
db !TIER_JUNK ; 57 - Programmable item 3
|
||||||
db $02 ; 7C - Map of Desert Palace
|
db !TIER_MAJOR ; 58 - Upgrade-only silver arrows
|
||||||
db $02 ; 7D - Map of Eastern Palace
|
db !TIER_JUNK ; 59 - Rupoor
|
||||||
db $02 ; 7E - Map of Hyrule Castle
|
db !TIER_JUNK ; 5A - Nothing
|
||||||
db $02 ; 7F - Map of Sewers
|
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 !TIER_MAP ; 70 - Map of Light World
|
||||||
db $07 ; 81 - Compass of Dark World
|
db !TIER_MAP ; 71 - Map of Dark World
|
||||||
db $07 ; 82 - Compass of Ganon's Tower
|
db !TIER_MAP ; 72 - Map of Ganon's Tower
|
||||||
db $07 ; 83 - Compass of Turtle Rock
|
db !TIER_MAP ; 73 - Map of Turtle Rock
|
||||||
db $07 ; 84 - Compass of Thieves' Town
|
db !TIER_MAP ; 74 - Map of Thieves' Town
|
||||||
db $07 ; 85 - Compass of Tower of Hera
|
db !TIER_MAP ; 75 - Map of Tower of Hera
|
||||||
db $07 ; 86 - Compass of Ice Palace
|
db !TIER_MAP ; 76 - Map of Ice Palace
|
||||||
db $07 ; 87 - Compass of Skull Woods
|
db !TIER_MAP ; 77 - Map of Skull Woods
|
||||||
db $07 ; 88 - Compass of Misery Mire
|
db !TIER_MAP ; 78 - Map of Misery Mire
|
||||||
db $07 ; 89 - Compass of Dark Palace
|
db !TIER_MAP ; 79 - Map of Dark Palace
|
||||||
db $07 ; 8A - Compass of Swamp Palace
|
db !TIER_MAP ; 7A - Map of Swamp Palace
|
||||||
db $07 ; 8B - Compass of Agahnim's Tower
|
db !TIER_MAP ; 7B - Map of Agahnim's Tower
|
||||||
db $07 ; 8C - Compass of Desert Palace
|
db !TIER_MAP ; 7C - Map of Desert Palace
|
||||||
db $07 ; 8D - Compass of Eastern Palace
|
db !TIER_MAP ; 7D - Map of Eastern Palace
|
||||||
db $07 ; 8E - Compass of Hyrule Castle
|
db !TIER_MAP ; 7E - Map of Hyrule Castle
|
||||||
db $07 ; 8F - Compass of Sewers
|
db !TIER_MAP ; 7F - Map of Sewers
|
||||||
|
|
||||||
db $09 ; 90 - Skull key
|
db !TIER_COMPASS ; 80 - Compass of Light World
|
||||||
db $09 ; 91 - Reserved
|
db !TIER_COMPASS ; 81 - Compass of Dark World
|
||||||
db $09 ; 92 - Big key of Ganon's Tower
|
db !TIER_COMPASS ; 82 - Compass of Ganon's Tower
|
||||||
db $09 ; 93 - Big key of Turtle Rock
|
db !TIER_COMPASS ; 83 - Compass of Turtle Rock
|
||||||
db $09 ; 94 - Big key of Thieves' Town
|
db !TIER_COMPASS ; 84 - Compass of Thieves' Town
|
||||||
db $09 ; 95 - Big key of Tower of Hera
|
db !TIER_COMPASS ; 85 - Compass of Tower of Hera
|
||||||
db $09 ; 96 - Big key of Ice Palace
|
db !TIER_COMPASS ; 86 - Compass of Ice Palace
|
||||||
db $09 ; 97 - Big key of Skull Woods
|
db !TIER_COMPASS ; 87 - Compass of Skull Woods
|
||||||
db $09 ; 98 - Big key of Misery Mire
|
db !TIER_COMPASS ; 88 - Compass of Misery Mire
|
||||||
db $09 ; 99 - Big key of Dark Palace
|
db !TIER_COMPASS ; 89 - Compass of Dark Palace
|
||||||
db $09 ; 9A - Big key of Swamp Palace
|
db !TIER_COMPASS ; 8A - Compass of Swamp Palace
|
||||||
db $09 ; 9B - Big key of Agahnim's Tower
|
db !TIER_COMPASS ; 8B - Compass of Agahnim's Tower
|
||||||
db $09 ; 9C - Big key of Desert Palace
|
db !TIER_COMPASS ; 8C - Compass of Desert Palace
|
||||||
db $09 ; 9D - Big key of Eastern Palace
|
db !TIER_COMPASS ; 8D - Compass of Eastern Palace
|
||||||
db $09 ; 9E - Big key of Hyrule Castle
|
db !TIER_COMPASS ; 8E - Compass of Hyrule Castle
|
||||||
db $09 ; 9F - Big key of Sewers
|
db !TIER_COMPASS ; 8F - Compass of Sewers
|
||||||
|
|
||||||
db $08 ; A0 - Small key of Sewers
|
db !TIER_BIG_KEY ; 90 - Skull key
|
||||||
db $08 ; A1 - Small key of Hyrule Castle
|
db !TIER_BIG_KEY ; 91 - Reserved
|
||||||
db $08 ; A2 - Small key of Eastern Palace
|
db !TIER_BIG_KEY ; 92 - Big key of Ganon's Tower
|
||||||
db $08 ; A3 - Small key of Desert Palace
|
db !TIER_BIG_KEY ; 93 - Big key of Turtle Rock
|
||||||
db $08 ; A4 - Small key of Agahnim's Tower
|
db !TIER_BIG_KEY ; 94 - Big key of Thieves' Town
|
||||||
db $08 ; A5 - Small key of Swamp Palace
|
db !TIER_BIG_KEY ; 95 - Big key of Tower of Hera
|
||||||
db $08 ; A6 - Small key of Dark Palace
|
db !TIER_BIG_KEY ; 96 - Big key of Ice Palace
|
||||||
db $08 ; A7 - Small key of Misery Mire
|
db !TIER_BIG_KEY ; 97 - Big key of Skull Woods
|
||||||
db $08 ; A8 - Small key of Skull Woods
|
db !TIER_BIG_KEY ; 98 - Big key of Misery Mire
|
||||||
db $08 ; A9 - Small key of Ice Palace
|
db !TIER_BIG_KEY ; 99 - Big key of Dark Palace
|
||||||
db $08 ; AA - Small key of Tower of Hera
|
db !TIER_BIG_KEY ; 9A - Big key of Swamp Palace
|
||||||
db $08 ; AB - Small key of Thieves' Town
|
db !TIER_BIG_KEY ; 9B - Big key of Agahnim's Tower
|
||||||
db $08 ; AC - Small key of Turtle Rock
|
db !TIER_BIG_KEY ; 9C - Big key of Desert Palace
|
||||||
db $08 ; AD - Small key of Ganon's Tower
|
db !TIER_BIG_KEY ; 9D - Big key of Eastern Palace
|
||||||
db $02 ; AE - Reserved
|
db !TIER_BIG_KEY ; 9E - Big key of Hyrule Castle
|
||||||
db $03 ; AF - Generic small key
|
db !TIER_BIG_KEY ; 9F - Big key of Sewers
|
||||||
db $0D ; B0 - Crystal 6
|
|
||||||
db $0D ; B1 - Crystal 1
|
db !TIER_SM_KEY ; A0 - Small key of Sewers
|
||||||
db $0D ; B2 - Crystal 5
|
db !TIER_SM_KEY ; A1 - Small key of Hyrule Castle
|
||||||
db $0D ; B3 - Crystal 7
|
db !TIER_SM_KEY ; A2 - Small key of Eastern Palace
|
||||||
db $0D ; B4 - Crystal 2
|
db !TIER_SM_KEY ; A3 - Small key of Desert Palace
|
||||||
db $0D ; B5 - Crystal 4
|
db !TIER_SM_KEY ; A4 - Small key of Agahnim's Tower
|
||||||
db $0D ; B6 - Crystal 3
|
db !TIER_SM_KEY ; A5 - Small key of Swamp Palace
|
||||||
db $02 ; B7 - Reserved
|
db !TIER_SM_KEY ; A6 - Small key of Dark Palace
|
||||||
db $02 ; B8 -
|
db !TIER_SM_KEY ; A7 - Small key of Misery Mire
|
||||||
db $02 ; B9 -
|
db !TIER_SM_KEY ; A8 - Small key of Skull Woods
|
||||||
db $02 ; BA -
|
db !TIER_SM_KEY ; A9 - Small key of Ice Palace
|
||||||
db $02 ; BB -
|
db !TIER_SM_KEY ; AA - Small key of Tower of Hera
|
||||||
db $02 ; BC -
|
db !TIER_SM_KEY ; AB - Small key of Thieves' Town
|
||||||
db $02 ; BD -
|
db !TIER_SM_KEY ; AC - Small key of Turtle Rock
|
||||||
db $02 ; BE -
|
db !TIER_SM_KEY ; AD - Small key of Ganon's Tower
|
||||||
db $02 ; BF -
|
db !TIER_JUNK ; AE - Reserved
|
||||||
db $02 ; C0 -
|
db !TIER_LOW_KEY ; AF - Generic small key
|
||||||
db $02 ; C1 -
|
db !TIER_CRYSTAL ; B0 - Crystal 6
|
||||||
db $02 ; C2 -
|
db !TIER_CRYSTAL ; B1 - Crystal 1
|
||||||
db $02 ; C3 -
|
db !TIER_CRYSTAL ; B2 - Crystal 5
|
||||||
db $02 ; C4 -
|
db !TIER_CRYSTAL ; B3 - Crystal 7
|
||||||
db $02 ; C5 -
|
db !TIER_CRYSTAL ; B4 - Crystal 2
|
||||||
db $02 ; C6 -
|
db !TIER_CRYSTAL ; B5 - Crystal 4
|
||||||
db $02 ; C7 -
|
db !TIER_CRYSTAL ; B6 - Crystal 3
|
||||||
db $02 ; C8 -
|
db !TIER_JUNK ; B7 - Reserved
|
||||||
db $02 ; C9 -
|
db !TIER_JUNK ; B8 -
|
||||||
db $02 ; CA -
|
db !TIER_JUNK ; B9 -
|
||||||
db $02 ; CB -
|
db !TIER_JUNK ; BA -
|
||||||
db $02 ; CC -
|
db !TIER_JUNK ; BB -
|
||||||
db $02 ; CD -
|
db !TIER_JUNK ; BC -
|
||||||
db $02 ; CE -
|
db !TIER_JUNK ; BD -
|
||||||
db $02 ; CF -
|
db !TIER_JUNK ; BE -
|
||||||
db $02 ; D0 - Bee trap
|
db !TIER_JUNK ; BF -
|
||||||
db $02 ; D1 - Apples
|
db !TIER_JUNK ; C0 -
|
||||||
db $02 ; D2 - Fairy
|
db !TIER_JUNK ; C1 -
|
||||||
db $02 ; D3 - Chicken
|
db !TIER_JUNK ; C2 -
|
||||||
db $02 ; D4 - Big Magic
|
db !TIER_JUNK ; C3 -
|
||||||
db $02 ; D5 - 5 Arrows
|
db !TIER_JUNK ; C4 -
|
||||||
db $02 ; D6 - Good Bee
|
db !TIER_JUNK ; C5 -
|
||||||
db $02 ; D7 -
|
db !TIER_JUNK ; C6 -
|
||||||
db $02 ; D8 -
|
db !TIER_JUNK ; C7 -
|
||||||
db $02 ; D9 -
|
db !TIER_JUNK ; C8 -
|
||||||
db $02 ; DA -
|
db !TIER_JUNK ; C9 -
|
||||||
db $02 ; DB -
|
db !TIER_JUNK ; CA -
|
||||||
db $02 ; DC -
|
db !TIER_JUNK ; CB -
|
||||||
db $02 ; DD -
|
db !TIER_JUNK ; CC -
|
||||||
db $02 ; DE -
|
db !TIER_JUNK ; CD -
|
||||||
db $02 ; DF -
|
db !TIER_JUNK ; CE -
|
||||||
db $02 ; E0 -
|
db !TIER_JUNK ; CF -
|
||||||
db $02 ; E1 -
|
db !TIER_JUNK ; D0 - Bee trap
|
||||||
db $02 ; E2 -
|
db !TIER_JUNK ; D1 - Apples
|
||||||
db $02 ; E3 -
|
db !TIER_JUNK ; D2 - Fairy
|
||||||
db $02 ; E4 -
|
db !TIER_JUNK ; D3 - Chicken
|
||||||
db $02 ; E5 -
|
db !TIER_JUNK ; D4 - Big Magic
|
||||||
db $02 ; E6 -
|
db !TIER_JUNK ; D5 - 5 Arrows
|
||||||
db $02 ; E7 -
|
db !TIER_JUNK ; D6 - Good Bee
|
||||||
db $02 ; E8 -
|
db !TIER_JUNK ; D7 -
|
||||||
db $02 ; E9 -
|
db !TIER_JUNK ; D8 -
|
||||||
db $02 ; EA -
|
db !TIER_JUNK ; D9 -
|
||||||
db $02 ; EB -
|
db !TIER_JUNK ; DA -
|
||||||
db $02 ; EC -
|
db !TIER_JUNK ; DB -
|
||||||
db $02 ; ED -
|
db !TIER_JUNK ; DC -
|
||||||
db $02 ; EE -
|
db !TIER_JUNK ; DD -
|
||||||
db $02 ; EF -
|
db !TIER_JUNK ; DE -
|
||||||
db $02 ; F0 -
|
db !TIER_JUNK ; DF -
|
||||||
db $02 ; F1 -
|
db !TIER_JUNK ; E0 -
|
||||||
db $02 ; F2 -
|
db !TIER_JUNK ; E1 -
|
||||||
db $02 ; F3 -
|
db !TIER_JUNK ; E2 -
|
||||||
db $02 ; F4 -
|
db !TIER_JUNK ; E3 -
|
||||||
db $02 ; F5 -
|
db !TIER_JUNK ; E4 -
|
||||||
db $02 ; F6 -
|
db !TIER_JUNK ; E5 -
|
||||||
db $02 ; F7 -
|
db !TIER_JUNK ; E6 -
|
||||||
db $02 ; F8 -
|
db !TIER_JUNK ; E7 -
|
||||||
db $02 ; F9 -
|
db !TIER_JUNK ; E8 -
|
||||||
db $02 ; FA -
|
db !TIER_JUNK ; E9 -
|
||||||
db $02 ; FB -
|
db !TIER_JUNK ; EA -
|
||||||
db $02 ; FC -
|
db !TIER_JUNK ; EB -
|
||||||
db $02 ; FD -
|
db !TIER_JUNK ; EC -
|
||||||
db $02 ; FE - Server request (async)
|
db !TIER_JUNK ; ED -
|
||||||
db $02 ; FF -
|
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 $012E, $012F, $013E, $013F ; 14
|
||||||
dw $C374, $8340, $4341, $0340 ; 15
|
dw $C374, $8340, $4341, $0340 ; 15
|
||||||
dw $0108, $0109, $436B, $036B ; 16
|
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 $C3B5, $FFFF, $43B4, $FFFF ; 18 - useless fairy drop
|
||||||
dw $FFFF, $8369, $FFFF, $035A ; 19
|
dw $FFFF, $8369, $FFFF, $035A ; 19
|
||||||
dw $03E7, $03E8, $03F7, $0361 ; 1A
|
dw $03E7, $03E8, $03F7, $0361 ; 1A
|
||||||
@@ -37,7 +37,7 @@ dw $FFFF, $FFFF, $FFFF, $039B ; 23
|
|||||||
dw $4365, $0365, $0132, $0133 ; 24
|
dw $4365, $0365, $0132, $0133 ; 24
|
||||||
dw $FFFF, $FFFF, $FFFF, $FFFF ; 25 - unused
|
dw $FFFF, $FFFF, $FFFF, $FFFF ; 25 - unused
|
||||||
dw $039B, $03E4, $4363, $0382 ; 26
|
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 $C3A5, $FFFF, $4358, $0348 ; 28
|
||||||
dw $FFFF, $FFFF, $FFFF, $0396 ; 29 - Mothula
|
dw $FFFF, $FFFF, $FFFF, $0396 ; 29 - Mothula
|
||||||
dw $C350, $8352, $4350, $03F8 ; 2A
|
dw $C350, $8352, $4350, $03F8 ; 2A
|
||||||
@@ -98,8 +98,8 @@ dw $FFFF, $8379, $FFFF, $036A ; 60
|
|||||||
dw $C387, $8385, $4356, $0356 ; 61
|
dw $C387, $8385, $4356, $0356 ; 61
|
||||||
dw $C346, $8354, $4352, $0340 ; 62
|
dw $C346, $8354, $4352, $0340 ; 62
|
||||||
dw $039A, $FFFF, $0361, $FFFF ; 63
|
dw $039A, $FFFF, $0361, $FFFF ; 63
|
||||||
dw $FFFF, $FFFF, $8399, $C3B1 ; 64
|
dw $FFFF, $FFFF, $8399, $0367 ; 64
|
||||||
dw $FFFF, $FFFF, $83B1, $0381 ; 65
|
dw $FFFF, $FFFF, $0367, $0381 ; 65
|
||||||
dw $038F, $039A, $0362, $83B2 ; 66
|
dw $038F, $039A, $0362, $83B2 ; 66
|
||||||
dw $83B4, $83B5, $03B7, $039F ; 67
|
dw $83B4, $83B5, $03B7, $039F ; 67
|
||||||
dw $C340, $8350, $4341, $0340 ; 68
|
dw $C340, $8350, $4341, $0340 ; 68
|
||||||
@@ -162,7 +162,7 @@ dw $839B, $C39C, $FFFF, $FFFF ; A0
|
|||||||
dw $C3B0, $835D, $FFFF, $036A ; A1
|
dw $C3B0, $835D, $FFFF, $036A ; A1
|
||||||
dw $03EE, $03EF, $03FE, $03FF ; A2
|
dw $03EE, $03EF, $03FE, $03FF ; A2
|
||||||
dw $C35A, $FFFF, $436A, $FFFF ; A3
|
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 $039A, $0361, $C3B2, $83B2 ; A5
|
||||||
dw $C340, $8370, $4340, $0340 ; A6
|
dw $C340, $8370, $4340, $0340 ; A6
|
||||||
dw $C396, $FFFF, $FFFF, $FFFF ; A7 - ToH fairy basement room
|
dw $C396, $FFFF, $FFFF, $FFFF ; A7 - ToH fairy basement room
|
||||||
|
|||||||
@@ -29,6 +29,12 @@ DrawLoot:
|
|||||||
LDA.b $07
|
LDA.b $07
|
||||||
STA.w $021B
|
STA.w $021B
|
||||||
|
|
||||||
|
LDA.l DRMode
|
||||||
|
BEQ +
|
||||||
|
LDA.l DungeonMapMode
|
||||||
|
BNE +
|
||||||
|
BRA .skip
|
||||||
|
+
|
||||||
REP #$30
|
REP #$30
|
||||||
PHX : PHY
|
PHX : PHY
|
||||||
|
|
||||||
@@ -60,6 +66,7 @@ DrawLoot:
|
|||||||
STA.b NMISTRIPES
|
STA.b NMISTRIPES
|
||||||
|
|
||||||
PLY : PLX
|
PLY : PLX
|
||||||
|
.skip
|
||||||
LDA.b #$00
|
LDA.b #$00
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,13 @@ FinishRoom:
|
|||||||
TAX
|
TAX
|
||||||
JML $8AE7F6
|
JML $8AE7F6
|
||||||
|
|
||||||
|
NormalDrawDungeonMapRoom:
|
||||||
|
JSL DrawDungeonMapRoom
|
||||||
|
JMP FinishRoom
|
||||||
|
|
||||||
; $CA has room_id
|
; $CA has room_id
|
||||||
|
; $0E has quadrant flags
|
||||||
|
; X has address to draw at
|
||||||
DrawDungeonMapRoom:
|
DrawDungeonMapRoom:
|
||||||
REP #$20
|
REP #$20
|
||||||
PHB : PHK : PLB ; need to keep this in same bank as data, or else specify bank
|
PHB : PHK : PLB ; need to keep this in same bank as data, or else specify bank
|
||||||
@@ -136,7 +142,7 @@ DrawDungeonMapRoom:
|
|||||||
.done
|
.done
|
||||||
PLA : STA.b $0A
|
PLA : STA.b $0A
|
||||||
PLB
|
PLB
|
||||||
JMP FinishRoom
|
RTL
|
||||||
|
|
||||||
DrawEntrances:
|
DrawEntrances:
|
||||||
REP #$30
|
REP #$30
|
||||||
|
|||||||
@@ -1,4 +1,65 @@
|
|||||||
CheckSwitchMap:
|
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
|
SEP #$20
|
||||||
LDA.b $F6
|
LDA.b $F6
|
||||||
AND.b #$30
|
AND.b #$30
|
||||||
@@ -6,7 +67,7 @@ CheckSwitchMap:
|
|||||||
|
|
||||||
; what we wrote over
|
; what we wrote over
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA.w $8AF5E9, X
|
LDA.w DungeonMapFloorCountData, X
|
||||||
AND.w #$000F
|
AND.w #$000F
|
||||||
CLC : ADC.b $00
|
CLC : ADC.b $00
|
||||||
RTL
|
RTL
|
||||||
@@ -99,7 +160,12 @@ SkipMapSprites:
|
|||||||
|
|
||||||
LDA.l DRMode
|
LDA.l DRMode
|
||||||
BEQ +
|
BEQ +
|
||||||
JML $8AEAEE
|
LDA.l DungeonMapMode
|
||||||
|
BEQ .no_vanilla_draw
|
||||||
|
JML $8AEADE
|
||||||
|
.no_vanilla_draw
|
||||||
|
JSL DrawDoorsMapSprites
|
||||||
|
JML $8AEAFC
|
||||||
+
|
+
|
||||||
|
|
||||||
LDA.l CachedDungeonID
|
LDA.l CachedDungeonID
|
||||||
@@ -161,6 +227,7 @@ DrawDungeonLabel:
|
|||||||
LDY.b #$20
|
LDY.b #$20
|
||||||
+
|
+
|
||||||
|
|
||||||
|
; Dungeon Label
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA.w #$E660
|
LDA.w #$E660
|
||||||
STA.w GFXStripes+$02, Y
|
STA.w GFXStripes+$02, Y
|
||||||
@@ -171,9 +238,110 @@ DrawDungeonLabel:
|
|||||||
STA.w GFXStripes+$06, Y
|
STA.w GFXStripes+$06, Y
|
||||||
LDA.l DungeonLabels+2, X
|
LDA.l DungeonLabels+2, X
|
||||||
STA.w GFXStripes+$08, Y
|
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
|
SEP #$20
|
||||||
LDA.b #$FF
|
LDA.b #$FF
|
||||||
STA.w GFXStripes+$0A, Y
|
STA.w GFXStripes+$02, Y
|
||||||
LDA.b #$01
|
LDA.b #$01
|
||||||
STA.b NMISTRIPES
|
STA.b NMISTRIPES
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ db $08
|
|||||||
; use AA1 = $1C for map stuff
|
; use AA1 = $1C for map stuff
|
||||||
org $80E193
|
org $80E193
|
||||||
skip 4
|
skip 4
|
||||||
db $61, $62, $62, $D6
|
db $61, $62, $63, $D6
|
||||||
|
|
||||||
org $8AE11D
|
org $8AE11D
|
||||||
LDA.b #$1C
|
LDA.b #$1C
|
||||||
@@ -13,10 +13,6 @@ LDA.b #$1C
|
|||||||
org $8AE12B
|
org $8AE12B
|
||||||
LDA.b #$20
|
LDA.b #$20
|
||||||
|
|
||||||
; change dungeon map subsheet gfx in TR
|
|
||||||
; org $80DDC9
|
|
||||||
; db $57
|
|
||||||
|
|
||||||
; dungeon map sheets
|
; dungeon map sheets
|
||||||
org $80DD97
|
org $80DD97
|
||||||
db $61, $56, $57, $62
|
db $61, $56, $57, $62
|
||||||
@@ -75,7 +71,7 @@ org $8AEE2B
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $8AE64D
|
org $8AE64D
|
||||||
PLX
|
PLX
|
||||||
JML DrawDungeonMapRoom
|
JML NormalDrawDungeonMapRoom
|
||||||
|
|
||||||
org $8AE606
|
org $8AE606
|
||||||
PLX
|
PLX
|
||||||
@@ -221,3 +217,53 @@ org $8AE8F9
|
|||||||
org $8AEBC6
|
org $8AEBC6
|
||||||
JSL GetLocationMarkerLeft
|
JSL GetLocationMarkerLeft
|
||||||
NOP
|
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
|
pullpc
|
||||||
|
|
||||||
incsrc mappable_doors.asm
|
incsrc mappable_doors.asm
|
||||||
|
incsrc current_room_map.asm
|
||||||
incsrc draw_rooms.asm
|
incsrc draw_rooms.asm
|
||||||
incsrc map_bg3.asm
|
incsrc map_bg3.asm
|
||||||
incsrc dungeon_switch.asm
|
incsrc dungeon_switch.asm
|
||||||
incsrc draw_loot.asm
|
incsrc draw_loot.asm
|
||||||
incsrc check_loot.asm
|
incsrc check_loot.asm
|
||||||
incsrc blink_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
|
.dungeon_map
|
||||||
LDA.l DungeonMapMode
|
LDA.l DungeonMapMode
|
||||||
BNE .doors
|
BNE .4x3
|
||||||
|
LDA.l DRMode
|
||||||
|
BNE .6x6
|
||||||
|
|
||||||
.not_doors
|
.5x5
|
||||||
LDA.b #BG3DungeonMapStripes>>0
|
LDA.b #BG3DungeonMap5x5Stripes>>0
|
||||||
STA.b $00
|
STA.b $00
|
||||||
LDA.b #BG3DungeonMapStripes>>8
|
LDA.b #BG3DungeonMap5x5Stripes>>8
|
||||||
STA.b $01
|
STA.b $01
|
||||||
LDA.b #BG3DungeonMapStripes>>16
|
LDA.b #BG3DungeonMap5x5Stripes>>16
|
||||||
STA.b $02
|
STA.b $02
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
.doors
|
.4x3
|
||||||
LDA.b #BG3DungeonMapDoorStripes>>0
|
LDA.b #BG3DungeonMap4x3Stripes>>0
|
||||||
STA.b $00
|
STA.b $00
|
||||||
LDA.b #BG3DungeonMapDoorStripes>>8
|
LDA.b #BG3DungeonMap4x3Stripes>>8
|
||||||
STA.b $01
|
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
|
STA.b $02
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
@@ -71,7 +82,7 @@ macro VanillaCommonMapStripes()
|
|||||||
endmacro
|
endmacro
|
||||||
|
|
||||||
|
|
||||||
BG3DungeonMapStripes:
|
BG3DungeonMap5x5Stripes:
|
||||||
%VanillaCommonMapStripes()
|
%VanillaCommonMapStripes()
|
||||||
; left edge of map border, from vanilla
|
; left edge of map border, from vanilla
|
||||||
dw $4E60, $0100, $2100
|
dw $4E60, $0100, $2100
|
||||||
@@ -122,7 +133,7 @@ endmacro
|
|||||||
|
|
||||||
db $FF
|
db $FF
|
||||||
|
|
||||||
BG3DungeonMapDoorStripes:
|
BG3DungeonMap4x3Stripes:
|
||||||
%VanillaCommonMapStripes()
|
%VanillaCommonMapStripes()
|
||||||
; left edge of map border, adjusted from vanilla
|
; left edge of map border, adjusted from vanilla
|
||||||
dw $4D60, $0100, $2100
|
dw $4D60, $0100, $2100
|
||||||
@@ -174,3 +185,96 @@ endmacro
|
|||||||
%FullDoorRow($6311)
|
%FullDoorRow($6311)
|
||||||
|
|
||||||
db $FF
|
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 $29E9, $69E9, $29F9, $69F9 ; 04 - triforce piece
|
||||||
dw $29DD, $69DD, $A9DD, $E9DD ; 05 - safety - plus
|
dw $29DD, $69DD, $A9DD, $E9DD ; 05 - safety - plus
|
||||||
dw $29EC, $69EC, $29FC, $69FC ; 06 - less important item - small chest
|
dw $29EC, $69EC, $29FC, $69FC ; 06 - less important item - small chest
|
||||||
dw $29E8, $69E8, $29F8, $69F8 ; 07 - compass
|
dw $29CE, $29CF, $29DE, $29DF ; 07 - map
|
||||||
dw $29CA, $69CA, $29DA, $29DB ; 08 - small key
|
dw $29E8, $69E8, $29F8, $69F8 ; 08 - compass
|
||||||
dw $29C8, $69C8, $29D8, $29D9 ; 09 - big key
|
dw $29CA, $69CA, $29DA, $29DB ; 09 - small key
|
||||||
dw $29CC, $29CD, $29DC, $69DC ; 0A - pendant
|
dw $29C8, $69C8, $29D8, $29D9 ; 0A - big key
|
||||||
dw $29ED, $69ED, $29FD, $69FD ; 0B - important inventory item - big chest
|
dw $29ED, $69ED, $29FD, $69FD ; 0B - important inventory item - big chest
|
||||||
dw $29CC, $29CD, $29DC, $69DC ; 0C - pendant
|
dw $29CC, $29CD, $29DC, $69DC ; 0C - pendant
|
||||||
dw $2DC9, $69C9, $A9C9, $EDC9 ; 0D - crystal
|
dw $2DC9, $69C9, $A9C9, $EDC9 ; 0D - crystal
|
||||||
@@ -129,7 +129,7 @@ pad $B9FB00
|
|||||||
; $B9FB00
|
; $B9FB00
|
||||||
DungeonLabels:
|
DungeonLabels:
|
||||||
dw $2550, $2579 ; Sewers
|
dw $2550, $2579 ; Sewers
|
||||||
dw $2550, $2578 ; Hyrule Castle
|
dw $2564, $255F ; Hyrule Castle
|
||||||
dw $2561, $256C ; Eastern Palace
|
dw $2561, $256C ; Eastern Palace
|
||||||
dw $2560, $256C ; Desert Palace
|
dw $2560, $256C ; Desert Palace
|
||||||
dw $255D, $2570 ; Agahnim's Tower
|
dw $255D, $2570 ; Agahnim's Tower
|
||||||
@@ -197,11 +197,12 @@ org $B9FF10
|
|||||||
ItemSources:
|
ItemSources:
|
||||||
db $09
|
db $09
|
||||||
|
|
||||||
|
; $B9FF11
|
||||||
AlwaysShowCompass:
|
AlwaysShowCompass:
|
||||||
db $01
|
db $01
|
||||||
|
|
||||||
; $00 - vanilla 5x5 maps
|
; $B9FF12
|
||||||
; $01 - special DR 4x3 maps
|
; $0000 - vanilla 5x5 maps
|
||||||
|
; $0001 - special DR 4x3 maps
|
||||||
DungeonMapMode:
|
DungeonMapMode:
|
||||||
dw $0000
|
dw $0000
|
||||||
|
|
||||||
|
|||||||
@@ -248,7 +248,7 @@ DrawPlayerFileShared:
|
|||||||
|
|
||||||
; Flute
|
; Flute
|
||||||
LDA.l InventoryTrackingSRAM : AND.w #$0003 : BEQ +
|
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)
|
%fs_drawItem(7,16,FileSelectItems_flute)
|
||||||
BRA ++
|
BRA ++
|
||||||
.pseudo
|
.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
|
InitBowTracking: skip 2 ; PC 0x18338E / boomerangs, powder/mushroom, etc
|
||||||
InitItemLimitCounts: skip 16 ; PC 0x183390
|
InitItemLimitCounts: skip 16 ; PC 0x183390
|
||||||
skip 34 ;
|
skip 34 ;
|
||||||
InitFluteBitfield: db $FF ;
|
InitFluteBitfield: db $00 ;
|
||||||
InitSpecialWeaponLevel: db $00 ;
|
InitSpecialWeaponLevel: db $00 ;
|
||||||
InitItemOnB: db $00 ;
|
InitItemOnB: db $00 ;
|
||||||
InitProgressIndicator: db $02 ; PC 0x1833C5 - Set to $80 for instant post-aga with standard
|
InitProgressIndicator: db $02 ; PC 0x1833C5 - Set to $80 for instant post-aga with standard
|
||||||
|
|||||||
@@ -34,16 +34,20 @@ RTL
|
|||||||
; Output: 0 locked, 1 open
|
; Output: 0 locked, 1 open
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
CheckForZelda:
|
CheckForZelda:
|
||||||
LDA.l ProgressIndicator : CMP.b #$02 : !BLT + ; Skip if rain is falling
|
LDA.l ProgressIndicator : CMP.b #$02 : !BLT + ; Skip if rain is falling
|
||||||
LDA.b #$01 ; pretend we have zelda anyway
|
LDA.b #$01 ; pretend we have zelda anyway
|
||||||
RTL
|
RTL
|
||||||
+
|
+
|
||||||
LDA.l FollowerIndicator
|
LDA.l FollowerIndicator
|
||||||
RTL
|
RTL
|
||||||
;================================================================================
|
;================================================================================
|
||||||
SetOverlayIfLamp:
|
SetOverlayIfLamp:
|
||||||
JSL LampCheck
|
JSL LampCheck
|
||||||
STA.b SUBDESQ ; write it directly to the overlay, this isn't a terrible idea at all
|
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
|
RTL
|
||||||
;================================================================================
|
;================================================================================
|
||||||
; Mantle Object Changes
|
; 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
|
BRA .store_inventory_tracking
|
||||||
|
|
||||||
.flute_inactive
|
.flute_inactive
|
||||||
LDA.b #$FF : STA.l FluteBitfield
|
LDA.b #$00 : STA.l FluteBitfield
|
||||||
LDA.l InventoryTracking : ORA.b #$02
|
LDA.l InventoryTracking : ORA.b #$02
|
||||||
BRA .store_inventory_tracking
|
BRA .store_inventory_tracking
|
||||||
|
|
||||||
.flute_active
|
.flute_active
|
||||||
LDA.b #$FF : STA.l FluteBitfield
|
LDA.b #$00 : STA.l FluteBitfield
|
||||||
LDA.l InventoryTracking : ORA.b #$01
|
LDA.l InventoryTracking : ORA.b #$01
|
||||||
BRA .store_inventory_tracking
|
BRA .store_inventory_tracking
|
||||||
|
|
||||||
|
|||||||
@@ -320,7 +320,7 @@ OWLightWorldOrCrossed:
|
|||||||
|
|
||||||
OWFluteCancel:
|
OWFluteCancel:
|
||||||
{
|
{
|
||||||
lda.l FluteBitfield : beq +
|
lda.l FluteBitfield : cmp.b #$FF : beq +
|
||||||
lda.l OWFlags+1 : and.b #$01 : bne +
|
lda.l OWFlags+1 : and.b #$01 : bne +
|
||||||
jsl FluteMenu_LoadTransport : rtl
|
jsl FluteMenu_LoadTransport : rtl
|
||||||
+ lda.w RandoOverworldTargetEdge : bne +
|
+ lda.w RandoOverworldTargetEdge : bne +
|
||||||
@@ -332,7 +332,7 @@ OWFluteCancel2:
|
|||||||
lda.b Joy1B_All : ora.b Joy1A_All : and.b #$c0 : bne +
|
lda.b Joy1B_All : ora.b Joy1A_All : and.b #$c0 : bne +
|
||||||
jml FluteMenu_HandleSelection_NoSelection
|
jml FluteMenu_HandleSelection_NoSelection
|
||||||
+ inc.w SubModuleInterface
|
+ 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.l OWFlags+1 : and.b #$01 : beq +
|
||||||
lda.b Joy1B_All : cmp.b #$40 : bne +
|
lda.b Joy1B_All : cmp.b #$40 : bne +
|
||||||
.cancel
|
.cancel
|
||||||
|
|||||||
@@ -1,35 +1,37 @@
|
|||||||
SelectFirstFluteSpot:
|
SelectFirstFluteSpot:
|
||||||
LDA.l FluteBitfield
|
LDA.l FluteBitfield
|
||||||
|
CMP.b #$FF
|
||||||
BNE +
|
BNE +
|
||||||
RTL
|
RTL
|
||||||
+ LDA.b #$07
|
+ LDA.b #$07
|
||||||
STA.w $1AF0
|
STA.w FluteSelection
|
||||||
.try_next
|
.try_next
|
||||||
LDA.w $1AF0
|
LDA.w FluteSelection
|
||||||
INC A
|
INC A
|
||||||
AND.b #$07
|
AND.b #$07
|
||||||
STA.w $1AF0
|
STA.w FluteSelection
|
||||||
TAX
|
TAX
|
||||||
|
|
||||||
LDA.l FluteBitfield
|
LDA.l FluteBitfield
|
||||||
AND.l $8AB7A3, X
|
AND.l FluteMenuNumbers_bits, X
|
||||||
BEQ .try_next
|
BNE .try_next
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
SelectFluteNext:
|
SelectFluteNext:
|
||||||
LDA.l FluteBitfield
|
LDA.l FluteBitfield
|
||||||
|
CMP.b #$FF
|
||||||
BEQ InvalidBeep
|
BEQ InvalidBeep
|
||||||
|
|
||||||
.try_next
|
.try_next
|
||||||
LDA.w $1AF0
|
LDA.w FluteSelection
|
||||||
INC A
|
INC A
|
||||||
AND.b #$07
|
AND.b #$07
|
||||||
STA.w $1AF0
|
STA.w FluteSelection
|
||||||
TAX
|
TAX
|
||||||
|
|
||||||
LDA.l FluteBitfield
|
LDA.l FluteBitfield
|
||||||
AND.l $8AB7A3, X
|
AND.l FluteMenuNumbers_bits, X
|
||||||
BEQ .try_next
|
BNE .try_next
|
||||||
|
|
||||||
LDA.b #$20
|
LDA.b #$20
|
||||||
STA.w $012F
|
STA.w $012F
|
||||||
@@ -37,18 +39,19 @@ RTL
|
|||||||
|
|
||||||
SelectFlutePrev:
|
SelectFlutePrev:
|
||||||
LDA.l FluteBitfield
|
LDA.l FluteBitfield
|
||||||
|
CMP.b #$FF
|
||||||
BEQ InvalidBeep
|
BEQ InvalidBeep
|
||||||
|
|
||||||
.try_next
|
.try_next
|
||||||
LDA.w $1AF0
|
LDA.w FluteSelection
|
||||||
DEC A
|
DEC A
|
||||||
AND.b #$07
|
AND.b #$07
|
||||||
STA.w $1AF0
|
STA.w FluteSelection
|
||||||
TAX
|
TAX
|
||||||
|
|
||||||
LDA.l FluteBitfield
|
LDA.l FluteBitfield
|
||||||
AND.l $8AB7A3, X
|
AND.l FluteMenuNumbers_bits, X
|
||||||
BEQ .try_next
|
BNE .try_next
|
||||||
|
|
||||||
LDA.b #$20
|
LDA.b #$20
|
||||||
STA.w $012F
|
STA.w $012F
|
||||||
@@ -62,8 +65,8 @@ RTL
|
|||||||
SetFluteSpotPalette:
|
SetFluteSpotPalette:
|
||||||
XBA
|
XBA
|
||||||
LDA.l FluteBitfield
|
LDA.l FluteBitfield
|
||||||
AND.l $8AB7A3, X
|
AND.l FluteMenuNumbers_bits, X
|
||||||
BEQ .disabled
|
BNE .disabled
|
||||||
.enabled
|
.enabled
|
||||||
XBA
|
XBA
|
||||||
STA.b $0C
|
STA.b $0C
|
||||||
@@ -93,8 +96,9 @@ MaybeMarkFluteSpotVisited:
|
|||||||
TXA
|
TXA
|
||||||
LSR A
|
LSR A
|
||||||
TAX
|
TAX
|
||||||
LDA.l FluteBitfield
|
LDA.l FluteMenuNumbers_bits, X
|
||||||
ORA.l $8AB7A3, X
|
EOR.b #$FF
|
||||||
|
AND.l FluteBitfield
|
||||||
STA.l FluteBitfield
|
STA.l FluteBitfield
|
||||||
|
|
||||||
.done
|
.done
|
||||||
@@ -113,33 +117,9 @@ CheckTransitionOverworld:
|
|||||||
STA.w $040A ; what we wrote over
|
STA.w $040A ; what we wrote over
|
||||||
JML MaybeMarkFluteSpotVisited
|
JML MaybeMarkFluteSpotVisited
|
||||||
|
|
||||||
DrawFluteIcon:
|
CheckFlute:
|
||||||
AND.w #$00FF
|
|
||||||
CMP.w #$0002
|
|
||||||
BCC .write
|
|
||||||
LDA.l FluteBitfield
|
LDA.l FluteBitfield
|
||||||
AND.w #$00FF
|
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
|
BNE .pseudo
|
||||||
.real
|
.real
|
||||||
LDA.w #$0003
|
LDA.w #$0003
|
||||||
@@ -147,4 +127,24 @@ CheckFluteInHUD:
|
|||||||
.pseudo
|
.pseudo
|
||||||
LDA.w #$0002
|
LDA.w #$0002
|
||||||
.done
|
.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
|
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)
|
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 (?).
|
IrisPtr = $7E1B00 ; Spotlight pointers for HDMA. $1C0 bytes (?).
|
||||||
;
|
;
|
||||||
MessageSubModule = $7E1CD8 ;
|
MessageSubModule = $7E1CD8 ;
|
||||||
@@ -566,6 +568,14 @@ GameOverSongCache = $7EC227 ;
|
|||||||
CachedDungeonID = $7EC22A ; Cached while opening dungeon map
|
CachedDungeonID = $7EC22A ; Cached while opening dungeon map
|
||||||
CachedCurrentFloor = $7EC22B ; to restore when closing
|
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.
|
LastBGSet = $7EC2F8 ; Lists loaded sheets to check for decompression. 4 bytes.
|
||||||
;
|
;
|
||||||
PaletteBufferAux = $7EC300 ; Secondary and main palette buffer. See symbols_wram.asm
|
PaletteBufferAux = $7EC300 ; Secondary and main palette buffer. See symbols_wram.asm
|
||||||
|
|||||||
@@ -280,10 +280,16 @@ Module1B_SpawnSelect_spawns = $828481
|
|||||||
Overworld_ActualScreenID = $82A4E3
|
Overworld_ActualScreenID = $82A4E3
|
||||||
UnderworldTransitionLandingCoordinate = $82C034
|
UnderworldTransitionLandingCoordinate = $82C034
|
||||||
Overworld_FinalizeEntryOntoScreen_Data = $82C176
|
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
|
EntranceData_song = $82D592
|
||||||
SpawnPointData_room_id = $82D8D2
|
SpawnPointData_room_id = $82D8D2
|
||||||
Overworld_CheckForSpecialOverworldTrigger_Direction = $84E879
|
Overworld_CheckForSpecialOverworldTrigger_Direction = $84E879
|
||||||
Sprite_ShowSolicitedMessage_Direction = $85E1A3
|
Sprite_ShowSolicitedMessage_Direction = $85E1A3
|
||||||
|
FluteMenuNumbers_bits = $8AB7A3
|
||||||
WorldMap_RedXChars = $8ABF70
|
WorldMap_RedXChars = $8ABF70
|
||||||
WorldMap_CalculateOAMCoordinates = $8AC3B1
|
WorldMap_CalculateOAMCoordinates = $8AC3B1
|
||||||
WorldMap_HandleSpriteBlink = $8AC52E
|
WorldMap_HandleSpriteBlink = $8AC52E
|
||||||
|
|||||||
Reference in New Issue
Block a user