naming and documenting stuff

This commit is contained in:
Henny022p 2021-03-02 22:24:16 +01:00
parent dcc674f55f
commit de4428799e
6 changed files with 44 additions and 53 deletions

View File

@ -12,7 +12,7 @@
bne _080560F8 bne _080560F8
movs r0, #0x80 movs r0, #0x80
lsls r0, r0, #0x12 lsls r0, r0, #0x12
bl sub_0807CF30 bl Read_02000000
adds r1, r0, #0 adds r1, r0, #0
movs r0, #1 movs r0, #1
rsbs r0, r0, #0 rsbs r0, r0, #0
@ -33,7 +33,7 @@ _080560E4:
movs r2, #0x10 movs r2, #0x10
bl MemCopy bl MemCopy
adds r0, r4, #0 adds r0, r4, #0
bl sub_0807CF10 bl Write_02000000
_080560F8: _080560F8:
ldr r2, _0805612C @ =gUnk_02000010 ldr r2, _0805612C @ =gUnk_02000010
ldr r1, [r2] ldr r1, [r2]

View File

@ -208,7 +208,6 @@ extern u32 sub_0801766C(Entity*);
extern void sub_08004168(Entity*); extern void sub_08004168(Entity*);
extern u32 sub_08052638(u32); extern u32 sub_08052638(u32);
extern void InitDMA(void); extern void InitDMA(void);
extern u32 sub_0807CF10(u8*);
extern void sub_08056208(void); extern void sub_08056208(void);
extern void sub_08050384(); extern void sub_08050384();
extern u32 sub_0806F520(); extern u32 sub_0806F520();

View File

@ -48,8 +48,9 @@ extern SaveFile gSave;
u32 InitSaveData(void); u32 InitSaveData(void);
s32 sub_0807CF28(u32, SaveFile*); u32 Write_02000000(struct_02000000*);
u32 sub_0807CF30(SaveFile*); s32 ReadSaveFile(u32, SaveFile*);
u32 Read_02000000(SaveFile*);
void SetFileStatusDeleted(u32 index); void SetFileStatusDeleted(u32 index);
#endif #endif

View File

@ -231,7 +231,7 @@ static void HandleFileScreenExit(void) {
static void sub_08050624(u32 idx) { static void sub_08050624(u32 idx) {
SaveFile* saveFile = &gUnk_02019EE0.saves[idx]; SaveFile* saveFile = &gUnk_02019EE0.saves[idx];
int status = sub_0807CF28(idx, saveFile); int status = ReadSaveFile(idx, saveFile);
switch (status) { switch (status) {
case SAVE_DELETED: case SAVE_DELETED:
SetFileStatusDeleted(idx); SetFileStatusDeleted(idx);

View File

@ -165,7 +165,7 @@ NONMATCH("asm/non_matching/sub_080560B8.inc", void sub_080560B8(void)) {
u32 b; u32 b;
if (!sub_08056134()) { if (!sub_08056134()) {
switch ((s32)sub_0807CF30((void*)0x2000000)) { switch ((s32)Read_02000000((void*)0x2000000)) {
case 1: case 1:
if (sub_08056134()) if (sub_08056134())
break; break;
@ -173,7 +173,7 @@ NONMATCH("asm/non_matching/sub_080560B8.inc", void sub_080560B8(void)) {
case -1: case -1:
default: default:
MemCopy(&sDefaultSettings, (void*)0x2000000, 16); MemCopy(&sDefaultSettings, (void*)0x2000000, 16);
sub_0807CF10((u8*)0x2000000); Write_02000000(gUnk_02000000);
break; break;
} }
} }

View File

@ -20,9 +20,9 @@ static SaveResult HandleSaveInProgress(u32);
static SaveResult HandleSaveDone(u32); static SaveResult HandleSaveDone(u32);
const SaveFileEEPROMAddresses* GetSaveFileEEPROMAddresses(u32); const SaveFileEEPROMAddresses* GetSaveFileEEPROMAddresses(u32);
u32 DataDoubleReadWithStatus(u32, SaveFile* saveFile); u32 DataDoubleReadWithStatus(u32, void* data);
u32 DataDoubleWriteWithStatus(u32, SaveFile* saveFile); u32 DataDoubleWriteWithStatus(u32, const void* data);
u32 sub_0807D0A0(SaveFileStatus*, u16*, u32); u32 VerifyChecksum(SaveFileStatus* fileStatus, u16* data, u32 size);
u16 CalculateChecksum(u16* data, u32); u16 CalculateChecksum(u16* data, u32);
u32 WriteSaveFile(u32 index, SaveFile* saveFile); u32 WriteSaveFile(u32 index, SaveFile* saveFile);
void SetFileStatusInit(u32 index); void SetFileStatusInit(u32 index);
@ -91,7 +91,7 @@ SaveResult HandleSaveInProgress(u32 arg0) {
temp = 1; temp = 1;
break; break;
case 2: case 2:
temp = sub_0807CF10((u8*)&gUnk_02000000->signature); temp = Write_02000000(gUnk_02000000);
break; break;
} }
gMenu.field_0xa = temp; gMenu.field_0xa = temp;
@ -123,19 +123,19 @@ SaveResult HandleSaveDone(u32 arg0) {
u32 InitSaveData(void) { u32 InitSaveData(void) {
const SaveFileEEPROMAddresses* eepromAddresses; const SaveFileEEPROMAddresses* eepromAddresses;
int iVar3; u32 error;
EEPROMConfigure(0x40); EEPROMConfigure(0x40);
eepromAddresses = GetSaveFileEEPROMAddresses(4); eepromAddresses = GetSaveFileEEPROMAddresses(4);
iVar3 = 0; error = 0;
if (DataCompare(eepromAddresses->address1, sSignatureLong, eepromAddresses->size) == 0) { if (DataCompare(eepromAddresses->address1, sSignatureLong, eepromAddresses->size) == 0) {
iVar3 += 1; error += 1;
} }
if (DataCompare(eepromAddresses->address2, sSignatureLong, eepromAddresses->size) == 0) { if (DataCompare(eepromAddresses->address2, sSignatureLong, eepromAddresses->size) == 0) {
iVar3 += 2; error += 2;
} }
if (iVar3 != 0) { if (error != 0) {
if (iVar3 == 3) { if (error == 3) {
SetFileStatusInit(5); SetFileStatusInit(5);
SetFileStatusInit(3); SetFileStatusInit(3);
SetFileStatusInit(2); SetFileStatusInit(2);
@ -152,19 +152,19 @@ u32 WriteSaveFile(u32 index, SaveFile* saveFile) {
return DataDoubleWriteWithStatus(index, saveFile); return DataDoubleWriteWithStatus(index, saveFile);
} }
u32 sub_0807CF10(u8* arg0) { u32 Write_02000000(struct_02000000* arg0) {
return DataDoubleWriteWithStatus(3, (void*)arg0); return DataDoubleWriteWithStatus(3, arg0);
} }
u32 sub_0807CF1C(u8* arg0) { u32 sub_0807CF1C(u8* arg0) {
return DataDoubleWriteWithStatus(5, (void*)arg0); return DataDoubleWriteWithStatus(5, (void*)arg0);
} }
s32 sub_0807CF28(u32 arg0, SaveFile* saveFile) { s32 ReadSaveFile(u32 index, SaveFile* saveFile) {
return DataDoubleReadWithStatus(arg0, saveFile); return DataDoubleReadWithStatus(index, saveFile);
} }
u32 sub_0807CF30(SaveFile* arg0) { u32 Read_02000000(SaveFile* arg0) {
return DataDoubleReadWithStatus(3, arg0); return DataDoubleReadWithStatus(3, arg0);
} }
@ -190,7 +190,7 @@ void SetFileStatusInit(u32 index) {
WriteSaveFileStatus(eepromAddresses->checksum1, fileStatus); WriteSaveFileStatus(eepromAddresses->checksum1, fileStatus);
} }
u32 DataDoubleWriteWithStatus(u32 arg0, SaveFile* saveFile) { u32 DataDoubleWriteWithStatus(u32 arg0, const void* data) {
SaveFileStatus fileStatus; SaveFileStatus fileStatus;
u32 ret; u32 ret;
@ -202,14 +202,14 @@ u32 DataDoubleWriteWithStatus(u32 arg0, SaveFile* saveFile) {
fileStatus.status = 'MCZ3'; fileStatus.status = 'MCZ3';
checksum = CalculateChecksum((u16*)&fileStatus.status, 4); checksum = CalculateChecksum((u16*)&fileStatus.status, 4);
checksum += CalculateChecksum((u16*)saveFile, eepromAddresses->size); checksum += CalculateChecksum((u16*)data, eepromAddresses->size);
fileStatus.checksum1 = checksum; fileStatus.checksum1 = checksum;
fileStatus.checksum2 = -(u32)checksum; fileStatus.checksum2 = -(u32)checksum;
write1success = DataWrite(eepromAddresses->address1, saveFile, eepromAddresses->size); write1success = DataWrite(eepromAddresses->address1, data, eepromAddresses->size);
if (write1success) { if (write1success) {
write1success = WriteSaveFileStatus(eepromAddresses->checksum1, &fileStatus); write1success = WriteSaveFileStatus(eepromAddresses->checksum1, &fileStatus);
} }
write2success = DataWrite(eepromAddresses->address2, saveFile, eepromAddresses->size); write2success = DataWrite(eepromAddresses->address2, data, eepromAddresses->size);
if (write2success) { if (write2success) {
write2success = WriteSaveFileStatus(eepromAddresses->checksum2, &fileStatus); write2success = WriteSaveFileStatus(eepromAddresses->checksum2, &fileStatus);
} }
@ -221,7 +221,7 @@ u32 DataDoubleWriteWithStatus(u32 arg0, SaveFile* saveFile) {
return ret; return ret;
} }
u32 DataDoubleReadWithStatus(u32 param_1, SaveFile* saveFile) { u32 DataDoubleReadWithStatus(u32 param_1, void* data) {
vu32 set_0; vu32 set_0;
SaveFileStatus fileStatus; SaveFileStatus fileStatus;
@ -234,8 +234,8 @@ u32 DataDoubleReadWithStatus(u32 param_1, SaveFile* saveFile) {
eepromAddresses = GetSaveFileEEPROMAddresses(param_1); eepromAddresses = GetSaveFileEEPROMAddresses(param_1);
read1status = ReadSaveFileStatus(eepromAddresses->checksum1, &fileStatus); read1status = ReadSaveFileStatus(eepromAddresses->checksum1, &fileStatus);
if (read1status == 2) { if (read1status == 2) {
if ((DataRead(eepromAddresses->address1, saveFile, eepromAddresses->size) == 0) || if ((DataRead(eepromAddresses->address1, data, eepromAddresses->size) == 0) ||
(sub_0807D0A0(&fileStatus, (u16*)saveFile, (u32)eepromAddresses->size) == 0)) { (VerifyChecksum(&fileStatus, (u16*)data, eepromAddresses->size) == 0)) {
// read 1 failed // read 1 failed
read1status = 0; read1status = 0;
} else { } else {
@ -244,15 +244,15 @@ u32 DataDoubleReadWithStatus(u32 param_1, SaveFile* saveFile) {
} }
read2status = ReadSaveFileStatus(eepromAddresses->checksum2, &fileStatus); read2status = ReadSaveFileStatus(eepromAddresses->checksum2, &fileStatus);
if (read2status == 2) { if (read2status == 2) {
if ((DataRead(eepromAddresses->address2, saveFile, eepromAddresses->size) != 0) && if ((DataRead(eepromAddresses->address2, data, eepromAddresses->size) != 0) &&
(sub_0807D0A0(&fileStatus, (u16*)saveFile, (u32)eepromAddresses->size) != 0)) { (VerifyChecksum(&fileStatus, (u16*)data, (u32)eepromAddresses->size) != 0)) {
return 1; return 1;
} }
// read 2 failed // read 2 failed
read2status = 0; read2status = 0;
} }
set_0 = 0; set_0 = 0;
CpuSet((u16*)&set_0, saveFile, eepromAddresses->size >> 2 | CPU_SET_SRC_FIXED | CPU_SET_32BIT); CpuSet((u16*)&set_0, data, eepromAddresses->size >> 2 | CPU_SET_SRC_FIXED | CPU_SET_32BIT);
temp = read1status | read2status; temp = read1status | read2status;
ret = 0; ret = 0;
if (temp == 0) { if (temp == 0) {
@ -261,28 +261,19 @@ u32 DataDoubleReadWithStatus(u32 param_1, SaveFile* saveFile) {
return ret; return ret;
} }
NONMATCH("asm/non_matching/save/sub_0807D0A0.inc", u32 sub_0807D0A0(SaveFileStatus* unk_1, u16* unk_2, u32 unk_3)) { NONMATCH("asm/non_matching/save/sub_0807D0A0.inc", u32 VerifyChecksum(SaveFileStatus* fileStatus, u16* data, u32 size)) {
u32 r0; u32 ret;
u16 u0; u16 checksum;
u0 = CalculateChecksum((u16*)&unk_1->status, 4); checksum = CalculateChecksum((u16*)&fileStatus->status, 4);
u0 = u0 + CalculateChecksum(unk_2, unk_3); checksum += CalculateChecksum(data, size);
if (unk_1->checksum1 != u0) { if ((fileStatus->checksum1 != checksum) || (fileStatus->checksum2 != -(u32)fileStatus->checksum1) ||
r0 = 0; (fileStatus->status != 'MCZ3')) {
} else { return 0;
if (unk_1->checksum2 == -unk_1->checksum1) { } else
if (unk_1->status != 'MCZ3') { return 1;
r0 = 0;
} else {
r0 = 1;
}
} else {
r0 = 0;
}
}
return r0;
} }
END_NONMATCH END_NONMATCH
@ -346,7 +337,7 @@ u16 CalculateChecksum(u16* data, u32 size) {
checksum = 0; checksum = 0;
while (size != 0) { while (size != 0) {
checksum = checksum + (*data ^ size); checksum += (*data ^ size);
data = data + 1; data = data + 1;
size = size - 2; size = size - 2;
} }