int SampWrite( void FAR_PTR *buff, unsigned len ) { unsigned written; int handle; int rc; _fstrcpy( SampName, SharedMemory->SampName ); if( SharedMemory->SampleHandle == 0 ) { handle = SysCreate( SampName ); SharedMemory->SampleHandle = 1; } else { handle = SysOpen( SampName ); if( handle >= 0 ) SysSeek( handle, SharedMemory->SampOffset ); } if( handle == -1 ) { SharedMemory->FarWriteProblem = 1; return( -1 ); } written = SysWrite( handle, buff, len ); if( written == len ) { SharedMemory->SampOffset += len; rc = 0; } else { SysSeek( handle, SharedMemory->SampOffset ); SysWrite( handle, "", 0 ); SharedMemory->FarWriteProblem = 1; rc = -1; } SysClose( handle ); return( rc ); } /* SampWrite */
BOOL CALLBACK ConfigurePluginsDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_INITDIALOG: SetWindowText(hW, _("Configuration")); Button_SetText(GetDlgItem(hW, IDOK), _("OK")); Button_SetText(GetDlgItem(hW, IDCANCEL), _("Cancel")); Static_SetText(GetDlgItem(hW, IDC_BIOS), _("Bios")); return OnConfigurePluginsDialog(hW); case WM_COMMAND: switch(LOWORD(wParam)) { case IDCANCEL: OnCancel(hW); if (CancelQuit) { SysClose(); exit(1); } return TRUE; case IDOK: OnOK(hW); return TRUE; } } return FALSE; }
int RecvPcsxInfo() { int tmp; if (NET_recvData == NULL || NET_sendData == NULL) return 0; NET_recvData(&Config.Xa, sizeof(Config.Xa), PSE_NET_BLOCKING); NET_recvData(&Config.SioIrq, sizeof(Config.SioIrq), PSE_NET_BLOCKING); NET_recvData(&Config.SpuIrq, sizeof(Config.SpuIrq), PSE_NET_BLOCKING); NET_recvData(&Config.RCntFix, sizeof(Config.RCntFix), PSE_NET_BLOCKING); NET_recvData(&Config.PsxType, sizeof(Config.PsxType), PSE_NET_BLOCKING); SysUpdate(); tmp = Config.Cpu; NET_recvData(&Config.Cpu, sizeof(Config.Cpu), PSE_NET_BLOCKING); if (tmp != Config.Cpu) { psxCpu->Shutdown(); #ifdef PSXREC if (Config.Cpu == CPU_INTERPRETER) psxCpu = &psxInt; else psxCpu = &psxRec; #else psxCpu = &psxInt; #endif if (psxCpu->Init() == -1) { SysClose(); return -1; } psxCpu->Reset(); } return 0; }
void FileClose(struct File* file) { if (!file) return; SysClose(file->fd); free(file); }
void OnFile_Exit() { printf("OnFile_Exit\n"); SysClose(); #ifndef NO_FRONTEND menu_finish(); plat_finish(); exit(0); #endif }
int SampClose() { SampOffset = 0; if( SampIsDOS ) { return( DOSClose( SampleHandle ) ); } else { return( SysClose( SampleHandle ) ); } }
int s_video_vga_server_init (s_server_conf_t *cfg) { printf("Loading VGA driver.\n"); server->window->surface->width=320; server->window->surface->height=200; server->window->surface->bytesperpixel=1; server->window->surface->bitsperpixel=8; server->window->surface->colors = 256; server->window->surface->blueoffset = 0; server->window->surface->greenoffset = 3; server->window->surface->redoffset = 6; server->window->surface->bluelength = 3; server->window->surface->greenlength = 3; server->window->surface->redlength = 2; SysIoAccess(1); int memFd=SysOpen("/System/Devices/Special/Memory", _SYS_FILE_READ | _SYS_FILE_WRITE, 0); if (memFd < 0) printf("Could not open memory device\n"); server->window->surface->linear_buf= server->window->surface->vbuf= (unsigned char*)SysMemoryMap(0, VGA_SIZE, 7, memFd, VGA_BASE, _SYS_MMAP_PRIVATE); SysClose(memFd); if (!server->window->surface->vbuf) return -1; server->window->surface->linear_mem_base=0xA0000; server->window->surface->linear_mem_size=VGA_SIZE; if (!noGraphics) VgaInit(); return 0; }
int open(const char* path,int oflag,...) { if (!path) { errno = EFAULT; return -1; } if (oflag & O_EXCL) { oflag &= ~_SYS_FILE_CREATE_OPEN; oflag |= _SYS_FILE_FORCE_CREATE; oflag &= ~O_EXCL; } int fd=SysOpen((char*)path, oflag, 0); if (fd < 0) { errno=-fd; return -1; } if (oflag & O_TRUNC) { int err = SysTruncate(fd, 0); if (err < 0) { SysClose(fd); errno = err; return -1; } } return fd; }
int main(int argc, char *argv[]) { char file[MAXPATHLEN] = ""; char path[MAXPATHLEN]; const char *cdfile = NULL; const char *loadst_f = NULL; int psxout = 0; int loadst = 0; int i; emu_core_preinit(); // read command line options for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "-psxout")) psxout = 1; else if (!strcmp(argv[i], "-load")) loadst = atol(argv[++i]); else if (!strcmp(argv[i], "-cfg")) { if (i+1 >= argc) break; strncpy(cfgfile_basename, argv[++i], MAXPATHLEN-100); /* TODO buffer overruns */ SysPrintf("Using config file %s.\n", cfgfile_basename); } 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], "-loadf")) { if (i+1 >= argc) break; loadst_f = argv[++i]; } else if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "-help") || !strcmp(argv[i], "--help")) { printf("PCSX-ReARMed " REV "\n"); printf("%s\n", _( " pcsx [options] [file]\n" "\toptions:\n" "\t-cdfile FILE\tRuns a CD image file\n" "\t-cfg FILE\tLoads desired configuration file (default: ~/.pcsx/pcsx.cfg)\n" "\t-psxout\t\tEnable PSX output\n" "\t-load STATENUM\tLoads savestate STATENUM (1-5)\n" "\t-h -help\tDisplay this message\n" "\tfile\t\tLoads a PSX EXE file\n")); return 0; } else { strncpy(file, argv[i], MAXPATHLEN); if (file[0] != '/') { getcwd(path, MAXPATHLEN); if (strlen(path) + strlen(file) + 1 < MAXPATHLEN) { strcat(path, "/"); strcat(path, file); strcpy(file, path); } else file[0] = 0; } } } if (cdfile) set_cd_image(cdfile); // frontend stuff // init input but leave probing to platform code, // they add input drivers and may need to modify them after probe in_init(); pl_init(); plat_init(); menu_init(); // loads config if (emu_core_init() != 0) return 1; if (psxout) Config.PsxOut = 1; if (LoadPlugins() == -1) { // FIXME: this recovery doesn't work, just delete bad config and bail out // SysMessage("could not load plugins, retrying with defaults\n"); set_default_paths(); snprintf(path, sizeof(path), "." PCSX_DOT_DIR "%s", cfgfile_basename); remove(path); SysMessage("Failed loading plugins!"); return 1; } pcnt_hook_plugins(); if (OpenPlugins() == -1) { return 1; } plugin_call_rearmed_cbs(); CheckCdrom(); SysReset(); if (file[0] != '\0') { if (Load(file) != -1) ready_to_go = 1; } else { if (cdfile) { if (LoadCdrom() == -1) { ClosePlugins(); SysPrintf(_("Could not load CD-ROM!\n")); return -1; } emu_on_new_cd(!loadst); ready_to_go = 1; } } if (loadst_f) { int ret = LoadState(loadst_f); SysPrintf("%s state file: %s\n", ret ? "failed to load" : "loaded", loadst_f); ready_to_go |= ret == 0; } if (ready_to_go) { menu_prepare_emu(); // If a state has been specified, then load that if (loadst) { int ret = emu_load_state(loadst - 1); SysPrintf("%s state %d\n", ret ? "failed to load" : "loaded", loadst); } } else menu_loop(); pl_start_watchdog(); while (!g_emu_want_quit) { stop = 0; emu_action = SACTION_NONE; psxCpu->Execute(); if (emu_action != SACTION_NONE) do_emu_action(); } printf("Exit..\n"); ClosePlugins(); SysClose(); menu_finish(); plat_finish(); return 0; }
// loadISO loads an ISO, resets the system and loads the save. int loadISO(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) ); if(hasLoadedISO) { SysClose(); hasLoadedISO = FALSE; } SetIsoFile(&file->name[0]); if(SysInit() < 0) return -1; hasLoadedISO = TRUE; SysReset(); char *tempStr = &file->name[0]; if((strstr(tempStr,".EXE")!=NULL) || (strstr(tempStr,".exe")!=NULL)) { Load(file); } else { CheckCdrom(); LoadCdrom(); } if(autoSave==AUTOSAVE_ENABLE) { switch (nativeSaveDevice) { case NATIVESAVEDEVICE_SD: case NATIVESAVEDEVICE_USB: // Adjust saveFile pointers saveFile_dir = (nativeSaveDevice==NATIVESAVEDEVICE_SD) ? &saveDir_libfat_Default:&saveDir_libfat_USB; saveFile_readFile = fileBrowser_libfat_readFile; saveFile_writeFile = fileBrowser_libfat_writeFile; saveFile_init = fileBrowser_libfat_init; saveFile_deinit = fileBrowser_libfat_deinit; break; case NATIVESAVEDEVICE_CARDA: case NATIVESAVEDEVICE_CARDB: // Adjust saveFile pointers saveFile_dir = (nativeSaveDevice==NATIVESAVEDEVICE_CARDA) ? &saveDir_CARD_SlotA:&saveDir_CARD_SlotB; saveFile_readFile = fileBrowser_CARD_readFile; saveFile_writeFile = fileBrowser_CARD_writeFile; saveFile_init = fileBrowser_CARD_init; saveFile_deinit = fileBrowser_CARD_deinit; break; } // Try loading everything int result = 0; saveFile_init(saveFile_dir); result += LoadMcd(1,saveFile_dir); result += LoadMcd(2,saveFile_dir); saveFile_deinit(saveFile_dir); switch (nativeSaveDevice) { case NATIVESAVEDEVICE_SD: if (result) autoSaveLoaded = NATIVESAVEDEVICE_SD; break; case NATIVESAVEDEVICE_USB: if (result) autoSaveLoaded = NATIVESAVEDEVICE_USB; break; case NATIVESAVEDEVICE_CARDA: if (result) autoSaveLoaded = NATIVESAVEDEVICE_CARDA; break; case NATIVESAVEDEVICE_CARDB: if (result) autoSaveLoaded = NATIVESAVEDEVICE_CARDB; break; } } return 0; }
u16 ReadZodKeys() { u16 pad_status = 0xffff; u32 keys = gp2x_joystick_read(); #ifdef PANDORA if( keys & GP2X_PUSH && keys & GP2X_L ) // L2 { keys |= GP2X_VOL_DOWN; } if( keys & GP2X_PUSH && keys & GP2X_R ) // R2 { keys |= GP2X_VOL_UP; } #endif if( keys & GP2X_VOL_DOWN ) // L2 { pad_status &= ~(1<<8); } if (keys & GP2X_L) { pad_status &= ~(1<<10); // L ? } if( keys & GP2X_VOL_UP ) // R2 { pad_status &= ~(1<<9); } if (keys & GP2X_R) { pad_status &= ~(1<<11); // R ? } if (keys & GP2X_UP) { pad_status &= ~(1<<4); } if (keys & GP2X_DOWN) { pad_status &= ~(1<<6); } if (keys & GP2X_LEFT) { pad_status &= ~(1<<7); } if (keys & GP2X_RIGHT) { pad_status &= ~(1<<5); } if (keys & GP2X_START) { pad_status &= ~(1<<3); } if (keys & GP2X_SELECT) { pad_status &= ~(1); } if (keys & GP2X_X) { pad_status &= ~(1<<14); } if (keys & GP2X_B) { pad_status &= ~(1<<13); } if (keys & GP2X_A) { pad_status &= ~(1<<15); } if (keys & GP2X_Y) { pad_status &= ~(1<<12); } #if !defined(IPHONE) && !defined(ANDROID) if( (keys & GP2X_L) && (keys & GP2X_R) && (keys & GP2X_X) && (keys & GP2X_Y) && (keys & GP2X_A) && (keys & GP2X_B) ) { SysClose(); } if( keys == GP2X_PUSH ) { // Menu system u32 w = gp2xscreen_width; u32 h = gp2xscreen_height; u32 isRGB24; gp2x_change_res(320, 240, 16); gp2x_sound_thread_mute(); if( 0 != SelectOptions() ) { GPU_force_res_change = 1; psx4all_emulating=1; psxCpu->Execute(); psx4all_emulating=0; } #if !defined(ANDROID) gp2x_sound_thread_play(NULL); #endif isRGB24 = (GPU_GP1 & 0x00200000 ? 32 : 0); gp2x_change_res(w, h, isRGB24 ? 24 : 16); } #endif return pad_status; }
int close(int fd) { return SysClose(fd); }