Current Plugin Types

File Plugins - These allow the editor to open, edit, and save various file formats. file_kup - Currently the only 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.

- These allow the editor to open, edit, and save various file formats. Game Plugins - These allow the editor 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 the editor to display a preview of what the text will look like in-game. (Not implemented yet.)

game_rocket_slime_3ds - The first game plugin I wrote dedicated to the RS3DS game.

- These allow the editor and Fenceposts to handle control codes and text previews when dealing with strings in a game. (See screenshot for Rocket Slime 3DS plugin selection.) 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.

- These are general purpose plugins that require a UI.

Program Structure

Kuriimu.exe - The main executable that displays the three main buttons. Editor - The general purpose text editor that makes use of File and Game plugins. It is built into the main executable and is not a plugin.

Extensions - Displays a list of extension plugins that can be launched. Director - A simple (and incomplete) pointer finding utility. It is also built into the executable like the editor.

- The main executable that displays the three main buttons. 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 the editor and the Fenceposts extension. ListItem - A simple multi-purpose list item class used by pretty much everything.

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

