|
Verfasser |
Nachricht |
Unbekannt
Holiday News-Writer
Beiträge: 1.600
Gruppe: User
Registriert seit: Mar 2010
Status:
Offline
Danke erhalten: 4404
|
[TuT, Update] Hello World in C
Vorwort
Da mein anderes Tutorial falsch erklärt wurde, habe ich hier ein Update des altens, der ja geschloßen wurde. Hier ist alles benutzerfreundlich erklärt und die Anwendung lässt sich auch ausführen. James_Cutter hat es getestet.
_____________________________________
Konditionen
_____________________________________
Fangen wir an...
Installierung der Entwicklungs Umgebung
Zuerst downloaden und installieren wir die Entwicklungs Umgebung, also das PSP SDK. Danach macht ihr das gleiche mit Dev-C++.
Projekt erstellenNachdem wir alles installiert und Dev-C++ initalisiert haben, sehen wir bei Dev-C++ ein graues, wenig eindrucksvolles Feld, damit sich das ändert, gehen wir auf File > New > Project...
.
Nun erscheint ein Fenster, dort wählen wir Empty-Project aus und geben unten den Namen eures Programms aus, in diesem Fall, PSP HelloWorld. Aber bevor ihr auf "OK" klickt, wählt ihr bei der Checkbox "C Project". Nun fragt Dev-C++ uns ab, wo wir unser Projektmappe
speichern, hierfür erstellen wir uns einen Ordner, nennen ihn beliebig um, ich habe ihn z.B hwPSP genannt (helloworldPSP). Nun speichert ihr die Datei ab. Zunächst sehen wir wieder das "graue Feld", jetzt erstellen wir uns unseren leeren Script über File > New> Source File. Zum Schluß laden wir von oben die pspcallbacks.h und die makefile herunter und verschieben sie in den Ordner.
Ab ans coden...
Jetzt wird gecodet! Im leeren "Source File" schreiben wir als erstes welche Dateien eingebunden werden. Wenn die Dateien nicht engebunden werden, kann es zu Fehler kommen, da der Compiler ohne die Dateien manche Befehle nicht kennt (z.B printf).
#include <pspkernel.h> #include <pspdebug.h> #include "pspcallbacks.h"
Die in den Gänsefüßchen stehende Header-File, ist die pspcallbacks.h, diese wir vorhin in den Ordner verschoben haben. Die Gänsefüßchen bedeuten dass die zueinbindende Datei sich im Ordner des selben Projekts befinden. Die in den Kleiner-/Größerzeichen ("<" und ">") stehenden Dateien befinden sich im $PATH. Zur Erläuterung von pspcallbacks.h, später mehr.
#define printf pspDebugScreenPrintf
Mit "#define" werden Befehle definiert. Da pspDebugScreenPrintf lang ist, kann man anstatt das, printf nehmen. Also printf wird von pspDebugScreenPrintf definiert.
Nun schreiben wir int main(), dies ist die Hauptfunktion. Praktisch die Einleitung.
int main() { // Hier steht die Anweisung }
zwichen den geschweiften Klammern stehen immer eine Anweisung, damit auch jetzt Anweisungen hinkommen schreiben wir erst drei Funktionen.
int main() { pspDebugScreenInit(); pspDebugScreenClear(); SetupCallbacks(); // ....
}
Erklärung
Mit der Funktion pspDebugScreenInit() wird uns erlaubt etwas auf dem Bildschirm auszugeben. Mit pspDebugScreenClear() wird der Bildschirm bereinigt. Nun kommt die Erklärung zur Header-Datei, "pspcallbacks.h": Die ist dazu dar, das wir die "SetupCallbacks"-Funktion nutzten können, man muss die Datei nicht inkludieren, aber sonst müsste man den Code einwenig umständlicher schreiben . Also SetupCallbacks() erlaubt es, ein Callback zu machen, also die Home-Taste kann genutzt werden.
Nun streiten wir zur Tat und lassen Hello World auf dem Bildschirm der PSP drucken.
printf("Hello World\n"); sceKernelSleepThread();
printf ist der definierte Befehl um etwas auf dem Bildschirm der PSP "drucken" zu können. Das \n steht hierbei für einen Zeilenumbruch nach Hello World, "\n" ist ein Escape-Code .
Nun schreiben wir return 0 für den Rückabewert und schließen die Anweisungen mit einer geschweiften Klammer.
Ganzer Code:
//Hello World by Dein-Name #include <pspkernel.h> #include <pspdebug.h> #include "pspcallbacks.h" #define printf pspDebugScreenPrintf PSP_MODULE_INFO("Hello World",0,1,1); int main() { pspDebugScreenInit(); pspDebugScreenClear(); SetupCallbacks(); printf("Hello World\n"); sceKernelSleepThread(); return 0; }
Nun speichern wir den ganzen Code als "main.c" ab.
Compilieren und ErstellenNun compilieren wir unser kleines PSP Programm, in dem wir die CMD öffnen (Start > Suchen > CMD). Nun kopieren wir den Pfad unseres Projekt-Ordners, in meinem Fall C:\Dev-Cpp\psphw2. Nun geben wir cd ein und fügen (mit rechter Maustaste ins Kontextmenü und auf Einfügen) den Pfad zum Projekt ein, Beispiel:
cd C:\Dev-Cpp\psphw2
und bestätigen mit Eingabe.
Nun sollte man im Pfad des Projektes sein. Nun compilieren und erstellen die Datei, indem man "make" eingibt.
Was ich noch sagen kann, ihr seid fertig, nun müsstet ihr eine Eboot im Ordner vorfinden, diesen könnt ihr mit dem PBPUnpacker editieren.
Nochmal großes Danke an James_Cutter der die Homebrew getestet hat.
Umlaute in C
Auch in C gibt es Umlaute. Umlaute werden als Sonderzeichen gewertet und können über Hexadezimal geschrieben werden.
ä : \x84
ö : \x94
ü : \x81
Ä : \x8E
Ö : \x99
Ü : \x9A
ß : \xE1
//Äußerung #include <pspkernel.h> #include <pspdebug.h> #include <pspcallbacks.h> #define printf pspDebugScreenPrintf PSP_MODULE_INFO("aeusserung",0,1,1); int main() { pspDebugScreenInit(); pspDebugScreenClear(); SetupCallbacks(); printf("Dies ist eine \x84u\xE1erung...\n"); sceKernelSleepThread(); return 0; }
Ausgabe: Dies ist eine Äußerung...
@Mods: Dieser Thread existiert ja schon, deswegen möchte ich das der andere gelöscht wird oder so, oder das ich ihn bearbeiten kann.
Ab Sofort werden alle unnötigen PNs nicht mehr beantwortet. Ich bin wieder mal weg von PSPKing und unterstütze eine andere Seite da ich hier nicht mehr erwünscht bin. Danke an PSP-Hilfe und den Moderatoren und all die anderen User die nicht so viel Dummeszeug labern.
Dieser Beitrag wurde zuletzt bearbeitet: 16.12.2010 00:26 von Unbekannt.
|
|
12.12.2010 10:28 |
|
Folgende User bedanken sich: |
|
EvoKing
Halbprofi
Beiträge: 233
Gruppe: User
Registriert seit: Jun 2010
Status:
Offline
Danke erhalten: 26
|
RE: [TuT, Update] Hello World in C
was kann man den mit dem PBP unpacker noch editieren?
Ein Dank an C4 H4cker für dieses nette Bild =)
|
|
15.12.2010 15:47 |
|
|
|
Rroia
Profi
Beiträge: 303
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 173
|
RE: [TuT, Update] Hello World in C
Ich will ja nicht kleinlich wirken, aber du hast am Anfang ein paar Begriffe falsch benutz.
Konditionen
- PSP mit CFW/HEN/HBL
- Einen Compiler (wir nehmen Dev-C++
- Entwicklungsumgebung / Compiler
- Header-Datei: pspcallback.h
- Makefile
Du hast geschrieben das Dev-C++ der Compiler wäre, und das PSP-SDK die Entwicklungsumgebung. Richtig wäre aber, dass Dev-C++ die Entwicklungsumgebung ist und das SDK nur Zusatz sind um die Funktionen der PSP nutzen zu können. Der "echte" Compiler ist wahrscheinlich g++ und wird mit Dev-C++ mitinstalliert.
Sonst ist aber glaub ich alles richtig
|
|
15.12.2010 16:11 |
|
Folgende User bedanken sich: |
|
Unbekannt
Holiday News-Writer
Beiträge: 1.600
Gruppe: User
Registriert seit: Mar 2010
Status:
Offline
Danke erhalten: 4404
|
RE: [TuT, Update] Hello World in C
Der Compiler ist g++ ^^ stimmt
Ab Sofort werden alle unnötigen PNs nicht mehr beantwortet. Ich bin wieder mal weg von PSPKing und unterstütze eine andere Seite da ich hier nicht mehr erwünscht bin. Danke an PSP-Hilfe und den Moderatoren und all die anderen User die nicht so viel Dummeszeug labern.
Dieser Beitrag wurde zuletzt bearbeitet: 08.03.2011 17:40 von Unbekannt.
|
|
15.12.2010 17:31 |
|
|
|
-blue7
/dev/null/
Beiträge: 1.926
Gruppe: Mod a.D.
Registriert seit: May 2009
Status:
Abwesend
Danke erhalten: 1768
|
RE: [TuT, Update] Hello World in C
Der ist glaubich schon in Windows einprogrammiert durch die Makefile kann er die "SDK"-Dateien nutzen und eine Output-Datei erstellen.
Der Compiler ist nicht einprogrammiert in Windows, sondern wird mit dem Dec-C++ installiert. Die Makefile sagt dem Compiler nur, wie er die Output-Datei zu erstellen hat.
[Ex-Moderator] ; [Ubuntu-User] ; [Designer] ; [Coder] ;
running out of bugs`.
___________________________________________
#define TRUE FALSE // Happy debugging suckers
// sometimes I believe gcc ignores all my comments
|
|
15.12.2010 18:38 |
|
Folgende User bedanken sich: |
|
pspbricker
Mod a.D.
Beiträge: 3.428
Gruppe: User
Registriert seit: May 2008
Status:
Offline
Danke erhalten: 1641
|
RE: [TuT, Update] Hello World in C
Mit deiner Erklärung für die Einrichtung von von einem PSP Compiler liegst du komplett falsch. Der Compiler würde höchstens eine Binary für den PC erzeugen. Bitte zu den richten Tutorials verlinken, als in der Welt zu verbreiten, dass man für die PSP mit einer Header Datei Eboots erstellen kann http://pspking.de/toolchain.html
Daran hat sich nichts geändert.
Naja, in Dev-C++ ist ein Compiler integriert. Der Compiler ist psp gcc und wird durch die Makefile genutzt. Der ist glaubich schon in Windows einprogrammiert durch die Makefile kann er die "SDK"-Dateien nutzen und eine Output-Datei erstellen.
Aua.
Meine PS3 Games : Warhawk , NFS: Pro Street, Motorstorm ,Midnight Club LA, LittleBigPlanet, GTA4, Uncharted 2, Overlord, Killzone2, PES10, Battlefield ´43, Socom: Confrontation,
Forum Regeln Beachten! KEIN ISO Talk! KEINE Beleidigungen! KEINE illegalen Links!
Dieser Beitrag wurde zuletzt bearbeitet: 15.12.2010 18:41 von pspbricker.
|
|
15.12.2010 18:40 |
|
Folgende User bedanken sich: |
|