From 7329bcef6be57b08b52f5fb6f7a6e6cf2b74d64b Mon Sep 17 00:00:00 2001 From: jeffman Date: Fri, 17 Mar 2017 00:56:41 -0400 Subject: [PATCH] Only re-render PSI help on button press Without this, the game will constantly try to clear+render the whole PSI help window per frame which causes extreme lag and tearing. --- m2-hack.asm | 3 +++ m2-vwf-entries.asm | 29 +++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/m2-hack.asm b/m2-hack.asm index 2c0debe..67658b8 100644 --- a/m2-hack.asm +++ b/m2-hack.asm @@ -48,6 +48,9 @@ incsrc m2-status-switch.asm org $80BACFC; bl m2_vwf_entries.bac18_redraw_status org $80BADE6; bl m2_vwf_entries.bac18_redraw_status org $80BACEE; bl m2_vwf_entries.bac18_clear_psi +org $80BADC8 +bl m2_vwf_entries.bac18_check_button +b $80BADD8 //--------------------------------------------------------- // C1FBC hacks (PSI window) diff --git a/m2-vwf-entries.asm b/m2-vwf-entries.asm index bda098c..e4adb48 100644 --- a/m2-vwf-entries.asm +++ b/m2-vwf-entries.asm @@ -359,3 +359,32 @@ pop {r0} lsl r0,r0,#0x10 asr r4,r0,#0x10 pop {pc} + +//============================================================================== +// Only clear+redraw the PSI help if a button has been pressed +.bac18_check_button: +push {lr} + +// Copy the thing that was on the stack from the caller +add sp,#-4 +ldr r0,[sp,#8] +str r0,[sp,#0] + +ldr r0,=#0x3002500 +ldrh r0,[r0,#0] +cmp r0,#0 +beq + + +// Clear window +ldr r0,[r5,#0x28] +mov r1,r2 +mov r2,#0 +bl $80BE458 + +// Render window +ldr r0,[r5,#0x28] +bl $80C8BE4 + ++ +add sp,#4 +pop {pc}