Skip to content

Commit

Permalink
Merge pull request #310 from abnormalhare/main
Browse files Browse the repository at this point in the history
Match m446/player.c
  • Loading branch information
gamemasterplc authored May 24, 2024
2 parents 57c9706 + 6ff3728 commit dc71ba3
Show file tree
Hide file tree
Showing 7 changed files with 974 additions and 103 deletions.
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

0 comments on commit dc71ba3

Please sign in to comment.