mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
セーブデータが存在して、Personalized eTicketの存在するDSiWareのみダウンロードするように
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@827 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
62f1cab8b7
commit
e693f4b3d9
@ -39,6 +39,10 @@ bit8 s_buffer1[400 * 1024];
|
||||
size_t s_ProgramIdNum = 0;
|
||||
// ダウンロードするタイトルのProgramIdの配列
|
||||
nn::ProgramId s_ProgramIdList[256];
|
||||
// SDカードに吸い出されたDSiWareのタイトルの個数
|
||||
size_t s_SdDSiWareProgramIdNum = 0;
|
||||
// SDカードに吸い出されたDSiWareのProgramIdの配列
|
||||
nn::ProgramId s_SdDSiWareList[32];
|
||||
// ダウンロード済みのタイトルの個数
|
||||
size_t s_FinishedTitleNum = 0;
|
||||
|
||||
@ -133,13 +137,17 @@ void TwlTitleDownloaderThreadFunc()
|
||||
PreinstallImporter importer;
|
||||
|
||||
s_Progress = 0;
|
||||
|
||||
TitleDownloader::m_Result = ListUpTwlTitles(s_SdDSiWareList, &s_SdDSiWareProgramIdNum);
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(TitleDownloader::m_Result);
|
||||
|
||||
TitleDownloader::m_Result = nn::am::InitializeForNetworkImporter();
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(TitleDownloader::m_Result);
|
||||
|
||||
TwlTitleDownloader.m_Result = importer.ListTitlesBasedOnTickets(s_ProgramIdList, &s_ProgramIdNum);
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(TwlTitleDownloader.m_Result);
|
||||
|
||||
TwlTitleDownloader.SetupTitleListForTWL(s_ProgramIdList, s_ProgramIdNum, s_FinishedTitleNum);
|
||||
TwlTitleDownloader.SetupTitleListForTWL(s_ProgramIdList, s_ProgramIdNum, s_FinishedTitleNum, s_SdDSiWareList, s_SdDSiWareProgramIdNum);
|
||||
|
||||
TwlTitleDownloader.Start();
|
||||
nn::am::FinalizeForNetworkImporter();
|
||||
@ -422,15 +430,24 @@ void TitleDownloader::SetupTitleList(nn::ProgramId* list, size_t num, u32 index)
|
||||
m_FinishedTitleNum = index;
|
||||
}
|
||||
|
||||
void TitleDownloader::SetupTitleListForTWL(nn::ProgramId* list, size_t num, u32 index)
|
||||
void TitleDownloader::SetupTitleListForTWL(nn::ProgramId* eTicketList, size_t eTicketNum, u32 index, nn::ProgramId* sdDSiWareList, size_t sdDSiWareNum)
|
||||
{
|
||||
const size_t listNum = nn::math::Min(num, IMPORTABLE_TITLE_MAX);
|
||||
const size_t listNum = nn::math::Min(eTicketNum, IMPORTABLE_TITLE_MAX);
|
||||
u32 twlAppNum = 0;
|
||||
|
||||
// 8thNUPからのショップアカウント削除後もセーブデータが削除されない仕様と、MSETでのSDカードへのDSiWareのバックアップ機能があるため、
|
||||
// eTicketが存在する、かつセーブデータが存在するタイトルのみダウンロードする
|
||||
for(u32 i = 0; i < listNum; i++)
|
||||
{
|
||||
if(nn::CTR::IsTwlApp(list[i]))
|
||||
if(nn::CTR::IsTwlApp(eTicketList[i]))
|
||||
{
|
||||
m_ProgramIdList[twlAppNum++] = list[i];
|
||||
for(u32 j = 0; j < sdDSiWareNum; j++)
|
||||
{
|
||||
if(eTicketList[i] == sdDSiWareList[j])
|
||||
{
|
||||
m_ProgramIdList[twlAppNum++] = eTicketList[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
m_TiteNum = twlAppNum;
|
||||
|
||||
@ -70,7 +70,7 @@ public:
|
||||
void SetupTitleList(nn::ProgramId* list, size_t num, u32 index);
|
||||
|
||||
//! @brief TWLタイトルリストを設定する
|
||||
void SetupTitleListForTWL(nn::ProgramId* list, size_t num, u32 index);
|
||||
void SetupTitleListForTWL(nn::ProgramId* eTicketList, size_t eTicketNum, u32 index, nn::ProgramId* sdDSiWareList, size_t sdDSiWareNum);
|
||||
|
||||
//! @brief タイトルをダウンロードするのに必要なサイズを計算します
|
||||
void CalculateRequiredSize(s64* requiredSize);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user