void SaveConfig(void) { int i, j; char buf[CFGLEN], buf2[CFGLEN]; FILEH fp; wsprintf(buf, "%d", winx); WritePrivateProfileString(ini_title, "WinPosX", buf, winx68k_ini); wsprintf(buf, "%d", winy); WritePrivateProfileString(ini_title, "WinPosY", buf, winx68k_ini); wsprintf(buf, "%d", Config.FrameRate); WritePrivateProfileString(ini_title, "FrameRate", buf, winx68k_ini); WritePrivateProfileString(ini_title, "StartDir", filepath, winx68k_ini); wsprintf(buf, "%d", Config.OPM_VOL); WritePrivateProfileString(ini_title, "OPM_Volume", buf, winx68k_ini); wsprintf(buf, "%d", Config.PCM_VOL); WritePrivateProfileString(ini_title, "PCM_Volume", buf, winx68k_ini); wsprintf(buf, "%d", Config.MCR_VOL); WritePrivateProfileString(ini_title, "MCR_Volume", buf, winx68k_ini); wsprintf(buf, "%d", Config.SampleRate); WritePrivateProfileString(ini_title, "SampleRate", buf, winx68k_ini); wsprintf(buf, "%d", Config.BufferSize); WritePrivateProfileString(ini_title, "BufferSize", buf, winx68k_ini); wsprintf(buf, "%d", Config.MouseSpeed); WritePrivateProfileString(ini_title, "MouseSpeed", buf, winx68k_ini); WritePrivateProfileString(ini_title, "FDDStatWin", makeBOOL((BYTE)Config.WindowFDDStat), winx68k_ini); WritePrivateProfileString(ini_title, "FDDStatFullScr", makeBOOL((BYTE)Config.FullScrFDDStat), winx68k_ini); WritePrivateProfileString(ini_title, "DSAlert", makeBOOL((BYTE)Config.DSAlert), winx68k_ini); WritePrivateProfileString(ini_title, "SoundLPF", makeBOOL((BYTE)Config.Sound_LPF), winx68k_ini); WritePrivateProfileString(ini_title, "UseRomeo", makeBOOL((BYTE)Config.SoundROMEO), winx68k_ini); WritePrivateProfileString(ini_title, "MIDI_SW", makeBOOL((BYTE)Config.MIDI_SW), winx68k_ini); WritePrivateProfileString(ini_title, "MIDI_Reset", makeBOOL((BYTE)Config.MIDI_Reset), winx68k_ini); wsprintf(buf, "%d", Config.MIDI_Type); WritePrivateProfileString(ini_title, "MIDI_Type", buf, winx68k_ini); WritePrivateProfileString(ini_title, "JoySwap", makeBOOL((BYTE)Config.JoySwap), winx68k_ini); WritePrivateProfileString(ini_title, "JoyKey", makeBOOL((BYTE)Config.JoyKey), winx68k_ini); WritePrivateProfileString(ini_title, "JoyKeyReverse", makeBOOL((BYTE)Config.JoyKeyReverse), winx68k_ini); WritePrivateProfileString(ini_title, "JoyKeyJoy2", makeBOOL((BYTE)Config.JoyKeyJoy2), winx68k_ini); WritePrivateProfileString(ini_title, "SRAMBootWarning", makeBOOL((BYTE)Config.SRAMWarning), winx68k_ini); WritePrivateProfileString(ini_title, "WinDrvLFN", makeBOOL((BYTE)Config.LongFileName), winx68k_ini); WritePrivateProfileString(ini_title, "WinDrvFDD", makeBOOL((BYTE)Config.WinDrvFD), winx68k_ini); wsprintf(buf, "%d", Config.WinStrech); WritePrivateProfileString(ini_title, "WinStretch", buf, winx68k_ini); WritePrivateProfileString(ini_title, "DSMixing", makeBOOL((BYTE)Config.DSMixing), winx68k_ini); wsprintf(buf, "%d", Config.XVIMode); WritePrivateProfileString(ini_title, "XVIMode", buf, winx68k_ini); WritePrivateProfileString(ini_title, "CDROM_ASPI", makeBOOL((BYTE)Config.CDROM_ASPI), winx68k_ini); wsprintf(buf, "%d", Config.CDROM_SCSIID); WritePrivateProfileString(ini_title, "CDROM_SCSIID", buf, winx68k_ini); wsprintf(buf, "%d", Config.CDROM_ASPI_Drive); WritePrivateProfileString(ini_title, "CDROM_ASPIDrv", buf, winx68k_ini); wsprintf(buf, "%d", Config.CDROM_IOCTRL_Drive); WritePrivateProfileString(ini_title, "CDROM_CTRLDrv", buf, winx68k_ini); WritePrivateProfileString(ini_title, "CDROM_Enable", makeBOOL((BYTE)Config.CDROM_Enable), winx68k_ini); WritePrivateProfileString(ini_title, "SSTP_Enable", makeBOOL((BYTE)Config.SSTP_Enable), winx68k_ini); wsprintf(buf, "%d", Config.SSTP_Port); WritePrivateProfileString(ini_title, "SSTP_Port", buf, winx68k_ini); WritePrivateProfileString(ini_title, "ToneMapping", makeBOOL((BYTE)Config.ToneMap), winx68k_ini); WritePrivateProfileString(ini_title, "ToneMapFile", Config.ToneMapFile, winx68k_ini); wsprintf(buf, "%d", Config.MIDIDelay); WritePrivateProfileString(ini_title, "MIDIDelay", buf, winx68k_ini); WritePrivateProfileString(ini_title, "MIDIAutoDelay", makeBOOL((BYTE)Config.MIDIAutoDelay), winx68k_ini); wsprintf(buf, "%d", Config.VkeyScale); WritePrivateProfileString(ini_title, "VkeyScale", buf, winx68k_ini); wsprintf(buf, "%d", Config.VbtnSwap); WritePrivateProfileString(ini_title, "VbtnSwap", buf, winx68k_ini); wsprintf(buf, "%d", Config.JoyOrMouse); WritePrivateProfileString(ini_title, "JoyOrMouse", buf, winx68k_ini); wsprintf(buf, "%d", Config.HwJoyAxis[0]); WritePrivateProfileString(ini_title, "HwJoyAxis0", buf, winx68k_ini); wsprintf(buf, "%d", Config.HwJoyAxis[1]); WritePrivateProfileString(ini_title, "HwJoyAxis1", buf, winx68k_ini); wsprintf(buf, "%d", Config.HwJoyHat); WritePrivateProfileString(ini_title, "HwJoyHat", buf, winx68k_ini); for (i = 0; i < 8; i++) { sprintf(buf, "HwJoyBtn%d", i); sprintf(buf2, "%d", Config.HwJoyBtn[i]); WritePrivateProfileString(ini_title, buf, buf2, winx68k_ini); } wsprintf(buf, "%d", Config.NoWaitMode); WritePrivateProfileString(ini_title, "NoWaitMode", buf, winx68k_ini); for (i=0; i<2; i++) { for (j=0; j<8; j++) { sprintf(buf, "Joy%dButton%d", i+1, j+1); wsprintf(buf2, "%d", Config.JOY_BTN[i][j]); WritePrivateProfileString(ini_title, buf, buf2, winx68k_ini); } } for (i = 0; i < 2; i++) { printf("i: %d", i); sprintf(buf, "FDD%d", i); WritePrivateProfileString(ini_title, buf, Config.FDDImage[i], winx68k_ini); } for (i=0; i<16; i++) { sprintf(buf, "HDD%d", i); WritePrivateProfileString(ini_title, buf, Config.HDImage[i], winx68k_ini); } #if 0 fp = File_OpenCurDir(KEYCONFFILE); if (!fp) fp = File_CreateCurDir(KEYCONFFILE, FTYPE_TEXT); if (fp) { File_Write(fp, KeyTable, 512); File_Close(fp); } #endif }
int WinX68k_LoadROMs(void) { static const char *BIOSFILE[] = { "iplrom.dat", "iplrom30.dat", "iplromco.dat", "iplromxv.dat" }; static const char FONTFILE[] = "cgrom.dat"; static const char FONTFILETMP[] = "cgrom.tmp"; FILEH fp; int i; BYTE tmp; for (fp = 0, i = 0; fp == 0 && i < NELEMENTS(BIOSFILE); ++i) { fp = File_OpenCurDir((char *)BIOSFILE[i]); } if (fp == 0) { Error("BIOS ROM not found."); return FALSE; } File_Read(fp, &IPL[0x20000], 0x20000); File_Close(fp); WinX68k_SCSICheck(); // SCSI IPL�ʤ顢$fc0000����SCSI BIOS���֤� for (i = 0; i < 0x40000; i += 2) { tmp = IPL[i]; IPL[i] = IPL[i + 1]; IPL[i + 1] = tmp; } fp = File_OpenCurDir((char *)FONTFILE); if (fp == 0) { // cgrom.tmp�����롩 fp = File_OpenCurDir((char *)FONTFILETMP); if (fp == 0) { #if 1 // �ե�������� XXX printf("�ե����ROM����������Ĥ���ޤ���\n"); return FALSE; #else MessageBox(hWndMain, "�ե����ROM����������Ĥ���ޤ���.\nWindows�ե���Ȥ��鿷���˺������ޤ�.", "����ԡ��Υ�å�����", MB_ICONWARNING | MB_OK); SSTP_SendMes(SSTPMES_MAKEFONT); make_cgromdat(FONT, FALSE, "�ͣ� �����å�", "�ͣ� ��ī"); //WinX68k_MakeFont(); //DialogBox(hInst, MAKEINTRESOURCE(IDD_PROGBAR), // hWndMain, (DLGPROC)MakeFontProc); fp = File_CreateCurDir(FONTFILETMP); if (fp) { File_Write(fp, FONT, 0xc0000); File_Close(fp); return TRUE; } return TRUE; #endif } } File_Read(fp, FONT, 0xc0000); File_Close(fp); return TRUE; }
int set_modulepath(char *path, size_t len) { struct stat sb; char *homepath; #ifdef ANDROID const char *extpath; char *p, ep_buf[MAX_PATH], p6dir_buf[MAX_PATH]; FILE *fp; p6dir_buf[0] = '\0'; extpath = SDL_AndroidGetExternalStoragePath(); p6logd("extpath:%s", extpath); // get the Android external path (.ex /storage/emulated/0) strcpy(p6dir_buf, extpath); p = strstr(p6dir_buf, "/Android/data/com.fc2.blog45.hissorii/files"); if (p != NULL) { *p = '\0'; p6logd("extpath2:%s", p6dir_buf); strcat(p6dir_buf, "/px68k"); p6logd("p6dir_buf:%s", p6dir_buf); // if there is the px68k directory ... if (stat(p6dir_buf, &sb) == 0 && S_ISDIR(sb.st_mode)) { goto set_dir; } } if (extpath != NULL) { // read Android/data/com.fc2.blog45.hissorii/files/dir.txt sprintf(ep_buf, "%s/dir.txt", extpath); if ((fp = fopen(ep_buf, "r")) != NULL) { fgets(p6dir_buf, MAX_PATH - 1, fp); p6logd("p6dir:%s", p6dir_buf); fclose(fp); } } // if everything failed, try /sdcard/px68k directory if (p6dir_buf[0] == '\0') { strcpy(p6dir_buf, "/sdcard/px68k"); } set_dir: strcpy(path, p6dir_buf); p6logd("path:%s", path); sprintf(winx68k_ini, "%s/config", p6dir_buf); p6logd("config:%s", winx68k_ini); return 0; #endif #if TARGET_OS_IPHONE && TARGET_IPHONE_SIMULATOR == 0 puts("Iphone..."); sprintf(path, "/var/mobile/px68k"); sprintf(winx68k_ini, "/var/mobile/px68k/config"); return 0; #endif homepath = getenv("HOME"); if (homepath == 0) homepath = "."; snprintf(path, len, "%s/%s", homepath, ".keropi"); if (stat(path, &sb) < 0) { #ifdef WIN32 if (mkdir(path) < 0) { #else if (mkdir(path, 0700) < 0) { #endif perror(path); return 1; } } else { if ((sb.st_mode & S_IFDIR) == 0) { fprintf(stderr, "%s isn't directory.\n", path); return 1; } } snprintf(winx68k_ini, sizeof(winx68k_ini), "%s/%s", path, "config"); if (stat(winx68k_ini, &sb) >= 0) { if (sb.st_mode & S_IFDIR) { fprintf(stderr, "%s is directory.\n", winx68k_ini); return 1; } } return 0; } void LoadConfig(void) { int i, j; char buf[CFGLEN]; FILEH fp; winx = GetPrivateProfileInt(ini_title, "WinPosX", 0, winx68k_ini); winy = GetPrivateProfileInt(ini_title, "WinPosY", 0, winx68k_ini); #ifdef PSP Config.FrameRate = (BYTE)GetPrivateProfileInt(ini_title, "FrameRate", 5, winx68k_ini); #else Config.FrameRate = (BYTE)GetPrivateProfileInt(ini_title, "FrameRate", 7, winx68k_ini); #endif if (!Config.FrameRate) Config.FrameRate = 7; GetPrivateProfileString(ini_title, "StartDir", "", buf, MAX_PATH, winx68k_ini); if (buf[0] != 0) strncpy(filepath, buf, sizeof(filepath)); else filepath[0] = 0; Config.OPM_VOL = GetPrivateProfileInt(ini_title, "OPM_Volume", 12, winx68k_ini); Config.PCM_VOL = GetPrivateProfileInt(ini_title, "PCM_Volume", 15, winx68k_ini); Config.MCR_VOL = GetPrivateProfileInt(ini_title, "MCR_Volume", 13, winx68k_ini); #ifdef PSP Config.SampleRate = GetPrivateProfileInt(ini_title, "SampleRate", 11025, winx68k_ini); #else Config.SampleRate = GetPrivateProfileInt(ini_title, "SampleRate", 22050, winx68k_ini); #endif Config.BufferSize = GetPrivateProfileInt(ini_title, "BufferSize", 50, winx68k_ini); Config.MouseSpeed = GetPrivateProfileInt(ini_title, "MouseSpeed", 10, winx68k_ini); GetPrivateProfileString(ini_title, "FDDStatWin", "1", buf, CFGLEN, winx68k_ini); Config.WindowFDDStat = solveBOOL(buf); GetPrivateProfileString(ini_title, "FDDStatFullScr", "1", buf, CFGLEN, winx68k_ini); Config.FullScrFDDStat = solveBOOL(buf); GetPrivateProfileString(ini_title, "DSAlert", "1", buf, CFGLEN, winx68k_ini); Config.DSAlert = solveBOOL(buf); GetPrivateProfileString(ini_title, "SoundLPF", "1", buf, CFGLEN, winx68k_ini); Config.Sound_LPF = solveBOOL(buf); GetPrivateProfileString(ini_title, "UseRomeo", "0", buf, CFGLEN, winx68k_ini); Config.SoundROMEO = solveBOOL(buf); GetPrivateProfileString(ini_title, "MIDI_SW", "1", buf, CFGLEN, winx68k_ini); Config.MIDI_SW = solveBOOL(buf); GetPrivateProfileString(ini_title, "MIDI_Reset", "0", buf, CFGLEN, winx68k_ini); Config.MIDI_Reset = solveBOOL(buf); Config.MIDI_Type = GetPrivateProfileInt(ini_title, "MIDI_Type", 1, winx68k_ini); GetPrivateProfileString(ini_title, "JoySwap", "0", buf, CFGLEN, winx68k_ini); Config.JoySwap = solveBOOL(buf); GetPrivateProfileString(ini_title, "JoyKey", "0", buf, CFGLEN, winx68k_ini); Config.JoyKey = solveBOOL(buf); GetPrivateProfileString(ini_title, "JoyKeyReverse", "0", buf, CFGLEN, winx68k_ini); Config.JoyKeyReverse = solveBOOL(buf); GetPrivateProfileString(ini_title, "JoyKeyJoy2", "0", buf, CFGLEN, winx68k_ini); Config.JoyKeyJoy2 = solveBOOL(buf); GetPrivateProfileString(ini_title, "SRAMBootWarning", "1", buf, CFGLEN, winx68k_ini); Config.SRAMWarning = solveBOOL(buf); GetPrivateProfileString(ini_title, "WinDrvLFN", "1", buf, CFGLEN, winx68k_ini); Config.LongFileName = solveBOOL(buf); GetPrivateProfileString(ini_title, "WinDrvFDD", "1", buf, CFGLEN, winx68k_ini); Config.WinDrvFD = solveBOOL(buf); Config.WinStrech = GetPrivateProfileInt(ini_title, "WinStretch", 1, winx68k_ini); GetPrivateProfileString(ini_title, "DSMixing", "0", buf, CFGLEN, winx68k_ini); Config.DSMixing = solveBOOL(buf); Config.XVIMode = (BYTE)GetPrivateProfileInt(ini_title, "XVIMode", 0, winx68k_ini); GetPrivateProfileString(ini_title, "CDROM_ASPI", "1", buf, CFGLEN, winx68k_ini); Config.CDROM_ASPI = solveBOOL(buf); Config.CDROM_SCSIID = (BYTE)GetPrivateProfileInt(ini_title, "CDROM_SCSIID", 6, winx68k_ini); Config.CDROM_ASPI_Drive = (BYTE)GetPrivateProfileInt(ini_title, "CDROM_ASPIDrv", 0, winx68k_ini); Config.CDROM_IOCTRL_Drive = (BYTE)GetPrivateProfileInt(ini_title, "CDROM_CTRLDrv", 16, winx68k_ini); GetPrivateProfileString(ini_title, "CDROM_Enable", "1", buf, CFGLEN, winx68k_ini); Config.CDROM_Enable = solveBOOL(buf); GetPrivateProfileString(ini_title, "SSTP_Enable", "0", buf, CFGLEN, winx68k_ini); Config.SSTP_Enable = solveBOOL(buf); Config.SSTP_Port = GetPrivateProfileInt(ini_title, "SSTP_Port", 11000, winx68k_ini); GetPrivateProfileString(ini_title, "ToneMapping", "0", buf, CFGLEN, winx68k_ini); Config.ToneMap = solveBOOL(buf); GetPrivateProfileString(ini_title, "ToneMapFile", "", buf, MAX_PATH, winx68k_ini); if (buf[0] != 0) strcpy(Config.ToneMapFile, buf); else Config.ToneMapFile[0] = 0; Config.MIDIDelay = GetPrivateProfileInt(ini_title, "MIDIDelay", Config.BufferSize*5, winx68k_ini); Config.MIDIAutoDelay = GetPrivateProfileInt(ini_title, "MIDIAutoDelay", 1, winx68k_ini); Config.VkeyScale = GetPrivateProfileInt(ini_title, "VkeyScale", 4, winx68k_ini); Config.VbtnSwap = GetPrivateProfileInt(ini_title, "VbtnSwap", 0, winx68k_ini); Config.JoyOrMouse = GetPrivateProfileInt(ini_title, "JoyOrMouse", 0, winx68k_ini); Config.HwJoyAxis[0] = GetPrivateProfileInt(ini_title, "HwJoyAxis0", 0, winx68k_ini); Config.HwJoyAxis[1] = GetPrivateProfileInt(ini_title, "HwJoyAxis1", 1, winx68k_ini); Config.HwJoyHat = GetPrivateProfileInt(ini_title, "HwJoyHat", 0, winx68k_ini); for (i = 0; i < 8; i++) { sprintf(buf, "HwJoyBtn%d", i); Config.HwJoyBtn[i] = GetPrivateProfileInt(ini_title, buf, i, winx68k_ini); } Config.NoWaitMode = GetPrivateProfileInt(ini_title, "NoWaitMode", 0, winx68k_ini); for (i=0; i<2; i++) { for (j=0; j<8; j++) { sprintf(buf, "Joy%dButton%d", i+1, j+1); Config.JOY_BTN[i][j] = GetPrivateProfileInt(ini_title, buf, j, winx68k_ini); } } for (i = 0; i < 2; i++) { sprintf(buf, "FDD%d", i); GetPrivateProfileString(ini_title, buf, "", Config.FDDImage[i], MAX_PATH, winx68k_ini); } for (i=0; i<16; i++) { sprintf(buf, "HDD%d", i); GetPrivateProfileString(ini_title, buf, "", Config.HDImage[i], MAX_PATH, winx68k_ini); } #if 0 fp = File_OpenCurDir(KEYCONFFILE); if (fp) { File_Read(fp, KeyTable, 512); File_Close(fp); } #endif }