mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-21 05:09:46 -06:00
Reduce code stink (#1818)
CRC32.cpp: Make table initialization compile time DSi_NAND.cpp: Fix file close / unmount / disk close on error ~L427: Remove redundant calls, as they are immediately rendered useless by `rem` being overwritten NDS.cpp / FreeBIOS.h: Remove unneeded size values in header Remove unneeded memset's as they are initialized anyway sha1.c / sha1.h: Fix useless warning Wifi.cpp: Remove unneeded includes DSi.cpp: Reduce ugly casts Deduplicate code qt_sdl/main.cpp: silence clang switch statement warning qt_sdl/main.h: fix override warnings dolphin/BitSet.h: use msvc extensions only when appropriate, fix broken bit set count under _WIN32
This commit is contained in:
64
src/DSi.cpp
64
src/DSi.cpp
@ -55,8 +55,8 @@ u32 SCFG_EXT[2];
|
||||
u32 SCFG_MC;
|
||||
u16 SCFG_RST;
|
||||
|
||||
u8 ARM9iBIOS[0x10000];
|
||||
u8 ARM7iBIOS[0x10000];
|
||||
u8 ARM9iBIOS[0x10000] = { 0 };
|
||||
u8 ARM7iBIOS[0x10000] = { 0 };
|
||||
|
||||
u32 MBK[2][9];
|
||||
|
||||
@ -324,8 +324,8 @@ void DecryptModcryptArea(u32 offset, u32 size, u8* iv)
|
||||
DSi_AES::DeriveNormalKey(keyX, keyY, tmp);
|
||||
}
|
||||
|
||||
DSi_AES::Swap16(key, tmp);
|
||||
DSi_AES::Swap16(tmp, iv);
|
||||
Bswap128(key, tmp);
|
||||
Bswap128(tmp, iv);
|
||||
AES_init_ctx_iv(&ctx, key, tmp);
|
||||
|
||||
// find a matching binary area
|
||||
@ -367,21 +367,21 @@ void DecryptModcryptArea(u32 offset, u32 size, u8* iv)
|
||||
|
||||
for (u32 i = 0; i < size; i+=16)
|
||||
{
|
||||
u8 data[16];
|
||||
u32 data[4];
|
||||
|
||||
*(u32*)&data[0] = ARM9Read32(binaryaddr+i);
|
||||
*(u32*)&data[4] = ARM9Read32(binaryaddr+i+4);
|
||||
*(u32*)&data[8] = ARM9Read32(binaryaddr+i+8);
|
||||
*(u32*)&data[12] = ARM9Read32(binaryaddr+i+12);
|
||||
data[0] = ARM9Read32(binaryaddr+i);
|
||||
data[1] = ARM9Read32(binaryaddr+i+4);
|
||||
data[2] = ARM9Read32(binaryaddr+i+8);
|
||||
data[3] = ARM9Read32(binaryaddr+i+12);
|
||||
|
||||
DSi_AES::Swap16(tmp, data);
|
||||
AES_CTR_xcrypt_buffer(&ctx, tmp, 16);
|
||||
DSi_AES::Swap16(data, tmp);
|
||||
Bswap128(tmp, data);
|
||||
AES_CTR_xcrypt_buffer(&ctx, tmp, sizeof(tmp));
|
||||
Bswap128(data, tmp);
|
||||
|
||||
ARM9Write32(binaryaddr+i, *(u32*)&data[0]);
|
||||
ARM9Write32(binaryaddr+i+4, *(u32*)&data[4]);
|
||||
ARM9Write32(binaryaddr+i+8, *(u32*)&data[8]);
|
||||
ARM9Write32(binaryaddr+i+12, *(u32*)&data[12]);
|
||||
ARM9Write32(binaryaddr+i, data[0]);
|
||||
ARM9Write32(binaryaddr+i+4, data[1]);
|
||||
ARM9Write32(binaryaddr+i+8, data[2]);
|
||||
ARM9Write32(binaryaddr+i+12, data[3]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -893,7 +893,7 @@ bool LoadNAND()
|
||||
*(u32*)&tmp[4] = -bootparams[3];
|
||||
*(u32*)&tmp[8] = ~bootparams[3];
|
||||
*(u32*)&tmp[12] = 0;
|
||||
for (int i = 0; i < 16; i++) boot2iv[i] = tmp[15-i];
|
||||
Bswap128(boot2iv, tmp);
|
||||
|
||||
AES_init_ctx_iv(&ctx, boot2key, boot2iv);
|
||||
|
||||
@ -901,24 +901,24 @@ bool LoadNAND()
|
||||
dstaddr = bootparams[2];
|
||||
for (u32 i = 0; i < bootparams[3]; i += 16)
|
||||
{
|
||||
u8 data[16];
|
||||
u32 data[4];
|
||||
FileRead(data, 16, 1, nand);
|
||||
|
||||
for (int j = 0; j < 16; j++) tmp[j] = data[15-j];
|
||||
Bswap128(tmp, data);
|
||||
AES_CTR_xcrypt_buffer(&ctx, tmp, 16);
|
||||
for (int j = 0; j < 16; j++) data[j] = tmp[15-j];
|
||||
Bswap128(data, tmp);
|
||||
|
||||
ARM9Write32(dstaddr, *(u32*)&data[0]); dstaddr += 4;
|
||||
ARM9Write32(dstaddr, *(u32*)&data[4]); dstaddr += 4;
|
||||
ARM9Write32(dstaddr, *(u32*)&data[8]); dstaddr += 4;
|
||||
ARM9Write32(dstaddr, *(u32*)&data[12]); dstaddr += 4;
|
||||
ARM9Write32(dstaddr, data[0]); dstaddr += 4;
|
||||
ARM9Write32(dstaddr, data[1]); dstaddr += 4;
|
||||
ARM9Write32(dstaddr, data[2]); dstaddr += 4;
|
||||
ARM9Write32(dstaddr, data[3]); dstaddr += 4;
|
||||
}
|
||||
|
||||
*(u32*)&tmp[0] = bootparams[7];
|
||||
*(u32*)&tmp[4] = -bootparams[7];
|
||||
*(u32*)&tmp[8] = ~bootparams[7];
|
||||
*(u32*)&tmp[12] = 0;
|
||||
for (int i = 0; i < 16; i++) boot2iv[i] = tmp[15-i];
|
||||
Bswap128(boot2iv, tmp);
|
||||
|
||||
AES_init_ctx_iv(&ctx, boot2key, boot2iv);
|
||||
|
||||
@ -926,17 +926,17 @@ bool LoadNAND()
|
||||
dstaddr = bootparams[6];
|
||||
for (u32 i = 0; i < bootparams[7]; i += 16)
|
||||
{
|
||||
u8 data[16];
|
||||
u32 data[4];
|
||||
FileRead(data, 16, 1, nand);
|
||||
|
||||
for (int j = 0; j < 16; j++) tmp[j] = data[15-j];
|
||||
Bswap128(tmp, data);
|
||||
AES_CTR_xcrypt_buffer(&ctx, tmp, 16);
|
||||
for (int j = 0; j < 16; j++) data[j] = tmp[15-j];
|
||||
Bswap128(data, tmp);
|
||||
|
||||
ARM7Write32(dstaddr, *(u32*)&data[0]); dstaddr += 4;
|
||||
ARM7Write32(dstaddr, *(u32*)&data[4]); dstaddr += 4;
|
||||
ARM7Write32(dstaddr, *(u32*)&data[8]); dstaddr += 4;
|
||||
ARM7Write32(dstaddr, *(u32*)&data[12]); dstaddr += 4;
|
||||
ARM7Write32(dstaddr, data[0]); dstaddr += 4;
|
||||
ARM7Write32(dstaddr, data[1]); dstaddr += 4;
|
||||
ARM7Write32(dstaddr, data[2]); dstaddr += 4;
|
||||
ARM7Write32(dstaddr, data[3]); dstaddr += 4;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user