Analogue Pocket’s 1.1 update already paying dividends: jailbreak, Neo Geo core

No, we did not have “Neo Geo as the first community development for Analogue Pocket” on our FPGA bingo board.
Sam Machkovech

A major update to the portable, retro-minded Analogue Pocket gaming system landed on Friday, and its new “OpenFPGA” features are the highlight. Thanks to last week’s “1.1” patch, anyone in the open source development community can build hardware-emulation “cores” to make Pocket mimic nearly any gaming and computer system up until the early ’90s, if not newer than that.

Our chat with Analogue’s CEO left us wondering exactly how OpenFPGA would work, but we didn’t have to wait long to find out. By the end of Friday, the system was essentially “jailbroken” as far as its support of “Game Boy”-branded games was concerned. And things got even spicier on Monday morning with the surprise emergence of a core that supports a system far more powerful than either the Game Boy or Game Boy Advance.

Ladies and gentlemen… Pocket is floating in space

The physical cartridge slot on Analogue Pocket supports any game with Nintendo’s Game Boy branding, up to the Game Boy Advance, and that’s the obvious selling point for the system compared to something like an emulation box. If you’re the kind of gamer who prefers physical media but wants modern hardware perks, Analogue Pocket is arguably the system for you.

Yet even owners of cartridges may prefer skipping physical media in some cases, especially to add convenience to a portable system, and that goes doubly for use cases like homebrew or Japanese games with community-developed English translations. Thus, since my Analogue Pocket review was published, interested buyers commented whether the system might receive a jailbreak—a way to skip physical cartridges and instead play ROM files loaded onto the system’s microSD slot.

Hours after my Pocket 1.1 article was published, the answer arrived in the form of a pair of downloads at GitHub. These files are cores for Pocket’s OpenFPGA system, with one supporting Game Boy and Game Boy Color game files and the other supporting GBA game files. Put these cores into a microSD card, then put compatible game files into appropriate directories on the same card, and presto: Analogue Pocket will now play Game Boy-branded games, no cartridge required.

These files’ origins are dubious; they appeared on a new GitHub account almost immediately after 1.1 went live—guaranteeing that its creators had some form of early access to Analogue’s development environment prior to the launch. (The accounts refer to a pair of British psychedelia bands, Spacemen 3 and Spiritualized, which is certainly an interesting identifier.) One of the related accounts confirmed that it additionally had access to a slew of Pocket-formatted image files that had previously only been available to members of the press, designed to make the 1.1 update’s “Library” system look nicer. The latter account did not identify itself beyond saying its owner is “an FPGA engineer,” so it’s unclear if these developers were part of the Analogue Pocket development process—though one claim that its cores had been “heavily tested for months” implies a very cozy relationship with Analogue as a company.

The biggest catch at this point is that these cores won’t function without transferring “BIOS” files from Game Boy and GBA systems. When you use a cartridge on Analogue Pocket, you’re playing these games with a BIOS file independently developed by Analogue—and that’s the reason you don’t see “Nintendo” or “Game Boy” splash screens before playing those games. (Those brief splash screens were part of Nintendo’s original BIOS systems.)

Additionally, the new GB and GBA cores skip the coolest visual processing options built into Analogue Pocket, which exploit the high resolution of Pocket’s panel to add LCD-styled effects to its modern IPS screen. The anonymous developer behind these cores claimed that these filters would come to the GB, GBC, and GBA cores once “an API update from Analogue” goes live.

Finally, Windjammers on the go

For anyone lucky enough to own the sold-out, back-ordered Analogue Pocket, both new cores work as advertised, and the same goes for an even more impressive development from the FPGA development community: a working Neo Geo core on Analogue Pocket.

On Monday, Australian engineer Murray Aickin, who previously posted retro gaming-minded tools onto his GitHub page, went through Analogue’s OpenFPGA development portal over the weekend and figured out how to port a working FPGA core from the popular MiSTer ecosystem to Analogue Pocket. Aickin’s first project is a port of an open source Neo Geo core codebase maintained by a French engineer who goes by the alias Furrtek, which itself has dozens of “open” issue reports.

Considering how quickly this port was completed, it’s unsurprising to see an “alpha” tag on this first Neo Geo core for Analogue Pocket, along with many disclaimers and warnings. Some games won’t boot; others cough up significant audio errors—particularly one of the Neo Geo’s sound channels being dedicated to a screeching tone for the entirety of some games. Also, the process of booting Neo Geo ROM files on this Pocket core is currently burdened by a cumbersome menu. It requires scrolling through a full list of game directories six times in order to properly launch each separate file into Pocket’s memory.

Still, when playing any Neo Geo games that Aickin recommends as “playable,” the results range from entirely accurate to imperfect but solid. A few entries from the popular Metal Slug series work impeccably. The drift-heavy retro racing of NeoDrift suffers from a smidge of slowdown. The demanding shoot-’em-up awesomeness of Pulstar is brutal on Analogue Pocket as far as frame rate is concerned, but it still looks gorgeous on the screen and feels awesome to play. And one of my all-time favorite sports-action games, Windjammers, appears to run on Pocket without a hitch, in spite of it not being on Aickin’s list. All of these games, by the way, support two-player mode when connected to Analogue Dock.

Although this Neo Geo core is incomplete, it exposes a potential issue with Analogue Pocket’s specs. Some massive Neo Geo ROMs, like King of Fighters 2003 and Metal Slug 3, require as much as a 128MB memory module on a MiSTer kit, which exceeds the roughly 96MB of Pocket’s onboard RAM. And attempts to load those large ROMs on Pocket’s early Neo Geo core turn up an apparent memory issue, as the resulting error message reads, “File ID [3] too large.” Even so, Aickin believes that this could be corrected by targeting how Pocket’s FPGA emulates the Neo Geo’s internal “System FIX” ROM.

Should this issue be sovled, it would go a long way toward bolstering Analogue’s claims that Pocket’s hardware is tuned to exceed average MiSTer systems on a hardware-emulation front. Even if not, Aickin’s effort to translate an existing MiSTer core and get it up to decent speeds and game compatibility in such a short time seems to settle a major point that everyone in the FPGA development universe can get behind: minimal fuss and muss to bring existing developments to another platform. Ars Technica’s retro-minded brain trust appreciates how FPGA boards and hardware emulation can add performance, button-tap latency, and accuracy to the retro gaming ecosystem, and we hope this seemingly nimble interplay between code for MiSTer and Analogue Pocket can help this particularly nerdy development niche.

Leave a Reply

Your email address will not be published. Required fields are marked *