MOTHER 3 Translation Tools

Updated April 16, 2021

Summary

To create the English MOTHER 3 fan translation, we needed to create a lot of custom utilities, files, and game code. We're now releasing a set of these files to the public, so that other fans can translate the game into their native languages.

Note: these files and tools are not to be sold in any way, or used to create anything that is to be sold in any way.

Downloads

Important Notes

Keep in mind that these files and tools aren't magic - before attempting a translation project, there are a number of things you should be aware of:

Support

We've been providing support for existing translation groups for many years now, and it's grown cumbersome as everyone has moved on with their lives. So we're releasing these tools and files to the public so we don't have to keep providing support forever. In simpler terms, this means we don't have to be middlemen for everything - for example, if you want to translate the game, you don't need to go through us anymore.

This also means, though, that we won't be providing much support - if your project needs something that's unique or different from the English release, you'll need to devise a solution of your own. Since the assembly programming code is also included with these files, you can easily add your own modifications to the game to fit your unique needs.

For minor issues and questions, we'll still provide limited support here.


Files

Here's a list of the files included in the download above:

MAIN TOOLS
i.batRun this to make the magic happen! It builds a translated ROM using all the other files. See further below for details on how to use this.
Mother 3 Text Injector.exeThe main script text editor! This edits and saves the main script, and is used to convert the text into .bin format.
M3FontEditor.exeUse this to edit the font graphics if you need to.
TEXT FILES

Edit this stuff with a text editor. In general, Notepad is probably the safest bet - other text editors might have encoding issues.

script.txtThe main script! You can edit this with Notepad if you want, but you're crazy if you do. Use Mother 3 Text Injector.exe to edit this monstrosity!
0-8.txtA long text line used by Block 0 of the main script. Don't edit this directly - instead, create a new file and then use the [FILE=".\____"] directive in script.txt to "include" it.
0-15.txtA long text line used by Block 0 of the main script. Don't edit this directly - instead, create a new file and then use the [FILE=".\____"] directive in script.txt to "include" it.
0-16.txtA long text line used by Block 0 of the main script. Don't edit this directly - instead, create a new file and then use the [FILE=".\____"] directive in script.txt to "include" it.
0-41.txtA long text line used by Block 0 of the main script. Don't edit this directly - instead, create a new file and then use the [FILE=".\____"] directive in script.txt to "include" it.
0-42.txtA long text line used by Block 0 of the main script. Don't edit this directly - instead, create a new file and then use the [FILE=".\____"] directive in script.txt to "include" it.
battletext.txtBattle text and battle messages
castroll_names.txtThe names of characters for the cast of characters thing at the end of the game. The game uses a few names from other files, too.
charnames.txtCharacter & NPC names
custom_text.txtA scary voodoo file that we used to work some magic. This is the key to making custom control codes working... but it's been so long that how it works and how it should be formatted is a mystery. The text in here isn't meant to be translated; it's meant to enhance your translation. It's complicated and weird, so don't touch this until the very end. This can apparently only be 50 lines long, too.
defaultnames.txtThe default names for the main characters
enemy_extras.txtAssigns articles (such as "a" and "the") to use for each enemy. This is slightly voodoo-y too, so be ready for crazy times.
enemydescriptions.txtEnemy descriptions and more
enemynames.txtEnemy names and more
enemynames_short.txtShortened versions of enemy names and more - used for the Battle Memory item, the gray speaker boxes, and more.
item_extras.txtAssigns articles (such as "a" and "the") to use for each item. This is slightly voodoo-y too, so be ready for issues.
itemdescriptions.txtItem descriptions for the main menus. Note that some items also have alternate descriptions for use in battle - they're in a separate file.
itemnames.txtItem names
M3FontEditor.txtA config file for the font editor program. You don't need to edit or translate anything in here.
mapnames.txtThe names of maps and locations in the game
menus1.txtVarious main menu and misc. menu text
menus2.txtSecret Memo menu text
menus3.txtAn undiscovered debug menu's text, plus some other things
miscmenus.txtSound Player message text
musicnames.txtSong names for the Sound Player
pcharnames.txtThe names of playable characters
psidescriptions.txtPSI descriptions
psinames.txtPSI names
skilldescriptions.txtDescriptions for special battle skills
special_itemdescriptions.txtSome item descriptions normally include status icon sprites in the text. In battle, though, they don't appear - so to fix that, we created this file. It contains alternate item descriptions for those few items.
specialtext.txtMostly text from an undiscovered debug menu
statuses.txtStatus names
texttable.txtA technical file that you shouldn't edit. It's used by some of the text conversion tools, but not all, so editing this to alter the text table probably won't work 100% anyway.
VOICE CLIP FILES

These are the actual voice clip sound files. They get converted into .bin files by i.bat.

The English clips were saved in RAW format using Audacity. I don't recall the exact playback rate, but it was very low. If you're going to mess with this, just be prepared for a lot of trial and error. The GBA hardware also means the voices don't sound very clear. There's also a volume issue that we never fixed.

lookoverthere_eng.sndVoice clip used for the Made-You-Look item. Must be a raw audio file, 8-bit PCM stereo, and under 6991 bytes.
readysetgo.sndFull voice clip used during the rock-paper-scissors scene in Chapter 4. Must be raw audio file, 8-bit PCM stereo, and under 20000 bytes.
PYTHON SCRIPTS

Python 3 scripts used by the compiling script. They allow avoiding possible issues which could be frustrating to debug.

prepare_special_text.pyA script which removes comments from certain files when they're about to be compiled. It allows having comments in files like enemynames_short.txt and custom_text.txt, which couldn't have them otherwise.
check_overlap.pyA script which makes sure files you insert using assembly don't overlap with each other. Reports overlaps when they happen, doesn't solve them.
GRAPHICS FILES

Editing graphics is a bit of a pain. Use a tile editor like Tile Layer Pro or Tile Molestor Mod (or other newer programs that might exist nowadays) to try editing some of them.

Files with [c] in their name generally mean it contains compressed data. Compressed data is a pain to edit, but generally use the standard GBA compression scheme. Some files might be compressed even if they don't have a [c] in their name. You should probably wait until the end of your project to mess with compressed data.

gfx_3yearslater.binDisplayed at the start of Chapter 4, use a tile viewer to edit
gfx_K9000_battle_[c].binCCG block used to display K9000's sprite in battle
gfx_amusement_[c].binGraphics for New Pork City's amusement park sign
gfx_arcade_bottom_[c].binGraphics for part of New Pork City's arcade sign
gfx_arcade_top_[c].binGraphics for the other part of New Pork City's arcade sign
gfx_bazar1_[c].binGraphics for part of Thomas' bazar's sign
gfx_bazar2_[c].binGraphics for the other part of Thomas' bazar's sign
gfx_bazar_credits.binGraphics for Thomas' bazar's sign in the credits
gfx_beauty_extern_[c].binGraphics for New Pork City's Beauty & Tasty outdoor sign
gfx_beauty_intern1_[c].binGraphics for part of New Pork City's Beauty & Tasty indoor sign
gfx_beauty_intern2_[c].binGraphics for the other part of New Pork City's Beauty & Tasty indoor sign
gfx_bellicon.binGraphics for the Recollection Bell item icon
gfx_bellicon_pal.binCustom palette info for the Recollection Bell item icon
gfx_bom.binGraphics for the BOOM sprite
gfx_bom_npc_[c].binGraphics for the BOOM sign inside New Pork City's arcade
gfx_cafe_bottom_[c].binGraphics for part of the Highway's Cafe sign
gfx_cafe_top_[c].binGraphics for the other part of the Highway's Cafe sign
gfx_chapt1-4_arrangement.binTile arrangement for the chapter 1-4 title text
gfx_chapt5-8_arrangement.binTile arrangement for the chapter 5-8 title text
gfx_chaptertitles_[c].binGraphics for the chapter titles. These are compressed and will require some extra work to implement. Save these for last.
gfx_charge0_[c].binGraphics for one of the Highway's charging stations
gfx_charge1_[c].binGraphics for one of the Highway's charging stations
gfx_charge2_[c].binGraphics for one of the Highway's charging stations
gfx_club_keepout_[c].binGraphics for the KEEP OUT! sign inside Club Titiboo
gfx_combo.binGraphics for the combo system
gfx_currency.binGraphics for the currency's symbol. Also in other graphics
gfx_cutscene_[c].binFixed graphics for an unused cutscene
gfx_cutscene_layer2_arrangement_[c].binFixed arrangement layer for an unused cutscene
gfx_cutscene_layer3_arrangement_[c].binFixed arrangement layer for an unused cutscene
gfx_debug_[c].binGraphics for the Debug Room's wall sign
gfx_disclaimer.bin
gfx_disclaimer_pal.binPalette for the disclaimer screen
gfx_disclaimer_[c].binThe disclaimer screen graphics. Currently says a generic "M3FT". If you wish to edit this, you're on your own. Graphics are compressed using the standard GBA compression.
gfx_end0_[c].binGraphics for the ending sequence
gfx_end1_[c].binGraphics for the ending sequence
gfx_end2_[c].binGraphics for the ending sequence
gfx_exit_battle.binGraphics for the Exit Battle option
gfx_factory_arrangement.bin
gfx_flavours.binGraphics for the window flavor-choosing screen. Edit with a tile viewer.
gfx_forest_layer3_[c].binGraphics data that fixes the Skull Gift Box issue in Sunshine Forest
gfx_frogatm.binGraphics for the ATM screen. Edit with a tile viewer.
gfx_happy_end.binGraphics for an alternative, unused, ending sequence
gfx_healthscreen_[c].bin
gfx_healthtext_[c].bin
gfx_heli_[c].binGraphics for the Empire Pork Building's EarthBound helicopter
gfx_highroad_ice_1_[c].binGraphics data that fixes the Skull Gift Box issue in the Highway, near the Cafe. May contain the ICE cart's graphics!
gfx_highroad_ice_2_[c].binGraphics data that fixes the Skull Gift Box issue in the Highway, near the Cafe. May contain the ICE cart's graphics!
gfx_highroad_ice_3_[c].binGraphics data that fixes the Skull Gift Box issue in the Highway, near the Cafe. May contain the ICE cart's graphics!
gfx_highroad_ice_4_[c].binGraphics data that fixes the Skull Gift Box issue in the Highway, near the Cafe. May contain the ICE cart's graphics!
gfx_highroad_ice_tiledata_[c].binGraphics data that fixes the Skull Gift Box issue in the Highway, near the Cafe
gfx_highroad_layer3_[c].binGraphics data that fixes the Skull Gift Box issue in the Highway, near the Cafe
gfx_highway_graphics_[c].binGraphics data used to fix a clipping issue in the Highway
gfx_highway_layer3_[c].binGraphics data used to fix a clipping issue in the Highway
gfx_highway_tilemap_[c].binGraphics data used to fix a clipping issue in the Highway
gfx_hp_pp.binGraphics data used for the overworld HP/PP symbols
gfx_hp_pp_battle.binGraphics data used for the in-battle HP/PP symbols
gfx_ice.binGraphics for the ICE cart's sprite
gfx_ice_highroad_palette.binPalette for the ICE cart on the Highway, near the Cafe
gfx_k9000_sprite.binGraphics for K9000's overworld sprite
gfx_knock.binGraphics for the KNOCK sprite
gfx_lab1_[c].bin
gfx_lab2_[c].bin
gfx_lab_arrangement_1f_[c].binTile arrangements for Chimera's lab's 1F floor. In case you want to change from 1F to F1
gfx_lab_arrangement_1f_room_[c].binTile arrangements for one of Chimera's lab's 1F rooms. In case you want to change from 1F to F1
gfx_lab_arrangement_2f_[c].binTile arrangements for Chimera's lab's 2F floor. In case you want to change from 2F to F2
gfx_lab_arrangement_2f_room2_[c].binTile arrangements for one of Chimera's lab's 2F rooms. In case you want to change from 2F to F2
gfx_lab_arrangement_2f_room_[c].binTile arrangements for one of Chimera's lab's 2F rooms. In case you want to change from 2F to F2
gfx_lab_arrangement_3f_room1_[c].binTile arrangements for one of Chimera's lab's 3F rooms. In case you want to change from 3F to F3
gfx_lab_arrangement_3f_room2_[c].binTile arrangements for one of Chimera's lab's 3F rooms. In case you want to change from 3F to F3
gfx_lab_arrangement_b1f_[c].binTile arrangements for Chimera's lab's B1F. In case you want to change from B1F to something else
gfx_lab_box1_[c].binGraphics for boxes inside Chimera's lab
gfx_lab_box2_[c].binGraphics for boxes inside Chimera's lab
gfx_lab_box3_[c].binGraphics for boxes inside Chimera's lab
gfx_lab_elevator1_[c].binGraphics for elevators and floor signs inside Chimera's lab
gfx_lab_elevator2_[c].binGraphics for elevators and floor signs inside Chimera's lab
gfx_lab_elevator_animation2_[c].binGraphics for elevators' EV symbol animation inside Chimera's lab
gfx_lab_elevator_animation_[c].binGraphics for elevators' EV symbol animation inside Chimera's lab
gfx_lab_elevator_floors_[c].binGraphics for elevators and floor signs inside Chimera's lab
gfx_lab_movie_[c].binGraphics for the movie played in an unused cutscene inside Chimera's lab
gfx_main_menu_[c].binGraphics for the main menu when starting the game
gfx_menu_text_swapped_palette.binPalette used in order to optimize swapping between colors for menu options
gfx_monotoli_[c].bin
gfx_music.binGraphics for the Sound Player
gfx_namingscreen.binGraphics for the naming screen. Edit with a tile viewer.
gfx_nuclear_battle_[c].binCCG block used to display Nuclear Reactor Robot's sprite in battle
gfx_nuclear_sprite.binNuclear Reactor Robot's overworld sprites
gfx_offdef_[c].binGraphics for many menus
gfx_park_[c].binGraphics for New Pork City's amusement park
gfx_pencil_sprites.bin
gfx_police.binGraphics for the police car's sprite
gfx_porky_empire_[c].binGraphics for the Empire Porky Building's sign
gfx_ropeway_bottom_[c].binGraphics for part of the Ropeway's sign
gfx_ropeway_top_[c].binGraphics for the other part of the Ropeway's sign
gfx_sanctuaryborders.bin
gfx_sheriff1_[c].binGraphics for part of the Sheriff's Office sign
gfx_sheriff2_[c].binGraphics for the other part of the Sheriff's Office sign
gfx_sprays.binGraphics for the various sprays' inventory sprites
gfx_starsprite.bin
gfx_start_battle_[c].binGraphics for the START BATTLE button inside the Battle Memoes
gfx_statues_[c].bin
gfx_statues_pal.bin
gfx_summary_arrangements.binTile arrangement for the Summary menu. It's used to heavily optimize that part of the naming screen menu
gfx_tanetane_cliff_tilemap_[c].binGraphics data used for fixing a clipping issue in Tanetane Island's cliffs
gfx_tanetane_layer1_arrangement_[c].binGraphics data used for fixing a clipping issue in Tanetane Island
gfx_tanetane_layer2_arrangement_[c].binGraphics data used for fixing a clipping issue in Tanetane Island
gfx_tanetane_layer3_arrangement_[c].binGraphics data used for fixing a clipping issue in Tanetane Island
gfx_theater_[c].binGraphics for the Theater sign in New Pork City
gfx_thunder_elevator_extern_[c].binGraphics for the elevator's symbol outside Thunder Thower
gfx_thunder_elevator_intern_[c].binGraphics for the elevator's symbol inside Thunder Thower
gfx_ticket_[c].binGraphics for the Ticket sign inside the Theater in New Pork City
gfx_titiboo_oil_[c].binGraphics for the OIL tank inside Club Titiboo
gfx_various_menu1.binGraphics for various menu sprites. Contains the currency symbol!
gfx_various_menu2_[c].binraphics for various menu sprites
gfx_vikings_[c].binGraphics for the VIKINGS sign in New Pork City
gfx_welcome_[c].binGraphics for the WELCOME sign in New Pork City
gfx_youwon.bin
CUSTOM GBA PROGRAMMING CODE

This is where the technical magic happens to make everything work in English. Most of it should work fine for other languages. If you plan to edit or add to any of these files, you'll want to brush up on GBA assembly programming first. It's not hard, it just takes some time to learn.

m3hack.asmCustom GBA code & the main "glue" for all the other custom code. This also contains the position coordinates for a lot of text, so if you need to reposition something, look around in here. The coordinates are likely in hexadecimal format.
battle_hacks.asmCustom GBA code for battle stuff
credits_hacks.asmCustom GBA code for credits-related stuff
extra_hacks.asmCustom GBA code for extra goodies we added
general_hacks.asmCustom GBA code for general stuff
main_menu_hacks.asmCustom GBA code for the main menus
main_script_hacks.asmCustom GBA code for main script stuff
naming_screen_hacks.asmCustom GBA code for naming screens
outside_hacks.asmCustom GBA code for overworld stuff
sound_hacks.asmCustom GBA code for sound-related stuff
sprite_text_hacks.asmCustom GBA code for sprite-based text
OTHER TOOLS

You shouldn't need to ever run these by themselves, but they're necessary to have!

m3preweld.exei.bat uses this to pre-create tiles for the cast of character names at the end of the game. It's also used for a few other instances that call for pre-welded text in the game.
xkas.exeCreated by byuu. i.bat uses this to compile all the custom GBA programming code (the .asm files) into a format the actual GBA can run.
soundconv.exei.bat uses this to create sound .bin files for two voice clips in the game. More info on this below.
textconv.exei.bat uses this to convert all the non-script .txt files into .bin formats usable by the game.
FreeSpace.exeFrees some space by moving around enemies' graphics data. Called by i.bat. Source file can be found here.
fix_custom_text.exeFixes issues that can arise when more than 50 particles are inside custom_text.txt. Called by i.bat. Source file included with the tools.
rearrange_font.exeUsed to optimize the game's text symbol loading routine. Called by i.bat. Source file included with the tools.
RAW DATA FILES

Many .bin files are just .txt files that have been converted by the tools. Other than the gfx_ .bin files, you shouldn't need to mess with any of these files. Note that the tools might also create other .bin files that aren't listed here.

GiftBoxGlitch058Table1.bin
GiftBoxGlitch058Table4.bin
GiftBoxGlitch1D9Table1.bin
data_castroll_table.bin
data_creditstable.bin
data_enemy_extras.bin
data_ghost_fix.bin
data_introcode.bin
data_item_extras.bin
data_memo_flags.bin
data_namingcursors.bin
data_namingscreen1.bin
data_namingscreen2.bin
data_random.bin
data_target_table.bin
font_castroll.bin
font_castroll_rearranged.bin
font_creditsfont_[c].bin
font_equip_rearranged.bin
font_mainfont.bin
font_mainfont_rearranged.bin
font_mainfont_used.bin
font_mainwidths.bin
font_smallfont.bin
font_smallfont_used.bin
font_smallwidths.bin
logic_00E.bin
logic_00F.bin
logic_059.bin
logic_0EA.bin
logic_1DA.bin
logic_36D.bin
logic_36E.bin
logic_blocks_37F_380.bin
logic_blocks_37F_380_381_382.bin
logic_code_058.bin
logic_code_0E9.bin
logic_code_1D9.bin
logic_code_277.bin
logic_code_36C.bin
logic_fix_debug_chapter7_kumatora.bin
logic_fix_debug_pigmask.bin
logic_leder_fix_counter_fireplace.bin
logic_leder_fix_song.bin
logic_leder_memo.bin
logic_multi_debug.bin
logic_new_npc_debug.bin
logic_pointer_058.bin
logic_pointer_1D9.bin
logic_pointer_277.bin
logic_pointer_283.bin
logic_pointer_36C.bin
multi_debug.bin
object_table_1_058.bin
object_table_1_1D9.bin
object_table_4_025_segment.bin
object_table_4_058.bin
object_tables_debug.bin
sound_lookoverthere_eng.binVoice clip data for the "Made You Look" item. Created automatically by i.bat and soundconv.exe
sound_readysetgo_a.binFirst part of the voice clip data for the rock-paper-scissors voice clip. Created automatically by i.bat and soundconv.exe
sound_readysetgo_b.binSecond part of the voice clip data for the rock-paper-scissors voice clip. Created automatically by i.bat and soundconv.exe
sound_readysetgo_c.binThird part of the voice clip data for the rock-paper-scissors voice clip
sound_relocate_dump.bin
text_itemnames.bin
text_itemdescriptions.bin
text_enemynames_short.bin
text_enemynames.bin
text_psinames.bin
text_skilldescriptions.bin
text_sleep.bin
text_enemydescriptions.bin
text_defaultnames.bin
text_custom_text.bin
text_charnames.bin
text_battletext.bin
text_pcharnames.bin
text_psidescriptions.bin
text_miscmenus.bin
text_specialtext.bin
text_special_itemdescriptions.bin
text_statuses.bin
text_menus1.bin
text_menus2.bin
text_menus3.bin
text_mapnames.bin
text_mainscript.binThe main script file, converted into a format the game can use. Don't edit this - edit script.txt and then use the Text Injector
text_musicnames.bin

Editing the Text Files

The text files should ideally be edited with Windows Notepad - other programs may cause encoding problems when you use non-English letters. You can also edit the main script with Notepad, but it's recommended that you use the custom script text editor instead. See further below on usage details.

Here's the general format of the non-script .txt files - your translations go in the empty spaces beneath the existing text:

Some text files are laid out differently - in those cases you'll usually need to just directly overwrite the existing text:

If a line in the original text has an [END] at the end of it, you NEED to include an [END] at the end of your translated line. Similarly, if a line DOESN'T have an [END] at the end of a line, then you shouldn't include one in your translation.

Be sure you don't include any extra stuff after an [END] code. Blank spaces after an [END] can cause trouble too.

Using the Main Tool (i.bat)

i.bat is the key to the project - once you've translated your text, run this file. It will build a fresh ROM for you with your translation inserted!

Before you start, though, it's important that you understand how the tool system works. Basically, you edit the .txt files. Then i.bat runs through them, converting them into .bin format. Then a copy of the original ROM is made, and the .bin files are automatically inserted into this ROM copy. Then you can play your translation in an emulator.

In other words, you'll never need to edit the ROM directly - the translated ROM is built from scratch each time you run i.bat.

Usage

For i.bat to do its magic, you need to:

You could probably just double-click the i.bat file to make it run from Windows, but it's possible some complications might arise, and as soon as it finishes the window will probably close - so if any errors happen you won't be able to tell. For these reasons, it's recommended that you run i.bat from the command prompt. That way you can also view the messages that i.bat outputs.

If everything works and you have everything set up properly, i.bat will create a new ROM called test.gba - this is your translated ROM!

Details

More technically, here's what i.bat does:

Using the Script Editor

The script editor, also known as the "Mother 3 Text Injector" or "Mother 3 Funland" is where you'll probably spend most of your time translating. Following are some instructions and tips on how to use it.

Here's a look at the editor in action:

This is an extremely useful and powerful tool... but that also means there's a lot to learn. So here goes!

Loading the Script & Navigating It

To get started with the editor, hit the "Load Script" button, and then find and select the "script.txt" file.

The script is separated into about 1000 "Blocks". In general, each block corresponds with a map/area in the game. You can actually cross-reference block numbers with map numbers (although the numbers are off by 1 or 2) if you use the MOTHER 3 map viewer or if you just follow along here:

http://earthboundcentral.com/m3script/

Knowing what map each block is connected to helps a LOT with context issues, so always try to check the map if you can.

To navigate between blocks, press the up or down arrow where it says "Container/block:". Be careful - if you try to go to anything before Block 0, you could crash the program! You can also type in the block number you want to go to, but this could cause a crash too if you're not careful.

Each "block" contains a bunch of lines of text. You can navigate to a specific line by pressing the up or down arrow next to where it says "Line:"

Editing the Text

When looking at a line of text, the top area will show the original text (in this case, the English text). The window beneath it is where you type in your translation. Beneath that is another window where you can add translation notes - some lines already have translation notes for reference or for other purposes.

When editing a line of text, press the "Preview" button to get a preview of how it will look in the game. An optional blue line will indicate the edge of the screen in the game - you need to make sure all your text will stay inside.

There's also an optional red line... but I can't quite recall what it's for. It might be for certain Block 0 lines.

If the preview for a line goes too far down, you won't be able to see it. You can switch the scaling from 2x to 1x... but if it's still too big, then you'll need to preview the text in pieces, then stitch the pieces together afterward.

When you've finished entering a line of text, you can hit the "Apply Changes" button. This gets to be a hassle though, so you can also just navigate to a new line - the changes you made will be retained. This isn't permanent, though - you NEED to save your file before quitting the program!

To save your work, click the "Save script" button. You can then choose to overwrite the existing .txt file, or you can save your changes to a new file if you want. Whatever you do, just remember to save your work!

Some lines of text, particularly in Block 0, are so long that they'll break the text editor. To get around this, we implemented a code to "include" a file. That's what the files like "0-8.txt" and "0-42.txt" are. When you do your translation, you should create your own files like "0-8trans.txt" and then do something like [FILE=".\0-8trans.txt"] in the text editor.

Some lines in Block 0 have limits to the number of letters that can be on each line. Other lines have non-standard width limits. Basically, if there's scrolling text involved or special text that appears after the screen darkens, then be prepared for some trial and error. It's possible the red line in the text editor was meant to help format some of this Block 0 text.

Checking for Script Errors

Be sure that every line of text ends with an [END] control code! Things will act unpredictably otherwise!

Use the "Check for errors" button to check the current block for [END] and other control code (the things in []s) errors. If you have the "Check for width overflow" option checked, this will also check for lines that go beyond the blue line/screen edge.

You can also use the "Check all" button to check ALL blocks for the above errors. This is especially helpful once your project is nearing completion and you don't want to have to go through every block manually.

Script Stats & Repeats

Click the "Stats" button to see how many lines you've finished working on, and how many more you have to go.

You'll quickly notice that many lines in the game repeat in different blocks. It's a hassle to copy/paste all the time, so if you click the "Check for repeats" button, the program will try to find repeats of the current line. If any repeats are found, the editor will offer to automatically copy your existing translation into all other spots in the script. It's handy!

Click the "Script size" button to see how big the script will be when converted. You'll need to make sure the converted script is smaller than the maximum size, which is also listed. The text here talks about Japanese script and English script - just keep an eye on the middle number, as that's the size of YOUR script.

Unimportant Stuff

You can ignore the "Inject script" button.

You can ignore the "Miscellaneous" menu.

You can ignore the "Old, stinky stuff" menu.

Inserting Your Text Into the Game

Most important of all! Before you can use your script in the game, you need to convert it to a .bin file.

To do this, first MAKE SURE TO UNCHECK "ENCODE THE SCRIPT" FROM THE ENCODING MENU, then click the "Dump to binfile" button and save it to text_mainscript.bin

Once you've saved the .bin file, you need to run i.bat to rebuild the ROM from scratch - this will insert your script into the game.

(Of course, don't forget to save your script.txt file too, so that you won't lose your changes.)

Possibly Common Questions

Tips & Suggestions

Here are some suggestions based on personal experience and from watching other teams translating the game.

Updating from the old translation tools

If you are updating from the old translation tools, you may find this repository very useful, in order to check what changed.

If you want to see how the update was developed, look here instead.

Here, one can find the old translation tools. You aren't meant to download them, unless you really need them for some reason.

It's recommended to use the new ones, otherwise. Many issues were fixed.

TL;DR