Endianness bei ROMs korrigieren

Einige ROMs wie z.B. vom Nintendo 64 sind als Big Endian gespeichert. Je nach Dump, kann es aber vorkommen das diese im Little Endian-Format gesichert wurde. Bei Big Endian wird das höchstwertige Byte zuerst gespeichert, während Little Endian mit dem niedrigstwertigen Byte beginnt. Soll die Bit-Reihenfolge umgedreht werden, so kann hierfür das Werkzeug uCON64 genutzt werden. Nach der Installation mittels Homebrew:

brew install ucon64

kann das Tool genutzt werden. Es kann dabei mit einer Vielzahl an ROM-Formaten umgehen. Mit diesem Skript können die Dateien in ihre Big Endian-Form konvertiert werden:

#!/bin/sh
find . -type f \( -iname "*.n64" -o -iname "*.v64" -o -iname "*.z64" \) -print0 |
while IFS= read -r -d '' f; do
  if ucon64 "$f" | grep -q "Interleaved/Swapped: Yes"; then
    ucon64 --nbak --swap "$f"
  fi
done

Auf diese Weise wird sichergestellt, dass alle ROMs im einheitlichen und historisch korrekteren Format vorliegen.

Commodore 64 Emulator für macOS

Immer wenn ich einen Emulator für den Commodore 64 unter macOS nutzen wollte, habe ich in den letzten Jahren VICE genutzt. Allerdings wirkte VICE mittlerweile etwas angestaubt, sodass ich mich ein wenig umgeschaut habe und auf Virtual64 gestoßen bin. Neben dem Download über die Projektseite kann VirtualC64 über Homebrew installiert werden:

brew install virtualc64

Nach der Installation kann der Emulator gestartet werden und verlangt einige initiale Konfigurationsschritte.

Die ROMs müssen konfiguriert werden

Konfiguriert werden müssen die ROMs für das BASIC, den KERNAL und den Zeichensatz. Optional kann auch ein ROM für das 1541-Diskettenlaufwerk konfiguriert werden. Da die urheberrechtliche Situation dieser ROMs unklar ist, werden sie nicht mit dem Emulator mitgeliefert. VirtualC64 bietet die Möglichkeit freie Nachbauten dieser ROMs zu nutzen.

Ansonsten kann ein Original-ROM-Set genutzt werden:

basic.901226-01.bin
characters.901225-01.bin
kernal.901227-03.bin
1541-II.251968-03.bin

Nachdem die ROMs konfiguriert sind, kann der Emulator in Betrieb genommen werden. Neben den Grundfunktionalitäten, wie der Konfiguration der Joysticks bietet der Emulator eine Reihe von Funktionen, um in die Tiefe zu gehen, wie z.B. unterschiedlichste Inspektoren für die internen Zustände des Computers.

Ein Programm wird geladen

Der Quelltext des Emulators ist auf GitHub zu finden. Er ist unter der GPL in Version 2 lizenziert und damit freie Software.

Patching mit Beat

Zum Patchen von ROM-Dateien gibt es viele unterschiedliche Formate wie z.B. das IPS-Format. Als Nachfolger für eben dieses Format versteht sich BPS. Mit dem BPS-Format werden viele Beschränkungen des IPS-Formates aufgehoben, so gilt z.B. die Beschränkung auf 16 MiB für die Patch-Dateien nicht mehr. Auch die Information welches ROM sich für den Patch eignet, wird in den BPS-Dateien hinterlegt.

Beat unter Windows

Entwickelt wurde das Format von dem Entwickler hinter den Emulatoren bsnes und Higan. Heruntergeladen werden kann beat, die Software mit welcher BPS-Patches angewendet und erstellt werden, über die offizielle Seite des Autors. Lizenziert ist das Tool unter der GPL3 und damit freie Software.

MultiPatch; IPS-Patching unter macOS

Bei der Emulation von Spielen wie z.B. solchen für das SNES beschränken sich einige Spieler nicht nur auf das Spielen, sondern verändern ihre Lieblingsroms. Bei diesem sogenannten Rom Hacking, werden Patches erstellt, welche auf die ROMs angewendet werden können. Finden kann der geneigte Nutzer solche ROM-Hacks z.B. unter romhacking.net.

Meist liegen diese Patches in Form von sogenannten IPS-Dateien vor. Für Windows existieren eine Reihe von Werkzeugen, um solche Patches auf die entsprechenden ROMs anzuwenden. Bei einem entsprechenden Tools für macOS musste ich etwas suchen, bin aber schließlich mit MultiPatch fündig geworden.

MultiPatch unter macOS

Mithilfe von MultiPatch ist es möglich unterschiedlichste Patch-Formate wie IPS, BPS, UPS, PPF, XDelta, BSDiff und RUP auf ROMs anzuwenden. Heruntergeladen werden kann MultiPatch über die offizielle Seite des Autors. Daneben ist der Quelltext auf GitHub zu finden. MultiPatch selbst ist unter der GPL lizenziert und damit freie Software.

GameBoy-Adventures einfach entwickeln

Heute ist das dreißigjährige Jubiläum des GameBoy. Da wird der eine oder andere sicherlich nostalgisch an die gute alte Zeit zurückdenken. Nun kann auf dem GameBoy nicht nur gespielt werden was die Hersteller damals veröffentlichten, sondern auch eigene Entwicklungen für den GameBoy erstellt werden.

Das GB Studio unter macOS

Den meisten dürfte dies allerdings zu kompliziert sein. Schließlich ist der GameBoy aufgrund seiner begrenzten Ressourcen keine sonderlich einfache Umgebung. Mit dem GB Studio soll die Entwicklung trotzdem einfach möglich sein. Mithilfe des GB Studios ist es möglich grafische Adventure schnell und unkompliziert im Stil eines Game Makers zu erzeugen. Als Export-Formate werden ROMs und ein Web-Export unterstützt.

Das Spiele-ROM läuft im Emulator

Lizenziert ist GB Studio unter der MIT Lizenz. Da es auf Electron aufbaut, existieren Versionen für macOS, Linux und Windows. Der Quelltext des Projektes ist auf GitHub gehostet. Er ist unter der MIT-Lizenz lizenziert und damit freie Software. Die offizielle Seite des Projektes, auf der unter anderem die Dokumentation zu finden ist, ist unter gbstudio.dev zu finden.