Umfrage: War das Tutorial hilfreich?
Nein
Ja
Ergebnis anzeigen
Hinweis: Dies ist eine öffentliche Umfrage. Andere Benutzer können sehen, was Sie gewählt haben.
Antwort schreiben  Thema schreiben 
Verfasser Nachricht
Unbekannt
Holiday News-Writer
*****


Beiträge: 1.600
Gruppe: User
Registriert seit: Mar 2010

Status: Offline
Danke erhalten: 4404
Beitrag: #1
xPSP  [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 erstellen
    Nachdem 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).

    PHP-Code:
    #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.

    PHP-Code:
    #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.

    PHP-Code:
    int main() {
    // Hier steht die Anweisung


    zwichen den geschweiften Klammern stehen immer eine Anweisung, damit auch jetzt Anweisungen hinkommen schreiben wir erst drei Funktionen.

    PHP-Code:
    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 Wink. 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.

    PHP-Code:
    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 Wink.

    Nun schreiben wir return 0 für den Rückabewert und schließen die Anweisungen mit einer geschweiften Klammer.

    PHP-Code:
    return 0



    Ganzer Code:

    Spoiler: (anzeigen)
    Nun speichern wir den ganzen Code als "main.c" ab.

Compilieren und Erstellen
    Nun 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

PHP-Code:
//Ä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
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
dark-awesome (Mar-3-2011)
EvoKing
Halbprofi
***


Beiträge: 233
Gruppe: User
Registriert seit: Jun 2010

Status: Offline
Danke erhalten: 26
Beitrag: #2
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
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Rroia
Profi
****


Beiträge: 303
Gruppe: User
Registriert seit: Apr 2010

Status: Offline
Danke erhalten: 173
Beitrag: #3
xPSP  RE: [TuT, Update] Hello World in C

Ich will ja nicht kleinlich wirken, aber du hast am Anfang ein paar Begriffe falsch benutz.

Zitat:
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
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
Unbekannt (Dec-15-2010)
Unbekannt
Holiday News-Writer
*****


Beiträge: 1.600
Gruppe: User
Registriert seit: Mar 2010

Status: Offline
Danke erhalten: 4404
Beitrag: #4
xPSP  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
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
-blue7
/dev/null/


Beiträge: 1.926
Gruppe: Mod a.D.
Registriert seit: May 2009

Status: Abwesend
Danke erhalten: 1768
Beitrag: #5
xPSP  RE: [TuT, Update] Hello World in C

Unbekannt :
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
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
Unbekannt (Dec-15-2010), HacKmaN (Dec-15-2010), pspbricker (Dec-15-2010)
pspbricker
Mod a.D.
*


Beiträge: 3.428
Gruppe: User
Registriert seit: May 2008

Status: Offline
Danke erhalten: 1641
Beitrag: #6
RE: [TuT, Update] Hello World in C

pspbricker :
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 Link http://pspking.de/toolchain.html

Daran hat sich nichts geändert.

Zitat:
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
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
Lett1 (Dec-19-2010), Unbekannt (Dec-15-2010), HacKmaN (Dec-15-2010)
Antwort schreiben  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
xPSP [TUT] PSP Hello World in C dark-awesome 11 6.872 16.08.2011 17:25
Letzter Beitrag: _Kai_
xPSP [TUT] PSPSDK unter Ubuntu installieren + Hello World kompilieren -blue7 82 36.303 02.08.2011 20:18
Letzter Beitrag: Neutrosider
xPSP [TuT] Hello World in D ! 3m!n 9 4.573 09.04.2011 08:15
Letzter Beitrag: HyBriDo
xPSP [TuT] Hello World in C Unbekannt 30 5.798 07.12.2010 19:06
Letzter Beitrag: pspbricker

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang