diff options
author | Jesse Talavera-Greenberg <jesse@jesse.tg> | 2023-10-02 11:54:17 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-02 17:54:17 +0200 |
commit | b2fcff97c186cc9db263089acd4810ea7d58517d (patch) | |
tree | 698ba48c059afbfce7371aa8516ccfc1f47092b4 /src/DSi.cpp | |
parent | bb09ce7d708c3272f63077222fe6f728c637ebc2 (diff) |
Add some structs for files that DSi_NAND reads (#1842)
* Add DSiFirmwareSystemSettings
* Replace DSiFirmwareSystemSettings::TouchCalibration fields with std::arrays
- So assignment can be done in one line
* Make DSiFirmwareSystemSettings a union
- So its bytes can be accessed
* Add a comment
* Use DSiFirmwareSystemSettings instead of raw byte offsets
* Add definitions for DSiSerialData and DSiHardwareInfoN
* Move DSiFirmwareSystemSettings's hash update logic into its own method
Diffstat (limited to 'src/DSi.cpp')
-rw-r--r-- | src/DSi.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/DSi.cpp b/src/DSi.cpp index 64bc6d2..cdec819 100644 --- a/src/DSi.cpp +++ b/src/DSi.cpp @@ -530,20 +530,20 @@ void SetupDirectBoot() if (DSi_NAND::Init(&DSi::ARM7iBIOS[0x8308])) { - u8 userdata[0x1B0]; + DSi_NAND::DSiFirmwareSystemSettings userdata {}; DSi_NAND::ReadUserData(userdata); for (u32 i = 0; i < 0x128; i+=4) - ARM9Write32(0x02000400+i, *(u32*)&userdata[0x88+i]); + ARM9Write32(0x02000400+i, *(u32*)&userdata.Bytes[0x88+i]); - u8 hwinfoS[0xA4]; - u8 hwinfoN[0x9C]; + DSi_NAND::DSiSerialData hwinfoS {}; + DSi_NAND::DSiHardwareInfoN hwinfoN; DSi_NAND::ReadHardwareInfo(hwinfoS, hwinfoN); for (u32 i = 0; i < 0x14; i+=4) ARM9Write32(0x02000600+i, *(u32*)&hwinfoN[0x88+i]); for (u32 i = 0; i < 0x18; i+=4) - ARM9Write32(0x02FFFD68+i, *(u32*)&hwinfoS[0x88+i]); + ARM9Write32(0x02FFFD68+i, *(u32*)&hwinfoS.Bytes[0x88+i]); DSi_NAND::DeInit(); } |