mirror of
https://github.com/cemu-project/Cemu.git
synced 2024-11-25 18:46:55 +01:00
nn_boss: Implement startIndex parameter usage in nn:boss:::GetDataList (#1162)
This commit is contained in:
parent
9b30be0258
commit
7b635e7eb8
@ -9,7 +9,7 @@
|
|||||||
#include "Cafe/CafeSystem.h"
|
#include "Cafe/CafeSystem.h"
|
||||||
#include "Cafe/Filesystem/fsc.h"
|
#include "Cafe/Filesystem/fsc.h"
|
||||||
|
|
||||||
namespace nn
|
namespace nn
|
||||||
{
|
{
|
||||||
typedef uint32 Result;
|
typedef uint32 Result;
|
||||||
namespace boss
|
namespace boss
|
||||||
@ -782,9 +782,9 @@ bossBufferVector->buffer = (uint8*)bossRequest;
|
|||||||
bossRequest->taskId = _thisptr->taskId.id;
|
bossRequest->taskId = _thisptr->taskId.id;
|
||||||
bossRequest->titleId = _thisptr->titleId.u64;
|
bossRequest->titleId = _thisptr->titleId.u64;
|
||||||
bossRequest->bool_parameter = isForegroundRun != 0;
|
bossRequest->bool_parameter = isForegroundRun != 0;
|
||||||
|
|
||||||
__depr__IOS_Ioctlv(IOS_DEVICE_BOSS, IOSU_BOSS_REQUEST_CEMU, 1, 1, bossBufferVector);
|
__depr__IOS_Ioctlv(IOS_DEVICE_BOSS, IOSU_BOSS_REQUEST_CEMU, 1, 1, bossBufferVector);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -796,9 +796,9 @@ bossBufferVector->buffer = (uint8*)bossRequest;
|
|||||||
bossRequest->taskId = _thisptr->taskId.id;
|
bossRequest->taskId = _thisptr->taskId.id;
|
||||||
bossRequest->titleId = _thisptr->titleId.u64;
|
bossRequest->titleId = _thisptr->titleId.u64;
|
||||||
bossRequest->bool_parameter = executeImmediately != 0;
|
bossRequest->bool_parameter = executeImmediately != 0;
|
||||||
|
|
||||||
__depr__IOS_Ioctlv(IOS_DEVICE_BOSS, IOSU_BOSS_REQUEST_CEMU, 1, 1, bossBufferVector);
|
__depr__IOS_Ioctlv(IOS_DEVICE_BOSS, IOSU_BOSS_REQUEST_CEMU, 1, 1, bossBufferVector);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -809,9 +809,9 @@ bossBufferVector->buffer = (uint8*)bossRequest;
|
|||||||
bossRequest->accountId = _thisptr->accountId;
|
bossRequest->accountId = _thisptr->accountId;
|
||||||
bossRequest->taskId = _thisptr->taskId.id;
|
bossRequest->taskId = _thisptr->taskId.id;
|
||||||
bossRequest->titleId = _thisptr->titleId.u64;
|
bossRequest->titleId = _thisptr->titleId.u64;
|
||||||
|
|
||||||
__depr__IOS_Ioctlv(IOS_DEVICE_BOSS, IOSU_BOSS_REQUEST_CEMU, 1, 1, bossBufferVector);
|
__depr__IOS_Ioctlv(IOS_DEVICE_BOSS, IOSU_BOSS_REQUEST_CEMU, 1, 1, bossBufferVector);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1001,7 +1001,7 @@ bossBufferVector->buffer = (uint8*)bossRequest;
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
static_assert(sizeof(PrivilegedTask) == 0x20);
|
static_assert(sizeof(PrivilegedTask) == 0x20);
|
||||||
|
|
||||||
struct AlmightyTask : PrivilegedTask
|
struct AlmightyTask : PrivilegedTask
|
||||||
{
|
{
|
||||||
struct VTableAlmightyTask : public VTablePrivilegedTask
|
struct VTableAlmightyTask : public VTablePrivilegedTask
|
||||||
@ -1169,14 +1169,17 @@ bossBufferVector->buffer = (uint8*)bossRequest;
|
|||||||
// initialize titleId of storage if not already done
|
// initialize titleId of storage if not already done
|
||||||
nnBossStorage_prepareTitleId(storage);
|
nnBossStorage_prepareTitleId(storage);
|
||||||
|
|
||||||
cemu_assert_debug(startIndex == 0); // non-zero index is todo
|
if(startIndex >= FAD_ENTRY_MAX_COUNT) {
|
||||||
|
*outputEntryCount = 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
// load fad.db
|
// load fad.db
|
||||||
BossStorageFadEntry* fadTable = nnBossStorageFad_getTable(storage);
|
BossStorageFadEntry* fadTable = nnBossStorageFad_getTable(storage);
|
||||||
if (fadTable)
|
if (fadTable)
|
||||||
{
|
{
|
||||||
sint32 validEntryCount = 0;
|
sint32 validEntryCount = 0;
|
||||||
for (sint32 i = 0; i < FAD_ENTRY_MAX_COUNT; i++)
|
for (sint32 i = startIndex; i < FAD_ENTRY_MAX_COUNT; i++)
|
||||||
{
|
{
|
||||||
if( fadTable[i].name[0] == '\0' )
|
if( fadTable[i].name[0] == '\0' )
|
||||||
continue;
|
continue;
|
||||||
@ -1612,7 +1615,7 @@ bossBufferVector->buffer = (uint8*)bossRequest;
|
|||||||
};
|
};
|
||||||
static_assert(sizeof(NsData) == 0x58);
|
static_assert(sizeof(NsData) == 0x58);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void nnBoss_load()
|
void nnBoss_load()
|
||||||
{
|
{
|
||||||
@ -1663,7 +1666,7 @@ void nnBoss_load()
|
|||||||
cafeExportRegisterFunc(nn::boss::NbdlTaskSetting::dtor, "nn_boss", "__dt__Q3_2nn4boss15NbdlTaskSettingFv", LogType::NN_BOSS);
|
cafeExportRegisterFunc(nn::boss::NbdlTaskSetting::dtor, "nn_boss", "__dt__Q3_2nn4boss15NbdlTaskSettingFv", LogType::NN_BOSS);
|
||||||
cafeExportRegisterFunc(nn::boss::NbdlTaskSetting::Initialize, "nn_boss", "Initialize__Q3_2nn4boss15NbdlTaskSettingFPCcLT1", LogType::NN_BOSS);
|
cafeExportRegisterFunc(nn::boss::NbdlTaskSetting::Initialize, "nn_boss", "Initialize__Q3_2nn4boss15NbdlTaskSettingFPCcLT1", LogType::NN_BOSS);
|
||||||
cafeExportRegisterFunc(nn::boss::NbdlTaskSetting::SetFileName, "nn_boss", "SetFileName__Q3_2nn4boss15NbdlTaskSettingFPCc", LogType::NN_BOSS);
|
cafeExportRegisterFunc(nn::boss::NbdlTaskSetting::SetFileName, "nn_boss", "SetFileName__Q3_2nn4boss15NbdlTaskSettingFPCc", LogType::NN_BOSS);
|
||||||
|
|
||||||
// PlayReportSetting
|
// PlayReportSetting
|
||||||
nn::boss::PlayReportSetting::InitVTable();
|
nn::boss::PlayReportSetting::InitVTable();
|
||||||
cafeExportRegisterFunc(nn::boss::PlayReportSetting::ctor, "nn_boss", "__ct__Q3_2nn4boss17PlayReportSettingFv", LogType::NN_BOSS);
|
cafeExportRegisterFunc(nn::boss::PlayReportSetting::ctor, "nn_boss", "__ct__Q3_2nn4boss17PlayReportSettingFv", LogType::NN_BOSS);
|
||||||
|
Loading…
Reference in New Issue
Block a user