Goodboy, galaxy — and hello Jipang

How -- and why -- do you go about making a Game Boy Advance game in 2023? And why was Tengai Makyou a big deal in 1989?

Goodboy, galaxy — and hello Jipang

Pop quiz, hot shot! What do you do when there’s loads of retro news from the last two weeks to talk about, and only so much time to put together a newsletter while recovering from jetlag and watching Die Hard (obligatory)? You cram all the tidbits into the intro, rapid-fire style!

Most of my spare time this week has gone to catching up on sleep and upgrading my home server with some new hard drives and an Unraid license I picked up on Black Friday, so I haven’t been doing much gaming — but I have been keeping an eye on the news, and there is indeed a lot of it. Let’s hit a few highlights, shall we?

I could keep going, but instead of giving you a longer intro read I’m going to suggest you devote your time to the fantastic video above, chip in a few bucks to the Video Game History Foundation’s winter fundraiser, and then come back here for the read of this issue of ROM: we’ve got an interview with the devs behind Goodboy Galaxy, who decided it’s never too late to make a Game Boy Advance Game.

I also put the spotlight on the exciting fan translation for 1989’s Tengai Makyou: Ziria, a pioneering CD RPG that was going toe-to-toe with Dragon Quest and Final Fantasy back in the day. Enjoy!

The Big Two

1. How Goodboy Galaxy’s developers went about making a GBA game in 2023

As promised last issue, I have more to say about Goodboy Galaxy, the very cute platformer from developer duo Rik Nicol and and Jeremy Clarke (and friends). Even in bountiful 2023, when you can find indie games paying homage to every era of pixel art and multiple generations of 3D graphics, there’s still something special about honest-to-goodness Game Boy Advance sprites. Leaps and bounds more colorful and expressive than what was possible on the Game Boy Color, yet still constrained compared to modern games.

There’s only so much you can do with 240x160 pixels and a 16.8 MHz processor, after all. But why am I telling you that? I should be letting Rik and Jeremy do the talking. I had questions about how emulation factored into both Goodboy Galaxy’s development and release — if you buy it on, it comes packaged with an emulator — and they were game to answer.

Mind spreading the word about Read Only Memo? Send somebody a purple link.

Goodboy Galaxy started as a game jam game and blossomed from there. The first thing on my mind was how developing a game for a 20-year-old handheld required doing things the hard way, compared to targeting a modern PC or console.

“All the manual managing of palettes, video memory, amount of tiles available, etc.,” Rik & Jeremy wrote. “It requires a lot of close team-work between artist and coder to get the most out of the platform. That's true for modern games in a way too, but nobody will be stressing out trying to make an animated sprite that's 256 pixels wide, or trying to squeeze in one more unique building in a level.”

Maybe the most obvious challenge is space — the devs knew they were up against a hard limit, because they actually planned to release Goodboy Galaxy on a playable GBA cart. “We assumed the largest possible GBA ROM size of 32 MB,” they wrote. “Fortunately, memory is cheaper nowadays compared to 2001, so it wasn't a big expense. And we really needed the space! The game is jam-packed and we still went over the limit several times (music and full-motion videos being the biggest culprits). So we had to find ways to compress the data without sacrificing quality or performance.

“Many times, the solution came just in the nick of time. For example a community member (thanks asie!) fixed a bug in the music tool, allowing it to detect when the same sample is used in more than 1 song, and remove the duplicates.”

The duo wrote that mGBA is “by far” their favorite GBA emulator, and they used it regularly while making the game. But the version of the emulator they actually packed in with the game is “a cutdown Retroarch front end (and the mGBA core) because the dynamic rate control gives the player a much smoother frame rate.”

“Most other emulators and front-ends have trouble with smooth visuals, repeating or skipping every x amount of frames to keep the audio in sync,” they wrote. “It's subtle, but it makes a big difference in feel.”

My favorite thing about Goodboy Galaxy may be the spritework, which has a detail and bouncy liveliness to it that feels more 2023 than 2003. Jeremy & Rik gave me a breakdown of how they pulled that off on the GBA’s simple hardware. The answer starts with identifying the system’s constraints.

“The sprite limitations we were working with are:

Sprite size: there are a few sizes to pick from between 8x8 and 64x64.

Colour palette: each palette has 15 colours + transparency, and there are 16 of these palettes available, so many sprites will have to share — palettes need to be authored a bit carefully.

Sprite tiles in memory: 1024 (8x8) tiles max. You can make a big sprite out of several smaller ones, but it comes at the cost of more tiles used. Even just having one type of enemy on screen can take up a lot of VRAM if they're all showing a different frame of animation, so this kind of thing has to be managed too. Sometimes it's beneficial to split a sprite up into smaller ones anyway, just so you're not wasting 'blank' tiles for an L-shaped graphic for example.

The ship in particular is made up of several pieces which took quite a lot of care to set up!

Sprite pixels per scanline: if you try to cram too many sprites on the same horizontal line, they will stop rendering. This isn't usually something we'd run into, but it was a big pain in one of the later planets which has these large glowing torches, and also in the burger minigame which has lots of rotating sprites stacked on top of each other.

When we've wanted a very big sprite, sometimes we've used a background layer. Background layers have a similar set of restrictions as sprites, but from a separate pool of VRAM tiles and palettes (that are also very precious as all the level tiles are in here too) and you only get 4 of them total (we need a minimum of 3 just for the level tiles, background and UI). To animate the huge (fake) sprites we've just scrolled, and cropped outside of the intended frame with a ‘window’. Tldr: A lot of very manual planning!”

Native console and PC releases of Goodboy Galaxy are coming next year, which will be largely the same — but they did develop the game with some differences for those platforms in mind. The music was authored at a higher quality than the GBA could take advantage of, for example, and when planning out cutscenes, they ensured they’d look okay on 16:9 screens in addition to the GBA’s 3:2 display.

If you’re inspired to make a GBA game of your own, they recommend the tutorial Tonc, which is actively being overhauled by hobby developers who know the handheld inside & out. They also recommend the technical reference GBATEK and the article Game Boy Advance Resource Management. The holy trinity of dev resources for aspiring Goodboys everywhere.

2. Foundational RPG Tengai Makyou: Ziria gets a translation

What a run the translation scene has been on this season. From Boku no Natsuyasumi 2 to the two games featured in the last issue of ROM, it’s been a streak of awesome news lately, and if nothing else pops up till post-Groundhog Day it’ll still be a fine winter working through these games. While Boku tops my list, Tengai Makyou: Ziria being available in English is a Big Deal. Here’s a bit of background from Lipemco!, the translation group behind this release:

“Tengai Makyou: Ziria is the debut entry of the Tengai Makyou series. Published by Hudson Soft for the PC-Engine CD-ROM² system in 1989, it was the first RPG ever released on CD and served as a showcase for the new medium, with elaborate visuals and voice acting far beyond what any competing title could offer. Its success led it to become the first in a popular series, very little of which was ever released outside Japan.”

Here’s a really slickly edited video diving far deeper into that history, weaving in an interview with artist Yoshiteru Tsujino. It’s a good watch.

According to hacker Supper in the translation’s readme, the project really only started a few months ago in August:

“Coming from a well-known series resulted in the game having some rather lofty expectations attached. Based on my discussions with other people in the PC-Engine community, this game seems to exist in some strange space where, thanks to being an early and rather primitive CD title, no one is super enthusiastic about the idea of hacking it, but everyone nevertheless feels that it absolutely must have a top-notch translation due to its historic importance.

So, with community enthusiasm tepid but expectations high, I perhaps rolled my eyes a little but gave it my all. Battle messages look awkward because there's no automatic word wrap? Well, guess we're adding that in, then. Item names won't fit? Screw cutting them down or using icons, let's implement automatic text squishing. We need subtitles for the attract demos no one's actually going to watch? Ha, that's old hat by now. Oh, whoops, the intro's text is too flowery for a good translation to fit in three lines? Time to add hacks all across the whole printing code so we can use four instead, just for that sequence! And by special request, I even spent some time cooking up improvements to the game's subpar loading times (it really says something about how bad the official Super CD version is that I easily improved on it with a few days and no source code).

Honestly, I enjoyed putting this together, but the effort may be a little excessive for what the game actually is: an RPG with high production values and future-facing visuals and voice acting, but also very old-school and orthodox-to-a-fault gameplay. It's a historic milestone, and it's certainly not a bad game – it was undoubtedly considered very good in 1989, when it was going up against the likes of Dragon Quest III and Final Fantasy II – but it's the kind of game you really have to be into old-style RPGs to enjoy playing for long, which unfortunately undermines the aspects of the game which are the most unique and interesting: the unusual setting, high-powered visuals, and oddball characters.”

The readme recommends using the pceDev branch of Mednafen, and has some detailed instructions on getting it working with the PC Engine’s CD-ROM², which was actually the second, better CD add-on for the system. “Tengai Makyou was actually not a Super CD-ROM² game in its original release,” the readme says. “However, this patch converts it into one so that the Super CD system's extra memory can be used to provide a high-quality translation, and also improve the game's notably poor loading times.”

The translation patch includes a few rad updates beyond being in English, too:

  • The code modules for the overworld and battle system are permanently cached to memory at startup, and no longer have to be loaded from disc when switching game modes.
  • The two most recently used overworld maps are kept cached in memory. When moving to a new map, the game won't have to load from disc if the new map is either of the cached ones. This greatly improves on situations where you repeatedly switch to the same map (such as in towns, where you're constantly returning to the same map as you go in and out of buildings). It also means the game doesn't have to reload the current map from disc when returning to the overworld after a battle. Combined with the code module caching, this makes transitioning to and from battle extremely fast compared to the original game.
  • The original game doesn't provide the option to skip individual lines of voiced dialogue. Turning on the "Line Skip" option means that pressing Button II will turn off voice acting and fast-forward through the current text until the box closes, which is "thoughtful," but very clunky and probably not what most people actually want. As a result, we decided to add the ability to skip individual voice clips simply by pressing Button I, though the original "fast-forward" mode is still available in the Mode menu if you want it.

If you just so happen to be the proud new owner of a Analogue Duo, this would be the perfect way to break it in.

Patching In

  • Cemu Wiimotes better - Cemu has switched to using Hidapi in Windows, which is essentially a bridge between a piece of software and a USB/Bluetooth device. According to a contributor, the change “should improve the likelihood of Cemu detecting the Wiimote and its button presses” over Windows’ default implementation.

  • Yuzu modding gets faster - Good news for Zelda tinkerers, especially. An update to Yuzu’s RomFS implementation “brings the time needed to apply RomFS mods for Tears of the Kingdom down from 2.8 seconds to around 300ms on a fast desktop.”

  • EmuDeck adds OLED import/export tool - I missed this last issue, but EmuDeck added a convenient tool for moving “your games, bios and saved games from one Deck to another.”

  • Ares gets Sega Mouse support - Gotta love the relationship between emulators and the homebrew scene. Here’s a fun update from multi-system emu Ares: “Doom Resurrection patch version 3.0 (currently at version 3.1) added support for the Mega Mouse, as well as making use of Mega CD hardware if available. When I added mouse support for the Mega CD, the patch for Doom Resurrection was at version 2.2, and since there was no licensed 32X software that supported the Mega Mouse I declined to add support at the time. But leave it to homebrew, especially one as comprehensive as this patch to add support.

    This adds Mega Mouse support for both the 32X and 32X/CD combo, so it is now available for all Mega * consoles.”

    • So to be clear, now you can use your PC mouse to emulate the Sega Genesis mouse in a game ported from PC to the 32X (which lacked mouse support) and then reprogrammed with a new engine 29 years later (which added mouse support). Got it?

Core Report

  • Mister 64 All the Way — N64 core developer Robert Peip shared the amazing news that the core can now boot “every single title that was officially released, including all regions.” That’s one hell of a milestone, considering the core was once considered impossible. Now it’s not just possible, but all-inclusive. Check out Robert’s Patreon for more details on the accomplishment.

  • Analogue Pocket OS 1.2 drops - Updates! Bugfixes! Maybe most significant, this adds support for some new 8BitDo controllers via the Dock and improves PS5/Xbox controller usage. OpenFPGA cores can now detect if the system is docked, and “Cores that share platforms now can share Assets” which may be important?

    • The long-awaited update to Pocket OS that includes display mode support for openFPGA will supposedly be out before Christmas. It feels odd to drop a version 1.2 and a version 2.0 two weeks apart, after seven months of nothin’, but 🤷‍♂️

  • MAME adds support for two educational drawing consoles, only shits on one of them - Loved this from the latest MAME update: “LJN’s VideoArt from 1987 and Sega’s Advanced Pico BEENA from 2005. Although they were both positioned as intellectually stimulating consoles for children and both had drawing features, they couldn’t be more different. The VideoArt was universally derided for its poor controls and lack of entertainment value, drawing negative comparisons to the popular Etch-a-Sketch toy. On the other hand, the BEENA was a high-quality device using media combining a ROM cartridge with a picture book, and featured dual pen digitisers. Its ARM CPU is fairly demanding to emulate in MAME, so you’ll need a fast PC to run it at full speed. We’re aware that the current scans of the picture books are not perfect, but it’s still quite usable apart from some peripherals that aren’t emulated yet.”

  • MiSTer Vectrex can rotate now - This seems like it could be important for Vectrex games?

Translation Station

  • Death Crimson 2: Altar of Melanito for Dreamcast in progress - Derek Pascarella announced his next project with a lengthy video showing off progress so far! (Check out July 30th’s ROM for an interview about Derek’s last translation.) This one’s a Light Gun game, though with a surprising amount of voiced dialogue in it.

    Things seem to be going well already, as Derek posted on the Dreamcast-Talk forums:

    “After spending some time with the game data, I've written all of the tools I've needed for complete text extraction and insertion, as well as numerous assembly hacks to make everything work smoothly.

    “Insanely, all of the game's text is stored directly in the executable itself! My tools essentially just move everything around and adjust all pointers so that I can fit as much English text as I need. Furthermore, I'll be taking advantage of the game's katakana and hiragana fonts that are always present in RAM to store additional text that doesn't fit in the executable. This is actually a very fortunate circumstance, as A) I no longer need either of those font sheets and B) they afford me over 12K in extra space.”

Good pixels

Tengai Makyou’s art really is fantastic for 1989 — and these shots from the translators show how nicely the new text fits in, too.

And an offscreen shot with them sweet scanlines:

Via Thomas Nickel on Twitter