cfgfile_dwrite_bool(f, _T("z3_autoconfig"), p->cs_z3autoconfig);
cfgfile_dwrite_bool(f, _T("1mchipjumper"), p->cs_1mchipjumper);
cfgfile_dwrite_bool(f, _T("color_burst"), p->cs_color_burst);
+ cfgfile_dwrite_bool(f, _T("toshiba_gary"), p->cs_toshibagary);
+ cfgfile_dwrite_bool(f, _T("rom_is_slow"), p->cs_romisslow);
cfgfile_dwrite_str(f, _T("unmapped_address_space"), unmapped[p->cs_unmapped_space]);
cfgfile_dwrite (f, _T("chipset_hacks"), _T("0x%x"), p->cs_hacks);
} else if (ci->type == UAEDEV_TAPE) {
if (ci->controller_type == HD_CONTROLLER_TYPE_UAE)
break;
+ if (ci->controller_type >= HD_CONTROLLER_TYPE_IDE_FIRST && ci->controller_type <= HD_CONTROLLER_TYPE_IDE_LAST)
+ break;
if (ci->controller_type >= HD_CONTROLLER_TYPE_SCSI_FIRST && ci->controller_type <= HD_CONTROLLER_TYPE_SCSI_LAST)
break;
} else {
|| cfgfile_yesno(option, value, _T("ics_agnus"), &p->cs_dipagnus)
|| cfgfile_yesno(option, value, _T("z3_autoconfig"), &p->cs_z3autoconfig)
|| cfgfile_yesno(option, value, _T("color_burst"), &p->cs_color_burst)
+ || cfgfile_yesno(option, value, _T("toshiba_gary"), &p->cs_toshibagary)
+ || cfgfile_yesno(option, value, _T("rom_is_slow"), &p->cs_romisslow)
|| cfgfile_yesno(option, value, _T("1mchipjumper"), &p->cs_1mchipjumper)
|| cfgfile_yesno(option, value, _T("agnus_bltbusybug"), &p->cs_agnusbltbusybug)
|| cfgfile_yesno(option, value, _T("gfxcard_hardware_vblank"), &p->rtg_hardwareinterrupt)
if (real) {
cfgfile_parse_separated_line (p, line1b, line2b, askedtype);
} else {
+ // metadata
cfgfile_string (line1b, line2b, _T("config_description"), p->description, sizeof p->description / sizeof (TCHAR));
cfgfile_path (line1b, line2b, _T("config_hardware_path"), p->config_hardware_path, sizeof p->config_hardware_path / sizeof (TCHAR));
cfgfile_path (line1b, line2b, _T("config_host_path"), p->config_host_path, sizeof p->config_host_path / sizeof(TCHAR));
cfgfile_path (line1b, line2b, _T("config_all_path"), p->config_all_path, sizeof p->config_all_path / sizeof(TCHAR));
cfgfile_string (line1b, line2b, _T("config_window_title"), p->config_window_title, sizeof p->config_window_title / sizeof (TCHAR));
+ // boxart checks
+ cfgfile_path(line1b, line2b, _T("floppy0"), p->floppyslots[0].df, sizeof p->floppyslots[0].df / sizeof(TCHAR));
+ TCHAR tmp[MAX_DPATH];
+ if (!p->mountitems && (cfgfile_string(line1b, line2b, _T("hardfile2"), tmp, sizeof tmp / sizeof(TCHAR)) || cfgfile_string(line1b, line2b, _T("filesystem2"), tmp, sizeof tmp / sizeof(TCHAR)))) {
+ const TCHAR *s = _tcschr(tmp, ':');
+ if (s) {
+ if (!_tcscmp(line1b, _T("filesystem2"))) {
+ s++;
+ s = _tcschr(s, ':');
+ }
+ if (s) {
+ s++;
+ bool quoted = false;
+ if (s[0] == '"') {
+ s++;
+ quoted = true;
+ }
+ const TCHAR *se = _tcschr(s, quoted ? '"' : ',');
+ if (se) {
+ tmp[se - tmp] = 0;
+ _tcscpy(p->mountconfig[0].ci.rootdir, s);
+ cfgfile_adjust_path(p->mountconfig[0].ci.rootdir, MAX_DPATH, NULL);
+ p->mountitems = 1;
+ }
+ }
+ }
+ }
+ if (!p->cdslots[0].inuse && cfgfile_path(line1b, line2b, _T("cdimage0"), tmp, sizeof tmp / sizeof(TCHAR))) {
+ TCHAR *s = tmp;
+ if (s[0] == '"') {
+ s++;
+ const TCHAR *se = _tcschr(s, '"');
+ if (se)
+ tmp[se - tmp] = 0;
+ } else {
+ const TCHAR *se = _tcschr(s, ',');
+ if (se)
+ tmp[se - tmp] = 0;
+ }
+ cfgfile_adjust_path(s, MAX_DPATH, NULL);
+ _tcscpy(p->cdslots[0].name, s);
+ p->cdslots[0].inuse = 1;
+ }
}
}
}
return 1;
}
-int cfgfile_get_description (const TCHAR *filename, TCHAR *description, TCHAR *hostlink, TCHAR *hardwarelink, int *type)
+struct uae_prefs *cfgfile_open(const TCHAR *filename, int *type)
+{
+ struct uae_prefs *p = xcalloc(struct uae_prefs, 1);
+ if (cfgfile_load_2(p, filename, false, type))
+ return p;
+ xfree(p);
+ return NULL;
+}
+
+void cfgfile_close(struct uae_prefs *p)
{
- int result = 0;
- struct uae_prefs *p = xmalloc (struct uae_prefs, 1);
+ xfree(p);
+}
+int cfgfile_get_description (struct uae_prefs *p, const TCHAR *filename, TCHAR *description, TCHAR *hostlink, TCHAR *hardwarelink, int *type)
+{
+ bool alloc = false;
+
+ if (!p) {
+ p = xmalloc(struct uae_prefs, 1);
+ alloc = true;
+ }
p->description[0] = 0;
p->config_host_path[0] = 0;
p->config_hardware_path[0] = 0;
- if (cfgfile_load_2 (p, filename, 0, type)) {
- result = 1;
- if (description)
- _tcscpy (description, p->description);
- if (hostlink)
- _tcscpy (hostlink, p->config_host_path);
- if (hardwarelink)
- _tcscpy (hardwarelink, p->config_hardware_path);
+ if (!p) {
+ alloc = true;
+ p = cfgfile_open(filename, type);
}
- xfree (p);
- return result;
+ if (!p)
+ return 0;
+ if (description)
+ _tcscpy (description, p->description);
+ if (hostlink)
+ _tcscpy (hostlink, p->config_host_path);
+ if (hardwarelink)
+ _tcscpy (hardwarelink, p->config_hardware_path);
+ if (alloc) {
+ cfgfile_close(p);
+ }
+ return 1;
+}
+
+bool cfgfile_detect_art_path(const TCHAR *path, TCHAR *outpath)
+{
+ TCHAR tmp[MAX_DPATH];
+ const TCHAR *p;
+ if (!path[0])
+ return false;
+ write_log(_T("Possible boxart path: '%s'\n"), path);
+ _tcscpy(tmp, path);
+ p = _tcsrchr(tmp, '\\');
+ if (!p)
+ p = _tcsrchr(tmp, '/');
+ if (!p)
+ return false;
+ tmp[p - tmp] = 0;
+ _tcscat(tmp, FSDB_DIR_SEPARATOR_S);
+ _tcscat(tmp, _T("___Title.png"));
+ if (!zfile_exists(tmp))
+ return false;
+ tmp[p - tmp + 1] = 0;
+ _tcscpy(outpath, tmp);
+ write_log(_T("Detected!\n"));
+ return true;
+}
+
+bool cfgfile_detect_art(struct uae_prefs *p, TCHAR *path)
+{
+ if (cfgfile_detect_art_path(p->floppyslots[0].df, path))
+ return true;
+ if (p->mountitems > 0 && cfgfile_detect_art_path(p->mountconfig[0].ci.rootdir, path))
+ return true;
+ if (p->cdslots[0].inuse && cfgfile_detect_art_path(p->cdslots[0].name, path))
+ return true;
+ return false;
}
int cfgfile_configuration_change (int v)
if (disk_debug_logging > 2) {
if (velvet) {
- write_log (_T(" %d%d "), (selected & 1) ? 0 : 1, (selected & 2) ? 0 : 1);
+ write_log (_T(" %d%d"), (selected & 1) ? 0 : 1, (selected & 2) ? 0 : 1);
if ((prev_data & 0x08) != (data & 0x08))
- write_log (_T(" dsksel0 %d "), (data & 0x08) ? 0 : 1);
+ write_log (_T(" dsksel0>%d"), (data & 0x08) ? 0 : 1);
if ((prev_data & 0x10) != (data & 0x10))
- write_log (_T(" dsksel1 %d "), (data & 0x10) ? 0 : 1);
+ write_log (_T(" dsksel1>%d"), (data & 0x10) ? 0 : 1);
if ((prev_data & 0x20) != (data & 0x20))
- write_log (_T(" dskmotor0 %d "), (data & 0x20) ? 0 : 1);
+ write_log (_T(" dskmotor0>%d"), (data & 0x20) ? 0 : 1);
if ((prev_data & 0x40) != (data & 0x40))
- write_log (_T(" dskmotor1 %d "), (data & 0x40) ? 0 : 1);
+ write_log (_T(" dskmotor1>%d"), (data & 0x40) ? 0 : 1);
if ((prev_data & 0x02) != (data & 0x02))
- write_log (_T(" direct %d "), (data & 0x02) ? 1 : 0);
+ write_log (_T(" direct>%d"), (data & 0x02) ? 1 : 0);
if ((prev_data & 0x04) != (data & 0x04))
- write_log (_T(" side %d "), (data & 0x04) ? 1 : 0);
+ write_log (_T(" side>%d"), (data & 0x04) ? 1 : 0);
} else {
- write_log (_T(" %d%d%d%d "), (selected & 1) ? 0 : 1, (selected & 2) ? 0 : 1, (selected & 4) ? 0 : 1, (selected & 8) ? 0 : 1);
+ write_log (_T(" %d%d%d%d"), (selected & 1) ? 0 : 1, (selected & 2) ? 0 : 1, (selected & 4) ? 0 : 1, (selected & 8) ? 0 : 1);
+ for (int i = 0; i < 4; i++) {
+ int im = 1 << i;
+ if ((selected & im) && !(prev_selected & im))
+ write_log(_T(" sel%d>0"), i);
+ if (!(selected & im) && (prev_selected & im))
+ write_log(_T(" sel%d>1"), i);
+ }
if ((prev_data & 0x80) != (data & 0x80))
- write_log (_T(" dskmotor %d "), (data & 0x80) ? 1 : 0);
+ write_log (_T(" dskmotor>%d"), (data & 0x80) ? 1 : 0);
if ((prev_data & 0x02) != (data & 0x02))
- write_log (_T(" direct %d "), (data & 0x02) ? 1 : 0);
+ write_log (_T(" direct>%d"), (data & 0x02) ? 1 : 0);
if ((prev_data & 0x04) != (data & 0x04))
- write_log (_T(" side %d "), (data & 0x04) ? 1 : 0);
+ write_log (_T(" side>%d"), (data & 0x04) ? 1 : 0);
}
}
#ifdef DEBUGGER
#define MAX_HIST 500
-#define MAX_LINEWIDTH 100
+#define MAX_LINEWIDTH 150
extern int debugging;
extern int memwatch_enabled;
bool cs_cia6526;
bool cs_bytecustomwritebug;
bool cs_color_burst;
+ bool cs_romisslow;
+ bool cs_toshibagary;
int cs_unmapped_space;
int cs_hacks;
extern int target_get_display (const TCHAR*);
extern const TCHAR *target_get_display_name (int, bool);
+extern struct uae_prefs *cfgfile_open(const TCHAR *filename, int *type);
+extern void cfgfile_close(struct uae_prefs *p);
extern int cfgfile_load (struct uae_prefs *p, const TCHAR *filename, int *type, int ignorelink, int userconfig);
extern int cfgfile_save (struct uae_prefs *p, const TCHAR *filename, int);
extern void cfgfile_parse_line (struct uae_prefs *p, TCHAR *, int);
extern void cfgfile_parse_lines (struct uae_prefs *p, const TCHAR *, int);
extern int cfgfile_parse_option (struct uae_prefs *p, const TCHAR *option, TCHAR *value, int);
-extern int cfgfile_get_description (const TCHAR *filename, TCHAR *description, TCHAR *hostlink, TCHAR *hardwarelink, int *type);
+extern int cfgfile_get_description (struct uae_prefs *p, const TCHAR *filename, TCHAR *description, TCHAR *hostlink, TCHAR *hardwarelink, int *type);
extern void cfgfile_show_usage (void);
extern int cfgfile_searchconfig(const TCHAR *in, int index, TCHAR *out, int outsize);
extern uae_u32 cfgfile_uaelib(TrapContext *ctx, int mode, uae_u32 name, uae_u32 dst, uae_u32 maxlen);
extern void fixup_cpu (struct uae_prefs *prefs);
extern void cfgfile_compatibility_romtype(struct uae_prefs *p);
extern void cfgfile_compatibility_rtg(struct uae_prefs *p);
+extern bool cfgfile_detect_art(struct uae_prefs *p, TCHAR *path);
extern void check_prefs_changed_custom (void);
extern void check_prefs_changed_cpu (void);
#define IDC_CS_COMPOSITECOLOR 1756
#define IDC_DBG_DASM 1757
#define IDC_DBG_MEMDOWNFAST 1758
+#define IDC_CS_TOSHIBAGARY 1758
#define IDC_DBG_MEMTOPC 1759
+#define IDC_CS_ROMISSLOW 1759
#define IDC_DBG_MEMUPFAST 1760
#define IDC_DA_RESET 1761
#define IDC_DBG_STATUS 1762
#define IDC_RTG_BUFFERCNT 1795
#define IDC_PATHS_RECURSIVEROMS 1795
#define IDC_RTG_VBINTERRUPT 1796
+#define IDC_PATHS_ARTCACHE 1796
#define IDC_INPUTMAPLIST 1797
#define IDC_RTG_HWSPRITE 1797
#define IDC_PORT1_REMAP 1798
PUSHBUTTON "Add &Hardfile...",IDC_NEW_HF,135,153,126,15
PUSHBUTTON "Add Ha&rd Drive...",IDC_NEW_HD,267,153,127,15
PUSHBUTTON "Add SCSI/IDE CD Drive",IDC_NEW_CD,1,172,128,15
- PUSHBUTTON "Add SCSI Tape Drive",IDC_NEW_TAPE,135,172,126,15
+ PUSHBUTTON "Add SCSI/IDE Tape Drive",IDC_NEW_TAPE,135,172,126,15
PUSHBUTTON "&Properties",IDC_EDIT,267,172,60,15
PUSHBUTTON "Remove",IDC_REMOVE,334,172,60,15
GROUPBOX "Options",IDC_STATIC,1,189,393,66
CONTROL "Keep aspect ratio",IDC_GENLOCK_KEEP_ASPECT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,13,242,214,10
END
-IDD_CHIPSET2 DIALOGEX 0, 0, 396, 305
+IDD_CHIPSET2 DIALOGEX 0, 0, 396, 317
STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
CONTROL "RF5C01A",IDC_CS_RTC3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,165,32,67,10
CONTROL "A2000 MSM6242B",IDC_CS_RTC4,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,240,32,78,10
EDITTEXT IDC_CS_RTCADJUST,325,30,64,13,ES_AUTOHSCROLL
- GROUPBOX "CIA-A TOD Clock Source",IDC_STATIC,1,52,394,29
- CONTROL "Vertical Sync",IDC_CS_CIAA_TOD1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,41,64,86,10
- CONTROL "Power Supply 50Hz",IDC_CS_CIAA_TOD2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,133,64,109,10
- CONTROL "Power Supply 60Hz",IDC_CS_CIAA_TOD3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,248,64,116,10
- GROUPBOX "Chipset Features",IDC_STATIC,0,84,395,137
- CONTROL "CIA ROM Overlay",IDC_CS_CIAOVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,98,104,11
- CONTROL "CD32 CD",IDC_CS_CD32CD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,111,104,11
- CONTROL "CDTV CD",IDC_CS_CDTVCD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,124,105,11
- CONTROL "A600/A1200 IDE",IDC_CS_IDE1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,137,104,11
- CONTROL "ROM Mirror (E0)",IDC_CS_KSMIRROR_E0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,150,104,11
- CONTROL "KB Reset Warning",IDC_CS_RESETWARNING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,163,104,11
- CONTROL "CIA TOD bug",IDC_CS_CIATODBUG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,176,104,11
- CONTROL "1M Chip / 0.5M+0.5M",IDC_CS_1MCHIPJUMPER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,189,104,11
- CONTROL "A1000 Boot RAM/ROM",IDC_CS_A1000RAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,98,121,11
- CONTROL "CD32 C2P",IDC_CS_CD32C2P,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,111,121,11
- CONTROL "CDTV SRAM",IDC_CS_CDTVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,124,121,11
- CONTROL "A4000/A4000T IDE",IDC_CS_IDE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,137,121,11
- CONTROL "ROM Mirror (A8)",IDC_CS_KSMIRROR_A8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,150,121,11
- CONTROL "No-EHB Denise",IDC_CS_NOEHB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,163,121,11
- CONTROL "Z3 Autoconfig",IDC_CS_Z3AUTOCONFIG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,176,104,11
+ GROUPBOX "CIA-A TOD Clock Source",IDC_STATIC,1,52,394,27
+ CONTROL "Vertical Sync",IDC_CS_CIAA_TOD1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,41,63,86,10
+ CONTROL "Power Supply 50Hz",IDC_CS_CIAA_TOD2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,133,63,109,10
+ CONTROL "Power Supply 60Hz",IDC_CS_CIAA_TOD3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,248,63,116,10
+ GROUPBOX "Chipset Features",IDC_STATIC,0,82,395,148
+ CONTROL "CIA ROM Overlay",IDC_CS_CIAOVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,95,104,11
+ CONTROL "CD32 CD",IDC_CS_CD32CD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,108,104,11
+ CONTROL "CDTV CD",IDC_CS_CDTVCD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,121,105,11
+ CONTROL "A600/A1200 IDE",IDC_CS_IDE1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,134,104,11
+ CONTROL "ROM Mirror (E0)",IDC_CS_KSMIRROR_E0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,147,104,11
+ CONTROL "KB Reset Warning",IDC_CS_RESETWARNING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,160,104,11
+ CONTROL "CIA TOD bug",IDC_CS_CIATODBUG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,173,104,11
+ CONTROL "1M Chip / 0.5M+0.5M",IDC_CS_1MCHIPJUMPER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,186,104,11
+ CONTROL "A1000 Boot RAM/ROM",IDC_CS_A1000RAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,95,121,11
+ CONTROL "CD32 C2P",IDC_CS_CD32C2P,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,108,121,11
+ CONTROL "CDTV SRAM",IDC_CS_CDTVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,121,121,11
+ CONTROL "A4000/A4000T IDE",IDC_CS_IDE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,134,121,11
+ CONTROL "ROM Mirror (A8)",IDC_CS_KSMIRROR_A8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,147,121,11
+ CONTROL "No-EHB Denise",IDC_CS_NOEHB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,160,121,11
+ CONTROL "Z3 Autoconfig",IDC_CS_Z3AUTOCONFIG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,173,104,11
CONTROL "Custom register byte write bug",IDC_CS_BYTECUSTOMWRITEBUG,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,189,130,11
- CONTROL "DF0: ID Hardware",IDC_CS_DF0IDHW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,98,125,11
- CONTROL "CD32 NVRAM",IDC_CS_CD32NVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,111,125,11
- CONTROL "CDTV SRAM Expansion",IDC_CS_CDTVRAMEXP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,124,125,11
- CONTROL "CDTV-CR",IDC_CS_CDTVCR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,137,123,11
- CONTROL "PCMCIA",IDC_CS_PCMCIA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,150,125,11
- CONTROL "C00000 is Fast RAM",IDC_CS_SLOWISFAST,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,163,125,11
- CONTROL "A1000 Agnus (8361/8367)",IDC_CS_DIPAGNUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,176,125,11
- CONTROL "Composite color burst",IDC_CS_COMPOSITECOLOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,189,125,12
- GROUPBOX "Internal SCSI Hardware",IDC_STATIC,0,224,395,33
- CONTROL "A3000 WD33C93 SCSI",IDC_CS_DMAC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,239,108,11
- CONTROL "A4000T NCR53C710 SCSI",IDC_CS_DMAC2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,130,239,125,11
- CONTROL "CDTV WD33C93 SCSI",IDC_CS_CDTVSCSI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,263,239,121,11
- GROUPBOX "Chipset Revision",IDC_STATIC,1,259,393,46
- CONTROL "Ramsey revision:",IDC_CS_RAMSEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,275,97,11
- CONTROL "Fat Gary revision:",IDC_CS_FATGARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,289,97,11
- EDITTEXT IDC_CS_RAMSEYREV,136,274,45,13,ES_AUTOHSCROLL
- EDITTEXT IDC_CS_FATGARYREV,136,288,45,13,ES_AUTOHSCROLL
- CONTROL "Agnus/Alice revision:",IDC_CS_AGNUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,275,107,11
- CONTROL "Denise/Lisa revision:",IDC_CS_DENISE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,289,107,11
- EDITTEXT IDC_CS_AGNUSREV,311,274,45,13,ES_AUTOHSCROLL
- EDITTEXT IDC_CS_DENISEREV,311,289,45,13,ES_AUTOHSCROLL
- COMBOBOX IDC_CS_UNMAPPED,126,202,113,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- RTEXT "Unmapped address space:",IDC_STATIC,15,205,101,9
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,186,130,11
+ CONTROL "DF0: ID Hardware",IDC_CS_DF0IDHW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,95,125,11
+ CONTROL "CD32 NVRAM",IDC_CS_CD32NVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,108,125,11
+ CONTROL "CDTV SRAM Expansion",IDC_CS_CDTVRAMEXP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,121,125,11
+ CONTROL "CDTV-CR",IDC_CS_CDTVCR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,134,123,11
+ CONTROL "PCMCIA",IDC_CS_PCMCIA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,147,125,11
+ CONTROL "C00000 is Fast RAM",IDC_CS_SLOWISFAST,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,160,125,11
+ CONTROL "A1000 Agnus (8361/8367)",IDC_CS_DIPAGNUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,173,125,11
+ CONTROL "Composite color burst",IDC_CS_COMPOSITECOLOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,186,125,12
+ GROUPBOX "Internal SCSI Hardware",IDC_STATIC,0,232,395,30
+ CONTROL "A3000 WD33C93 SCSI",IDC_CS_DMAC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,247,108,11
+ CONTROL "A4000T NCR53C710 SCSI",IDC_CS_DMAC2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,130,247,125,11
+ CONTROL "CDTV WD33C93 SCSI",IDC_CS_CDTVSCSI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,263,247,121,11
+ GROUPBOX "Chipset Revision",IDC_STATIC,1,264,393,52
+ CONTROL "Ramsey revision:",IDC_CS_RAMSEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,285,97,11
+ CONTROL "Fat Gary revision:",IDC_CS_FATGARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,299,97,11
+ EDITTEXT IDC_CS_RAMSEYREV,136,284,45,13,ES_AUTOHSCROLL
+ EDITTEXT IDC_CS_FATGARYREV,136,298,45,13,ES_AUTOHSCROLL
+ CONTROL "Agnus/Alice revision:",IDC_CS_AGNUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,285,107,11
+ CONTROL "Denise/Lisa revision:",IDC_CS_DENISE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,299,107,11
+ EDITTEXT IDC_CS_AGNUSREV,311,284,45,13,ES_AUTOHSCROLL
+ EDITTEXT IDC_CS_DENISEREV,311,298,45,13,ES_AUTOHSCROLL
+ COMBOBOX IDC_CS_UNMAPPED,126,199,113,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ RTEXT "Unmapped address space:",IDC_STATIC,15,202,101,9
+ CONTROL "Toshiba Gary",IDC_CS_TOSHIBAGARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,200,125,12
+ CONTROL "KS ROM has Chip RAM speed",IDC_CS_ROMISSLOW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,214,125,12
END
IDD_AVIOUTPUT DIALOGEX 0, 0, 396, 260
STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
- LTEXT "System ROMs:",IDC_PATHS_ROML,3,2,167,8,SS_CENTERIMAGE
+ LTEXT "System ROMs:",IDC_PATHS_ROML,3,2,138,8,SS_CENTERIMAGE
EDITTEXT IDC_PATHS_ROM,3,13,377,15,ES_AUTOHSCROLL
PUSHBUTTON "...",IDC_PATHS_ROMS,384,13,11,15
- CONTROL "Scan subfolders",IDC_PATHS_RECURSIVEROMS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,177,1,197,11
- LTEXT "Configuration files:",IDC_PATHS_CONFIGL,3,32,164,8,SS_CENTERIMAGE
+ CONTROL "Scan subfolders",IDC_PATHS_RECURSIVEROMS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,1,197,11
+ LTEXT "Configuration files:",IDC_PATHS_CONFIGL,3,32,134,8,SS_CENTERIMAGE
EDITTEXT IDC_PATHS_CONFIG,3,44,377,15,ES_AUTOHSCROLL
PUSHBUTTON "...",IDC_PATHS_CONFIGS,384,43,11,15
- CONTROL "Cache Configuration files",IDC_PATHS_CONFIGCACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,177,31,197,11
- LTEXT "Screenshots:",IDC_PATHS_SCREENSHOTL,3,62,260,8,SS_CENTERIMAGE
+ CONTROL "Cache Configuration files",IDC_PATHS_CONFIGCACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,31,99,11
+ LTEXT "Screenshots:",IDC_PATHS_SCREENSHOTL,3,62,143,8,SS_CENTERIMAGE
EDITTEXT IDC_PATHS_SCREENSHOT,3,73,377,15,ES_AUTOHSCROLL
PUSHBUTTON "...",IDC_PATHS_SCREENSHOTS,384,72,11,15
- LTEXT "State files:",IDC_PATHS_STATEFILEL,3,91,260,8,SS_CENTERIMAGE
+ LTEXT "State files:",IDC_PATHS_STATEFILEL,3,91,129,8,SS_CENTERIMAGE
EDITTEXT IDC_PATHS_SAVESTATE,3,102,377,15,ES_AUTOHSCROLL
PUSHBUTTON "...",IDC_PATHS_SAVESTATES,384,101,11,15
- LTEXT "Videos:",IDC_PATHS_AVIOUTPUTL,3,120,260,8,SS_CENTERIMAGE
+ LTEXT "Videos:",IDC_PATHS_AVIOUTPUTL,3,120,130,8,SS_CENTERIMAGE
EDITTEXT IDC_PATHS_AVIOUTPUT,3,131,377,15,ES_AUTOHSCROLL
PUSHBUTTON "...",IDC_PATHS_AVIOUTPUTS,384,130,11,15
- LTEXT "Saveimages:",IDC_PATHS_SAVEIMAGEL,3,149,158,8,SS_CENTERIMAGE
+ LTEXT "Saveimages:",IDC_PATHS_SAVEIMAGEL,3,149,129,8,SS_CENTERIMAGE
EDITTEXT IDC_PATHS_SAVEIMAGE,3,161,377,15,ES_AUTOHSCROLL
PUSHBUTTON "...",IDC_PATHS_SAVEIMAGES,384,160,11,15
CONTROL "Use original image's path",IDC_PATHS_SAVEIMAGEORIGINALPATH,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,177,148,197,11
- LTEXT "Rips:",IDC_PATHS_RIPSL,3,179,260,8,SS_CENTERIMAGE
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,148,197,11
+ LTEXT "Rips:",IDC_PATHS_RIPSL,3,179,131,8,SS_CENTERIMAGE
EDITTEXT IDC_PATHS_RIP,3,190,377,15,ES_AUTOHSCROLL
PUSHBUTTON "...",IDC_PATHS_RIPS,383,189,11,15
PUSHBUTTON "Reset to defaults",IDC_PATHS_DEFAULT,2,212,92,14
PUSHBUTTON "Save All [] Create zip file that includes both logs and config file.",IDC_LOGSAVE,337,264,51,14
PUSHBUTTON "Open [] Open selected file.",IDC_LOGOPEN,337,280,51,14
EDITTEXT IDC_LOGPATH,7,281,324,13,ES_READONLY
+ CONTROL "Cache Boxart files",IDC_PATHS_ARTCACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,267,30,125,11
END
IDD_QUICKSTART DIALOGEX 0, 0, 396, 262
if (ledstate == oldled[led])
return;
oldled[led] = ledstate;
- RPSendMessage (RP_IPC_TO_HOST_POWERLED, ledstate, 0, NULL, 0, &guestinfo, NULL);
+ RPPostMessagex(RP_IPC_TO_HOST_POWERLED, ledstate, 0, &guestinfo);
break;
case LED_DF0:
case LED_DF1:
if (ledstate == oldled[led])
return;
oldled[led] = ledstate;
- RPPostMessagex (RP_IPC_TO_HOST_DEVICEACTIVITY, MAKEWORD (RP_DEVICECATEGORY_FLOPPY, led - LED_DF0),
+ RPPostMessagex(RP_IPC_TO_HOST_DEVICEACTIVITY, MAKEWORD (RP_DEVICECATEGORY_FLOPPY, led - LED_DF0),
MAKELONG ((ledstate & 1) ? -1 : 0, (ledstate & 2) ? RP_DEVICEACTIVITY_WRITE : RP_DEVICEACTIVITY_READ) , &guestinfo);
break;
}
TCHAR logpath[MAX_DPATH];
bool winuaelog_temporary_enable;
int af_path_2005;
-int quickstart = 1, configurationcache = 1, relativepaths = 0;
+int quickstart = 1, configurationcache = 1, relativepaths = 0, artcache = 0;
int saveimageoriginalpath = 0;
int recursiveromscan = 0;
else
regsetint (NULL, _T("ConfigurationCache"), configurationcache);
+ if (regexists(NULL, _T("ArtCache")))
+ regqueryint(NULL, _T("ArtCache"), &artcache);
+ else
+ regsetint(NULL, _T("ArtCache"), artcache);
+
if (regexists (NULL, _T("SaveImageOriginalPath")))
regqueryint (NULL, _T("SaveImageOriginalPath"), &saveimageoriginalpath);
else
#define LANG_DLL_FULL_VERSION_MATCH 1
#if WINUAEPUBLICBETA
-#define WINUAEBETA _T("8")
+#define WINUAEBETA _T("9")
#else
#define WINUAEBETA _T("")
#endif
-#define WINUAEDATE MAKEBD(2017, 11, 19)
+#define WINUAEDATE MAKEBD(2017, 12, 2)
//#define WINUAEEXTRA _T("AmiKit Preview")
//#define WINUAEEXTRA _T("Amiga Forever Edition")
extern OSVERSIONINFO osVersion;
extern int paraport_mask;
extern int gui_active;
-extern int quickstart, configurationcache, saveimageoriginalpath, relativepaths, recursiveromscan;
+extern int quickstart, configurationcache, saveimageoriginalpath, relativepaths, artcache, recursiveromscan;
extern HKEY hWinUAEKey;
extern int screen_is_picasso;
TCHAR HostLink[MAX_DPATH];
TCHAR HardwareLink[MAX_DPATH];
TCHAR Description[CFG_DESCRIPTION_LENGTH];
+ TCHAR Artpath[MAX_DPATH];
int Type, Directory;
struct ConfigStruct *Parent, *Child;
int host, hardware;
qs_override = 1;
if (type < 0) {
type = 0;
- cfgfile_get_description (fname, NULL, NULL, NULL, &type);
+ cfgfile_get_description(NULL, fname, NULL, NULL, NULL, &type);
}
if (type == 0 || type == 1) {
discard_prefs (p, 0);
return v;
if (type > 0)
return v;
+ if (cfgfile_detect_art(p, tmp1)) {
+ show_box_art(tmp1);
+ } else {
+ show_box_art(NULL);
+ }
for (i = 1; i <= 2; i++) {
if (type != i) {
size = sizeof (ct);
_tcsncat (dst, _T("configuration.cache"), MAX_DPATH);
}
+static void deleteconfigcache(void)
+{
+ TCHAR path[MAX_DPATH], path2[MAX_DPATH];
+ GetConfigPath(path, NULL, FALSE);
+ if (!path[0])
+ return;
+ getconfigcache(path2, path);
+ _wunlink(path2);
+}
+
static TCHAR *fgetsx (TCHAR *dst, FILE *f)
{
TCHAR *s2;
fgetsx (buf, zcache);
lines--;
cs->Type = _tstol (buf);
+ if (lines > 0) {
+ fgetsx(cs->Artpath, zcache);
+ lines--;
+ }
}
setconfighosthard (cs);
_stprintf (path2, _T("%d"), cs->Type);
fwrite (path2, _tcslen (path2), sizeof (TCHAR), zcache);
fwrite (&lf, 1, sizeof (TCHAR), zcache);
+ fwrite(cs->Artpath, _tcslen(cs->Artpath), sizeof(TCHAR), zcache);
+ fwrite(&lf, 1, sizeof(TCHAR), zcache);
}
fwrite (el, _tcslen (el), sizeof (TCHAR), zcache);
static void writeconfigcacherec (FILE *zcache, const TCHAR *relpath, struct ConfigStruct *cs)
{
- int i;
-
if (!cs->Directory)
return;
writeconfigcacheentry (zcache, relpath, cs);
- for (i = 0; i < configstoresize; i++) {
+ for (int i = 0; i < configstoresize; i++) {
struct ConfigStruct *cs2 = configstore[i];
if (cs2->Parent == cs)
writeconfigcacherec (zcache, relpath, cs2);
static void writeconfigcache (const TCHAR *path)
{
- int i;
TCHAR lf = 10;
FILE *zcache;
TCHAR cachepath[MAX_DPATH];
fwrite (&lf, 1, sizeof (TCHAR), zcache);
ul.HighPart = t.dwHighDateTime;
ul.LowPart = t.dwLowDateTime;
- _stprintf (path2, _T("3\n4\n7\n%I64u\n;\n"), ul.QuadPart);
+ _stprintf (path2, _T("3\n4\n8\n%I64u\n;\n"), ul.QuadPart);
fwrite (path2, _tcslen (path2), sizeof (TCHAR), zcache);
GetFullPathName (path, sizeof path2 / sizeof (TCHAR), path2, NULL);
- for (i = 0; i < configstoresize; i++) {
+ for (int i = 0; i < configstoresize; i++) {
struct ConfigStruct *cs = configstore[i];
if (cs->Directory && cs->Parent == NULL)
writeconfigcacherec (zcache, path2, cs);
}
- for (i = 0; i < configstoresize; i++) {
+ for (int i = 0; i < configstoresize; i++) {
struct ConfigStruct *cs = configstore[i];
if (!cs->Directory)
writeconfigcacheentry (zcache, path2, cs);
if (_tcslen (find_data.cFileName) > 4 && !strcasecmp (find_data.cFileName + _tcslen (find_data.cFileName) - 4, _T(".uae"))) {
_tcscpy (path3, path);
_tcsncat (path3, find_data.cFileName, MAX_DPATH);
- if (cfgfile_get_description (path3, config->Description, config->HostLink, config->HardwareLink, &config->Type)) {
- _tcscpy (config->Name, find_data.cFileName);
+ config->Artpath[0] = 0;
+ struct uae_prefs *p = cfgfile_open(path3, &config->Type);
+ if (p) {
+ cfgfile_get_description(p, NULL, config->Description, config->HostLink, config->HardwareLink, NULL);
+ _tcscpy(config->Name, find_data.cFileName);
+ if (artcache) {
+ cfgfile_detect_art(p, config->Artpath);
+ }
+ cfgfile_close(p);
ok = 1;
}
}
}
}
SendDlgItemMessage (hDlg, IDC_CONFIGLINK, CB_SETCURSEL, idx2, 0);
+ show_box_art(config && config->Artpath[0] ? config->Artpath : NULL);
}
static void DeleteConfigTree (HWND hDlg)
static void resetregistry (void)
{
- regdeletetree (NULL, _T("DetectedROMs"));
- regdelete (NULL, _T("QuickStartMode"));
- regdelete (NULL, _T("ConfigFile"));
- regdelete (NULL, _T("ConfigFileHardware"));
- regdelete (NULL, _T("ConfigFileHost"));
- regdelete (NULL, _T("ConfigFileHardware_Auto"));
- regdelete (NULL, _T("ConfigFileHost_Auto"));
- regdelete (NULL, _T("ConfigurationPath"));
- regdelete (NULL, _T("SaveimagePath"));
- regdelete (NULL, _T("ScreenshotPath"));
- regdelete (NULL, _T("StatefilePath"));
- regdelete (NULL, _T("VideoPath"));
- regdelete (NULL, _T("RipperPath"));
- regdelete (NULL, _T("QuickStartModel"));
- regdelete (NULL, _T("QuickStartConfiguration"));
- regdelete (NULL, _T("QuickStartCompatibility"));
- regdelete (NULL, _T("QuickStartHostConfig"));
- regdelete (NULL, _T("RecursiveROMScan"));
- regdelete (NULL, _T("ConfigurationCache"));
- regdelete (NULL, _T("SaveImageOriginalPath"));
- regdelete (NULL, _T("RelativePaths"));
- regdelete (NULL, _T("DirectDraw_Secondary"));
- regdelete (NULL, _T("ShownsupportedModes"));
+ regdeletetree(NULL, _T("DetectedROMs"));
+ regdelete(NULL, _T("QuickStartMode"));
+ regdelete(NULL, _T("ConfigFile"));
+ regdelete(NULL, _T("ConfigFileHardware"));
+ regdelete(NULL, _T("ConfigFileHost"));
+ regdelete(NULL, _T("ConfigFileHardware_Auto"));
+ regdelete(NULL, _T("ConfigFileHost_Auto"));
+ regdelete(NULL, _T("ConfigurationPath"));
+ regdelete(NULL, _T("SaveimagePath"));
+ regdelete(NULL, _T("ScreenshotPath"));
+ regdelete(NULL, _T("StatefilePath"));
+ regdelete(NULL, _T("VideoPath"));
+ regdelete(NULL, _T("RipperPath"));
+ regdelete(NULL, _T("QuickStartModel"));
+ regdelete(NULL, _T("QuickStartConfiguration"));
+ regdelete(NULL, _T("QuickStartCompatibility"));
+ regdelete(NULL, _T("QuickStartHostConfig"));
+ regdelete(NULL, _T("RecursiveROMScan"));
+ regdelete(NULL, _T("ConfigurationCache"));
+ regdelete(NULL, _T("ArtCache"));
+ regdelete(NULL, _T("SaveImageOriginalPath"));
+ regdelete(NULL, _T("RelativePaths"));
+ regdelete(NULL, _T("DirectDraw_Secondary"));
+ regdelete(NULL, _T("ShownsupportedModes"));
}
#include "zip.h"
setac (hDlg, IDC_PATHS_RIP);
CheckDlgButton(hDlg, IDC_PATHS_RECURSIVEROMS, recursiveromscan);
CheckDlgButton(hDlg, IDC_PATHS_CONFIGCACHE, configurationcache);
+ CheckDlgButton(hDlg, IDC_PATHS_ARTCACHE, artcache);
CheckDlgButton(hDlg, IDC_PATHS_SAVEIMAGEORIGINALPATH, saveimageoriginalpath);
CheckDlgButton(hDlg, IDC_PATHS_RELATIVE, relativepaths);
CheckDlgButton(hDlg, IDC_REGISTRYMODE, getregmode() != NULL);
regsetint (NULL, _T("RecursiveROMScan"), recursiveromscan);
break;
case IDC_PATHS_CONFIGCACHE:
- configurationcache = ischecked (hDlg, IDC_PATHS_CONFIGCACHE) ? 1 : 0;
- regsetint (NULL, _T("ConfigurationCache"), configurationcache);
+ configurationcache = ischecked(hDlg, IDC_PATHS_CONFIGCACHE) ? 1 : 0;
+ regsetint(NULL, _T("ConfigurationCache"), configurationcache);
+ deleteconfigcache();
+ break;
+ case IDC_PATHS_ARTCACHE:
+ artcache = ischecked(hDlg, IDC_PATHS_ARTCACHE) ? 1 : 0;
+ regsetint(NULL, _T("ArtCache"), artcache);
+ deleteconfigcache();
break;
case IDC_PATHS_SAVEIMAGEORIGINALPATH:
saveimageoriginalpath = ischecked (hDlg, IDC_PATHS_SAVEIMAGEORIGINALPATH) ? 1 : 0;
CheckDlgButton(hDlg, IDC_CS_1MCHIPJUMPER, workprefs.cs_1mchipjumper || workprefs.chipmem_size >= 0x100000);
CheckDlgButton(hDlg, IDC_CS_BYTECUSTOMWRITEBUG, workprefs.cs_bytecustomwritebug);
CheckDlgButton(hDlg, IDC_CS_COMPOSITECOLOR, workprefs.cs_color_burst);
+ CheckDlgButton(hDlg, IDC_CS_TOSHIBAGARY, workprefs.cs_toshibagary);
+ CheckDlgButton(hDlg, IDC_CS_ROMISSLOW, workprefs.cs_romisslow);
SendDlgItemMessage(hDlg, IDC_CS_UNMAPPED, CB_SETCURSEL, workprefs.cs_unmapped_space, 0);
txt[0] = 0;
_stprintf (txt, _T("%d"), workprefs.cs_rtc_adjust);
workprefs.cs_1mchipjumper = ischecked(hDlg, IDC_CS_1MCHIPJUMPER);
workprefs.cs_bytecustomwritebug = ischecked(hDlg, IDC_CS_BYTECUSTOMWRITEBUG);
workprefs.cs_color_burst = ischecked(hDlg, IDC_CS_COMPOSITECOLOR);
+ workprefs.cs_toshibagary = ischecked(hDlg, IDC_CS_TOSHIBAGARY);
+ workprefs.cs_romisslow = ischecked(hDlg, IDC_CS_ROMISSLOW);
LRESULT val = SendDlgItemMessage(hDlg, IDC_CS_UNMAPPED, CB_GETCURSEL, 0, 0L);
if (val != CB_ERR)
workprefs.cs_unmapped_space = val;
ew(hDlg, IDC_CS_1MCHIPJUMPER, e && workprefs.chipmem_size < 0x100000);
ew(hDlg, IDC_CS_BYTECUSTOMWRITEBUG, e);
ew(hDlg, IDC_CS_COMPOSITECOLOR, e);
+ ew(hDlg, IDC_CS_TOSHIBAGARY, e);
+ ew(hDlg, IDC_CS_ROMISSLOW, e);
ew(hDlg, IDC_CS_UNMAPPED, e);
}
case WM_INITDIALOG:
recursive++;
- if (current_tapedlg.ci.controller_type < HD_CONTROLLER_TYPE_SCSI_AUTO)
- current_tapedlg.ci.controller_type = HD_CONTROLLER_TYPE_SCSI_AUTO;
inithdcontroller(hDlg, current_tapedlg.ci.controller_type, current_tapedlg.ci.controller_type_unit, UAEDEV_TAPE, current_tapedlg.ci.rootdir[0] != 0);
SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER_UNIT, CB_SETCURSEL, current_tapedlg.ci.controller_type != HD_CONTROLLER_TYPE_PCMCIA ? current_tapedlg.ci.controller_unit : current_tapedlg.ci.controller_type_unit, 0);
setautocomplete (hDlg, IDC_PATH_NAME);
addhistorymenu(hDlg, current_tapedlg.ci.rootdir, IDC_PATH_NAME, HISTORY_TAPE, false);
- readonly = my_existsfile (current_tapedlg.ci.rootdir);
+ readonly = !tape_can_write(current_tapedlg.ci.rootdir);
CheckDlgButton (hDlg, IDC_TAPE_RW, current_tapedlg.ci.readonly == 0 && !readonly);
ew (hDlg, IDC_TAPE_RW, !readonly);
recursive--;
if (getcomboboxtext(hDlg, IDC_PATH_NAME, tmp, sizeof tmp / sizeof(TCHAR))) {
if (_tcscmp (tmp, current_tapedlg.ci.rootdir)) {
_tcscpy (current_tapedlg.ci.rootdir, tmp);
- readonly = my_existsfile (current_tapedlg.ci.rootdir);
+ readonly = !tape_can_write(current_tapedlg.ci.rootdir);
ew (hDlg, IDC_TAPE_RW, !readonly);
if (readonly)
CheckDlgButton (hDlg, IDC_TAPE_RW, FALSE);
GetDlgItemText (hDlg, IDC_PATH_NAME, current_tapedlg.ci.rootdir, sizeof current_tapedlg.ci.rootdir / sizeof (TCHAR));
DISK_history_add(current_tapedlg.ci.rootdir, -1, HISTORY_TAPE, 1);
fullpath (current_tapedlg.ci.rootdir, sizeof current_tapedlg.ci.rootdir / sizeof (TCHAR));
- readonly = my_existsfile (current_tapedlg.ci.rootdir);
+ readonly = !tape_can_write(current_tapedlg.ci.rootdir);
ew (hDlg, IDC_TAPE_RW, !readonly);
if (readonly)
CheckDlgButton (hDlg, IDC_TAPE_RW, FALSE);
}
_tcscpy (current_tapedlg.ci.rootdir, directory_path);
DISK_history_add(current_tapedlg.ci.rootdir, -1, HISTORY_TAPE, 1);
- readonly = my_existsfile (current_tapedlg.ci.rootdir);
+ readonly = !tape_can_write(current_tapedlg.ci.rootdir);
ew (hDlg, IDC_TAPE_RW, !readonly);
if (readonly)
CheckDlgButton (hDlg, IDC_TAPE_RW, FALSE);
RECT r;
GetWindowRect (hDlg, &r);
- *width = r.right - r.left;
- *height = r.bottom - r.top;
+ *width = (r.right - r.left);
+ *height = (r.bottom - r.top);
}
static HWND updatePanel (int id, UINT action)
gui_height = r2c.bottom;
fullpanel = ppage[id].fullpanel;
- tres = scaleresource (ppage[id].nres, hDlg, -1, 0, 0);
+ tres = scaleresource (ppage[id].nres, hDlg, -1, 0, 0, false);
panelDlg = CreateDialogIndirectParam (tres->inst, tres->resource, hDlg, ppage[id].dlgproc, id);
freescaleresource(tres);
RECT *r = (RECT*)lParam;
previous_dpix = dx;
previous_dpiy = dy;
- gui_width = r->right - r->left;
- gui_height = r->bottom - r->top;
+ gui_width = (r->right - r->left);
+ gui_height = (r->bottom - r->top);
gui_size_changed = 1;
}
}
res = getresource (templ);
if (!res)
return h;
- r = scaleresource (res, hDlg, -1, 0, 0);
+ r = scaleresource (res, hDlg, -1, 0, 0, false);
if (r) {
h = DialogBoxIndirect (r->inst, r->resource, hDlg, proc);
freescaleresource (r);
res = getresource (templ);
if (!res)
return h;
- r = scaleresource (res, hDlg, -1, 0, 0);
+ r = scaleresource (res, hDlg, -1, 0, 0, false);
if (r) {
h = CreateDialogIndirect (r->inst, r->resource, hDlg, proc);
freescaleresource (r);
}
}
- tres = scaleresource (panelresource, hwnd, gui_resize_enabled, gui_fullscreen, workprefs.win32_gui_alwaysontop || workprefs.win32_main_alwaysontop ? WS_EX_TOPMOST : 0);
+ tres = scaleresource (panelresource, hwnd, gui_resize_enabled, gui_fullscreen, workprefs.win32_gui_alwaysontop || workprefs.win32_main_alwaysontop ? WS_EX_TOPMOST : 0, true);
dhwnd = CreateDialogIndirect (tres->inst, tres->resource, isfullscreen () != 0 ? hwnd : NULL, DialogProc);
dialog_rect.top = dialog_rect.left = 0;
dialog_rect.right = tres->width;
extern struct uae_prefs workprefs;
-extern struct newresource *scaleresource (struct newresource *res, HWND, int, int, DWORD);
+extern struct newresource *scaleresource (struct newresource *res, HWND, int, int, DWORD, bool);
extern void freescaleresource (struct newresource*);
extern void scaleresource_setmult (HWND hDlg, int w, int h, int fs);
extern void scaleresource_getmult (int *mx, int *my);
extern void scaleresource_getdpimult (double*, double*, int*, int*);
extern void scalaresource_listview_font_info(int*);
extern int getscaledfontsize(int size);
+extern bool show_box_art(const TCHAR*);
#endif
#include "win32.h"
#include "win32gui.h"
#include "xwin.h"
+#include "zfile.h"
#define MAX_GUI_FONTS 2
#define DEFAULT_FONTSIZE 8
static TEXTMETRIC listview_tm;
static const TCHAR *fontprefix;
+#define BASEMULT 1000
+static int baseunitx, baseunity;
+static RECT baserect, baseclientrect;
+static int baseborderwidth, baseborderheight;
+static int basewidth, baseheight;
+static int baseclientwidth, baseclientheight;
+
#include <pshpack2.h>
typedef struct {
WORD dlgVer;
extern int full_property_sheet;
-static struct newresource *scaleresource2 (struct newresource *res, HWND parent, int resize, int fullscreen, DWORD exstyle)
+static struct newresource *scaleresource2 (struct newresource *res, HWND parent, int resize, int fullscreen, DWORD exstyle, bool main)
{
+ static int main_width, main_height;
+
DLGTEMPLATEEX *d, *s;
DLGTEMPLATEEX_END *d2, *s2;
DLGITEMTEMPLATEEX *dt;
return ns;
}
-struct newresource *scaleresource (struct newresource *res, HWND parent, int resize, int fullscreen, DWORD exstyle)
+struct newresource *scaleresource (struct newresource *res, HWND parent, int resize, int fullscreen, DWORD exstyle, bool main)
{
- return scaleresource2(res, parent, resize, fullscreen, exstyle);
+ return scaleresource2(res, parent, resize, fullscreen, exstyle, main);
}
void freescaleresource (struct newresource *ns)
openfont (true);
}
-#define BASEMULT 1000
-static int baseunitx, baseunity;
-static RECT baserect, baseclientrect;
-static int baseborderwidth, baseborderheight;
-static int basewidth, baseheight;
-static int baseclientwidth, baseclientheight;
-
static INT_PTR CALLBACK TestProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
if (msg == WM_INITDIALOG) {
write_log (_T("getbaseunits fail!\n"));
abort();
}
- nr2 = scaleresource2(nr, NULL, -1, 0, 0);
+ nr2 = scaleresource2(nr, NULL, -1, 0, 0, false);
hwnd = CreateDialogIndirect (nr2->inst, nr2->resource, NULL, TestProc);
if (hwnd) {
DestroyWindow (hwnd);
openfont (true);
-
return 1;
}
+#include <gdiplus.h>
+
+static bool boxart_inited;
+static ULONG_PTR gdiplusToken;
+
+static void boxart_init(void)
+{
+ Gdiplus::GdiplusStartupInput gdiplusStartupInput;
+ Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
+}
+
+static const TCHAR *boxartnames[] = {
+ _T("Boxart"),
+ _T("SShot"),
+ _T("Title"),
+ NULL
+};
+
+bool show_box_art(const TCHAR *path)
+{
+ TCHAR tmp1[MAX_DPATH];
+
+ if (!path || !artcache)
+ return false;
+ if (!boxart_inited) {
+ boxart_init();
+ boxart_inited = true;
+ }
+
+ write_log(_T("Box art path '%s'\n"), path);
+ for (int i = 0; boxartnames[i]; i++) {
+ _tcscpy(tmp1, path);
+ _tcscat(tmp1, _T("___"));
+ _tcscat(tmp1, boxartnames[i]);
+ _tcscat(tmp1, _T(".png"));
+
+ Gdiplus::Image *image = Gdiplus::Image::FromFile(tmp1);
+ // above returns out of memory if file does not exist!
+ if (image->GetLastStatus() != Gdiplus::Ok) {
+ _tcscpy(tmp1 + _tcslen(tmp1) - 3, _T("jpg"));
+ image = Gdiplus::Image::FromFile(tmp1);
+ }
+ if (image->GetLastStatus() == Gdiplus::Ok) {
+ int w = image->GetWidth();
+ int h = image->GetHeight();
+ write_log(_T("Image '%s' loaded %d*%d\n"), tmp1, w, h);
+ }
+ delete image;
+ }
+ return true;
+}
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <AdditionalDependencies>ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;libpng16.lib;lglcd.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;hid.lib;zlibstat.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;libpng16.lib;lglcd.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;hid.lib;zlibstat.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<AdditionalManifestDependencies>%(AdditionalManifestDependencies)</AdditionalManifestDependencies>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
- <DelayLoadDLLs>d3dx9_43.dll;openal32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;wininet.dll;ddraw.dll;Iphlpapi.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <DelayLoadDLLs>d3dx9_43.dll;openal32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;wininet.dll;ddraw.dll;Iphlpapi.dll;gdiplus.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>.\Release/winuae.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
- <StackReserveSize>2621440</StackReserveSize>
- <StackCommitSize>2621440</StackCommitSize>
+ <StackReserveSize>
+ </StackReserveSize>
+ <StackCommitSize>
+ </StackCommitSize>
<LargeAddressAware>true</LargeAddressAware>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <AdditionalDependencies>ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;libpng16.lib;lglcd.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;hid.lib;zlibstat.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;libpng16.lib;lglcd.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;hid.lib;zlibstat.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>.\Test/winuae.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
- <StackReserveSize>2621440</StackReserveSize>
- <StackCommitSize>2621440</StackCommitSize>
+ <StackReserveSize>
+ </StackReserveSize>
+ <StackCommitSize>
+ </StackCommitSize>
<LargeAddressAware>true</LargeAddressAware>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <AdditionalDependencies>ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ShowProgress>NotSet</ShowProgress>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(Platform)\$(Configuration)\winuae.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
- <StackReserveSize>0</StackReserveSize>
- <StackCommitSize>0</StackCommitSize>
+ <StackReserveSize>
+ </StackReserveSize>
+ <StackCommitSize>
+ </StackCommitSize>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(Platform)\$(Configuration)\winuae.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
- <StackReserveSize>0</StackReserveSize>
- <StackCommitSize>0</StackCommitSize>
+ <StackReserveSize>
+ </StackReserveSize>
+ <StackCommitSize>
+ </StackCommitSize>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <AdditionalDependencies>ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;zlibstat.lib;libpng16.lib;lglcd.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;prowizard.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;zlibstat.lib;libpng16.lib;lglcd.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;prowizard.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<AdditionalManifestDependencies>%(AdditionalManifestDependencies)</AdditionalManifestDependencies>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
- <DelayLoadDLLs>d3dx9_43.dll;openal32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;wininet.dll;ddraw.dll;Iphlpapi.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <DelayLoadDLLs>d3dx9_43.dll;openal32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;wininet.dll;ddraw.dll;Iphlpapi.dll;gdiplus.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>.\FullRelease/winuae.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
- <StackReserveSize>2621440</StackReserveSize>
- <StackCommitSize>2621440</StackCommitSize>
+ <StackReserveSize>
+ </StackReserveSize>
+ <StackCommitSize>
+ </StackCommitSize>
<LargeAddressAware>true</LargeAddressAware>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <AdditionalDependencies>ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ShowProgress>NotSet</ShowProgress>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries);MSVCRT</IgnoreSpecificDefaultLibraries>
- <DelayLoadDLLs>d3dx9_43.dll;openal32.dll;portaudio_x64.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <DelayLoadDLLs>d3dx9_43.dll;openal32.dll;portaudio_x64.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;gdiplus.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>.\x64\FullRelease/winuae.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
- <StackReserveSize>0</StackReserveSize>
- <StackCommitSize>0</StackCommitSize>
+ <StackReserveSize>
+ </StackReserveSize>
+ <StackCommitSize>
+ </StackCommitSize>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<TargetMachine>MachineX64</TargetMachine>
<BaseAddress>0x10000000</BaseAddress>
<AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
+ <LargeAddressAware>true</LargeAddressAware>
</Link>
<Manifest>
<AdditionalManifestFiles>..\resources\winuae64.exe.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
- RTG VRAM is outside of reserved natmem space. Workaround: Move RTG in earlier position using Hardware info GUI panel.\r
Note that in 64-bit version RTG VRAM must be inside of reserved natmem space. (Outside = error message and return back to GUI)\r
\r
+Beta 9:\r
+\r
+- Added workaround that disables RTG HW sprite if enabled in D3D11 mode. (HW sprite is not yet supported in D3D11)\r
+- Fixed D3D11 position calculation bug that for example caused full window RTG to be partially off-screen.\r
+- 16-bit color depth is now supported in D3D11 mode.\r
+- D3D11 to D3D9 fall back didn't work correctly, it tried D3D11 twice and then selected DirectDraw.\r
+- READ CD-DA (MSF) really works now.\r
+- KS 1.2 autoboot didn't work without extra reset if UAE autoconfig board wasn't first board in autoconfig chain.\r
+- Fixed AdIDE emulation, AdIDE data line "scrambling" got broken in b1.\r
+- Added untested ATAPI tape drive support.\r
+- Selecting index.tape directly (instead of selecting directory where it is located) will also mount the tape in directory mode.\r
+- Tape emulation ignored new index file if tape was first written, rewound and read in same session.\r
+- Tape emulation accuracy improvements.\r
+- Added Toshiba Gary to Advanced chipset, if ticked, 0xe80000 to 0xf7ffff has chip ram access speed.\r
+- Added ROM is slow (Toshiba Gary without transistor fix), KS ROM space also has chip ram access speed.\r
+- 68030 data cache emulation didn't work correctly if write was cached and address was odd. (Bug found by Hatari developers)\r
+- ECS Denise BPLCON2 ECS-only bits were masked unless AGA was selected, ECS-specific KILLEHB linetoscr was not implemented. Seven Seas/Andromeda now shows correctly corrupted palette if ECS Denise.\r
+- IDE FORMAT TRACK fixed, it needs to transfer single block of data (and then toss it away). Fixes Gigatron Arriba installer.\r
+- Emulated Gigatron Arriba IDE controller. ROM dump not available.\r
+- 64-bit only bad stack linker setting correctded, caused random crashes and caused file dialogs to crash if certain shell extensions were installed. (Thanks mutetus!)\r
+\r
Beta 8:\r
\r
- Replaced b7 unmapped zero checkbox with a 3 option select menu. Different A2000/B2000 variants can have either pullup or pulldown resistors connected to CPU data lines.\r
{
uaecptr loop;
- if (!uae_boot_rom_type)
+ if (!uae_boot_rom_type && !currprefs.uaeboard)
return;
loop = here ();
org (UAEEXE_ORG);
void emulib_install (void)
{
uaecptr a;
- if (!uae_boot_rom_type)
+ if (!uae_boot_rom_type && !currprefs.uaeboard)
return;
a = here ();
currprefs.mmkeyboard = 0;
org (rtarea_base + 0xFF60);
-#if 0
- dw (0x4eb9);
- dw ((rtarea_base >> 16) | get_word (rtarea_base + 36));
- dw (get_word (rtarea_base + 38) + 12);
-#endif
calltrap (deftrapres (uaelib_demux, 0, _T("uaelib_demux")));
dw (RTS);
org (a);