Loading…
TS-C64-001 // COMMODORE 64 · 128

El CID

A Spanish-language text adventure for the Commodore 64 and for the C128 in native mode. Thirty-two rooms painted in PETSCII walk the entire Cantar de Mio Cid, from exile in Vivar to the taking of Valencia. You type what you want to do. The machine understands you with 43 verbs.

YEAR 1081 · 32 ROOMS · THE WHOLE CANTAR
1.0 · FREE · .D64 IMAGEC64 · C128 NATIVE

Rodrigo Díaz de Vivar, exiled. Thirty-two rooms, thirty objects, seventy-six rules and a Spanish parser that understands COGE ESPADA, MONTA BABIECA, RETA INFANTES and DOMA LEON. Seven optional deeds of honour decide which of the three endings you get. And seven ways to die on the way there.

32ROOMS
43VERBS
76RULES
7DEEDS
.D64 IMAGE (C64).D64 DISK (C128)ELCID-128.PRGFULL PRESS KIT
// Preview stationCOMMODORE 1902A · COMPOSITE · 40 COLUMNS
commodore1902A
COVER ARTKoala multicolour bitmap · 10,003 bytes · C128 only
CHANGE CHANNEL · TURN THE MONITOR OFF IF YOU DARE
01 // WHAT IT IS
The Cantar, written for a machine from 1982
C64 · C128 NATIVE

El CID is not a remake and not emulation with nostalgia bolted on. It is a new text adventure, in Spanish, for the Commodore 64 — and for the C128 in native mode, with a bitmap cover and bitmap ending cards. Thirty-two rooms cover the whole Cantar de Mio Cid: the exile, Burgos and the nine-year-old girl, the chests of sand, Alcocer, the oath, the outrage at Corpes and the court at Toledo.

You play it by typing. A Castilian parser with 43 verbs and 184 vocabulary words understands what you ask; seventy-six rules decide what happens next. No health bars, no reflexes: an eight-hundred-year-old story and an honour counter that rises when you do what Rodrigo would have done. Seven optional deeds, three endings, seven ways to die.

The unusual part is underneath. The entire world specification lives in a single 281-line Python file, from which both BASIC builds are generated; a reference model proves the game is winnable, an independent reimplementation of the interpreter is compared against it and reports zero divergences, a linter guarantees the C64 build uses no keyword the C64 does not have, and a script drives VICE for real, types 107 keystrokes and confirms the legendary ending arrives.

Zero divergences between the model and the game. On a machine from 1982.
02 // REAL HARDWARE
A stock C64. No expansions.
6 PIEZAS
/01

A SPANISH PARSER

43 verbs across 184 vocabulary words and 130 nouns. You type in Castilian; there are no menus and no icons between you and the story.

/02

THE WHOLE CANTAR

32 rooms, Vivar to Valencia: the oath at Santa Gadea, the chests of sand, Corpes, the lion in the alcázar. 62 examinable scenery items on top of the 30 you can carry.

/03

HONOUR, NOT POINTS

Seven optional deeds, an on-screen "honra n/7" counter and three endings — Victory, Legend, Defeat. The legendary one demands six of the seven.

/04

PROVEN WINNABLE

A Python reference model walks the entire critical path and finishes on the legendary ending. Not a promise: a test that runs.

/05

TWO MACHINES, TWO BUILDS

A strict BASIC v2.0 build for the C64 — checked by a linter that rejects any C128-only keyword — and a native C128 build with a bitmap cover and multicolour ending cards.

/06

SAVES TO FLOPPY

GRABA and RECUPERA really write to the 1541 (device 8), error channel and all. Your exile survives the power switch.

03 // UNDER THE HOOD

A world written exactly once

One source of truth in Python, two BASIC engines generated from it, and four separate verifiers that refuse to let a broken build through. This is what is inside the floppy.

ENGINEERING PANEL · LIVEC64 1 MHz · C128 2 MHz · 40 COLUMNS
ROOM $000JIFFIES / TURN 0%FRAME 000000
FOUR VERIFIERS · ZERO DIVERGENCES
01
281LINES OF SPEC

ONE SOURCE OF TRUTH

The 32 rooms, 30 objects, 43 verbs and 76 rules live in a single Python file. Both BASIC builds — C64 and C128 — are generated from it with one command. Changing a rule is changing one line, not editing two interpreters.

02
0MISMATCHES

TWO ENGINES, ZERO DIVERGENCES

A Python reference model walks the critical path. An independent reimplementation of the BASIC interpreter walks the same path. A comparator runs them against each other: zero behavioural mismatches. If the BASIC and the model ever drift apart, the test says so.

03
7.5× FASTER

PROFILED ON THE MACHINE'S OWN CLOCK

Measured in real C128 jiffies, not estimated: a turn went from 889 jiffies (~15 s) to 119 (~2 s). Text caching, variable-table ordering, per-room rule indexing and FAST/SLOW where it counts. On the C64 disk build, from ~400 jiffies plus two seconds of loading to 134 with no disk access at all.

04
19.2KB OF SCENES

TWO HUNDRED BYTES OF 6502

The engine is BASIC and we do not hide it. The only assembly is the pair of scene blitters — around 100 bytes each, poked in from DATA at boot — which dump a whole room: 400 screen codes and 200 colour bytes, 600 bytes per room, 19.2 KB for all thirty-two.

MEMORY MAP · $0000–$FFFF≈ 1.5K BASIC FREE
$0801 $CFFF≈36.5K

BASIC

ENGINE · RULES · TEXT · SCENES

The tokenised program: 569 lines of BASIC v2.0 holding the parser, the 76 rules, the honour HUD, the sound and the save code, plus the 32 packed scenes at 600 bytes a room. No banking and no cartridge: this is ordinary BASIC RAM. On native C128 it starts at $1C01.

Hover or focus each region
· // SPEC SHEET

Thirty-two rooms in 36 kilobytes

32ROOMSTHE COMPLETE CANTAR

Vivar to Valencia with nothing cut from the poem: 32 hand-authored PETSCII scenes, 600 bytes each, on a stock C64 with no expansion.

PLATFORMCommodore 64 · Commodore 128 (native mode)
MEDIA.d64 disk image · plus a .PRG for the C128
RAM64K · no expansion · ≈36.5 KB of tokenised BASIC
SOUNDSID 6581/8580 · title tune and effects
CONTROLKeyboard · Spanish text parser
PRICEFree · .d64 download
04 // DEV DIARY
Notes from the interpreter
VERIFIABLE MILESTONES · NOT AN INVENTED TIMELINE
  1. 1.02026.07.12LATEST

    Release 1.0 in the repository CHANGELOG: playable end to end, two builds, a press kit and a free .d64 download. The studio's own roadmap calls it "complete and playable today".

    CHANGELOGFREE
  2. VICEVERIFICATION

    A script drives the VICE emulator through its remote monitor, injects the 107 keystrokes of the critical path, reads screen and colour RAM byte by byte and confirms the legendary ending with no OUT OF MEMORY.

    x64sc107 KEYSTROKES
  3. 7.5×OPTIMISATION

    A turn drops from 889 jiffies to 119 on the C128, measured with the machine's own clock. Text caching, variable-table reordering and per-room rule indexing.

    JIFFIESFAST/SLOW
  4. C128NATIVE BUILD

    A second build in native C128 mode: a Koala multicolour cover loaded with BLOAD and three bitmap ending cards with their own embedded letterform font, independent of the character ROM.

    GRAPHIC 3KOALA
05 // QUESTIONS
Questions from people with taste
5 PREGUNTAS

Yes, on a stock C64/C64C with no expansions, and on a C128 in native mode. The C64 build is strict BASIC v2.0 and there is a linter in the repository that fails the build if a single C128-only keyword slips in. Load it with LOAD"ELCID",8 and RUN, from a floppy or from any flashcart that mounts .d64 images.

// NEXT RETRO OPERATIONBlack Wire: The Cicero TapesSURVEILLANCE THRILLER · AMIGA 500 · TBA · AMIGA
CHANNEL #0x4C7A · ON AIRREC ● TC 02:47:18SIGNAL ▮▮▮▮▮ 100% · AES-256
TRANSMISSION · ENCRYPTED// SUBSCRIBE

Subscribe to the encrypted channel.

Devlogs, patches and internal leaks. Zero spam, zero analytics. Just what matters, when it matters.

9DEVLOGS PUBLISHEDSINCE 2025
2LANGUAGESES · EN
0SPAM · TRACKINGEVER
// AGENT_INTAKEv3.07
JOIN DISCORD
OPENING YOUR MAIL CLIENT · confirm the send
CIFRADO100%
PRIVACIDAD100%
FRECUENCIA2-3/MES
// AES-256// 0 ANALYTICS// REPLY TO LEAVE// HOSTED IN VIRGINIA
// SIGNED · PRINCETON · ILLINOIS · 2025▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮END_OF_TRANSMISSION_◆