Loom (1990)

November 01, 2021 — Mischka

Ich muss so 14 oder 15 gewesen sein, wir hatten bereits die Point-and-Click-Klassiker Maniac Manson und Zack McKracken auf dem C64 gespielt. Fasziniert von dieser Art Adventures saß ich am PC im Arbeitszimmer meiner Mutter und startete Loom, ein weiteres Werk aus dem Hause Lucasfilm Games. Das Spiel zog mich in seinen Bann. Die mystische Atmosphere, unterstrichen durch die liebevoll gesteltete Pixelart und die einzigartige Spielsteuerung erzeugen beim Spieler ein wunderbar gruselndes Kribbeln.

Das Spiel hebt sich auf mehreren Ebenen von den Point-and-Click-Adventures dieser Zeit ab: es hat eine ziemlich lineare Story. Das Spiel kommt ohne dämliche Witze und absurde Rätsel aus. Und im Gegensatz zu seinen Verwandten ist es relativ schnell in ca 3 Stunden durchgespielt. Was aber wirklich besonders ist: es gibt keine Wortbefehle wie Nimm, Gib, Inventar oder Benutze. Während der Reise durch das Spiel interagiert der Spieler mit Hilfe von kurzen Tonabfolgen, die wie Zaubersprüche wirken mit seiner Umgebung und anderen Charakteren. Dem Protagonisten stehen dabei anfangs nur vier Töne auf der Tonleiter zur Verfügung. Im Laufe des Spieles lernt der Spieler sowohl neuen Tonabfolgen als auch neue Töne dazu. Zum Finale benötigt man dann eine komplette Tonleiter in C-Dur. Es empfielt sich übrigens sämtliche Abfolgen zu notieren, denn die ca 15 Zaubermelodien kann man sich unmöglich merken.

Bei Steam gibt es einen Remake, ich empfehle aber wärmstens die originale "EGA/DOS"-Version. Eine spätere Neuauflage mit Sprachausgabe, auf der die Steam-Variante basiert, wurde an einigen Stellen verfremdet und gekürzt - wohl um die Sprachdateien komplett auf eine CD zu bekommen. Allerdings wurden im Zuge dessen auch Blut und einige Close-ups, sowie wohl zu gewalttätige Szenen entfernt, wie die Website movie-censorship.com berichtet.

Das Original Spiel kann man bei Archive.org finden. Wer keinen DOS-Rechner aus den 90ern mehr hat, kann es mit der Scumm-VM spielen.

Tags: retro, retrogaming, vintage, adventure, point-and-click, gaming

Level up: C64-Assembler nach c't-Art

October 24, 2018 — Mischka

Der Artikel in der c't retro legt nahe, den Cross-Compiler acme für die C64 Assemblerprogrammierung zu verwenden. Leider gibts dafür kein Binary in den Ubuntu-Quellen - und auch keins auf der Sourceforge-Website. Aber kein Problem. Linux-User können sich das C64-Devkit von cliffordcarnmo aus dem Github laden. Das enthält den ACME Compiler, sowie diverse Hilfsprogramme zum kompilieren. Zunächst gilt es das Devkit runterzuladen. Dies geht ganz einfach mit dem Befehl

git clone https://github.com/cliffordcarnmo/c64-devkit

mit cd c64-devkit

wechselt man nun in das Verzeichnis.

Um loszulegen löscht man erstmal sämtliche Inhalte der Verzeichnisse source, sprites, tables, graphics, music, charset mit dem Befehl

rm source/*
rm sprites/*
rm tables/*
...

Damit hat man nun ein leeres Projekt, in das die entsprechenden Dateien eingefügt werden können. Sämtlicher Sourcecode gehört in das Verzeichnis

source/

Da das Projekt nur aus einer Quelltext-Datei besteht, wird in diesem Verzeichnis die Datei 'main.asm' angelegt in die die Assembler-Befehle kommen.

Soviel zur Vorbereitung.... Jetzt gehts ans eingemachte. Und da beginnt bereits die Geschichte voller Widersprüche. In der c't retro ist ein Listing abgedruckt, welches weder ich, noch der Compiler verstehen:

merkwürdiges Listing

Die Bedeutung dieser Zeilen erschließt sich mir weder mit Logik noch aus dem Text. Viel eher erschließt sich die Bedeutung aus dem Quellcode von der c't-Website, welcher andere Zeilen an dieser Stelle enthält:

; BASIC-Header
    *= $0801; Ladeadresse = BASIC
    !by $0b,$08,10,0,$9e,'2'
    !by '0','6','1',$00,$00,$00

Der Reihe nach: *= $0801 ist die Startadresse für dieses Programm $0801 ist der Anfang des Basic-Speichers, hierhin wird also das Programm zunächst geladen. danach folgen eine Reihe von Bytes die übersetzt die Basic-Zeilen

10 SYS 2061

ergeben. Ein Basic-Befehl an die Speicherstelle (dezimal) 2061 zu springen und den Code dort auszuführen. Diese Zeile ist nötig, um das Programm später mit dem BASIC-Befehl run zu starten.

[Fortsetzung folgt]

Tags: assemblerkurs, retro, vintagecomputing, assembler, c64, commodore, coding, level-up

c't retro

October 24, 2018 — Mischka

Jetzt hat auch heise das Retrofieber erfasst und Vintage Computing ist Mainstream. Das sollte aber niemanden davon abhalten, sich dem Hobby intensiver zu widmen. Ich bin seit einiger Zeit dabei, meinen alten Brotkasten wieder zum Laufen zu bringen. Den Fehler habe ich leider noch nicht gefunden.

Die retro-c't ergänzt meine Sammlung an Assembler-Tutorials um ein weiteres. Ich freue mich darauf, endlich ein Spiel nachzubauen und sicher wieder etwas zu lernen. Aus dem Retro-Gamedev konnte ich leider noch nichts ausprobieren, da ein Framework für Windows-Computer genutzt wird und das Übertragen auf die C64-Assembler Linux-Tools für mich noch ein Hindernis darstellt.

Vielleicht bringt aber das c't Tutorial die nötige klarheit...

Tags: retro, vintagecomputing, retro, c64, assembler, commodore64, level-up

c't retro

October 24, 2018 — Mischka

Jetzt hat auch heise das Retrofieber erfasst und Vintage Computing ist Mainstream. Das sollte aber niemanden davon abhalten, sich dem Hobby intensiver zu widmen. Ich bin seit einiger Zeit dabei, meinen alten Brotkasten wieder zum Laufen zu bringen. Den Fehler habe ich leider noch nicht gefunden.

Die retro-c't ergänzt meine Sammlung an Assembler-Tutorials um ein weiteres. Ich freue mich darauf, endlich ein Spiel nachzubauen und sicher wieder etwas zu lernen. Aus dem Retro-Gamedev konnte ich leider noch nichts ausprobieren, da ein Framework für Windows-Computer genutzt wird und das Übertragen auf die C64-Assembler Linux-Tools für mich noch ein Hindernis darstellt.

Vielleicht bringt aber das c't Tutorial die nötige klarheit...

Tags: retro, vintagecomputing, retro, c64, assembler, commodore64, level-up