Decompile gamefileLoad

This commit is contained in:
Ryan Dwyer
2021-09-13 21:09:26 +10:00
parent aa9c63c016
commit c95f4a67f2
27 changed files with 509 additions and 925 deletions
+1 -1
View File
@@ -198,7 +198,7 @@ extern u32 g_CheatsActiveBank1;
extern u32 g_CheatsEnabledBank0;
extern u32 g_CheatsEnabledBank1;
extern struct savelocation_2d8 var800a21f8;
extern struct savefile_solo g_SoloSaveFile;
extern struct gamefile g_GameFile;
extern struct savelocation_2d8 g_FilemgrLoadedMainFile;
extern s8 g_SoloCompleted;
extern u8 g_AltTitle;
+1 -1
View File
@@ -3574,7 +3574,7 @@
/**
* Sets a savefile flag.
*
* Expected to be a SAVEFILEFLAG constant.
* Expected to be a GAMEFILEFLAG constant.
*/
#define set_savefile_flag(flag) \
mkshort(0x0190), \
+72 -72
View File
@@ -3123,78 +3123,78 @@
#define SAVEDEVICE_GAMEPAK 4
#define SAVEDEVICE_INVALID 5
#define SAVEFILEFLAG_P1_FORWARDPITCH 0x00
#define SAVEFILEFLAG_P1_AUTOAIM 0x01
#define SAVEFILEFLAG_P1_AIMCONTROL 0x02
#define SAVEFILEFLAG_P1_SIGHTONSCREEN 0x03
#define SAVEFILEFLAG_P1_LOOKAHEAD 0x04
#define SAVEFILEFLAG_P1_AMMOONSCREEN 0x05
#define SAVEFILEFLAG_SCREENSIZE_WIDE 0x06
#define SAVEFILEFLAG_SCREENRATIO 0x07
#define SAVEFILEFLAG_SCREENSIZE_CINEMA 0x08
#define SAVEFILEFLAG_P1_HEADROLL 0x09
#define SAVEFILEFLAG_P1_SHOWGUNFUNCTION 0x0a
#define SAVEFILEFLAG_INGAMESUBTITLES 0x0b
#define SAVEFILEFLAG_P2_FORWARDPITCH 0x0c
#define SAVEFILEFLAG_P2_AUTOAIM 0x0d
#define SAVEFILEFLAG_P2_AIMCONTROL 0x0e
#define SAVEFILEFLAG_P2_SIGHTONSCREEN 0x0f
#define SAVEFILEFLAG_P2_LOOKAHEAD 0x10
#define SAVEFILEFLAG_P2_AMMOONSCREEN 0x11
#define SAVEFILEFLAG_P2_HEADROLL 0x12
#define SAVEFILEFLAG_P2_SHOWGUNFUNCTION 0x13
#define SAVEFILEFLAG_CUTSCENESUBTITLES 0x14
#define SAVEFILEFLAG_P1_ALWAYSSHOWTARGET 0x15
#define SAVEFILEFLAG_P2_ALWAYSSHOWTARGET 0x16
#define SAVEFILEFLAG_P1_SHOWZOOMRANGE 0x17
#define SAVEFILEFLAG_P2_SHOWZOOMRANGE 0x18
#define SAVEFILEFLAG_SCREENSPLIT 0x19
#define SAVEFILEFLAG_P1_SHOWMISSIONTIME 0x1a
#define SAVEFILEFLAG_P2_SHOWMISSIONTIME 0x1b
#define SAVEFILEFLAG_COOPRADARON 0x1c
#define SAVEFILEFLAG_COOPFRIENDLYFIRE 0x1d
#define SAVEFILEFLAG_ANTIRADARON 0x1e
#define SAVEFILEFLAG_ANTIPLAYERNUM 0x1f
#define SAVEFILEFLAG_P1_PAINTBALL 0x20
#define SAVEFILEFLAG_P2_PAINTBALL 0x21
#define SAVEFILEFLAG_HIRES 0x22
#define SAVEFILEFLAG_USED_TRANSFERPAK 0x23
#define SAVEFILEFLAG_CI_TOUR_DONE 0x24
#define SAVEFILEFLAG_CI_HOLO7_DONE 0x29
#define SAVEFILEFLAG_CI_HOLO6_DONE 0x2a
#define SAVEFILEFLAG_CI_HOLO5_DONE 0x2b
#define SAVEFILEFLAG_CI_HOLO4_DONE 0x2c
#define SAVEFILEFLAG_CI_HOLO3_DONE 0x2d
#define SAVEFILEFLAG_CI_HOLO2_DONE 0x2e
#define SAVEFILEFLAG_CI_HOLO1_DONE 0x2f
#define SAVEFILEFLAG_CI_CLOAK_DONE 0x30
#define SAVEFILEFLAG_CI_DISGUISE_DONE 0x31
#define SAVEFILEFLAG_CI_XRAY_DONE 0x32
#define SAVEFILEFLAG_CI_IR_DONE 0x33
#define SAVEFILEFLAG_CI_RTRACKER_DONE 0x34
#define SAVEFILEFLAG_CI_DOORDECODER_DONE 0x35
#define SAVEFILEFLAG_CI_NIGHTVISION_DONE 0x36
#define SAVEFILEFLAG_CI_CAMSPY_DONE 0x37
#define SAVEFILEFLAG_CI_ECMMINE_DONE 0x38
#define SAVEFILEFLAG_CI_UPLINK_DONE 0x39
#define SAVEFILEFLAG_CI_TOUR_STARTED 0x3a
#define SAVEFILEFLAG_CRASHSITE_BIKE 0x3b
#define SAVEFILEFLAG_DEFENSE_JON 0x3c
#define SAVEFILEFLAG_AF1_ENTRY 0x3d
#define SAVEFILEFLAG_RESCUE_MECHANIC_DEAD 0x3e
#define SAVEFILEFLAG_G5_MINE 0x3f // true if thrown on top door
#define SAVEFILEFLAG_LANGFILTERON 0x40
#define SAVEFILEFLAG_41 0x41
#define SAVEFILEFLAG_42 0x42
#define SAVEFILEFLAG_43 0x43
#define SAVEFILEFLAG_HOWTO_HOVERCRATE 0x47
#define SAVEFILEFLAG_HOWTO_HOVERBIKE 0x48
#define SAVEFILEFLAG_HOWTO_DOORS 0x49
#define SAVEFILEFLAG_HOWTO_ELEVATORS 0x4a
#define SAVEFILEFLAG_HOWTO_TERMINALS 0x4b
#define SAVEFILEFLAG_4C 0x4c
#define SAVEFILEFLAG_4D 0x4d
#define SAVEFILEFLAG_4E 0x4e
#define GAMEFILEFLAG_P1_FORWARDPITCH 0x00
#define GAMEFILEFLAG_P1_AUTOAIM 0x01
#define GAMEFILEFLAG_P1_AIMCONTROL 0x02
#define GAMEFILEFLAG_P1_SIGHTONSCREEN 0x03
#define GAMEFILEFLAG_P1_LOOKAHEAD 0x04
#define GAMEFILEFLAG_P1_AMMOONSCREEN 0x05
#define GAMEFILEFLAG_SCREENSIZE_WIDE 0x06
#define GAMEFILEFLAG_SCREENRATIO 0x07
#define GAMEFILEFLAG_SCREENSIZE_CINEMA 0x08
#define GAMEFILEFLAG_P1_HEADROLL 0x09
#define GAMEFILEFLAG_P1_SHOWGUNFUNCTION 0x0a
#define GAMEFILEFLAG_INGAMESUBTITLES 0x0b
#define GAMEFILEFLAG_P2_FORWARDPITCH 0x0c
#define GAMEFILEFLAG_P2_AUTOAIM 0x0d
#define GAMEFILEFLAG_P2_AIMCONTROL 0x0e
#define GAMEFILEFLAG_P2_SIGHTONSCREEN 0x0f
#define GAMEFILEFLAG_P2_LOOKAHEAD 0x10
#define GAMEFILEFLAG_P2_AMMOONSCREEN 0x11
#define GAMEFILEFLAG_P2_HEADROLL 0x12
#define GAMEFILEFLAG_P2_SHOWGUNFUNCTION 0x13
#define GAMEFILEFLAG_CUTSCENESUBTITLES 0x14
#define GAMEFILEFLAG_P1_ALWAYSSHOWTARGET 0x15
#define GAMEFILEFLAG_P2_ALWAYSSHOWTARGET 0x16
#define GAMEFILEFLAG_P1_SHOWZOOMRANGE 0x17
#define GAMEFILEFLAG_P2_SHOWZOOMRANGE 0x18
#define GAMEFILEFLAG_SCREENSPLIT 0x19
#define GAMEFILEFLAG_P1_SHOWMISSIONTIME 0x1a
#define GAMEFILEFLAG_P2_SHOWMISSIONTIME 0x1b
#define GAMEFILEFLAG_COOPRADARON 0x1c
#define GAMEFILEFLAG_COOPFRIENDLYFIRE 0x1d
#define GAMEFILEFLAG_ANTIRADARON 0x1e
#define GAMEFILEFLAG_ANTIPLAYERNUM 0x1f
#define GAMEFILEFLAG_P1_PAINTBALL 0x20
#define GAMEFILEFLAG_P2_PAINTBALL 0x21
#define GAMEFILEFLAG_HIRES 0x22
#define GAMEFILEFLAG_USED_TRANSFERPAK 0x23
#define GAMEFILEFLAG_CI_TOUR_DONE 0x24
#define GAMEFILEFLAG_CI_HOLO7_DONE 0x29
#define GAMEFILEFLAG_CI_HOLO6_DONE 0x2a
#define GAMEFILEFLAG_CI_HOLO5_DONE 0x2b
#define GAMEFILEFLAG_CI_HOLO4_DONE 0x2c
#define GAMEFILEFLAG_CI_HOLO3_DONE 0x2d
#define GAMEFILEFLAG_CI_HOLO2_DONE 0x2e
#define GAMEFILEFLAG_CI_HOLO1_DONE 0x2f
#define GAMEFILEFLAG_CI_CLOAK_DONE 0x30
#define GAMEFILEFLAG_CI_DISGUISE_DONE 0x31
#define GAMEFILEFLAG_CI_XRAY_DONE 0x32
#define GAMEFILEFLAG_CI_IR_DONE 0x33
#define GAMEFILEFLAG_CI_RTRACKER_DONE 0x34
#define GAMEFILEFLAG_CI_DOORDECODER_DONE 0x35
#define GAMEFILEFLAG_CI_NIGHTVISION_DONE 0x36
#define GAMEFILEFLAG_CI_CAMSPY_DONE 0x37
#define GAMEFILEFLAG_CI_ECMMINE_DONE 0x38
#define GAMEFILEFLAG_CI_UPLINK_DONE 0x39
#define GAMEFILEFLAG_CI_TOUR_STARTED 0x3a
#define GAMEFILEFLAG_CRASHSITE_BIKE 0x3b
#define GAMEFILEFLAG_DEFENSE_JON 0x3c
#define GAMEFILEFLAG_AF1_ENTRY 0x3d
#define GAMEFILEFLAG_RESCUE_MECHANIC_DEAD 0x3e
#define GAMEFILEFLAG_G5_MINE 0x3f // true if thrown on top door
#define GAMEFILEFLAG_LANGFILTERON 0x40
#define GAMEFILEFLAG_FOUNDTIMEDMINE 0x41
#define GAMEFILEFLAG_FOUNDPROXYMINE 0x42
#define GAMEFILEFLAG_FOUNDREMOTEMINE 0x43
#define GAMEFILEFLAG_HOWTO_HOVERCRATE 0x47
#define GAMEFILEFLAG_HOWTO_HOVERBIKE 0x48
#define GAMEFILEFLAG_HOWTO_DOORS 0x49
#define GAMEFILEFLAG_HOWTO_ELEVATORS 0x4a
#define GAMEFILEFLAG_HOWTO_TERMINALS 0x4b
#define GAMEFILEFLAG_4C 0x4c
#define GAMEFILEFLAG_4D 0x4d
#define GAMEFILEFLAG_4E 0x4e
#define SCREENRATIO_NORMAL 0
#define SCREENRATIO_16_9 1
+8 -8
View File
@@ -4,15 +4,15 @@
#include "data.h"
#include "types.h"
u32 savefileHasFlag(u32 value);
void savefileSetFlag(u32 value);
void savefileUnsetFlag(u32 value);
void savefilePrintFlags(void);
void savefileApplyOptions(struct savefile_solo *file);
void savefileLoadDefaults(struct savefile_solo *file);
s32 func0f10fac8(s32 arg0);
u32 gamefileHasFlag(u32 value);
void gamefileSetFlag(u32 value);
void gamefileUnsetFlag(u32 value);
void gamefilePrintFlags(void);
void gamefileApplyOptions(struct gamefile *file);
void gamefileLoadDefaults(struct gamefile *file);
s32 gamefileLoad(s32 arg0);
s32 func0f10feac(s32 arg0, s32 arg1, u16 arg2);
void savefileGetOverview(char *arg0, char *name, u8 *stage, u8 *difficulty, u32 *time);
void gamefileGetOverview(char *arg0, char *name, u8 *stage, u8 *difficulty, u32 *time);
bool func0f1106c8(void);
u32 func0f110720(void);
u32 func0f11080c(void);
+1 -1
View File
@@ -4495,7 +4495,7 @@ struct menu {
/*0xe6c*/ s8 savedevice; // 0-3 = controller pak 1-4, 4 = game pak
};
struct savefile_solo {
struct gamefile {
/*0x00*/ char name[11];
/*0x0b*/ u8 thumbnail : 5; // stage index of the image to show on file select screen
/*0x0b*/ u8 autodifficulty : 3;