Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Cethleann - The Koei Swiss Army Knife

The Original Forum. Game archives, full of resources. How to open them? Get help here.
Post Reply
User avatar
Yretenai
veteran
Posts: 126
Joined: Tue Jan 28, 2020 4:39 pm
Has thanked: 20 times
Been thanked: 138 times

Cethleann - The Koei Swiss Army Knife

Post by Yretenai »

Over the last couple of months I've been working on a bunch of open-source tools to extract and work with various Koei Tecmo games such as Fire Emblem: Three Houses and Dissidia Final Fantasy NT Free Edition (Steam.) It has tools for uncompressing files, virtual FS containers (FETH's DATA0/DATA1, Atelier PAKs) and unwrapping concatinated files (.bin, .gmpk, .mdlk)

The main tool to use is Cethleann.Unbundler, this tool will take most concatinated files and output individual files. It has support for FETH SCENE, MDLK, KTSR, KTSC, LX19, GMPK, GAPK, G1L, KOVS, and RTRPK files.

This has ZERO SUPPORT for Big Endian files.
Source: https://github.com/yretenai/Cethleann
Builds: https://github.com/yretenai/Cethleann/r ... ag/1.1.104
This project REQUIRES .NET Core 5 Runtime (x64.) Download here

Click on the latest build and download the Cethleann-Standalone artifact.

This tool is created in tandem with Joschka's Noesis fmt_g1m plugin.
viewtopic.php?f=16&t=21666

Special Thanks To:
- id-daemon's Dissidia model converter which gave me reference data to test again
- HeartHeroDE's th-hack-tools whose implementation helped me understand STRUCT formats
- The Fire Emblem Three Houses Datamining Community for creating binary templates
- Ploaj's Metanoia whose implementatino helped me understand G1Ms
- Quickbms' arslan.bms for having a LINKDATA implementation to base off
- VitaSmith's gust_tools whose implementation helped me understand Gust PAKs and textures
- Eternity's rdbtool for helping me understand animatinos, RDBs, RDB hashing algorithms, and the DoA6 file list
- chrrox for helping me understand RDBs and figuring out what compression algorithm the switch uses.


Latest Version: 1.1.104
Changes: here

I only have one conclusion going down this journey:

Image
Last edited by Yretenai on Fri Sep 10, 2021 8:30 pm, edited 29 times in total.
Darkhowlings
mega-veteran
mega-veteran
Posts: 185
Joined: Mon Sep 01, 2014 8:33 am
Has thanked: 66 times
Been thanked: 7 times

Re: Cethleann - The Koei Swiss Army Knife

Post by Darkhowlings »

Weird, one of the links gives 404 error on github...

Anyway, will love to try, but, I kind suck to build stuff from github.
User avatar
Yretenai
veteran
Posts: 126
Joined: Tue Jan 28, 2020 4:39 pm
Has thanked: 20 times
Been thanked: 138 times

Re: Cethleann - The Koei Swiss Army Knife

Post by Yretenai »

Darkhowlings wrote: Wed Jan 29, 2020 10:55 pm Weird, one of the links gives 404 error on github...

Anyway, will love to try, but, I kind suck to build stuff from github.
Ah, I forgot it requires a GitHub account to view the builds. I linked a direct link which should work.
Sorting out a different build solution.

Builds are now on AppVeyor, which should be public for all
Demonslayerx8
veteran
Posts: 99
Joined: Mon Jul 06, 2015 12:48 am
Has thanked: 26 times
Been thanked: 24 times

Re: Cethleann - The Koei Swiss Army Knife

Post by Demonslayerx8 »

Tried it with Attack on Titan 2, but ye
Unhandled exception. System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at DragonLib.CLI.CommandLineFlags.ParseFlags[T](Action`1 printHelp, String[] arguments)
at Koei.DataExporter.Program.Main(String[] args)
but then noticed that LINKDATA isn't supported yet lmao
User avatar
Yretenai
veteran
Posts: 126
Joined: Tue Jan 28, 2020 4:39 pm
Has thanked: 20 times
Been thanked: 138 times

Re: Cethleann - The Koei Swiss Army Knife

Post by Yretenai »

demonslayerx8 wrote: Thu Jan 30, 2020 11:35 pm Tried it with Attack on Titan 2, but ye
Unhandled exception. System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at DragonLib.CLI.CommandLineFlags.ParseFlags[T](Action`1 printHelp, String[] arguments)
at Koei.DataExporter.Program.Main(String[] args)
but then noticed that LINKDATA isn't supported yet lmao
Yeah LINKDATA support is soon, I mostly started this for Fire Emblem 3 Houses, Atelier, and Dissidia NT

Edit: Added LINKDATA support, check the AppVeyor build artifacts for a new build.
Please tell me if it works, I'm not 100% on it working.
Please note that I haven't tested this but it should work.
Demonslayerx8
veteran
Posts: 99
Joined: Mon Jul 06, 2015 12:48 am
Has thanked: 26 times
Been thanked: 24 times

Re: Cethleann - The Koei Swiss Army Knife

Post by Demonslayerx8 »

Yretenai wrote: Fri Jan 31, 2020 3:17 am
demonslayerx8 wrote: Thu Jan 30, 2020 11:35 pm Tried it with Attack on Titan 2, but ye
Unhandled exception. System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at DragonLib.CLI.CommandLineFlags.ParseFlags[T](Action`1 printHelp, String[] arguments)
at Koei.DataExporter.Program.Main(String[] args)
but then noticed that LINKDATA isn't supported yet lmao
Yeah LINKDATA support is soon, I mostly started this for Fire Emblem 3 Houses, Atelier, and Dissidia NT

Edit: Added LINKDATA support, check the AppVeyor build artifacts for a new build.
Please tell me if it works, I'm not 100% on it working.
Please note that I haven't tested this but it should work.
Alright, I'll test it soon.

update:
nadda
Image

dunno if the file setup has to be proper...
Image
Last edited by Demonslayerx8 on Fri Jan 31, 2020 7:42 pm, edited 1 time in total.
User avatar
Yretenai
veteran
Posts: 126
Joined: Tue Jan 28, 2020 4:39 pm
Has thanked: 20 times
Been thanked: 138 times

Re: Cethleann - The Koei Swiss Army Knife

Post by Yretenai »

demonslayerx8 wrote: Fri Jan 31, 2020 5:23 am
Yretenai wrote: Fri Jan 31, 2020 3:17 am
demonslayerx8 wrote: Thu Jan 30, 2020 11:35 pm Tried it with Attack on Titan 2, but ye


but then noticed that LINKDATA isn't supported yet lmao
Yeah LINKDATA support is soon, I mostly started this for Fire Emblem 3 Houses, Atelier, and Dissidia NT

Edit: Added LINKDATA support, check the AppVeyor build artifacts for a new build.
Please tell me if it works, I'm not 100% on it working.
Please note that I haven't tested this but it should work.
Alright, I'll test it soon.

update:
nadda
Image

dunno if the file setup has to be proper...
Image
Can't view the images
Demonslayerx8
veteran
Posts: 99
Joined: Mon Jul 06, 2015 12:48 am
Has thanked: 26 times
Been thanked: 24 times

Re: Cethleann - The Koei Swiss Army Knife

Post by Demonslayerx8 »

Yretenai wrote: Fri Jan 31, 2020 7:02 am
demonslayerx8 wrote: Fri Jan 31, 2020 5:23 am
Yretenai wrote: Fri Jan 31, 2020 3:17 am

Yeah LINKDATA support is soon, I mostly started this for Fire Emblem 3 Houses, Atelier, and Dissidia NT

Edit: Added LINKDATA support, check the AppVeyor build artifacts for a new build.
Please tell me if it works, I'm not 100% on it working.
Please note that I haven't tested this but it should work.
Alright, I'll test it soon.

update:
nadda
Image

dunno if the file setup has to be proper...
Image
Can't view the images
oops, fixed
User avatar
Yretenai
veteran
Posts: 126
Joined: Tue Jan 28, 2020 4:39 pm
Has thanked: 20 times
Been thanked: 138 times

Re: Cethleann - The Koei Swiss Army Knife

Post by Yretenai »

demonslayerx8 wrote: Fri Jan 31, 2020 7:42 pm oops, fixed
Fixed!

Added a new tool: Omega.DataExtractor.exe-- Usage:

Code: Select all

Omega.DataExtractor.exe --game AttackOnTitan2 C:\AOT2 "C:\RomFS\Linkdata"
In your case it would be:

Code: Select all

Omega.DataExtractor.exe --game AttackOnTitan2 F:\HACTool\AoT2FinalBattle\secure\romfs\Linkdata F:\HACTool\AoT2FinalBattle\secure\romfs\Linkdata
It will create a new folder for each LINKDATA bin.

Models are wrapped in a container, will add support for that tomorrow.
Demonslayerx8
veteran
Posts: 99
Joined: Mon Jul 06, 2015 12:48 am
Has thanked: 26 times
Been thanked: 24 times

Re: Cethleann - The Koei Swiss Army Knife

Post by Demonslayerx8 »

Alright cool, I'll wait til the container support is added~
User avatar
Yretenai
veteran
Posts: 126
Joined: Tue Jan 28, 2020 4:39 pm
Has thanked: 20 times
Been thanked: 138 times

Re: Cethleann - The Koei Swiss Army Knife

Post by Yretenai »

demonslayerx8 wrote: Sat Feb 01, 2020 12:21 am Alright cool, I'll wait til the container support is added~
Wrapped files are now supported.
Keep in mind that AOT2 has no filenames, so you just have to do the tried and tested method of unwrapping every file.
Use Cethleann.Unbundler.exe to unwrap them, or pass --recursive to Omega.DataExporter.exe's command line options

Models and textures tend to be in ptrbundle files.
User avatar
Skykila
advanced
Posts: 47
Joined: Sat Apr 03, 2010 8:03 am
Location: Russia
Has thanked: 154 times
Been thanked: 6 times

Re: Cethleann - The Koei Swiss Army Knife

Post by Skykila »

Image
what am I doing wrong?
User avatar
Yretenai
veteran
Posts: 126
Joined: Tue Jan 28, 2020 4:39 pm
Has thanked: 20 times
Been thanked: 138 times

Re: Cethleann - The Koei Swiss Army Knife

Post by Yretenai »

Skykila wrote: Sat Feb 01, 2020 5:07 pm Image
what am I doing wrong?
Nothing, there was a bug.
I just fixed it. Appveyor should have a fixed build in 5 mins.
User avatar
Skykila
advanced
Posts: 47
Joined: Sat Apr 03, 2010 8:03 am
Location: Russia
Has thanked: 154 times
Been thanked: 6 times

Re: Cethleann - The Koei Swiss Army Knife

Post by Skykila »

Yretenai wrote: Sat Feb 01, 2020 5:27 pm I just fixed it. Appveyor should have a fixed build in 5 mins.
Image
User avatar
Yretenai
veteran
Posts: 126
Joined: Tue Jan 28, 2020 4:39 pm
Has thanked: 20 times
Been thanked: 138 times

Re: Cethleann - The Koei Swiss Army Knife

Post by Yretenai »

Skykila wrote: Sat Feb 01, 2020 6:50 pm
Yretenai wrote: Sat Feb 01, 2020 5:27 pm I just fixed it. Appveyor should have a fixed build in 5 mins.
Image
Ugh, AOT2's file bundle code is crashing. It's fixed in the new build. (Give appveyor another 5 minutes)

Sorry that it's crashing so much.
Post Reply