|
Verfasser |
Nachricht |
knopper
Halbprofi
Beiträge: 135
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 58
|
PSP3004 "Hello World"-Anfrage
Hallo, bin Anfänger und neu hier. Habe schon etliches im Forum gelesen, aber leider keine Antwort auf mein Problem gefunden.
Habe eine PSP3004 (8D, 5.51) und möchte mittels eLoader ein simples selbstgemachtes "Hello World"-Programm starten. Da der eLoader grundsätzlich mit ein paar einfachen Homebrews funktioniert, bin ich davon ausgegangen, dass ein simples Testprogramm, das lediglich "Hello World" anzeigt kein Problem sei.
Habe folgenden Code (pspfreak.de) mit pspsdk0.9.5 fehlerlos kompiliert, aber trotzdem funktioniert es nicht. Beim Starten über den eLoader passiert nichts, außer das sich die PSP nach einer Weile abschaltet. Kennt sich jemand aus und kann mir einen Tipp geben? Vielen Dank.
Code
#include
#include
PSP_MODULE_INFO("Hello World", 0, 1, 1);
#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;
}
PSP 3004, FW 6.6
|
|
19.04.2010 13:48 |
|
|
|
Superfly
Super Mod
Beiträge: 6.017
Gruppe: Super Moderator
Registriert seit: Jun 2009
Status:
Offline
Danke erhalten: 5976
|
RE: PSP3004 "Hello World"-Anfrage
kann es sein dass du versuchst auf den kernel zuzugreifen?
|
|
19.04.2010 13:54 |
|
|
|
anmabagima
Ex-Developer
Beiträge: 348
Gruppe: User
Registriert seit: Dec 2009
Status:
Offline
Danke erhalten: 530
|
RE: PSP3004 "Hello World"-Anfrage
Hi,
was dir fehlt ist eine Warteschleife in deinem Haupt-Thread.
Sowas wie
int main() {
pspDebugScreenInit();
SetupCallbacks();
while (running){
//do something like printf
}
return 0;
dabei wird "running" als globale BOOL variable definiert und mit true initialisiert.
In deinem exit_callback wird running dann auf false gesetzt.
|
|
19.04.2010 14:18 |
|
|
|
knopper
Halbprofi
Beiträge: 135
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 58
|
RE: PSP3004 "Hello World"-Anfrage
Ja, pspkernel.h und pspdebug.h sind eingebunden, werden aber leider im Code nicht angezeigt. Aber wie soll's ohne pspkernel.h funktionieren?
PSP 3004, FW 6.6
|
|
19.04.2010 14:19 |
|
|
|
knopper
Halbprofi
Beiträge: 135
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 58
|
RE: PSP3004 "Hello World"-Anfrage
Erstmal vielen Dank für die schnelle Hilfe. Der Tipp von anmabagima hat die Sache transparenter gemacht. Nach den Code-Änderungen gibt der Compiler Fehlermeldungen aus. Werde daraus leider nicht schlauer, ganz im Gegenteil.
Ist es vielleicht doch ein Kernel-Problem?
PSP 3004, FW 6.6
|
|
19.04.2010 14:49 |
|
|
|
_Kai_
be linux
Beiträge: 2.680
Gruppe: Programmierung
Registriert seit: Nov 2009
Status:
Abwesend
Danke erhalten: 2809
|
RE: PSP3004 "Hello World"-Anfrage
Erstmal vielen Dank für die schnelle Hilfe. Der Tipp von anmabagima hat die Sache transparenter gemacht. Nach den Code-Änderungen gibt der Compiler Fehlermeldungen aus. Werde daraus leider nicht schlauer, ganz im Gegenteil.
Ist es vielleicht doch ein Kernel-Problem?
Nein du hast "running" nicht deviniert.
Entweder schreibst du "while(1)" das würde funktionieren, oder du schreibst oben "int running" oder so.
PSVita mit 16gb Memorystick und PlayStation+
+ Uncharted + Army Corps of Hell + Assassins Creed
+ NFS Most Wanted + COD Black Ops + Resistance
+ Everybodys Golf + Modnation Racers
Für PSN ID => PN
|
|
19.04.2010 15:05 |
|
|
|
knopper
Halbprofi
Beiträge: 135
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 58
|
RE: PSP3004 "Hello World"-Anfrage
Habe jetzt den Code geändert (while(1)) und neu compiliert. Hat auch fehlerlos geklappt. Aber beim Starten von "Hello World" über den eLoader hat sich nichts verändert. Die Ladeanzeige blinkt kurz und das wars dann. Wenig später verabschiedet sich die PSP3004.
Code (unterer Teil)
int main() {
pspDebugScreenInit();
SetupCallbacks();
while (1){
printf("Hello World");
}
return 0;
}
PSP 3004, FW 6.6
|
|
19.04.2010 16:09 |
|
|
|
pspbricker
Mod a.D.
Beiträge: 3.428
Gruppe: User
Registriert seit: May 2008
Status:
Offline
Danke erhalten: 1641
|
RE: PSP3004 "Hello World"-Anfrage
Wenn du jetzt auf deiner PSP Produktiv programmieren willst, musst du leider auf die Finale Version des HBL warten.
Willst du jetzt aus Spaß ein Hello World coden, dann schau die mal die Funktionen aus dem Hello World Tutorial von Hackman an:
http://www.pspking.de/forum/showthread.php?tid=16919
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!
|
|
19.04.2010 18:03 |
|
|
|
knopper
Halbprofi
Beiträge: 135
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 58
|
RE: PSP3004 "Hello World"-Anfrage
@pspbricker
Danke für den Tipp, werde ich mir heute Nacht reinziehen.
Grüße...
PSP 3004, FW 6.6
|
|
19.04.2010 19:25 |
|
|
|
Arcanum
Halbprofi
Beiträge: 170
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 48
|
RE: PSP3004 "Hello World"-Anfrage
Das ist kein Hello World Tutorial. Hier der Code den den du brauchst, kurz und schmerzlos:
#include <pspsdk.h>
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspctrl.h>
#include <pspthreadman.h>
PSP_MODULE_INFO("HalloWelt", 0, 1, 0);
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER);
PSP_MAIN_THREAD_STACK_SIZE_KB(256);
int main(int argc, char *argv[])
{
SceCtrlData pd;
pspDebugScreenPrintf("Hallo Welt\n\nDrücke [X] um das Programm zu beenden...");
while(1)
{
sceCtrlReadBufferPositive(&pd,1);
if(pd.Buttons == PSP_CTRL_CROSS) { break; }
}
pspDebugScreenClear();
pspDebugScreenPrintf("Bye :)");
return 0;
}
PSP 1004 - Datecode 6B - CFW 5.00 M33-6
PSP 3004 - Datecode 8D - OFW 6.20
Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2010 20:22 von Arcanum.
|
|
19.04.2010 20:21 |
|
|
|
anmabagima
Ex-Developer
Beiträge: 348
Gruppe: User
Registriert seit: Dec 2009
Status:
Offline
Danke erhalten: 530
|
RE: PSP3004 "Hello World"-Anfrage
Hi,
@BattleMaster246:
ein recht guter code, der nur einen "Haken" hat. Diese HB kann nicht über den Home-Button wie üblich beendet werden.
@PSP-Hilfe: Auch die Nutzung von while(1) hat einen Haken, denn die Schleife wird auch beim Drücken der home-Taste nicht beendet. Das kann unterumständen auch zum Freeze/absturz der PSP führen. Darum sollte man immer vermeiden infinite Loops in den Programmen zu haben, es sollte immer eine EXIT-Bedingung geben.
|
|
20.04.2010 08:03 |
|
|
|
knopper
Halbprofi
Beiträge: 135
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 58
|
RE: PSP3004 "Hello World"-Anfrage
Hallo,
@ pspbricker
Hackmans Hello World Tutorial ist 'ne feine Sache, aber für einen Anfänger nicht einfach. Mal sehen, wann und wie ich das hinkriege.
@ BattleMaster246
Der "kurz & schmerzlos"-Code ändert leider nichts daran, dass der eLoader die wenigen Code-Zeilen von "Hello World" nicht richtig lesen kann. Die Ladeanzeige leuchtet jetzt so lange, bis sich die PSP3004 nach ca. 10 Sekunden abschaltet.
Mir will einfach nicht einleuchten, dass einige Homebrews funktionieren, aber kein simples "Hello World".
PSP 3004, FW 6.6
Dieser Beitrag wurde zuletzt bearbeitet: 20.04.2010 13:09 von knopper.
|
|
20.04.2010 12:32 |
|
|
|
anmabagima
Ex-Developer
Beiträge: 348
Gruppe: User
Registriert seit: Dec 2009
Status:
Offline
Danke erhalten: 530
|
RE: PSP3004 "Hello World"-Anfrage
Hi,
sind die paar wenigen Homebrews die funktionieren vielleicht im Kernel-Mode und nicht im User-Mode ?
Dein Hello World ist definitiv ein User-Mode HB....
|
|
20.04.2010 13:40 |
|
|
|
flofrucht
Banned
Beiträge: 2.470
Gruppe: Banned
Registriert seit: Jul 2009
Status:
Abwesend
Danke erhalten: 4709
|
RE: PSP3004 "Hello World"-Anfrage
HBL lädt nur UMode Homebrews..
@anmabagima:
wie würde der code ausschauen das man mit dem home button auch beenden kann.
?
mfg.flo
|
|
20.04.2010 13:47 |
|
|
|
knopper
Halbprofi
Beiträge: 135
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 58
|
RE: PSP3004 "Hello World"-Anfrage
Hallo, weiß leider nicht in welchem Mode die wenigen lauffähigen Homebrews sind:
PSP_Snake
PSP_Tetris
PSP_Plasma
Bookr (PDF-Viewer)
PSP 3004, FW 6.6
|
|
20.04.2010 14:01 |
|
|
|
|