Game boy Advance

modder-re-creates-game-boy-advance-games-using-the-audio-from-crash-sounds

Modder re-creates Game Boy Advance games using the audio from crash sounds

To truly catch them all —

Create a bootable, working Pokémon game by recording it crash multiple times.

Game Boy Advance, modded, on display

Enlarge / Andrew Cunningham’s modded and restored Game Boy Advance could, with enough time, sing out all the data loaded into a cartridge.

Andrew Cunningham

Sometimes, a great song can come from great pain. The Game Boy Advance (GBA), its software having crashed nearly two hours ago, will, for example, play a tune based on the game inside it. And if you listen closely enough—using specialty hardware and code—you can tell exactly what game it was singing about. And then theoretically play that same game.

This was discovered recently by TheZZAZZGlitch, whose job is to “sadistically glitch and hack the crap out of Pokémon games.” It’s “hardly a ready-to-use solution,” the modder notes, as it requires a lot of tuning specific to different source formats. So while there are certainly easier ways to get GBA data from a cartridge, none make you feel quite so much like an audio datamancer.

TheZZAZZGlitch’s demonstration of re-creating Game Boy Advance ROM data using the sounds from a crashing system.

After crashing a GBA and recording it over four hours, the modder saw some telltale waveforms in a sound file at about the 1-hour, 50-minute mark. Later in the sound-out, you can hear the actual instrument sounds and audio samples the game contains, played in sequence. Otherwise, it’s 8-bit data at 13,100 Hz, and at times, it sounds absolutely deranged.

“2 days of bugfixing later,” the modder had a Python script ready that could read the audio from a clean recording of the GBA’s crash dump. Did it work? Not without more troubleshooting. One issue with audio-casting ROM data is that there are large sections of 0-byte data in the ROM, which are hard to parse as mute sounds. After running another script that realigned sections based on their location in the original ROM, the modder’s ROM was 99.76 percent accurate but “still didn’t boot tho.” TheZZAZZGlitch later disclaimed that, yes, this is technically using known ROM data to surface unknown data, or “cheating,” but there are assumptions and guesses one could make if you were truly doing this blind.

The next fix was to refine the sound recording. By recording three times and merging them with a “majority vote” algorithm, their accuracy notched up to 99.979 percent. That output ROM booted—but with glitched text and a title screen crash. After seven different recordings are meshed and filtered for blank spaces, they achieve 100 percent parity. That’s about the halfway point of the video; you should watch the rest to learn how it works on physical hardware, how it works with a different game (an ARM code mystery in a replica cartridge), and how to get the best recordings, including the use of a “cursed adapter” that mixes down to one channel the ugly way.

Modder re-creates Game Boy Advance games using the audio from crash sounds Read More »

flurry-of-firmware-updates-makes-analogue-pocket-an-even-better-retro-handheld

Flurry of firmware updates makes Analogue Pocket an even better retro handheld

super game boy —

Display filters for FPGA cores, custom Game Boy color palettes, and more.

An Analogue Pocket running <em>Super Mario World</em> on an openFPGA core with the scanline filter enabled.” src=”https://cdn.arstechnica.net/wp-content/uploads/2024/01/IMG_1480-2-800×533.jpeg”></img><figcaption>
<p><a data-height=Enlarge / An Analogue Pocket running Super Mario World on an openFPGA core with the scanline filter enabled.

Andrew Cunningham

We’ve got a soft spot for the Analogue Pocket, the premium portable game console that melds 2020s technology with the design of the original Game Boy. Since its release, Analogue has added some new capabilities via firmware updates, most notably when it added support for emulating more consoles via its OpenFPGA platform in the summer of 2022. This allows the FPGA chip inside of the pocket to emulate the hardware of other systems, in addition to the portable systems the Pocket supports natively.

But aside from finalizing and releasing that 1.1 firmware, 2023 was mostly quiet for Pocket firmware updates. That changed in December when the company released not one but two major firmware upgrades for the Pocket that slipped under our radar during the holidays. These updates delivered a combination of fixes and long-promised features to the handheld, which Analogue has been re-releasing in different color palettes now that the original versions are more consistently in stock.

The most significant update for OpenFPGA fans is the ability to use display filters with third-party FPGA cores. Part of the appeal of the Pocket is its 1,600×1,440 screen, which is sharp enough to perfectly re-create the huge chunky pixels of the original Game Boy screens. By default, most FPGA cores now get access to a similarly high-quality CRT screen filter named after the Sony Trinitron TV, adding a touch of retro-blurriness to the sharp edges of 8- and 16-bit games. I’ve seen lots of bad, unconvincing scanline filters in retro game re-releases, and this isn’t one of them.

The basic Trinitron filter is available by default for “suitable” cores, which in our testing tends to mean “home consoles that were meant to be connected to a CRT TV.” FPGA cores for portable systems like the Game Boy or Game Boy Advance, which shipped with old but scanline-less LCD screens, don’t have the filter available. Third-party FPGA core developers will need to add support for additional screen filters themselves, something that most developers still haven’t done as of this writing.

  • A zoomed-in photo of the screen with no filters enabled. It’s sharp and crisp, and even zoomed in with a good mirrorless camera it’s difficult to make out individual pixels on the Pocket’s screen.

    Andrew Cunningham

  • The same scene with the Trinitron CRT filter enabled. Subtle scanlines, visible CRT “pixels,” and just the right amount of blurring makes the picture look more period-accurate.

    Andrew Cunningham

  • Zoomed out, scanlines off.

    Andrew Cunningham

  • Scanlines on, default “integer” scaling used. This is the most accurate aspect ratio, but it leaves a black border of unused pixels around the screen.

    Andrew Cunningham

  • Scanlines on, Integer+ mode used. This eliminates the black border and, to my eyes, looks just fine on the Pocket’s screen and makes the effect of the scanline filter easier to see.

    Andrew Cunningham

The Trinitron filter looks good on the Pocket’s screen, but it’s subtle; you may appreciate the scanline effect more and notice its downside less if you’re playing while connected to a TV with the Analogue Dock. And at least on the NES and SNES cores I tested it with, it has the undesirable side effect of shrinking the game picture down on what is already a fairly small screen. This default setting can be tweaked without visibly degrading the image quality, at least not to my eyes; just switch from the default Integer scaling mode in the display settings to Integer+.

The screen filters are probably the most interesting and requested new feature for the Pocket, but both firmware updates have many other smaller fixes and additions. Firmware version 1.2 fixes numerous issues with sleep/wake and save states for various games, allows FPGA cores to use cartridge adapters, and lets FPGA cores know when the Pocket is in a dock; when docked, it also adds support for additional controllers and fixes issues with others. Version 2.0 adds support for custom color palettes for Game Boy games, allows FPGA cores to switch aspect ratios when docked, and fixes a “video issue with some openFPGA cores and resolutions” when docked.

To update the Pocket’s firmware, connect the device’s microSD card to your computer and drop one of the firmware update .bin files into the root directory (make sure you delete any older firmware files first since the Pocket won’t delete old update files once it’s done with them). Next time you boot the console, it should install the firmware update and reboot. As usual, when performing any software or firmware update, it’s best to ensure the console is fully charged or plugged in before you start the process.

Flurry of firmware updates makes Analogue Pocket an even better retro handheld Read More »