diff options
| -rw-r--r-- | src/core/hle/service/vi/vi.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp index 69ac2fe07..0262e830b 100644 --- a/src/core/hle/service/vi/vi.cpp +++ b/src/core/hle/service/vi/vi.cpp | |||
| @@ -101,8 +101,10 @@ public: | |||
| 101 | SerializeData(); | 101 | SerializeData(); |
| 102 | 102 | ||
| 103 | Header header{}; | 103 | Header header{}; |
| 104 | header.data_offset = sizeof(Header); | ||
| 105 | header.data_size = static_cast<u32_le>(write_index - sizeof(Header)); | 104 | header.data_size = static_cast<u32_le>(write_index - sizeof(Header)); |
| 105 | header.data_offset = sizeof(Header); | ||
| 106 | header.objects_size = 4; | ||
| 107 | header.objects_offset = sizeof(Header) + header.data_size; | ||
| 106 | std::memcpy(buffer.data(), &header, sizeof(Header)); | 108 | std::memcpy(buffer.data(), &header, sizeof(Header)); |
| 107 | 109 | ||
| 108 | return buffer; | 110 | return buffer; |
| @@ -142,11 +144,11 @@ protected: | |||
| 142 | private: | 144 | private: |
| 143 | struct Data { | 145 | struct Data { |
| 144 | u32_le magic = 2; | 146 | u32_le magic = 2; |
| 145 | u32_le process_id; | 147 | u32_le process_id = 1; |
| 146 | u32_le id; | 148 | u32_le id; |
| 147 | INSERT_PADDING_BYTES(0xC); | 149 | INSERT_PADDING_WORDS(3); |
| 148 | std::array<u8, 8> dispdrv = {'d', 'i', 's', 'p', 'd', 'r', 'v', '\0'}; | 150 | std::array<u8, 8> dispdrv = {'d', 'i', 's', 'p', 'd', 'r', 'v', '\0'}; |
| 149 | INSERT_PADDING_BYTES(8); | 151 | INSERT_PADDING_WORDS(2); |
| 150 | }; | 152 | }; |
| 151 | static_assert(sizeof(Data) == 0x28, "ParcelData has wrong size"); | 153 | static_assert(sizeof(Data) == 0x28, "ParcelData has wrong size"); |
| 152 | 154 | ||
| @@ -672,7 +674,7 @@ void IApplicationDisplayService::CloseDisplay(Kernel::HLERequestContext& ctx) { | |||
| 672 | } | 674 | } |
| 673 | 675 | ||
| 674 | void IApplicationDisplayService::OpenLayer(Kernel::HLERequestContext& ctx) { | 676 | void IApplicationDisplayService::OpenLayer(Kernel::HLERequestContext& ctx) { |
| 675 | LOG_WARNING(Service_VI, "(STUBBED) called"); | 677 | LOG_DEBUG(Service_VI, "called"); |
| 676 | IPC::RequestParser rp{ctx}; | 678 | IPC::RequestParser rp{ctx}; |
| 677 | auto name_buf = rp.PopRaw<std::array<u8, 0x40>>(); | 679 | auto name_buf = rp.PopRaw<std::array<u8, 0x40>>(); |
| 678 | auto end = std::find(name_buf.begin(), name_buf.end(), '\0'); | 680 | auto end = std::find(name_buf.begin(), name_buf.end(), '\0'); |
| @@ -697,7 +699,7 @@ void IApplicationDisplayService::OpenLayer(Kernel::HLERequestContext& ctx) { | |||
| 697 | } | 699 | } |
| 698 | 700 | ||
| 699 | void IApplicationDisplayService::CreateStrayLayer(Kernel::HLERequestContext& ctx) { | 701 | void IApplicationDisplayService::CreateStrayLayer(Kernel::HLERequestContext& ctx) { |
| 700 | LOG_WARNING(Service, "(STUBBED) called"); | 702 | LOG_DEBUG(Service_VI, "called"); |
| 701 | 703 | ||
| 702 | IPC::RequestParser rp{ctx}; | 704 | IPC::RequestParser rp{ctx}; |
| 703 | u32 flags = rp.Pop<u32>(); | 705 | u32 flags = rp.Pop<u32>(); |