diff options
Diffstat (limited to 'psp')
-rw-r--r-- | psp/mips_emit.h | 8 | ||||
-rw-r--r-- | psp/mips_stub.S | 4 |
2 files changed, 7 insertions, 5 deletions
diff --git a/psp/mips_emit.h b/psp/mips_emit.h index b996f2b..d24c174 100644 --- a/psp/mips_emit.h +++ b/psp/mips_emit.h @@ -2512,7 +2512,8 @@ u8 swi_hle_handle[256] = #define ReOff_SaveR1 (21*4) // 3 save scratch regs #define ReOff_SaveR2 (22*4) #define ReOff_SaveR3 (23*4) -#define ReOff_GP_Save (32*4) // GP_SAVE +#define ReOff_OamUpd (33*4) // OAM_UPDATED +#define ReOff_GP_Save (34*4) // GP_SAVE // Saves all regs to their right slot and loads gp #define emit_save_regs(save_a2) { \ @@ -2873,9 +2874,8 @@ static void emit_pmemst_stub( // Post processing store: // Signal that OAM was updated if (region == 7) { - u32 palcaddr = (u32)&oam_update; - mips_emit_lui(reg_temp, ((palcaddr + 0x8000) >> 16)); - mips_emit_sw(reg_base, reg_temp, palcaddr & 0xffff); // Write any nonzero data + // Write any nonzero data + mips_emit_sw(reg_base, reg_base, ReOff_OamUpd); generate_function_return_swap_delay(); } else { diff --git a/psp/mips_stub.S b/psp/mips_stub.S index 3d046d8..cc3a220 100644 --- a/psp/mips_stub.S +++ b/psp/mips_stub.S @@ -52,6 +52,7 @@ .global reg .global spsr .global reg_mode +.global oam_update # MIPS register layout: @@ -116,7 +117,8 @@ .equ CPU_HALT_STATE, (30 * 4) .equ CHANGED_PC_STATUS, (31 * 4) .equ COMPLETED_FRAME, (32 * 4) -.equ GP_SAVE, (33 * 4) +.equ OAM_UPDATED, (33 * 4) +.equ GP_SAVE, (34 * 4) .equ SPSR_BASE, (0x900) .equ REGMODE_BASE, (0x900 + 24) |