#80 – GB(A) Flash Cartridges

Im Rahmen der Umsetzung des ersten retrololo-Albums für den Game Boy Advance (Artikel 77) habe ich viel mit Game Boy (Advance) Flash Cartridges herumgespielt. Bevor die ganzen Erfahrungen (und somit das ganze Wissen) wieder verloren geht, möchte ich die gewonnenen Erkenntnisse in diesem Artikel zusammenfassen und euch ein paar Flash Cartridges für die Game Boy Plattform vorstellen.

Den „Flash Advance Linker Xtreme“ kennt ihr ja bereits. Mit ihm lassen sich spezielle von Visoly hergestellte „Flash Cartridges“ beschreiben. Wie es der Zufall will, habe ich in der Zwischenzeit tatsächlich nochmal zwei weitere Flashcarts für den FALX auftreiben können. Mit diesen wollen nochmal etwas herumspielen. 🙂

Ironischerweise bietet das größere Modul (in einem eher „GBA-untypischen“ Format) nur 64Mbit (8MB) Speicher, während man auf der kleineren bis zu 256Mbit (32MB) an Daten unterbringt. Optisch passt die 64M-Cartridge aber deutlich besser zum Gerät selbst, ich könnte mir vorstellen, dass diese damals beim Kauf mit dabei war.

Auch die dazugehörige Software (XtremeLink) haben wir schon kennengelernt…

Ich kann euch sagen, bis ich das gute Stück zum Laufen bekommen habe, ist einiges an Zeit vergangen. Die unsignierten Treiber und der offiziell nicht vorhandene Support für Windows XP machten die Sache auch nicht leichter. Ich war echt froh, als mein alter Laptop den Writer erkannt hatte.

Fun Fact: Ich glaube, das ist in Artikel 77 gar nicht so rübergekommen. Oder es war Absicht? Immerhin war der Artikel schon recht lang und es ging ja eigentlich mehr um das Album im GBA-Format als um technische Probleme mit Retro-Hardware! 😉

Neben dem einfachen Beschreiben einer Flashcartridge kann man mit Hilfe von XtremeLink auch ein „Multimodul“ erstellen. Schreibt man nur eine ROM-Datei auf die Flashkarte, wird der Flashspeicher „ganz normal“ bestückt. Schreibt man dagegen mehrere ROM-Dateien auf einmal, wird automatisch ein Menü zur Auswahl verschiedener ROM-Dateien miteingefügt.

Alleine das Modul sieht merkwürdig aus, wenn es im Game Boy steckt! 😀

So sieht ein „Multimodul“ samt Menü dann in der Praxis aus. Es besteht sogar die Möglichkeit ein eigenes Menü zu programmieren und dieses als Vorlage zu hinterlegen.

Fun Fact: Technisch definitiv machbar, aber ich denke darauf kann ich verzichten. Lebenszeit und so… 😉

Bei der Software waren ein paar Beispielanwendungen dabei. Zugegeben, nichts Weltbewegendes (überwiegend kleine Demos) aber es ist schon lustig, da diese Programme wohl kaum jemals jemand zu Gesicht bekommen hat. xD

Tatsächlich gibt es auch (sofern man XtremeLink nicht verwenden möchte) diverse alternative Software, wie z.B. „LittleWriter“. Das Tool wird weitgehend als die beste Flashkartensoftware angesehen und bietet Kompatibilität zu Linkern diverser Hersteller. Da ich mit der Originalsoftware gut klarkomme, werde ich aber nicht weiter damit herumspielen… 🙂

Jetzt wo ich so darüber nachdenke fällt mir doch glatt ein Schritt ein, den ich euch beim letzten Mal vollständig unterschlagen habe: Die Vorbereitung der GBA-ROM-Datei! In den meisten Fällen muss diese nämlich noch modifiziert werden um überhaupt auf realer Hardware lauffähig zu sein. Das liegt daran, dass nach dem Kompilieren die entsprechenden Metainformationen (Header, Prüfsumme, …) nicht vorhanden oder inkorrekt bestückt sind. Zur Anpassung der Parameter kann man z.B. das FlashAdvance Toolkit verwenden.

Eine Alternative stellt GBA Tool Advance dar, damit lassen sich die Headerinformationen auf Konformität prüfen und bei Bedarf auch reparieren.

Doch genug der Theorie, schauen wir uns lieber noch zwei weitere Flashcartridges für den GBA an! 🙂

Zum einen wäre da die „Super Card SD“. Dieses Modul ist sehr günstig zu bekommen, bietet dafür aber einen ganz guten Funktionsumfang. Das einzige was wirklich sehr gewöhnungsbedürftig ist, ist das Handling – komfortabel geht anders! 😀

Wer z.B. denkt, dass er einfach Spiele auf eine MicroSD-Karte packen kann und die über das Modul abspielen hat sich geschnitten. Zum einen muss man wissen, dass die Super Card SD keine SDHC oder SDXC-Karten unterstützt. Gut, dass ich noch eine alte 2GB-MicroSD-Karte besitze.

Not so fun Fact: Wichtig ist, dass die MicroSD-Karte FAT(16) formatiert wird, mit FAT32 und NTFS kann die Super Card nichts anfangen. Ebenso darf die Karte nicht größer als 2GB sein, sonst wird sie auch nicht erkannt.

Bevor man loslegt sollte man die Firmware der Karte updaten.

Fun Fact: Die wenig hilfreichen Anweisungen auf der Verpackung kann man sich dabei getrost schenken. Die verwirren mehr als dass sie helfen… 🙂

Auch versteht die Super Card SD leider nicht das „native“ GBA-Format. Stattdessen müssen die einzelnen ROM-Dateien mit Hilfe einer speziellen Software gepatched werden, damit sie von der Karte erkannt werden.

Fun Fact: Ich kann euch sagen, das war ein Abenteuer. Das Tool ist sehr zickig und läuft extrem instabil. Typische Retro-China-Software! 😀 Beispiele gefällig? Sonderzeichen im Dateinamen? Absturz! Software nicht als Administrator gestartet? Absturz! Software läuft länger als 10 Minuten? Absturz! 😀

So, aber jetzt müssten wir doch ein paar Spiele spielen können, oder? Zumindest werden die Dateien erkannt:

Not so fun Fact: Größter Nachteil der Super Card SD ist, dass sie nicht mit allen Spielen kompatibel ist und auch mit einigen Titeln Performanceprobleme (Ruckler, Soundaussetzer) hat. Dafür kostet die Karte im Vergleich zu ihren Konkurrenten aber auch nur die Hälfte.

Und siehe da, ein einfacher Test mit „Banjo Kazooie Grunty’s Rache“ funktioniert ohne Probleme – nice! 🙂

Kommerzielle Spiele haben wir also zum Laufen bekommen – so weit so gut. Aber wie ist das mit Homebrew (selbst programmierten) Anwendungen? Was würde sich das besser eignen als das in Artikel 77 programmierte retrololo-Album für den GBA? 😉

Ich muss gestehen ich habe definitiv mit mehr Widerstand gerechnet, aber was das angeht ist das Handling auf der Super Card SD tatsächlich mal sehr einfach. Anstatt die Dateien mit der “Super Card” Software zu patchen, muss die ROM einfach ohne Veränderungen direkt nach dem Compile lediglich im Hauptverzeichnis der SD-Karte abgelegt werden.

Schauen wir uns abschließend noch eine etwas neuere Flashkarte an, das „EZ-Flash iV“.

Das EZ-Flash iV ist in der Handhabung wesentlich einfacher, als die Super Card. Es bietet eine deutlich bessere Kompatibilität als die Super Card und macht das Patchen von ROM-Dateien obsolet. Spiele können einfach auf eine MicroSD-Karte kopiert und gestartet werden.

Fun Fact: Auch können hier MicroSDHC-Karten bis 32GB verwendet werden, nice! 🙂

Auch optisch passt das EZ-Flash iV besser zum Game Boy Advance als die Super Card, aber das sei nur am Rande erwähnt! 😉

Leider bleibt beim Versuch unser selbst programmiertes retrololo-Album zu starten der Bildschirm weiß. Woran liegt das?

Ironischerweise stellt sich das EZ-Flash iV was Homebrew-Anwendungen angeht deutlich „blöder“ an, als die Super Card! Das liegt daran, dass beim Startvorgang eines Spiels automatisch versucht wird den entsprechenden Patch anzuwenden und das schlägt bei einem nicht kommerziell veröffentlichten Programm natürlich fehl. Um den Patchvorgang zu umgehen, kann man das Spiel mit gedrückter Tastenkombination (“L + B”) starten. Dann greift der automatische GSS-Patch nicht und die Anwendung läuft! 🙂

Wenn man sich das Drücken der Tastenkombination sparen möchte, kann man auch alternativ die ROM zur Liste von “non-patched games” hinzufügen. Hierfür muss die Konfigurationsdatei „KEYSET.CFG“ im Hauptverzeichnis der MicroSD-Karte angepasst (GSS für Spiel deaktivieren) werden.

Im Endeffekt muss man nur eine neue Zeile mit einer „Game ID“ einfügen…

Damit das EZ-Flash iV die ROM auch zuordnen kann, muss die Game ID natürlich auch noch im Header der ROM-Datei hinterlegt werden. Sofern man nicht bereits ein geeignetes grafisches Tool zum Bearbeiten des Headers verwendet hat, kann man auch die ROM mit einem Hexeditor editieren und händisch eine Game ID (4 Bytes an Offset 0xAC) einfügen.

Fun Fact: Yeah, da fühlt man sich wie ein richtiger Hacker! 😛

Was bei beiden Modulen gleich läuft ist das Savegame-Management. Um Spielstände zu speichern benötigt es einen Neustart der Konsole. Erst durch diesen Vorgang wird der Spielstand zurück auf die SD-Karte geschrieben. Etwas umständlich, aber funktioniert!

So, Schluss für heute – ich denke es wird Zeit für ein Fazit! 🙂

An sich sind Flashkarten eine feine Sache. Zum einen kann man seine originalen Module schonen, andererseits bieten sie die Möglichkeit selbst zu experimentieren und Software für den Game Boy (Advance) zu schreiben! 🙂

Fun Fact: Mit dem Everdrive GBA gibt es mittlerweile eine noch bessere (komfortablere) Flashcart für den Game Boy Advance (z.B. entfällt hier der Neustart der Konsole zum Speichern eines Spiels). Auch bietet das Everdrive in der maximalen Ausbaustufe (X7) sogar die Möglichkeit Savestates zu setzen und so den Fortschritt unabhängig von „normalen Speicherpunkten“ zu sichern. Leider spiegeln sich diese ganzen tollen Funktionen auch im Preis deutlich wieder, für unter 100€ ist ein Everdrive GBA kaum zu bekommen. Ich persönlich bin mit dem EZ-Flash iV recht zufrieden. Zum einfachen „zocken zwischendurch“ reicht es allemal. Und wenn man ehrlich ist, tut es auch gut, ab und zu mal ein originales Modul in den Händen zu halten – Nostalgie! 😉

In diesem Sinne, ich bin dann mal weg. Es wird Zeit mit Machollo und Karnimani ein paar Tempel in „Pokémon Mystery Dungeon: Team Rot“ zu erkunden!

Bleibt lässig! 😉

Write a comment