 |
forums.ps2dev.org Homebrew PS2, PSP & PS3 Development Discussions
|
| View previous topic :: View next topic |
| Author |
Message |
asphodeli
Joined: 29 Jun 2008 Posts: 20 Location: Singapore
|
Posted: Tue Nov 18, 2008 10:53 pm Post subject: pspgl test code not working |
|
|
Hi,
I've been trying to get a sample app from the pspgl library to compile to test if the library is working, but the PSP hangs and the screen displays an enlarged scanline psplink text and then turns off after a while
| Code: |
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <pspctrl.h>
#include "common.h"
extern "C" {
//#include "glchk.h"
#include <GLES/egl.h>
#include <GLES/gl.h>
}
//extern unsigned char logo_start[];
//PSP module info
PSP_MODULE_INFO("test", 0, 1, 1);
//Cause 640k ought to be enough for everybody?
PSP_HEAP_SIZE_KB(-640);
//Set thread attribute to user-land and enable VFPU
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER|PSP_THREAD_ATTR_VFPU);
struct Vertex
{
float u, v;
unsigned int color;
float x,y,z;
};
static const
struct Vertex __attribute__((aligned(16))) vertices [12*3] =
{
{ 0, 0, 0xff7f0000,-1,-1, 1 }, // 0
{ 1, 0, 0xff7f0000,-1, 1, 1 }, // 4
{ 1, 1, 0xff7f0000, 1, 1, 1 }, // 5
{ 0, 0, 0xff7f0000,-1,-1, 1 }, // 0
{ 1, 1, 0xff7f0000, 1, 1, 1 }, // 5
{ 0, 1, 0xff7f0000, 1,-1, 1 }, // 1
{ 0, 0, 0xff7f0000,-1,-1,-1 }, // 3
{ 1, 0, 0xff7f0000, 1,-1,-1 }, // 2
{ 1, 1, 0xff7f0000, 1, 1,-1 }, // 6
{ 0, 0, 0xff7f0000,-1,-1,-1 }, // 3
{ 1, 1, 0xff7f0000, 1, 1,-1 }, // 6
{ 0, 1, 0xff7f0000,-1, 1,-1 }, // 7
{ 0, 0, 0xff007f00, 1,-1,-1 }, // 0
{ 1, 0, 0xff007f00, 1,-1, 1 }, // 3
{ 1, 1, 0xff007f00, 1, 1, 1 }, // 7
{ 0, 0, 0xff007f00, 1,-1,-1 }, // 0
{ 1, 1, 0xff007f00, 1, 1, 1 }, // 7
{ 0, 1, 0xff007f00, 1, 1,-1 }, // 4
{ 0, 0, 0xff007f00,-1,-1,-1 }, // 0
{ 1, 0, 0xff007f00,-1, 1,-1 }, // 3
{ 1, 1, 0xff007f00,-1, 1, 1 }, // 7
{ 0, 0, 0xff007f00,-1,-1,-1 }, // 0
{ 1, 1, 0xff007f00,-1, 1, 1 }, // 7
{ 0, 1, 0xff007f00,-1,-1, 1 }, // 4
{ 0, 0, 0xff00007f,-1, 1,-1 }, // 0
{ 1, 0, 0xff00007f, 1, 1,-1 }, // 1
{ 1, 1, 0xff00007f, 1, 1, 1 }, // 2
{ 0, 0, 0xff00007f,-1, 1,-1 }, // 0
{ 1, 1, 0xff00007f, 1, 1, 1 }, // 2
{ 0, 1, 0xff00007f,-1, 1, 1 }, // 3
{ 0, 0, 0xff00007f,-1,-1,-1 }, // 4
{ 1, 0, 0xff00007f,-1,-1, 1 }, // 7
{ 1, 1, 0xff00007f, 1,-1, 1 }, // 6
{ 0, 0, 0xff00007f,-1,-1,-1 }, // 4
{ 1, 1, 0xff00007f, 1,-1, 1 }, // 6
{ 0, 1, 0xff00007f, 1,-1,-1 }, // 5
};
int done = 0;
static const EGLint attrib_list [] = {
EGL_RED_SIZE, 1,
EGL_GREEN_SIZE, 1,
EGL_BLUE_SIZE, 1,
EGL_ALPHA_SIZE, 0,
EGL_DEPTH_SIZE, 0,
EGL_NONE
};
int main(int argc, char* argv[])
{
setupPSP();
EGLDisplay dpy;
EGLConfig config;
EGLint num_configs;
EGLContext ctx;
EGLSurface surface;
GLfloat angle = 0.0f;
SceCtrlData pad;
//psp_log("startup\n");
sceCtrlSetSamplingCycle(0);
sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);
/* pass NativeDisplay=0, we only have one screen... */
dpy = eglGetDisplay(0);
eglInitialize(dpy, NULL, NULL);
// psp_log("EGL vendor \"%s\"\n", eglQueryString(dpy, EGL_VENDOR));
// psp_log("EGL version \"%s\"\n", eglQueryString(dpy, EGL_VERSION));
// psp_log("EGL extensions \"%s\"\n", eglQueryString(dpy, EGL_EXTENSIONS));
eglChooseConfig(dpy, attrib_list, &config, 1, &num_configs);
if (num_configs == 0) {
// __pspgl_log("eglChooseConfig returned 0 configurations");
return 0;
}
// psp_log("eglChooseConfige() returned config 0x%04x\n", (unsigned int) config);
ctx = eglCreateContext(dpy, config, NULL, NULL);
surface = eglCreateWindowSurface(dpy, config, 0, NULL);
eglMakeCurrent(dpy, surface, surface, ctx);
glDisable(GL_STENCIL_TEST);
glDisable(GL_ALPHA_TEST);
glDisable(GL_SCISSOR_TEST);
glDepthFunc(GL_LEQUAL);
glEnable(GL_DEPTH_TEST);
glFrontFace(GL_CW);
glShadeModel(GL_SMOOTH);
glEnable(GL_CULL_FACE);
glEnable(GL_TEXTURE_2D);
glViewport(0, 0, 480, 272);
glScissor(0, 0, 480, 272);
glDepthRangef(0.0f, 1.0f);
while (!done) {
sceCtrlReadBufferPositive(&pad, 1);
if (pad.Buttons & PSP_CTRL_CROSS)
done = 1;
if (!(pad.Buttons & PSP_CTRL_CIRCLE))
angle += 1.0f;
glClearColor(pad.Lx * 1.0f/255, pad.Ly * 1.0f/255, 1.0f, 1.0f);
glClearDepthf(1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspectivef(75.0f, 16.0f/9.0f, 0.5f, 1000.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAtf(0.0f, 0.0f, 2.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f);
glRotatef(angle * 0.79f, 1.0f, 0.0f, 0.0f);
glRotatef(angle * 0.98f, 0.0f, 1.0f, 0.0f);
glRotatef(angle * 1.32f, 0.0f, 0.0f, 1.0f);
/* setup texture */
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
//glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 64, 64, 0, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, logo_start));
/* draw cube */
glInterleavedArrays(GL_T2F_C4UB_V3F, 0, (void *) vertices);
glDrawArrays(GL_TRIANGLES, 0, 12*3);
eglSwapBuffers(dpy, surface);
}
eglTerminate(dpy);
return 0;
}
|
Makefile:
| Code: |
PSPSDK=$(shell psp-config --pspsdk-path)
TARGET = eglcube
OBJS = eglcube.o
CC = psp-g++
INCDIR = -I ../../include/ #/usr/local/pspdev/psp/include/SDL
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
PSPBIN = $(PSPSDK)/../bin
#CFLAGS += $(shell $(PSPBIN)/sdl-config --cflags | sed s/-Dmain=SDL_main//)
#LIBS += $(shell $(PSPBIN)/sdl-config --libs | sed s/-lSDLmain//)
LIBDIR = -L LIBDIR
LIBS= -lglut -lGLU -lGL -lpspgu -lstdc++ -lm -lc -lpsputility -lpspdebug -lpspge -lpspdisplay -lpspctrl -lpspsdk \
-lpspvfpu -lpspuser -lpspkernel -lpsprtc -lpsppower
#-lpsplibc
#-lGL -lpspgu -lstdc++ -lpng -lm -lc -lz -ljpeg -lpsputility -lpspvfpu -lpsprtc -lpspaudio -lpsphprm -lpspirkeyb
#-lpspsystemctrl_kernel
LDFLAGS =
PSP_FW_VERSION = 390
BUILD_PRX=1
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = eglcube
include $(PSPSDK)/lib/build.mak
|
Last edited by asphodeli on Wed Nov 19, 2008 12:19 pm; edited 1 time in total |
|
| Back to top |
|
 |
J.F.
Joined: 22 Feb 2004 Posts: 2906
|
Posted: Wed Nov 19, 2008 10:23 am Post subject: |
|
|
First I don't think you can wrap entire includes like this:
| Code: | extern "C" {
//#include "glchk.h"
#include <GLES/egl.h>
#include <GLES/gl.h>
} |
Second, the gl/egl includes already have the extern "C" {} junk at the appropriate places, so they didn't need wrapping in the first place. Try it again after getting rid of your extern "C" {}. |
|
| Back to top |
|
 |
asphodeli
Joined: 29 Jun 2008 Posts: 20 Location: Singapore
|
Posted: Wed Nov 19, 2008 12:14 pm Post subject: |
|
|
| J.F. wrote: | First I don't think you can wrap entire includes like this:
| Code: | extern "C" {
//#include "glchk.h"
#include <GLES/egl.h>
#include <GLES/gl.h>
} |
Second, the gl/egl includes already have the extern "C" {} junk at the appropriate places, so they didn't need wrapping in the first place. Try it again after getting rid of your extern "C" {}. |
Have uncommented the code,changed to .c file and uncommented CC in the makefile, and it still displays an enlarged scanline psplink text and then turns off after a while |
|
| Back to top |
|
 |
J.F.
Joined: 22 Feb 2004 Posts: 2906
|
Posted: Wed Nov 19, 2008 1:00 pm Post subject: |
|
|
You're clearly not posting everything... there's no setupPSP() which is in your main file. You should also not be setting CC yourself. Just rely on the build.mak to handle all that.
If you want a version of eglcube that works with the current toolchain and libs, get my update to pspgl for TV... that has altered the demos to work. |
|
| Back to top |
|
 |
asphodeli
Joined: 29 Jun 2008 Posts: 20 Location: Singapore
|
Posted: Thu Nov 20, 2008 1:55 pm Post subject: |
|
|
| J.F. wrote: | You're clearly not posting everything... there's no setupPSP() which is in your main file. You should also not be setting CC yourself. Just rely on the build.mak to handle all that.
If you want a version of eglcube that works with the current toolchain and libs, get my update to pspgl for TV... that has altered the demos to work. |
Have tried out your update to pspgl with rev 2446, still no go. I'm not sure if I'm doing this right, but I have added pspDveManager.o to the OBJS and the corresponding pspDveManager.S from moonlight's TV sample code in order to resolve the error:
| Code: | /usr/local/pspdev/lib/gcc/psp/4.3.0/../../../../psp/lib/libGL.a(eglGetDisplay.o): In function `eglGetDisplay':
/root/psplibraries/build/pspgl/eglGetDisplay.c:25: undefined reference to `pspDveMgrCheckVideoOut'
/usr/local/pspdev/lib/gcc/psp/4.3.0/../../../../psp/lib/libGL.a(eglInitialize.o): In function `eglInitialize':
/root/psplibraries/build/pspgl/eglInitialize.c:27: undefined reference to `pspDveMgrSetVideoOut'
/root/psplibraries/build/pspgl/eglInitialize.c:30: undefined reference to `pspDveMgrSetVideoOut'
|
Additonally, here's my (somewhat trivial) setupPSP() in common.h:
| Code: |
#include <pspkernel.h>
#ifdef PSP_BOOST_CPU
#include <psppower.h>
#endif
#ifdef PSP_ENABLE_DEBUG
#include <pspdebug.h>
#define printf pspDebugScreenPrintf
#endif
int exitCallback(int arg1, int arg2, void *common)
{
sceKernelExitGame();
return 0;
}
int callbackThread(SceSize args, void *argp)
{
int cbid;
cbid = sceKernelCreateCallback("Exit Callback", exitCallback, NULL);
sceKernelRegisterExitCallback(cbid);
sceKernelSleepThreadCB();
return 0;
}
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 setupPSP(void)
{
#ifdef PSP_BOOST_CPU
scePowerSetClockFrequency(333, 333, 166);
#endif
// setup callbacks
setupCallbacks();
#ifdef PSP_ENABLE_DEBUG
pspDebugScreenInit();
#endif
return 0;
}
| [/code] |
|
| Back to top |
|
 |
J.F.
Joined: 22 Feb 2004 Posts: 2906
|
Posted: Thu Nov 20, 2008 4:18 pm Post subject: |
|
|
Well, the setPSP looks okay. You know, you don't need to do that for testing. If in doubt, you could just not call setupPSP to see what happens.
All of my tests (and most apps) start with
| Code: | pspDebugScreenInit();
pspDebugScreenSetBackColor(0xFF000000);
pspDebugScreenSetTextColor(0xFFFFFFFF);
|
With lots of pspDebugScreenPrintf()s scattered around.
The SDL/PSPGL with TV support requires the dve manager code from D_A's example for TV coding. There's a pspDveManager.S file that needs to be included with the project to compile. That's why Heimdall is making two separate dev packages for SDL/PSPGL on his Win32 dev package thingy. |
|
| Back to top |
|
 |
asphodeli
Joined: 29 Jun 2008 Posts: 20 Location: Singapore
|
Posted: Fri Nov 21, 2008 10:53 am Post subject: |
|
|
| J.F. wrote: | Well, the setPSP looks okay. You know, you don't need to do that for testing. If in doubt, you could just not call setupPSP to see what happens.
All of my tests (and most apps) start with
| Code: | pspDebugScreenInit();
pspDebugScreenSetBackColor(0xFF000000);
pspDebugScreenSetTextColor(0xFFFFFFFF);
|
With lots of pspDebugScreenPrintf()s scattered around.
The SDL/PSPGL with TV support requires the dve manager code from D_A's example for TV coding. There's a pspDveManager.S file that needs to be included with the project to compile. That's why Heimdall is making two separate dev packages for SDL/PSPGL on his Win32 dev package thingy. |
I'm using pspDveManager.S from dve_sample.zip provided by D_A and included it in the Makefile, and I'm still getting auto-shutdown (pressing the PSP_CTRL_CROSS button doesn't exit the app gracefully as well) on my PSP even when I comment out everything in main(). I'm really mystified as to why it doesn't work normally.
EDIT: Finally the code works, seems to be a problem with the functions glTexEnvi and glTexParameteri, probably because there are no textures loaded.
| Code: |
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <pspctrl.h>
#include <pspdebug.h>
#include "common.h"
//#include "glchk.h"
#include <GLES/egl.h>
#include <GLES/gl.h>
//PSP module info
PSP_MODULE_INFO("eglcube", 0, 1, 1);
//Cause 640k ought to be enough for everybody?
PSP_HEAP_SIZE_KB(-640);
//Set thread attribute to user-land and enable VFPU
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER|PSP_THREAD_ATTR_VFPU);
struct Vertex
{
float u, v;
unsigned int color;
float x,y,z;
};
static const
struct Vertex __attribute__((aligned(16))) vertices [12*3] =
{
{ 0, 0, 0xff7f0000,-1,-1, 1 }, // 0
{ 1, 0, 0xff7f0000,-1, 1, 1 }, // 4
{ 1, 1, 0xff7f0000, 1, 1, 1 }, // 5
{ 0, 0, 0xff7f0000,-1,-1, 1 }, // 0
{ 1, 1, 0xff7f0000, 1, 1, 1 }, // 5
{ 0, 1, 0xff7f0000, 1,-1, 1 }, // 1
{ 0, 0, 0xff7f0000,-1,-1,-1 }, // 3
{ 1, 0, 0xff7f0000, 1,-1,-1 }, // 2
{ 1, 1, 0xff7f0000, 1, 1,-1 }, // 6
{ 0, 0, 0xff7f0000,-1,-1,-1 }, // 3
{ 1, 1, 0xff7f0000, 1, 1,-1 }, // 6
{ 0, 1, 0xff7f0000,-1, 1,-1 }, // 7
{ 0, 0, 0xff007f00, 1,-1,-1 }, // 0
{ 1, 0, 0xff007f00, 1,-1, 1 }, // 3
{ 1, 1, 0xff007f00, 1, 1, 1 }, // 7
{ 0, 0, 0xff007f00, 1,-1,-1 }, // 0
{ 1, 1, 0xff007f00, 1, 1, 1 }, // 7
{ 0, 1, 0xff007f00, 1, 1,-1 }, // 4
{ 0, 0, 0xff007f00,-1,-1,-1 }, // 0
{ 1, 0, 0xff007f00,-1, 1,-1 }, // 3
{ 1, 1, 0xff007f00,-1, 1, 1 }, // 7
{ 0, 0, 0xff007f00,-1,-1,-1 }, // 0
{ 1, 1, 0xff007f00,-1, 1, 1 }, // 7
{ 0, 1, 0xff007f00,-1,-1, 1 }, // 4
{ 0, 0, 0xff00007f,-1, 1,-1 }, // 0
{ 1, 0, 0xff00007f, 1, 1,-1 }, // 1
{ 1, 1, 0xff00007f, 1, 1, 1 }, // 2
{ 0, 0, 0xff00007f,-1, 1,-1 }, // 0
{ 1, 1, 0xff00007f, 1, 1, 1 }, // 2
{ 0, 1, 0xff00007f,-1, 1, 1 }, // 3
{ 0, 0, 0xff00007f,-1,-1,-1 }, // 4
{ 1, 0, 0xff00007f,-1,-1, 1 }, // 7
{ 1, 1, 0xff00007f, 1,-1, 1 }, // 6
{ 0, 0, 0xff00007f,-1,-1,-1 }, // 4
{ 1, 1, 0xff00007f, 1,-1, 1 }, // 6
{ 0, 1, 0xff00007f, 1,-1,-1 }, // 5
};
int done = 0;
static const EGLint attrib_list [] = {
EGL_RED_SIZE, 1,
EGL_GREEN_SIZE, 1,
EGL_BLUE_SIZE, 1,
EGL_ALPHA_SIZE, 0,
EGL_DEPTH_SIZE, 0,
EGL_NONE
};
int main(int argc, char* argv[])
{
setupPSP();
//pspDebugScreenInit();
//pspDebugScreenSetBackColor(0xFFFFFFFF);
//pspDebugScreenSetTextColor(0x00000000);
EGLDisplay dpy;
EGLConfig config;
EGLint num_configs;
EGLContext ctx;
EGLSurface surface;
GLfloat angle = 0.0f;
SceCtrlData pad;
sceCtrlSetSamplingCycle(0);
sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);
/* pass NativeDisplay=0, we only have one screen... */
dpy = eglGetDisplay(0);
eglInitialize(dpy, NULL, NULL);
// eglChooseConfig(dpy, attrib_list, &config, 1, &num_configs);
ctx = eglCreateContext(dpy, config, NULL, NULL);
surface = eglCreateWindowSurface(dpy, config, 0, NULL);
eglMakeCurrent(dpy, surface, surface, ctx);
glDisable(GL_STENCIL_TEST);
glDisable(GL_ALPHA_TEST);
glDisable(GL_SCISSOR_TEST);
glDepthFunc(GL_LEQUAL);
glEnable(GL_DEPTH_TEST);
glFrontFace(GL_CW);
glShadeModel(GL_SMOOTH);
glEnable(GL_CULL_FACE);
glEnable(GL_TEXTURE_2D);
glViewport(0, 0, 480, 272);
glScissor(0, 0, 480, 272);
glDepthRangef(0.0f, 1.0f);
while (!done) {
sceCtrlReadBufferPositive(&pad, 1);
//printf("Analog X = %d ", pad.Lx);
//printf("Analog Y = %d \n", pad.Ly);
if (pad.Buttons != 0){
if (pad.Buttons & PSP_CTRL_SQUARE){
//printf("Square pressed \n");
}
if (pad.Buttons & PSP_CTRL_TRIANGLE){
//printf("Triangle pressed \n");
}
if (pad.Buttons & PSP_CTRL_CIRCLE){
angle += 1.0f;
//printf("Cicle pressed \n");
}
if (pad.Buttons & PSP_CTRL_CROSS){
done = 1;
//printf("Cross pressed \n");
}
if (pad.Buttons & PSP_CTRL_UP){
//printf("Up pressed \n");
}
if (pad.Buttons & PSP_CTRL_DOWN){
//printf("Down pressed \n");
}
if (pad.Buttons & PSP_CTRL_LEFT){
//printf("Left pressed \n");
}
if (pad.Buttons & PSP_CTRL_RIGHT){
//printf("Right pressed \n");
}
if (pad.Buttons & PSP_CTRL_START){
//printf("Start pressed \n");
}
if (pad.Buttons & PSP_CTRL_SELECT){
//printf("Select pressed \n");
}
if (pad.Buttons & PSP_CTRL_LTRIGGER){
//printf("L-trigger pressed \n");
}
if (pad.Buttons & PSP_CTRL_RTRIGGER){
//printf("R-trigger pressed \n");
}
}
glClearColor(pad.Lx * 1.0f/255, pad.Ly * 1.0f/255, 1.0f, 1.0f);
glClearDepthf(1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspectivef(75.0f, 16.0f/9.0f, 0.5f, 1000.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAtf(0.0f, 0.0f, 2.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f);
glRotatef(angle * 0.79f, 1.0f, 0.0f, 0.0f);
glRotatef(angle * 0.98f, 0.0f, 1.0f, 0.0f);
glRotatef(angle * 1.32f, 0.0f, 0.0f, 1.0f);
/* setup texture */
// glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
// glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
// glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
//glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 64, 64, 0, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, logo_start));
/* draw cube */
glInterleavedArrays(GL_T2F_C4UB_V3F, 0, (void *) vertices);
glDrawArrays(GL_TRIANGLES, 0, 12*3);
eglSwapBuffers(dpy, surface);
}
eglTerminate(dpy);
sceKernelExitGame();
return 0;
}
|
|
|
| Back to top |
|
 |
J.F.
Joined: 22 Feb 2004 Posts: 2906
|
Posted: Fri Nov 21, 2008 11:49 am Post subject: |
|
|
Stick some debug prints in the code and find where it's failing. It's called debugging - something you'll have to pick up on your own.
Comment in those debug init lines and stick a debug print right at the start (followed by sceKernelDelayThread(3*1000*1000); so you can read it). If it doesn't show, you probably have problems with your toolchain.
If it shows, move it down the lines and find where it goes boom. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|