Miscellaneous DSi NAND fixes (#1852)

* Replace some standard I/O calls with Platform equivalents

- I missed a spot when I submitted that PR a few months ago

* Include <memory> in DSi_NAND.h

- Because it uses unique_ptr

* Split DSi_NAND::ReadHardwareInfo into ReadSerialData and ReadHardwareInfoN

* Add a RegionMask enum

* Move DSi NAND patching to the frontend

* Add DSiSupportedLanguageMask

- Not currently used by the frontend, but I use it in melonDS DS

* Remove some Platform::ConfigEntry values

- The core no longer needs to know about them
- The corresponding Config values are unchanged

* Mark NANDMount's destructor as noexcept
This commit is contained in:
Jesse Talavera-Greenberg
2023-10-24 17:28:14 -04:00
committed by GitHub
parent 8c4e5af737
commit 21590b0709
9 changed files with 194 additions and 127 deletions

View File

@ -540,8 +540,9 @@ void SetupDirectBoot()
ARM9Write32(0x02000400+i, *(u32*)&userdata.Bytes[0x88+i]);
DSi_NAND::DSiSerialData hwinfoS {};
nand.ReadSerialData(hwinfoS);
DSi_NAND::DSiHardwareInfoN hwinfoN;
nand.ReadHardwareInfo(hwinfoS, hwinfoN);
nand.ReadHardwareInfoN(hwinfoN);
for (u32 i = 0; i < 0x14; i+=4)
ARM9Write32(0x02000600+i, *(u32*)&hwinfoN[0x88+i]);
@ -944,7 +945,7 @@ bool LoadNAND()
NDS::ARM7->JumpTo(bootparams[6]);
}
nandmount.PatchUserData();
// user data is now expected to be patched by the frontend
return true;
}