Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Match m446/player.c #310

Merged
merged 4 commits into from
May 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 39 additions & 39 deletions config/GMPE01_00/rels/m446dll/symbols.txt
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,10 @@ fn_1_4798 = .text:0x00004798; // type:function size:0x74
fn_1_480C = .text:0x0000480C; // type:function size:0x18
fn_1_4824 = .text:0x00004824; // type:function size:0x58
fn_1_487C = .text:0x0000487C; // type:function size:0x284
fn_1_4B00 = .text:0x00004B00; // type:function size:0x59C
m446PlayerCreate = .text:0x00004B00; // type:function size:0x59C
fn_1_509C = .text:0x0000509C; // type:function size:0x11C
fn_1_51B8 = .text:0x000051B8; // type:function size:0x34C
fn_1_5504 = .text:0x00005504; // type:function size:0x144
m446PlayerAppendCard = .text:0x000051B8; // type:function size:0x34C
m446PlayerRemoveCard = .text:0x00005504; // type:function size:0x144
fn_1_5648 = .text:0x00005648; // type:function size:0x30
fn_1_5678 = .text:0x00005678; // type:function size:0x4BC
fn_1_5B34 = .text:0x00005B34; // type:function size:0x14
Expand Down Expand Up @@ -172,37 +172,37 @@ lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:
lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float
lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float
lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float
lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double
lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float
lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double
lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float
lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float
lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float
lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float
lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float
lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float
lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float
lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float
lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float
lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float
lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float
lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float
lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float
lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float
lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double
lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 data:4byte
lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float
lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float
lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float
lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float
lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float
lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float
lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float
lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float
lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float
lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float
lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float
lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float
lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double
lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float
lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double
lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float
lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float
lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float
lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float
lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double
lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 scope:local data:4byte
lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float
lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float
lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float
lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float
lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float
Expand Down Expand Up @@ -266,9 +266,9 @@ lbl_1_data_206 = .data:0x00000206; // type:object size:0x22 scope:local data:str
lbl_1_data_228 = .data:0x00000228; // type:object size:0x24
lbl_1_data_24C = .data:0x0000024C; // type:object size:0x90
lbl_1_data_2DC = .data:0x000002DC; // type:object size:0x14
lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x1F data:string
lbl_1_data_30F = .data:0x0000030F; // type:object size:0x1F data:string
lbl_1_data_32E = .data:0x0000032E; // type:object size:0x22
lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x1F scope:local data:string
lbl_1_data_30F = .data:0x0000030F; // type:object size:0x1F scope:local data:string
lbl_1_data_32E = .data:0x0000032E; // type:object size:0x22 scope:local data:string
jumptable_1_data_350 = .data:0x00000350; // type:object size:0x1C scope:local
lbl_1_data_370 = .data:0x00000370; // type:object size:0xC data:float
lbl_1_data_37C = .data:0x0000037C; // type:object size:0x1E data:string
Expand All @@ -288,9 +288,9 @@ lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte
lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte
lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte
lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte
lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:4byte
lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte
lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte
lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:4byte
lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte
lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte
lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:float
lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:float
Expand Down
2 changes: 1 addition & 1 deletion configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1192,7 +1192,7 @@ def Rel(lib_name, objects):
Object(Matching, "REL/m446dll/card.c"),
Object(Matching, "REL/m446dll/deck.c"),
Object(Matching, "REL/m446dll/table.c"),
Object(NonMatching, "REL/m446dll/player.c"),
Object(Matching, "REL/m446dll/player.c"),
Object(NonMatching, "REL/m446dll/camera.c"),
Object(NonMatching, "REL/m446dll/cursor.c"),
Object(NonMatching, "REL/m446dll/stage.c"),
Expand Down
115 changes: 90 additions & 25 deletions include/REL/m446Dll.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,6 @@
#include "game/process.h"
#include "game/object.h"

typedef struct _unkSubStruct {
s32 unk0;
char unk4[0x20];
s32 unk24;
char unk28[0x3C];
u8 unk64;
u8 unk65;
u8 unk66;
s32 unk68;
char unk6C[0x4];
} unkSubStruct;

typedef struct _unkStruct {
s32 unk0;
s16 unk4;
Expand All @@ -28,23 +16,23 @@ typedef struct _unkStruct {
struct _unkStruct6* unk20;
s32 unk24;
struct _unkStruct5* unk28;
unkSubStruct* unk2C[2];
struct _unkStruct8* unk2C[2];
struct _unkStruct4* unk34;
struct _unkStruct4* unk38[23];
s32 unk94;
Process *unk98;
Process* unk98;
} unkStruct;

typedef struct _unkStruct2 {
struct _unkStruct4 **unk0;
struct _unkStruct4* *unk0;
s32 unk4;
s32 unk8;
} unkStruct2;

typedef struct _unkStruct3 {
void *unk0;
struct _unkStruct3 *unk4;
struct _unkStruct3 *unk8;
void* unk0;
struct _unkStruct3* unk4;
struct _unkStruct3* unk8;
} unkStruct3;

typedef struct _unkStruct4 {
Expand Down Expand Up @@ -85,10 +73,10 @@ typedef struct _unkStruct5 {
} unkStruct5;

typedef struct _unkStruct6 {
struct _unkStruct7 *unk0;
struct _unkStruct7* unk0;
s16 unk4;
s16 unk6;
unkStruct4 *unk8[21];
unkStruct4* unk8[21];
s32 unk5C;
s32 unk60;
s32 unk64;
Expand All @@ -105,23 +93,72 @@ typedef struct _unkStruct7 {
};
char unk1[0x1F];
Vec unk20;
char unk24[0x18];
f32 unk44;
} unkStruct7;

typedef void (*m446Func1)(unkStruct *);
typedef void (*m446Func4)(unkStruct4 *);
typedef struct _unkStruct8 {
s32 unk0;
unkStruct6* unk4;
unkStruct7* unk8;
s32 unkC;
s32 unk10;
s32 unk14;
s32 unk18;
s32 unk1C;
s32 unk20;
s32 unk24;
s32 unk28;
unkStruct4* unk2C[3];
s32 unk38;
s16 unk3C[2];
s16 unk40[4];
Vec unk48;
Vec unk54;
f32 unk60;
u8 unk64;
u8 unk65;
u8 unk66;
u8 unk67;
s32 unk68;
s32 unk6C;
s32 unk70;
s32 unk74;
char unk78[0x4];
s32 unk7C;
Vec unk80;
Vec unk8C;
s32 unk98;
Vec unk9C;
Vec unkA8;
s32 unkB4;
f32 unkB8;
f32 unkBC;
f32 unkC0;
f32 unkC4;
s32 unkC8;
char unkCC[0x4];
} unkStruct8;

typedef void (*m446Func)(s32);
typedef void (*m446Func1)(unkStruct*);
typedef void (*m446Func4)(unkStruct4*);
typedef void (*m446Func8)(unkStruct8*);

////// BSS //////
// player.c
extern unkStruct3* lbl_1_bss_30;
// table.c
extern unkStruct3* lbl_1_bss_28;
// deck.c
extern u32 lbl_1_bss_20[2];
extern u32 lbl_1_bss_20;
// card.c
extern unkStruct3* lbl_1_bss_18;
// main.c
extern s32 lbl_1_bss_14;
extern s32 lbl_1_bss_10;
extern Process* lbl_1_bss_C;
extern omObjData *lbl_1_bss_8;
extern omObjData* lbl_1_bss_8;
extern s32 lbl_1_bss_4;
extern unkStruct* lbl_1_bss_0;

Expand All @@ -139,6 +176,10 @@ extern f32 lbl_1_data_68[2];
extern m446Func1 lbl_1_data_A0[5];
// card.c
extern m446Func4 lbl_1_data_150[3];
// player.c
extern s32 lbl_1_data_228[9];
extern s32 lbl_1_data_24C[9][4];
extern m446Func8 lbl_1_data_2DC[5];

////// PROTOTYPES //////
// main.c
Expand Down Expand Up @@ -217,4 +258,28 @@ extern s32 fn_1_4088(unkStruct6*, u8, u8, s32, unkStruct4**, s32);
extern void fn_1_46AC(unkStruct6*);
extern void fn_1_46D0(unkStruct6*);
extern s32 fn_1_4720(unkStruct6*, s32);
extern void fn_1_4798(unkStruct6*);
extern void fn_1_4798(unkStruct6*);
// player.c
extern s32 fn_1_480C(void);
extern void fn_1_4824(void);
extern void fn_1_487C(void);
extern unkStruct8* m446PlayerCreate(s32, unkStruct6*);
extern void fn_1_509C(unkStruct8*);
extern s32 m446PlayerAppendCard(unkStruct8*, unkStruct4*, s32);
extern s32 m446PlayerRemoveCard(unkStruct8*, unkStruct4*, s32);
extern s32 fn_1_5648(unkStruct8*, s32, unkStruct4**);
extern s32 fn_1_5678(unkStruct8*, unkStruct4**, s32);
extern void fn_1_5B34(unkStruct8*);
extern void fn_1_5B48(unkStruct8*);
extern void fn_1_5C10(unkStruct8*);
extern void fn_1_5C24(unkStruct8*);
extern void fn_1_5CEC(unkStruct8*);
extern void fn_1_5D00(unkStruct8*);
extern void fn_1_5E54(unkStruct8*, s32);
extern void fn_1_6074(unkStruct8*);
extern void fn_1_6264(unkStruct8*, Vec*, s32);
extern void fn_1_62F0(unkStruct8*, Vec*, s32);
extern void fn_1_637C(unkStruct8*, s32);
extern void fn_1_64BC(unkStruct8*, s32, s32);
extern void fn_1_6578(unkStruct8*);
extern void fn_1_6620(unkStruct8*);
6 changes: 3 additions & 3 deletions src/REL/m446Dll/deck.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include "math.h"

// bss
u32 lbl_1_bss_20[2];
u32 lbl_1_bss_20;

// data
static const s32 lbl_1_rodata_D0[5][2] = {
Expand Down Expand Up @@ -178,9 +178,9 @@ void fn_1_38B0(unkStruct2** arg0) {
}

void fn_1_38E0(u32 arg0) {
lbl_1_bss_20[0] = arg0;
lbl_1_bss_20 = arg0;
}

s32 fn_1_38F0(void) {
return ((lbl_1_bss_20[0] = (lbl_1_bss_20[0] * 0x41C64E6D) + 0x3039) >> 16) % 32768;
return ((lbl_1_bss_20 = (lbl_1_bss_20 * 0x41C64E6D) + 0x3039) >> 16) % 32768;
}
25 changes: 6 additions & 19 deletions src/REL/m446Dll/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,6 @@
#include "game/frand.h"
#include "game/minigame_seq.h"

// player.c
extern s32 fn_1_480C(void);
extern void fn_1_4824(void);
extern void fn_1_487C(void);
extern unkSubStruct *fn_1_4B00(s32, unkStruct6*);
extern void fn_1_509C(unkSubStruct*);
extern s32 fn_1_5504(unkSubStruct*, unkStruct4*, s32);
extern unkSubStruct *fn_1_5648(unkSubStruct*, s32, unkStruct4**);
extern s32 fn_1_5678(unkSubStruct*, unkStruct4**, s32);
extern void fn_1_5B34(unkSubStruct*);
extern void fn_1_5C10(unkSubStruct*);
extern void fn_1_5CEC(unkSubStruct*);
extern void fn_1_637C(unkSubStruct*, s32);
// camera.c
extern void fn_1_6778(void);
extern void fn_1_68D8(void);
Expand Down Expand Up @@ -150,7 +137,7 @@ unkStruct* m446FlowCreate(void) {
lbl_1_bss_10 = 0;

for (var_r30 = 0; var_r30 < 2; var_r30++) {
temp_r3->unk2C[var_r30] = fn_1_4B00(var_r30, temp_r3->unk20);
temp_r3->unk2C[var_r30] = m446PlayerCreate(var_r30, temp_r3->unk20);
if (temp_r3->unk2C[var_r30]->unk68 != 0) {
lbl_1_bss_10 += 1;
}
Expand Down Expand Up @@ -258,7 +245,7 @@ void fn_1_53C(unkStruct* arg0) {
for (var_r29 = 0; var_r29 < 2; var_r29++) {
for (var_r30 = 0; var_r30 < 3; var_r30++) {
m446DeckPopCard(&arg0->unk28->unk0, &arg0->unk34);
fn_1_51B8(arg0->unk2C[var_r29], arg0->unk34, 1);
m446PlayerAppendCard(arg0->unk2C[var_r29], arg0->unk34, 1);
fn_1_2EC0(arg0->unk34, 0);
}
}
Expand Down Expand Up @@ -436,7 +423,7 @@ void fn_1_CA0(unkStruct* arg0) {
case 4:
MGSeqParamSet(arg0->unk6, 2, -1);
arg0->unk6 = -1;
fn_1_5504(var_r30, arg0->unk34, 3);
m446PlayerRemoveCard(var_r30, arg0->unk34, 3);
arg0->unk10 = 5;
break;
case 5:
Expand Down Expand Up @@ -489,7 +476,7 @@ void fn_1_CA0(unkStruct* arg0) {
if (arg0->unk34->unk0 == 4) {
arg0->unk10 = 13;
} else {
fn_1_51B8(var_r30, arg0->unk34, 4);
m446PlayerAppendCard(var_r30, arg0->unk34, 4);
arg0->unk10 = 11;
}
}
Expand Down Expand Up @@ -530,7 +517,7 @@ void fn_1_CA0(unkStruct* arg0) {
for (var_r29 = 0; var_r29 < 3; var_r29++) {
fn_1_5648(var_r30, var_r29, &arg0->unk34);
if (arg0->unk34) {
fn_1_5504(var_r30, arg0->unk34, 4);
m446PlayerRemoveCard(var_r30, arg0->unk34, 4);
fn_1_3BF0(arg0->unk20, arg0->unk34, 3);
}
}
Expand Down Expand Up @@ -583,7 +570,7 @@ void fn_1_CA0(unkStruct* arg0) {
if (arg0->unk14++ >= 120) {
for (var_r29 = 0; var_r29 < 3; var_r29++) {
m446DeckPopCard(arg0->unk28, &arg0->unk34);
fn_1_51B8(var_r30, arg0->unk34, 1);
m446PlayerAppendCard(var_r30, arg0->unk34, 1);
fn_1_2EC0(arg0->unk34, 0);
}
HuAudFXPlay(0x767);
Expand Down
Loading
Loading