Merge branch 'mariopartyrd:main' into main

This commit is contained in:
CreateSource 2024-12-29 14:32:56 -05:00 committed by GitHub
commit 5206436632
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
82 changed files with 15979 additions and 6067 deletions

View file

@ -94,6 +94,7 @@ s32 lbl_1_bss_1C;
u32 lbl_1_bss_18;
s32 lbl_1_bss_14;
s32 lbl_1_bss_10;
s32 lbl_1_bss_C;
s32 lbl_1_bss_8;
s32 lbl_1_bss_4;
Process* lbl_1_bss_0;

2987
src/REL/m419Dll/main.c Executable file

File diff suppressed because it is too large Load diff

1887
src/REL/m422Dll/main.c Executable file

File diff suppressed because it is too large Load diff

View file

@ -2396,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, 2 * REFRESH_RATE, 6, 6);
omVibrate(temp_r30->unk114, 2 * REFRESH_RATE, 6, 6);
omVibrate(temp_r31->unk114, (VERSION_JP ? 3 : 2) * REFRESH_RATE, 6, 6);
omVibrate(temp_r30->unk114, (VERSION_JP ? 3 : 2) * REFRESH_RATE, 6, 6);
}
void fn_1_B754(float *arg0, float arg1, float arg2, s32 arg3)

4271
src/REL/m435Dll/main.c Executable file

File diff suppressed because it is too large Load diff

View file

@ -322,7 +322,7 @@ void fn_1_195F4(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 a
fn_1_1906C(arg0, arg1, arg2, arg3, arg4, arg5, arg6, 1, 1);
}
void fn_1_19658(omObjData* arg0, s32 arg1, s32 arg2, float arg3) {
void fn_1_19658(omObjData* arg0, s32 arg1, float arg2, s32 arg3) {
float var_f31;
float var_f30;
@ -332,7 +332,7 @@ void fn_1_19658(omObjData* arg0, s32 arg1, s32 arg2, float arg3) {
} else if (var_f31 >= 360.0f) {
var_f31 -= 360.0f;
}
var_f30 = arg3;
var_f30 = arg2;
if (var_f30 < 0.0f) {
var_f30 += 360.0f;
} else if (var_f30 >= 360.0f) {
@ -353,7 +353,7 @@ void fn_1_19658(omObjData* arg0, s32 arg1, s32 arg2, float arg3) {
var_f31 += 360.0f;
}
}
var_f31 = (var_f30 + var_f31 * (arg2 - 1)) / arg2;
var_f31 = (var_f30 + var_f31 * (arg3 - 1)) / arg3;
if (arg1 == 0) {
arg0->rot.y = var_f31;
} else {
@ -393,7 +393,7 @@ void fn_1_19960(StructFn19894* arg0, s32 arg1) {
arg0->unk464 = arg1;
}
void fn_1_19968(StructFn19894* arg0) {
void fn_1_19968(StructFn19894* arg0, s32 arg1) {
arg0->unk464 = -1;
}
@ -526,7 +526,7 @@ void fn_1_1A33C(Process* arg0, StructFn19894* arg1, s32 arg2, char* arg3, s32 ar
fn_1_19974(arg1, 1);
arg1->unk08 = arg2;
strcpy(arg1->unk10, arg3);
fn_1_19968(arg1);
fn_1_19968(arg1, -1);
fn_1_198F8(arg1, -1);
arg1->unk470 = 5.0f;
arg1->unk474 = 10000.0f;

View file

@ -128,6 +128,9 @@ void ObjectSetup(void)
lbl_1_bss_30C = omAddObjEx(lbl_1_bss_308, 32730, 0, 0, -1, fn_1_6EDC);
omAddObjEx(lbl_1_bss_308, 0, 32, 32, -1, fn_1_7290);
Hu3DBGColorSet(0, 0, 0);
#if VERSION_JP
GWGameStat.language = 0;
#endif
HuWinInit(1);
BoardStatusCreate();
}

969
src/REL/m456Dll/main.c Normal file
View file

@ -0,0 +1,969 @@
#include "ext_math.h"
#include "game/audio.h"
#include "game/chrman.h"
#include "game/gamework.h"
#include "game/gamework_data.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/memory.h"
#include "game/minigame_seq.h"
#include "game/object.h"
#include "game/objsub.h"
#include "game/pad.h"
#include "game/sprite.h"
#include "game/wipe.h"
#include "string.h"
#include "REL/m456Dll.h"
#include "version.h"
#ifndef __MWERKS__
#include "game/esprite.h"
#include "game/frand.h"
#endif
typedef struct M456DllMainWork {
struct {
u8 unk_00_field0 : 1;
u8 unk_00_field1 : 1;
u8 unk_00_field2 : 1;
u8 unk_00_field3 : 1;
};
s16 unk_02;
s16 unk_04;
s8 unk_06;
s8 unk_07;
u16 unk_08;
u16 unk_0A;
s32 unk_0C;
s32 unk_10;
s16 unk_14;
s16 unk_16;
s16 unk_18;
s16 unk_1A;
char unk1C[4];
s32 unk_20;
s32 unk_24;
s16 unk_28;
s16 unk_2A;
s16 unk_2C;
s16 unk_2E;
s16 unk_30;
} M456DllMainWork; /* size = 0x34 */
typedef struct M456DllData0Struct {
/* 0x00 */ float unk_00;
/* 0x04 */ float unk_04;
/* 0x08 */ float unk_08;
/* 0x0C */ float unk_0C;
/* 0x10 */ float unk_10;
/* 0x14 */ float unk_14;
/* 0x18 */ float unk_18;
} M456DllData0Struct; /* size = 0x1C */
typedef struct M456DllData1B0Struct {
/* 0x00 */ u32 unk_00;
/* 0x04 */ s32 unk_04;
} M456DllData1B0Struct; /* size = 0x08 */
typedef struct M456DllDataE4Struct {
/* 0x00 */ s32 unk_00;
/* 0x04 */ u32 unk_04;
} M456DllDataE4Struct; /* size = 0x08 */
typedef struct M456DllBss18Struct {
s32 unk_00;
s32 unk_04;
s32 unk_08;
float unk_0C;
float unk_10;
s32 unk_14;
s32 unk_18;
float unk_1C;
s16 unk_20[0x10];
} M456DllBss18Struct; /* size 0x40 */
void fn_1_1304(omObjData *object);
void fn_1_2040(omObjData *object);
float fn_1_2090(float arg8, float arg9, float argA);
void fn_1_2194(Process *process);
void fn_1_21F8(s32 arg0, s32 arg1, float arg8);
void fn_1_2448(omObjData *object);
void fn_1_2918(Process *process);
void fn_1_2AC4(omObjData *object);
void fn_1_3C0(omObjData *object);
void fn_1_498(omObjData *);
void fn_1_BE4(omObjData *);
void fn_1_C40(Process *process);
void fn_1_CC4(void);
s32 fn_1_D2C(void);
s32 fn_1_F4C(void);
void fn_1_FD0(omObjData *object);
M456DllData0Struct lbl_1_data_0[2] = {
{ 500.0f, 0.0f, 1000.0f, 0.0f, 40.0f, 0.0f, 0.0f },
{ 1985.0f, 0.0f, 100.0f, 100.0f, -13.0f, 0.0f, 0.0f },
};
Vec lbl_1_data_38 = { 700.0f, 2500.0f, -700.0f };
Vec lbl_1_data_44 = { 0.0f, 0.0f, 0.0f };
GXColor lbl_1_data_50 = { 0xFF, 0xFF, 0xFF, 0xFF };
Vec lbl_1_data_54 = { 200.0f, 15000.0f, -200.0f };
Vec lbl_1_data_60 = { 0.0f, 1.0f, 0.0f };
omObjData *lbl_1_bss_8C;
omObjData *lbl_1_bss_88;
omObjData *lbl_1_bss_84;
s32 lbl_1_bss_80;
s32 lbl_1_bss_70[4];
s32 lbl_1_bss_6C;
s32 lbl_1_bss_68;
s32 lbl_1_bss_64;
s16 lbl_1_bss_62;
s16 lbl_1_bss_60;
u32 lbl_1_bss_5C;
u32 lbl_1_bss_58;
M456DllBss18Struct lbl_1_bss_18;
u32 lbl_1_bss_14;
Vec lbl_1_bss_8;
s16 lbl_1_bss_6;
s16 lbl_1_bss_4;
s32 lbl_1_bss_0;
void ObjectSetup(void)
{
Process *var_r31;
CameraData *var_r30;
s16 var_r29;
var_r30 = Hu3DCamera;
OSReport("******* M456ObjectSetup *********\n");
var_r31 = omInitObjMan(0x32, 0x2000);
omGameSysInit(var_r31);
Hu3DCameraCreate(1);
Hu3DCameraPerspectiveSet(1, -1.0f, 20.0f, 25000.0f, 1.2f);
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
lbl_1_bss_88 = omAddObjEx(var_r31, 0x7FDA, 0, 0, -1, omOutView);
lbl_1_bss_8.x = lbl_1_data_44.x - lbl_1_data_38.x;
lbl_1_bss_8.y = lbl_1_data_44.y - lbl_1_data_38.y;
lbl_1_bss_8.z = lbl_1_data_44.z - lbl_1_data_38.z;
PSVECNormalize(&lbl_1_bss_8, &lbl_1_bss_8);
var_r29 = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50);
Hu3DGLightInfinitytSet(var_r29);
Hu3DGLightStaticSet(var_r29, 1);
Hu3DShadowCreate(10.0f, var_r30->near, var_r30->far);
Hu3DShadowTPLvlSet(0.7f);
Hu3DShadowPosSet(&lbl_1_data_54, &lbl_1_data_60, &lbl_1_data_44);
HuAudSndGrpSet(0x4E);
lbl_1_bss_84 = omAddObjEx(var_r31, 0, 0, 0, -1, fn_1_3C0);
fn_1_2194(var_r31);
fn_1_C40(var_r31);
fn_1_2DF4(var_r31);
lbl_1_bss_5C = GWMGRecordGet(0xA);
if (lbl_1_bss_5C == 0) {
lbl_1_bss_5C = 5 * REFRESH_RATE;
}
lbl_1_bss_58 = 0;
fn_1_2918(var_r31);
lbl_1_bss_18.unk_14 = lbl_1_bss_5C;
lbl_1_bss_18.unk_00 = 1;
lbl_1_bss_18.unk_0C = 536.0f;
}
s32 lbl_1_data_90 = -1;
s32 lbl_1_data_94 = -1;
void fn_1_3A0(u32 arg0)
{
lbl_1_bss_80 = arg0;
}
s32 fn_1_3B0(void)
{
return lbl_1_bss_80;
}
void fn_1_3C0(omObjData *object)
{
CameraData *var_r31 = Hu3DCamera;
fn_1_3A0(0);
lbl_1_bss_6C = REFRESH_RATE;
lbl_1_bss_70[0] = lbl_1_bss_70[1] = lbl_1_bss_70[2] = lbl_1_bss_70[3] = -1;
lbl_1_bss_62 = 5;
lbl_1_bss_60 = REFRESH_RATE;
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x3C);
var_r31->fov = 30.0f;
object->func = fn_1_498;
}
void fn_1_498(omObjData *object)
{
s16 sp8[4];
s32 var_r31;
omObjData **var_r29;
M456DllMainWork *var_r28;
switch (fn_1_3B0()) {
case 0:
if (lbl_1_data_94 < 0) {
lbl_1_data_94 = HuAudFXPlay(0x7D1);
}
if (--lbl_1_bss_6C == 0) {
fn_1_3A0(1);
lbl_1_bss_6C = 2 * REFRESH_RATE;
}
break;
case 1:
if (--lbl_1_bss_6C == 0) {
fn_1_3A0(2);
lbl_1_bss_6 = MGSeqCreate(3, 0);
}
break;
case 2:
if (MGSeqStatGet(lbl_1_bss_6) == 0) {
fn_1_3A0(3);
lbl_1_bss_4 = MGSeqCreate(1, 5, -1, -1);
}
if ((lbl_1_data_90 < 0) && ((MGSeqStatGet(lbl_1_bss_6) & 0x10) != 0)) {
lbl_1_data_90 = HuAudSeqPlay(0x43);
}
break;
case 3:
if (--lbl_1_bss_60 == 0) {
lbl_1_bss_62--;
MGSeqParamSet(lbl_1_bss_4, 1, lbl_1_bss_62);
lbl_1_bss_60 = REFRESH_RATE;
}
if (lbl_1_bss_62 == 0) {
lbl_1_bss_64 = fn_1_D2C();
if (lbl_1_bss_64 == 0) {
fn_1_3A0(5);
lbl_1_bss_6 = MGSeqCreate(3, 1);
HuAudSeqFadeOut(lbl_1_data_90, 0x64);
}
else {
fn_1_3A0(4);
HuAudFXPlay(0x11);
lbl_1_bss_6C = 2 * REFRESH_RATE;
}
}
break;
case 4:
if (lbl_1_bss_4 >= 0) {
MGSeqParamSet(lbl_1_bss_4, 2, -1);
lbl_1_bss_4 = -1;
}
if (lbl_1_bss_6C != 0) {
lbl_1_bss_6C--;
}
else if (lbl_1_bss_18.unk_18 < lbl_1_bss_14) {
lbl_1_bss_18.unk_18++;
}
if (fn_1_F4C() != 0) {
fn_1_3A0(5);
lbl_1_bss_6 = MGSeqCreate(3, 1);
HuAudSeqFadeOut(lbl_1_data_90, 0x64);
}
break;
case 5:
if (lbl_1_bss_4 >= 0) {
MGSeqParamSet(lbl_1_bss_4, 2, -1);
lbl_1_bss_4 = -1;
}
if (MGSeqStatGet(lbl_1_bss_6) == 0) {
if (lbl_1_bss_58 == 0) {
fn_1_3A0(9);
lbl_1_bss_6C = 2 * REFRESH_RATE;
}
else {
fn_1_3A0(6);
lbl_1_bss_6 = MGSeqCreate(0xE, lbl_1_bss_58);
GWMGRecordSet(0xA, lbl_1_bss_58);
lbl_1_bss_18.unk_04 = 1;
lbl_1_bss_18.unk_14 = lbl_1_bss_18.unk_18;
}
}
break;
case 6:
if (MGSeqStatGet(lbl_1_bss_6) == 0) {
fn_1_3A0(9);
lbl_1_bss_6C = 2 * REFRESH_RATE;
}
break;
case 9:
if (lbl_1_bss_6C != 0) {
lbl_1_bss_6C--;
}
if (lbl_1_bss_6C == 0) {
if (fn_1_F4C() != 0) {
fn_1_3A0(0xB);
if (lbl_1_bss_64 != 0) {
var_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0);
for (var_r31 = 0; var_r31 < lbl_1_bss_64; var_r31++) {
var_r28 = var_r29[lbl_1_bss_70[var_r31]]->data;
sp8[var_r31] = var_r28->unk_14;
GWPlayerCoinWinSet(lbl_1_bss_70[var_r31], 10);
}
for (; var_r31 < 4; var_r31++) {
sp8[var_r31] = -1;
}
lbl_1_bss_6 = MGSeqCreate(5, 3, sp8[0], sp8[1], sp8[2], sp8[3]);
HuAudSStreamPlay(1);
}
else {
lbl_1_bss_6 = MGSeqCreate(3, 2);
HuAudSStreamPlay(4);
}
lbl_1_bss_6C = 3.5 * REFRESH_RATE;
}
}
break;
case 11:
if (--lbl_1_bss_6C == 0) {
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C);
HuAudFXStop(lbl_1_data_94);
object->func = fn_1_BE4;
}
break;
}
if ((omSysExitReq != 0) && (WipeStatGet() == 0)) {
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C);
object->func = fn_1_BE4;
}
}
void fn_1_BE4(omObjData *object)
{
if (WipeStatGet() == 0) {
fn_1_CC4();
fn_1_2F3C();
MGSeqKillAll();
HuAudFadeOut(1);
omOvlReturnEx(1, 1);
OSReport("******* M456Exit *********\n");
}
}
void fn_1_C40(Process *process)
{
s32 var_r31;
lbl_1_bss_68 = 0;
omMakeGroupEx(process, 0, 4);
for (var_r31 = 0; var_r31 < 4; var_r31++) {
omAddObjEx(process, 5, 0xA, 0x32, 0, fn_1_FD0);
}
}
void fn_1_CC4(void)
{
s32 var_r31;
omObjData **var_r30;
var_r30 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0);
if (var_r30 != NULL) {
for (var_r31 = 0; var_r31 < 4; var_r31++) {
fn_1_2040(var_r30[var_r31]);
}
}
}
s32 fn_1_D2C(void)
{
s32 sp8[4];
s32 var_r31;
M456DllMainWork *var_r30;
s32 var_r29;
u32 var_r28;
omObjData **var_r27;
var_r29 = 0;
var_r28 = 0;
var_r27 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0);
for (var_r31 = 0; var_r31 < 4; var_r31++) {
var_r30 = var_r27[var_r31]->data;
if ((var_r30->unk_30 != 0) && (var_r30->unk_30 < 5)) {
var_r30->unk_30 = 5;
}
if (var_r30->unk_30 > var_r28) {
var_r28 = var_r30->unk_30;
var_r29 = 0;
sp8[var_r29++] = var_r31;
}
else if (var_r30->unk_30 == var_r28) {
sp8[var_r29++] = var_r31;
}
}
if (var_r28 == 0) {
lbl_1_bss_70[var_r31] = -1;
return 0;
}
lbl_1_bss_14 = (var_r28 * REFRESH_RATE) / 5;
for (var_r31 = 0; var_r31 < var_r29; var_r31++) {
if (GWPlayerCfg[sp8[var_r31]].iscom == 0) {
break;
}
}
if (var_r31 < var_r29) {
if (lbl_1_bss_14 > lbl_1_bss_5C) {
lbl_1_bss_58 = lbl_1_bss_14;
}
if (lbl_1_bss_14 >= 7.5f * REFRESH_RATE) {
GWGameStat.present[0x33] = 1;
}
}
for (var_r31 = 0; var_r31 < var_r29; var_r31++) {
lbl_1_bss_70[var_r31] = sp8[var_r31];
}
return var_r29;
}
s32 fn_1_F4C(void)
{
s32 var_r31;
omObjData **var_r30;
M456DllMainWork *var_r29;
var_r30 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0);
for (var_r31 = 0; var_r31 < 4; var_r31++) {
var_r29 = var_r30[var_r31]->data;
if (var_r29->unk_00_field2 == 0) {
return 0;
}
}
return 1;
}
M456DllDataE4Struct lbl_1_data_E4[0xA] = {
{ 0x5F0000, 0 },
{ 0x55001C, 1 },
{ 0x550024, 1 },
{ 0x55002C, 1 },
{ 0x550034, 1 },
{ 0x5F002A, 0 },
{ 0x5F0005, 0 },
{ 0x5F0017, 0 },
{ 0x5F0018, 0 },
{ 0x55003C, 1 },
};
Vec lbl_1_data_134[4] = {
{ -300.0f, 0.0f, 0.0f },
{ -100.0f, 0.0f, 0.0f },
{ 100.0f, 0.0f, 0.0f },
{ 300.0f, 0.0f, 0.0f },
};
float lbl_1_data_164[8] = { -50.0f, -50.0f, -50.0f, -50.0f, -50.0f, -50.0f, -50.0f, -50.0f };
u16 lbl_1_data_184[2] = { 0x40, 0x20 };
void fn_1_FD0(omObjData *object)
{
M456DllMainWork *var_r31;
u32 var_r29;
s32 var_r28;
s32 var_r27;
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M456DllMainWork), MEMORY_DEFAULT_NUM);
object->data = var_r31;
memset(var_r31, 0, sizeof(M456DllMainWork));
var_r31->unk_02 = lbl_1_bss_68++;
var_r31->unk_04 = GWPlayerCfg[var_r31->unk_02].pad_idx;
var_r27 = GWGameStat.rumble;
var_r31->unk_10 = var_r27;
var_r28 = GWPlayerCfg[var_r31->unk_02].character;
var_r31->unk_14 = var_r28;
var_r31->unk_16 = GWPlayerCfg[var_r31->unk_02].diff;
var_r31->unk_18 = GWPlayerCfg[var_r31->unk_02].group;
var_r31->unk_0C = -1;
object->model[0] = CharModelCreate(var_r28, 8);
Hu3DModelShadowSet(object->model[0]);
Hu3DModelLayerSet(object->model[0], 3);
Hu3DModelCameraSet(object->model[0], 1);
var_r31->unk_20 = 0;
for (var_r29 = 0; var_r29 < 0xA; var_r29++) {
if (lbl_1_data_E4[var_r29].unk_04 == 0) {
object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_14, lbl_1_data_E4[var_r29].unk_00);
}
else {
object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_14, var_r31->unk_14 + lbl_1_data_E4[var_r29].unk_00);
}
}
Hu3DMotionSet(object->model[0], object->motion[var_r31->unk_20]);
Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP);
CharModelVoiceEnableSet(var_r31->unk_14, object->motion[5], 0);
CharModelVoiceEnableSet(var_r31->unk_14, object->motion[6], 0);
var_r31->unk_2E = REFRESH_RATE;
object->trans.x = lbl_1_data_134[var_r31->unk_02].x;
object->trans.y = lbl_1_data_134[var_r31->unk_02].y;
object->trans.z = lbl_1_data_134[var_r31->unk_02].z;
object->rot.y = 0.0f;
CharModelDataClose(var_r31->unk_14);
object->func = fn_1_1304;
}
#if VERSION_PAL
#define fn_1_1288_COND (((var_r31->unk_16 + 4) * 60) / 50.0f)
#else
#define fn_1_1288_COND (var_r31->unk_16 + 4)
#endif
void fn_1_1288(omObjData *object)
{
M456DllMainWork *var_r31 = object->data;
if ((frand() & 0x3F) < fn_1_1288_COND) {
if (var_r31->unk_0C <= 0) {
var_r31->unk_0A |= 0x40;
return;
}
var_r31->unk_0A |= 0x20;
}
}
void fn_1_1304(omObjData *var_r30)
{
Vec sp14;
Vec sp8;
float var_f31;
M456DllMainWork *var_r31;
s32 var_r29;
u32 var_r28;
void *var_r27;
s32 var_r26;
omObjData **var_r25;
s32 var_r24;
var_r31 = var_r30->data;
var_r29 = var_r31->unk_20;
var_r28 = var_r31->unk_24;
if (var_r31->unk_00_field0 == 0) {
var_r30->trans.y = fn_1_63AC();
}
if (fn_1_3B0() < 3) {
return;
}
switch (var_r31->unk_1A) {
case 0:
if (fn_1_3B0() == 5) {
var_r31->unk_00_field2 = 1;
var_r31->unk_1A = 6;
return;
}
if (fn_1_3B0() == 4) {
if (var_r31->unk_30 != 0) {
var_r31->unk_1A = 1;
var_r31->unk_28 = REFRESH_RATE;
}
else {
var_r31->unk_1A = 6;
var_r31->unk_00_field2 = 1;
}
return;
}
if (GWPlayerCfg[var_r31->unk_02].iscom == 0) {
var_r31->unk_06 = HuPadStkX[var_r31->unk_04];
var_r31->unk_07 = HuPadStkY[var_r31->unk_04];
var_r31->unk_08 = HuPadBtn[var_r31->unk_04];
var_r31->unk_0A = HuPadBtnDown[var_r31->unk_04] & 0xFFFF9FFF;
}
else {
var_r31->unk_08 = var_r31->unk_0A = 0;
var_r31->unk_06 = var_r31->unk_07 = 0;
fn_1_1288(var_r30);
}
if (var_r31->unk_2C != 0) {
if (--var_r31->unk_2C == 0) {
var_r29 = 0;
var_r28 = 0x40000001;
}
}
if ((var_r31->unk_0A & 0x60) != 0) {
if (var_r31->unk_0C < 0) {
var_r31->unk_0C = (var_r31->unk_0A & 0x40) ? 0 : 1;
}
if (((var_r31->unk_0A & lbl_1_data_184[var_r31->unk_0C]) != 0) && ((var_r31->unk_0A & ~lbl_1_data_184[var_r31->unk_0C]) == 0)) {
var_r31->unk_30++;
var_r31->unk_2C = var_r31->unk_2E;
var_r29 = 1;
var_r28 = 0x40000001;
var_r31->unk_0C ^= 1;
}
}
break;
case 1:
if (--var_r31->unk_28 == 0) {
var_r31->unk_00_field0 = 1;
var_r31->unk_1A = 2;
var_r31->unk_28 = var_r31->unk_2A = REFRESH_RATE;
}
var_r29 = 2;
var_r28 = 0;
break;
case 2:
var_r29 = 3;
var_r28 = 0;
if (var_r31->unk_28 < (var_r31->unk_2A - 0xF)) {
var_f31 = (float)var_r31->unk_28 / (var_r31->unk_2A - 0xF);
var_r30->trans.y = -300.0 * cosd((270.0f * var_f31));
var_r30->trans.z = 400.0f + (-400.0f * var_f31);
if ((var_r31->unk_00_field1 == 0) && (var_f31 < 0.35f)) {
var_r31->unk_00_field1 = 1;
fn_1_67E0(&var_r30->trans, -1.0f);
fn_1_61C8(&var_r30->trans, -1.0f, -1.0f, -1);
fn_1_7F78();
HuAudFXPlay(0x7D2);
}
}
if (--var_r31->unk_28 == 0) {
var_r30->trans.y = -300.0f;
var_r30->trans.z = 400.0f;
var_r31->unk_1A = 3;
var_r31->unk_28 = (var_r31->unk_30 * REFRESH_RATE) / 5;
for (var_r26 = 0; var_r26 < lbl_1_bss_64; var_r26++) {
if (var_r31->unk_02 == lbl_1_bss_70[var_r26]) {
break;
}
}
if (var_r26 < lbl_1_bss_64) {
var_r31->unk_00_field3 = 1;
var_r31->unk_28 -= VERSION_PAL ? 16.5f : 19.800001f;
}
else {
var_r31->unk_28 -= 0.8f * REFRESH_RATE;
}
var_r31->unk_2A = var_r31->unk_28;
}
break;
case 3:
var_r29 = 5;
var_r28 = 0x40000001;
if (var_r31->unk_28 < 1.0f * REFRESH_RATE) {
if ((frand() & 3) == 0) {
sp14.x = var_r30->trans.x;
sp14.y = 100.0f + var_r30->trans.y;
sp14.z = var_r30->trans.z;
fn_1_74F8(&sp14, -1.0f);
}
}
else if ((frand() & 0xF) == 0) {
sp14.x = var_r30->trans.x;
sp14.y = 100.0f + var_r30->trans.y;
sp14.z = var_r30->trans.z;
fn_1_74F8(&sp14, -1.0f);
}
if (--var_r31->unk_28 == 0) {
var_r31->unk_00_field1 = 0;
if (var_r31->unk_00_field3 == 0) {
var_r31->unk_1A = 4;
var_r31->unk_28 = var_r31->unk_2A = REFRESH_RATE / 1.25;
}
else {
var_r31->unk_1A = 5;
var_r31->unk_28 = var_r31->unk_2A = REFRESH_RATE;
}
}
break;
case 4:
var_r29 = 4;
var_r28 = 0x40000001;
var_f31 = (float)var_r31->unk_28 / var_r31->unk_2A;
var_r30->trans.y = -300.0 * sind((90.0f * var_f31));
if ((frand() & 3) == 0) {
fn_1_74F8(&var_r30->trans, -1.0f);
}
if ((var_r31->unk_00_field1 == 0) && (var_f31 < 0.2f)) {
var_r31->unk_00_field1 = 1;
fn_1_67E0(&var_r30->trans, -1.0f);
fn_1_61C8(&var_r30->trans, -1.0f, -1.0f, -1);
HuAudFXPlay(0x7D3);
}
if (--var_r31->unk_28 == 0) {
var_r31->unk_00_field2 = 1;
var_r31->unk_1A = 6;
var_r30->trans.y = lbl_1_data_164[var_r31->unk_14];
}
break;
case 5:
var_r29 = 6;
var_r28 = 0;
var_f31 = (float)var_r31->unk_28 / var_r31->unk_2A;
var_r30->trans.y = -300.0 * -sind((270.0f * var_f31));
if ((var_r31->unk_00_field1 == 0) && (var_f31 < 0.7f)) {
var_r31->unk_00_field1 = 1;
fn_1_67E0(&var_r30->trans, 5.0f);
fn_1_61C8(&var_r30->trans, -1.0f, -1.0f, -1);
HuAudFXPlay(0x7D3);
HuAudCharVoicePlay(var_r31->unk_14, 0x125);
}
if (--var_r31->unk_28 == 0) {
var_r31->unk_00_field2 = 1;
var_r31->unk_1A = 6;
var_r30->trans.y = lbl_1_data_164[var_r31->unk_14];
fn_1_67E0(&var_r30->trans, -1.0f);
fn_1_61C8(&var_r30->trans, -1.0f, -1.0f, -1);
}
break;
case 6:
if (var_r31->unk_00_field0 == 0) {
var_r29 = 0;
}
else {
var_r29 = 5;
}
var_r28 = 0x40000001;
if ((fn_1_3B0() == 5) && (var_r31->unk_00_field3 == 0) && (lbl_1_bss_64 == 1)) {
var_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0);
PSVECSubtract(&var_r25[*lbl_1_bss_70]->trans, &var_r30->trans, &sp8);
var_r30->rot.y = fn_1_2090(var_r30->rot.y, atan2d(sp8.x, sp8.z), 0.1f);
}
if (fn_1_3B0() == 0xB) {
var_r31->unk_1A = 7;
if (var_r31->unk_00_field3 != 0) {
Hu3DMotionOverlaySet(var_r30->model[0], var_r30->motion[9]);
HuAudCharVoicePlay(var_r31->unk_14, 0x124);
}
}
break;
case 7:
if (var_r31->unk_00_field3 != 0) {
var_r29 = 5;
var_r28 = 0x40000001;
if (73.0f <= Hu3DMotionOverlayTimeGet(var_r30->model[0])) {
Hu3DMotionOverlayTimeSet(var_r30->model[0], 35.0f);
Hu3DModelAttrReset(var_r30->model[0], HU3D_MOTATTR_OVL_PAUSE);
}
}
else if (var_r31->unk_00_field0 == 0) {
var_r29 = 8;
var_r28 = 0;
}
break;
}
if ((var_r31->unk_00_field0 != 0) && (var_r31->unk_1A >= 6) && (var_r31->unk_1A <= 7) && ((frand() & 0x3F) == 0)) {
fn_1_61C8(&var_r30->trans, 0.3f, -1.0f, -1);
}
if ((var_r29 != var_r31->unk_20) || (var_r28 != var_r31->unk_24)) {
var_r31->unk_20 = var_r29;
var_r31->unk_24 = var_r28;
CharModelMotionShiftSet(var_r31->unk_14, var_r30->motion[var_r31->unk_20], 0.0f, 8.0f, var_r28);
}
}
void fn_1_2040(omObjData *object)
{
M456DllMainWork *sp8 = object->data;
if (object->data != NULL) {
HuMemDirectFree(object->data);
object->data = NULL;
}
}
float fn_1_2090(float var_f29, float sp8, float spC)
{
float var_f31;
float var_f30;
var_f31 = fmod(sp8 - var_f29, 360.0);
if (var_f31 < 0.0f) {
var_f31 += 360.0f;
}
if (var_f31 > 180.0f) {
var_f31 -= 360.0f;
}
var_f30 = fmod(var_f29 + (spC * var_f31), 360.0);
if (var_f30 < 0.0f) {
var_f30 += 360.0f;
}
return var_f30;
}
void fn_1_2194(Process *process)
{
fn_1_21F8(0, 0, 0.0f);
lbl_1_bss_8C = omAddObjEx(process, 0xA, 0, 0, -1, fn_1_2448);
}
void fn_1_21F8(s32 arg0, s32 arg1, float arg8)
{
CZoom = lbl_1_data_0[arg0].unk_00 + (arg8 * (lbl_1_data_0[arg1].unk_00 - lbl_1_data_0[arg0].unk_00));
Center.x = lbl_1_data_0[arg0].unk_04 + (arg8 * (lbl_1_data_0[arg1].unk_04 - lbl_1_data_0[arg0].unk_04));
Center.y = lbl_1_data_0[arg0].unk_08 + (arg8 * (lbl_1_data_0[arg1].unk_08 - lbl_1_data_0[arg0].unk_08));
Center.z = lbl_1_data_0[arg0].unk_0C + (arg8 * (lbl_1_data_0[arg1].unk_0C - lbl_1_data_0[arg0].unk_0C));
CRot.x = lbl_1_data_0[arg0].unk_10 + (arg8 * (lbl_1_data_0[arg1].unk_10 - lbl_1_data_0[arg0].unk_10));
CRot.y = lbl_1_data_0[arg0].unk_14 + (arg8 * (lbl_1_data_0[arg1].unk_14 - lbl_1_data_0[arg0].unk_14));
CRot.z = lbl_1_data_0[arg0].unk_18 + (arg8 * (lbl_1_data_0[arg1].unk_18 - lbl_1_data_0[arg0].unk_18));
}
float lbl_1_data_1A8[2] = { 0.0f, 0.0f };
void fn_1_2448(omObjData *object)
{
CameraData *sp8 = Hu3DCamera;
switch (fn_1_3B0()) {
case 1:
fn_1_21F8(0, 1, sind((90.0f * lbl_1_data_1A8[0])));
if (lbl_1_data_1A8[0] < 1.0f) {
lbl_1_data_1A8[0] += 1.0f / REFRESH_RATE;
if (lbl_1_data_1A8[0] > 1.0f) {
lbl_1_data_1A8[0] = 1.0f;
break;
}
}
break;
case 4:
case 5:
case 6:
case 7:
break;
case 8:
fn_1_21F8(1, 1, 0.0f);
break;
case 9:
break;
}
}
M456DllData1B0Struct lbl_1_data_1B0[0x10] = {
{ 0x550044, 0x10E },
{ 0x610037, 0xFA },
{ 0x610030, 0xFA },
{ 0x610030, 0xFA },
{ 0x610030, 0xFA },
{ 0x610030, 0xFA },
{ 0x610030, 0xFA },
{ 0x610030, 0xFA },
{ 0x610030, 0xFA },
{ 0x610031, 0xFA },
{ 0x610031, 0xFA },
{ 0x610031, 0xFA },
{ 0x610031, 0xFA },
{ 0x610031, 0xFA },
{ 0x610031, 0xFA },
{ 0x610031, 0xFA },
};
Vec2f lbl_1_data_230[0x17] = {
{ 0.0f, 0.0f },
{ -52.0f, -9.0f },
{ 53.0f, -8.0f },
{ 35.0f, -8.0f },
{ 9.0f, -8.0f },
{ -9.0f, -8.0f },
{ -31.0f, -8.0f },
{ 23.0f, -8.0f },
{ -17.0f, -8.0f },
{ 53.0f, 8.0f },
{ 35.0f, 8.0f },
{ 9.0f, 8.0f },
{ -9.0f, 8.0f },
{ -31.0f, 8.0f },
{ 23.0f, 8.0f },
{ -17.0f, 8.0f },
{ 355.0f, 0.0f },
{ 0.0f, 0.0f },
{ 275.0f, 128.0f },
{ 950.0f, 6.0f },
{ 0.0f, 0.0f },
{ 0.0f, 190.0f },
{ 0.0f, 550.0f },
};
void fn_1_2918(Process *sp8)
{
M456DllBss18Struct *var_r31;
s32 var_r30;
omObjData *var_r29;
var_r29 = omAddObjEx(sp8, 0x7FD9, 0, 0, -1, fn_1_2AC4);
var_r31 = &lbl_1_bss_18;
var_r29->data = var_r31;
memset(var_r31, 0, sizeof(M456DllBss18Struct));
var_r31->unk_14 = 60 * REFRESH_RATE;
var_r31->unk_0C = 320.0f;
var_r31->unk_10 = 64.0f;
var_r31->unk_1C = 1.0f;
for (var_r30 = 0; var_r30 < 0x10; var_r30++) {
var_r31->unk_20[var_r30] = -1;
if (lbl_1_data_1B0[var_r30].unk_00 != 0) {
var_r31->unk_20[var_r30] = espEntry(lbl_1_data_1B0[var_r30].unk_00, lbl_1_data_1B0[var_r30].unk_04, 0);
espAttrSet(var_r31->unk_20[var_r30], HUSPR_ATTR_LINEAR);
espDispOff(var_r31->unk_20[var_r30]);
}
}
espColorSet(var_r31->unk_20[0], 0, 0, 0);
espTPLvlSet(var_r31->unk_20[0], 0.699999988079071);
espBankSet(var_r31->unk_20[7], 0xB);
espBankSet(var_r31->unk_20[8], 0xA);
espBankSet(var_r31->unk_20[14], 0xB);
espBankSet(var_r31->unk_20[15], 0xA);
}
void fn_1_2AC4(omObjData *var_r26)
{
u32 sp8[3];
M456DllBss18Struct *var_r31;
s32 var_r30;
u32 var_r29;
s32 var_r28;
s32 var_r27;
var_r31 = var_r26->data;
for (var_r30 = 0; var_r30 < 0x10; var_r30++) {
if (var_r31->unk_20[var_r30] >= 0) {
if (var_r31->unk_00 == 0) {
espDispOff(var_r31->unk_20[var_r30]);
}
else {
espDispOn(var_r31->unk_20[var_r30]);
espPosSet(
var_r31->unk_20[var_r30], 0.9f * (var_r31->unk_0C + lbl_1_data_230[var_r30].x), var_r31->unk_10 + lbl_1_data_230[var_r30].y);
}
}
}
for (var_r30 = 0; var_r30 < 2; var_r30++) {
if (var_r30 != 0) {
var_r29 = var_r31->unk_18;
var_r27 = 9;
}
else {
var_r29 = var_r31->unk_14;
var_r27 = 2;
}
sp8[0] = var_r29 % REFRESH_RATE;
var_r29 = (var_r29 - sp8[0]) / REFRESH_RATE;
#if VERSION_PAL
sp8[0] = 100.0f * (sp8[0] / (float)REFRESH_RATE);
#else
sp8[0] = 100.0f * (1.0f / REFRESH_RATE * sp8[0]);
#endif
sp8[1] = var_r29 % 60;
var_r29 = (var_r29 - sp8[1]) / 60;
sp8[2] = var_r29;
for (var_r28 = 0; var_r28 < 3; var_r28++) {
espBankSet(var_r31->unk_20[var_r27++], sp8[var_r28] % 10);
if (var_r28 < 2) {
espBankSet(var_r31->unk_20[var_r27++], sp8[var_r28] / 10);
}
}
}
if (var_r31->unk_04 != 0) {
if (var_r31->unk_08 == 0) {
if ((var_r31->unk_1C += 0.02f) >= 1.2f) {
var_r31->unk_1C = 1.2f;
var_r31->unk_08 = 1;
}
}
else {
if ((var_r31->unk_1C -= 0.04f) <= 1.0f) {
var_r31->unk_1C = 1.0f;
var_r31->unk_08 = 0;
}
}
for (var_r30 = 1; var_r30 < 9; var_r30++) {
espScaleSet(var_r31->unk_20[var_r30], var_r31->unk_1C, var_r31->unk_1C);
}
}
}

File diff suppressed because it is too large Load diff

2138
src/REL/m459dll/main.c Normal file

File diff suppressed because it is too large Load diff

View file

@ -83,10 +83,28 @@ static s16 lbl_1_bss_7A8;
static s32 lbl_1_bss_7A4;
static AnimData *lbl_1_bss_7A0;
static s32 lbl_1_data_F08[] = { DATA_MAKE_NUM(DATADIR_BOARD, 109), DATA_MAKE_NUM(DATADIR_BOARD, 110), DATA_MAKE_NUM(DATADIR_BOARD, 111),
DATA_MAKE_NUM(DATADIR_BOARD, 112), DATA_MAKE_NUM(DATADIR_BOARD, 113), DATA_MAKE_NUM(DATADIR_BOARD, 114), DATA_MAKE_NUM(DATADIR_BOARD, 115),
DATA_MAKE_NUM(DATADIR_BOARD, 116), DATA_MAKE_NUM(DATADIR_BOARD, 118), DATA_MAKE_NUM(DATADIR_BOARD, 119), DATA_MAKE_NUM(DATADIR_BOARD, 120),
DATA_MAKE_NUM(DATADIR_BOARD, 121), DATA_MAKE_NUM(DATADIR_BOARD, 122), DATA_MAKE_NUM(DATADIR_BOARD, 123) };
#if VERSION_JP
#define MDL_ID_SHIFT 0
#else
#define MDL_ID_SHIFT 1
#endif
static s32 lbl_1_data_F08[] = {
DATA_MAKE_NUM(DATADIR_BOARD, 108 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 109 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 110 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 111 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 112 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 113 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 114 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 115 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 117 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 118 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 119 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 120 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 121 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 122 + MDL_ID_SHIFT),
};
static s32 lbl_1_data_F40[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 23), DATA_MAKE_NUM(DATADIR_PEACHMOT, 23),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 23), DATA_MAKE_NUM(DATADIR_WARIOMOT, 23), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 23),

View file

@ -10,21 +10,27 @@
#include "game/minigame_seq.h"
#if VERSION_JP
#define MDL_ID_SHIFT 0
#else
#define MDL_ID_SHIFT 1
#endif
s32 lbl_1_data_428[14] = {
DATA_MAKE_NUM(DATADIR_BOARD, 0x6D),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6E),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6F),
DATA_MAKE_NUM(DATADIR_BOARD, 0x70),
DATA_MAKE_NUM(DATADIR_BOARD, 0x71),
DATA_MAKE_NUM(DATADIR_BOARD, 0x72),
DATA_MAKE_NUM(DATADIR_BOARD, 0x73),
DATA_MAKE_NUM(DATADIR_BOARD, 0x74),
DATA_MAKE_NUM(DATADIR_BOARD, 0x76),
DATA_MAKE_NUM(DATADIR_BOARD, 0x77),
DATA_MAKE_NUM(DATADIR_BOARD, 0x78),
DATA_MAKE_NUM(DATADIR_BOARD, 0x79),
DATA_MAKE_NUM(DATADIR_BOARD, 0x7A),
DATA_MAKE_NUM(DATADIR_BOARD, 0x7B),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6C + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6D + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6E + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6F + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x70 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x71 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x72 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x73 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x75 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x76 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x77 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x78 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x79 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x7A + MDL_ID_SHIFT),
};
char *lbl_1_data_474[3] = { "item", "item1", "item2" };

View file

@ -106,21 +106,27 @@ s8 lbl_1_data_4E6[] = { 1, 1, 3, 3, 2, 2, 2, 1, 2, 3, 0, 4, 5, 0 };
char *lbl_1_data_508[] = { "item", "item1", "item2" };
#if VERSION_JP
#define MDL_ID_SHIFT 0
#else
#define MDL_ID_SHIFT 1
#endif
s32 lbl_1_data_514[] = {
DATA_MAKE_NUM(DATADIR_BOARD, 0x6D),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6E),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6F),
DATA_MAKE_NUM(DATADIR_BOARD, 0x70),
DATA_MAKE_NUM(DATADIR_BOARD, 0x71),
DATA_MAKE_NUM(DATADIR_BOARD, 0x72),
DATA_MAKE_NUM(DATADIR_BOARD, 0x73),
DATA_MAKE_NUM(DATADIR_BOARD, 0x74),
DATA_MAKE_NUM(DATADIR_BOARD, 0x76),
DATA_MAKE_NUM(DATADIR_BOARD, 0x77),
DATA_MAKE_NUM(DATADIR_BOARD, 0x78),
DATA_MAKE_NUM(DATADIR_BOARD, 0x79),
DATA_MAKE_NUM(DATADIR_BOARD, 0x7A),
DATA_MAKE_NUM(DATADIR_BOARD, 0x7B),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6C + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6D + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6E + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6F + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x70 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x71 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x72 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x73 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x75 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x76 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x77 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x78 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x79 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x7A + MDL_ID_SHIFT),
};
// BSS

View file

@ -913,7 +913,7 @@ static void fn_1_8A60(void) {
HuPrcVSleep();
}
fn_1_7300();
#if VERSION_NTSC
#if VERSION_ENG
sprintf(sp10, "%d", var_r29);
BoardWinCreate(2, MAKE_MESSID(32, 11), 9);
BoardWinInsertMesSet(MAKE_MESSID_PTR(sp10), 0);

View file

@ -45,21 +45,27 @@ static s32 lbl_1_data_534[] = {
0x00000468
};
#if VERSION_JP
#define MDL_ID_SHIFT 0
#else
#define MDL_ID_SHIFT 1
#endif
static s32 lbl_1_data_540[] = {
DATA_MAKE_NUM(DATADIR_BOARD, 109),
DATA_MAKE_NUM(DATADIR_BOARD, 110),
DATA_MAKE_NUM(DATADIR_BOARD, 111),
DATA_MAKE_NUM(DATADIR_BOARD, 112),
DATA_MAKE_NUM(DATADIR_BOARD, 113),
DATA_MAKE_NUM(DATADIR_BOARD, 114),
DATA_MAKE_NUM(DATADIR_BOARD, 115),
DATA_MAKE_NUM(DATADIR_BOARD, 116),
DATA_MAKE_NUM(DATADIR_BOARD, 118),
DATA_MAKE_NUM(DATADIR_BOARD, 119),
DATA_MAKE_NUM(DATADIR_BOARD, 120),
DATA_MAKE_NUM(DATADIR_BOARD, 121),
DATA_MAKE_NUM(DATADIR_BOARD, 122),
DATA_MAKE_NUM(DATADIR_BOARD, 123),
DATA_MAKE_NUM(DATADIR_BOARD, 108 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 109 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 110 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 111 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 112 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 113 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 114 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 115 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 117 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 118 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 119 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 120 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 121 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 122 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_W02, 24),
DATA_MAKE_NUM(DATADIR_W02, 25),
DATA_MAKE_NUM(DATADIR_W02, 26),

View file

@ -172,21 +172,27 @@ void fn_1_7400(void)
HuPrcEnd();
}
#if VERSION_JP
#define MDL_ID_SHIFT 0
#else
#define MDL_ID_SHIFT 1
#endif
s32 lbl_1_data_350[14] = {
DATA_MAKE_NUM(DATADIR_BOARD, 0x6D),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6E),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6F),
DATA_MAKE_NUM(DATADIR_BOARD, 0x70),
DATA_MAKE_NUM(DATADIR_BOARD, 0x71),
DATA_MAKE_NUM(DATADIR_BOARD, 0x72),
DATA_MAKE_NUM(DATADIR_BOARD, 0x73),
DATA_MAKE_NUM(DATADIR_BOARD, 0x74),
DATA_MAKE_NUM(DATADIR_BOARD, 0x76),
DATA_MAKE_NUM(DATADIR_BOARD, 0x77),
DATA_MAKE_NUM(DATADIR_BOARD, 0x78),
DATA_MAKE_NUM(DATADIR_BOARD, 0x79),
DATA_MAKE_NUM(DATADIR_BOARD, 0x7A),
DATA_MAKE_NUM(DATADIR_BOARD, 0x7B),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6C + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6D + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6E + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6F + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x70 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x71 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x72 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x73 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x75 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x76 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x77 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x78 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x79 + MDL_ID_SHIFT),
DATA_MAKE_NUM(DATADIR_BOARD, 0x7A + MDL_ID_SHIFT),
};
s16 lbl_1_data_388[92] = { 0, 1, -1, 2, 0, -1, 1, 2, 0, -1, 2, 1, 0, 2, -1, 1, 0, 2, 1, -1, 1, 2, -1, 0, 1, 2, 0, -1, 1, -1, 0, 2, 1, -1, 2, 0, 1, 0,

View file

@ -89,6 +89,12 @@ static s32 lbl_1_data_4CC[8] = {
0x000002E3
};
#if VERSION_JP
#define MDL_ID_SHIFT 0
#else
#define MDL_ID_SHIFT 1
#endif
static s32 lbl_1_data_4EC[] = {
DATA_MAKE_NUM(DATADIR_BKOOPA, 8),
DATA_MAKE_NUM(DATADIR_BKOOPA, 10),
@ -1036,7 +1042,7 @@ static void fn_1_C40C(void) {
BoardCameraMotionWait();
BoardCameraTargetModelSet(-1);
BoardModelRotYSet(lbl_1_data_498, var_f30);
lbl_1_data_4A0 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 99), NULL, 0);
lbl_1_data_4A0 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 98 + MDL_ID_SHIFT), NULL, 0);
BoardModelVisibilitySet(lbl_1_data_4A0, 0);
BoardModelLayerSet(lbl_1_data_4A0, 2);
var_r29 = BoardSpaceStarGet(lbl_1_bss_0->unk04 - 1);

View file

@ -1,8 +1,9 @@
#include "game/sprite.h"
#include "game/minigame_seq.h"
#include "game/sprite.h"
#include "REL/ztardll.h"
#if VERSION_ENG
s32 lbl_1_data_B0[0xC6] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x01), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x02),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x03), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x04), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x05),
@ -54,6 +55,55 @@ s32 lbl_1_data_B0[0xC6] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0B),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0C), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00) };
#elif VERSION_PAL
s32 lbl_1_data_B0[0x130] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0x00140025, 0x00140026, 0x00140027, 0x00140028, 0x00140029, 0x0014002A, 0x0014002B, 0x0014002C, 0x0014002D, 0x0014002E,
0x00140025, 0x00140025, 0x00140025, 0x0014002F, 0x00140025, 0x00140025, 0x00140025, 0x00140035, 0x00140036, 0x00140037, 0x00140038, 0x00140039,
0x0014003A, 0x0014003B, 0x0014003C, 0x0014003D, 0x0014003E, 0x0014003F, 0x00140040, 0x00140041, 0x00140042, 0x00140043, 0x00140044, 0x00140045,
0x00140046, 0x00140047, 0x00140048, 0x00140049, 0x0014004A, 0x0014004B, 0x0014004C, 0x0014004D, 0x0014004E, 0x00140043, 0x00140032, 0x00140043,
0x00140043, 0x00140043, 0x00140043, 0x0014004F, 0x00140050, 0x00140051, 0x00140052, 0x00140053, 0x00140054, 0x00140055, 0x00140056, 0x00140057,
0x00140058, 0x00140059, 0x0014005A, 0x0014005B, 0x0014005C, 0x0014005D, 0x0014005E, 0x0014005F, 0x00140060, 0x00140061, 0x00140062, 0x00140063,
0x00140064, 0x00140065, 0x00140066, 0x00140067, 0x00140068, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025,
0x00140025, 0x00140025, 0x0014002F, 0x00140033, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025,
0x00140025, 0x00140025, 0x00140025, 0x00140069, 0x0014006A, 0x0014006B, 0x0014006C, 0x0014006D, 0x0014006E, 0x0014006F, 0x00140070, 0x00140071,
0x00140072, 0x00140073, 0x00140074, 0x00140075, 0x00140076, 0x00140077, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025,
0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025,
0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025,
0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140030, 0x00140031, 0x00140025, 0x00140025, 0x0014008F, 0x0014008E, 0x00140025, 0x00140025,
0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140078, 0x00140079, 0x0014007A, 0x0014007B, 0x0014007C,
0x0014007D, 0x0014007E, 0x0014007F, 0x00140080, 0x00140081, 0x00140082, 0x00140083, 0x00140084, 0x00140085, 0x00140086, 0x00140087, 0x00140088,
0x00140089, 0x0014008A, 0x0014008B, 0x0014008C, 0x0014008D, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025,
0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025,
0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025,
0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025,
0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025,
0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025,
0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025 };
#else
s32 lbl_1_data_B0[0x132] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0x00150000, 0x00150001, 0x00150002, 0x00150003, 0x00150004, 0x00150005, 0x00150006, 0x00150007, 0x00150008, 0x00150009,
0x0013000A, 0x0013000A, 0x0013000A, 0x0015000A, 0x0013000A, 0x0013000A, 0x0013000A, 0x00130014, 0x00130015, 0x00130016, 0x00130017, 0x00130018,
0x00130019, 0x001500AE, 0x0013001B, 0x0013001C, 0x0013001D, 0x0013001E, 0x0013001F, 0x00130020, 0x00130021, 0x001500AF, 0x00130023, 0x00130024,
0x00130025, 0x00130026, 0x00130027, 0x00130028, 0x00130029, 0x0013002A, 0x0013002B, 0x0013002C, 0x0013002D, 0x00130022, 0x00130022, 0x00130022,
0x00130022, 0x00130022, 0x00130022, 0x0013002E, 0x0013002F, 0x00130030, 0x00130031, 0x00130032, 0x00130033, 0x00130034, 0x00130035, 0x00130036,
0x00130037, 0x00130038, 0x00130039, 0x0013003A, 0x0013003B, 0x0013003C, 0x0013003D, 0x0013003E, 0x0013003F, 0x00130040, 0x00130041, 0x00130042,
0x00130043, 0x00130044, 0x00130045, 0x00130046, 0x00130047, 0x0013000A, 0x0013000A, 0x0013000A, 0x0013000A, 0x0013000A, 0x0013000A, 0x0013000A,
0x0013000A, 0x0013000A, 0x0015000A, 0x0013000A, 0x0015008A, 0x0015008C, 0x0015008D, 0x0015008E, 0x0015008F, 0x00150090, 0x00150091, 0x00150092,
0x00150093, 0x00150094, 0x0013000A, 0x0015005E, 0x0015005F, 0x00150060, 0x00150061, 0x00150062, 0x00150063, 0x00150064, 0x00150065, 0x00150066,
0x00150067, 0x00150068, 0x00150069, 0x0015006A, 0x0015006B, 0x0015006C, 0x0015006D, 0x0015006E, 0x0015006F, 0x00150070, 0x00150071, 0x00150072,
0x00150073, 0x00150074, 0x00150075, 0x00150076, 0x00150077, 0x00150078, 0x00150079, 0x0015007A, 0x0015007B, 0x0015007C, 0x0015007D, 0x0015007E,
0x0015007F, 0x00150080, 0x00150081, 0x00150082, 0x00150083, 0x00150084, 0x00150085, 0x00150086, 0x00150087, 0x00150088, 0x00150089, 0x0015008B,
0x0013000A, 0x0013000A, 0x0013000A, 0x0013000A, 0x0015000B, 0x0015000C, 0x0013000A, 0x0013000A, 0x0015003A, 0x0015003C, 0x0015003D, 0x0015003E,
0x0015003F, 0x00150040, 0x00150041, 0x00150042, 0x00150043, 0x00150044, 0x0013000A, 0x0015000E, 0x0015000F, 0x00150010, 0x00150011, 0x00150012,
0x00150013, 0x00150014, 0x00150015, 0x00150016, 0x00150017, 0x00150018, 0x00150019, 0x0015001A, 0x0015001B, 0x0015001C, 0x0015001D, 0x0015001E,
0x0015001F, 0x00150020, 0x00150021, 0x00150022, 0x00150023, 0x00150024, 0x00150025, 0x00150026, 0x00150027, 0x00150028, 0x00150029, 0x0015002A,
0x0015002B, 0x0015002C, 0x0015002D, 0x0015002E, 0x0015002F, 0x00150030, 0x00150031, 0x00150032, 0x00150033, 0x00150034, 0x00150035, 0x00150036,
0x00150037, 0x00150038, 0x00150039, 0x0015003B, 0x0013000A, 0x0013000A, 0x00150095, 0x00150096, 0x00150097, 0x00150098, 0x00150099, 0x0015009A,
0x0015009B, 0x0015009C, 0x0015009D, 0x0015009E, 0x0015009F, 0x001500A0, 0x001500A1, 0x001500A2, 0x001500A3, 0x001500A4, 0x001500A5, 0x001500A6,
0x001500A7, 0x001500A8, 0x001500A9, 0x001500AA, 0x001500AB, 0x001500AC, 0x001500AD, 0x00150045, 0x00150046, 0x00150047, 0x00150048, 0x00150049,
0x0015004A, 0x0015004B, 0x0015004C, 0x0015004D, 0x0015004E, 0x0015004F, 0x00150050, 0x00150051, 0x00150052, 0x00150053, 0x00150054, 0x00150055,
0x00150056, 0x00150057, 0x00150058, 0x00150059, 0x0015005A, 0x0015005B, 0x0015005C, 0x0015005D };
#endif
s32 fn_1_7754(SeqWork *work, char *mess)
{
@ -69,6 +119,7 @@ s32 fn_1_7754(SeqWork *work, char *mess)
AnimData **var_r21;
s16 var_r20;
s16 var_r19;
s32 var_r19_2;
var_r27 = lbl_1_data_B0;
for (var_r25 = 0; var_r25 < 0x10; var_r25++) {
@ -84,8 +135,48 @@ s32 fn_1_7754(SeqWork *work, char *mess)
var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8);
for (var_r31 = mess, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) {
if (var_r31[0] == 0x20 || var_r31[0] == 0x10) {
var_r30 += 0xE;
var_r30 += VERSION_JP ? 0x1C : 0xE;
}
#if VERSION_PAL
else if (*var_r31 >= 0x30) {
var_r19_2 = var_r27[*var_r31];
var_r21[var_r28] = HuSprAnimReadFile(var_r19_2);
var_r22[var_r28] = var_r30;
if ((*var_r31 >= 0x61) && (*var_r31 <= 0x7A)) {
var_r29[var_r28] = 2;
var_r30 += 0x12;
}
else if ((*var_r31 == 0xC2) || (*var_r31 == 0xC3) || (*var_r31 == 0xC7)) {
var_r29[var_r28] = 0;
var_r30 += 0x12;
}
else if (*var_r31 == 0xC6) {
var_r29[var_r28] = 0;
var_r30 += 0x18;
}
else if (*var_r31 == 0x5C) {
var_r29[var_r28] = 0;
var_r30 += 8;
}
else if ((*var_r31 >= 0x90) && (*var_r31 <= 0x9F)) {
var_r29[var_r28] = -2;
var_r30 += 0x18;
}
else if ((*var_r31 >= 0xD0) && (*var_r31 <= 0xEF)) {
var_r29[var_r28] = -2;
var_r30 += 0x12;
}
else if ((*var_r31 == 0x3D) || (*var_r31 == 0x84)) {
var_r29[var_r28] = 0;
var_r30 += 0x14;
}
else {
var_r29[var_r28] = 0;
var_r30 += 0x1C;
}
var_r28++;
}
#else
else if (var_r31[0] < 0x30) {
}
else if (var_r31[0] == 0x80) {
@ -140,16 +231,19 @@ s32 fn_1_7754(SeqWork *work, char *mess)
var_r29[var_r28] = 4;
var_r30 += 0x18;
}
#if !VERSION_JP
else if ((var_r31[0] == 0x3D) || (var_r31[0] == 0x84)) {
var_r29[var_r28] = 0;
var_r30 += 0x14;
}
#endif
else {
var_r29[var_r28] = 0;
var_r30 += 0x1C;
}
var_r28++;
}
#endif
}
var_r20 = HuSprGrpCreate(var_r28);
work->spr_grp[var_r25] = var_r20;

View file

@ -13,6 +13,8 @@
#include "REL/ztardll.h"
extern s32 charVoiceGroupStat[8];
void fn_1_1774(void);
void fn_1_1CF0(void);
void fn_1_1DA0(void);
@ -763,7 +765,7 @@ void fn_1_33B0(void)
var_r30 = HuSprCreate(var_r29, 0x64, mgBattleStarMax + 1);
}
HuSprGrpMemberSet(lbl_1_bss_50, 1, var_r30);
HuSprPosSet(lbl_1_bss_50, 1, 342.0f, 80.0f);
HuSprPosSet(lbl_1_bss_50, 1, VERSION_JP ? 234.0f : 342.0f, 80.0f);
HuSprScaleSet(lbl_1_bss_50, 1, 0.0f, 0.0f);
HuSprGrpDrawNoSet(lbl_1_bss_50, 0x7F);
var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 9));
@ -1096,17 +1098,41 @@ void fn_1_4948(void)
void fn_1_51BC(s16 arg0)
{
omOvlHisData *var_r31;
s16 var_r31;
omOvlHisData *var_r30;
u32 var_r29;
WipeColorSet(0xFF, 0xFF, 0xFF);
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C);
HuAudSeqAllFadeOut(0x3E8);
while (WipeStatGet() != 0) {
HuPrcVSleep();
}
var_r31 = omOvlHisGet(0);
omOvlHisChg(0, OVL_ZTAR, arg0, var_r31->stat);
#if !VERSION_ENG
if ((GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8)) {
msmMusStopAll(1, 0);
msmSeStopAll(1, 0);
var_r29 = OSGetTick();
while (TRUE) {
if ((msmMusGetNumPlay(1) != 0) || (msmSeGetNumPlay(1) != 0)) {
if (((OSGetTick() - var_r29) / (*((u32 *)0x800000F8) / 4 / 1000)) >= 0x1F4) {
break;
}
}
else {
break;
}
}
msmSysDelGroupBase(0);
#if VERSION_PAL
for (var_r31 = 0; var_r31 < 8; var_r31++) {
charVoiceGroupStat[var_r31] = 0;
}
#endif
}
#endif
var_r30 = omOvlHisGet(0);
omOvlHisChg(0, OVL_ZTAR, arg0, var_r30->stat);
omOvlCallEx(OVL_M433, 1, 0, 0);
while (TRUE) {
HuPrcVSleep();
@ -1239,6 +1265,9 @@ s32 fn_1_524C(s32 arg0)
var_r22 = &winData[var_r24];
HuWinPriSet(var_r24, 5);
HuWinPosSet(var_r24, (576.0f - var_r22->w) / 2, 300.0f);
#if VERSION_PAL
HuWinScaleSet(var_r24, 0.95f, 1.0f);
#endif
HuWinAttrSet(var_r24, 0x800);
var_r30 = 0;
var_r23 = 0;
@ -1400,6 +1429,11 @@ void fn_1_66F8(void)
for (var_r31 = 0; var_r31 < 4; var_r31++) {
GWPlayerCfg[var_r31].character = -1;
}
#if VERSION_PAL
for (var_r31 = 0; var_r31 < 8; var_r31++) {
charVoiceGroupStat[var_r31] = 0;
}
#endif
mgPracticeEnableF = 0;
omOvlReturnEx(1, 1);
HuPrcEnd();

View file

@ -3028,6 +3028,12 @@ void fn_1_114EC(u32 arg0, s32 arg1)
s32 var_r29;
s32 var_r28;
#if VERSION_JP
if (lbl_1_data_670 != -1) {
HuWinMesSet(lbl_1_data_670, arg0);
return;
}
#endif
HuWinMesMaxSizeGet(1, spC, arg0);
var_r29 = spC[0];
var_r31 = spC[1];
@ -3038,6 +3044,9 @@ void fn_1_114EC(u32 arg0, s32 arg1)
else {
var_r30 = 0x181 - var_r31;
}
#if VERSION_JP
lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1);
#else
if (lbl_1_data_670 != -1) {
fn_1_1190C();
lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1);
@ -3045,6 +3054,7 @@ void fn_1_114EC(u32 arg0, s32 arg1)
else {
lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1);
}
#endif
HuWinBGTPLvlSet(lbl_1_data_670, 0.0f);
HuWinDispOn(lbl_1_data_670);
HuWinMesSet(lbl_1_data_670, arg0);
@ -3059,11 +3069,21 @@ void fn_1_11708(u32 arg0)
s32 var_r29;
s32 var_r28;
#if VERSION_JP
if (lbl_1_data_670 != -1) {
HuWinMesSet(lbl_1_data_670, arg0);
return;
}
#endif
HuWinMesMaxSizeGet(1, sp8, arg0);
var_r30 = sp8[0];
var_r31 = sp8[1];
var_r28 = (0x240 - var_r30) / 2.0f;
var_r29 = 0x181 - var_r31;
#if VERSION_JP
lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1);
(void)var_r29;
#else
if (lbl_1_data_670 != -1) {
fn_1_1190C();
lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1);
@ -3071,6 +3091,7 @@ void fn_1_11708(u32 arg0)
else {
lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1);
}
#endif
HuWinBGTPLvlSet(lbl_1_data_670, 0.0f);
HuWinDispOn(lbl_1_data_670);
HuWinMesSet(lbl_1_data_670, arg0);

View file

@ -1988,7 +1988,7 @@ void BoardLast5GfxInit(void)
} else {
prio = 1400;
}
#if !VERSION_JPN
#if !VERSION_JP
spr_file = last5GfxSprTbl[i];
if(i == 2 && work->is_last && GWLanguageGet() != 0) {
spr_file = DATA_MAKE_NUM(DATADIR_BOARD, 98);

View file

@ -137,7 +137,7 @@ static s32 bowserSuitCharMdlTbl[] = {
static s32 bowserSuitMotTbl[] = { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x19), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1A),
DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1B), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1E), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1F) };
#if VERSION_JPN
#if VERSION_JP
static s32 sparkMotTbl[] = {
DATA_MAKE_NUM(DATADIR_BOARD, 0x94),
DATA_MAKE_NUM(DATADIR_BOARD, 0x95),
@ -2512,7 +2512,7 @@ static s32 DoSparkSpace(s32 player, s32 pause_cam)
BoardCameraMotionWait();
BoardCameraTargetPlayerSet(player);
BoardPlayerIdleSet(player);
temp_r28 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, VERSION_JPN ? 0x73 : 0x74), NULL, 0);
temp_r28 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, VERSION_JP ? 0x73 : 0x74), NULL, 0);
BoardModelMotionStart(temp_r28, 0, 0x40000002);
BoardModelMotionTimeSet(temp_r28, 30.0f);
BoardModelAttrSet(temp_r28, 0x40000002);
@ -2520,7 +2520,7 @@ static s32 DoSparkSpace(s32 player, s32 pause_cam)
BoardModelScaleSet(temp_r28, 2.0f, 2.0f, 2.0f);
BoardModelVisibilitySet(temp_r28, 0);
BoardModelLayerSet(temp_r28, 1);
sp2E = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, VERSION_JPN ? 0x66 : 0x67), NULL, 0);
sp2E = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, VERSION_JP ? 0x66 : 0x67), NULL, 0);
BoardModelLayerSet(sp2E, 1);
BoardModelMotionStart(sp2E, 0, 0);
HuAudFXPlay(796);

View file

@ -54,7 +54,7 @@ void GWInit(void)
_InitFlag();
GWErase();
InitPlayerConfig();
#if VERSION_JPN
#if VERSION_JP
GWGameStat.language = 0;
#elif VERSION_ENG
GWGameStat.language = 1;
@ -131,7 +131,7 @@ void GWGameStatReset(void)
GameStat *game_stat = &GWGameStatDefault;
memset(game_stat, 0, sizeof(GameStat));
game_stat->unk_00 = 0;
#if VERSION_JPN
#if VERSION_JP
game_stat->language = 0;
#elif VERSION_ENG
game_stat->language = 1;

View file

@ -808,7 +808,7 @@ static s32 SeqMakeWord(SeqWork *work, char *str, s16 flags)
s16 x;
s16 i;
s16 grp_idx;
#if VERSION_JPN
#if VERSION_JP
char *str_ptr;
AnimData **char_anim;
s16 *char_pos;
@ -832,7 +832,7 @@ static s32 SeqMakeWord(SeqWork *work, char *str, s16 flags)
x = 0;
len = 0;
while (*str_ptr != '\0') {
#if VERSION_JPN
#if VERSION_JP
if (*str_ptr == ' ') {
x += 56;
}
@ -876,26 +876,26 @@ static AnimData *SeqLoadFontChar(char *str, s16 flags)
if (c == 222 || c == 223) {
return NULL;
}
#if !VERSION_JPN
#if !VERSION_JP
if (c == 32) {
return HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 10)));
}
#endif
for (id = 0, list = seqFontAlphaTbl; *list != 0; id++, list++) {
if (*list == c) {
data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 20 : 21));
data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JP ? 20 : 21));
return HuSprAnimRead(SeqReadFile(data_num));
}
}
for (id = 0, list = seqFontNumTbl; *list != 0; id++, list++) {
if (*list == c) {
data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 10 : 11));
data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JP ? 10 : 11));
return HuSprAnimRead(SeqReadFile(data_num));
}
}
for (id = 0, list = seqPunctTbl; *list != 0; id++, list++) {
if (*list == c) {
data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 153 : 154));
data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JP ? 153 : 154));
return HuSprAnimRead(SeqReadFile(data_num));
}
}
@ -916,10 +916,10 @@ static AnimData *SeqLoadFontChar(char *str, s16 flags)
while (*list != 0) {
if (*list == c) {
if (flags & 0x1) {
data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 155 : 156));
data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JP ? 155 : 156));
}
else {
data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 72 : 73));
data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JP ? 72 : 73));
}
return HuSprAnimRead(SeqReadFile(data_num));
}
@ -2685,7 +2685,7 @@ static char *winCharNameTbl[] = {
"ワリオ",
"WARIO",
"ドンキー",
VERSION_JPN ? "DK" : " DK ",
VERSION_JP ? "DK" : " DK ",
"デイジー",
"DAISY",
"ワルイージ",
@ -2695,21 +2695,21 @@ static char *winCharNameTbl[] = {
"キノピオ",
"TOAD",
"ヘイホー",
VERSION_JPN ? "HEHOH" : "SHY GUY",
VERSION_JP ? "HEHOH" : "SHY GUY",
"テレサ",
VERSION_JPN ? "TERETHA" : "BOO",
VERSION_JP ? "TERETHA" : "BOO",
"ノコノコ",
VERSION_JPN ? "NOKONOKO" : "KOOPA",
VERSION_JP ? "NOKONOKO" : "KOOPA",
"ミニクッパ",
VERSION_NTSC ? (VERSION_ENG ? "KOOPA KID" : "BABYBOWSER") : "MINI BOWSER",
"クリボー",
VERSION_JPN ? "KURIBO" : "GOOMBA",
VERSION_JP ? "KURIBO" : "GOOMBA",
};
static char *winWordTbl[] = { "カチ", "WON!", "ハイボク", "LOSE", "ユウショウ!", "CHAMPION!" };
static s16 winPosOfs[][5][2] = {
{ { VERSION_JPN ? 144 : 114, 0 }, { -144, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } },
{ { VERSION_JP ? 144 : 114, 0 }, { -144, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } },
{ { 0, 35 }, { -144, -35 }, { 144, -35 }, { 0, 0 }, { 0, 0 } },
{ { 0, 105 }, { 0, -105 }, { -144, 0 }, { 144, 0 }, { 0, 0 } },
{ { 0, 105 }, { -144, -105 }, { 144, -105 }, { -144, 0 }, { 144, 0 } },
@ -2745,15 +2745,15 @@ s32 MGSeqInitWin(SeqWork *work, va_list params)
}
}
word_grp = SeqMakeWord(work, winWordTbl[word_idx], GET_WIN_KANAF());
winnerNameW[0] = work->word_len * (VERSION_JPN ? 56 : 50);
#if !VERSION_JPN
winnerNameW[0] = work->word_len * (VERSION_JP ? 56 : 50);
#if !VERSION_JP
for (i = 0; i < work->word_len; i++) {
HuSprPosSet(work->spr_grp[word_grp], i, 25.0f + ((i * 50) - (0.5f * (work->word_len * 50))), 0.0f);
HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR);
}
#endif
num_winners = 0;
#if !VERSION_JPN
#if !VERSION_JP
work->win_scale = 1.0f;
#endif
for (j = 0; j < 4; j++) {
@ -2855,7 +2855,7 @@ s32 MGSeqInitWin(SeqWork *work, va_list params)
work->type = 0;
for (j = 0; j < num_winners + 1; j++) {
if (num_winners == 1) {
#if VERSION_JPN
#if VERSION_JP
word_x = 32 + (winnerNameW[1] + winnerNameW[0]);
#else
word_x = 32.0f + ((float)winnerNameW[0] + (winnerNameW[1] * work->win_scale));

View file

@ -35,7 +35,7 @@ s32 saveExecF;
u8 curBoxNo;
s16 curSlotNo;
#if VERSION_JPN
#if VERSION_JP
static u8 commentTbl[2][32] = { "マリオパーティ4", "??月??日 データ?です。" };
static u8 sjisNumTbl[20] = "";
#else
@ -48,7 +48,7 @@ s32 SaveEnableF = 1;
static char *SlotNameTbl[] = { "A", "B" };
#if VERSION_JPN
#if VERSION_JP
static char *slotIconMesTbl[] = { "\x0E\x16", "\x0E\x17" };
static u8 sjisSpace[] = " ";
#endif
@ -498,7 +498,7 @@ s32 SLSave(void)
#define SAVEWIN_POS 120
#endif
#if VERSION_JPN
#if VERSION_JP
#define SAVEWIN_MESS slotIconMesTbl
#else
#define SAVEWIN_MESS SlotNameTbl

View file

@ -22,7 +22,7 @@ extern s32 HuDvdErrWait;
static s32 SR_PreRstChk[4] = {};
#if VERSION_JPN
#if VERSION_JP
static s32 padding[4] = {};
#endif

View file

@ -91,7 +91,7 @@ u8 charWETbl[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0
17, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 };
#elif VERSION_JPN
#elif VERSION_JP
u8 charWETbl[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 13, 8, 11, 12, 13, 12, 11, 11, 12, 11, 18, 20, 12, 12, 11, 14, 8, 13, 12, 12, 12, 12, 12, 12, 12, 9, 11, 12, 11, 15, 12, 13, 12,
13, 12, 12, 11, 12, 11, 15, 12, 13, 11, 12, 6, 8, 8, 12, 20, 12, 11, 12, 11, 11, 9, 12, 11, 4, 8, 11, 4, 14, 11, 12, 11, 12, 9, 11, 9, 11, 11, 15,
@ -257,7 +257,7 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame)
sprite_ptr->work[0] = window_id;
HuSprGrpMemberSet(group, 1, sprite);
window->num_chars = 0;
#if VERSION_JPN
#if VERSION_JP
window->max_chars = (w / 20) * (h / 24) * 3;
#else
window->max_chars = (w / 8) * (h / 24) * 4;
@ -290,7 +290,7 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame)
window->scissor_h = 0x1E0;
window->tab_w = 24;
window->push_key = 0x300;
#if !VERSION_JPN
#if !VERSION_JP
window->key_auto = 0;
#endif
if (frame == 0 || frame == 2) {
@ -425,12 +425,12 @@ static void MesDispFunc(HuSprite *sprite)
MTXConcat(*sprite->group_mtx, modelview, modelview);
GXLoadPosMtxImm(modelview, 0);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0);
HuSprTexLoad(fontAnim, 0, 0, GX_CLAMP, GX_CLAMP, VERSION_JPN ? GX_NEAR : GX_LINEAR);
HuSprTexLoad(fontAnim, 0, 0, GX_CLAMP, GX_CLAMP, VERSION_JP ? GX_NEAR : GX_LINEAR);
GXBegin(GX_QUADS, GX_VTXFMT0, window->num_chars * 4);
char_uv_h = (LanguageNo == 0) ? (24.0f / 408.0f) : (24.0f / 312.0f);
for (i = 0; i < window->num_chars; i++) {
char_w = fontWidthP[window->char_data[i].character + 48];
#if VERSION_JPN
#if VERSION_JP
uv_minx = 0.003125 + (20.0f / 320.0f) * (window->char_data[i].character % 16);
#else
uv_minx = (20.0f / 320.0f) * (window->char_data[i].character % 16);
@ -605,9 +605,9 @@ static void HuWinDrawMes(s16 window)
s16 color;
s16 mess_w;
window_ptr->mess_time += VERSION_JPN ? 1 : 3;
window_ptr->mess_time += VERSION_JP ? 1 : 3;
while (window_ptr->mess_time >= window_ptr->speed || (window_ptr->attr & 0x2000)) {
#if VERSION_JPN
#if VERSION_JP
window_ptr->mess_time = 0;
#else
window_ptr->mess_time -= window_ptr->speed;
@ -634,7 +634,7 @@ static void HuWinDrawMes(s16 window)
}
window_ptr->mess_stackptr--;
window_ptr->mess = window_ptr->mess_stack[window_ptr->mess_stackptr];
#if !VERSION_JPN
#if !VERSION_JP
window_ptr->mess_time = 0;
#endif
break;
@ -1108,14 +1108,14 @@ static void HuWinChoice(WindowData *window)
window->choice = choice_next;
HuAudFXPlay(0);
}
else if (key & (VERSION_JPN ? PAD_BUTTON_A : (window->key_auto | PAD_BUTTON_A))) {
else if (key & (VERSION_JP ? PAD_BUTTON_A : (window->key_auto | PAD_BUTTON_A))) {
HuAudFXPlay(2);
window->key_down = key;
window->stat = 0;
}
else if ((key & PAD_BUTTON_B) && !(window->attr & 0x10)) {
HuAudFXPlay(3);
#if !VERSION_JPN
#if !VERSION_JP
window->key_down = key;
#else
(void)key; // hack to match Japanese version
@ -1324,7 +1324,7 @@ void HuWinMesSet(s16 window, u32 mess)
window_ptr->mess = MessData_MesPtrGet(messDataPtr, mess);
if (window_ptr->mess == 0) {
OSReport("Error: No Message data\n");
#if !VERSION_JPN
#if !VERSION_JP
HuWinMesSet(window, 0);
return;
#endif
@ -1335,7 +1335,7 @@ void HuWinMesSet(s16 window, u32 mess)
}
if (!(window_ptr->attr & 0x80)) {
window_ptr->mess_color = 7;
#if !VERSION_JPN
#if !VERSION_JP
window_ptr->mess_time = 0;
#endif
}