Sable Text Inserter

tl:dr: Sable is a text parser inserter for SNES games with a number of features, including:

  • Fully customizable encoding schemes via Yaml configuration.
  • Automatic line length checking.
  • Automatic address table generation.
  • LoROM, HiROM, and extended mapper supports.
  • 1 or 2 byte encoding support.
  • Fixed or variable width encoding support.
  • Built-in assembler via an Asar library.
  • Automatic ROM expansion(somewhat experimental, though!)

You can find the latest release at https://github.com/RobertTheSable/sable-text-converter/releases

Background:

Some of you may know me for making the most recent (at the time of writing, anyway) FE3 translation patch update. Or maybe the FE3 reverse recruitment patch I made, or some of the old Nightmare modules I made.

This tool is a side effect of my work on the translation. To update the translation to add the features I wanted, I reverse-engineered a dump of the existing script. Then I wrote a tool to re-insert my updated script. I didn’t want to have to manually search for errors like line overflows or missing terminators, so I added checks for those. I also wanted to make updates to the custom ASM in the older patches, so I used Asar as a built in assembler.

The tool was originally made for FE3 of course, but since most of the encoding is defined by Yaml/text files, it can be configured to insert text for most SNES games, I think. Especially as of version 1.2.0, which adds HiROM support.

Hopefully this is useful to people. And feel free to make feature requests, or even contribute yourself if you feel up to it. :slight_smile:

19 Likes

Holy shit Robert is finally on FEU! I was the one that told you your FE3 links were broken about a year ago

I hope this inspires more people here to hack FE3.

added github link for you

1 Like

Amazing! I am looking forward to giving this a go!

I’ve released Version 1.3.0 of Sable. There are a few small bugfixes, but the change is code page switching. This would probably mainly be useful for Japanese text, or any other language with a large number of glyphs in its writing system.

Other changes:

  • Allow multiple inMapping files to be specified.
  • Fixed a possible infinite loop when writing font lengths.
  • Fixed a crash that occurred if the output directly for font data wasn’t created before running.

Windows binaries for the release can be found on Github.

5 Likes

Another release out today. This fixes a bug where digraphs with spaces weren’t being parsed correctly.

It’s on Github as usual.

2 Likes