From d6a207afd50c6f0c07a7f603c768afc8fc3ac767 Mon Sep 17 00:00:00 2001 From: N2614 Date: Fri, 24 Feb 2012 07:45:56 +0000 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=9B=9E=E8=B5=B7=E5=8B=95=E3=82=B7?= =?UTF-8?q?=E3=83=BC=E3=82=B1=E3=83=B3=E3=82=B9=E3=81=AE=E4=B8=AD=E3=81=A7?= =?UTF-8?q?Result=E3=82=92=E7=A0=B4=E6=A3=84=E3=81=97=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=82=8B=E3=81=AE=E3=81=A7=E3=80=81=E4=B8=80=E9=83=A8=E3=81=AF?= =?UTF-8?q?=E7=A2=BA=E8=AA=8D=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@655 385bec56-5757-e545-9c3a-d8741f4650f1 --- trunk/SkipFirstLaunch/OMakefile.omc | Bin 1363 -> 0 bytes trunk/SkipFirstLaunch/StateManager.cpp | 12 +++-- trunk/SkipFirstLaunch/syokaikidou.cpp | 34 ++++++++++---- trunk/SkipFirstLaunch/syokaikidou.h | 5 ++- trunk/SkipFirstLaunch/sysFile.cpp | 10 ++--- trunk/SkipFirstLaunch/sysInput.cpp | 3 +- .../SkipFirstLaunch/sysSharedExtSaveData.cpp | 8 +++- trunk/SkipFirstLaunch/sysSharedExtSaveData.h | 7 +-- trunk/SkipFirstLaunch/sysUserInfoAccessor.cpp | 42 +++++++++++++++--- trunk/SkipFirstLaunch/sysUserInfoAccessor.h | 4 +- 10 files changed, 92 insertions(+), 33 deletions(-) delete mode 100644 trunk/SkipFirstLaunch/OMakefile.omc diff --git a/trunk/SkipFirstLaunch/OMakefile.omc b/trunk/SkipFirstLaunch/OMakefile.omc deleted file mode 100644 index 8d1c36a530f950ed382b1c6deade16dbb55bcb0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1363 zcmZ`(;cFXZ7{8ux)rdH$>ky}0R%VEEk(ylgq^<%jJ%{ zrc%1;9HN4bu7f!dD{skMryt}%_N9e=CuffsdKJCm;(^DKa)bdIJ6*U zpZ)f5@~^`09P|G5TXz|zlLh=EhI#B4cyD<4o_7@!9Ezl5EzD0(3$mt2LWD(^{+?^K zJ@h!igJQC9-Y8e=2K(}Ga6N-FB^0>lp{EGuQoMXxNNJKRo|gF}%S7JXYPC^7;gt&N z#F&Q+&k{To6_kh^mr|n4zOWO12#^ChBkLW^D(ZwxhX@{3(vl>~DIu!ulg#o>oeJz*gV5TBRN|J3&SmR#6v2<{iUkIb{iZ25b#0G*0W5W0BRPZB>)}s zkPZe;iE=y#E%BXZF8sWJDUqIC0(hV=#Bub%g_MG6*Nv!QT5d?UOw($F_C29)x6xZF z&Xrnd+(Qk52lm^muwyKD5%WNAs+nAgvfFA#T@0hMK8vd^=1PHJ@Bci&4Zl4)pXKdY zem2uWF%P{%@GFX#mLr0~vf*t8<6AHQK=f`tpP!=@T+V0na|33f+Te8C-c$L37Sr4o zN_*%E!6R_O{0Y)x@r1w*jqdFFW`Clc(_AWb83HSeKJukr(=5#ma?YOPAHr99x^C!9 zjm`#ze@O}DxK`7FqZV>)L-(5-k`231byAj9=SqgF`{k_}yisc* z+e5br4kqGZh3&hz+2tF!Zm33$*7XeyM(fq0R)TKyLeOYv4HuIq8RqG(Hu|>0SBfCb ztHdiss_Q!lGSKhK9@_BdN=#{Dl7B;B`%li@_O)(QGL_9hrS0vbb;;p^Xv(-hMqWDF4SFv3i<&+v7^OiwO%4u+vum7TFX)1?b=i=2fSZ; z=mA_?Q6a{s6RH31jOTiO^)T5&&+{#G(?dIOdl{xZzc^wRY&I}80SY!z4;^MG490mA F{|me-+#dh{ diff --git a/trunk/SkipFirstLaunch/StateManager.cpp b/trunk/SkipFirstLaunch/StateManager.cpp index 3286356..10e7731 100644 --- a/trunk/SkipFirstLaunch/StateManager.cpp +++ b/trunk/SkipFirstLaunch/StateManager.cpp @@ -71,7 +71,7 @@ void ImportToBackup() void ApplyBackuptoCfg() { - NN_LOG("Set SaveData"); + NN_LOG("Set SaveData\n"); CfgChanger changer; STATE_MANAGER_SET_RESULT_RETURN_VOID_IF_FAILED( changer.RestoreFromBackup() @@ -80,8 +80,14 @@ void ApplyBackuptoCfg() STATE_MANAGER_SET_RESULT_RETURN_VOID_IF_FAILED( nn::news::CTR::boss::Initialize() ); - fnc_1st_setting(); - fnc_starting_set(); + + STATE_MANAGER_SET_RESULT_RETURN_VOID_IF_FAILED( + fnc_1st_setting() + ); + + STATE_MANAGER_SET_RESULT_RETURN_VOID_IF_FAILED( + fnc_starting_set() + ); } } diff --git a/trunk/SkipFirstLaunch/syokaikidou.cpp b/trunk/SkipFirstLaunch/syokaikidou.cpp index 8b5757e..9ebb193 100644 --- a/trunk/SkipFirstLaunch/syokaikidou.cpp +++ b/trunk/SkipFirstLaunch/syokaikidou.cpp @@ -37,11 +37,18 @@ nn::cfg::CfgCountryCode getCfgCountryCode() //========================================================================== // 初回起動時処理 //========================================================================== -void fnc_1st_setting() +nn::Result fnc_1st_setting() { - sys::SharedExtSaveData::deleteData(); - sys::SharedExtSaveData::createData(); + NN_UTIL_RETURN_IF_FAILED( + sys::SharedExtSaveData::deleteData() + ); + NN_UTIL_RETURN_IF_FAILED( + sys::SharedExtSaveData::createData() + ); + NN_UTIL_RETURN_IF_FAILED( + nn::am::InitializeForSystemMenu() + ); // IDBの初期化 { u32 size = IDB_GetBufferSize(); @@ -71,7 +78,6 @@ void fnc_1st_setting() // アイコンバナーヘッダ取得 result = nn::fs::CTR::GetSystemMenuData( &sysMenuData, nn::fs::MEDIA_TYPE_NAND, pids[i] ); - NN_DBG_PRINT_RESULT( result ); if( result.IsFailure() ) { continue; // 開発中のみciaを入れていなかったら失敗 @@ -79,7 +85,7 @@ void fnc_1st_setting() // アイコンバナーヘッダが取れたらROMヘッダ情報も取れる(バージョン情報取得) result = nn::am::GetProgramInfos( &pinfo, nn::fs::MEDIA_TYPE_NAND, &pids[i], 1 ); - //NN_DBG_PRINT_RESULT( result ); + NN_UTIL_RETURN_IF_FAILED(result); IDBUT_InitIcon( &idbIcon ); idbKey.programID = pids[i]; @@ -101,12 +107,18 @@ void fnc_1st_setting() IDB_Finalize(); } + + NN_UTIL_RETURN_IF_FAILED( + nn::am::InitializeForSystemMenu() + ); + + return nn::ResultSuccess(); } //========================================================================== // 初回起動時処理2 //========================================================================== -void fnc_starting_set() +nn::Result fnc_starting_set() { // プレイ履歴クリア nn::pl::CTR::ClearPlayHistory(); @@ -116,13 +128,19 @@ void fnc_starting_set() sys::UserInfoAccessor::setFirstAll( true ); - sys::UserInfoAccessor::setBossTask(); + NN_UTIL_RETURN_IF_FAILED( + sys::UserInfoAccessor::setBossTask() + ); // 初回起動フラグはバックアップデータから書き込む //sys::UserInfoAccessor::saveFirstInfo( 1, net ); // cfg 情報送信のタスク登録 - sys::UserInfoAccessor::setBossSendInfoTaskFirst(); + NN_UTIL_RETURN_IF_FAILED( + sys::UserInfoAccessor::setBossSendInfoTaskFirst() + ); + + return nn::ResultSuccess(); } diff --git a/trunk/SkipFirstLaunch/syokaikidou.h b/trunk/SkipFirstLaunch/syokaikidou.h index 8cdd9a7..a7bcafa 100644 --- a/trunk/SkipFirstLaunch/syokaikidou.h +++ b/trunk/SkipFirstLaunch/syokaikidou.h @@ -16,10 +16,11 @@ #ifndef SYOKAIKIDOU_H_ #define SYOKAIKIDOU_H_ +#include #include -void fnc_1st_setting(); -void fnc_starting_set(); +nn::Result fnc_1st_setting(); +nn::Result fnc_starting_set(); namespace System { diff --git a/trunk/SkipFirstLaunch/sysFile.cpp b/trunk/SkipFirstLaunch/sysFile.cpp index 08d5f03..24deea2 100644 --- a/trunk/SkipFirstLaunch/sysFile.cpp +++ b/trunk/SkipFirstLaunch/sysFile.cpp @@ -10,6 +10,7 @@ #include #include #include +#include "HeapManager.h" namespace sys { @@ -96,8 +97,7 @@ u8* File::read( const wchar_t* fileName, u32* size, bool device, bool prefix ) } *size = static_cast( fileSize ); - //if( device ) buffer = new( Mem::getDeviceHeap(), sys::cDefaultDeviceAlignment ) u8[ *size ]; - //else buffer = new( Mem::getMainHeap() ) u8[ *size ]; + buffer = reinterpret_cast(common::ForceAllocate(*size)); if( buffer == NULL ) { @@ -111,7 +111,7 @@ u8* File::read( const wchar_t* fileName, u32* size, bool device, bool prefix ) { debug_print_(); fileReader.Finalize(); - delete buffer; + common::ForceFree(buffer); return NULL; } @@ -169,7 +169,7 @@ u8* File::mountShare( const char* name, nn::ProgramId tit_id, int data_num, int */ void File::initializeMsetSys() { -nn::Result result = nn::fs::MountSystemSaveData( mMsetSysArcName, getMsetSaveDataId() ); + nn::Result result = nn::fs::MountSystemSaveData( mMsetSysArcName, getMsetSaveDataId() ); NN_DBG_PRINT_RESULT( result ); @@ -522,7 +522,7 @@ u8* pTmp = NULL; { // 管理ファイルが読み込めた std::memcpy( pSaveData, pTmp, size ); - delete[] pTmp; + common::ForceFree(pTmp); } } diff --git a/trunk/SkipFirstLaunch/sysInput.cpp b/trunk/SkipFirstLaunch/sysInput.cpp index 576c44d..1b3da52 100644 --- a/trunk/SkipFirstLaunch/sysInput.cpp +++ b/trunk/SkipFirstLaunch/sysInput.cpp @@ -197,7 +197,8 @@ bool Input::isButtonHold( u16 button ) */ f32 Input::getSvr2Volume() { - return smpPadReaderWithSvr2->GetSvr2Volume(); + return 0; + //return smpPadReaderWithSvr2->GetSvr2Volume(); } /* diff --git a/trunk/SkipFirstLaunch/sysSharedExtSaveData.cpp b/trunk/SkipFirstLaunch/sysSharedExtSaveData.cpp index cdee6a5..f3f689a 100644 --- a/trunk/SkipFirstLaunch/sysSharedExtSaveData.cpp +++ b/trunk/SkipFirstLaunch/sysSharedExtSaveData.cpp @@ -167,7 +167,7 @@ namespace sys } } - void SharedExtSaveData::createData() + nn::Result SharedExtSaveData::createData() { //refreshLimitSize(); // QueryTotalQuotaSize を計算する @@ -185,17 +185,21 @@ namespace sys { NN_LOG( "result = %d %d %d\n" , res.GetLevel() , res.GetSummary() , res.GetModule() ); } + NN_UTIL_RETURN_IF_FAILED(res); } + return nn::ResultSuccess(); } - void SharedExtSaveData::deleteData() + nn::Result SharedExtSaveData::deleteData() { nn::Result res; for ( int i=0; i +#include namespace sys { @@ -26,12 +27,12 @@ namespace sys static const bit32 cPnoteMPPoto = 0xF0000001; // PNOTEのMP画像(写真) static const bit32 cSnoteSound = 0xF0000002; // SNOTEのAACデータ(音声) - static const bit32 cNewsBossData = 0xF0000009; // おしらせBOSSデータ 7168KB 128 8 拡張セーブデータでした + static const bit32 cNewsBossData = 0xF0000009; // おしらせBOSSデータ 7168KB 128 8 拡張セーブデータでした static const bit32 cCommonData = 0xF000000B; // 汎用データ static const bit32 cBashotorya = 0xF000000C; // バショトリャー - static void createData(); - static void deleteData(); + static nn::Result createData(); + static nn::Result deleteData(); static void checkData(); static void refreshLimitSize(); diff --git a/trunk/SkipFirstLaunch/sysUserInfoAccessor.cpp b/trunk/SkipFirstLaunch/sysUserInfoAccessor.cpp index 6065821..edbd778 100644 --- a/trunk/SkipFirstLaunch/sysUserInfoAccessor.cpp +++ b/trunk/SkipFirstLaunch/sysUserInfoAccessor.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #ifndef NW_RELEASE //#include "sceneDebugLayout.h" @@ -2030,18 +2031,34 @@ void UserInfoAccessor::loadEula() //========================================================================== // bossタスクセット //========================================================================== -void UserInfoAccessor::setBossTask() +nn::Result UserInfoAccessor::setBossTask() { if( msFirstInfo.mmen != 0 ) // 初回起動のときセットしない { const char* lang = nn::cfg::CTR::GetLanguageCodeA2( (nn::cfg::CTR::CfgLanguageCode)System::getCfgLanguage() ); + if(!lang) + { + return nn::MakeStatusResult(nn::Result::SUMMARY_INVALID_STATE, nn::Result::MODULE_APPLICATION, nn::Result::DESCRIPTION_INVALID_RESULT_VALUE); + } const char* country = nn::cfg::CTR::GetCountryCodeA2( (nn::cfg::CTR::CfgCountryCode)( System::getCfgCountryCode())); + if(!country) + { + return nn::MakeStatusResult(nn::Result::SUMMARY_INVALID_STATE, nn::Result::MODULE_APPLICATION, nn::Result::DESCRIPTION_INVALID_RESULT_VALUE); + } const char* boss_code = nn::news::CTR::boss::GetBossCodeA3( (nn::cfg::CTR::CfgRegionCode)System::getRegion() ); + if(!boss_code) + { + return nn::MakeStatusResult(nn::Result::SUMMARY_INVALID_STATE, nn::Result::MODULE_APPLICATION, nn::Result::DESCRIPTION_INVALID_RESULT_VALUE); + } - nn::news::CTR::boss::RegisterSystemTask( boss_code, country, lang ); + NN_UTIL_RETURN_IF_FAILED( + nn::news::CTR::boss::RegisterSystemTask( boss_code, country, lang ) + ); NN_LOG( "Boss Task Set\n" ); } + + return nn::ResultSuccess(); } @@ -2073,23 +2090,34 @@ void UserInfoAccessor::setBossSendInfoTask() set_boss_send_info_task_(); } -void UserInfoAccessor::setBossSendInfoTaskFirst() +nn::Result UserInfoAccessor::setBossSendInfoTaskFirst() { // 初回起動シーケンスのときは EULA に同意していたらセットする - if( !isEula() ) + // EULAはCFGから取得する + using namespace nn::cfg::detail; + nn::cfg::system::Initialize(); + EulaInfoCfgData eulaInfo; + NN_UTIL_RETURN_IF_FAILED( + nn::cfg::system::GetConfig(&eulaInfo, sizeof(EulaInfoCfgData), GET_CFG_KEY(NN_CFG_EULA, NN_CFG_EULA_INFO)) + ); + nn::cfg::system::Finalize(); + + if(!eulaInfo.agreeVersion.version > 0) { - return; + return nn::ResultSuccess(); } if( !save_boss_send_info_() ) { // 更新がなかったので情報は送信しない NN_LOG("no change send boss info\n"); - return; + return nn::ResultSuccess(); } // タスクの登録 set_boss_send_info_task_(); + + return nn::ResultSuccess(); } void UserInfoAccessor::set_boss_send_info_task_() @@ -2190,7 +2218,7 @@ size_t readDataSize = 0; result = action.AddHeaderField( "X-Boss-Digest", setSha1Hash ); delete[] readDataSha1; - delete[] readData; + common::ForceFree(readData); NN_RESULT_ASSERT( result ); } diff --git a/trunk/SkipFirstLaunch/sysUserInfoAccessor.h b/trunk/SkipFirstLaunch/sysUserInfoAccessor.h index 700adfd..4d89c5e 100644 --- a/trunk/SkipFirstLaunch/sysUserInfoAccessor.h +++ b/trunk/SkipFirstLaunch/sysUserInfoAccessor.h @@ -237,9 +237,9 @@ public: static int checkEula(); // EULAの情報を調べる static void loadEula(); - static void setBossTask(); + static nn::Result setBossTask(); static void setBossSendInfoTask(); - static void setBossSendInfoTaskFirst(); + static nn::Result setBossSendInfoTaskFirst(); static void saveBossSendInfoTaskOptoutFlag( bool optout ); static bool checkUpdateBossSendInfo( BossSendInfo* pSaveData ); static void getAnalogData( nn::cfg::CTR::detail::AnalogStickCfgData* para, int flg = 0 );