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; }
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 }