EN /HU | Belépés

Commodore 64

A Commodore 64 a klasszikus 8 bites otthoni számítógép. A C64-es projektjeink 6502 assemblyben készülnek, az ACME fordítja őket .prg fájllá, a tesztelés pedig a VICE emulátorban (x64sc) történik.

ACME: https://sourceforge.net/projects/acme-crossass/ VICE: https://vice-emu.sourceforge.io Eszközrepó: https://git.teletypegames.org/build/c64-tools Ezzel az eszközlánccal készült projektek: Teletype Games C64 Demo, Rabbit Scooter — C64, Blessing of Ra


Makefile

Minden .asm fájl a projekt gyökerében van. Az egyetlen belépési pont a main.asm, amely !src-cel behúzza a többit.

TEXT
project-root/
├── main.asm          # belépési pont, ez húzza be a többit
├── defs.asm
├── common.asm
├── metadata.json     # katalógus-metaadatok + verzió
├── Makefile
└── README.md

Változók

Változó Leírás Alapérték
PROJECT Az artifactokban és a katalógusban használt név
ASM Az assembler binárisa acme
EMU Az emulátor binárisa x64sc
SRC Belépési pont main.asm
TARGET Kimeneti program $(PROJECT).prg
METADATA Metaadatfájl metadata.json

metadata.json

JSON
{
  "name": "example",
  "title": "Example C64 Game",
  "author": "Teletype Games",
  "desc": "Short description of the game.",
  "site": "https://git.teletypegames.org/games/example",
  "license": "MIT",
  "version": "1.0.0"
}

A name értékének egyeznie kell a PROJECT értékével. A version vezérli a pipeline verziólépését. A többi a játékkatalógusba kerül.

Célok

SH
make deps        # brew install acme vice (csak macOS)
make build       # a main.asm fordítása -> <project>.prg, csak ha változott egy .asm
make run         # build, majd indítás a VICE-ban
make clear       # a .prg és a CI-artifactok törlése
make rebuild     # clear + build
make rebuildrun  # clear + build + run

VS Code

Másold az example-tasks.json fájlt .vscode/tasks.json néven. Ugyanezeket a célokat csomagolja be, a build az alapértelmezett buildfeladat (Cmd+Shift+B).

Előálló artifactok

Fájl Leírás
<project>.prg A lefordított program
<project>-<verzió>.prg Verziózott kiadási példány (CI)
<project>-<verzió>.metadata.json Verziózott metaadat (CI)

Követelmények

Csak helyben: make, acme, illetve a run-hoz a VICE x64sc binárisa.

Példa Makefile: https://git.teletypegames.org/build/c64-tools/src/branch/master/example-makefile.make


Pipeline

A pipeline nincs benne a játékrepóban. A Woodpecker az update szervertől kéri el, a WarpEngine pedig a teljes konfigurációt a /build/config végponton szolgálja ki (sablon: lib/warp_engine/ci_templates/c64.yaml.erb).

A repóhoz három dolog kell:

YAML
# .woodpecker.yaml
platform: c64
name: rabbit   # csak akkor, ha a szoftvernév eltér a repó nevétől
  • metadata.json
  • az application_token Woodpecker-secret: egy WarpEngine ApplicationToken az update + upload jogosultságokkal

A builder image-ek az update szerver ci_platforms konfigurációjából jönnek. A kiszolgált pipeline megtekintése:

SH
curl "https://teletypegames.org/build/config?platform=c64"

Lépések

Lépés Mit csinál
1. version kiolvassa a verziót a metadata.json-ból, fejlesztői ágakon hozzáfűzi az ág nevét, és megírja a .version fájlt
2. build ACME-vel fordít a c64-builder image-ben, <project>-<verzió>.prg és <project>-<verzió>.metadata.json fájlokat előállítva
3. artifact POST /build/upload mindkét fájlra, X-Update-Secret fejléccel
4. publish POST /build/publish?platform=c64

Eredmény

A szerver beolvassa a feltöltött metaadatot, létrehozza vagy frissíti a katalógusbejegyzést, és a .prg fájlt regisztrálja a kiadás letölthető kazettájaként.