[Release] Kuriimu - A general purpose game translation toolkit for authors of fan translations.

Discussion in '3DS - ROM Hacking, Translations and Utilities' started by IcySon55, Dec 8, 2016.

  1. IcySon55
    OP

    Member IcySon55 GBAtemp Regular

    Joined:
    Mar 18, 2008
    Messages:
    241
    Country:
    Canada
    Hey there gbatemp,

    Kuriimu is a program that I designed to be a flexible tool for the purposes of fan translating games, apps, etc... and the flexibility is attained through plugins! (DLL files developed by programmers.)

    Want to talk about it?
    If you would like to reach out to me to discuss Kuriimu and/or writing plugins for it, I can be reached most easily on the Fan Translators Inc. discord (which I run) here:

    [​IMG]

    Hop into the #kuriimu channel and hit me up.

    Kuriimu
    [​IMG]

    Releases

    Download the most recent beta build

    NOTE: Windows is being dumb. To run Kuriimu, you have to unblock the .rar before you extract it for the program to run. Right click > Properties on the .rar and click Unblock on the General tab.

    Kukkii
    [​IMG]

    I'm releasing this beta in the hopes that it spurs interest in expanding the capabilities of the program through plugins developed by other programmers:

    Current Translation Projects Using Kuriimu:
    There may be others I am unaware of.

    Current Contributors:

    @Neobeo - Code cleanup, enhancements, performance improvements and plugin author.
    @CakeLancelot - Plugin author.
    @onepiecefreak - Plugin author.
    @Ryuzaki_MrL - Plugin author.
    @PeterPaladin - Plugin author.

    Current Plugin Types:
    • File Plugins - These allow Kuriimu to open, edit, and save various file formats.
      • file_kup - A file plugin written by me for the native container format used by Kuriimu and Fenceposts for dumping, editing, and injecting strings from/to executable files.
      • file_msbt - An MSBT plugin based on the same code from MSBT Editor Reloaded. Currently, none of the XMSBT or other tools have been ported as I'm still working out how to handle file plugin tools in Kuriimu.
        Supports a huge number of games!
      • file_gmml - A GMML plugin written from scratch for the text file format found in Maple Story 3DS. This plugin came a little late and the team on the project will only be using Kuriimu for any future updates to the translation.
      • file_jmsg - A JMSG plugin for the text file format used by One Piece: Super Grand Battle! X and other games.
      • file_btxt - An incomplete BTXT plugin for the text file format used by Digimon Universe Appli Monsters and potentially other games. (Read-Only)
    • Game Plugins - These allow Kuriimu and Fenceposts to handle control codes and text previews when dealing with strings in a game. (See screenshot for Rocket Slime 3DS plugin selection.)
      • The preview functionality is used in Kuriimu to display a preview of what the text will look like in-game.
      • game_rocket_slime_3ds - The first game plugin I wrote dedicated to the RS3DS game. This plugin has a working example for generating an in-game preview.
      • game_great_detective_pikachu - Implemented an early previewer and control code handler so far. Visible above in the main preview image.
      • game_maple_story_3ds - A new plugin for the MapleStory 3DS game co-authored by @CakeLancelot @IcySon55 and @Neobeo.
    • Extension Plugins - These are general purpose plugins that require a UI.
      • ext_fenceposts - Fenceposts is an extension plugin that manages dumping and injecting strings in executable files such as code.bin. It is currently limited to the Unicode Little-Endian character encoding but that will change soon.
      • ext_director - A simple (and incomplete) pointer finding utility. Director used to be part of Kuriimu itself but has been moved to being an extension to segregate the code and make Kuriimu itself less complex.
    Program Structure
    • Kuriimu.exe - The general purpose text editor that makes use of File, Game and Extension plugins.
    • Kukkii.exe - A new image converter and previewer that is currently in the works.
    • Cetera.dll - A 3DS class library written by @Neobeo with support for various 3DS data formats, compressions and encodings.
      • BCFNT - A BCFNT file handler that allows preview plugins to load actual game fonts directly for generating their previews.
      • And many more formats...
    • KuriimuContract.dll - This is the interface between Kuriimu and all of the plugins. It provides the three plugin interfaces (plus a few smaller supporting interfaces) and a few utilities that plugin authors can make use of:
      • BinaryReader/WriterX - Modified BinaryReader/Writer classes that can handle byte order and come with a few perk methods to make binary operations easier. Like PeekString() :)
      • PluginLoader - A static method for loading plugins. It is used by both Kuriimu and the Fenceposts extension.
      • ListItem - A simple multi-purpose list item class used by pretty much everything.
    • plugins\*.dll
      • All the plugins go in the plugins directory.
      • Some plugins rely on others. ext_fenceposts relies on file_kup directly without loading it as a plugin because it dumps the text to the kup format directly.
    • runext.exe
      • This small executable allows users to launch an extension plugin by itself without having Kuriimu running at all.
      • Starting it as is will present users with an extension select menu.
      • Passing a DLL name to it on the command line will launch that extension immediately.
    P.S. You may remember me from the MSBT Editor Reloaded project, I have now written an MSBT plugin for Kuriimu.

    Let the craziness begin!
     
    Last edited by IcySon55, Mar 26, 2017 at 4:57 PM


  2. SonyUSA

    Contributor SonyUSA We're all mad here

    pip
    Joined:
    May 12, 2006
    Messages:
    869
    Country:
    United States
    Neat! Can't wait to see what people do with this!
     
  3. pikatsu

    Member pikatsu GBAtemp Advanced Fan

    Joined:
    Apr 16, 2014
    Messages:
    665
    Country:
    Argentina
    You are now my best friend. Very nice
     
  4. DarkSynopsis

    Member DarkSynopsis GBAtemp Regular

    Joined:
    Oct 15, 2014
    Messages:
    287
    Location:
    New Zealand
    Country:
    New Zealand
    Awesome, curious to try out the above feature but program gives me an error after I try click on Editor/Extensions/Director :(

    [​IMG]

    Edit:
    Sorted, seems each .dll was blocked had to unblock them.
     
    Last edited by DarkSynopsis, Dec 8, 2016
  5. justinbug2

    Member justinbug2 GBAtemp Fan

    Joined:
    Jun 9, 2015
    Messages:
    384
    Country:
    United States
    how do u save whats from the director
     
  6. pikatsu

    Member pikatsu GBAtemp Advanced Fan

    Joined:
    Apr 16, 2014
    Messages:
    665
    Country:
    Argentina
    We need now a thread with plugins request
     
  7. IcySon55
    OP

    Member IcySon55 GBAtemp Regular

    Joined:
    Mar 18, 2008
    Messages:
    241
    Country:
    Canada
    You take the <pointer address="" results and then using your favorite hex editor, jump to those addresses.
    Then you eyeball where you think the pointer table starts and ends and add that to the Fenceposts Pointer Table list.

    Right, forgot to mention that Windows sometimes blocks the DLLs. I'll have to write a lot more error handling into the code. Guess it's on the todo list.
     
    Last edited by IcySon55, Dec 14, 2016
  8. RandomKid150

    Member RandomKid150 Translator

    Joined:
    Nov 4, 2015
    Messages:
    355
    Location:
    Texas
    Country:
    United States
    How do you unblock them?
     
  9. IcySon55
    OP

    Member IcySon55 GBAtemp Regular

    Joined:
    Mar 18, 2008
    Messages:
    241
    Country:
    Canada
    Open the properties for each file and click Unblock. I'll have to see about getting this issue resolved. So that they don't get blocked all the time.

    If you want to permanently stop Windows from blocking files from the internet, here are the steps:
    1. Windows key + R > gpedit.msc> OK
    2. User Configuration > Administrative Templates > Windows Components > Attachment Manager
    3. Enable: Do not preserve zone information in file attachments
    WARNING: If you do this, Windows will not block ANY files you download from the net. In fact it will not write any zone information at all and will have no idea where any file originated. This can be a security risk if your computer is shared with people that are not all that tech savvy.
     
    Last edited by IcySon55, Dec 16, 2016
    RandomKid150 likes this.
  10. RandomKid150

    Member RandomKid150 Translator

    Joined:
    Nov 4, 2015
    Messages:
    355
    Location:
    Texas
    Country:
    United States
    How can I open some .bin files? I can't seem to figure it out. Maybe you could make a tutorial? I have some files on this page if you can try and open them. :)
     
  11. IcySon55
    OP

    Member IcySon55 GBAtemp Regular

    Joined:
    Mar 18, 2008
    Messages:
    241
    Country:
    Canada
    I'll have some time tonight to look at these bin files. If the format is simple, then Fenceposts can probably deal with it. Otherwise you'd need to write a file plugin.
     
    RandomKid150 likes this.
  12. IcySon55
    OP

    Member IcySon55 GBAtemp Regular

    Joined:
    Mar 18, 2008
    Messages:
    241
    Country:
    Canada
    Hey there tempers!

    I've been working away on this for the past week and I've now reached a new milestone! The game handler plugin for Rocket Slime 3DS can now generate previews!

    [​IMG]

    Those of you with a keen eye may have noticed that the translation has removed the second half of the content on this entry. This is because the previewer is incomplete and is unable to render another entire dialog at the moment. So I left the second out on purpose to avoid text overflowing.
     
    Last edited by IcySon55, Dec 22, 2016
  13. Arubaro

    Member Arubaro Soulspace Guardian

    Joined:
    Sep 4, 2015
    Messages:
    1,512
    Country:
    Spain
    Wow, I'm gonna try this when I got home. I'm messing up with some games lately
     
  14. SoyAlexPop

    Member SoyAlexPop GBAtemp Regular

    Joined:
    Sep 1, 2015
    Messages:
    188
    Country:
    Mexico
    I hope this helps making translations so much easier/faster. Thank you for the tool.
     
  15. IcySon55
    OP

    Member IcySon55 GBAtemp Regular

    Joined:
    Mar 18, 2008
    Messages:
    241
    Country:
    Canada
    Hello again tempers!

    I've been working away on Kuriimu since my last update and the following additions were made:
    • file_msbt - An MSBT plugin based on the same code from MSBT Editor Reloaded. Currently, none of the XMSBT or other tools have been ported as I'm still working out how to handle file plugin tools in Kuriimu.
    • file_gmml - A GMML plugin written from scratch for the text file format found in Maple Story 3DS. This plugin came a little late and the team on the project will only be using Kuriimu for any future updates to the translation.
    • It is now possible to select whether the entry list is sorted or displayed in file order with a simple toolbar button. The setting is remembered separately for each file plugin.
    On the version 1.0.0 front, things are looking better, but changes are still being made to the KuriimuContract which breaks plugins if they're not updated.

    Likely changes that will break plugin compatibility and need to be figured out before 1.0.0:
    1. File plugin tools like XMSBT, BG4, and UMSBT.
    2. File plugin property additions like telling the editor which new-line characters are used by the file. (Currently hard-coded.)
     
    Last edited by IcySon55, Dec 30, 2016
    pikatsu, Hiccup, hippy dave and 2 others like this.
  16. pikatsu

    Member pikatsu GBAtemp Advanced Fan

    Joined:
    Apr 16, 2014
    Messages:
    665
    Country:
    Argentina
    Nice. Will you add support of new file types in the future?
     
  17. IcySon55
    OP

    Member IcySon55 GBAtemp Regular

    Joined:
    Mar 18, 2008
    Messages:
    241
    Country:
    Canada
    Hey there tempers!

    Here's a small update on recent Kuriimu developments:
    • A game handler was started for Great Detective Pikachu as you can see:
    [​IMG]
    • file_jmsg - A JMSG plugin for the text file format used by One Piece: Super Grand Battle! X.
    • ext_director - A simple (and incomplete) pointer finding utility. Director used to be part of Kuriimu itself but has been moved to being an extension to segregate the code and make Kuriimu itself less complex.
    • runext.exe - This small executable allows users to launch an extension plugin by itself without having Kuriimu running at all.
      • Starting it as is will present users with an extension select menu.
      • Passing a DLL name to it on the command line will launch that extension immediately.
    Other than many code clean-ups and improvements, that's about it for this update.
     
    Last edited by IcySon55, Jan 19, 2017
    DarkSynopsis and pikatsu like this.
  18. IcySon55
    OP

    Member IcySon55 GBAtemp Regular

    Joined:
    Mar 18, 2008
    Messages:
    241
    Country:
    Canada
    I might be adding support for new formats as they come up and as I have time. You are of course able to create new plugins yourself to add support for new formats!

    One such format would be the BTXT format that I just added.
    • file_btxt - An incomplete BTXT plugin for the text file format used by Digimon Universe Appli Monsters. (Read-Only)
    This plugin is available in the most recent build of the beta.
     
    Last edited by IcySon55, Jan 19, 2017
    DarkSynopsis likes this.
  19. DarkSynopsis

    Member DarkSynopsis GBAtemp Regular

    Joined:
    Oct 15, 2014
    Messages:
    287
    Location:
    New Zealand
    Country:
    New Zealand
    Awesome to see new formats getting supported :) I really should try this on Tales of the Abyss code.bin files to see if I could get the text from the English version of the game ported to the Japanese version, might finally get a proper Undub where the skits are voiced, crazy they didn't dub the skits in the West.
     
  20. super.bean

    Member super.bean GBAtemp Regular

    Joined:
    Mar 13, 2011
    Messages:
    132
    Location:
    Mandaue City, Cebu
    Country:
    Philippines
    I tried editing One Piece Super Grand Battle X! but some .jmsg files upon opening said "None of the installed plugins were able to open this file" though it can open other .jmsg files just fine.
    Any solutions?

    Edit--

    Now I can't open the same file i was editing a while ago, same .jmsg file
     
    Last edited by super.bean, Jan 21, 2017

Share This Page