mirror of
https://github.com/Lime3DS/Lime3DS
synced 2024-12-25 16:42:39 -06:00
NCCH: Changed decompression to load .code directly into memory rather than an intermediate buffer.
This commit is contained in:
parent
c144ed5058
commit
79a48082e2
1 changed files with 3 additions and 9 deletions
|
@ -312,20 +312,14 @@ bool Load_NCCH(std::string& filename, std::string* error_string) {
|
|||
|
||||
// Load compressed executable...
|
||||
if (i == 0 && is_compressed) {
|
||||
u32 decompressed_size = LZSS_GetDecompressedSize(buffer,
|
||||
u32 decompressed_size = LZSS_GetDecompressedSize(buffer,
|
||||
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)) {
|
||||
return false;
|
||||
}
|
||||
// Load .code section into memory...
|
||||
LoadBuffer(exheader_header.codeset_info.text.address, decompressed_buffer,
|
||||
decompressed_size);
|
||||
|
||||
delete[] decompressed_buffer;
|
||||
|
||||
// Load uncompressed executable...
|
||||
} else {
|
||||
// Load .code section into memory...
|
||||
|
|
Loading…
Reference in a new issue