From 801041c4a9b58b6062ec9ba34090c6af867d2fb6 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sun, 27 Nov 2016 17:21:44 +0200 Subject: [PATCH] 3400b17 --- .gitignore | 2 + cfgfile.cpp | 18 +++++++- expansion.cpp | 13 +++++- od-win32/resources/resource.h | 1 + od-win32/resources/winuae.rc | 17 ++++---- od-win32/uaeunp/uaeunp.vcxproj | 8 ++-- od-win32/win32.h | 4 +- od-win32/win32gfx.cpp | 4 ++ od-win32/win32gui.cpp | 48 +++++++++++++--------- od-win32/winuae_msvc15/winuae_msvc.vcxproj | 11 ++--- od-win32/winuaechangelog.txt | 23 +++++++++++ 11 files changed, 106 insertions(+), 43 deletions(-) diff --git a/.gitignore b/.gitignore index aa098746..44d2b211 100644 --- a/.gitignore +++ b/.gitignore @@ -74,3 +74,5 @@ aros.rom.cpp packages packages.config *.sqlite +*.db-shm +*.db-wal diff --git a/cfgfile.cpp b/cfgfile.cpp index 0922241b..fa1d534a 100644 --- a/cfgfile.cpp +++ b/cfgfile.cpp @@ -211,7 +211,7 @@ static const TCHAR *cdmodes[] = { _T("disabled"), _T(""), _T("image"), _T("ioctl static const TCHAR *cdconmodes[] = { _T(""), _T("uae"), _T("ide"), _T("scsi"), _T("cdtv"), _T("cd32"), 0 }; static const TCHAR *specialmonitors[] = { _T("none"), _T("autodetect"), _T("a2024"), _T("graffiti"), _T("ham_e"), _T("ham_e_plus"), _T("videodac18"), _T("avideo12"), _T("avideo24"), _T("firecracker24"), _T("dctv"), _T("opalvision"), _T("colorburst"), 0 }; -static const TCHAR *genlockmodes[] = { _T("none"), _T("noise"), _T("testcard"), _T("image"), _T("video"), _T("stream"), NULL }; +static const TCHAR *genlockmodes[] = { _T("none"), _T("noise"), _T("testcard"), _T("image"), _T("video"), _T("stream"), _T("ld"), NULL }; static const TCHAR *ppc_implementations[] = { _T("auto"), _T("dummy"), @@ -1326,6 +1326,9 @@ static bool cfgfile_readramboard(const TCHAR *option, const TCHAR *value, const s = cfgfile_option_get(value, _T("pid")); if (s) rb->product = _tstol(s); + s = cfgfile_option_get(value, _T("no_reset_unmap")); + if (s) + rb->no_reset_unmap = true; s = cfgfile_option_get(value, _T("data")); if (s && _tcslen(s) >= 3 * 16 - 1) { rb->autoconfig_inuse = true; @@ -1354,6 +1357,7 @@ static bool cfgfile_readramboard(const TCHAR *option, const TCHAR *value, const TCHAR *endptr; rb->write_address = _tcstol(s1, &endptr, 16); } + return true; } } @@ -1381,6 +1385,12 @@ static void cfgfile_writeramboard(struct uae_prefs *prefs, struct zfile *f, cons _stprintf(p, _T("mid=%u,pid=%u"), rb->manufacturer, rb->product); p += _tcslen(p); } + if (rb->no_reset_unmap) { + if (tmp2[0]) + *p++ = ','; + _tcscpy(p, _T("no_reset_unmap=true")); + p += _tcslen(p); + } if (rb->autoconfig_inuse) { uae_u8 *ac = rb->autoconfig; if (tmp2[0]) @@ -1882,10 +1892,12 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type) cfgfile_write_bool (f, _T("ntsc"), p->ntscmode); cfgfile_write_bool(f, _T("genlock"), p->genlock); cfgfile_dwrite_bool(f, _T("genlock_alpha"), p->genlock_alpha); + cfgfile_dwrite_bool(f, _T("genlock_aspect"), p->genlock_aspect); cfgfile_dwrite_str(f, _T("genlockmode"), genlockmodes[p->genlock_image]); cfgfile_dwrite_str(f, _T("genlock_image"), p->genlock_image_file); cfgfile_dwrite_str(f, _T("genlock_video"), p->genlock_video_file); cfgfile_dwrite(f, _T("genlock_mix"), _T("%d"), p->genlock_mix); + cfgfile_dwrite(f, _T("genlock_scale"), _T("%d"), p->genlock_scale); cfgfile_dwrite_str(f, _T("monitoremu"), specialmonitors[p->monitoremu]); cfgfile_dwrite_bool (f, _T("show_leds"), !!(p->leds_on_screen & STATUSLINE_CHIPSET)); @@ -4736,6 +4748,7 @@ static int cfgfile_parse_hardware (struct uae_prefs *p, const TCHAR *option, TCH || cfgfile_yesno (option, value, _T("sana2"), &p->sana2) || cfgfile_yesno(option, value, _T("genlock"), &p->genlock) || cfgfile_yesno(option, value, _T("genlock_alpha"), &p->genlock_alpha) + || cfgfile_yesno(option, value, _T("genlock_aspect"), &p->genlock_aspect) || cfgfile_yesno(option, value, _T("cpu_compatible"), &p->cpu_compatible) || cfgfile_yesno(option, value, _T("cpu_threaded"), &p->cpu_thread) || cfgfile_yesno(option, value, _T("cpu_24bit_addressing"), &p->address_space_24) @@ -4795,6 +4808,7 @@ static int cfgfile_parse_hardware (struct uae_prefs *p, const TCHAR *option, TCH || cfgfile_intval (option, value, _T("uae_hide"), &p->uae_hide, 1) || cfgfile_intval (option, value, _T("cpu_frequency"), &p->cpu_frequency, 1) || cfgfile_intval(option, value, _T("kickstart_ext_rom_file2addr"), &p->romextfile2addr, 1) + || cfgfile_intval(option, value, _T("genlock_scale"), &p->genlock_scale, 1) || cfgfile_intval(option, value, _T("genlock_mix"), &p->genlock_mix, 1)) return 1; @@ -5273,7 +5287,7 @@ void cfgfile_compatibility_rtg(struct uae_prefs *p) } else if (romtype == ROMTYPE_x86_VGA) { romname = _T(""); } - addbcromtype(p, romtype, false, romname, devnum); + addbcromtype(p, romtype, true, romname, devnum); devnum++; } } diff --git a/expansion.cpp b/expansion.cpp index ba86c427..e86cf532 100644 --- a/expansion.cpp +++ b/expansion.cpp @@ -1695,6 +1695,11 @@ static bool expamem_init_fastcard_2(struct autoconfig_info *aci, int zorro) } memcpy(aci->autoconfig_raw, expamem, sizeof aci->autoconfig_raw); + + if (p->fastmem[aci->devnum].no_reset_unmap && bank->allocated_size) { + map_banks_z2(bank, bank->start >> 16, size >> 16); + } + return true; } @@ -1916,7 +1921,7 @@ static bool expamem_init_z3fastmem(struct autoconfig_info *aci) return true; uae_u32 start = bank->start; - bool alwaysmapz3 = aci->prefs->z3_mapping_mode != Z3MAPPING_REAL; + bool alwaysmapz3 = aci->prefs->z3_mapping_mode != Z3MAPPING_REAL || aci->prefs->z3fastmem[aci->devnum].no_reset_unmap; if ((alwaysmapz3 || expamem_z3hack(aci->prefs)) && bank->allocated_size) { map_banks_z3(bank, start >> 16, size >> 16); } @@ -3558,10 +3563,14 @@ void expansion_map(void) struct ramboard *rb = &currprefs.fastmem[i]; if (rb->manual_config) { map_banks(&fastmem_bank[i], rb->start_address >> 16, (rb->end_address - rb->start_address + 1) >> 16, 0); + } else if (rb->no_reset_unmap && rb->start_address) { + map_banks(&fastmem_bank[i], rb->start_address >> 16, rb->size >> 16, 0); } rb = &currprefs.z3fastmem[i]; if (rb->manual_config) { map_banks(&z3fastmem_bank[i], rb->start_address >> 16, (rb->end_address - rb->start_address + 1) >> 16, 0); + } else if (rb->no_reset_unmap && rb->start_address) { + map_banks(&z3fastmem_bank[i], rb->start_address >> 16, rb->size >> 16, 0); } } if (currprefs.z3chipmem_size) { @@ -5552,4 +5561,4 @@ const struct memoryboardtype memoryboards[] { NULL } -}; \ No newline at end of file +}; diff --git a/od-win32/resources/resource.h b/od-win32/resources/resource.h index 7fb31c43..07a0b648 100644 --- a/od-win32/resources/resource.h +++ b/od-win32/resources/resource.h @@ -532,6 +532,7 @@ #define IDC_FASTERRTG 1221 #define IDC_GENLOCK_ALPHA 1221 #define IDC_COMPATIBLE24 1222 +#define IDC_GENLOCK_KEEP_ASPECT 1222 #define IDC_SPEED 1223 #define IDC_FPU0 1224 #define IDC_FPU1 1225 diff --git a/od-win32/resources/winuae.rc b/od-win32/resources/winuae.rc index ed3fd4de..f19c075b 100644 --- a/od-win32/resources/winuae.rc +++ b/od-win32/resources/winuae.rc @@ -702,7 +702,7 @@ BEGIN PUSHBUTTON "Cancel",IDCANCEL,201,57,48,15 END -IDD_CHIPSET DIALOGEX 0, 0, 396, 266 +IDD_CHIPSET DIALOGEX 0, 0, 396, 287 STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN @@ -742,15 +742,16 @@ BEGIN "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,182,157,181,10 CONTROL "Full [] 100% collision hardware emulation. Only very few games need this option. Slowest.",IDC_COLLISION3, "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,182,172,181,10 - GROUPBOX "Genlock",IDC_STATIC,0,195,393,66 + GROUPBOX "Genlock",IDC_STATIC,0,195,393,85 CONTROL "Genlock connected [] Allow boot sequence to detect genlock.",IDC_GENLOCK, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,13,209,150,10 - COMBOBOX IDC_GENLOCKMODE,197,209,124,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,13,211,109,10 + COMBOBOX IDC_GENLOCKMODE,129,209,192,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_GENLOCKMIX,330,209,54,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP CONTROL "Include alpha channel in screenshots and video captures.",IDC_GENLOCK_ALPHA, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,13,226,214,10 - COMBOBOX IDC_GENLOCKFILE,12,241,356,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "...",IDC_GENLOCKFILESELECT,375,240,10,15 + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,13,227,214,10 + COMBOBOX IDC_GENLOCKFILE,12,258,356,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "...",IDC_GENLOCKFILESELECT,375,257,10,15 + 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 @@ -1548,7 +1549,7 @@ BEGIN IDD_CHIPSET, DIALOG BEGIN - BOTTOMMARGIN, 258 + BOTTOMMARGIN, 280 END IDD_CHIPSET2, DIALOG diff --git a/od-win32/uaeunp/uaeunp.vcxproj b/od-win32/uaeunp/uaeunp.vcxproj index 17086f14..be9e2e75 100644 --- a/od-win32/uaeunp/uaeunp.vcxproj +++ b/od-win32/uaeunp/uaeunp.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -24,18 +24,18 @@ Application Unicode true - v140 + v141 Application Unicode true - v140 + v141 Application Unicode - v140 + v141 diff --git a/od-win32/win32.h b/od-win32/win32.h index 6ee25bac..197e8dba 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -20,12 +20,12 @@ #define LANG_DLL_FULL_VERSION_MATCH 1 #if WINUAEPUBLICBETA -#define WINUAEBETA _T("16") +#define WINUAEBETA _T("17") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2016, 11, 13) +#define WINUAEDATE MAKEBD(2016, 11, 27) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/win32gfx.cpp b/od-win32/win32gfx.cpp index 4abb6cff..9baff6ee 100644 --- a/od-win32/win32gfx.cpp +++ b/od-win32/win32gfx.cpp @@ -2050,6 +2050,8 @@ int check_prefs_changed_gfx (void) c |= currprefs.genlock != changed_prefs.genlock ? (2 | 8) : 0; c |= currprefs.genlock_alpha != changed_prefs.genlock_alpha ? (1 | 8) : 0; c |= currprefs.genlock_mix != changed_prefs.genlock_mix ? (1 | 256) : 0; + c |= currprefs.genlock_aspect != changed_prefs.genlock_aspect ? (1 | 256) : 0; + c |= currprefs.genlock_scale != changed_prefs.genlock_scale ? (1 | 256) : 0; c |= _tcsicmp(currprefs.genlock_image_file, changed_prefs.genlock_image_file) ? (2 | 8) : 0; c |= _tcsicmp(currprefs.genlock_video_file, changed_prefs.genlock_video_file) ? (2 | 8) : 0; @@ -2147,6 +2149,8 @@ int check_prefs_changed_gfx (void) currprefs.genlock = changed_prefs.genlock; currprefs.genlock_mix = changed_prefs.genlock_mix; currprefs.genlock_alpha = changed_prefs.genlock_alpha; + currprefs.genlock_aspect = changed_prefs.genlock_aspect; + currprefs.genlock_scale = changed_prefs.genlock_scale; _tcscpy(currprefs.genlock_image_file, changed_prefs.genlock_image_file); _tcscpy(currprefs.genlock_video_file, changed_prefs.genlock_video_file); diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index 7a02e558..54e36191 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -2464,7 +2464,7 @@ static void selectgenlock(struct uae_prefs *prefs, HWND hDlg, int id, const TCHA _tcscpy(prefs->genlock_image_file, full_path); fullpath(prefs->genlock_image_file, sizeof prefs->genlock_image_file / sizeof(TCHAR)); DISK_history_add(prefs->genlock_image_file, -1, HISTORY_GENLOCK_IMAGE, 0); - } else if (workprefs.genlock_image == 4) { + } else if (workprefs.genlock_image == 4 || workprefs.genlock_image == 6) { _tcscpy(prefs->genlock_video_file, full_path); fullpath(prefs->genlock_video_file, sizeof prefs->genlock_video_file / sizeof(TCHAR)); DISK_history_add(prefs->genlock_video_file, -1, HISTORY_GENLOCK_VIDEO, 0); @@ -6700,8 +6700,9 @@ static void enable_for_chipsetdlg (HWND hDlg) ew(hDlg, IDC_GENLOCKMODE, workprefs.genlock ? TRUE : FALSE); ew(hDlg, IDC_GENLOCKMIX, workprefs.genlock ? TRUE : FALSE); ew(hDlg, IDC_GENLOCK_ALPHA, workprefs.genlock ? TRUE : FALSE); - ew(hDlg, IDC_GENLOCKFILE, workprefs.genlock && workprefs.genlock_image >= 3 && workprefs.genlock_image < 5 ? TRUE : FALSE); - ew(hDlg, IDC_GENLOCKFILESELECT, workprefs.genlock && workprefs.genlock_image >= 3 && workprefs.genlock_image < 5 ? TRUE : FALSE); + ew(hDlg, IDC_GENLOCK_KEEP_ASPECT, workprefs.genlock ? TRUE : FALSE); + ew(hDlg, IDC_GENLOCKFILE, workprefs.genlock && (workprefs.genlock_image ==6 || (workprefs.genlock_image >= 3 && workprefs.genlock_image < 5)) ? TRUE : FALSE); + ew(hDlg, IDC_GENLOCKFILESELECT, workprefs.genlock && (workprefs.genlock_image ==6 || (workprefs.genlock_image >= 3 && workprefs.genlock_image < 5)) ? TRUE : FALSE); } static const int fakerefreshrates[] = { 50, 60, 100, 120, 0 }; @@ -7692,6 +7693,7 @@ static void values_to_chipsetdlg (HWND hDlg) SendDlgItemMessage(hDlg, IDC_GENLOCKMODE, CB_SETCURSEL, workprefs.genlock_image, 0); SendDlgItemMessage(hDlg, IDC_GENLOCKMIX, CB_SETCURSEL, workprefs.genlock_mix / 25, 0); CheckDlgButton(hDlg, IDC_GENLOCK_ALPHA, workprefs.genlock_alpha); + CheckDlgButton(hDlg, IDC_GENLOCK_KEEP_ASPECT, workprefs.genlock_aspect); } static int cs_compatible = CP_GENERIC; @@ -7705,6 +7707,7 @@ static void values_from_chipsetdlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l workprefs.genlock = ischecked (hDlg, IDC_GENLOCK); workprefs.genlock_alpha = ischecked(hDlg, IDC_GENLOCK_ALPHA); + workprefs.genlock_aspect = ischecked(hDlg, IDC_GENLOCK_KEEP_ASPECT); workprefs.immediate_blits = ischecked (hDlg, IDC_BLITIMM); workprefs.waiting_blits = ischecked (hDlg, IDC_BLITWAIT) ? 1 : 0; @@ -7795,7 +7798,7 @@ static void setgenlock(HWND hDlg) setautocomplete(hDlg, IDC_GENLOCKFILE); if (workprefs.genlock_image == 3) { addhistorymenu(hDlg, workprefs.genlock_image_file, IDC_GENLOCKFILE, HISTORY_GENLOCK_IMAGE, true); - } else if (workprefs.genlock_image == 4) { + } else if (workprefs.genlock_image == 4 || workprefs.genlock_image == 6) { addhistorymenu(hDlg, workprefs.genlock_video_file, IDC_GENLOCKFILE, HISTORY_GENLOCK_VIDEO, true); } } @@ -7836,6 +7839,7 @@ static INT_PTR CALLBACK ChipsetDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPAR SendDlgItemMessage(hDlg, IDC_GENLOCKMODE, CB_ADDSTRING, 0, (LPARAM)_T("Image file (png)")); SendDlgItemMessage(hDlg, IDC_GENLOCKMODE, CB_ADDSTRING, 0, (LPARAM)_T("Video file")); SendDlgItemMessage(hDlg, IDC_GENLOCKMODE, CB_ADDSTRING, 0, (LPARAM)_T("Capture device")); + SendDlgItemMessage(hDlg, IDC_GENLOCKMODE, CB_ADDSTRING, 0, (LPARAM)_T("American Laser Games LaserDisc Player")); SendDlgItemMessage(hDlg, IDC_GENLOCKMIX, CB_RESETCONTENT, 0, 0); for (int i = 0; i <= 10; i++) { @@ -8223,7 +8227,7 @@ static void enable_for_memorydlg (HWND hDlg) ew(hDlg, IDC_MEMORYRAM, true); ew(hDlg, IDC_MEMORYMEM, true); ew(hDlg, IDC_RAM_ADDRESS, manual && size); - ew(hDlg, IDC_RAM_ADDRESS2, false); + ew(hDlg, IDC_RAM_ADDRESS2, manual && size); } static void setfastram_ramboard(HWND hDlg, int zram) @@ -8335,7 +8339,8 @@ static void setfastram_selectmenu(HWND hDlg, int mode) setchecked(hDlg, IDC_FASTMEMNOAUTOCONFIG, rb && rb->manual_config); if (rb) { if (rb->manual_config) { - rb->end_address = rb->start_address + rb->size - 1; + if (rb->end_address <= rb->start_address || rb->start_address + rb->size >= rb->end_address) + rb->end_address = rb->start_address + rb->size - 1; } else { rb->start_address = 0; rb->end_address = 0; @@ -10296,6 +10301,8 @@ static INT_PTR CALLBACK MemoryDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARA const struct memoryboardtype *mbt = getmemoryboardselect(hDlg); if (mbt && fastram_select_ramboard->manual_config && mbt->address) { fastram_select_ramboard->start_address = mbt->address; + if (fastram_select_ramboard->end_address <= fastram_select_ramboard->start_address || + fastram_select_ramboard->end_address >= fastram_select_ramboard->start_address + fastram_select_ramboard->size) fastram_select_ramboard->end_address = mbt->address + fastram_select_ramboard->size - 1; } setfastram_selectmenu(hDlg, 0); @@ -10358,6 +10365,8 @@ static INT_PTR CALLBACK MemoryDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARA TCHAR *endptr; GetDlgItemText(hDlg, IDC_RAM_ADDRESS, tmp, sizeof tmp / sizeof(TCHAR)); fastram_select_ramboard->start_address = _tcstol(tmp, &endptr, 16); + GetDlgItemText(hDlg, IDC_RAM_ADDRESS2, tmp, sizeof tmp / sizeof(TCHAR)); + fastram_select_ramboard->end_address = _tcstol(tmp, &endptr, 16); setfastram_selectmenu(hDlg, HIWORD(wParam) == EN_KILLFOCUS ? 0 : 3); } break; @@ -10450,7 +10459,7 @@ static void values_to_kickstartdlg (HWND hDlg) addromfiles (fkey, hDlg, IDC_ROMFILE, workprefs.romfile, ROMTYPE_KICK | ROMTYPE_KICKCD32, 0); addromfiles (fkey, hDlg, IDC_ROMFILE2, workprefs.romextfile, - ROMTYPE_EXTCD32 | ROMTYPE_EXTCDTV | ROMTYPE_ARCADIABIOS, 0); + ROMTYPE_EXTCD32 | ROMTYPE_EXTCDTV | ROMTYPE_ARCADIABIOS | ROMTYPE_ALG, 0); addromfiles (fkey, hDlg, IDC_CARTFILE, workprefs.cartfile, ROMTYPE_FREEZER | ROMTYPE_ARCADIAGAME | ROMTYPE_CD32CART, 0); @@ -13506,7 +13515,6 @@ static void harddisk_edit (HWND hDlg) } static ACCEL HarddiskAccel[] = { - { FVIRTKEY, VK_UP, 10001 }, { FVIRTKEY, VK_DOWN, 10002 }, { FVIRTKEY|FSHIFT, VK_UP, IDC_UP }, { FVIRTKEY|FSHIFT, VK_DOWN, IDC_DOWN }, { FVIRTKEY, VK_RETURN, IDC_EDIT }, { FVIRTKEY, VK_DELETE, IDC_REMOVE }, { 0, 0, 0 } @@ -14505,7 +14513,7 @@ static ACCEL SwapperAccel[] = { { FALT|FVIRTKEY, '6', 10006 }, { FALT|FVIRTKEY, '7', 10007 }, { FALT|FVIRTKEY, '8', 10008 }, { FALT|FVIRTKEY, '9', 10009 }, { FALT|FVIRTKEY, '0', 10010 }, { FALT|FSHIFT|FVIRTKEY, '1', 10011 }, { FALT|FSHIFT|FVIRTKEY, '2', 10012 }, { FALT|FSHIFT|FVIRTKEY, '3', 10013 }, { FALT|FSHIFT|FVIRTKEY, '4', 10014 }, { FALT|FSHIFT|FVIRTKEY, '5', 10015 }, { FALT|FSHIFT|FVIRTKEY, '6', 10016 }, { FALT|FSHIFT|FVIRTKEY, '7', 10017 }, { FALT|FSHIFT|FVIRTKEY, '8', 10018 }, { FALT|FSHIFT|FVIRTKEY, '9', 10019 }, { FALT|FSHIFT|FVIRTKEY, '0', 10020 }, - { FVIRTKEY, VK_UP, 10101 }, { FVIRTKEY, VK_DOWN, 10102 }, { FVIRTKEY, VK_RIGHT, 10104 }, + { FVIRTKEY, VK_RIGHT, 10104 }, { FVIRTKEY|FSHIFT, VK_UP, IDC_UP }, { FVIRTKEY|FSHIFT, VK_DOWN, IDC_DOWN }, { FVIRTKEY|FCONTROL, '1', 10201 }, { FVIRTKEY|FCONTROL, '2', 10202 }, { FVIRTKEY|FCONTROL, '3', 10203 }, { FVIRTKEY|FCONTROL, '4', 10204 }, { FVIRTKEY|FCONTROL|FSHIFT, '1', 10205 }, { FVIRTKEY|FCONTROL|FSHIFT, '2', 10206 }, { FVIRTKEY|FCONTROL|FSHIFT, '3', 10207 }, { FVIRTKEY|FCONTROL|FSHIFT, '4', 10208 }, @@ -16326,7 +16334,7 @@ static void CALLBACK timerfunc (HWND hDlg, UINT uMsg, UINT_PTR idEvent, DWORD dw } } -static HWND updatePanel (int id); +static HWND updatePanel (int id, UINT action); static int rawdisable[] = { IDC_INPUTTYPE, 0, 0, IDC_INPUTDEVICE, 0, 0, IDC_INPUTDEVICEDISABLE, 0, 0, @@ -18854,7 +18862,7 @@ static void getguisize (HWND hDlg, int *width, int *height) *height = r.bottom - r.top; } -static HWND updatePanel (int id) +static HWND updatePanel (int id, UINT action) { HWND hDlg = guiDlg; static HWND hwndTT; @@ -18978,7 +18986,7 @@ static HWND updatePanel (int id) hAccelTable = ppage[currentpage].accel; - if (ppage[id].focusid > 0) { + if (ppage[id].focusid > 0 && action != TVC_BYKEYBOARD) { setfocus (panelDlg, ppage[id].focusid); } @@ -19471,7 +19479,7 @@ int dragdrop (HWND hDlg, HDROP hd, struct uae_prefs *prefs, int currentpage) } else { rd = scan_arcadia_rom (file, 0); if (rd) { - if (rd->type == ROMTYPE_ARCADIABIOS) + if (rd->type == ROMTYPE_ARCADIABIOS || ROMTYPE_ALG) _tcscpy (prefs->romextfile, file); else if (rd->type == ROMTYPE_ARCADIAGAME) _tcscpy (prefs->cartfile, file); @@ -19572,7 +19580,7 @@ static INT_PTR CALLBACK DialogProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l KillTimer(hDlg, 3); devicechangetimer = 0; inputdevice_devicechange (&workprefs); - updatePanel (currentpage); + updatePanel (currentpage, 0); break; } @@ -19584,7 +19592,7 @@ static INT_PTR CALLBACK DialogProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l KillTimer(hDlg, 3); devicechangetimer = 0; addnotifications (hDlg, TRUE, TRUE); - updatePanel (-1); + updatePanel (-1, 0); DestroyWindow(hDlg); if (dialogreturn < 0) { dialogreturn = 0; @@ -19607,13 +19615,13 @@ static INT_PTR CALLBACK DialogProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l ShowWindow (GetDlgItem (guiDlg, IDC_ERRORLOG), is_error_log () ? SW_SHOW : SW_HIDE); centerWindow (hDlg); createTreeView (hDlg); - updatePanel (currentpage); + updatePanel (currentpage, 0); addnotifications (hDlg, FALSE, TRUE); return TRUE; case WM_DROPFILES: if (dragdrop (hDlg, (HDROP)wParam, (gui_active || full_property_sheet) ? &workprefs : &changed_prefs, currentpage)) SendMessage (hDlg, WM_COMMAND, IDOK, 0); - updatePanel (currentpage); + updatePanel (currentpage, 0); return FALSE; case WM_NOTIFY: { @@ -19629,7 +19637,7 @@ static INT_PTR CALLBACK DialogProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l cf = (int)(tv->itemNew.lParam >> 16); if (cp != currentpage || cf != configtype) { configtypepanel = configtype = cf; - updatePanel (cp); + updatePanel (cp, tv->action); } return TRUE; } @@ -19664,14 +19672,14 @@ static INT_PTR CALLBACK DialogProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l HtmlHelp (NULL, help_file, HH_DISPLAY_TOPIC, ppage[currentpage].help); return TRUE; case IDOK: - updatePanel (-1); + updatePanel (-1, 0); dialogreturn = 1; DestroyWindow (hDlg); gui_to_prefs (); guiDlg = NULL; return TRUE; case IDCANCEL: - updatePanel (-1); + updatePanel (-1, 0); dialogreturn = 0; DestroyWindow (hDlg); if (allow_quit) { diff --git a/od-win32/winuae_msvc15/winuae_msvc.vcxproj b/od-win32/winuae_msvc15/winuae_msvc.vcxproj index 2fd7a1ff..1bcd885c 100644 --- a/od-win32/winuae_msvc15/winuae_msvc.vcxproj +++ b/od-win32/winuae_msvc15/winuae_msvc.vcxproj @@ -39,6 +39,7 @@ {4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA} winuae 8.1 + 8.1 @@ -46,25 +47,25 @@ false Unicode true - v140_xp + v141_xp Application false Unicode - v140_xp + v141_xp Application false Unicode - v140_xp + v141_xp Application false Unicode - v140 + v141 Application @@ -77,7 +78,7 @@ Application false Unicode - v140 + v141 Application diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index a2545c08..92d8c4d7 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -4,6 +4,29 @@ 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 17: + +- Allow non-power of 2 manually configurable memory size, in 64k blocks. (Unsupported with JIT) +- If possible bitplane overrun situation is active, skip BPLCON0 non-delayed modification optimization. (Massive / Skarla) +- Do not steal focus from tree view GUI panel when moving selection up or down using keyboard. +- Switching from 32-bit to 24-bit address space CPU with Z3 UAEGFX: Mode was changed to Z2 without validating old size. +- Some Z2 fast mem only configs crashed at startup. +- American Laser Games arcade hardware emulation. ROMs added to ROM scanner, LD drive is also emulated. + LaserDisc emulation uses recently added genlock video emulation to play the video. (Games will run without video but + it also makes them completely unplayble..). NVRAM load/save support. ALG input events added to Input panel. +- Genlock video file sound track is also supported but it is only played in ALG LD emulator mode. +- Genlock image/video is now always scaled to screen, previous limited integer only scaling is gone. +- Added genlock keep aspect option. +- Picasso IV and x86 VGA ROM file was cleared when loaded. (b12) +- Updated to Visual Studio 2017 RC + +American Laser Games configuration: +- Standard A500, KS 1.3, ECS Agnus. Extended ROM = game ROM selection. +- Genlock ALG mode, with video path pointing to LaserDisc video file. +- Input config: Lightpen (do not configure mouse in Amiga mouse port), ALG Right Trigger = fire. Service = service menu. + Right Start and Right Coin needed to start the game and use service menu. Mad Dog McCree also needs Right Holster (reload). + Player 2 is not fully supported. + Beta 16: - uaenet.device unit 0 and 1 (slirp units) didn't open (some previous beta) -- 2.47.3