diff --git a/custompalettes.asm b/custompalettes.asm index cbe705a..d19f52b 100644 --- a/custompalettes.asm +++ b/custompalettes.asm @@ -2,7 +2,7 @@ PalettesCustom: .master_sword dw $0000, $7E4E, $6FF4, $1CF5, $7FFF, $1CE7, $7A10, $64A5 .tempered_sword -dw $0000, $7FFF, $1979, $14B6, $39DC, $14A5, $66F7, $45EF +dw $7FFF, $093B, $169F, $7E8D, $7FFF, $1CE7, $7A10, $64A5 .golden_sword dw $0000, $033F, $7FFF, $2640, $7FFF, $1CE7, $7A10, $64A5 .fighter_shield diff --git a/events.asm b/events.asm index 15ae511..b582c4a 100644 --- a/events.asm +++ b/events.asm @@ -28,10 +28,15 @@ RTL OnDungeonBossExit: JSL.l StatTransitionCounter LDX.w DungeonID : BMI + - REP #$20 - LDA.l DungeonItemMasks, X : ORA.l DungeonsCompleted : STA.l DungeonsCompleted - SEP #$20 + LDA.w RoomIndex : CMP.b #$0D : BEQ .aga2 + .set_completed + REP #$20 + LDA.l DungeonItemMasks, X : ORA.l DungeonsCompleted : STA.l DungeonsCompleted + SEP #$20 + +RTL + .aga2 + CPX.b #$1A : BEQ .set_completed RTL ;-------------------------------------------------------------------------------- OnPlayerDead: diff --git a/invertedmaps.asm b/invertedmaps.asm index f354001..1501335 100644 --- a/invertedmaps.asm +++ b/invertedmaps.asm @@ -1362,11 +1362,11 @@ OverworldMapChangePointers: dw !OWW_Stripe|!OWW_Vertical dw $2422 - dw $02F3, $00C9, $00E3 + dw $02F3, $00C9, $00E3|!OWW_STOP dw !OWW_Stripe|!OWW_Vertical dw $2424 - dw $02F3, $00C9, $00E3 + dw $02F3, $00C9, $00E3|!OWW_STOP dw !OWW_END diff --git a/itemdatatables.asm b/itemdatatables.asm index 1f36c99..b83d5d2 100644 --- a/itemdatatables.asm +++ b/itemdatatables.asm @@ -22,10 +22,6 @@ ; resolve to a different one, or to run some custom code on pickup, you will have to use ; ItemSubstitutionRules in tables.asm or claim some free space in this bank to put your ; own code with vectors to it in the appropriate tables. -; -; Currently our "skip" vectors are located at (SNES address, little-endian): -; ItemReceipts_behavior: $CDBB -; ItemReceipts_resolution: $D33F ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ @@ -81,6 +77,8 @@ ; c = palette index | l = load palette from .palette_addr ; .palette_addr [0x02] - $A2BE00 (0x11CE00 PC) ; • Pointer to 8-color palette in bank $9B (see custompalettes.asm) +; • If an item has two sprites, this should be the chest sprite for +; dark rooms. ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ @@ -420,9 +418,9 @@ endmacro %SpriteProps($01, 0, 2, $05, $05, PalettesCustom_master_sword) ; 01 - Master sword %SpriteProps($02, 0, 2, $05, $01, PalettesCustom_tempered_sword) ; 02 - Tempered sword %SpriteProps($03, 0, 2, $05, $04, PalettesCustom_golden_sword) ; 03 - Golden sword -%SpriteProps($04, 0, 0, $80, $80, PalettesCustom_fighter_shield) ; 04 - Fighter shield -%SpriteProps($05, 2, 2, $80, $80, PalettesCustom_red_shield) ; 05 - Fire shield -%SpriteProps($06, 2, 2, $80, $80, PalettesCustom_mirror_shield) ; 06 - Mirror shield +%SpriteProps($04, 0, 0, $05, $80, PalettesCustom_fighter_shield) ; 04 - Fighter shield +%SpriteProps($05, 2, 2, $05, $80, PalettesCustom_red_shield) ; 05 - Fire shield +%SpriteProps($06, 2, 2, $05, $80, PalettesCustom_mirror_shield) ; 06 - Mirror shield %SpriteProps($07, 0, 0, $01, $01, PalettesVanilla_red_melon+$0E) ; 07 - Fire rod %SpriteProps($08, 0, 0, $02, $02, PalettesVanilla_blue_ice+$0E) ; 08 - Ice rod %SpriteProps($09, 0, 0, $01, $01, PalettesVanilla_red_melon+$0E) ; 09 - Hammer diff --git a/itemtext_lower.asm b/itemtext_lower.asm index e371649..d4061f7 100644 --- a/itemtext_lower.asm +++ b/itemtext_lower.asm @@ -16,7 +16,7 @@ Notice_CompassOf: ; Oh look! it's ; the big key of Notice_BigKeyOf: - db $74, $00, $B8, $00, $D7, $00, $FF, $00, $DB, $00, $DE, $00, $DE, $00, $DA, $00, $C7, $00, $FF, $00, $D8, $00, $E3, $00, $D8, $00, $E2 + db $74, $00, $B8, $00, $D7, $00, $FF, $00, $DB, $00, $DE, $00, $DE, $00, $DA, $00, $C7, $00, $FF, $00, $D8, $00, $E3, $00, $9D, $00, $E2 db $75, $00, $E3, $00, $D7, $00, $D4, $00, $FF, $00, $D1, $00, $D8, $00, $D6, $00, $FF, $00, $DA, $00, $D4, $00, $E8, $00, $FF, $00, $DE, $00, $D5 dw #$7F7F diff --git a/utilities.asm b/utilities.asm index cc4e286..a4063aa 100644 --- a/utilities.asm +++ b/utilities.asm @@ -366,22 +366,22 @@ LoadItemPalette: TXA : ASL : TAX LDA.l SpriteProperties_palette_addr,X : STA.b Scrap0A LDY.w #$000E - LDA.w RoomIndex : CMP.w #$008C : BEQ .aux - LDA.w TransparencyFlag : BNE .SP05 + JSR.w GTTorchCheck : BCS .aux + LDA.w TransparencyFlag : BNE .SP05 + - + LDA.b [Scrap0A], Y + STA.w PaletteBuffer+$0170,Y + DEY #2 + BPL - + LDA.w #$0003 + BRA .done + .SP05 - LDA.b [Scrap0A], Y - STA.w PaletteBuffer+$0170,Y + STA.w PaletteBuffer+$01B0,Y DEY #2 BPL - - LDA.w #$0003 - BRA .done - .SP05 - - - LDA.b [Scrap0A], Y - STA.w PaletteBuffer+$01B0,Y - DEY #2 - BPL - - LDA.w #$0005 + LDA.w #$0005 .done SEP #$30 PLB : PLY : PLX @@ -423,3 +423,19 @@ ItemReceiptWidthCheck: PLX LDA.l SpriteProperties_standing_width, X RTL + +GTTorchCheck: + PHX + SEP #$30 + LDA.w RoomIndex : CMP.b #$8C : BNE .done + LDX.w CurrentSpriteSlot + LDA.w SpriteTypeTable,X : CMP.b #$3B : BNE .done; Bonk Item + SEC + REP #$30 + PLX + RTS + .done + CLC + REP #$30 + PLX +RTS