Add thread0_epc.h, and link files to it for signatures

This commit is contained in:
Ryan Myers
2021-09-14 07:55:46 -04:00
parent c8b3fdd8b0
commit dbee8d0efc
8 changed files with 102 additions and 80 deletions
+1
View File
@@ -2,6 +2,7 @@
/* RAM_POS: 0x80065D40 */
#include "main.h"
#include "thread0_epc.h"
/************ .rodata ************/
+1
View File
@@ -3,6 +3,7 @@
#include "memory.h"
#include "printf.h"
#include "thread0_epc.h"
/************ .rodata ************/
+1
View File
@@ -5,6 +5,7 @@
#include "types.h"
#include "macros.h"
#include "f3ddkr.h"
#include "thread0_epc.h"
/************ .data ************/
+1 -1
View File
@@ -90,6 +90,6 @@ s32 func_8007C860(s32 spriteIndex); // Non Matching
s32 load_sprite_info(s32 spriteIndex, s32 *numOfInstancesOut, s32 *unkOut,
s32 *numFramesOut, s32 *formatOut, s32 *sizeOut); // Non Matching
void free_sprite(Sprite *sprite); // Non Matching
void func_8007F594(Gfx **dlist, u32 index, u32 primitiveColor, u32 environmentColor);
void func_8007F594(Gfx **dlist, u32 index, u32 primitiveColor, u32 environmentColor); // Non Matching
#endif
+4 -77
View File
@@ -1,9 +1,9 @@
/* The comment below is needed for this file to be picked up by generate_ld */
/* RAM_POS: 0x800B6E50 */
#include "thread0_epc.h"
#include "types.h"
#include "macros.h"
#include "libultra_internal.h"
#include "menu.h"
#include "controller_pak.h"
#include "printf.h"
@@ -36,61 +36,6 @@ char *D_800E302C[3] = {
/************ .bss ************/
/* Size: 0x1B0 bytes */
typedef struct epcInfo {
/* 0x00 */ s32 unk0;
/* 0x04 */ s32 unk4;
/* 0x08 */ s32 unk8;
/* 0x0C */ s32 unkC;
/* 0x10 */ s32 unk10;
/* 0x14 */ s32 thread;
/* 0x18 */ s32 unk18;
/* 0x1C */ s32 unk1C;
/* 0x20 */ s64 at;
/* 0x28 */ s64 v0;
/* 0x30 */ s64 v1;
/* 0x38 */ s64 a0;
/* 0x40 */ s64 a1;
/* 0x48 */ s64 a2;
/* 0x50 */ s64 a3;
/* 0x58 */ s64 t0;
/* 0x60 */ s64 t1;
/* 0x68 */ s64 t2;
/* 0x70 */ s64 t3;
/* 0x78 */ s64 t4;
/* 0x80 */ s64 t5;
/* 0x88 */ s64 t6;
/* 0x90 */ s64 t7;
/* 0x98 */ s64 s0;
/* 0xA0 */ s64 s1;
/* 0xA8 */ s64 s2;
/* 0xB0 */ s64 s3;
/* 0xB8 */ s64 s4;
/* 0xC0 */ s64 s5;
/* 0xC8 */ s64 s6;
/* 0xD0 */ s64 s7;
/* 0xD8 */ s64 t8;
/* 0xE0 */ s64 t9;
/* 0xE8 */ s64 gp;
/* 0xF0 */ s64 sp;
/* 0xF8 */ s64 s8;
/* 0x100 */ s64 ra;
/* 0x108 */ s32 unk108;
/* 0x10C */ s32 unk10C;
/* 0x110 */ s32 unk110;
/* 0x114 */ s32 unk114;
/* 0x118 */ s32 sr;
/* 0x11C */ s32 epc;
/* 0x120 */ s32 cause;
/* 0x124 */ s32 badvaddr;
/* 0x128 */ s32 unk128;
/* 0x12C */ s32 unk12C;
/* 0x130 */ f32 unk130;
/* 0x134 */ f32 unk134;
/* 0x138 */ f32 unk138;
/* 0x13C */ u8 pad13C[0x74];
} epcInfo;
epcInfo gEpcInfo;
s32 D_801299B0[64];
@@ -98,13 +43,6 @@ extern s32 D_80129BB0[256];
/******************************/
s16 *func_80024594(s32 *arg0, s32 *arg1);
void thread0(s32 arg0);
void func_800B70D0(void);
void func_800B7144(void);
void func_800B71B0(void);
extern OSThread D_801295E0;
extern OSMesgQueue D_80129790;
extern OSMesg D_801297A8;
@@ -139,8 +77,6 @@ void func_800B6E50(void) {
}
}
void func_800B6EE0(void) {
D_80127CAC = D_80127CBC;
D_80127CAE = D_80127CC4;
@@ -206,18 +142,8 @@ void thread0(s32 arg0) { // Has regalloc issues
GLOBAL_ASM("asm/non_matchings/thread0_epc/thread0.s")
#endif
/* Unknown Size, might be epcInfo? */
typedef struct unk800D2470 {
/* 0x00 */ OSThread *thread;
/* 0x04 */ s32 unk4;
/* 0x08 */ s32 unk8;
/* 0x0C */ struct unk800D2470 *next;
/* 0x10 */ u8 pad10[0x108];
/* 0x118 */ s32 unk118;
} unk800D2470;
void func_800B70D0(void) {
unk800D2470 *node = func_800D2470();
unk800D2470 *node = func_800D2470(); //Might be epcInfo?
while(node->unk4 != -1) {
if (node->unk4 == 0) {
node->unk118 &= 0xFFFF00FE;
@@ -246,7 +172,7 @@ GLOBAL_ASM("asm/non_matchings/thread0_epc/func_800B71B0.s")
#if 1
GLOBAL_ASM("asm/non_matchings/thread0_epc/func_800B7460.s")
#else
//Rename mask to colorTag?
void func_800B7460(s32 *epc, s32 size, s32 mask) {
epcInfo sp840;
s16 sp440[0x200];
@@ -287,6 +213,7 @@ void func_800B76B8(s32 arg0, s32 arg1) {
}
}
//Called as a check to see if render_epc_lock_up_display should be called.
s32 func_800B76DC(void) {
s32 fileNum;
u8 sp820[4]; // Unused?
+92
View File
@@ -0,0 +1,92 @@
#ifndef _THREAD0_EPC_H_
#define _THREAD0_EPC_H_
#include "types.h"
#include "libultra_internal.h"
/* Size: 0x1B0 bytes */
typedef struct epcInfo {
/* 0x00 */ s32 unk0;
/* 0x04 */ s32 unk4;
/* 0x08 */ s32 unk8;
/* 0x0C */ s32 unkC;
/* 0x10 */ s32 unk10;
/* 0x14 */ s32 thread;
/* 0x18 */ s32 unk18;
/* 0x1C */ s32 unk1C;
/* 0x20 */ s64 at;
/* 0x28 */ s64 v0;
/* 0x30 */ s64 v1;
/* 0x38 */ s64 a0;
/* 0x40 */ s64 a1;
/* 0x48 */ s64 a2;
/* 0x50 */ s64 a3;
/* 0x58 */ s64 t0;
/* 0x60 */ s64 t1;
/* 0x68 */ s64 t2;
/* 0x70 */ s64 t3;
/* 0x78 */ s64 t4;
/* 0x80 */ s64 t5;
/* 0x88 */ s64 t6;
/* 0x90 */ s64 t7;
/* 0x98 */ s64 s0;
/* 0xA0 */ s64 s1;
/* 0xA8 */ s64 s2;
/* 0xB0 */ s64 s3;
/* 0xB8 */ s64 s4;
/* 0xC0 */ s64 s5;
/* 0xC8 */ s64 s6;
/* 0xD0 */ s64 s7;
/* 0xD8 */ s64 t8;
/* 0xE0 */ s64 t9;
/* 0xE8 */ s64 gp;
/* 0xF0 */ s64 sp;
/* 0xF8 */ s64 s8;
/* 0x100 */ s64 ra;
/* 0x108 */ s32 unk108;
/* 0x10C */ s32 unk10C;
/* 0x110 */ s32 unk110;
/* 0x114 */ s32 unk114;
/* 0x118 */ s32 sr;
/* 0x11C */ s32 epc;
/* 0x120 */ s32 cause;
/* 0x124 */ s32 badvaddr;
/* 0x128 */ s32 unk128;
/* 0x12C */ s32 unk12C;
/* 0x130 */ f32 unk130;
/* 0x134 */ f32 unk134;
/* 0x138 */ f32 unk138;
/* 0x13C */ u8 pad13C[0x74];
} epcInfo;
/* Unknown Size, might be epcInfo? */
typedef struct unk800D2470 {
/* 0x00 */ OSThread *thread;
/* 0x04 */ s32 unk4;
/* 0x08 */ s32 unk8;
/* 0x0C */ struct unk800D2470 *next;
/* 0x10 */ u8 pad10[0x108];
/* 0x118 */ s32 unk118;
} unk800D2470;
s16 *func_80024594(s32 *arg0, s32 *arg1); //unknown_00BC20.c
void func_800B6E50(void);
void func_800B6EE0(void);
void func_800B6F04(void);
void func_800B6F30(s32 arg0, s32 arg1, s32 arg2);
void func_800B6F40(s32 arg0, s32 arg1, s32 arg2);
void func_800B70D0(void);
void func_800B7144(void);
void func_800B76B8(s32 arg0, s32 arg1);
s32 func_800B76DC(void);
void func_800B77D4(s32 arg0);
void func_800B6F50(void); // Non Matching
void thread0(s32 arg0); // Non Matching
void func_800B7460(s32 *epc, s32 size, s32 mask); // Non Matching
void render_epc_lock_up_display(void); // Non Matching
void func_800B71B0(void); // Non Matching
#endif
+1 -2
View File
@@ -10,6 +10,7 @@
#include "f3ddkr.h"
#include "asset_sections.h"
#include "asset_loading.h"
#include "thread0_epc.h"
/************ .data ************/
@@ -278,8 +279,6 @@ extern s16 D_8011D5AC;
/******************************/
extern s32 osTvType;
typedef struct unk8001D6E4_arg1_40 {
u8 pad0[0x71];
/* 0x71 */ u8 unk71;
+1
View File
@@ -16,6 +16,7 @@
#include "lib/src/mips1/sc/sched.h"
#include "gzip.h"
#include "printf.h"
#include "thread0_epc.h"
/************ .rodata ************/