Nintendo DS:

Hello World Tutorial

 

Dieses Tutorial richtet sich an all Diejenigen, die für den Nintendo DS programmieren wollen und nur ein wenig Programmiererfahrung haben. Ich gehe jedoch davon aus, dass ihr DevkitPro und LibDS schon eingerichtet habt. Wenn nicht, könnt ihr euch dieser automatischen Installationsdatei von DevkitPro bedienen:

http://sourceforge.net/projects/devkitpro/files/Automated%20Installer/

Jetzt braucht ihr noch folgende Datei:

hallo.zip

Das Archive enthält ein neues Projekt, wodurch euch einige Einrichtungen erspart bleiben. Es ist bis auf die „main.c“ mit einem Beispielprojekt der DevkitPro-Programmbeispiele identisch.

Entpackt die Datei an einen Ort eurer Wahl und ihr werdet einen Unterordner namens „sources“ sehen. Öffnet diesen und öffnet die darin enthaltene Datei „main.c“ mit einem Texteditor. DevkitPro liefert z.B. direkt das sogenannte „Programmer‘s Notepad“ mit.

Schreibt nun folgenden Code in die Datei:




Mit der include-Anweisung haben wir die Dateien „nds.h“ und „stdio.h“ in unser Programm eingebunden. Der Dateiname „stdio.h“ ist eine Abkürzung für „Standart Input/Output Header“ und enthält, wie der Name schon sagt, alle möglichen Deklarationen, die für die Bildschirmein- und Ausgabe für C-Programmierer von Bedeutung sind, inklusive der Deklaration der Ausgabefunktion „printf()“, die wir später verwenden werden. „nds.h“ ist eine Datei aus der libDS Library, welche speziell für die Nintendo DS Programmierung erstellt worden ist und somit exklusiv für Nintendo DS Programmierer von Interesse ist.

Als nächstes schreiben wir unter unsere Includes folgenden Code:




Dies ist die Hauptfunktion eines C-Programms und in der Regel die erste Funktion, die bei einem Programm ausgeführt wird. die geschweiften Klammern sind der Anfang und das Ende der Funktion.

Das „int“ vor „main(void)“ gibt an, dass die Funktion einen Integerwert zurückgeben kann. Da wir nichts zurückgeben, werden wir hier nicht weiter darauf eingehen, jedoch ist ein „void“ statt ein „int“, welches man vor Funktionen benutzt, die nichts zurückgeben sollen, vor „main(void)“ nicht C-Konform und nicht jeder Compiler kann den Code am Ende kompilieren.

Das „void“ in den runden Klammern sagt dem Compiler nur, dass wir die Funktion nicht mit irgendeinem speziellen Wert aufrufen und sie sich nicht irgendwelchen Umständen im Programm anpasst. Da es sich um die Hauptfunktion handelt ist es nicht weiter verwunderlich, warum wir hier „void“ benutzen, oder?

In die geschweiften Klammern schreiben wir den folgenden Code:




Die Funktion consoleDemoInit() initalisiert die Konsole und setzt sie auf den unteren Bildschirm des NDS.  Mithilfe der Konsole sind wir in der Lage Text ausgeben zu lassen. Das Semikolon am Ende sagt dem Compiler, dass der Aufruf der Funktion hier endet.

Mit der Funktion „printf“ wird Text ausgegeben. In den runden Klammern ist diesmal nicht, wie bei der Hauptfunktion, „void“, sondern ein expliziter Wert, „Hello World“, mit dem wir die Funktion aufrufen. Die Funktion selbst nimmt sich diesen Wert und gibt ihn aus. Wichtig hierbei ist, dass der auszugebende Text immer in Anführungszeichen stehen muss, damit der Compiler überhaupt weiß, dass es sich bei dem Text um einen Text handelt.

"return 0;" hat keinen sichtbaren Effekt für euer Demo. Viele Kompiler geben jedoch eine Warnung aus, wenn ihr es nicht hinzufügt, da eure Hauptfunktion mit "int" aufgerufen wurde und einen Rückgabewert verlangt.


Hier noch einmal das vollständige Programm, damit ihr euch sicher sein könnt, Alles richtig gemacht zu haben. Außerdem können die absoluten Anfänger unter euch sehen, wie man ein Programm mithilfe von Tabstops und Leerzeichen übersichtlicher macht.




Kompiliert den Code indem ihr in die Eingabeaufforderung geht, in den Pfad eures Projekts wechselt und „make“ eingebt und bestätigt.

Wenn ihr den Code kompilieren könnt, ohne, dass es eine Fehlermeldung gibt, habt ihr alles richtig gemacht und es sollte eine neue nds-Datei in eurem Projektordner befinden. Diese könnt ihr wie jede andere NDS-Demo mit einen Emulator öffnen oder sie auf eine NDS-Flashkarte ziehen und sie auf der Originalhardware öffnen. Letzteres ist insofern interessant, als dass Demos entstehen können, die zwar auf einem Emulator laufen, aber nicht auf der Originalhardware.