finish fix ghost (#178)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
This commit is contained in:
coco875
2025-01-30 16:31:14 +01:00
committed by GitHub
parent 8b67f555ff
commit c6f72a287f
3 changed files with 9 additions and 7 deletions
+6 -6
View File
@@ -741,12 +741,12 @@ s32 func_800B6088(s32 arg0) {
(u8*) temp_v1);
}
u8 func_800B60E8(s32 page) {
u8 func_800B60E8(s32 page, u8* data) {
s32 i;
u32 checksum = 0;
u8* addr;
for (i = 0, addr = (u8*) &((u8*) sReplayGhostDecompressed)[page * 256]; i < 256; i++) {
for (i = 0, addr = (u8*) &(data)[page * 256]; i < 256; i++) {
checksum += (*addr++ * (page + 1) + i);
}
return checksum;
@@ -787,7 +787,7 @@ s32 func_800B6178(s32 arg0) {
temp_s3->unk_00 = D_80162DFC;
temp_s3->characterId = (u8) D_80162DE0;
for (var_s0 = 0; var_s0 < 0x3C; var_s0++) {
temp_s3->unk_07[var_s0] = func_800B60E8(var_s0);
temp_s3->unk_07[var_s0] = func_800B60E8(var_s0, (u8*) sReplayGhostBuffer);
}
var_v0 = func_800B6088(arg0);
}
@@ -843,7 +843,7 @@ s32 func_800B63F0(s32 arg0) {
phi_s1 = (u8*) &D_8018EE10[arg0];
while (temp_s0 < 0x3C) {
if (phi_s1[7] != func_800B60E8(temp_s0)) {
if (phi_s1[7] != func_800B60E8(temp_s0, (u8*) sReplayGhostBuffer)) {
phi_s3 = 1;
break;
}
@@ -875,7 +875,7 @@ s32 func_800B64EC(s32 arg0) {
phi_s1 = (u8 *) &D_8018EE10[arg0]; temp_s0 = 0; while (1) {
// clang-format on
if (phi_s1[7] != func_800B60E8(temp_s0)) {
if (phi_s1[7] != func_800B60E8(temp_s0, (u8*) sReplayGhostDecompressed)) {
D_8018EE10[arg0].ghostDataSaved = 0;
return -2;
}
@@ -912,7 +912,7 @@ s32 func_800B65F4(s32 arg0, s32 arg1) {
if (writeStatus == 0) {
temp_s3 = &((struct_8018EE10_entry*) gSomeDLBuffer)[arg0];
for (i = 0; i < 0x3C; i++) {
if (temp_s3->unk_07[i] != func_800B60E8(i)) {
if (temp_s3->unk_07[i] != func_800B60E8(i, (u8*) sReplayGhostBuffer)) {
temp_s3->ghostDataSaved = 0;
return -2;
}
+1 -1
View File
@@ -73,7 +73,7 @@ s32 controller_pak_2_status(void);
s32 func_800B5F30(void);
s32 func_800B6014(void);
s32 func_800B6088(s32);
u8 func_800B60E8(s32);
u8 func_800B60E8(s32, u8*);
s32 func_800B6178(s32);
s32 func_800B64EC(s32);
s32 func_800B65F4(s32, s32);
+2
View File
@@ -120,6 +120,8 @@ s32 osPfsFileState(OSPfs* pfs, s32 file_no, OSPfsState* state) {
}
s32 osPfsFreeBlocks(OSPfs* pfs, s32* bytes_not_used) {
*bytes_not_used = 0x1000;
return PFS_NO_ERROR;
}
s32 osPfsFindFile(OSPfs* pfs, u16 company_code, u32 game_code, u8* game_name, u8* ext_name, s32* file_no) {