#include #include #include #include #include #include #include #include "ZeDemo.h" #include "effects.h" #include "precalcs.h" #include "engine3d.h" #include #include #include SDL_Surface *screen; SDL_Joystick *joystick; SDL_Event event; MODULE *module; int quit = 0; int nfrm=0, pfrm=0; int fps=0, atime=0; int partime=0, prticks=0; char sbuffer[64]; int part = 0; int nparts = 5; extern int objshow_num, objshow_rmode, objshow_shade; int maxobj = 7, maxshade = 13; int rmode = 4; int zbflag = 0; extern int render_shit; extern unsigned short shades[64][256]; extern unsigned short loading[]; void InitMusic() { MikMod_RegisterAllDrivers(); MikMod_RegisterAllLoaders(); md_mode |= DMODE_SOFT_MUSIC; MikMod_Init(""); module = Player_Load("app0:creeptea.mod", 64, 0); if (module) { Player_Start(module); } } void Wait(int seconds) { int atime = SDL_GetTicks(); while(SDL_GetTicks() - atime < (seconds * 1000)){}; } void ClearScreen() { memset((unsigned int*)screen->pixels, 0, sizeof(unsigned short) * SSIZE); } void Script() { unsigned short *vram = (unsigned short*)screen->pixels; prticks = SDL_GetTicks() - partime; int leblast = 2192; //printf("DEBUG: Script() Part case Number = %d\n", part); switch(part) { case 0: Floor(vram, 64, 64); objshow_num = 0; objshow_shade = 1; objshow_rmode = GOURAUD; render_shit = 0; RunScene3d(vram,0); if (prticks>leblast*6) part = 1; break; case 1: Radial(vram,1); if (prticks>leblast*11.75) part = 2; break; case 2: DrawSky(vram); objshow_num = 1; objshow_shade = 1; objshow_rmode = ENVMAP; render_shit = 0; RunScene3d(vram,1); if (prticks>leblast*23) part = 3; break; case 3: Polarplasma(vram, shades[4]); objshow_num = 2; objshow_shade = 6; objshow_rmode = GOURAUD; render_shit = 0; RunScene3d(vram,0); if (prticks>leblast*34.5) part = 4; break; case 4: Plasma(vram, shades[5]); objshow_num = 3; objshow_shade = 2; objshow_rmode = GOURAUD; render_shit = 0; RunScene3d(vram,0); if (prticks>leblast*46) part = 5; break; case 5: ClearScreen(); objshow_num = 6; render_shit = 1; RunScene3d(vram,0); if (prticks>leblast*57.5) { InitRadialBitmap2(); part = 6; } break; case 6: Radial(vram,0); if (prticks>leblast*68.5) quit = 1; break; default: break; } } void Init() { if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0) { printf("DEBUG: SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0. Failed\n"); sceKernelExitProcess(0); } screen = SDL_SetVideoMode(WIDTH, HEIGHT, 16, SDL_SWSURFACE); if (!screen) { printf("DEBUG: screen Failed.\n"); sceKernelExitProcess(0); } SDL_SetVideoModeScaling(118, 0, 725, 544); joystick = SDL_JoystickOpen(0); if (!joystick) { printf("DEBUG: joystick failed.\n"); sceKernelExitProcess(0); } SDL_ShowCursor(SDL_DISABLE); SDL_LockSurface(screen); int i; unsigned short *vram = (unsigned short*)screen->pixels; for (i = 0; i=1000) { atime = SDL_GetTicks(); fps=(nfrm-pfrm); pfrm=nfrm; } // sprintf(sbuffer, "FPS = %d", fps); // DrawText_(8, 16, 16, sbuffer, 16, (unsigned short*)screen->pixels); } void CheckJoy() { while (SDL_PollEvent(&event)) { switch (event.type) { case SDL_JOYBUTTONDOWN: switch(event.jbutton.button) { case GP2X_BUTTON_START: quit = 1; break; /* case GP2X_BUTTON_L: part = (part + 1) % nparts; break; case GP2X_BUTTON_R: part--; if (part<0) part = nparts - 1; break; */ } break; } } } int main(int argc, char *argv[]) { //MAXIMUM SPEEEED scePowerSetArmClockFrequency(444); scePowerSetBusClockFrequency(222); Init(); do{ SDL_LockSurface(screen); Script(); CountFps(); nfrm++; SDL_UnlockSurface(screen); SDL_Flip(screen); if (Player_Active()) MikMod_Update(); CheckJoy(); }while(!quit); SDL_Quit(); Player_Stop(); Player_Free(module); MikMod_Exit(); sceKernelExitProcess(0); return 0; }