64K OF DREAMS

2026

Een ode aan de Commodore 64 in de browser: een realtime demo, twee spellen, een synthesizer met drie stemmen, een 6502-lab en een muur van herinneringen.

64K OF DREAMS begint zoals de machine zelf: een zwarte buis, dan het blauwe scherm met 38911 BASIC BYTES FREE en READY. Daarna kies je PRESS PLAY, met geluid, of START STIL. Het menu is een diskdirectory. Elke regel is een bestand, en een klik doet hetzelfde als de opdracht in de terminal onderaan, zoals LOAD "ARCADE". De terminal kent ook HELP, LIST, RUN, MUTE, CLEAR, POKE en PRINT. POKE 53280,0 maakt de rand van de hele pagina zwart.

Er zijn zes zalen. THE MACHINE laat de processor, de beeldchip, de geluidschip en het geheugen zien, elk met een proef: kleurwissels per rasterregel, fijn scrollen met sprites, de vier golfvormen en een geheugenkaart van 64 kilobyte. DEMO TEMPLE heeft vier realtime delen: rasterbalken met een golvende scroller, een sterrenveld, een draaiende cassette in draadmodel en een gracht die zich in PETSCII-blokjes opbouwt, met een eigen deuntje waarop het beeld meebeweegt. ARCADE heeft twee eigen spellen: RASTER RUNNER, een ontwijkspel door rasterbalken, en PETSCII BREAKER, waarin je drie tekeningen van bloktekens kapotschiet. Beide hebben een topscore die in de browser blijft staan.

SID STUDIO is een synthesizer met drie stemmen in de geest van de SID-chip: vier golfvormen, een ADSR-envelope per stem, één gedeeld filter en een stepsequencer van 16 stappen, met drie eigen stukjes: Midnight Loader, Bedroom Composer en Raster Sunrise. Het is Web Audio, geen emulatie van de chip, en dat staat er ook bij. In ASSEMBLY LAB schrijf je 6502-assembly. Een eigen processorkern voert de instructies uit met hun echte cyclustijden, tegen een vereenvoudigde PAL-raster van 312 regels van 63 cycli. Daardoor staat een rasterbalk die op regel 112 wacht echt stil, en geeft INC $D020 strepen in de rand op de plek waar de straal was. Er is ook een kleine BASIC met de foutmeldingen van de C64. MEMORY WALL sluit af met zeven verzonnen herinneringen in pixels en een maker die je eigen tekst omzet naar een PETSCII-scherm om te downloaden.

Alle beelden zijn in code getekend, in de zestien kleuren van het Pepto-palet. Er is geen ROM-tekenset, geen bestaand spel en geen bestaande muziek gebruikt. Wie met PRESS PLAY begint, hoort drie eigen nummers in SID-stijl: NACHTLAMP, "KANT B, TELLER 312" en RASTERZON. De speler staat in de balk bovenaan en zwijgt zolang de demo of de synthesizer zelf geluid maakt. De pixelletters komen uit Press Start 2P; de blok- en lijntekens zijn met de hand gemaakt. CRT-effecten, beweging en geluid zijn apart in te stellen en blijven bewaard. Een flitsbeveiliging in het lab vertraagt het beeld als een programma grote vlakken snel van kleur laat wisselen. Gebouwd met TypeScript en Vite, zonder framework, met Claude Code als programmeerassistent. 120 unit-tests in Vitest controleren de assembler, de processor, BASIC, de terminal, de spellen, de synthesizer en de muziek. 44 end-to-end-tests lopen de hele tentoonstelling door in Chromium, Firefox, WebKit en op een telefoon, onder het beveiligingsbeleid van deze site.

Technologieën

TypeScript Vite Canvas 2D Web Audio 6502 Vitest Playwright

Meer van mijn werk

Bekijk het hele portfolio of lees het blog.

Meer werk