GERLA.CC

tutorial · commodore 64 · mac

Come si fa un gioco per Commodore 64 su un Mac

Gli strumenti che servono, dal minimo indispensabile a quello che serve per misurare, tutti gratuiti. Scrivere un gioco per C64 oggi non vuol dire lavorare su un C64: si scrive sul Mac, si prova in un emulatore, e il C64 vero, se c'è, serve come prova finale. Questa è la catena con cui è nato Ruote Fumanti.

L'editor è solo il posto dove si scrive il codice. Per arrivare a un file che il C64 carica servono pochi altri pezzi, e la maggior parte si installa con Homebrew, il gestore di pacchetti per macOS, con un comando solo:

brew install acme exomizer vice python git ffmpeg
01 · il minimo indispensabile

Scrivere, compilare, provare

Con questi quattro si scrive, si compila con un comando e si prova il gioco.

cosaa cosa serve, e con cosa
Editorscrivere l'assembler: Visual Studio Code con l'estensione VS64 (sorgente), che riconosce ACME, KickAssembler e cc65 e si collega a VICE per il debug
Assemblatoretrasformare il sorgente .asm in un file .prg: ACME, quello usato per Ruote Fumanti. In alternativa KickAssembler (serve Java) o ca65, dentro cc65
Emulatoreprovare il gioco, fermarlo, leggere la memoria col monitor: VICE, in particolare x64sc, il più preciso. Con VICE arriva anche c1541, che crea le immagini disco .d64
Compressoreottenere un solo file piccolo che si decomprime da solo: Exomizer

Il ciclo di lavoro è sempre lo stesso: scrivi in VS Code, compili con ACME, comprimi con Exomizer, apri il .prg in VICE.

VS Code aperto sul sorgente di Ruote Fumanti

VS Code sulla cartella del gioco: a sinistra i sorgenti in src/, a destra native.asm aperto sulla routine che fa scorrere la strada, quella raccontata in come scorre la strada.

La compilazione: ACME ed Exomizer

make rifà tutto: ACME assembla, Exomizer comprime. In fondo la mappa della memoria: 61 KB di gioco diventano un file da 24 KB che si decomprime da solo.

Ruote Fumanti in VICE

il PRG in VICE (x64sc), sul tracciato 3. In basso a sinistra la cosa che conta: 50,1 fotogrammi al secondo.

02 · un gioco completo

Quello che serve oltre il codice

cosaa cosa serve, e con cosa
Scriptgenerare dati e tabelle, convertire la grafica, controllare la build: Python, con Pillow per leggere e scrivere le immagini
Automazionericompilare tutto con un comando solo: make, che arriva con gli strumenti da riga di comando di Apple (xcode-select --install), oppure i task di VS Code
Versionitornare indietro, confrontare, non perdere niente: Git
Spritedisegnare gli sprite nei limiti del C64: Spritemate, che gira nel browser (sorgente)
Caratteriil set di caratteri, le tessere e i livelli: VChar64, anche per Mac
Immaginischermate e disegni con i colori e le risoluzioni del C64: Multipaint
Musicacomporre per il SID: GoatTracker 2 (c'è una versione per Mac), oppure SID-Wizard, che gira dentro il C64 o l'emulatore
Gli sprite del salto in Spritemate

Spritemate con i quindici sprite del salto di Ruote Fumanti: l'auto in sette taglie, ognuna con due fasi delle ruote, più l'ombra. Se gli sprite sono una novità, sono spiegati da capo in gli sprite del C64.

La musica non deve per forza passare da un tracker: in Ruote Fumanti il motivo è scritto come testo, una riga per voce, e uno script Python lo converte in dati per il SID.

03 · misurare

Per misurare invece di provare a occhio

È la parte che distingue «sembra che funzioni» da «funziona, e lo si può dimostrare».

cosaa cosa serve, e con cosa
CPU in Pythonprovare pezzi di codice senza aprire l'emulatore: si carica il programma, si chiama una routine, si controllano i registri: py65
Emulatore via scriptfar guidare il gioco a un programma, leggere la memoria a ogni fotogramma, contare i fotogrammi persi, fare screenshot: il monitor remoto di VICE (opzione -remotemonitor), comandato da Python
Videospezzoni per la pagina del gioco, con l'audio registrato dall'emulatore: FFmpeg
Secondo emulatorecontrollare che il gioco non funzioni solo in VICE: VirtualC64, nativo per Mac
C64 verola prova finale, con una cartuccia flash come Kung Fu Flash, oppure un Ultimate 64
Prove su CPU 6502 con py65

py65 prova i tasti M e F e i motori senza aprire l'emulatore: la tastiera è finta, il codice è quello vero del gioco. Ogni riga è una verifica, e in fondo FALLITE 0.

Il monitor di VICE sul gioco in corsa

il monitor di VICE, comandato da uno script, ferma il gioco in corsa: i registri della CPU, il codice dello scorrimento disassemblato, e la memoria delle variabili. Le istruzioni da $14f5 in giù sono la routine .fine vista dall'interno della macchina.

Misure con VICE pilotato da Python

le misure della 1.0.2: fotogrammi persi su 3000, per quanto la volante ti sta addosso, e cosa succede a fine tracciato.

Le quattro schermate di terminale sono ricomposte in immagine a partire dall'output reale dei comandi; le altre sono catture dirette dei programmi.

04 · pubblicare

Farlo arrivare a chi lo gioca

cosacon cosa
Pagina e downloaditch.io
Caricare i filebutler, lo strumento ufficiale di itch.io da riga di comando
La scena C64CSDb, il database della scena
in breve

Tre livelli

  • per cominciare VS Code, ACME, VICE, Exomizer
  • per un gioco vero in più Python, make, Git, e un editor per sprite, caratteri e musica
  • per sapere che funziona py65, VICE pilotato da script, un secondo emulatore, e un C64 vero quando si può

← Tutti i tutorial Ruote Fumanti →