Mirror of jeffman/mother2gbatranslation - Mod for Mother 2 for the GBA to localise it for english language speakers
Go to file
jeffman aa4191aec2 bin_to_bcd can be called from C
Remove old cash window formatting code (we'll be rewriting it in C)
2018-12-06 23:05:00 -05:00
ScriptTool Add menu selection strings to compiler 2018-12-01 00:40:47 -05:00
SymbolTableBuilder Added a tool for symbol file generation 2017-03-09 13:13:57 -05:00
compiled bin_to_bcd can be called from C 2018-12-06 23:05:00 -05:00
maps Update map tutorial 2018-03-30 13:35:55 -04:00
notes Print numbers properly outside of battle 2018-12-06 20:53:43 -05:00
screenshots Screenshots showing enemy plurality code 2017-03-26 18:30:10 -04:00
working Fix printing ATM balance to main text window 2018-12-06 20:44:08 -05:00
.gitattributes Update gitignore and gitattributes 2015-03-16 00:15:26 -04:00
.gitignore Move notes to subfolder 2018-12-04 22:22:52 -05:00
BUILD.md Typos 2018-05-30 21:28:07 -04:00
CONTRIBUTORS.txt Update contributors 2018-12-03 17:40:43 -05:00
LICENSE Create LICENSE 2018-11-02 11:36:48 -04:00
README.md Update README 2018-11-26 23:48:54 -05:00
TODO.md Updated todo 2015-04-21 11:56:46 -04:00
insert.bat Add ScriptTool to insert.bat 2018-11-26 22:22:25 -05:00
m2-bits-to-nybbles.bin Added bits-to-nybbles lookup 2017-03-09 13:15:42 -05:00
m2-coord-table.bin Add VWF code 2015-03-13 19:03:48 -04:00
m2-customcodes.asm Code formatting improvements 2017-04-02 22:12:18 -04:00
m2-enemy-attributes.bin Added enemy attributes 2017-03-26 22:05:18 -04:00
m2-font-battle.bin Converted all font data from EB 2017-04-13 18:10:51 -04:00
m2-font-big.bin Converted all font data from EB 2017-04-13 18:10:51 -04:00
m2-font-main.bin Add VWF code 2015-03-13 19:03:48 -04:00
m2-font-relocate.bin Add VWF code 2015-03-13 19:03:48 -04:00
m2-font-saturn.bin Converted all font data from EB 2017-04-13 18:10:51 -04:00
m2-font-tiny.bin Converted all font data from EB 2017-04-13 18:10:51 -04:00
m2-formatting.asm bin_to_bcd can be called from C 2018-12-06 23:05:00 -05:00
m2-goods.asm Fix multi-PC Goods window; add m2-goods.asm 2018-11-27 23:17:16 -05:00
m2-hack.asm Print numbers properly outside of battle 2018-12-06 20:53:43 -05:00
m2-header-bg.bin Gonna use tiles 0x330 through 0x33F for window header stuff 2017-04-15 23:40:23 -04:00
m2-mainfont1-empty.bin Move arrow character up by two pixels 2017-04-15 23:40:50 -04:00
m2-mainfont2-empty.bin Add VWF code 2015-03-13 19:03:48 -04:00
m2-mainfont3-empty.bin Add VWF code 2015-03-13 19:03:48 -04:00
m2-nybbles-to-bits.bin reduce_bit_depth now uses a lookup table 2017-03-10 00:44:39 -05:00
m2-shifted-cursor.bin Update hack files 2015-03-16 00:16:28 -04:00
m2-status-initial.asm Migrated from xkas to armips 2017-03-29 00:19:51 -04:00
m2-status-switch.asm Migrated from xkas to armips 2017-03-29 00:19:51 -04:00
m2-vwf-entries.asm Fixed some print_blankstr bugs 2017-04-16 19:12:49 -04:00
m2-vwf.asm Moved print_space to vwf.c 2017-04-11 17:39:56 -04:00
m2-widths-battle.bin Converted all font data from EB 2017-04-13 18:10:51 -04:00
m2-widths-big.bin Converted all font data from EB 2017-04-13 18:10:51 -04:00
m2-widths-main.bin Converted all font data from EB 2017-04-13 18:10:51 -04:00
m2-widths-saturn.bin A few ScriptTool/Gui changes 2018-04-03 23:28:38 -05:00
m2-widths-tiny.bin Converted all font data from EB 2017-04-13 18:10:51 -04:00
syscalls.asm Added CpuFastSet stub 2017-04-11 17:12:20 -04:00

README.md

MOTHER 2 Translation for the GBA

This is a work-in-progress translation patch for MOTHER 2 on the GBA.

Discord

Our Discord server is pretty active: https://discord.gg/ADXS5Ub

Hasn't it been done?

There are at least two other projects that translate the MOTHER 2 side of the game:

  • Mato's menu text translation: here
  • TheZunar123's full translation (in progress): here and here

Why start another project?

Neither of the above projects use a true variable-width-font (VWF) to render text. A VWF would look much better and would make the game more enjoyable.

Adding a VWF is hard, however. Mato explains here why it's generally a very difficult task to fully translate the game, let alone to insert a VWF.

A long time ago (before the release of the MOTHER 3 Fan Translation), I started working on a proof-of-concept VWF for MOTHER 2 on the GBA. It worked, but it quickly became apparent that the amount of hacking required would be huge; window-rendering functions contain a ton of repeated code and some of it is downright non-sensical.

A few years after that, I tried it again from scratch with the intent of having a more organized codebase. It went much better, but I was soon limited by not having any translated dialogue, rather than not having a VWF; I couldn't test much of my VWF code without any English text inserted into the ROM.

Now what?

This project aims to both complete the VWF codebase and to provide a tool for translating the game's dialogue. My new intent is to bring the hack to a state where I can just sit down and translate text efficiently in my spare time with a graphical tool. Not only that, but having such a tool means that other people can contribute!

Status

The core of the VWF is complete. But it needs to be implemented in dozens of different places in the game's code. I've finished many of them, but there are probably still many more. Pretty much all of the game's text still needs to be translated too.

Some screenshots:

Dependencies

If you want to just use the graphical tool to help with the translation, you just need .NET 4.5.1. If you want to actually compile the hack code and test it out, you will need armips. The game also crashes horribly 99% of the time in its current state, so there's no point in trying it.

Compiling

That said, if you do want to try compiling this thing:

  1. One-time setup
    1. Find a MOTHER 1+2 GBA ROM, name it m12fresh.gba, and copy it to the root of the repository. Mine has a SHA-1 hash F27336B9C96CA2D06C34E07A61A78538DEAC32B3.
    2. Only if you need to decompile stuff from EarthBound: repeat the above step for the EarthBound SNES ROM, named eb.smc, SHA-1 hash D67A8EF36EF616BC39306AA1B486E1BD3047815A. You can probably get away with any EB ROM that's unheadered.
    3. Build ScriptTool: open ScriptTool/ScriptTool.sln in Visual Studio and build the solution in Debug mode. This is a tool that compiles all of the JSON files from working/ into ASM and BIN files. There's also a GUI tool to help with editing the main script file. You might have to right-click the solution in Visual Studio and 'Restore NuGet Packages'.
      • Important: re-build ScriptTool if you change between master and compiled-vwf!
    4. Repeat the above step for SymbolTableBuilder.
    5. If you're on the compiled-vwf branch:
      1. Build compiled/Amalgamator/Amalgamator.sln.
      2. Grab the latest release of armips and copy armips.exe to the repository root.
      3. Download and install GNU Arm Embedded Toolchain (anything newer than 6-2017-q1-update should work). Make sure it ends up in your PATH environment variable (the installer should take care of this).
  2. Building the ROM
    1. Run insert.bat. This will generate m12.gba in the repository root, which has everything compiled and inserted.