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;
|
size_t s_ProgramIdNum = 0;
|
||||||
// ダウンロードするタイトルのProgramIdの配列
|
// ダウンロードするタイトルのProgramIdの配列
|
||||||
nn::ProgramId s_ProgramIdList[256];
|
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;
|
size_t s_FinishedTitleNum = 0;
|
||||||
|
|
||||||
@ -133,13 +137,17 @@ void TwlTitleDownloaderThreadFunc()
|
|||||||
PreinstallImporter importer;
|
PreinstallImporter importer;
|
||||||
|
|
||||||
s_Progress = 0;
|
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();
|
TitleDownloader::m_Result = nn::am::InitializeForNetworkImporter();
|
||||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(TitleDownloader::m_Result);
|
COMMON_LOGGER_RETURN_VOID_IF_FAILED(TitleDownloader::m_Result);
|
||||||
|
|
||||||
TwlTitleDownloader.m_Result = importer.ListTitlesBasedOnTickets(s_ProgramIdList, &s_ProgramIdNum);
|
TwlTitleDownloader.m_Result = importer.ListTitlesBasedOnTickets(s_ProgramIdList, &s_ProgramIdNum);
|
||||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(TwlTitleDownloader.m_Result);
|
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();
|
TwlTitleDownloader.Start();
|
||||||
nn::am::FinalizeForNetworkImporter();
|
nn::am::FinalizeForNetworkImporter();
|
||||||
@ -422,15 +430,24 @@ void TitleDownloader::SetupTitleList(nn::ProgramId* list, size_t num, u32 index)
|
|||||||
m_FinishedTitleNum = 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;
|
u32 twlAppNum = 0;
|
||||||
|
|
||||||
|
// 8thNUPからのショップアカウント削除後もセーブデータが削除されない仕様と、MSETでのSDカードへのDSiWareのバックアップ機能があるため、
|
||||||
|
// eTicketが存在する、かつセーブデータが存在するタイトルのみダウンロードする
|
||||||
for(u32 i = 0; i < listNum; i++)
|
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;
|
m_TiteNum = twlAppNum;
|
||||||
|
|||||||
@ -70,7 +70,7 @@ public:
|
|||||||
void SetupTitleList(nn::ProgramId* list, size_t num, u32 index);
|
void SetupTitleList(nn::ProgramId* list, size_t num, u32 index);
|
||||||
|
|
||||||
//! @brief TWLタイトルリストを設定する
|
//! @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 タイトルをダウンロードするのに必要なサイズを計算します
|
//! @brief タイトルをダウンロードするのに必要なサイズを計算します
|
||||||
void CalculateRequiredSize(s64* requiredSize);
|
void CalculateRequiredSize(s64* requiredSize);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user