rendered paste bodyint frame;
void *g_vram_base, *g_vram_base_2;
unsigned char* getVramAddr() {
if (frame == 0)
return g_vram_base;
return g_vram_base_2;
}
void swapBuffer() {
if (frame == 0) {
sceDisplaySetFrameBuf(g_vram_base, 512, 3, 1);
frame = 1;
} else {
sceDisplaySetFrameBuf(g_vram_base_2, 512, 3, 1);
frame = 0;
}
}
void fillvram(unsigned long color)
{
unsigned long *vptr0; //pointer to vram
unsigned long i,j;
vptr0=getVramAddr();
for (i=0; i<272; i++) {
for (j=0; j<480; j++) {
*vptr0=color;
vptr0+=1;
}
vptr0+=512-480; //skip offscreen buffer
vptr0+=512; //skip a line
}
}
/* main routine */
int main(int argc, char *argv[])
{
#if 1
g_vram_base = (void *) (0x40000000 | sceGeEdramGetAddr());
g_vram_base_2 = (void *) (g_vram_base + 512*272*4);
int i;
frame = 0;
sceDisplaySetMode(0, 480, 272);
sceDisplaySetFrameBuf(g_vram_base, 512, 3, 1);
SetupCallbacks();
for(;;) {
if (frame == 0)
fillvram(0xFF000000);
else
fillvram(0x00FF0000);
//for (i = 0; i < 272; i+=1)
// memset(frame?g_vram_base:g_vram_base_2, i%2==0?0x7F:0x00, 720);
sceKernelDelayThread(50000);
swapBuffer();
}
sceKernelExitGame();
#endif
}