int 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 }