Mirror of jeffman/mother2gbatranslation - Mod for Mother 2 for the GBA to localise it for english language speakers
Go to file
Lorenzo Carletti d0b3bcad1f Update encounter text to match EB 2022-01-16 05:21:13 +01:00
bin Committing armips to repo 2019-02-28 18:07:17 -05:00
docker-scripts Remove xvfb and use SDL env variable instead 2021-12-30 22:08:25 +01:00
notes Complete Merge 2021-09-30 23:24:00 +02:00
screenshots Update README 2019-08-05 22:41:06 -04:00
src Change the text to be 3 pixels shorter 2022-01-01 21:35:27 +01:00
tools Add customizable default names 2022-01-01 05:05:22 +01:00
working Update encounter text to match EB 2022-01-16 05:21:13 +01:00
.gitattributes Update gitignore and gitattributes 2015-03-16 00:15:26 -04:00
.gitignore Change docker script's execution flow 2021-12-27 20:25:25 +01:00
CONTRIBUTORS.txt Change docker script's execution flow 2021-12-27 20:25:25 +01:00
LICENSE Create LICENSE 2018-11-02 11:36:48 -04:00
README.md Improve compatibility with Windows and its Powershell 2021-12-30 21:48:59 +01:00
build-appveyor.ps1 Add error checking 2019-03-01 19:47:18 -05:00
build-tools.ps1 Add customizable default names 2022-01-01 05:05:22 +01:00
build.ps1 Add customizable default names 2022-01-01 05:05:22 +01:00
makefile Add makefile and solution 2020-05-18 00:01:42 -07:00
test.ps1 Add overworld menu's items boundary testing 2021-12-20 00:34:28 +01:00

README.md

Branch Status
Project Build status
master Build status

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!

Screenshots

Building

Building with Docker

Docker allows easily building without having to install the dependencies.

  1. Put a MOTHER 1+2 ROM in bin/m12fresh.gba
  2. While in the root of the project, run: docker run --rm -it -v ${PWD}:/home/m2gba/src lorenzooone/m2gba_translation:builder

The output will be inside the newly created out folder.

Manually Building

Dependencies

  1. One-time setup
    1. Install .NET Core 2.1, PowerShell Core, and GNU Arm Embedded Toolchain. Make sure the Arm toolchain's bin folder is in your PATH.
    2. Create a bin folder in the root of the repo.
    3. Copy MOTHER 1+2 ROM to bin/m12fresh.gba.
    4. Copy EarthBound ROM to bin/eb.smc.
    5. Run build-tools.ps1.
      • Windows: .\build-tools.ps1 in a PowerShell prompt
      • Linux and MacOS: pwsh build-tools.ps1
    6. Copy/build armips to bin.
      • Windows: grab the latest release here and copy the executable to bin/armips.exe.
      • Linux: follow the README to build armips and copy the executable to bin/armips.
      • MacOS: grab the latest release here and copy the executable to bin/armips.
  2. Building the ROM
    1. Run build.ps1.
    2. The default compiled ROM is copied to bin/m12.gba.
  3. (Optional) Build the GUI script tool:
    1. dotnet build tools/ScriptTool (don't set the output directory)
    2. dotnet build tools/ScriptToolGui -o bin/ScriptToolGui
    3. Run with dotnet bin/ScriptToolGui/ScriptToolGui.dll (or just run the EXE file directly).

Testing

Testing with Docker

Docker allows easily testing without having to install the dependencies.

  1. Put a MOTHER 1+2 ROM in bin/m12fresh.gba
  2. While in the root of the project, run: docker run --rm -it -v ${PWD}:/home/m2gba/src lorenzooone/m2gba_translation:tester

Manually Testing

Dependencies

  1. One-time setup
    1. Install .NET Core 2.1, PowerShell Core, and GNU Arm Embedded Toolchain. Make sure the Arm toolchain's bin folder is in your PATH.
    2. Create a bin folder in the root of the repo.
    3. Copy MOTHER 1+2 ROM to bin/m12fresh.gba.
    4. Copy EarthBound ROM to bin/eb.smc.
    5. Run build-tools.ps1.
      • Windows: .\build-tools.ps1 in a PowerShell prompt
      • Linux and MacOS: pwsh build-tools.ps1
    6. Copy/build armips to bin.
      • Windows: grab the latest release here and copy the executable to bin/armips.exe.
      • Linux: follow the README to build armips and copy the executable to bin/armips.
      • MacOS: grab the latest release here and copy the executable to bin/armips.
    7. Copy/build mgba-sdl to bin.
      • You can also use mgba-QT (which is normally named mgba), but you will need to change the name of the executed program in test.ps1.
  2. Running the tests
    1. Run test.ps1.
    2. The default compiled ROM is copied to bin/m12test.gba.
    3. The tests' log will be in bin/test.log.
    4. The output will also be visible in the console.