Porting GB Studio Games to the GBA with GBSenpai

In one of my previous articles, I showed you how you could get your GB Studio ROMs running in a Game Boy Advance (GBA) wrapped ROM using an emulator known as Goomba Color. A user going by the name Asie recently made a way to port GB Studio ROMs to run natively on the GBA, which means emulation is no longer needed.

I must point out I experienced several challenges getting this to run, so I will be providing some workarounds and solutions for issues I ran into. Note that this tool is currently only compatible with GB Studio beta 5 and this tutorial was written for Windows based systems. You can run this tool on Mac/Linux, but will need a different version of DevKitPro (https://devkitpro.org/wiki/Getting_Started). Some experience with command line tools is helpful as well.

Check out that widescreen!

Requirements

You will need:

You will also need to install a fairly recent version of Python 3. On windows this can be accessed by msys2 which is installed by devkit pro. The easiest method for this is to install it through msys2 regardless, andI will explain how to do that a little later.

Setting up the Environment

The first thing you need to do is open your GB Studio project and go to the menu bar and select Game > Advanced > Export Project Source.

This will export your project’s source files so they can be converted to work on the GBA later.

Next you want to install DevkitARM on your computer. It will fetch a number of files from it’s repo. If you get an error like:

error: mingw32 key ”*insert key*” is unknown

Jump to the troubleshooting section of this article.

Once DevkitARM is installed on your system, download GBSnepai into your desired location. I have installed it into my “Z” drive.

Next you want to open up msys2 under the DevkitPro. You can find this in your start menu on windows, then type:

pacman -S python3

This will install the latest python 3 and make it available to msys2. Installing python via a standalone installer in windows will involve more configuration, this is the easiest method.

If you have errors like

error: dkp-libs key ”*insert key*” is unknown

or

error: dkp-windows key ”*insert key*” is unknown

Jump to the troubleshooting section of this article.

Compiling your Project

Next, you will need to create a folder inside the GBSenpai folder. Into this folder you will need to copy the contents of the src/data folder from your exported project source, as well as the contents of src/music. You will also need the banks.h and data_ptrs.h from the “include” folder copied here as well.

In the end it should look like this:

Once this is all together, you will need to edit the Makefile.gba in the GBSenpai folder. You can use your favourite text editor (I use Notepad++) and find this line:

GAME_DIR :=sample_cgb

Now change the sample_cgb text to whatever you called the folder you created. I called mine “Breakfast-Game”:

GAME_DIR :=Breakfast-Game

Note: this is not the full file path, just the name of the folder you created inside the GBSenpai folder.

If you are running your game in non-colour mode, then you also need to change this line to state “false” instead of true:

GAME_CGB :true

Next up, launch msys2 on windows and use the ‘cd’ command to navigate to your GBSenpai directory. Since it was on my ‘Z’ drive, the command looks like this for me:

cd Z:/gbsenpai

Press enter/return, then type in this next line:

make -f Makefile.gba

Press enter once more and it should then create a GBA ROM of your game in the GBSenpai folder. It will name the ROM according to the name you set the folder inside.

Troubleshooting

If you get this error:

error: mingw32 key ”*insert key*” is unknown

You need to manually sign keys. You can do this with the following commands:

$ curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
$ curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig
$ pacman-key --verify msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.si
$ pacman -U msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz

If you get this error:

error: dkp-libs key ”*insert key*” is unknown

And/or

error: dkp-windows key ”*insert key*” is unknown

You will need to edit this file:

C:\devkitpro\msys\ect\pacman.comf

And change the servers for dkp-libs to:

Server = https://pkg.devkitpro.org/packages

And dkp-windows to:

Server = https://pkg.devkitpro.org/packages/windows/$arch/

GBA’s smooth fades are a really nice touch.

While this isn’t GBA Studio, porting your games to the GBA provides another way for players to enjoy the games you worked on. It also makes really nice use of the GBA’s Fade controls (you have to see it to get the full effect) and your game’s view port will take full advantage of the GBA’s wider screen. It’s definitely a neat option to try if you want to see what it would look like.