Attempt to decompile texturesLoadConfigs

This commit is contained in:
Ryan Dwyer 2020-12-12 23:34:38 +10:00
parent 34297b1203
commit 2f59959fe5
12 changed files with 155 additions and 62 deletions

View File

@ -353,6 +353,8 @@ SECTIONS
* -------------------------------------------------------------------------
*/
__rampos = 0x02000000;
BEGIN_SEG(textureconfig)
{
build/ROMID/textureconfig/textureconfig.o (.data);

View File

@ -1433,7 +1433,7 @@ char *filemgrMenuTextFileInUseDescription(struct menuitem *item)
Gfx *filemgrRenderPerfectHeadThumbnail(Gfx *gdl, struct menuitemrenderdata *renderdata, u32 arg2, u32 arg3)
{
struct var800ab5a8 *texture = func0f111460(g_MpPlayerNum, arg2, arg3 & 0xffff);
struct textureconfig *texture = func0f111460(g_MpPlayerNum, arg2, arg3 & 0xffff);
if (texture) {
gSPDisplayList(gdl++, &var800613a0);

View File

@ -281,7 +281,7 @@ void func0f167e7c(s32 stagenum)
func0f16d324();
func0f011124(true);
func0f013b80();
func0f1735c0();
texturesLoadConfigs();
fontsLoadForCurrentStage();
hudmsgSystemInit();

View File

@ -5787,7 +5787,7 @@ glabel func0f17353c
);
GLOBAL_ASM(
glabel func0f1735c0
glabel texturesLoadConfigs
/* f1735c0: 27bdffd8 */ addiu $sp,$sp,-40
/* f1735c4: 3c0e0200 */ lui $t6,0x200
/* f1735c8: 3c0f0200 */ lui $t7,0x200
@ -5801,16 +5801,16 @@ glabel func0f1735c0
/* f1735e8: 02202025 */ or $a0,$s1,$zero
/* f1735ec: 0c0048f2 */ jal malloc
/* f1735f0: 24050004 */ addiu $a1,$zero,0x4
/* f1735f4: 3c03800b */ lui $v1,%hi(var800ab554)
/* f1735f8: 2463b554 */ addiu $v1,$v1,%lo(var800ab554)
/* f1735f4: 3c03800b */ lui $v1,%hi(g_TextureConfigSegment)
/* f1735f8: 2463b554 */ addiu $v1,$v1,%lo(g_TextureConfigSegment)
/* f1735fc: 3c05007f */ lui $a1,%hi(_textureconfigSegmentRomStart)
/* f173600: ac620000 */ sw $v0,0x0($v1)
/* f173604: 24a5b270 */ addiu $a1,$a1,%lo(_textureconfigSegmentRomStart)
/* f173608: 00402025 */ or $a0,$v0,$zero
/* f17360c: 0c003504 */ jal func0000d410
/* f173610: 02203025 */ or $a2,$s1,$zero
/* f173614: 3c18800b */ lui $t8,%hi(var800ab554)
/* f173618: 8f18b554 */ lw $t8,%lo(var800ab554)($t8)
/* f173614: 3c18800b */ lui $t8,%hi(g_TextureConfigSegment)
/* f173618: 8f18b554 */ lw $t8,%lo(g_TextureConfigSegment)($t8)
/* f17361c: 3c070200 */ lui $a3,0x200
/* f173620: 3c06800b */ lui $a2,%hi(var800ab550)
/* f173624: 3c080200 */ lui $t0,0x200
@ -6072,3 +6072,86 @@ glabel func0f1735c0
/* f1739f8: 00000000 */ nop
/* f1739fc: 00000000 */ nop
);
//extern u8 *_textureconfigSegmentRomStart;
//extern u8 *_textureconfigSegmentStart;
//extern u8 *_textureconfigSegmentEnd;
// Unfinished
//void texturesLoadConfigs(void)
//{
// s32 stage;
// u32 len = &_textureconfigSegmentEnd - &_textureconfigSegmentStart;
// s32 i;
//
// g_TextureConfigSegment = malloc(len, 4);
// func0000d410(g_TextureConfigSegment, &_textureconfigSegmentRomStart, len);
//
// var800ab550 = (u32)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart);
// var800ab564 = (Gfx *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x000); // gdl000
// var800ab568 = (Gfx *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x070); // gdl070
// var800ab56c = (Gfx *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x0d8); // gdl0d8
// var800ab570 = (u32 *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x148); // g_ExplosionTextureNums
// var800ab560 = (struct textureconfig *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x1c0);
// var800ab574 = (struct textureconfig *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x298);
// var800ab578 = (struct textureconfig *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x2d4);
// var800ab57c = (struct textureconfig *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x2e0);
// var800ab580 = (struct textureconfig *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x2ec);
// var800ab584 = (struct textureconfig *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x2f8);
// var800ab588 = (struct textureconfig *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x304);
// var800ab58c = (struct textureconfig *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x310);
// var800ab590 = (struct textureconfig *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x31c);
// var800ab594 = (struct textureconfig *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x334);
// var800ab598 = (struct textureconfig *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x7b4);
// var800ab59c = (struct textureconfig *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x7d8);
// var800ab5a0 = (struct textureconfig *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x820);
// var800ab5a4 = (struct textureconfig *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x898);
// var800ab5a8 = (struct textureconfig *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x8a4);
// var800ab5ac = (struct textureconfig *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0xb44);
//
// var800ab558 = (len - ((u32)&_textureconfigSegmentStart + 0x1c0)) + (u32)&_textureconfigSegmentStart;
// var800ab55c = malloc(align16(var800ab558), 4);
//
// for (i = 0; i < var800ab558; i++) {
// var800ab55c[i].texturenum = 0;
// }
//
// for (i = 0; i < 15; i++) {
// func0f173010(&var800ab570[i * 2 + 0], 0, 0);
// func0f173010(&var800ab570[i * 2 + 1], 0, 0);
// }
//
// func0f172f5c(var800ab564, 0, 0);
// func0f172f5c(var800ab56c, 0, 0);
// stage = mainGetStageNum();
//
// if (IS4MB() && stage != STAGE_TITLE && stage != STAGE_CITRAINING && stage != STAGE_4MBMENU) {
// for (i = 0; i < 12; i++) {
// func0f0b3988(&var800ab560[i]);
// }
//
// for (i = 0; i < 5; i++) {
// func0f0b3988(&var800ab574[i]);
// }
//
// for (i = 0; i < 3; i++) {
// func0f0b3988(&var800ab598[i]);
// }
//
// for (i = 0; i < 1; i++) {
// func0f0b3988(&var800ab588[i]);
// }
//
// for (i = 0; i < 1; i++) {
// func0f0b3988(&var800ab58c[i]);
// }
//
// for (i = 0; i < 1; i++) {
// func0f0b3988(&var800ab5ac[i]);
// }
//
// for (i = 0; i < 1; i++) {
// func0f0b3988(&var800ab5a4[i]);
// }
// }
//}

View File

@ -16338,29 +16338,29 @@ u32 var800ab544 = 0;
u32 var800ab548 = 0;
u32 var800ab54c = 0;
u32 var800ab550 = 0;
u32 var800ab554 = 0;
u8 *g_TextureConfigSegment = NULL;
u32 var800ab558 = 0;
u32 var800ab55c = 0;
u32 var800ab560 = 0;
u32 var800ab564 = 0;
u32 var800ab568 = 0;
u32 var800ab56c = 0;
u32 var800ab570 = 0;
u32 var800ab574 = 0;
u32 var800ab578 = 0;
u32 var800ab57c = 0;
u32 var800ab580 = 0;
u32 var800ab584 = 0;
u32 var800ab588 = 0;
u32 var800ab58c = 0;
u32 var800ab590 = 0;
u32 var800ab594 = 0;
u32 var800ab598 = 0;
u32 var800ab59c = 0;
u32 var800ab5a0 = 0;
u32 var800ab5a4 = 0;
struct var800ab5a8 *var800ab5a8 = NULL;
u32 var800ab5ac = 0;
struct textureconfig *var800ab55c = NULL;
struct textureconfig *var800ab560 = NULL;
Gfx *var800ab564 = NULL;
Gfx *var800ab568 = NULL;
Gfx *var800ab56c = NULL;
u32 *var800ab570 = NULL;
struct textureconfig *var800ab574 = NULL;
struct textureconfig *var800ab578 = NULL;
struct textureconfig *var800ab57c = NULL;
struct textureconfig *var800ab580 = NULL;
struct textureconfig *var800ab584 = NULL;
struct textureconfig *var800ab588 = NULL;
struct textureconfig *var800ab58c = NULL;
struct textureconfig *var800ab590 = NULL;
struct textureconfig *var800ab594 = NULL;
struct textureconfig *var800ab598 = NULL;
struct textureconfig *var800ab59c = NULL;
struct textureconfig *var800ab5a0 = NULL;
struct textureconfig *var800ab5a4 = NULL;
struct textureconfig *var800ab5a8 = NULL;
struct textureconfig *var800ab5ac = NULL;
s32 var800ab5b0 = 0;
u32 var800ab5b4 = 0;
struct var800ab5b8 var800ab5b8[8] = {0};

View File

@ -5,7 +5,7 @@
u32 func0f0abe70(void);
u32 func0f0ac138(void);
Gfx *func0f0ac4b8(Gfx *gdl, u32 arg1, f32 arg2, struct coord *arg3, u32 colour1, f32 arg5, struct coord *arg6, u32 colour2);
Gfx *func0f0ac4b8(Gfx *gdl, struct textureconfig *arg1, f32 arg2, struct coord *arg3, u32 colour1, f32 arg5, struct coord *arg6, u32 colour2);
u32 func0f0acb90(void);
void bullettailTick(struct bullettail *bullettail);
u32 func0f0adcc8(void);

View File

@ -9,8 +9,8 @@ u32 func0f0b3468(void);
u32 func0f0b34d8(void);
u32 func0f0b3548(void);
u32 func0f0b35b8(void);
u32 func0f0b3988(void);
void func0f0b39c0(Gfx **gdl, struct var800ab5a8 *arg1, u32 arg2, u32 arg3, u32 arg4, u32 arg5, u32 arg6);
void func0f0b3988(struct textureconfig *config);
void func0f0b39c0(Gfx **gdl, struct textureconfig *arg1, u32 arg2, u32 arg3, u32 arg4, u32 arg5, u32 arg6);
void currentPlayerSetScreenSize(f32 width, f32 height);
void currentPlayerSetScreenPosition(f32 left, f32 top);
void currentPlayerSetPerspective(f32 near, f32 fovy, f32 aspect);

View File

@ -29,12 +29,12 @@ u32 func0f172e70(void);
u32 func0f172e8c(void);
u32 func0f172f44(void);
u32 func0f172f54(void);
u32 func0f172f5c(void);
u32 func0f173010(void);
void func0f172f5c(Gfx *gdl, u32 arg1, u32 arg2);
void func0f173010(u32 *texturenum, u32 arg1, u32 arg2);
u32 func0f173434(void);
u32 func0f1734e8(void);
u32 func0f173520(void);
u32 func0f17353c(void);
void func0f1735c0(void);
void texturesLoadConfigs(void);
#endif

View File

@ -24,6 +24,6 @@ u8 func0f110cf8(u8 arg0);
u32 func0f110d90(void);
void func0f110da8(void);
u32 func0f110f4c(void);
struct var800ab5a8 *func0f111460(s32 playernum, s32 arg1, s32 arg2);
struct textureconfig *func0f111460(s32 playernum, s32 arg1, s32 arg2);
#endif

View File

@ -783,16 +783,29 @@ extern u32 var800ab540;
extern u32 var800ab544;
extern u32 var800ab548;
extern u32 var800ab550;
extern u32 var800ab554;
extern u8 *g_TextureConfigSegment;
extern u32 var800ab558;
extern u32 var800ab55c;
extern u32 var800ab560;
extern u32 var800ab570;
extern u32 var800ab574;
extern u32 var800ab578;
extern u32 var800ab57c;
extern u32 var800ab5a0;
extern struct var800ab5a8 *var800ab5a8; // indexed by some kind of texturenum
extern struct textureconfig *var800ab55c;
extern struct textureconfig *var800ab560;
extern Gfx *var800ab564;
extern Gfx *var800ab568;
extern Gfx *var800ab56c;
extern u32 *var800ab570;
extern struct textureconfig *var800ab574;
extern struct textureconfig *var800ab578;
extern struct textureconfig *var800ab57c;
extern struct textureconfig *var800ab580;
extern struct textureconfig *var800ab584;
extern struct textureconfig *var800ab588;
extern struct textureconfig *var800ab58c;
extern struct textureconfig *var800ab590;
extern struct textureconfig *var800ab594;
extern struct textureconfig *var800ab598;
extern struct textureconfig *var800ab59c;
extern struct textureconfig *var800ab5a0;
extern struct textureconfig *var800ab5a4;
extern struct textureconfig *var800ab5a8;
extern struct textureconfig *var800ab5ac;
extern s32 var800ab5b0;
extern struct var800ab5b8 var800ab5b8[8];
extern struct var800ab718 var800ab718[8];

View File

@ -6191,12 +6191,6 @@ struct var80061420 {
s32 unk04;
};
struct var800ab5a8 {
u32 unk00;
u32 unk04;
u32 unk08;
};
struct var800ab5b8 {
u32 unk00;
u32 unk04;
@ -6641,4 +6635,15 @@ struct var80067e6c {
f32 value;
};
struct textureconfig {
u32 texturenum;
u8 width;
u8 height;
u8 level;
u8 format;
u8 depth;
u8 s;
u8 t;
};
#endif

View File

@ -1,4 +1,5 @@
#include <ultra64.h>
#include "types.h"
Gfx gdl000[] = {
gsDPPipeSync(),
@ -56,17 +57,6 @@ u32 g_ExplosionTextureNums[] = {
0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b,
};
struct textureconfig {
u32 texturenum;
u8 width;
u8 height;
u8 level;
u8 format;
u8 depth;
u8 s;
u8 t;
};
struct textureconfig g_TextureConfigs[] = {
{ 0x0003, 48, 48, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP },
{ 0x0c27, 64, 64, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP },