(更新:Akabane Jumpei)

・カードの状態を監視するスレッドを生成。割り込みで変化したカード状態と比較して、状態がずれていたらメッセージを送る。
・TWLカード対応。拡張常駐モジュールのハッシュチェックは通っているが、アプリを起動すると止まる。
・カード読みシーケンスの判定にボンディングオプションの条件も追加
・IFフラグをポーリングして活栓挿抜を実装できる関数を用意(デバッグ用)
・ローカルにKeyTable2を用意
・ソースの整理

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/branches/20080312_hotsw@930 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
(no author) 2008-03-24 10:38:09 +00:00
parent 5cac7ab7b1
commit 6025e2391d
10 changed files with 898 additions and 344 deletions

View File

@ -33,6 +33,7 @@ SRCS = blowfish.c \
hotsw.c \
dsCardCommon.c \
romEmulation.c \
twl_blowfish_table.c \
customNDma.c
TARGET_LIB = libhotsw_sp$(TWL_LIBSUFFIX).a

View File

@ -23,6 +23,7 @@ extern "C" {
/*************************************************************************/
extern BLOWFISH_CTX HotSwBlowfishInitTableBufDS;
extern BLOWFISH_CTX HotSwBlowfishInitTableTWL;
// Function Prototype ------------------------------------------------------------------------
// Blowfish <20>‰Šú‰»

View File

@ -48,6 +48,9 @@ extern "C" {
#define SECURE_SEGMENT_SIZE 0x4000
#define SECURE_SEGMENT_END (SECURE_SEGMENT_START + SECURE_SEGMENT_SIZE)
// --- TWL Card
#define TWLCARD_BORDER_OFFSET 0x80000
// --- Page / Segment (Byte)
#define PAGE_SIZE 0x200
#define ONE_SEGMENT_SIZE 0x1000
@ -281,16 +284,18 @@ typedef struct CardBootData{
u32 arm7Stc;
u32 arm9Ltd;
u32 arm7Ltd;
BOOL twlFlg;
BOOL debuggerFlg;
u32 romStatus;
BOOL illegalCardFlg;
BOOL isLoadTypeTwl;
u32 romEmuBuf[ROM_EMULATION_DATA_SIZE/sizeof(u32)];
u32 keyBuf[KEY_BUF_SIZE];
u32 keyBuf2[KEY_BUF_SIZE];
u32 romStatus;
CardTypeEx cardType;
ModeType modeType;
RomMode romMode;
@ -306,8 +311,10 @@ typedef struct CardBootData{
// スレッド・メッセージ関係をまとめた構造体
typedef struct CardThreadData{
u64 stack[HOTSW_THREAD_STACK_SIZE / sizeof(u64)];
OSThread thread;
u64 hotswStack[HOTSW_THREAD_STACK_SIZE / sizeof(u64)];
u64 monitorStack[HOTSW_THREAD_STACK_SIZE / sizeof(u64)];
OSThread hotswThread;
OSThread monitorThread;
u32 idx_insert;
u32 idx_pulledOut;
@ -327,18 +334,12 @@ typedef struct CardThreadData{
} CardThreadData;
// カード起動用関数
typedef struct CardBootFunction {
HotSwState (*ReadBootSegment_N)(CardBootData *cbd);
HotSwState (*ChangeMode_N)(CardBootData *cbd);
typedef struct CardLoadFunction {
HotSwState (*ReadID_S)(CardBootData *cbd);
HotSwState (*ReadSegment_S)(CardBootData *cbd);
HotSwState (*SetPNG_S)(CardBootData *cbd);
HotSwState (*ChangeMode_S)(CardBootData *cbd);
HotSwState (*ReadID_G)(CardBootData *cbd);
HotSwState (*ReadPage_G)(CardBootData *cbd, u32 addr, void* buf, u32 size);
} CardBootFunction;
} CardLoadFunction;
#ifdef __cplusplus
} /* extern "C" */

View File

@ -21,11 +21,12 @@
// Function Prototype -------------------------------------------------------
static u32 F(const BLOWFISH_CTX *ctx, u32 x);
//*****************************************
//
// GCDm_MakeBlowfishTableDSŠÖ<C5A0>
//
//*****************************************
/*---------------------------------------------------------------------------*
Name: GCDm_MakeBlowfishTableDS
Description: KeyTableÌ<EFBFBD><EFBFBD>¬
*---------------------------------------------------------------------------*/
void GCDm_MakeBlowfishTableDS(CardBootData *cbd, s32 keyLen)
{
const BLOWFISH_CTX *initTable = &HotSwBlowfishInitTableBufDS;
@ -42,10 +43,14 @@ void GCDm_MakeBlowfishTableDS(CardBootData *cbd, s32 keyLen)
}
else{
keyBuf = cbd->keyBuf2;
MI_CpuCopyFast((void *)((OSFromFirm7Buf *)HW_FIRM_FROM_FIRM_BUF)->twl_blowfish, (void *)ctx, sizeof(BLOWFISH_CTX));
MI_CpuCopyFast(&HotSwBlowfishInitTableTWL, (void *)ctx, sizeof(BLOWFISH_CTX));
// MI_CpuCopyFast((void *)((OSFromFirm7Buf *)HW_FIRM_FROM_FIRM_BUF)->twl_blowfish, (void *)ctx, sizeof(BLOWFISH_CTX));
return;
}
// [TODO] KeyTable2—pÌ<E2809A>‰Šú‰»
keyBuf[0] = *RomHeaderGameCode;
keyBuf[1] = *RomHeaderGameCode >> 1;
keyBuf[2] = *RomHeaderGameCode << 1;
@ -60,11 +65,12 @@ void GCDm_MakeBlowfishTableDS(CardBootData *cbd, s32 keyLen)
InitBlowfishKeyAndTableDS(ctx, keyBuf, keyLen);
}
//*****************************************
//
// InitBlowfishKeyAndTableDSŠÖ<C5A0>
//
//*****************************************
/*---------------------------------------------------------------------------*
Name: InitBlowfishKeyAndTableDS
Description:
*---------------------------------------------------------------------------*/
void InitBlowfishKeyAndTableDS(BLOWFISH_CTX *ctx, u32 *keyBufp, s32 keyLen)
{
EncryptByBlowfish(ctx, &(keyBufp)[2], &(keyBufp)[1]);
@ -72,11 +78,12 @@ void InitBlowfishKeyAndTableDS(BLOWFISH_CTX *ctx, u32 *keyBufp, s32 keyLen)
InitBlowfish(ctx, (u8 *)keyBufp, keyLen);
}
//*****************************************
//
// InitBlowfishŠÖ<C5A0>
//
//*****************************************
/*---------------------------------------------------------------------------*
Name: InitBlowfish
Description:
*---------------------------------------------------------------------------*/
void InitBlowfish(BLOWFISH_CTX *ctx, const unsigned char *key, int keyLen)
{
int i, j, k;
@ -113,11 +120,12 @@ void InitBlowfish(BLOWFISH_CTX *ctx, const unsigned char *key, int keyLen)
}
//*****************************************
//
// EncryptByBlowfishŠÖ<C5A0>
//
//*****************************************
/*---------------------------------------------------------------------------*
Name: EncryptByBlowfish
Description:
*---------------------------------------------------------------------------*/
void EncryptByBlowfish(const BLOWFISH_CTX *ctx, u32 *xl, u32 *xr)
{
u32 Xl;
@ -149,11 +157,12 @@ void EncryptByBlowfish(const BLOWFISH_CTX *ctx, u32 *xl, u32 *xr)
*xr = Xr;
}
//*****************************************
//
// DecryptByBlowfishŠÖ<C5A0>
//
//*****************************************
/*---------------------------------------------------------------------------*
Name: DecryptByBlowfish
Description:
*---------------------------------------------------------------------------*/
void DecryptByBlowfish(const BLOWFISH_CTX *ctx, u32 *xl, u32 *xr)
{
u32 Xl;
@ -187,11 +196,12 @@ void DecryptByBlowfish(const BLOWFISH_CTX *ctx, u32 *xl, u32 *xr)
*xr = Xr;
}
//*****************************************
//
// FŠÖ<C5A0>
//
//*****************************************
/*---------------------------------------------------------------------------*
Name: F
Description:
*---------------------------------------------------------------------------*/
static u32 F(const BLOWFISH_CTX *ctx, u32 x) {
u32 a, b, c, d;
u32 y;
@ -214,5 +224,3 @@ static u32 F(const BLOWFISH_CTX *ctx, u32 x) {
return y;
}

View File

@ -19,22 +19,32 @@ static void HOTSWi_NDmaCopy_Card(u32 ndmaNo, const void *src, void *dest, u32 si
// ===========================================================================
/*---------------------------------------------------------------------------*
Name: HOTSW_NDmaCopy_Card
Description: DMA転送する
*---------------------------------------------------------------------------*/
void HOTSW_NDmaCopy_Card(u32 ndmaNo, const void *src, void *dest, u32 size)
{
HOTSWi_NDmaCopy_Card(ndmaNo, src, dest, size, MI_NDMA_DEST_INC);
}
/*---------------------------------------------------------------------------*
Name: HOTSW_NDmaPipe_Card
Description: DMA転送で読み捨てる
*---------------------------------------------------------------------------*/
void HOTSW_NDmaPipe_Card(u32 ndmaNo, const void *src, void *dest, u32 size)
{
HOTSWi_NDmaCopy_Card(ndmaNo, src, dest, size, MI_NDMA_DEST_FIX);
}
/*---------------------------------------------------------------------------*
Name: HOTSWi_NDmaCopy_Card
Description: DMA転送の準備
DMA転送の準備をしてからstartフラグを上げてください
*---------------------------------------------------------------------------*/
static void HOTSWi_NDmaCopy_Card(u32 ndmaNo, const void *src, void *dest, u32 size, u32 dcont)
{

View File

@ -31,6 +31,11 @@ static void PreSendSecureCommand(CardBootData *cbd, u32 *scrambleMask);
// Function Describe
// ===========================================================================
/*---------------------------------------------------------------------------*
Name: HOTSWi_SetCommand
Description:
*---------------------------------------------------------------------------*/
void HOTSWi_SetCommand(GCDCmd64 *cndLE)
{
GCDCmd64 cndBE;
@ -57,11 +62,11 @@ void HOTSWi_SetCommand(GCDCmd64 *cndLE)
// ■------------------------------------■
// ■ ノーマルモードのコマンド ■
// ■------------------------------------■
/* -----------------------------------------------------------------
* ReadIDNormal関数
*
* IDを読み込む関数
* ----------------------------------------------------------------- */
/*---------------------------------------------------------------------------*
Name: ReadIDNormal
Description: IDを読み込む関数
*---------------------------------------------------------------------------*/
HotSwState ReadIDNormal(CardBootData *cbd)
{
GCDCmd64 cndLE;
@ -86,6 +91,8 @@ HotSwState ReadIDNormal(CardBootData *cbd)
// DMAが終了するまで待つ
HOTSW_WaitDmaCtrl(HOTSW_NDMA_NO);
// OS_TPrintf("Normal ID : 0x%08x\n", cbd->id_nml);
return HOTSW_SUCCESS;
}
@ -165,11 +172,11 @@ HotSwState ReadBootSegNormal(CardBootData *cbd)
}
/* -----------------------------------------------------------------
* ReadStatusNormal関数
*
*
* ----------------------------------------------------------------- */
/*---------------------------------------------------------------------------*
Name: ReadStatusNormal
Description:
*---------------------------------------------------------------------------*/
HotSwState ReadStatusNormal(CardBootData *cbd)
{
GCDCmd64 cndLE;
@ -205,11 +212,11 @@ HotSwState ReadStatusNormal(CardBootData *cbd)
}
/* -----------------------------------------------------------------
* RefreshBadBlockNormal関数
*
*
* ----------------------------------------------------------------- */
/*---------------------------------------------------------------------------*
Name: RefreshBadBlockNormal
Description:
*---------------------------------------------------------------------------*/
HotSwState RefreshBadBlockNormal(CardBootData *cbd)
{
GCDCmd64 cndLE;
@ -249,6 +256,7 @@ HotSwState ChangeModeNormal(CardBootData *cbd)
return HOTSWi_ChangeModeNormal(cbd, HSWOP_N_OP_CHG_MODE);
}
/*---------------------------------------------------------------------------*
* Name: ChangeModeNorma2
*
@ -291,14 +299,14 @@ static HotSwState HOTSWi_ChangeModeNormal(CardBootData *cbd, u64 cmd)
}
/* -----------------------------------------------------------------
* LoadTable関数
*
* Key Table
*
*
*
* ----------------------------------------------------------------- */
/*---------------------------------------------------------------------------*
Name: LoadTable
Description: Key Table
 
*---------------------------------------------------------------------------*/
HotSwState LoadTable(void)
{
GCDCmd64 cndLE;
@ -328,6 +336,7 @@ HotSwState LoadTable(void)
return HOTSW_SUCCESS;
}
/*---------------------------------------------------------------------------*
Name: ReadRomEmulationData
@ -377,7 +386,7 @@ HotSwState ReadRomEmulationData(CardBootData *cbd)
/*---------------------------------------------------------------------------*
Name: SetSecureCommand
Description:
Description: Blowfishで暗号化してレジスタにセット
*---------------------------------------------------------------------------*/
static void SetSecureCommand(SecureCommandType type, CardBootData *cbd)
{
@ -490,6 +499,7 @@ HotSwState ReadIDSecure(CardBootData *cbd)
return HOTSW_SUCCESS;
}
/*---------------------------------------------------------------------------*
* Name: ReadSegSecure
*
@ -565,6 +575,7 @@ HotSwState ReadSegSecure(CardBootData *cbd)
return HOTSW_SUCCESS;
}
/*---------------------------------------------------------------------------*
* Name: SwitchONPNGSecure
*
@ -602,6 +613,7 @@ HotSwState SwitchONPNGSecure(CardBootData *cbd)
return HOTSW_SUCCESS;
}
/*---------------------------------------------------------------------------*
* Name: SwitchOFFPNGSecure
*
@ -639,6 +651,7 @@ HotSwState SwitchOFFPNGSecure(CardBootData *cbd)
return HOTSW_SUCCESS;
}
/*---------------------------------------------------------------------------*
* Name: ChangeModeSecure
*
@ -719,6 +732,7 @@ HotSwState ReadIDGame(CardBootData *cbd)
return HOTSW_SUCCESS;
}
/*---------------------------------------------------------------------------*
* Name: ReadPageGame
*
@ -767,6 +781,7 @@ HotSwState ReadPageGame(CardBootData *cbd, u32 start_addr, void* buf, u32 size)
return HOTSW_SUCCESS;
}
/*---------------------------------------------------------------------------*
* Name: ReadStatusGame
*
@ -804,6 +819,7 @@ HotSwState ReadStatusGame(CardBootData *cbd)
return HOTSW_SUCCESS;
}
/* -----------------------------------------------------------------
* RefreshBadBlockGame関数
*

File diff suppressed because it is too large Load Diff

View File

@ -81,6 +81,7 @@ HotSwState ReadIDSecure_ROMEMU(CardBootData *cbd)
return HOTSW_SUCCESS;
}
/*---------------------------------------------------------------------------*
Name: ReadSegSecure_ROMEMU
@ -123,6 +124,7 @@ HotSwState ReadSegSecure_ROMEMU(CardBootData *cbd)
return HOTSW_SUCCESS;
}
/*---------------------------------------------------------------------------*
Name: SwitchONPNGSecure_ROMEMU
@ -135,6 +137,7 @@ HotSwState SwitchONPNGSecure_ROMEMU(CardBootData *cbd)
return HOTSW_SUCCESS;
}
/*---------------------------------------------------------------------------*
Name: SwitchOFFPNGSecure_ROMEMU
@ -147,6 +150,7 @@ HotSwState SwitchOFFPNGSecure_ROMEMU(CardBootData *cbd)
return HOTSW_SUCCESS;
}
/*---------------------------------------------------------------------------*
Name: ChangeModeSecure_ROMEMU
@ -179,6 +183,7 @@ HotSwState ChangeModeSecure_ROMEMU(CardBootData *cbd)
return HOTSW_SUCCESS;
}
// ■------------------------------------■
// ■ ゲームモードのコマンド ■
// ■------------------------------------■

View File

@ -0,0 +1,282 @@
/*---------------------------------------------------------------------------*
Project: TwlBrom - libraries - GCD
File: ds_blowfish_table.c
Copyright 2007 Nintendo. All rights reserved.
These coded instructions, statements, and computer programs contain
proprietary information of Nintendo of America Inc. and/or Nintendo
Company Ltd., and are protected by Federal copyright law. They may
not be disclosed to third parties or copied or duplicated in any form,
in whole or in part, without the prior written consent of Nintendo.
*---------------------------------------------------------------------------*/
#include <hotswTypes.h>
const BLOWFISH_CTX HotSwBlowfishInitTableTWL = {
0x05526369, 0x040B421F, 0x04DAE16B, 0x03222EFA,
0x05EB3557, 0x0089EBE1, 0x03E13C75, 0x02BD8B6D,
0x071E6069, 0x0406B0C5, 0x0737814E, 0x04357C20,
0x06E70543, 0x02D6B325, 0x05F42EDC, 0x075FA408,
0x058CB61F, 0x0005B115,
0x04FB84D7, 0x00835937, 0x074D69B0, 0x03092EF8,
0x02C477AA, 0x02633C66, 0x021479EB, 0x02BE7290,
0x04254FE3, 0x041A18DE, 0x0011129E, 0x019209F3,
0x053751A3, 0x02B46D10, 0x02819FB4, 0x008B2FA5,
0x0720D1F8, 0x0314C7A2, 0x04B9AE7B, 0x04168028,
0x01AD742F, 0x02AA9574, 0x05A95800, 0x047A0DA5,
0x0279F093, 0x06FAA890, 0x06A3A9BD, 0x061142AB,
0x02D36BB5, 0x07D5B8CB, 0x01D5147F, 0x0185B4F2,
0x04329CCE, 0x04B1B5D8, 0x06E13A40, 0x04F0898C,
0x059B5707, 0x072D9FD8, 0x04A6A963, 0x0571C044,
0x050B1D95, 0x06B8DE98, 0x0253CAFF, 0x040F93D5,
0x024DE9A5, 0x016159BD, 0x04164C1E, 0x06039C0F,
0x0162BB3A, 0x037A6F5F, 0x023E1F80, 0x01BEDC47,
0x02E42CC4, 0x02BA1AD3, 0x009FCD4A, 0x01A09A64,
0x03D5F72F, 0x002F16F7, 0x061523C2, 0x019EDE98,
0x02FB4E21, 0x024ABA82, 0x035F324B, 0x043B186D,
0x046FD0BA, 0x03D84F7D, 0x01519C5F, 0x054FC637,
0x06443165, 0x00591465, 0x07D4856A, 0x05C847F1,
0x0749E7A2, 0x017D80EC, 0x0111BF2F, 0x02C920BE,
0x06D85623, 0x064ADF93, 0x03260CCC, 0x02C0F28D,
0x005BBE0C, 0x0371F35E, 0x00407119, 0x06075C7B,
0x06CB6DC2, 0x0031CB12, 0x05220DB5, 0x03D235D9,
0x0736EB35, 0x0716448C, 0x02B9E4E9, 0x06C408D8,
0x0282D902, 0x052586A3, 0x0775A47F, 0x056CA10B,
0x028F164F, 0x03365948, 0x07BBDB4D, 0x034217C7,
0x00FDF4DB, 0x0278BE82, 0x056B2EE3, 0x003A57F4,
0x026E44DA, 0x0587D6DF, 0x0699B381, 0x05DD58DD,
0x0099C34B, 0x07FE334F, 0x061682A1, 0x075F48DC,
0x05A95910, 0x07C8D2F2, 0x0701F13E, 0x01F92114,
0x051F55EB, 0x03158B95, 0x06A4CBEB, 0x0688C7D5,
0x0439631E, 0x006448FE, 0x01AB7B3F, 0x03DCD3B0,
0x0735B15D, 0x01045A14, 0x047CF4D0, 0x01BFE119,
0x065976D4, 0x06BF4287, 0x0054D2BF, 0x037E281A,
0x0474DC3E, 0x01DDF533, 0x07FD249E, 0x0696FF5C,
0x06FC83EF, 0x00895986, 0x077FAD53, 0x02A0D475,
0x0589CF47, 0x0463060D, 0x04F58C53, 0x018C0184,
0x0416EF7F, 0x0148B8E7, 0x00665F46, 0x06B15F0E,
0x07DD76B3, 0x07592BBE, 0x02C752F9, 0x035B639A,
0x07B561AB, 0x055A02C1, 0x032C87F4, 0x074DF8C9,
0x04DE7E08, 0x01779DD0, 0x04B0A183, 0x02CD73F1,
0x015C106E, 0x070EEBBC, 0x0055BB03, 0x02651FA2,
0x06CE6DD3, 0x065B3BAC, 0x05B18A61, 0x01843559,
0x00F1600A, 0x035B2893, 0x0119BA0F, 0x0311E24C,
0x0076A1DC, 0x075E5486, 0x02651C67, 0x02B0FAB2,
0x029CED3A, 0x03E9DDAB, 0x03B35437, 0x03D30D6D,
0x03629908, 0x070B253C, 0x0403FD6E, 0x0631AE1B,
0x04C6E55B, 0x05CFEA46, 0x00F78239, 0x04C31E56,
0x02AC48EA, 0x02DA5793, 0x07D7EE80, 0x01A58DD0,
0x0440BC8E, 0x047FA958, 0x04A120AE, 0x07A48C2F,
0x0490D631, 0x04205C1B, 0x074491E1, 0x03DC8737,
0x05AA7B91, 0x028149A0, 0x02D15368, 0x02B857B2,
0x03352071, 0x013F2B3F, 0x02A32234, 0x00AD5A5F,
0x02C1BB07, 0x0746B1A8, 0x016F1BC5, 0x008EEC53,
0x011F6374, 0x0236DEF8, 0x01F5F136, 0x015E1206,
0x07E815F6, 0x042879C6, 0x033AD57D, 0x0558442A,
0x0243F9F1, 0x00B50791, 0x04632BED, 0x008CE746,
0x02BA47B9, 0x04DC953D, 0x0230C520, 0x028B8A44,
0x034E4AAD, 0x05F4404A, 0x05C02F9A, 0x049C2098,
0x05738F11, 0x07341FBB, 0x01845FDA, 0x043ED01F,
0x0497A307, 0x055FF998, 0x04DDD428, 0x05DDFDA4,
0x07442F72, 0x0607229D, 0x052FD116, 0x00E528D3,
0x01E3D7AA, 0x02EBBA09, 0x06E3C252, 0x04F17067,
0x070622BB, 0x0308860B, 0x039D045B, 0x04DD8848,
0x01D9105D, 0x0389C9AA, 0x00B06AAE, 0x034DCAAC,
0x01C5E8E5, 0x02834663, 0x07BC04DB, 0x046C0F43,
0x05795C2C, 0x00C3A9D0, 0x0698646D, 0x0441E7DA,
0x0104EC07, 0x04CF09C4, 0x01FA3B1F, 0x07A3A818,
0x00C3492F, 0x059E41C5, 0x020C91CC, 0x04F45D15,
0x0462532F, 0x05B0B06B, 0x03B77F77, 0x071208FD,
0x00BDB01C, 0x068A9386, 0x047F4C10, 0x0028A7F0,
0x06A27510, 0x056F2B43, 0x0005764C, 0x056E9195,
0x0267997F, 0x04018898, 0x0535EE95, 0x07027559,
0x067491B6, 0x02F34209, 0x034E47BB, 0x02E492E6,
0x013A1C03, 0x0253A5C4, 0x0664E84A, 0x0069A5E6,
0x000D2E8F, 0x06C4DAA8, 0x06FA8774, 0x04D3A4C8,
0x02ABC317, 0x05144060, 0x021120E9, 0x072E4B71,
0x073C25AF, 0x0591407E, 0x00D96350, 0x02DF7B1D,
0x0025231F, 0x03D6E660, 0x03DC62BF, 0x06F28B61,
0x02AF873D, 0x077DBF4C, 0x06BC320E, 0x07D9B25B,
0x079FF100, 0x035304BC, 0x06FB6C25, 0x017E04F0,
0x04B879DA, 0x02472768, 0x06B05478, 0x07F9296D,
0x06D3A241, 0x00E9D0EE, 0x06C4FF27, 0x055F65D9,
0x02551093, 0x04067917, 0x038B524D, 0x07405D23,
0x053FDCBE, 0x04A6A73D, 0x03529F18, 0x041DCA50,
0x069A923E, 0x06564436, 0x003CA4E0, 0x07E422B6,
0x059D37DA, 0x06E48164, 0x0137BA88, 0x038B9355,
0x008E1D46, 0x005426EA, 0x06B67424, 0x02C58519,
0x04AF2FE5, 0x0032FC6F, 0x006ED904, 0x0596BDC2,
0x061A29F2, 0x023A9D03, 0x00439E06, 0x00348DD2,
0x01DCF8CE, 0x075688E9, 0x04D29E0A, 0x03BD448C,
0x05AB97F3, 0x050BE3BB, 0x05C07374, 0x01BEB46C,
0x035D666C, 0x05A7A7FF, 0x0327E38A, 0x05802A3D,
0x0145D043, 0x0444FF08, 0x03C2E090, 0x042EF1AB,
0x0620D57B, 0x07F6E013, 0x06FBA530, 0x030C14A8,
0x01215A38, 0x03BE914A, 0x05FFB3D2, 0x028478DC,
0x0726564B, 0x00537D65, 0x006161DE, 0x07AEB02B,
0x020D6D8E, 0x01C4FA66, 0x05F12500, 0x046868EF,
0x02174F3B, 0x02255533, 0x071AE436, 0x014A54F7,
0x07DB3334, 0x041BDA53, 0x0283D946, 0x053130DA,
0x01ABA660, 0x07360D56, 0x0056855C, 0x00CE94BD,
0x0406CDD9, 0x06E6E008, 0x004D36E0, 0x051C6286,
0x0270346E, 0x05AD0969, 0x07D0E274, 0x00E5991E,
0x0286B221, 0x056319CA, 0x0084E10B, 0x050CBD59,
0x0683D539, 0x034B03AA, 0x069ADBB5, 0x013F16D2,
0x01EA112A, 0x037C0DB8, 0x070F9266, 0x026BE5C1,
0x04E4E47C, 0x021DC174, 0x049F4368, 0x030BA52B,
0x04A7E825, 0x02869122, 0x02986850, 0x02501755,
0x03B99C06, 0x00960EB8, 0x07DAFE1F, 0x03C1F644,
0x0423E828, 0x032C4A38, 0x0602F748, 0x06AA625E,
0x07587950, 0x02964BF0, 0x03A6B633, 0x03627E34,
0x03BF74E4, 0x03DA2A2F, 0x04AAB440, 0x01028113,
0x03860A5C, 0x04874576, 0x078C31ED, 0x0048BC9C,
0x01544842, 0x019922EA, 0x03D13432, 0x072E4602,
0x05947F38, 0x045059D9, 0x03BCB4B1, 0x04D1196E,
0x003EA37F, 0x031AB679, 0x049F4941, 0x03B29D99,
0x048F5356, 0x0776CD4B, 0x0313BA85, 0x0200BBA3,
0x00B8AB81, 0x005AC364, 0x0454D94F, 0x0097FA8A,
0x06CF6FF2, 0x02596050, 0x0542E364, 0x00CBF046,
0x03D9624A, 0x05B68507, 0x04FC61A1, 0x05BE5A73,
0x023ACFF7, 0x06CFCFE3, 0x02639FBA, 0x057B3C8F,
0x017CFE6C, 0x01CB94D3, 0x0328D69B, 0x02ECFEE7,
0x070258F0, 0x021799B6, 0x02FEB4CB, 0x0511A362,
0x0089C6AB, 0x06A305D4, 0x05B8A852, 0x0231138C,
0x03C30AB5, 0x043E510D, 0x06565249, 0x0421DCF4,
0x04D58857, 0x05D10658, 0x05EEA869, 0x04404D1D,
0x010E0C8F, 0x04B64F11, 0x005E881E, 0x0683A890,
0x031B0717, 0x02A38461, 0x01EB6C9B, 0x055CE3B8,
0x0414733D, 0x060C602F, 0x00F033FF, 0x05167B33,
0x04A9DC78, 0x0077F324, 0x03791527, 0x062A6309,
0x03291611, 0x022F9818, 0x07452BDE, 0x06F92768,
0x010C5DA6, 0x07675065, 0x0332B09A, 0x00856009,
0x02993788, 0x06F81E49, 0x0036CA92, 0x07AA2EEA,
0x0458BD2F, 0x004DD8AC, 0x026BEC7E, 0x03278664,
0x075581CF, 0x01E96321, 0x0113EE6C, 0x04303FCB,
0x0242F3CA, 0x00B08BDD, 0x050F5CF8, 0x0504A197,
0x07FE5BFB, 0x07BDF90B, 0x01C65BB1, 0x00921436,
0x007202F5, 0x04CA4249, 0x034FB69E, 0x0283DB7B,
0x03C7C61A, 0x06B3EA14, 0x077B885A, 0x07752D31,
0x037ED1C8, 0x04A5CE3D, 0x06D3F995, 0x00DCC24B,
0x047072D0, 0x01C166DB, 0x01860647, 0x07489365,
0x00EE5F88, 0x063F8882, 0x06D77198, 0x0145A590,
0x0291187A, 0x006E4606, 0x069550A6, 0x06224C8C,
0x068BB1CE, 0x01519F5D, 0x01F1A883, 0x06309385,
0x06C653E2, 0x01AB6E47, 0x0541D01E, 0x00A21869,
0x038F42FA, 0x04F8BCE5, 0x07AC3407, 0x049FC3B5,
0x07F4902B, 0x03CF9275, 0x05526F3D, 0x05E28B23,
0x00EEEA3A, 0x03982C33, 0x04124282, 0x0396F250,
0x0195A14C, 0x072E5EAE, 0x00E6E717, 0x003DC85E,
0x038B6FF8, 0x04C7B6FE, 0x076F853B, 0x05BAA978,
0x030EDF53, 0x04F1AEAB, 0x03A3D1B0, 0x0207BA9D,
0x03928189, 0x006E3DFD, 0x012EDB63, 0x062116C3,
0x0786305B, 0x065C3FAD, 0x044AE49B, 0x0431138D,
0x068963C6, 0x07CDC08C, 0x0179CBEE, 0x04E823B2,
0x03F919C6, 0x04B360F1, 0x06E5AC3C, 0x0540C334,
0x06A9102C, 0x061CB509, 0x013B8536, 0x00D5B3D6,
0x04838C80, 0x066308A8, 0x076AE7EA, 0x0613968A,
0x054EC14E, 0x05BC0854, 0x034602A9, 0x068FB55C,
0x04D5A55B, 0x02FC18B0, 0x044B9B70, 0x05BF28AF,
0x07FE89F2, 0x0452207A, 0x03AFAA4F, 0x0288FEA8,
0x0426C60C, 0x034D6F1D, 0x053EA274, 0x06F5631E,
0x0349AF3E, 0x048ABC15, 0x026E0937, 0x03C69B8B,
0x03CA94DE, 0x02F36D84, 0x01ABC96A, 0x01C5C9E1,
0x05B3C1A6, 0x0025E14B, 0x033E0FD8, 0x07BABDEF,
0x06FFC780, 0x02ED1E95, 0x04B92564, 0x075B4238,
0x078FEF49, 0x04A1024B, 0x00AA6C24, 0x01310C32,
0x067B8D0D, 0x059D38EC, 0x06411603, 0x039D4F50,
0x0003471B, 0x002F1F45, 0x027AF1F8, 0x061E6850,
0x055AB734, 0x036E99E3, 0x07014475, 0x069B10C3,
0x068BE51A, 0x02C006C5, 0x0288E7B8, 0x075B45DB,
0x016F1C65, 0x03465E48, 0x043C68CA, 0x05E77E8D,
0x0051F731, 0x012DC2FF, 0x01C11914, 0x02ADA6A1,
0x02456B10, 0x0365049F, 0x013F80A6, 0x03B4AD28,
0x01C480E2, 0x06C2F6DB, 0x06512084, 0x00E5DC11,
0x02DC1915, 0x01840696, 0x034087A0, 0x07C40C20,
0x03963E03, 0x062BAEE1, 0x07BC9556, 0x02DF2044,
0x009823EE, 0x027671B0, 0x051C0806, 0x0479E463,
0x0241414B, 0x0524582B, 0x06077E70, 0x02969905,
0x01480578, 0x02AF230F, 0x07A9D824, 0x03955F39,
0x04416164, 0x035E768D, 0x02DBEB41, 0x031AC25E,
0x01B43DA1, 0x040FF3CC, 0x02B93B42, 0x00D0CD63,
0x05C34037, 0x05E17F9D, 0x06D4006B, 0x06216274,
0x00536CF2, 0x003C9402, 0x006B6BCA, 0x02C4975A,
0x022B10A4, 0x05711925, 0x0155CE98, 0x038C6B67,
0x02A06A0C, 0x060FAC1C, 0x02AB5B25, 0x038FB9A3,
0x011261EC, 0x00A391B5, 0x07DB8671, 0x04FA631C,
0x0739EFBE, 0x06EDC12A, 0x04F4C770, 0x003DD114,
0x00888C03, 0x00FFF95C, 0x02EFBD4E, 0x029C2CCC,
0x02D3F3C3, 0x029B853C, 0x02603C10, 0x00F8431D,
0x03250BE4, 0x0460FEF8, 0x0250E2D5, 0x0439722E,
0x02513A6E, 0x05D82FCD, 0x064894C2, 0x05492769,
0x03266680, 0x047E0475, 0x02FA0EB6, 0x06BA3C61,
0x047FA9A9, 0x02C1A9FE, 0x025ACFB7, 0x02985ED2,
0x04441BAC, 0x060D6E18, 0x04D5A4D7, 0x042A7F2E,
0x06902DAB, 0x00E87B20, 0x017F6ECE, 0x0134312A,
0x054D7CCE, 0x04C49F48, 0x03E33BA0, 0x00990CF1,
0x00BD21BD, 0x01466B0D, 0x0702E278, 0x038ED06C,
0x04BC7EB9, 0x07D59BF7, 0x04572039, 0x02C0EF14,
0x00B3DEDC, 0x0560B71B, 0x04EE3D97, 0x018816E1,
0x06185D9B, 0x01D91E3E, 0x0333A02E, 0x0287192F,
0x02052CC5, 0x06E702F5, 0x044385D7, 0x03C0D8EC,
0x03EAA772, 0x0495D684, 0x029CBCAD, 0x051DB4F4,
0x0413BD8A, 0x057B06E4, 0x02650B62, 0x04683194,
0x07CDCE28, 0x05815B81, 0x02BF630C, 0x0408C8CD,
0x07F1D99C, 0x04D9DB4D, 0x07E2FCA1, 0x067F15BE,
0x034C32D2, 0x07A5E06F, 0x0349D642, 0x06475323,
0x05104EAB, 0x04FD4462, 0x03750461, 0x02B1D943,
0x061EA9C7, 0x067BC97D, 0x02619A6B, 0x0654F1A7,
0x0153E670, 0x00E597C0, 0x05F234AB, 0x04F7C459,
0x026DD557, 0x06A0FC01, 0x0705E313, 0x05056DFE,
0x018DD524, 0x033F7EBE, 0x02075A2E, 0x05BF99F2,
0x00AA1078, 0x00C6B82E, 0x0194A559, 0x06AC62BB,
0x03187480, 0x024316BE, 0x035B674C, 0x069C78DA,
0x0698BE5B, 0x079353F3, 0x02AE3CD4, 0x00CAC9D4,
0x006DBF93, 0x061BCE6F, 0x04B74C88, 0x07E0113E,
0x013EC74C, 0x035AD6BE, 0x0360215D, 0x07F3B0E0,
0x01B37B6A, 0x05B2A0CC, 0x03D32F5D, 0x016BB94D,
0x01A374D1, 0x06A8F973, 0x0181AC19, 0x04176B01,
0x0785C98E, 0x0013DB53, 0x075247CE, 0x0767FF49,
0x00B29434, 0x061FDEB3, 0x05C57CF0, 0x07D1FDA2,
0x030968E5, 0x01C01BA4, 0x03BAC374, 0x0744CDE1,
0x07E9CDBA, 0x0199E71A, 0x012481EA, 0x07D1712E,
0x01CD4CCB, 0x01377B6D, 0x05605B0E, 0x002FEAD2,
0x02B2337B, 0x07622D30, 0x00A04AD9, 0x02D3BE46,
0x07F02949, 0x0424A261, 0x076585B5, 0x078816BE,
0x07154117, 0x01C11842, 0x050029F9, 0x07928B4E,
0x04F89976, 0x0458082C, 0x0119CF5D, 0x01B54C8A,
0x04F5282C, 0x02095F82, 0x01DFDB26, 0x06B7BC89,
0x0582A656, 0x075A623D, 0x04BDB794, 0x0637A962,
0x057A662D, 0x046B8EC7, 0x0621680F, 0x025175A7,
0x0021CB4A, 0x009B3215, 0x015F1CAD, 0x06589BDD,
0x06C0168B, 0x0362B7F9, 0x07300782, 0x06B22353,
0x06540788, 0x01160327, 0x023E8711, 0x05014033,
0x000405D7, 0x028C4AD2, 0x0236D242, 0x05F2E721,
0x067CF60A, 0x05BB8ACD, 0x0060EF1A, 0x05AC708E,
0x07E2BC7D, 0x07C99786, 0x00E49260, 0x01E5411A,
0x047D51FB, 0x05CD01A8, 0x071081EB, 0x04CD0F64,
0x039818D2, 0x0333096C, 0x04B686D1, 0x0399D633,
0x0774C73D, 0x07CE7E4A, 0x03E8FB45, 0x07F00496,
0x07909622, 0x047701B7, 0x0527C8D1, 0x07E9318D,
0x00629C06, 0x00C79873, 0x024C1C1C, 0x0743B797,
0x05B1E662, 0x01542F00, 0x02AC058C, 0x0178AE04,
0x0153DC07, 0x07D617F5, 0x05BC22B3, 0x054658D6,
0x07E328D1, 0x04769750, 0x041DCC6A, 0x04C55E9F,
0x025F562F, 0x012AD3D9, 0x07E16C24, 0x079177C2,
0x04FCA8EF, 0x02D93386, 0x05161E69, 0x06B39D9D,
0x008699E0, 0x0405519F, 0x029FB6BA, 0x038F33FF,
0x0443ED1D, 0x04608C08, 0x02426B87, 0x0662A078,
0x05A748EC, 0x0305A6CE, 0x04E1841B, 0x0171FE26,
0x057ADCFA, 0x00F46C0A, 0x00052EC8, 0x051F0984,
0x06E385FF, 0x01173F10, 0x05166DF2, 0x07793AE8,
0x013C3393, 0x006135F5, 0x06C00900, 0x04D5F763,
0x02C7993D, 0x07049AEE, 0x0272F2BD, 0x021D5CB5,
0x05A53EFE, 0x06466AB1, 0x077FDD2B, 0x03976DA3,
0x05EEBAC3, 0x0315E29B, 0x000D8D97, 0x00E0292F,
0x01AC4A30, 0x05D468EA, 0x07F92E7A, 0x04790EB8,
0x00416DE1, 0x01C0269C, 0x06564FC0, 0x064D8FD1
};

View File

@ -63,6 +63,9 @@ BOOL HOTSW_IsCardExist(void);
// カードにアクセスできる状態か判定
BOOL HOTSW_IsCardAccessible(void);
// デバッグ用
void HOTSW_CardIF_Polling(void);
// Romエミュレーション情報を格納しているバッファのポインタを返す
#ifdef SDK_ARM7
void* HOTSW_GetRomEmulationBuffer(void);