--- np2/x11/ini.c 2004/07/26 15:53:26 1.14 +++ np2/x11/ini.c 2011/01/15 18:43:13 1.25 @@ -127,11 +127,11 @@ iniwrsetargh8(char *work, int size, cons ptr = (BYTE *)(ini->value); arg = ini->arg; if (arg > 0) { - SPRINTF(tmp, "%.2x ", ptr[0]); + g_snprintf(tmp, sizeof(tmp), "%.2x ", ptr[0]); milstr_ncpy(work, tmp, size); } for (i = 1; i < arg; i++) { - SPRINTF(tmp, "%.2x ", ptr[i]); + g_snprintf(tmp, sizeof(tmp), "%.2x ", ptr[i]); milstr_ncat(work, tmp, size); } } @@ -181,6 +181,21 @@ inirdsnddrv(const char *src, const INITB *(UINT8 *)ini->value = snddrv_drv2num(src); } +static void +inirdinterp(const char *src, const INITBL *ini) +{ + + if (!milstr_cmp(src, "NEAREST")) { + *(UINT8 *)ini->value = INTERP_NEAREST; + } else if (!milstr_cmp(src, "TILES")) { + *(UINT8 *)ini->value = INTERP_TILES; + } else if (!milstr_cmp(src, "HYPER")) { + *(UINT8 *)ini->value = INTERP_HYPER; + } else { + *(UINT8 *)ini->value = INTERP_BILINEAR; + } +} + static void update_iniread_flag(const INITBL *p); static BOOL @@ -265,6 +280,11 @@ inireadcb(void *arg, const char *para, c inirdsnddrv(work, p); break; + case INITYPE_INTERP: + milstr_ncpy(work, data, 512); + inirdinterp(work, p); + break; + default: rv = FALSE; break; @@ -339,6 +359,20 @@ iwss_extend: } } +static const char * +iniwrinterp(UINT8 interp) +{ + + if (interp == INTERP_NEAREST) + return "NEAREST"; + else if (interp == INTERP_TILES) + return "TILES"; + else if (interp == INTERP_HYPER) + return "HYPER"; + else + return "BILINEAR"; +} + static BOOL read_iniread_flag(const INITBL *p); void @@ -391,39 +425,39 @@ ini_write(const char *path, const char * break; case INITYPE_SINT8: - SPRINTF(work, "%d", *((char *)p->value)); + g_snprintf(work, sizeof(work), "%d", *((char *)p->value)); break; case INITYPE_SINT16: - SPRINTF(work, "%d", *((SINT16 *)p->value)); + g_snprintf(work, sizeof(work), "%d", *((SINT16 *)p->value)); break; case INITYPE_SINT32: - SPRINTF(work, "%d", *((SINT32 *)p->value)); + g_snprintf(work, sizeof(work), "%d", *((SINT32 *)p->value)); break; case INITYPE_UINT8: - SPRINTF(work, "%u", *((BYTE *)p->value)); + g_snprintf(work, sizeof(work), "%u", *((BYTE *)p->value)); break; case INITYPE_UINT16: - SPRINTF(work, "%u", *((UINT16 *)p->value)); + g_snprintf(work, sizeof(work), "%u", *((UINT16 *)p->value)); break; case INITYPE_UINT32: - SPRINTF(work, "%u", *((UINT32 *)p->value)); + g_snprintf(work, sizeof(work), "%u", *((UINT32 *)p->value)); break; case INITYPE_HEX8: - SPRINTF(work, "%x", *((BYTE *)p->value)); + g_snprintf(work, sizeof(work), "%x", *((BYTE *)p->value)); break; case INITYPE_HEX16: - SPRINTF(work, "%x", *((UINT16 *)p->value)); + g_snprintf(work, sizeof(work), "%x", *((UINT16 *)p->value)); break; case INITYPE_HEX32: - SPRINTF(work, "%x", *((UINT32 *)p->value)); + g_snprintf(work, sizeof(work), "%x", *((UINT32 *)p->value)); break; case INITYPE_KB: @@ -434,7 +468,11 @@ ini_write(const char *path, const char * break; case INITYPE_SNDDRV: - SPRINTF(work, "%s", snddrv_num2drv(*(UINT8 *)p->value)); + g_snprintf(work, sizeof(work), "%s", snddrv_num2drv(*(UINT8 *)p->value)); + break; + + case INITYPE_INTERP: + g_snprintf(work, sizeof(work), "%s", iniwrinterp(*(UINT8 *)p->value)); break; default: @@ -453,9 +491,12 @@ ini_write(const char *path, const char * file_close(fh); } -extern char modulefile[]; - -static const char ini_title[] = "NekoProjectII"; +static const char ini_title[] = +#if !defined(CPUCORE_IA32) + "NekoProjectII"; +#else + "NekoProjectII_IA32"; +#endif enum { INIRO_STR = INIFLAG_RO | INITYPE_STR, @@ -480,11 +521,11 @@ static const INITBL iniitem[] = { {"HDfolder", INITYPE_STR, hddfolder, MAX_PATH}, {"bmap_Dir", INITYPE_STR, bmpfilefolder, MAX_PATH}, {"fontfile", INITYPE_STR, np2cfg.fontfile, MAX_PATH}, - {"biospath", INITYPE_STR, np2cfg.biospath, MAX_PATH}, + {"biospath", INIRO_STR, np2cfg.biospath, MAX_PATH}, {"hdrvroot", INIRO_STR, np2cfg.hdrvroot, MAX_PATH}, {"hdrv_acc", INIRO_UINT8, &np2cfg.hdrvacc, 0}, - {"pc_model", INITYPE_STR, &np2cfg.model, sizeof(np2cfg.model)}, + {"pc_model", INITYPE_STR, np2cfg.model, sizeof(np2cfg.model)}, {"clk_base", INITYPE_UINT32, &np2cfg.baseclock, 0}, {"clk_mult", INITYPE_UINT32, &np2cfg.multiple, 0}, @@ -590,8 +631,12 @@ static const INITBL iniitem[] = { {"com3mmdl", INITYPE_STR, np2oscfg.com[2].mdl, 64}, {"com3mdef", INITYPE_STR, np2oscfg.com[2].def, MAX_PATH}, +#if defined(SUPPORT_RESUME) {"e_resume", INITYPE_BOOL, &np2oscfg.resume, 0}, +#endif +#if defined(SUPPORT_STATSAVE) {"STATSAVE", INIRO_BOOL, &np2oscfg.statsave, 0}, +#endif #if defined(GCC_CPU_ARCH_IA32) {"nousemmx", INITYPE_BOOL, &np2oscfg.disablemmx, 0}, #endif @@ -601,16 +646,16 @@ static const INITBL iniitem[] = { {"jast_snd", INITYPE_BOOL, &np2oscfg.jastsnd, 0}, {"sounddrv", INITYPE_SNDDRV, &np2oscfg.snddrv, 0}, - {"audiodev", INITYPE_STR, &np2oscfg.audiodev, MAX_PATH}, {"MIDIOUTd", INITYPE_STR, &np2oscfg.MIDIDEV[0], MAX_PATH}, {"MIDIIN_d", INITYPE_STR, &np2oscfg.MIDIDEV[1], MAX_PATH}, {"MIDIWAIT", INITYPE_UINT32, &np2oscfg.MIDIWAIT, 0}, - {"sharepix", INIRO_BOOL, &np2oscfg.shared_pixmap,0}, - - {"toolkit_", INIRO_STR, &np2oscfg.toolkit, sizeof(np2oscfg.toolkit)}, + {"dinterp_", INITYPE_INTERP, &np2oscfg.drawinterp, 0}, + {"fullscrn", INITYPE_UINT32, &ignore_fullscreen_mode,0}, + {"F11_KEY_", INITYPE_UINT8, &np2oscfg.F11KEY, 0}, + {"READONLY", INIRO_BOOL, &np2oscfg.cfgreadonly, 0}, - {"I286SAVE", INIRO_BOOL, &np2oscfg.I286SAVE, 0} + {"I286SAVE", INIRO_BOOL, &np2oscfg.I286SAVE, 0}, }; #define INIITEMS (sizeof(iniitem) / sizeof(iniitem[0]))