Künstliche Intelligenz
c’t 3003: Selbstgebaute Cartridges mit Kazeta
Spiele wirklich zu „besitzen“ wird durch Steam und Co immer schwieriger. Hier setzt Kazeta OS an: Es macht Spiele langfristig auf Datenträger verfügbar; ganz ohne Cloud. Das Ganze soll so einfach bedienbar sein wie möglich, man muss also mit keinen Interfaces herumhantieren, sondern steckt einfach eine „Cartridge“ ein. c’t 3003 hat sich das junge Projekt genauer angeschaut.
Transkript des Videos
(Hinweis: Dieses Transkript ist für Menschen gedacht, die das Video oben nicht schauen können oder wollen. Der Text gibt nicht alle Informationen der Bildspur wieder.)
Guckt mal hier, das ist meine Spielesammlung. Ich suche eins aus, stecke den USB-Stick rein und zack, läuft hier das brandneue Hollow Knight: Silksong von USB. Das geht übrigens auch mit SD-Karten oder – ganz wild – von SATA-SSDs, und der Rechner verhält sich wirklich komplett wie eine alte Spielkonsole. Keine System-Updates, keine Patches, keine Verbindung zum Internet, und der PC bootet in wenigen Sekunden. Und Abspeichern und Savegames und so geht natürlich auch ganz schnell. Wenn ihr jetzt denkt: „Wow, nice, das will ich haben“, dann ist dieses Video für euch. Wenn ihr denkt: „Hä, was soll denn das? Was soll denn das bringen?“, dann auch. Ich erkläre euch nämlich hier auch, warum physische Datenträger gerade wieder total im Kommen sind. Bleibt dran.
Liebe Hackerinnen, liebe Internetsurfer, herzlich willkommen hier bei…
Ja, als ich das Projekt Kazeta gesehen habe, war ich direkt verliebt, und das ging hier irgendwie dem ganzen Team so. Auch wenn einige von denen jünger sind als ich und mit Spielen aus der Cloud aufgewachsen sind – also nicht mit physischen Datenträgern. Aber das Gefühl, einfach eine Spiele-Cartridge irgendwo reinzustecken und sofort loszocken zu können, das scheint universell sehr gemütlich rüberzukommen. Denn wir kennen ja diesen Online-Nerv zur Genüge. Habt ihr mal ein aktuelles Call of Duty länger nicht gespielt und wollt „mal kurz eine Runde“? Ja, das kann wirklich Stunden dauern, bis alle Updates durch sind. Und ich übertreibe nicht: Die aktuellen Call of Duty sind nämlich über 150 Gigabyte groß. Außerdem kann das Gefrickel mit Launchern und Logins bei PC-Gaming definitiv Leute abschrecken, die nicht so technikaffin sind. Nicht umsonst sind ja so was wie, keine Ahnung, Tonie-Boxen bei Kindern und Hörbert-Boxen für Senioren beliebt – also so maximal vereinfachte Technik.
Naja, und sogar Nintendo, die ja die hohe Kunst der Cartridge bis zuletzt, auch heute noch, zelebrieren, haben angefangen, einige Spiele in normalen Spieleverpackungen zu verkaufen. Aber drin ist da dann nur ein Code zum Downloaden. Sollten die Server also mal abgeschaltet werden, dann kann man das Spiel auch nicht mehr spielen. Und solche Fälle – also quasi verlorene Spiele – gibt es immer mehr. Und das kommt verständlicherweise ziemlich schlecht an bei der Nutzerschaft.
Ja, und wie ist das bei Kazeta? Ja, solange man einen Rechner hat, auf dem man das Kazeta-Grundsystem installieren kann, kann man die Kazeta-Datenträger spielen. Das ist von vornherein auf maximale Langlebigkeit ausgelegt. Und gleichzeitig ist Kazeta auch aufs Maximale reduziert. Kazeta funktioniert wirklich wie eine alte Spielekonsole. Wenn man den Spiele-Datenträger vor dem Einschalten einsteckt, dann startet direkt das Spiel darauf. Wenn man ohne Datenträger einschaltet, dann kommt hier dieser Screen mit ausgegrautem „Play“. Hier oben sieht man unter „Data“ dann alle gespeicherten Spielstände.
Ja, und so funktioniert auch das Prinzip: Es wird immer auf dem Gaming-Rechner selbst gesichert – also die Savegames –, damit von den Spiele-Datenträgern möglichst nur gelesen wird. Dadurch soll die Lebensdauer erhöht werden, weil SD-Karten und USB-Sticks vor allem durch viel Schreiben altern. Reines Lesen verursacht dagegen so gut wie keinen Verschleiß. Also nur, wenn ein Block jetzt extrem häufig gelesen wird – aber das kommt in der Praxis selten vor. Wenn da nur einmal das Spiel geladen wird, sollte es klappen. Naja, und die Speicherdaten, die kann man sich ja unter „Data“ halt angucken. Das erinnert stark an das User-Interface der Speicherkarten, zum Beispiel der PlayStation 1. Ich finde das designmäßig auf jeden Fall sehr gelungen. Ich finde auch diese Sound-Effekte total charmant. Hört mal. Das wirkt alles schon sehr polished.
Obwohl – und das wäre jetzt direkt mein Disclaimer – Kazeta ist Stand heute noch sehr, sehr frühe Software. Deutlich erkennbar an der Null im Release-Namen. Die Frage ist für mich auch, ob und wie sich das Projekt weiterentwickelt. Wenn es sich nicht weiterentwickelt, ja, dann weiß ich nicht, wie zukunftssicher das Ganze ist. Man kann Kazeta auf jeden Fall heute schon nutzen. Ich habe es mit mehreren Spielen erfolgreich hinbekommen, aber es ist auch noch ein bisschen fummelig, und viele Sachen laufen auch einfach nicht. Dazu komme ich aber später noch mal im Detail.
Erstmal zu den erfreulichen Sachen, die mir erstaunlicherweise viel Spaß gemacht haben, obwohl ich gar nicht so der Basteltyp bin – nämlich das Herstellen der physischen Datenträger. Wenn ihr wie ich keinen Drucker habt, dann könnt ihr zum Beispiel zu dem Drogeriemarkt mit den zwei Buchstaben gehen. Die bieten nämlich direkt das Drucken von Aufklebern an, also direkt vor Ort haben die so Drucker dastehen, und die stanzen das auch direkt. Man muss da also nicht mit der Schere herumhantieren. Leider kann man die Größen nicht manuell festlegen, wenn man das direkt im Laden editiert. Da muss man sich dann halt so Pi mal Daumen die Bilder hier so anordnen. Ich habe das einfach mit dem USB-Datenträger gemacht – einfach die Bilder drauf, die ich mir vorher ausgesucht habe – und dann los. Das hat bei mir auf jeden Fall ganz gut geklappt. Das Drucken und Stanzen hat übrigens bei den Druckern in der Filiale in der hannoverschen Innenstadt pro Bogen weniger als eine Minute gedauert.
Ja, und guckt mal, das sind meine Kazeta-Cartridges. Das sieht doch ziemlich clean aus, oder? Ich finde es gut. Ihr seht auch, das sind unterschiedliche Datenträger, und ihr fragt euch jetzt vielleicht: Was nimmt man denn da jetzt am besten bei Kazeta? Also, ich finde, ganz klar: Am besten kommt natürlich das Label auf so einer fetten SATA-SSD zur Geltung. Das wirkt auch von der Form her so Cartridge-mäßig, fast so NES-mäßig, aber das ist natürlich maximal snobby, hier mit solchen teuren SSDs herumzuhantieren. Erinnert mich ein bisschen an Karl Lagerfeld, der über 500 iPods hatte – halt für jedes Album einen eigenen –, weil er das so nervig fand, in den Menüs da rumzufummeln. Also eventuell habt ihr ja eine Bezugsquelle für alte SSDs, die man sonst nicht mehr benutzen würde. Ich hatte hier noch so 120-Gigabyte-SSDs, die würde ich mir in keinen Rechner mehr einbauen, deshalb habe ich die jetzt hier halt für Kazeta verwendet. Als Interface habe ich so ein Standard-SATA-USB-Kabel verwendet – hat einwandfrei funktioniert.
Zweite Variante sind SD-Karten. Das ist auch das, was Kazeta offiziell empfiehlt, weil die halt aussehen wie so Switch-Cartridges. Die gibt es zum Beispiel im 10er-Pack für 40 Euro – allerdings das Stück dann nur mit 8 Gigabyte. Außerdem haben Rechner halt selten einen direkten SD-Kartenleser eingebaut. Ja, und mit dem Kartenleser zu arbeiten, das finde ich irgendwie ein bisschen lame, weil das auch – ja – das fühlt sich dann nicht mehr an wie eine Konsole. Deshalb habe ich mich jetzt hauptsächlich für die dritte Variante entschieden, nämlich stinknormale USB-Sticks. Da passt zwar nur so ein kleines Label drauf, aber dafür haben die ein besseres Preis-Leistungs-Verhältnis. 10× USB 3.0 mit 64 Gigabyte für 40 Euro habe ich mir hier jetzt gekauft. Das passt, finde ich. Und außerdem halte ich das für sehr wahrscheinlich, dass ihr sowieso etliche von den Teilen rumliegen habt. Dann kann man die auch mit Kazeta benutzen, wenn ihr Lust habt. Kurzes Update: Bestellt euch bitte nicht diese konkreten USB-Sticks. Ich kann die nicht empfehlen; die ließen sich nämlich nur unzuverlässig und sehr langsam beschreiben.
Ja, und zur Aufbewahrung oder Präsentation – ja, da gibt es natürlich solche Hüllen hier, wo man die Sticks oder die SD-Karten reinstecken kann. Oder aber man baut sich mit dem 3D-Drucker so eine drehbare „Lazy Susan“ für USB-Sticks. Fand ich ganz nice, haben wir mal versucht. Ja, hat doch ganz gut funktioniert.
Ja, und als Spielkonsole habe ich so richtig Overkill-mäßig diesen Rechner hier genommen: ein GMKtec NucBox K10. Kostet so ab 450 Euro, weil GMKtec hatte mir den zugeschickt, und ich hatte bis dahin noch keine richtige Idee, wie ich das Teil testen will. Da ist ein Intel i9-13900HK drin – also richtig was Leistungsfähiges. Ich finde auf jeden Fall, dass das Teil auch vom Formfaktor ziemlich konsolig aussieht, aber es geht wirklich so ziemlich jeder x-beliebige x86-Rechner mit Kazeta. Aber leider keine ARM-Architektur, also Raspis funktionieren explizit nicht mit Kazeta.
Ja, und ich habe bei dem GMKtec-Rechner hier einfach das Kazeta-Image auf den USB-Stick geworfen. Hat übrigens mit Ventoy nicht funktioniert. Das erste Mal, dass Ventoy was nicht installieren wollte. Ventoy hatte ich ja im vorletzten Video mal empfohlen. Bei dem Kazeta-Boot-Image habe ich Balena Etcher verwendet, und dann klappte das auch. Naja, dann bootet man davon, und dann fragt Kazeta: „Soll ich installieren auf dem internen Datenträger?“ Da kann man auch sonst nichts einstellen, sondern entweder Datenträger plattmachen oder nicht. Bitte bedenken: Da gibt es auch kein Dual-Boot oder so, sondern es wird einfach die komplette Platte plattgemacht. Also Dual-Boot wäre ja auch total unlogisch, weil Kazeta soll ja prinzipbedingt aufs Minimum reduziert sein. Und wenn man da jetzt irgendwie Windows mit-booten könnte, dann wäre es ja auch keine Spielkonsole.
Also, fertig installiert. Dann habe ich hier im UEFI-Rechner noch Fast-Boot eingestellt, und dann bootet das Teil vom Drücken des Einschaltknopfes bis zum Start-Screen in 12 Sekunden. Das ist jetzt also nicht so instant wie alte Konsolen, aber ich finde, das fühlt sich schon einigermaßen konsolig an. Ja, und guck mal, wie oldschool das aussieht. Wir haben so einen Röhrenfernseher angeschlossen – leider nur mit so einem einfachen 8-Euro-HDMI-auf-Composite-Adapter. Ja, aber wenn man bessere Qualität will von HDMI auf dem Röhrenfernseher, da muss man ziemlich viel Arbeit und Geld reinstecken. Deswegen ist das jetzt das Beste, was wir hinbekommen haben – auf die Schnelle. Aber die Röhre ist natürlich optional. Also, ihr könnt das natürlich auch an euren 4K-OLED anschließen. Sieht auch cool aus.
Ja, aber wie bereitet man jetzt die Kazeta-Cartridges – also die Datenträger – vor? Das geht zurzeit nur komplett manuell. Aber der Kazeta-Entwickler schreibt in der Dokumentation, dass schon so ein Automatik-Tool dafür in der Entwicklung sei. Deshalb zeige ich euch jetzt nur kurz, wie man das manuell macht, weil bald soll es ja eh automatisch gehen. Dann braucht man das ja nicht mehr.
Also, Schritt 1:
Ihr müsst den Datenträger zwingend mit dem Linux-Dateisystem ext4 formatieren. Das hat laut dem Entwickler damit zu tun, dass man zum Beispiel mit dem exFAT-Dateisystem unter Linux keine Berechtigung zum Ausführen von Dateien zuweisen kann. Also: Ihr braucht auf jeden Fall Linux, um Kazeta-Datenträger zu machen. Oder halt zumindest WSL, also das Windows-Subsystem für Linux – also der eingebaute Linux-Kernel in Windows. Unter macOS müsst ihr Linux auf einer virtuellen Maschine laufen lassen. Ich als alter Profi-Linuxer – nee, stimmt nicht –, aber ich benutze ja zurzeit CachyOS als Hauptbetriebssystem. Und da habe ich dann einfach mit der KDE-Partitionsverwaltung den USB-Stick vorbereitet. Also: Einfach reinschieben, dann in den Partitionsmanager die vorhandenen Partitionen löschen und dann auf „Neu“ klicken und dann „ext4“. Ihr solltet bei Berechtigungen noch das Häkchen bei „Jeder“ anhaken.
Schritt 2: Spiel besorgen.
Ja, und da ist wichtig, dass das DRM-frei ist – also ohne Digital Rights Management, also ohne Kopierschutz. Gute Chancen habt ihr da bei GOG – also Good Old Games oder GOG aus Polen. Da gibt es ja nur Spiele ohne DRM. Dahinter steckt übrigens CD Projekt. Das sind die Leute von Witcher und Cyberpunk 2077. Und innerhalb von GOG habt ihr dann die besten Chancen mit Kazeta, wenn es von dem Spiel eine echte Linux-Version gibt. Das seht ihr, wenn ihr hier draufklickt in GOG. Wenn ihr dann so ein Spiel bei GOG gekauft habt, dann habt ihr immer Zugriff auf alle Betriebssystem-Varianten. Ihr wollt natürlich die Linux-Variante runterladen. Da geht ihr also in GOG, in eurem Account, auf das Spiel und klickt dann „System“, dann „Linux“, und dann kann man das hier downloaden. Meistens ist das eine .sh-Datei. Da geht ihr dann in das Verzeichnis, wo ihr das Ding runtergeladen habt – zum Beispiel hier im File-Manager. Rechtsklick auf die Datei, Berechtigungen, Kreuz bei „Die Ausführung als Programm erlauben“ machen, doppelklicken, und schon läuft der grafische GOG-Installer los. Das war hier bei meinem Linux – also CachyOS – die Variante mit der KDE-Desktop-Umgebung. Mit anderen wie GNOME geht das aber auch ganz ähnlich. Und sonst halt einfach auf der Kommandozeile. Ihr kriegt das hin. Also: Ihr dürft halt nur nicht vergessen, die .sh-Datei ausführbar zu machen.
Schritt 3: Spiel auf Datenträger kopieren.
Danach geht ihr dahin, wo das Spiel installiert wurde. Standardmäßig ist das hier im persönlichen Ordner und bei “GOG Games”. Ich habe jetzt mal eines meiner Alltime-Lieblingsspiele “VVVVVV” genommen. Das Spiel selbst ist im “game”-Ordner. Die anderen Sachen hier sind erstmal nicht relevant. Ihr kopiert dann hier in dem Fall einfach diesen “game-Ordner” auf den vorbereiteten, mit ext4 formatierten Kazeta-Datenträger – also so, dass auf dem Datenträger dieser komplette “game”-Ordner drauf ist. In das Wurzelverzeichnis – oder wie wir Fachleute sagen, den Root-Folder – da legt ihr dann eine Textdatei an, die ihr „cart.kzi“ nennt. Die braucht folgende Zeilen:
Name=VVVVVV
Das ist das, was Kazeta dann später in dieser Speicherverwaltung anzeigt. Dann noch
Id=VVVVVV
Das ist dann einfach eine interne ID. Die darf keine Leerzeichen oder Sonderzeichen haben. Dann ganz wichtig
Exec=cd game && ./ "Ausführbare Datei"
Das ist hier in dem Fall „VVVVVV“. Ja, und als letztes
Icon=icon.png
Das sollte einfach eine Bilddatei mit 64 × 64 oder 32 × 32 Pixeln sein. Das Praktische ist, dass GOG-Spiele hier in diesem Support-Ordner immer schon eine icon.png drin haben. Die könnt ihr dann einfach ins Root kopieren, und fertig ist der Kitt, wie man in Norddeutschland sagt. In dem Fall also bei „VVVVVV“ seid ihr dann schon fertig. Nochmal sicherheitshalber überprüfen: Ja, cart.kzi ist drin – stehen die richtigen Sachen drin –, alles klar. icon.png ist auch drin und der Ordner mit dem Spiel. Ja, jetzt könnt ihr den Datenträger auswerfen und das Ding in eure Kazeta-Konsole reinwerfen. Ja, fertig, läuft.
Einige Linux-Spiele brauchen allerdings zusätzliche Libraries. Sollte das also erstmal nicht funktionieren mit eurem Spiel, das ihr nutzen wollt, könnt ihr noch die Linux-Runtime mit in den Root-Ordner werfen und in die kzi-Config-Datei am Ende noch reinschreiben:
Runtime=linux
Diese Runtime-Dateien gibt es auf kazeta.org unter „Docs“.
Ja, und bei Megadrive-Spielen nehmt ihr die „Megadrive-Runtime“. Da schreibt ihr dann bei “Exec” einfach den ROM-Namen rein – also hier in dem Fall “Sonic The Hedgehog (USA, Europe).md”. Ihr könnt dann auch noch Gamescope-Optionen angeben. Da gibt es auch direkt in der Kazeta-Dokumentation die ganzen Optionen. Und nicht vergessen: am Ende dann
Runtime=megadrive
reinschreiben und natürlich die Runtime-Datei auch runterladen und in den Root-Ordner des Datenträgers kopieren. Ach so, ja, die Icon-Datei braucht ihr auch noch. Die müsst ihr aber nicht selbst malen, sondern die gibt es für so gut wie jedes Spiel – also egal, ob alt oder neu oder sonst wo – auf steamgriddb.com. Da gebt ihr hier den Spiel-Namen ein, dann anklicken, dann auf „Icons“, dann auf „64 × 64“, dann auf „PNG“. Dann sucht ihr euch ein schönes aus und klickt auf „Download“. Jetzt einfach noch umbenennen in icon.png und zack, auf den Kazeta-Datenträger – in dem Fall von „Sonic the Hedgehog“.
Ja, und Windows-Spiele, die gehen auch oft oder manchmal. Also, ich hatte damit nicht so riesigen Erfolg, aber ich meine, es gibt natürlich literally Tausende Windows-Spiele. Vielleicht habe ich einfach gerade die falschen genommen. Es müssen keine alten Spiele sein, es klappt auch mit neuen Spielen – muss halt auf den USB-Datenträger passen. Probiert das ruhig aus. Das funktioniert alles auch genauso wie beschrieben, nur dass ihr da dann eben die Windows-Runtime runterladet und in die kzi-Datei
Runtime=windows
hinten reinschreibt. Verwendet wird da übrigens die Laufzeit-Umgebung GE Proton 10.12. Und dann kann man losspielen – also wenn alles geklappt hat.
Ja, was meint ihr? Ist Kazeta eine gute Idee oder findet ihr das total unnötig? Gerne in die Kommentare schreiben. Wir lesen alles, tschüss!
c’t 3003 ist der YouTube-Channel von c’t. Die Videos auf c’t 3003 sind eigenständige Inhalte und unabhängig von den Artikeln im c’t Magazin. Die Redakteure Jan-Keno Janssen, Lukas Rumpler, Sahin Erengil und Pascal Schewe veröffentlichen jede Woche ein Video.
(sahe)