r/claude • u/SpeekSecure • 8h ago
Showcase I used Claude to reverse-engineer a 30-year-old Super Mario 64 texture that nobody could read, and found what it says
galleryThe plaque on the star statue in Super Mario 64's castle courtyard is a single 32×32 texture. The letters are 3 to 5 pixels tall, and fans have argued about it since the 90s ("L is real 2401", "Eternal Star", "A Secret Star"). No upscaler can read it, because the information just isn't in the pixels.
So instead of trying to read it, I had Claude (Opus 5.5) rebuild how it was made.
WHAT CLAUDE BUILT
- A forward model of the 1996 asset pipeline. Type the text in a font on a small canvas, resize it to 32×32, add blur and gamma, and lay it on the stone. Every step has settings: canvas size, point size, letter spacing, kerning, resize filter, blur and gamma.
- A GPU search (PyTorch) over those settings and about 530 fonts an artist could have had in 1996, scored against the real pixels extracted from the ROM.
- A dictionary search for the second line: it tests combinations of about 17,700 English words, then re-renders the best candidates exactly.
- A test harness: fake plaques with known hidden text, to measure how often the method gets fooled.
- The open-source package, the figures and a 40-page report.
THE ANSWER
The plaque says "Eternal Star / We hope so", set in Palatino Bold Italic. The best match is Adobe's original 1990 font file, not the game's own font.
"Star" comes out first of 27,122 words and "hope" first of 12,556. A blind search over 17,700 words returns "We hope so" as the top result on its own. "L is real 2401" fits twice as badly.
The artist's recipe: a 160×128 canvas, 23 px type, bilinear resize, a slight blur and gamma 1.8.
WHAT I LEARNED WORKING WITH CLAUDE ON THIS
- Simulate, don't enhance. For any low-res game asset, rebuilding the pipeline forward and searching its settings beats any upscaler. Claude is great at turning "how would a 1996 artist have done this?" into code.
- Make it build the ground-truth test first. The fake-plaque harness kept everything honest. Without it, every nice-looking fit felt like proof.
- Ask for held-out checks. Claude once claimed a test had settled "Star" vs "star"; it hadn't, and the held-out numbers showed it. A bug also let overlapping words count the same pixels twice. Re-running against known answers caught both.
- Keep every result as data. The figures and the report regenerate from the result files, so fixing one thing never leaves stale numbers behind.
Code, data and the report are on GitHub: https://github.com/supermochi64/sm64-plaque-decode. You need your own ROM to extract the texture; no Nintendo data is included. Happy to answer questions about the workflow.
