Decompile _pakSaveAtGuid

This commit is contained in:
Ryan Dwyer
2021-09-24 18:43:49 +10:00
parent 2738250964
commit efedc63e9d
12 changed files with 247 additions and 453 deletions
+1 -1
View File
@@ -197,7 +197,7 @@ extern u32 g_CheatsActiveBank0;
extern u32 g_CheatsActiveBank1;
extern u32 g_CheatsEnabledBank0;
extern u32 g_CheatsEnabledBank1;
extern struct fileguid var800a21f8;
extern s32 g_FilemgrLastPakError;
extern struct gamefile g_GameFile;
extern struct fileguid g_GameFileGuid;
extern s8 g_AltTitleUnlocked;
+1 -1
View File
@@ -5,7 +5,7 @@
#include "types.h"
bool bossfileLoadFull(void);
u32 func0f110720(void);
u32 bossfileFindFileId(void);
void bossfileLoad(void);
void bossfileSave(void);
void bossfileSetDefaults(void);
+1 -1
View File
@@ -102,7 +102,7 @@ void mpplayerfileSaveGunFuncs(struct savebuffer *buffer, s32 playernum);
void mpplayerfileLoadWad(s32 playernum, struct savebuffer *buffer, s32 arg2);
void mpplayerfileSaveWad(s32 playernum, struct savebuffer *buffer);
void mpplayerfileGetOverview(char *arg0, char *name, u32 *playtime);
s32 mpplayerfileSave(s32 playernum, s32 device, s32 arg2, u16 deviceserial);
s32 mpplayerfileSave(s32 playernum, s32 device, s32 fileid, u16 deviceserial);
s32 mpplayerfileLoad(s32 playernum, s32 device, s32 arg2, u16 deviceserial);
s32 mpGetNumPresets(void);
bool mpIsPresetUnlocked(s32 presetnum);
+5 -5
View File
@@ -12,8 +12,8 @@ u32 pakGenerateSerial(s8 device);
bool pakIsMemoryPak(s8 device);
s32 pakGetFileIdsByType(s8 device, u32 filetype, u32 *fileids);
s32 pak0f1167d8(s8 device);
s32 pak0f116800(s8 device, s32 fileid, u8 *body, s32 arg3);
s32 pak0f116828(s8 device, s32 fileid, s32 filetype, u8 *body, s32 *outfileid, s32 arg5);
s32 pakReadBodyAtGuid(s8 device, s32 fileid, u8 *body, s32 arg3);
s32 pakSaveAtGuid(s8 device, s32 fileid, s32 filetype, u8 *body, s32 *outfileid, u8 *olddata);
bool pakDeleteFile(s8 device, s32 fileid);
s32 pakDeleteGameNote(s8 device, u16 company_code, u32 game_code, char *game_name, char *ext_name);
s32 pak0f1168c4(s8 device, struct pakdata **arg1);
@@ -41,7 +41,7 @@ bool pakRetrieveBlockFromCache(s8 device, u32 offset, u8 *dst);
u32 pakReadHeaderAtOffset(s8 device, u32 offset, struct pakfileheader *header);
void pakDumpBuffer(u8 *buffer, u32 len, char *name);
void pakDumpEeprom(void);
s32 pak0f11789c(s8 device, s32 fileid, s32 filetype, u8 *body, s32 *outfileid, s32 arg5);
s32 _pakSaveAtGuid(s8 device, s32 fileid, s32 filetype, u8 *newdata, s32 *outfileid, u8 *olddata);
#if VERSION >= VERSION_NTSC_1_0
s32 pakInitPak(OSMesgQueue *mq, OSPfs *pfs, s32 channel, s32 *arg3);
@@ -68,7 +68,7 @@ void pak0f1185e0(s8 device, s32 arg1, s32 arg2);
u32 pak0f118674(s8 device, u32 filetype, u8 *olddata);
void pakInitAll(void);
void pakCalculateChecksum(u8 *arg0, u8 *arg1, u16 *arg2);
s32 pak0f118bc8(s8 device, s32 fileid, u8 *body, s32 arg3);
s32 _pakReadBodyAtGuid(s8 device, s32 fileid, u8 *body, s32 arg3);
s32 _pakGetFileIdsByType(s8 device, u32 filetype, u32 *fileids);
s32 pak0f1190bc(s8 device, s32 arg1, s32 *arg2);
u32 pak0f119298(s8 device);
@@ -98,7 +98,7 @@ s32 pakScrub(s8 device);
bool pak0f11b75c(s8 device, u32 *arg1);
s32 pak0f11b86c(s32 device, u32 uVar2, u8 *data, struct pakfileheader *header, s32 arg3);
bool pakReplaceFileAtOffsetWithBlank(s8 device, u32 offset);
s32 pakWriteFile(s8 device, u32 offset, u32 filetype, u8 *newdata, s32 bodylen, s32 *outfileid, u8 *olddata, u32 fileid, u32 arg8);
s32 pakWriteFileAtOffset(s8 device, u32 offset, u32 filetype, u8 *newdata, s32 bodylen, s32 *outfileid, u8 *olddata, u32 fileid, u32 generation);
bool pakRepair(s8 device);
bool pakHandleResult(s32 result, s8 device, u32 arg2, u32 arg3);
void pak0f11c54c(void);
+5 -5
View File
@@ -6687,14 +6687,14 @@ struct pakthing {
struct pakfileheader {
union {
struct {
u16 headersum[2]; // checksum from filetype to end of header
u16 headersum[2]; // checksum from filetype to end of header
u16 bodysum[2];
u32 filetype : 9; // PAKFILETYPE constant
u32 bodylen : 11; // not aligned
u32 filelen : 12; // aligned to 0x10
u32 filetype : 9; // PAKFILETYPE constant
u32 bodylen : 11; // not aligned
u32 filelen : 12; // aligned to 0x10
u32 deviceserial : 13;
u32 fileid : 7;
u32 unk0c_21 : 9;
u32 generation : 9; // increments by 1 each time the same file is saved
u32 occupied : 1;
u32 writecompleted : 1; // 0 while writing data, then updated to 1 afterwards
u32 version : 1; // 0, but can be set to 1 using -forceversion argument