small bug report?
M:\nand_cid.mem is actually the sd_cid.
and
M:\sd_cid.mem is actually the nand_cid, (the 'sd-cid' file is the same the 'nand_cid' file in the 'S:\essentials.exefs')
edit: Decrypt9 shows the NAND_CID when you do a 'system info', which is the same
as the contents of 'M:\sd_cid.mem' so the 'M drive' files are most likely reversed.
---
https://github.com/d0k3/GodMode9/blob/master/source/virtual/vmem.c#L85
https://github.com/d0k3/GodMode9/blob/master/source/virtual/vmem.c#L148
https://github.com/d0k3/GodMode9/blob/master/source/virtual/vmem.c#L151
at line 85, the 'nand_cid.mem' sets 'keyslot' to 0x00
when 'vfile / keyslot' is 0x00, then this sets is_nand to 0 (False).
at line 86, the 'sd_cid.mem' sets 'keyslot' to 0x01
when 'vfile / keyslot' is 0x01, then this sets is_nand to 1 (True).
so at line 85, switch the filenames OR switch the values of 'keyslot'
---
another small one:
in S: SYSNAND Virtual, the 'agbsave.bin' file needs its size changed from 0x00030000 (~192kb) to 0x00040400 (~257kb) to support the 1mbit savesize of GBA games, same for the X: NAND XORPADs drive as well. (agbsave.bin.xorpad)
https://www.reddit.com/r/3dshacks/comments/6znqqg/
M:\nand_cid.mem is actually the sd_cid.
and
M:\sd_cid.mem is actually the nand_cid, (the 'sd-cid' file is the same the 'nand_cid' file in the 'S:\essentials.exefs')
edit: Decrypt9 shows the NAND_CID when you do a 'system info', which is the same
as the contents of 'M:\sd_cid.mem' so the 'M drive' files are most likely reversed.
---
https://github.com/d0k3/GodMode9/blob/master/source/virtual/vmem.c#L85
Code:
{ "sd_cid.mem" , VMEM_CALLBACK_FLASH_CID , 0x00000010, 0x01, VFLAG_CALLBACK | VFLAG_READONLY },
{ "nand_cid.mem" , VMEM_CALLBACK_FLASH_CID , 0x00000010, 0x00, VFLAG_CALLBACK | VFLAG_READONLY }
https://github.com/d0k3/GodMode9/blob/master/source/virtual/vmem.c#L148
Code:
// Read NAND / SD CID.
int ReadVMemFlashCID(const VirtualFile* vfile, void* buffer, u64 offset, u64 count) {
// NAND CID if keyslot field != 0.
bool is_nand = (bool)vfile->keyslot;
u32 cid[4]; // CID is 16 byte in size
sdmmc_get_cid(is_nand, (u32*) cid);
memcpy(buffer, ((u8*) cid) + offset, count);
return 0;
}
https://github.com/d0k3/GodMode9/blob/master/source/virtual/vmem.c#L151
Code:
bool is_nand = (bool)vfile->keyslot;
when 'vfile / keyslot' is 0x00, then this sets is_nand to 0 (False).
at line 86, the 'sd_cid.mem' sets 'keyslot' to 0x01
when 'vfile / keyslot' is 0x01, then this sets is_nand to 1 (True).
so at line 85, switch the filenames OR switch the values of 'keyslot'
---
another small one:
in S: SYSNAND Virtual, the 'agbsave.bin' file needs its size changed from 0x00030000 (~192kb) to 0x00040400 (~257kb) to support the 1mbit savesize of GBA games, same for the X: NAND XORPADs drive as well. (agbsave.bin.xorpad)
https://www.reddit.com/r/3dshacks/comments/6znqqg/
TL;DR: 1Mbit games work with no patches at all, all they need is support from GBA injectors, specifically a
savefile size of 0x00040400 vs 0x00030000 in the exheader and TMD of the game (savefile size is specified at 0x1C0 in
the exheader), other than a 1Mbit save flag in the ROM footer (documented on the 3dbrew link above).
Last edited by c4388354,