From 8e85753fb1c1ebf26f55a47f168557d939b85a0e Mon Sep 17 00:00:00 2001 From: yosiokat Date: Wed, 14 Nov 2007 04:36:26 +0000 Subject: [PATCH] =?UTF-8?q?=E3=82=BD=E3=83=BC=E3=82=B9=E6=95=B4=E7=90=86?= =?UTF-8?q?=E4=B8=AD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@170 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../sysmenu/ARM9/src/sysmenu_card.c | 2 +- .../sysmenu/ARM9/src/sysmenu_lib.c | 363 ++++++++++-------- .../ARM9/src/DS_DownloadPlay.c | 6 +- build/systemMenu_RED/Launcher/ARM9/src/main.c | 6 +- .../MachineSettings/ARM9/src/calibrationTP.c | 2 +- .../MachineSettings/ARM9/src/selectLanguage.c | 4 +- .../MachineSettings/ARM9/src/setRTC.c | 5 +- .../sysmenu/sysmenu_lib/ARM9/sysmenu_api.h | 2 +- include/sysmenu/sysmenu_work.h | 36 +- 9 files changed, 213 insertions(+), 213 deletions(-) diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_card.c b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_card.c index 317f11b0..50a22e41 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_card.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_card.c @@ -77,7 +77,7 @@ BOOL SYSM_IsCardPulledOut(void) case CARD_DETECTING: if (SYSMi_IsCardDataReady()) { u32 cardID = *(vu32 *)REG_CARD_DATA; - if ( ( cardID != GetSYSMWork()->nCardID ) && + if ( ( cardID != SYSM_GetWork()->nCardID ) && SYSM_IsExistCard() ) { cpw.detectPullOut = TRUE; diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c index 5cff0423..64ec1061 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c @@ -36,9 +36,8 @@ typedef struct BannerCheckParam { // function's prototype------------------------------------------------------- static BOOL SYSMi_IsDebuggerBannerViewMode( void ); static BOOL SYSMi_CheckTitlePointer( TitleProperty *pBootTitle ); - static void SYSMi_WriteAdjustRTC( void ); -static int SYSMi_ExistCard( void ); +static int SYSMi_IsValidCard( void ); static void SYSMi_ReadCardBannerFile( void ); static BOOL SYSMi_CheckEntryAddress( void ); static void SYSMi_CheckCardCloneBoot( void ); @@ -55,9 +54,9 @@ NitroConfigData *ncdp; // #endif // static variable------------------------------------------------------------- -static BOOL s_isBanner = FALSE; +static BOOL s_isBanner = FALSE; static NTRBannerFile s_bannerBuf; -static NAMTitleId old_titleIdArray[ LAUNCHER_TITLE_LIST_NUM ]; +static NAMTitleId old_titleIdArray[ LAUNCHER_TITLE_LIST_NUM ]; // const data------------------------------------------------------------------ @@ -70,17 +69,32 @@ static BannerCheckParam s_bannerCheckList[ NTR_BNR_VER_MAX ] = { // ============================================================================ -// function's description +// +// 初期化 +// // ============================================================================ -static void * AllocForNAM(unsigned long size) +// SystemMenuの初期化 +void SYSM_Init( void *(*pAlloc)(u32), void (*pFree)(void*) ) { - return OS_AllocFromHeap( OS_ARENA_MAIN, OS_CURRENT_HEAP_HANDLE, size ); -} - -static void FreeForNAM(void *p) -{ - OS_FreeToHeap( OS_ARENA_MAIN, OS_CURRENT_HEAP_HANDLE, p); +#ifdef __SYSM_DEBUG + pSysm = SYSM_GetWork(); + ncdp = GetTSD(); +#endif /* __SYSM_DEBUG */ + + // ARM7コンポーネント用プロテクションユニット領域変更 + OS_SetProtectionRegion( 2, 0x02280000, 512KB ); + + // ARM9用ブートコード配置のため、アリーナHi位置を下げる + OS_SetMainArenaHi( (void *)0x02e7fc00 ); + + SYSM_SetAllocFunc( pAlloc, pFree ); + + // WRAM設定はいる? +// MI_SetMainMemoryPriority(MI_PROCESSOR_ARM7); +// MI_SetWramBank(MI_WRAM_ARM7_ALL); + + SVC_CpuClearFast(0x0000, (u16 *)SYSM_GetWork(), sizeof(SYSM_work)); // SYSMワークのクリア } @@ -92,36 +106,23 @@ void SYSM_SetAllocFunc( void *(*pAlloc)(u32), void (*pFree)(void*) ) } -// SystemMenuの初期化 -void SYSM_Init( void *(*pAlloc)(u32), void (*pFree)(void*) ) -{ -#ifdef __SYSM_DEBUG - pSysm = GetSYSMWork(); - ncdp = GetTSD(); -#endif /* __SYSM_DEBUG */ - - OS_SetMainArenaHi( (void *)0x02e7fc00 ); +// ============================================================================ +// +// 情報取得 +// +// ============================================================================ - TP_Init(); - RTC_Init(); - - SYSM_SetAllocFunc( pAlloc, pFree ); - - // WRAM設定はいる? -// MI_SetMainMemoryPriority(MI_PROCESSOR_ARM7); -// MI_SetWramBank(MI_WRAM_ARM7_ALL); - - SVC_CpuClearFast(0x0000, (u16 *)GetSYSMWork(), sizeof(SYSM_work)); // SYSMワークのクリア - - +// パラメータリード +void SYSM_ReadParameters( void ) +{ reg_OS_PAUSE |= REG_OS_PAUSE_CHK_MASK; // PAUSEレジスタのチェックフラグのセット + if( SYSM_ReadTWLSettingsFile() ) { // NANDからTWL本体設定データをリード + SYSM_SetBackLightBrightness( (u8)TSD_GetBacklightBrightness() ); // 読み出したTWL本体設定データをもとにバックライト輝度設定 + SYSM_CaribrateTP(); // 読み出したTWL本体設定データをもとにTPキャリブレーション。 + } // SYSM_ReadHWInfo(); // NANDからHW情報をリード - SYSM_ReadTWLSettingsFile(); // NANDからTWL本体設定データをリード - - SYSM_SetBackLightBrightness(); // 読み出したTWL本体設定データをもとにバックライト輝度設定 - SYSM_CaribrateTP(); // 読み出したTWL本体設定データをもとにTPキャリブレーション。 - SYSMi_WriteAdjustRTC(); // 読み出したTWL本体設定データをもとにRTCクロック補正値をセット。 + SYSMi_WriteAdjustRTC(); // RTCクロック補正値をセット。 SYSMi_CheckRTC(); SYSM_VerifyAndRecoveryNTRSettings(); // NTR設定データを読み出して、TWL設定データとベリファイし、必要ならリカバリ @@ -275,6 +276,43 @@ int SYSM_GetNandTitleList( TitleProperty *pTitleList_Nand, int size) } +// ロゴデモスキップか? +BOOL SYSM_IsLogoDemoSkip( void ) +{ + // ※システムアプリからのハードリセットによるロゴデモ飛ばしも判定に入れる。 + + return SYSMi_IsDebuggerBannerViewMode(); +} + + +// ISデバッガのバナービューモード起動かどうか? +static BOOL SYSMi_IsDebuggerBannerViewMode( void ) +{ +#ifdef __IS_DEBUGGER_BUILD + return ( SYSM_GetWork()->isOnDebugger && + SYSMi_IsValidCard() && + SYSM_GetCardRomHeader()->dbgRomSize == 0 ) ? TRUE : FALSE; +#else + return FALSE; +#endif // __IS_DEBUGGER_BUILD +} + +// 有効なTWL/NTRカードが差さっているか? +BOOL SYSM_IsExistCard( void ) +{ + return SYSM_GetWork()->isExistCard; +} + + +// 検査用カードが差さっているか? +BOOL SYSM_IsInspectCard( void ) +{ + return ( SYSM_IsExistCard() && SYSM_GetCardRomHeader()->inspect_card ); +} + + + + // 指定タイトルがブート可能なポインタかチェック static BOOL SYSMi_CheckTitlePointer( TitleProperty *pBootTitle ) { @@ -283,18 +321,32 @@ static BOOL SYSMi_CheckTitlePointer( TitleProperty *pBootTitle ) return TRUE; } -enum + +// TPリード可能状態か? +BOOL SYSM_IsTPReadable( void ) { - region_header, - region_arm9_ntr, - region_arm7_ntr, - region_arm9_twl, - region_arm7_twl, - region_max -}; + return TRUE; +} + + +// ============================================================================ +// +// アプリ起動 +// +// ============================================================================ + // 指定タイトルの認証&ロード ※1フレームじゃ終わらん。 AuthResult SYSM_LoadAndAuthenticateTitle( TitleProperty *pBootTitle ) { + enum + { + region_header, + region_arm9_ntr, + region_arm7_ntr, + region_arm9_twl, + region_arm7_twl, + region_max + }; // メインメモリのクリア // DSダウンロードプレイの時は、ROMヘッダを退避する // アプリロード @@ -429,86 +481,18 @@ OS_TPrintf("RebootSystem failed: cant read file(%d, %d)\n", source[i], len); } -#if 0 -// TPリード可能かどうかを調べる。 -BOOL SYSM_IsTPReadable( void ) -{ - if( SYSM_GetBootFlag() & BFLG_BOOT_DECIDED ) return FALSE; - else return TRUE; -} -#endif - - // ============================================================================ -// サブルーチン +// +// デバイス制御 +// // ============================================================================ -// ロゴデモスキップか? -BOOL SYSM_IsLogoDemoSkip( void ) +// バックライト輝度調整 +void SYSM_SetBackLightBrightness( u8 brightness ) { - // ※システムアプリからのハードリセットによるロゴデモ飛ばしも判定に入れる。 - - return SYSMi_IsDebuggerBannerViewMode(); -} - -// ISデバッガのバナービューモード起動かどうか? -static BOOL SYSMi_IsDebuggerBannerViewMode( void ) -{ -#ifdef __IS_DEBUGGER_BUILD - return ( GetSYSMWork()->isOnDebugger && - SYSMi_ExistCard() && - SYSM_GetCardRomHeader()->dbgRomSize == 0 ) ? TRUE : FALSE; -#else - return FALSE; -#endif // __IS_DEBUGGER_BUILD -} - - -// バナーファイルの読み込みの実体 -static void SYSMi_ReadCardBannerFile( void ) -{ - s32 lockCardID; - NTRBannerFile *pBanner = &s_bannerBuf; - - if( ( !SYSMi_ExistCard() ) || ( *(void** )BANNER_ROM_OFFSET == NULL ) ) { - s_isBanner = FALSE; - return; - } - - // ROMカードからのバナーデータのリード - if ( ( lockCardID = OS_GetLockID() ) > 0 ) { - ( void )OS_LockCard( (u16 )lockCardID ); - DC_FlushRange( pBanner, sizeof(NTRBannerFile) ); - SYSM_ReadCard(*(void** )BANNER_ROM_OFFSET, pBanner, sizeof(NTRBannerFile) ); - ( void )OS_UnLockCard( (u16 )lockCardID ); - OS_ReleaseLockID( (u16 )lockCardID ); - } - - // バナーデータの正誤チェック - { - int i; - u16 calc_crc = 0xffff; - u16 *hd_crcp = (u16 *)&pBanner->h.crc16_v1; - BannerCheckParam *chkp = &s_bannerCheckList[ 0 ]; - - s_isBanner = TRUE; - - for( i = 0; i < NTR_BNR_VER_MAX; i++ ) { - if( i < pBanner->h.version ) { - calc_crc = SVC_GetCRC16( calc_crc, chkp->srcp, chkp->size ); - if( calc_crc != *hd_crcp++ ) { - s_isBanner = FALSE; - break; - } - }else { - MI_CpuClear16( chkp->srcp, chkp->size ); - } - chkp++; - } - if( !s_isBanner ) { - MI_CpuClear16( &s_bannerBuf, sizeof(NTRBannerFile) ); - } - } + TSD_SetBacklightBrightness( brightness ); + ( void )PMi_WriteRegister( 4, (u16)brightness ); + SYSM_WriteTWLSettingsFile(); } @@ -550,11 +534,87 @@ static void SYSMi_WriteAdjustRTC( void ) } +// ============================================================================ +// +// バナー +// +// ============================================================================ + +// バナーファイルの読み込みの実体 +static void SYSMi_ReadCardBannerFile( void ) +{ + s32 lockCardID; + NTRBannerFile *pBanner = &s_bannerBuf; + + if( ( !SYSMi_IsValidCard() ) || ( *(void** )BANNER_ROM_OFFSET == NULL ) ) { + s_isBanner = FALSE; + return; + } + + // ROMカードからのバナーデータのリード + if ( ( lockCardID = OS_GetLockID() ) > 0 ) { + ( void )OS_LockCard( (u16 )lockCardID ); + DC_FlushRange( pBanner, sizeof(NTRBannerFile) ); + SYSM_ReadCard(*(void** )BANNER_ROM_OFFSET, pBanner, sizeof(NTRBannerFile) ); + ( void )OS_UnLockCard( (u16 )lockCardID ); + OS_ReleaseLockID( (u16 )lockCardID ); + } + + // バナーデータの正誤チェック + { + int i; + u16 calc_crc = 0xffff; + u16 *hd_crcp = (u16 *)&pBanner->h.crc16_v1; + BannerCheckParam *chkp = &s_bannerCheckList[ 0 ]; + + s_isBanner = TRUE; + + for( i = 0; i < NTR_BNR_VER_MAX; i++ ) { + if( i < pBanner->h.version ) { + calc_crc = SVC_GetCRC16( calc_crc, chkp->srcp, chkp->size ); + if( calc_crc != *hd_crcp++ ) { + s_isBanner = FALSE; + break; + } + }else { + MI_CpuClear16( chkp->srcp, chkp->size ); + } + chkp++; + } + if( !s_isBanner ) { + MI_CpuClear16( &s_bannerBuf, sizeof(NTRBannerFile) ); + } + } +} + + +//====================================================================== +// +// 各種チェック +// +//====================================================================== + +// 有効なTWLカードが差さっているか? +BOOL SYSM_IsTWLCard( void ); +BOOL SYSM_IsTWLCard( void ) +{ + return ( SYSM_IsExistCard() && ( SYSM_GetCardRomHeader()->platform_code & PLATFORM_ID_FLAG_TWL ) ); +} + + +// 有効なNTRカードが差さっているか? +BOOL SYSM_IsNTRCard( void ); +BOOL SYSM_IsNTRCard( void ) +{ + return ( SYSM_IsExistCard() && ( SYSM_GetCardRomHeader()->platform_code == PLATFORM_CODE_NTR ) ); +} + + // NTR,TWLカード存在チェック 「リターン 1:カード認識 0:カードなし」 -static int SYSMi_ExistCard( void ) +static int SYSMi_IsValidCard( void ) { if( ( SYSM_GetCardRomHeader()->nintendo_logo_crc16 == 0xcf56 ) && - ( SYSM_GetCardRomHeader()->header_crc16 == GetSYSMWork()->cardHeaderCrc16) ) { + ( SYSM_GetCardRomHeader()->header_crc16 == SYSM_GetWork()->cardHeaderCrc16 ) ) { return TRUE; // NTR,TWLカードあり(NintendoロゴCRC、カードヘッダCRCが正しい場合) // ※Nintendoロゴデータのチェックは、特許の都合上、ロゴ表示ルーチン起動後に行います。 }else { @@ -562,43 +622,19 @@ static int SYSMi_ExistCard( void ) } } - -// スリープモードへの遷移 -void SYSM_GoSleepMode( void ) -{ -#ifndef __IS_DEBUGGER_BUILD // デバッガ用ビルド時はスリープしない。 - PM_GoSleepMode( (PMWakeUpTrigger)( (PAD_DetectFold() ? PM_TRIGGER_COVER_OPEN : 0) | PM_TRIGGER_RTC_ALARM ), - 0, - 0 ); -#endif /* __IS_DEBUGGER_BUILD */ -} - - -// バックライト輝度調整 -void SYSM_SetBackLightBrightness( void ) -{ - ( void )PMi_WriteRegister( 4, (u16)TSD_GetBacklightBrightness() ); - ( void )PM_SetBackLight( PM_LCD_ALL, PM_BACKLIGHT_ON ); -} - - - - -//====================================================================== -// 各種チェック -//====================================================================== - // エントリアドレスの正当性チェック static BOOL SYSMi_CheckEntryAddress( void ) { // エントリアドレスがROM内登録エリアかAGBカートリッジエリアなら、無限ループに入る。 - if( !( ( (u32)SYSM_GetCardRomHeader()->main_entry_address >= HW_MAIN_MEM ) - && ( (u32)SYSM_GetCardRomHeader()->main_entry_address < SYSM_ARM9_MMEM_ENTRY_ADDR_LIMIT ) ) - || !( ( ( (u32)SYSM_GetCardRomHeader()->sub_entry_address >= HW_MAIN_MEM ) - && ( (u32)SYSM_GetCardRomHeader()->sub_entry_address < SYSM_ARM7_LOAD_MMEM_LAST_ADDR ) ) - || ( ( (u32)SYSM_GetCardRomHeader()->sub_entry_address >= HW_WRAM ) - && ( (u32)SYSM_GetCardRomHeader()->sub_entry_address < SYSM_ARM7_LOAD_WRAM_LAST_ADDR ) ) ) ) - { + if( !( ( (u32)SYSM_GetCardRomHeader()->main_entry_address >= HW_MAIN_MEM ) && + ( (u32)SYSM_GetCardRomHeader()->main_entry_address < SYSM_ARM9_MMEM_ENTRY_ADDR_LIMIT ) + ) || + !( ( ( (u32)SYSM_GetCardRomHeader()->sub_entry_address >= HW_MAIN_MEM ) && + ( (u32)SYSM_GetCardRomHeader()->sub_entry_address < SYSM_ARM7_LOAD_MMEM_LAST_ADDR ) ) || + ( ( (u32)SYSM_GetCardRomHeader()->sub_entry_address >= HW_WRAM ) && + ( (u32)SYSM_GetCardRomHeader()->sub_entry_address < SYSM_ARM7_LOAD_WRAM_LAST_ADDR ) ) + ) + ) { OS_TPrintf("entry address invalid.\n"); #ifdef __DEBUG_SECURITY_CODE DispSingleColorScreen( SCREEN_YELLOW ); @@ -618,7 +654,7 @@ static void SYSMi_CheckCardCloneBoot( void ) u32 total_rom_size = SYSM_GetCardRomHeader()->rom_valid_size ? SYSM_GetCardRomHeader()->rom_valid_size : 0x01000000; u32 file_offset = total_rom_size & 0xFFFFFE00; - if( !SYSMi_ExistCard() ) { + if( !SYSMi_IsValidCard() ) { return; } @@ -632,9 +668,9 @@ static void SYSMi_CheckCardCloneBoot( void ) buffp += total_rom_size & 0x000001FF; if( *buffp++ == 'a' && *buffp == 'c' ) { - GetSYSMWork()->CloneBootMode = cloneBootMode; + SYSM_GetWork()->cloneBootMode = CLONE_BOOT_MODE; }else { - GetSYSMWork()->CloneBootMode = OTHER_BOOT_MODE; + SYSM_GetWork()->cloneBootMode = OTHER_BOOT_MODE; } } @@ -650,7 +686,8 @@ static void SYSMi_CheckRTC( void ) if( !SYSM_CheckRTCDate( &date ) || !SYSM_CheckRTCTime( &time ) #ifndef __IS_DEBUGGER_BUILD // 青デバッガではRTCの電池がないので、毎回ここにひっかかって設定データが片方クリアされてしまう。これを防ぐスイッチ。 - || ( GetSYSMWork()->rtcStatus & 0x01 ) + || + ( SYSM_GetWork()->rtcStatus & 0x01 ) #endif ) { // RTCの異常を検出したら、rtc入力フラグ&rtcOffsetを0にしてNVRAMに書き込み。 OS_TPrintf("\"RTC reset\" or \"Illegal RTC data\" detect!\n"); @@ -662,10 +699,6 @@ static void SYSMi_CheckRTC( void ) } } -BOOL SYSM_IsExistCard( void ) -{ - return TRUE; -} //====================================================================== // デバッグ diff --git a/build/systemMenu_RED/DS_DownloadPlay/ARM9/src/DS_DownloadPlay.c b/build/systemMenu_RED/DS_DownloadPlay/ARM9/src/DS_DownloadPlay.c index 34796a76..d7eb4ed0 100644 --- a/build/systemMenu_RED/DS_DownloadPlay/ARM9/src/DS_DownloadPlay.c +++ b/build/systemMenu_RED/DS_DownloadPlay/ARM9/src/DS_DownloadPlay.c @@ -853,9 +853,9 @@ static void CallbackChild_MB( u32 status, void *arg ) case MB_COMM_CSTATE_BOOT_READY: // ブート準備完了 OS_Printf("CB: boot ready.\n"); -// GetSYSMWork()->mb_flag = 1; -// GetSYSMWork()->mb_ggid = *(u32 *)( MB_GetBeaconRecvStatus()->list[ pCwork->connectTargetNo ].bssDesc.gameInfo.ggid ); -// GetSYSMWork()->mb_ggid = MB_GetBeaconRecvStatus()->list[ pCwork->connectTargetNo ].gameInfo.ggid; +// SYSM_GetWork()->mb_flag = 1; +// SYSM_GetWork()->mb_ggid = *(u32 *)( MB_GetBeaconRecvStatus()->list[ pCwork->connectTargetNo ].bssDesc.gameInfo.ggid ); +// SYSM_GetWork()->mb_ggid = MB_GetBeaconRecvStatus()->list[ pCwork->connectTargetNo ].gameInfo.ggid; (void)SetPrgNextSeqQue( PSEQ_BOOT_READY ); break; diff --git a/build/systemMenu_RED/Launcher/ARM9/src/main.c b/build/systemMenu_RED/Launcher/ARM9/src/main.c index 9054df36..fbe8439a 100644 --- a/build/systemMenu_RED/Launcher/ARM9/src/main.c +++ b/build/systemMenu_RED/Launcher/ARM9/src/main.c @@ -55,7 +55,7 @@ void TwlMain( void ) TitleProperty pTitleList[ LAUNCHER_TITLE_LIST_NUM ]; // システムメニュー初期化---------- -// SYSM_Init( Alloc, Free ); // OS_Initの前でコール。 + SYSM_Init( Alloc, Free ); // OS_Initの前でコール。 // OS初期化------------------------ OS_Init(); @@ -77,9 +77,7 @@ void TwlMain( void ) InitAllocator( &g_allocator ); CMN_InitFileSystem( &g_allocator ); - - SYSM_Init( Alloc, Free ); // OS_Initの前でコール。 -// SYSM_ReadParameters(); + SYSM_ReadParameters(); // リセットパラメータの取得-------- if( SYSM_GetResetParam()->flags.isLogoSkip ) { diff --git a/build/systemMenu_RED/MachineSettings/ARM9/src/calibrationTP.c b/build/systemMenu_RED/MachineSettings/ARM9/src/calibrationTP.c index 392c6cb8..18ab0199 100644 --- a/build/systemMenu_RED/MachineSettings/ARM9/src/calibrationTP.c +++ b/build/systemMenu_RED/MachineSettings/ARM9/src/calibrationTP.c @@ -408,7 +408,7 @@ int TP_CalibrationMain( void ) } if( ( pad.trg & PAD_BUTTON_A ) || tp_ok ) { - GetSYSMWork()->isValidTSD = 0; + SYSM_GetWork()->isValidTSD = 0; s_pTPC->calibTemp.data.raw_x1 = s_pTPC->sample[0].x; s_pTPC->calibTemp.data.raw_y1 = s_pTPC->sample[0].y; diff --git a/build/systemMenu_RED/MachineSettings/ARM9/src/selectLanguage.c b/build/systemMenu_RED/MachineSettings/ARM9/src/selectLanguage.c index f90ccec7..ec51bf89 100644 --- a/build/systemMenu_RED/MachineSettings/ARM9/src/selectLanguage.c +++ b/build/systemMenu_RED/MachineSettings/ARM9/src/selectLanguage.c @@ -80,7 +80,7 @@ void SelectLanguageInit( void ) PutStringUTF16( 8 * 8, 18 * 8, TXT_COLOR_RED, (const u16 *)L"Select language." ); } - if( ( GetSYSMWork()->isValidTSD ) || + if( ( SYSM_GetWork()->isValidTSD ) || ( TSD_GetLanguage() >= TWL_LANG_CODE_MAX ) ) { s_langCode = TWL_LANG_ENGLISH; }else { @@ -128,7 +128,7 @@ int SelectLanguageMain( void ) } if( ( pad.trg & PAD_BUTTON_A ) || tp_select ) { // メニュー項目への分岐 - GetSYSMWork()->isValidTSD = 0; + SYSM_GetWork()->isValidTSD = 0; TSD_SetLanguage( s_langCode ); TSD_SetFlagLanguage( TRUE ); // 言語入力フラグを立てる diff --git a/build/systemMenu_RED/MachineSettings/ARM9/src/setRTC.c b/build/systemMenu_RED/MachineSettings/ARM9/src/setRTC.c index 8899f3d1..ee3610fe 100644 --- a/build/systemMenu_RED/MachineSettings/ARM9/src/setRTC.c +++ b/build/systemMenu_RED/MachineSettings/ARM9/src/setRTC.c @@ -86,7 +86,6 @@ void InputDecimal(int *pTgt, InputNumParam *inpp); static void InputRtcDateTimeInit( int start ); static int InputRtcDateTimeMain( void ); -static void TransmitRtcData(DateTimeParam *dtpp, RtcDateTime *rtcp); static void SelectString( int *pTgt, const u8 **const pStrp, InputNumParam *inpp); static void BcdToHex(int *bcdp); static void HexToBcd(int *hexp); @@ -114,7 +113,7 @@ void SetRTCInit( void ) PutStringUTF16( RETURN_BUTTON_TOP_X, RETURN_BUTTON_TOP_Y, TXT_COLOR_CYAN, (const u16 *)L" RETURN " ); if( g_initialSet ) { - if( GetSYSMWork()->rtcStatus & 0x01) { + if( SYSM_GetWork()->rtcStatus & 0x01) { PutStringUTF16( 8 * 8, 18 * 8, TXT_COLOR_RED, (const u16 *)L"RTC reset is detected!" ); }else { PutStringUTF16( 8 * 8, 18 * 8, TXT_COLOR_RED, (const u16 *)L"Set RTC." ); @@ -380,7 +379,7 @@ static int InputRtcDateTimeMain( void ) TSD_SetRTCOffset( SYSM_CalcRTCOffsetAndSetDateTime( &date, &s_pWork->dtp.Time ) ); } - GetSYSMWork()->isValidTSD = 0; + SYSM_GetWork()->isValidTSD = 0; TSD_SetFlagDateTime( TRUE ); // RTC入力フラグを立てる。 // :::::::::::::::::::::::::::::::::::::::::::::: // TWL設定データファイルへの書き込み diff --git a/include/sysmenu/sysmenu_lib/ARM9/sysmenu_api.h b/include/sysmenu/sysmenu_lib/ARM9/sysmenu_api.h index 2e5eb476..a82d26ce 100644 --- a/include/sysmenu/sysmenu_lib/ARM9/sysmenu_api.h +++ b/include/sysmenu/sysmenu_lib/ARM9/sysmenu_api.h @@ -96,7 +96,7 @@ extern AuthResult SYSM_LoadAndAuthenticateTitle( TitleProperty *pBootTitle ); // // 成功時は、never return. // デバイス制御 extern void SYSM_CaribrateTP( void ); // タッチパネルキャリブレーション -extern void SYSM_SetBackLightBrightness( void ); // バックライトを制御(本体設定データへの値セーブも行う) +extern void SYSM_SetBackLightBrightness( u8 brightness ); // バックライトを制御(本体設定データへの値セーブも行う) // 状態チェック extern BOOL SYSM_IsExistCard( void ); // TWL/NTRカードが差さっているか?(アプリは未認証状態) diff --git a/include/sysmenu/sysmenu_work.h b/include/sysmenu/sysmenu_work.h index bbd38f9c..368ef05e 100644 --- a/include/sysmenu/sysmenu_work.h +++ b/include/sysmenu/sysmenu_work.h @@ -19,7 +19,6 @@ #define __SYSMENU_WORK_H__ #include -#include #ifdef __cplusplus extern "C" { @@ -32,8 +31,6 @@ extern "C" { #endif // SDK_FINALROM -//#define __DEBUG_SECURITY_CODE // PassMeのセキュリティコード確認用スイッチ - // define data ------------------------------------ #define SYSMENU_VER 0x071113 // SystemMenuバージョン @@ -42,12 +39,7 @@ extern "C" { | PAD_BUTTON_X | PAD_BUTTON_Y | PAD_BUTTON_R ) // 量産工程で使用する初回起動設定をキャンセルするショートカットキー - - // bootFlagの値 -#define BFLG_EXIST_CARD 0x00000001 - - -#define cloneBootMode 1 +#define CLONE_BOOT_MODE 1 #define OTHER_BOOT_MODE 2 @@ -55,25 +47,13 @@ extern "C" { // データ型定義 //---------------------------------------------------------------------- -// ロック情報 -typedef struct LockVariable{ - OSLockWord lock; - vu32 value; -}LockVariable; - -// RTC日付時刻構造体 -typedef struct RtcDateTime { - RTCDate Date; - RTCTime Time; -}RtcDateTime; - // SYSM共有ワーク構造体 typedef struct SYSM_work { BOOL isValidTSD; // NITRO設定データ無効フラグ BOOL isOnDebugger; // デバッガ動作か? BOOL isExistCard; // 有効なNTR/TWLカードが存在するか? u16 cardHeaderCrc16; // システムメニューで計算したROMヘッダCRC16 - u8 CloneBootMode; + int cloneBootMode; // NTR-IPL2のレガシー 最終的には消すと思う u32 nCardID; @@ -88,7 +68,7 @@ typedef struct SYSM_work { #if 1 #define SYSM_GetResetParam() ( (ResetParam *)HW_RED_RESERVED ) -#define GetSYSMWork() ( (SYSM_work *)( HW_RED_RESERVED + sizeof(ResetParam) ) ) +#define SYSM_GetWork() ( (SYSM_work *)( HW_RED_RESERVED + sizeof(ResetParam) ) ) #else // SYSMリセットパラメータの取得 #define SYSM_GetResetParam() ( (ResetParam *)0x02000100 ) @@ -100,16 +80,6 @@ typedef struct SYSM_work { // カードROMヘッダワークの取得 #define SYSM_GetCardRomHeader() ( (ROM_Header_Short *)HW_TWL_ROM_HEADER_BUF ) - - -inline void SYSM_SetBootFlag( u32 flag ) -{ -#pragma unused( flag ) -} - -// カードROMヘッダワークの取得 -#define SYSM_GetCardRomHeader() ( (ROM_Header_Short *)HW_TWL_ROM_HEADER_BUF ) - #ifdef __cplusplus } #endif