This commit is contained in:
Toni Wilen 2017-12-02 18:47:32 +02:00
parent 1f39a2c92c
commit c81a3c40cb
16 changed files with 429 additions and 177 deletions

View File

@ -2158,6 +2158,8 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
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);
@ -3970,6 +3972,8 @@ struct uaedev_config_data *add_filesys_config (struct uae_prefs *p, int index, s
} 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 {
@ -5030,6 +5034,8 @@ static int cfgfile_parse_hardware (struct uae_prefs *p, const TCHAR *option, TCH
|| 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)
@ -6073,11 +6079,55 @@ static int cfgfile_load_2 (struct uae_prefs *p, const TCHAR *filename, bool real
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;
}
}
}
}
@ -6182,25 +6232,82 @@ int cfgfile_save (struct uae_prefs *p, const TCHAR *filename, int type)
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)
{
int result = 0;
struct uae_prefs *p = xmalloc (struct uae_prefs, 1);
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)
{
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)

View File

@ -2972,27 +2972,34 @@ void DISK_select (uae_u8 data)
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);
}
}

View File

@ -15,7 +15,7 @@
#ifdef DEBUGGER
#define MAX_HIST 500
#define MAX_LINEWIDTH 100
#define MAX_LINEWIDTH 150
extern int debugging;
extern int memwatch_enabled;

View File

@ -612,6 +612,8 @@ struct uae_prefs {
bool cs_cia6526;
bool cs_bytecustomwritebug;
bool cs_color_burst;
bool cs_romisslow;
bool cs_toshibagary;
int cs_unmapped_space;
int cs_hacks;
@ -871,12 +873,14 @@ extern void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type
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);
@ -893,6 +897,7 @@ extern void fixup_prefs (struct uae_prefs *prefs, bool userconfig);
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);

View File

@ -1129,7 +1129,9 @@
#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
@ -1196,6 +1198,7 @@
#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

View File

@ -382,7 +382,7 @@ BEGIN
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
@ -764,7 +764,7 @@ BEGIN
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
@ -775,51 +775,53 @@ 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
@ -1026,29 +1028,29 @@ IDD_PATHS DIALOGEX 0, 0, 396, 303
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
@ -1065,6 +1067,7 @@ BEGIN
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

View File

@ -1807,7 +1807,7 @@ void rp_update_leds (int led, int onoff, int brightness, int write)
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:
@ -1818,7 +1818,7 @@ void rp_update_leds (int led, int onoff, int brightness, int write)
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;
}

View File

@ -212,7 +212,7 @@ TCHAR bootlogpath[MAX_DPATH];
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;
@ -5037,6 +5037,11 @@ static void WIN32_HandleRegistryStuff (void)
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

View File

@ -20,12 +20,12 @@
#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")
@ -96,7 +96,7 @@ extern BOOL os_dwm_enabled;
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;

View File

@ -2088,6 +2088,7 @@ struct ConfigStruct {
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;
@ -2138,7 +2139,7 @@ int target_cfgfile_load (struct uae_prefs *p, const TCHAR *filename, int type, i
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);
@ -2162,6 +2163,11 @@ int target_cfgfile_load (struct uae_prefs *p, const TCHAR *filename, int type, i
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);
@ -3341,6 +3347,16 @@ static void getconfigcache (TCHAR *dst, const TCHAR *path)
_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;
@ -3549,6 +3565,10 @@ static struct ConfigStruct *readconfigcache (const TCHAR *path)
fgetsx (buf, zcache);
lines--;
cs->Type = _tstol (buf);
if (lines > 0) {
fgetsx(cs->Artpath, zcache);
lines--;
}
}
setconfighosthard (cs);
@ -3616,6 +3636,8 @@ static void writeconfigcacheentry (FILE *zcache, const TCHAR *relpath, struct Co
_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);
@ -3623,12 +3645,10 @@ static void writeconfigcacheentry (FILE *zcache, const TCHAR *relpath, struct Co
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);
@ -3637,7 +3657,6 @@ static void writeconfigcacherec (FILE *zcache, const TCHAR *relpath, struct Conf
static void writeconfigcache (const TCHAR *path)
{
int i;
TCHAR lf = 10;
FILE *zcache;
TCHAR cachepath[MAX_DPATH];
@ -3661,15 +3680,15 @@ static void writeconfigcache (const TCHAR *path)
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);
@ -3755,8 +3774,15 @@ static struct ConfigStruct *GetConfigs (struct ConfigStruct *configparent, int u
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;
}
}
@ -5191,6 +5217,7 @@ static void InitializeConfig (HWND hDlg, struct ConfigStruct *config)
}
}
SendDlgItemMessage (hDlg, IDC_CONFIGLINK, CB_SETCURSEL, idx2, 0);
show_box_art(config && config->Artpath[0] ? config->Artpath : NULL);
}
static void DeleteConfigTree (HWND hDlg)
@ -5753,29 +5780,30 @@ static void rewritepaths(void)
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"
@ -5962,6 +5990,7 @@ static INT_PTR CALLBACK PathsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
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);
@ -6196,8 +6225,14 @@ static INT_PTR CALLBACK PathsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
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;
@ -8103,6 +8138,8 @@ static void values_to_chipsetdlg2 (HWND hDlg)
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);
@ -8194,6 +8231,8 @@ static void values_from_chipsetdlg2 (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
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;
@ -8283,6 +8322,8 @@ static void enable_for_chipsetdlg2 (HWND hDlg)
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);
}
@ -13082,13 +13123,11 @@ static INT_PTR CALLBACK TapeDriveSettingsProc (HWND hDlg, UINT msg, WPARAM wPara
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--;
@ -13103,7 +13142,7 @@ static INT_PTR CALLBACK TapeDriveSettingsProc (HWND hDlg, UINT msg, WPARAM wPara
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);
@ -13146,7 +13185,7 @@ static INT_PTR CALLBACK TapeDriveSettingsProc (HWND hDlg, UINT msg, WPARAM wPara
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);
@ -13166,7 +13205,7 @@ static INT_PTR CALLBACK TapeDriveSettingsProc (HWND hDlg, UINT msg, WPARAM wPara
}
_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);
@ -19336,8 +19375,8 @@ static void getguisize (HWND hDlg, int *width, int *height)
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)
@ -19414,7 +19453,7 @@ 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);
@ -19992,8 +20031,8 @@ static INT_PTR CALLBACK DialogProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
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;
}
}
@ -20232,7 +20271,7 @@ INT_PTR CustomDialogBox (int templ, HWND hDlg, DLGPROC proc)
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);
@ -20251,7 +20290,7 @@ HWND CustomCreateDialog (int templ, HWND hDlg, DLGPROC proc)
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);
@ -20538,7 +20577,7 @@ static int GetSettings (int all_options, HWND hwnd)
}
}
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;

View File

@ -33,7 +33,7 @@ struct newresource
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);
@ -48,4 +48,5 @@ extern void scaleresource_setfont (HWND hDlg);
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

View File

@ -11,6 +11,7 @@
#include "win32.h"
#include "win32gui.h"
#include "xwin.h"
#include "zfile.h"
#define MAX_GUI_FONTS 2
#define DEFAULT_FONTSIZE 8
@ -36,6 +37,13 @@ static HFONT listviewfont;
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;
@ -216,8 +224,10 @@ static INT_PTR CALLBACK DummyProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lP
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;
@ -314,9 +324,9 @@ static struct newresource *scaleresource2 (struct newresource *res, HWND parent,
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)
@ -462,13 +472,6 @@ void scaleresource_setdefaults (void)
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) {
@ -498,7 +501,7 @@ static void getbaseunits (int fullscreen)
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);
@ -685,7 +688,57 @@ int scaleresource_choosefont (HWND hDlg, int fonttype)
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;
}

View File

@ -357,18 +357,20 @@
<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>
@ -436,7 +438,7 @@
<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>
@ -446,8 +448,10 @@
<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>
@ -514,7 +518,7 @@
<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>
@ -524,8 +528,10 @@
<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>
@ -598,8 +604,10 @@
<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>
@ -662,18 +670,20 @@
<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>
@ -740,18 +750,20 @@
<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>
@ -761,6 +773,7 @@
<TargetMachine>MachineX64</TargetMachine>
<BaseAddress>0x10000000</BaseAddress>
<AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
<LargeAddressAware>true</LargeAddressAware>
</Link>
<Manifest>
<AdditionalManifestFiles>..\resources\winuae64.exe.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>

View File

@ -4,6 +4,27 @@ JIT Direct current rules are less complex now. It automatically switches off onl
- RTG VRAM is outside of reserved natmem space. Workaround: Move RTG in earlier position using Hardware info GUI panel.
Note that in 64-bit version RTG VRAM must be inside of reserved natmem space. (Outside = error message and return back to GUI)
Beta 9:
- Added workaround that disables RTG HW sprite if enabled in D3D11 mode. (HW sprite is not yet supported in D3D11)
- Fixed D3D11 position calculation bug that for example caused full window RTG to be partially off-screen.
- 16-bit color depth is now supported in D3D11 mode.
- D3D11 to D3D9 fall back didn't work correctly, it tried D3D11 twice and then selected DirectDraw.
- READ CD-DA (MSF) really works now.
- KS 1.2 autoboot didn't work without extra reset if UAE autoconfig board wasn't first board in autoconfig chain.
- Fixed AdIDE emulation, AdIDE data line "scrambling" got broken in b1.
- Added untested ATAPI tape drive support.
- Selecting index.tape directly (instead of selecting directory where it is located) will also mount the tape in directory mode.
- Tape emulation ignored new index file if tape was first written, rewound and read in same session.
- Tape emulation accuracy improvements.
- Added Toshiba Gary to Advanced chipset, if ticked, 0xe80000 to 0xf7ffff has chip ram access speed.
- Added ROM is slow (Toshiba Gary without transistor fix), KS ROM space also has chip ram access speed.
- 68030 data cache emulation didn't work correctly if write was cached and address was odd. (Bug found by Hatari developers)
- 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.
- IDE FORMAT TRACK fixed, it needs to transfer single block of data (and then toss it away). Fixes Gigatron Arriba installer.
- Emulated Gigatron Arriba IDE controller. ROM dump not available.
- 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!)
Beta 8:
- 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.

View File

@ -28,7 +28,7 @@ void uaeexe_install (void)
{
uaecptr loop;
if (!uae_boot_rom_type)
if (!uae_boot_rom_type && !currprefs.uaeboard)
return;
loop = here ();
org (UAEEXE_ORG);

View File

@ -462,16 +462,11 @@ static uae_u32 REGPARAM2 uaelib_demux (TrapContext *ctx)
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);