[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:
    278
    Country:
    Canada
    Hey there gbatemp,

    Kuriimu is a suite of programs that I designed to be flexible tools 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 - A text editor.
    [​IMG]

    Kukkii - An image converter.
    [​IMG]

    Karameru - An archive manager.
    [​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.

    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 Contributors:

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

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

    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 MapleStory 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)
      • file_ttbin - A text plugin for the Time Travelers 3DS game.
      • file_mdt/tdt - A set of two text plugins for MDT and TDT from the Theatrythm line of games.
      • file_gmd - An incomplete GMD plugin for Dai Gyakuten Saiban and possibly other games in the series.
    • Game Plugins - These allow Kuriimu and Fenceposts to handle control codes and text previews when dealing with strings in a game. (See screenshot for MapleStory 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 - A preview plugin written by @IcySon55.
      • game_great_detective_pikachu - A preview plugin written by @IcySon55.
      • game_maple_story_3ds - A preview plugin co-written by @CakeLancelot @IcySon55 and @Neobeo.
      • game_daigasso_band_brothers_p - A preview plugin written by @Neobeo.
      • game_miitopia_3ds - A preview plugin written by @PeterPaladin.
      • game_time_travelers - A preview plugin written by @onepiecefreak.
      • game_theatrythm_final_fantasy - A preview plugin written by @onepiecefreak.
      • game_zelda_a_link_between_worlds - A preview plugin written by @Ryuzaki_MrL.
    • Image Plugins - Image plugins are loaded by Kukkii and Karameru
      • image_bxlim - An image plugin written by @IcySon55 leveraging Cetera which supports BCLIM and BFLIM image files.
      • image_tex - An image plugin written by @onepiecefreak which supports generic TEX image files.
      • image_jtex - An image plugin written by @onepiecefreak which supports JTEX image files.
      • image_xi - An image plugin written by @onepiecefreak which supports Level 5 XI image files.
      • image_bclyt - A work-in-progress "image" plugin written @onepiecefreak which visualizes BCLYT files as an image. It supports loading referenced images into the visualization as well. This plugin might become image_bxlyt later on with support added for BFLYT.
    • Archive Plugins - Archive plugins are loaded by Karameru for managing archive files.
    • 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.
    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, May 11, 2017


  2. SonyUSA

    Contributor SonyUSA We're all mad here

    pip
    Joined:
    May 12, 2006
    Messages:
    930
    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:
    687
    Country:
    Argentina
    You are now my best friend. Very nice
     
  4. DarkSynopsis

    Member DarkSynopsis GBAtemp Fan

    Joined:
    Oct 15, 2014
    Messages:
    338
    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:
    387
    Country:
    United States
    how do u save whats from the director
     
  6. pikatsu

    Member pikatsu GBAtemp Advanced Fan

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

    Member IcySon55 GBAtemp Regular

    Joined:
    Mar 18, 2008
    Messages:
    278
    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:
    278
    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:
    278
    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:
    278
    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,667
    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:
    189
    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:
    278
    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:
    687
    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:
    278
    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:
    278
    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 Fan

    Joined:
    Oct 15, 2014
    Messages:
    338
    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:
    148
    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