diff --git a/src/game/credits.c b/src/game/credits.c index 8ec243674..6f85873f2 100644 --- a/src/game/credits.c +++ b/src/game/credits.c @@ -839,33 +839,33 @@ void func0f13870c(void) g_CreditsData->unk4200 = 0; g_CreditsData->unk41ff = 7; - for (i = 0; i < ARRAYCOUNT(g_CreditsData->unk0000); i++) { + for (i = 0; i < ARRAYCOUNT(g_CreditsData->unk000c); i++) { tmp = random() * (1.0f / U32_MAX); - g_CreditsData->unk0000[i].unk0c = (tmp + tmp) * 3000.0f - 3000.0f; + g_CreditsData->unk000c[i].unk00 = (tmp + tmp) * 3000.0f - 3000.0f; tmp = random() * (1.0f / U32_MAX); - g_CreditsData->unk0000[i].unk10 = (tmp + tmp) * 3000.0f - 3000.0f; + g_CreditsData->unk000c[i].unk04 = (tmp + tmp) * 3000.0f - 3000.0f; - g_CreditsData->unk0000[i + 1].unk06 = random() % 4; - g_CreditsData->unk0000[i + 1].unk08 = random() % 4; - g_CreditsData->unk0000[i + 1].unk00 = random() * (1.0f / U32_MAX) * M_BADTAU; + g_CreditsData->unk000c[i].unk12 = random() % 4; + g_CreditsData->unk000c[i].unk14 = random() % 4; + g_CreditsData->unk000c[i].unk0c = random() * (1.0f / U32_MAX) * M_BADTAU; if (g_CreditsData->unk4200 < g_CreditsData->unk41ff) { - g_CreditsData->unk0000[i + 1].unk07 = g_CreditsData->unk4200 + g_CreditsData->unk000c[i].unk13 = g_CreditsData->unk4200 + (random() % (g_CreditsData->unk41ff - g_CreditsData->unk4200)); } else { - g_CreditsData->unk0000[i + 1].unk07 = g_CreditsData->unk4200; + g_CreditsData->unk000c[i].unk13 = g_CreditsData->unk4200; } - g_CreditsData->unk0000[i + 1].unk04 = g_CreditsData->unk41fc; + g_CreditsData->unk000c[i].unk10 = g_CreditsData->unk41fc; if (random() % 2 == 1) { - g_CreditsData->unk0000[i + 1].unk05 = g_CreditsData->unk41fd; + g_CreditsData->unk000c[i].unk11 = g_CreditsData->unk41fd; } else { - g_CreditsData->unk0000[i + 1].unk05 = g_CreditsData->unk41fe; + g_CreditsData->unk000c[i].unk11 = g_CreditsData->unk41fe; } - g_CreditsData->unk0000[i].unk14 = random() * (1.0f / U32_MAX) * -8000.0f; + g_CreditsData->unk000c[i].unk08 = random() * (1.0f / U32_MAX) * -8000.0f; } } @@ -1215,6 +1215,88 @@ glabel var7f1b5824 /* f138e68: 27bd0048 */ addiu $sp,$sp,0x48 ); +// Mismatch: 30.0f should be loaded earlier and needs to go into a callee-save +// register. +//void func0f13899c(void) +//{ +// s32 i; +// f32 tmp; +// +// if (g_CreditsData->unk41f5 >= 0) { +// g_CreditsData->unk41f8 += g_Vars.diffframe240f / 720.0f; +// +// if (g_CreditsData->unk41f8 > 1.0f) { +// g_CreditsData->unk41f6 = g_CreditsData->unk41f5; +// g_CreditsData->unk41f5 = -1; +// } +// } else { +// if (random() * (1.0f / U32_MAX) < 0.007f && contGetButtons(0, L_TRIG | R_TRIG) == 0) { +// g_CreditsData->unk41f5 = random() % 4; +// g_CreditsData->unk41f8 = 0; +// } +// } +// +// if (random() * (1.0f / U32_MAX) < 0.002f && contGetButtons(0, L_TRIG | R_TRIG) == 0) { +// g_CreditsData->unk41fc = random() % 5; +// } +// +// if (contGetButtonsPressedThisFrame(0, R_TRIG)) { +// g_CreditsData->unk41fc = random() % 5; +// +// if (g_CreditsData->unk41f5 < 0) { +// g_CreditsData->unk41f5 = random() % 4; +// g_CreditsData->unk41f8 = 0; +// } +// } +// +// if (random() * (1.0f / U32_MAX) < 0.007f) { +// g_CreditsData->unk41fd = random() % 2; +// g_CreditsData->unk41fe = random() % 2; +// } +// +// for (i = 0; i < 500; i++) { +// tmp = ((i & 7) + 1) * 0.01f; +// +// if ((i & 8) == 0) { +// tmp = -tmp; +// } +// +// g_CreditsData->unk000c[i].unk0c += tmp; +// +// g_CreditsData->unk000c[i].unk08 += g_Vars.diffframe240f * 30.0f * 0.25f; +// +// if (g_CreditsData->unk000c[i].unk08 > 0) { +// tmp = random() * (1.0f / U32_MAX); +// g_CreditsData->unk000c[i].unk00 = (tmp + tmp) * 3000 - 3000; +// +// tmp = random() * (1.0f / U32_MAX); +// g_CreditsData->unk000c[i].unk04 = (tmp + tmp) * 3000 - 3000; +// +// g_CreditsData->unk000c[i].unk12 = random() % 4; +// g_CreditsData->unk000c[i].unk14 = random() % 4; +// +// g_CreditsData->unk000c[i].unk0c = random() * (1.0f / U32_MAX) * M_BADTAU; +// +// if (g_CreditsData->unk4200 < g_CreditsData->unk41ff) { +// g_CreditsData->unk000c[i].unk13 = g_CreditsData->unk4200 +// + random() % (g_CreditsData->unk41ff - g_CreditsData->unk4200); +// } else { +// g_CreditsData->unk000c[i].unk13 = g_CreditsData->unk4200; +// } +// +// g_CreditsData->unk000c[i].unk10 = g_CreditsData->unk41fc; +// +// if (random() % 2 == 1) { +// g_CreditsData->unk000c[i].unk11 = g_CreditsData->unk41fd; +// } else { +// g_CreditsData->unk000c[i].unk11 = g_CreditsData->unk41fe; +// } +// +// g_CreditsData->unk000c[i].unk08 += -8000; +// } +// } +//} + GLOBAL_ASM( glabel func0f138e6c .late_rodata diff --git a/src/include/game/credits.h b/src/include/game/credits.h index 892223e06..01b2737a1 100644 --- a/src/include/game/credits.h +++ b/src/include/game/credits.h @@ -28,16 +28,16 @@ Gfx *creditsRender(Gfx *gdl); void creditsInit(void); void creditsRequestAltTitle(void); -struct credits00 { +struct credits000c { f32 unk00; - u8 unk04; - u8 unk05; - u8 unk06; - u8 unk07; - u8 unk08; + f32 unk04; + f32 unk08; f32 unk0c; - f32 unk10; - f32 unk14; + u8 unk10; + u8 unk11; + u8 unk12; + u8 unk13; + u8 unk14; }; struct creditsbgtype { @@ -57,10 +57,10 @@ struct creditsbglayer { }; struct creditsdata { - /*0x0000*/ struct credits00 unk0000[500]; - /*0x2ee0*/ u32 unk2ee0; - /*0x2ee4*/ u32 unk2ee4; - /*0x2ee8*/ u32 unk2ee8; + /*0x0000*/ u32 unk0000; + /*0x0004*/ u32 unk0004; + /*0x0008*/ u32 unk0008; + /*0x000c*/ struct credits000c unk000c[500]; /*0x2eec*/ u8 unk2eec; /*0x2eed*/ u8 unk2eed; /*0x2eee*/ u8 unk2eee; @@ -1270,7 +1270,7 @@ struct creditsdata { /*0x41f4*/ u8 slidesenabled; /*0x41f5*/ s8 unk41f5; /*0x41f6*/ u8 unk41f6; - /*0x41f8*/ u32 unk41f8; + /*0x41f8*/ f32 unk41f8; /*0x41fc*/ u8 unk41fc; /*0x41fd*/ u8 unk41fd; /*0x41fe*/ u8 unk41fe;