mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
初回起動シーケンスの中で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:
parent
e2c5a298a4
commit
d6a207afd5
Binary file not shown.
@ -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()
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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
|
||||
{
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -197,7 +197,8 @@ bool Input::isButtonHold( u16 button )
|
||||
*/
|
||||
f32 Input::getSvr2Volume()
|
||||
{
|
||||
return smpPadReaderWithSvr2->GetSvr2Volume();
|
||||
return 0;
|
||||
//return smpPadReaderWithSvr2->GetSvr2Volume();
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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();
|
||||
|
||||
|
||||
@ -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 );
|
||||
}
|
||||
|
||||
|
||||
@ -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 );
|
||||
|
||||
Loading…
Reference in New Issue
Block a user