mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
コミット忘れの修正。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@543 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
b80be7b1a1
commit
5c183b6f10
147
build/libraries_sysmenu/sysmenu/common/src/status.c
Normal file
147
build/libraries_sysmenu/sysmenu/common/src/status.c
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlIPL
|
||||||
|
File: status.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.
|
||||||
|
|
||||||
|
$Date:: $
|
||||||
|
$Rev$
|
||||||
|
$Author$
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include <twl.h>
|
||||||
|
#include <sysmenu.h>
|
||||||
|
#include "internal_api.h"
|
||||||
|
|
||||||
|
// define data-----------------------------------------------------------------
|
||||||
|
// extern data-----------------------------------------------------------------
|
||||||
|
// function's prototype-------------------------------------------------------
|
||||||
|
static int SYSMi_IsValidCard( void );
|
||||||
|
// global variable-------------------------------------------------------------
|
||||||
|
// static variable-------------------------------------------------------------
|
||||||
|
// const data------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
// ランチャーパラメータの取得
|
||||||
|
const LauncherParamBody *SYSM_GetLauncherParamBody( void )
|
||||||
|
{
|
||||||
|
return (const LauncherParamBody *)&SYSMi_GetWork()->launcherParam.body;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ロゴデモスキップかどうかをセット
|
||||||
|
void SYSM_SetLogoDemoSkip( BOOL skip )
|
||||||
|
{
|
||||||
|
SYSMi_GetWork()->flags.common.isLogoSkip = skip;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ロゴデモスキップか?
|
||||||
|
BOOL SYSM_IsLogoDemoSkip( void )
|
||||||
|
{
|
||||||
|
return (BOOL)SYSMi_GetWork()->flags.common.isLogoSkip;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ISデバッガのバナービューモード起動かどうか?
|
||||||
|
BOOL SYSMi_IsDebuggerBannerViewMode( void )
|
||||||
|
{
|
||||||
|
#ifdef __IS_DEBUGGER_BUILD
|
||||||
|
return ( SYSMi_GetWork()->flags.common.isOnDebugger &&
|
||||||
|
SYSMi_IsValidCard() &&
|
||||||
|
SYSM_GetCardRomHeader()->dbgRomSize == 0 ) ? TRUE : FALSE;
|
||||||
|
#else
|
||||||
|
return FALSE;
|
||||||
|
#endif // __IS_DEBUGGER_BUILD
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// TPリード可能状態か?
|
||||||
|
BOOL SYSM_IsTPReadable( void )
|
||||||
|
{
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// TSD有効/無効をセット
|
||||||
|
void SYSM_SetValidTSD( BOOL valid )
|
||||||
|
{
|
||||||
|
SYSMi_GetWork()->flags.common.isValidTSD = valid;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// TSD有効?
|
||||||
|
BOOL SYSM_IsValidTSD( void )
|
||||||
|
{
|
||||||
|
return (BOOL)SYSMi_GetWork()->flags.common.isValidTSD;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 有効なTWL/NTRカードが差さっているか?
|
||||||
|
BOOL SYSM_IsExistCard( void )
|
||||||
|
{
|
||||||
|
return (BOOL)SYSMi_GetWork()->flags.common.isExistCard;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 検査用カードが差さっているか?
|
||||||
|
BOOL SYSM_IsInspectCard( void )
|
||||||
|
{
|
||||||
|
return ( SYSM_IsExistCard() && SYSM_GetCardRomHeader()->inspect_card );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 有効なTWLカードが差さっているか?
|
||||||
|
BOOL SYSM_IsTWLCard( void );
|
||||||
|
BOOL SYSM_IsTWLCard( void )
|
||||||
|
{
|
||||||
|
return ( SYSM_IsExistCard() && ( SYSM_GetCardRomHeader()->platform_code & PLATFORM_CODE_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_IsValidCard( void )
|
||||||
|
{
|
||||||
|
if( ( SYSM_GetCardRomHeader()->nintendo_logo_crc16 == 0xcf56 ) &&
|
||||||
|
( SYSM_GetCardRomHeader()->header_crc16 == SYSMi_GetWork()->cardHeaderCrc16 ) ) {
|
||||||
|
return TRUE; // NTR,TWLカードあり(NintendoロゴCRC、カードヘッダCRCが正しい場合)
|
||||||
|
// ※Nintendoロゴデータのチェックは、特許の都合上、ロゴ表示ルーチン起動後に行います。
|
||||||
|
}else {
|
||||||
|
return FALSE; // NTR,TWLカードなし
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// エントリアドレスの正当性チェック
|
||||||
|
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 ) )
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
OS_TPrintf("entry address invalid.\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
OS_TPrintf("entry address valid.\n");
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user