mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
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:
parent
1fc7b62c89
commit
09f3649d7a
@ -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)) {
|
||||
|
||||
@ -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]から格納される)
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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 );
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user