From 6d13a1c4fbf0d34f0746a9bee6768d1f05d60807 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 9 Oct 2021 07:54:32 +1000 Subject: [PATCH] Attempt to decompile vi00009ed4 --- src/include/bss.h | 4 ++-- src/include/data.h | 2 +- src/include/lib/lib_09a80.h | 2 +- src/lib/lib_09a80.c | 37 +++++++++++++++++++++++++++++++++++++ src/lib/sched.c | 6 +++--- 5 files changed, 44 insertions(+), 7 deletions(-) diff --git a/src/include/bss.h b/src/include/bss.h index 6ec6016ac..0b19bad47 100644 --- a/src/include/bss.h +++ b/src/include/bss.h @@ -15,8 +15,8 @@ extern OSSched g_SchedThread; extern OSViMode var8008dcc0[2]; extern OSViMode *var8008dd60[2]; extern u32 var8008de08; -extern u32 var8008de0c; -extern u32 var8008de10; +extern s32 var8008de0c; +extern s32 var8008de10; extern u8 g_BootBufferDirtyIndexes[3]; extern s32 g_BootBufferIndex0; extern OSPiHandle CartRomHandle; diff --git a/src/include/data.h b/src/include/data.h index f43ff635a..800361b07 100644 --- a/src/include/data.h +++ b/src/include/data.h @@ -20,7 +20,7 @@ extern f32 var8005ce78[2]; extern f32 var8005ce80[2]; extern u32 var8005ce88[2]; extern s32 g_ViUnblackTimer; -extern u32 var8005ce94; +extern s32 var8005ce94; extern s32 var8005ce98; extern u32 var8005ce9c; extern OSMesg var8005cea8; diff --git a/src/include/lib/lib_09a80.h b/src/include/lib/lib_09a80.h index b69733223..b32e65b05 100644 --- a/src/include/lib/lib_09a80.h +++ b/src/include/lib/lib_09a80.h @@ -15,7 +15,7 @@ void vi00009b50(u8 *fb); void vi00009bf8(void); void viAllocateFbs(s32 stagenum); void viBlack(bool black); -u32 vi00009ed4(void); +void vi00009ed4(void); void vi0000a044(void); void vi0000aa50(f32 arg0); void vi0000aab0(s32 arg0); diff --git a/src/lib/lib_09a80.c b/src/lib/lib_09a80.c index 9a3a78496..572a13380 100644 --- a/src/lib/lib_09a80.c +++ b/src/lib/lib_09a80.c @@ -448,6 +448,43 @@ glabel vi00009ed4 ); #endif +// Mismatch: regalloc +//void vi00009ed4(void) +//{ +// s32 prevmask; +// s32 value; +// +// if (var8005ce9c != 0) { +// var8005ce9c--; +// +// if (var8005ce9c == 0) { +// var8005ce98 = 0; +// } +// } +// +// value = var8005ce94 * var8005ce98; +// var8005ce94 = -var8005ce94; +// +//#if VERSION >= VERSION_NTSC_1_0 +// prevmask = osSetIntMask(1); +//#endif +// +// var8008dd60[1 - var8005ce74]->fldRegs[0].vStart = +// ((var8008de0c >> 16) + value) << 16 | var8008de0c + value & 0xffff; +// var8008dd60[1 - var8005ce74]->fldRegs[1].vStart = +// ((var8008de10 >> 16) + value) << 16 | var8008de10 + value & 0xffff; +// +//#if VERSION >= VERSION_NTSC_1_0 +// osSetIntMask(prevmask); +//#endif +// +// osViSetMode(var8008dd60[1 - var8005ce74]); +// osViBlack(g_ViUnblackTimer); +// osViSetXScale(var8005ce78[1 - var8005ce74]); +// osViSetYScale(var8005ce80[1 - var8005ce74]); +// osViSetSpecialFeatures(OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_ON); +//} + #if VERSION >= VERSION_PAL_FINAL GLOBAL_ASM( glabel vi0000a044 diff --git a/src/lib/sched.c b/src/lib/sched.c index 097b21283..4a50934f2 100644 --- a/src/lib/sched.c +++ b/src/lib/sched.c @@ -22,8 +22,8 @@ OSViMode var8008dcc0[2]; OSViMode *var8008dd60[2]; OSViMode var8008dd68[2]; u32 var8008de08; -u32 var8008de0c; -u32 var8008de10; +s32 var8008de0c; +s32 var8008de10; u32 var8008de14; OSTimer var8008de18; u32 var8008de38; @@ -46,7 +46,7 @@ f32 var8005ce78[2] = {1, 1}; f32 var8005ce80[2] = {1, 1}; u32 var8005ce88[2] = {0}; s32 g_ViUnblackTimer = 3; -u32 var8005ce94 = 0x00000001; +s32 var8005ce94 = 1; s32 var8005ce98 = 0; u32 var8005ce9c = 0x00000000; u32 var8005cea0 = 0x00000000;