It’s been a long time since I whipped up a guide or tutorial of my own volition. Bore out of immense frustration over the course of five or so hours, I had to write this story and guide.
On Friday, July 29, 2022, Analogue released the 1.1 beta of Analogue OS for the Pocket. I’ve written my fair share about both the console and the software. This particular release was exciting, giving Pocket owners something. Analogue even broke signature silence and gave the public a development roadmap.
The crucial component of this update is openFPGA, Analogue’s copyrighted and trademarked name for their FPGA platform. The Pocket is finally open for FPGA developers to create or port their own cores1 for the Pocket hardware. This has been the promise before launch. Here’s what I said in my initial impressions:
The Pocket has uncashed checks. At launch, there are no third-party cores, major features are pending on AnalogueOS 1.1, and Analogue’s own promised core support via adapters. The future, like a modern console (or game) is contingent on software support. I’m confident it will be delivered. Heck, the jailbreak could be dropping any day now. It’s still early, but after two years of hype, I was hopeful for more at launch.
Turns out the “jailbreak” was also tied to AnalogueOS 1.1 via openFPGA.
Sometime Friday evening, three openFPGA cores for the Game Boy consoles were released by user spiritualized1997. It’s a rather snappy turnaround from the software release that day. This falls in line with Analogue mythos that FPGA engineer Kevin Horton aka Kevtris releases the Analogue cores under another name, letting users have the same experience while being able to use ROMs. Traditionally this happens much sooner for Analogue’s consoles, not seven months after launch.
I woke up Saturday morning, scrolled through my Twitter feed and saw the news. I was happy! My plans that morning were to work on some Chapter Select production. I decided to fit in adding the cores to my Pocket so it’d be all set up with my games and saves. I thought, “this won’t take long. Move some files to the SD card, boot, bada bing bada boom, new cores!”
That was at 6:00 AM. For three hours straight, I tried to load these cores. Then I kept trying on and off for about two more hours. From reddit to YouTube to developer documentation, I tried to solve my problem. All Analogue-provided instructions were short and lacking: reddit was more helpful, but nothing worked.
So what was my issue? I could not get the Pocket to enter the openFPGA menu. I would be prompted with a QR code that pointed to a “Getting Started with openFPGA” page on Analogue’s site. No feedback from system whatsoever. No detailed official instructions.
Perhaps it’s my career as a technical documentation writer, but this infuriated me. So I’m making the documentation. This process is simple. The troubleshooting should be easy to follow. Shouldn’t be too tough to surpass the current instructions out there.
Current AnalogueOS Version (Updated: 12/15/22)
Current openFPGA Cores (Updated: 12/15/22)
Here’s a table maintained by Josh Campbell of all the openFPGA cores for the Pocket. This table goes beyond my list below.
- Game Boy / Game Boy Color by spiritualized1997
- Game Boy Advance by spiritualized1997
- NeoGeo (Alpha) by Mazamars312
- PDP-1 / Spacewar! by spacemen3
- Pong by agg23
- Sega Game Gear by spiritualized1997
- Sega Master System by spiritualized1997
- SG-1000 by spiritualized1997
- Super Nintendo by agg23
How to install openFPGA Cores on Analogue Pocket
- Make sure the Pocket is updated to at least version 1.1 beta.
- Download the latest software here. Place the .bin file on the root of your Pocket SD card.
- Eject the SD card from your computer and place it in the Pocket.
- Power on the Pocket and the console will load the firmware.
- After the Pocket installs the firmware, power the system down and eject the SD card.
- Pop the SD card in your computer. The file structure should look like this.
- GB Studio
- Download the ZIP file for the core/s you would like to use. Unzip them to a location on your computer.
- Inside the uncompressed folder, you will see three folders: “Assets”, “Cores”, and “Platforms”. These three folders will also be on the SD card, but will be blank at creation.
- Copy or move the files inside the uncompressed folder to the matching folders on the SD card, i.e. move the contents of the “Assets” folder on your computer to the “Assets” folder of the SD card.
- If you are adding the Game Boy cores, you will need to add the BIOS and your ROMs for the consoles.
- Take the BIOS and make sure the name is “ABBR_bios.bin” where "ABBR" is the abbreviation of the console:
- Game Boy is “gb”
- Game Bot Color is “gbc”
- Game Boy Advance is “gba”
- Move the BIOS and ROMs to the respective core’s common folder. This is located inside Assets > common.
- Eject the SD card and pop it back into the Pocket. Select the openFPGA menu and select the core you would like to use.
How to Install the Image Library
The Pocket supports an image library that will show off art for selected games (as of this writing, it is only for physical games). Spiritualized1997 has also provided these files. You can check out their original reddit post here.
- Download the library ZIP from here (Update 12/26/22: The host has changed to Dropbox. The link here has been updated).
- Unzip the files.
- Insert the SD card into your computer.
- On the SD card, navigate to System > Library > Images
- If Library or Images are not present, that’s okay. We will just copy those files over from the uncompressed zip as well.
- Copy over the “GB,” “GBA,” and “GG” folders from the uncompressed “Library Image Set v1.0” zip to the “Images” folder we navigated to on the SD card.
- Eject the SD card and reinsert to the Pocket. Insert a cartridge and start it to see art.
Problem – I can’t get past the openFPGA QR code!
This is what tripped me up for hours. The solution I found was inside the “System” folder on the Pocket SD card. There are these .bin files located there. Two of them had a file size of zero bytes — “corelist_cache.bin” and “cores_cache.bin”. I deleted those .bin files to force the Pocket to make new ones. Upon boot, the files were recreated correctly and the openFPGA menu opened immediately.
Problem – Some of my ROMs are not listed in the openFPGA core! Where did they go?
I noticed a selection of games were missing from my GBA core. Turns out the ones that were MIA had the file extension “.GBA” not “.gba”. The Pocket is case-sensitive to the ROM file extensions. Fix that and the ROMs will appear.
It is great to see the Pocket cracked open now. It was not great to have these issues and no clear help. I’m hoping these instructions will assist you in tapping into the Pocket’s full potential. It is great to finally see Analogue cashing promised checks.
1. Cores is the term for hardware emulated computers or consoles. For example, the Pocket’s official cores at this time include the Game Boy line and the Sega Game Gear.