Lots of bugs fixes and supertile updates

This commit is contained in:
2026-01-04 09:03:23 -06:00
parent 7fc7c8fe0b
commit fd8852d866
12 changed files with 235 additions and 192 deletions

View File

@@ -16,6 +16,10 @@ CheckLoot:
AND.w #$00FF
STA.b $0E
LDA.b $00
ASL A
TAX
LDA.l SaveDataWRAM, X
AND.w #$000F
BEQ +
@@ -25,7 +29,7 @@ CheckLoot:
BCC +
STA.b $0E
+ LDA.b DungeonID
+ LDA.w DungeonID
TAX
LDA.l MapField
@@ -233,8 +237,12 @@ CheckPots:
BRA .next_pot
.small_key
LDA.w #$8000 : STA.b $08
LDA.w #$0024
BRA .continue
PHA
PHX
INY
BRA .mask_set
.major_item
LDA.b [$04], Y
.continue
@@ -242,13 +250,16 @@ CheckPots:
PHX
INY
TXA : ASL A
EOR.w #$FFFF
CLC : ADC.w #$001F ; bit mask table is in opposite order of what we want
TAX
LDA.l DungeonMask, X : STA.b $08
.mask_set
LDA.b $00 : ASL A : TAX
if !FEATURE_FIX_BASEROM
LDA.l SpriteDropData, X
else
LDA.l RoomPotData, X
endif
PLX
AND.b $08
BEQ .not_obtained
@@ -281,6 +292,8 @@ CheckEnemies:
LDA.b [$04], Y
AND.w #$00FF
CMP.w #$00FF : BEQ .done
LDA.b [$04], Y
BIT.w #$8000 : BNE .overlord
INY : INY
LDA.b [$04], Y
AND.w #$00FF
@@ -288,24 +301,34 @@ CheckEnemies:
CMP.w #$00F9 : BEQ .major ; major item in other world
CMP.w #$00E4 : BEQ .vanilla_key
INY
INX
BRA .next_enemy
.overlord
INY : INY : INY
BRA .next_enemy
.vanilla_key
DEY : DEY
LDA.w #$8000 : STA.b $08
LDA.b [$04], Y
INY #3
AND.w #$00FF
CMP.w #$00FD ; big key
BEQ .big_key
CMP.w #$00FE ; small key
BEQ .small_key
INY #3 ; false alarm -- probably hera basement key
; false alarm -- probably hera basement key
INX ; since it's an actual sprite it advances the counter
BRA .next_enemy
.small_key
LDA.w #$0024
BRA .proceed
PHA : PHX
BRA .mask_set
.big_key
LDA.w #$0032
BRA .proceed
PHA : PHX
BRA .mask_set
.major
DEY : DEY
@@ -313,7 +336,6 @@ CheckEnemies:
AND.w #$00FF
.proceed
INX
INY : INY : INY
PHA
@@ -322,6 +344,7 @@ CheckEnemies:
TAX
LDA.l DungeonMask, X : STA.b $08
.mask_set
LDA.b $00 : ASL A : TAX
LDA.l SpriteDropData, X
PLX
@@ -334,7 +357,7 @@ CheckEnemies:
PLA
AND.w #$00FF
JSR GetLootClass
BRA .next_enemy
JMP .next_enemy
.done
RTS

View File

@@ -1,65 +1,65 @@
db $0A ; 00 - Fighter Sword and Shield
db $0A ; 01 - Master Sword
db $0A ; 02 - Tempered Sword
db $0A ; 03 - Butter Sword
db $0B ; 00 - Fighter Sword and Shield
db $0B ; 01 - Master Sword
db $0B ; 02 - Tempered Sword
db $0B ; 03 - Butter Sword
db $05 ; 04 - Fighter Shield
db $05 ; 05 - Fire Shield
db $05 ; 06 - Mirror Shield
db $0A ; 07 - Fire Rod
db $0A ; 08 - Ice Rod
db $0A ; 09 - Hammer
db $0A ; 0A - Hookshot
db $0A ; 0B - Bow
db $0A ; 0C - Boomerang
db $0A ; 0D - Powder
db $0B ; 07 - Fire Rod
db $0B ; 08 - Ice Rod
db $0B ; 09 - Hammer
db $0B ; 0A - Hookshot
db $0B ; 0B - Bow
db $06 ; 0C - Boomerang
db $0B ; 0D - Powder
db $02 ; 0E - Bottle Refill (bee)
db $0A ; 0F - Bombos
db $0A ; 10 - Ether
db $0A ; 11 - Quake
db $0A ; 12 - Lamp
db $0A ; 13 - Shovel
db $0A ; 14 - Flute
db $0A ; 15 - Somaria
db $0A ; 16 - Bottle
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 $0B ; 16 - Bottle
db $05 ; 17 - Heartpiece
db $0A ; 18 - Byrna
db $0A ; 19 - Cape
db $0A ; 1A - Mirror
db $0A ; 1B - Glove
db $0A ; 1C - Mitts
db $0A ; 1D - Book
db $0A ; 1E - Flippers
db $0A ; 1F - Pearl
db $0C ; 20 - Crystal
db $0A ; 21 - Net
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 $05 ; 22 - Blue Mail
db $05 ; 23 - Red Mail
db $03 ; 24 - Small Key
db $06 ; 25 - Compass
db $07 ; 25 - Compass
db $05 ; 26 - Heart Container from 4/4
db $02 ; 27 - Bomb
db $02 ; 28 - 3 bombs
db $0A ; 29 - Mushroom
db $0A ; 2A - Red boomerang
db $0A ; 2B - Full bottle (red)
db $0A ; 2C - Full bottle (green)
db $0A ; 2D - Full bottle (blue)
db $06 ; 29 - Mushroom
db $06 ; 2A - Red boomerang
db $0B ; 2B - Full bottle (red)
db $0B ; 2C - Full bottle (green)
db $0B ; 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 $08 ; 32 - Big key
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 $09 ; 37 - Green pendant
db $09 ; 38 - Blue pendant
db $09 ; 39 - Red pendant
db $0A ; 3A - Tossed bow
db $0A ; 3B - Silvers
db $0A ; 3C - Full bottle (bee)
db $0A ; 3D - Full bottle (fairy)
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 $0B ; 3C - Full bottle (bee)
db $0B ; 3D - Full bottle (fairy)
db $05 ; 3E - Boss heart
db $05 ; 3F - Sanc heart
db $02 ; 40 - 100 rupees
@@ -70,16 +70,16 @@ db $02 ; 44 - 10 arrows
db $02 ; 45 - Small magic
db $02 ; 46 - 300 rupees
db $02 ; 47 - 20 rupees green
db $0A ; 48 - Full bottle (good bee)
db $0A ; 49 - Tossed fighter sword
db $0A ; 4A - Active Flute
db $0A ; 4B - Boots
db $0B ; 48 - Full bottle (good bee)
db $0B ; 49 - Tossed fighter sword
db $0B ; 4A - Active Flute
db $0B ; 4B - Boots
db $05 ; 4C - Bomb capacity (50)
db $05 ; 4D - Arrow capacity (70)
db $0A ; 4E - 1/2 magic
db $0A ; 4F - 1/4 magic
db $0A ; 50 - Safe master sword
db $0B ; 4E - 1/2 magic
db $0B ; 4F - 1/4 magic
db $0B ; 50 - Safe master sword
db $05 ; 51 - Bomb capacity (+5)
db $05 ; 52 - Bomb capacity (+10)
db $05 ; 53 - Arrow capacity (+5)
@@ -87,27 +87,27 @@ db $05 ; 54 - Arrow capacity (+10)
db $02 ; 55 - Programmable item 1
db $02 ; 56 - Programmable item 2
db $02 ; 57 - Programmable item 3
db $0A ; 58 - Upgrade-only silver arrows
db $0B ; 58 - Upgrade-only silver arrows
db $02 ; 59 - Rupoor
db $02 ; 5A - Nothing
db $02 ; 5B - Red clock
db $02 ; 5C - Blue clock
db $02 ; 5D - Green clock
db $0A ; 5E - Progressive sword
db $0B ; 5E - Progressive sword
db $05 ; 5F - Progressive shield
db $05 ; 60 - Progressive armor
db $0A ; 61 - Progressive glove
db $0B ; 61 - Progressive glove
db $02 ; 62 - RNG pool item (single)
db $02 ; 63 - RNG pool item (multi)
db $0A ; 64 - Progressive bow
db $0A ; 65 - Progressive bow
db $0B ; 64 - Progressive bow
db $0B ; 65 - Progressive bow
db $02 ; 66 -
db $02 ; 67 -
db $02 ; 68 -
db $02 ; 69 -
db $0E ; 6A - Triforce
db $0D ; 6B - Power star
db $0D ; 6C - Triforce Piece
db $0F ; 6A - Triforce
db $0E ; 6B - Power star
db $0E ; 6C - Triforce Piece
db $02 ; 6D - Server request item
db $02 ; 6E - Server request item (dungeon drop)
db $02 ; 6F -
@@ -129,63 +129,63 @@ db $02 ; 7D - Map of Eastern Palace
db $02 ; 7E - Map of Hyrule Castle
db $02 ; 7F - Map of Sewers
db $06 ; 80 - Compass of Light World
db $06 ; 81 - Compass of Dark World
db $06 ; 82 - Compass of Ganon's Tower
db $06 ; 83 - Compass of Turtle Rock
db $06 ; 84 - Compass of Thieves' Town
db $06 ; 85 - Compass of Tower of Hera
db $06 ; 86 - Compass of Ice Palace
db $06 ; 87 - Compass of Skull Woods
db $06 ; 88 - Compass of Misery Mire
db $06 ; 89 - Compass of Dark Palace
db $06 ; 8A - Compass of Swamp Palace
db $06 ; 8B - Compass of Agahnim's Tower
db $06 ; 8C - Compass of Desert Palace
db $06 ; 8D - Compass of Eastern Palace
db $06 ; 8E - Compass of Hyrule Castle
db $06 ; 8F - Compass of Sewers
db $07 ; 80 - Compass of Light World
db $07 ; 81 - Compass of Dark World
db $07 ; 82 - Compass of Ganon's Tower
db $07 ; 83 - Compass of Turtle Rock
db $07 ; 84 - Compass of Thieves' Town
db $07 ; 85 - Compass of Tower of Hera
db $07 ; 86 - Compass of Ice Palace
db $07 ; 87 - Compass of Skull Woods
db $07 ; 88 - Compass of Misery Mire
db $07 ; 89 - Compass of Dark Palace
db $07 ; 8A - Compass of Swamp Palace
db $07 ; 8B - Compass of Agahnim's Tower
db $07 ; 8C - Compass of Desert Palace
db $07 ; 8D - Compass of Eastern Palace
db $07 ; 8E - Compass of Hyrule Castle
db $07 ; 8F - Compass of Sewers
db $08 ; 90 - Skull key
db $08 ; 91 - Reserved
db $08 ; 92 - Big key of Ganon's Tower
db $08 ; 93 - Big key of Turtle Rock
db $08 ; 94 - Big key of Thieves' Town
db $08 ; 95 - Big key of Tower of Hera
db $08 ; 96 - Big key of Ice Palace
db $08 ; 97 - Big key of Skull Woods
db $08 ; 98 - Big key of Misery Mire
db $08 ; 99 - Big key of Dark Palace
db $08 ; 9A - Big key of Swamp Palace
db $08 ; 9B - Big key of Agahnim's Tower
db $08 ; 9C - Big key of Desert Palace
db $08 ; 9D - Big key of Eastern Palace
db $08 ; 9E - Big key of Hyrule Castle
db $08 ; 9F - Big key of Sewers
db $09 ; 90 - Skull key
db $09 ; 91 - Reserved
db $09 ; 92 - Big key of Ganon's Tower
db $09 ; 93 - Big key of Turtle Rock
db $09 ; 94 - Big key of Thieves' Town
db $09 ; 95 - Big key of Tower of Hera
db $09 ; 96 - Big key of Ice Palace
db $09 ; 97 - Big key of Skull Woods
db $09 ; 98 - Big key of Misery Mire
db $09 ; 99 - Big key of Dark Palace
db $09 ; 9A - Big key of Swamp Palace
db $09 ; 9B - Big key of Agahnim's Tower
db $09 ; 9C - Big key of Desert Palace
db $09 ; 9D - Big key of Eastern Palace
db $09 ; 9E - Big key of Hyrule Castle
db $09 ; 9F - Big key of Sewers
db $07 ; A0 - Small key of Sewers
db $07 ; A1 - Small key of Hyrule Castle
db $07 ; A2 - Small key of Eastern Palace
db $07 ; A3 - Small key of Desert Palace
db $07 ; A4 - Small key of Agahnim's Tower
db $07 ; A5 - Small key of Swamp Palace
db $07 ; A6 - Small key of Dark Palace
db $07 ; A7 - Small key of Misery Mire
db $07 ; A8 - Small key of Skull Woods
db $07 ; A9 - Small key of Ice Palace
db $07 ; AA - Small key of Tower of Hera
db $07 ; AB - Small key of Thieves' Town
db $07 ; AC - Small key of Turtle Rock
db $07 ; AD - Small key of Ganon's Tower
db $08 ; A0 - Small key of Sewers
db $08 ; A1 - Small key of Hyrule Castle
db $08 ; A2 - Small key of Eastern Palace
db $08 ; A3 - Small key of Desert Palace
db $08 ; A4 - Small key of Agahnim's Tower
db $08 ; A5 - Small key of Swamp Palace
db $08 ; A6 - Small key of Dark Palace
db $08 ; A7 - Small key of Misery Mire
db $08 ; A8 - Small key of Skull Woods
db $08 ; A9 - Small key of Ice Palace
db $08 ; AA - Small key of Tower of Hera
db $08 ; AB - Small key of Thieves' Town
db $08 ; AC - Small key of Turtle Rock
db $08 ; AD - Small key of Ganon's Tower
db $02 ; AE - Reserved
db $03 ; AF - Generic small key
db $0C ; B0 - Crystal 6
db $0C ; B1 - Crystal 1
db $0C ; B2 - Crystal 5
db $0C ; B3 - Crystal 7
db $0C ; B4 - Crystal 2
db $0C ; B5 - Crystal 4
db $0C ; B6 - Crystal 3
db $0D ; B0 - Crystal 6
db $0D ; B1 - Crystal 1
db $0D ; B2 - Crystal 5
db $0D ; B3 - Crystal 7
db $0D ; B4 - Crystal 2
db $0D ; B5 - Crystal 4
db $0D ; B6 - Crystal 3
db $02 ; B7 - Reserved
db $02 ; B8 -
db $02 ; B9 -

View File

@@ -2,7 +2,7 @@ dw $FFFF, $83A5, $FFFF, $FFFF ; 00
dw $C388, $8388, $FFFF, $FFFF ; 01
dw $4348, $034A, $4342, $0342 ; 02
dw $FFFF, $FFFF, $438F, $FFFF ; 03 - Houlihan
dw $C3A5, $83B4, $436D, $036E ; 04
dw $039A, $038F, $4365, $C39B ; 04
dw $FFFF, $FFFF, $FFFF, $FFFF ; 05 - unused
dw $FFFF, $FFFF, $438F, $FFFF ; 06 - Arrghus
dw $C340, $8370, $4340, $0340 ; 07 - Moldorm
@@ -15,28 +15,28 @@ dw $FFFF, $FFFF, $438F, $FFFF ; 0D - Aga 2
dw $FFFF, $FFFF, $8399, $439B ; 0E
dw $FFFF, $FFFF, $FFFF, $FFFF ; 0F - unused and should never be used, treated as non-id
dw $C340, $8340, $4350, $0340 ; 10
dw $C340, $8370, $4340, $0350 ; 11
dw $83B7, $C3AC, $03B7, $438A ; 11
dw $C354, $8354, $4354, $0354 ; 12
dw $FFFF, $83B7, $FFFF, $03B7 ; 13
dw $C351, $8341, $4351, $0351 ; 14
dw $C374, $8340, $4341, $0340 ; 15
dw $C3B5, $83A5, $436E, $036E ; 16
dw $0361, $039A, $C3B2, $83B2 ; 16 - gross (add middle section if feasible)
dw $C370, $8370, $4340, $0340 ; 17
dw $C3B5, $FFFF, $43B4, $FFFF ; 18 - useless fairy drop
dw $FFFF, $8369, $FFFF, $035A ; 19
dw $C3AE, $83AF, $43AD, $0361 ; 1A
dw $039B, $439C, $4361, $FFFF ; 1B
dw $C3B4, $83B4, $437E, $036E ; 1C
dw $038F, $038F, $037E, $C39B ; 1C
dw $C3B2, $83A7, $FFFF, $FFFF ; 1D
dw $FFFF, $43B8, $8399, $0366 ; 1E
dw $FFFF, $FFFF, $4360, $C399 ; 1F
dw $FFFF, $FFFF, $438F, $FFFF ; 20
dw $C340, $8350, $4340, $0341 ; 21
dw $4348, $0363, $C348, $8368 ; 21
dw $FFFF, $FFFF, $4368, $0348 ; 22
dw $FFFF, $FFFF, $FFFF, $039B ; 23
dw $C350, $8350, $4341, $0350 ; 24
dw $4365, $0365, $0364, $0365 ; 24
dw $FFFF, $FFFF, $FFFF, $FFFF ; 25 - unused
dw $C340, $837C, $4354, $0382 ; 26
dw $039B, $037C, $4363, $0382 ; 26
dw $C370, $8370, $4340, $0340 ; 27
dw $C3A5, $FFFF, $4358, $0348 ; 28
dw $FFFF, $FFFF, $FFFF, $0396 ; 29 - Mothula
@@ -59,13 +59,13 @@ dw $FFFF, $FFFF, $039B, $03A9 ; 39
dw $C3A4, $83A4, $4354, $0354 ; 3A - make bespoke if feasible
dw $C3A5, $FFFF, $43B5, $FFFF ; 3B - inset stairs if feasible
dw $C340, $8350, $4340, $0350 ; 3C - hookshot cave front
dw $C36E, $836E, $43B5, $03A5 ; 3D
dw $039B, $439B, $0361, $838E ; 3D
dw $FFFF, $438F, $43B2, $0373 ; 3E
dw $FFFF, $FFFF, $8399, $C399 ; 3F
dw $C3A5, $FFFF, $4372, $C399 ; 40 - inset stairs if feasible
dw $C340, $8370, $4354, $0354 ; 41
dw $C398, $8389, $FFFF, $FFFF ; 42
dw $C3B2, $836E, $FFFF, $03B5 ; 43
dw $C3B2, $03B2, $FFFF, $0361 ; 43
dw $038D, $839F, $838D, $039F ; 44
dw $C3AB, $438F, $4364, $C39B ; 45
dw $C375, $8375, $4373, $0373 ; 46
@@ -76,12 +76,12 @@ dw $0376, $0377, $0386, $4386 ; 4A
dw $C361, $4391, $4373, $0373 ; 4B
dw $FFFF, $83A5, $FFFF, $03B7 ; 4C
dw $C350, $8370, $4341, $0340 ; 4D
dw $839B, $4399, $FFFF, $FFFF ; 4E
dw $839B, $439C, $FFFF, $FFFF ; 4E
dw $FFFF, $8396, $838D, $FFFF ; 4F
dw $FFFF, $83B7, $FFFF, $03B5 ; 50
dw $C354, $8354, $4384, $0384 ; 51
dw $C3B7, $FFFF, $4359, $0348 ; 52
dw $C3A5, $83B5, $436E, $036E ; 53
dw $039A, $83B5, $839B, $43B7 ; 53
dw $C390, $8390, $4380, $0340 ; 54
dw $C340, $8340, $4350, $0340 ; 55
dw $038F, $83B4, $4365, $039F ; 56
@@ -90,14 +90,14 @@ dw $C372, $439B, $0383, $0365 ; 58 - split
dw $838A, $8372, $038A, $0372 ; 59
dw $FFFF, $FFFF, $FFFF, $038F ; 5A - Helmasaur King
dw $FFFF, $83B7, $FFFF, $03B5 ; 5B
dw $C3B1, $83AA, $FFFF, $03B4 ; 5C
dw $C36E, $83A7, $43B5, $FFFF ; 5D
dw $C3B1, $83AA, $FFFF, $838F ; 5C
dw $039B, $C399, $0361, $FFFF ; 5D
dw $FFFF, $43B8, $839C, $0366 ; 5E
dw $FFFF, $FFFF, $43BB, $FFFF ; 5F
dw $FFFF, $8379, $FFFF, $036A ; 60
dw $C387, $8385, $4356, $0356 ; 61
dw $C346, $8354, $4352, $0340 ; 62
dw $C3A5, $FFFF, $43B5, $FFFF ; 63
dw $039A, $FFFF, $0361, $FFFF ; 63
dw $FFFF, $FFFF, $8399, $C3B1 ; 64
dw $FFFF, $FFFF, $83B1, $03A9 ; 65
dw $038F, $039A, $0362, $83B2 ; 66
@@ -105,17 +105,17 @@ dw $83B4, $83B5, $03B7, $039F ; 67
dw $C340, $8350, $4341, $0340 ; 68
dw $FFFF, $FFFF, $FFFF, $FFFF ; 69 - unused
dw $FFFF, $838C, $FFFF, $034E ; 6A
dw $C3A5, $83B5, $436E, $036E ; 6B
dw $C3A5, $FFFF, $436E, $03B1 ; 6C - Lanmolas 2
dw $C3B5, $FFFF, $43B7, $FFFF ; 6D
dw $039A, $0361, $839B, $C39B ; 6B
dw $039A, $FFFF, $839B, $0360 ; 6C - Lanmolas 2
dw $0361, $FFFF, $C39B, $FFFF ; 6D
dw $FFFF, $838E, $FFFF, $FFFF ; 6E
dw $FFFF, $FFFF, $FFFF, $FFFF ; 6F - unused
dw $43BA, $FFFF, $FFFF, $FFFF ; 70
dw $C3A5, $FFFF, $436D, $03B0 ; 71
dw $C384, $8384, $4344, $0354 ; 72 - slight cheating I guess...
dw $C3B4, $83B4, $436E, $038B ; 73
dw $C340, $8340, $4345, $0345 ; 74
dw $C3B4, $83B4, $438A, $03B5 ; 75
dw $039A, $FFFF, $4365, $438D ; 71
dw $437A, $037A, $43A1, $0342 ; 72 - slight cheating I guess...
dw $038F, $038F, $839B, $0366 ; 73
dw $43B2, $03B2, $43A8, $03A8 ; 74
dw $038F, $83B4, $0365, $03B5 ; 75
dw $C36D, $83BC, $436E, $0397 ; 76
dw $C370, $8340, $43A0, $03A0 ; 77
dw $FFFF, $FFFF, $FFFF, $FFFF ; 78 - unused
@@ -123,47 +123,47 @@ dw $FFFF, $FFFF, $FFFF, $FFFF ; 79 - unused
dw $FFFF, $FFFF, $FFFF, $FFFF ; 7A - unused
dw $C35E, $83B1, $438F, $038D ; 7B
dw $C3B7, $83B4, $43B7, $03B7 ; 7C
dw $C36E, $83B0, $4392, $0391 ; 7D - warp tiles
dw $FFFF, $83B7, $839C, $C37A ; 7E
dw $43B2, $835E, $034C, $0391 ; 7D
dw $FFFF, $83B7, $4393, $438A ; 7E
dw $439B, $FFFF, $838E, $FFFF ; 7F
dw $C3A7, $83B0, $FFFF, $FFFF ; 80
dw $C350, $8341, $4340, $0341 ; 81
dw $C39D, $8354, $4341, $0340 ; 82
dw $C3B4, $83B5, $436D, $036E ; 83
dw $038F, $83B5, $4365, $43B7 ; 83
dw $C344, $8345, $4354, $0354 ; 84
dw $C38B, $83B2, $436E, $03B2 ; 85
dw $C38B, $C39B, $03B7, $439B ; 85
dw $FFFF, $FFFF, $FFFF, $FFFF ; 86 - unused
dw $C3A7, $836E, $4394, $03B4 ; 87
dw $8399, $439B, $4394, $838F ; 87
dw $FFFF, $FFFF, $FFFF, $FFFF ; 88 - unused
dw $C3B0, $83B0, $FFFF, $FFFF ; 89
dw $FFFF, $FFFF, $FFFF, $FFFF ; 8A - unused
dw $C36D, $83B1, $436D, $03B0 ; 8B
dw $838A, $0360, $038A, $438D ; 8B
dw $83BE, $83BF, $03BD, $03B8 ; 8C
dw $C3B1, $836D, $43B0, $036D ; 8D
dw $0360, $C38A, $038D, $438A ; 8D
dw $FFFF, $838E, $FFFF, $FFFF ; 8E
dw $FFFF, $FFFF, $FFFF, $FFFF ; 8F - unused
dw $FFFF, $FFFF, $438F, $FFFF ; 90
dw $FFFF, $83A5, $FFFF, $03B7 ; 91
dw $C340, $8340, $4341, $0341 ; 92 - should it be split? idk
dw $C36C, $836C, $43B7, $03B4 ; 93
dw $039B, $C3B7, $0364, $039F ; 92 - should it be split? idk
dw $C36C, $836C, $C39B, $838F ; 93
dw $FFFF, $FFFF, $FFFF, $FFFF ; 94 - unused
dw $FFFF, $83B7, $FFFF, $03B5 ; 95
dw $C3B7, $FFFF, $436E, $0397 ; 96
dw $C3A5, $83B4, $436E, $036F ; 97
dw $C3B7, $FFFF, $03B7, $C39C ; 96
dw $039A, $83B4, $839B, $036F ; 97
dw $FFFF, $FFFF, $43B2, $0397 ; 98
dw $FFFF, $038F, $434A, $0363 ; 99
dw $FFFF, $FFFF, $FFFF, $FFFF ; 9A - unused
dw $C3B2, $835E, $435E, $0378 ; 9B
dw $839B, $0381, $435E, $0378 ; 9B
dw $C350, $8350, $4341, $0341 ; 9C
dw $C35E, $83B2, $43B1, $035E ; 9D
dw $FFFF, $439A, $838D, $03B9 ; 9E
dw $FFFF, $FFFF, $439B, $FFFF ; 9F
dw $839B, $439C, $FFFF, $FFFF ; A0
dw $839B, $C39C, $FFFF, $FFFF ; A0
dw $C3B0, $835D, $FFFF, $036A ; A1
dw $C385, $8385, $4356, $0346 ; A2 - show paths somehow
dw $C35A, $FFFF, $436A, $FFFF ; A3
dw $FFFF, $FFFF, $438E, $FFFF ; A4
dw $C3A5, $83B5, $436E, $036E ; A5
dw $039A, $0361, $C3B2, $83B2 ; A5
dw $C340, $8370, $4340, $0340 ; A6
dw $C396, $FFFF, $FFFF, $FFFF ; A7 - ToH fairy basement room
dw $039B, $83B6, $839B, $03A3 ; A8
@@ -174,8 +174,8 @@ dw $FFFF, $FFFF, $FFFF, $038F ; AC - Blind
dw $FFFF, $FFFF, $FFFF, $FFFF ; AD - unused
dw $FFFF, $8399, $FFFF, $FFFF ; AE
dw $C39B, $FFFF, $FFFF, $FFFF ; AF
dw $039B, $439C, $839B, $C399 ; B0
dw $C34E, $83B5, $434C, $036D ; B1
dw $039B, $C399, $839B, $C399 ; B0
dw $0391, $83B5, $434C, $438A ; B1
dw $C35C, $83A2, $039B, $0366 ; B2
dw $0365, $FFFF, $0365, $FFFF ; B3
dw $C350, $8340, $4384, $0384 ; B4
@@ -185,12 +185,12 @@ dw $C3B4, $FFFF, $43B5, $FFFF ; B7
dw $FFFF, $838A, $FFFF, $03B4 ; B8
dw $C36B, $836B, $4354, $0354 ; B9
dw $0364, $438D, $FFFF, $FFFF ; BA
dw $037A, $8364, $4372, $0364 ; BB
dw $C3BF, $437A, $8364, $C37A ; BC - block off entrances?
dw $838A, $8364, $4372, $0364 ; BB
dw $C3BF, $C38A, $8364, $438A ; BC - block off entrances?
dw $FFFF, $FFFF, $FFFF, $FFFF ; BD - unused
dw $FFFF, $439A, $FFFF, $C365 ; BE
dw $FFFF, $8396, $438D, $FFFF ; BF
dw $C372, $439C, $4372, $C399 ; C0
dw $C372, $C399, $4372, $C399 ; C0
dw $039B, $0364, $4365, $8364 ; C1
dw $C351, $8353, $4341, $0353 ; C2
dw $C353, $8340, $4343, $0340 ; C3 - show layers
@@ -206,7 +206,7 @@ dw $C353, $8350, $4347, $0354 ; CC
dw $FFFF, $FFFF, $FFFF, $FFFF ; CD - unused
dw $FFFF, $83B8, $FFFF, $FFFF ; CE - Kholdstare drop
dw $FFFF, $FFFF, $FFFF, $FFFF ; CF - unused
dw $C372, $439C, $4372, $C399 ; D0
dw $C372, $C399, $4372, $C399 ; D0
dw $C38E, $838F, $4381, $C38D ; D1
dw $FFFF, $83B5, $FFFF, $0395 ; D2
dw $FFFF, $FFFF, $FFFF, $FFFF ; D3 - unused
@@ -222,7 +222,7 @@ dw $C346, $8354, $4343, $0340 ; DC
dw $FFFF, $FFFF, $FFFF, $FFFF ; DD - unused
dw $FFFF, $8396, $FFFF, $FFFF ; DE - Kholdstare
dw $FFFF, $FFFF, $43A0, $0354 ; DF - paradox top
dw $C36E, $83A7, $43B5, $FFFF ; E0
dw $039B, $C399, $0361, $FFFF ; E0
; no more dungeon
dw $C340, $8340, $4350, $0340 ; E1 - lost woods thieves hideout

View File

@@ -12,6 +12,7 @@ DrawDungeonMapRoom:
LDX.w DungeonID
LDA.l MapField
AND.l DungeonMask, X
BEQ +
LDA.l ShowRooms_have_map
AND.w #$00FF
CMP.b $0A
@@ -22,6 +23,7 @@ DrawDungeonMapRoom:
LDX.w DungeonID
LDA.l CompassField
AND.l DungeonMask, X
BEQ +
LDA.l ShowRooms_have_compass
AND.w #$00FF
CMP.b $0A
@@ -72,6 +74,7 @@ DrawDungeonMapRoom:
?.square
PLA
LDA.b $0C
EOR.w #(3-<quadrant>)<<14
BRA ?.write
?.shape
@@ -93,6 +96,7 @@ DrawDungeonMapRoom:
?.full_square
LDA.w #$174F
EOR.w #(3-<quadrant>)<<14
?.write
STA.l $7F0000+<writeOffset>, X

View File

@@ -57,7 +57,13 @@ DungeonMapSwitch_Submodule:
STA.b $A4
REP #$20
JML $98BC8A
STZ.b $E0
STZ.b $E2
STZ.b $E4
STZ.b $E6
STZ.b $E8
STZ.b $EA
JML $98BCA1
SkipMapSprites:
STZ.b $00

View File

@@ -21,6 +21,9 @@ endmacro
%WriteGFXSheetPointer($D5, DungeonMapIcons1)
%WriteGFXSheetPointer($D6, DungeonMapIcons2)
; TR is such a problem child
%WriteGFXSheetPointer($A6, DungeonMapIcons2)
%WriteGFXSheetPointer($D4, MapSheetD4)
pullpc

View File

@@ -31,30 +31,34 @@ struct DungeonMapData DungeonMapData
.unused: skip 1
endstruct
; $B9F880
warnpc $B9F880
org $B9F880
LootTypeIcons:
dw $0B00, $0B00, $0B00, $0B00 ; 00 - nothing
dw $2B0E, $6B0E, $2B3E, $6B3E ; 01 - unknown - basic chest
dw $2F32, $6F32, $AF32, $EF32 ; 01 - unknown - dot
dw $2B0D, $6B0D, $2B3D, $6B3D ; 02 - junk - pot
dw $2B07, $6B07, $2B17, $2B18 ; 03 - small key
dw $2B0B, $6B0B, $2B3B, $6B3B ; 04 - triforce piece
dw $6B08, $2B08, $EB08, $AB08 ; 05 - safety - plus
dw $AB3A, $EB3A, $2B3A, $6B3A ; 06 - compass
dw $2B07, $6B07, $2B17, $2B18 ; 07 - small key
dw $2B05, $6B05, $2B15, $2B16 ; 08 - big key
dw $2B09, $2B0A, $2B39, $6B39 ; 09 - pendant
dw $2B0F, $6B0F, $2B3F, $6B3F ; 0A - inventory item - big chest
dw $2B09, $2B0A, $2B39, $6B39 ; 0B - also pendant
dw $6F02, $2B02, $EB02, $AF02 ; 0C - crystal
dw $2B0B, $6B0B, $2B3B, $6B3B ; 0D - triforce piece
dw $2B0C, $6B0C, $2B3C, $6B3C ; 0E - triforce
dw $0B00, $0B00, $0B00, $0B00 ; 0F - empty (reserved)
dw $2B0E, $6B0E, $2B3E, $6B3E ; 06 - less important item - small chest
dw $AB3A, $EB3A, $2B3A, $6B3A ; 07 - compass
dw $2B07, $6B07, $2B17, $2B18 ; 08 - small key
dw $2B05, $6B05, $2B15, $2B16 ; 09 - big key
dw $2B09, $2B0A, $2B39, $6B39 ; 0A - pendant
dw $2B0F, $6B0F, $2B3F, $6B3F ; 0B - important inventory item - big chest
dw $2B09, $2B0A, $2B39, $6B39 ; 0C - also pendant
dw $6F02, $2B02, $EB02, $AF02 ; 0D - crystal
dw $2B0B, $6B0B, $2B3B, $6B3B ; 0E - triforce piece
dw $2B0C, $6B0C, $2B3C, $6B3C ; 0F - triforce
; $B9F900
warnpc $B9F900
org $B9F900
LootTypeMapping:
incsrc data/item_mapping.asm
; $B9FA00
warnpc $B9FA00
org $B9FA00
; Room ID mappings to bit to check for presence and address of item drop
MiscLocations:
dw $00C8 : db $04 : dl HeartContainer_ArmosKnights
@@ -82,16 +86,18 @@ dw $FFFF : db $FF : dl $FFFFFF ; Moldorm 2? ($004D)
dw $FFFF : db $FF : dl $FFFFFF ; Aga 2? ($000D)
dw $FFFF
; $B9FA9A
warnpc $B9FA9A
org $B9FA9A
MapHUDPalette:
dw $0000, $3ED8, $2E54
; $B9FAA0
warnpc $B9FAA0
org $B9FAA0
PrizeLocations:
dw $00C8 : db $02 ; ArmosKnights
dw $00C8 : db $02 ; Armos Knights
dw $0033 : db $03 ; Lanmolas
dw $0006 : db $05 ; Arrghus
dw $005A : db $06 ; HelmasaurKing
dw $005A : db $06 ; Helmasaur King
dw $0090 : db $07 ; Vitreous
dw $0029 : db $08 ; Mothula
dw $00DE : db $09 ; Kholdstare
@@ -100,7 +106,8 @@ dw $00AC : db $0B ; Blind
dw $00A4 : db $0C ; Trinexx
dw $FFFF
; $B9FAC0
warnpc $B9FAC0
org $B9FAC0
SupertileEntrances:
incsrc data/entrance_tiles.asm
warnpc $B9FB00
@@ -109,8 +116,8 @@ pad $B9FB00
; $B9FB00
DungeonLabels:
dw $2561, $256F ; Sewers
dw $2564, $255F ; Hyrule Castle
dw $2550, $2579 ; Sewers
dw $2550, $2578 ; Hyrule Castle
dw $2561, $256C ; Eastern Palace
dw $2560, $256C ; Desert Palace
dw $255D, $2570 ; Agahnim's Tower
@@ -140,15 +147,16 @@ org $B9FF00
; $06 - show fully lit with stairs and holes/internal walls (palette 2)
ShowRooms:
.default
db $01
db $02
.have_map
db $04
db $05
.have_compass
db $03
.visited_tile
db $05
db $04
.reserved
skip 4
warnpc $B9FF08
org $B9FF08
; $00 - do not show anything
@@ -163,10 +171,9 @@ ShowItems:
db $02
.visited_tile
db $01
.item_is_compass ; NYI
db $00
.reserved
skip 3
skip 4
warnpc $B9FF10
org $B9FF10
; ---P bepc
@@ -176,4 +183,4 @@ org $B9FF10
; p - pots
; c - chests
ItemSources:
db $1F
db $09

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.