From 9f07a5a44e8a178128b682c558d85e4c057e6664 Mon Sep 17 00:00:00 2001 From: Solatorobo Hacking <139893277+SolatoroboHacking@users.noreply.github.com> Date: Fri, 20 Oct 2023 12:49:07 -0400 Subject: [PATCH 1/3] Create README.md Created a README for CCBUtils --- README.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..7417b1a --- /dev/null +++ b/README.md @@ -0,0 +1,53 @@ +# CCBUtils + +CCBUtils is a pair of utilities that handle the proprietary CyberConnect2 Batch (CCB) archives found within Solatorobo: Red the Hunter. +For the first time, these utilities make it possible to not only extract these files, but reconstruct them with modifications. + +## What do these tools do? + +CCB Extractor can extract every file from every CCB file in the game* and decompress it appropriately. Correct extraction and decompression +was verified by comparing the extracted files with those extracted by Console Tool, which was the only existing tool that could properly work +with these archives. The output is identical. + +CCB Constructor can compress files appropriately and create CCB archives that can be re-inserted into the game's ROM. Even when modified, these files are seen as valid +by the game engine and are 100% compatible with the game's code. + +## What do these tools NOT do? + +CCB Extractor does not currently have the option to leave extracted files in their compressed state, it will always decompress them before writing. + +CCB Constructor does not produce output CCB files that are perfectly byte-matching with the originals, even when no modifications have been made to them. +This is due to differences in the exact compression algorithms used by me for this project and those used by the game's developers. This likely cannot be +fixed without trial and error, and will not be a priority to fix, as the compressed data is still valid and decompresses perfectly. + +Neither of these tools allow you to extract files from or re-insert files within a DS ROM. You must use an external tool for that. + +## What questions are still to be answered? + +No tests have been done yet on a ROM without an anti-piracy patch, and there does not seem to be much available information on how exactly the game's +anti-piracy check works. + +I made the bold claim earlier that CCB Extractor and CCB Constructor work perfectly with every CCB archive in the game. This has not been tested fully, +and it is not currently known if there are any CCB files that differ in some way from the expected format. + +## Build instructions + +This project was designed to be built with MinGW for Cygwin for Windows binaries, or Linux using the g++ compiler. However, it will likely compile under any +C++ compiler. + + ### Cygwin instructions + + ``` + x86_64-w64-mingw32-g++ --static -o CCB[UTIL_NAME].exe CCB[UTIL_NAME].cpp + ``` + + ### Linux instructions + + ``` + g++ --statiic -o CCB[UTIL_NAME] CCB[UTIL_NAME].cpp + ``` + +## Special Thanks + +I would like to take a moment to thank @PeterLemon for taking the time to put together his Nintendo_DS_Compressors +repository. From 3d6724d7411638387d4edbc035fcf535e11c4063 Mon Sep 17 00:00:00 2001 From: Solatorobo Hacking <139893277+SolatoroboHacking@users.noreply.github.com> Date: Fri, 20 Oct 2023 13:58:15 -0400 Subject: [PATCH 2/3] Updated README Updated README to finish Special Thanks --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7417b1a..596bc53 100644 --- a/README.md +++ b/README.md @@ -50,4 +50,6 @@ C++ compiler. ## Special Thanks I would like to take a moment to thank @PeterLemon for taking the time to put together his Nintendo_DS_Compressors -repository. +repository. I can take absolutely no credit for the LZ11 and RLE compression and decompression functions used in these utilities as they are almost exactly the same as the original +code written by @PeterLemon. Using this C code saved me so much time, and allowed me to focus on my goal of actually documenting and modding this game rather than trying to wrap +my thick skull around binary compression algorithms. From 6e9f35980230522dd71225dc6428c438e9e654fc Mon Sep 17 00:00:00 2001 From: Solatorobo Hacking <139893277+SolatoroboHacking@users.noreply.github.com> Date: Fri, 20 Oct 2023 14:00:12 -0400 Subject: [PATCH 3/3] Fixed typo in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 596bc53..a1f8994 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ C++ compiler. ### Linux instructions ``` - g++ --statiic -o CCB[UTIL_NAME] CCB[UTIL_NAME].cpp + g++ --static -o CCB[UTIL_NAME] CCB[UTIL_NAME].cpp ``` ## Special Thanks