diff --git a/dungeon_map/check_loot.asm b/dungeon_map/check_loot.asm index 799b2d4..bce7e00 100644 --- a/dungeon_map/check_loot.asm +++ b/dungeon_map/check_loot.asm @@ -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 diff --git a/dungeon_map/data/item_mapping.asm b/dungeon_map/data/item_mapping.asm index 1017def..15d228f 100644 --- a/dungeon_map/data/item_mapping.asm +++ b/dungeon_map/data/item_mapping.asm @@ -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 - diff --git a/dungeon_map/data/supertile_shapes.asm b/dungeon_map/data/supertile_shapes.asm index 69c0d2f..3b0c706 100644 --- a/dungeon_map/data/supertile_shapes.asm +++ b/dungeon_map/data/supertile_shapes.asm @@ -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 diff --git a/dungeon_map/draw_rooms.asm b/dungeon_map/draw_rooms.asm index e64b0f2..27c83d3 100644 --- a/dungeon_map/draw_rooms.asm +++ b/dungeon_map/draw_rooms.asm @@ -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-)<<14 BRA ?.write ?.shape @@ -93,6 +96,7 @@ DrawDungeonMapRoom: ?.full_square LDA.w #$174F + EOR.w #(3-)<<14 ?.write STA.l $7F0000+, X diff --git a/dungeon_map/dungeon_switch.asm b/dungeon_map/dungeon_switch.asm index b0fab19..e0ea125 100644 --- a/dungeon_map/dungeon_switch.asm +++ b/dungeon_map/dungeon_switch.asm @@ -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 diff --git a/dungeon_map/main.asm b/dungeon_map/main.asm index 07d0d4f..abff472 100644 --- a/dungeon_map/main.asm +++ b/dungeon_map/main.asm @@ -21,6 +21,9 @@ endmacro %WriteGFXSheetPointer($D5, DungeonMapIcons1) %WriteGFXSheetPointer($D6, DungeonMapIcons2) +; TR is such a problem child +%WriteGFXSheetPointer($A6, DungeonMapIcons2) + %WriteGFXSheetPointer($D4, MapSheetD4) pullpc diff --git a/dungeon_map/settings.asm b/dungeon_map/settings.asm index 5d5bf84..e3cc05e 100644 --- a/dungeon_map/settings.asm +++ b/dungeon_map/settings.asm @@ -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 diff --git a/menu/map_icons.3bpp b/menu/map_icons.3bpp index ef4b9d3..17236f1 100644 Binary files a/menu/map_icons.3bpp and b/menu/map_icons.3bpp differ diff --git a/menu/map_icons_1.3bppc b/menu/map_icons_1.3bppc index 39a0b10..97c583d 100644 Binary files a/menu/map_icons_1.3bppc and b/menu/map_icons_1.3bppc differ diff --git a/menu/map_icons_2.3bppc b/menu/map_icons_2.3bppc index 42310ba..c797bff 100644 Binary files a/menu/map_icons_2.3bppc and b/menu/map_icons_2.3bppc differ diff --git a/menu/map_sheet_d4.3bpp b/menu/map_sheet_d4.3bpp index 23bf78b..e9360cb 100644 Binary files a/menu/map_sheet_d4.3bpp and b/menu/map_sheet_d4.3bpp differ diff --git a/menu/map_sheet_d4.3bppc b/menu/map_sheet_d4.3bppc index 65aee39..e70144a 100644 Binary files a/menu/map_sheet_d4.3bppc and b/menu/map_sheet_d4.3bppc differ