KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: C codes mit kommentaren
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi

Ich suche C codes für die PSP. Am besten spiele, und die Codes sollten kommentiertr sein.
DankeWink
http://psp.jim.sh/pspsdk-doc/main.html

Schau mal dort, das ist eine Documentation des PSPSDK, sehr gut erklärt mit Beispielen^^
Ich bin noch neu in C, ich fange grade erst anWink
Ich habe bisher nur mit NXC Lego Roboter programmiert Tongue
NXC ist sehr ähnlich mit C.

BAer ich fände es cool wenn ich nicht gleich mit Fachbegriffen und Bedeutungen der Befehle zugebombt werde, sondern mir mal ein paar (einfache) Quellcodes anschasuen kann und sehe, wie das aussieht und was die Befehle bewirkenWink (Learning by Angucking...)
Falls du englisch kannst, sollte dir das weiterhelfen. dort werden kleine HBs (hello world usw.) gemacht, und ganz genau erklärt. geht aber auch weiter als hello world, bis zu Farben, grafiken und mp3s
http://tinyurl.com/2asn739

Da findest du ein paar Tutorials.
dein lmgtfy link führt in zu dem selben was ich gepostet hab XDD

Sehr seltsam. ich habe nach dem tut Hello World gemcht, und es wird auch korrekt angezeit, nur wenn ichs starte teht da Das Spiel konnte nicht gestartet werden :/
Hast du denn auch eine CFW installiert? Wink
naja du brauchst ne cfw Big Grin
seit wann haltet ihr mich für dämlich? aber ich werde gleich mal meine main.c und die makefile posten, vlt hilft das ja den fehler zu finden.

EDIT:

main.c:

Code:
#include <pspkernel.h>
#include <pspdebug.h>

#define printf pspDebugScreenPrintf

/* Exit callback */
int exit_callback(int arg1, int arg2, void *common) {
          sceKernelExitGame();
          return 0;
}

/* Callback thread */
int CallbackThread(SceSize args, void *argp) {
          int cbid;

          cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
          sceKernelRegisterExitCallback(cbid);

          sceKernelSleepThreadCB();

          return 0;
}

/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void) {
          int thid = 0;

          thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
          if(thid >= 0) {
                    sceKernelStartThread(thid, 0, 0);
          }

          return thid;
}

int main() {
pspDebugScreenInit();
SetupCallbacks();
printf("Hello World");
sceKernelSleepThread();
return 0;
}



makefile:

Code:
TARGET = hello
OBJS = main.c

CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Hello World

PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak
[/

code]

Probiers mal damit:

Code:
int main(int argc, char** argv) {

    pspDebugScreenInit();
    SetupCallbacks();
    pspDebugScreenPrintf("Hello World");

    while(1)
    {
        sceCtrlReadBufferPositive(&pd,1);
        if(pd.Buttons & PSP_CTRL_XROSS)
            break;
    }
    sceKernelExitGame();
    return 0;
}


Und oben

Code:
#include <pspctrl.h>

hinschreiben.


Edit: Und probier folgendes in das Makefile zu schreiben:

Code:
LIBS =  -lm

siehe meinen edit. da sind die codes. Die ganze Callback sache ist einfach nur aus dem tut kopiert, die meinten da auch dass muss man nicht direkt verstehen. der rest ist "abgetipp", aber habs tut natürlich gelesen.
Hab noch einen Fehler gefunden:

Nach den includes muss folgendes stehen:

Code:
PSP_MODULE_INFO("Hallo Neutrosider", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(0);

Ich hab im Tut gelesen, dass mit dem PSP_MODULE_INFO() muss nicht zwingend rein.

zudem sagt er mir pd ist nicht deklariert (weils auch so ist XD)
Also wenn ich bei mit PSP_MODULE_INFO() weglasse bekomme ich vom Kompiler eine Warnung?


Schreib direkt nach main()

Code:
SceCtrlData pd;


Dann müsste es gehen.

mit dem libs= -lm zeigt er mir ne menge wirres zeug an, und wenn ichs weglasse sagt er mir no sceModuleInfo section found, aber was genau sucht er damit? dieses PSP_MODULE_INFO() teil was allerdings drinsteht? und übrigens ist bei dir n kleiner tippfehler, da steht XROSS statt CROSS

mensch, Hello World ist schon Hardcore Big Grin

Edit: war doch nicht drin, jatzt hat ers kompiliert
Seiten: 1 2
Referenz-URLs