FanTranslatorsInternational / Kuriimu2

Kuriimu is a general purpose game translation project manager and toolkit for authors of fan translations and game mods.
GNU General Public License v3.0
320 stars 58 forks source link

Bloodstained: Curse of the Moon - 3ds - image - .ttb #115

Closed Ludio22 closed 3 years ago

Ludio22 commented 3 years ago

Game Name: Bloodstained: Curse of the Moon
Console: Nintendo 3DS
Format extension(s): .ttb
Type: image

First 8 or more bytes of the file(s): [.ttb] - [D0 3C 79 38 76 A7 FB 00] - [Ð<y8v§û]

More details: The files have different headers. And I have an assumption that they may contain the size of the image and other metadata.

Sample files (if possible): https://mega.nz/file/Ot8AjIqQ#qm-wbrTxnkBaQjkXKlt_JWQssYJRpYicnvqGq3V80y4 https://mega.nz/file/XxtgkaTD#_S10dzfdw28hd9d7qiYm5elmsQmH_-iHDlUnRDKXe8o

onepiecefreak3 commented 3 years ago

See issue #401 on the Kuriimu github for the same answer, but a different game.

The files are encrypted with an in-house encryption scheme. Each file type in the game is encrypted by a different password, which are specified below. those passwords are confirmed working for at least "Bloodstained: Curse of the Moon" (3DS and PC version) and "Mighty Gunvolt Burst" (3DS).

Passwords (without the quotes) .osbctr/.osb: "obj90210" .bfbctr/.bfb: "bft90210" .scbctr/.scb: "scroll90210" .stb: "set90210" .ttb: "txt20170401"

All file types not mentioned are not encrypted. Each mentioned file type is further compressed with standard ZLib, prefixed by the decompressed size.

The newest dev build and upcoming Release 1.2.1 of Kuriimu2 will contain the cipher for IntiCreates games, as well as a plugin for .osb and osbctr. Since such files cannot be identified automatically, one has to manually choose the plugin to load those files with. Choose "OSB" under "plugin_inti_creates.dll" to load those files. The plugin will then decrypt and decompress the file as necessary to show the contained images. Changes are also possible.

Be aware that the games could not be started on an emulator, even in their original state, so a test could not be performed that the plugin saves a valid osb. However, saving the files will result in a loadable file and will be as close to the original as possible (the compression quality may differ from the original)

Since all necessary information regarding this file format are disclosed in this comment and a support was added, this issue will be closed.