SDK3244対応

・アプリ間連携テストで、SDKのAPIを利用するよう変更
 ・その他smallfix

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@398 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yoshida_teruhisa 2007-12-25 09:15:55 +00:00
parent 1fc7b62c89
commit 09f3649d7a
15 changed files with 72 additions and 56 deletions

View File

@ -321,6 +321,7 @@ static void BannerDraw(int cursor, int selected, TitleProperty *titleprop)
NNSG2dTextRect rect = NNS_G2dTextCanvasGetTextRect( &gTextCanvas, str );
NNS_G2dCharCanvasClearArea( &gCanvas, TXT_COLOR_NULL, 0, 24, WINDOW_WIDTH, 32 );
PutStringUTF16( (WINDOW_WIDTH-rect.width)>>1, TITLE_V_CENTER - (rect.height>>1), TXT_COLOR_BLACK, str );
old_selected = selected;
}
if(fadecount < (FADE_COUNT_MAX - FADE_START)) {

View File

@ -94,9 +94,8 @@ void TwlMain( void )
// 「ダイレクトブートでない」なら
if( !pBootTitle ) {
// アプリ間パラメータの呼び出し元アプリ情報をクリア
OSDeliverArgInfo *arginfo = (OSDeliverArgInfo *)HW_PARAM_DELIVER_ARG;
arginfo->gameCode = NULL;
// アプリ間パラメタのvalidフラグを落とす
OS_SetValidDeliveryArgumentInfo( FALSE );
// NAND & カードアプリリスト取得
(void)SYSM_GetNandTitleList( s_titleList, LAUNCHER_TITLE_LIST_NUM ); // NANDアプリリストの取得内蔵アプリはs_titleList[1]から格納される)

View File

@ -25,7 +25,7 @@ TARGET_PLATFORM = TWL
TWL_ARCHGEN = LIMITED
TITLEID_LO = COPA
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).tad
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).$(TWL_BUILD_DIR).tad
TARGET_BIN = main.srl

View File

@ -439,7 +439,7 @@ static void MenuScene(void)
{
BOOL tp_select = FALSE;
static TPData tgt = (TPData){0,0,0,0};
BootFlags tempflag = {TRUE, 0, TRUE, FALSE, FALSE, FALSE, 0};
LauncherBootFlags tempflag = {TRUE, 0, TRUE, FALSE, FALSE, FALSE, 0};
ReadTP();
@ -487,16 +487,18 @@ static void MenuScene(void)
}
// アプリ間パラメータをセット
{
OSDeliverArgInfo *arginfo = (OSDeliverArgInfo *)HW_PARAM_DELIVER_ARG;
// メーカーコードとゲームコードのセット(Launcher側でやるべき)
u16 *maker_code_src_addr = (u16 *)(HW_TWL_ROM_HEADER_BUF + 0x10);
u32 *game_code_src_addr = (u32 *)(HW_TWL_ROM_HEADER_BUF + 0xc);
arginfo->makerCode = *maker_code_src_addr;
// まだゲームコードは証明書の関係でNTRJしか入ってない……ので強制的に値代入
//arginfo->gameCode = *game_code_src_addr;
arginfo->gameCode = 0x41504f43; // 下位から'C','O','P','A'
// アプリ専用部分のセット
MI_CpuCopy8(s_work.parameter, arginfo->buf, 2*(PARAM_LENGTH+1));
// アプリ間パラメータの初期化
OS_InitArgBufferForDelivery( OS_DELIVER_ARG_BUFFER_SIZE );
// validフラグを立てる
OS_SetValidDeliveryArgumentInfo( TRUE );
// メーカーコードとゲームコードのセット(Launcher側でやるべき)
OS_SetMakerCodeToDeliveryArgumentInfo( *maker_code_src_addr );
OS_SetGameCodeToDeliveryArgumentInfo( *game_code_src_addr );
OS_SetTitleIdToDeliveryArgumentInfo( 0x00010001434f5041 );
// アプリ専用引数のセット
OS_SetDeliveryArgments( (const char *)s_work.parameter );
}
//B起動
OS_SetLauncherParamAndResetHardware( 0, 0x00010001434f5042, &tempflag );
@ -518,10 +520,10 @@ void CooperationAInit( void )
MenuInit();
{
OSDeliverArgInfo *arginfo = (OSDeliverArgInfo *)HW_PARAM_DELIVER_ARG;
if(arginfo->gameCode != NULL)
if( OS_IsValidDeliveryArgumentInfo() )
{
if(STD_CompareNString((const char *)arginfo->buf, "-r", 3) == 0)
OS_DecodeDeliveryBuffer();
if(STD_CompareNString((const char *)OS_GetArgv(1), "-r", 3) == 0)
{
// セーブしたデータから復帰
FSFile f;

View File

@ -25,7 +25,7 @@ TARGET_PLATFORM = TWL
TWL_ARCHGEN = LIMITED
TITLEID_LO = COPB
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).tad
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).$(TWL_BUILD_DIR).tad
TARGET_BIN = main.srl

View File

@ -44,8 +44,6 @@ static u16 s_csr = 0;
static u16 s_parameter[ PARAM_LENGTH + 1 ];
static void(*s_pNowProcess)(void);
static u32 invGameCode;
// const data -----------------------------------------
static const u16 *s_pStrMenu[ COPB_MENU_ELEMENT_NUM ] =
{
@ -77,7 +75,8 @@ static void DrawMenuScene( void )
PutStringUTF16( 1*8, 18*8, TXT_COLOR_BLACK, (const u16 *)L"受け取ったパラメータ:");
PutStringUTF16( 3 * 8 , 20*8, TXT_UCOLOR_G0, s_parameter );
PutStringUTF16( 1*8, 14*8, TXT_COLOR_BLACK, (const u16 *)L"呼び出し元アプリ:");
PrintfSJIS(3*8, 16*8, TXT_COLOR_BLACK, "0x%llx",(u64)0x0001000100000000 + invGameCode);
PrintfSJIS(3*8, 16*8, TXT_COLOR_BLACK, "0x%llx",OS_IsValidDeliveryArgumentInfo() ? OS_GetTitleIdFromDeliveryArgumentInfo() : 0x0);
GetAndDrawRTCData( &g_rtcDraw, TRUE );
// メニュー項目
DrawMenu( s_csr, &s_menuParam );
@ -101,13 +100,18 @@ static void MenuInit( void )
MI_CpuClear8(s_parameter, 2*(PARAM_LENGTH+1));
{
OSDeliverArgInfo *arginfo = (OSDeliverArgInfo *)HW_PARAM_DELIVER_ARG;
u8 *gc = (u8 *)&arginfo->gameCode;
invGameCode = (u32)(gc[0]<<24) + (u32)(gc[1]<<16) + (u32)(gc[2]<<8) + (u32)gc[3];
if(invGameCode != NULL)
if( OS_IsValidDeliveryArgumentInfo() )
{
s_menuPos[ 0 ].enable = TRUE;
MI_CpuCopy8(arginfo->buf, s_parameter, 2*(PARAM_LENGTH+1));
OS_DecodeDeliveryBuffer();
if(OS_GetArgv(1) != NULL)
{
MI_CpuCopy8(OS_GetArgv(1), s_parameter, 2*(PARAM_LENGTH+1));
}
else
{
s_parameter[0] = '\0';
}
}
}
@ -120,7 +124,7 @@ static void MenuInit( void )
static void MenuScene(void)
{
BOOL tp_select = FALSE;
BootFlags tempflag = {TRUE, 0, TRUE, FALSE, FALSE, FALSE, 0};
LauncherBootFlags tempflag = {TRUE, 0, TRUE, FALSE, FALSE, FALSE, 0};
ReadTP();
@ -145,20 +149,24 @@ static void MenuScene(void)
if( s_menuPos[ s_csr ].enable ) {
switch( s_csr ) {
case 0:
if(invGameCode != NULL)
if(OS_IsValidDeliveryArgumentInfo())
{
// アプリ間パラメータをセット
OSDeliverArgInfo *arginfo = (OSDeliverArgInfo *)HW_PARAM_DELIVER_ARG;
// メーカーコードとゲームコードのセット(Launcher側でやるべき)
u16 *maker_code_src_addr = (u16 *)(HW_TWL_ROM_HEADER_BUF + 0x10);
u32 *game_code_src_addr = (u32 *)(HW_TWL_ROM_HEADER_BUF + 0xc);
arginfo->makerCode = *maker_code_src_addr;
arginfo->gameCode = *game_code_src_addr;
// アプリ専用部分のセット
MI_CpuCopy8("-r", arginfo->buf, 3);
u64 targetApp = OS_GetTitleIdFromDeliveryArgumentInfo();
// アプリ間パラメータの初期化
OS_InitArgBufferForDelivery( OS_DELIVER_ARG_BUFFER_SIZE );
// validフラグを立てる
OS_SetValidDeliveryArgumentInfo( TRUE );
// メーカーコードとゲームコードのセット(Launcher側でやるべき)
OS_SetMakerCodeToDeliveryArgumentInfo( *maker_code_src_addr );
OS_SetGameCodeToDeliveryArgumentInfo( *game_code_src_addr );
OS_SetTitleIdToDeliveryArgumentInfo( 0x00010001434f5042 );
// アプリ専用引数のセット
OS_SetDeliveryArgments( "-r" );
//呼び出し元アプリ起動
OS_SetLauncherParamAndResetHardware( 0, (u64)0x0001000100000000 + invGameCode, &tempflag );
//OS_SetLauncherParamAndResetHardware( 0, (u64)0x00010001434f5041, &tempflag );
OS_SetLauncherParamAndResetHardware( 0, targetApp, &tempflag );
}
break;
case 1:
@ -182,4 +190,4 @@ void CooperationBInit( void )
void CooperationBMain(void)
{
s_pNowProcess();
}
}

View File

@ -25,7 +25,7 @@ TARGET_PLATFORM = TWL
TWL_ARCHGEN = LIMITED
TITLEID_LO = COPC
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).tad
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).$(TWL_BUILD_DIR).tad
TARGET_BIN = main.srl

View File

@ -439,7 +439,7 @@ static void MenuScene(void)
{
BOOL tp_select = FALSE;
static TPData tgt = (TPData){0,0,0,0};
BootFlags tempflag = {TRUE, 0, TRUE, FALSE, FALSE, FALSE, 0};
LauncherBootFlags tempflag = {TRUE, 0, TRUE, FALSE, FALSE, FALSE, 0};
ReadTP();
@ -487,16 +487,18 @@ static void MenuScene(void)
}
// アプリ間パラメータをセット
{
OSDeliverArgInfo *arginfo = (OSDeliverArgInfo *)HW_PARAM_DELIVER_ARG;
// メーカーコードとゲームコードのセット(Launcher側でやるべき)
u16 *maker_code_src_addr = (u16 *)(HW_TWL_ROM_HEADER_BUF + 0x10);
u32 *game_code_src_addr = (u32 *)(HW_TWL_ROM_HEADER_BUF + 0xc);
arginfo->makerCode = *maker_code_src_addr;
// まだゲームコードは証明書の関係でNTRJしか入ってない……ので強制的に値代入
//arginfo->gameCode = *game_code_src_addr;
arginfo->gameCode = 0x43504f43; // 下位から'C','O','P','C'
// アプリ専用部分のセット
MI_CpuCopy8(s_work.parameter, arginfo->buf, 2*(PARAM_LENGTH+1));
// アプリ間パラメータの初期化
OS_InitArgBufferForDelivery( OS_DELIVER_ARG_BUFFER_SIZE );
// validフラグを立てる
OS_SetValidDeliveryArgumentInfo( TRUE );
// メーカーコードとゲームコードのセット(Launcher側でやるべき)
OS_SetMakerCodeToDeliveryArgumentInfo( *maker_code_src_addr );
OS_SetGameCodeToDeliveryArgumentInfo( *game_code_src_addr );
OS_SetTitleIdToDeliveryArgumentInfo( 0x00010001434f5043 );
// アプリ専用引数のセット
OS_SetDeliveryArgments( (const char *)s_work.parameter );
}
//B起動
OS_SetLauncherParamAndResetHardware( 0, 0x00010001434f5042, &tempflag );
@ -518,10 +520,10 @@ void CooperationCInit( void )
MenuInit();
{
OSDeliverArgInfo *arginfo = (OSDeliverArgInfo *)HW_PARAM_DELIVER_ARG;
if(arginfo->gameCode != NULL)
if(OS_IsValidDeliveryArgumentInfo())
{
if(STD_CompareNString((const char *)arginfo->buf, "-r", 3) == 0)
OS_DecodeDeliveryBuffer();
if(STD_CompareNString((const char *)OS_GetArgv(1), "-r", 3) == 0)
{
// セーブしたデータから復帰
FSFile f;

View File

@ -188,6 +188,7 @@ TwlSpMain(void)
// システム領域(WRAM & MMEM)にSCFG情報をセット
static void SetSCFGWork( void )
{
/*
// SCFGレジスタが有効な場合のみセット
if( reg_SCFG_EXT & REG_SCFG_EXT_CFG_MASK ) {
// WRAMのシステム領域にセット
@ -211,6 +212,7 @@ static void SetSCFGWork( void )
// MMEMのシステム領域にコピー
MI_CpuCopy8( (void*)HWi_WSYS04_ADDR, (void *)HW_SYS_CONF_BUF, 6 );
}
*/
}
static BOOL IsEnableJTAG( void )
@ -228,6 +230,7 @@ static BOOL IsEnableJTAG( void )
#define MCU_RESET_VALUE_LEN 1
void ReadLauncherParameter( void )
{
/*
if( ( *(u32 *)HW_RESET_PARAMETER_BUF & MCU_RESET_VALUE_BUF_ENABLE_MASK ) == 0 ) {
(void)MCU_GetFreeRegisters( MCU_RESET_VALUE_OFS, (u8 *)HW_RESET_PARAMETER_BUF, MCU_RESET_VALUE_LEN );
}
@ -254,6 +257,7 @@ void ReadLauncherParameter( void )
}
// メインメモリのランチャーパラメータをクリアしておく
MI_CpuClear32( SYSMi_GetLauncherParamAddr(), HW_PARAM_LAUNCH_PARAM_SIZE );
*/
}

View File

@ -40,7 +40,7 @@ BINDIR = ./bin/$(TWL_BUILDTYPE)/$(TARGET_NAME)
TARGET_BIN = $(TARGET_NAME).srl
TITLEID_LO = RCK$(TARGET_NUMBER)
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).tad
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).$(TWL_BUILD_DIR).tad
LCFILE_SPEC = ARM9-TS.lsf
ROM_SPEC = main.rsf

View File

@ -40,7 +40,7 @@ BINDIR = ./bin/$(TWL_BUILDTYPE)/$(TARGET_NAME)
TARGET_BIN = $(TARGET_NAME).srl
TITLEID_LO = RCK$(TARGET_NUMBER)
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).tad
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).$(TWL_BUILD_DIR).tad
LCFILE_SPEC = ARM9-TS.lsf
ROM_SPEC = main.rsf

View File

@ -40,7 +40,7 @@ BINDIR = ./bin/$(TWL_BUILDTYPE)/$(TARGET_NAME)
TARGET_BIN = $(TARGET_NAME).srl
TITLEID_LO = RCK$(TARGET_NUMBER)
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).tad
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).$(TWL_BUILD_DIR).tad
LCFILE_SPEC = ARM9-TS.lsf
ROM_SPEC = main.rsf

View File

@ -40,7 +40,7 @@ BINDIR = ./bin/$(TWL_BUILDTYPE)/$(TARGET_NAME)
TARGET_BIN = $(TARGET_NAME).srl
TITLEID_LO = RCK$(TARGET_NUMBER)
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).tad
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).$(TWL_BUILD_DIR).tad
LCFILE_SPEC = ARM9-TS.lsf
ROM_SPEC = main.rsf

View File

@ -40,7 +40,7 @@ BINDIR = ./bin/$(TWL_BUILDTYPE)/$(TARGET_NAME)
TARGET_BIN = $(TARGET_NAME).srl
TITLEID_LO = RCK$(TARGET_NUMBER)
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).tad
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).$(TWL_BUILD_DIR).tad
LCFILE_SPEC = ARM9-TS.lsf
ROM_SPEC = main.rsf

View File

@ -40,7 +40,7 @@ BINDIR = ./bin/$(TWL_BUILDTYPE)/$(TARGET_NAME)
TARGET_BIN = $(TARGET_NAME).srl
TITLEID_LO = RCK$(TARGET_NUMBER)
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).tad
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).$(TWL_BUILD_DIR).tad
LCFILE_SPEC = ARM9-TS.lsf
ROM_SPEC = main.rsf