PlanetSwitch Planet3DS PlanetVita PSP.de PlanetiPhone Classics Forum

PGN-ID:[?] (Nicht eingeloggt)
Login
Registrieren
PlanetDS PlanetGameboy N-Page.de

HAM Tutorial 1 - Der leichte Einstieg!

zurück

Autor: ToruX

Kategorie: devtut
Umfang: 1 Seiten

Seite   1  

Kommentare:

Kommentieren (-)

Game Boy Advance Artikel vom 11.10.2002













































HAM Tutorial 1 - Der leichte
Einstieg!
 
Inhaltsverzeichnis:
Einleitung

Download und Installation

Das erste Programm
 
Einleitung:
Hallo liebe Leser,

willkommen zum ersten (aber NICHT letztem )
Tutorial von mir, ToruX.

Da ich HAM doch sehr gerne verwende, handelt auch mein erstes Tutorial
von HAM.


Aber was ist HAM ? Hier eine kleine Übersicht:

HAM ist ein tolles Entwicklungs-Kit, wo (fast) alles drin ist was man
so braucht, nämlich

- ein GCC Compiler,

- ein grafischer Debugger,

- eine sehr umfassende Libary die fast alle Funktionen des GBA beinhaltet.(Die
so genante HAMlib.),

- eine Haufen von Tools (Bildumwandeltool, Soundumwandeltool, ...),

- eine umfassende Dokumentation,

- und eine super einfache Installation (Durch die euch hurik führen
wird, also sollte das nicht allzu schwierig werden.)

Dieses Entwicklungs-Kit mit seiner umfassenden Libary und der Sammlung
an Tools macht den Einstieg in die GBA Programmierung besonders leicht,
da man sich nicht um den ganzen Kleinkram kümmern muss. Dieses tolle
Entwicklungs-Kit verdanken wir Emanuel Schleussinger, der in jeder freien
Minute weiter programmiert! Hier noch Werbung für seine Homepage:
www.ngine.de.

Um das ganze hier zu verstehen braucht ihr eigentlich nur paar C Grundkenntnisse.
Das müsste schon reichen. Erstmal sollten wir Anfangen das Teil runterzuladen,
es zu installieren und unser erstes "Hallo Welt!" Programm zu
schreiben!


Die HAM-Tutorial Serie wird von mir und hurik gemacht, und sollte nach
und nach euch alles erklären, wie man HAM richtig einsetzt. Also
freut euch und lernt daraus. Und nun geht’s eigentlich auch schon
los.

 
Download und Installation:
Also auf www.ngine.de/ham.html
kriegt ihr immer die neusten News zum HAM und sieht ob eine neue Version
raus ist! Aber na ja jetzt müssen wir das ding erstmal runterladen
und da ich euch nicht zumuten kann die Seite nach dem link durchzusuchen
gibt’s hier ein Direktlink zu dem File. Ach so ich hoffe sehr stark
für euch das ihr DSL habt, wenn nicht wünsche ich euch viel Spaß
beim saugen des 40 MB File!

Und hier jetzt endlich der Link: http://www.ngine.de/projects/ham-2.50-win32-full-distro.zip

Ach so seit neustem gibt es auch eine Linux Version. Da ich keine Ahnung
hab wie man die installiert, kann ich euch da leider keine Hilfestellung
leisten! Wäre nett wenn jemand sich da informiert und einen kleinen
text schreibt wie man das macht! In der Zeit wo ihr das runterladet könnt
ihr ruhig weiter lesen! Die armen die ein Modem haben werden sogar wesentlich
mehr lesen können als das hier dauert, deswegen Empfehle ich euch das
Buch: Fünf Ringe von Miyamoto Mushashi.

OK, wenn ihr das File habt müsst ihr einfach in den Download Ordner
gehen und das File entpacken und im Verzeichnis in das ihr es hinein entpackt
habt, einfach die Setup-Datei starten! So dann im Installations-Programm
einfach in das erste kleine Fenster "OK" eingeben. und noch einen
Ordner angeben in den ihr es hineininstalliert haben wollt. So dann auf
"Install" drücken, warten und beim dem Info Fenster nach
dem kopieren der Daten auf OK klicken und schon seit ihr mit der Installation
fertig! Einfach, oder?

Dieser Text würde mit freundlicher Genehmigung
von Andreas „hurik“ Giemza, verwendet.

 
Das erste Programm:
So jetzt habt ihr HAM schon geladen, und seit erfolgreich
mit hurik’s Hilfe durch die Installation gekommen, nun wollen wir
unser erstes Programm schreiben, nur was ?

Na ja, wie sollte es auch anders sein, wie auch in den anderen Programmiersprachen
fangen

wir in HAM mit einem simplen „Hallo, Welt !“ Programm an.

Da will ich jetzt erstmal nichts weiter dazu sagen, und präsentier
euch erstmal den Sourcecode.

#include "mygba.h"


int main(void)

{

    ham_Init();

    ham_InitText(0);


    ham_DrawText(0,0,"Hallo,
Welt !"
);


    while(1)

    {

    }

}


So, das war es auch schon, einfach oder?

Die meisten Sachen, wenn nicht sogar alles kann man, wenn man English
kann, sich schon selbst erklären. Doch keine Angst selbst wenn ihr
es nicht auf Anhieb versteht, ich erkläre es euch ja.


Dann fangen wir mal an!

Alsoooo…Es war einmal vor langer Zeit…Halt, Moment das geht
etwas zu weit.

Also noch mal…

Was haben wir denn alles im Source stehen….

Ahja…


#include "mygba.h"


Diese Zeile steht für „Include“ =) also Include bedeutet
soviel wie Hinzufügen, also fügen wir etwas hinzu, nur was?

Genau, die „mygba.h“ die „mygba.h“ ist eine so
genannte Header Datei, dort stehen wichtige Infos über den GBA drin.
Diese Datei ist in folgendem Verzeichnis HAM:\Include\ (wer hätte
das gedacht?? *g*) zu finden. Ich bin der Meinung das sich die JEDER (mindestens)
einmal anschauen sollte, wenn man auch nicht alles auf Anhieb versteht,
so wie es wohl fast jedem gehen wird, außer den SUPER Programmierern,
sollte man doch mal einen Blick riskiert haben, um wenigstens ein wenig
zu wissen worum es geht, und was auf einem zukommen wird. Auf jedenfall
muss man diese Zeile bei jedem HAM Programm als aller erstes schreiben.


int main(void)

{


Damit starten wir unser eigentliches Programm, dies nennt man Hauptschleife
(von „main“).


    ham_Init();


Mit diesem Befehl Initialisieren wir die HAMLib

Diese HAMLib ist die so genannte Hauptbibliothek von HAM, und ist immer
die erste Funktion in jedem Programm das HAM verwendet.


    ham_InitText(0);


Dieser Befehl Initialisiert die Text Funktion von HAM. In der Klammer
ist eine Null eingesetzt, weil kein direkter Screenmode verwendet wird,
also wird aufgrund der Null automatisch der Screenmode auf 0 gesetzt,
und HAM schreibt den Text auch auf Background 0.


    ham_DrawText(0,0,"Hallo,
Welt !"
);


Das ist dafür da um den Text auf das Display zu kleistern.

0, 0,
gibt die Koordinate auf dem Screen an, die erste 0
steht für die Spalte, und die zweite 0
für die Reihe, das bedeutet das 2,
5, der Text in der 3.
Spalte in der 6. Reihe steht.

Dieser Bereich reicht von:

0-29 Horizontal bis

0-19 Vertikal.


"Hallo, Welt !"


Na ja, das ist halt der Text, den wir ausgeben wollen.


PS: Laut tubooboo (www.ngine.de / Macher
von HAM) ist diese Funktion sehr langsam, es gibt aber keine bessere die
schon direkt mit dabei ist.


    while(1)

    {

    }


Dies Bezeichnet eine Endlosschleife, diese brauchen wir hier, denn ohne
sie würden wir ständig nur das HAM Logo sehen.


}


Damit beendet man nun die Hauptschleife, und somit das ganze Programm.


Nun, somit wären wir am Ende dieses Tutorials angekommen, war doch
gar nicht so schwer, oder?? Nun fassen wir mal kurz zusammen was wir gemacht
haben.

Wir haben etwas „Includet“ also Hinzugefügt nämlich
die „mygba.h“, diese brauchen wir für jedes Programm
das wir machen. Die Hauptschleife erstellt, ham_Init(); und ham_InitText(0);
eingebunden. Der erste Befehl steht für die Initialisierung der HAMLib,
der zweite dafür dass wir Text verwenden können. Danach haben
wir den Text mit dem Befehl ham_DrawText(0,0,“Text“); auf
dem Display ausgegeben. Zusätzlich kam noch die leere Endlosschleife
hinzu, damit unser Programm ewig läuft, und uns nicht nur das HAM
Logo anzeigt. Und Last But Not Least, die Hauptschleife mit dem Zeichen
„}“ wieder verlassen.




! HALT:

Wir sind noch nicht ganz fertig, ich hab bis hierhin beschrieben, wie
der Code aufgebaut ist, und was das alles bedeutet. Nun ist das ganze
ja noch recht theoretisch, und wir wollen ja auch wissen ob es auch so
läuft wie wir es wollen.

Dazu legen wir uns erstmal ein Verzeichnis an, nennen es z.B. „tut1“.

In unserem neuen Verzeichnis erstellen wir nun eine Datei namens „tut1.c“,
dorthinein schreiben wir unseren Code von oben. Wenn wir das gemacht haben,
sind wir schon fast am ende, wir kopieren nun die Datei „startham.bat“
vom HAM-Verzeichnis in unser Verzeichnis „tut1“. Jetzt fehlt
uns nur noch eine Datei namens „makefile“.

Um diese zu bekommen, gibt es zwei Möglichkeiten, entweder wir kopieren
uns eine, oder wir machen sie selbst. Nun ich hab mich jetzt dazu entschlossen,
eine zu kopieren und sie zu editieren, ist ja auch viel einfacher.
So, wir kopieren sie aus dem Verzeichnis HAM:\Samples\Obj\ in unser „tut1“
Verzeichnis. Jetzt kommen wir zum editieren, dazu öffnen wir die
Datei „makefile“ die sich nun in unserem „tut1“
Verzeichnis befinden sollte.

Entweder mit Editor/Notepad oder mit dem DOS-Befehl, „edit“.
Wenn man diese Datei geöffnet hat, steht da ne ganze menge, uns Interessiert
davon eigentlich (noch) nicht allzu viel. Wichtig ist für uns z.B.
Diese Zeile :


PROGNAME = obj


Wir ändern diese ganz einfach in PROGNAME = tut1

Die nächste Zeile die uns Interessiert ist diese


OFILES += main.o modfile.o


Wir ändern diese Zeile einfach in OFILES += tut1.o


Somit wären wir schon fast fertig. Wir wollen jetzt nur noch folgendes
ändern,


######################################

# custom Makefile targets start here

######################################


modfile.o: module.mod

$(LD) -A elf32-littlearm --format binary --oformat elf32-littlearm module.mod
-o modfile.o -r -EL -T $(LIBDIR)/bin2rodata.x


grfx: makefile

gfx2gba -ogfx -t8 -D -fsrc gfx\\balls.bmp

gfx2gba -ogfx -t1 -D -fsrc -pbg.pal gfx\\bg.bmp


Da in unserem ersten Tutorial noch nicht weiter verwendet wird außer
Text können wir die Zeilen, nach dem


######################################

# custom Makefile targets start here

######################################


einfach löschen. So das das, hinterher das letzte ist was in unserer
makefile Datei steht.

Speichere diese Datei jetzt ab. Führe nun in unserem Verzeichnis
die „startham.bat“ aus und tippe den Befehl „make“
ein, und drücke die Taste [ENTER]. Damit gibst Du den Befehl zum
Kompilieren deines Codes. In unserm falle also der „tut1.c“
im Verzeichnis sollte sich nun die Datei tut1.gba befinden. Diese Kann
jetzt im Emulator verwendet werden, oder auch per FalshCard auf dem GBA
ausgeführt werden. Um aber den Code gleich im Emulator zu starten
gibt man folgenden Befehl ein: „make vba“ somit wird wieder
unsere „tut1.gba“ Datei erzeugt und danach gleich im Emulator
ausgeführt. Probiert es einfach mal aus.

So das war es jetzt erstmal von mir, ich hoffe es hat euch wenigstens
ein wenig gefallen, und würde mich freuen euch im nächsten Tutorial
wieder zu treffen. Also bis dahin wünsch ich euch noch viel spaß,
beim herumexperimentieren mit HAM.


Bei fragen, Anregungen etc. meldet euch im Board ich
werde versuchen euch alle Fragen bezüglich dieses Tutorials zu beantworten.


Bis denn, euer ToruX

© by
"ToruX"
< vorige Seite Seite   1   nächste Seite >