Une Petite Aide Sous Pspide


80Y
 Share

Messages recommandés

donc voici mon nouveau code avec encore 3 erreurs si un de vous peut m'epauler afin de trouver les erreurs

#include <pspkernel.h>

#include <pspdebug.h>

#include <stdlib.h>

#include <string.h>

#include <pspdisplay.h>

#include <pspctrl.h>

/* Define the module info section */

PSP_MODULE_INFO("80Y's Helloworld", 0, 1, 1);

/*je commence*/

int main(void)

{

// SetupCallbacks();

SceCtrlData pad;

/*Affiche un texte à l'ecran*/

pspDebugScreenPrintf();

Printf("Coucou\n\n\nPush X to exit");

/* pour sortir de l'appli */

while(1)

{

sceCtrlReadBufferPositive(&pad, 1);

if (pad.Buttons & PSP_CTRL_CROSS) break;

}

/*Retour sur le bureau*/

int exit_callback(void)

{

sceKernelExitGame();

return 0;

}

EDIT: j'avais oublier les erreurs

les voici :

main.c: In function 'main':

main.c:25: error: too few arguments to function 'pspDebugScreenPrintf'

main.c:26: warning: implicit declaration of function 'Printf'

main.c:41: error: parse error at end of input

MAKE: *** [main.o] Error 1

chinese

Lien vers le commentaire
Partager sur d'autres sites

Apparemment il connait pas Printf mais plutot pspDebugScreenPrintf.

Ecris le comme ca : pspDebugScreenPrintf("%s","Coucou !!!\n Push X to exit ");

edit: j'installe PSPide et je te dis ca (je suis pas chez moi :D )

Modifié par p3dr0
Lien vers le commentaire
Partager sur d'autres sites

ok j'essaie

merci c'est sympa :ok:

EDIT : cela fait une erreur de moins deja grace a ta ligne :)

mais je ne comprends pas car il dit dans le compte rendu des erreurs "too few arguments to function 'pspDebugScreenPrintf'

et je ne vois pas l'erreur

Lien vers le commentaire
Partager sur d'autres sites

oui l'erreur c'est parce que tu as laissé des parenthèses vides ().

Rajoute un } à la fin et ca devrait compiler ;)

edit: t'arrives à faire marcher pspe? je viens de mettre la 0.9b avec la lib SDL comme demandé, si je met pas de rep ni de eboot ca se lance je vois le fond d 'écran c 'est tout et je peux rien faire, et si je met un rep avec un eboot ca se lance et ca coupe direct ???

Parce que moi le pb c'est que j'ai pas de psp 1.50 :( alors si ca tourne sur l'emulateur je vais commencer à coder dessus, si il marche pas tant pis j'attends le DG :fou:

Modifié par p3dr0
Lien vers le commentaire
Partager sur d'autres sites

Je comprends ce qu'il veut dire mais je sais pas comment l'appliquer pour la programmation pour PSP!

Sinon j'ai trouvé une autre erreur, à la fin faut fermer l'accolade du int exit_callback(void) avant le return 0; sinon ca plante, et après tu fermes l'accolade du main.

Moi ca compile sans erreurs, mais sous pspe ca plante

PS: j'ai retesté pspe et ca marche avec des eboot.pbp faits par d'autres (mais pas par moi :( )

Lien vers le commentaire
Partager sur d'autres sites

merci

plus qu'une erreur :ph34r:

chinese

on va attendre le retour de KaMbiOkIkA voir ce qui l'en pense :)

bon je remets le code MODIFIE contenant plus qu'une erreur

#include <pspkernel.h>

#include <pspdebug.h>

#include <stdlib.h>

#include <string.h>

#include <pspdisplay.h>

#include <pspctrl.h>

/* Define the module info section */

PSP_MODULE_INFO("80Y's Helloworld", 0, 1, 1);

/*je commence*/

int main(void)

{

// SetupCallbacks();

SceCtrlData pad;

/*Affiche un texte à l'ecran*/

pspDebugScreenPrintf();

pspDebugScreenPrintf("%s","Coucou !!!\n\n\nPush X to exit");

/* pour sortir de l'appli */

while(1)

{

sceCtrlReadBufferPositive(&pad, 1);

if (pad.Buttons & PSP_CTRL_CROSS) break;

}

/*Retour sur le bureau*/

int exit_callback(void)

{

sceKernelExitGame();

}

return 0;

}

>>> avec l'erreur suivante :

main.c: In function 'main':

main.c:26: error: too few arguments to function 'pspDebugScreenPrintf'

MAKE: *** [main.o] Error 1

chinese

Lien vers le commentaire
Partager sur d'autres sites

I SUCCEEDED

j'ai l'eboot que j'ai passe dans le kxploit pour 1.50

en fait j'ai modifie cette ligne :

pspDebugScreenPrintf();

par :

pspDebugScreenInit();

mais j'attends KaMbiOkIkA car je ne sais pas ce qu'il appelle

tu initialises les threads et callbacks.

voilou enfin j'ai l'eboot :sorcerer:

EDIT : l'eboot est fait mais ne marche pas dans pspe :o

Lien vers le commentaire
Partager sur d'autres sites

Re,

80Y, regarde l'example HelloWorld qui est dans l'archive de PSPIde, tu verras, avant le main, il y a un thread avec son callback à paramétrer. Il faut également le faire dans ton programme, c'est pour ca que j'avais mis SetupCallBack en commentaire.

Sinon pour pspe, même problème pour moi, il n'éxécute que certains homebrew, mais je n'ai pas encore regardé qu'est-ce qui fait qu'il plante avec certains. Apparament c'est un histoire d'image (l'icone du programme certainement).

++

Lien vers le commentaire
Partager sur d'autres sites

// PSPide C++ - http://milhouse.blogsome.com



// Fuente main.c

// Autor: Milhouse



#include <pspkernel.h>

#include <pspdebug.h>

#include <stdlib.h>

#include <string.h>



/* Define the module info section */

PSP_MODULE_INFO("SDKTEST", 0, 1, 1);



/* Define the main thread's attribute value (optional) */

PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);



/* Define printf, just to make typing easier */

#define printf	pspDebugScreenPrintf



void dump_threadstatus(void);



/* Exit callback */

int exit_callback(void)

{

sceKernelExitGame();

return 0;

}



/* Callback thread */

void CallbackThread(void *arg)

{

int cbid;   



printf("\nCallback Thread Status:\n");

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

sceKernelRegisterExitCallback(cbid);

sceKernelSleepThreadCB();

}



/* 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(void)

{

pspDebugScreenInit();

SetupCallbacks();

printf("\nMilhouse dice: HOLA MUNDO!!!\n");

sceKernelSleepThread();	



return 0;

}

Lien vers le commentaire
Partager sur d'autres sites

je pense que tu parles de ca KaMbiOkIkA :

/* Callback thread */

void CallbackThread(void *arg)

{

int cbid;

printf("\nCallback Thread Status:\n");

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

sceKernelRegisterExitCallback(cbid);

sceKernelSleepThreadCB();

}

/* 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;

}

JE SUIS UN PEU PERDU crying car comment je peux parametrer ceci si c'est bien ce dont tu parles KaMbiOkIkA

chinese

Lien vers le commentaire
Partager sur d'autres sites

Re,

Oui c'est bien ca, mais ne t'embete pas, recopie ce code tel quel avant le main et appelle SetupCallBack() dans ton main. Ca devrait fonctionner, du moins sur la PSP, par contre avec PSPe, j'ai regardé vite fait tout à l'heure, mais je suis quasiment certain que les compilation sans icone programme le font planter. Apres il y a certainement encore d'autres limitations, mais il faut déjà passer celle-la.

Quelqu'un sait comment générer ou modifier un eboot pour y intégrer une icone ?

++

Lien vers le commentaire
Partager sur d'autres sites

cela ne fonctionne pas

j'ai remis le code au dessus de main ce qui donne ceci :

// Affiche le nom du homebrew dans le menu PSP

PSP_MODULE_INFO("80Y's Helloworld", 0, 1, 1);

// Callback thread

void CallbackThread(void *arg)

{

int cbid;

printf("\nCallback Thread Status:\n");

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

sceKernelRegisterExitCallback(cbid);

sceKernelSleepThreadCB();

}

// 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(void)

{

SetupCallbacks();

SceCtrlData pad;

// Affiche un texte à l'ecran

pspDebugScreenInit();

pspDebugScreenPrintf("%s","Coucou !!!\n\n\n\nPush X to exit");

// Touche Pour sortir de l'appli

while(1)

{

sceCtrlReadBufferPositive(&pad, 1);

if (pad.Buttons & PSP_CTRL_CROSS) break;

}

// Retour sur le bureau

int exit_callback(void)

{

sceKernelExitGame();

}

return 0;

}

sinon oui tu peux modifier les icones d'un eboot mais je ne me rappelle plus du logiciel

si je le retrouve je te dis

Lien vers le commentaire
Partager sur d'autres sites

Re,

Oui c'est bien ca, mais ne t'embete pas, recopie ce code tel quel avant le main et appelle SetupCallBack() dans ton main. Ca devrait fonctionner, du moins sur la PSP, par contre avec PSPe, j'ai regardé vite fait tout à l'heure, mais je suis quasiment certain que les compilation sans icone programme le font planter. Apres il y a certainement encore d'autres limitations, mais il faut déjà passer celle-la.

Quelqu'un sait comment générer ou modifier un eboot pour y intégrer une icone ?

++

504972[/snapback]

Salut KaMbiOkIkA, ca gaz ? :lol:

Après une petite recherche, j'ai trouver ca :

PSP_EBOOT_ICON = icone.png

Donc j'ai tester avec le helloword de pspide, résultat :

Pspe se lance correctement, mais il affiche une icone toute corrompue :angry: ,

et des que tu essaye de lancer l'homebrew, la fenetre se ferme.

Il me semble qu'il doit y avoir des limitations concernant les icones....

++Ludo

Edit: le PSP_EBOOT_ICON faut le mettre dans le makefile..

Modifié par TheTool
Lien vers le commentaire
Partager sur d'autres sites

peut on regarder ensemble pourquoi mon code ne marche pas

SVP crying

voici le rapport d'erreur :

main.c: In function 'CallbackThread':

main.c:23: warning: implicit declaration of function 'printf'

main.c:23: warning: incompatible implicit declaration of built-in function 'printf'

main.c:24: error: 'exit_callback' undeclared (first use in this function)

main.c:24: error: (Each undeclared identifier is reported only once

main.c:24: error: for each function it appears in.)

main.c: In function 'SetupCallbacks':

main.c:35: warning: passing argument 2 of 'sceKernelCreateThread' from incompatible pointer type

MAKE: *** [main.o] Error 1

du code suivant :

#include <pspkernel.h>

#include <pspdebug.h>

#include <stdlib.h>

#include <string.h>

#include <pspdisplay.h>

#include <pspctrl.h>

// Affiche le nom du homebrew dans le menu PSP

PSP_MODULE_INFO("80Y's Helloworld", 0, 1, 1);

// Callback thread

void CallbackThread(void *arg)

{

int cbid;

printf("\nCallback Thread Status:\n");

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

sceKernelRegisterExitCallback(cbid);

sceKernelSleepThreadCB();

}

// 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(void)

{

SetupCallbacks();

SceCtrlData pad;

// Affiche un texte à l'ecran

pspDebugScreenInit();

pspDebugScreenPrintf("%s","Coucou !!!\n\n\n\nPush X to exit");

// Touche Pour sortir de l'appli

while(1)

{

sceCtrlReadBufferPositive(&pad, 1);

if (pad.Buttons & PSP_CTRL_CROSS) break;

}

// Retour sur le bureau

int exit_callback(void)

{

sceKernelExitGame();

}

return 0;

}

EDIT : je cherche mais ne trouve pas :angry:

chinese

Lien vers le commentaire
Partager sur d'autres sites

Deja pour le printf je t'ai deja dit que c'est pas reconnu par la PSP.

Si tu regardes bien le source du HelloWorld de Pspide, il met

/* Define printf, just to make typing easier */

#define printf pspDebugScreenPrintf

Toutes les commandes commencant par # sont des instruction préprocesseur destinées au compilateur, ici #define dit au compilateur à chaque fois que tu vois "printf" tu le remplaces par "pspDebugScreenPrintf", c'est cette commande qui est reconnue par le PSP.

Pour le reste je ne vois pas trop, je commence comme toi la prog PSP ;)

Lien vers le commentaire
Partager sur d'autres sites

merci de m'aider je modifie cela et bonne chance dans tes debuts comme moi :P

EDIT : ce qui donne cela

// Affiche un texte à l'ecran

pspDebugScreenInit();

printf("Coucou !!!\n\n\n\nPush X to exit");

et il me donne pas d'erreur sur cette partie donc je suppose que cela est bon ^_^

Lien vers le commentaire
Partager sur d'autres sites

Si tu veux on peut s'aider mutuellement par l'intermediaire du forum

si je peux repondre a certaines de tes questions tout comme toi

cela sera avec plaisir car rien ne vaut l'entraide woot

bon j'ai modifie un peu le code, ce qui donne ceci :

CODE EDITE

#include <pspkernel.h>

#include <pspdebug.h>

#include <stdlib.h>

#include <string.h>

// Affiche le nom du homebrew dans le menu PSP

PSP_MODULE_INFO("80Y's Helloworld", 0, 1, 1);

// Define the main thread's attribute value (optional)

PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);

// Define printf, just to make typing easier

#define printf pspDebugScreenPrintf

void dump_threadstatus(void);

// Exit callback

int exit_callback(void)

{

sceKernelExitGame();

return 0;

}

// Callback thread

void CallbackThread(void *arg)

{

int cbid;

printf("\nCallback Thread Status:\n");

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

sceKernelRegisterExitCallback(cbid);

sceKernelSleepThreadCB();

}

// 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(void)

{

pspDebugScreenInit();

SetupCallbacks();

SceCtrlData pad;

// Affiche un texte à l'ecran

printf("Coucou !!!\n\n\n\nPush X to exit\n");

sceKernelSleepThread();

// Touche pour sortir de l'appli

while(1)

{

sceCtrlReadBufferPositive(&pad, 1);

if (pad.Buttons & PSP_CTRL_CROSS) break;

}

// Retour sur le bureau

int exit_callback(void)

{

sceKernelExitGame();

}

return 0;

}

et son rapport d'erreur :

main.c: In function 'CallbackThread':

main.c:32: error: 'exit_callback' undeclared (first use in this function)

main.c:32: error: (Each undeclared identifier is reported only once

main.c:32: error: for each function it appears in.)

main.c: In function 'SetupCallbacks':

main.c:43: warning: passing argument 2 of 'sceKernelCreateThread' from incompatible pointer type

MAKE: *** [main.o] Error 1

le plus enervant est que je suis sur que je touche le bout mais quelques petites erreurs perdurent crying

Lien vers le commentaire
Partager sur d'autres sites

  • 5 months later...

yep,

tu dois deja le savoir maintenant, mais je commence à apprendre les bases du C++...

ton erreur :

main.c: In function 'CallbackThread':

main.c:32: error: 'exit_callback' undeclared (first use in this function)

C'est parce que tu as placé la fonction CallBack à la fin de ton programme !

Met le vers le début ! (avant main ) ou déclare le dans l'en tete :

int exit_callback(void);

EDIT : Je viens de remarquer qu'on t'a déjà repondu sur un autre post =(

Si tu veux, on s'échange nos adresses msn pour s'aider =)

Modifié par Xo Sonic oX
Lien vers le commentaire
Partager sur d'autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Share