More PAL porting (#466)

* Use US splits for PAl w10, w20, w21

* Port m450 and option to PAL

* Matched m420dll for PAL

* Port m429Dll

* Port m431Dll to PAL
This commit is contained in:
dbalatoni13 2024-11-16 23:17:35 +01:00 committed by GitHub
parent ae81b60c47
commit 03e0dedb8e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
34 changed files with 1891 additions and 1956 deletions

View file

@ -425,20 +425,20 @@ static void fn_1_580(s32 *arg0, s32 arg1, s32 arg2)
espBankSet(arg0[arg1 + 1], 10);
espBankSet(arg0[arg1 + 4], 11);
if (36000 <= arg2) {
arg2 = 35999;
if (600 * REFRESH_RATE <= arg2) {
arg2 = 600 * REFRESH_RATE - 1;
}
var_r30 = arg2 / 3600;
arg2 -= var_r30 * 3600;
var_r30 = arg2 / (60 * REFRESH_RATE);
arg2 -= var_r30 * (60 * REFRESH_RATE);
if (var_r30 > 9) {
var_r30 = 9;
}
espBankSet(arg0[arg1], var_r30);
var_r30 = arg2 / 60;
arg2 -= var_r30 * 60;
var_r30 = arg2 / REFRESH_RATE;
arg2 -= var_r30 * REFRESH_RATE;
espBankSet(arg0[arg1 + 2], var_r30 / 10);
espBankSet(arg0[arg1 + 3], var_r30 % 10);
var_r30 = 101.5f * arg2 / 60.0f;
var_r30 = 101.5f * arg2 / REFRESH_RATE;
espBankSet(arg0[arg1 + 5], var_r30 / 10);
espBankSet(arg0[arg1 + 6], var_r30 % 10);
}

View file

@ -418,20 +418,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2)
espBankSet(arg0[arg1 + 1], 10);
espBankSet(arg0[arg1 + 4], 11);
if (36000 <= arg2) {
arg2 = 35999;
if (600 * REFRESH_RATE <= arg2) {
arg2 = 600 * REFRESH_RATE - 1;
}
var_r30 = arg2 / 3600;
arg2 -= var_r30 * 3600;
var_r30 = arg2 / (60 * REFRESH_RATE);
arg2 -= var_r30 * (60 * REFRESH_RATE);
if (var_r30 > 9) {
var_r30 = 9;
}
espBankSet(arg0[arg1], var_r30);
var_r30 = arg2 / 60;
arg2 -= var_r30 * 60;
var_r30 = arg2 / REFRESH_RATE;
arg2 -= var_r30 * REFRESH_RATE;
espBankSet(arg0[arg1 + 2], var_r30 / 10);
espBankSet(arg0[arg1 + 3], var_r30 % 10);
var_r30 = 101.5f * arg2 / 60.0f;
var_r30 = 101.5f * arg2 / REFRESH_RATE;
espBankSet(arg0[arg1 + 5], var_r30 / 10);
espBankSet(arg0[arg1 + 6], var_r30 % 10);
}

View file

@ -1,5 +1,4 @@
#include "ext_math.h"
#include "game/audio.h"
#include "game/flag.h"
#include "game/hsfman.h"
#include "game/minigame_seq.h"
@ -9,6 +8,11 @@
#include "game/wipe.h"
#include "REL/m420dll.h"
#include "version.h"
#ifndef __MWERKS__
#include "game/audio.h"
#endif
s32 fn_1_198(void);
void fn_1_3D4(void);
@ -142,8 +146,8 @@ void fn_1_43C(void)
HuPrcVSleep();
}
MGSeqKill(lbl_1_bss_10);
lbl_1_bss_12 = 0xE10;
lbl_1_bss_14 = MGSeqCreate(1, lbl_1_bss_12 / 60, -1, -1);
lbl_1_bss_12 = 60 * REFRESH_RATE;
lbl_1_bss_14 = MGSeqCreate(1, lbl_1_bss_12 / REFRESH_RATE, -1, -1);
var_r30 = 1;
while (TRUE) {
if (lbl_1_bss_18[0]->unk_48 == 0) {
@ -163,8 +167,8 @@ void fn_1_43C(void)
}
}
if (lbl_1_bss_12 >= 0) {
if (((--lbl_1_bss_12) % 60) == 0) {
MGSeqParamSet(lbl_1_bss_14, 1, lbl_1_bss_12 / 60);
if (((--lbl_1_bss_12) % REFRESH_RATE) == 0) {
MGSeqParamSet(lbl_1_bss_14, 1, lbl_1_bss_12 / REFRESH_RATE);
}
}
if ((fn_1_67E8(0) == 0) && (fn_1_67E8(1) == 0) && (lbl_1_bss_12 > 0)) {

View file

@ -21,6 +21,7 @@
#include "game/sprite.h"
#include "ext_math.h"
#include "version.h"
#undef ABS
#define ABS(x) ((0 > (x)) ? -(x) : (x))
@ -222,20 +223,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2)
espBankSet(arg0[arg1 + 1], 10);
espBankSet(arg0[arg1 + 4], 11);
if (36000 <= arg2) {
arg2 = 35999;
if (600 * REFRESH_RATE <= arg2) {
arg2 = 600 * REFRESH_RATE - 1;
}
var_r30 = arg2 / 3600;
arg2 -= var_r30 * 3600;
var_r30 = arg2 / (60 * REFRESH_RATE);
arg2 -= var_r30 * (60 * REFRESH_RATE);
if (var_r30 > 9) {
var_r30 = 9;
}
espBankSet(arg0[arg1], var_r30);
var_r30 = arg2 / 60;
arg2 -= var_r30 * 60;
var_r30 = arg2 / REFRESH_RATE;
arg2 -= var_r30 * REFRESH_RATE;
espBankSet(arg0[arg1 + 2], var_r30 / 10);
espBankSet(arg0[arg1 + 3], var_r30 % 10);
var_r30 = 101.5f * arg2 / 60.0f;
var_r30 = 101.5f * arg2 / REFRESH_RATE;
espBankSet(arg0[arg1 + 5], var_r30 / 10);
espBankSet(arg0[arg1 + 6], var_r30 % 10);
}
@ -2343,7 +2344,7 @@ void fn_1_AD74(float *arg0)
float temp_f30;
temp_r31 = &lbl_1_data_103C[0][0];
temp_f30 = lbl_1_bss_12C / 60;
temp_f30 = lbl_1_bss_12C / REFRESH_RATE;
temp_f31 = sind(90 * temp_f30) * sind(90 * temp_f30);
for (temp_r28 = 0; temp_r28 < 4; temp_r28++, temp_r31 += 4, arg0 += 4) {
sp8[0] = temp_r31[0] + (temp_f31 * (arg0[0] - temp_r31[0]));
@ -2395,8 +2396,8 @@ void fn_1_B01C(void)
temp_f31 = lbl_1_bss_98[lbl_1_bss_28].x - temp_r30->unk4.x;
temp_f30 = lbl_1_bss_98[lbl_1_bss_28].z - temp_r30->unk4.z;
temp_r30->unk64 = atan2d(temp_f31, temp_f30);
omVibrate(temp_r31->unk114, 120, 6, 6);
omVibrate(temp_r30->unk114, 120, 6, 6);
omVibrate(temp_r31->unk114, 2 * REFRESH_RATE, 6, 6);
omVibrate(temp_r30->unk114, 2 * REFRESH_RATE, 6, 6);
}
void fn_1_B754(float *arg0, float arg1, float arg2, s32 arg3)
@ -2438,7 +2439,7 @@ void fn_1_B8E0(omObjData *object)
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
object->func = fn_1_E96C;
}
lbl_1_bss_114 += 1.0f / 60.0f;
lbl_1_bss_114 += 1.0f / REFRESH_RATE;
if (360.0f <= lbl_1_bss_114) {
lbl_1_bss_114 -= 360.0f;
}
@ -2464,12 +2465,12 @@ void fn_1_B8E0(omObjData *object)
case 1002:
lbl_1_bss_12C++;
temp_f30 = lbl_1_bss_12C / 60;
temp_f30 = lbl_1_bss_12C / REFRESH_RATE;
temp_f31 = 1 - (sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f));
for (temp_r29 = 0; temp_r29 < 5; temp_r29++) {
espTPLvlSet(lbl_1_bss_10[temp_r29], temp_f31);
}
if (60.0f <= lbl_1_bss_12C) {
if (REFRESH_RATE <= lbl_1_bss_12C) {
object->work[0]++;
lbl_1_bss_12C = 0;
for (temp_r29 = 0; temp_r29 < 5; temp_r29++) {
@ -2480,12 +2481,12 @@ void fn_1_B8E0(omObjData *object)
case 1003:
lbl_1_bss_12C++;
temp_f30 = lbl_1_bss_12C / 60;
temp_f30 = lbl_1_bss_12C / REFRESH_RATE;
temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f);
for (temp_r29 = 0; temp_r29 < 4; temp_r29++) {
lbl_1_bss_130[temp_r29].unk4 = temp_f31;
}
if (60.0f <= lbl_1_bss_12C) {
if (REFRESH_RATE <= lbl_1_bss_12C) {
object->work[0]++;
lbl_1_bss_12C = 0;
lbl_1_bss_4 = HuAudFXPlay(1645);
@ -2511,19 +2512,19 @@ void fn_1_B8E0(omObjData *object)
}
if (!MGSeqStatGet(lbl_1_bss_2FE)) {
object->work[0]++;
lbl_1_bss_304 = 3600;
lbl_1_bss_2FC = MGSeqTimerCreate(lbl_1_bss_304 / 60);
lbl_1_bss_304 = 60 * REFRESH_RATE;
lbl_1_bss_2FC = MGSeqTimerCreate(lbl_1_bss_304 / REFRESH_RATE);
lbl_1_bss_2FE = -1;
}
}
break;
case 1006:
MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + 59) / 60);
MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + REFRESH_RATE - 1) / REFRESH_RATE);
lbl_1_bss_304--;
if (lbl_1_bss_304 < 0 || lbl_1_bss_28 >= 0) {
object->work[0] = 1007;
lbl_1_bss_304 = 3600;
lbl_1_bss_304 = 60 * REFRESH_RATE;
lbl_1_bss_12C = 0;
}
break;
@ -2575,7 +2576,7 @@ void fn_1_B8E0(omObjData *object)
case 1008:
lbl_1_bss_12C++;
if (60.0f < lbl_1_bss_12C) {
if (REFRESH_RATE < lbl_1_bss_12C) {
object->work[0]++;
lbl_1_bss_12C = 0;
HuAudFXPlay(1650);
@ -2587,7 +2588,7 @@ void fn_1_B8E0(omObjData *object)
}
else {
fn_1_AD74(((lbl_1_bss_28 & 0x2) == 0) ? &lbl_1_data_107C[0][0] : &lbl_1_data_10BC[0][0]);
temp_f30 = lbl_1_bss_12C / 60.0f;
temp_f30 = lbl_1_bss_12C / REFRESH_RATE;
temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f);
fn_1_A588(lbl_1_bss_28, &lbl_1_data_FE0, temp_f31);
}
@ -2595,13 +2596,13 @@ void fn_1_B8E0(omObjData *object)
case 1009:
lbl_1_bss_12C++;
if (120.0f < lbl_1_bss_12C) {
if (2 * REFRESH_RATE < lbl_1_bss_12C) {
object->work[0]++;
lbl_1_bss_12C = 0;
HuAudFXPlay(1651);
}
else {
temp_f30 = lbl_1_bss_12C / 120.0f;
temp_f30 = lbl_1_bss_12C / (2 * REFRESH_RATE);
temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f);
temp_f20 = (6.0f * frandf()) - 3.0f;
temp_f19 = (6.0f * frandf()) - 3.0f;

View file

@ -15,6 +15,7 @@
#include "ext_math.h"
#include "REL/m431Dll.h"
#include "version.h"
typedef struct bss_5C_struct {
s16 unk0[6];
@ -167,8 +168,8 @@ u8 fn_1_57C(void)
temp_r31 = &lbl_1_data_4C[0];
temp_r30 = 0;
lbl_1_bss_8++;
temp_f30 = lbl_1_bss_8 / 90.0f;
if (lbl_1_bss_8 > 90) {
temp_f30 = lbl_1_bss_8 / (1.5f * REFRESH_RATE);
if (lbl_1_bss_8 > (s32)(1.5f * REFRESH_RATE)) {
lbl_1_bss_8 = 0;
temp_f30 = 1;
temp_r30 = 1;
@ -210,9 +211,9 @@ s32 fn_1_7B0(void)
temp_r31 = &lbl_1_data_4C[0];
temp_r29 = 0;
lbl_1_bss_8++;
temp_f30 = lbl_1_bss_8 / 120.0f;
if (lbl_1_bss_8 > 120) {
lbl_1_bss_8 = 120;
temp_f30 = lbl_1_bss_8 / (2.0f * REFRESH_RATE);
if (lbl_1_bss_8 > (2 * REFRESH_RATE)) {
lbl_1_bss_8 = 2 * REFRESH_RATE;
temp_f30 = 1;
temp_r29 = 1;
}
@ -258,7 +259,7 @@ void fn_1_A44(omObjData *object)
temp_r26 = object->data;
temp_r26->unk0 = 4;
temp_r26->unk6[0] = 0;
temp_r26->unkA = 900;
temp_r26->unkA = 15 * REFRESH_RATE;
temp_r26->unk10 = -1;
temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M431, 0x1A), MEMORY_DEFAULT_NUM));
object->model[0] = fn_1_6C74(temp_r27, 1024, 25, 64, 64);
@ -365,7 +366,7 @@ void fn_1_10A4(omObjData *object)
case 12:
if (temp_r31->unk10 != -1) {
temp_r28 = (temp_r31->unkA + 59) / 60;
temp_r28 = (temp_r31->unkA + REFRESH_RATE - 1) / REFRESH_RATE;
if (temp_r28 < 0) {
temp_r28 = 0;
}
@ -426,7 +427,7 @@ void fn_1_10A4(omObjData *object)
break;
case 20:
if (++lbl_1_bss_C > 210.0f) {
if (++lbl_1_bss_C > (3.5f * REFRESH_RATE)) {
lbl_1_bss_0 = 1;
}
break;
@ -442,11 +443,11 @@ void fn_1_140C(omObjData *object)
return;
}
temp_r31->unk12++;
temp_f31 = temp_r31->unk12 / 18.0f;
if (temp_r31->unk12 > 18.0f) {
temp_f31 = temp_r31->unk12 / (3.0f / 10 * REFRESH_RATE);
if (temp_r31->unk12 > (3.0f / 10 * REFRESH_RATE)) {
temp_r31->unk12 = 0;
temp_f31 = 1.0f;
temp_r31->unk12 = 18;
temp_r31->unk12 = 0.3f * REFRESH_RATE;
temp_r31->unk0 &= ~0x300;
}
temp_f30 = 1.0 - cosd(90.0f * temp_f31);
@ -848,9 +849,9 @@ void fn_1_2C94(Work2110 *arg0)
HuAudFXPlay(1670);
}
lbl_1_bss_10++;
temp_f31 = lbl_1_bss_10 / 60.0f;
temp_f31 = lbl_1_bss_10 / (1.0f * REFRESH_RATE);
if (temp_f31 >= 1.0f) {
temp_r26->unkA = 900;
temp_r26->unkA = 15 * REFRESH_RATE;
lbl_1_bss_10 = 0;
temp_f31 = 1;
lbl_1_data_162++;
@ -870,7 +871,7 @@ void fn_1_2C94(Work2110 *arg0)
HuAudFXPlay(1663);
}
lbl_1_bss_10++;
temp_f31 = lbl_1_bss_10 / 60.0f;
temp_f31 = lbl_1_bss_10 / (1.0f * REFRESH_RATE);
if (temp_f31 >= 1.0f) {
lbl_1_bss_10 = 0;
temp_f31 = 1.0f;
@ -912,7 +913,7 @@ void fn_1_30E0(Work2110 *arg0)
switch (lbl_1_data_162) {
case 0:
lbl_1_bss_10++;
if (lbl_1_bss_10 > 60) {
if (lbl_1_bss_10 > REFRESH_RATE) {
lbl_1_bss_10 = 0;
lbl_1_data_162++;
}
@ -945,7 +946,7 @@ void fn_1_30E0(Work2110 *arg0)
temp_r31 = &arg0[0].unk4[temp_r28];
switch (temp_r22 = temp_r31->unk0 & 0x1C) {
case 4:
if (sp8[temp_r27] > 15) {
if (sp8[temp_r27] > (VERSION_NTSC ? 15 : 12)) {
sp8[temp_r27] = 0;
temp_r25 = 1;
if (temp_r29 - 1 > -6) {
@ -969,7 +970,7 @@ void fn_1_30E0(Work2110 *arg0)
temp_f31 = 50.0f;
temp_r31->unk0 &= ~0x1C;
if (temp_r22 == 8) {
temp_r31->unk20 = 6;
temp_r31->unk20 = 6.0f;
temp_r31->unk0 |= 12;
HuAudFXPlay(1664);
}
@ -1020,7 +1021,7 @@ void fn_1_3540(Work2110 *arg0)
temp_f31 += temp_r29 * 36.0f;
lbl_1_bss_18[0] = lbl_1_bss_20[0] + temp_f31;
lbl_1_bss_18[1] = lbl_1_bss_20[1] - temp_f31;
lbl_1_bss_14 = (0.01f * temp_f31) * 60;
lbl_1_bss_14 = (0.01f * temp_f31) * REFRESH_RATE;
lbl_1_data_162++;
lbl_1_data_164 = HuAudFXPlay(1665);
break;
@ -1119,7 +1120,7 @@ void fn_1_3D7C(Work2110 *arg0)
s16 temp_r27;
switch (lbl_1_data_162) {
case 0:
if (++lbl_1_bss_10 > 60) {
if (++lbl_1_bss_10 > REFRESH_RATE) {
lbl_1_bss_10 = 0;
lbl_1_data_162++;
}
@ -1151,7 +1152,7 @@ void fn_1_3D7C(Work2110 *arg0)
break;
case 2:
if (++lbl_1_bss_10 > 60) {
if (++lbl_1_bss_10 > REFRESH_RATE) {
lbl_1_bss_10 = lbl_1_data_162 = 0;
fn_1_2050(224, 32);
}
@ -1235,7 +1236,7 @@ void fn_1_4028(Work2110 *arg0)
break;
case 2:
if (++lbl_1_bss_10 > 90.0f) {
if (++lbl_1_bss_10 > (1.5f * REFRESH_RATE)) {
lbl_1_bss_10 = 0;
lbl_1_data_162 = 1;
fn_1_2050(224, 128);
@ -1250,7 +1251,7 @@ void fn_1_4028(Work2110 *arg0)
}
if (temp_r31->unk0 & 0x2) {
temp_r31->unk18++;
temp_f31 = temp_r31->unk18 / 30.0f;
temp_f31 = temp_r31->unk18 / (0.5f * REFRESH_RATE);
if (temp_f31 >= 1.0f) {
temp_r31->unk20 -= 1.0f;
if (temp_r31->unk20 < 0.4f) {
@ -1264,16 +1265,16 @@ void fn_1_4028(Work2110 *arg0)
}
else {
if (!temp_r31->unk20) {
if (++temp_r31->unk18 > 30.0f) {
if (++temp_r31->unk18 > (0.5f * REFRESH_RATE)) {
temp_r31->unk20 = 1;
temp_r31->unk18 = 0;
}
}
else {
temp_r31->unk18++;
temp_f31 = temp_r31->unk18 / 54.0f;
temp_f31 = temp_r31->unk18 / (VERSION_NTSC ? 54.0f : 45.0f);
if (temp_f31 >= 1.0f) {
temp_r31->unk18 = 54;
temp_r31->unk18 = VERSION_NTSC ? 54 : 45;
temp_f31 = 1.0f;
}
temp_f31 = cosd(temp_f31 * 90.0f);
@ -1594,7 +1595,7 @@ void fn_1_5708(void)
Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[5], 0, 8, HU3D_MOTATTR_LOOP);
}
else {
if (temp_r29->unkA < 180) {
if (temp_r29->unkA < (3 * REFRESH_RATE)) {
temp_r31->unk12 = 0;
temp_r31->unk10 = 5;
}

View file

@ -13,6 +13,7 @@
#include "REL/m431Dll.h"
#include "ext_math.h"
#include "version.h"
typedef struct bss_struct_62C {
u8 unk0;
@ -319,7 +320,7 @@ void fn_1_8790(omObjData *object)
}
}
if (temp_r31->unk7C && temp_r28 == temp_r31->unk6E - 1) {
if (++temp_r31->unk7C > 120) {
if (++temp_r31->unk7C > 2 * REFRESH_RATE) {
temp_r31->unk7C = 0;
}
if ((temp_r31->unk14->unk0 & 0xC0) == 0x40) {
@ -704,6 +705,12 @@ void fn_1_98D4(omObjData *object)
Hu3DModelRotSet(object->model[0], 0, temp_r31->unk30, 0);
}
#if VERSION_NTSC
#define fn_1_9A04_CHECK (temp_r29->unk_0C == -1 && temp_r29->unk_64 == 14.0f)
#else
#define fn_1_9A04_CHECK (temp_r29->unk_0C == -1 && temp_r29->unk_64 >= 14.0f && temp_r31->unk3C_pal == 0)
#endif
void fn_1_9A04(omObjData *object)
{
Bss61CWork *temp_r31;
@ -725,12 +732,18 @@ void fn_1_9A04(omObjData *object)
if (fn_1_4CDC(temp_r31->unkA, temp_r31->unk40)) {
fn_1_B0E8(object, 3, 4);
fn_1_B130(object, 0, 8);
#if VERSION_PAL
temp_r31->unk3C_pal = 0;
#endif
}
}
}
else {
if (temp_r31->unk38 == 3) {
if (temp_r29->unk_0C == -1 && temp_r29->unk_64 == 14.0f) {
if (fn_1_9A04_CHECK) {
#if VERSION_PAL
temp_r31->unk3C_pal = 1;
#endif
temp_r31->unk5C = fn_1_4B14(temp_r31->unkA, temp_r31->unk40, &temp_r31->unk7E);
if (temp_r31->unk5C != -1) {
if (temp_r31->unkA == 0) {
@ -742,18 +755,18 @@ void fn_1_9A04(omObjData *object)
if (temp_r31->unk7E != 0) {
omVibrate(temp_r31->unk4, 12, 6, 6);
if (temp_r31->unkA == 0) {
fn_1_B494(1666, 30);
fn_1_B494(1666, 0.5f * REFRESH_RATE);
}
else {
fn_1_B494(1671, 30);
fn_1_B494(1671, 0.5f * REFRESH_RATE);
}
}
else {
if (temp_r31->unkA == 0) {
fn_1_B494(1667, 30);
fn_1_B494(1667, 0.5f * REFRESH_RATE);
}
else {
fn_1_B494(1672, 30);
fn_1_B494(1672, 0.5f * REFRESH_RATE);
}
}
temp_r31->unk70++;
@ -891,6 +904,9 @@ void fn_1_A0F8(omObjData *object)
if (fn_1_4CDC(temp_r31->unkA, temp_r31->unk40) && fn_1_2090(28) == 12 && fn_1_2090(224) == 0 && fn_1_4724() < 2) {
fn_1_B0E8(object, 3, 4);
fn_1_B130(object, 0, 8);
#if VERSION_PAL
temp_r31->unk3C_pal = 0;
#endif
temp_r27 = 1;
}
if (temp_r27 == 0) {

View file

@ -234,20 +234,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2)
espBankSet(arg0[arg1 + 1], 10);
espBankSet(arg0[arg1 + 4], 11);
if (36000 <= arg2) {
arg2 = 35999;
if (600 * REFRESH_RATE <= arg2) {
arg2 = 600 * REFRESH_RATE - 1;
}
var_r30 = arg2 / 3600;
arg2 -= var_r30 * 3600;
var_r30 = arg2 / (60 * REFRESH_RATE);
arg2 -= var_r30 * (60 * REFRESH_RATE);
if (var_r30 > 9) {
var_r30 = 9;
}
espBankSet(arg0[arg1], var_r30);
var_r30 = arg2 / 60;
arg2 -= var_r30 * 60;
var_r30 = arg2 / REFRESH_RATE;
arg2 -= var_r30 * REFRESH_RATE;
espBankSet(arg0[arg1 + 2], var_r30 / 10);
espBankSet(arg0[arg1 + 3], var_r30 % 10);
var_r30 = 101.5f * arg2 / 60.0f;
var_r30 = 101.5f * arg2 / REFRESH_RATE;
espBankSet(arg0[arg1 + 5], var_r30 / 10);
espBankSet(arg0[arg1 + 6], var_r30 % 10);
}

View file

@ -222,20 +222,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2)
espBankSet(arg0[arg1 + 1], 10);
espBankSet(arg0[arg1 + 4], 11);
if (36000 <= arg2) {
arg2 = 35999;
if (600 * REFRESH_RATE <= arg2) {
arg2 = 600 * REFRESH_RATE - 1;
}
var_r30 = arg2 / 3600;
arg2 -= var_r30 * 3600;
var_r30 = arg2 / (60 * REFRESH_RATE);
arg2 -= var_r30 * (60 * REFRESH_RATE);
if (var_r30 > 9) {
var_r30 = 9;
}
espBankSet(arg0[arg1], var_r30);
var_r30 = arg2 / 60;
arg2 -= var_r30 * 60;
var_r30 = arg2 / REFRESH_RATE;
arg2 -= var_r30 * REFRESH_RATE;
espBankSet(arg0[arg1 + 2], var_r30 / 10);
espBankSet(arg0[arg1 + 3], var_r30 % 10);
var_r30 = 101.5f * arg2 / 60.0f;
var_r30 = 101.5f * arg2 / REFRESH_RATE;
espBankSet(arg0[arg1 + 5], var_r30 / 10);
espBankSet(arg0[arg1 + 6], var_r30 % 10);
}

View file

@ -20,8 +20,10 @@
#include "REL/m444dll.h"
#include "ext_math.h"
#include "version.h"
#include "math.h"
s16 lbl_1_bss_198F0[5][2];
Vec lbl_1_bss_D8F0[4096];
Vec lbl_1_bss_18F0[4096];
@ -844,7 +846,7 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2)
if (temp_f31 < 0.0f) {
temp_f28 -= temp_f31;
temp_f31 = ABS(temp_f31);
#if VERSION > 0
#if VERSION_REV1
if (temp_f31 == 0.0) {
sp1C.x = sp1C.y = sp1C.z = 0.0f;
break;
@ -886,7 +888,7 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2)
}
}
temp_f31 = VECMag(arg1);
#if VERSION > 0
#if VERSION_REV1
if (VECMag(&sp1C) == 0.0) {
sp1C.x = 0.0f;
sp1C.y = 1.0f;
@ -912,7 +914,7 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2)
break;
}
if (temp_f30 < 20.0f
#if VERSION > 0
#if VERSION_REV1
&& !(temp_f30 < 0.000001)
#endif
) {
@ -925,7 +927,7 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2)
}
if (temp_r30 == lbl_1_data_3A4[arg2]) {
arg1->y += 0.3;
#if VERSION > 0
#if VERSION_REV1
if (VECMag((Vec *)&arg1) < 0.000001) {
arg1->y += 0.3;
}

View file

@ -34,6 +34,7 @@
#include "game/window.h"
#include "string.h"
#include "version.h"
#ifndef __MWERKS__
#include "game/audio.h"
@ -242,20 +243,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2)
espBankSet(arg0[arg1 + 1], 10);
espBankSet(arg0[arg1 + 4], 11);
if (36000 <= arg2) {
arg2 = 35999;
if (600 * REFRESH_RATE <= arg2) {
arg2 = 600 * REFRESH_RATE - 1;
}
var_r30 = arg2 / 3600;
arg2 -= var_r30 * 3600;
var_r30 = arg2 / (60 * REFRESH_RATE);
arg2 -= var_r30 * (60 * REFRESH_RATE);
if (var_r30 > 9) {
var_r30 = 9;
}
espBankSet(arg0[arg1], var_r30);
var_r30 = arg2 / 60;
arg2 -= var_r30 * 60;
var_r30 = arg2 / REFRESH_RATE;
arg2 -= var_r30 * REFRESH_RATE;
espBankSet(arg0[arg1 + 2], var_r30 / 10);
espBankSet(arg0[arg1 + 3], var_r30 % 10);
var_r30 = 101.5f * arg2 / 60.0f;
var_r30 = 101.5f * arg2 / REFRESH_RATE;
espBankSet(arg0[arg1 + 5], var_r30 / 10);
espBankSet(arg0[arg1 + 6], var_r30 % 10);
}
@ -1018,7 +1019,7 @@ void fn_1_2E34(WorkPlayerOld *player)
player->unk_3C |= 0x100;
player->unk_A4 = 0;
if (!(player2->unk_3C & 0x100)) {
player->unk_84.y = 26.766666f;
player->unk_84.y = VERSION_NTSC ? 26.766666f : 32.120003f;
}
}
if (state == 3) {
@ -1122,7 +1123,7 @@ void fn_1_3CE0(WorkPlayerOld *player, s32 *state, u32 *motAttr)
}
if (player->unk_14[3] >= 0 && (player->unk_28 & 0x100)) {
fn_1_2BD0(player, 26.766666f, 1.0f);
fn_1_2BD0(player, VERSION_NTSC ? 26.766666f : 32.120003f, 1.0f);
*motAttr = HU3D_MOTATTR_NONE;
*state = 3;
}
@ -1137,14 +1138,14 @@ void fn_1_3DB8(WorkPlayerOld *player, s32 *state, u32 *motAttr)
player->unk_A4 = 0;
}
else {
player->unk_84.y += 3.65f;
player->unk_84.y += 219.0f / REFRESH_RATE;
}
}
else {
player->unk_A4 = 0;
}
}
player->unk_84.y += -2.4333334f;
player->unk_84.y += -146.0f / REFRESH_RATE;
if (player->unk_14[5] >= 0 && (player->unk_28 & 0x140)) {
player->unk_38 = 3;
player->unk_84.y = 0;
@ -1271,7 +1272,7 @@ void fn_1_40C0(WorkPlayerOld *player)
if (player->unk_3C & 0x2000) {
player->unk_84.y = 0;
}
temp_f28 = 0;
temp_f28 = 0.0f;
if (50.0f < ABS(player->unk_84.y)) {
player->unk_84.y = 50.0f * ((0.0f > player->unk_84.y) ? -1 : 1);
}
@ -2019,25 +2020,25 @@ s32 lbl_1_data_18C[8] = { 0, 1, 2, 1, 1, -1, -1, -1 };
s32 lbl_1_data_1AC[8] = { 0, 1, 2, 1, 1, -1, -1, -1 };
s32 lbl_1_data_1CC[4] = { 0x3E, 0x65, 0x3F, 0x66 };
UnkData204Struct lbl_1_data_1DC[5] = {
{ 510.0f, 0 },
{ 300.0f, 1 },
{ 300.0f, 0 },
{ 300.0f, 1 },
{ 8.5f * REFRESH_RATE, 0 },
{ 5.0f * REFRESH_RATE, 1 },
{ 5.0f * REFRESH_RATE, 0 },
{ 5.0f * REFRESH_RATE, 1 },
{ 0.0f, 0 },
};
UnkData204Struct lbl_1_data_204[6] = {
{ 210.0f, 0 },
{ 300.0f, 1 },
{ 300.0f, 0 },
{ 300.0f, 1 },
{ 300.0f, 0 },
{ 3.5f * REFRESH_RATE, 0 },
{ 5.0f * REFRESH_RATE, 1 },
{ 5.0f * REFRESH_RATE, 0 },
{ 5.0f * REFRESH_RATE, 1 },
{ 5.0f * REFRESH_RATE, 0 },
{ 0.0f, 0 },
};
Vec2f lbl_1_data_234[4] = {
{ 300.0f, 300.0f },
{ 300.0f, 240.0f },
{ 300.0f, 210.0f },
{ 300.0f, 180.0f },
{ 5.0f * REFRESH_RATE, 5.0f * REFRESH_RATE },
{ 5.0f * REFRESH_RATE, 4.0f * REFRESH_RATE },
{ 5.0f * REFRESH_RATE, 3.5f * REFRESH_RATE },
{ 5.0f * REFRESH_RATE, 3.0f * REFRESH_RATE },
};
float lbl_1_data_254[5] = { 0.4f, 0.35f, 0.3f, 0.25f, 0.2f };
float lbl_1_data_268[5] = { 0.45f, 0.4f, 0.35f, 0.3f, 0.25f };
@ -2381,9 +2382,9 @@ void fn_1_8500(void)
HuPrcVSleep();
}
HuAudFXPlay(0x3B);
fn_1_A968(4, 8.0f, 0, 0, 60.0f);
fn_1_E1A8(0, 9, 8.0f, 0, 7, 60.0f);
fn_1_E1A8(1, 9, 8.0f, 0, 7, 60.0f);
fn_1_A968(4, 8.0f, 0, 0, REFRESH_RATE);
fn_1_E1A8(0, 9, 8.0f, 0, 7, REFRESH_RATE);
fn_1_E1A8(1, 9, 8.0f, 0, 7, REFRESH_RATE);
fn_1_7B90(var_r31, 0x2D0004);
fn_1_7C14(var_r31, -1);
HuAudFXPlay(0x3C);
@ -2786,7 +2787,7 @@ void fn_1_AAB0(UnkM450Struct3 *arg0, Vec2f *arg1, s32 arg2)
float var_f31 = 1.0f;
if (arg2 != 0) {
var_f31 = arg0->unk_F4;
if ((lbl_1_data_F6C[lbl_1_bss_118] - lbl_1_bss_304) > 0xE10) {
if ((lbl_1_data_F6C[lbl_1_bss_118] - lbl_1_bss_304) > 60 * REFRESH_RATE) {
arg0->unk_F4 = arg0->unk_F4 - 0.1f;
if (0.0f > arg0->unk_F4) {
arg0->unk_F4 = 0.0f;
@ -2916,7 +2917,7 @@ void fn_1_AD58(omObjData *object)
}
break;
case 0xBBE:
fn_1_A828(var_r31, 120.0f, 3000.0f, 1605.0f);
fn_1_A828(var_r31, 2 * REFRESH_RATE, 3000.0f, 1605.0f);
if (lbl_1_bss_1A4->work[0] >= 0x40B) {
var_r31->unk_150++;
var_r31->unk_E0 = 0.0f;
@ -3048,7 +3049,7 @@ void fn_1_AD58(omObjData *object)
fn_1_19A10(&var_r31->unk_00, &spE4);
fn_1_40C0(&var_r31->unk_00);
var_r31->unk_E0 += 1.0f;
spC8 = (60.0f * (3.0f + lbl_1_data_A0C[1].unk_14));
spC8 = (REFRESH_RATE * (3.0f + lbl_1_data_A0C[1].unk_14));
if (spC8 < var_r31->unk_E0) {
var_r31->unk_150++;
var_r31->unk_154 &= ~0x70;
@ -3115,7 +3116,7 @@ void fn_1_AD58(omObjData *object)
Hu3DMotionTimeSet(object->model[0], 50.0f);
}
var_r31->unk_E0 += 1.0f;
if (180.0f < var_r31->unk_E0) {
if (3 * REFRESH_RATE < var_r31->unk_E0) {
var_r31->unk_150 = 0xBC6;
var_r31->unk_E0 = 0.0f;
var_r31->unk_154 |= 0x20;
@ -3154,7 +3155,7 @@ void fn_1_AD58(omObjData *object)
fn_1_19A10(&var_r31->unk_00, &spE4);
fn_1_40C0(&var_r31->unk_00);
var_r31->unk_E0 += 1.0f;
if (180.0f < var_r31->unk_E0) {
if (3 * REFRESH_RATE < var_r31->unk_E0) {
var_r31->unk_150 = 0xBC6;
var_r31->unk_E0 = 0.0f;
var_r31->unk_154 |= 0x20;
@ -3660,7 +3661,7 @@ void fn_1_ED4C(omObjData *object)
}
break;
case 0xFA8:
fn_1_A828(var_r31, 120.0f, 3000.0f, 1605.0f);
fn_1_A828(var_r31, 2 * REFRESH_RATE, 3000.0f, 1605.0f);
if (lbl_1_bss_1A4->work[0] >= 0x3F9) {
var_r31->unk_150 = var_r31->unk_150 + 1;
var_r31->unk_E0 = 0.0f;
@ -4038,7 +4039,7 @@ void fn_1_12688(omObjData *object)
if (object->work[0] != 0) {
if (lbl_1_bss_1A4->work[0] <= 0x3EB) {
object->work[0] = object->work[0] - (3.0f - (lbl_1_bss_128 / 120.0f));
if (object->work[0] > 0x258) {
if (object->work[0] > 10 * REFRESH_RATE) {
object->work[0] = 1;
}
}
@ -4055,7 +4056,7 @@ void fn_1_12688(omObjData *object)
}
}
else if (Hu3DMotionEndCheck(object->model[0]) != 0) {
object->work[0] = frandmod(0x258);
object->work[0] = frandmod(10 * REFRESH_RATE);
Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF);
Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE);
}
@ -4063,7 +4064,7 @@ void fn_1_12688(omObjData *object)
void fn_1_1291C(omObjData *object)
{
object->work[0] = frandmod(0x258);
object->work[0] = frandmod(10 * REFRESH_RATE);
omSetTra(object, 0.0f, 0.0f, 0.0f);
omSetRot(object, 0.0f, 0.0f, 0.0f);
object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M450, 0x22));
@ -4312,27 +4313,27 @@ UnkDataA0CStruct lbl_1_data_A0C[2] = {
{ 0x00510067, DATA_MAKE_NUM(DATADIR_M450, 0x66), DATA_MAKE_NUM(DATADIR_M450, 0x69), DATA_MAKE_NUM(DATADIR_M450, 0x6A), 5, 5, NULL },
};
UnkDataA80Struct lbl_1_data_A80[9] = {
{ "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, 0.6f, 350.0f }, -1, 0 },
{ "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, 0.6f, 350.0f }, -2, 0 },
{ "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -0.6f, 350.0f }, -1, 0 },
{ "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -0.6f, 350.0f }, -2, 0 },
{ "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 0.6f, 350.0f }, -1, 0 },
{ "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 0.6f, 350.0f }, -2, 0 },
{ "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 0.6f, 350.0f }, -2, 0 },
{ "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 0.6f, 300.0f }, -1, 0 },
{ "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, 0.6f, 300.0f }, -2, 0 },
{ "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, 36.0f / REFRESH_RATE, 350.0f }, -1, 0 },
{ "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, 36.0f / REFRESH_RATE, 350.0f }, -2, 0 },
{ "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -36.0f / REFRESH_RATE, 350.0f }, -1, 0 },
{ "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -36.0f / REFRESH_RATE, 350.0f }, -2, 0 },
{ "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 36.0f / REFRESH_RATE, 350.0f }, -1, 0 },
{ "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 36.0f / REFRESH_RATE, 350.0f }, -2, 0 },
{ "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 36.0f / REFRESH_RATE, 350.0f }, -2, 0 },
{ "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 36.0f / REFRESH_RATE, 300.0f }, -1, 0 },
{ "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, 36.0f / REFRESH_RATE, 300.0f }, -2, 0 },
};
UnkDataA80Struct lbl_1_data_C58[0xA] = {
{ "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 60.0f, -0.6f, 300.0f }, -1, 0 },
{ "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, -0.6f, 300.0f }, -2, 0 },
{ "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 300.0f, -0.6f, 300.0f }, -2, 0 },
{ "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, -1.2f, 300.0f }, -1, 0 },
{ "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, -1.2f, 300.0f }, -2, 0 },
{ "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -0.6f, 300.0f }, -1, 0 },
{ "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -0.6f, 300.0f }, -2, 0 },
{ "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 1.2f, 300.0f }, -1, 0 },
{ "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 1.2f, 300.0f }, -2, 0 },
{ "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 1.2f, 300.0f }, -2, 0 },
{ "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 60.0f, -36.0f / REFRESH_RATE, 300.0f }, -1, 0 },
{ "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, -36.0f / REFRESH_RATE, 300.0f }, -2, 0 },
{ "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 300.0f, -36.0f / REFRESH_RATE, 300.0f }, -2, 0 },
{ "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, -72.0f / REFRESH_RATE, 300.0f }, -1, 0 },
{ "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, -72.0f / REFRESH_RATE, 300.0f }, -2, 0 },
{ "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -36.0f / REFRESH_RATE, 300.0f }, -1, 0 },
{ "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -36.0f / REFRESH_RATE, 300.0f }, -2, 0 },
{ "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 72.0f / REFRESH_RATE, 300.0f }, -1, 0 },
{ "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 72.0f / REFRESH_RATE, 300.0f }, -2, 0 },
{ "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 72.0f / REFRESH_RATE, 300.0f }, -2, 0 },
};
char *lbl_1_data_E68[5] = {
"m450m01-from1to2",
@ -4403,7 +4404,7 @@ s32 lbl_1_data_F00[0x17] = {
};
s32 lbl_1_data_F5C[4]
= { DATA_MAKE_NUM(DATADIR_M450, 0x24), DATA_MAKE_NUM(DATADIR_M450, 0x25), DATA_MAKE_NUM(DATADIR_M450, 0x26), DATA_MAKE_NUM(DATADIR_M450, 0x27) };
s32 lbl_1_data_F6C[6] = { 0, 0xE10, 0x4650, 0xE10, 0x4650, 0x4650 };
s32 lbl_1_data_F6C[6] = { 0, 60 * REFRESH_RATE, 300 * REFRESH_RATE, 60 * REFRESH_RATE, 300 * REFRESH_RATE, 300 * REFRESH_RATE };
float lbl_1_data_F84[5] = { 1200.0f, 1500.0f, 0.0f, 200.0f, 300.0f };
float lbl_1_data_F98[5] = { 1200.0f, 1500.0f, 0.0f, 200.0f, 300.0f };
float *lbl_1_data_FAC[6] = { NULL, lbl_1_data_F84, NULL, lbl_1_data_F98, NULL, NULL };
@ -4502,7 +4503,7 @@ void fn_1_12A1C(omObjData *object)
}
}
else if (Hu3DMotionEndCheck(object->model[0]) != 0) {
object->work[0] = frandmod(0xB4);
object->work[0] = frandmod(3 * REFRESH_RATE);
Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF);
Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE);
}
@ -4513,7 +4514,7 @@ void fn_1_12B80(omObjData *object)
s32 var_r30;
s16 var_r29;
object->work[0] = frandmod(0xB4);
object->work[0] = frandmod(3 * REFRESH_RATE);
omSetTra(object, 0.0f, 0.0f, 0.0f);
omSetRot(object, 0.0f, 0.0f, 0.0f);
@ -4813,7 +4814,7 @@ void fn_1_13F28(omObjData *object)
}
if (((UnkM450Struct5 *)lbl_1_bss_138->data)->unk_10C < 3) {
var_r31->unk_14 += 1.0f;
if (1200.0f < var_r31->unk_14) {
if (20 * REFRESH_RATE < var_r31->unk_14) {
var_r31->unk_1C = 0;
fn_1_1B510(var_r29);
}
@ -6012,7 +6013,7 @@ void fn_1_19CE0(omObjData *object)
var_r31->unk_FC &= ~0x3000;
var_r31->unk_FC &= ~0x30000;
var_r31->unk_FC &= ~0x300000;
var_r31->unk_100 = 0x78;
var_r31->unk_100 = 2 * REFRESH_RATE;
var_r31->unk_F8 = 0.0f;
var_r31->unk_00.unk_3C &= ~0x210;
}
@ -6567,7 +6568,7 @@ s32 fn_1_1C898(UnkM450Struct5 *var_r31, omObjData *var_r30)
HuAudCharVoicePlay(var_r31->unk_11C, 0x123);
var_r31->unk_FC |= 0x10;
var_r31->unk_00.unk_3C |= 0x210;
fn_1_2BD0(&var_r31->unk_00, 48.179996f, 0.0f);
fn_1_2BD0(&var_r31->unk_00, VERSION_NTSC ? 48.179995f : 57.816f, 0.0f);
Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[8], 0.0f, 8.0f, 0);
if (fn_1_125C0(0, 1) <= 0) {
var_r31->unk_FC |= 0x80000;
@ -6615,7 +6616,7 @@ s32 fn_1_1C898(UnkM450Struct5 *var_r31, omObjData *var_r30)
var_r31->unk_FC |= 0x100000;
var_r31->unk_00.unk_3C |= 0x200;
var_r31->unk_00.unk_3C &= ~0x10;
var_f31 = 40.15f;
var_f31 = VERSION_NTSC ? 40.15f : 48.180005f;
if (var_r31->unk_FC & 4) {
var_f31 = var_f31 / 2;
}
@ -6690,7 +6691,7 @@ void fn_1_1E150(omObjData *var_r29)
HuAudCharVoicePlay(var_r31->unk_11C, 0x123);
var_r31->unk_FC |= 0x800000;
var_r31->unk_118 = 0x7EB;
fn_1_2BD0(&var_r31->unk_00, 53.533333f, 0.0f);
fn_1_2BD0(&var_r31->unk_00, VERSION_NTSC ? 53.533333f : 64.240005f, 0.0f);
Hu3DMotionSet(var_r29->model[0], var_r29->motion[8]);
Hu3DModelAttrReset(var_r29->model[0], HU3D_ATTR_DISPOFF);
fn_1_125C0(0, 0);
@ -7074,7 +7075,7 @@ void fn_1_20170(omObjData *var_r30)
break;
case 0x7E9:
if (lbl_1_bss_1A4->work[0] >= 0x417) {
if (100.0f < lbl_1_bss_128) {
if ((VERSION_NTSC ? 100.0f : 80.0f) < lbl_1_bss_128) {
var_r31->unk_118++;
GWPlayerCoinWinSet(lbl_1_bss_120, 10);
Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[21], 0.0f, 8.0f, 0);
@ -7092,14 +7093,13 @@ void fn_1_20170(omObjData *var_r30)
break;
case 0x7EB:
if (var_r31->unk_FC & 0x800000) {
// inline?
var_r29 = var_r31;
var_r29->unk_00.unk_84.y += -2.4333334f;
var_r29->unk_00.unk_84.y += -146.0f / REFRESH_RATE;
var_r29->unk_00.unk_6C.y += var_r29->unk_00.unk_84.y;
var_r29->unk_00.unk_A8 = MapPos(
var_r29->unk_00.unk_6C.x, var_r29->unk_00.unk_6C.y, var_r29->unk_00.unk_6C.z, var_r29->unk_00.unk_C0, &var_r29->unk_00.unk_AC);
if (var_r29->unk_00.unk_A8 > var_r29->unk_00.unk_6C.y) {
fn_1_2BD0(&var_r31->unk_00, 53.533333f, 0.0f);
fn_1_2BD0(&var_r31->unk_00, VERSION_NTSC ? 53.533333f : 64.240005f, 0.0f);
}
var_f31 = var_r29->unk_00.unk_6C.x;
var_f30 = var_r29->unk_00.unk_6C.z;
@ -7367,12 +7367,12 @@ void fn_1_24620(omObjData *var_r31)
case 0x40D:
case 0x415:
if (lbl_1_bss_2FC >= 0) {
MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + 0x3B) / 60);
MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + REFRESH_RATE - 1) / REFRESH_RATE);
}
else {
sp120 = 0;
if ((lbl_1_bss_118 == 2) || (lbl_1_bss_118 == 4) || (lbl_1_bss_118 == 5)) {
if (lbl_1_bss_304 < 0x708) {
if (lbl_1_bss_304 < 30 * REFRESH_RATE) {
sp120 = 1;
}
}
@ -7380,7 +7380,7 @@ void fn_1_24620(omObjData *var_r31)
sp120 = 1;
}
if (sp120 != 0) {
lbl_1_bss_2FC = MGSeqCreate(1, lbl_1_bss_304 / 60, -1, -1);
lbl_1_bss_2FC = MGSeqCreate(1, lbl_1_bss_304 / REFRESH_RATE, -1, -1);
}
}
lbl_1_bss_304--;
@ -7390,7 +7390,7 @@ void fn_1_24620(omObjData *var_r31)
}
break;
case 0x3F4:
fn_1_23CA0(var_r31, 270.0f, 120.0f);
fn_1_23CA0(var_r31, 270.0f, 2 * REFRESH_RATE);
break;
case 0x3F5:
lbl_1_bss_128 += 1.0f;
@ -7413,7 +7413,7 @@ void fn_1_24620(omObjData *var_r31)
omVibrate(lbl_1_bss_120, 0xC, 6, 6);
lbl_1_bss_128 += 1.0f;
Hu3DModelPosSet(lbl_1_bss_1A0->model[6], 0.0f, -(2.0f * lbl_1_bss_128), 0.0f);
if (120.0f < lbl_1_bss_128) {
if (2 * REFRESH_RATE < lbl_1_bss_128) {
var_r31->work[0] += 1;
fn_1_6CB0(fn_1_9074, 2);
HuAudFXPlay(0x7BB);
@ -7433,7 +7433,7 @@ void fn_1_24620(omObjData *var_r31)
}
break;
case 0x3FC:
var_f31 = lbl_1_bss_128 / 120.0f;
var_f31 = lbl_1_bss_128 / (2 * REFRESH_RATE);
if (1.0f < var_f31) {
var_f31 = 1.0f;
}
@ -7442,7 +7442,7 @@ void fn_1_24620(omObjData *var_r31)
Hu3DModelRotSet(lbl_1_bss_1A0->model[5], 0.0f, 90.0f, 0.0f);
Hu3DModelPosSet(lbl_1_bss_1A0->model[5], var_r30->unk_30[3].x, var_r30->unk_30[3].y, var_r30->unk_30[3].z);
Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[5], var_f31);
fn_1_23CA0(var_r31, 270.0f, 120.0f);
fn_1_23CA0(var_r31, 270.0f, 2 * REFRESH_RATE);
break;
case 0x3FD:
case 0x3FE:
@ -7493,7 +7493,7 @@ void fn_1_24620(omObjData *var_r31)
}
break;
case 0x406:
fn_1_23CA0(var_r31, 270.0f, 120.0f);
fn_1_23CA0(var_r31, 270.0f, 2 * REFRESH_RATE);
break;
case 0x407:
lbl_1_bss_128 += 1.0f;
@ -7516,7 +7516,7 @@ void fn_1_24620(omObjData *var_r31)
omVibrate(lbl_1_bss_120, 0xC, 6, 6);
lbl_1_bss_128 += 1.0f;
Hu3DModelPosSet(lbl_1_bss_1A0->model[17], 0.0f, -(2.0f * lbl_1_bss_128), 0.0f);
if (120.0f < lbl_1_bss_128) {
if (2 * REFRESH_RATE < lbl_1_bss_128) {
var_r31->work[0] += 1;
fn_1_6CB0(fn_1_9824, 4);
HuAudFXPlay(0x7BB);
@ -7536,7 +7536,7 @@ void fn_1_24620(omObjData *var_r31)
}
break;
case 0x40E:
var_f31 = lbl_1_bss_128 / 120.0f;
var_f31 = lbl_1_bss_128 / (2 * REFRESH_RATE);
if (1.0f < var_f31) {
var_f31 = 1.0f;
}
@ -7545,7 +7545,7 @@ void fn_1_24620(omObjData *var_r31)
Hu3DModelRotSet(lbl_1_bss_1A0->model[16], 0.0f, -90.0f, 0.0f);
Hu3DModelPosSet(lbl_1_bss_1A0->model[16], var_r30->unk_30[8].x, var_r30->unk_30[8].y, var_r30->unk_30[8].z);
Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[16], var_f31);
fn_1_23CA0(var_r31, 270.0f, 120.0f);
fn_1_23CA0(var_r31, 270.0f, 2 * REFRESH_RATE);
break;
case 0x40F:
lbl_1_bss_20 = -1;
@ -7598,7 +7598,7 @@ void fn_1_24620(omObjData *var_r31)
lbl_1_bss_128 += 1.0f;
break;
case 0x417:
fn_1_23CA0(var_r31, 0.0f, 120.0f);
fn_1_23CA0(var_r31, 0.0f, 2 * REFRESH_RATE);
break;
case 0x418:
lbl_1_bss_128 += 1.0f;

View file

@ -223,20 +223,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2)
espBankSet(arg0[arg1 + 1], 10);
espBankSet(arg0[arg1 + 4], 11);
if (36000 <= arg2) {
arg2 = 35999;
if (600 * REFRESH_RATE <= arg2) {
arg2 = 600 * REFRESH_RATE - 1;
}
var_r30 = arg2 / 3600;
arg2 -= var_r30 * 3600;
var_r30 = arg2 / (60 * REFRESH_RATE);
arg2 -= var_r30 * (60 * REFRESH_RATE);
if (var_r30 > 9) {
var_r30 = 9;
}
espBankSet(arg0[arg1], var_r30);
var_r30 = arg2 / 60;
arg2 -= var_r30 * 60;
var_r30 = arg2 / REFRESH_RATE;
arg2 -= var_r30 * REFRESH_RATE;
espBankSet(arg0[arg1 + 2], var_r30 / 10);
espBankSet(arg0[arg1 + 3], var_r30 % 10);
var_r30 = 101.5f * arg2 / 60.0f;
var_r30 = 101.5f * arg2 / REFRESH_RATE;
espBankSet(arg0[arg1 + 5], var_r30 / 10);
espBankSet(arg0[arg1 + 6], var_r30 % 10);
}

View file

@ -10,6 +10,7 @@
#include "dolphin.h"
#include "math.h"
#include "version.h"
#define RECORD_TYPE_BOARD 0
#define RECORD_TYPE_MG 1
@ -572,7 +573,7 @@ static void ShowBoard(omObjData *object, s32 board)
espPosSet(work->sprList[board], 275.0f, 72.0f);
value = work->boardRecord[work->board].playCount;
for (i = 0; i < PLAY_COUNT_NUM_DIGITS; i++) {
espPosSet(work->sprList[i + 11], 323.0f + 20.0f * i, 116.0f);
espPosSet(work->sprList[i + 11], (VERSION_NTSC ? 323.0f : 392.0f) + 20.0f * i, 116.0f);
if (value > 999) {
espBankSet(work->sprList[i + 11], i + 10);
}
@ -583,7 +584,7 @@ static void ShowBoard(omObjData *object, s32 board)
espPosSet(work->sprList[8], 416.0f, 120.0f);
value = work->boardRecord[work->board].maxCoins;
for (i = 0; i < MAX_COINS_NUM_DIGITS; i++) {
espPosSet(work->sprList[i + 15], 364.0f + 20.0f * i, 268.0f);
espPosSet(work->sprList[i + 15], (VERSION_NTSC ? 364.0f : 392.0f) + 20.0f * i, 268.0f);
if (value > 999) {
espBankSet(work->sprList[i + 15], i + 10);
}
@ -591,10 +592,12 @@ static void ShowBoard(omObjData *object, s32 board)
espBankSet(work->sprList[i + 15], GetDigit(value, 3 - i));
}
}
#if VERSION_NTSC
espPosSet(work->sprList[9], 456.0f, 268.0f);
#endif
value = work->boardRecord[work->board].maxStars;
for (i = 0; i < MAX_STARS_NUM_DIGITS; i++) {
espPosSet(work->sprList[i + 19], 364.0f + 20.0f * i, 312.0f);
espPosSet(work->sprList[i + 19], (VERSION_NTSC ? 364.0f : 392.0f) + 20.0f * i, 312.0f);
if (value > 999) {
espBankSet(work->sprList[i + 19], i + 10);
}
@ -602,7 +605,9 @@ static void ShowBoard(omObjData *object, s32 board)
espBankSet(work->sprList[i + 19], GetDigit(value, 3 - i));
}
}
#if VERSION_NTSC
espPosSet(work->sprList[10], 456.0f, 312.0f);
#endif
for (i = 0; i < NUM_CHARACTERS; i++) {
espPosSet(work->sprList[i + 49], 92.0f + 50.0f * i, 200.0f);
for (j = 0; j < WIN_COUNT_NUM_DIGITS; j++) {
@ -616,11 +621,15 @@ static void ShowBoard(omObjData *object, s32 board)
for (i = 0; i < PLAY_COUNT_NUM_DIGITS; i++) {
espDispOn(work->sprList[i + 11]);
}
#if VERSION_NTSC
espDispOn(work->sprList[8]);
#endif
for (i = 0; i < MAX_COINS_NUM_DIGITS; i++) {
espDispOn(work->sprList[i + 15]);
}
#if VERSION_NTSC
espDispOn(work->sprList[9]);
#endif
for (i = 0; i < MAX_STARS_NUM_DIGITS; i++) {
espDispOn(work->sprList[i + 19]);
}
@ -759,14 +768,14 @@ static void ShowMG(omObjData *object, s32 page)
}
break;
case DISPLAY_TYPE_TIME:
timeMin = value / 3600;
timeSec = (value % 3600) / 60;
timeCenti = (value % 3600) % 60;
timeMin = value / (60 * REFRESH_RATE);
timeSec = (value % (60 * REFRESH_RATE)) / REFRESH_RATE;
timeCenti = (value % (60 * REFRESH_RATE)) % REFRESH_RATE;
if (mgTbl[mg].id == 405 || mgTbl[mg].id == 432) {
timeCenti *= 1.6916667f;
timeCenti *= (101.5f / REFRESH_RATE);
}
else {
timeCenti *= 1.6666666f;
timeCenti *= (100.0f / REFRESH_RATE);
}
for (j = 1; j < MG_TIME_NUM_DIGITS; j++) {
espPosSet(work->sprList[i * 8 + 89 + j], 336.0f + 16.0f * j, 116.0f + 40.0f * i);

View file

@ -5,6 +5,8 @@
#include "game/process.h"
#include "game/sprite.h"
#include "version.h"
static void ExecWindow(void);
OptionWindow *OptionWinCreate(s32 id)
@ -33,13 +35,13 @@ OptionWindow *OptionWinCreate(s32 id)
HuWinMesSpeedSet(work->window, 0);
break;
case 2:
work->window = HuWinExCreateStyled(-10000.0f, 88.0f, 224, 34, -1, 0);
work->window = HuWinExCreateStyled(-10000.0f, 88.0f, VERSION_NTSC ? 224 : 320, 34, -1, 0);
HuWinAttrSet(work->window, 0x800);
HuWinBGTPLvlSet(work->window, 0.0f);
HuWinMesSpeedSet(work->window, 0);
break;
case 3:
work->window = HuWinExCreateStyled(175.0f, 100.0f, 300, 34, -1, 0);
work->window = HuWinExCreateStyled(175.0f, 100.0f, VERSION_NTSC ? 300 : 320, 34, -1, 0);
HuWinBGTPLvlSet(work->window, 0.0f);
HuWinMesSpeedSet(work->window, 0);
break;