diff --git a/arm9/source/game/tmd.h b/arm9/source/game/tmd.h index c6d83c88..afdcf086 100644 --- a/arm9/source/game/tmd.h +++ b/arm9/source/game/tmd.h @@ -2,7 +2,7 @@ #include "common.h" -#define TMD_MAX_CONTENTS 383 // theme CIAs contain maximum 100 themes + 1 index content +#define TMD_MAX_CONTENTS 1000 // 383 // theme CIAs contain maximum 100 themes + 1 index content #define TMD_SIZE_MIN sizeof(TitleMetaData) #define TMD_SIZE_MAX (sizeof(TitleMetaData) + (TMD_MAX_CONTENTS*sizeof(TmdContentChunk))) diff --git a/arm9/source/virtual/vgame.c b/arm9/source/virtual/vgame.c index 34ae28a8..ee377df4 100644 --- a/arm9/source/virtual/vgame.c +++ b/arm9/source/virtual/vgame.c @@ -4,7 +4,7 @@ #include "utf.h" #include "aes.h" -#define VGAME_BUFFER_SIZE 0x200000 // at least 2MB, multiple of 0x200 +#define VGAME_BUFFER_SIZE 0x200000 + 0x20000 // at least 2MB, multiple of 0x200 #define VFLAG_NO_CRYPTO (1UL<<18) #define VFLAG_TAD (1UL<<19) @@ -774,22 +774,22 @@ u64 InitVGameDrive(void) { // prerequisite: game file mounted as image vgame_buffer = (void*) malloc(VGAME_BUFFER_SIZE); if (!vgame_buffer) return 0; - templates_cia = (VirtualFile*) ((u8*) vgame_buffer); // first 56kb reserved (enough for 1024 entries) - templates_firm = (VirtualFile*) (((u8*) vgame_buffer) + 0xE000); // 2kb reserved (enough for 36 entries) - templates_ncsd = (VirtualFile*) (((u8*) vgame_buffer) + 0xE800); // 2kb reserved (enough for 36 entries) - templates_ncch = (VirtualFile*) (((u8*) vgame_buffer) + 0xF000); // 1kb reserved (enough for 18 entries) - templates_nds = (VirtualFile*) (((u8*) vgame_buffer) + 0xF400); // 1kb reserved (enough for 18 entries) - templates_exefs = (VirtualFile*) (((u8*) vgame_buffer) + 0xF800); // 1kb reserved (enough for 18 entries) - templates_tad = (VirtualFile*) (((u8*) vgame_buffer) + 0xFC00); // 1kb reserved (enough for 18 entries) - cia = (CiaStub*) (void*) (((u8*) vgame_buffer) + 0x10000); // 61kB reserved - should be enough by far - twl = (TwlHeader*) (void*) (((u8*) vgame_buffer) + 0x1F400); // 512 byte reserved (not the full thing) - a9l = (FirmA9LHeader*) (void*) (((u8*) vgame_buffer) + 0x1F600); // 512 byte reserved - firm = (FirmHeader*) (void*) (((u8*) vgame_buffer) + 0x1F800); // 512 byte reserved - ncsd = (NcsdHeader*) (void*) (((u8*) vgame_buffer) + 0x1FA00); // 512 byte reserved - ncch = (NcchHeader*) (void*) (((u8*) vgame_buffer) + 0x1FC00); // 512 byte reserved - exefs = (ExeFsHeader*) (void*) (((u8*) vgame_buffer) + 0x1FE00); // 512 byte reserved - romfslv3 = (((u8*) vgame_buffer) + 0x20000); // 1920kB reserved - nitrofs = (((u8*) vgame_buffer) + 0x20000); // 1920kB reserved (FNT+FAT combined) + templates_cia = (VirtualFile*) ((u8*) vgame_buffer); // first 184kb reserved (enough for 3364 entries) + templates_firm = (VirtualFile*) (((u8*) vgame_buffer) + 0x2E000); // 2kb reserved (enough for 36 entries) + templates_ncsd = (VirtualFile*) (((u8*) vgame_buffer) + 0x2E800); // 2kb reserved (enough for 36 entries) + templates_ncch = (VirtualFile*) (((u8*) vgame_buffer) + 0x2F000); // 1kb reserved (enough for 18 entries) + templates_nds = (VirtualFile*) (((u8*) vgame_buffer) + 0x2F400); // 1kb reserved (enough for 18 entries) + templates_exefs = (VirtualFile*) (((u8*) vgame_buffer) + 0x2F800); // 1kb reserved (enough for 18 entries) + templates_tad = (VirtualFile*) (((u8*) vgame_buffer) + 0x2FC00); // 1kb reserved (enough for 18 entries) + cia = (CiaStub*) (void*) (((u8*) vgame_buffer) + 0x30000); // 61kB reserved - should be enough by far + twl = (TwlHeader*) (void*) (((u8*) vgame_buffer) + 0x3F400); // 512 byte reserved (not the full thing) + a9l = (FirmA9LHeader*) (void*) (((u8*) vgame_buffer) + 0x3F600); // 512 byte reserved + firm = (FirmHeader*) (void*) (((u8*) vgame_buffer) + 0x3F800); // 512 byte reserved + ncsd = (NcsdHeader*) (void*) (((u8*) vgame_buffer) + 0x3FA00); // 512 byte reserved + ncch = (NcchHeader*) (void*) (((u8*) vgame_buffer) + 0x3FC00); // 512 byte reserved + exefs = (ExeFsHeader*) (void*) (((u8*) vgame_buffer) + 0x3FE00); // 512 byte reserved + romfslv3 = (((u8*) vgame_buffer) + 0x40000); // 1920kB reserved + nitrofs = (((u8*) vgame_buffer) + 0x40000); // 1920kB reserved (FNT+FAT combined) vgame_type = type; return type;