diff --git a/custompalettes.asm b/custompalettes.asm index 801fa3a..d19f52b 100644 --- a/custompalettes.asm +++ b/custompalettes.asm @@ -13,7 +13,5 @@ dw $0000, $7FFF, $27FF, $5E2D, $4F5F, $1CE7, $2E9C, $14B6 dw $0000, $7E4E, $6F44, $1CF5, $7399, $1CE7, $02F9, $0233 .crystal dw $7FFF, $7FFF, $0000, $5907, $6E0E, $0000, $7FBB, $7672 -.red_crystal -dw $7FFF, $7FFF, $0000, $0C94, $2D99, $0000, $6F3D, $4A3B .off_black dw $0000, $14A5, $14A5, $14A5, $14A5, $14A5, $14A5, $14A5 diff --git a/data/customitems.4bpp b/data/customitems.4bpp index 1ef9107..ef422c9 100644 Binary files a/data/customitems.4bpp and b/data/customitems.4bpp differ diff --git a/data/customitems.png b/data/customitems.png index 345d1b4..e9f608a 100644 Binary files a/data/customitems.png and b/data/customitems.png differ diff --git a/itemdatatables.asm b/itemdatatables.asm index 3c3483c..97be45b 100644 --- a/itemdatatables.asm +++ b/itemdatatables.asm @@ -592,9 +592,9 @@ endmacro %SpriteProps($AD, 0, 0, $02, $04, PalettesVanilla_blue_ice+$0E) ; AD - Small key of Ganon's Tower %SpriteProps($AE, 2, 2, $02, $02, $0000) ; AE - Reserved %SpriteProps($AF, 0, 0, $02, $04, PalettesVanilla_blue_ice+$0E) ; AF - Generic small key -%SpriteProps($B0, 2, 2, $80, $80, PalettesCustom_red_crystal) ; B0 - Crystal 6 +%SpriteProps($B0, 2, 2, $01, $01, $0000) ; B0 - Crystal 6 %SpriteProps($B1, 2, 2, $80, $80, PalettesCustom_crystal) ; B1 - Crystal 1 -%SpriteProps($B2, 2, 2, $80, $80, PalettesCustom_red_crystal) ; B2 - Crystal 5 +%SpriteProps($B2, 2, 2, $01, $01, $0000) ; B2 - Crystal 5 %SpriteProps($B3, 2, 2, $80, $80, PalettesCustom_crystal) ; B3 - Crystal 7 %SpriteProps($B4, 2, 2, $80, $80, PalettesCustom_crystal) ; B4 - Crystal 2 %SpriteProps($B5, 2, 2, $80, $80, PalettesCustom_crystal) ; B5 - Crystal 4 @@ -1132,9 +1132,9 @@ ItemReceiptGraphicsOffsets: dw BigDecompressionBuffer+$1DC0 ; AD - Small key of Ganon's Tower dw $0 ; AE - Reserved dw BigDecompressionBuffer+$1DC0 ; AF - Generic small key - dw BigDecompressionBuffer+$08A0 ; B0 - Crystal 6 + dw $0C60 ; B0 - Crystal 6 dw BigDecompressionBuffer+$08A0 ; B1 - Crystal 1 - dw BigDecompressionBuffer+$08A0 ; B2 - Crystal 5 + dw $0C60 ; B2 - Crystal 5 dw BigDecompressionBuffer+$08A0 ; B3 - Crystal 7 dw BigDecompressionBuffer+$08A0 ; B4 - Crystal 2 dw BigDecompressionBuffer+$08A0 ; B5 - Crystal 4 diff --git a/menu/overworldmap.asm b/menu/overworldmap.asm index 1423344..7d165ce 100644 --- a/menu/overworldmap.asm +++ b/menu/overworldmap.asm @@ -101,7 +101,7 @@ org $8ABF36 WorldMapIcon_prize_tile: db $00, $00 ; ; Hyrule Castle db $00, $00 ; ; Sewers -db $38, $62 ; green pendant ; Eastern Palace +db $38, $60 ; green pendant ; Eastern Palace db $34, $60 ; blue pendant ; Desert Palace db $00, $00 ; ; Agahnim's Tower db $34, $64 ; crystal ; Swamp Palace @@ -155,11 +155,13 @@ BRA + : NOP #6 : + ; skip pyramid open check ; $04 = Current World ; $05 = Current Dungeon ; $06 = Helper Bitfield +; $0A = Used as flag to draw icon overlay ; $0B-$0F = OAM GFX Data org $8AC02B DrawPrizesOverride: PHB : LDA.b #WorldMapIcon_DungeonPointers>>16 : PHA : PLB LDA.l CurrentWorld : STA.b Scrap04 + LDY.b #$00 : STY.b Scrap0A REP #$20 LDA.w #$0800+8 : STA.b OAMPtr LDA.w #$0A20+2 : STA.b OAMPtr+2 @@ -249,6 +251,7 @@ DrawPrizesOverride: ; determine if draw and/or continue JSR WorldMap_ValidateCoords : BCS .advance + JSR WorldMap_DrawTileOverlay JSR WorldMap_DrawTile .advance LDY.b Scrap05 : DEY #2 : BMI + : JMP .next_dungeon : + @@ -275,6 +278,22 @@ CLC : RTS .fail SEC : RTS +WorldMap_DrawTileOverlay: + LDA.b Scrap0C : PHA : AND.w #$0EFF + CMP.w #$0264 : BEQ .do_overlay ; red crystal + CMP.w #$0860 : BEQ .do_overlay ; green pendant + PLA +RTS + .do_overlay + LDX.b Scrap0B : PHX + LDX.b #$01 : STX.b Scrap0A + DEX : STX.b Scrap0B + LDA.b Scrap0C : AND.w #$FF00 : ORA.w #$006A : STA.w Scrap0C + JSR WorldMap_DrawTile + LDX.b #$00 : STX.b Scrap0A + PLX : PLA : STX.b Scrap0B : STA.b Scrap0C +RTS + WorldMap_DrawTile: SEP #$20 LDX.b Scrap0B : TXA : STA.b (OAMPtr+2) @@ -282,6 +301,10 @@ WorldMap_DrawTile: LDA.b Scrap00 : PHA JSR WorldMap_CalculateOAMCoordinates PLA : STA.b Scrap00 + LDX.b Scrap0A : BEQ + + LDA.b Scrap0E : CLC : ADC.b #$04 : STA.b Scrap0E + LDA.b Scrap0F : CLC : ADC.b #$04 : STA.b Scrap0F + + LDX.b Scrap0B : BEQ + LDA.b Scrap0E : SEC : SBC.b #$04 : STA.b Scrap0E LDA.b Scrap0F : SEC : SBC.b #$04 : STA.b Scrap0F