diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index 19430c8..688e63b 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -226,6 +226,11 @@ IcePalaceFloorGfx: incbin ice_palace_floor.bin warnpc $31C801 +org $31C800 +Damage_Table: +incbin damage_table.bin +warnpc $31D801 + org $338000 GFX_HUD_Palette: incbin hudpalette.pal diff --git a/damage_table.bin b/damage_table.bin new file mode 100644 index 0000000..be50a75 Binary files /dev/null and b/damage_table.bin differ diff --git a/fileselect.asm b/fileselect.asm index 25c501f..4d2a553 100644 --- a/fileselect.asm +++ b/fileselect.asm @@ -59,5 +59,8 @@ AltBufferTable: ; Set last packet marker LDA.w #$00FF : STA $11f6 SEP #$20 - -RTL \ No newline at end of file + +RTL +;------------------------------------------------------------------------------ +Validate_SRAM: +RTL diff --git a/hooks.asm b/hooks.asm index 1b71f3e..d3a0fe0 100644 --- a/hooks.asm +++ b/hooks.asm @@ -90,6 +90,25 @@ JSL.l AltBufferTable : NOP #8 ; Selection screen org $0cd393 ; Bank0c.asm:2674 (LDX.w #$00FD) JSL.l AltBufferTable : NOP #8 ; Delete screen ;-------------------------------------------------------------------------------- +org $0CCCCC ;<- 64CCC - Bank0C.asm : 1628 (JSL Intro_ValidateSram) / Bank02.asm : 75 (REP #$30) +; Explanation: In JP 1.0 the code for Intro_ValidateSram was inline in Bank 0C +JML.l Validate_SRAM ;(Return via RTL. Original code JML'd to Intro_LoadSpriteStats which returns with RTL, but we want to skip that) +org $0CCD57 ;<- 64D57 - Bank0C.asm : +RTL ;Just in case anybody ever removes the previous hook +;-------------------------------------------------------------------------------- + +;================================================================================ +; Damage table Relocation from WRAM +;-------------------------------------------------------------------------------- +org $06EDB5 ;<- 36DBE - Bank06.asm : 4882 (LDA $7F6000, X : STA $02) +JSL.l LookupDamageLevel +;-------------------------------------------------------------------------------- +!StalfosBombDamage = "$7F509D" +org $1eab5e ;<- F2B5E - sprite_stalfos_knight.asm : 135 (LDA.b #$00 : STA $7F6918) +STA.l !StalfosBombDamage +org $1eaad6 ;<- F2AB6 - sprite_stalfos_knight.asm : 32 (LDA.b #$02 : STA $7F6918) +STA.l !StalfosBombDamage +;-------------------------------------------------------------------------------- ;================================================================================ ; Duck Map Load Hook diff --git a/swordswap.asm b/swordswap.asm index af91e83..18a9ab0 100644 --- a/swordswap.asm +++ b/swordswap.asm @@ -39,6 +39,16 @@ LoadSwordForDamage: JSR.w LoadModifiedSwordLevel ; load normal sword value RTL ;================================================================================ +;!StalfosBombDamage = "$7F509D" +LookupDamageLevel: + CPX.w #$6918 : BNE + + LDA.l !StalfosBombDamage + BRA .done + + + LDA.l Damage_Table, X + .done +RTL +;================================================================================ ; $7F50C0 - Sword Modifier LoadModifiedSwordLevel: ; returns short LDA $7F50C0 : BEQ + diff --git a/tables.asm b/tables.asm index 74f9ccb..19b4210 100644 --- a/tables.asm +++ b/tables.asm @@ -1492,6 +1492,7 @@ dw #9999 ; Rupee Limit ; $7F509A - (Reserved) ; $7F509B - MSU Flag ; $7F509C - Inverted Mode Duck Map Temporary +; $7F509D - Stalfos Bomb Damage Value ; $7F50A0 - Event Parameter 1 @@ -1518,6 +1519,8 @@ dw #9999 ; Rupee Limit ; $7F5200 - $7F52FF - RNG Pointer Block ; ; $7F5700 - $7F57FF - Dialog Buffer +; +; $7F6000 - $7F6FFF - Free RAM (Reclaimed from Damage Table) ;================================================================================ !BIGRAM = "$7EC900"; ; $7EC900 - Big RAM Buffer ($1F00)