From c59186f4d5fe97de9668df7f45c97f3cecd022fd Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Mon, 23 Mar 2020 22:08:41 +1000 Subject: [PATCH] Decompile mainLoop --- src/boot/boot.c | 8 ++++---- src/include/lib/lib_0d520.h | 6 +++--- src/lib/lib_0d520.c | 36 ++++++++++++------------------------ 3 files changed, 19 insertions(+), 31 deletions(-) diff --git a/src/boot/boot.c b/src/boot/boot.c index 6147b6c26..d93014eca 100644 --- a/src/boot/boot.c +++ b/src/boot/boot.c @@ -677,10 +677,10 @@ glabel func000016cc /* 1860: 34059800 */ dli $a1,0x9800 /* 1864: 3c108009 */ lui $s0,%hi(var8008d6d0) /* 1868: 2610d6d0 */ addiu $s0,$s0,%lo(var8008d6d0) -/* 186c: 3c067000 */ lui $a2,%hi(func00001aa4) +/* 186c: 3c067000 */ lui $a2,%hi(mainproc) /* 1870: 2409000a */ addiu $t1,$zero,0xa /* 1874: afa90014 */ sw $t1,0x14($sp) -/* 1878: 24c61aa4 */ addiu $a2,$a2,%lo(func00001aa4) +/* 1878: 24c61aa4 */ addiu $a2,$a2,%lo(mainproc) /* 187c: 02002025 */ or $a0,$s0,$zero /* 1880: 24050003 */ addiu $a1,$zero,0x3 /* 1884: 00003825 */ or $a3,$zero,$zero @@ -841,7 +841,7 @@ glabel func000019f4 /* 1aa0: 27bd0018 */ addiu $sp,$sp,0x18 ); -void func00001aa4(u32 value) +void mainproc(u32 value) { func00001948(); func00013750(); @@ -854,7 +854,7 @@ void func00001aa4(u32 value) osSetThreadPri(0, 10); func000019f4(); - func0000dae8(); + mainLoop(); } void func00001b10(u32 value) diff --git a/src/include/lib/lib_0d520.h b/src/include/lib/lib_0d520.h index 55014f799..6ce8586d3 100644 --- a/src/include/lib/lib_0d520.h +++ b/src/include/lib/lib_0d520.h @@ -3,10 +3,10 @@ #include #include "types.h" -u32 func0000d520(void); -void func0000dae8(void); +u32 mainInit(void); +void mainLoop(void); u32 func0000db30(void); -u32 func0000db3c(void); +u32 mainTick(void); u32 func0000e324(void); void func0000e684(void); void func0000e95c(s32 stagenum); diff --git a/src/lib/lib_0d520.c b/src/lib/lib_0d520.c index db8f262f5..6e524cf3b 100644 --- a/src/lib/lib_0d520.c +++ b/src/lib/lib_0d520.c @@ -182,7 +182,7 @@ const char var70053b14[] = "-play"; const char var70053b1c[] = ""; GLOBAL_ASM( -glabel func0000d520 +glabel mainInit /* d520: 27bdeb28 */ addiu $sp,$sp,-5336 /* d524: afbf002c */ sw $ra,0x2c($sp) /* d528: 0c002fec */ jal func0000bfb0 @@ -576,28 +576,16 @@ glabel func0000d520 /* dae4: 27bd14d8 */ addiu $sp,$sp,0x14d8 ); -GLOBAL_ASM( -glabel func0000dae8 -/* dae8: 27bdffe8 */ addiu $sp,$sp,-24 -/* daec: afbf0014 */ sw $ra,0x14($sp) -/* daf0: 0c003548 */ jal func0000d520 -/* daf4: 00000000 */ sll $zero,$zero,0x0 -/* daf8: 0c00be28 */ jal func0002f8a0 -/* dafc: 00000000 */ sll $zero,$zero,0x0 -/* db00: 0c003e01 */ jal func0000f804 -/* db04: 00000000 */ sll $zero,$zero,0x0 -.L0000db08: -/* db08: 0c0036cf */ jal func0000db3c -/* db0c: 00000000 */ sll $zero,$zero,0x0 -/* db10: 1000fffd */ beqz $zero,.L0000db08 -/* db14: 00000000 */ sll $zero,$zero,0x0 -/* db18: 00000000 */ sll $zero,$zero,0x0 -/* db1c: 00000000 */ sll $zero,$zero,0x0 -/* db20: 8fbf0014 */ lw $ra,0x14($sp) -/* db24: 27bd0018 */ addiu $sp,$sp,0x18 -/* db28: 03e00008 */ jr $ra -/* db2c: 00000000 */ sll $zero,$zero,0x0 -); +void mainLoop(void) +{ + mainInit(); + func0002f8a0(); + func0000f804(); + + while (true) { + mainTick(); + } +} GLOBAL_ASM( glabel func0000db30 @@ -607,7 +595,7 @@ glabel func0000db30 ); GLOBAL_ASM( -glabel func0000db3c +glabel mainTick /* db3c: 27bdff78 */ addiu $sp,$sp,-136 /* db40: 3c0f8006 */ lui $t7,%hi(var8005dd5c) /* db44: afbf003c */ sw $ra,0x3c($sp)