[XAM] Improved writing struct for XEnumerateCrossTitle

This commit is contained in:
Adrian
2025-11-23 15:55:22 +00:00
committed by Radosław Gliński
parent 6783bea223
commit e7d08b8e8e

View File

@@ -64,16 +64,32 @@ X_HRESULT XamApp::DispatchMessageSync(uint32_t message, uint32_t buffer_ptr,
assert_true(enum_struct->magic == kXObjSignature);
// This is a struct of XCONTENT_DATA_INTERNAL
uint8_t* content_data_ptr =
memory_->TranslateVirtual<uint8_t*>(data_ptr->buffer_ptr);
XCONTENT_CROSS_TITLE_DATA cross_title_data = {};
uint8_t* cross_title_data_ptr =
reinterpret_cast<uint8_t*>(&cross_title_data);
uint32_t item_count = 0;
X_RESULT result = e->WriteItems(0, cross_title_data_ptr, &item_count);
XCONTENT_DATA_INTERNAL* content_data_ptr =
memory_->TranslateVirtual<XCONTENT_DATA_INTERNAL*>(
data_ptr->buffer_ptr);
assert_true(data_ptr->buffer_size == sizeof(XCONTENT_DATA_INTERNAL));
std::memset(content_data_ptr, 0, data_ptr->buffer_size);
uint32_t item_count = 0;
X_RESULT result = e->WriteItems(0, content_data_ptr, &item_count);
if (!result) {
content_data_ptr->device_id = cross_title_data.content_data.device_id;
content_data_ptr->content_type =
cross_title_data.content_data.content_type;
content_data_ptr->set_display_name(
cross_title_data.content_data.display_name());
content_data_ptr->set_file_name(
cross_title_data.content_data.file_name());
content_data_ptr->padding[0] = content_data_ptr->padding[1] = 0;
content_data_ptr->title_id = cross_title_data.title_id;
}
result = X_HRESULT_FROM_WIN32(result);