RROBINARCADE Publish a game

ROBINARCADE

An arcade whose cabinets are contracts. Every game here lives in the runtime bytecode of its own contract on Robinhood Chain — real 4 KB Atari 2600 ROMs, with the 6502 that runs them a contract as well, alongside cartridges written in JavaScript. No IPFS, no CDN, no game files anywhere: press play and the bytes come off the chain.

The shelf is a contract too, and it is open. Anyone can put a game on it, nobody can take one off, and the page you are reading asks the chain what is there rather than a database.

Open the arcade →

Published on chain Robinhood Chain · chain 4663
Cartridge #0001
0xf368a5e611d11506ae823774d4b527b2e934fe66
created by 0xf1a088ac5a4cbc2d7e60cdf57fd9ba4d0fa6f43214da119cc1b1c6b36595c700
in block 63,964,788
sha256 61d10c8ebbf153432085d2ec0ab09ae79ff5cad8900bb5ea2a4ab9e81e8973ba
Cartridge #0002
0x27bfc127ffab77f304664af6cb3187d2ae697b54
created by 0x665642f084e0322065668fb15837ed096596a3717ebf718c4e7be1db9614fe54
in block 63,964,725
sha256 e956e8a60cc2b894500fcd8d6efaa544c5fe882a326fba9092626f92cc122e50
The console
0x345cb8d84e00950ab7310eb22c9b02c929594291
created by 0x3c958da57e7772950a67ac6ee6eb6fe97c74ce869c37cc78ea68e60ccfc24218
in block 63,964,681
sha256 64427ef4a1664dbc25e0ffc5c34bf87fc5e306b6fbb5426c49334a11906371a2

Check it against the chain yourself, without this page and without an explorer: node scripts/cartridge-attest.mjs --network robinhood

NEXT ON THE MARQUEE

104 more cabinets, already cleared

A public-domain library of arcade games, every one of them free to publish and most under 4 KB, waiting on one more console contract. Openly licensed Atari homebrew behind it. And a shelf that takes anyone's cartridge, not just ours.

Two cabinets are lit tonight. Come back.

#0001
3,685
bytes of contract code
#0002
918
bytes, a 4 KB ROM
Console
5,666
bytes, 6502 + TIA
To play
free
reading a chain costs nothing

What is coming to the shelf

Two cabinets tonight, and a queue behind them. Here is the whole queue, with what is already true marked as such — a roadmap that does not say which parts are finished is a wish list.

working
The console runs cartridges it did not write It used to handle only our own ROM. It now implements the undocumented 6502 opcodes that hand-written 2600 code leans on, so a foreign 4 KB image boots, keeps a real 262-line frame, and answers the joystick.
in progress
Openly licensed Atari 2600 homebrew Games whose authors put the source under a licence that allows it — MIT, GPL, public domain. Each one is assembled from its source here, so the licence is checkable and the build repeats.
in progress
The registry, on Robinhood Chain The shelf as a contract rather than a list in this page: anyone lists a cartridge, nobody can delist one, and every arcade reading that registry sees the new cabinet at once.
next
A CHIP-8 console, and 104 games with it A second emulator contract, and a library of programs released under Creative Commons Zero — public domain, no permission needed, most of them under 4 KB. One console contract, then a cabinet per game.
next
More games written here The assembler, the console and the deploy path all work end to end. A new cartridge is one transaction; what takes the time is making the game good.

What will not appear: the commercial 2600 catalogue. Those games are still owned by someone, age is not a licence, and a contract cannot be edited or taken down once it exists. Everything on this shelf is either ours or carries a licence that permits it.

What is actually going on

A contract's code is a byte string the chain keeps forever and hands to anyone who asks. Nothing requires it to be a program. Put a game there and the chain keeps the game forever and hands it to anyone who asks.

Deploying one is a single transaction whose input is eleven bytes of init code followed by the compressed game — no Solidity anywhere in that path. Playing one is eth_getCode, a decompressor, and a sandboxed frame. Nothing is written to the chain when someone plays, which is why it is free.

The rest of it

The whole shelf, read from the registry contract — every cartridge anyone has listed, on chain, with no server holding the list.
The byte layout, the init code, the beam-racing kernel, the emulator, and how to check any of it yourself.
Both games with the payloads carried in the page. No chain, no node, no network — it fetches nothing.
Connect a wallet, sign one transaction per cartridge. No private key in a file, and the page never sees one.
Point the loader at a contract and it will tell you whether a cartridge lives there, and show its bytes on the way in.