33#include "flags.h"
44#include "lib/m4a/m4a.h"
55#include "lib/agb_flash/agb_flash.h"
6+ #include "lib/agb_flash/flash_internal.h"
67#include "malloc_ewram.h"
78#include "malloc_vram.h"
89#include "game/save.h"
@@ -34,10 +35,10 @@ void Task_8000918(void)
3435 (* pTask )-> main = Task_8001FB0 ;
3536}
3637
37- void ClearSave (SaveGame * save , u32 index )
38+ void ClearSave (SaveGame * save , u32 playerId )
3839{
3940 s16 i , j ;
40- save -> id = index ;
41+ save -> playerId = playerId ;
4142 for (i = 0 ; i < (s32 )ARRAY_COUNT (save -> playerName ); i ++ ) {
4243 save -> playerName [i ] = -1 ;
4344 }
@@ -116,7 +117,7 @@ void CompleteSave(SaveGame *save)
116117{
117118 s16 i , j ;
118119
119- save -> id = 0 ;
120+ save -> playerId = 0 ;
120121
121122 for (i = 0 ; i < (s32 )ARRAY_COUNT (save -> playerName ); i ++ ) {
122123 save -> playerName [i ] = 0xFFFF ;
@@ -299,14 +300,14 @@ void ValidateSave(SaveGame *save)
299300 save -> language = 1 ;
300301}
301302
302- void ValidateSaveSector (SaveSectorData * sector , u32 id )
303+ void ValidateSaveSector (SaveSectorData * sector , u32 playerId )
303304{
304305 s16 i ;
305306
306307 CPU_FILL (0 , sector , sizeof (SaveSectorData ), 32 );
307308
308- sector -> magicNumber = SAVEMAGIC_SA3 ;
309- sector -> id = id ;
309+ sector -> header . magicNumber = SAVEMAGIC_SA3 ;
310+ sector -> playerId = playerId ;
310311
311312 for (i = 0 ; i <= 5 ; i ++ ) {
312313 sector -> playerName [i ] = 0xFFFF ;
@@ -338,7 +339,7 @@ void ValidateSaveSector(SaveSectorData *sector, u32 id)
338339 sector -> checksum = GetSaveSectorChecksum (sector );
339340}
340341
341- u32 SaveSectorWrite (u16 sectorNum , SaveSectorData * sector )
342+ u32 WriteSaveSector (u16 sectorNum , SaveSectorData * sector )
342343{
343344 u16 bfrIE ;
344345 u16 bfrIME ;
@@ -377,7 +378,7 @@ u32 SaveSectorWrite(u16 sectorNum, SaveSectorData *sector)
377378 return result ;
378379}
379380
380- u16 SaveSectorErase (s16 sectorNum )
381+ u16 EraseSaveSector (s16 sectorNum )
381382{
382383 u16 bfrIE ;
383384 u16 bfrIME ;
@@ -416,15 +417,15 @@ u16 SaveSectorErase(s16 sectorNum)
416417 return result ;
417418}
418419
419- void SaveSectorPack (SaveSectorData * sector , SaveGame * save )
420+ void PackSaveSector (SaveSectorData * sector , SaveGame * save )
420421{
421422 s16 i ;
422423 s16 j ;
423424 s16 k ;
424425
425- sector -> magicNumber = 0x47544E4C ;
426- sector -> unk4 += 1 ;
427- sector -> id = save -> id ;
426+ sector -> header . magicNumber = 0x47544E4C ;
427+ sector -> header . sectorId += 1 ;
428+ sector -> playerId = save -> playerId ;
428429
429430 for (i = 0 ; i < 6 ; i ++ ) {
430431 sector -> playerName [i ] = save -> playerName [i ];
@@ -534,13 +535,13 @@ void SaveSectorPack(SaveSectorData *sector, SaveGame *save)
534535 sector -> checksum = GetSaveSectorChecksum (sector );
535536}
536537
537- void SaveSectorUnpack (SaveGame * save , SaveSectorData * sector )
538+ void UnpackSaveSector (SaveGame * save , SaveSectorData * sector )
538539{
539540 s16 i ;
540541 s16 j ;
541542 s16 k ;
542543
543- save -> id = sector -> id ;
544+ save -> playerId = sector -> playerId ;
544545
545546 for (i = 0 ; i < (s32 )ARRAY_COUNT (save -> playerName ); i ++ ) {
546547 save -> playerName [i ] = sector -> playerName [i ];
@@ -650,7 +651,7 @@ void SaveSectorUnpack(SaveGame *save, SaveSectorData *sector)
650651
651652s16 sub_8001A90 (void )
652653{
653- u32 sp00 [ 16 ][ 2 ];
654+ SaveSectorHeader headers [ SECTORS_PER_BANK ];
654655 s16 sectorId ;
655656 s16 var_sl ;
656657 u32 var_r8 ;
@@ -664,18 +665,18 @@ s16 sub_8001A90(void)
664665 return -1 ;
665666 }
666667
667- for (sectorId = 0 ; sectorId < 16 ; sectorId ++ ) {
668- ReadFlash (sectorId , 0U , & sp00 [sectorId ], 8U );
668+ for (sectorId = 0 ; sectorId < SECTORS_PER_BANK ; sectorId ++ ) {
669+ ReadFlash (sectorId , 0U , & headers [sectorId ], sizeof ( headers [ 0 ]) );
669670
670- if (sp00 [sectorId ][ 0 ] != SAVEMAGIC_SA3 ) {
671+ if (headers [sectorId ]. magicNumber != SAVEMAGIC_SA3 ) {
671672 return sectorId ;
672673 }
673674
674- if (sp00 [sectorId ][ 1 ] > var_sb ) {
675- var_sb = sp00 [sectorId ][ 1 ] ;
675+ if (headers [sectorId ]. sectorId > var_sb ) {
676+ var_sb = headers [sectorId ]. sectorId ;
676677 }
677- if (sp00 [sectorId ][ 1 ] < var_r8 ) {
678- var_r8 = sp00 [sectorId ][ 1 ] ;
678+ if (headers [sectorId ]. sectorId < var_r8 ) {
679+ var_r8 = headers [sectorId ]. sectorId ;
679680 var_sl = sectorId ;
680681 }
681682 }
@@ -686,8 +687,8 @@ s16 sub_8001A90(void)
686687 var_r8 = var_sb ;
687688
688689 for (sectorId = 0 ; sectorId < 16 ; sectorId ++ ) {
689- if ((sp00 [sectorId ][ 1 ] > -0x100 ) && (sp00 [sectorId ][ 1 ] <= var_r8 )) {
690- var_r8 = sp00 [sectorId ][ 1 ] ;
690+ if ((headers [sectorId ]. sectorId > -0x100 ) && (headers [sectorId ]. sectorId <= var_r8 )) {
691+ var_r8 = headers [sectorId ]. sectorId ;
691692 var_sl = sectorId ;
692693 }
693694 }
@@ -698,7 +699,7 @@ s16 sub_8001A90(void)
698699
699700s16 sub_8001B60 (void )
700701{
701- u32 sp00 [ 16 ][ 2 ];
702+ SaveSectorHeader headers [ SECTORS_PER_BANK ];
702703 s16 sectorId ;
703704 s16 var_sl ;
704705 u32 var_r8 ;
@@ -711,19 +712,19 @@ s16 sub_8001B60(void)
711712 return -2 ;
712713 }
713714
714- for (sectorId = 0 ; sectorId < 16 ; sectorId ++ ) {
715- ReadFlash (sectorId , 0U , & sp00 [sectorId ], 8U );
715+ for (sectorId = 0 ; sectorId < SECTORS_PER_BANK ; sectorId ++ ) {
716+ ReadFlash (sectorId , 0U , & headers [sectorId ], sizeof ( headers [ 16 ]) );
716717
717- if (sp00 [sectorId ][ 0 ] != SAVEMAGIC_SA3 ) {
718+ if (headers [sectorId ]. magicNumber != SAVEMAGIC_SA3 ) {
718719 continue ;
719720 }
720721
721- if (sp00 [sectorId ][ 1 ] > var_r8 ) {
722- var_r8 = sp00 [sectorId ][ 1 ] ;
722+ if (headers [sectorId ]. sectorId > var_r8 ) {
723+ var_r8 = headers [sectorId ]. sectorId ;
723724 var_sl = sectorId ;
724725 }
725- if (sp00 [sectorId ][ 1 ] < var_sb ) {
726- var_sb = sp00 [sectorId ][ 1 ] ;
726+ if (headers [sectorId ]. sectorId < var_sb ) {
727+ var_sb = headers [sectorId ]. sectorId ;
727728 }
728729 }
729730
@@ -733,8 +734,8 @@ s16 sub_8001B60(void)
733734 var_r8 = 0 ;
734735
735736 for (sectorId = 0 ; sectorId < 16 ; sectorId ++ ) {
736- if ((sp00 [sectorId ][ 1 ] < -0x100 ) && (sp00 [sectorId ][ 1 ] >= var_r8 )) {
737- var_r8 = sp00 [sectorId ][ 1 ] ;
737+ if ((headers [sectorId ]. sectorId < -0x100 ) && (headers [sectorId ]. sectorId >= var_r8 )) {
738+ var_r8 = headers [sectorId ]. sectorId ;
738739 var_sl = sectorId ;
739740 }
740741 }
0 commit comments