mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@777 385bec56-5757-e545-9c3a-d8741f4650f1
177 lines
5.6 KiB
C++
177 lines
5.6 KiB
C++
/*---------------------------------------------------------------------------*
|
|
Project: Horizon
|
|
File: Importer.h
|
|
|
|
Copyright 2009 Nintendo. All rights reserved.
|
|
|
|
These coded instructions, statements, and computer programs contain
|
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
|
Company Ltd., and are protected by Federal copyright law. They may
|
|
not be disclosed to third parties or copied or duplicated in any form,
|
|
in whole or in part, without the prior written consent of Nintendo.
|
|
|
|
$Rev$
|
|
*---------------------------------------------------------------------------*/
|
|
|
|
#ifndef IMPORTER_H_
|
|
#define IMPORTER_H_
|
|
|
|
#include <nn.h>
|
|
#include "FileName.h"
|
|
#include <nn/ac/CTR/private/ac_NetworkSetting.h>
|
|
#include <string>
|
|
#include "HardwareStateManager.h"
|
|
|
|
namespace ConsoleRestore
|
|
{
|
|
|
|
// SDカードのデバイスIDファイルが存在するか
|
|
nn::Result ExistsDeviceIdFile();
|
|
|
|
// SDカードのデバイスIDファイルと本体のデバイスIDが一致しているかどうか
|
|
bool EqualsDeviceIdFileandDeviceId(common::HardwareStateManager& manager);
|
|
|
|
// SDカードのリージョンと本体のリージョンが一致しているかどうか
|
|
nn::Result EqualsRegionDataandRegion();
|
|
|
|
// シリアルナンバーを取得する
|
|
nn::Result ReadSerialNumber(u8* serial);
|
|
|
|
// 出力ファイル一覧を読み込む
|
|
nn::Result SetupVersionAndFileList();
|
|
|
|
// インポート用のスレッドを終了する
|
|
void FinalizeImportThread();
|
|
|
|
// インポート用のスレッドが終了したかどうか
|
|
bool IsImportThreadFinished();
|
|
|
|
// 新たにスレッドを立て、TWLサウンド領域をインポートする
|
|
void ImportTwlSoundData();
|
|
|
|
// 新たにスレッドを立て、TWL-NAND領域をインポートする
|
|
void ImportTwlSaveData();
|
|
|
|
// 新たにスレッドを立て、TWL写真領域をインポートする
|
|
void ImportTwlPhotoData();
|
|
|
|
// 本体固有データを読み込む
|
|
// 新たにスレッドを立て、CTRセーブデータ領域をインポートする
|
|
nn::Result ImportData();
|
|
|
|
// インポート完了ファイルを作る
|
|
void CreateWriteFinishedFile();
|
|
|
|
// ネットワークアップデート完了ファイルを作る
|
|
void CreateUpdateFinishedFile();
|
|
|
|
// 本体初期化完了ファイルを作る
|
|
void CreateConsoleInitializedFile();
|
|
|
|
// RTC書き込み完了ファイルを作る
|
|
void CreateRtcSyncFinishedFile();
|
|
|
|
// IVSダウンロード完了ファイルを作る
|
|
void CreateDownloadIvsFinishedFile();
|
|
|
|
// アカウント削除完了ファイルを作る
|
|
void CreateDeleteAccountFinishedFile();
|
|
|
|
// アカウント移行完了ファイルを作る
|
|
void CreateTransferAccountFinishedFile();
|
|
|
|
// インポートスレッドの進捗を取得する
|
|
u32 GetImportProgress();
|
|
|
|
// インポートスレッドの進捗を取得する
|
|
u32 GetImportProgressTwlNand();
|
|
|
|
// NANDのごみを削除する
|
|
nn::Result Cleanup();
|
|
|
|
|
|
// ファイルが存在するかどうか確認するためのテーブル
|
|
const wchar_t* const CHECK_FILENAME_TABLE[] =
|
|
{
|
|
common::UPDATE_CHECK_PATHNAME,
|
|
common::INITIALIZED_CHECK_PATHNAME,
|
|
common::WRITE_FINISHED_CHECK_PATHNAME,
|
|
common::RTC_SYNC_CHECK_PATHNAME,
|
|
common::DOWNLOAD_IVS_CHECK_PATHNAME,
|
|
common::DELETE_ACCOUNT_CHECK_PATHNAME,
|
|
common::TRANSFER_ACCOUNT_CHECK_PATHNAME
|
|
};
|
|
|
|
// ファイル存在確認をクリアする
|
|
void DeleteAllCheckFiles();
|
|
|
|
struct TimeZone
|
|
{
|
|
u32 hour;
|
|
u32 minutes;
|
|
bool isMinus;
|
|
NN_PADDING3;
|
|
};
|
|
|
|
// ネットワーク設定ファイルを読み込む
|
|
bool ReadSetting(bool* nupOnly, bool* getIvs, bool* checkSd, bool* skipNup, bool* dlPreinstall);
|
|
|
|
// ネットワーク設定ファイルからNTPサーバの名前を取得する
|
|
// 先にReadSettingが成功している必要がある
|
|
char* GetNtpServerName();
|
|
|
|
// ネットワーク設定ファイルからタイムゾーンを取得する
|
|
// 先にReadSettingが成功している必要がある
|
|
TimeZone GetTimeZone();
|
|
|
|
// インターネット設定をユーザの設定に戻す
|
|
void RestoreCurrentInternetSetting();
|
|
|
|
struct CheckedNetworkSetting
|
|
{
|
|
nn::ac::CTR::NetworkSetting setting;
|
|
bool isValid;
|
|
NN_PADDING3;
|
|
};
|
|
|
|
// SDカードから読み込んだネットワーク設定ファイルから生成した
|
|
// インターネット設定へのポインタを取得する
|
|
// インターネット設定は内部のバッファに読み込む
|
|
CheckedNetworkSetting* GetTempNetworkSetting();
|
|
|
|
// 国設定を読み込む
|
|
nn::Result ImportCountryLanguageData();
|
|
|
|
// RTCを読み込む
|
|
nn::Result ImportMcuRtc(common::HardwareStateManager& manager);
|
|
|
|
// TWL写真領域を初期化してから本体初期化を行う
|
|
bool InitializeFileSystem();
|
|
|
|
// SDカードのファイルと本体情報の比較結果をクリアする
|
|
void ClearFileReadResult();
|
|
|
|
// プレイ履歴を読み込みます。ptmのセーブデータ移行後に呼び出す必要があります
|
|
void ImportPlayHistory();
|
|
|
|
// cfgのハードウェア固有領域をcal値で初期化します
|
|
nn::Result InitializeHardwareDependentSetting();
|
|
|
|
// SDカード上のバージョン情報を読みます
|
|
nn::Result ReadVersionData();
|
|
|
|
// SDカードのNintendo 3DS以下ににIVSと一致するディレクトリがあるかどうか
|
|
bool ExistsIvsDirectory(std::string& ivsRoot);
|
|
|
|
// SDカードのIVSデータを書き込む
|
|
bool ImportIvsData();
|
|
|
|
// 書き込みが成功したかどうか
|
|
bool IsImportSucceeded();
|
|
|
|
void RepairSimpleAddress();
|
|
|
|
}
|
|
|
|
#endif /* IMPORTER_H_ */
|