omega-zero

Home

A Game Boy-centric frontend for Anbernic H700 handhelds running BaseOS. It plays GBA, GBC and GB games, and SNES and PlayStation games too, on a shelf of cartridges and discs that go down into the handheld when you play them.

Made for the RG35XX SP first; the rest of the H700 family follows.

The shelf

Game Boy carts in their own plastics, SNES carts and PlayStation discs, with real label scans. The one you are on floats and sways, and goes down into the handheld as the game comes on like a tube TV.

Settings

On START, in windows in the style of Mega Man Zero's menus that slide from screen to screen.

Five cores

mGBA and gpSP for the GBA, Snes9x and Supafaust for the SNES, chosen per cart, and PCSX ReARMed for the PlayStation.

Network

Home Wi-Fi with SSH and SFTP, network time, and cart labels from ScreenScraper.

Screens

The shelf: a row of GBA carts with Emerald in the middle, the top bar with Wi-Fi, ssh, the clock and the battery, and the bottom bar with SELECT CONTROLS, a GBA pill and START SETTINGS
The shelf. The cart you are on floats and sways; A sends it down into the handheld and the game starts. SELECT opens CONTROLS, START opens Settings.
Emerald rising a little, then pulled down out of the bottom of the screen, and the game's screen coming on like a tube TV
A cart going in: it rises a little, is pulled down out of the screen into the handheld, and the game comes on like a tube TV.
A test pattern standing in for a GBA game, filling the width of the screen over the console's body with the GAME BOY ADVANCE logo, and the VOLUME gauge over its top
In a game. GBA fills the width of a 640x480 screen through a sharp scaler, over the console's body; Game Boy stays at 3x through an LCD mask. The SNES is drawn at twice its size and the PlayStation at 4:3, both through the sharp scaler.
Settings: a window with two panels, CONFIGS (Fast Forward 6X, Fast Forward Sound, Colour Correction, Rumble, Labels) and GENERAL (Date and Time, Network, Bluetooth, Theme, About), over the grid
Settings, on START, in the style of Mega Man Zero's menus. CONFIGS holds Fast Forward, Fast Forward Sound, Colour Correction, Rumble and Labels; GENERAL holds Date & Time, Network, Bluetooth, Theme and About.
CONTROLS: what every button does on the shelf and in a game, in two columns on one panel
A tap of SELECT on the shelf lists what every button does, on the shelf and in a game, on one panel.
Network: Wi-Fi, Network Time and SSH all ON, and AVAILABLE NETWORKS listing Home (connected), Café Wi-Fi, Upstairs 5G and PrinterSetup with their padlocks and signal
Network switches Wi-Fi, Network Time and SSH, ON or OFF; Y on one opens its panel, and X scans. Each network shows its signal, a padlock if it has a passphrase, and CONNECTED, JOINING or SAVED.
Bluetooth: the radio ON, and DEVICES listing a gamepad (connected), headphones (paired), a keyboard and a smart band
Bluetooth lists the devices paired, then those it finds. A pairs a new one and connects it; Y forgets a paired one.
Theme: Background (Plates, lit), Motion Moving, Colour Night and Font Bold, over the plates pattern
Theme picks the background's pattern, its motion and its colour, and the font of the bottom bar's big words, Bold or Thin.
Settings again, in Amber: the window, its panels and the bottom bar in Mega Man Zero's own orange and brown
The menus and both bars take their colours from Theme's colour. Night is grey; Amber is Mega Man Zero's own.
Halfway from the shelf to Settings: the carts going out to the left as the Settings window comes in from the right
Every move between screens slides, over a background that keeps moving. From the shelf, the carts go out to the left as Settings comes in from the right.

Install

omega-zero runs on BaseOS, a minimal Linux for H700 handhelds. You need the BaseOS image for your exact model.

It runs from the card BaseOS is on, in SD1, or from a second card in SD2 beside it.

  1. Download the BaseOS image for your device from the BaseOS releases (for example baseos-rg35xxsp-*.img.zip) and write it to a microSD card with a tool such as Raspberry Pi Imager.
  2. Put the card in the slot marked SD1 (TF1) and power on. BaseOS expands its storage, then says no frontend was found. Power off.
  3. Download the latest omega-zero release, unzip it, and copy the contents of the omega-zero-vX.Y.Z/ folder to the root of the card.
  4. Put your games in Games/GBA, Games/GB, Games/GBC, Games/SNES and Games/PS1. Labels are optional: omega-zero can fetch them itself over Wi-Fi.
  5. Put the card back in SD1 and boot. On the shelf, START opens Settings and a tap of SELECT shows every button.
omega-zero-vX.Y.Z-h700.zip
  omega-zero-vX.Y.Z/      copy its contents to the card's root
  1. Write BaseOS to the card in SD1 as above.
  2. Format a second card as FAT32 or exFAT with an MBR partition table, and copy the contents of the release's omega-zero-vX.Y.Z/ folder to it.
  3. Add your games to the second card and put it in SD2. BaseOS runs omega-zero from SD2 whenever one is there.

omega-zero creates these folders on first boot. Nothing loose at the top of Games/, Saves/, Labels/ or States/ reaches the shelf.

Games/GBA/     your legally obtained games,
Games/GB/      a folder for each platform
Games/GBC/
Games/SNES/    .sfc and .smc
Games/PS1/     .cue with its .bin, .chd, .pbp or .m3u,
               also one folder down
Labels/...     cart labels: a .png named after the ROM
Saves/...      battery saves, per platform
States/...     save states, per platform
BIOS/          gba_bios.bin, gbc_bios.bin, gb_bios.bin
               for the boot animations, and a
               PlayStation BIOS such as scph5501.bin
               (all optional)
Wallpapers/    .png wallpapers for the shelf
Overlays/...   your overlays, per platform
Config/        settings, wifi.conf with the networks
               you have joined, your ScreenScraper account
System/        omega-zero itself, its cores and its
               licences; replaced on every update

A label for Games/GBA/Metroid Fusion.gba is Labels/GBA/Metroid Fusion.png. Per-cart shell colours go in Config/cart_shell.ini, which can also stand a SNES cart in the American shape, ntsc, or the Super Famicom's, sfc.

A PlayStation game on several discs is one game on the shelf: its files named (Disc 1), (Disc 2) and so on are put together, or list them in an .m3u yourself.

Replace the System/ folder on the card omega-zero runs from with the one from the new release. Your games, saves, save states, labels, wallpapers, overlays and settings all live outside System/.

Once Wi-Fi is set up, you can also copy the new System/ over SFTP.

BaseOS runs an SSH server with SFTP. On Settings > Network, the SSH row switches it ON or OFF, and Y on that row shows how to log in: the handheld's address, its name such as rg35xxsp.local, user root, the password and port 22. SFTP uses the same login.

The card omega-zero runs from is /mnt/sdcard, so games go in /mnt/sdcard/Games/GBA and so on. Use any SFTP client, such as Cyberduck, FileZilla or scp.

scp "Metroid Fusion.gba" root@rg35xxsp.local:/mnt/sdcard/Games/GBA/
  • The password is six random digits omega-zero gives root the first time it runs on a card, kept as ssh_password= in baseos.conf at the root of the card in SD1. A password you set there yourself is kept.
  • The name is the model's own (rg35xxsp, rgsp, ...) unless you set hostname= in baseos.conf. If .local names don't resolve on your network, use the address shown.
  • The RG35XX 2024 shares its BaseOS image with the Plus but has no radio.

Controls, overlays, link play, cart labels and everything else are in the wiki.

Supported devices

The main target

The RG35XX SP is the main target, in daily use: omega-zero is laid out for its 640x480 panel, with GBA filling the width.

One build runs on all of them: omega-zero reads the model from BaseOS at boot and lays itself out for its panel.

The RG SP is supported, not yet retested on hardware. The RG28XX's panel is mounted turned, and omega-zero turns it back.

"Untested" means nobody has reported back yet. Own one? A device report is the most useful thing you can send.

A device report

  1. Create an empty file named RUN_PROBE at the root of the card omega-zero runs from.
  2. Boot. omega-zero writes probe-<device>-<date>.txt next to it and deletes RUN_PROBE.
  3. Open a device report with the file attached, and say what worked.

Over SSH, this does the same:

sh /mnt/sdcard/System/probe.sh

Features

The shelf

Solid carts in their own plastics with real label scans. The one you are on floats and sways; tap A and it goes down into the handheld, and the game comes on like a tube TV and resumes from its last save state. Hold MENU in a game to save a state, eject the cart and go back to the shelf.

A SNES game from the USA stands as the American SNES cart, and one from Japan, Europe or anywhere else as the Super Famicom cart, as it was sold. A PlayStation game stands as its disc; one on several discs stands as a stack of them, a gap between each, and the whole stack goes down into the handheld. In a game, SELECT+MENU opens DISC to put another disc in.

The shelf's system, GBA, GB, GBC, SNES or PS1, shows in a pill in the bottom bar; L1 and R1 change it, and Up and Down jump to a letter. Game Boy carts stand at 80%.

Settings

START on the shelf opens Settings, in windows in the style of Mega Man Zero's menus: the carts go out to the left as it comes in from the right. Inside Settings every screen slides, over a background that keeps moving.

CONFIGS holds Fast Forward, Fast Forward Sound, Colour Correction, Rumble and Labels; GENERAL holds Date & Time, Network, Bluetooth, Theme and About.

Theme

Theme picks the background's pattern, its motion and its colour, which the menus and both bars take: Night is grey, Amber is Mega Man Zero's own. It also picks the bottom bar's font, Bold or Thin.

Theme this page

This page takes its colours from the background's too. Pick a row and change it with Left and Right, as on the handheld.

The page drifts like the shelf unless your system asks for less motion.

Highlights

The shelf

Game Boy carts in their own plastics, SNES carts in the American or the Super Famicom shape and PlayStation discs, with real label scans, modelled low-poly and drawn the way a PlayStation drew 3D. The one you are on floats and sways; A pulls it down out of the screen into the handheld, and the game comes on like a tube TV. At power-on, an opening after Mega Man X5's boot terminal fades into the shelf.

Five cores

mGBA and gpSP for the GBA and Snes9x and Supafaust for the SNES, chosen per cart; PCSX ReARMed for the PlayStation, a BIOS of its own built in. GBA fills a 640x480 screen and the PlayStation fills it at 4:3; the SNES is drawn at twice its size and Game Boy stays at 3x.

Pick up, rewind

Resume on boot, save states with a switcher, rewind (not on the PlayStation), fast-forward, and turbo buttons on the Game Boys.

Link play

Between two handhelds over Wi-Fi, for Game Boy and GBA games: Pokémon trades, Advance Wars, Mario Kart and Tetris.

Settings

On START, in windows in the style of Mega Man Zero's menus that slide from screen to screen, over a background that keeps moving: CONFIGS and GENERAL.

Controls

A tap of SELECT opens CONTROLS: what every button does, on the shelf and in a game, on one panel.

Network

Home Wi-Fi, network time, and SSH and SFTP, each ON or OFF. Y on one opens its panel: SSH's shows the login and root's own random password. Cart labels are fetched from ScreenScraper.

Bluetooth

On handhelds that have it: pair a device and connect it, or forget it. Game sound and gamepads over Bluetooth are still to come.

Theme

The background's pattern, its motion and its colour, which the menus and both bars take, and the bottom bar's font, Bold or Thin.

Pixel look

A pixel font, a top bar with the radios, clock and battery, and a bottom bar with the buttons.

Credits and licence

omega-zero is made by .

It is written with Claude, and reviewed and tested by its maintainer.

  • Based on slot by Brandon T. Kowalski (GPL-3.0). The code that hosts the cores, with their saves, sound and input, is still largely his.
  • BaseOS by pvaibhav.
  • Emulation by mGBA (MPL-2.0) and gpSP (GPL-2.0) for the Game Boys; Snes9x (free for non-commercial use only) and Supafaust, Mednafen's snes_faust (GPL-2.0), for the SNES; and PCSX ReARMed (GPL-2.0) for the PlayStation. Their licences and patches, and the source of all but mGBA, ship in System/licenses/.
  • Type is Pixel Code by Qwerasd (SIL OFL 1.1); every icon is drawn as pixel art. The LCD mask is derived from GigaHerz's LCD3x.
  • Cart labels come from ScreenScraper, fetched with your own account.

omega-zero is free software under the GPL-3.0-or-later. This page is drawn with its UI kit.

Game Boy, Game Boy Color, Game Boy Advance, Super Nintendo Entertainment System and Super Famicom are trademarks of Nintendo. PlayStation is a trademark of Sony Interactive Entertainment. Anbernic is a trademark of its owner. This project is not affiliated with any of them.