Major cleanup.
This commit is contained in:
@@ -3,87 +3,94 @@
|
||||
|
||||
#include "../types.h"
|
||||
|
||||
typedef enum {
|
||||
JAPANESE,
|
||||
ENGLISH,
|
||||
FRENCH,
|
||||
GERMAN,
|
||||
ITALIAN,
|
||||
SPANISH,
|
||||
SIMPLIFIED_CHINESE,
|
||||
KOREAN,
|
||||
DUTCH,
|
||||
PORTUGESE,
|
||||
RUSSIAN,
|
||||
TRADITIONAL_CHINESE
|
||||
} SMDHTitleLanguage;
|
||||
#define SMDH_NUM_LANGUAGE_SLOTS 16
|
||||
#define SMDH_NUM_VALID_LANGUAGE_SLOTS 12
|
||||
|
||||
// TODO: Provide values to set ratings to.
|
||||
typedef enum {
|
||||
CERO = 0,
|
||||
ESRB = 1,
|
||||
USK = 3,
|
||||
PEGI_GEN = 4,
|
||||
PEGI_PTR = 6,
|
||||
PEGI_BBFC = 7,
|
||||
COB = 8,
|
||||
GRB = 9,
|
||||
CGSRR = 10
|
||||
} SMDHGameRating;
|
||||
#define SMDH_NUM_RATING_SLOTS 16
|
||||
|
||||
#define SMDH_SMALL_ICON_SIZE 24
|
||||
#define SMDH_LARGE_ICON_SIZE 48
|
||||
|
||||
typedef enum {
|
||||
JAPAN = 0x01,
|
||||
NORTH_AMERICA = 0x02,
|
||||
EUROPE = 0x04,
|
||||
AUSTRALIA = 0x08,
|
||||
CHINA = 0x10,
|
||||
KOREA = 0x20,
|
||||
TAIWAN = 0x40,
|
||||
SMDH_LANGUAGE_JAPANESE,
|
||||
SMDH_LANGUAGE_ENGLISH,
|
||||
SMDH_LANGUAGE_FRENCH,
|
||||
SMDH_LANGUAGE_GERMAN,
|
||||
SMDH_LANGUAGE_ITALIAN,
|
||||
SMDH_LANGUAGE_SPANISH,
|
||||
SMDH_LANGUAGE_SIMPLIFIED_CHINESE,
|
||||
SMDH_LANGUAGE_KOREAN,
|
||||
SMDH_LANGUAGE_DUTCH,
|
||||
SMDH_LANGUAGE_PORTUGUESE,
|
||||
SMDH_LANGUAGE_RUSSIAN,
|
||||
SMDH_LANGUAGE_TRADITIONAL_CHINESE
|
||||
} SMDHLanguage;
|
||||
|
||||
typedef enum {
|
||||
SMDH_RATING_CERO = 0,
|
||||
SMDH_RATING_ESRB = 1,
|
||||
SMDH_RATING_USK = 3,
|
||||
SMDH_RATING_PEGI_GEN = 4,
|
||||
SMDH_RATING_PEGI_PTR = 6,
|
||||
SMDH_RATING_PEGI_BBFC = 7,
|
||||
SMDH_RATING_COB = 8,
|
||||
SMDH_RATING_GRB = 9,
|
||||
SMDH_RATING_CGSRR = 10
|
||||
} SMDHRating;
|
||||
|
||||
typedef enum {
|
||||
SMDH_REGION_JAPAN = 0x01,
|
||||
SMDH_REGION_NORTH_AMERICA = 0x02,
|
||||
SMDH_REGION_EUROPE = 0x04,
|
||||
SMDH_REGION_AUSTRALIA = 0x08,
|
||||
SMDH_REGION_CHINA = 0x10,
|
||||
SMDH_REGION_KOREA = 0x20,
|
||||
SMDH_REGION_TAIWAN = 0x40,
|
||||
|
||||
// Not a bitmask, but a value.
|
||||
REGION_FREE = 0x7FFFFFFF
|
||||
} SMDHRegionFlag;
|
||||
SMDH_REGION_FREE = 0x7FFFFFFF
|
||||
} SMDHRegion;
|
||||
|
||||
typedef enum {
|
||||
VISIBLE = 0x0001,
|
||||
AUTO_BOOT = 0x0002,
|
||||
ALLOW_3D = 0x0004,
|
||||
REQUIRE_EULA = 0x0008,
|
||||
AUTO_SAVE_ON_EXIT = 0x0010,
|
||||
USE_EXTENDED_BANNER = 0x0020,
|
||||
RATING_REQUIED = 0x0040,
|
||||
USE_SAVE_DATA = 0x0080,
|
||||
RECORD_USAGE = 0x0100,
|
||||
DISABLE_SAVE_BACKUPS = 0x0400,
|
||||
NEW_3DS = 0x1000
|
||||
SMDH_FLAG_VISIBLE = 0x0001,
|
||||
SMDH_FLAG_AUTO_BOOT = 0x0002,
|
||||
SMDH_FLAG_ALLOW_3D = 0x0004,
|
||||
SMDH_FLAG_REQUIRE_EULA = 0x0008,
|
||||
SMDH_FLAG_AUTO_SAVE_ON_EXIT = 0x0010,
|
||||
SMDH_FLAG_USE_EXTENDED_BANNER = 0x0020,
|
||||
SMDH_FLAG_RATING_REQUIED = 0x0040,
|
||||
SMDH_FLAG_USE_SAVE_DATA = 0x0080,
|
||||
SMDH_FLAG_RECORD_USAGE = 0x0100,
|
||||
SMDH_FLAG_DISABLE_SAVE_BACKUPS = 0x0400,
|
||||
SMDH_FLAG_NEW_3DS = 0x1000
|
||||
} SMDHFlag;
|
||||
|
||||
typedef struct {
|
||||
u16 shortTitle[0x40] = {0};
|
||||
u16 longTitle[0x80] = {0};
|
||||
u16 publisher[0x40] = {0};
|
||||
u16 shortTitle[0x40];
|
||||
u16 longTitle[0x80];
|
||||
u16 publisher[0x40];
|
||||
} SMDHTitle;
|
||||
|
||||
typedef struct {
|
||||
u8 gameRatings[0x10] = {0};
|
||||
u32 regionLock = REGION_FREE;
|
||||
u8 matchMakerId[0xC] = {0};
|
||||
u32 flags = 0;
|
||||
u16 eulaVersion = 0;
|
||||
u16 reserved1 = 0;
|
||||
u32 optimalBannerFrame = 0;
|
||||
u32 streetpassId = 0;
|
||||
u8 gameRatings[SMDH_NUM_RATING_SLOTS];
|
||||
u32 regionLock;
|
||||
u8 matchMakerId[0xC];
|
||||
u32 flags;
|
||||
u16 eulaVersion;
|
||||
u16 reserved1;
|
||||
u32 optimalBannerFrame;
|
||||
u32 streetpassId;
|
||||
} SMDHSettings;
|
||||
|
||||
typedef struct {
|
||||
char magic[4] = {'S', 'M', 'D', 'H'};
|
||||
u16 version = 0;
|
||||
u16 reserved0 = 0;
|
||||
SMDHTitle titles[0x10];
|
||||
char magic[4];
|
||||
u16 version;
|
||||
u16 reserved0;
|
||||
SMDHTitle titles[SMDH_NUM_LANGUAGE_SLOTS];
|
||||
SMDHSettings settings;
|
||||
u64 reserved2 = 0;
|
||||
u8 smallIcon[0x480] = {0};
|
||||
u8 largeIcon[0x1200] = {0};
|
||||
u64 reserved1;
|
||||
u16 smallIcon[SMDH_SMALL_ICON_SIZE * SMDH_SMALL_ICON_SIZE];
|
||||
u16 largeIcon[SMDH_LARGE_ICON_SIZE * SMDH_LARGE_ICON_SIZE];
|
||||
} SMDH;
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user