From 97e956d782d86d6ba6bf17d1552752ea1c891b31 Mon Sep 17 00:00:00 2001 From: jakcron Date: Wed, 30 Mar 2022 14:26:56 +0800 Subject: [PATCH 1/2] [BugFix] Honour exheader code compressed flag. --- ctrtool/src/NcchProcess.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ctrtool/src/NcchProcess.cpp b/ctrtool/src/NcchProcess.cpp index bc3596e..d3ab007 100644 --- a/ctrtool/src/NcchProcess.cpp +++ b/ctrtool/src/NcchProcess.cpp @@ -790,6 +790,17 @@ void ctrtool::NcchProcess::processRegions() } if (mRegionInfo[NcchRegion_ExeFs].size != 0 && mRegionInfo[NcchRegion_ExeFs].ready_stream != nullptr) { + // prior to reading exefs, check compressed flag in exheader + if (mRegionInfo[NcchRegion_ExHeader].size > 0 && mRegionInfo[NcchRegion_ExHeader].ready_stream != nullptr) + { + // import exheader + ntd::n3ds::ExtendedHeader exheader; + mRegionInfo[NcchRegion_ExHeader].ready_stream->seek(0, tc::io::SeekOrigin::Begin); + mRegionInfo[NcchRegion_ExHeader].ready_stream->read((byte_t*)&exheader, sizeof(ntd::n3ds::ExtendedHeader)); + + mDecompressExeFsCode = exheader.system_control_info.flags.bitarray.test(ntd::n3ds::SystemControlInfo::Flags_CompressExefsPartition0); + } + ctrtool::ExeFsProcess proc; proc.setInputStream(mRegionInfo[NcchRegion_ExeFs].ready_stream); proc.setCliOutputMode(mRegionOpt[NcchRegion_ExeFs].show_info, mRegionOpt[NcchRegion_ExeFs].show_fs); From ea3b188de4a70e8dc54181bd37a9a88cdd3f5686 Mon Sep 17 00:00:00 2001 From: jakcron Date: Wed, 30 Mar 2022 14:27:12 +0800 Subject: [PATCH 2/2] Bump patch version. --- ctrtool/src/version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ctrtool/src/version.h b/ctrtool/src/version.h index 1c69708..2ee7a9f 100644 --- a/ctrtool/src/version.h +++ b/ctrtool/src/version.h @@ -3,5 +3,5 @@ #define BIN_NAME "ctrtool" #define VER_MAJOR 1 #define VER_MINOR 0 -#define VER_PATCH 2 +#define VER_PATCH 3 #define AUTHORS "jakcron" \ No newline at end of file