boot.asm6502 · ca65
  1. ; Authorship emerges from the performance rather than preceding it.
  2. ;
  3. .com $8000
  4. reset: LDX #$22 ; 34 projects loaded
  5. JSR play ; 13 run right here in the browser
  6. JSR map ; trace how they connect
  7. JMP projects ; browse everything ↓

projects // newest first

filter:
  • $C140 turfmasterGame
    The TurfMaster Pro dashboard, with the site map, sprinkler head table, zone settings, hydraulics and weather panels

    TurfMaster Pro

    An overly complicated lawn and irrigation management game. Keep a Denver yard green from April to November with a sprinkler system installed by "a guy", without going broke or getting fined by the HOA.

    ▶ Playable2026

  • $B670 streetkombatGame
    Mid-fight on Blanka's Brazil stage: Mortal Kombat's Raiden throws a high kick at Street Fighter II's Blanka, with the MK and SF health bars and a timer of 83 above them

    Mortal Kombat vs Street Fighter II

    A browser fighting game where the SNES casts of Mortal Kombat and Street Fighter II meet. Every sprite, stage, song and voice is read from your own ROMs, with a fighting engine written from scratch.

    ▶ Playable2026

  • $F2A0 supersonicGame
    Sonic running across a row of bricks and used question blocks in World 1-1 of Super Mario Bros., with a goomba below and the HUD reading SONIC 000000, WORLD 1-1, TIME 391

    Super Sonic Bros.

    Sonic the Hedgehog running through the original Super Mario Bros. levels with Sonic 1's physics. SMB's own code runs on a 6502 interpreter, with Sonic hooked in over Mario's routines.

    ▶ Playable2026

  • $E230 hyrule3dGame
    First-person on the overworld just north of the starting screen: a red Octorok spits a rock down a sandy path between walls of green tree blocks, with the wooden sword in hand and the NES status bar above

    Hyrule 3D

    The original NES Legend of Zelda in first person. The overworld, all nine dungeons, caves, enemies and dialogue are decoded at runtime from your own ROM and built into 3D.

    ▶ Playable2026

  • $83D0 dungeonremaster2Game
    The remake's renderer in the opening cave, facing a champion's recruitment mirror, with Torham's party panel and movement arrows around the viewport

    dungeonremaster2

    A from-scratch Rust reimplementation of the 1994 DOS game Dungeon Master II, built from my own reverse-engineering notes. Bring your own copy of the game data.

    ● In progress2026

  • $AF50 ascension-bufferGraphics
    Ascension Buffer promo image

    Ascension Buffer

    A walk through rendering history. One world moves from a 320×200 affine-warped renderer through lightmaps, Blinn-Phong, PBR, volumetrics and GI to something uncomfortably real. Rust + wgpu.

    ● In progress2026

  • $DA70 bdm-coversMusic
    Album cover: a Castlevania II-style night scene with a dialogue box that swears about the curse, captioned ManVsMIDI, The Black Dahlia Murder Covers, Strict Nintendo 2A03 Audio

    What a Horrible Night to Have a Curse

    Fourteen Black Dahlia Murder covers played strictly on the NES's 2A03 sound chip. Two pulses, a triangle, noise and DPCM drums, rendered from real NSF code by viper.

    ▶ Playable2026

  • $B800 viperMusic
    viper editing a phrase of stress_melodeath.vip, with neighbouring phrases shown dimmed above and below and a :gen euclid command previewing five DPCM hits before it runs.

    viper

    A vim-keyed NES chiptune tracker for the terminal that compiles songs to real NSF files, plays them through an emulated 2A03, and can rip music back out of NSFs and cartridges.

    ● In progress2026

  • $D4B0 brambleExperiment
    Bramble's framebuffer console in QEMU after its init program spawns and kills two workers, with matching before and after graph counts and the line "a program made processes, endpoints and grants, and left no trace"

    Bramble

    A hobby x86_64 kernel in no_std Rust that keeps all of its state in one typed graph. Processes, memory, capabilities and wait queues are nodes and edges, and a running kernel can be dumped, checked and diffed.

    ● In progress2026

  • $C1F0 collusion-wikiExperiment
    Force-directed network of 613 agent handles in the coordination core, coloured by community

    collusion-wiki

    A network analysis of the collusion.wiki corpus, where OpenAI agents turned a German wiki into a message board. Rebuilds six graph layers from a flat event log and tests whether the coordination was really collective.

    ● Write-up2026

  • $EB60 evonetExperiment
    Grid of line charts showing evolved parameter means over 2000 ticks for each topology, defender and mixing combination

    EvoNet

    An agent-based simulation of an arms race between self-replicating spreading agents and a defender, across three network topologies. 330 reproducible runs and a paper-style write-up.

    ● Write-up2026

  • $C6A0 mario3dGame

    mario3d

    A byte-exact port of Super Mario Bros. World 1-1 from 6502 assembly to TypeScript, verified against a reference emulator every frame, with a button that switches the whole thing into 3D.

    ● In progress2026

  • $9D50 blitTool
    The blit editor with a pixel wolf on the canvas, tool panels, layers and timeline

    blit

    A native pixel art editor in Rust, in the same space as Aseprite and Pixelorama, with a command line and Rhai scripting so a sprite can be a build step.

    ● In progress2026

  • $C2D0 lifeGame
    A life at age 34: seven condition meters, traits such as "educated" and "worn smooth", a log of terse grey and red lines, and panels of actions for yourself, people, work, keeping going and money, with $67 on hand and $76 owed

    LIFE

    A stark idle game about staying alive. It starts with two meters and one action (cry), grows into rent, debt and three kinds of work, then contracts again in old age. It tells you less than it knows.

    ▶ Playable2026

  • $F7B0 cornermanTool
    Round 1 in progress at 2:56, with the combo 1-2-3-2 called out in red under the clock

    Cornerman

    A boxing round timer for your phone that calls out combos while you work. It has a bell, a wood-block warning near the end of each round, and spoken punch numbers. No backend, nothing to sign up for.

    ▶ Playable2026

  • $BD10 insert-disk-2Experiment
    A blue DOS installer for a generated game called QUEST HARBOR, paused 11% in with a dialog asking you to insert Disk 2 of 9 into drive A:

    INSERT DISK 2

    A web page that recreates installing a 1990s PC game under MS-DOS, from the BIOS beep and the IRQ/DMA settings to the "Please insert Disk 2 of 9" prompt. It invents a new fake game on every load.

    ▶ Playable2026

  • $D120 cubeTool
    The Trainer drilling a T perm on the virtual cube: a 3D cube set up with the case, the algorithm and setup moves revealed below, and the attempt in progress

    Cube Trainer

    A Rubik's cube training web app that talks to a GAN smart cube over Web Bluetooth. Timer, algorithm drills, recognition quiz, solve replays and a 3D mirror of the cube in your hands.

    ▶ Playable2026

  • $E950 phonyhawkGame
    Phony Hawk's Faux Skater cover art: a pixel-art skater with a purple mohawk mid-air over a blurred skatepark crowd

    Phony Hawk: Faux Skater

    A small 3D skateboarding game in the browser. It has four themed parks, a grindable edge on every flat surface, combo multipliers, a cop who can't catch you in the air, and a synthesized ska-punk soundtrack.

    ▶ Playable2026

  • $CB90 wyrmfallGame
    Wyrmfall title art, a black dragon over a field of fallen knights and gold

    Wyrmfall

    A dark-fantasy survivors-style game for the browser. You are the dragon, adventurers keep coming for your gold, and the Dragonslayer King arrives at 7:00.

    ▶ Playable2026

  • $C5C0 claudegoblikonExperiment
    Claudegoblikon logo, a grinning green goblin head over an orange starburst with dripping lettering

    Claudegoblikon

    A Claude Code plugin that tells Claude, on every prompt, to work goblins, gremlins, raccoons, trolls, ogres and pigeons into its answer. Parity with ChatGPT's goblin phase, achieved.

    ● Write-up2026

  • $8900 robTool
    The top of the generated 1942.html page: a short preamble about the machine-generated disassembly and Game Genie codes, then the iNES header box and the named NES hardware registers

    R.O.B. (Reverse-engineering Opcode Buddy)

    A 6502 disassembler for NROM NES games that writes one hyperlinked HTML listing, plus a scripted-emulator harness for discovering what RAM bytes and routines actually mean. Developed against Capcom's 1942.

    ● In progress2026

  • $8490 rommageExperiment
    rommage's clustered HTML report from a 600-candidate Super Mario Bros. search: the clean 1-1 baseline frame above the top-ranked Game Genie codes, whose frames show garbled tiles, recoloured levels and corrupted HUDs

    rommage

    Brute-force search for NES Game Genie codes. Patch a byte, run the game, compare the frames against a clean run, and keep the codes that change things without crashing.

    ● Write-up2026

  • $80C0 exhumed-princeExperiment
    All 241 Prince of Persia animation frames decoded into a sprite atlas

    Prince of Persia Apple II: Modern Port Experiments

    Two experiments on Jordan Mechner's 6502 source for Prince of Persia. A transpiler that turns the animation bytecode into a Rust crate, and a wave function collapse generator for new levels.

    ● Write-up2026

  • $F0B0 make-no-mistakesExperiment

    make-no-mistakes

    A Claude Code plugin that appends "Make no mistakes." to every prompt you send. That is the whole plugin.

    ● Write-up2026

  • $8EE0 picrosshGame
    picrossh mid-game on a 10x10 puzzle: the top five rows of a heart filled in teal, empty rows crossed out, and the cursor partway through row six.

    picrossh

    A nonogram (picross) puzzle game for the terminal, written in Rust with ratatui. Thirteen hand-made puzzles, all checked to be solvable by line logic alone.

    ● Archived2026

  • $CBA0 counterpunchExperiment
    A frame from the project's stable-retro environment: Little Mac lands a punch on a reeling Glass Joe at 1:09 of round 1, under a random policy

    Counterpunch

    A PPO agent that learns NES Punch-Out!! from raw pixels. After about 10 million steps it knocks out Glass Joe in roughly 16 seconds of game time and is starting to land punches on Von Kaiser.

    ● In progress2026

  • $ADC0 doom-claudeTool
    The DOOM-CLAUDE Monitor window showing a bloodied DOOM Guy face, session token and cost totals, a budget bar and a combat log

    DOOM-CLAUDE Monitor

    A small Electron app that reads Claude Code's local session logs, estimates what the session would cost at API rates, and shows DOOM Guy getting progressively more beaten up as you approach your budget.

    ● Write-up2026

  • $ACC0 societyTool
    Society dashboard with the five persona cards (Aria, Rex, Nova, Max, Sage) on the left, the welcome message and command list in the conversation pane, and a /debate command typed but not yet sent.

    Society

    A terminal app where five persistent Claude personas answer questions, debate in rounds and get a facilitator to write up the consensus. Python, Textual, Anthropic SDK.

    ● Archived2026

  • $E790 pxlPixel art

    pxl

    A command-line pixel art generator. Describe a sprite in plain English and Claude returns it as a grid of hex colours, previewed in the terminal and saved as a transparent PNG.

    ● Archived2026

  • $AD90 shellscapeTool
    shellscape showing the Wikipedia article on the Nintendo Entertainment System in reader mode, with the Famicom logo and a photo of the console drawn as colour Unicode block art by Chafa.

    shellscape

    A terminal web browser in Rust. Parses real HTML, lays it out as styled text, and draws images as colour Unicode art via Chafa, or as actual pixels on terminals that support it.

    ● Archived2026

  • $EF10 conclaveTool
    A terminal session that prints a small Conclave program, then lowers, seals, packs and runs it live against two URLs, printing the content hashes from each step.

    Conclave

    An intent-first workflow language for AI agents. Programs lower to a canonical plan graph, get sealed against content-addressed capabilities, and run on a deterministic scheduler with a reproducible trace. Rust.

    ● In progress2026

  • $F2F0 gzdoom-crosshatchGraphics
    Doom gameplay rendered as black-and-white cross-hatching

    GZDoom Cross-Hatch Shader

    A non-photorealistic post-process for GZDoom that turns scene brightness into pen-and-ink hatching, with optional Sobel outlines and every knob exposed as a CVar.

    ● Write-up2026

  • $D380 newtype-logicGame
    Mission complete: the solved 15×15 grid revealed as a pixel RX-78-2 Gundam, with the debriefing below

    NewtypeLogic

    Gundam picross. Decode Federation and Zeon transmissions one grid at a time. Same engine as A Space Between Numbers, more fun.

    ▶ Playable2026

  • $CD80 space-between-numbersExperiment
    Constraint 03 part-way through: an 8×8 grid with the clues for completed lines greyed out

    A Space Between Numbers

    A constraint puzzle that keeps notes on how you solve it. Emptiness insists on form.

    ▶ Playable2026

map // hover a node to trace its links · full view

map34 nodes · 73 links
linked shared tags game graphics music experiment tool pixel art