unknown_0255E0.h

This commit is contained in:
Ryan Myers
2021-09-14 15:50:58 -04:00
parent 1e690107a9
commit 8f9c32533b
8 changed files with 136 additions and 147 deletions
+32
View File
@@ -905,4 +905,36 @@ typedef struct Object {
u32 unk378[174]; // Not an array. Unknown values.
} Object;
/* Size: 0x44 bytes, might just be Object? */
typedef struct unk80120AC0 {
s16 unk0;
s16 unk2;
s16 unk4;
u8 pad6[6];
f32 x_position;
f32 y_position;
f32 z_position;
f32 pad18;
f32 unk1C;
f32 pad20;
f32 unk24;
f32 unk28;
f32 unk2C;
f32 unk30;
s16 unk34;
s16 pad36;
s16 unk38;
s8 pad3A;
s8 unk3B;
u8 pad3C[8];
} unk80120AC0;
typedef struct unk80027FC4 {
u8 unk0;
u8 unk1;
s16 unk2;
s16 unk4;
s16 unk6;
} unk80027FC4;
#endif
+1
View File
@@ -5,6 +5,7 @@
#include "audio.h"
#include "unknown_00BC20.h"
#include "unknown_06B2B0.h"
#include "unknown_0255E0.h"
extern u32 osTvType;
-25
View File
@@ -59,30 +59,6 @@ typedef struct unk80121110 {
s8 unk6;
} unk80121110;
/* Size: 0x44 bytes, might just be Object? */
typedef struct unk80120AC0 {
s16 unk0;
s16 unk2;
s16 unk4;
u8 pad6[6];
f32 x_position;
f32 y_position;
f32 z_position;
f32 pad18;
f32 unk1C;
f32 pad20;
f32 unk24;
f32 unk28;
f32 unk2C;
f32 unk30;
s16 unk34;
s16 pad36;
s16 unk38;
s8 pad3A;
s8 unk3B;
u8 pad3C[8];
} unk80120AC0;
extern ScreenViewport gScreenViewports[4];
// Not sure about the typing here
@@ -109,7 +85,6 @@ extern s32 SP_IMEM;
//TODO: Remove from here once header files for below are created with these signatures.
void func_8006F870(Matrix, Matrix); //unknown_070110
s16 get_level_segment_index_from_position(f32 xPos, f32 yPos, f32 zPos); //unknown_0255E0
void func_800705F8(s32, f32, f32, f32); //From unknown_070110
f32 sqrtf(f32); //IDO?
+3
View File
@@ -227,5 +227,8 @@ void func_80011960(Object*, s32, u32, Object_64*, u32, u32, u32, u32, f32);
void func_80011AD0(Object *this);
void func_80012E28(Object *this);
void func_8001D5E0(f32 arg0, f32 arg1, f32 arg2);
s32 func_80014814(s32 *);
void func_80015348(s32, s32);
Object *func_8000EA54(unk80027FC4*, s32);
#endif
+12 -120
View File
@@ -8,30 +8,12 @@
#include "structs.h"
#include "f3ddkr.h"
#include "PR/gu.h"
/* Size: 0x44 bytes */
typedef struct unk80120AC0 {
s16 unk0;
s16 unk2;
s16 unk4;
u8 pad6[6];
f32 x_position;
f32 y_position;
f32 z_position;
f32 pad18;
f32 unk1C;
f32 pad20;
f32 unk24;
f32 unk28;
f32 unk2C;
f32 unk30;
s16 unk34;
s16 pad36;
s16 unk38;
s8 pad3A;
s8 unk3B;
u8 pad3C[8];
} unk80120AC0;
#include "textures_sprites.h"
#include "unknown_00BC20.h"
#include "unknown_06B2B0.h"
#include "memory.h"
#include "unknown_043920.h"
#include "camera.h"
/************ .data ************/
@@ -141,17 +123,7 @@ s32 D_8011D0E8;
s32 D_8011D0EC;
s32 D_8011D0F0;
s32 D_8011D0F4;
/* Size: 0x10 bytes */
typedef struct unk8011D0F8 {
f32 unk0;
f32 unk4;
f32 unk8;
f32 unkC;
} unk8011D0F8;
unk8011D0F8 D_8011D0F8[3];
s32 D_8011D128[15];
s32 D_8011D164;
s32 D_8011D168[84];
@@ -163,37 +135,13 @@ s32 D_8011D314;
s32 D_8011D318;
s32 D_8011D31C;
s32 D_8011D320[4];
/* Size: 0x10 bytes */
typedef struct unk8011D330 {
u8 pad0[0x10];
} unk8011D330;
unk8011D330 *D_8011D330;
s32 D_8011D334;
s32 D_8011D338[4];
/* Size: 0xA bytes */
typedef struct unk8011D348 {
u8 pad0[0x9];
u8 unk9;
} unk8011D348;
unk8011D348 *D_8011D348;
s32 D_8011D34C;
s32 D_8011D350[4];
/* Size: 0x8 bytes */
typedef struct unk8011D360 {
u8 pad0[4];
s16 unk4;
s16 unk6;
} unk8011D360;
unk8011D360 *D_8011D360;
s32 D_8011D364;
s32 D_8011D368;
s32 D_8011D36C;
@@ -203,36 +151,8 @@ s32 D_8011D378;
s32 D_8011D37C;
f32 D_8011D380;
u32 D_8011D384;
/* Size: 0x38 bytes */
typedef struct unk8011D388 {
s32 unk0;
s32 unk4;
s32 unk8;
s32 unkC;
s32 unk10;
s32 unk14;
s32 unk18;
s32 unk1C;
s32 unk20;
s32 unk24;
u8 unk28;
u8 unk29;
u8 unk2A;
s16 unk2C;
s16 unk2E;
s32 unk30;
s32 unk34;
} unk8011D388;
unk8011D388 D_8011D388[4];
typedef struct {
/* 0x00 */ s32 x;
/* 0x04 */ s32 y;
/* 0x08 */ s32 z;
} unk8011D468;
unk8011D468 D_8011D468;
s32 D_8011D474;
s32 D_8011D478;
s32 D_8011D47C;
@@ -256,16 +176,6 @@ s32 D_8011D4BC;
/******************************/
f32 func_800BB2F4(s32, f32, f32, f32*);
void func_8007B3D0(Gfx**);
Object *get_object(s32);
Settings *get_settings();
void traverse_segments_bsp_tree(s32 nodeIndex, s32 segmentIndex, s32 segmentIndex2, u8 *segmentsOrder, u32 *segmentsOrderIndex);
s32 func_80014814(s32*);
void func_80015348(s32, s32);
void render_level_segment(s32 segmentId, s32 nonOpaque);
s32 func_800249E0(s32 arg0) {
D_8011D37C = arg0;
return 0;
@@ -274,7 +184,7 @@ s32 func_800249E0(s32 arg0) {
#if 1
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_800249F0.s")
#else
void func_800249F0(u32 arg0, u32 arg1, s32 arg2, u32 arg3, u32 arg4, u32 arg5, u32 arg6){
void func_800249F0(u32 arg0, u32 arg1, s32 arg2, u32 arg3, u32 arg4, u32 arg5, u32 arg6) {
s32 i;
s32 tmp_a2;
@@ -370,17 +280,6 @@ GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80027568.s")
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_800278E8.s")
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80027E24.s")
typedef struct unk80027FC4 {
u8 unk0;
u8 unk1;
s16 unk2;
s16 unk4;
s16 unk6;
} unk80027FC4;
void func_8005A3D0(void);
Object * func_8000EA54(unk80027FC4*, s32);
void func_80027FC4(s32 arg0) {
unk80027FC4 sp20;
@@ -424,7 +323,7 @@ void func_800289B8(void){
}
#endif
void render_skydome(void){
void render_skydome(void) {
unk80120AC0 * v0_some_struct;
if(D_8011B0B8 == NULL)
return;
@@ -720,9 +619,6 @@ GLOBAL_ASM("asm/non_matchings/unknown_0255E0/render_level_segment.s")
#endif
#ifdef NON_MATCHING
void add_segment_to_order(s32 segmentIndex, u32 *segmentsOrderIndex, u8 *segmentsOrder);
// Regalloc issues.
void traverse_segments_bsp_tree(s32 nodeIndex, s32 segmentIndex, s32 segmentIndex2, u8 *segmentsOrder, u32 *segmentsOrderIndex) {
BspTreeNode *curNode;
@@ -811,7 +707,6 @@ GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80029DE0.s")
#endif
#ifdef NON_MATCHING
// Has regalloc issues.
s32 get_level_segment_index_from_position(f32 xPos, f32 yPos, f32 zPos) {
LevelModelSegmentBoundingBox *bb;
@@ -843,13 +738,12 @@ s32 get_level_segment_index_from_position(f32 xPos, f32 yPos, f32 zPos) {
return result;
}
#else
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/get_level_segment_index_from_position.s")
#endif
s32 func_8002A05C(s32 arg0, s32 arg1, s32 *arg2){
s32 func_8002A05C(s32 arg0, s32 arg1, s32 *arg2) {
s32 i;
s32 cnt = 0;
LevelModelSegmentBoundingBox * a0;
@@ -895,14 +789,14 @@ s32 func_8002A134(s32 *arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5, s
return phi_v1;
}
LevelModelSegment *func_8002A2C8(s32 arg0){
LevelModelSegment *func_8002A2C8(s32 arg0) {
if(arg0 < 0 || gCurrentLevelModel->numberOfSegments < arg0)
return NULL;
return gCurrentLevelModel->segments + arg0;
}
LevelModelSegmentBoundingBox *func_8002A2DC(s32 arg0){
LevelModelSegmentBoundingBox *func_8002A2DC(s32 arg0) {
if(arg0 < 0 || gCurrentLevelModel->numberOfSegments < arg0)
return NULL;
@@ -912,8 +806,6 @@ LevelModelSegmentBoundingBox *func_8002A2DC(s32 arg0){
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002A31C.s")
#ifdef NON_MATCHING
f32 func_80066348(f32, f32, f32);
// Has some minor issues, but should be functionally equivalent.
s32 func_8002A5F8(LevelModelSegmentBoundingBox *bb) {
s64 sp48;
@@ -1210,4 +1102,4 @@ void func_80031018(void) {
D_8011D468.x = (s32) x;
D_8011D468.y = (s32) y;
D_8011D468.z = (s32) z;
}
}
+87
View File
@@ -14,6 +14,59 @@ typedef struct unknown800DC874 {
s16 unk06;
} unknown800DC874;
/* Size: 0x10 bytes */
typedef struct unk8011D0F8 {
f32 unk0;
f32 unk4;
f32 unk8;
f32 unkC;
} unk8011D0F8;
/* Size: 0x10 bytes */
typedef struct unk8011D330 {
u8 pad0[0x10];
} unk8011D330;
/* Size: 0xA bytes */
typedef struct unk8011D348 {
u8 pad0[0x9];
u8 unk9;
} unk8011D348;
/* Size: 0x8 bytes */
typedef struct unk8011D360 {
u8 pad0[4];
s16 unk4;
s16 unk6;
} unk8011D360;
/* Size: 0x38 bytes */
typedef struct unk8011D388 {
s32 unk0;
s32 unk4;
s32 unk8;
s32 unkC;
s32 unk10;
s32 unk14;
s32 unk18;
s32 unk1C;
s32 unk20;
s32 unk24;
u8 unk28;
u8 unk29;
u8 unk2A;
s16 unk2C;
s16 unk2E;
s32 unk30;
s32 unk34;
} unk8011D388;
typedef struct {
/* 0x00 */ s32 x;
/* 0x04 */ s32 y;
/* 0x08 */ s32 z;
} unk8011D468;
extern s32 D_800DC870;
extern unknown800DC874 D_800DC874;
extern unknown800DC874 D_800DC87C;
@@ -31,4 +84,38 @@ extern s32 D_800DC928;
extern s8 D_800DC92C[24];
f32 func_800BB2F4(s32, f32, f32, f32*); //waves.c //Non Matching
s32 func_800249E0(s32 arg0);
void func_800257D0(void);
void func_80027FC4(s32 arg0);
void func_80028044(s32 arg0);
void render_skydome(void);
void func_80028FA0(s32 arg0);
void add_segment_to_order(s32 segmentIndex, u32 *segmentsOrderIndex, u8 *segmentsOrder);
s32 func_8002A05C(s32 arg0, s32 arg1, s32 *arg2);
s32 func_8002A134(s32 *arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5, s16 arg6);
LevelModelSegment *func_8002A2C8(s32 arg0);
LevelModelSegmentBoundingBox *func_8002A2DC(s32 arg0);
void func_8002ACC8(s32 arg0);
s32 func_8002ACD4(f32 *arg0, f32 *arg1, f32 *arg2);
s32 func_8002B9BC(Object *obj, f32 *arg1, f32 *arg2, s32 arg3);
void func_8002C71C(LevelModelSegment *segment);
LevelModel *func_8002C7C4(void);
void func_80030750(s32 arg0, s16 *arg1, s16 *arg2, s8 *arg3, s8 *arg4, s8 *arg5);
void func_800307BC(s32 arg0);
void func_80030838(s32 arg0, s32 arg1);
void func_8003093C(s32 arg0);
void func_80031018(void);
//Non Matching
void traverse_segments_bsp_tree(s32 nodeIndex, s32 segmentIndex, s32 segmentIndex2,
u8 *segmentsOrder, u32 *segmentsOrderIndex);
void render_level_segment(s32 segmentId, s32 nonOpaque);
void render_level_geometry_and_objects(void);
s32 func_80029DE0(Object *obj, s32 segmentIndex);
s32 get_level_segment_index_from_position(f32 xPos, f32 yPos, f32 zPos);
s32 func_8002A5F8(LevelModelSegmentBoundingBox *bb);
void func_80030664(s32 arg0, s16 arg1, s16 arg2, u8 arg3, u8 arg4, u8 arg5);
#endif
-2
View File
@@ -775,8 +775,6 @@ typedef struct Object_64_80038710 {
s8 unk44;
} Object_64_80038710;
void func_80066488(s32, f32, f32, f32, s16, s16, s16);
void func_80038710(Object *obj, s32 arg1) {
s32 temp_v0;
s32 phi_v1;
+1
View File
@@ -46,5 +46,6 @@ extern s32 D_800DCDD0;
extern s16 D_800DCDD4[4];
s32 func_80059B7C(s32 arg0, s32 arg1, s16 arg2, s16 arg3, s16 arg4);
void func_8005A3D0(void);
#endif