Compare commits

..

1 commit

Author SHA1 Message Date
JPikachu
07581a2161 [service, ns, acc] Stub IsQualificationTransitionSupportedByProcessId and SaveDataThumbnail commands
All checks were successful
eden-license / license-header (pull_request) Successful in 24s
- ns: Stubbed IsQualificationTransitionSupportedByProcessId (2520) to always return true.
- acc: added the missing SaveDataThumbnail commands:
  * ClearSaveDataThumbnail (111) → stubbed, returns success.
  * LoadSaveDataThumbnail (112) → stubbed, returns success with size=0.
  * GetSaveDataThumbnailExistence (113) → stubbed, returns false.

This allows titles like Borderlands GOTY to progress past save-related errors.
2025-08-24 16:01:46 +01:00

View file

@ -1116,25 +1116,26 @@ void Module::Interface::ClearSaveDataThumbnail(HLERequestContext& ctx) {
}
void Module::Interface::LoadSaveDataThumbnail(HLERequestContext& ctx) {
// TODO: Grab thumbnail from Nand so this can be unstubbed
// For now, pretend a thumbnail exists and return dummy data
std::vector<u8> dummy_thumbnail(THUMBNAIL_SIZE, 0);
ctx.WriteBuffer(dummy_thumbnail);
const auto out_size = ctx.GetWriteBufferSize();
LOG_WARNING(Service_ACC, "(STUBBED) called. returning dummy thumbnail");
LOG_WARNING(Service_ACC, "(STUBBED) called. out_size={}", out_size);
if (out_size > 0) {
std::vector<u8> dummy(out_size, 0);
ctx.WriteBuffer(dummy.data(), dummy.size());
}
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(ResultSuccess);
rb.Push<u64>(THUMBNAIL_SIZE);
rb.Push<u64>(0);
}
void Module::Interface::GetSaveDataThumbnailExistence(HLERequestContext& ctx) {
// TODO: Get actual thumbnail image
LOG_WARNING(Service_ACC, "(STUBBED) called. Returning true (dummy thumbnail)");
LOG_WARNING(Service_ACC, "(STUBBED) called. Returning false.");
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(ResultSuccess);
rb.Push<bool>(true);
rb.Push<bool>(false);
}
void Module::Interface::TrySelectUserWithoutInteractionDeprecated(HLERequestContext& ctx) {