80Y Posté(e) 17 septembre 2005 Auteur Share Posté(e) 17 septembre 2005 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 Lien vers le commentaire Partager sur d'autres sites More sharing options...
p3dr0 Posté(e) 17 septembre 2005 Share Posté(e) 17 septembre 2005 (modifié) 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 ) Modifié 17 septembre 2005 par p3dr0 Lien vers le commentaire Partager sur d'autres sites More sharing options...
80Y Posté(e) 17 septembre 2005 Auteur Share Posté(e) 17 septembre 2005 ok j'essaie merci c'est sympa 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 More sharing options...
p3dr0 Posté(e) 17 septembre 2005 Share Posté(e) 17 septembre 2005 (modifié) 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 Modifié 17 septembre 2005 par p3dr0 Lien vers le commentaire Partager sur d'autres sites More sharing options...
KaMbiOkIkA Posté(e) 17 septembre 2005 Share Posté(e) 17 septembre 2005 Re, Pour que ca marche, il faut forcément que tu initialises les threads et callbacks. ++ Lien vers le commentaire Partager sur d'autres sites More sharing options...
80Y Posté(e) 17 septembre 2005 Auteur Share Posté(e) 17 septembre 2005 je suis dsl KaMbiOkIkA je suis debutant et je ne comprends pas ce que tu veux dire en disant "tu initialises les threads et callbacks" Lien vers le commentaire Partager sur d'autres sites More sharing options...
p3dr0 Posté(e) 17 septembre 2005 Share Posté(e) 17 septembre 2005 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 More sharing options...
80Y Posté(e) 17 septembre 2005 Auteur Share Posté(e) 17 septembre 2005 merci plus qu'une erreur 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 Lien vers le commentaire Partager sur d'autres sites More sharing options...
80Y Posté(e) 17 septembre 2005 Auteur Share Posté(e) 17 septembre 2005 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 EDIT : l'eboot est fait mais ne marche pas dans pspe Lien vers le commentaire Partager sur d'autres sites More sharing options...
KaMbiOkIkA Posté(e) 17 septembre 2005 Share Posté(e) 17 septembre 2005 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 More sharing options...
dexxa05 Posté(e) 17 septembre 2005 Share Posté(e) 17 septembre 2005 Salut, Je m'incruste ici juste pour savoir si il serait possible d'avoir le helloworld de PSPSIDE Merci d'avance @++ Lien vers le commentaire Partager sur d'autres sites More sharing options...
p3dr0 Posté(e) 17 septembre 2005 Share Posté(e) 17 septembre 2005 // 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 More sharing options...
dexxa05 Posté(e) 17 septembre 2005 Share Posté(e) 17 septembre 2005 Thx p3dro Lien vers le commentaire Partager sur d'autres sites More sharing options...
80Y Posté(e) 17 septembre 2005 Auteur Share Posté(e) 17 septembre 2005 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 car comment je peux parametrer ceci si c'est bien ce dont tu parles KaMbiOkIkA Lien vers le commentaire Partager sur d'autres sites More sharing options...
KaMbiOkIkA Posté(e) 17 septembre 2005 Share Posté(e) 17 septembre 2005 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 More sharing options...
80Y Posté(e) 17 septembre 2005 Auteur Share Posté(e) 17 septembre 2005 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 More sharing options...
TheTool Posté(e) 17 septembre 2005 Share Posté(e) 17 septembre 2005 (modifié) 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 , 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é 17 septembre 2005 par TheTool Lien vers le commentaire Partager sur d'autres sites More sharing options...
KaMbiOkIkA Posté(e) 17 septembre 2005 Share Posté(e) 17 septembre 2005 Re, Wep ca roule TheTool, et pour toi ? lol. Wep sinon c'est bien ca TheTool pour mettre une icone. Merci. Bon j'essais de comprendre pourquoi pspe arrive à en lancer certains et pas d'autres lol. ++ Lien vers le commentaire Partager sur d'autres sites More sharing options...
p3dr0 Posté(e) 17 septembre 2005 Share Posté(e) 17 septembre 2005 PSPe se lance maintenant merci pour ton astuce, et en plus je vois l'icone normale pas une corrompue (taille 144x80). Par contre ca fait comme toi après ca plante Lien vers le commentaire Partager sur d'autres sites More sharing options...
TheTool Posté(e) 17 septembre 2005 Share Posté(e) 17 septembre 2005 Yep Yep ca gaz, dur dur le boulot lol Bon, je vais tester avec une autre icône, et essayer de chercher la cause du pb... ++TheTool Lien vers le commentaire Partager sur d'autres sites More sharing options...
80Y Posté(e) 17 septembre 2005 Auteur Share Posté(e) 17 septembre 2005 peut on regarder ensemble pourquoi mon code ne marche pas SVP 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 Lien vers le commentaire Partager sur d'autres sites More sharing options...
p3dr0 Posté(e) 18 septembre 2005 Share Posté(e) 18 septembre 2005 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 More sharing options...
80Y Posté(e) 18 septembre 2005 Auteur Share Posté(e) 18 septembre 2005 merci de m'aider je modifie cela et bonne chance dans tes debuts comme moi 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 More sharing options...
80Y Posté(e) 18 septembre 2005 Auteur Share Posté(e) 18 septembre 2005 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 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 Lien vers le commentaire Partager sur d'autres sites More sharing options...
Xo Sonic oX Posté(e) 7 mars 2006 Share Posté(e) 7 mars 2006 (modifié) 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é 7 mars 2006 par Xo Sonic oX Lien vers le commentaire Partager sur d'autres sites More sharing options...
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant