From c3dede10d52e173ee7c6346ded1962abcffd4b77 Mon Sep 17 00:00:00 2001 From: David Benepe Date: Fri, 4 Jun 2021 21:08:07 -0500 Subject: [PATCH] split unknown_0AEE70 into unknown_0B7A50 --- .../unknown_0AEE70/func_800B7810.s | 89 +++++- src/unknown_0AEE70.c | 281 +++++++----------- src/unknown_0B7A50.c | 45 +++ 3 files changed, 237 insertions(+), 178 deletions(-) create mode 100644 src/unknown_0B7A50.c diff --git a/asm/non_matchings/unknown_0AEE70/func_800B7810.s b/asm/non_matchings/unknown_0AEE70/func_800B7810.s index bf6dc19e..5935d8fb 100644 --- a/asm/non_matchings/unknown_0AEE70/func_800B7810.s +++ b/asm/non_matchings/unknown_0AEE70/func_800B7810.s @@ -1,3 +1,84 @@ +.rdata +glabel D_800E8F18 +.asciz " epc\t\t0x%08x\n" +.ascii "\0\0" # padding +glabel D_800E8F28 +.asciz " cause\t\tmmAlloc(%d,0x%8x)\n" +.ascii "\0" # padding +glabel D_800E8F44 +.asciz " object\t\t" +.ascii "\0\0" # padding +glabel D_800E8F50 +.asciz "%s %d " +.ascii "\0" # padding +glabel D_800E8F58 +.asciz "\n" +.ascii "\0\0" # padding +glabel D_800E8F5C +.asciz "\n\n\n\n\n\n\n\n\n\n\n\n\n\n" +.ascii "\0" # padding +glabel D_800E8F6C +.asciz " Fault in thread %d\n" +.ascii "\0\0\0" # padding +glabel D_800E8F84 +.asciz " epc\t\t0x%08x\n" +.ascii "\0\0" # padding +glabel D_800E8F94 +.asciz " cause\t\t0x%08x\n" +glabel D_800E8FA4 +.asciz " sr\t\t0x%08x\n" +.ascii "\0\0\0" # padding +glabel D_800E8FB4 +.asciz " badvaddr\t0x%08x\n" +.ascii "\0\0" # padding +glabel D_800E8FC8 +.asciz " object\t\t" +.ascii "\0\0" # padding +glabel D_800E8FD4 +.asciz "%s %d " +.ascii "\0" # padding +glabel D_800E8FDC +.asciz "\n" +.ascii "\0\0" # padding +glabel D_800E8FE0 +.asciz " at 0x%08x v0 0x%08x v1 0x%08x\n" +glabel D_800E9000 +.asciz " a0 0x%08x a1 0x%08x a2 0x%08x\n" +glabel D_800E9020 +.asciz " a3 0x%08x t0 0x%08x t1 0x%08x\n" +glabel D_800E9040 +.asciz " t2 0x%08x t3 0x%08x t4 0x%08x\n" +glabel D_800E9060 +.asciz " t5 0x%08x t6 0x%08x t7 0x%08x\n" +glabel D_800E9080 +.asciz " s0 0x%08x s1 0x%08x s2 0x%08x\n" +glabel D_800E90A0 +.asciz " s3 0x%08x s4 0x%08x s5 0x%08x\n" +glabel D_800E90C0 +.asciz " s6 0x%08x s7 0x%08x t8 0x%08x\n" +glabel D_800E90E0 +.asciz " t9 0x%08x gp 0x%08x sp 0x%08x\n" +glabel D_800E9100 +.asciz " s8 0x%08x ra 0x%08x\n\n" +.ascii "\0" # padding +glabel D_800E9118 +.asciz " %08x %08x %08x\n" +.ascii "\0" # padding +glabel D_800E912C +.asciz " " +.ascii "\0" # padding +glabel D_800E9130 +.asciz "%04x " +.ascii "\0\0" # padding +glabel D_800E9138 +.asciz "\n" +.ascii "\0\0" # padding + +.late_rodata +glabel jpt_800E913C +.word L800B7898, L800B7C18, L800B7C18, L800B7C18, L800B7C70, L800B7CE4 + +.text glabel func_800B7810 /* 0B8410 800B7810 27BDFFA0 */ addiu $sp, $sp, -0x60 /* 0B8414 800B7814 3C0F800E */ lui $t7, %hi(D_800E302C) # $t7, 0x800e @@ -27,12 +108,13 @@ glabel func_800B7810 /* 0B8474 800B7874 2C410006 */ sltiu $at, $v0, 6 /* 0B8478 800B7878 1020011B */ beqz $at, .L800B7CE8 /* 0B847C 800B787C 00024880 */ sll $t1, $v0, 2 -/* 0B8480 800B7880 3C01800F */ lui $at, %hi(D_800E913C) # $at, 0x800f +/* 0B8480 800B7880 3C01800F */ lui $at, %hi(jpt_800E913C) # $at, 0x800f /* 0B8484 800B7884 00290821 */ addu $at, $at, $t1 -/* 0B8488 800B7888 8C29913C */ lw $t1, %lo(D_800E913C)($at) +/* 0B8488 800B7888 8C29913C */ lw $t1, %lo(jpt_800E913C)($at) /* 0B848C 800B788C 00000000 */ nop /* 0B8490 800B7890 01200008 */ jr $t1 /* 0B8494 800B7894 00000000 */ nop +glabel L800B7898 /* 0B8498 800B7898 444AF800 */ cfc1 $t2, $31 /* 0B849C 800B789C 3C038013 */ lui $v1, %hi(D_80129800) # $v1, 0x8013 /* 0B84A0 800B78A0 35410003 */ ori $at, $t2, 3 @@ -264,6 +346,7 @@ glabel func_800B7810 /* 0B880C 800B7C0C 24849100 */ addiu $a0, %lo(D_800E9100) # addiu $a0, $a0, -0x6f00 /* 0B8810 800B7C10 10000036 */ b .L800B7CEC /* 0B8814 800B7C14 8FBF002C */ lw $ra, 0x2c($sp) +glabel L800B7C18 /* 0B8818 800B7C18 00021880 */ sll $v1, $v0, 2 /* 0B881C 800B7C1C 00621823 */ subu $v1, $v1, $v0 /* 0B8820 800B7C20 00031900 */ sll $v1, $v1, 4 @@ -287,6 +370,7 @@ glabel func_800B7810 /* 0B8864 800B7C64 26100004 */ addiu $s0, $s0, 4 /* 0B8868 800B7C68 10000020 */ b .L800B7CEC /* 0B886C 800B7C6C 8FBF002C */ lw $ra, 0x2c($sp) +glabel L800B7C70 /* 0B8870 800B7C70 000219C0 */ sll $v1, $v0, 7 /* 0B8874 800B7C74 2463FE00 */ addiu $v1, $v1, -0x200 /* 0B8878 800B7C78 3C198013 */ lui $t9, %hi(D_80129BB0) # $t9, 0x8013 @@ -318,6 +402,7 @@ glabel func_800B7810 /* 0B88D8 800B7CD8 00000000 */ nop /* 0B88DC 800B7CDC 10000003 */ b .L800B7CEC /* 0B88E0 800B7CE0 8FBF002C */ lw $ra, 0x2c($sp) +glabel L800B7CE4 /* 0B88E4 800B7CE4 AC600000 */ sw $zero, ($v1) .L800B7CE8: /* 0B88E8 800B7CE8 8FBF002C */ lw $ra, 0x2c($sp) diff --git a/src/unknown_0AEE70.c b/src/unknown_0AEE70.c index 9d468239..e6365b64 100644 --- a/src/unknown_0AEE70.c +++ b/src/unknown_0AEE70.c @@ -4,6 +4,109 @@ #include "types.h" #include "macros.h" +/************ .rodata ************/ + +const char D_800E87F0[] = "\nMaximum limit of %d lens flare switches, per level, has been exceeded."; + +// This is probably a file boundary. +const DoubleLiteral D_800E8838 = { 0.0 }; + +const char D_800E8840[] = "\n\nUnknown trigger type in initParticleTrigger %d, Max %d.\n\n"; +const char D_800E887C[] = "\n\nUnknown particle type in initParticleTrigger %d, Max %d.\n\n"; +const char D_800E88BC[] = "\n\nUnknown trigger type in initParticleTrigger %d, Max %d.\n\n"; +const char D_800E88F8[] = "Sprite Particle buffer is full.\n"; +const char D_800E891C[] = "Triangle Particle buffer is full.\n"; +const char D_800E8940[] = "Rectangle Particle buffer is full.\n"; +const char D_800E8964[] = "Line Particle buffer is full.\n"; +const char D_800E8980[] = "Point Particle buffer is full.\n"; +const char D_800E89A4[] = "\n\nCan't allocate space for unknown particle type."; +const char D_800E89D8[] = "\n\nParticle has been freed twice, this is Super Safe, Honest!\n"; +const char D_800E8A18[] = "\n\nSprite Particle Buffer is empty.\n\n"; +const char D_800E8A40[] = "\n\nTriangle Particle Buffer is empty.\n\n"; +const char D_800E8A68[] = "\n\nRectangle Particle Buffer is empty.\n\n"; +const char D_800E8A90[] = "\n\nLine Particle buffer is empty.\n\n"; +const char D_800E8AB4[] = "\n\nPoint Particle buffer is empty.\n\n"; +const char D_800E8AD8[] = "\n\nCan't deallocate space for unknown particle type.\n\n"; +const char D_800E8B10[] = "\nError :: trigger %x has no reference to point %x"; +const char D_800E8B44[] = "\nError :: particle %x is not indexed correctly in trigger list %x (%d >> %p)"; + +const DoubleLiteral D_800E8B98 = { 0.00001525878906 }; +const DoubleLiteral D_800E8BA0 = { 0.00001525878906 }; +const DoubleLiteral D_800E8BA8 = { 0.00001525878906 }; +const DoubleLiteral D_800E8BB0 = { 0.00001525878906 }; +const DoubleLiteral D_800E8BB8 = { 0.00001525878906 }; +const DoubleLiteral D_800E8BC0 = { 0.00001525878906 }; +const DoubleLiteral D_800E8BC8 = { 0.00001525878906 }; +const DoubleLiteral D_800E8BD0 = { 0.00001525878906 }; +const FloatLiteral D_800E8BD8 = { 0.1f }; + +// Jump table in func_800B2040 +const u32 D_800E8BDC[] = { + 0x800B2250, 0x800B20E0, 0x800B2138, 0x800B2190, + 0x800B21E8 +}; + +const FloatLiteral D_800E8BF0 = { 0.1f }; +const FloatLiteral D_800E8BF4 = { 0.01f }; + +// This is probably another file boundary. +const DoubleLiteral D_800E8BF8 = { 0.0 }; + +const char D_800E8C00[] = "0123456789abcdefghijklmnopqrstuvwxyz"; +const char D_800E8C28[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; +const char D_800E8C50[] = ""; +const char D_800E8C54[] = "(null)"; +const char D_800E8C5C[] = "(nil)"; +const char D_800E8C64[] = "*** diPrintf Error *** ---> Out of string space. (Print less text!)\n"; + +// Jump table in func_800B4A40 +const u32 D_800E8CAC[] = { + 0x800B4BA4, 0x800B4BC8, 0x800B4BC8, 0x800B4BBC, + 0x800B4BC8, 0x800B4BC8, 0x800B4BC8, 0x800B4BC8, + 0x800B4BC8, 0x800B4BC8, 0x800B4BC8, 0x800B4BAC, + 0x800B4BC8, 0x800B4BB4, 0x800B4BC8, 0x800B4BC8, + 0x800B4BC4 +}; + +// Jump table in func_800B4A40 +const u32 D_800E8CF0[] = { + 0x800B4DB0, 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, + 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, + 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, + 0x800B4DC4, 0x800B4DC4, 0x800B4DB8, 0x800B4DC4, + 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, + 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, + 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, + 0x800B4D90, 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, + 0x800B4D98, 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, + 0x800B4DC4, 0x800B4DC0 +}; + +// Jump table in func_800B4A40 +const u32 D_800E8D88[] = { + 0x800B52C4, 0x800B5E0C, 0x800B5794, 0x800B5E0C, + 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, + 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, + 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, + 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, 0x800B4F84, + 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, + 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, + 0x800B5E0C, 0x800B5E0C, 0x800B5AC4, 0x800B4E38, + 0x800B52C4, 0x800B57A4, 0x800B5794, 0x800B5E0C, + 0x800B4E38, 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, + 0x800B5E0C, 0x800B5D78, 0x800B4F64, 0x800B5C8C, + 0x800B5E0C, 0x800B5E0C, 0x800B5B48, 0x800B5E0C, + 0x800B4F44, 0x800B5E0C, 0x800B5E0C, 0x800B4FA4 +}; + +// Jump table in func_800B653C +const u32 D_800E8E58[] = { + 0x800B6658, 0x800B6740, 0x800B6614, 0x800B6634, + 0x800B66CC +}; + +/*********************************/ + /************ .data ************/ // I woundn't be suprised if most of these zeroes are really just null pointers. @@ -163,168 +266,7 @@ u32 D_800E2FB8[] = { 0xB8000000, 0x00000000 }; -s32 D_800E3020 = -1; -s32 D_800E3024 = 0; -s32 D_800E3028 = 0; - -s32 *D_800E302C[3] = { - (s32*)0x800E8F00, (s32*)0x800E8F08, (s32*)0x800E8F10 -}; - /*******************************/ -/************ .rodata ************/ - -const char D_800E87F0[] = "\nMaximum limit of %d lens flare switches, per level, has been exceeded."; - -// This is probably a file boundary. -const DoubleLiteral D_800E8838 = { 0.0 }; - -const char D_800E8840[] = "\n\nUnknown trigger type in initParticleTrigger %d, Max %d.\n\n"; -const char D_800E887C[] = "\n\nUnknown particle type in initParticleTrigger %d, Max %d.\n\n"; -const char D_800E88BC[] = "\n\nUnknown trigger type in initParticleTrigger %d, Max %d.\n\n"; -const char D_800E88F8[] = "Sprite Particle buffer is full.\n"; -const char D_800E891C[] = "Triangle Particle buffer is full.\n"; -const char D_800E8940[] = "Rectangle Particle buffer is full.\n"; -const char D_800E8964[] = "Line Particle buffer is full.\n"; -const char D_800E8980[] = "Point Particle buffer is full.\n"; -const char D_800E89A4[] = "\n\nCan't allocate space for unknown particle type."; -const char D_800E89D8[] = "\n\nParticle has been freed twice, this is Super Safe, Honest!\n"; -const char D_800E8A18[] = "\n\nSprite Particle Buffer is empty.\n\n"; -const char D_800E8A40[] = "\n\nTriangle Particle Buffer is empty.\n\n"; -const char D_800E8A68[] = "\n\nRectangle Particle Buffer is empty.\n\n"; -const char D_800E8A90[] = "\n\nLine Particle buffer is empty.\n\n"; -const char D_800E8AB4[] = "\n\nPoint Particle buffer is empty.\n\n"; -const char D_800E8AD8[] = "\n\nCan't deallocate space for unknown particle type.\n\n"; -const char D_800E8B10[] = "\nError :: trigger %x has no reference to point %x"; -const char D_800E8B44[] = "\nError :: particle %x is not indexed correctly in trigger list %x (%d >> %p)"; - -const DoubleLiteral D_800E8B98 = { 0.00001525878906 }; -const DoubleLiteral D_800E8BA0 = { 0.00001525878906 }; -const DoubleLiteral D_800E8BA8 = { 0.00001525878906 }; -const DoubleLiteral D_800E8BB0 = { 0.00001525878906 }; -const DoubleLiteral D_800E8BB8 = { 0.00001525878906 }; -const DoubleLiteral D_800E8BC0 = { 0.00001525878906 }; -const DoubleLiteral D_800E8BC8 = { 0.00001525878906 }; -const DoubleLiteral D_800E8BD0 = { 0.00001525878906 }; -const FloatLiteral D_800E8BD8 = { 0.1f }; - -// Jump table in func_800B2040 -const u32 D_800E8BDC[] = { - 0x800B2250, 0x800B20E0, 0x800B2138, 0x800B2190, - 0x800B21E8 -}; - -const FloatLiteral D_800E8BF0 = { 0.1f }; -const FloatLiteral D_800E8BF4 = { 0.01f }; - -// This is probably another file boundary. -const DoubleLiteral D_800E8BF8 = { 0.0 }; - -const char D_800E8C00[] = "0123456789abcdefghijklmnopqrstuvwxyz"; -const char D_800E8C28[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; -const char D_800E8C50[] = ""; -const char D_800E8C54[] = "(null)"; -const char D_800E8C5C[] = "(nil)"; -const char D_800E8C64[] = "*** diPrintf Error *** ---> Out of string space. (Print less text!)\n"; - -// Jump table in func_800B4A40 -const u32 D_800E8CAC[] = { - 0x800B4BA4, 0x800B4BC8, 0x800B4BC8, 0x800B4BBC, - 0x800B4BC8, 0x800B4BC8, 0x800B4BC8, 0x800B4BC8, - 0x800B4BC8, 0x800B4BC8, 0x800B4BC8, 0x800B4BAC, - 0x800B4BC8, 0x800B4BB4, 0x800B4BC8, 0x800B4BC8, - 0x800B4BC4 -}; - -// Jump table in func_800B4A40 -const u32 D_800E8CF0[] = { - 0x800B4DB0, 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, - 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, - 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, - 0x800B4DC4, 0x800B4DC4, 0x800B4DB8, 0x800B4DC4, - 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, - 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, - 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, - 0x800B4D90, 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, - 0x800B4D98, 0x800B4DC4, 0x800B4DC4, 0x800B4DC4, - 0x800B4DC4, 0x800B4DC0 -}; - -// Jump table in func_800B4A40 -const u32 D_800E8D88[] = { - 0x800B52C4, 0x800B5E0C, 0x800B5794, 0x800B5E0C, - 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, - 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, - 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, - 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, 0x800B4F84, - 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, - 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, - 0x800B5E0C, 0x800B5E0C, 0x800B5AC4, 0x800B4E38, - 0x800B52C4, 0x800B57A4, 0x800B5794, 0x800B5E0C, - 0x800B4E38, 0x800B5E0C, 0x800B5E0C, 0x800B5E0C, - 0x800B5E0C, 0x800B5D78, 0x800B4F64, 0x800B5C8C, - 0x800B5E0C, 0x800B5E0C, 0x800B5B48, 0x800B5E0C, - 0x800B4F44, 0x800B5E0C, 0x800B5E0C, 0x800B4FA4 -}; - -// Jump table in func_800B653C -const u32 D_800E8E58[] = { - 0x800B6658, 0x800B6740, 0x800B6614, 0x800B6634, - 0x800B66CC -}; - -// This is probably another file boundary. -const FloatLiteral D_800E8E6C = { 0.0f }; - -const char D_800E8E70[] = "\nAssertion failed: '%s' in file %s, line %d\n"; -const char D_800E8EA0[] = "\nAssertion failed: '%s' in file %s, line %d\n"; -const char D_800E8ED0[] = ">fault< "; -const char D_800E8EDC[] = "CORE\0\0\0\0"; -const char D_800E8EE8[] = "CORE\0\0\0\0"; -const char D_800E8EF4[] = "CORE\0\0\0\0"; - -const char D_800E8F00[] = "setup"; -const char D_800E8F08[] = "control"; -const char D_800E8F10[] = "print"; - -// EPC (Error program counter?) Lockup display strings, see: https://tcrf.net/Diddy_Kong_Racing#Crash_Debugger -const char D_800E8F18[] = " epc\t\t0x%08x\n"; -const char D_800E8F28[] = " cause\t\tmmAlloc(%d,0x%8x)\n"; -const char D_800E8F44[] = " object\t\t"; -const char D_800E8F50[] = "%s %d "; -const char D_800E8F58[] = "\n"; -const char D_800E8F5C[] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n"; -const char D_800E8F6C[] = " Fault in thread %d\n"; -const char D_800E8F84[] = " epc\t\t0x%08x\n"; -const char D_800E8F94[] = " cause\t\t0x%08x\n"; -const char D_800E8FA4[] = " sr\t\t0x%08x\n"; -const char D_800E8FB4[] = " badvaddr\t0x%08x\n"; -const char D_800E8FC8[] = " object\t\t"; -const char D_800E8FD4[] = "%s %d "; -const char D_800E8FDC[] = "\n"; -const char D_800E8FE0[] = " at 0x%08x v0 0x%08x v1 0x%08x\n"; -const char D_800E9000[] = " a0 0x%08x a1 0x%08x a2 0x%08x\n"; -const char D_800E9020[] = " a3 0x%08x t0 0x%08x t1 0x%08x\n"; -const char D_800E9040[] = " t2 0x%08x t3 0x%08x t4 0x%08x\n"; -const char D_800E9060[] = " t5 0x%08x t6 0x%08x t7 0x%08x\n"; -const char D_800E9080[] = " s0 0x%08x s1 0x%08x s2 0x%08x\n"; -const char D_800E90A0[] = " s3 0x%08x s4 0x%08x s5 0x%08x\n"; -const char D_800E90C0[] = " s6 0x%08x s7 0x%08x t8 0x%08x\n"; -const char D_800E90E0[] = " t9 0x%08x gp 0x%08x sp 0x%08x\n"; -const char D_800E9100[] = " s8 0x%08x ra 0x%08x\n\n"; -const char D_800E9118[] = " %08x %08x %08x\n"; -const char D_800E912C[] = " "; -const char D_800E9130[] = "%04x "; -const char D_800E9138[] = "\n"; -// End of EPC lockup strings - -// Jump table in func_800B7810 -const u32 D_800E913C[] = { - 0x800B7898, 0x800B7C18, 0x800B7C18, 0x800B7C18, - 0x800B7C70, 0x800B7CE4 -}; - -/*********************************/ void func_800AE2D8(void); void func_800AE374(void); @@ -445,6 +387,7 @@ GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B22FC.s") GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B263C.s") GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B26E0.s") GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B2FBC.s") + GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B3140.s") GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B3240.s") GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B3358.s") @@ -465,18 +408,4 @@ GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B635C.s") GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B653C.s") GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B695C.s") GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B69FC.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B6E50.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B6EE0.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B6F04.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B6F40.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B6F50.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/D_800B6FC4.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B70D0.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B7144.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B71B0.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B7460.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B76B8.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B76DC.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B77D4.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B7810.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B7D10.s") + diff --git a/src/unknown_0B7A50.c b/src/unknown_0B7A50.c new file mode 100644 index 00000000..4b0f9649 --- /dev/null +++ b/src/unknown_0B7A50.c @@ -0,0 +1,45 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800B6E50 */ + +#include "types.h" +#include "macros.h" + +/************ .rodata ************/ + +const char D_800E8E70[] = "\nAssertion failed: '%s' in file %s, line %d\n"; +const char D_800E8EA0[] = "\nAssertion failed: '%s' in file %s, line %d\n"; +const char D_800E8ED0[] = ">fault< "; +const char D_800E8EDC[] = "CORE\0\0\0\0"; +const char D_800E8EE8[] = "CORE\0\0\0\0"; +const char D_800E8EF4[] = "CORE\0\0\0\0"; + +/*********************************/ + +/************ .data ************/ + +s32 D_800E3020 = -1; +s32 D_800E3024 = 0; +s32 D_800E3028 = 0; + +char *D_800E302C[3] = { + "setup", "control", "print" +}; + +/*******************************/ + + +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B6E50.s") +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B6EE0.s") +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B6F04.s") +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B6F40.s") +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B6F50.s") +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/D_800B6FC4.s") +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B70D0.s") +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B7144.s") +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B71B0.s") +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B7460.s") +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B76B8.s") +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B76DC.s") +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B77D4.s") +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B7810.s") +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B7D10.s")