Mirror of jeffman/mother2gbatranslation - Mod for Mother 2 for the GBA to localise it for english language speakers
Go to file
Lorenzooone 1f03f27ac5
Upgrade to mgba_rom_test for faster testing (#175)
It's a 0.10 new platform, which is lighter than mgba-sdl, and also allows automatically closing the emulator when the tests end.
Helps making both the actions and the user-side docker testing faster
2022-07-09 18:08:31 +02:00
.github/workflows Harden workflows by defining only strictly needed permissions for all of them (#174) 2022-07-05 15:38:23 +02:00
bin Change to Github actions for building + releasing & testing (#166) 2022-07-03 22:52:08 +02:00
docker-scripts Upgrade to mgba_rom_test for faster testing (#175) 2022-07-09 18:08:31 +02:00
notes Complete Merge 2021-09-30 23:24:00 +02:00
screenshots Update README 2019-08-05 22:41:06 -04:00
src Upgrade to mgba_rom_test for faster testing (#175) 2022-07-09 18:08:31 +02:00
tools Add customizable default names 2022-01-01 05:05:22 +01:00
working Adds one missing pixel to the width overflow check 2022-01-17 20:55:28 +01:00
.gitattributes Update gitignore and gitattributes 2015-03-16 00:15:26 -04:00
.gitignore Change to Github actions for building + releasing & testing (#166) 2022-07-03 22:52:08 +02: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 Update README.md 2022-07-03 22:53:10 +02: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 auto newline for encounter text 2022-01-17 05:57:02 +01:00
makefile Add makefile and solution 2020-05-18 00:01:42 -07:00
test-fast.ps1 Upgrade to mgba_rom_test for faster testing (#175) 2022-07-09 18:08:31 +02:00
test.ps1 Upgrade to mgba_rom_test for faster testing (#175) 2022-07-09 18:08:31 +02:00

README.md

Branch Status
master Build
master Test

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.