static const TCHAR *collmode[] = { _T("none"), _T("sprites"), _T("playfields"), _T("full"), 0 };
static const TCHAR *compmode[] = { _T("direct"), _T("indirect"), _T("indirectKS"), _T("afterPic"), 0 };
static const TCHAR *flushmode[] = { _T("soft"), _T("hard"), 0 };
-static const TCHAR *kbleds[] = { _T("none"), _T("POWER"), _T("DF0"), _T("DF1"), _T("DF2"), _T("DF3"), _T("HD"), _T("CD"), 0 };
+static const TCHAR *kbleds[] = { _T("none"), _T("POWER"), _T("DF0"), _T("DF1"), _T("DF2"), _T("DF3"), _T("HD"), _T("CD"), _T("DFx"), 0 };
static const TCHAR *onscreenleds[] = { _T("false"), _T("true"), _T("rtg"), _T("both"), 0 };
static const TCHAR *soundfiltermode1[] = { _T("off"), _T("emulated"), _T("on"), 0 };
static const TCHAR *soundfiltermode2[] = { _T("standard"), _T("enhanced"), 0 };
static const TCHAR *maxvert[] = { _T("nointerlace"), _T("interlace"), 0 };
static const TCHAR *abspointers[] = { _T("none"), _T("mousehack"), _T("tablet"), 0 };
static const TCHAR *magiccursors[] = { _T("both"), _T("native"), _T("host"), 0 };
-static const TCHAR *autoscale[] = { _T("none"), _T("auto"), _T("standard"), _T("max"), _T("scale"), _T("resize"), _T("center"), _T("manual"), _T("integer"), _T("integer_auto"), 0 };
+static const TCHAR *autoscale[] = { _T("none"), _T("auto"), _T("standard"), _T("max"), _T("scale"), _T("resize"), _T("center"), _T("manual"),
+ _T("integer"), _T("half-integer"), _T("integer_auto"), _T("half-integer_auto"), 0 };
static const TCHAR *autoscale_rtg[] = { _T("resize"), _T("scale"), _T("center"), _T("integer"), 0 };
static const TCHAR *joyportmodes[] = { _T(""), _T("mouse"), _T("mousenowheel"), _T("djoy"), _T("gamepad"), _T("ajoy"), _T("cdtvjoy"), _T("cd32joy"), _T("lightpen"), 0 };
static const TCHAR *joyaf[] = { _T("none"), _T("normal"), _T("toggle"), _T("always"), 0 };
_stprintf(buf, _T("%s%s_rom"), name, i ? _T("_ext") : _T(""));
cfgfile_dwrite_str (f, buf, br->roms[i].romident);
}
- if (br->roms[i].autoboot_disabled || ert->subtypes) {
+ if (br->roms[i].autoboot_disabled || ert->subtypes || ert->id_jumper) {
TCHAR buf2[256], *p;
buf2[0] = 0;
p = buf2;
_tcscat(buf2, _T(","));
_tcscat(buf2, _T("autoboot_disabled=true"));
}
- cfgfile_dwrite_str (f, buf, buf2);
+ if (ert->id_jumper) {
+ TCHAR tmp[256];
+ _stprintf(tmp, _T("id=%d"), br->roms[i].device_id);
+ if (buf2[0])
+ _tcscat(buf2, _T(","));
+ _tcscat(buf2, tmp);
+ }
+ if (br->roms[i].device_settings && ert->settings) {
+ for (int i = 0; ert->settings[i].name; i++) {
+ if (br->roms[i].device_settings & (1 << i)) {
+ if (buf2[0])
+ _tcscat(buf2, _T(","));
+ _tcscat(buf2, ert->settings[i].configname);
+ }
+ }
+ }
+ if (buf2[0])
+ cfgfile_dwrite_str (f, buf, buf2);
}
if (br->roms[i].board_ram_size) {
cfgfile_write_bool (f, _T("kickshifter"), p->kickshifter);
cfgfile_write_bool (f, _T("ks_write_enabled"), p->rom_readwrite);
+ cfgfile_write (f, _T("floppy_volume"), _T("%d"), p->dfxclickvolume_disk[0]);
p->nr_floppies = 4;
for (i = 0; i < 4; i++) {
_stprintf (tmp, _T("floppy%d"), i);
_stprintf (tmp, _T("floppy%dsoundext"), i);
cfgfile_dwrite (f, tmp, p->floppyslots[i].dfxclickexternal);
}
+ if (p->floppyslots[i].dfxclick) {
+ _stprintf (tmp, _T("floppy%dsoundvolume_disk"), i);
+ cfgfile_write (f, tmp, _T("%d"), p->dfxclickvolume_disk[i]);
+ _stprintf (tmp, _T("floppy%dsoundvolume_empty"), i);
+ cfgfile_write (f, tmp, _T("%d"), p->dfxclickvolume_empty[i]);
+ }
if (p->floppyslots[i].dfxtype < 0 && p->nr_floppies > i)
p->nr_floppies = i;
}
cfgfile_write (f, _T("nr_floppies"), _T("%d"), p->nr_floppies);
cfgfile_dwrite_bool (f, _T("floppy_write_protect"), p->floppy_read_only);
cfgfile_write (f, _T("floppy_speed"), _T("%d"), p->floppy_speed);
- cfgfile_write (f, _T("floppy_volume"), _T("%d"), p->dfxclickvolume);
cfgfile_dwrite (f, _T("floppy_channel_mask"), _T("0x%x"), p->dfxclickchannelmask);
cfgfile_write (f, _T("cd_speed"), _T("%d"), p->cd_speed);
cfgfile_write_bool (f, _T("parallel_on_demand"), p->parallel_demand);
if (p->cpuboard_type) {
const struct cpuboardtype *cbt = &cpuboards[p->cpuboard_type];
const struct cpuboardsubtype *cbst = &cbt->subtypes[p->cpuboard_subtype];
- const struct cpuboardsettings *cbs = cbst->settings;
+ const struct expansionboardsettings *cbs = cbst->settings;
cfgfile_dwrite_str(f, _T("cpuboard_type"), cbst->configname);
if (cbs && p->cpuboard_settings) {
tmp[0] = 0;
for (int i = 0; cbs[i].name; i++) {
- if (tmp[0])
- _tcscat(tmp, _T(","));
- _tcscat(tmp, cbs[i].configname);
+ if (p->cpuboard_settings & (1 << i)) {
+ if (tmp[0])
+ _tcscat(tmp, _T(","));
+ _tcscat(tmp, cbs[i].configname);
+ }
}
cfgfile_dwrite_str(f, _T("cpuboard_settings"), tmp);
}
return 1;
}
-static bool cfgfile_option_find(TCHAR *s, const TCHAR *option)
+static TCHAR *cfgfile_option_find_it(TCHAR *s, const TCHAR *option, bool checkequals)
{
TCHAR buf[MAX_DPATH];
if (!s)
- return false;
+ return NULL;
_tcscpy(buf, s);
_tcscat(buf, _T(","));
TCHAR *p = buf;
for (;;) {
TCHAR *tmpp = _tcschr (p, ',');
+ TCHAR *tmpp2 = NULL;
if (tmpp == NULL)
- return false;
+ return NULL;
*tmpp++ = 0;
+ if (checkequals) {
+ tmpp2 = _tcschr(p, '=');
+ if (!tmpp2)
+ return NULL;
+ *tmpp2++ = 0;
+ }
if (!strcasecmp(p, option)) {
- return true;
+ if (checkequals)
+ return tmpp2;
+ return p;
}
p = tmpp;
}
}
+static bool cfgfile_option_find(TCHAR *s, const TCHAR *option)
+{
+ return cfgfile_option_find_it(s, option, false) != NULL;
+}
+
+static TCHAR *cfgfile_option_get(TCHAR *s, const TCHAR *option)
+{
+ return cfgfile_option_find_it(s, option, true);
+}
+
static int cfgfile_option_select(TCHAR *s, const TCHAR *option, const TCHAR *select)
{
TCHAR buf[MAX_DPATH];
if (tmpp2)
*tmpp2++ = 0;
if (!strcasecmp(p, option)) {
+ if (!tmpp2)
+ return 0;
TCHAR *tmpp3 = _tcschr (tmpp2, ',');
if (tmpp3)
*tmpp3 = 0;
|| cfgfile_intval (option, value, _T("floppy1sound"), &p->floppyslots[1].dfxclick, 1)
|| cfgfile_intval (option, value, _T("floppy2sound"), &p->floppyslots[2].dfxclick, 1)
|| cfgfile_intval (option, value, _T("floppy3sound"), &p->floppyslots[3].dfxclick, 1)
- || cfgfile_intval (option, value, _T("floppy_channel_mask"), &p->dfxclickchannelmask, 1)
- || cfgfile_intval (option, value, _T("floppy_volume"), &p->dfxclickvolume, 1))
+ || cfgfile_intval (option, value, _T("floppy0soundvolume_disk"), &p->dfxclickvolume_disk[0], 1)
+ || cfgfile_intval (option, value, _T("floppy1soundvolume_disk"), &p->dfxclickvolume_disk[1], 1)
+ || cfgfile_intval (option, value, _T("floppy2soundvolume_disk"), &p->dfxclickvolume_disk[2], 1)
+ || cfgfile_intval (option, value, _T("floppy3soundvolume_disk"), &p->dfxclickvolume_disk[3], 1)
+ || cfgfile_intval (option, value, _T("floppy0soundvolume_empty"), &p->dfxclickvolume_empty[0], 1)
+ || cfgfile_intval (option, value, _T("floppy1soundvolume_empty"), &p->dfxclickvolume_empty[1], 1)
+ || cfgfile_intval (option, value, _T("floppy2soundvolume_empty"), &p->dfxclickvolume_empty[2], 1)
+ || cfgfile_intval (option, value, _T("floppy3soundvolume_empty"), &p->dfxclickvolume_empty[3], 1)
+ || cfgfile_intval (option, value, _T("floppy_channel_mask"), &p->dfxclickchannelmask, 1))
return 1;
if (cfgfile_path (option, value, _T("floppy0soundext"), p->floppyslots[0].dfxclickexternal, sizeof p->floppyslots[0].dfxclickexternal / sizeof (TCHAR))
}
#endif
+ if (cfgfile_intval (option, value, _T("floppy_volume"), &v, 1)) {
+ for (int i = 0; i < 4; i++) {
+ p->dfxclickvolume_disk[i] = v;
+ p->dfxclickvolume_empty[i] = v;
+ }
+ return 1;
+ }
+
if (_tcscmp (option, _T("gfx_width_windowed")) == 0) {
if (!_tcscmp (value, _T("native"))) {
p->gfx_size_win.width = 0;
if (cfgfile_option_bool(buf2, _T("autoboot_disabled")) == 1) {
brc->roms[idx].autoboot_disabled = true;
}
+ if (ert->settings) {
+ for (int k = 0; ert->settings[k].name; k++) {
+ if (cfgfile_option_find(buf2, ert->settings[k].configname)) {
+ brc->roms[idx].device_settings |= 1 << k;
+ }
+ }
+ }
+ if (ert->id_jumper) {
+ TCHAR *p = cfgfile_option_get(buf2, _T("id"));
+ if (p) {
+ brc->roms[idx].device_id = _tstol(p);
+ }
+ }
if (ert->subtypes) {
const struct expansionsubromtype *srt = ert->subtypes;
TCHAR tmp[MAX_DPATH], *p;
p->cpuboard_settings = 0;
const struct cpuboardsubtype *cbst = &cpuboards[p->cpuboard_type].subtypes[p->cpuboard_subtype];
if (cbst->settings) {
- const struct cpuboardsettings *cbs = cbst->settings;
+ const struct expansionboardsettings *cbs = cbst->settings;
for(i = 0; cbs[i].name; i++) {
if (cfgfile_option_find(tmpbuf, cbs[i].configname)) {
p->cpuboard_settings |= 1 << i;
p->floppy_write_length = 0;
p->floppy_random_bits_min = 1;
p->floppy_random_bits_max = 3;
- p->dfxclickvolume = 33;
+ p->dfxclickvolume_disk[0] = 33;
+ p->dfxclickvolume_disk[1] = 33;
+ p->dfxclickvolume_empty[0] = 33;
+ p->dfxclickvolume_empty[1] = 33;
p->dfxclickchannelmask = 0xffff;
p->cd_speed = 100;
#define AUTOSCALE_CENTER 6
#define AUTOSCALE_MANUAL 7 // use gfx_xcenter_pos and gfx_ycenter_pos
#define AUTOSCALE_INTEGER 8
-#define AUTOSCALE_INTEGER_AUTOSCALE 9
+#define AUTOSCALE_HALF_INTEGER 9
+#define AUTOSCALE_INTEGER_AUTOSCALE 10
+#define AUTOSCALE_HALF_INTEGER_AUTOSCALE 11
#define MONITOREMU_NONE 0
#define MONITOREMU_AUTO 1
TCHAR romident[256];
uae_u32 board_ram_size;
bool autoboot_disabled;
+ int device_id;
+ int device_settings;
int subtype;
void *unitdata;
};
struct floppyslot floppyslots[4];
bool floppy_read_only;
TCHAR dfxlist[MAX_SPARE_DRIVES][MAX_DPATH];
- int dfxclickvolume;
+ int dfxclickvolume_disk[4];
+ int dfxclickvolume_empty[4];
int dfxclickchannelmask;
TCHAR luafiles[MAX_LUA_STATES][MAX_DPATH];
#define IDS_DISPLAY_ATTRIBUTES 403
#define IDS_NUMSG_NO_PPC 404
#define IDS_NUMSG_UAEBOOTROM_PCC 405
+#define IDS_AUTOSCALE_HALF_INTEGER 406
+#define IDS_AUTOSCALE_HALF_INTEGER_AUTOSCALE 407
#define IDS_QS_MODELS 1000
#define IDS_QS_MODEL_A500 1001
#define IDS_QS_MODEL_A500P 1002
#define IDC_CONFIGLIST 1404
#define IDC_SCSIROMSELECTNUM 1404
#define IDC_EDITNAME 1405
+#define IDC_SCSIROMID 1405
#define IDC_EDITDESCRIPTION 1406
#define IDC_QUICKSAVE 1408
#define IDC_QUICKLOAD 1409
#define IDC_SER_SHARED 1553
#define IDC_GUI_RESIZE 1553
#define IDC_SER_CTSRTS 1554
+#define IDC_GUI_FULLSCREEN 1554
#define IDC_SER_DIRECT 1555
#define IDC_PSPRINTER 1556
#define IDC_PSPRINTERDETECT 1557
#define IDC_CS_CACHE_TEXT 1582
#define IDC_SOUNDVOLUMEEXT2 1582
#define IDC_CS_CACHE_TEXT2 1583
+#define IDC_SOUNDDRIVEVOLUMEX 1583
#define IDC_COLLISIONS 1584
#define IDC_JITENABLE 1584
+#define IDC_SOUNDDRIVEVOLUMEX2 1584
#define IDC_DISASSEMBLY 1585
#define IDC_MMUENABLE 1585
#define IDC_COLLISION0 1589
#define IDC_FILTER_NATIVERTG 1839
#define IDC_P96MEM 1840
#define IDC_DA_SLIDER 1841
+#define IDC_EXPANSION_SETTING1 1841
#define IDC_CPUBOARD_TYPE 1842
+#define IDC_EXPANSION_SETTING2 1842
#define IDC_CPUBOARDMEM 1843
#define IDC_Z3MAPPING 1844
#define IDC_CPUBOARD_SUBTYPE 1845
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 398
#define _APS_NEXT_COMMAND_VALUE 40050
-#define _APS_NEXT_CONTROL_VALUE 1841
+#define _APS_NEXT_CONTROL_VALUE 1842
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
LTEXT "Accelerator board ROM file:",IDC_STATIC,12,273,170,15,SS_CENTERIMAGE
COMBOBOX IDC_CPUBOARDROMFILE,12,289,171,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "...",IDC_CPUBOARDROMCHOOSER,187,288,10,15
- CONTROL "Autoboot disabled",IDC_SCSIROMFILEAUTOBOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,216,84,12
+ CONTROL "Autoboot disabled",IDC_SCSIROMFILEAUTOBOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,216,99,12
COMBOBOX IDC_SCSIROMSUBSELECT,202,253,171,75,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_SCSIROMSELECTNUM,175,235,22,75,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
GROUPBOX "Miscellaneous",IDC_STATIC,0,96,395,106
+ COMBOBOX IDC_SCSIROMID,356,217,29,75,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+ RTEXT "Controller ID:",IDC_STATIC,294,216,57,15,SS_CENTERIMAGE
+ CONTROL "-",IDC_EXPANSION_SETTING1,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,11,256,77,10
+ CONTROL "-",IDC_EXPANSION_SETTING2,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,116,256,77,10
END
IDD_DISPLAY DIALOGEX 0, 0, 396, 298
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,301,201,11
END
-IDD_SOUND DIALOGEX 0, 0, 396, 288
+IDD_SOUND DIALOGEX 0, 0, 396, 306
STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
COMBOBOX IDC_SOUNDSTEREOMIX,181,186,74,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Audio filter:",IDC_SOUNDFILTERTXT,279,176,98,8,SS_CENTERIMAGE
COMBOBOX IDC_SOUNDFILTER,279,186,96,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- GROUPBOX "Floppy Drive Sound Emulation",IDC_STATIC,1,213,278,73
- CONTROL "",IDC_SOUNDDRIVEVOLUME,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,20,229,107,19
+ GROUPBOX "Floppy Drive Sound Emulation",IDC_STATIC,1,209,278,91
+ CONTROL "",IDC_SOUNDDRIVEVOLUME,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,20,227,107,19
EDITTEXT IDC_SOUNDDRIVEVOLUME2,144,231,48,12,ES_CENTER | ES_READONLY
COMBOBOX IDC_SOUNDDRIVE,205,231,66,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_SOUNDDRIVESELECT,18,257,253,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- GROUPBOX "Drivers",IDC_STATIC,285,213,109,73
- CONTROL "DirectSound",IDC_SOUND_DS,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,292,227,98,10
- CONTROL "WASAPI",IDC_SOUND_WASAPI,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,292,240,98,10
- CONTROL "OpenAL",IDC_SOUND_OPENAL,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,292,253,98,10
- CONTROL "PortAudio",IDC_SOUND_PORTAUDIO,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,292,266,98,10
+ COMBOBOX IDC_SOUNDDRIVESELECT,18,281,253,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ GROUPBOX "Drivers",IDC_STATIC,285,213,109,87
+ CONTROL "DirectSound",IDC_SOUND_DS,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,292,234,98,10
+ CONTROL "WASAPI",IDC_SOUND_WASAPI,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,292,248,98,10
+ CONTROL "OpenAL",IDC_SOUND_OPENAL,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,292,262,98,10
+ CONTROL "PortAudio",IDC_SOUND_PORTAUDIO,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,292,276,98,10
CONTROL "Include CD and FMV audio",IDC_SOUND_CDPAULAMIX,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,13,108,108,10
COMBOBOX IDC_SOUNDVOLUMESELECT,147,65,64,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ CONTROL "",IDC_SOUNDDRIVEVOLUMEX,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,20,254,107,19
+ EDITTEXT IDC_SOUNDDRIVEVOLUMEX2,144,258,48,12,ES_CENTER | ES_READONLY
END
IDD_LOADSAVE DIALOGEX 0, 0, 396, 318
CTEXT "DirectDraw:",IDC_STATIC,272,106,117,10,SS_CENTERIMAGE
COMBOBOX IDC_DD_SURFACETYPE,287,119,87,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
GROUPBOX "GUI",IDC_STATIC,266,144,128,93
- CTEXT "Language:",IDC_STATIC,271,154,117,10,SS_CENTERIMAGE
- COMBOBOX IDC_LANGUAGE,273,168,114,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "GUI Font...",IDC_GUI_FONT,272,185,54,14
- PUSHBUTTON "List Font...",IDC_GUI_LISTFONT,333,185,54,14
- PUSHBUTTON "Set default",IDC_GUI_DEFAULT,272,204,54,14
- COMBOBOX IDC_GUI_SIZE,333,205,54,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- CONTROL "Resizeable GUI",IDC_GUI_RESIZE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,273,222,114,11
+ COMBOBOX IDC_LANGUAGE,273,157,114,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "GUI Font...",IDC_GUI_FONT,272,174,54,14
+ PUSHBUTTON "List Font...",IDC_GUI_LISTFONT,333,174,54,14
+ PUSHBUTTON "Set default",IDC_GUI_DEFAULT,272,193,54,14
+ COMBOBOX IDC_GUI_SIZE,333,194,54,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ CONTROL "Resizeable GUI",IDC_GUI_RESIZE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,273,211,114,11
GROUPBOX "State Files",IDC_STATIC,1,242,393,38
EDITTEXT IDC_STATENAME,8,257,231,13,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP
CONTROL "",IDC_STATECLEAR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,244,261,9,10
COMBOBOX IDC_KBLED2,97,295,64,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_KBLED3,184,295,64,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "USB mode",IDC_KBLED_USB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,296,64,11
+ CONTROL "Fullscreen GUI",IDC_GUI_FULLSCREEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,273,224,114,11
END
IDD_HARDFILE DIALOGEX 0, 0, 397, 279
IDD_SOUND, DIALOG
BEGIN
+ BOTTOMMARGIN, 288
END
IDD_LOADSAVE, DIALOG
IDS_NUMSG_NO_PPC "PPC CPU was started but PPC CPU emulation core plugin was not found. Download available from http://www.winuae.net/"
IDS_NUMSG_UAEBOOTROM_PCC
"PPC native OS booted with UAE boot ROM active. UAE expansions are not hardware emulated and are not PPC compatible. (UAE HD controller, uaescsi.device, uaeserial, bsdsocket and so on..)"
+ IDS_AUTOSCALE_HALF_INTEGER "Half-integer scaling"
+ IDS_AUTOSCALE_HALF_INTEGER_AUTOSCALE "Auto Half-integer scaling"
END
#endif // English resources
HMODULE h;
TCHAR path[MAX_DPATH];
#ifdef WIN64
+ _tcscpy(path, name);
+ _tcscat(path, _T("_x64.dll"));
+ h = WIN32_LoadLibrary(path);
+ if (h)
+ return h;
_tcscpy(path, _T("qemu\\"));
_tcscat(path, name);
_tcscat(path, _T("_x64.dll"));
#define LANG_DLL_FULL_VERSION_MATCH 1
#if WINUAEPUBLICBETA
-#define WINUAEBETA _T("13")
+#define WINUAEBETA _T("14")
#else
#define WINUAEBETA _T("")
#endif
-#define WINUAEDATE MAKEBD(2015, 3, 21)
+#define WINUAEDATE MAKEBD(2015, 3, 28)
//#define WINUAEEXTRA _T("AmiKit Preview")
//#define WINUAEEXTRA _T("Amiga Forever Edition")
+Beta 14:
+
+- Show selected accelerator board and HD controller name(s) in log lines.
+- GVP Series I and II HD controllers can now be active at the same time.
+- Added SCSI controller ID selection (only AdSCSI and A4091 supported so far)
+- Mark HD controllers with * if it is enabled, becomes [x] if more than 1 controller is active.
+- Fixed referencing to already freed SCSI/IDE HD controller context structure after reset/restart (b12)
+- Added SupraDrive AMAB3, AMAB4 and AMAB5 ROMs.
+- NCR539x based SCSI controllers always accessed unit 0.
+- Added emulation of edge case when SPRxPOS or SPRxCTL vertical position is updated at the last available dma slot
+ at the end of scanline. Next line's vertical comparison will match just before this position, in other words, if
+ old value would match in next line and new value does not anymore, comparison match still happens. Fixes
+ Arc Ed / United Forces missing sprite scroller.
+- Added half-integer scaling option. (*0.5, *1.0, *1.5 and so on)
+- New Velvet prototype difference found: both CIAs generate level 2 interrupt. Now Velvet tries to boot from
+ disk, reads and executes boot block code if disk has correct bootblock which is different than release AmigaOS
+ bootblock. MFM level format seems to be identical. Unfortunately, at least so far, no original Velvet floppy
+ disks have been found and for some reason real hardware refuses to read any disks.
+- If -seriallog is enabled, console log window also listens for key codes and sends them to emulated serial
+ port. Very basic console emulator, enables quick use of Velvet ROM built-in serial debugger.
+- Added "Any floppy drive" option to keyboard led configuration.
+- Floppy sound volume control is not global anymore. Empty and disk in drive states also have separate volume
+ settings. (Upper volume slider = drive empty, lower slider = disk in drive)
+- Added fullscreen GUI option to misc panel. Opens GUI in max size, possibly useful with low resolution devices
+ and/or small Windows tablets.
+- Z3 autoconfig in "UAE" mode didn't work correctly with hardware RTG boards (b4)
+
+Beta 13:
+
+- Mainboard SCSI controllers didn't initialize correctly (A3000/A4000T/CDTV) (b12)
+- "Do not force full display reset.." update made it worse, should be better now (b12)
+- I finally bothered to carefully re-examine AR3 freezer behavior, emulation updated, should now match real
+ hardware, previously unsupported features like autofire work.
+- If copper DMA is switched off mid-instruction, allow instruction to finish. Fixes AR2 weird copper
+ list detection code.
+- Added RDB mode HD geometry GUI support. (RDB mode geometry option = what IDE Identify Device and SCSI
+ MODE SENSE Format Parameters/Rigid Disk Geometry returns). Very old controllers may require custom geometry.
+- Added HD/CF IDE harddrive GUI option. Currently only difference is in IDE Identify Device word 0 identifier.
+ (Cause for infamous hdtoolbox "Unit is not a disk (Type 7)" error)
+- Added GUI IDE and SCSI version selection to hardfile panel. IDE has ATA-1, ATA-2+ (old default, returns ATA-6
+ to allow LBA48 support and more) and ATA-2+ Strict which drops ATA-1 feature that become optional in ATA-2,
+ triggering A600/A1200/A4000 IDE driver bug that causes infamous "max transfer bug". (No, it isn't drive bug)
+ SCSI has SCSI-1 and SCSI-2 options. Currently only real difference is INQUIRY version number, some old
+ software (like original A590/A2091 install disk) require SCSI-1 version.
+- Added Archos ADD-500 emulation.
+- Added AdSCSI Advantage 2000 emulation.
+- Internal enforcer emulation hit can break to debugger, enable/disable with 'fen' debugger command.
+- SCSI Read Defect Data command: return empty defect header instead of Defect List Not Found error.
+ (ADD-500 driver gets confused if Read Defect Data command does not return any data)
+- WD33C93 SCSI devices didn't support multiple units (b12)
+- Added hack that fixes max overscan scrolling in demo Seven Seas / Andromeda. (Demo has workaround for chipset
+ bug that causes right edge to have a vertical gap if BPLCON1 is larger than zero. Hack is currently needed
+ because glitch happens when hpos=0 and emulation is not designed to handle bitplane changes that cross virtual
+ scanlines). Glitch was not emulated until few versions ago, demo worked only accidentally previously.
+- Added Windows 10 TP bug workaround, for some reason dialog window is visible before WM_INITDIALOG message
+ (documentation specifically says it won't be visible until after WM_INITDIALOG) and also dialog is set
+ as not visible. Fixes quickly appearing and disappering empty WinUAE GUI panel each time GUI is opened.
+
+AdSCSI Advantage 2000:
+- 5380 based fake DMA.
+- First 5380 based driver that uses chip's arbitrate bit instead of assuming AdSCSI is the only initiator.
+- 1.6 ROM added. (Anyone have later? At least 1.9 exists)
+- RDB parser is not fully compatible, does not load all filesystems (for example PFS3).
+
+Archos ADD-500:
+- Yet another 5380 based fake DMA SCSI controller.
+- v1.21 ROM added.
+
Beta 12:
- Do not force full display reset when switching to/from programmed mode and autoresolution is active