summaryrefslogtreecommitdiff
path: root/src/core/loader/ncch.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2014-06-17 06:30:14 -0400
committerGravatar bunnei2014-06-17 06:30:14 -0400
commit79a48082e2c7b6e61f38b442a66147a4e46f2911 (patch)
tree320d476cafbf05fa7ddbf95e1b0f313e826d4d1c /src/core/loader/ncch.cpp
parentElf: Removed unused macros, changed #include of "common.h" to just "common_ty... (diff)
downloadyuzu-79a48082e2c7b6e61f38b442a66147a4e46f2911.tar.gz
yuzu-79a48082e2c7b6e61f38b442a66147a4e46f2911.tar.xz
yuzu-79a48082e2c7b6e61f38b442a66147a4e46f2911.zip
NCCH: Changed decompression to load .code directly into memory rather than an intermediate buffer.
Diffstat (limited to 'src/core/loader/ncch.cpp')
-rw-r--r--src/core/loader/ncch.cpp12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/core/loader/ncch.cpp b/src/core/loader/ncch.cpp
index a01411e11..23864d262 100644
--- a/src/core/loader/ncch.cpp
+++ b/src/core/loader/ncch.cpp
@@ -312,20 +312,14 @@ bool Load_NCCH(std::string& filename, std::string* error_string) {
312 312
313 // Load compressed executable... 313 // Load compressed executable...
314 if (i == 0 && is_compressed) { 314 if (i == 0 && is_compressed) {
315 u32 decompressed_size = LZSS_GetDecompressedSize(buffer, 315 u32 decompressed_size = LZSS_GetDecompressedSize(buffer,
316 exefs_header.section[i].size); 316 exefs_header.section[i].size);
317 u8* decompressed_buffer = new u8[decompressed_size];
318 317
319 if (!LZSS_Decompress(buffer, exefs_header.section[i].size, decompressed_buffer, 318 if (!LZSS_Decompress(buffer, exefs_header.section[i].size,
319 Memory::GetPointer(exheader_header.codeset_info.text.address),
320 decompressed_size, error_string)) { 320 decompressed_size, error_string)) {
321 return false; 321 return false;
322 } 322 }
323 // Load .code section into memory...
324 LoadBuffer(exheader_header.codeset_info.text.address, decompressed_buffer,
325 decompressed_size);
326
327 delete[] decompressed_buffer;
328
329 // Load uncompressed executable... 323 // Load uncompressed executable...
330 } else { 324 } else {
331 // Load .code section into memory... 325 // Load .code section into memory...