More splits and RELS

m401, mpex, saf, staff have edits. Split modeltest, mstory4, present, result, saf, selmenu, and ztar
This commit is contained in:
gamemasterplc 2024-11-17 14:32:24 -06:00
parent f3b922a476
commit ddf7241695
26 changed files with 898 additions and 595 deletions

View file

@ -2769,7 +2769,11 @@ void fn_2_C130(omObjData *object)
case 0:
if (!MGSeqStatGet(lbl_2_bss_C0)) {
object->work[0] = 1;
#if VERSION_NTSC
HuAudFXStop(lbl_2_bss_11C);
#else
HuAudFXFadeOut(lbl_2_bss_11C, 500);
#endif
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
WipeColorSet(255, 255, 255);
}

View file

@ -13,7 +13,7 @@
#include "REL/mpexDll.h"
s32 lbl_1_data_788[0xC6] = {
static s32 fontDataTbl[0xC6] = {
0,
0,
0,
@ -229,7 +229,7 @@ s32 fn_1_1CB80(SeqWork *arg0, u8 *arg1, s16 arg2)
s16 var_r20;
s16 var_r19;
var_r27 = lbl_1_data_788;
var_r27 = fontDataTbl;
for (var_r23 = 0; var_r23 < 0x10; var_r23++) {
if (arg0->spr_grp[var_r23] == -1) {

View file

@ -1606,7 +1606,7 @@ void fn_1_9988(s32 arg0)
u32 var_r29;
fn_1_1B834();
if (((mgRecordExtra == 0) && (arg0 != 4)) || ((mgRecordExtra >= 0x8CA0) && (arg0 == 4))) {
if (((mgRecordExtra == 0) && (arg0 != 4)) || ((mgRecordExtra >= 600*REFRESH_RATE) && (arg0 == 4))) {
HuAudFXPlay(0x4A);
fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 3, 0xF, 1);
fn_1_1BA78(arg0 + 0x330096, -1, -1);
@ -1615,23 +1615,23 @@ void fn_1_9988(s32 arg0)
else {
if ((arg0 == 4) || (arg0 == 8)) {
var_r31 = mgRecordExtra;
var_r30 = var_r31 / 36000;
var_r31 -= var_r30 * 36000;
var_r29 = var_r31 / 3600;
var_r31 -= var_r29 * 3600;
var_r30 = var_r31 / (600*REFRESH_RATE);
var_r31 -= var_r30 * (600*REFRESH_RATE);
var_r29 = var_r31 / (60*REFRESH_RATE);
var_r31 -= var_r29 * (60*REFRESH_RATE);
sprintf(lbl_1_bss_120, "%d", var_r29);
fn_1_1BB4C((u32)&lbl_1_bss_120, 0);
var_r30 = var_r31 / 600;
var_r31 -= var_r30 * 600;
var_r29 = var_r31 / 60;
var_r31 -= var_r29 * 60;
var_r30 = var_r31 / (10*REFRESH_RATE);
var_r31 -= var_r30 * (10*REFRESH_RATE);
var_r29 = var_r31 / REFRESH_RATE;
var_r31 -= var_r29 * REFRESH_RATE;
sprintf(lbl_1_bss_118, "%d%d", var_r30, var_r29);
fn_1_1BB4C((u32)lbl_1_bss_118, 1);
if (arg0 == 8) {
var_r31 = 1.6916666666666667 * (float)var_r31;
var_r31 = (101.5/REFRESH_RATE) * (float)var_r31;
}
else {
var_r31 = 1.6666666666666667 * (float)var_r31;
var_r31 = (100.0/REFRESH_RATE) * (float)var_r31;
}
var_r30 = var_r31 / 10;
var_r31 -= var_r30 * 0xA;
@ -1856,12 +1856,21 @@ void fn_1_AD34(void)
HuAudFXPlay(0x9E);
fn_1_1B7D0(0xA5);
lbl_1_bss_1B8[0].unk_04 = (MpexDllUnkFunc2)fn_1_A0E4;
if (((mgRecordExtra == 0) && (lbl_1_bss_1B0 != 4)) || ((mgRecordExtra >= 0x8CA0) && (lbl_1_bss_1B0 == 4))) {
#if VERSION_NTSC
if (((mgRecordExtra == 0) && (lbl_1_bss_1B0 != 4)) || ((mgRecordExtra >= 600*REFRESH_RATE) && (lbl_1_bss_1B0 == 4))) {
fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 5, 0xF, 0);
}
else {
fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 4, 0xF, 0);
}
#else
if (((mgRecordExtra == 0) && (lbl_1_bss_1B0 != 4)) || ((mgRecordExtra >= 500*REFRESH_RATE) && (lbl_1_bss_1B0 == 4))) {
fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 5, 0xF, 0);
}
else {
fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 4, 0xF, 0);
}
#endif
fn_1_BC18();
fn_1_1B7D0(1);
HuAudFXPlay(0x9F);
@ -2232,6 +2241,7 @@ void fn_1_C860(void)
s32 fn_1_C898(s32 arg0, s32 arg1, s32 arg2, s32 arg3)
{
#if VERSION_NTSC
s32 sp88[5][9] = {
{ 0x64, 0xC8, 0x12C, 0x136, 0x140, 0x14A, 0x154, 0x15E, 0x168 },
{ 0x05, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x32 },
@ -2244,6 +2254,21 @@ s32 fn_1_C898(s32 arg0, s32 arg1, s32 arg2, s32 arg3)
{ 0x4650, 0x3840, 0x2A30, 0x1C20, 0x1770, 0x12C0, 0x0E10, 0, 0 },
{ 0x4650, 0x3840, 0x2A30, 0x2328, 0x1C20, 0x19C8, 0x1770, 0x1644, 0x1518 },
};
#else
s32 sp88[5][9] = {
{ 0x32, 0x64, 0xC8, 0x12C, 0x136, 0x140, 0x14A, 0x154, 0x15E },
{ 0x05, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x32 },
{ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 },
{ 60*REFRESH_RATE, 120*REFRESH_RATE, 180*REFRESH_RATE, 240*REFRESH_RATE, 300*REFRESH_RATE,
360*REFRESH_RATE, 420*REFRESH_RATE, 480*REFRESH_RATE, 540*REFRESH_RATE },
{ 0x0A, 0xF, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x2B, 0x2D },
};
s32 sp1C[3][9] = {
{ 300*REFRESH_RATE, 240*REFRESH_RATE, 180*REFRESH_RATE, 120*REFRESH_RATE, 60*REFRESH_RATE, 0, 0, 0, 0 },
{ 300*REFRESH_RATE, 240*REFRESH_RATE, 180*REFRESH_RATE, 120*REFRESH_RATE, 110*REFRESH_RATE, 100*REFRESH_RATE, 90*REFRESH_RATE, 0, 0 },
{ 300*REFRESH_RATE, 240*REFRESH_RATE, 180*REFRESH_RATE, 170*REFRESH_RATE, 124*REFRESH_RATE, 150*REFRESH_RATE, 140*REFRESH_RATE, 130*REFRESH_RATE, 120*REFRESH_RATE },
};
#endif
s32 sp10[3];
s32 var_r31;
s32 var_r30;
@ -2324,6 +2349,7 @@ void fn_1_CA98(s32 arg0, u32 arg1)
case 3:
OSReport("#################### HI-SCORE(%d) : %d\n", arg1, GWGameStat.mg_record[sp8[arg1]]);
var_r31 = GWGameStat.mg_record[sp8[arg1]];
#if VERSION_NTSC
if (var_r31 < 0xA) {
sprintf(lbl_1_bss_FC, " %d", var_r31);
}
@ -2333,28 +2359,31 @@ void fn_1_CA98(s32 arg0, u32 arg1)
else {
sprintf(lbl_1_bss_FC, "%d", var_r31);
}
#else
sprintf(lbl_1_bss_FC, " %d", var_r31);
#endif
HuWinInsertMesSet(arg0, (u32)lbl_1_bss_FC, 0);
break;
case 8:
OSReport("#################### HI-SCORE(%d) : %d\n", arg1, GWGameStat.mg_record[sp8[arg1]]);
var_r31 = GWGameStat.mg_record[sp8[arg1]];
var_r29 = var_r31 / 36000;
var_r31 -= var_r29 * 36000;
var_r28 = var_r31 / 3600;
var_r31 -= var_r28 * 3600;
var_r29 = var_r31 / (600 *REFRESH_RATE);
var_r31 -= var_r29 * (600 *REFRESH_RATE);
var_r28 = var_r31 / (60 *REFRESH_RATE);
var_r31 -= var_r28 * (60 *REFRESH_RATE);
sprintf(lbl_1_bss_F4, " %d", var_r28);
HuWinInsertMesSet(arg0, (u32)lbl_1_bss_F4, 0);
var_r29 = var_r31 / 600;
var_r31 -= var_r29 * 600;
var_r28 = var_r31 / 60;
var_r31 -= var_r28 * 60;
var_r29 = var_r31 / (10 *REFRESH_RATE);
var_r31 -= var_r29 * (10 *REFRESH_RATE);
var_r28 = var_r31 / REFRESH_RATE;
var_r31 -= var_r28 * REFRESH_RATE;
sprintf(lbl_1_bss_EC, "%d%d", var_r29, var_r28);
HuWinInsertMesSet(arg0, (u32)lbl_1_bss_EC, 1);
var_r31 = 1.6916666666666667 * (float)var_r31;
var_r31 = (101.5/REFRESH_RATE) * (float)var_r31;
var_r29 = var_r31 / 10;
var_r31 -= var_r29 * 0xA;
var_r28 = var_r31;
if (GWGameStat.mg_record[sp8[arg1]] >= 0x8C9F) {
if (GWGameStat.mg_record[sp8[arg1]] >= ((600*REFRESH_RATE)-1)) {
sprintf(lbl_1_bss_E4, "99");
}
else {
@ -2678,24 +2707,24 @@ void fn_1_E568(void)
HuSprPosSet(var_r29, 0x0D + var_r28 + (var_r31 * 7), (var_r28 * 0x14) + 0x512, (var_r31 * 0x38) + 0xBA);
}
var_r30 = GWGameStat.mg_record[var_r31 + 6];
var_r27 = var_r30 / 36000;
var_r30 -= var_r27 * 36000;
var_r26 = var_r30 / 3600;
var_r30 -= var_r26 * 3600;
var_r27 = var_r30 / (600*REFRESH_RATE);
var_r30 -= var_r27 * (600*REFRESH_RATE);
var_r26 = var_r30 / (60*REFRESH_RATE);
var_r30 -= var_r26 * (60*REFRESH_RATE);
HuSprBankSet(var_r29, (var_r31 * 7) + 0xD, var_r26);
HuSprBankSet(var_r29, (var_r31 * 7) + 0xE, 0xA);
var_r27 = var_r30 / 600;
var_r30 -= var_r27 * 600;
var_r26 = var_r30 / 60;
var_r30 -= var_r26 * 60;
var_r27 = var_r30 / (10*REFRESH_RATE);
var_r30 -= var_r27 * (10*REFRESH_RATE);
var_r26 = var_r30 / REFRESH_RATE;
var_r30 -= var_r26 * REFRESH_RATE;
HuSprBankSet(var_r29, (var_r31 * 7) + 0xF, var_r27);
HuSprBankSet(var_r29, (var_r31 * 7) + 0x10, var_r26);
HuSprBankSet(var_r29, (var_r31 * 7) + 0x11, 0xB);
var_r30 = 1.6666666666666667 * (float)var_r30;
var_r30 = (100.0/REFRESH_RATE) * (float)var_r30;
var_r27 = var_r30 / 10;
var_r30 -= var_r27 * 0xA;
var_r26 = var_r30;
if (GWGameStat.mg_record[var_r31 + 6] == 0x8C9F) {
if (GWGameStat.mg_record[var_r31 + 6] == ((600*REFRESH_RATE)-1)) {
HuSprBankSet(var_r29, (var_r31 * 7) + 0x12, 9);
HuSprBankSet(var_r29, (var_r31 * 7) + 0x13, 9);
}
@ -3426,26 +3455,38 @@ void fn_1_121E8(void)
else if (GWGameStat.mg_record[9] >= 0x63) {
GWGameStat.mg_record[9] = 0x63;
}
#if VERSION_NTSC
OSReport("HIScore 451A(0-35999):%d\n", GWGameStat.mg_record[6]);
#else
OSReport("HIScore 451A(0-29999):%d\n", GWGameStat.mg_record[6]);
#endif
if (GWGameStat.mg_record[6] == 0) {
GWGameStat.mg_record[6] = 0;
}
else if (GWGameStat.mg_record[6] >= 0x8C9F) {
GWGameStat.mg_record[6] = 0x8C9F;
else if (GWGameStat.mg_record[6] >= ((REFRESH_RATE*600)-1)) {
GWGameStat.mg_record[6] = ((REFRESH_RATE*600)-1);
}
#if VERSION_NTSC
OSReport("HIScore 451B(0-35999):%d\n", GWGameStat.mg_record[7]);
#else
OSReport("HIScore 451B(0-29999):%d\n", GWGameStat.mg_record[7]);
#endif
if (GWGameStat.mg_record[7] == 0) {
GWGameStat.mg_record[7] = 0;
}
else if (GWGameStat.mg_record[7] >= 0x8C9F) {
GWGameStat.mg_record[7] = 0x8C9F;
else if (GWGameStat.mg_record[7] >= ((REFRESH_RATE*600)-1)) {
GWGameStat.mg_record[7] = ((REFRESH_RATE*600)-1);
}
#if VERSION_NTSC
OSReport("HIScore 451C(0-35999):%d\n", GWGameStat.mg_record[8]);
#else
OSReport("HIScore 451C(0-29999):%d\n", GWGameStat.mg_record[8]);
#endif
if (GWGameStat.mg_record[8] == 0) {
GWGameStat.mg_record[8] = 0;
}
else if (GWGameStat.mg_record[8] >= 0x8C9F) {
GWGameStat.mg_record[8] = 0x8C9F;
else if (GWGameStat.mg_record[8] >= ((REFRESH_RATE*600)-1)) {
GWGameStat.mg_record[8] = ((REFRESH_RATE*600)-1);
}
OSReport("HIScore 442(0-999):%d\n", GWGameStat.mg_record[4]);
if (GWGameStat.mg_record[4] == 0) {
@ -3468,12 +3509,16 @@ void fn_1_121E8(void)
else if (GWGameStat.mg_record[0xC] >= 0x63) {
GWGameStat.mg_record[0xC] = 0x63;
}
OSReport("HIScore 461(0-35999):%d\n", GWGameStat.mg_record[0xD]);
#if VERSION_NTSC
OSReport("HIScore 461(0-35999):%d\n", GWGameStat.mg_record[13]);
#else
OSReport("HIScore 461(0-29999):%d\n", GWGameStat.mg_record[13]);
#endif
if (GWGameStat.mg_record[0xD] == 0) {
GWGameStat.mg_record[0xD] = 0;
}
else if (GWGameStat.mg_record[0xD] >= 0x8C9F) {
GWGameStat.mg_record[0xD] = 0x8C9F;
else if (GWGameStat.mg_record[0xD] >= ((REFRESH_RATE*600)-1)) {
GWGameStat.mg_record[0xD] = ((REFRESH_RATE*600)-1);
}
OSReport("HIScore 462(0-99):%d\n", GWGameStat.mg_record[0xE]);
if (GWGameStat.mg_record[0xE] == 0) {

View file

@ -6,7 +6,9 @@
#include "math.h"
s32 lbl_1_data_0 = 100;
#if VERSION_NTSC
s32 lbl_1_bss_0[192];
#endif
void fn_1_0(void)
{

View file

@ -178,9 +178,32 @@ static StaffData staffData[] = {
{ 0x0035005F, 2, 0.0f, 0, 0, 0 },
{ 0x00350060, 2, 0.0f, 0, 0, 0 },
{ -3, 0, 48.0f, 0, 0, 0 },
#if VERSION_PAL
{ 0x00340026, 0, 0.0f, 0, 0, 0 },
{ -3, 0, 24.0f, 0, 0, 0 },
{ 0x00340027, 1, 0.0f, 0, 0, 0 },
{ -3, 0, 24.0f, 0, 0, 0 },
{ 0x00340028, 1, 0.0f, 0, 0, 0 },
{ 0x00350061, 2, 0.0f, 0, 0, 0 },
{ -3, 0, 24.0f, 0, 0, 0 },
{ 0x00340029, 1, 0.0f, 0, 0, 0 },
{ 0x0034002A, 1, 0.0f, 0, 0, 0 },
{ 0x00350062, 2, 0.0f, 0, 0, 0 },
{ 0x0034002B, 1, 0.0f, 0, 0, 0 },
{ 0x00350063, 2, 0.0f, 0, 0, 0 },
{ 0x0034002C, 1, 0.0f, 0, 0, 0 },
{ 0x00350064, 2, 0.0f, 0, 0, 0 },
{ 0x0034002D, 1, 0.0f, 0, 0, 0 },
{ 0x00350065, 2, 0.0f, 0, 0, 0 },
{ -3, 0, 24.0f, 0, 0, 0 },
{ 0x0034002E, 1, 0.0f, 0, 0, 0 },
{ -3, 0, 72.0f, 0, 0, 0 },
#endif
{ 0x00340016, 0, 0.0f, 0, 0, 0 },
{ 0x00350044, 2, 0.0f, 0, 0, 0 },
#if VERSION_NTSC
{ 0x00350045, 2, 0.0f, 0, 0, 0 },
#endif
{ -3, 0, 24.0f, 0, 0, 0 },
{ 0x00350046, 2, 0.0f, 0, 0, 0 },
{ 0x00350047, 2, 0.0f, 0, 0, 0 },
@ -216,7 +239,11 @@ static StaffData staffData[] = {
{ -1, 0, 0.0f, 0, 0, 0 },
};
#if VERSION_NTSC
static float staffLogoPosTbl[] = { 460.0f, 293.0f, 293.0f };
#else
static float staffLogoPosTbl[] = { 460.0f, 290.0f, 293.0f };
#endif
static void MainProc(void);
static void CreateStaff(void);
@ -305,7 +332,36 @@ static void CreateStaff(void)
}
for (var_r31 = 0; var_r31 < 3; var_r31++) {
int languageNo;
#if VERSION_NTSC
var_r29 = HuDataSelHeapReadNum(var_r31 + DATA_MAKE_NUM(DATADIR_STAFF, 0x1A), MEMORY_DEFAULT_NUM, HEAP_DATA);
#else
if(var_r31 == 2) {
switch(GWGameStat.language) {
case 1:
languageNo = 0;
break;
case 2:
languageNo = 1;
break;
case 4:
languageNo = 3;
break;
default:
languageNo = 2;
break;
}
var_r29 = HuDataSelHeapReadNum(var_r31 + DATA_MAKE_NUM(DATADIR_STAFF, 0x1A) + languageNo, MEMORY_DEFAULT_NUM, HEAP_DATA);
} else {
var_r29 = HuDataSelHeapReadNum(var_r31 + DATA_MAKE_NUM(DATADIR_STAFF, 0x1A), MEMORY_DEFAULT_NUM, HEAP_DATA);
}
#endif
var_r28 = HuSprAnimRead(var_r29);
var_r30 = HuSprCreate(var_r28, 256, 0);
staffLogoGroup[var_r31] = HuSprGrpCreate(1);
@ -319,7 +375,11 @@ static void CreateStaff(void)
HuSprGrpPosSet(thpGroup, 280.0f, 200.0f);
HuSprAttrSet(thpGroup, 0, HUSPR_ATTR_DISPOFF);
HuTHPStop();
#if VERSION_NTSC
var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_STAFF, 0x1D), MEMORY_DEFAULT_NUM, HEAP_DATA);
#else
var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_STAFF, 0x20), MEMORY_DEFAULT_NUM, HEAP_DATA);
#endif
var_r28 = HuSprAnimRead(var_r29);
var_r30 = HuSprCreate(var_r28, 16385, 0);
thpCoverGroup = HuSprGrpCreate(1);
@ -462,12 +522,19 @@ static void ShowPicture(void)
HuSprTPLvlSet(imgGroup[currImg], 0, 1.0f);
while (TRUE) {
#if VERSION_NTSC
if (currImg >= 24) {
HuPrcSleep(430);
}
else {
} else {
HuPrcSleep(550);
}
#else
if (currImg >= 24) {
HuPrcSleep(480);
} else {
HuPrcSleep(600);
}
#endif
if (currImg >= 25) {
break;
}
@ -548,7 +615,11 @@ static void MainProc(void)
HuPrcVSleep();
}
HuSprGrpPosSet(staffLogoGroup[1], var_f29, 400.0f);
#if VERSION_NTSC
HuPrcSleep(240);
#else
HuPrcSleep(60);
#endif
HuSprAttrReset(thpGroup, 0, HUSPR_ATTR_DISPOFF);
HuSprAttrReset(thpCoverGroup, 0, HUSPR_ATTR_DISPOFF);
HuTHPRestart();
@ -579,15 +650,20 @@ static void MainProc(void)
HuSprAttrSet(staffLogoGroup[1], 0, HUSPR_ATTR_DISPOFF);
HuPrcSleep(120);
HuSprAttrReset(staffLogoGroup[2], 0, HUSPR_ATTR_DISPOFF);
#if VERSION_NTSC
HuSprGrpPosSet(staffLogoGroup[2], 280.0f, 240.0f);
#else
HuSprGrpPosSet(staffLogoGroup[2], 275.0f, 240.0f);
#endif
for (var_r31 = 0, var_f31 = 0.0f; var_r31 < 30; var_r31++, var_f31 += 1.0f / 30.0f) {
HuSprTPLvlSet(staffLogoGroup[2], 0, var_f31);
HuPrcVSleep();
}
#if VERSION_NTSC
HuPrcSleep(600);
#else
HuPrcSleep(480);
#endif
while (TRUE) {
for (var_r31 = 0; var_r31 < 4; var_r31++) {
if (HuPadBtn[var_r31] & PAD_BUTTON_START) {