From 89cf2e29ffef0a5399fef81d828bbfcb7978fc6e Mon Sep 17 00:00:00 2001 From: Kara Alexandra Date: Thu, 28 Nov 2024 02:50:32 -0600 Subject: [PATCH] Minor bug fixes: - single-entrance teleporting was borked - glove palettes - updating HUD on changing item --- hooks.asm | 4 ++-- improve_items.asm | 2 ++ inventory.asm | 28 ++++++++++++++++++---------- lift.asm | 6 ++++++ rewind.asm | 26 +++++++++++++------------- spriteswap.asm | 4 ++-- sram.asm | 3 ++- 7 files changed, 45 insertions(+), 28 deletions(-) diff --git a/hooks.asm b/hooks.asm index c8b3287..e688375 100644 --- a/hooks.asm +++ b/hooks.asm @@ -1385,9 +1385,9 @@ ReturnFromOnDrawHud: SEP #$30 LDX.b #$FF ; vanilla hud code ends with #$FF in X, and it's required for unknown reasons. -org $8DFC37 ; <- 6FC37 - headsup_display.asm : 828 (LDA.w #$28F7) +org $8DFC2B ; <- 6FC37 - headsup_display.asm : 828 (LDA.w #$28F7) JSL DrawMagicHeader -BRA + : NOP #15 : + +BRA + : NOP #27 : + ;-------------------------------------------------------------------------------- org $81CF67 ; <- CF67 - Bank01.asm : 11625 (STA $7EF36F) JSL DecrementSmallKeys diff --git a/improve_items.asm b/improve_items.asm index 1ab1795..85135cc 100644 --- a/improve_items.asm +++ b/improve_items.asm @@ -85,6 +85,7 @@ GetItemLevelForHud: + RTL CheckMagicLevel: + PHP : SEP #$30 LDA.w ItemCursor ; load item value TAX LDA.l CanReduceMagic, X @@ -103,6 +104,7 @@ CheckMagicLevel: LDA.b #$00 .write STA.l MagicConsumption + PLP RTL diff --git a/inventory.asm b/inventory.asm index 74a22c6..452866a 100644 --- a/inventory.asm +++ b/inventory.asm @@ -652,16 +652,24 @@ RTL ; DrawMagicHeader: ;-------------------------------------------------------------------------------- DrawMagicHeader: - LDA.l MagicConsumption : AND.w #$00FF : CMP.w #$0002 : BEQ .quarterMagic - .halfMagic - LDA.w #$28F7 : STA.l HUDTileMapBuffer+$04 - LDA.w #$2851 : STA.l HUDTileMapBuffer+$06 - LDA.w #$28FA : STA.l HUDTileMapBuffer+$08 -RTL - .quarterMagic - LDA.w #$28F7 : STA.l HUDTileMapBuffer+$04 - LDA.w #$2800 : STA.l HUDTileMapBuffer+$06 - LDA.w #$2801 : STA.l HUDTileMapBuffer+$08 + LDA.l MagicConsumption : AND.w #$00FF + CMP.w #$0000 : BEQ .normalMagic + CMP.w #$0001 : BEQ .halfMagic + BRA .quarterMagic +.normalMagic + LDA.w #$2850 : STA.l HUDTileMapBuffer+$04 + LDA.w #$A856 : STA.l HUDTileMapBuffer+$06 + LDA.w #$2852 : STA.l HUDTileMapBuffer+$08 +RTL +.halfMagic + LDA.w #$28F7 : STA.l HUDTileMapBuffer+$04 + LDA.w #$2851 : STA.l HUDTileMapBuffer+$06 + LDA.w #$28FA : STA.l HUDTileMapBuffer+$08 +RTL +.quarterMagic + LDA.w #$28F7 : STA.l HUDTileMapBuffer+$04 + LDA.w #$2800 : STA.l HUDTileMapBuffer+$06 + LDA.w #$2801 : STA.l HUDTileMapBuffer+$08 RTL ;-------------------------------------------------------------------------------- diff --git a/lift.asm b/lift.asm index 49b981f..1e06345 100644 --- a/lift.asm +++ b/lift.asm @@ -43,3 +43,9 @@ dw MenuEquipmentIcons_pearl pullpc +LoadModifiedGloveValue: + LDA.l GloveEquipment : AND.w #$00FF + BEQ .done + DEC +.done + RTL diff --git a/rewind.asm b/rewind.asm index 84c3b9d..d6c4c6a 100644 --- a/rewind.asm +++ b/rewind.asm @@ -168,12 +168,12 @@ LoadRewind: LDA.w #$FFFF STA.l RewindRoomId -; PHB -; LDX.w #RewindSRAM -; LDY.w #SaveDataWRAM -; LDA.w #$4FF -; MVN SaveDataWRAM>>16, RewindSRAM>>16 -; PLB + PHB + LDX.w #RewindEntranceCache + LDY.w #$C140 + LDA.w #$27 + MVN $7E, RewindEntranceCache>>16 + PLB PLP RTS @@ -270,12 +270,12 @@ SaveRewind: LDA.b $AA STA.l Rewind_AA -; PHB -; REP #$30 -; LDX #SaveDataWRAM -; LDY #RewindSRAM -; LDA #$4FF -; MVN RewindSRAM>>16, SaveDataWRAM>>16 -; PLB + PHB + REP #$30 + LDX.w #$C140 + LDY.w #RewindEntranceCache + LDA.w #$27 + MVN RewindEntranceCache>>16, $7E + PLB PLP RTL diff --git a/spriteswap.asm b/spriteswap.asm index 06cd613..ec5847d 100644 --- a/spriteswap.asm +++ b/spriteswap.asm @@ -37,8 +37,8 @@ SpriteSwap_Palette_ArmorAndGloves: SEP #$30 LDA.l SpriteSwapper : BNE .continue REP #$30 - LDA.l GloveEquipment - JSL $9BEE21 ; Read Original Palette Code + JSL.l LoadModifiedGloveValue + JSL $9BEE24 ; Read Original Palette Code RTL .continue diff --git a/sram.asm b/sram.asm index 3d0cfb5..fd8b251 100644 --- a/sram.asm +++ b/sram.asm @@ -417,7 +417,8 @@ Rewind_A6: skip 1 Rewind_A7: skip 1 Rewind_A9: skip 1 Rewind_AA: skip 1 -skip 473 +RewindEntranceCache: skip $28 +skip 433 ;================================================================================ ; Direct SRAM Assignments ($700000 - $7080000)