From 4301e6a74756a0811aa23bbcf19c706db0d4a254 Mon Sep 17 00:00:00 2001 From: Lorenzo Carletti Date: Wed, 1 Dec 2021 12:58:04 +0100 Subject: [PATCH] Fix inner battle psi window being reprinted every two frames --- src/m2-vwf-entries.asm | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/m2-vwf-entries.asm b/src/m2-vwf-entries.asm index af9c8eb..d726e2a 100644 --- a/src/m2-vwf-entries.asm +++ b/src/m2-vwf-entries.asm @@ -2297,21 +2297,21 @@ pop {r4,pc} //============================================================================== //It sets things up to make it so the target window is only printed once e0854_psi_inner_window_battle: -push {lr} -ldrb r1,[r0,#3] +push {r4,lr} +mov r4,r0 +ldrb r1,[r4,#3] push {r1} -ldrh r1,[r0,#0x36] //Stores the cursor's Y of the window +ldrh r1,[r4,#0x36] //Stores the cursor's Y of the window push {r1} -ldrh r1,[r0,#0x34] //Stores the cursor's X of the window +ldrh r1,[r4,#0x34] //Stores the cursor's X of the window push {r1} bl PSITargetWindowInput //Input management, target printing and header printing function. Now the function takes the cursor's Y and X as arguments too in the stack pop {r2} -ldr r3,[r4,0x24] //Target window -ldrh r1,[r3,#0x34] //Stores the cursor's X of the window +ldrh r1,[r4,#0x34] //Stores the cursor's X of the window cmp r1,r2 bne @@store_buffer_first pop {r2} -ldrh r1,[r3,#0x36] //Stores the cursor's Y of the window +ldrh r1,[r4,#0x36] //Stores the cursor's Y of the window cmp r1,r2 bne @@store_buffer_second pop {r2} @@ -2334,12 +2334,11 @@ bl store_pixels_overworld_psi_window cmp r0,#0 beq @@ending -mov r2,#0 //Sets vwf_skip to false since the window is change -ldr r1,[r5,0x24] //Target window -strb r2,[r1,#3] +mov r2,#0 //Sets vwf_skip to false since the window is changed +strb r2,[r4,#3] @@ending: -pop {pc} +pop {r4,pc} .pool