De:Mit der GP2X-Programmierung anfangen
Contents |
Überblick
Der GP2X ist ein Handheld mit interessanter Hardware. In ihm sind drei Arten von Speicher eingebaut:
- RAM (64 MB)
- NAND-Flash-Speicher (64 MB) - enthält den Bootloader, das Betriebssystem und die üblichen Libraries
- SD-Karte (erhältlich von 16 MB bis 4 GB) - enthält Anwendungen, Musik, Videos, E-Books, etc.
Nach dem Anschalten des Geräts zeigt ein weißer Bildschirm das 'Hardware-Booten' (BIOS / etc.), das GP2X-Logo mit schwarzem Hintergrund zeigt das Starten des Bootloaders an und das mit grünem Hintergrund das Starten von Linux.
Schließlich wird /usr/gp2x/gp2xmenu gestartet, was dem Benutzer erlaubt, mit dem Gerät zu Arbeiten. Mittels dieses Oberfläche kann der Benutzer dann eine Datei zur Anzeige (Video, Audio, Text, usw.) auswählen oder ein Programm starten.
Alternativ - wenn der Benutzer Autorun aktiviert hat - wird die Datei 'autorun.gpu' gestartet, nach der zuerst auf der SD-Karte und dann im NAND-Speicher gesucht wird.
Übliche Ziele
Emulation
Dieses Ziel beinhaltet die Verwendung eines Software-Emulators auf dem GP2X, mit dem Spiele, die ursprünglich für andere Plattformen entwickelt worden sind, auf dem GP2X gespielt werden können. Emulation hat den Vorteil, dass mit dem Erscheinen eines Emulators gleich mehrere Dutzend oder gar hundert "neue" Spiele auf einmal da sind. Nachteile sind allerdings Performanceverluste (Emulatoren sind üblicherweise langsamer als das Original), Schwierigkeiten bei der Verwendung (wenn man einen verborgenen Bug vergisst mit zu emulieren) und rechtliche Probleme (die Binärdateien, Graphiken und Musikclips sind üblicherweise Urheberrechtlich geschützt).
Einen guten Emulator zu schreiben ist schwer - ein bestehendes Spiel für einen vorhandenen Emulator in eine Binärdatei zu verwandeln schon einfacher, doch beide Tätigkeiten sind nützlich für die Community.
- Wahrscheinlichkeiten für die Entwicklung verschiedener Emulatoren
- Emulation in der Wikipedia
- Emulatoren im Software-Verzeichnis und in Arbeit
Portieren
Dieses Ziel beinhaltet das Verändern des Quellcodes existierender Anwendungen, sodass diese auf dem GP2X laufen. Portieren hat den Vorteil, dass eine weitere Anwendung oder ein Framework für den GP2X bereitgestellt wird, wobei man aber die Arbeit anderer mit benutzen kann und nicht alles von Grund auf neu entwickeln muss. Das Portieren kann im ändern der Tasten-/Joystick-Belegung liegen oder im Neu-Schreiben eines Spiels, sodass es von den Vorteilen des GP2X profitieren kann.
Das Spiel "Super Methane Brothers" kann als Beispiel-Portierung angesehen werden. Der Quellcode läuft auf mehreren Plattformen und verwendet eigene - generische - Routinen zum Animieren von Sprites, Laden von Fonts und Zeichnen des Bildschirms (im RAM). Der zu portierende Teil leitet den Speicher (mittels SDL) auf den Bildschirm weiter, die Musik (mit MikMod) an die Lautsprecher und den Joystick auf die Bedienelemente des GP2X (wiederum durch SDL). Das Resultat ist ein voll funktionsfähiges Spiel (das übrigens auch noch Spaß macht).
Es ist zu beachten, dass "Portieren" der Ausdruck für das Umschreiben jeglicher Software anderer Plattformen für den GP2X ist. Das Betriebssystem, die SDL-Libraries und die meisten Emulatoren sind portierte Anwendungen. Software für den GP2X portieren hilft, den GP2X nützlicher und ansprechender zu machen.
- Portierung in der Wikipedia
Homebrew
"Homebrew" sind solche Programme, die von Benutzern als Hobby - im Gegensatz zu kommerzieller Software - entwickelt werden. Da der GP2X eine sehr kleine Zielgruppe hat und es nur wenige kommerzielle Spiele für ihn gibt, kann die meiste Software für den GP2X als Homebrew betrachtet werden. Spiele von Ein-Mann- oder kleinen Firmen (wie Vektar oder Payback ) werden oft auch als Homebrew gewertet, weil sie auch meist als Hobby weiterentwickelt werden.
Erste Schritte
Um mit der Entwicklung für den GP2X anzufangen, solltest Du
- eine Entwicklungsumgebung einrichten (siehe unten).
- das Demo-Programm testen.
Einrichten einer Entwicklungsumgebung
- Einrichten einer Entwicklungsumgebung (Windows)
- USB-Networking mit Windows
- Einrichten einer Entwicklungsumgebung (Linux)
- USB-Networking mit Linux
- Einrichten einer Entwicklungsumgebung (Mac)
- Linux-LiveCD mit allem, was man braucht
Hinweise für das Schreiben von eigenen Spielen
- Lies die SDL-FAQ, Entwicklungs-FAQ und die Entwicklungs-Tutorials .
- Du könntest auch den Artikel über Low-Level-Hardware-Hacking lesen, sowie die Hardware-Spezifikationen
- Neben SDL gib es auch alternative SDKs .
- Fühle Dich frei, der GPX-DEV-Mailing-Liste beizutreten, dem deutschen Forum, dem englischen Forum oder auch dem GP2XDEV-IRC-Channel.
Programme für den GP2X kompilieren
Es ist vermutlich das beste, Libraries statisch dazuzulinken, dann kannst Du nämlich die .gpe-Datei einfach auf den GP2X kopieren. Wenn du allerdings dynamisch linkst, musst du beim übertragen der Libraries vorsichtig sein! Falls du die gültigen Libraries in /lib überschreibst, könntest du deinen GP2X in einen teuren Backstein verwandeln. Am besten, Du schreibst ein Shellskript, das LD_LIBRARY_PATH auf das Verzeichnis mit deinen Libraries setzt und dann das Programm startet.