mirror of
https://github.com/n64decomp/mk64
synced 2026-08-04 16:59:41 -04:00
+47
-47
@@ -280,25 +280,25 @@ s32 func_80091D74(void) {
|
||||
}
|
||||
osPfsIsPlug(&gSIEventMesgQueue, &sp67);
|
||||
if (sp67 & 1) {
|
||||
if (osPfsInit(&gSIEventMesgQueue, &D_8018E868, 0)) {
|
||||
if (osPfsInit(&gSIEventMesgQueue, &gControllerPak1FileHandle, 0)) {
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (osPfsNumFiles(&D_8018E868, &D_8018EB78, &D_8018EB7C)) {
|
||||
if (osPfsNumFiles(&gControllerPak1FileHandle, &gControllerPak1NumFilesUsed, &gControllerPak1MaxWriteableFiles)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < 16; i++) {
|
||||
D_8018EB38[i] = osPfsFileState(&D_8018E868, i, D_8018E938 + i);
|
||||
D_8018EB38[i] = osPfsFileState(&gControllerPak1FileHandle, i, D_8018E938 + i);
|
||||
}
|
||||
|
||||
if (osPfsFreeBlocks(&D_8018E868, &gControllerPakNumPagesFree)) {
|
||||
if (osPfsFreeBlocks(&gControllerPak1FileHandle, &gControllerPak1NumPagesFree)) {
|
||||
return 0;
|
||||
}
|
||||
gControllerPakNumPagesFree >>= 8;
|
||||
gControllerPak1NumPagesFree >>= 8;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -307,7 +307,7 @@ void func_80091EE4(void) {
|
||||
s32 temp_s2;
|
||||
s32 tmp;
|
||||
|
||||
D_800E86F8 = 0;
|
||||
gControllerPak1State = BAD;
|
||||
tmp = func_800B5F30();
|
||||
|
||||
if ((D_8018EDFB != 0) && (tmp == 0)) {
|
||||
@@ -6947,7 +6947,7 @@ loop_3:
|
||||
return;
|
||||
case 0x69:
|
||||
func_800996BC(segmented_to_virtual_dupe(D_02004A0C), 0);
|
||||
if (controller_pak_status() == 0) {
|
||||
if (controller_pak_1_status() == PFS_NO_ERROR) {
|
||||
func_800B6708();
|
||||
return;
|
||||
}
|
||||
@@ -6962,7 +6962,7 @@ loop_3:
|
||||
return;
|
||||
case 0x8C:
|
||||
func_800996BC(segmented_to_virtual_dupe(D_02004A34), 0);
|
||||
if (controller_pak_status() == 0) {
|
||||
if (controller_pak_1_status() == PFS_NO_ERROR) {
|
||||
func_800B6708();
|
||||
return;
|
||||
}
|
||||
@@ -7054,7 +7054,7 @@ block_63:
|
||||
var_ra->unk1C = (s32) gTimeTrialDataCourseIndex;
|
||||
func_800996BC(segmented_to_virtual_dupe(D_02004A0C), 0);
|
||||
func_8006EF60();
|
||||
if (controller_pak_status) == 0) {
|
||||
if (controller_pak_1_status() == PFS_NO_ERROR) {
|
||||
func_800B6708();
|
||||
return;
|
||||
}
|
||||
@@ -8048,7 +8048,7 @@ void func_800A0DFC(void) {
|
||||
s32 var_s0;
|
||||
s32 var_s1;
|
||||
|
||||
var_s0 = gControllerPakNumPagesFree;
|
||||
var_s0 = gControllerPak1NumPagesFree;
|
||||
var_s1 = 0x00000110;
|
||||
do {
|
||||
temp_t6 = var_s0 % 10;
|
||||
@@ -12954,15 +12954,15 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800AA280.s")
|
||||
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
|
||||
s32 check_for_controller_pak(?); /* extern */
|
||||
extern s8 D_800E86AC;
|
||||
extern u16 D_800E86F0;
|
||||
extern u32 D_800E86F4;
|
||||
extern s8 D_800E86F8;
|
||||
extern u8 D_800F2E64;
|
||||
extern u8 D_800F2E74;
|
||||
extern OSPfs D_8018E868;
|
||||
extern s32 D_8018EB78;
|
||||
extern s32 D_8018EB7C;
|
||||
extern s32 D_8018EB84;
|
||||
extern u16 gCompanyCode;
|
||||
extern u32 gGameCode;
|
||||
extern s8 gControllerPak1State;
|
||||
extern u8 gGameName;
|
||||
extern u8 gExtCode;
|
||||
extern OSPfs gControllerPak1FileHandle;
|
||||
extern s32 gControllerPak1NumFilesUsed;
|
||||
extern s32 gControllerPak1MaxWriteableFiles;
|
||||
extern s32 gControllerPak1FileNote;
|
||||
extern s8 gMainMenuSelectionDepth;
|
||||
|
||||
void func_800AA2EC(struct_8018D9E0_entry *arg0) {
|
||||
@@ -12987,9 +12987,9 @@ void func_800AA2EC(struct_8018D9E0_entry *arg0) {
|
||||
case CONFIRM_OK_SELECTION_FROM_BACK_OUT:
|
||||
case TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT:
|
||||
if ((arg0->unk4 == 0) && (temp_v0 = D_8018EDF3, (temp_v0 == 1)) && (*(&D_800E86AC - 1 + temp_v0) == 1)) {
|
||||
if (D_800E86F8 != 0) {
|
||||
if (gControllerPak1State != 0) {
|
||||
sp20 = 0;
|
||||
temp_v0_2 = osPfsFindFile(&D_8018E868, D_800E86F0, D_800E86F4, &D_800F2E64, &D_800F2E74, &D_8018EB84);
|
||||
temp_v0_2 = osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, &gGameName, &gExtCode, &gControllerPak1FileNote);
|
||||
var_t1 = 0;
|
||||
switch (temp_v0_2) { /* switch 1; irregular */
|
||||
case 5: /* switch 1 */
|
||||
@@ -13000,17 +13000,17 @@ void func_800AA2EC(struct_8018D9E0_entry *arg0) {
|
||||
break;
|
||||
default: /* switch 1 */
|
||||
case 2: /* switch 1 */
|
||||
D_800E86F8 = 0;
|
||||
gControllerPak1State = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (var_t1 == 0) {
|
||||
if (D_800E86F8 == 0) {
|
||||
if (gControllerPak1State == 0) {
|
||||
if (check_for_controller_pak(0) == 0) {
|
||||
arg0->unk4 = 2;
|
||||
return;
|
||||
}
|
||||
temp_v0_3 = osPfsInit(&gSIEventMesgQueue, &D_8018E868, 0);
|
||||
temp_v0_3 = osPfsInit(&gSIEventMesgQueue, &gControllerPak1FileHandle, 0);
|
||||
if (temp_v0_3 != 0) {
|
||||
if (temp_v0_3 != 1) {
|
||||
if (temp_v0_3 != 4) {
|
||||
@@ -13031,28 +13031,28 @@ block_22:
|
||||
arg0->unk4 = 2;
|
||||
return;
|
||||
}
|
||||
D_800E86F8 = 1;
|
||||
if (osPfsFindFile(&D_8018E868, D_800E86F0, D_800E86F4, &D_800F2E64, &D_800F2E74, &D_8018EB84) == 0) {
|
||||
gControllerPak1State = 1;
|
||||
if (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, &gGameName, &gExtCode, &gControllerPak1FileNote) == 0) {
|
||||
arg0->unk4 = 1;
|
||||
return;
|
||||
}
|
||||
if (osPfsNumFiles(&D_8018E868, &D_8018EB78, &D_8018EB7C) != 0) {
|
||||
if (osPfsNumFiles(&gControllerPak1FileHandle, &gControllerPak1NumFilesUsed, &gControllerPak1MaxWriteableFiles) != 0) {
|
||||
arg0->unk4 = 3;
|
||||
return;
|
||||
}
|
||||
if (osPfsFreeBlocks(&D_8018E868, &gControllerPakNumPagesFree) != 0) {
|
||||
if (osPfsFreeBlocks(&gControllerPak1FileHandle, &gControllerPak1NumPagesFree) != 0) {
|
||||
arg0->unk4 = 3;
|
||||
return;
|
||||
}
|
||||
gControllerPakNumPagesFree = (s32) gControllerPakNumPagesFree >> 8;
|
||||
gControllerPak1NumPagesFree = (s32) gControllerPak1NumPagesFree >> 8;
|
||||
goto block_32;
|
||||
}
|
||||
block_32:
|
||||
if (D_8018EB7C >= D_8018EB78) {
|
||||
if (gControllerPak1MaxWriteableFiles >= gControllerPak1NumFilesUsed) {
|
||||
arg0->unk4 = 5;
|
||||
return;
|
||||
}
|
||||
if (gControllerPakNumPagesFree >= 0x79) {
|
||||
if (gControllerPak1NumPagesFree >= 0x79) {
|
||||
arg0->unk4 = 1;
|
||||
return;
|
||||
}
|
||||
@@ -14990,9 +14990,9 @@ void func_800AD2E8(struct_8018D9E0_entry *arg0) {
|
||||
if (temp_f0_3 < 4.2) {
|
||||
arg0->unk24 = (f32) (temp_f0_3 + 4.0);
|
||||
}
|
||||
if (D_800E86F8 != 0) {
|
||||
if (gControllerPak1State != 0) {
|
||||
sp28 = 0;
|
||||
temp_v0_6 = osPfsFindFile(&D_8018E868, D_800E86F0, D_800E86F4, D_800F2E64, D_800F2E74, &D_8018EB84);
|
||||
temp_v0_6 = osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, gGameName, gExtCode, &gControllerPak1FileNote);
|
||||
var_v1 = 0;
|
||||
switch (temp_v0_6) { /* switch 4; irregular */
|
||||
case 5: /* switch 4 */
|
||||
@@ -15007,12 +15007,12 @@ void func_800AD2E8(struct_8018D9E0_entry *arg0) {
|
||||
case 2: /* switch 4 */
|
||||
/* fallthrough */
|
||||
default: /* switch 4 */
|
||||
D_800E86F8 = 0;
|
||||
gControllerPak1State = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (var_v1 == 0) {
|
||||
if (D_800E86F8 == 0) {
|
||||
if (gControllerPak1State == 0) {
|
||||
sp28 = var_v1;
|
||||
temp_v0_7 = func_800B5F30();
|
||||
var_v1_2 = var_v1;
|
||||
@@ -15044,7 +15044,7 @@ void func_800AD2E8(struct_8018D9E0_entry *arg0) {
|
||||
play_sound2(0x4900FF07);
|
||||
return;
|
||||
}
|
||||
if (osPfsFindFile(&D_8018E868, D_800E86F0, D_800E86F4, D_800F2E64, D_800F2E74, &D_8018EB84) == 0) {
|
||||
if (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, gGameName, gExtCode, &gControllerPak1FileNote) == 0) {
|
||||
func_800B6708();
|
||||
arg0->unk4 = func_800B6348((gCupSelection * 4) + gCupCourseSelection) + 0x11;
|
||||
play_sound2(0x49008001);
|
||||
@@ -15053,12 +15053,12 @@ void func_800AD2E8(struct_8018D9E0_entry *arg0) {
|
||||
goto block_56;
|
||||
}
|
||||
block_56:
|
||||
if (D_8018EB7C >= D_8018EB78) {
|
||||
if (gControllerPak1MaxWriteableFiles >= gControllerPak1NumFilesUsed) {
|
||||
arg0->unk4 = 0x0000000E;
|
||||
play_sound2(0x4900FF07);
|
||||
return;
|
||||
}
|
||||
if (gControllerPakNumPagesFree >= 0x79) {
|
||||
if (gControllerPak1NumPagesFree >= 0x79) {
|
||||
arg0->unk4 = 0x00000013;
|
||||
arg0->unk1C = 0;
|
||||
play_sound2(0x49008001);
|
||||
@@ -15293,9 +15293,9 @@ void func_800AE218(struct_8018D9E0_entry *arg0) {
|
||||
if (temp_f0_3 < 4.2) {
|
||||
arg0->unk24 = (f32) (temp_f0_3 + 4.0);
|
||||
}
|
||||
if (D_800E86F8 != 0) {
|
||||
if (gControllerPak1State != 0) {
|
||||
sp28 = 0;
|
||||
temp_v0_2 = osPfsFindFile(&D_8018E868, D_800E86F0, D_800E86F4, D_800F2E64, D_800F2E74, &D_8018EB84);
|
||||
temp_v0_2 = osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, gGameName, gExtCode, &gControllerPak1FileNote);
|
||||
var_v1 = 0;
|
||||
switch (temp_v0_2) { /* switch 3; irregular */
|
||||
case 5: /* switch 3 */
|
||||
@@ -15308,7 +15308,7 @@ void func_800AE218(struct_8018D9E0_entry *arg0) {
|
||||
case 2: /* switch 3 */
|
||||
/* fallthrough */
|
||||
default: /* switch 3 */
|
||||
D_800E86F8 = 0;
|
||||
gControllerPak1State = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -15316,7 +15316,7 @@ void func_800AE218(struct_8018D9E0_entry *arg0) {
|
||||
play_sound2(0x49008001);
|
||||
return;
|
||||
}
|
||||
if (D_800E86F8 == 0) {
|
||||
if (gControllerPak1State == 0) {
|
||||
sp28 = var_v1;
|
||||
temp_v0_3 = func_800B5F30();
|
||||
var_v1_2 = var_v1;
|
||||
@@ -15348,7 +15348,7 @@ void func_800AE218(struct_8018D9E0_entry *arg0) {
|
||||
play_sound2(0x4900FF07);
|
||||
return;
|
||||
}
|
||||
if (osPfsFindFile(&D_8018E868, D_800E86F0, D_800E86F4, D_800F2E64, D_800F2E74, &D_8018EB84) == 0) {
|
||||
if (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, gGameName, gExtCode, &gControllerPak1FileNote) == 0) {
|
||||
func_800B6708();
|
||||
arg0->unk4 = func_800B6348((gCupSelection * 4) + gCupCourseSelection) + 0x1E;
|
||||
play_sound2(0x49008001);
|
||||
@@ -15357,12 +15357,12 @@ void func_800AE218(struct_8018D9E0_entry *arg0) {
|
||||
goto block_49;
|
||||
}
|
||||
block_49:
|
||||
if (D_8018EB7C >= D_8018EB78) {
|
||||
if (gControllerPak1MaxWriteableFiles >= gControllerPak1NumFilesUsed) {
|
||||
arg0->unk4 = 0x00000018;
|
||||
play_sound2(0x4900FF07);
|
||||
return;
|
||||
}
|
||||
if (gControllerPakNumPagesFree >= 0x79) {
|
||||
if (gControllerPak1NumPagesFree >= 0x79) {
|
||||
arg0->unk4 = 0x00000020;
|
||||
arg0->unk1C = 0;
|
||||
play_sound2(0x49008001);
|
||||
@@ -15520,7 +15520,7 @@ block_49:
|
||||
break;
|
||||
case 40: /* switch 1 */
|
||||
if (arg0->unk1C == 1) {
|
||||
if (osPfsFindFile(&D_8018E868, D_800E86F0, D_800E86F4, D_800F2E64, D_800F2E74, &D_8018EB84) != 0) {
|
||||
if (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, gGameName, gExtCode, &gControllerPak1FileNote) != 0) {
|
||||
arg0->unk4 = 0x00000029;
|
||||
play_sound2(0x4900FF07);
|
||||
return;
|
||||
@@ -15598,7 +15598,7 @@ void func_800AEDBC(struct_8018D9E0_entry *arg0) {
|
||||
if (arg0->unk1C != gTimeTrialDataCourseIndex) {
|
||||
arg0->unk1C = (s32) gTimeTrialDataCourseIndex;
|
||||
func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E7E34[gCupCourseOrder[gTimeTrialDataCourseIndex / 4][gTimeTrialDataCourseIndex % 4]]));
|
||||
if (controller_pak_status() == 0) {
|
||||
if (controller_pak_1_status() == PFS_NO_ERROR) {
|
||||
func_800B6708();
|
||||
} else {
|
||||
D_8018EE10[0].ghostDataSaved = 0;
|
||||
|
||||
+132
-151
@@ -17,18 +17,18 @@
|
||||
#define EEPROM_ADDR(ptr) (((uintptr_t)(ptr) - (uintptr_t)(&D_8018EB90)) / 8)
|
||||
|
||||
/*** data ***/
|
||||
u16 D_800E86F0 = PFS_COMPANY_CODE('0', '1');
|
||||
u32 D_800E86F4 = PFS_GAME_CODE('N', 'K', 'T', 'J');
|
||||
s8 D_800E86F8 = 0;
|
||||
s8 D_800E86FC = 0;
|
||||
u16 gCompanyCode = PFS_COMPANY_CODE('0', '1');
|
||||
u32 gGameCode = PFS_GAME_CODE('N', 'K', 'T', 'J');
|
||||
s8 gControllerPak1State = BAD;
|
||||
s8 sControllerPak2State = BAD;
|
||||
|
||||
/*** rodata ***/
|
||||
// default time trial records?
|
||||
const u8 D_800F2E60[4] = {0xc0, 0x27, 0x09, 0x00};
|
||||
// osPfsFindFile -> game_name ("MARIOKART64" in nosFont)
|
||||
const u8 D_800F2E64[] = {0x26, 0x1a, 0x2b, 0x22, 0x28, 0x24, 0x1a, 0x2b, 0x2d, 0x16, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||
// osPfsFindFile -> gGameName ("MARIOKART64" in nosFont)
|
||||
const u8 gGameName[] = {0x26, 0x1a, 0x2b, 0x22, 0x28, 0x24, 0x1a, 0x2b, 0x2d, 0x16, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||
// ext_name param to osPfsFindFile (four total bytes, but only one is setable)
|
||||
const u8 D_800F2E74[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||
const u8 gExtCode[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||
|
||||
/*** forward declarations ***/
|
||||
s32 func_800B58C4(s32 arg0);
|
||||
@@ -702,191 +702,172 @@ s32 validate_save_data_checksum_backup(void)
|
||||
}
|
||||
|
||||
// Check if controller has a Controller Pak connected.
|
||||
// Return 1 if it does, otherwise return 0.
|
||||
// Return PAK if it does, otherwise return NO_PAK.
|
||||
s32 check_for_controller_pak(s32 controller) {
|
||||
u8 sp1F;
|
||||
u8 controllerBitpattern;
|
||||
UNUSED s32 phi_v0;
|
||||
|
||||
if ((controller >= 4) || (controller < 0)) {
|
||||
return 0;
|
||||
if ((controller >= MAXCONTROLLERS) || (controller < 0)) {
|
||||
return NO_PAK;
|
||||
}
|
||||
|
||||
osPfsIsPlug(&gSIEventMesgQueue, &sp1F);
|
||||
|
||||
if ((sp1F & (1 << controller)) != 0) {
|
||||
return 1;
|
||||
osPfsIsPlug(&gSIEventMesgQueue, &controllerBitpattern);
|
||||
|
||||
if ((controllerBitpattern & (1 << controller)) != 0) {
|
||||
return PAK;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return NO_PAK;
|
||||
}
|
||||
|
||||
s32 controller_pak_status(void) {
|
||||
if (D_800E86F8 != 0) {
|
||||
switch (osPfsFindFile(&D_8018E868, D_800E86F0, D_800E86F4, D_800F2E64, D_800F2E74, &D_8018EB84)) {
|
||||
case PFS_READ:
|
||||
return 0;
|
||||
// gives status info about controller pak insterted in controller 1
|
||||
s32 controller_pak_1_status(void) {
|
||||
if (gControllerPak1State) {
|
||||
switch (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, gGameName, gExtCode, &gControllerPak1FileNote)) {
|
||||
case PFS_NO_ERROR:
|
||||
return PFS_NO_ERROR;
|
||||
case PFS_ERR_INVALID:
|
||||
break;
|
||||
case PFS_ERR_NEW_PACK:
|
||||
D_800E86F8 = 0;
|
||||
gControllerPak1State = BAD;
|
||||
break;
|
||||
default:
|
||||
D_800E86F8 = 0;
|
||||
gControllerPak1State = BAD;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (D_800E86F8 == 0) {
|
||||
s32 ret;
|
||||
if (check_for_controller_pak(0) == 0) {
|
||||
return 1;
|
||||
if (!gControllerPak1State) {
|
||||
s32 errorCode;
|
||||
if (check_for_controller_pak(CONTROLLER_1) == NO_PAK) {
|
||||
return PFS_NO_PAK_INSERTED;
|
||||
}
|
||||
ret = osPfsInit(&gSIEventMesgQueue, &D_8018E868, 0);
|
||||
errorCode = osPfsInit(&gSIEventMesgQueue, &gControllerPak1FileHandle, CONTROLLER_1);
|
||||
|
||||
if (ret) {
|
||||
switch(ret) {
|
||||
if (errorCode) {
|
||||
switch(errorCode) {
|
||||
case PFS_ERR_NOPACK:
|
||||
case PFS_ERR_DEVICE:
|
||||
return 1;
|
||||
return PFS_NO_PAK_INSERTED;
|
||||
case PFS_ERR_ID_FATAL:
|
||||
return 2;
|
||||
return PFS_PAK_BAD_READ;
|
||||
default:
|
||||
case PFS_ERR_CONTRFAIL:
|
||||
return 2;
|
||||
return PFS_PAK_BAD_READ;
|
||||
}
|
||||
}
|
||||
|
||||
D_800E86F8 = 1;
|
||||
if (osPfsFindFile(&D_8018E868, D_800E86F0, D_800E86F4, D_800F2E64, D_800F2E74, &D_8018EB84) == 0) {
|
||||
return 0;
|
||||
gControllerPak1State = OK;
|
||||
if (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, gGameName, gExtCode, &gControllerPak1FileNote) == PFS_NO_ERROR) {
|
||||
return PFS_NO_ERROR;
|
||||
}
|
||||
if (osPfsNumFiles(&D_8018E868, &D_8018EB78, &D_8018EB7C) != 0) {
|
||||
return 2;
|
||||
if (osPfsNumFiles(&gControllerPak1FileHandle, &gControllerPak1NumFilesUsed, &gControllerPak1MaxWriteableFiles) != PFS_NO_ERROR) {
|
||||
return PFS_PAK_BAD_READ;
|
||||
}
|
||||
if (osPfsFreeBlocks(&D_8018E868, &gControllerPakNumPagesFree) != 0) {
|
||||
return 2;
|
||||
if (osPfsFreeBlocks(&gControllerPak1FileHandle, &gControllerPak1NumPagesFree) != PFS_NO_ERROR) {
|
||||
return PFS_PAK_BAD_READ;
|
||||
}
|
||||
gControllerPakNumPagesFree = (s32) gControllerPakNumPagesFree >> 8;
|
||||
gControllerPak1NumPagesFree = gControllerPak1NumPagesFree >> 8;
|
||||
}
|
||||
|
||||
if (D_8018EB7C >= D_8018EB78) {
|
||||
return 4;
|
||||
if (gControllerPak1MaxWriteableFiles >= gControllerPak1NumFilesUsed) {
|
||||
return PFS_FILE_OVERFLOW;
|
||||
}
|
||||
if (gControllerPakNumPagesFree >= 0x79) {
|
||||
return -1;
|
||||
if (gControllerPak1NumPagesFree >= 0x79) {
|
||||
return PFS_INVALID_DATA;
|
||||
}
|
||||
return 4;
|
||||
return PFS_FILE_OVERFLOW;
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit d9d3d6575355663122de59f6b2882d8f174e2355 on Dec-11-2022
|
||||
s32 check_for_controller_pak(?); /* extern */
|
||||
|
||||
s32 func_800B5DA4(void) {
|
||||
s32 temp_v0;
|
||||
s32 temp_v0_2;
|
||||
s32 temp_v0_3;
|
||||
s8 var_v0;
|
||||
|
||||
var_v0 = D_800E86FC;
|
||||
if (var_v0 != 0) {
|
||||
temp_v0 = osPfsFindFile(&D_8018E8D0, D_800E86F0, D_800E86F4, D_800F2E64, D_800F2E74, &D_8018EB88);
|
||||
switch (temp_v0) { /* switch 1; irregular */
|
||||
case 0: /* switch 1 */
|
||||
return 0;
|
||||
case 5: /* switch 1 */
|
||||
return -1;
|
||||
default: /* switch 1 */
|
||||
case 2: /* switch 1 */
|
||||
D_800E86FC = 0;
|
||||
var_v0 = 0;
|
||||
goto block_8;
|
||||
// gives status info about controller pak insterted in controller 2
|
||||
s32 controller_pak_2_status(void) {
|
||||
s32 stateBorrow = sControllerPak2State;
|
||||
|
||||
if (stateBorrow) {
|
||||
switch (osPfsFindFile(&gControllerPak2FileHandle, gCompanyCode, gGameCode, gGameName, gExtCode, &gControllerPak2FileNote)) {
|
||||
case PFS_NO_ERROR:
|
||||
return PFS_NO_ERROR;
|
||||
case PFS_ERR_INVALID:
|
||||
return PFS_INVALID_DATA;
|
||||
default:
|
||||
case PFS_ERR_NEW_PACK:
|
||||
sControllerPak2State = BAD;
|
||||
stateBorrow = BAD;
|
||||
}
|
||||
} else {
|
||||
block_8:
|
||||
if (var_v0 == 0) {
|
||||
if (check_for_controller_pak(1) == 0) {
|
||||
return 1;
|
||||
}
|
||||
if (!stateBorrow) {
|
||||
s32 errorCode;
|
||||
if (check_for_controller_pak(CONTROLLER_2) == NO_PAK) {
|
||||
return PFS_NO_PAK_INSERTED;
|
||||
}
|
||||
|
||||
errorCode = osPfsInit(&gSIEventMesgQueue, &gControllerPak2FileHandle, CONTROLLER_2);
|
||||
if (errorCode) {
|
||||
switch (errorCode) {
|
||||
case PFS_ERR_NOPACK:
|
||||
case PFS_ERR_DEVICE:
|
||||
return PFS_NO_PAK_INSERTED;
|
||||
case PFS_ERR_ID_FATAL:
|
||||
return PFS_PAK_BAD_READ;
|
||||
case PFS_ERR_CONTRFAIL:
|
||||
default:
|
||||
return PFS_PAK_BAD_READ;
|
||||
}
|
||||
temp_v0_2 = osPfsInit(&gSIEventMesgQueue, &D_8018E8D0, 1);
|
||||
if (temp_v0_2 != 0) {
|
||||
if (temp_v0_2 != 1) {
|
||||
if (temp_v0_2 != 4) {
|
||||
if (temp_v0_2 != 0x0000000A) {
|
||||
if (temp_v0_2 == 0x0000000B) {
|
||||
goto block_16;
|
||||
}
|
||||
goto block_18;
|
||||
}
|
||||
goto block_25;
|
||||
}
|
||||
block_18:
|
||||
goto block_25;
|
||||
}
|
||||
block_16:
|
||||
return 1;
|
||||
}
|
||||
D_800E86FC = 1;
|
||||
temp_v0_3 = osPfsFindFile(&D_8018E8D0, D_800E86F0, D_800E86F4, D_800F2E64, D_800F2E74, &D_8018EB88);
|
||||
switch (temp_v0_3) { /* irregular */
|
||||
case 0:
|
||||
return 0;
|
||||
case 5:
|
||||
return -1;
|
||||
case 2:
|
||||
block_25:
|
||||
var_v0 = 2;
|
||||
/* Duplicate return node #26. Try simplifying control flow for better match */
|
||||
return (s32) var_v0;
|
||||
}
|
||||
} else {
|
||||
return (s32) var_v0;
|
||||
}
|
||||
|
||||
sControllerPak2State = OK;
|
||||
|
||||
switch (osPfsFindFile(&gControllerPak2FileHandle, gCompanyCode, gGameCode, gGameName, gExtCode, &gControllerPak2FileNote)) {
|
||||
case PFS_NO_ERROR:
|
||||
return PFS_NO_ERROR;
|
||||
case PFS_ERR_INVALID:
|
||||
return PFS_INVALID_DATA;
|
||||
case PFS_ERR_NEW_PACK:
|
||||
default:
|
||||
return PFS_PAK_BAD_READ;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/menus/func_800B5DA4.s")
|
||||
#endif
|
||||
|
||||
s32 func_800B5F30(void) {
|
||||
s32 sp1C;
|
||||
s32 errorCode;
|
||||
|
||||
if (D_800E86F8 != 0) {
|
||||
return -4;
|
||||
if (gControllerPak1State) {
|
||||
return PFS_PAK_STATE_OK;
|
||||
}
|
||||
if (check_for_controller_pak(0) != 0) {
|
||||
sp1C = osPfsInit(&gSIEventMesgQueue, &D_8018E868, 0);
|
||||
if (osPfsNumFiles(&D_8018E868, &D_8018EB78, &D_8018EB7C) != 0) {
|
||||
D_800E86F8 = 0;
|
||||
return -2;
|
||||
if (check_for_controller_pak(CONTROLLER_1) != NO_PAK) {
|
||||
errorCode = osPfsInit(&gSIEventMesgQueue, &gControllerPak1FileHandle, CONTROLLER_1);
|
||||
if (osPfsNumFiles(&gControllerPak1FileHandle, &gControllerPak1NumFilesUsed, &gControllerPak1MaxWriteableFiles) != PFS_NO_ERROR) {
|
||||
gControllerPak1State = BAD;
|
||||
return PFS_NUM_FILES_ERROR;
|
||||
}
|
||||
if (osPfsFreeBlocks(&D_8018E868, &gControllerPakNumPagesFree) != 0) {
|
||||
D_800E86F8 = 0;
|
||||
return -3;
|
||||
if (osPfsFreeBlocks(&gControllerPak1FileHandle, &gControllerPak1NumPagesFree) != PFS_NO_ERROR) {
|
||||
gControllerPak1State = BAD;
|
||||
return PFS_FREE_BLOCKS_ERROR;
|
||||
}
|
||||
gControllerPakNumPagesFree = gControllerPakNumPagesFree >> 8;
|
||||
if (sp1C == 0) {
|
||||
D_800E86F8 = 1;
|
||||
gControllerPak1NumPagesFree = gControllerPak1NumPagesFree >> 8;
|
||||
if (errorCode == PFS_NO_ERROR) {
|
||||
gControllerPak1State = OK;
|
||||
}
|
||||
return sp1C;
|
||||
return errorCode;
|
||||
}
|
||||
return -1;
|
||||
return PAK_NOT_INSERTED;
|
||||
}
|
||||
|
||||
s32 func_800B6014(void) {
|
||||
s32 temp_v0;
|
||||
s32 errorCode;
|
||||
|
||||
if (D_800E86FC != 0) {
|
||||
return -4;
|
||||
if (sControllerPak2State) {
|
||||
return PFS_PAK_STATE_OK;
|
||||
}
|
||||
if (check_for_controller_pak(1) != 0) {
|
||||
temp_v0 = osPfsInit(&gSIEventMesgQueue, &D_8018E8D0, 1);
|
||||
if (temp_v0 == 0) {
|
||||
D_800E86FC = 1;
|
||||
if (check_for_controller_pak(CONTROLLER_2) != NO_PAK) {
|
||||
errorCode = osPfsInit(&gSIEventMesgQueue, &gControllerPak2FileHandle, CONTROLLER_2);
|
||||
if (errorCode == PFS_NO_ERROR) {
|
||||
sControllerPak2State = OK;
|
||||
}
|
||||
return temp_v0;
|
||||
return errorCode;
|
||||
}
|
||||
return -1;
|
||||
return PAK_NOT_INSERTED;
|
||||
}
|
||||
|
||||
s32 func_800B6088(s32 arg0) {
|
||||
@@ -894,7 +875,7 @@ s32 func_800B6088(s32 arg0) {
|
||||
|
||||
temp_v1 = &D_8018EE10[arg0];
|
||||
temp_v1->checksum = func_800B6828(arg0);
|
||||
return osPfsReadWriteFile(&D_8018E868, D_8018EB84, PFS_WRITE, arg0 * 0x80 /* 0x80 == sizeof(struct_8018EE10_entry) */, sizeof(struct_8018EE10_entry), (u8*) temp_v1);
|
||||
return osPfsReadWriteFile(&gControllerPak1FileHandle, gControllerPak1FileNote, PFS_WRITE, arg0 * 0x80 /* 0x80 == sizeof(struct_8018EE10_entry) */, sizeof(struct_8018EE10_entry), (u8*) temp_v1);
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
@@ -973,7 +954,7 @@ s32 func_800B6178(s32 arg0) {
|
||||
var_s1 += 4;
|
||||
} while (var_s0 != 0x3C);
|
||||
} else {
|
||||
var_v0 = osPfsReadWriteFile(&D_8018E868, D_8018EB84, 1U, (arg0 * 0x3C00) + 0x100, 0x00003C00, (u8 *) D_800DC714);
|
||||
var_v0 = osPfsReadWriteFile(&gControllerPak1FileHandle, gControllerPak1FileNote, 1U, (arg0 * 0x3C00) + 0x100, 0x00003C00, (u8 *) D_800DC714);
|
||||
var_v1 = var_v0;
|
||||
if (var_v0 == 0) {
|
||||
temp_s3->ghostDataSaved = 1;
|
||||
@@ -1083,7 +1064,7 @@ s32 func_800B64EC(s32 arg0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
temp_v0 = osPfsReadWriteFile(&D_8018E868, D_8018EB84, PFS_READ, (arg0 * 0x3C00) + 0x100, 0x3C00, (u8 *) D_800DC714);
|
||||
temp_v0 = osPfsReadWriteFile(&gControllerPak1FileHandle, gControllerPak1FileNote, PFS_READ, (arg0 * 0x3C00) + 0x100, 0x3C00, (u8 *) D_800DC714);
|
||||
if (temp_v0 == 0)
|
||||
{
|
||||
phi_s1 = (u8 *) &D_8018EE10[arg0]; temp_s0 = 0; while (1) {
|
||||
@@ -1121,7 +1102,7 @@ s32 func_800B65F4(s32 arg0, s32 arg1) {
|
||||
if ((arg0 != 0) && (arg0 != 1)) {
|
||||
return -1;
|
||||
}
|
||||
temp_v0 = osPfsReadWriteFile(&D_8018E8D0, D_8018EB88, 0U, (arg0 * 0x3C00) + 0x100, 0x00003C00, (u8 *) D_800DC714);
|
||||
temp_v0 = osPfsReadWriteFile(&gControllerPak2FileHandle, gControllerPak2FileNote, 0U, (arg0 * 0x3C00) + 0x100, 0x00003C00, (u8 *) D_800DC714);
|
||||
sp34 = temp_v0;
|
||||
if (temp_v0 == 0) {
|
||||
temp_s3 = &D_8018D9C0[arg0];
|
||||
@@ -1153,7 +1134,7 @@ GLOBAL_ASM("asm/non_matchings/menus/func_800B65F4.s")
|
||||
void func_800B6708(void) {
|
||||
s32 temp_s0;
|
||||
|
||||
osPfsReadWriteFile(&D_8018E868, D_8018EB84, PFS_READ, 0, 0x100 /* 2*sizeof(struct_8018EE10_entry) ? */, (u8*) &D_8018EE10);
|
||||
osPfsReadWriteFile(&gControllerPak1FileHandle, gControllerPak1FileNote, PFS_READ, 0, 0x100 /* 2*sizeof(struct_8018EE10_entry) ? */, (u8*) &D_8018EE10);
|
||||
|
||||
for (temp_s0 = 0; temp_s0 < 2; ++temp_s0) {
|
||||
if (D_8018EE10[temp_s0].checksum != func_800B6828(temp_s0)) {
|
||||
@@ -1168,7 +1149,7 @@ void func_800B6798(void) {
|
||||
|
||||
tmp = (u8*) D_8018D9C0;
|
||||
|
||||
osPfsReadWriteFile(&D_8018E8D0, D_8018EB88, PFS_READ, 0, 0x100 /* 2*sizeof(struct_8018EE10_entry) ? */, tmp);
|
||||
osPfsReadWriteFile(&gControllerPak2FileHandle, gControllerPak2FileNote, PFS_READ, 0, 0x100 /* 2*sizeof(struct_8018EE10_entry) ? */, tmp);
|
||||
|
||||
for (temp_s0 = 0; temp_s0 < 2; ++temp_s0) {
|
||||
// if (D_8018D9C0[temp_s0]->checksum != func_800B68F4(temp_s0)) {
|
||||
@@ -1263,7 +1244,7 @@ s32 func_800B69BC(s32 arg0) {
|
||||
}
|
||||
offset = arg0 << 7;
|
||||
plz->checksum = func_800B6828(arg0);
|
||||
return osPfsReadWriteFile(&D_8018E868, D_8018EB84, PFS_WRITE, offset, sizeof(struct_8018EE10_entry), (u8 *)plz);
|
||||
return osPfsReadWriteFile(&gControllerPak1FileHandle, gControllerPak1FileNote, PFS_WRITE, offset, sizeof(struct_8018EE10_entry), (u8 *)plz);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/menus/func_800B69BC.s")
|
||||
@@ -1274,7 +1255,7 @@ s32 func_800B6A68(void) {
|
||||
s32 ret;
|
||||
s32 i;
|
||||
|
||||
ret = osPfsAllocateFile(&D_8018E868, D_800E86F0, D_800E86F4, (u8 *)&D_800F2E64, (u8 *)&D_800F2E74, 0x7900, &D_8018EB84);
|
||||
ret = osPfsAllocateFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, (u8 *)&gGameName, (u8 *)&gExtCode, 0x7900, &gControllerPak1FileNote);
|
||||
if (ret == 0) {
|
||||
for (i = 0; i < 2; i++) {
|
||||
func_800B69BC(i);
|
||||
@@ -1285,15 +1266,15 @@ s32 func_800B6A68(void) {
|
||||
}
|
||||
|
||||
void func_8800B6AF8(void) {
|
||||
if (check_for_controller_pak(0)
|
||||
&& osPfsInit(&gSIEventMesgQueue, &D_8018E868, 0) == 0
|
||||
&& osPfsFindFile(&D_8018E868, D_800E86F0, D_800E86F4, (u8 *)D_800F2E64, (u8 *)D_800F2E74, &D_8018EB84)
|
||||
&& osPfsNumFiles(&D_8018E868, &D_8018EB78, &D_8018EB7C) == 0
|
||||
&& D_8018EB7C < D_8018EB78
|
||||
&& osPfsFreeBlocks(&D_8018E868, &gControllerPakNumPagesFree) == 0
|
||||
if (check_for_controller_pak(CONTROLLER_1)
|
||||
&& osPfsInit(&gSIEventMesgQueue, &gControllerPak1FileHandle, 0) == 0
|
||||
&& osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, (u8 *)gGameName, (u8 *)gExtCode, &gControllerPak1FileNote)
|
||||
&& osPfsNumFiles(&gControllerPak1FileHandle, &gControllerPak1NumFilesUsed, &gControllerPak1MaxWriteableFiles) == 0
|
||||
&& gControllerPak1MaxWriteableFiles < gControllerPak1NumFilesUsed
|
||||
&& osPfsFreeBlocks(&gControllerPak1FileHandle, &gControllerPak1NumPagesFree) == 0
|
||||
) {
|
||||
gControllerPakNumPagesFree >>= 8;
|
||||
if (gControllerPakNumPagesFree >= 0x79) {
|
||||
gControllerPak1NumPagesFree >>= 8;
|
||||
if (gControllerPak1NumPagesFree >= 0x79) {
|
||||
func_800B6A68();
|
||||
}
|
||||
}
|
||||
|
||||
+35
-14
@@ -5,6 +5,27 @@
|
||||
#include "common_structs.h"
|
||||
#include <types.h>
|
||||
|
||||
/* define symbols */
|
||||
|
||||
#define CONTROLLER_1 0
|
||||
#define CONTROLLER_2 1
|
||||
#define CONTROLLER_3 2
|
||||
#define CONTROLLER_4 3
|
||||
|
||||
#define PFS_NO_ERROR 0 // controller pak no error return
|
||||
#define PFS_NO_PAK_INSERTED 1 // no pak pressent or wrong device inserted into the controller
|
||||
#define PFS_PAK_BAD_READ 2 // controller pak error while data transfer
|
||||
#define PFS_FILE_OVERFLOW 4 // too many files written to in the controller pak
|
||||
#define PFS_INVALID_DATA -1 // bad arguments, game note does not exist, osPfsInit was not called.
|
||||
// controller pak test functions
|
||||
#define PFS_NUM_FILES_ERROR -2
|
||||
#define PFS_FREE_BLOCKS_ERROR -3
|
||||
#define PFS_PAK_STATE_OK -4
|
||||
|
||||
#define NO_PAK 0
|
||||
#define PAK 1
|
||||
#define PAK_NOT_INSERTED -1
|
||||
|
||||
union GrandPrixPointsUnion
|
||||
{
|
||||
u8 grandPrixPointsArray[4];
|
||||
@@ -46,8 +67,8 @@ u8 compute_save_data_checksum_backup_1(void);
|
||||
u8 compute_save_data_checksum_backup_2(void);
|
||||
s32 validate_save_data_checksum_backup();
|
||||
s32 func_800B5B2C(s32);
|
||||
s32 controller_pak_status(void);
|
||||
s32 func_800B5DA4(void);
|
||||
s32 controller_pak_1_status(void);
|
||||
s32 controller_pak_2_status(void);
|
||||
s32 func_800B5F30();
|
||||
s32 func_800B6014();
|
||||
s32 func_800B6088(s32);
|
||||
@@ -67,9 +88,9 @@ s32 func_800B6A68();
|
||||
|
||||
extern u32* D_800DC714;
|
||||
|
||||
extern u16 D_800E86F0;
|
||||
extern u32 D_800E86F4; // osPfs gamecode
|
||||
extern s8 D_800E86F8;
|
||||
extern u16 gCompanyCode;
|
||||
extern u32 gGameCode; // osPfs gamecode
|
||||
extern s8 gControllerPak1State; // Current state of Controller Pak 1
|
||||
extern struct_8018EE10_entry D_8018EE10[];
|
||||
extern struct_8018EE10_entry *D_8018D9C0;
|
||||
extern u8 D_8018ED16; // D_8018EB90.checksum[1]
|
||||
@@ -78,22 +99,22 @@ extern u8 D_8018ED4E; // D_8018EB90.onlyBestTimeTrialRecords[0].unknown
|
||||
extern union GrandPrixPointsUnion D_8018ED10; // Direct reference to the grandPrixPoints section of save data
|
||||
extern union GrandPrixPointsUnion D_8018ED88; // D_8018EB90.grandPrixPointsBackup[0]
|
||||
|
||||
extern s8 D_800E86FC;
|
||||
extern s8 sControllerPak2State; // Current state of the Controller Pak 2
|
||||
extern const u8 D_800F2E60[];
|
||||
extern const u8 D_800F2E64[];
|
||||
extern const u8 D_800F2E74[];
|
||||
extern const u8 gGameName[];
|
||||
extern const u8 gExtCode[];
|
||||
extern OSMesgQueue gSIEventMesgQueue; // D_8014F0B8
|
||||
extern u16 D_80162DD6;
|
||||
extern s32 D_80162DE0;
|
||||
extern s32 D_80162DFC;
|
||||
extern OSPfs D_8018E868;
|
||||
extern OSPfs D_8018E8D0;
|
||||
extern OSPfs gControllerPak1FileHandle;
|
||||
extern OSPfs gControllerPak2FileHandle;
|
||||
extern OSPfsState D_8018E938[];
|
||||
extern s32 D_8018EB38[16];
|
||||
extern s32 D_8018EB78;
|
||||
extern s32 D_8018EB7C;
|
||||
extern s32 D_8018EB84; // osPfs file_no receiver/out param
|
||||
extern s32 D_8018EB88;
|
||||
extern s32 gControllerPak1NumFilesUsed;
|
||||
extern s32 gControllerPak1MaxWriteableFiles;
|
||||
extern s32 gControllerPak1FileNote; // osPfs file_no receiver/out param
|
||||
extern s32 gControllerPak2FileNote;
|
||||
extern SaveData D_8018EB90;
|
||||
extern u8 D_8018ED11;
|
||||
extern u8 D_8018ED12;
|
||||
|
||||
+20
-20
@@ -303,44 +303,44 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
|
||||
}
|
||||
break;
|
||||
case 0x17:
|
||||
switch(func_800B5DA4()) {
|
||||
case -1:
|
||||
switch(controller_pak_2_status()) {
|
||||
case PFS_INVALID_DATA:
|
||||
D_8018EDEC = 0x2B;
|
||||
play_sound2(SOUND_MENU_FILE_NOT_FOUND);
|
||||
return;
|
||||
case 0:
|
||||
case PFS_NO_ERROR:
|
||||
func_800B6798();
|
||||
sp2C = controller_pak_status();
|
||||
sp2C = controller_pak_1_status();
|
||||
switch (sp2C) {
|
||||
case -1:
|
||||
case PFS_INVALID_DATA:
|
||||
D_8018EDEC = 0x46;
|
||||
sp38->unk4 = 0;
|
||||
play_sound2(SOUND_MENU_SELECT);
|
||||
break;
|
||||
case 0:
|
||||
case PFS_NO_ERROR:
|
||||
func_800B6708();
|
||||
break;
|
||||
case 1:
|
||||
case PFS_NO_PAK_INSERTED:
|
||||
D_8018EDEC = 0x34;
|
||||
play_sound2(SOUND_MENU_FILE_NOT_FOUND);
|
||||
break;
|
||||
case 4:
|
||||
case PFS_FILE_OVERFLOW:
|
||||
D_8018EDEC = 0x37;
|
||||
play_sound2(SOUND_MENU_FILE_NOT_FOUND);
|
||||
break;
|
||||
case 2:
|
||||
case PFS_PAK_BAD_READ:
|
||||
case 3:
|
||||
default:
|
||||
D_8018EDEC = 0x35;
|
||||
play_sound2(SOUND_MENU_FILE_NOT_FOUND);
|
||||
break;
|
||||
}
|
||||
if (sp2C == -1 && !sp30[0].ghostDataSaved && !sp30[1].ghostDataSaved) {
|
||||
if (sp2C == PFS_INVALID_DATA && !sp30[0].ghostDataSaved && !sp30[1].ghostDataSaved) {
|
||||
D_8018EDEC = 0x2A;
|
||||
play_sound2(SOUND_MENU_FILE_NOT_FOUND);
|
||||
return;
|
||||
}
|
||||
if (sp2C == 0) {
|
||||
if (sp2C == PFS_NO_ERROR) {
|
||||
if (sp30[0].ghostDataSaved) {
|
||||
D_8018EDEC = 0x28;
|
||||
play_sound2(SOUND_MENU_SELECT);
|
||||
@@ -354,11 +354,11 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
|
||||
}
|
||||
// else return?
|
||||
return;
|
||||
case 1:
|
||||
case PFS_NO_PAK_INSERTED:
|
||||
D_8018EDEC = 0x2C;
|
||||
play_sound2(SOUND_MENU_FILE_NOT_FOUND);
|
||||
return;
|
||||
case 2:
|
||||
case PFS_PAK_BAD_READ:
|
||||
default:
|
||||
D_8018EDEC = 0x2D;
|
||||
play_sound2(SOUND_MENU_FILE_NOT_FOUND);
|
||||
@@ -567,8 +567,8 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
|
||||
}
|
||||
case 0x3B:
|
||||
{
|
||||
res = func_800B5DA4();
|
||||
if (res == 0) {
|
||||
res = controller_pak_2_status();
|
||||
if (res == PFS_NO_ERROR) {
|
||||
res = func_800B65F4(sp38->unk20, sp38->unk1C);
|
||||
}
|
||||
if (res != 0) {
|
||||
@@ -576,8 +576,8 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
|
||||
play_sound2(SOUND_MENU_FILE_NOT_FOUND);
|
||||
return;
|
||||
}
|
||||
res = osPfsFindFile(&D_8018E868, D_800E86F0, D_800E86F4, (u8 *)D_800F2E64, (u8 *)D_800F2E74, &D_8018EB84);
|
||||
if (res == 0) {
|
||||
res = osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, (u8 *)gGameName, (u8 *)gExtCode, &gControllerPak1FileNote);
|
||||
if (res == PFS_NO_ERROR) {
|
||||
res = func_800B6178(sp38->unk1C);
|
||||
}
|
||||
if (res != 0) {
|
||||
@@ -894,7 +894,7 @@ void controller_pak_menu_act(struct Controller* controller, UNUSED u16 arg1) {
|
||||
if ((buttonAndStickPress & 0x9000) != 0) {
|
||||
play_sound2(SOUND_MENU_SELECT);
|
||||
func_8009E1C0();
|
||||
D_800E86F8 = 0;
|
||||
gControllerPak1State = BAD;
|
||||
return;
|
||||
}
|
||||
if ((buttonAndStickPress & 0x300) != 0) {
|
||||
@@ -983,13 +983,13 @@ void controller_pak_menu_act(struct Controller* controller, UNUSED u16 arg1) {
|
||||
selectedTableRow = D_800E86C4[gControllerPakSelectedTableRow + 2] - 1;
|
||||
osPfsState = &D_8018E938[selectedTableRow];
|
||||
|
||||
switch (osPfsDeleteFile(&D_8018E868, osPfsState->company_code, osPfsState->game_code, (u8 *)&osPfsState->game_name, (u8 *)&osPfsState->ext_name)) {
|
||||
switch (osPfsDeleteFile(&gControllerPak1FileHandle, osPfsState->company_code, osPfsState->game_code, (u8 *)&osPfsState->game_name, (u8 *)&osPfsState->ext_name)) {
|
||||
default:
|
||||
gControllerPakMenuSelection = CONTROLLER_PAK_MENU_ERASE_ERROR_NOT_ERASED;
|
||||
return;
|
||||
case 0:
|
||||
D_8018EB38[selectedTableRow] = -1;
|
||||
gControllerPakNumPagesFree += (((osPfsState->file_size + 0xFF) >> 8) & 0xFF);
|
||||
gControllerPak1NumPagesFree += (((osPfsState->file_size + 0xFF) >> 8) & 0xFF);
|
||||
gControllerPakMenuSelection = CONTROLLER_PAK_MENU_TABLE_GAME_DATA;
|
||||
return;
|
||||
case PFS_ERR_NOPACK:
|
||||
|
||||
Reference in New Issue
Block a user