From: Toni Wilen Date: Sun, 15 Mar 2009 12:38:46 +0000 (+0200) Subject: imported winuaesrc1600b17.zip X-Git-Tag: 2100~94 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=dc1badaa7078d595b26257c9b1d67a798e4f44ab;p=francis%2Fwinuae.git imported winuaesrc1600b17.zip --- diff --git a/catweasel.c b/catweasel.c index d3ffef0c..7778bd6b 100644 --- a/catweasel.c +++ b/catweasel.c @@ -400,9 +400,9 @@ static int catweasel4_configure (void) #include #include -#define PCI_CW_MK3 "PCI\\VEN_E159&DEV_0001&SUBSYS_00021212" -#define PCI_CW_MK4 "PCI\\VEN_E159&DEV_0001&SUBSYS_00035213" -#define PCI_CW_MK4_BUG "PCI\\VEN_E159&DEV_0001&SUBSYS_00025213" +#define PCI_CW_MK3 L"PCI\\VEN_E159&DEV_0001&SUBSYS_00021212" +#define PCI_CW_MK4 L"PCI\\VEN_E159&DEV_0001&SUBSYS_00035213" +#define PCI_CW_MK4_BUG L"PCI\\VEN_E159&DEV_0001&SUBSYS_00025213" extern int os_winnt; int force_direct_catweasel; @@ -426,13 +426,13 @@ static int direct_detect(void) TCHAR devID[MAX_DEVICE_ID_LEN]; if(CM_Get_Device_ID_Ex(devInfo.DevInst,devID,MAX_DEVICE_ID_LEN,0,devInfoListDetail.RemoteMachineHandle)!=CR_SUCCESS) devID[0] = TEXT('\0'); - if (!memcmp (devID, PCI_CW_MK3, strlen (PCI_CW_MK3))) { + if (!_tcsncmp (devID, PCI_CW_MK3, _tcslen (PCI_CW_MK3))) { if (cw > 3) break; cw = 3; } - if (!memcmp (devID, PCI_CW_MK4, strlen (PCI_CW_MK4)) || - !memcmp (devID, PCI_CW_MK4_BUG, strlen (PCI_CW_MK4_BUG))) + if (!_tcsncmp (devID, PCI_CW_MK4, _tcslen (PCI_CW_MK4)) || + !_tcsncmp (devID, PCI_CW_MK4_BUG, _tcslen (PCI_CW_MK4_BUG))) cw = 4; if (cw) { SP_DEVINFO_LIST_DETAIL_DATA devInfoListDetail; @@ -521,7 +521,7 @@ static int detected; int catweasel_init(void) { - TCHAR name[32], tmp[1000]; + TCHAR name[32], tmp[1000], *s; int i, len; uae_u8 buffer[10000]; uae_u32 model, base; @@ -586,12 +586,14 @@ int catweasel_init(void) if (!cwc.direct_type) { if (!DeviceIoControl (handle, CW_GET_VERSION, 0, 0, buffer, sizeof (buffer), &len, 0)) { - write_log (L"CW: CW_GET_VERSION failed %d\n", GetLastError()); + write_log (L"CW: CW_GET_VERSION failed %d\n", GetLastError ()); goto fail; } - write_log (L"CW driver version string '%s'\n", buffer); + s = au (buffer); + write_log (L"CW driver version string '%s'\n", s); + xfree (s); if (!DeviceIoControl (handle, CW_GET_HWVERSION, 0, 0, buffer, sizeof (buffer), &len, 0)) { - write_log (L"CW: CW_GET_HWVERSION failed %d\n", GetLastError()); + write_log (L"CW: CW_GET_HWVERSION failed %d\n", GetLastError ()); goto fail; } write_log (L"CW: v=%d 14=%d 28=%d 56=%d joy=%d dpm=%d sid=%d kb=%d sidfifo=%d\n", @@ -638,7 +640,7 @@ int catweasel_init(void) //catweasel_init_controller(&cwc); _stprintf (tmp, L"CW: Catweasel MK%d @%p (%s) enabled. %s.", - cwc.type, (uae_u8*)cwc.iobase, name, cwc.direct_access ? "DIRECTIO": "API"); + cwc.type, (uae_u8*)cwc.iobase, name, cwc.direct_access ? L"DIRECTIO": L"API"); if (cwc.direct_access) { if (cwc.can_sid) { TCHAR *p = tmp + _tcslen (tmp); diff --git a/cfgfile.c b/cfgfile.c index 17db9b78..4d924f49 100644 --- a/cfgfile.c +++ b/cfgfile.c @@ -231,63 +231,104 @@ static size_t cfg_write (void *b, struct zfile *z) { size_t v; if (unicode_config) { + TCHAR lf = 10; v = zfile_fwrite (b, _tcslen (b), sizeof (TCHAR), z); + zfile_fwrite (&lf, 1, 1, z); } else { + char lf = 10; char *s = ua (b); v = zfile_fwrite (s, strlen(s), 1, z); + zfile_fwrite (&lf, 1, 1, z); xfree (s); } return v; } +static void cfg_dowrite (struct zfile *f, const TCHAR *option, const TCHAR *value, int d, int target) +{ + TCHAR tmp[CONFIG_BLEN]; + + if (target) + _stprintf (tmp, L"%s.%s=%s", TARGET_NAME, option, value); + else + _stprintf (tmp, L"%s=%s", option, value); + if (d && isdefault (tmp)) + return; + cfg_write (tmp, f); +} + +void cfgfile_write_bool (struct zfile *f, TCHAR *option, int b) +{ + cfg_dowrite (f, option, b ? L"true" : L"false", 0, 0); +} +void cfgfile_dwrite_bool (struct zfile *f, TCHAR *option, int b) +{ + cfg_dowrite (f, option, b ? L"true" : L"false", 1, 0); +} +void cfgfile_write_str (struct zfile *f, TCHAR *option, const TCHAR *value) +{ + cfg_dowrite (f, option, value, 0, 0); +} +void cfgfile_dwrite_str (struct zfile *f, TCHAR *option, const TCHAR *value) +{ + cfg_dowrite (f, option, value, 1, 0); +} + +void cfgfile_target_write_bool (struct zfile *f, TCHAR *option, int b) +{ + cfg_dowrite (f, option, b ? L"true" : L"false", 0, 1); +} +void cfgfile_target_dwrite_bool (struct zfile *f, TCHAR *option, int b) +{ + cfg_dowrite (f, option, b ? L"true" : L"false", 1, 1); +} +void cfgfile_target_write_str (struct zfile *f, TCHAR *option, const TCHAR *value) +{ + cfg_dowrite (f, option, value, 0, 1); +} +void cfgfile_target_dwrite_str (struct zfile *f, TCHAR *option, const TCHAR *value) +{ + cfg_dowrite (f, option, value, 1, 1); +} -void cfgfile_write (struct zfile *f, TCHAR *format,...) +void cfgfile_write (struct zfile *f, TCHAR *option, TCHAR *format,...) { va_list parms; TCHAR tmp[CONFIG_BLEN]; va_start (parms, format); _vstprintf (tmp, format, parms); - cfg_write (tmp, f); + cfg_dowrite (f, option, tmp, 0, 0); va_end (parms); } - -void cfgfile_dwrite (struct zfile *f, TCHAR *format,...) +void cfgfile_dwrite (struct zfile *f, TCHAR *option, TCHAR *format,...) { va_list parms; TCHAR tmp[CONFIG_BLEN]; va_start (parms, format); _vstprintf (tmp, format, parms); - if (!isdefault (tmp)) - cfg_write (tmp, f); + cfg_dowrite (f, option, tmp, 1, 0); va_end (parms); } - -void cfgfile_target_write (struct zfile *f, TCHAR *format,...) +void cfgfile_target_write (struct zfile *f, TCHAR *option, TCHAR *format,...) { va_list parms; TCHAR tmp[CONFIG_BLEN]; va_start (parms, format); - _vstprintf (tmp + _tcslen (TARGET_NAME) + 1, format, parms); - memcpy (tmp, TARGET_NAME, _tcslen (TARGET_NAME) * sizeof (TCHAR)); - tmp[_tcslen (TARGET_NAME)] = '.'; - cfg_write (tmp, f); + _vstprintf (tmp, format, parms); + cfg_dowrite (f, option, tmp, 0, 1); va_end (parms); } - -void cfgfile_target_dwrite (struct zfile *f, TCHAR *format,...) +void cfgfile_target_dwrite (struct zfile *f, TCHAR *option, TCHAR *format,...) { va_list parms; TCHAR tmp[CONFIG_BLEN]; va_start (parms, format); - _vstprintf (tmp + _tcslen (TARGET_NAME) + 1, format, parms); - memcpy (tmp, TARGET_NAME, _tcslen (TARGET_NAME) * sizeof (TCHAR)); - tmp[_tcslen (TARGET_NAME)] = '.'; - if (!isdefault (tmp)) - cfg_write (tmp, f); + _vstprintf (tmp, format, parms); + cfg_dowrite (f, option, tmp, 1, 1); va_end (parms); } @@ -312,32 +353,30 @@ static void write_filesys_config (struct uae_prefs *p, const TCHAR *unexpanded, bp = -129; str = cfgfile_subst_path (default_path, unexpanded, uci->rootdir); if (!uci->ishdf) { - _stprintf (tmp, L"%s,%s:%s:%s,%d\n", uci->readonly ? L"ro" : L"rw", + _stprintf (tmp, L"%s,%s:%s:%s,%d", uci->readonly ? L"ro" : L"rw", uci->devname ? uci->devname : L"", uci->volname, str, bp); - _stprintf (tmp2, L"filesystem2=%s", tmp); - zfile_fputs (f, tmp2); + cfgfile_write_str (f, L"filesystem2", tmp); #if 0 - _stprintf (tmp2, L"filesystem=%s,%s:%s\n", uci->readonly ? L"ro" : L"rw", + _stprintf (tmp2, L"filesystem=%s,%s:%s", uci->readonly ? L"ro" : L"rw", uci->volname, str); zfile_fputs (f, tmp2); #endif } else { - _stprintf (tmp, L"%s,%s:%s,%d,%d,%d,%d,%d,%s,%s\n", + _stprintf (tmp, L"%s,%s:%s,%d,%d,%d,%d,%d,%s,%s", uci->readonly ? L"ro" : L"rw", uci->devname ? uci->devname : L"", str, uci->sectors, uci->surfaces, uci->reserved, uci->blocksize, bp, uci->filesys ? uci->filesys : L"", hdcontrollers[uci->controller]); - _stprintf (tmp2, L"hardfile2=%s", tmp); - zfile_fputs (f, tmp2); + cfgfile_write_str (f, L"hardfile2", tmp); #if 0 - _stprintf (tmp2, L"hardfile=%s,%d,%d,%d,%d,%s\n", + _stprintf (tmp2, L"hardfile=%s,%d,%d,%d,%d,%s", uci->readonly ? "ro" : "rw", uci->sectors, uci->surfaces, uci->reserved, uci->blocksize, str); zfile_fputs (f, tmp2); #endif } - _stprintf (tmp2, L"uaehf%d=%s,%s", i, uci->ishdf ? L"hdf" : L"dir", tmp); - zfile_fputs (f, tmp2); + _stprintf (tmp2, L"uaehf%d", i); + cfgfile_write (f, tmp2, L"%s,%s", uci->ishdf ? L"hdf" : L"dir", tmp); xfree (str); } } @@ -358,130 +397,139 @@ static void write_compatibility_cpu (struct zfile *f, struct uae_prefs *p) _stprintf (tmp, L"%d", model); if (model == 68020 && (p->fpu_model == 68881 || p->fpu_model == 68882)) _tcscat (tmp, L"/68881"); - cfgfile_write (f, L"cpu_type=%s\n", tmp); + cfgfile_write (f, L"cpu_type", tmp); } void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type) { struct strlist *sl; - TCHAR *str; + TCHAR *str, tmp[MAX_DPATH]; int i; - cfgfile_write (f, L"config_description=%s\n", p->description); - cfgfile_write (f, L"config_hardware=%s\n", (type & CONFIG_TYPE_HARDWARE) ? L"true" : L"false"); - cfgfile_write (f, L"config_host=%s\n", (type & CONFIG_TYPE_HOST) ? L"true" : L"false"); + cfgfile_write_str (f, L"config_description", p->description); + cfgfile_write_bool (f, L"config_hardware", type & CONFIG_TYPE_HARDWARE); + cfgfile_write_bool (f, L"config_host", type & CONFIG_TYPE_HOST); if (p->info[0]) - cfgfile_write (f, L"config_info=%s\n", p->info); - cfgfile_write (f, L"config_version=%d.%d.%d\n", UAEMAJOR, UAEMINOR, UAESUBREV); - cfgfile_write (f, L"config_hardware_path=%s\n", p->config_hardware_path); - cfgfile_write (f, L"config_host_path=%s\n", p->config_host_path); + cfgfile_write (f, L"config_info", p->info); + cfgfile_write (f, L"config_version", L"%d.%d.%d", UAEMAJOR, UAEMINOR, UAESUBREV); + cfgfile_write_str (f, L"config_hardware_path", p->config_hardware_path); + cfgfile_write_str (f, L"config_host_path", p->config_host_path); for (sl = p->all_lines; sl; sl = sl->next) { if (sl->unknown) - cfgfile_write (f, L"%s=%s\n", sl->option, sl->value); + cfgfile_write_str (f, sl->option, sl->value); } - cfgfile_write (f, L"%s.rom_path=%s\n", TARGET_NAME, p->path_rom); - cfgfile_write (f, L"%s.floppy_path=%s\n", TARGET_NAME, p->path_floppy); - cfgfile_write (f, L"%s.hardfile_path=%s\n", TARGET_NAME, p->path_hardfile); + _stprintf (tmp, L"%s.rom_path", TARGET_NAME); + cfgfile_write_str (f, tmp, p->path_rom); + _stprintf (tmp, L"%s.floppy_path", TARGET_NAME); + cfgfile_write_str (f, tmp, p->path_floppy); + _stprintf (tmp, L"%s.hardfile_path", TARGET_NAME); + cfgfile_write_str (f, tmp, p->path_hardfile); - cfgfile_write (f, L"; host-specific\n"); + cfg_write (L"; host-specific", f); target_save_options (f, p); - cfgfile_write (f, L"; common\n"); + cfg_write (L"; common", f); - cfgfile_write (f, L"use_gui=%s\n", guimode1[p->start_gui]); - cfgfile_write (f, L"use_debugger=%s\n", p->start_debugger ? L"true" : L"false"); + cfgfile_write_str (f, L"use_gui", guimode1[p->start_gui]); + cfgfile_write_bool (f, L"use_debugger", p->start_debugger); str = cfgfile_subst_path (p->path_rom, UNEXPANDED, p->romfile); - cfgfile_write (f, L"kickstart_rom_file=%s\n", str); - free (str); + cfgfile_write_str (f, L"kickstart_rom_file", str); + xfree (str); if (p->romident[0]) - cfgfile_dwrite (f, L"kickstart_rom=%s\n", p->romident); + cfgfile_dwrite_str (f, L"kickstart_rom", p->romident); str = cfgfile_subst_path (p->path_rom, UNEXPANDED, p->romextfile); - cfgfile_write (f, L"kickstart_ext_rom_file=%s\n", str); - free (str); + cfgfile_write_str (f, L"kickstart_ext_rom_file", str); + xfree (str); if (p->romextident[0]) - cfgfile_write (f, L"kickstart_ext_rom=%s\n", p->romextident); + cfgfile_write_str (f, L"kickstart_ext_rom=", p->romextident); str = cfgfile_subst_path (p->path_rom, UNEXPANDED, p->flashfile); - cfgfile_write (f, L"flash_file=%s\n", str); - free (str); + cfgfile_write_str (f, L"flash_file", str); + xfree (str); str = cfgfile_subst_path (p->path_rom, UNEXPANDED, p->cartfile); - cfgfile_write (f, L"cart_file=%s\n", str); - free (str); + cfgfile_write_str (f, L"cart_file", str); + xfree (str); if (p->cartident[0]) - cfgfile_write (f, L"cart=%s\n", p->cartident); - //cfgfile_write (f, L"cart_internal=%s\n", cartsmode[p->cart_internal]); + cfgfile_write_str (f, L"cart", p->cartident); if (p->amaxromfile[0]) { str = cfgfile_subst_path (p->path_rom, UNEXPANDED, p->amaxromfile); - cfgfile_write (f, L"amax_rom_file=%s\n", str); - free (str); + cfgfile_write_str (f, L"amax_rom_file", str); + xfree (str); } - cfgfile_write (f, L"kickshifter=%s\n", p->kickshifter ? L"true" : L"false"); + cfgfile_write_bool (f, L"kickshifter", p->kickshifter); p->nr_floppies = 4; for (i = 0; i < 4; i++) { str = cfgfile_subst_path (p->path_floppy, UNEXPANDED, p->df[i]); - cfgfile_write (f, L"floppy%d=%s\n", i, str); - free (str); - cfgfile_dwrite (f, L"floppy%dtype=%d\n", i, p->dfxtype[i]); - cfgfile_dwrite (f, L"floppy%dsound=%d\n", i, p->dfxclick[i]); - if (p->dfxclick[i] < 0 && p->dfxclickexternal[i][0]) - cfgfile_dwrite (f, L"floppy%dsoundext=%s\n", i, p->dfxclickexternal[i]); + _stprintf (tmp, L"floppy%d", i); + cfgfile_write_str (f, tmp, str); + xfree (str); + _stprintf (tmp, L"floppy%dtype", i); + cfgfile_dwrite (f, tmp, L"%d", p->dfxtype[i]); + _stprintf (tmp, L"floppy%dsound", i); + cfgfile_dwrite (f, tmp, L"%d", p->dfxclick[i]); + if (p->dfxclick[i] < 0 && p->dfxclickexternal[i][0]) { + _stprintf (tmp, L"floppy%dsoundext", i); + cfgfile_dwrite (f, tmp, p->dfxclickexternal[i]); + } if (p->dfxtype[i] < 0 && p->nr_floppies > i) p->nr_floppies = i; } for (i = 0; i < MAX_SPARE_DRIVES; i++) { - if (p->dfxlist[i][0]) - cfgfile_dwrite (f, L"diskimage%d=%s\n", i, p->dfxlist[i]); - } - - cfgfile_write (f, L"nr_floppies=%d\n", p->nr_floppies); - cfgfile_write (f, L"floppy_speed=%d\n", p->floppy_speed); - cfgfile_write (f, L"floppy_volume=%d\n", p->dfxclickvolume); - cfgfile_write (f, L"parallel_on_demand=%s\n", p->parallel_demand ? L"true" : L"false"); - cfgfile_write (f, L"serial_on_demand=%s\n", p->serial_demand ? L"true" : L"false"); - cfgfile_write (f, L"serial_hardware_ctsrts=%s\n", p->serial_hwctsrts ? L"true" : L"false"); - cfgfile_write (f, L"serial_direct=%s\n", p->serial_direct ? L"true" : L"false"); - cfgfile_write (f, L"scsi=%s\n", scsimode[p->scsi]); - cfgfile_write (f, L"uaeserial=%s\n", p->uaeserial ? L"true" : L"false"); - cfgfile_write (f, L"sana2=%s\n", p->sana2 ? L"true" : L"false"); - - cfgfile_write (f, L"sound_output=%s\n", soundmode1[p->produce_sound]); - cfgfile_write (f, L"sound_channels=%s\n", stereomode[p->sound_stereo]); - cfgfile_write (f, L"sound_stereo_separation=%d\n", p->sound_stereo_separation); - cfgfile_write (f, L"sound_stereo_mixing_delay=%d\n", p->sound_mixed_stereo_delay >= 0 ? p->sound_mixed_stereo_delay : 0); - cfgfile_write (f, L"sound_max_buff=%d\n", p->sound_maxbsiz); - cfgfile_write (f, L"sound_frequency=%d\n", p->sound_freq); - cfgfile_write (f, L"sound_latency=%d\n", p->sound_latency); - cfgfile_write (f, L"sound_interpol=%s\n", interpolmode[p->sound_interpol]); - cfgfile_write (f, L"sound_filter=%s\n", soundfiltermode1[p->sound_filter]); - cfgfile_write (f, L"sound_filter_type=%s\n", soundfiltermode2[p->sound_filter_type]); - cfgfile_write (f, L"sound_volume=%d\n", p->sound_volume); - cfgfile_write (f, L"sound_auto=%s\n", p->sound_auto ? L"yes" : L"no"); - cfgfile_write (f, L"sound_stereo_swap_paula=%s\n", p->sound_stereo_swap_paula ? L"yes" : L"no"); - cfgfile_write (f, L"sound_stereo_swap_ahi=%s\n", p->sound_stereo_swap_ahi ? L"yes" : L"no"); - - cfgfile_write (f, L"comp_trustbyte=%s\n", compmode[p->comptrustbyte]); - cfgfile_write (f, L"comp_trustword=%s\n", compmode[p->comptrustword]); - cfgfile_write (f, L"comp_trustlong=%s\n", compmode[p->comptrustlong]); - cfgfile_write (f, L"comp_trustnaddr=%s\n", compmode[p->comptrustnaddr]); - cfgfile_write (f, L"comp_nf=%s\n", p->compnf ? L"true" : L"false"); - cfgfile_write (f, L"comp_constjump=%s\n", p->comp_constjump ? L"true" : L"false"); - cfgfile_write (f, L"comp_oldsegv=%s\n", p->comp_oldsegv ? L"true" : L"false"); - - cfgfile_write (f, L"comp_flushmode=%s\n", flushmode[p->comp_hardflush]); - cfgfile_write (f, L"compfpu=%s\n", p->compfpu ? L"true" : L"false"); - cfgfile_write (f, L"fpu_strict=%s\n", p->fpu_strict ? L"true" : L"false"); - cfgfile_write (f, L"comp_midopt=%s\n", p->comp_midopt ? L"true" : L"false"); - cfgfile_write (f, L"comp_lowopt=%s\n", p->comp_lowopt ? L"true" : L"false"); - cfgfile_write (f, L"avoid_cmov=%s\n", p->avoid_cmov ? L"true" : L"false" ); - cfgfile_write (f, L"avoid_dga=%s\n", p->avoid_dga ? L"true" : L"false" ); - cfgfile_write (f, L"avoid_vid=%s\n", p->avoid_vid ? L"true" : L"false" ); - cfgfile_write (f, L"cachesize=%d\n", p->cachesize); + if (p->dfxlist[i][0]) { + _stprintf (tmp, L"diskimage%d", i); + cfgfile_dwrite_str (f, tmp, p->dfxlist[i]); + } + } + + cfgfile_write (f, L"nr_floppies", L"%d", p->nr_floppies); + cfgfile_write (f, L"floppy_speed", L"%d", p->floppy_speed); + cfgfile_write (f, L"floppy_volume", L"%d", p->dfxclickvolume); + cfgfile_write_bool (f, L"parallel_on_demand", p->parallel_demand); + cfgfile_write_bool (f, L"serial_on_demand", p->serial_demand); + cfgfile_write_bool (f, L"serial_hardware_ctsrts", p->serial_hwctsrts); + cfgfile_write_bool (f, L"serial_direct", p->serial_direct); + cfgfile_write_str (f, L"scsi", scsimode[p->scsi]); + cfgfile_write_bool (f, L"uaeserial", p->uaeserial); + cfgfile_write_bool (f, L"sana2", p->sana2); + + cfgfile_write_str (f, L"sound_output", soundmode1[p->produce_sound]); + cfgfile_write_str (f, L"sound_channels", stereomode[p->sound_stereo]); + cfgfile_write (f, L"sound_stereo_separation", L"%d", p->sound_stereo_separation); + cfgfile_write (f, L"sound_stereo_mixing_delay", L"%d", p->sound_mixed_stereo_delay >= 0 ? p->sound_mixed_stereo_delay : 0); + cfgfile_write (f, L"sound_max_buff", L"%d", p->sound_maxbsiz); + cfgfile_write (f, L"sound_frequency", L"%d", p->sound_freq); + cfgfile_write (f, L"sound_latency", L"%d", p->sound_latency); + cfgfile_write_str (f, L"sound_interpol", interpolmode[p->sound_interpol]); + cfgfile_write_str (f, L"sound_filter", soundfiltermode1[p->sound_filter]); + cfgfile_write_str (f, L"sound_filter_type", soundfiltermode2[p->sound_filter_type]); + cfgfile_write (f, L"sound_volume", L"%d", p->sound_volume); + cfgfile_write_bool (f, L"sound_auto", p->sound_auto); + cfgfile_write_bool (f, L"sound_stereo_swap_paula", p->sound_stereo_swap_paula); + cfgfile_write_bool (f, L"sound_stereo_swap_ahi", p->sound_stereo_swap_ahi); + + cfgfile_write_str (f, L"comp_trustbyte", compmode[p->comptrustbyte]); + cfgfile_write_str (f, L"comp_trustword", compmode[p->comptrustword]); + cfgfile_write_str (f, L"comp_trustlong", compmode[p->comptrustlong]); + cfgfile_write_str (f, L"comp_trustnaddr", compmode[p->comptrustnaddr]); + cfgfile_write_bool (f, L"comp_nf", p->compnf); + cfgfile_write_bool (f, L"comp_constjump", p->comp_constjump); + cfgfile_write_bool (f, L"comp_oldsegv", p->comp_oldsegv); + + cfgfile_write_str (f, L"comp_flushmode", flushmode[p->comp_hardflush]); + cfgfile_write_bool (f, L"compfpu", p->compfpu); + cfgfile_write_bool (f, L"fpu_strict", p->fpu_strict); + cfgfile_write_bool (f, L"comp_midopt", p->comp_midopt); + cfgfile_write_bool (f, L"comp_lowopt", p->comp_lowopt); + cfgfile_write_bool (f, L"avoid_cmov", p->avoid_cmov); + cfgfile_write_bool (f, L"avoid_dga", p->avoid_dga); + cfgfile_write_bool (f, L"avoid_vid", p->avoid_vid); + cfgfile_write (f, L"cachesize", L"%d", p->cachesize); if (p->override_dga_address) - cfgfile_write (f, L"override_dga_address=0x%08x\n", p->override_dga_address); + cfgfile_write (f, L"override_dga_address", L"0x%08x", p->override_dga_address); for (i = 0; i < 2; i++) { struct jport *jp = &p->jports[i]; @@ -498,57 +546,57 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type) if (v - JSEM_MICE > 0) _stprintf (tmp2, L"mouse%d", v - JSEM_MICE); } - _stprintf (tmp1, L"joyport%d=%s\n", i, tmp2); - cfgfile_write (f, tmp1); + _stprintf (tmp1, L"joyport%d", i); + cfgfile_write (f, tmp1, tmp2); if (jp->name) { - _stprintf (tmp1, L"joyportfriendlyname%d=%s\n", i, jp->name); - cfgfile_write (f, tmp1); + _stprintf (tmp1, L"joyportfriendlyname%d", i); + cfgfile_write (f, tmp1, jp->name); } if (jp->configname) { - _stprintf (tmp1, L"joyportname%d=%s\n", i, jp->configname); - cfgfile_write (f, tmp1); + _stprintf (tmp1, L"joyportname%d", i); + cfgfile_write (f, tmp1, jp->configname); } } - cfgfile_write (f, L"bsdsocket_emu=%s\n", p->socket_emu ? L"true" : L"false"); - - cfgfile_write (f, L"synchronize_clock=%s\n", p->tod_hack ? L"yes" : L"no"); - cfgfile_write (f, L"maprom=0x%x\n", p->maprom); - cfgfile_write (f, L"parallel_postscript_emulation=%s\n", p->parallel_postscript_emulation ? L"yes" : L"no"); - cfgfile_write (f, L"parallel_postscript_detection=%s\n", p->parallel_postscript_detection ? L"yes" : L"no"); - cfgfile_write (f, L"ghostscript_parameters=%s\n", p->ghostscript_parameters); - cfgfile_write (f, L"parallel_autoflush=%d\n", p->parallel_autoflush_time); - cfgfile_dwrite (f, L"uae_hide=%d\n", p->uae_hide); - cfgfile_dwrite (f, L"magic_mouse=%s\n", p->input_magic_mouse ? L"true" : L"false"); - cfgfile_dwrite (f, L"magic_mousecursor=%s\n", magiccursors[p->input_magic_mouse_cursor]); - cfgfile_dwrite (f, L"absolute_mouse=%s\n", abspointers[p->input_tablet]); - - cfgfile_write (f, L"gfx_display=%d\n", p->gfx_display); - cfgfile_write (f, L"gfx_display_name=%s\n", p->gfx_display_name); - cfgfile_write (f, L"gfx_framerate=%d\n", p->gfx_framerate); - cfgfile_write (f, L"gfx_width=%d\n", p->gfx_size_win.width); /* compatibility with old versions */ - cfgfile_write (f, L"gfx_height=%d\n", p->gfx_size_win.height); /* compatibility with old versions */ - cfgfile_write (f, L"gfx_top_windowed=%d\n", p->gfx_size_win.x); - cfgfile_write (f, L"gfx_left_windowed=%d\n", p->gfx_size_win.y); - cfgfile_write (f, L"gfx_width_windowed=%d\n", p->gfx_size_win.width); - cfgfile_write (f, L"gfx_height_windowed=%d\n", p->gfx_size_win.height); - cfgfile_write (f, L"gfx_width_fullscreen=%d\n", p->gfx_size_fs.width); - cfgfile_write (f, L"gfx_height_fullscreen=%d\n", p->gfx_size_fs.height); - cfgfile_write (f, L"gfx_refreshrate=%d\n", p->gfx_refreshrate); - cfgfile_write (f, L"gfx_autoresolution=%d\n", p->gfx_autoresolution); - cfgfile_write (f, L"gfx_vsync=%s\n", p->gfx_avsync ? L"true" : L"false"); - cfgfile_write (f, L"gfx_vsync_picasso=%s\n", p->gfx_pvsync ? L"true" : L"false"); - cfgfile_write (f, L"gfx_lores=%s\n", p->gfx_resolution == 0 ? L"true" : L"false"); - cfgfile_write (f, L"gfx_resolution=%s\n", lorestype1[p->gfx_resolution]); - cfgfile_write (f, L"gfx_lores_mode=%s\n", loresmode[p->gfx_lores_mode]); - cfgfile_write (f, L"gfx_flickerfixer=%s\n", p->gfx_scandoubler ? L"true" : L"false"); - cfgfile_write (f, L"gfx_linemode=%s\n", linemode1[p->gfx_linedbl]); - cfgfile_write (f, L"gfx_fullscreen_amiga=%s\n", fullmodes[p->gfx_afullscreen]); - cfgfile_write (f, L"gfx_fullscreen_picasso=%s\n", fullmodes[p->gfx_pfullscreen]); - cfgfile_write (f, L"gfx_center_horizontal=%s\n", centermode1[p->gfx_xcenter]); - cfgfile_write (f, L"gfx_center_vertical=%s\n", centermode1[p->gfx_ycenter]); - cfgfile_write (f, L"gfx_colour_mode=%s\n", colormode1[p->color_mode]); - cfgfile_write (f, L"gfx_blacker_than_black=%s\n", p->gfx_blackerthanblack ? L"true" : L"false"); + cfgfile_write_bool (f, L"bsdsocket_emu", p->socket_emu); + + cfgfile_write_bool (f, L"synchronize_clock", p->tod_hack); + cfgfile_write (f, L"maprom", L"0x%x", p->maprom); + cfgfile_write_bool (f, L"parallel_postscript_emulation", p->parallel_postscript_emulation); + cfgfile_write_bool (f, L"parallel_postscript_detection", p->parallel_postscript_detection); + cfgfile_write_str (f, L"ghostscript_parameters", p->ghostscript_parameters); + cfgfile_write (f, L"parallel_autoflush", L"%d", p->parallel_autoflush_time); + cfgfile_dwrite (f, L"uae_hide", L"%d", p->uae_hide); + cfgfile_dwrite_bool (f, L"magic_mouse", p->input_magic_mouse); + cfgfile_dwrite_str (f, L"magic_mousecursor", magiccursors[p->input_magic_mouse_cursor]); + cfgfile_dwrite_str (f, L"absolute_mouse", abspointers[p->input_tablet]); + + cfgfile_write (f, L"gfx_display", L"%d", p->gfx_display); + cfgfile_write_str (f, L"gfx_display_name", p->gfx_display_name); + cfgfile_write (f, L"gfx_framerate", L"%d", p->gfx_framerate); + cfgfile_write (f, L"gfx_width", L"%d", p->gfx_size_win.width); /* compatibility with old versions */ + cfgfile_write (f, L"gfx_height", L"%d", p->gfx_size_win.height); /* compatibility with old versions */ + cfgfile_write (f, L"gfx_top_windowed", L"%d", p->gfx_size_win.x); + cfgfile_write (f, L"gfx_left_windowed", L"%d", p->gfx_size_win.y); + cfgfile_write (f, L"gfx_width_windowed", L"%d", p->gfx_size_win.width); + cfgfile_write (f, L"gfx_height_windowed", L"%d", p->gfx_size_win.height); + cfgfile_write (f, L"gfx_width_fullscreen", L"%d", p->gfx_size_fs.width); + cfgfile_write (f, L"gfx_height_fullscreen", L"%d", p->gfx_size_fs.height); + cfgfile_write (f, L"gfx_refreshrate", L"%d", p->gfx_refreshrate); + cfgfile_write (f, L"gfx_autoresolution", L"%d", p->gfx_autoresolution); + cfgfile_write_bool (f, L"gfx_vsync", p->gfx_avsync); + cfgfile_write_bool (f, L"gfx_vsync_picasso", p->gfx_pvsync); + cfgfile_write_bool (f, L"gfx_lores", p->gfx_resolution == 0); + cfgfile_write_str (f, L"gfx_resolution", lorestype1[p->gfx_resolution]); + cfgfile_write_str (f, L"gfx_lores_mode", loresmode[p->gfx_lores_mode]); + cfgfile_write_bool (f, L"gfx_flickerfixer", p->gfx_scandoubler); + cfgfile_write_str (f, L"gfx_linemode", linemode1[p->gfx_linedbl]); + cfgfile_write_str (f, L"gfx_fullscreen_amiga", fullmodes[p->gfx_afullscreen]); + cfgfile_write_str (f, L"gfx_fullscreen_picasso", fullmodes[p->gfx_pfullscreen]); + cfgfile_write_str (f, L"gfx_center_horizontal", centermode1[p->gfx_xcenter]); + cfgfile_write_str (f, L"gfx_center_vertical", centermode1[p->gfx_ycenter]); + cfgfile_write_str (f, L"gfx_colour_mode", colormode1[p->color_mode]); + cfgfile_write_bool (f, L"gfx_blacker_than_black", p->gfx_blackerthanblack); #ifdef GFXFILTER if (p->gfx_filter > 0) { @@ -558,12 +606,12 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type) uf = &uaefilters[i]; if (uf->type == p->gfx_filter) { if (p->gfx_filtershader[0]) - cfgfile_dwrite (f, L"gfx_filter=%s:%s\n", uf->cfgname, p->gfx_filtershader); + cfgfile_dwrite (f, L"gfx_filter", L"%s:%s", uf->cfgname, p->gfx_filtershader); else - cfgfile_dwrite (f, L"gfx_filter=%s\n", uf->cfgname); + cfgfile_dwrite_str (f, L"gfx_filter", uf->cfgname); if (uf->type == p->gfx_filter) { if (uf->x[0]) { - cfgfile_dwrite (f, L"gfx_filter_mode=%s\n", filtermode1[p->gfx_filter_filtermode]); + cfgfile_dwrite_str (f, L"gfx_filter_mode", filtermode1[p->gfx_filter_filtermode]); } else { int mt[4], i = 0; if (uf->x[1]) @@ -574,122 +622,122 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type) mt[i++] = 3; if (uf->x[4]) mt[i++] = 4; - cfgfile_dwrite (f, L"gfx_filter_mode=%dx\n", mt[p->gfx_filter_filtermode]); + cfgfile_dwrite (f, L"gfx_filter_mode", L"%dx", mt[p->gfx_filter_filtermode]); } } } i++; } } else { - cfgfile_dwrite (f, L"gfx_filter=no\n"); - } - - cfgfile_dwrite (f, L"gfx_filter_vert_zoom=%d\n", p->gfx_filter_vert_zoom); - cfgfile_dwrite (f, L"gfx_filter_horiz_zoom=%d\n", p->gfx_filter_horiz_zoom); - cfgfile_dwrite (f, L"gfx_filter_vert_zoom_mult=%d\n", p->gfx_filter_vert_zoom_mult); - cfgfile_dwrite (f, L"gfx_filter_horiz_zoom_mult=%d\n", p->gfx_filter_horiz_zoom_mult); - cfgfile_dwrite (f, L"gfx_filter_vert_offset=%d\n", p->gfx_filter_vert_offset); - cfgfile_dwrite (f, L"gfx_filter_horiz_offset=%d\n", p->gfx_filter_horiz_offset); - cfgfile_dwrite (f, L"gfx_filter_scanlines=%d\n", p->gfx_filter_scanlines); - cfgfile_dwrite (f, L"gfx_filter_scanlinelevel=%d\n", p->gfx_filter_scanlinelevel); - cfgfile_dwrite (f, L"gfx_filter_scanlineratio=%d\n", p->gfx_filter_scanlineratio); - cfgfile_dwrite (f, L"gfx_filter_luminance=%d\n", p->gfx_filter_luminance); - cfgfile_dwrite (f, L"gfx_filter_contrast=%d\n", p->gfx_filter_contrast); - cfgfile_dwrite (f, L"gfx_filter_saturation=%d\n", p->gfx_filter_saturation); - cfgfile_dwrite (f, L"gfx_filter_gamma=%d\n", p->gfx_filter_gamma); - cfgfile_dwrite (f, L"gfx_filter_blur=%d\n", p->gfx_filter_blur); - cfgfile_dwrite (f, L"gfx_filter_noise=%d\n", p->gfx_filter_noise); - cfgfile_dwrite (f, L"gfx_filter_keep_aspect=%s\n", p->gfx_filter_keep_aspect ? L"true" : L"false"); - cfgfile_dwrite (f, L"gfx_filter_autoscale=%s\n", autoscale[p->gfx_filter_autoscale]); - cfgfile_dwrite (f, L"gfx_filter_aspect_ratio=%d:%d\n", + cfgfile_dwrite (f, L"gfx_filter", L"no"); + } + + cfgfile_dwrite (f, L"gfx_filter_vert_zoom", L"%d", p->gfx_filter_vert_zoom); + cfgfile_dwrite (f, L"gfx_filter_horiz_zoom", L"%d", p->gfx_filter_horiz_zoom); + cfgfile_dwrite (f, L"gfx_filter_vert_zoom_mult", L"%d", p->gfx_filter_vert_zoom_mult); + cfgfile_dwrite (f, L"gfx_filter_horiz_zoom_mult", L"%d", p->gfx_filter_horiz_zoom_mult); + cfgfile_dwrite (f, L"gfx_filter_vert_offset", L"%d", p->gfx_filter_vert_offset); + cfgfile_dwrite (f, L"gfx_filter_horiz_offset", L"%d", p->gfx_filter_horiz_offset); + cfgfile_dwrite (f, L"gfx_filter_scanlines", L"%d", p->gfx_filter_scanlines); + cfgfile_dwrite (f, L"gfx_filter_scanlinelevel", L"%d", p->gfx_filter_scanlinelevel); + cfgfile_dwrite (f, L"gfx_filter_scanlineratio", L"%d", p->gfx_filter_scanlineratio); + cfgfile_dwrite (f, L"gfx_filter_luminance", L"%d", p->gfx_filter_luminance); + cfgfile_dwrite (f, L"gfx_filter_contrast", L"%d", p->gfx_filter_contrast); + cfgfile_dwrite (f, L"gfx_filter_saturation", L"%d", p->gfx_filter_saturation); + cfgfile_dwrite (f, L"gfx_filter_gamma", L"%d", p->gfx_filter_gamma); + cfgfile_dwrite (f, L"gfx_filter_blur", L"%d", p->gfx_filter_blur); + cfgfile_dwrite (f, L"gfx_filter_noise", L"%d", p->gfx_filter_noise); + cfgfile_dwrite_bool (f, L"gfx_filter_keep_aspect", p->gfx_filter_keep_aspect); + cfgfile_dwrite_str (f, L"gfx_filter_autoscale", autoscale[p->gfx_filter_autoscale]); + cfgfile_dwrite (f, L"gfx_filter_aspect_ratio", L"%d:%d", p->gfx_filter_aspect >= 0 ? (p->gfx_filter_aspect >> 8) : -1, p->gfx_filter_aspect >= 0 ? (p->gfx_filter_aspect & 0xff) : -1); - cfgfile_dwrite (f, L"gfx_luminance=%d\n", p->gfx_luminance); - cfgfile_dwrite (f, L"gfx_contrast=%d\n", p->gfx_contrast); - cfgfile_dwrite (f, L"gfx_gamma=%d\n", p->gfx_gamma); + cfgfile_dwrite (f, L"gfx_luminance", L"%d", p->gfx_luminance); + cfgfile_dwrite (f, L"gfx_contrast", L"%d", p->gfx_contrast); + cfgfile_dwrite (f, L"gfx_gamma", L"%d", p->gfx_gamma); #endif - cfgfile_write (f, L"immediate_blits=%s\n", p->immediate_blits ? L"true" : L"false"); - cfgfile_write (f, L"ntsc=%s\n", p->ntscmode ? L"true" : L"false"); - cfgfile_write (f, L"genlock=%s\n", p->genlock ? L"true" : L"false"); - cfgfile_dwrite (f, L"show_leds=%s\n", (p->leds_on_screen & STATUSLINE_CHIPSET) ? L"true" : L"false"); - cfgfile_dwrite (f, L"keyboard_leds=numlock:%s,capslock:%s,scrolllock:%s\n", + cfgfile_write_bool (f, L"immediate_blits", p->immediate_blits); + cfgfile_write_bool (f, L"ntsc", p->ntscmode); + cfgfile_write_bool (f, L"genlock", p->genlock); + cfgfile_dwrite_bool (f, L"show_leds", p->leds_on_screen & STATUSLINE_CHIPSET); + cfgfile_dwrite (f, L"keyboard_leds", L"numlock:%s,capslock:%s,scrolllock:%s", kbleds[p->keyboard_leds[0]], kbleds[p->keyboard_leds[1]], kbleds[p->keyboard_leds[2]]); if (p->chipset_mask & CSMASK_AGA) - cfgfile_dwrite (f, L"chipset=aga\n"); + cfgfile_dwrite (f, L"chipset",L"aga"); else if ((p->chipset_mask & CSMASK_ECS_AGNUS) && (p->chipset_mask & CSMASK_ECS_DENISE)) - cfgfile_dwrite (f, L"chipset=ecs\n"); + cfgfile_dwrite (f, L"chipset",L"ecs"); else if (p->chipset_mask & CSMASK_ECS_AGNUS) - cfgfile_dwrite (f, L"chipset=ecs_agnus\n"); + cfgfile_dwrite (f, L"chipset",L"ecs_agnus"); else if (p->chipset_mask & CSMASK_ECS_DENISE) - cfgfile_dwrite (f, L"chipset=ecs_denise\n"); + cfgfile_dwrite (f, L"chipset",L"ecs_denise"); else - cfgfile_dwrite (f, L"chipset=ocs\n"); - cfgfile_write (f, L"chipset_refreshrate=%d\n", p->chipset_refreshrate); - cfgfile_write (f, L"collision_level=%s\n", collmode[p->collision_level]); - - cfgfile_write (f, L"chipset_compatible=%s\n", cscompa[p->cs_compatible]); - cfgfile_dwrite (f, L"ciaatod=%s\n", ciaatodmode[p->cs_ciaatod]); - cfgfile_dwrite (f, L"rtc=%s\n", rtctype[p->cs_rtc]); - //cfgfile_dwrite (f, L"chipset_rtc_adjust=%d\n", p->cs_rtc_adjust); - cfgfile_dwrite (f, L"ksmirror_e0=%s\n", p->cs_ksmirror_e0 ? L"true" : L"false"); - cfgfile_dwrite (f, L"ksmirror_a8=%s\n", p->cs_ksmirror_a8 ? L"true" : L"false"); - cfgfile_dwrite (f, L"cd32cd=%s\n", p->cs_cd32cd ? L"true" : L"false"); - cfgfile_dwrite (f, L"cd32c2p=%s\n", p->cs_cd32c2p ? L"true" : L"false"); - cfgfile_dwrite (f, L"cd32nvram=%s\n", p->cs_cd32nvram ? L"true" : L"false"); - cfgfile_dwrite (f, L"cdtvcd=%s\n", p->cs_cdtvcd ? L"true" : L"false"); - cfgfile_dwrite (f, L"cdtvram=%s\n", p->cs_cdtvram ? L"true" : L"false"); - cfgfile_dwrite (f, L"cdtvramcard=%d\n", p->cs_cdtvcard); - cfgfile_dwrite (f, L"ide=%s\n", p->cs_ide == 1 ? L"a600/a1200" : (p->cs_ide == 2 ? L"a4000" : L"none")); - cfgfile_dwrite (f, L"a1000ram=%s\n", p->cs_a1000ram ? L"true" : L"false"); - cfgfile_dwrite (f, L"fatgary=%d\n", p->cs_fatgaryrev); - cfgfile_dwrite (f, L"ramsey=%d\n", p->cs_ramseyrev); - cfgfile_dwrite (f, L"pcmcia=%s\n", p->cs_pcmcia ? L"true" : L"false"); - cfgfile_dwrite (f, L"scsi_cdtv=%s\n", p->cs_cdtvscsi ? L"true" : L"false"); - cfgfile_dwrite (f, L"scsi_a2091=%s\n", p->cs_a2091 ? L"true" : L"false"); - cfgfile_dwrite (f, L"scsi_a4091=%s\n", p->cs_a4091 ? L"true" : L"false"); - cfgfile_dwrite (f, L"scsi_a3000=%s\n", p->cs_mbdmac == 1 ? L"true" : L"false"); - cfgfile_dwrite (f, L"scsi_a4000t=%s\n", p->cs_mbdmac == 2 ? L"true" : L"false"); - cfgfile_dwrite (f, L"bogomem_fast=%s\n", p->cs_slowmemisfast ? L"true" : L"false"); - cfgfile_dwrite (f, L"resetwarning=%s\n", p->cs_resetwarning ? L"true" : L"false"); - cfgfile_dwrite (f, L"denise_noehb=%s\n", p->cs_denisenoehb ? L"true" : L"false"); - cfgfile_dwrite (f, L"agnus_bltbusybug=%s\n", p->cs_agnusbltbusybug ? L"true" : L"false"); - - cfgfile_write (f, L"fastmem_size=%d\n", p->fastmem_size / 0x100000); - cfgfile_write (f, L"a3000mem_size=%d\n", p->mbresmem_low_size / 0x100000); - cfgfile_write (f, L"mbresmem_size=%d\n", p->mbresmem_high_size / 0x100000); - cfgfile_write (f, L"z3mem_size=%d\n", p->z3fastmem_size / 0x100000); - cfgfile_write (f, L"z3mem2_size=%d\n", p->z3fastmem2_size / 0x100000); - cfgfile_write (f, L"z3mem_start=0x%x\n", p->z3fastmem_start); - cfgfile_write (f, L"bogomem_size=%d\n", p->bogomem_size / 0x40000); - cfgfile_write (f, L"gfxcard_size=%d\n", p->gfxmem_size / 0x100000); - cfgfile_write (f, L"chipmem_size=%d\n", p->chipmem_size == 0x20000 ? -1 : (p->chipmem_size == 0x40000 ? 0 : p->chipmem_size / 0x80000)); + cfgfile_dwrite (f, L"chipset", L"ocs"); + cfgfile_write (f, L"chipset_refreshrate", L"%d", p->chipset_refreshrate); + cfgfile_write_str (f, L"collision_level", collmode[p->collision_level]); + + cfgfile_write_str(f, L"chipset_compatible", cscompa[p->cs_compatible]); + cfgfile_dwrite_str (f, L"ciaatod", ciaatodmode[p->cs_ciaatod]); + cfgfile_dwrite_str (f, L"rtc", rtctype[p->cs_rtc]); + //cfgfile_dwrite (f, L"chipset_rtc_adjust", L"%d", p->cs_rtc_adjust); + cfgfile_dwrite_bool (f, L"ksmirror_e0", p->cs_ksmirror_e0); + cfgfile_dwrite_bool (f, L"ksmirror_a8", p->cs_ksmirror_a8); + cfgfile_dwrite_bool (f, L"cd32cd", p->cs_cd32cd); + cfgfile_dwrite_bool (f, L"cd32c2p", p->cs_cd32c2p); + cfgfile_dwrite_bool (f, L"cd32nvram", p->cs_cd32nvram); + cfgfile_dwrite_bool (f, L"cdtvcd", p->cs_cdtvcd); + cfgfile_dwrite_bool (f, L"cdtvram", p->cs_cdtvram); + cfgfile_dwrite (f, L"cdtvramcard", L"%d", p->cs_cdtvcard); + cfgfile_dwrite_str (f, L"ide", p->cs_ide == 1 ? L"a600/a1200" : (p->cs_ide == 2 ? L"a4000" : L"none")); + cfgfile_dwrite_bool (f, L"a1000ram", p->cs_a1000ram); + cfgfile_dwrite (f, L"fatgary", L"%d", p->cs_fatgaryrev); + cfgfile_dwrite (f, L"ramsey", L"%d", p->cs_ramseyrev); + cfgfile_dwrite_bool (f, L"pcmcia", p->cs_pcmcia); + cfgfile_dwrite_bool (f, L"scsi_cdtv", p->cs_cdtvscsi); + cfgfile_dwrite_bool (f, L"scsi_a2091", p->cs_a2091); + cfgfile_dwrite_bool (f, L"scsi_a4091", p->cs_a4091); + cfgfile_dwrite_bool (f, L"scsi_a3000", p->cs_mbdmac == 1); + cfgfile_dwrite_bool (f, L"scsi_a4000t", p->cs_mbdmac == 2); + cfgfile_dwrite_bool (f, L"bogomem_fast", p->cs_slowmemisfast); + cfgfile_dwrite_bool (f, L"resetwarning", p->cs_resetwarning); + cfgfile_dwrite_bool (f, L"denise_noehb", p->cs_denisenoehb); + cfgfile_dwrite_bool (f, L"agnus_bltbusybug", p->cs_agnusbltbusybug); + + cfgfile_write (f, L"fastmem_size", L"%d", p->fastmem_size / 0x100000); + cfgfile_write (f, L"a3000mem_size", L"%d", p->mbresmem_low_size / 0x100000); + cfgfile_write (f, L"mbresmem_size", L"%d", p->mbresmem_high_size / 0x100000); + cfgfile_write (f, L"z3mem_size", L"%d", p->z3fastmem_size / 0x100000); + cfgfile_write (f, L"z3mem2_size", L"%d", p->z3fastmem2_size / 0x100000); + cfgfile_write (f, L"z3mem_start", L"0x%x", p->z3fastmem_start); + cfgfile_write (f, L"bogomem_size", L"%d", p->bogomem_size / 0x40000); + cfgfile_write (f, L"gfxcard_size", L"%d", p->gfxmem_size / 0x100000); + cfgfile_write (f, L"chipmem_size", L"%d", p->chipmem_size == 0x20000 ? -1 : (p->chipmem_size == 0x40000 ? 0 : p->chipmem_size / 0x80000)); if (p->m68k_speed > 0) - cfgfile_write (f, L"finegrain_cpu_speed=%d\n", p->m68k_speed); + cfgfile_write (f, L"finegrain_cpu_speed", L"%d", p->m68k_speed); else - cfgfile_write (f, L"cpu_speed=%s\n", p->m68k_speed == -1 ? L"max" : L"real"); + cfgfile_write_str (f, L"cpu_speed", p->m68k_speed == -1 ? L"max" : L"real"); /* do not reorder start */ write_compatibility_cpu(f, p); - cfgfile_write (f, L"cpu_model=%d\n", p->cpu_model); + cfgfile_write (f, L"cpu_model", L"%d", p->cpu_model); if (p->fpu_model) - cfgfile_write (f, L"fpu_model=%d\n", p->fpu_model); - cfgfile_write (f, L"cpu_compatible=%s\n", p->cpu_compatible ? L"true" : L"false"); - cfgfile_write (f, L"cpu_24bit_addressing=%s\n", p->address_space_24 ? L"true" : L"false"); + cfgfile_write (f, L"fpu_model", L"%d", p->fpu_model); + cfgfile_write_bool (f, L"cpu_compatible", p->cpu_compatible); + cfgfile_write_bool (f, L"cpu_24bit_addressing", p->address_space_24); /* do not reorder end */ - cfgfile_write (f, L"cpu_cycle_exact=%s\n", p->cpu_cycle_exact ? L"true" : L"false"); - cfgfile_write (f, L"blitter_cycle_exact=%s\n", p->blitter_cycle_exact ? L"true" : L"false"); - cfgfile_write (f, L"rtg_nocustom=%s\n", p->picasso96_nocustom ? L"true" : L"false"); - cfgfile_write (f, L"rtg_modes=0x%x\n", p->picasso96_modeflags); + cfgfile_write_bool (f, L"cpu_cycle_exact", p->cpu_cycle_exact); + cfgfile_write_bool (f, L"blitter_cycle_exact", p->blitter_cycle_exact); + cfgfile_write_bool (f, L"rtg_nocustom", p->picasso96_nocustom); + cfgfile_write (f, L"rtg_modes", L"0x%x", p->picasso96_modeflags); - cfgfile_write (f, L"log_illegal_mem=%s\n", p->illegal_mem ? L"true" : L"false"); + cfgfile_write_bool (f, L"log_illegal_mem", p->illegal_mem); if (p->catweasel >= 100) - cfgfile_dwrite (f, L"catweasel=0x%x\n", p->catweasel); + cfgfile_dwrite (f, L"catweasel", L"0x%x", p->catweasel); else - cfgfile_dwrite (f, L"catweasel=%d\n", p->catweasel); + cfgfile_dwrite (f, L"catweasel", L"%d", p->catweasel); - cfgfile_write (f, L"kbd_lang=%s\n", (p->keyboard_lang == KBD_LANG_DE ? L"de" + cfgfile_write_str (f, L"kbd_lang", (p->keyboard_lang == KBD_LANG_DE ? L"de" : p->keyboard_lang == KBD_LANG_DK ? L"dk" : p->keyboard_lang == KBD_LANG_ES ? L"es" : p->keyboard_lang == KBD_LANG_US ? L"us" @@ -698,14 +746,14 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type) : p->keyboard_lang == KBD_LANG_IT ? L"it" : L"FOO")); - cfgfile_dwrite (f, L"state_replay=%s\n", p->statecapture ? L"yes" : L"no"); - cfgfile_dwrite (f, L"state_replay_rate=%d\n", p->statecapturerate); - cfgfile_dwrite (f, L"state_replay_buffer=%d\n", p->statecapturebuffersize); + cfgfile_dwrite_str (f, L"state_replay", p->statecapture ? L"yes" : L"no"); + cfgfile_dwrite (f, L"state_replay_rate", L"%d", p->statecapturerate); + cfgfile_dwrite (f, L"state_replay_buffer", L"%d", p->statecapturebuffersize); #ifdef FILESYS write_filesys_config (p, UNEXPANDED, p->path_hardfile, f); if (p->filesys_no_uaefsdb) - cfgfile_write (f, L"filesys_no_fsdb=%s\n", p->filesys_no_uaefsdb ? L"true" : L"false"); + cfgfile_write_bool (f, L"filesys_no_fsdb", p->filesys_no_uaefsdb); #endif write_inputdevice_config (p, f); @@ -1203,7 +1251,8 @@ static int cfgfile_parse_host (struct uae_prefs *p, TCHAR *option, TCHAR *value) *tmpp++= 0; if (num >= 0) { p->keyboard_leds[num] = match_string (kbleds, tmpp2); - if (p->keyboard_leds[num]) p->keyboard_leds_in_use = 1; + if (p->keyboard_leds[num]) + p->keyboard_leds_in_use = 1; } tmpp2 = tmpp; } diff --git a/filesys.asm b/filesys.asm index 12a6ea74..0243c108 100644 --- a/filesys.asm +++ b/filesys.asm @@ -2193,7 +2193,16 @@ cfloop2 jsr -$01bc(a6) ;OpenDevice tst.l d0 bne.s cfloop2 - + move.l 20(a4),a0 ;device node + cmp.w #37,20(a0) ;must be at least v37 + bcc.s cfversion + ;too lazy free everything.. +cfloop3 + moveq #0,d0 + jsr -$013e(a6) + bra.s cfloop3 + +cfversion move.w #$FF38,d0 moveq #15,d1 bsr.w getrtbase diff --git a/filesys.c b/filesys.c index fa053075..5af405d9 100644 --- a/filesys.c +++ b/filesys.c @@ -1283,7 +1283,7 @@ static int fsdb_cando (Unit *unit) static void prepare_for_open (TCHAR *name) { #if 0 - struct stat statbuf; + struct _stat64 statbuf; int mode; if (-1 == stat (name, &statbuf)) @@ -1558,8 +1558,8 @@ static a_inode *lookup_aino (Unit *unit, uae_u32 uniq) TCHAR *build_nname (const TCHAR *d, const TCHAR *n) { - TCHAR dsep[2] = { FSDB_DIR_SEPARATOR, '\0' }; - TCHAR *p = xmalloc ((_tcslen (d) + _tcslen (n) + 2) * sizeof (TCHAR)); + TCHAR dsep[2] = { FSDB_DIR_SEPARATOR, 0 }; + TCHAR *p = xmalloc ((_tcslen (d) + 1 + _tcslen (n) + 1) * sizeof (TCHAR)); _tcscpy (p, d); _tcscat (p, dsep); _tcscat (p, n); @@ -1568,7 +1568,7 @@ TCHAR *build_nname (const TCHAR *d, const TCHAR *n) TCHAR *build_aname (const TCHAR *d, const TCHAR *n) { - TCHAR *p = xmalloc ((_tcslen (d) + _tcslen (n) + 2) * sizeof (TCHAR)); + TCHAR *p = xmalloc ((_tcslen (d) + 1 + _tcslen (n) + 1) * sizeof (TCHAR)); _tcscpy (p, d); _tcscat (p, L"/"); _tcscat (p, n); @@ -2720,7 +2720,7 @@ get_fileinfo (Unit *unit, dpacket packet, uaecptr info, a_inode *aino) if (unit->volflags & MYVOLUMEINFO_ARCHIVE) zfile_stat_archive (aino->nname, &statbuf); else - _wstat64 (aino->nname, &statbuf); + stat (aino->nname, &statbuf); if (aino->parent == 0) { /* Guru book says ST_ROOT = 1 (root directory, not currently used) @@ -2837,11 +2837,11 @@ static int exalldo (uaecptr exalldata, uae_u32 exalldatasize, uae_u32 type, uaec char *x = NULL, *comment = NULL; int ret = 0; - memset(&statbuf, 0, sizeof statbuf); + memset (&statbuf, 0, sizeof statbuf); if (unit->volflags & MYVOLUMEINFO_ARCHIVE) zfile_stat_archive (aino->nname, &statbuf); else - _wstat64 (aino->nname, &statbuf); + stat (aino->nname, &statbuf); if (aino->parent == 0) { entrytype = 2; @@ -3515,7 +3515,7 @@ action_find_write (Unit *unit, dpacket packet) /* change file/dir's parent dir modification time */ static void updatedirtime (a_inode *a1, int now) { - struct stat statbuf; + struct _stat64 statbuf; struct utimbuf ut; long days, mins, ticks; @@ -3598,7 +3598,7 @@ action_read (Unit *unit, dpacket packet) k->file_pos += actual; } } else { - TCHAR *buf; + uae_u8 *buf; off_t old, filesize; write_log (L"unixfs warning: Bad pointer passed for read: %08x, size %d\n", addr, size); @@ -3696,8 +3696,8 @@ action_seek (Unit *unit, dpacket packet) Key *k = lookup_key (unit, GET_PCK_ARG1 (packet)); long pos = (uae_s32)GET_PCK_ARG2 (packet); long mode = (uae_s32)GET_PCK_ARG3 (packet); - off_t res; - long old; + uae_s64 res; + uae_s64 old; int whence = SEEK_CUR; if (k == 0) { @@ -3716,8 +3716,8 @@ action_seek (Unit *unit, dpacket packet) old = fs_lseek (unit, k->fd, 0, SEEK_CUR); { - uae_s32 temppos; - long filesize = fs_lseek (unit, k->fd, 0, SEEK_END); + uae_s64 temppos; + uae_s64 filesize = fs_lseek64 (unit, k->fd, 0, SEEK_END); fs_lseek (unit, k->fd, old, SEEK_SET); if (whence == SEEK_CUR) @@ -3733,13 +3733,16 @@ action_seek (Unit *unit, dpacket packet) return; } } - res = fs_lseek (unit, k->fd, pos, whence); + res = fs_lseek64 (unit, k->fd, pos, whence); - if (-1 == res || res > MAXFILESIZE32) { - PUT_PCK_RES1 (packet, res); + if (-1 == res || old > MAXFILESIZE32) { + PUT_PCK_RES1 (packet, -1); PUT_PCK_RES2 (packet, ERROR_SEEK_ERROR); - } else + fs_lseek64 (unit, k->fd, old, SEEK_SET); + res = old; + } else { PUT_PCK_RES1 (packet, old); + } k->file_pos = res; } @@ -4440,7 +4443,7 @@ static void action_change_file_position64 (Unit *unit, dpacket packet) PUT_PCK64_RES0 (packet, DP64_INIT); if (k == 0) { - PUT_PCK64_RES1 (packet, (uae_s64)-1); + PUT_PCK64_RES1 (packet, DOS_FALSE); PUT_PCK64_RES2 (packet, ERROR_INVALID_LOCK); return; } @@ -4475,13 +4478,13 @@ static void action_change_file_position64 (Unit *unit, dpacket packet) res = fs_lseek64 (unit, k->fd, pos, whence); if (-1 == res) { - PUT_PCK64_RES1 (packet, res); + PUT_PCK64_RES1 (packet, DOS_FALSE); PUT_PCK64_RES2 (packet, ERROR_SEEK_ERROR); } else { PUT_PCK64_RES1 (packet, TRUE); PUT_PCK64_RES2 (packet, 0); + k->file_pos = res; } - k->file_pos = res; } @@ -4492,7 +4495,7 @@ static void action_get_file_position64 (Unit *unit, dpacket packet) PUT_PCK64_RES0 (packet, DP64_INIT); if (k == 0) { - PUT_PCK64_RES1 (packet, (uae_s64)-1); + PUT_PCK64_RES1 (packet, DOS_FALSE); PUT_PCK64_RES2 (packet, ERROR_INVALID_LOCK); return; } @@ -4519,7 +4522,7 @@ static void action_change_file_size64 (Unit *unit, dpacket packet) k = lookup_key (unit, GET_PCK64_ARG1 (packet)); if (k == 0) { - PUT_PCK64_RES1 (packet, DOS_TRUE); + PUT_PCK64_RES1 (packet, DOS_FALSE); PUT_PCK64_RES2 (packet, ERROR_OBJECT_NOT_AROUND); return; } @@ -4561,7 +4564,7 @@ static void action_get_file_size64 (Unit *unit, dpacket packet) PUT_PCK64_RES0 (packet, DP64_INIT); if (k == 0) { - PUT_PCK64_RES1 (packet, (uae_s64)-1); + PUT_PCK64_RES1 (packet, DOS_FALSE); PUT_PCK64_RES2 (packet, ERROR_INVALID_LOCK); return; } @@ -4576,7 +4579,7 @@ static void action_get_file_size64 (Unit *unit, dpacket packet) return; } } - PUT_PCK64_RES1 (packet, (uae_s64)-1); + PUT_PCK64_RES1 (packet, DOS_FALSE); PUT_PCK64_RES2 (packet, ERROR_SEEK_ERROR); } @@ -5815,7 +5818,7 @@ static a_inode *restore_filesys_get_base (Unit *u, TCHAR *npath) /* iterate from root to last to previous path part, * create ainos if not already created. */ - path = xcalloc((_tcslen(npath) + 2) * sizeof (TCHAR), 1); + path = xcalloc((_tcslen (npath) + 2) * sizeof (TCHAR), 1); cnt = 1; for (;;) { _tcscpy (path, npath); @@ -5978,7 +5981,7 @@ static uae_u8 *restore_key (UnitInfo *ui, Unit *u, uae_u8 *src) Key *k; missing = 0; - k = xcalloc (sizeof(Key), 1); + k = xcalloc (sizeof (Key), 1); k->uniq = restore_u64 (); k->file_pos = restore_u32 (); k->createmode = restore_u32 (); diff --git a/filesys_bootrom.c b/filesys_bootrom.c index 5c8385d2..1c70b4b8 100644 --- a/filesys_bootrom.c +++ b/filesys_bootrom.c @@ -2,14 +2,14 @@ db(0x60); db(0x00); db(0x09); db(0x8e); db(0x00); db(0x00); db(0x07); db(0x6c); db(0x00); db(0x00); db(0x00); db(0x30); db(0x00); db(0x00); db(0x01); db(0x8c); db(0x00); db(0x00); db(0x00); db(0x1c); db(0x00); db(0x00); db(0x02); db(0x48); - db(0x00); db(0x00); db(0x0d); db(0x5c); db(0x43); db(0xfa); db(0x16); db(0x64); + db(0x00); db(0x00); db(0x0d); db(0x5c); db(0x43); db(0xfa); db(0x16); db(0x78); db(0x4e); db(0xae); db(0xff); db(0xa0); db(0x20); db(0x40); db(0x20); db(0x28); db(0x00); db(0x16); db(0x20); db(0x40); db(0x4e); db(0x90); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0xff); db(0xfe); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x30); db(0x3c); db(0xff); db(0xfc); db(0x61); db(0x00); db(0x0b); db(0x8a); - db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x16); db(0x6d); db(0x70); db(0x24); + db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x16); db(0x81); db(0x70); db(0x24); db(0x7a); db(0x01); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80); - db(0x66); db(0x0c); db(0x43); db(0xfa); db(0x16); db(0x5d); db(0x70); db(0x00); + db(0x66); db(0x0c); db(0x43); db(0xfa); db(0x16); db(0x71); db(0x70); db(0x00); db(0x7a); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x28); db(0x40); db(0x4a); db(0xad); db(0x01); db(0x0c); db(0x67); db(0x5a); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c); db(0x22); db(0x3c); db(0x00); db(0x01); @@ -28,20 +28,20 @@ db(0x0a); db(0xf8); db(0x4e); db(0x90); db(0x72); db(0x03); db(0x74); db(0xf6); db(0x20); db(0x7c); db(0x00); db(0x20); db(0x00); db(0x00); db(0x90); db(0x88); db(0x65); db(0x0a); db(0x67); db(0x08); db(0x78); db(0x00); db(0x22); db(0x44); - db(0x4e); db(0xae); db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x15); db(0x68); + db(0x4e); db(0xae); db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x15); db(0x7c); db(0x43); db(0xfa); db(0x00); db(0x54); db(0x70); db(0x0a); db(0x61); db(0x00); db(0x0b); db(0xac); db(0x22); db(0x40); db(0x72); db(0x01); db(0x30); db(0x3c); db(0xff); db(0x48); db(0x61); db(0x00); db(0x0a); db(0xc4); db(0x4e); db(0x90); db(0x4c); db(0xdf); db(0x7f); db(0xff); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x38); db(0x22); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x24); db(0x00); db(0x28); db(0x01); db(0x26); db(0x09); db(0x24); db(0x48); db(0x43); db(0xfa); - db(0x15); db(0x62); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); + db(0x15); db(0x76); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80); db(0x67); db(0x14); db(0x2c); db(0x40); db(0x22); db(0x0a); db(0xe4); db(0x8b); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x22); db(0x4e); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x4c); db(0xdf); db(0x44); db(0x1c); db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d); - db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x41); db(0xfa); db(0x15); db(0x13); + db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x41); db(0xfa); db(0x15); db(0x27); db(0x43); db(0xfa); db(0x00); db(0x16); db(0x70); db(0x0f); db(0x22); db(0x3c); db(0x00); db(0x00); db(0x1f); db(0x40); db(0x61); db(0x00); db(0xff); db(0xa8); db(0x60); db(0xdc); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x10); @@ -74,7 +74,7 @@ db(0x70); db(0x01); db(0x4c); db(0xdf); db(0x04); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0xc0); db(0xc0); db(0x70); db(0x1a); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); - db(0x22); db(0x40); db(0x41); db(0xfa); db(0x13); db(0xeb); db(0x23); db(0x48); + db(0x22); db(0x40); db(0x41); db(0xfa); db(0x13); db(0xff); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa); db(0xff); db(0x28); db(0x23); db(0x48); db(0x00); db(0x0e); db(0x41); db(0xfa); db(0xff); db(0x20); db(0x23); db(0x48); db(0x00); db(0x12); db(0x33); db(0x7c); db(0x02); db(0x14); db(0x00); db(0x08); @@ -90,7 +90,7 @@ db(0x00); db(0x00); db(0x00); db(0x0e); db(0x52); db(0x40); db(0x0c); db(0x40); db(0x00); db(0x8c); db(0x66); db(0xf2); db(0x20); db(0x0a); db(0xe4); db(0x88); db(0x21); db(0x40); db(0x00); db(0x36); db(0x22); db(0x48); db(0x41); db(0xfa); - db(0x13); db(0x6f); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x20); db(0x6b); + db(0x13); db(0x83); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x20); db(0x6b); db(0x01); db(0x98); db(0x41); db(0xe8); db(0x00); db(0x12); db(0x4e); db(0xae); db(0xff); db(0x10); db(0x4c); db(0xdf); db(0x4f); db(0x03); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x7f); db(0x7e); db(0x2c); db(0x78); db(0x00); db(0x04); @@ -127,13 +127,13 @@ db(0x60); db(0xf4); db(0x48); db(0xe7); db(0x40); db(0xe2); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x41); db(0xee); db(0x01); db(0x50); db(0x20); db(0x50); db(0x4a); db(0x90); db(0x67); db(0x1a); db(0x22); db(0x68); db(0x00); db(0x0a); - db(0x45); db(0xfa); db(0x12); db(0xc1); db(0x10); db(0x19); db(0x12); db(0x1a); + db(0x45); db(0xfa); db(0x12); db(0xd5); db(0x10); db(0x19); db(0x12); db(0x1a); db(0xb0); db(0x01); db(0x66); db(0x06); db(0x4a); db(0x00); db(0x67); db(0x42); db(0x60); db(0xf2); db(0x20); db(0x50); db(0x60); db(0xe2); db(0x70); db(0x20); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x24); db(0x40); db(0x15); db(0x7c); db(0x00); db(0x08); - db(0x00); db(0x08); db(0x41); db(0xfa); db(0x12); db(0x97); db(0x25); db(0x48); - db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x12); db(0x13); db(0x25); db(0x48); + db(0x00); db(0x08); db(0x41); db(0xfa); db(0x12); db(0xab); db(0x25); db(0x48); + db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x12); db(0x27); db(0x25); db(0x48); db(0x00); db(0x0e); db(0x41); db(0xea); db(0x00); db(0x12); db(0x20); db(0x88); db(0x58); db(0x90); db(0x21); db(0x48); db(0x00); db(0x08); db(0x41); db(0xee); db(0x01); db(0x50); db(0x22); db(0x4a); db(0x4e); db(0xae); db(0xff); db(0x0a); @@ -285,16 +285,16 @@ db(0x67); db(0x3a); db(0x20); db(0x52); db(0x24); db(0x40); db(0x22); db(0x4a); db(0x12); db(0xd8); db(0x66); db(0xfc); db(0x13); db(0x7c); db(0x00); db(0x3a); db(0xff); db(0xff); db(0x42); db(0x11); db(0x2c); db(0x78); db(0x00); db(0x04); - db(0x43); db(0xfa); db(0x0d); db(0x90); db(0x70); db(0x00); db(0x4e); db(0xae); + db(0x43); db(0xfa); db(0x0d); db(0xa4); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x2c); db(0x40); db(0x22); db(0x0a); db(0x4e); db(0xae); db(0xff); db(0x52); db(0x22); db(0x4e); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x22); db(0x4a); db(0x20); db(0x02); db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x3f); db(0x3e); db(0x2c); db(0x01); db(0x7e); db(0x06); - db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x0d); db(0x8b); + db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x0d); db(0x9f); db(0x70); db(0x24); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80); db(0x66); db(0x0e); db(0x08); db(0x87); db(0x00); db(0x02); db(0x43); db(0xfa); - db(0x0d); db(0x79); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); + db(0x0d); db(0x8d); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x28); db(0x40); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x20); db(0x40); db(0x4a); db(0x80); db(0x67); db(0x2c); @@ -307,16 +307,16 @@ db(0xfe); db(0x62); db(0x4c); db(0xdf); db(0x7c); db(0xfc); db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x20); db(0x40); db(0x4b); db(0xe8); db(0x00); db(0x5c); - db(0x43); db(0xfa); db(0x0c); db(0xe0); db(0x70); db(0x00); db(0x4e); db(0xae); + db(0x43); db(0xfa); db(0x0c); db(0xf4); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x24); db(0x40); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0xb9); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x26); db(0x40); db(0x7c); db(0x00); db(0x26); db(0x86); db(0x27); db(0x46); db(0x00); db(0x04); db(0x27); db(0x46); db(0x00); db(0x08); db(0x27); db(0x4a); db(0x00); db(0xa0); db(0x50); db(0xeb); db(0x00); db(0x9e); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda); - db(0x27); db(0x40); db(0x00); db(0xb0); db(0x41); db(0xfa); db(0x0b); db(0xdc); + db(0x27); db(0x40); db(0x00); db(0xb0); db(0x41); db(0xfa); db(0x0b); db(0xf0); db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0x02); db(0x84); - db(0x27); db(0x40); db(0x00); db(0xa4); db(0x41); db(0xfa); db(0x0b); db(0xd9); + db(0x27); db(0x40); db(0x00); db(0xa4); db(0x41); db(0xfa); db(0x0b); db(0xed); db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0x02); db(0x74); db(0x27); db(0x40); db(0x00); db(0xa8); db(0x7a); db(0x00); db(0x20); db(0x4d); db(0x4e); db(0xae); db(0xfe); db(0x80); db(0x20); db(0x4d); db(0x4e); db(0xae); @@ -415,7 +415,7 @@ db(0x25); db(0x4b); db(0x00); db(0x36); db(0x22); db(0x4a); db(0x24); db(0x43); db(0x97); db(0xcb); db(0x24); db(0x09); db(0x4e); db(0xae); db(0xfe); db(0xe6); db(0x20); db(0x02); db(0x4c); db(0xdf); db(0x4c); db(0x1c); db(0x4e); db(0x75); - db(0x41); db(0xfa); db(0x09); db(0x34); db(0x43); db(0xfa); db(0x01); db(0x5c); + db(0x41); db(0xfa); db(0x09); db(0x48); db(0x43); db(0xfa); db(0x01); db(0x5c); db(0x70); db(0x13); db(0x61); db(0x00); db(0xff); db(0x98); db(0x4e); db(0x75); db(0x22); db(0x6d); db(0x02); db(0x0c); db(0x33); db(0x7c); db(0x00); db(0x0a); db(0x00); db(0x1c); db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e); @@ -470,7 +470,7 @@ db(0x00); db(0x08); db(0x27); db(0x46); db(0x00); db(0x0c); db(0x70); db(0xff); db(0x37); db(0x40); db(0x00); db(0x00); db(0x43); db(0xed); db(0x00); db(0x00); db(0x13); db(0x7c); db(0x00); db(0x02); db(0x00); db(0x08); db(0x13); db(0x7c); - db(0x00); db(0x05); db(0x00); db(0x09); db(0x41); db(0xfa); db(0x07); db(0x78); + db(0x00); db(0x05); db(0x00); db(0x09); db(0x41); db(0xfa); db(0x07); db(0x8c); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x02); db(0xda); db(0x23); db(0x48); db(0x00); db(0x12); db(0x23); db(0x4d); db(0x00); db(0x0e); db(0x70); db(0x05); db(0x4e); db(0xae); db(0xff); db(0x58); db(0x20); db(0x06); @@ -478,25 +478,25 @@ db(0x00); db(0x1c); db(0x6a); db(0x06); db(0x70); db(0x0a); db(0x27); db(0x40); db(0x00); db(0x1c); db(0x4a); db(0xab); db(0x00); db(0x14); db(0x66); db(0x16); db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xe0); db(0x43); db(0xfa); - db(0x07); db(0x96); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); + db(0x07); db(0xaa); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x27); db(0x40); db(0x00); db(0x14); db(0x67); db(0xd0); db(0x4a); db(0xab); db(0x00); db(0x18); db(0x66); db(0x18); db(0x4a); db(0xab); db(0x00); db(0x1c); - db(0x66); db(0xc4); db(0x43); db(0xfa); db(0x07); db(0x8c); db(0x70); db(0x00); + db(0x66); db(0xc4); db(0x43); db(0xfa); db(0x07); db(0xa0); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x27); db(0x40); db(0x00); db(0x18); db(0x67); db(0x00); db(0xff); db(0xb4); db(0x4a); db(0xad); db(0x02); db(0x08); db(0x66); db(0x38); db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xa6); db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e); - db(0x43); db(0xfa); db(0x06); db(0x80); db(0x4e); db(0xae); db(0xfe); db(0xec); + db(0x43); db(0xfa); db(0x06); db(0x94); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82); - db(0x67); db(0x8c); db(0x41); db(0xfa); db(0x06); db(0x6e); db(0x70); db(0x00); + db(0x67); db(0x8c); db(0x41); db(0xfa); db(0x06); db(0x82); db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0xfd); db(0x16); db(0x2b); db(0x40); db(0x02); db(0x08); db(0x67); db(0x00); db(0x02); db(0x42); db(0x60); db(0x00); db(0xff); db(0x76); db(0x4a); db(0xad); db(0x02); db(0x0c); db(0x66); db(0x48); db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0x00); db(0xff); db(0x68); db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e); - db(0x43); db(0xfa); db(0x06); db(0x4d); db(0x4e); db(0xae); db(0xfe); db(0xec); + db(0x43); db(0xfa); db(0x06); db(0x61); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82); - db(0x67); db(0x00); db(0xff); db(0x4c); db(0x41); db(0xfa); db(0x06); db(0x39); + db(0x67); db(0x00); db(0xff); db(0x4c); db(0x41); db(0xfa); db(0x06); db(0x4d); db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0xfc); db(0xd4); db(0x2b); db(0x40); db(0x02); db(0x0c); db(0x67); db(0x00); db(0x02); db(0x00); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x00); db(0x61); db(0x00); @@ -572,7 +572,7 @@ db(0x33); db(0x7c); db(0x00); db(0x32); db(0x00); db(0x46); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x02); db(0x61); db(0x00); db(0xf9); db(0xea); db(0x4e); db(0x90); db(0x41); db(0xf9); db(0x00); db(0xdf); db(0xf0); db(0x00); - db(0x70); db(0x00); db(0x4e); db(0x75); db(0x41); db(0xfa); db(0x04); db(0x32); + db(0x70); db(0x00); db(0x4e); db(0x75); db(0x41); db(0xfa); db(0x04); db(0x46); db(0x43); db(0xfa); db(0x00); db(0x0a); db(0x70); db(0xf6); db(0x61); db(0x00); db(0xfa); db(0xac); db(0x4e); db(0x75); db(0x9b); db(0xcd); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0x88); @@ -584,9 +584,9 @@ db(0x20); db(0x0d); db(0x4e); db(0x90); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x7a); db(0x43); db(0xfa); - db(0x04); db(0x3a); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00); + db(0x04); db(0x4e); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82); db(0x67); db(0xdc); - db(0x42); db(0xad); db(0x00); db(0x08); db(0x41); db(0xfa); db(0x03); db(0xc2); + db(0x42); db(0xad); db(0x00); db(0x08); db(0x41); db(0xfa); db(0x03); db(0xd6); db(0x43); db(0xfa); db(0x01); db(0x0a); db(0x70); db(0xf6); db(0x22); db(0x3c); db(0x00); db(0x00); db(0x27); db(0x10); db(0x61); db(0x00); db(0xee); db(0xa0); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x30); db(0x3c); db(0xff); db(0x38); @@ -596,7 +596,7 @@ db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x22); db(0x4d); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0x88); db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x38); db(0x3e); - db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x41); db(0xfa); db(0x03); db(0x58); + db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x41); db(0xfa); db(0x03); db(0x6c); db(0x22); db(0x08); db(0x24); db(0x3c); db(0x00); db(0x00); db(0x03); db(0xed); db(0x4e); db(0xae); db(0xff); db(0xe2); db(0x28); db(0x00); db(0x67); db(0x4c); db(0x45); db(0xed); db(0x00); db(0x68); db(0x42); db(0x92); db(0x34); db(0xaa); @@ -611,11 +611,11 @@ db(0xf8); db(0xc0); db(0x4e); db(0x90); db(0x22); db(0x04); db(0x67); db(0x04); db(0x4e); db(0xae); db(0xff); db(0xdc); db(0x4c); db(0xdf); db(0x7c); db(0x1c); db(0x4e); db(0x75); db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x41); db(0xfa); - db(0x02); db(0xd0); db(0x22); db(0x08); db(0x74); db(0xfe); db(0x4e); db(0xae); + db(0x02); db(0xe4); db(0x22); db(0x08); db(0x74); db(0xfe); db(0x4e); db(0xae); db(0xff); db(0xac); db(0x22); db(0x00); db(0x67); db(0x34); db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x45); db(0xed); db(0x00); db(0x38); db(0x70); db(0xff); db(0x4e); db(0xae); db(0xfe); db(0xb6); - db(0x15); db(0x40); db(0x00); db(0x14); db(0x41); db(0xfa); db(0x02); db(0xc0); + db(0x15); db(0x40); db(0x00); db(0x14); db(0x41); db(0xfa); db(0x02); db(0xd4); db(0x24); db(0x88); db(0x25); db(0x7c); db(0x00); db(0x00); db(0x00); db(0x12); db(0x00); db(0x0c); db(0x25); db(0x6d); db(0x00); db(0x08); db(0x00); db(0x10); db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x22); db(0x0a); db(0x4e); db(0xae); @@ -625,14 +625,14 @@ db(0xf8); db(0x50); db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0xf4); db(0x2a); db(0x40); db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x2b); db(0x40); - db(0x00); db(0x08); db(0x43); db(0xfa); db(0x02); db(0xee); db(0x70); db(0x00); + db(0x00); db(0x08); db(0x43); db(0xfa); db(0x03); db(0x02); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x2b); db(0x40); db(0x00); db(0x18); db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0xd0); db(0x2c); db(0x40); db(0x72); db(0x32); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x41); db(0xfa); - db(0x02); db(0x24); db(0x22); db(0x08); db(0x74); db(0xfe); db(0x4e); db(0xae); + db(0x02); db(0x38); db(0x22); db(0x08); db(0x74); db(0xfe); db(0x4e); db(0xae); db(0xff); db(0xac); db(0x4a); db(0x80); db(0x67); db(0xea); db(0x22); db(0x00); db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x72); db(0x32); db(0x4e); db(0xae); - db(0xff); db(0x3a); db(0x41); db(0xfa); db(0x02); db(0x0e); db(0x22); db(0x08); + db(0xff); db(0x3a); db(0x41); db(0xfa); db(0x02); db(0x22); db(0x22); db(0x08); db(0x74); db(0xfe); db(0x4e); db(0xae); db(0xff); db(0xac); db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0x9a); db(0x22); db(0x00); db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x61); db(0x00); @@ -640,95 +640,97 @@ db(0x61); db(0x00); db(0xf8); db(0x40); db(0x28); db(0x40); db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0x7a); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x72); db(0x00); - db(0x20); db(0x2d); db(0x00); db(0x0c); db(0x41); db(0xfa); db(0x01); db(0xe7); + db(0x20); db(0x2d); db(0x00); db(0x0c); db(0x41); db(0xfa); db(0x01); db(0xfb); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x44); db(0x4a); db(0x80); - db(0x66); db(0xe2); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0f); - db(0x61); db(0x00); db(0xf7); db(0xa6); db(0x4e); db(0x90); db(0x61); db(0x00); - db(0xfe); db(0xf2); db(0x41); db(0xed); db(0x00); db(0x1c); db(0x29); db(0x48); - db(0x00); db(0x28); db(0x70); db(0x01); db(0x29); db(0x40); db(0x00); db(0x24); - db(0x39); db(0x7c); db(0x00); db(0x0c); db(0x00); db(0x1c); db(0x2b); db(0x4d); - db(0x00); db(0x2c); db(0x41); db(0xfa); db(0x01); db(0x4a); db(0x2b); db(0x48); - db(0x00); db(0x24); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); - db(0x70); db(0x00); db(0x74); db(0x00); db(0x14); db(0x2d); db(0x00); db(0x4c); - db(0x05); db(0xc0); db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae); - db(0xfe); db(0xc2); db(0x05); db(0x00); db(0x67); db(0x06); db(0x61); db(0x00); - db(0xfe); db(0x3c); db(0x60); db(0xe4); db(0x20); db(0x2d); db(0x00); db(0x00); - db(0x67); db(0x00); db(0x00); db(0x72); db(0x72); db(0x01); db(0x4e); db(0xae); - db(0xff); db(0x3a); db(0x2b); db(0x40); db(0x00); db(0x04); db(0x30); db(0x3c); - db(0xff); db(0x38); db(0x72); db(0x0c); db(0x61); db(0x00); db(0xf7); db(0x42); - db(0x4e); db(0x90); db(0x4a); db(0xad); db(0x00); db(0x04); db(0x67); db(0x3a); - db(0x39); db(0x7c); db(0x00); db(0x03); db(0x00); db(0x1c); db(0x42); db(0x2c); - db(0x00); db(0x1f); db(0x42); db(0xac); db(0x00); db(0x20); db(0x29); db(0x6d); - db(0x00); db(0x00); db(0x00); db(0x24); db(0x29); db(0x6d); db(0x00); db(0x04); - db(0x00); db(0x28); db(0x42); db(0xac); db(0x00); db(0x2c); db(0x42); db(0xac); - db(0x00); db(0x30); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); - db(0x2b); db(0x6c); db(0x00); db(0x30); db(0x00); db(0x10); db(0x39); db(0x7c); - db(0x00); db(0x04); db(0x00); db(0x1c); db(0x22); db(0x4c); db(0x4e); db(0xae); - db(0xfe); db(0x38); db(0x20); db(0x2d); db(0x00); db(0x00); db(0x42); db(0xad); - db(0x00); db(0x00); db(0x22); db(0x2d); db(0x00); db(0x04); db(0x67); db(0x00); - db(0xff); db(0x78); db(0x22); db(0x41); db(0x4e); db(0xae); db(0xff); db(0x2e); - db(0x60); db(0x00); db(0xff); db(0x6e); db(0x39); db(0x7c); db(0x00); db(0x02); - db(0x00); db(0x1c); db(0x41); db(0xed); db(0x00); db(0x30); db(0x42); db(0x90); - db(0x42); db(0xa8); db(0x00); db(0x04); db(0x42); db(0x2c); db(0x00); db(0x1f); - db(0x42); db(0xac); db(0x00); db(0x2c); db(0x42); db(0xac); db(0x00); db(0x30); - db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x08); db(0x29); db(0x40); + db(0x66); db(0xe2); db(0x20); db(0x6c); db(0x00); db(0x14); db(0x0c); db(0x68); + db(0x00); db(0x25); db(0x00); db(0x14); db(0x64); db(0x08); db(0x70); db(0x00); + db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x60); db(0xf8); db(0x30); db(0x3c); + db(0xff); db(0x38); db(0x72); db(0x0f); db(0x61); db(0x00); db(0xf7); db(0x92); + db(0x4e); db(0x90); db(0x61); db(0x00); db(0xfe); db(0xde); db(0x41); db(0xed); + db(0x00); db(0x1c); db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x01); + db(0x29); db(0x40); db(0x00); db(0x24); db(0x39); db(0x7c); db(0x00); db(0x0c); + db(0x00); db(0x1c); db(0x2b); db(0x4d); db(0x00); db(0x2c); db(0x41); db(0xfa); + db(0x01); db(0x4a); db(0x2b); db(0x48); db(0x00); db(0x24); db(0x22); db(0x4c); + db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x70); db(0x00); db(0x74); db(0x00); + db(0x14); db(0x2d); db(0x00); db(0x4c); db(0x05); db(0xc0); db(0x08); db(0xc0); + db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x05); db(0x00); + db(0x67); db(0x06); db(0x61); db(0x00); db(0xfe); db(0x28); db(0x60); db(0xe4); + db(0x20); db(0x2d); db(0x00); db(0x00); db(0x67); db(0x00); db(0x00); db(0x72); + db(0x72); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x2b); db(0x40); + db(0x00); db(0x04); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0c); + db(0x61); db(0x00); db(0xf7); db(0x2e); db(0x4e); db(0x90); db(0x4a); db(0xad); + db(0x00); db(0x04); db(0x67); db(0x3a); db(0x39); db(0x7c); db(0x00); db(0x03); + db(0x00); db(0x1c); db(0x42); db(0x2c); db(0x00); db(0x1f); db(0x42); db(0xac); + db(0x00); db(0x20); db(0x29); db(0x6d); db(0x00); db(0x00); db(0x00); db(0x24); + db(0x29); db(0x6d); db(0x00); db(0x04); db(0x00); db(0x28); db(0x42); db(0xac); + db(0x00); db(0x2c); db(0x42); db(0xac); db(0x00); db(0x30); db(0x22); db(0x4c); + db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x2b); db(0x6c); db(0x00); db(0x30); + db(0x00); db(0x10); db(0x39); db(0x7c); db(0x00); db(0x04); db(0x00); db(0x1c); + db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x20); db(0x2d); + db(0x00); db(0x00); db(0x42); db(0xad); db(0x00); db(0x00); db(0x22); db(0x2d); + db(0x00); db(0x04); db(0x67); db(0x00); db(0xff); db(0x78); db(0x22); db(0x41); + db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x60); db(0x00); db(0xff); db(0x6e); + db(0x39); db(0x7c); db(0x00); db(0x02); db(0x00); db(0x1c); db(0x41); db(0xed); + db(0x00); db(0x30); db(0x42); db(0x90); db(0x42); db(0xa8); db(0x00); db(0x04); + db(0x42); db(0x2c); db(0x00); db(0x1f); db(0x42); db(0xac); db(0x00); db(0x2c); + db(0x42); db(0xac); db(0x00); db(0x30); db(0x29); db(0x48); db(0x00); db(0x28); + db(0x70); db(0x08); db(0x29); db(0x40); db(0x00); db(0x24); db(0x22); db(0x4c); + db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x0c); db(0xad); db(0x46); db(0x4f); + db(0x52); db(0x4d); db(0x00); db(0x30); db(0x66); db(0x52); db(0x20); db(0x2d); + db(0x00); db(0x34); db(0x67); db(0x4c); db(0x6b); db(0x4a); db(0x2b); db(0x6c); + db(0x00); db(0x30); db(0x00); db(0x10); db(0x50); db(0x80); db(0x24); db(0x00); + db(0x72); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80); + db(0x67); db(0x36); db(0x24); db(0x40); db(0x20); db(0x4a); db(0x20); db(0xed); + db(0x00); db(0x30); db(0x20); db(0xed); db(0x00); db(0x34); db(0x29); db(0x48); + db(0x00); db(0x28); db(0x20); db(0x02); db(0x51); db(0x80); db(0x29); db(0x40); db(0x00); db(0x24); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); - db(0x0c); db(0xad); db(0x46); db(0x4f); db(0x52); db(0x4d); db(0x00); db(0x30); - db(0x66); db(0x52); db(0x20); db(0x2d); db(0x00); db(0x34); db(0x67); db(0x4c); - db(0x6b); db(0x4a); db(0x2b); db(0x6c); db(0x00); db(0x30); db(0x00); db(0x10); - db(0x50); db(0x80); db(0x24); db(0x00); db(0x72); db(0x01); db(0x4e); db(0xae); - db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x36); db(0x24); db(0x40); - db(0x20); db(0x4a); db(0x20); db(0xed); db(0x00); db(0x30); db(0x20); db(0xed); - db(0x00); db(0x34); db(0x29); db(0x48); db(0x00); db(0x28); db(0x20); db(0x02); - db(0x51); db(0x80); db(0x29); db(0x40); db(0x00); db(0x24); db(0x22); db(0x4c); - db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x30); db(0x3c); db(0xff); db(0x38); - db(0x72); db(0x0b); db(0x61); db(0x00); db(0xf6); db(0x6c); db(0x20); db(0x2c); - db(0x00); db(0x20); db(0x4e); db(0x90); db(0x22); db(0x4a); db(0x20); db(0x02); - db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x4a); db(0xac); db(0x00); db(0x20); - db(0x67); db(0x00); db(0xfe); db(0xde); db(0x41); db(0xed); db(0x00); db(0x30); - db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x01); db(0x29); db(0x40); - db(0x00); db(0x24); db(0x42); db(0xac); db(0x00); db(0x20); db(0x22); db(0x4c); - db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x60); db(0xde); db(0x41); db(0xe8); - db(0xff); db(0xe4); db(0x20); db(0x29); db(0x00); db(0x08); db(0xb0); db(0xa8); - db(0x00); db(0x10); db(0x67); db(0x1a); db(0x21); db(0x40); db(0x00); db(0x10); - db(0x2f); db(0x0e); db(0x2c); db(0x68); db(0x00); db(0x14); db(0x22); db(0x68); - db(0x00); db(0x08); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d); - db(0x4e); db(0xae); db(0xfe); db(0xbc); db(0x2c); db(0x5f); db(0x70); db(0x00); - db(0x4e); db(0x75); db(0x69); db(0x6e); db(0x70); db(0x75); db(0x74); db(0x2e); - db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x74); - db(0x69); db(0x6d); db(0x65); db(0x72); db(0x2e); db(0x64); db(0x65); db(0x76); - db(0x69); db(0x63); db(0x65); db(0x00); db(0x44); db(0x45); db(0x56); db(0x53); - db(0x3a); db(0x00); db(0x44); db(0x45); db(0x56); db(0x53); db(0x3a); db(0x63); - db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64); + db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0b); db(0x61); db(0x00); + db(0xf6); db(0x58); db(0x20); db(0x2c); db(0x00); db(0x20); db(0x4e); db(0x90); + db(0x22); db(0x4a); db(0x20); db(0x02); db(0x4e); db(0xae); db(0xff); db(0x2e); + db(0x4a); db(0xac); db(0x00); db(0x20); db(0x67); db(0x00); db(0xfe); db(0xde); + db(0x41); db(0xed); db(0x00); db(0x30); db(0x29); db(0x48); db(0x00); db(0x28); + db(0x70); db(0x01); db(0x29); db(0x40); db(0x00); db(0x24); db(0x42); db(0xac); + db(0x00); db(0x20); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); + db(0x60); db(0xde); db(0x41); db(0xe8); db(0xff); db(0xe4); db(0x20); db(0x29); + db(0x00); db(0x08); db(0xb0); db(0xa8); db(0x00); db(0x10); db(0x67); db(0x1a); + db(0x21); db(0x40); db(0x00); db(0x10); db(0x2f); db(0x0e); db(0x2c); db(0x68); + db(0x00); db(0x14); db(0x22); db(0x68); db(0x00); db(0x08); db(0x70); db(0x00); + db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xbc); + db(0x2c); db(0x5f); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x69); db(0x6e); + db(0x70); db(0x75); db(0x74); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); + db(0x63); db(0x65); db(0x00); db(0x74); db(0x69); db(0x6d); db(0x65); db(0x72); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); - db(0x52); db(0x41); db(0x4d); db(0x3a); db(0x00); db(0x63); db(0x6c); db(0x69); - db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64); db(0x2e); db(0x64); - db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x52); db(0x41); - db(0x4d); db(0x3a); db(0x45); db(0x6e); db(0x76); db(0x2f); db(0x53); db(0x79); - db(0x73); db(0x2f); db(0x50); db(0x6f); db(0x69); db(0x6e); db(0x74); db(0x65); - db(0x72); db(0x2e); db(0x70); db(0x72); db(0x65); db(0x66); db(0x73); db(0x00); - db(0x55); db(0x41); db(0x45); db(0x20); db(0x63); db(0x6c); db(0x69); db(0x70); - db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64); db(0x20); db(0x73); db(0x68); - db(0x61); db(0x72); db(0x69); db(0x6e); db(0x67); db(0x00); db(0x55); db(0x41); - db(0x45); db(0x20); db(0x6d); db(0x6f); db(0x75); db(0x73); db(0x65); db(0x20); - db(0x64); db(0x72); db(0x69); db(0x76); db(0x65); db(0x72); db(0x00); db(0x55); - db(0x41); db(0x45); db(0x20); db(0x66); db(0x69); db(0x6c); db(0x65); db(0x73); - db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d); db(0x00); db(0x55); db(0x41); - db(0x45); db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74); - db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x65); db(0x72); - db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); db(0x20); - db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e); - db(0x74); db(0x20); db(0x70); db(0x72); db(0x6f); db(0x63); db(0x65); db(0x73); - db(0x73); db(0x00); db(0x64); db(0x6f); db(0x73); db(0x2e); db(0x6c); db(0x69); - db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x69); db(0x6e); - db(0x74); db(0x75); db(0x69); db(0x74); db(0x69); db(0x6f); db(0x6e); db(0x2e); - db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); - db(0x67); db(0x72); db(0x61); db(0x70); db(0x68); db(0x69); db(0x63); db(0x73); - db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); - db(0x00); db(0x65); db(0x78); db(0x70); db(0x61); db(0x6e); db(0x73); db(0x69); - db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); - db(0x72); db(0x79); db(0x00); db(0x46); db(0x69); db(0x6c); db(0x65); db(0x53); - db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d); db(0x2e); db(0x72); db(0x65); - db(0x73); db(0x6f); db(0x75); db(0x72); db(0x63); db(0x65); db(0x00); db(0x00); - db(0x00); db(0x00); db(0x03); db(0xf2); + db(0x44); db(0x45); db(0x56); db(0x53); db(0x3a); db(0x00); db(0x44); db(0x45); + db(0x56); db(0x53); db(0x3a); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); + db(0x6f); db(0x61); db(0x72); db(0x64); db(0x2e); db(0x64); db(0x65); db(0x76); + db(0x69); db(0x63); db(0x65); db(0x00); db(0x52); db(0x41); db(0x4d); db(0x3a); + db(0x00); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); + db(0x72); db(0x64); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); + db(0x65); db(0x00); db(0x52); db(0x41); db(0x4d); db(0x3a); db(0x45); db(0x6e); + db(0x76); db(0x2f); db(0x53); db(0x79); db(0x73); db(0x2f); db(0x50); db(0x6f); + db(0x69); db(0x6e); db(0x74); db(0x65); db(0x72); db(0x2e); db(0x70); db(0x72); + db(0x65); db(0x66); db(0x73); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); + db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); + db(0x64); db(0x20); db(0x73); db(0x68); db(0x61); db(0x72); db(0x69); db(0x6e); + db(0x67); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x6d); db(0x6f); + db(0x75); db(0x73); db(0x65); db(0x20); db(0x64); db(0x72); db(0x69); db(0x76); + db(0x65); db(0x72); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); + db(0x69); db(0x6c); db(0x65); db(0x73); db(0x79); db(0x73); db(0x74); db(0x65); + db(0x6d); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); + db(0x20); db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75); + db(0x6e); db(0x74); db(0x65); db(0x72); db(0x00); db(0x55); db(0x41); db(0x45); + db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74); db(0x6f); + db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x20); db(0x70); db(0x72); + db(0x6f); db(0x63); db(0x65); db(0x73); db(0x73); db(0x00); db(0x64); db(0x6f); + db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); + db(0x79); db(0x00); db(0x69); db(0x6e); db(0x74); db(0x75); db(0x69); db(0x74); + db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); + db(0x61); db(0x72); db(0x79); db(0x00); db(0x67); db(0x72); db(0x61); db(0x70); + db(0x68); db(0x69); db(0x63); db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62); + db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x65); db(0x78); db(0x70); + db(0x61); db(0x6e); db(0x73); db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c); + db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x46); + db(0x69); db(0x6c); db(0x65); db(0x53); db(0x79); db(0x73); db(0x74); db(0x65); + db(0x6d); db(0x2e); db(0x72); db(0x65); db(0x73); db(0x6f); db(0x75); db(0x72); + db(0x63); db(0x65); db(0x00); db(0x00); db(0x00); db(0x00); db(0x03); db(0xf2); diff --git a/include/options.h b/include/options.h index 4c99af7e..3dc0257e 100644 --- a/include/options.h +++ b/include/options.h @@ -369,10 +369,22 @@ struct uae_prefs { /* Contains the filename of .uaerc */ extern TCHAR optionsfile[]; extern void save_options (struct zfile *, struct uae_prefs *, int); -extern void cfgfile_write (struct zfile *, TCHAR *format,...); -extern void cfgfile_dwrite (struct zfile *, TCHAR *format,...); -extern void cfgfile_target_write (struct zfile *, TCHAR *format,...); -extern void cfgfile_target_dwrite (struct zfile *, TCHAR *format,...); + +extern void cfgfile_write (struct zfile *, TCHAR *option, TCHAR *format,...); +extern void cfgfile_dwrite (struct zfile *, TCHAR *option, TCHAR *format,...); +extern void cfgfile_target_write (struct zfile *, TCHAR *option, TCHAR *format,...); +extern void cfgfile_target_dwrite (struct zfile *, TCHAR *option, TCHAR *format,...); + +extern void cfgfile_write_bool (struct zfile *f, TCHAR *option, int b); +extern void cfgfile_dwrite_bool (struct zfile *f, TCHAR *option, int b); +extern void cfgfile_target_write_bool (struct zfile *f, TCHAR *option, int b); +extern void cfgfile_target_dwrite_bool (struct zfile *f, TCHAR *option, int b); + +extern void cfgfile_write_str (struct zfile *f, TCHAR *option, const TCHAR *value); +extern void cfgfile_dwrite_str (struct zfile *f, TCHAR *option, const TCHAR *value); +extern void cfgfile_target_write_str (struct zfile *f, TCHAR *option, const TCHAR *value); +extern void cfgfile_target_dwrite_str (struct zfile *f, TCHAR *option, const TCHAR *value); + extern void cfgfile_backup (const TCHAR *path); extern struct uaedev_config_info *add_filesys_config (struct uae_prefs *p, int index, TCHAR *devname, TCHAR *volname, TCHAR *rootdir, int readonly, diff --git a/include/sysdeps.h b/include/sysdeps.h index 8f2aef06..65ce6e7c 100644 --- a/include/sysdeps.h +++ b/include/sysdeps.h @@ -238,6 +238,8 @@ extern char *ua_copy (char *dst, int maxlen, const TCHAR *src); extern TCHAR *au_copy (TCHAR *dst, int maxlen, const char *src); extern char *uacp_copy (char *dst, int maxlen, const TCHAR *src, unsigned int cp); extern TCHAR *aucp_copy (TCHAR *dst, int maxlen, const char *src, unsigned int cp); +extern char *uutf8 (const TCHAR *s); +extern TCHAR *utf8u (const char *s); extern void *xmalloc (size_t); extern void *xcalloc (size_t, size_t); @@ -350,13 +352,12 @@ struct direct /* These are prototypes for functions from the Win32 posixemu file */ extern void get_time (time_t t, long* days, long* mins, long* ticks); extern time_t put_time (long days, long mins, long ticks); -extern DWORD getattr (const TCHAR *name, LPFILETIME lpft, size_t *size); /* #define DONT_HAVE_POSIX - don't need all of Mathias' posixemu_functions, just a subset (below) */ #define chmod(a,b) posixemu_chmod ((a), (b)) extern int posixemu_chmod (const TCHAR *, int); #define stat(a,b) posixemu_stat ((a), (b)) -extern int posixemu_stat (const TCHAR *, struct stat *); +extern int posixemu_stat (const TCHAR *, struct _stat64 *); #define mkdir(x,y) mkdir(x) #define truncate posixemu_truncate extern int posixemu_truncate (const TCHAR *, long int); diff --git a/inputdevice.c b/inputdevice.c index 50c6a5f7..24f36b04 100644 --- a/inputdevice.c +++ b/inputdevice.c @@ -436,12 +436,14 @@ static void copyjport (const struct uae_prefs *src, struct uae_prefs *dst, int n static void out_config (struct zfile *f, int id, int num, TCHAR *s1, TCHAR *s2) { - cfgfile_write (f, L"input.%d.%s%d=%s\n", id, s1, num, s2); + TCHAR tmp[MAX_DPATH]; + _stprintf (tmp, L"input.%d.%s%d", id, s1, num); + cfgfile_write_str (f, tmp, s2); } static void write_config2 (struct zfile *f, int idnum, int i, int offset, TCHAR *tmp1, struct uae_input_device *id) { - TCHAR tmp2[200], *p; + TCHAR tmp2[200], tmp3[200], *p; int evt, got, j, k; TCHAR *custom; @@ -470,41 +472,53 @@ static void write_config2 (struct zfile *f, int idnum, int i, int offset, TCHAR _stprintf (p, L"%s.%d", events[evt].confname, id->flags[i + offset][j]); p += _tcslen (p); } - if (p > tmp2) - cfgfile_write (f, L"input.%d.%s%d=%s\n", idnum, tmp1, i, tmp2); + if (p > tmp2) { + _stprintf (tmp3, L"input.%d.%s%d", idnum, tmp1, i); + cfgfile_write_str (f, tmp3, tmp2); + } } static struct inputdevice_functions *getidf (int devnum); static void write_config (struct zfile *f, int idnum, int devnum, TCHAR *name, struct uae_input_device *id, struct uae_input_device2 *id2, struct inputdevice_functions *idf) { - TCHAR tmp1[MAX_DPATH], *s; + TCHAR tmp1[MAX_DPATH], tmp2[MAX_DPATH], *s; int i; if (!isdevice (id)) { - cfgfile_write (f, L"input.%d.%s.%d.empty=true\n", idnum, name, devnum); - if (id->enabled) - cfgfile_write (f, L"input.%d.%s.%d.disabled=%d\n", idnum, name, devnum, id->enabled ? 0 : 1); + _stprintf (tmp2, L"input.%d.%s.%d.empty", idnum, name, devnum); + cfgfile_write_bool (f, tmp2, 1); + if (id->enabled) { + _stprintf (tmp2, L"input.%d.%s.%d.disabled", idnum, name, devnum); + cfgfile_write (f, tmp2, L"%d", id->enabled ? 0 : 1); + } return; } - cfgfile_write (f, L"input.%d.%s.%d.empty=false\n", idnum, name, devnum); - cfgfile_write (f, L"input.%d.%s.%d.disabled=%d\n", idnum, name, devnum, id->enabled ? 0 : 1); + + _stprintf (tmp2, L"input.%d.%s.%d.empty", idnum, name, devnum); + cfgfile_write_bool (f, tmp2, 0); + _stprintf (tmp2, L"input.%d.%s.%d.disabled", idnum, name, devnum); + cfgfile_write (f, tmp2, L"%d", id->enabled ? 0 : 1); s = NULL; if (id->name) s = id->name; else if (devnum < idf->get_num ()) s = idf->get_friendlyname (devnum); - if (s) - cfgfile_write (f, L"input.%d.%s.%d.friendlyname=%s\n", idnum, name, devnum, s); + if (s) { + _stprintf (tmp2, L"input.%d.%s.%d.friendlyname", idnum, name, devnum); + cfgfile_write_str (f, tmp2, s); + } s = NULL; if (id->configname) s = id->configname; else if (devnum < idf->get_num ()) s = idf->get_uniquename (devnum); - if (s) - cfgfile_write (f, L"input.%d.%s.%d.name=%s\n", idnum, name, devnum, s); + if (s) { + _stprintf (tmp2, L"input.%d.%s.%d.name", idnum, name, devnum); + cfgfile_write_str (f, tmp2, s); + } _stprintf (tmp1, L"%s.%d.axis.", name, devnum); for (i = 0; i < ID_AXIS_TOTAL; i++) @@ -525,7 +539,7 @@ static void kbrlabel (TCHAR *s) static void write_kbr_config (struct zfile *f, int idnum, int devnum, struct uae_input_device *kbr, struct inputdevice_functions *idf) { - TCHAR tmp1[200], tmp2[200], tmp3[200], *p; + TCHAR tmp1[200], tmp2[200], tmp3[200], tmp4[200], *p; int i, j, k, evt, skip; if (!keyboard_default) @@ -580,7 +594,8 @@ static void write_kbr_config (struct zfile *f, int idnum, int devnum, struct uae _stprintf (tmp3, L"%d", kbr->extra[i][0]); kbrlabel (tmp3); _stprintf (tmp1, L"keyboard.%d.button.%s", devnum, tmp3); - cfgfile_write (f, L"input.%d.%s=%s\n", idnum, tmp1, tmp2[0] ? tmp2 : L"NULL"); + _stprintf (tmp4, L"input.%d.%s", idnum, tmp1); + cfgfile_write_str (f, tmp4, tmp2[0] ? tmp2 : L"NULL"); i++; } } @@ -589,15 +604,15 @@ void write_inputdevice_config (struct uae_prefs *p, struct zfile *f) { int i, id; - cfgfile_write (f, L"input.config=%d\n", p->input_selected_setting); - cfgfile_write (f, L"input.joymouse_speed_analog=%d\n", p->input_joymouse_multiplier); - cfgfile_write (f, L"input.joymouse_speed_digital=%d\n", p->input_joymouse_speed); - cfgfile_write (f, L"input.joymouse_deadzone=%d\n", p->input_joymouse_deadzone); - cfgfile_write (f, L"input.joystick_deadzone=%d\n", p->input_joystick_deadzone); - cfgfile_write (f, L"input.analog_joystick_multiplier=%d\n", p->input_analog_joystick_mult); - cfgfile_write (f, L"input.analog_joystick_offset=%d\n", p->input_analog_joystick_offset); - cfgfile_write (f, L"input.mouse_speed=%d\n", p->input_mouse_speed); - cfgfile_write (f, L"input.autofire=%d\n", p->input_autofire_framecnt); + cfgfile_write (f, L"input.config", L"%d", p->input_selected_setting); + cfgfile_write (f, L"input.joymouse_speed_analog", L"%d", p->input_joymouse_multiplier); + cfgfile_write (f, L"input.joymouse_speed_digital", L"%d", p->input_joymouse_speed); + cfgfile_write (f, L"input.joymouse_deadzone", L"%d", p->input_joymouse_deadzone); + cfgfile_write (f, L"input.joystick_deadzone", L"%d", p->input_joystick_deadzone); + cfgfile_write (f, L"input.analog_joystick_multiplier", L"%d", p->input_analog_joystick_mult); + cfgfile_write (f, L"input.analog_joystick_offset", L"%d", p->input_analog_joystick_offset); + cfgfile_write (f, L"input.mouse_speed", L"%d", p->input_mouse_speed); + cfgfile_write (f, L"input.autofire", L"%d", p->input_autofire_framecnt); for (id = 1; id <= MAX_INPUT_SETTINGS; id++) { for (i = 0; i < MAX_INPUT_DEVICES; i++) write_config (f, id, i, L"joystick", &p->joystick_settings[id][i], &joysticks2[i], &idev[IDTYPE_JOYSTICK]); diff --git a/memory.c b/memory.c index 630ae8dd..179dfb82 100644 --- a/memory.c +++ b/memory.c @@ -2770,9 +2770,10 @@ static int load_extendedkickstart (void) extendedkickmem_type = EXTENDED_ROM_CDTV; } else if (size > 300000) { extendedkickmem_type = EXTENDED_ROM_CD32; - } else { + } else if (need_uae_boot_rom () != 0xf00000) { extendedkickmem_type = EXTENDED_ROM_CDTV; - } + } else + return 0; zfile_fseek (f, off, SEEK_SET); switch (extendedkickmem_type) { diff --git a/moduleripper.c b/moduleripper.c index aa87ac1d..e487440f 100644 --- a/moduleripper.c +++ b/moduleripper.c @@ -82,34 +82,37 @@ void moduleripper (void) xfree (buf); } -FILE *moduleripper_fopen (const char *name, const char *mode) +FILE *moduleripper_fopen (const char *aname, const char *amode) { TCHAR tmp2[MAX_DPATH]; TCHAR tmp[MAX_DPATH]; - TCHAR *ufn, *umode; + TCHAR *name, *mode; FILE *f; fetch_ripperpath (tmp, sizeof tmp); - ufn = au (name); - umode = au (mode); - _stprintf (tmp2, L"%s%s", tmp, ufn); - f = _tfopen (tmp2, umode); - xfree (umode); - xfree (ufn); + name = au (aname); + mode = au (amode); + _stprintf (tmp2, L"%s%s", tmp, name); + f = _tfopen (tmp2, mode); + xfree (mode); + xfree (name); return f; } -FILE *moduleripper2_fopen (const char *name, const char *mode, const char *id, int addr, int size) +FILE *moduleripper2_fopen (const char *name, const char *mode, const char *aid, int addr, int size) { TCHAR msg[MAX_DPATH], msg2[MAX_DPATH]; + TCHAR *id; int ret; if (canceled) return NULL; got++; translate_message (NUMSG_MODRIP_SAVE, msg); + id = au (aid); _stprintf (msg2, msg, id, addr, size); ret = gui_message_multibutton (2, msg2); + xfree (id); if (ret < 0) canceled = 1; if (ret < 0 || ret != 1) diff --git a/od-win32/bsdsock.c b/od-win32/bsdsock.c index c6895e0f..e01e6a56 100644 --- a/od-win32/bsdsock.c +++ b/od-win32/bsdsock.c @@ -2268,7 +2268,7 @@ kludge: if (!sb->hostent) { write_log (L"BSDSOCK: WARNING - gethostby%s() ran out of Amiga memory " L"(couldn't allocate %ld bytes) while returning result of lookup for '%s'\n", - addrtype == -1 ? "name" : "addr", size, name_rp); + addrtype == -1 ? L"name" : L"addr", size, name_rp); bsdsocklib_seterrno(sb, 12); // ENOMEM return; } diff --git a/od-win32/posixemu.c b/od-win32/posixemu.c index 58e0ec84..0834386a 100644 --- a/od-win32/posixemu.c +++ b/od-win32/posixemu.c @@ -58,7 +58,7 @@ void gettimeofday (struct timeval *tv, void *blah) #define secs_per_day (24 * 60 * 60) #define diff ((8 * 365 + 2) * secs_per_day) -static void get_time(time_t t, long *days, long *mins, long *ticks) +static void get_time (time_t t, long *days, long *mins, long *ticks) { /* time_t is secs since 1-1-1970 */ /* days since 1-1-1978 */ @@ -73,12 +73,12 @@ static void get_time(time_t t, long *days, long *mins, long *ticks) *ticks = t * 50; } -static DWORD getattr(const TCHAR *name, LPFILETIME lpft, size_t *size) +static DWORD getattr (const TCHAR *name, LPFILETIME lpft, uae_u64 *size) { HANDLE hFind; WIN32_FIND_DATA fd; - if ((hFind = FindFirstFile (name,&fd)) == INVALID_HANDLE_VALUE) { + if ((hFind = FindFirstFile (name, &fd)) == INVALID_HANDLE_VALUE) { fd.dwFileAttributes = GetFileAttributes (name); return fd.dwFileAttributes; } @@ -87,17 +87,17 @@ static DWORD getattr(const TCHAR *name, LPFILETIME lpft, size_t *size) if (lpft) *lpft = fd.ftLastWriteTime; if (size) - *size = fd.nFileSizeLow; + *size = (((uae_u64)fd.nFileSizeHigh) << 32) | fd.nFileSizeLow; return fd.dwFileAttributes; } -int posixemu_stat(const TCHAR *name, struct stat *statbuf) +int posixemu_stat (const TCHAR *name, struct _stat64 *statbuf) { DWORD attr; FILETIME ft, lft; - if ((attr = getattr (name,&ft,(size_t*)&statbuf->st_size)) == (DWORD)~0) { + if ((attr = getattr (name, &ft, &statbuf->st_size)) == (DWORD)~0) { return -1; } else { statbuf->st_mode = (attr & FILE_ATTRIBUTE_READONLY) ? FILEFLAG_READ : FILEFLAG_READ | FILEFLAG_WRITE; @@ -111,19 +111,19 @@ int posixemu_stat(const TCHAR *name, struct stat *statbuf) return 0; } -int posixemu_chmod(const TCHAR *name, int mode) +int posixemu_chmod (const TCHAR *name, int mode) { DWORD attr = FILE_ATTRIBUTE_NORMAL; if (!(mode & FILEFLAG_WRITE)) attr |= FILE_ATTRIBUTE_READONLY; if (mode & FILEFLAG_ARCHIVE) attr |= FILE_ATTRIBUTE_ARCHIVE; - if (SetFileAttributes(name,attr)) + if (SetFileAttributes (name,attr)) return 1; return -1; } -static void tmToSystemTime(struct tm *tmtime, LPSYSTEMTIME systime) +static void tmToSystemTime (struct tm *tmtime, LPSYSTEMTIME systime) { if (tmtime == NULL) { GetSystemTime (systime); diff --git a/od-win32/registry.c b/od-win32/registry.c index 5f2f3338..826c787f 100644 --- a/od-win32/registry.c +++ b/od-win32/registry.c @@ -364,6 +364,7 @@ int reginitializeinit (const TCHAR *ppath) uae_u8 crc[20]; int s, v1, v2, v3; TCHAR path[MAX_DPATH], fpath[MAX_PATH]; + FILE *f; if (!ppath) { int ok = 0; @@ -425,6 +426,12 @@ fail: DeleteFile (path); if (GetFileAttributes (path) != INVALID_FILE_ATTRIBUTES) goto end; + f = _tfopen (path, L"wb"); + if (f) { + uae_u8 bom[3] = { 0xef, 0xbb, 0xbf }; + fwrite (bom, sizeof (bom), 1, f); + fclose (f); + } r = regcreatetree (NULL, L"Warning"); if (!r) goto end; diff --git a/od-win32/unicode.c b/od-win32/unicode.c index 6e56b820..4cef6683 100644 --- a/od-win32/unicode.c +++ b/od-win32/unicode.c @@ -4,6 +4,35 @@ #include "sysconfig.h" #include "sysdeps.h" +char *uutf8 (const WCHAR *s) +{ + char *d; + int len; + + if (s == NULL) + return NULL; + len = WideCharToMultiByte (CP_UTF8, 0, s, -1, NULL, 0, 0, FALSE); + if (!len) + return strdup (""); + d = xmalloc (len + 1); + WideCharToMultiByte (CP_UTF8, 0, s, -1, d, len, 0, FALSE); + return d; +} +WCHAR *utf8u (const char *s) +{ + WCHAR *d; + int len; + + if (s == NULL) + return NULL; + len = MultiByteToWideChar (CP_UTF8, MB_PRECOMPOSED, s, -1, NULL, 0); + if (!len) + return xcalloc (2, 1); + d = xmalloc ((len + 1) * sizeof (WCHAR)); + MultiByteToWideChar (CP_UTF8, MB_PRECOMPOSED, s, -1, d, len); + return d; +} + static char *ua_2 (const WCHAR *s, UINT cp) { char *d; diff --git a/od-win32/win32.c b/od-win32/win32.c index aa3dfa6f..577207e3 100644 --- a/od-win32/win32.c +++ b/od-win32/win32.c @@ -1848,7 +1848,7 @@ void toggle_mousegrab (void) #define LOG_BOOT L"winuaebootlog.txt" #define LOG_NORMAL L"winuaelog.txt" -void logging_open(int bootlog, int append) +void logging_open (int bootlog, int append) { TCHAR debugfilename[MAX_DPATH]; @@ -1867,7 +1867,7 @@ void logging_open(int bootlog, int append) typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); -void logging_init(void) +void logging_init (void) { LPFN_ISWOW64PROCESS fnIsWow64Process; int wow64 = 0; @@ -2089,54 +2089,54 @@ static const TCHAR *scsimode[] = { L"none", L"SPTI", L"SPTI+SCSISCAN", L"Adaptec void target_save_options (struct zfile *f, struct uae_prefs *p) { - cfgfile_target_dwrite (f, L"middle_mouse=%s\n", p->win32_middle_mouse ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"logfile=%s\n", p->win32_logfile ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"map_drives=%s\n", p->win32_automount_drives ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"map_drives_auto=%s\n", p->win32_automount_removable ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"map_cd_drives=%s\n", p->win32_automount_cddrives ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"map_net_drives=%s\n", p->win32_automount_netdrives ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"map_removable_drives=%s\n", p->win32_automount_removabledrives ? L"true" : L"false"); + cfgfile_target_dwrite_bool (f, L"middle_mouse", p->win32_middle_mouse); + cfgfile_target_dwrite_bool (f, L"logfile", p->win32_logfile); + cfgfile_target_dwrite_bool (f, L"map_drives", p->win32_automount_drives); + cfgfile_target_dwrite_bool (f, L"map_drives_auto", p->win32_automount_removable); + cfgfile_target_dwrite_bool (f, L"map_cd_drives", p->win32_automount_cddrives); + cfgfile_target_dwrite_bool (f, L"map_net_drives", p->win32_automount_netdrives); + cfgfile_target_dwrite_bool (f, L"map_removable_drives", p->win32_automount_removabledrives); serdevtoname (p->sername); - cfgfile_target_dwrite (f, L"serial_port=%s\n", p->sername[0] ? p->sername : L"none"); + cfgfile_target_dwrite_str (f, L"serial_port", p->sername[0] ? p->sername : L"none"); sernametodev (p->sername); - cfgfile_target_dwrite (f, L"parallel_port=%s\n", p->prtname[0] ? p->prtname : L"none"); - - cfgfile_target_dwrite (f, L"active_priority=%d\n", priorities[p->win32_active_priority].value); - cfgfile_target_dwrite (f, L"inactive_priority=%d\n", priorities[p->win32_inactive_priority].value); - cfgfile_target_dwrite (f, L"inactive_nosound=%s\n", p->win32_inactive_nosound ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"inactive_pause=%s\n", p->win32_inactive_pause ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"iconified_priority=%d\n", priorities[p->win32_iconified_priority].value); - cfgfile_target_dwrite (f, L"iconified_nosound=%s\n", p->win32_iconified_nosound ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"iconified_pause=%s\n", p->win32_iconified_pause ? L"true" : L"false"); - - cfgfile_target_dwrite (f, L"ctrl_f11_is_quit=%s\n", p->win32_ctrl_F11_is_quit ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"midiout_device=%d\n", p->win32_midioutdev); - cfgfile_target_dwrite (f, L"midiin_device=%d\n", p->win32_midiindev); - cfgfile_target_dwrite (f, L"rtg_match_depth=%s\n", p->win32_rtgmatchdepth ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"rtg_scale_small=%s\n", p->win32_rtgscaleifsmall ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"rtg_scale_allow=%s\n", p->win32_rtgallowscaling ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"rtg_scale_aspect_ratio=%d:%d\n", + cfgfile_target_dwrite_str (f, L"parallel_port", p->prtname[0] ? p->prtname : L"none"); + + cfgfile_target_dwrite (f, L"active_priority", L"%d", priorities[p->win32_active_priority].value); + cfgfile_target_dwrite (f, L"inactive_priority", L"%d", priorities[p->win32_inactive_priority].value); + cfgfile_target_dwrite_bool (f, L"inactive_nosound", p->win32_inactive_nosound); + cfgfile_target_dwrite_bool (f, L"inactive_pause", p->win32_inactive_pause); + cfgfile_target_dwrite (f, L"iconified_priority", L"%d", priorities[p->win32_iconified_priority].value); + cfgfile_target_dwrite_bool (f, L"iconified_nosound", p->win32_iconified_nosound); + cfgfile_target_dwrite_bool (f, L"iconified_pause", p->win32_iconified_pause); + + cfgfile_target_dwrite_bool (f, L"ctrl_f11_is_quit", p->win32_ctrl_F11_is_quit); + cfgfile_target_dwrite (f, L"midiout_device", L"%d", p->win32_midioutdev); + cfgfile_target_dwrite (f, L"midiin_device", L"%d", p->win32_midiindev); + cfgfile_target_dwrite_bool (f, L"rtg_match_depth", p->win32_rtgmatchdepth); + cfgfile_target_dwrite_bool (f, L"rtg_scale_small", p->win32_rtgscaleifsmall); + cfgfile_target_dwrite_bool (f, L"rtg_scale_allow", p->win32_rtgallowscaling); + cfgfile_target_dwrite (f, L"rtg_scale_aspect_ratio", L"%d:%d", p->win32_rtgscaleaspectratio >= 0 ? (p->win32_rtgscaleaspectratio >> 8) : -1, p->win32_rtgscaleaspectratio >= 0 ? (p->win32_rtgscaleaspectratio & 0xff) : -1); if (p->win32_rtgvblankrate <= 0) - cfgfile_target_dwrite (f, L"rtg_vblank=%s\n", p->win32_rtgvblankrate == -1 ? L"real" : (p->win32_rtgvblankrate == -2 ? L"disabled" : L"chipset")); + cfgfile_target_dwrite_str (f, L"rtg_vblank", p->win32_rtgvblankrate == -1 ? L"real" : (p->win32_rtgvblankrate == -2 ? L"disabled" : L"chipset")); else - cfgfile_target_dwrite (f, L"rtg_vblank=%d\n", p->win32_rtgvblankrate); - cfgfile_target_dwrite (f, L"borderless=%s\n", p->win32_borderless ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"uaescsimode=%s\n", scsimode[p->win32_uaescsimode]); - cfgfile_target_dwrite (f, L"soundcard=%d\n", p->win32_soundcard); + cfgfile_target_dwrite (f, L"rtg_vblank", L"%d", p->win32_rtgvblankrate); + cfgfile_target_dwrite_bool (f, L"borderless", p->win32_borderless); + cfgfile_target_dwrite_str (f, L"uaescsimode", scsimode[p->win32_uaescsimode]); + cfgfile_target_dwrite (f, L"soundcard", L"%d", p->win32_soundcard); if (sound_devices[p->win32_soundcard].cfgname) - cfgfile_target_dwrite (f, L"soundcardname=%s\n", sound_devices[p->win32_soundcard].cfgname); - cfgfile_target_dwrite (f, L"cpu_idle=%d\n", p->cpu_idle); - cfgfile_target_dwrite (f, L"notaskbarbutton=%s\n", p->win32_notaskbarbutton ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"always_on_top=%s\n", p->win32_alwaysontop ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"no_recyclebin=%s\n", p->win32_norecyclebin ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"specialkey=0x%x\n", p->win32_specialkey); + cfgfile_target_dwrite_str (f, L"soundcardname", sound_devices[p->win32_soundcard].cfgname); + cfgfile_target_dwrite (f, L"cpu_idle", L"%d", p->cpu_idle); + cfgfile_target_dwrite_bool (f, L"notaskbarbutton", p->win32_notaskbarbutton); + cfgfile_target_dwrite_bool (f, L"always_on_top", p->win32_alwaysontop); + cfgfile_target_dwrite_bool (f, L"no_recyclebin", p->win32_norecyclebin); + cfgfile_target_dwrite (f, L"specialkey", L"0x%x", p->win32_specialkey); if (p->win32_guikey >= 0) - cfgfile_target_dwrite (f, L"guikey=0x%x\n", p->win32_guikey); - cfgfile_target_dwrite (f, L"kbledmode=%d\n", p->win32_kbledmode); - cfgfile_target_dwrite (f, L"powersavedisabled=%s\n", p->win32_powersavedisabled ? L"true" : L"false"); - cfgfile_target_dwrite (f, L"filesystem_codepage=%d\n", p->win32_fscodepage); + cfgfile_target_dwrite (f, L"guikey", L"0x%x", p->win32_guikey); + cfgfile_target_dwrite (f, L"kbledmode", L"%d", p->win32_kbledmode); + cfgfile_target_dwrite_bool (f, L"powersavedisabled", p->win32_powersavedisabled); + cfgfile_target_dwrite (f, L"filesystem_codepage", L"%d", p->win32_fscodepage); } @@ -2234,7 +2234,7 @@ int target_parse_option (struct uae_prefs *p, TCHAR *option, TCHAR *value) return 1; } - if (cfgfile_string (option, value, L"rtg_scale_aspect_ratio", tmpbuf, sizeof tmpbuf) / sizeof (TCHAR)) { + if (cfgfile_string (option, value, L"rtg_scale_aspect_ratio", tmpbuf, sizeof tmpbuf / sizeof (TCHAR))) { int v1, v2; TCHAR *s; @@ -3942,6 +3942,7 @@ LONG WINAPI WIN32_ExceptionFilter (struct _EXCEPTION_POINTERS *pExceptionPointer __time64_t now; if (os_winnt && GetModuleFileName (NULL, path, MAX_DPATH)) { + TCHAR beta[100]; TCHAR *slash = _tcsrchr (path, '\\'); _time64 (&now); when = *_localtime64 (&now); @@ -3955,8 +3956,11 @@ LONG WINAPI WIN32_ExceptionFilter (struct _EXCEPTION_POINTERS *pExceptionPointer p = slash + 1; else p = path2; - _stprintf (p, L"winuae_%d%d%d%d_%d%02d%02d_%02d%02d%02d.dmp", - UAEMAJOR, UAEMINOR, UAESUBREV, WINUAEBETA, + beta[0] = 0; + if (WINUAEPUBLICBETA > 0) + _stprintf (beta, L"b%s", WINUAEBETA); + _stprintf (p, L"winuae_%d%d%d%s_%d%02d%02d_%02d%02d%02d.dmp", + UAEMAJOR, UAEMINOR, UAESUBREV, beta, when.tm_year + 1900, when.tm_mon + 1, when.tm_mday, when.tm_hour, when.tm_min, when.tm_sec); if (dll == NULL) dll = WIN32_LoadLibrary (L"DBGHELP.DLL"); diff --git a/od-win32/win32.h b/od-win32/win32.h index 7abf82a7..2001b5a3 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -17,8 +17,8 @@ #define WINUAEPUBLICBETA 1 -#define WINUAEBETA L"16" -#define WINUAEDATE MAKEBD(2009, 3, 9) +#define WINUAEBETA L"17" +#define WINUAEDATE MAKEBD(2009, 3, 15) #define WINUAEEXTRA L"" #define WINUAEREV L"" diff --git a/od-win32/win32gui.c b/od-win32/win32gui.c index 1fecef03..bdabc4b1 100644 --- a/od-win32/win32gui.c +++ b/od-win32/win32gui.c @@ -6209,9 +6209,9 @@ static void misc_scsi(HWND hDlg) SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_RESETCONTENT, 0, 0); SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_ADDSTRING, 0, (LPARAM)L"SPTI"); SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_ADDSTRING, 0, (LPARAM)L"SPTI + SCSI SCAN"); - SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_ADDSTRING, 0, (LPARAM)((get_aspi_path(0)) ? "AdaptecASPI" : "(AdaptecASPI)")); - SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_ADDSTRING, 0, (LPARAM)((get_aspi_path(1)) ? "NeroASPI" : "(NeroASPI)")); - SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_ADDSTRING, 0, (LPARAM)((get_aspi_path(2)) ? "FrogASPI" : "(FrogASPI)")); + SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_ADDSTRING, 0, (LPARAM)((get_aspi_path(0)) ? L"AdaptecASPI" : L"(AdaptecASPI)")); + SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_ADDSTRING, 0, (LPARAM)((get_aspi_path(1)) ? L"NeroASPI" : L"(NeroASPI)")); + SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_ADDSTRING, 0, (LPARAM)((get_aspi_path(2)) ? L"FrogASPI" : L"(FrogASPI)")); SendDlgItemMessage (hDlg, IDC_SCSIMODE, CB_SETCURSEL, workprefs.win32_uaescsimode - 1, 0); } diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index 9f5b3bc4..64376848 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,4 +1,15 @@ +Beta 17: (even more fixes. do not use b15 or b16) + +- module ripper text conversion fixed +- winuae.ini UTF-8 support (only new ones are created in UTF-8) +- ACTION_READ with "illegal" length or address crashed (b15) +- catweasel log information string wrong encoding fixed +- ACTION_SEEK 2G limit and 64-bit filesystem packet fixes +- configuration file handling bugs fixed (b15) +- directory filesystem date field ignored timezone (b15) +- crash dump file naming fixed (old bug) + Beta 16: - multiple unicode conversion issues fixed, hardfile/drive issues, diff --git a/od-win32/writelog.c b/od-win32/writelog.c index 597227d1..06821ca5 100644 --- a/od-win32/writelog.c +++ b/od-win32/writelog.c @@ -155,7 +155,7 @@ static void writeconsole (const TCHAR *buffer) if (!consoleopen) openconsole(); if (consoleopen > 0) - WriteOutput (buffer, _tcslen(buffer)); + WriteOutput (buffer, _tcslen (buffer)); else if (consoleopen < 0) WriteConsole (stdoutput, buffer, _tcslen (buffer), &temp,0); } @@ -280,7 +280,7 @@ void write_log (const TCHAR *format, ...) va_list parms; EnterCriticalSection (&cs); - va_start(parms, format); + va_start (parms, format); bufp = buffer; for (;;) { count = _vsntprintf (bufp, bufsize - 1, format, parms); @@ -288,7 +288,7 @@ void write_log (const TCHAR *format, ...) bufsize *= 10; if (bufp != buffer) xfree (bufp); - bufp = xmalloc (bufsize); + bufp = xmalloc (bufsize * sizeof (TCHAR)); continue; } break;