From 2d5a8a7ba2b3f81b7c8702c963b802c85724abf7 Mon Sep 17 00:00:00 2001 From: N2614 Date: Thu, 10 Mar 2011 08:10:22 +0000 Subject: [PATCH] =?UTF-8?q?=E5=9B=BA=E4=BD=93=E5=9B=BA=E6=9C=89=E3=83=87?= =?UTF-8?q?=E3=83=BC=E3=82=BF=E3=81=AFcfg=E3=81=AE=E5=88=9D=E6=9C=9F?= =?UTF-8?q?=E5=80=A4=E3=82=92=E4=BD=BF=E3=81=86=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@106 385bec56-5757-e545-9c3a-d8741f4650f1 --- .../ConsoleRestore/Importer.cpp | 85 +++++++++++++++---- trunk/ConsoleDataMigration/common/FileName.h | 2 +- .../common/common_Types.h | 14 +++ 3 files changed, 82 insertions(+), 19 deletions(-) diff --git a/trunk/ConsoleDataMigration/ConsoleRestore/Importer.cpp b/trunk/ConsoleDataMigration/ConsoleRestore/Importer.cpp index 0e81600..0c49c40 100644 --- a/trunk/ConsoleDataMigration/ConsoleRestore/Importer.cpp +++ b/trunk/ConsoleDataMigration/ConsoleRestore/Importer.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -1362,38 +1363,59 @@ void ImportPlayHistory() s_ImportThread.Start(ImportPlayHistoryThreadFunc, s_ImportThreadStack); } -void ExportTouchPanelCfgData() +void ExportCalData() { using namespace nn::cfg::CTR::detail; nn::Result result; - nn::cfg::CTR::detail::TouchPanelCfgData touchPanelCfgData; + common::CfgCalData cfgCalData; common::SdReaderWriter sdWriter; - COMMON_LOGGER("Export TouchPanelData\n"); + COMMON_LOGGER("Export CalData\n"); common::SdMountManager::Mount(); - result = nn::cfg::CTR::init::GetConfig(&touchPanelCfgData, sizeof(TouchPanelCfgData), + result = nn::cfg::CTR::init::GetConfig(&cfgCalData.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); - } + + result = nn::cfg::CTR::init::GetConfig(&cfgCalData.lcdFlickerCfgData, sizeof(LcdFlickerCfgData), + GET_CFG_KEY(NN_CFG_LCD, NN_CFG_LCD_CAL_FLICKER)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::GetConfig(&cfgCalData.fcramCfgData, sizeof(FcramCfgData), + GET_CFG_KEY(NN_CFG_FCRAM, NN_CFG_FCRAM_CAL_DELAY)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::GetConfig(&cfgCalData.rtcCfgData, sizeof(RtcCfgData), + GET_CFG_KEY(NN_CFG_RTC, NN_CFG_RTC_CAL_COMPENSATION)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::GetConfig(&cfgCalData.gyroscopeCfgData, sizeof(GyroscopeCfgData), + GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_GYROSCOPE)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::GetConfig(&cfgCalData.accelCfgData, sizeof(AccelCfgData), + GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_ACCELEROMETER)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::GetConfig(&cfgCalData.codecCfgData, sizeof(CodecCfgData), + GET_CFG_KEY(NN_CFG_CODEC, NN_CFG_CODEC_CAL)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + sdWriter.WriteBuf(common::CFG_CALIBRATION_PATHNAME, &cfgCalData, sizeof(cfgCalData)); common::SdMountManager::Unmount(); } -bool ImportTouchPanelCfgData(nn::cfg::CTR::detail::TouchPanelCfgData* data) +bool ImportCalData(common::CfgCalData *data) { using namespace nn::cfg::CTR::detail; nn::Result result; bool retval = false; - COMMON_LOGGER("Import TouchPanelData\n"); + COMMON_LOGGER("Import CalData\n"); common::SdMountManager::Mount(); @@ -1404,7 +1426,7 @@ bool ImportTouchPanelCfgData(nn::cfg::CTR::detail::TouchPanelCfgData* data) common::SdReaderWriter sdReader; size_t readSize; - result = sdReader.ReadBuf(common::TOUCH_PANEL_CALIBRATION_PATHNAME, buf, bufSize, &readSize); + result = sdReader.ReadBuf(common::CFG_CALIBRATION_PATHNAME, buf, bufSize, &readSize); if(result.IsSuccess()) { // SDから読み出し成功 @@ -1427,11 +1449,38 @@ void InitializeHardwareDependentSetting() using namespace nn::cfg::CTR::detail; nn::Result result = nn::ResultSuccess(); - nn::cfg::CTR::detail::TouchPanelCfgData touchPanelCfgData; - if(ImportTouchPanelCfgData(&touchPanelCfgData)) + common::CfgCalData cfgCalData; + if (ImportCalData(&cfgCalData)) { - result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_TOUCHPANEL), &touchPanelCfgData, - sizeof(TouchPanelCfgData)); + result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_TOUCHPANEL), + &cfgCalData.touchPanelCfgData, sizeof(TouchPanelCfgData)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_LCD, NN_CFG_LCD_CAL_FLICKER), + &cfgCalData.lcdFlickerCfgData, sizeof(LcdFlickerCfgData)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_FCRAM, NN_CFG_FCRAM_CAL_DELAY), + &cfgCalData.fcramCfgData, sizeof(FcramCfgData)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_RTC, NN_CFG_RTC_CAL_COMPENSATION), + &cfgCalData.rtcCfgData, sizeof(RtcCfgData)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_GYROSCOPE), + &cfgCalData.gyroscopeCfgData, sizeof(GyroscopeCfgData)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_ACCELEROMETER), + &cfgCalData.accelCfgData, sizeof(AccelCfgData)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_CODEC, NN_CFG_CODEC_CAL), &cfgCalData.codecCfgData, + sizeof(CodecCfgData)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + NN_LOG("Set cfgCalData\n"); } COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); @@ -1457,9 +1506,9 @@ void ImportData() // NORデータを書き込む ImportNorData(); - // タッチパネルキャリブレーションデータをSDカードに出力する + // 固体固有calLデータをSDカードに出力する // 本体初期化後はcal値が設定されている - ExportTouchPanelCfgData(); + ExportCalData(); // SDカードのセーブデータをNANDに書き込む ImportSaveData(); diff --git a/trunk/ConsoleDataMigration/common/FileName.h b/trunk/ConsoleDataMigration/common/FileName.h index 531efee..0e725f8 100644 --- a/trunk/ConsoleDataMigration/common/FileName.h +++ b/trunk/ConsoleDataMigration/common/FileName.h @@ -52,7 +52,7 @@ const wchar_t* const TRY_RESTORE_SAME_CONSOLE_PATHNAME = L"sdmc:/CTR_Console_Rep 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_COUNT_PATHNAME = L"sdmc:/CTR_Console_Repair/playhistoryCount.bin"; -const wchar_t* const TOUCH_PANEL_CALIBRATION_PATHNAME = L"sdmc:/CTR_Console_Repair/tpCalibration.bin"; +const wchar_t* const CFG_CALIBRATION_PATHNAME = L"sdmc:/CTR_Console_Repair/cfgCalibration.bin"; const wchar_t* const VERSION_DATA_PATHNAME = L"sdmc:/CTR_Console_Repair/version.bin"; const wchar_t* const REGION_DATA_PATHNAME = L"sdmc:/CTR_Console_Repair/Region.bin"; diff --git a/trunk/ConsoleDataMigration/common/common_Types.h b/trunk/ConsoleDataMigration/common/common_Types.h index 9c7f50d..8122a42 100644 --- a/trunk/ConsoleDataMigration/common/common_Types.h +++ b/trunk/ConsoleDataMigration/common/common_Types.h @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -50,6 +51,19 @@ struct VerDef nn::pl::CTR::NetworkUpdateVersion nup; }; +struct CfgCalData +{ + nn::cfg::CTR::detail::TouchPanelCfgData touchPanelCfgData; + nn::cfg::CTR::detail::LcdFlickerCfgData lcdFlickerCfgData; + nn::cfg::CTR::detail::FcramCfgData fcramCfgData; + nn::cfg::CTR::detail::RtcCfgData rtcCfgData; + nn::cfg::CTR::detail::GyroscopeCfgData gyroscopeCfgData; + nn::cfg::CTR::detail::AccelCfgData accelCfgData; + nn::cfg::CTR::detail::CodecCfgData codecCfgData; + NN_PADDING2; + +}; + // TODO:リージョン追加時に範囲外アクセスにならないよう注意 const nn::ProgramId cCupVerId[] = {