Decompile pakWipe

This commit is contained in:
Ryan Dwyer 2021-09-17 18:01:16 +10:00
parent 7a0f4b5835
commit 8ce4b7b2b7
9 changed files with 324 additions and 542 deletions

View File

@ -111,7 +111,6 @@ SECTIONS
_val7f11ad0c = 0x0efc;
_val7f11ae0c = 0x0f20;
_val7f11aef4 = 0x0f38;
_val7f11b124 = 0x0f73;
_val7f11b6c0 = 0x1033;
_val7f11bb48 = 0x1131;
_val7f11c1d0 = 0x128d;
@ -129,7 +128,6 @@ SECTIONS
_val7f11ad0c = 0x0ef5;
_val7f11ae0c = 0x0f19;
_val7f11aef4 = 0x0f31;
_val7f11b124 = 0x0f6c;
_val7f11b6c0 = 0x102c;
_val7f11bb48 = 0x112a;
_val7f11c1d0 = 0x1286;
@ -147,7 +145,6 @@ SECTIONS
_val7f11ad0c = 0x0e32;
_val7f11ae0c = 0x0e56;
_val7f11aef4 = 0x0e6e;
_val7f11b124 = 0x0ea9;
_val7f11b6c0 = 0x0f69;
_val7f11bb48 = 0x1067;
_val7f11c1d0 = 0x11c3;

View File

@ -571,7 +571,7 @@ void lvInit(s32 stagenum)
buffer[2] = 0x020f0100;
buffer[3] = 0xcd31100b;
osEepromLongWrite(&var80099e78, address, (u8 *)&buffer, 0x10);
var800a2380[4].unk2be = 0;
g_Paks[SAVEDEVICE_GAMEPAK].unk2be = 0;
}
}
#endif

File diff suppressed because it is too large Load Diff

View File

@ -209,7 +209,7 @@ extern s32 *g_CoverRooms;
extern struct covercandidate *g_CoverCandidates;
extern u16 g_NumSpecialCovers;
extern u16 *g_SpecialCoverNums;
extern struct var800a2380 var800a2380[5];
extern struct pak g_Paks[5];
extern OSPfs g_Pfses[4];
extern u32 var800a33a0;
extern u32 var800a33a4;

View File

@ -2989,6 +2989,13 @@
#define PADFLAG_8000 0x8000
#define PADFLAG_10000 0x10000
#define PAKERROR_OK 0
#define PAKERROR_EEPROM_MISSING 0x80
#define PAKERROR_EEPROM_READFAILED 0x81
#define PAKERROR_EEPROM_WRITEFAILED 0x82
#define PAKERROR_EEPROM_INVALIDOP 0x83
#define PAKERROR_EEPROM_INVALIDARG 0x84
#define PATHFLAG_CIRCULAR 1
#define PATHFLAG_FLYING 2
#define PATHFLAG_INUSE 4

View File

@ -8,7 +8,7 @@ u32 func0f1165d0(s8 device);
u32 func0f1165f8(s8 device, u32 arg1);
u32 func0f116658(s8 arg0, u32 arg1);
u32 func0f116684(u32 arg0);
u32 func0f11668c(s8 device);
u32 pakGenerateSerial(s8 device);
bool pakIsConnected(s8 device);
s32 func0f1167b0(s8 device, u32 arg1, u32 *buffer1024);
u32 func0f1167d8(s8 arg0);
@ -71,7 +71,7 @@ void func0f118ae4(u8 *arg0, u8 *arg1, u16 *arg2);
s32 func0f118bc8(s8 arg0, s32 arg1, void *arg2, s32 arg3);
s32 func0f118d18(s8 device, u32 arg1, u32 *buffer1024);
s32 func0f1190bc(s8 device, s32 arg1, s32 *arg2);
u32 func0f119298(s8 index);
u32 func0f119298(s8 device);
void func0f119340(u32 arg0);
u32 func0f119368(s32 device, u32 arg1, struct pakthing16 *pakthing16);
#if VERSION >= VERSION_NTSC_FINAL
@ -91,7 +91,7 @@ s32 func0f11a574(s8 device);
u32 func0f11a7dc(void);
u32 func0f11a8f4(void);
u32 func0f11ac7c(void);
void pakWipeEeprom(s32 arg0, s32 arg1, s32 arg2);
void pakWipe(s8 device, u32 start, u32 end);
u32 func0f11b178(void);
u32 func0f11b488(void);
void pakForceScrub(s32 arg0);
@ -116,8 +116,8 @@ u32 func0f11d214(void);
u32 func0f11d3f8(void);
u32 func0f11d478(void);
u32 func0f11d4dc(void);
s32 func0f11d540(s8 index, s32 arg1);
s32 func0f11d5b0(s8 index);
s32 func0f11d540(s8 device, s32 arg1);
s32 func0f11d5b0(s8 device);
void func0f11d620(s8 device);
u32 func0f11d8b4(void);
u32 func0f11d9c4(void);

View File

@ -49,9 +49,9 @@ void joy00015144(s32 line, char *file);
void joyReset(void);
void joyGetContpadNumsForPlayer(s8 playernum, s32 *pad1, s32 *pad2);
void joy000153c4(s8 arg0, s32 arg1);
s32 joy000155b4(s8 index);
s32 joy000155f4(s8 index);
void joy000153c4(s8 device, s32 arg1);
s32 joy000155b4(s8 device);
s32 joy000155f4(s8 device);
void joy0001561c(void);
#endif

View File

@ -5020,7 +5020,7 @@ struct pakdata {
/*0x242*/ u16 pagesfree;
};
struct var800a2380 {
struct pak {
/*0x000*/ s32 unk000;
/*0x004*/ u32 unk004;
/*0x008*/ u32 unk008;
@ -5044,7 +5044,7 @@ struct var800a2380 {
/*0x290*/ u32 unk290;
/*0x294*/ u32 unk294;
/*0x298*/ u32 unk298;
/*0x29c*/ s32 unk29c;
/*0x29c*/ s32 noteindex;
/*0x2a0*/ u32 unk2a0;
/*0x2a4*/ u32 unk2a4;
/*0x2a8*/ u32 unk2a8;

View File

@ -1340,35 +1340,35 @@ void joyGetContpadNumsForPlayer(s8 playernum, s32 *pad1, s32 *pad2)
#endif
#if VERSION >= VERSION_NTSC_1_0
void joy000153c4(s8 arg0, s32 arg1)
void joy000153c4(s8 device, s32 arg1)
{
u32 stack;
if (arg0 != 4) {
if (var800a2380[arg0].unk000 != 2 && var800a2380[arg0].unk000 != 3) {
if (device != SAVEDEVICE_GAMEPAK) {
if (g_Paks[device].unk000 != 2 && g_Paks[device].unk000 != 3) {
if (arg1) {
joy000150e8();
}
if (osMotorProbe(&var80099e78, PFS(arg0), arg0) == 0) {
osMotorStop(PFS(arg0));
osMotorStop(PFS(arg0));
osMotorStop(PFS(arg0));
if (osMotorProbe(&var80099e78, PFS(device), device) == 0) {
osMotorStop(PFS(device));
osMotorStop(PFS(device));
osMotorStop(PFS(device));
}
if (arg1) {
joy00015144();
}
if (var800a2380[arg0].unk004 != 6 && var800a2380[arg0].unk004 != 7) {
var800a2380[arg0].unk004 = 5;
if (g_Paks[device].unk004 != 6 && g_Paks[device].unk004 != 7) {
g_Paks[device].unk004 = 5;
}
var800a2380[arg0].unk2b4 = -1;
g_Paks[device].unk2b4 = -1;
}
}
if (arg0) {
if (device) {
// empty
}
}
@ -1518,14 +1518,14 @@ glabel joy000153c4
);
#endif
s32 joy000155b4(s8 index)
s32 joy000155b4(s8 device)
{
return var800a2380[index].unk010;
return g_Paks[device].unk010;
}
s32 joy000155f4(s8 index)
s32 joy000155f4(s8 device)
{
return joy000155b4(index);
return joy000155b4(device);
}
void joy0001561c(void)
@ -1533,44 +1533,44 @@ void joy0001561c(void)
s32 i;
for (i = 0; i < 4; i++) {
if (var800a2380[i].unk010 == 11 && var800a2380[i].unk000 == 1) {
switch (var800a2380[i].unk004) {
if (g_Paks[i].unk010 == 11 && g_Paks[i].unk000 == 1) {
switch (g_Paks[i].unk004) {
case 3:
var800a2380[i].unk004 = 4;
g_Paks[i].unk004 = 4;
osMotorStart(PFS(i));
break;
case 4:
if (var800a2380[i].unk284 != -1) {
if (var800a2380[i].unk28c == 0) {
if (g_Paks[i].unk284 != -1) {
if (g_Paks[i].unk28c == 0) {
osMotorStart(PFS(i));
} else if (var800a2380[i].unk284 == var800a2380[i].unk28c) {
} else if (g_Paks[i].unk284 == g_Paks[i].unk28c) {
osMotorStop(PFS(i));
}
var800a2380[i].unk28c++;
g_Paks[i].unk28c++;
if (var800a2380[i].unk288 == var800a2380[i].unk28c) {
var800a2380[i].unk28c = 0;
if (g_Paks[i].unk288 == g_Paks[i].unk28c) {
g_Paks[i].unk28c = 0;
}
}
var800a2380[i].unk2b4--;
g_Paks[i].unk2b4--;
if (var800a2380[i].unk2b4 < 0) {
var800a2380[i].unk004 = 5;
if (g_Paks[i].unk2b4 < 0) {
g_Paks[i].unk004 = 5;
}
break;
case 5:
var800a2380[i].unk004 = 2;
g_Paks[i].unk004 = 2;
osMotorStop(PFS(i));
break;
case 6:
osMotorStop(PFS(i));
var800a2380[i].unk004 = 7;
g_Paks[i].unk004 = 7;
break;
case 8:
var800a2380[i].unk004 = 2;
var800a2380[i].unk2b4 = -1;
g_Paks[i].unk004 = 2;
g_Paks[i].unk2b4 = -1;
break;
}
}