Game Boy cartridges

Made a Game Boy game with Codex? Publish it on ARCADE.

Your .gb or .gbc file becomes an app on the Apps tab of every arcade. People open it in a browser, on a computer or a phone, and their saves follow them. There is no store to apply to and no account to register.

What your game gets

Plays anywhere

A Game Boy in the browser

The cartridge runs your ROM in a WebAssembly emulator. Phones get a touch D-pad, A, B, Start and Select. Computers use the keyboard or a gamepad.

Saves

Battery saves that follow the player

A game with a battery save keeps it in the player's wallet memory, the same on every device they sign in from.

Every arcade

A card of its own

Stars, comments and tips, a link that opens straight into the game, and a new version that keeps all of them.

Codex, ModRetro and Chromatic are named here only to say what works with what. ARCADE is not affiliated with OpenAI or ModRetro.

From ROM to the Apps tab

A cartridge is two inscriptions from the same account: the game file, and a small page with the app card in its JSON. The emulator is already on the chain, shared by every cartridge.

  1. Have a ROM you can publish. Any Game Boy or Game Boy Color file works: one the Codex plugin for Chromatic wrote from your description, a GB Studio ROM export, an RGBDS build, or anything else that makes a .gb or .gbc. Publish only games you made or have the right to publish.
  2. Check it in the cartridge maker. Open the cartridge maker and choose your file. It reads the header: the title, whether it is for the Game Boy Color, the cartridge type, whether it has a battery save, how many transactions it takes, and whether the header checksum and boot logo are right for real hardware. Nothing is sent anywhere.
  3. Get an account and test coins. Press Join on any arcade. Where the operator has the faucet on, a new account gets Pepecoin test coins. Start on the test chain: everything you inscribe stays on the chain for good.
  4. Inscribe the game file. In the arcade, go to Creator → NFTs → Inscribe one thing, choose the ROM, leave the JSON empty and press Inscribe it. Paste its id back into the maker.
  5. Fill in the card. Name, description, genre, version, players, a family id your versions share, and a cover picture's id if you inscribed one.
  6. Inscribe the cartridge page with its card. Download the page from the maker and copy the card. Inscribe the page under Inscribe one thing with the card in JSON beside the file, from the same account as the game file.
  7. Find it on the Apps tab. When the block lands, about a minute later, open Apps and press Latest. Your game is there on every arcade, and /play/<family> always opens its newest version.

A card looks like this. Only name is required:

{"app": {"name": "Star Catcher", "description": "Catch the falling stars. Beat your best.",
         "version": "1.0", "players": "1", "genre": "arcade", "family": "star-catcher",
         "cover": "<txid of the cover picture>"}}

Try the demo: Star Catcher

Star Catcher's cover: yellow stars falling toward a paddle

Star Catcher is an original Game Boy Color game written for this guide, with its best score kept in battery RAM. Its source builds with RGBDS. It is on the Pepecoin test chain as a cartridge: the game file and the cartridge page, made with the cartridge maker.

Play Star Catcher

Cartridge page 2f9f5ffb…547223e · game file af2adeaa…4969311. Use the arrows, X for A, Z for B, Enter for Start and Shift for Select, or touch or a gamepad.

How the cartridge works

Shared emulator

binjgb, inscribed once

The cartridge page loads binjgb (MIT licence, by binji): its script and its WebAssembly are two inscriptions every cartridge shares. Your inscriptions hold only your game.

Sandbox

Nothing leaves the page

Like every app, the cartridge runs in a sandbox that can load only other inscriptions and the arcade's own scripts. It can't phone home or reach a wallet unasked.

Updates

New version, same card

Inscribe a new cartridge with the same name and a new version. It replaces the old card and keeps its stars, comments and tips.

Publish any HTML5 game · An OpenAI-compatible API for your game · Every app guide

Questions

Can I publish a Game Boy game I made with Codex?

Yes, if it is yours to publish. ARCADE takes any Game Boy or Game Boy Color ROM, whatever made it. Codex, GB Studio and RGBDS all write the same kind of file.

Does it play on a phone?

Yes. The cartridge shows a touch D-pad and buttons, beside the screen when the phone is turned sideways. On a phone with the arcade installed, the game can sit on the home screen with its own icon.

Where are saves kept?

In the player's wallet memory, under the game file's id. They are checked every few seconds and when the page is hidden, and the player gets them back on any device they sign in from.

Is my ROM public once it is inscribed?

Yes. An inscription is public and permanent: anyone can play it and download the file. You can take the card off the Apps tab, but the inscription stays on the chain.

Will it run on real hardware too?

The arcade plays it in a browser. The cartridge maker checks the header checksum and boot logo, so you know whether the same file is ready for a real Game Boy or a Chromatic.

Can I update the game later?

Yes. Inscribe the new ROM, then a new cartridge with the same name and a new version. The new card replaces the old one, and the old version still runs from its own link.