imported winuaesrc1600b17.zip

This commit is contained in:
Toni Wilen 2009-03-15 14:38:46 +02:00
parent 64346ddb1d
commit dc1badaa70
19 changed files with 656 additions and 508 deletions

View File

@ -400,9 +400,9 @@ static int catweasel4_configure (void)
#include <setupapi.h>
#include <cfgmgr32.h>
#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);

539
cfgfile.c
View File

@ -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];
void cfgfile_write (struct zfile *f, TCHAR *format,...)
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 *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]);
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=%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"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 (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_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 (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_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 (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);
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_bool (f, L"bsdsocket_emu", p->socket_emu);
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_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=%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 (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", L"no");
}
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_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_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 (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_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=%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_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;
}

View File

@ -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

View File

@ -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 ();

View File

@ -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(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(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(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);

View File

@ -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,

View File

@ -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);

View File

@ -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]);

View File

@ -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) {

View File

@ -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)

View File

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

View File

@ -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);

View File

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

View File

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

View File

@ -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_str (f, L"parallel_port", 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"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 (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_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");

View File

@ -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""

View File

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

View File

@ -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,

View File

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