Indentation fixes

Indentation fixes everywhere
(mostly anyway under arm9/source/)
And some other tab to spaces
This commit is contained in:
luigoalma 2020-01-23 00:59:32 +00:00 committed by Wolfvak
parent 4e04849860
commit d27cfc71e1
15 changed files with 100 additions and 100 deletions

View File

@ -9,8 +9,8 @@
#define CART_STATE (~(*(volatile u8*)0x10000010) & 0x1) #define CART_STATE (~(*(volatile u8*)0x10000010) & 0x1)
#define SD_STATE ((*(volatile u16*)0x1000601C) & (0x1<<5)) #define SD_STATE ((*(volatile u16*)0x1000601C) & (0x1<<5))
#define HID_RAW_TX(t) ((s32)(((t) / (1 << 16)) & 0xFFF)) #define HID_RAW_TX(t) ((s32)(((t) / (1 << 16)) & 0xFFF))
#define HID_RAW_TY(t) ((s32)((t) & 0xFFF)) #define HID_RAW_TY(t) ((s32)((t) & 0xFFF))
u32 HID_ReadState(void); u32 HID_ReadState(void);
@ -18,8 +18,8 @@ u32 HID_ReadState(void);
// the touchscreen at the screen coordinates [screen_x, screen_y] // the touchscreen at the screen coordinates [screen_x, screen_y]
// note: no point can be at the center // note: no point can be at the center
typedef struct { typedef struct {
u32 ts_raw; u32 ts_raw;
int screen_x, screen_y; int screen_x, screen_y;
} HID_CalibrationData; } HID_CalibrationData;
u32 HID_ReadRawTouchState(void); u32 HID_ReadRawTouchState(void);

View File

@ -16,7 +16,7 @@ typedef struct {
u8 bcd_D; u8 bcd_D;
u8 bcd_M; u8 bcd_M;
u8 bcd_Y; u8 bcd_Y;
u8 leap_count; u8 leap_count;
} PACKED_STRUCT DsTime; } PACKED_STRUCT DsTime;
bool is_valid_dstime(DsTime* dstime); bool is_valid_dstime(DsTime* dstime);

View File

@ -101,7 +101,7 @@ void add_ctr(void* ctr, uint32_t carry)
int32_t i; int32_t i;
for(i = 0; i < 4; i++) { for(i = 0; i < 4; i++) {
//FIXME this assumes alignment... //FIXME this assumes alignment...
counter[i] = ((uint32_t)outctr[i*4+0]<<24) | ((uint32_t)outctr[i*4+1]<<16) | ((uint32_t)outctr[i*4+2]<<8) | ((uint32_t)outctr[i*4+3]<<0); counter[i] = ((uint32_t)outctr[i*4+0]<<24) | ((uint32_t)outctr[i*4+1]<<16) | ((uint32_t)outctr[i*4+2]<<8) | ((uint32_t)outctr[i*4+3]<<0);
} }
@ -307,7 +307,7 @@ void aes_cmac(void* inbuf, void* outbuf, size_t size)
char* xorpadb = (void*) xorpad; char* xorpadb = (void*) xorpad;
char finalxor = (xorpadb[0] & 0x80) ? 0x87 : 0x00; char finalxor = (xorpadb[0] & 0x80) ? 0x87 : 0x00;
for (uint32_t i = 0; i < 15; i++) { for (uint32_t i = 0; i < 15; i++) {
xorpadb[i] <<= 1; xorpadb[i] <<= 1;
xorpadb[i] |= xorpadb[i+1] >> 7; xorpadb[i] |= xorpadb[i+1] >> 7;
} }
xorpadb[15] <<= 1; xorpadb[15] <<= 1;
@ -318,7 +318,7 @@ void aes_cmac(void* inbuf, void* outbuf, size_t size)
out[i] = 0; out[i] = 0;
while (size-- > 0) { while (size-- > 0) {
for (uint32_t i = 0; i < 4; i++) for (uint32_t i = 0; i < 4; i++)
out[i] ^= *(in++); out[i] ^= *(in++);
if (!size) { // last block if (!size) { // last block
for (uint32_t i = 0; i < 4; i++) for (uint32_t i = 0; i < 4; i++)
out[i] ^= xorpad[i]; out[i] ^= xorpad[i];

View File

@ -1,8 +1,8 @@
#include "crc16.h" #include "crc16.h"
#define CRC16_TABVAL \ #define CRC16_TABVAL \
0x0000, 0xCC01, 0xD801, 0x1400, 0xF001, 0x3C00, 0x2800, 0xE401, \ 0x0000, 0xCC01, 0xD801, 0x1400, 0xF001, 0x3C00, 0x2800, 0xE401, \
0xA001, 0x6C00, 0x7800, 0xB401, 0x5000, 0x9C01, 0x8801, 0x4400 0xA001, 0x6C00, 0x7800, 0xB401, 0x5000, 0x9C01, 0x8801, 0x4400
// see: https://github.com/TASVideos/desmume/blob/master/desmume/src/bios.cpp#L1070tions // see: https://github.com/TASVideos/desmume/blob/master/desmume/src/bios.cpp#L1070tions

View File

@ -3,7 +3,7 @@
typedef struct typedef struct
{ {
u32 data[16]; u32 data[16];
} _sha_block; } _sha_block;
void sha_init(u32 mode) void sha_init(u32 mode)

View File

@ -54,7 +54,7 @@
#define FTYPE_TIKBUILD(tp) (tp&(GAME_TICKET|SYS_TICKDB|BIN_TIKDB)) #define FTYPE_TIKBUILD(tp) (tp&(GAME_TICKET|SYS_TICKDB|BIN_TIKDB))
#define FTYPE_KEYBUILD(tp) (tp&(BIN_KEYDB|BIN_LEGKEY)) #define FTYPE_KEYBUILD(tp) (tp&(BIN_KEYDB|BIN_LEGKEY))
#define FTYPE_TITLEINFO(tp) (tp&(GAME_SMDH|GAME_NCCH|GAME_NCSD|GAME_CIA|GAME_TMD|GAME_NDS|GAME_GBA|GAME_TAD|GAME_3DSX)) #define FTYPE_TITLEINFO(tp) (tp&(GAME_SMDH|GAME_NCCH|GAME_NCSD|GAME_CIA|GAME_TMD|GAME_NDS|GAME_GBA|GAME_TAD|GAME_3DSX))
#define FTYPE_CIACHECK(tp) (tp&GAME_CIA) #define FTYPE_CIACHECK(tp) (tp&GAME_CIA)
#define FTYPE_RENAMABLE(tp) (tp&(GAME_NCCH|GAME_NCSD|GAME_CIA|GAME_NDS|GAME_GBA)) #define FTYPE_RENAMABLE(tp) (tp&(GAME_NCCH|GAME_NCSD|GAME_CIA|GAME_NDS|GAME_GBA))
#define FTYPE_TRIMABLE(tp) (tp&(IMG_NAND|GAME_NCCH|GAME_NCSD|GAME_NDS|SYS_FIRM)) #define FTYPE_TRIMABLE(tp) (tp&(IMG_NAND|GAME_NCCH|GAME_NCSD|GAME_NDS|SYS_FIRM))
#define FTYPE_TRANSFERABLE(tp) ((u64) (tp&(IMG_FAT|FLAG_CTR)) == (u64) (IMG_FAT|FLAG_CTR)) #define FTYPE_TRANSFERABLE(tp) ((u64) (tp&(IMG_FAT|FLAG_CTR)) == (u64) (IMG_FAT|FLAG_CTR))

View File

@ -2,7 +2,7 @@
#include "ff.h" #include "ff.h"
u32 LoadCertFromCertDb(u64 offset, Certificate* cert, u32* mod, u32* exp) { u32 LoadCertFromCertDb(u64 offset, Certificate* cert, u32* mod, u32* exp) {
Certificate cert_local; Certificate cert_local;
FIL db; FIL db;
UINT bytes_read; UINT bytes_read;

View File

@ -32,24 +32,24 @@ void NTR_CmdEnter16ByteMode(void)
void NTR_CmdReadHeader (u8* buffer) void NTR_CmdReadHeader (u8* buffer)
{ {
REG_NTRCARDROMCNT=0; REG_NTRCARDROMCNT=0;
REG_NTRCARDMCNT=0; REG_NTRCARDMCNT=0;
ioDelay2(167550); ioDelay2(167550);
REG_NTRCARDMCNT=NTRCARD_CR1_ENABLE|NTRCARD_CR1_IRQ; REG_NTRCARDMCNT=NTRCARD_CR1_ENABLE|NTRCARD_CR1_IRQ;
REG_NTRCARDROMCNT=NTRCARD_nRESET|NTRCARD_SEC_SEED; REG_NTRCARDROMCNT=NTRCARD_nRESET|NTRCARD_SEC_SEED;
while(REG_NTRCARDROMCNT&NTRCARD_BUSY) ; while(REG_NTRCARDROMCNT&NTRCARD_BUSY) ;
cardReset(); cardReset();
while(REG_NTRCARDROMCNT&NTRCARD_BUSY) ; while(REG_NTRCARDROMCNT&NTRCARD_BUSY) ;
u32 iCardId=cardReadID(NTRCARD_CLK_SLOW); u32 iCardId=cardReadID(NTRCARD_CLK_SLOW);
while(REG_NTRCARDROMCNT&NTRCARD_BUSY) ; while(REG_NTRCARDROMCNT&NTRCARD_BUSY) ;
u32 iCheapCard=iCardId&0x80000000; u32 iCheapCard=iCardId&0x80000000;
if(iCheapCard) if(iCheapCard)
{ {
//this is magic of wood goblins //this is magic of wood goblins
for(size_t ii=0;ii<8;++ii) for(size_t ii=0;ii<8;++ii)
cardParamCommand(NTRCARD_CMD_HEADER_READ,ii*0x200,NTRCARD_ACTIVATE|NTRCARD_nRESET|NTRCARD_CLK_SLOW|NTRCARD_BLK_SIZE(1)|NTRCARD_DELAY1(0x1FFF)|NTRCARD_DELAY2(0x3F),(u32*)(void*)(buffer+ii*0x200),0x200/sizeof(u32)); cardParamCommand(NTRCARD_CMD_HEADER_READ,ii*0x200,NTRCARD_ACTIVATE|NTRCARD_nRESET|NTRCARD_CLK_SLOW|NTRCARD_BLK_SIZE(1)|NTRCARD_DELAY1(0x1FFF)|NTRCARD_DELAY2(0x3F),(u32*)(void*)(buffer+ii*0x200),0x200/sizeof(u32));
} }
else else
{ {

View File

@ -20,28 +20,28 @@
#define vu32 volatile u32 #define vu32 volatile u32
#define vu64 volatile u64 #define vu64 volatile u64
#define REG_ROMCTRL (*(vu32*)0x10164004) #define REG_ROMCTRL (*(vu32*)0x10164004)
#define REG_AUXSPICNT (*(vu16*)0x10164000) #define REG_AUXSPICNT (*(vu16*)0x10164000)
#define REG_AUXSPICNTH (*(vu16*)0x10164001) #define REG_AUXSPICNTH (*(vu16*)0x10164001)
#define REG_AUXSPIDATA (*(vu16*)0x10164002) #define REG_AUXSPIDATA (*(vu16*)0x10164002)
#define CARD_COMMAND ((vu8*)0x10164008) #define CARD_COMMAND ((vu8*)0x10164008)
#define CARD_DATA_RD (*(vu32*)0x1016401C) #define CARD_DATA_RD (*(vu32*)0x1016401C)
#define CARD_CR1_ENABLE 0x8000u #define CARD_CR1_ENABLE 0x8000u
#define CARD_CR1_IRQ 0x4000u #define CARD_CR1_IRQ 0x4000u
// SPI EEPROM COMMANDS // SPI EEPROM COMMANDS
#define SPI_EEPROM_WRSR 0x01 #define SPI_EEPROM_WRSR 0x01
#define SPI_EEPROM_PP 0x02 // Page Program #define SPI_EEPROM_PP 0x02 // Page Program
#define SPI_EEPROM_READ 0x03 #define SPI_EEPROM_READ 0x03
#define SPI_EEPROM_WRDI 0x04 // Write disable #define SPI_EEPROM_WRDI 0x04 // Write disable
#define SPI_EEPROM_RDSR 0x05 // Read status register #define SPI_EEPROM_RDSR 0x05 // Read status register
#define SPI_EEPROM_WREN 0x06 // Write enable #define SPI_EEPROM_WREN 0x06 // Write enable
#define SPI_EEPROM_PW 0x0a // Page Write #define SPI_EEPROM_PW 0x0a // Page Write
#define SPI_EEPROM_FAST 0x0b // Fast Read #define SPI_EEPROM_FAST 0x0b // Fast Read
#define SPI_EEPROM_RDID 0x9f #define SPI_EEPROM_RDID 0x9f
#define SPI_EEPROM_RDP 0xab // Release from deep power down #define SPI_EEPROM_RDP 0xab // Release from deep power down
#define SPI_EEPROM_DPD 0xb9 // Deep power down #define SPI_EEPROM_DPD 0xb9 // Deep power down
#define CARD_ACTIVATE (1u<<31) // when writing, get the ball rolling #define CARD_ACTIVATE (1u<<31) // when writing, get the ball rolling
@ -77,24 +77,24 @@
#define CARD_CMD_DATA_CHIPID 0xB8u #define CARD_CMD_DATA_CHIPID 0xB8u
//REG_AUXSPICNT //REG_AUXSPICNT
#define CARD_ENABLE (1<<15) #define CARD_ENABLE (1<<15)
#define CARD_SPI_ENABLE (1<<13) #define CARD_SPI_ENABLE (1<<13)
#define CARD_SPI_BUSY (1<<7) #define CARD_SPI_BUSY (1<<7)
#define CARD_SPI_HOLD (1<<6) #define CARD_SPI_HOLD (1<<6)
#define CARD_SPICNTH_ENABLE (1<<7) // in byte 1, i.e. 0x8000 #define CARD_SPICNTH_ENABLE (1<<7) // in byte 1, i.e. 0x8000
#define CARD_SPICNTH_IRQ (1<<6) // in byte 1, i.e. 0x4000 #define CARD_SPICNTH_IRQ (1<<6) // in byte 1, i.e. 0x4000
#define swiDelay(n) ioDelay(n) #define swiDelay(n) ioDelay(n)
#define DMA_SRC(n) (*(vu32*)(0x10002004 + (n * 0x1c))) #define DMA_SRC(n) (*(vu32*)(0x10002004 + (n * 0x1c)))
#define DMA_DEST(n) (*(vu32*)(0x10002008 + (n * 0x1c))) #define DMA_DEST(n) (*(vu32*)(0x10002008 + (n * 0x1c)))
#define DMA_CR(n) (*(vu32*)(0x1000201C + (n * 0x1c))) #define DMA_CR(n) (*(vu32*)(0x1000201C + (n * 0x1c)))
#define DMA_ENABLE (1u << 31) #define DMA_ENABLE (1u << 31)
#define DMA_START_CARD (5u << 27) #define DMA_START_CARD (5u << 27)
#define DMA_32_BIT (1u << 26) #define DMA_32_BIT (1u << 26)
#define DMA_REPEAT (1u << 25) #define DMA_REPEAT (1u << 25)
#define DMA_SRC_FIX (1u << 24) #define DMA_SRC_FIX (1u << 24)
void cardReset(); void cardReset();

View File

@ -76,8 +76,8 @@ void CTR_SendCommand(const u32 command[4], u32 pageSize, u32 blocks, u32 latency
transferLength = 4096; transferLength = 4096;
pageParam = CTRCARD_PAGESIZE_4K; pageParam = CTRCARD_PAGESIZE_4K;
break; break;
default: default:
break; //Defaults already set break; //Defaults already set
} }
REG_CTRCARDBLKCNT = blocks - 1; REG_CTRCARDBLKCNT = blocks - 1;

View File

@ -50,8 +50,8 @@ void NTR_SendCommand(const u32 command[2], u32 pageSize, u32 latency, void* buff
transferLength = 16384; transferLength = 16384;
pageParam = NTRCARD_PAGESIZE_16K; pageParam = NTRCARD_PAGESIZE_16K;
break; break;
default: default:
break; //Using 4K pagesize and transfer length by default break; //Using 4K pagesize and transfer length by default
} }
// go // go

View File

@ -120,22 +120,22 @@ void NTR_ApplyKey (u32* pCardHash, int nCardHash, u32* pKeyCode)
void NTR_InitKey (u32 aGameCode, u32* pCardHash, int nCardHash, u32* pKeyCode, int level, int iCardDevice) void NTR_InitKey (u32 aGameCode, u32* pCardHash, int nCardHash, u32* pKeyCode, int level, int iCardDevice)
{ {
if(iCardDevice) if(iCardDevice)
{
const u8* BlowfishTwl = (const u8*)0x01FFD3E0;
memcpy (pCardHash, BlowfishTwl, 0x1048);
}
else
{ {
const u8* BlowfishNtr = (const u8*)0x01FFE428; const u8* BlowfishTwl = (const u8*)0x01FFD3E0;
memcpy (pCardHash, BlowfishNtr, 0x1048); memcpy (pCardHash, BlowfishTwl, 0x1048);
} }
else
{
const u8* BlowfishNtr = (const u8*)0x01FFE428;
memcpy (pCardHash, BlowfishNtr, 0x1048);
}
pKeyCode[0] = aGameCode; pKeyCode[0] = aGameCode;
pKeyCode[1] = aGameCode/2; pKeyCode[1] = aGameCode/2;
pKeyCode[2] = aGameCode*2; pKeyCode[2] = aGameCode*2;
if (level >= 1) NTR_ApplyKey (pCardHash, nCardHash, pKeyCode); if (level >= 1) NTR_ApplyKey (pCardHash, nCardHash, pKeyCode);
if (level >= 2) NTR_ApplyKey (pCardHash, nCardHash, pKeyCode); if (level >= 2) NTR_ApplyKey (pCardHash, nCardHash, pKeyCode);
pKeyCode[1] = pKeyCode[1]*2; pKeyCode[1] = pKeyCode[1]*2;
@ -234,7 +234,7 @@ void NTR_CmdSecure (u32 flags, void* buffer, u32 length, u8* pcmd)
bool NTR_Secure_Init (u8* header, u32 CartID, int iCardDevice) bool NTR_Secure_Init (u8* header, u32 CartID, int iCardDevice)
{ {
u32 iGameCode; u32 iGameCode;
u32 iCardHash[0x412] = {0}; u32 iCardHash[0x412] = {0};
u32 iKeyCode[3] = {0}; u32 iKeyCode[3] = {0};
u32* secureArea=(u32*)(void*)(header + 0x4000); u32* secureArea=(u32*)(void*)(header + 0x4000);
@ -244,10 +244,10 @@ bool NTR_Secure_Init (u8* header, u32 CartID, int iCardDevice)
bool iCheapCard = (CartID & 0x80000000) != 0; bool iCheapCard = (CartID & 0x80000000) != 0;
u32 cardControl13 = *((vu32*)(void*)&header[0x60]); u32 cardControl13 = *((vu32*)(void*)&header[0x60]);
u32 cardControlBF = *((vu32*)(void*)&header[0x64]); u32 cardControlBF = *((vu32*)(void*)&header[0x64]);
u16 readTimeout = *((vu16*)(void*)&header[0x6E]); u16 readTimeout = *((vu16*)(void*)&header[0x6E]);
u32 nds9Offset = *((vu32*)(void*)&header[0x20]); u32 nds9Offset = *((vu32*)(void*)&header[0x20]);
u8 deviceType = header[0x13]; u8 deviceType = header[0x13];
int nCardHash = sizeof (iCardHash) / sizeof (iCardHash[0]); int nCardHash = sizeof (iCardHash) / sizeof (iCardHash[0]);
u32 flagsKey1=NTRCARD_ACTIVATE|NTRCARD_nRESET|(cardControl13&(NTRCARD_WR|NTRCARD_CLK_SLOW))|((cardControlBF&(NTRCARD_CLK_SLOW|NTRCARD_DELAY1(0x1FFF)))+((cardControlBF&NTRCARD_DELAY2(0x3F))>>16)); u32 flagsKey1=NTRCARD_ACTIVATE|NTRCARD_nRESET|(cardControl13&(NTRCARD_WR|NTRCARD_CLK_SLOW))|((cardControlBF&(NTRCARD_CLK_SLOW|NTRCARD_DELAY1(0x1FFF)))+((cardControlBF&NTRCARD_DELAY2(0x3F))>>16));
u32 flagsSec=(cardControlBF&(NTRCARD_CLK_SLOW|NTRCARD_DELAY1(0x1FFF)|NTRCARD_DELAY2(0x3F)))|NTRCARD_ACTIVATE|NTRCARD_nRESET|NTRCARD_SEC_EN|NTRCARD_SEC_DAT; u32 flagsSec=(cardControlBF&(NTRCARD_CLK_SLOW|NTRCARD_DELAY1(0x1FFF)|NTRCARD_DELAY2(0x3F)))|NTRCARD_ACTIVATE|NTRCARD_nRESET|NTRCARD_SEC_EN|NTRCARD_SEC_DAT;
@ -258,7 +258,7 @@ bool NTR_Secure_Init (u8* header, u32 CartID, int iCardDevice)
if(!iCheapCard) flagsKey1 |= NTRCARD_SEC_LARGE; if(!iCheapCard) flagsKey1 |= NTRCARD_SEC_LARGE;
//Debug("iCheapCard=%d, readTimeout=%d", iCheapCard, readTimeout); //Debug("iCheapCard=%d, readTimeout=%d", iCheapCard, readTimeout);
NTR_InitKey1 (cmdData, &iKey1, iCardDevice); NTR_InitKey1 (cmdData, &iKey1, iCardDevice);
//Debug("cmdData=%02X %02X %02X %02X %02X %02X %02X %02X ", cmdData[0], cmdData[1], cmdData[2], cmdData[3], cmdData[4], cmdData[5], cmdData[6], cmdData[7]); //Debug("cmdData=%02X %02X %02X %02X %02X %02X %02X %02X ", cmdData[0], cmdData[1], cmdData[2], cmdData[3], cmdData[4], cmdData[5], cmdData[6], cmdData[7]);
//Debug("iKey1=%08X %08X %08X", iKey1.iii, iKey1. jjj, iKey1. kkkkk); //Debug("iKey1=%08X %08X %08X", iKey1.iii, iKey1. jjj, iKey1. kkkkk);
//Debug("iKey1=%08X %08X %08X", iKey1. llll, iKey1. mmm, iKey1. nnn); //Debug("iKey1=%08X %08X %08X", iKey1. llll, iKey1. mmm, iKey1. nnn);
@ -270,7 +270,7 @@ bool NTR_Secure_Init (u8* header, u32 CartID, int iCardDevice)
if(iCheapCard) if(iCheapCard)
{ {
NTR_CmdSecure (flagsKey1, NULL, 0, cmdData); NTR_CmdSecure (flagsKey1, NULL, 0, cmdData);
NTR_SecureDelay(readTimeout); NTR_SecureDelay(readTimeout);
} }
NTR_CmdSecure (flagsKey1, NULL, 0, cmdData); NTR_CmdSecure (flagsKey1, NULL, 0, cmdData);
@ -288,7 +288,7 @@ bool NTR_Secure_Init (u8* header, u32 CartID, int iCardDevice)
if(iCheapCard) if(iCheapCard)
{ {
NTR_CmdSecure (flagsKey1, NULL, 0, cmdData); NTR_CmdSecure (flagsKey1, NULL, 0, cmdData);
NTR_SecureDelay(readTimeout); NTR_SecureDelay(readTimeout);
} }
//NTR_CmdSecure (flagsKey1, &SecureCartID, sizeof (SecureCartID), cmdData); //NTR_CmdSecure (flagsKey1, &SecureCartID, sizeof (SecureCartID), cmdData);
@ -307,7 +307,7 @@ bool NTR_Secure_Init (u8* header, u32 CartID, int iCardDevice)
if (iCheapCard) if (iCheapCard)
{ {
NTR_CmdSecure (flagsSec, NULL, 0, cmdData); NTR_CmdSecure (flagsSec, NULL, 0, cmdData);
NTR_SecureDelay(readTimeout); NTR_SecureDelay(readTimeout);
for(int ii=8;ii>0;--ii) for(int ii=8;ii>0;--ii)
{ {
NTR_CmdSecure (flagsSec | NTRCARD_BLK_SIZE(1), secureArea + secureAreaOffset, 0x200, cmdData); NTR_CmdSecure (flagsSec | NTRCARD_BLK_SIZE(1), secureArea + secureAreaOffset, 0x200, cmdData);
@ -325,15 +325,15 @@ bool NTR_Secure_Init (u8* header, u32 CartID, int iCardDevice)
if(iCheapCard) if(iCheapCard)
{ {
NTR_CmdSecure (flagsKey1, NULL, 0, cmdData); NTR_CmdSecure (flagsKey1, NULL, 0, cmdData);
NTR_SecureDelay(readTimeout); NTR_SecureDelay(readTimeout);
} }
NTR_CmdSecure (flagsKey1, NULL, 0, cmdData); NTR_CmdSecure (flagsKey1, NULL, 0, cmdData);
//CycloDS doesn't like the dsi secure area being decrypted //CycloDS doesn't like the dsi secure area being decrypted
if(!iCardDevice && ((nds9Offset != 0x4000) || secureArea[0] || secureArea[1])) if(!iCardDevice && ((nds9Offset != 0x4000) || secureArea[0] || secureArea[1]))
{ {
NTR_DecryptSecureArea (iGameCode, iCardHash, nCardHash, iKeyCode, secureArea, iCardDevice); NTR_DecryptSecureArea (iGameCode, iCardHash, nCardHash, iKeyCode, secureArea, iCardDevice);
} }
//Debug("secure area %08X %08X", secureArea[0], secureArea[1]); //Debug("secure area %08X %08X", secureArea[0], secureArea[1]);
if(secureArea[0] == 0x72636e65/*'encr'*/ && secureArea[1] == 0x6a624f79/*'yObj'*/) if(secureArea[0] == 0x72636e65/*'encr'*/ && secureArea[1] == 0x6a624f79/*'yObj'*/)
@ -345,7 +345,7 @@ bool NTR_Secure_Init (u8* header, u32 CartID, int iCardDevice)
{ {
//Debug("Invalid secure area (%08X %08X)", secureArea[0], secureArea[1]); //Debug("Invalid secure area (%08X %08X)", secureArea[0], secureArea[1]);
//dragon quest 5 has invalid secure area. really. //dragon quest 5 has invalid secure area. really.
//return false; //return false;
} }
return true; return true;

View File

@ -2049,7 +2049,7 @@ u32 ShowGameFileTitleInfo(const char* path) {
} }
u32 ShowCiaCheckerInfo(const char* path) { u32 ShowCiaCheckerInfo(const char* path) {
CiaStub* cia = (CiaStub*) malloc(sizeof(CiaStub)); CiaStub* cia = (CiaStub*) malloc(sizeof(CiaStub));
if (!cia) return 1; if (!cia) return 1;
// path string // path string
@ -2075,11 +2075,11 @@ u32 ShowCiaCheckerInfo(const char* path) {
// check ticket // check ticket
if (ValidateTicket((Ticket*)&(cia->ticket)) == 0) if (ValidateTicket((Ticket*)&(cia->ticket)) == 0)
state_ticket = (ValidateTicketSignature((Ticket*)&(cia->ticket)) == 0) ? 2 : 1; state_ticket = (ValidateTicketSignature((Ticket*)&(cia->ticket)) == 0) ? 2 : 1;
// check tmd // check tmd
if (ValidateTmd(&(cia->tmd)) == 0) if (ValidateTmd(&(cia->tmd)) == 0)
state_tmd = (ValidateTmdSignature(&(cia->tmd)) == 0) ? 2 : 1; state_tmd = (ValidateTmdSignature(&(cia->tmd)) == 0) ? 2 : 1;
// check for available contents // check for available contents
u8* cnt_index = cia->header.content_index; u8* cnt_index = cia->header.content_index;
@ -2093,28 +2093,28 @@ u32 ShowCiaCheckerInfo(const char* path) {
// CIA type string // CIA type string
char typestr[32]; char typestr[32];
if (!state_ticket || !state_tmd || missing_first || (!is_dlc && (content_found != content_count))) if (!state_ticket || !state_tmd || missing_first || (!is_dlc && (content_found != content_count)))
snprintf(typestr, 32, "Possibly Broken"); snprintf(typestr, 32, "Possibly Broken");
else snprintf(typestr, 32, "%s %s%s", else snprintf(typestr, 32, "%s %s%s",
console_id ? "Personal" : "Universal", console_id ? "Personal" : "Universal",
((state_ticket == 2) && (state_tmd == 2)) ? "Legit" : ((state_ticket == 2) && (state_tmd == 2)) ? "Legit" :
(state_tmd == 2) ? "Pirate Legit" : "Custom", (state_tmd == 2) ? "Pirate Legit" : "Custom",
is_dlc ? " DLC" : ""); is_dlc ? " DLC" : "");
// output results // output results
s32 state_verify = -1; s32 state_verify = -1;
while (true) { while (true) {
if (!ShowPrompt(state_verify < 0, "%s\n%s CIA File\n \nTitle ID: %016llX\nConsole ID: %08lX\nContents in CIA: %lu/%lu\nTicket/TMD: %s/%s\nVerification: %s", if (!ShowPrompt(state_verify < 0, "%s\n%s CIA File\n \nTitle ID: %016llX\nConsole ID: %08lX\nContents in CIA: %lu/%lu\nTicket/TMD: %s/%s\nVerification: %s",
pathstr, typestr, title_id, console_id, pathstr, typestr, title_id, console_id,
content_found, content_count, content_found, content_count,
(state_ticket == 0) ? "invalid" : (state_ticket == 2) ? "legit" : "illegit", (state_ticket == 0) ? "invalid" : (state_ticket == 2) ? "legit" : "illegit",
(state_tmd == 0) ? "invalid" : (state_tmd == 2) ? "legit" : "illegit", (state_tmd == 0) ? "invalid" : (state_tmd == 2) ? "legit" : "illegit",
(state_verify < 0) ? "pending\n \nProceed with verification?" : (state_verify == 0) ? "passed" : "failed") || (state_verify < 0) ? "pending\n \nProceed with verification?" : (state_verify == 0) ? "passed" : "failed") ||
(state_verify >= 0)) break; (state_verify >= 0)) break;
state_verify = VerifyCiaFile(path); state_verify = VerifyCiaFile(path);
} }
free(cia); free(cia);
return (state_ticket && state_tmd) ? 0 : 1; return (state_ticket && state_tmd) ? 0 : 1;
} }
u32 BuildNcchInfoXorpads(const char* destdir, const char* path) { u32 BuildNcchInfoXorpads(const char* destdir, const char* path) {

View File

@ -4,8 +4,8 @@
#define ReadFileCmac(path, cmac) ReadWriteFileCmac(path, cmac, false) #define ReadFileCmac(path, cmac) ReadWriteFileCmac(path, cmac, false)
#define WriteFileCmac(path, cmac) ReadWriteFileCmac(path, cmac, true) #define WriteFileCmac(path, cmac) ReadWriteFileCmac(path, cmac, true)
#define CheckCmdCmac(path) CheckFixCmdCmac(path, false) #define CheckCmdCmac(path) CheckFixCmdCmac(path, false)
#define FixCmdCmac(path) CheckFixCmdCmac(path, true) #define FixCmdCmac(path) CheckFixCmdCmac(path, true)
u32 CheckCmacPath(const char* path); u32 CheckCmacPath(const char* path);
u32 ReadWriteFileCmac(const char* path, u8* cmac, bool do_write); u32 ReadWriteFileCmac(const char* path, u8* cmac, bool do_write);