mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
NIM以外のデーモンを停止するように
cfgのキャリブレーションをそのまま移行していたので移行先のcal値を使うように PANICしないように git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@34 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
a24aeef87c
commit
db3e51d581
@ -31,6 +31,7 @@
|
|||||||
#include <nn/cfg/CTR/cfg_ApiNor.h>
|
#include <nn/cfg/CTR/cfg_ApiNor.h>
|
||||||
#include <nn/am/am_ApiSystemMenu.h>
|
#include <nn/am/am_ApiSystemMenu.h>
|
||||||
#include <nn/os/os_SharedInfo.h>
|
#include <nn/os/os_SharedInfo.h>
|
||||||
|
#include <nn/ndm.h>
|
||||||
#include "demo.h"
|
#include "demo.h"
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
@ -155,7 +156,7 @@ extern "C" void nnMain(void)
|
|||||||
|
|
||||||
// hid の初期化
|
// hid の初期化
|
||||||
result = nn::hid::Initialize();
|
result = nn::hid::Initialize();
|
||||||
NN_UTIL_PANIC_IF_FAILED(result);
|
NN_ERR_THROW_FATAL_IF_FATAL_ONLY(result);
|
||||||
|
|
||||||
// cfg の初期化
|
// cfg の初期化
|
||||||
nn::cfg::CTR::init::Initialize();
|
nn::cfg::CTR::init::Initialize();
|
||||||
@ -174,6 +175,18 @@ extern "C" void nnMain(void)
|
|||||||
nn::mcu::CTR::InitializeHwCheck(&s_McuSession);
|
nn::mcu::CTR::InitializeHwCheck(&s_McuSession);
|
||||||
nn::mcu::CTR::HwCheck mcu(s_McuSession);
|
nn::mcu::CTR::HwCheck mcu(s_McuSession);
|
||||||
|
|
||||||
|
// ndmの初期化
|
||||||
|
result = nn::ndm::Initialize();
|
||||||
|
NN_ERR_THROW_FATAL_IF_FATAL_ONLY(result);
|
||||||
|
|
||||||
|
// NIM以外のデーモンの自律動作を停止
|
||||||
|
result = nn::ndm::Suspend(nn::ndm::DN_CEC);
|
||||||
|
NN_ERR_THROW_FATAL_IF_FATAL_ONLY(result);
|
||||||
|
result = nn::ndm::Suspend(nn::ndm::DN_BOSS);
|
||||||
|
NN_ERR_THROW_FATAL_IF_FATAL_ONLY(result);
|
||||||
|
result = nn::ndm::Suspend(nn::ndm::DN_FRIENDS);
|
||||||
|
NN_ERR_THROW_FATAL_IF_FATAL_ONLY(result);
|
||||||
|
|
||||||
// amの初期化
|
// amの初期化
|
||||||
nn::am::InitializeForSystemMenu();
|
nn::am::InitializeForSystemMenu();
|
||||||
|
|
||||||
|
|||||||
@ -510,10 +510,20 @@ void ControlState(::std::vector<std::string>& operationMessage, bool& nextStep,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// プレイ履歴復元
|
// 削除処理
|
||||||
case HISTORY_RECOVER:
|
case HISTORY_RECOVER:
|
||||||
{
|
{
|
||||||
nn::ptm::CTR::InvalidateSystemTime();
|
static bool init = true;
|
||||||
|
if (init)
|
||||||
|
{
|
||||||
|
// ptmのセーブデータ移行後に時計を無効化する
|
||||||
|
nn::ptm::CTR::InvalidateSystemTime();
|
||||||
|
|
||||||
|
// cfgのハードウェア固有情報をcal値で初期化する
|
||||||
|
InitializeHardwareDependentSetting();
|
||||||
|
|
||||||
|
init = false;
|
||||||
|
}
|
||||||
|
|
||||||
s_RestoreState = TIME_ADJUST;
|
s_RestoreState = TIME_ADJUST;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1186,6 +1186,82 @@ void ImportPlayHistory()
|
|||||||
s_ImportThread.Start(ImportPlayHistoryThreadFunc, s_ImportThreadStack);
|
s_ImportThread.Start(ImportPlayHistoryThreadFunc, s_ImportThreadStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ExportTouchPanelCfgData()
|
||||||
|
{
|
||||||
|
using namespace nn::cfg::CTR::detail;
|
||||||
|
|
||||||
|
nn::Result result;
|
||||||
|
nn::cfg::CTR::detail::TouchPanelCfgData touchPanelCfgData;
|
||||||
|
common::SdReaderWriter sdWriter;
|
||||||
|
|
||||||
|
COMMON_LOGGER("Export TouchPanelData\n");
|
||||||
|
|
||||||
|
common::SdMountManager::Mount();
|
||||||
|
|
||||||
|
result = nn::cfg::CTR::init::GetConfig(&touchPanelCfgData, sizeof(TouchPanelCfgData),
|
||||||
|
GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_TOUCHPANEL));
|
||||||
|
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
|
||||||
|
if (result.IsSuccess())
|
||||||
|
{
|
||||||
|
result = sdWriter.WriteBuf(common::TOUCH_PANEL_CALIBRATION_PATHNAME, &touchPanelCfgData, sizeof(touchPanelCfgData));
|
||||||
|
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
common::SdMountManager::Unmount();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ImportTouchPanelCfgData(nn::cfg::CTR::detail::TouchPanelCfgData* data)
|
||||||
|
{
|
||||||
|
using namespace nn::cfg::CTR::detail;
|
||||||
|
|
||||||
|
nn::Result result;
|
||||||
|
|
||||||
|
COMMON_LOGGER("Import TouchPanelData\n");
|
||||||
|
|
||||||
|
common::SdMountManager::Mount();
|
||||||
|
|
||||||
|
size_t bufSize = common::HeapManager::GetHeap()->GetAllocatableSize();
|
||||||
|
void* buf = common::HeapManager::GetHeap()->Allocate(bufSize);
|
||||||
|
if (buf != NULL)
|
||||||
|
{
|
||||||
|
common::SdReaderWriter sdReader;
|
||||||
|
|
||||||
|
size_t readSize;
|
||||||
|
result = sdReader.ReadBuf(common::TOUCH_PANEL_CALIBRATION_PATHNAME, buf, bufSize, &readSize);
|
||||||
|
if(result.IsSuccess())
|
||||||
|
{
|
||||||
|
// SDから読み出し成功
|
||||||
|
std::memcpy(data, buf, readSize);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
|
||||||
|
}
|
||||||
|
common::HeapManager::GetHeap()->Free(buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
common::SdMountManager::Unmount();
|
||||||
|
}
|
||||||
|
|
||||||
|
void InitializeHardwareDependentSetting()
|
||||||
|
{
|
||||||
|
using namespace nn::cfg::CTR::detail;
|
||||||
|
nn::Result result;
|
||||||
|
|
||||||
|
nn::cfg::CTR::detail::TouchPanelCfgData touchPanelCfgData;
|
||||||
|
ImportTouchPanelCfgData(&touchPanelCfgData);
|
||||||
|
result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_TOUCHPANEL), &touchPanelCfgData,
|
||||||
|
sizeof(TouchPanelCfgData));
|
||||||
|
|
||||||
|
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
|
||||||
|
|
||||||
|
nn::cfg::CTR::init::ResetCameraCalibration();
|
||||||
|
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
|
||||||
|
|
||||||
|
nn::cfg::CTR::init::ResetAnalogStickCalibration();
|
||||||
|
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
|
||||||
|
}
|
||||||
|
|
||||||
void ImportData()
|
void ImportData()
|
||||||
{
|
{
|
||||||
static bool init = true;
|
static bool init = true;
|
||||||
@ -1206,6 +1282,10 @@ void ImportData()
|
|||||||
// TWLサウンド領域のデータをNANDに書き込む
|
// TWLサウンド領域のデータをNANDに書き込む
|
||||||
ImportTwlSoundData();
|
ImportTwlSoundData();
|
||||||
|
|
||||||
|
// タッチパネルキャリブレーションデータをSDカードに出力する
|
||||||
|
// 本体初期化後はcal値が設定されている
|
||||||
|
ExportTouchPanelCfgData();
|
||||||
|
|
||||||
// SDカードのセーブデータをNANDに書き込む
|
// SDカードのセーブデータをNANDに書き込む
|
||||||
ImportSaveData();
|
ImportSaveData();
|
||||||
|
|
||||||
|
|||||||
@ -69,6 +69,9 @@ void ClearFileReadResult();
|
|||||||
|
|
||||||
// プレイ履歴を読み込みます。ptmのセーブデータ移行後に呼び出す必要があります
|
// プレイ履歴を読み込みます。ptmのセーブデータ移行後に呼び出す必要があります
|
||||||
void ImportPlayHistory();
|
void ImportPlayHistory();
|
||||||
|
|
||||||
|
// cfgのハードウェア固有領域をcal値で初期化します
|
||||||
|
void InitializeHardwareDependentSetting();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* IMPORTER_H_ */
|
#endif /* IMPORTER_H_ */
|
||||||
|
|||||||
@ -49,6 +49,7 @@ const wchar_t* const INITIALIZED_CHECK_PATHNAME = L"sdmc:/CTR_Console_Repair/Con
|
|||||||
const wchar_t* const RTC_SYNC_CHECK_PATHNAME = L"sdmc:/CTR_Console_Repair/RtcSyncFinished";
|
const wchar_t* const RTC_SYNC_CHECK_PATHNAME = L"sdmc:/CTR_Console_Repair/RtcSyncFinished";
|
||||||
const wchar_t* const PLAYHISTORY_PATHNAME = L"sdmc:/CTR_Console_Repair/playhistory.bin";
|
const wchar_t* const PLAYHISTORY_PATHNAME = L"sdmc:/CTR_Console_Repair/playhistory.bin";
|
||||||
const wchar_t* const PLAYHISTORY_COUNT_PATHNAME = L"sdmc:/CTR_Console_Repair/playhistoryCount.bin";
|
const wchar_t* const PLAYHISTORY_COUNT_PATHNAME = L"sdmc:/CTR_Console_Repair/playhistoryCount.bin";
|
||||||
|
const wchar_t* const TOUCH_PANEL_CALIBRATION_PATHNAME = L"sdmc:/CTR_Console_Repair/tpCalibration.bin";
|
||||||
|
|
||||||
enum TWL_PATHNAME
|
enum TWL_PATHNAME
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user