初回起動シーケンスの中でResultを破棄しているので、一部は確認するように

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
This commit is contained in:
N2614 2012-02-24 07:45:56 +00:00
parent e2c5a298a4
commit d6a207afd5
10 changed files with 92 additions and 33 deletions

Binary file not shown.

View File

@ -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()
);
}
}

View File

@ -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();
}

View File

@ -16,10 +16,11 @@
#ifndef SYOKAIKIDOU_H_
#define SYOKAIKIDOU_H_
#include <nn.h>
#include <nn/cfg.h>
void fnc_1st_setting();
void fnc_starting_set();
nn::Result fnc_1st_setting();
nn::Result fnc_starting_set();
namespace System
{

View File

@ -10,6 +10,7 @@
#include <nn/fs/CTR/MPCore/fs_FileSystemBasePrivate.h>
#include <nn/fs/fs_ApiSysSaveData.h>
#include <nn/CTR/CTR_ProgramId.h>
#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<u32>( fileSize );
//if( device ) buffer = new( Mem::getDeviceHeap(), sys::cDefaultDeviceAlignment ) u8[ *size ];
//else buffer = new( Mem::getMainHeap() ) u8[ *size ];
buffer = reinterpret_cast<u8*>(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);
}
}

View File

@ -197,7 +197,8 @@ bool Input::isButtonHold( u16 button )
*/
f32 Input::getSvr2Volume()
{
return smpPadReaderWithSvr2->GetSvr2Volume();
return 0;
//return smpPadReaderWithSvr2->GetSvr2Volume();
}
/*

View File

@ -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<cIDCount; i++ )
{
res = nn::fs::DeleteSharedExtSaveData( cIDs[i] );
NN_UTIL_RETURN_IF_FAILED(res);
}
return nn::ResultSuccess();
}
void SharedExtSaveData::checkData()

View File

@ -5,6 +5,7 @@
#define __SYS_SHARED_EXT_SAVE_DATA_H_
#include <nn/types.h>
#include <nn.h>
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();

View File

@ -27,6 +27,7 @@
#include <nn/boss/private/boss_PrivilegedLib.h>
#include <nn/ndm.h>
#include <nn/ssl/ssl_Const.h>
#include <nn/cfg/CTR/cfg_ApiSys.h>
#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 );
}

View File

@ -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 );