void OSPC_PlayBuffer(char *buff,int len,int release,int vol) { int i,j,pollcpt; char str[256]; SPC_ID666 *id; char *emulator[3]={"Unknown","Zsnes","Snes9x"}; uint8 *scr; OSPC_Init(); if (i=OSPC_LoadBuffer(buff,len)) { sprintf(str,"Error at SPC loading, code : %d",i); msgBoxLines(str,60); //gp32_pause(); //GpAppExit(); return; } OSPC_id=OSPC_GetID666(spc_data); OSPC_sound_fd = sceAudioChReserve( -1, 1024, 0 ); OSPC_exit=0; OSPC_volume=vol; OSPC_thread = sceKernelCreateThread( "OSPC Thread", (SceKernelThreadEntry)OSPC_PlayThread, 0x8, 256*1024, 0, 0 ); if (OSPC_thread<0) { msgBoxLines("Cannot create OSPC playback thread",60); } else { //init start time sceKernelLibcGettimeofday( &OSPC_start_time, 0 ); sceKernelStartThread( OSPC_thread, 0, 0 ); if (release) return; for (;;) { pgWaitV(); if (get_pad()) break; } OSPC_exit=1; sceKernelWaitThreadEnd( OSPC_thread, NULL ); sceKernelDeleteThread( OSPC_thread ); OSPC_thread=-1; } sceAudioChRelease( OSPC_sound_fd ); OSPC_Stop(); OSPC_Close(); if (OSPC_id) free(OSPC_id); }
void ButtonChange(char tempstring[][MAX_TEMP_STRING], const char* buttons[], const char* tempkeystring[]) { pgFillvram(0); int i = 0; int die = 0; int col; int tempact = 0; char tempselect[27]; for (i=0; i<MAX_CONTROL; i++) { if (d_controls[i] == CKEY_WEAPON) die = 0; else if (d_controls[i] == KEY_ENTER) die = 1; else if (d_controls[i] == KEY_ESCAPE) die = 2; else if (d_controls[i] == ' ') die = 3; else if (d_controls[i] == CKEY_MOVE) die = 4; else if (d_controls[i] == KEY_TAB) die = 5; else if (d_controls[i] == KEY_RSHIFT) die = 6; else if (d_controls[i] == KEY_RCTRL) die = 7; else if (d_controls[i] == ',') die = 8; else if (d_controls[i] == '.') die = 9; else if (d_controls[i] == 222) die = 10; else if (d_controls[i] == 266) die = 11; else if (d_controls[i] == 333) die = 12; col = rgb2col(255,255,255); if (i==d_clist_curpos) { col = rgb2col(255,0,0); } sprintf(tempstring[i], "%s = %s", buttons[i], tempkeystring[die]); mh_print(5, ((i + 1) * 20), tempstring[i], col, 0, 0); } if (d_controls[d_clist_curpos] == CKEY_WEAPON) die = 0; else if (d_controls[d_clist_curpos] == KEY_ENTER) die = 1; else if (d_controls[d_clist_curpos] == KEY_ESCAPE) die = 2; else if (d_controls[d_clist_curpos] == ' ') die = 3; else if (d_controls[d_clist_curpos] == CKEY_MOVE) die = 4; else if (d_controls[d_clist_curpos] == KEY_TAB) die = 5; else if (d_controls[d_clist_curpos] == KEY_RSHIFT) die = 6; else if (d_controls[d_clist_curpos] == KEY_RCTRL) die = 7; else if (d_controls[d_clist_curpos] == ',') die = 8; else if (d_controls[d_clist_curpos] == '.') die = 9; else if (d_controls[d_clist_curpos] == 222) die = 10; else if (d_controls[d_clist_curpos] == 266) die = 11; else if (d_controls[d_clist_curpos] == 333) die = 12; sprintf(tempselect, "Make selection for %s", tempkeystring[die]); mh_print(5, 255, tempselect, rgb2col(50, 255, 50), 0, 0); pgScreenFlipV(); unsigned long key; control_bef_ctl = now_pad; while (1) { key = Read_Key3(); if (key != 0) break; pgWaitV(); } if (d_controls[die] == CKEY_WEAPON || d_controls[die] == CKEY_MOVE) { tempact = d_controls[4]; d_controls[4] = d_controls[0]; d_controls[0] = tempact; if (d_controls[0] == CKEY_MOVE) { analog = 1; } else { analog = 0; } } else if (key & SCE_CTRL_START) { tempact = d_controls[1]; d_controls[1] = d_controls[d_clist_curpos]; d_controls[d_clist_curpos] = tempact; } else if (key & SCE_CTRL_SELECT) { tempact = d_controls[2]; d_controls[2] = d_controls[d_clist_curpos]; d_controls[d_clist_curpos] = tempact; } else if (key & SCE_CTRL_CROSS) { tempact = d_controls[3]; d_controls[3] = d_controls[d_clist_curpos]; d_controls[d_clist_curpos] = tempact; } else if (key & SCE_CTRL_TRIANGLE) { tempact = d_controls[5]; d_controls[5] = d_controls[d_clist_curpos]; d_controls[d_clist_curpos] = tempact; } else if (key & SCE_CTRL_SQUARE) { tempact = d_controls[6]; d_controls[6] = d_controls[d_clist_curpos]; d_controls[d_clist_curpos] = tempact; } else if (key & SCE_CTRL_CIRCLE) { tempact = d_controls[7]; d_controls[7] = d_controls[d_clist_curpos]; d_controls[d_clist_curpos] = tempact; } else if (key & SCE_CTRL_LTRIGGER) { tempact = d_controls[8]; d_controls[8] = d_controls[d_clist_curpos]; d_controls[d_clist_curpos] = tempact; } else if (key & SCE_CTRL_RTRIGGER) { tempact = d_controls[9]; d_controls[9] = d_controls[d_clist_curpos]; d_controls[d_clist_curpos] = tempact; } control_bef_ctl = key; }
void NewPrompter() { char* buttons[MAX_CONTROL]; char tempstring[MAX_CONTROL][MAX_TEMP_STRING]; char* tempkeystring[MAX_CONTROL+2]; tempkeystring[0] = "WEAPON"; tempkeystring[1] = "ENTER"; tempkeystring[2] = "ESC"; tempkeystring[3] = "USE"; tempkeystring[4] = "MOVE"; tempkeystring[5] = "MAP"; tempkeystring[6] = "RUN"; tempkeystring[7] = "FIRE"; tempkeystring[8] = "M_LEFT"; tempkeystring[9] = "M_RIGHT"; //tempkeystring[10] = "222"; //tempkeystring[11] = "266"; //tempkeystring[12] = "333"; buttons[0] = "ANALOG "; buttons[1] = "START "; buttons[2] = "SELECT "; buttons[3] = "CROSS "; buttons[4] = "DPAD "; buttons[5] = "TRIANGLE "; buttons[6] = "SQUARE "; buttons[7] = "CIRCLE "; buttons[8] = "L_TRIG "; buttons[9] = "R_TRIG "; //buttons[10] = "CPU_CLOCK"; control_bef_ctl = 0; pgScreenFrame(2,0); pgFillvram(0); pgScreenFlipV(); while (1) { pgFillvram(0); int i = 0; int die = 0; int col; for (i=0; i<MAX_CONTROL; i++) { if (d_controls[i] == CKEY_WEAPON) die = 0; else if (d_controls[i] == KEY_ENTER) die = 1; else if (d_controls[i] == KEY_ESCAPE) die = 2; else if (d_controls[i] == ' ') die = 3; else if (d_controls[i] == CKEY_MOVE) die = 4; else if (d_controls[i] == KEY_TAB) die = 5; else if (d_controls[i] == KEY_RSHIFT) die = 6; else if (d_controls[i] == KEY_RCTRL) die = 7; else if (d_controls[i] == ',') die = 8; else if (d_controls[i] == '.') die = 9; else if (d_controls[i] == 222) die = 10; else if (d_controls[i] == 266) die = 11; else if (d_controls[i] == 333) die = 12; col = rgb2col(255,255,255); if (i==d_clist_curpos) { col = rgb2col(255,0,0); } sprintf(tempstring[i], "%s = %s",buttons[i],tempkeystring[die]); mh_print(5, ((i + 2) * 20), tempstring[i], col, 0, 0); } if (d_clist_curpos != 10) { mh_print(5,255,"X: Exit | O: Change | Triangle: Save To File",rgb2col(50,255,50),0,0); } else { mh_print(5,255,"X: Exit | O: Increment | Square: Decrement | Triangle: Save To File",rgb2col(50,255,50),0,0); } pgScreenFlipV(); if (control_bef_ctl == 0) { Read_Key2(); pgWaitV(); } else { unsigned long ankey; while (1) { ankey = Read_Key3(); if (ankey != 0) break; pgWaitV(); } new_pad = old_pad = now_pad = ankey; control_bef_ctl = 0; } if (new_pad & SCE_CTRL_UP) { if (d_clist_curpos > 0) { d_clist_curpos--; if (d_clist_curpos < d_clist_start) { d_clist_start = d_clist_curpos; } } } else if (new_pad & SCE_CTRL_DOWN) { if (d_clist_curpos < (MAX_CONTROL-1)) { d_clist_curpos++; if (d_clist_curpos >= (d_clist_start+MAX_CONTROL-1)) { d_clist_start++; } } } else if (new_pad & SCE_CTRL_CIRCLE) { if (d_clist_curpos != 10) { ButtonChange(tempstring, buttons, tempkeystring); } else { change_cpu_clock(1); // increment } } else if (new_pad & SCE_CTRL_TRIANGLE) { SaveToFile(tempstring, buttons, tempkeystring); } else if (new_pad & SCE_CTRL_SQUARE) { if (d_clist_curpos == 10) change_cpu_clock(0); // decrement } else if (new_pad & SCE_CTRL_CROSS) { break; } } }
int Control(void) { int i; Read_Key2(); pgWaitV(); if (new_pad & PSP2_CTRL_UP) { if (dlist_curpos > 0) { dlist_curpos--; if (dlist_curpos < dlist_start) { dlist_start = dlist_curpos; } } } if (new_pad & PSP2_CTRL_DOWN) { if (dlist_curpos < (dlist_num-1)) { dlist_curpos++; if (dlist_curpos >= (dlist_start+PATHLIST_H)) { dlist_start++; } } } if (new_pad & PSP2_CTRL_LEFT) { dlist_curpos -= PATHLIST_H; if (dlist_curpos < 0) { dlist_curpos = 0; } if (dlist_curpos < dlist_start) { dlist_start = dlist_curpos; } } if (new_pad & PSP2_CTRL_RIGHT) { dlist_curpos += PATHLIST_H; if (dlist_curpos >= dlist_num) { dlist_curpos = dlist_num-1; } while (dlist_curpos >= (dlist_start+PATHLIST_H)) { dlist_start++; } } if (new_pad & PSP2_CTRL_CIRCLE) { if (dlist[dlist_curpos].type & TYPE_DIR) { if (now_depth<MAXDEPTH) { // pathÚ® strcat(doomwaddir2, dlist[dlist_curpos].name); strcat(doomwaddir2, "/"); cbuf_start[now_depth] = dlist_start; cbuf_curpos[now_depth] = dlist_curpos; dlist_start = 0; dlist_curpos = 0; now_depth++; return 1; } } else { // return 2; for(i=0;i<MAXPATH;i++) { if (dlist[dlist_curpos].name[i]==0) break; } if (i>2) { if (((dlist[dlist_curpos].name[i-3] & 0xDF) == '.') && ((dlist[dlist_curpos].name[i-2] & 0xDF) == 'G') && ((dlist[dlist_curpos].name[i-1] & 0xDF) == 'B')) { return 2; } i--; } } } if (new_pad & PSP2_CTRL_CROSS) { if (now_depth > 0) { // pathÚ® for(i=0;i<MAXPATH;i++) { if (doomwaddir2[i]==0) break; } i--; while(i>4) { if (doomwaddir2[i-1]=='/') { doomwaddir[i]=0; break; } i--; } now_depth--; dlist_start = cbuf_start[now_depth]; dlist_curpos = cbuf_curpos[now_depth]; return 1; } } return 0; }
void pgScreenFlipV() { pgWaitV(); pgScreenFlip(); }