// loadISO loads an ISO file as current media to read from. int loadISOSwap(fileBrowser_file* file) { // Refresh file pointers memset(&isoFile, 0, sizeof(fileBrowser_file)); memset(&cddaFile, 0, sizeof(fileBrowser_file)); memset(&subFile, 0, sizeof(fileBrowser_file)); memcpy(&isoFile, file, sizeof(fileBrowser_file) ); CDR_close(); SetIsoFile(&file->name[0]); //might need to insert code here to trigger a lid open/close interrupt if(CDR_open() < 0) return -1; CheckCdrom(); LoadCdrom(); return 0; }
static int gui_swap_cd(void) { //Is a multi-cd image loaded? (EBOOT .pbp files support this) bool using_multicd = cdrIsoMultidiskCount > 1; if (using_multicd) { // Pass true to gui_select_multicd() so it knows CD is being swapped if (!gui_select_multicd(true)) { // User cancelled, return to menu return 0; } else { printf("CD swap selected image %d of %d in multi-CD\n", cdrIsoMultidiskSelect+1, cdrIsoMultidiskCount); } } else { static char isoname[PATH_MAX]; const char *name = FileReq(Config.LastDir, NULL, isoname); if (name == NULL) return 0; SetIsoFile(name); printf("CD swap selected file: %s\n", name); } CdromId[0] = '\0'; CdromLabel[0] = '\0'; //Unregister multi-CD callback so handlepbp() or other cdriso // plugins don't ask for CD to boot from cdrIsoMultidiskCallback = NULL; if (ReloadCdromPlugin() < 0) { printf("Failed to re-initialize cdr\n"); return 0; } if (CDR_open() < 0) { printf("Failed to open cdr\n"); return 0; } SetCdOpenCaseTime(time(NULL) + 2); LidInterrupt(); return 1; }
int _OpenPlugins() { int ret; GPU_clearDynarec(clearDynarec); ret = CDR_open(); if (ret < 0) { SysMessage(_("Error Opening CDR Plugin")); return -1; } ret = GPU_open(NULL, "PCSXR", NULL); if (ret < 0) { SysMessage(_("Error Opening GPU Plugin (%d)"), ret); return -1; } //GPU_registerCallback(GPUbusy); ret = SPU_open(); if (ret < 0) { SysMessage(_("Error Opening SPU Plugin (%d)"), ret); return -1; } SPU_registerCallback(SPUirq); ret = PAD1_open(NULL); if (ret < 0) { SysMessage(_("Error Opening PAD1 Plugin (%d)"), ret); return -1; } //PAD1_registerVibration(GPU_visualVibration); //PAD1_registerCursor(GPU_cursor); ret = PAD2_open(NULL); if (ret < 0) { SysMessage(_("Error Opening PAD2 Plugin (%d)"), ret); return -1; } //PAD2_registerVibration(GPU_visualVibration); //PAD2_registerCursor(GPU_cursor); return 0; }
int LoadPlugins(void) { int ret; const char *cdrfilename=NULL; ReleasePlugins(); LoadMcds(Config.Mcd1, Config.Mcd2); ret = CDR_init(); if (ret < 0) { printf ("Error initializing CD-ROM plugin: %d\n", ret); return -1; } ret = GPU_init(); if (ret < 0) { printf ("Error initializing GPU plugin: %d\n", ret); return -1; } ret = SPU_init(); if (ret < 0) { printf ("Error initializing SPU plugin: %d\n", ret); return -1; } #ifdef spu_pcsxrearmed //senquack - NOTE: this is an important function to call, as SPU // IRQs will not be acknowledged otherwise, leading to repeating sound // problems in games like NFS3, Grandia, Fifa98, and some games will // lack music like Chrono Cross FMV music, THPS2 etc. // Only spu_pcsxrearmed supports this (older SPU plugins all had // problems with sound in these games.. TODO: add support?) SPU_registerCallback(AcknowledgeSPUIRQ); //senquack - pcsx_rearmed SPU plugin schedules its own updates: SPU_registerScheduleCb(ScheduleSPUUpdate); #endif cdrfilename=GetIsoFile(); if (cdrfilename[0] != '\0') { ret=CDR_open(); if (ret < 0) { printf ("Error opening CD-ROM: %s\n", cdrfilename); return -1; } } printf("Plugins loaded.\n"); return 0; }
void OpenPlugins() { int ret; SysPrintf("start OpenPlugins()\r\n"); SysPrintf("CDR_open()\r\n"); ret = CDR_open(); if (ret != 0) { SysMessage ("Error Opening CDR Plugin\n"); exit(1); } SysPrintf("SPU_open()\r\n"); ret = SPU_open(); if (ret != 0) { SysMessage ("Error Opening SPU Plugin\n"); exit(1); } SPU_registerCallback(SPUirq); SysPrintf("GPU_open()\r\n"); ret = GPU_open(&gpuDisp, "P©SX", NULL); if (ret != 0) { SysMessage ("Error Opening GPU Plugin\n"); exit(1); } SysPrintf("PAD1_open()\r\n"); ret = PAD1_open(&gpuDisp); if (ret != 0) { SysMessage ("Error Opening PAD1 Plugin\n"); exit(1); } SysPrintf("PAD2_open()\r\n"); ret = PAD2_open(&gpuDisp); if (ret != 0) { SysMessage ("Error Opening PAD2 Plugin\n"); exit(1); } SysPrintf("end OpenPlugins()\r\n"); }
int _OpenPlugins() { long ret; GPU_clearDynarec(clearDynarec); ret = CDR_open(); if (ret < 0) { SysMessage("%s", _("Error Opening CDR Plugin")); return -1; } ret = SPU_open(); if (ret < 0) { SysMessage("%s", _("Error Opening SPU Plugin")); return -1; } SPU_registerCallback(SPUirq); ret = GPU_open(&gpuDisp, "PCSXR", NULL); if (ret < 0) { SysMessage("%s", _("Error Opening GPU Plugin")); return -1; } ret = PAD1_open(&gpuDisp); if (ret < 0) { SysMessage("%s", _("Error Opening PAD1 Plugin")); return -1; } PAD1_registerVibration(GPU_visualVibration); PAD1_registerCursor(GPU_cursor); ret = PAD2_open(&gpuDisp); if (ret < 0) { SysMessage("%s", _("Error Opening PAD2 Plugin")); return -1; } PAD2_registerVibration(GPU_visualVibration); PAD2_registerCursor(GPU_cursor); #ifdef ENABLE_SIO1API ret = SIO1_open(&gpuDisp); if (ret < 0) { SysMessage("%s", _("Error opening SIO1 plugin!")); return -1; } SIO1_registerCallback(SIO1irq); #endif if (Config.UseNet && !NetOpened) { netInfo info; char path[MAXPATHLEN]; strcpy(info.EmuName, "PCSXR " PACKAGE_VERSION); strncpy(info.CdromID, CdromId, 9); strncpy(info.CdromLabel, CdromLabel, 11); info.psxMem = psxM; info.GPU_showScreenPic = GPU_showScreenPic; info.GPU_displayText = GPU_displayText; info.GPU_showScreenPic = GPU_showScreenPic; info.PAD_setSensitive = PAD1_setSensitive; sprintf(path, "%s%s", Config.BiosDir, Config.Bios); strcpy(info.BIOSpath, path); strcpy(info.MCD1path, Config.Mcd1); strcpy(info.MCD2path, Config.Mcd2); sprintf(path, "%s%s", Config.PluginsDir, Config.Gpu); strcpy(info.GPUpath, path); sprintf(path, "%s%s", Config.PluginsDir, Config.Spu); strcpy(info.SPUpath, path); sprintf(path, "%s%s", Config.PluginsDir, Config.Cdr); strcpy(info.CDRpath, path); NET_setInfo(&info); ret = NET_open(&gpuDisp); if (ret < 0) { if (ret == -2) { // -2 is returned when something in the info // changed and needs to be synced char *ptr; PARSEPATH(Config.Bios, info.BIOSpath); PARSEPATH(Config.Gpu, info.GPUpath); PARSEPATH(Config.Spu, info.SPUpath); PARSEPATH(Config.Cdr, info.CDRpath); strcpy(Config.Mcd1, info.MCD1path); strcpy(Config.Mcd2, info.MCD2path); return -2; } else { Config.UseNet = FALSE; } } else { if (NET_queryPlayer() == 1) { if (SendPcsxInfo() == -1) Config.UseNet = FALSE; } else { if (RecvPcsxInfo() == -1) Config.UseNet = FALSE; } } NetOpened = TRUE; } else if (Config.UseNet) { NET_resume(); } return 0; }
static int _OpenPlugins(void) { int ret; GPU_clearDynarec(clearDynarec); ret = CDR_open(); if (ret < 0) { SysMessage(_("Error opening CD-ROM plugin!")); return -1; } ret = SPU_open(); if (ret < 0) { SysMessage(_("Error opening SPU plugin!")); return -1; } SPU_registerCallback(SPUirq); SPU_registerScheduleCb(SPUschedule); ret = PAD1_open(&gpuDisp); if (ret < 0) { SysMessage(_("Error opening Controller 1 plugin!")); return -1; } ret = PAD2_open(&gpuDisp); if (ret < 0) { SysMessage(_("Error opening Controller 2 plugin!")); return -1; } if (Config.UseNet && !NetOpened) { netInfo info; char path[MAXPATHLEN]; char dotdir[MAXPATHLEN]; MAKE_PATH(dotdir, "/.pcsx/plugins/", NULL); strcpy(info.EmuName, "PCSX"); strncpy(info.CdromID, CdromId, 9); strncpy(info.CdromLabel, CdromLabel, 9); info.psxMem = psxM; info.GPU_showScreenPic = GPU_showScreenPic; info.GPU_displayText = GPU_displayText; info.GPU_showScreenPic = GPU_showScreenPic; info.PAD_setSensitive = PAD1_setSensitive; sprintf(path, "%s%s", Config.BiosDir, Config.Bios); strcpy(info.BIOSpath, path); strcpy(info.MCD1path, Config.Mcd1); strcpy(info.MCD2path, Config.Mcd2); sprintf(path, "%s%s", dotdir, Config.Gpu); strcpy(info.GPUpath, path); sprintf(path, "%s%s", dotdir, Config.Spu); strcpy(info.SPUpath, path); sprintf(path, "%s%s", dotdir, Config.Cdr); strcpy(info.CDRpath, path); NET_setInfo(&info); ret = NET_open(&gpuDisp); if (ret < 0) { if (ret == -2) { // -2 is returned when something in the info // changed and needs to be synced char *ptr; PARSEPATH(Config.Bios, info.BIOSpath); PARSEPATH(Config.Gpu, info.GPUpath); PARSEPATH(Config.Spu, info.SPUpath); PARSEPATH(Config.Cdr, info.CDRpath); strcpy(Config.Mcd1, info.MCD1path); strcpy(Config.Mcd2, info.MCD2path); return -2; } else { Config.UseNet = FALSE; } } else { if (NET_queryPlayer() == 1) { if (SendPcsxInfo() == -1) Config.UseNet = FALSE; } else { if (RecvPcsxInfo() == -1) Config.UseNet = FALSE; } } NetOpened = TRUE; } else if (Config.UseNet) { NET_resume(); } return 0; }
int _OpenPlugins(HWND hWnd) { int ret; GPU_clearDynarec(clearDynarec); ret = CDR_open(); //if (ret < 0) { SysMessage (_("Error Opening CDR Plugin")); return -1; } SetCurrentDirectory(PcsxrDir); if (Config.UseNet && !NetOpened) { netInfo info; char path[256]; strcpy(info.EmuName, "PCSXR " PACKAGE_VERSION); strncpy(info.CdromID, CdromId, 9); strncpy(info.CdromLabel, CdromLabel, 9); info.psxMem = psxM; info.GPU_showScreenPic = GPU_showScreenPic; info.GPU_displayText = GPU_displayText; info.GPU_showScreenPic = GPU_showScreenPic; info.PAD_setSensitive = PAD1_setSensitive; sprintf(path, "%s%s", Config.BiosDir, Config.Bios); strcpy(info.BIOSpath, path); strcpy(info.MCD1path, Config.Mcd1); strcpy(info.MCD2path, Config.Mcd2); sprintf(path, "%s%s", Config.PluginsDir, Config.Gpu); strcpy(info.GPUpath, path); sprintf(path, "%s%s", Config.PluginsDir, Config.Spu); strcpy(info.SPUpath, path); sprintf(path, "%s%s", Config.PluginsDir, Config.Cdr); strcpy(info.CDRpath, path); NET_setInfo(&info); ret = NET_open(hWnd); if (ret < 0) { if (ret == -2) { // -2 is returned when something in the info // changed and needs to be synced char *ptr; PARSEPATH(Config.Bios, info.BIOSpath); PARSEPATH(Config.Gpu, info.GPUpath); PARSEPATH(Config.Spu, info.SPUpath); PARSEPATH(Config.Cdr, info.CDRpath); strcpy(Config.Mcd1, info.MCD1path); strcpy(Config.Mcd2, info.MCD2path); return -2; } else { Config.UseNet = FALSE; } } else { HWND hW = CreateDialog(gApp.hInstance, MAKEINTRESOURCE(IDD_CONNECT), gApp.hWnd, ConnectDlgProc); ShowWindow(hW, SW_SHOW); if (NET_queryPlayer() == 1) { if (SendPcsxInfo() == -1) Config.UseNet = FALSE; } else { if (RecvPcsxInfo() == -1) Config.UseNet = FALSE; } DestroyWindow(hW); } NetOpened = TRUE; } else if (Config.UseNet) { NET_resume(); } ret = GPU_open(hWnd); if (ret < 0) { SysMessage (_("Error Opening GPU Plugin (%d)"), ret); return -1; } ret = SPU_open(hWnd); if (ret < 0) { SysMessage (_("Error Opening SPU Plugin (%d)"), ret); return -1; } SPU_registerCallback(SPUirq); ret = PAD1_open(hWnd); if (ret < 0) { SysMessage (_("Error Opening PAD1 Plugin (%d)"), ret); return -1; } PAD1_registerVibration(GPU_visualVibration); PAD1_registerCursor(GPU_cursor); ret = PAD2_open(hWnd); if (ret < 0) { SysMessage (_("Error Opening PAD2 Plugin (%d)"), ret); return -1; } PAD2_registerVibration(GPU_visualVibration); PAD2_registerCursor(GPU_cursor); #ifdef ENABLE_SIO1API ret = SIO1_open(hWnd); if (ret < 0) { SysMessage (_("Error Opening SIO1 plugin (%d)"), ret); return -1; } SIO1_registerCallback(SIO1irq); #endif SetCurrentDirectory(PcsxrDir); if(Config.HideCursor) ShowCursor(FALSE); return 0; }
int main(int argc, char **argv) { if (argc == 1 || (argc == 2 && (!strcmp(argv[1], "--help") || !strcmp(argv[1], "-help") || !strcmp(argv[1], "-h")))) { PrintHelp(); return 0; } emu_core_preinit(); ChangeWorkingDirectory("c"); char file[MAXPATHLEN] = ""; char path[MAXPATHLEN]; const char *cdfile = NULL; int loadst = 0; int i; int getst = -1; int discNumber = 0; g_menuscreen_w = 800; g_menuscreen_h = 480; strcpy(Config.Gpu, "builtin_gpu"); strcpy(Config.Spu, "builtin_spu"); strcpy(Config.BiosDir, "/home/user/MyDocs"); strcpy(Config.PluginsDir, "/opt/maemo/usr/games/plugins"); snprintf(Config.PatchesDir, sizeof(Config.PatchesDir), "/opt/maemo/usr/games" PATCHES_DIR); Config.PsxAuto = 1; pl_rearmed_cbs.frameskip = -1; strcpy(Config.Bios, "HLE"); iUseReverb = 0; iUseInterpolation = 0; in_type1 = PSE_PAD_TYPE_STANDARD; in_type2 = PSE_PAD_TYPE_STANDARD; accelOptions.sens = 150; accelOptions.y_def = 500; accelOptions.maxValue = 500.0; // read command line options for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "-psxout")) Config.PsxOut = 1; else if (!strcmp(argv[i], "-load")) loadst = atol(argv[++i]); else if (!strcmp(argv[i], "-cdfile")) { char isofilename[MAXPATHLEN]; if (i+1 >= argc) break; strncpy(isofilename, argv[++i], MAXPATHLEN); if (isofilename[0] != '/') { getcwd(path, MAXPATHLEN); if (strlen(path) + strlen(isofilename) + 1 < MAXPATHLEN) { strcat(path, "/"); strcat(path, isofilename); strcpy(isofilename, path); } else isofilename[0] = 0; } cdfile = isofilename; } else if (!strcmp(argv[i],"-frameskip")) { int tv_reg = atol(argv[++i]); if (tv_reg < -1) pl_rearmed_cbs.frameskip = -1; else pl_rearmed_cbs.frameskip = tv_reg; } else if (!strcmp(argv[i],"-region")) { int psx_reg = atol(argv[++i]); if (psx_reg == 0 || psx_reg == 1){ Config.PsxAuto = 0; Config.PsxType = psx_reg; } } else if (!strcmp(argv[i],"-get_sstatename")) getst = atol(argv[++i]); else if (!strcmp(argv[i], "-fullscreen")) g_maemo_opts |= 2; else if (!strcmp(argv[i], "-accel")) g_maemo_opts |= 4; else if (!strcmp(argv[i], "-nosound")) strcpy(Config.Spu, "spunull.so"); else if (!strcmp(argv[i], "-bdir")) sprintf(Config.BiosDir, "%s", argv[++i]); else if (!strcmp(argv[i], "-pdir")) sprintf(Config.PluginsDir, "%s", argv[++i]); else if (!strcmp(argv[i], "-bios")) sprintf(Config.Bios, "%s", argv[++i]); else if (!strcmp(argv[i], "-gles")) { strcpy(Config.Gpu, "gpu_gles.so"); g_maemo_opts |= 8 ;} else if (!strcmp(argv[i], "-oldgpu")) strcpy(Config.Gpu, "gpu_peops.so"); else if (!strcmp(argv[i], "-unai")) strcpy(Config.Gpu, "gpu_unai.so"); else if (!strcmp(argv[i], "-cdda")) Config.Cdda = 1; else if (!strcmp(argv[i], "-xa")) Config.Xa = 1; else if (!strcmp(argv[i], "-rcnt")) Config.RCntFix = 1 ; else if (!strcmp(argv[i], "-sio")) Config.Sio = 1; else if (!strcmp(argv[i], "-spuirq")) Config.SpuIrq = 1; else if (!strcmp(argv[i], "-vsync")) Config.VSyncWA = 1; else if (!strcmp(argv[i], "-fps")) g_opts |=OPT_SHOWFPS; else if (!strcmp(argv[i], "-cpu")) g_opts |=OPT_SHOWCPU; else if (!strcmp(argv[i], "-spu")) g_opts |=OPT_SHOWSPU; else if (!strcmp(argv[i], "-nofl")) g_opts |=OPT_NO_FRAMELIM; else if (!strcmp(argv[i], "-mcd1")) sprintf(Config.Mcd1, "%s", argv[++i]); else if (!strcmp(argv[i], "-mcd2")) sprintf(Config.Mcd2, "%s", argv[++i]); else if (!strcmp(argv[i], "-cpuclock")) cycle_multiplier = 10000 / atol(argv[++i]); else if (!strcmp(argv[i], "-guncon")) in_type1 = PSE_PAD_TYPE_GUNCON; else if (!strcmp(argv[i], "-gunnotrigger")) g_opts |= OPT_TSGUN_NOTRIGGER; else if (!strcmp(argv[i], "-analog")) in_type1 = PSE_PAD_TYPE_ANALOGPAD; else if (!strcmp(argv[i], "-vibration")) { in_type1 = PSE_PAD_TYPE_ANALOGPAD; in_enable_vibration = 1; } else if (!strcmp(argv[i], "-sens")) accelOptions.sens = atol(argv[++i]); else if (!strcmp(argv[i], "-ydef")) accelOptions.y_def = atol(argv[++i]); else if (!strcmp(argv[i], "-max")) accelOptions.maxValue = atol(argv[++i]); else if (!strcmp(argv[i], "-displayon")) bKeepDisplayOn = TRUE; else if (!strcmp(argv[i], "-keys")) sprintf(keys_config_file, "%s", argv[++i]); else if (!strcmp(argv[i], "-autosave")) bAutosaveOnExit = TRUE; else if (!strcmp(argv[i], "-disc")) discNumber = atol(argv[++i]); else if (!strcmp(argv[i], "-corners")){ int j = 0; i++; char num[2]; for (j=0; j<strlen(argv[i]); j++){ strncpy(num, argv[i] + j, 1); cornerActions[j] = atoi(num); } } else if (!strcmp(argv[i], "-spu_reverb")) { if (atol(argv[++i]) > 0) iUseReverb = 2; } else if (!strcmp(argv[i], "-spu_interpolation")) iUseInterpolation = atol(argv[++i]); else if (!strcmp(argv[i],"-interlace")) { int interlace = atol(argv[++i]); if (interlace >= 0 && interlace <= 2) pl_rearmed_cbs.gpu_neon.allow_interlace = interlace; } else if (!strcmp(argv[i], "-enhance")) pl_rearmed_cbs.gpu_neon.enhancement_enable = 1; else if (!strcmp(argv[i], "-enhancehack")) pl_rearmed_cbs.gpu_neon.enhancement_no_main = 1; else if (!strcmp(argv[i], "-gles_dithering")) pl_rearmed_cbs.gpu_peopsgl.bDrawDither = atol(argv[++i]); else if (!strcmp(argv[i], "-gles_mask")) pl_rearmed_cbs.gpu_peopsgl.iUseMask = atol(argv[++i]); else if (!strcmp(argv[i], "-gles_filtering")) pl_rearmed_cbs.gpu_peopsgl.iFilterType = atol(argv[++i]); else if (!strcmp(argv[i], "-gles_fbtex")) pl_rearmed_cbs.gpu_peopsgl.iFrameTexType = atol(argv[++i]); else if (!strcmp(argv[i], "-gles_vram")) pl_rearmed_cbs.gpu_peopsgl.iVRamSize = atol(argv[++i]); else if (!strcmp(argv[i], "-gles_fastmdec")) pl_rearmed_cbs.gpu_peopsgl.bUseFastMdec = atol(argv[++i]); else if (!strcmp(argv[i], "-gles_advblend")) pl_rearmed_cbs.gpu_peopsgl.bAdvancedBlend = atol(argv[++i]); else if (!strcmp(argv[i], "-gles_opaque")) pl_rearmed_cbs.gpu_peopsgl.bOpaquePass = atol(argv[++i]); else { fprintf(stderr, "Unknown option: %s\n", argv[i]); return 1; } } pl_init(); if (emu_core_init() == -1) return 1; if (cdfile) { set_cd_image(cdfile); strcpy(file_name, strrchr(cdfile,'/')); } if (LoadPlugins() == -1) { SysMessage("Failed loading plugins!"); return 1; } if (discNumber > 0) cdrIsoMultidiskSelect = discNumber - 1; if (OpenPlugins() == -1) { return 1; } plugin_call_rearmed_cbs(); CheckCdrom(); if (getst >= 0){ char fname[MAXPATHLEN]; get_state_filename(fname, sizeof(fname), getst); printf("SAVESTATE: %s\n", fname); if (cdrIsoMultidiskCount > 1){ int i = 0; for (i=1; i<cdrIsoMultidiskCount; i++){ cdrIsoMultidiskSelect = i; CdromId[0] = '\0'; CdromLabel[0] = '\0'; CDR_close(); if (CDR_open() == 0){ CheckCdrom(); get_state_filename(fname, sizeof(fname), getst); printf("SAVESTATE: %s\n", fname); } } } return 0; } SysReset(); if (file[0] != '\0') { if (Load(file) != -1) ready_to_go = 1; } else { if (cdfile) { if (LoadCdrom() == -1) { ClosePlugins(); printf(_("Could not load CD-ROM!\n")); return -1; } emu_on_new_cd(0); ready_to_go = 1; } } if (!ready_to_go) { printf ("something goes wrong, maybe you forgot -cdfile ? \n"); return 1; } if (cdrIsoMultidiskCount > 1) printf ("Loaded a multidisc image: %i discs.\n", cdrIsoMultidiskCount); // If a state has been specified, then load that if (loadst) { int ret = emu_load_state(loadst - 1); printf("%s state %d\n", ret ? "Failed to load" : "Loaded", loadst); state_slot = loadst - 1; } if (maemo_init(&argc, &argv)) return 1; if (GPU_open != NULL) { int ret = GPU_open(&gpuDisp, "PCSX", NULL); if (ret){ fprintf(stderr, "Warning: GPU_open returned %d\n", ret); gpuDisp=ret; } } if (Config.HLE) printf("Note: running without BIOS, expect compatibility problems\n"); dfinput_activate(); pl_timing_prepare(Config.PsxType); while (1) { stop = 0; emu_action = SACTION_NONE; psxCpu->Execute(); if (emu_action != SACTION_NONE) do_emu_action(); } maemo_finish(); return 0; }
int _OpenPlugins() { int ret; /* signal(SIGINT, SignalExit); signal(SIGPIPE, SignalExit);*/ GPU_clearDynarec(clearDynarec); ret = CDR_open(); if (ret < 0) { SysPrintf("Error Opening CDR Plugin\n"); return -1; } ret = SPU_open(); if (ret < 0) { SysPrintf("Error Opening SPU Plugin\n"); return -1; } SPU_registerCallback(SPUirq); ret = GPU_open(&gpuDisp, "PCSX", NULL); if (ret < 0) { SysPrintf("Error Opening GPU Plugin\n"); return -1; } ret = PAD1_open(&gpuDisp); if (ret < 0) { SysPrintf("Error Opening PAD1 Plugin\n"); return -1; } ret = PAD2_open(&gpuDisp); if (ret < 0) { SysPrintf("Error Opening PAD2 Plugin\n"); return -1; } if (Config.UseNet && NetOpened == 0) { netInfo info; char path[256]; strcpy(info.EmuName, "PCSX v1.5b3"); strncpy(info.CdromID, CdromId, 9); strncpy(info.CdromLabel, CdromLabel, 9); info.psxMem = psxM; info.GPU_showScreenPic = GPU_showScreenPic; info.GPU_displayText = GPU_displayText; info.GPU_showScreenPic = GPU_showScreenPic; info.PAD_setSensitive = PAD1_setSensitive; sprintf(path, "%s%s", Config.BiosDir, Config.Bios); strcpy(info.BIOSpath, path); strcpy(info.MCD1path, Config.Mcd1); strcpy(info.MCD2path, Config.Mcd2); sprintf(path, "%s%s", Config.PluginsDir, Config.Gpu); strcpy(info.GPUpath, path); sprintf(path, "%s%s", Config.PluginsDir, Config.Spu); strcpy(info.SPUpath, path); sprintf(path, "%s%s", Config.PluginsDir, Config.Cdr); strcpy(info.CDRpath, path); NET_setInfo(&info); ret = NET_open(&gpuDisp); if (ret < 0) { if (ret == -2) { // -2 is returned when something in the info // changed and needs to be synced char *ptr; PARSEPATH(Config.Bios, info.BIOSpath); PARSEPATH(Config.Gpu, info.GPUpath); PARSEPATH(Config.Spu, info.SPUpath); PARSEPATH(Config.Cdr, info.CDRpath); strcpy(Config.Mcd1, info.MCD1path); strcpy(Config.Mcd2, info.MCD2path); return -2; } else { Config.UseNet = 0; } } else { if (NET_queryPlayer() == 1) { if (SendPcsxInfo() == -1) Config.UseNet = 0; } else { if (RecvPcsxInfo() == -1) Config.UseNet = 0; } } NetOpened = 1; } else if (Config.UseNet) { NET_resume(); } return 0; }