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