Engineering log
Notes from the workbench.
A running record of what gets built here — what each thing does, what it currently scores, and the stories worth telling from building it. Most of it is Game Boy work: an emulator, a neural player, an evidenced cartridge atlas and three more. Three pieces aren't — Glyphsmith is the hand-drawn alphabet that drew all of their logos, ShowReel is the renderer that turns their footage into a film, and AsciiWorldEngine is a walkable ASCII city with nothing to do with any of it. Most of the source repositories are private; this is where the interesting parts are visible.
The projects
What each one is, what it does, and where it stands today.
Standing pages
Three pages that grow rather than get published once.
Gen 1 cartridge
Cartridge finds
Things the cartridge actually does. The player and rival are already called NINTEN and SONY before either naming screen runs; the learnset table is not indexed the way anyone expects; a trainer sees straight through walls. Each entry with its addresses and its mechanism.
AgentGB
Agent progress
From a random walk where nobody leaves the first town, to a screen-only student completing a sixteen-link chain 145 times in 150 cold boots. The arc in order, with the number that was true at each point, and the ledger of what is still not true.
TerminalGB
Performance
414× real time on one core, 3,735× on twenty, and a same-session comparison against two other emulators. Every figure carries the core, the engine and the load average, because on this box the same binary reads 56% apart between a quiet machine and a busy one.
Writing
One story each.
-
The chiptune that outgrew its blog post
A demo video needed music with no licence to worry about, so a 114-line Python script wrote its own chiptune. The captain asked why a generator that times itself to a video lived beside a blog asset instead of inside the renderer — and eighteen minutes later, it didn't.
-
The number that could have sunk it
Could Remotion open on Pokémon Blue's title screen, pull back to the whole world map, and burst out real battle footage from where it happened? Two of the three ingredients already existed. The one real unknown came back at 4.3 milliseconds a frame.
-
The one clean miss
The captain wanted the display style of a specific YouTube editor. Six of the seven techniques it needed already existed. The seventh was small, and it still isn't built.
-
Every failure was the same starter
A twenty-six agent swarm scored 88.5% and looked healthy. Watching the film instead of reading the table showed all three failures were the same starter Pokémon — one chance in 2,600.
-
The wall you hit walking home
An agent learned the walk to the shop perfectly and could not learn the walk back. Two measured rates that sum to a hundred are the signature of an impossible task, not a hard one.
-
The day that added nothing
Five identical training runs scored 100, 92, 92, 85 and 77 per cent. Every ablation published before that lacked the control.
-
293 runs stopped on the same text box
A nine-link chain collapsed from 300 of 300 to 7. The student was doing exactly what its supervisor had told it to do.
-
The one failure in twelve thousand
Four certification cells of 3,000 attempts produced exactly one failure. Somebody was standing on the corner tile, and stayed there for 4.7 minutes of game time.
-
Reading the screen without reading the letters
At 40×36 no letterform survives. Six in-game messages are still 97.2% separable — and the first two experiments that said otherwise were both too small to say anything.
-
271 colours in a four-shade picture
Half-block terminal output was blurry on GNOME terminals and crisp on WezTerm. The cause was a hard-coded smoothing filter four lines down in a dependency — and doing the sampling ourselves is cheaper.
-
The transfer controller owns the bus
Object DMA is usually modelled as a copy. It is also an address-bus conflict, and the sprite scan is on the other end of those lines.
-
The red we refused to fix
One sweep would have turned a failing test green. Taking it would have moved every Color cartridge's divider on the evidence of a single row.
-
The double-speed bug that cost 2,304 pixels
A register-commit trick worth exactly one dot of time vanished when the CPU clock doubled — and a Color game drew a wrong stripe across the screen.
-
TACKLE is 95 per cent and we said 94
Nothing failed. A number had been computed from a belief rather than read from the cartridge, and it sat in four files for as long as they existed.
-
The ledge in Viridian City
Seventeen runs of six hundred died on the same row of the same town. A flood fill said the tile was reachable, and the flood fill was right.
-
Let go of the D-pad
One line took a cartridge map capture from 113 maps to 216. A door is a warp on both sides, and a player still holding the direction walks straight back out.
-
The door rule
The cartridge says where outdoor maps go and says nothing at all about interiors. Placing 190 rooms is a decision, and it was settled by measurement.
-
A hundred checks in one session
A new check found a real bug on the day it was written — one that thousands of rows across five public suites could not see, because of the shape they have.
-
Three ways this cartridge was wrong about itself
A verdict decided by which checks failed above it, a subroutine that ate a measurement, and two checks that skipped on every console, forever.
-
Four bugs, one line each
A dropped field, a RETURNING clause that returns the wrong thing, a bigint that arrived as a string, and a grid that could not get narrower than 16rem.