|
@@ -312,20 +312,14 @@ bool Load_NCCH(std::string& filename, std::string* error_string) {
|
|
|
|
|
|
|
|
// Load compressed executable...
|
|
// Load compressed executable...
|
|
|
if (i == 0 && is_compressed) {
|
|
if (i == 0 && is_compressed) {
|
|
|
- u32 decompressed_size = LZSS_GetDecompressedSize(buffer,
|
|
|
|
|
|
|
+ u32 decompressed_size = LZSS_GetDecompressedSize(buffer,
|
|
|
exefs_header.section[i].size);
|
|
exefs_header.section[i].size);
|
|
|
- u8* decompressed_buffer = new u8[decompressed_size];
|
|
|
|
|
|
|
|
|
|
- if (!LZSS_Decompress(buffer, exefs_header.section[i].size, decompressed_buffer,
|
|
|
|
|
|
|
+ if (!LZSS_Decompress(buffer, exefs_header.section[i].size,
|
|
|
|
|
+ Memory::GetPointer(exheader_header.codeset_info.text.address),
|
|
|
decompressed_size, error_string)) {
|
|
decompressed_size, error_string)) {
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
- // Load .code section into memory...
|
|
|
|
|
- LoadBuffer(exheader_header.codeset_info.text.address, decompressed_buffer,
|
|
|
|
|
- decompressed_size);
|
|
|
|
|
-
|
|
|
|
|
- delete[] decompressed_buffer;
|
|
|
|
|
-
|
|
|
|
|
// Load uncompressed executable...
|
|
// Load uncompressed executable...
|
|
|
} else {
|
|
} else {
|
|
|
// Load .code section into memory...
|
|
// Load .code section into memory...
|