]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
3400b17
authorToni Wilen <twilen@winuae.net>
Sun, 27 Nov 2016 15:21:44 +0000 (17:21 +0200)
committerToni Wilen <twilen@winuae.net>
Sun, 27 Nov 2016 15:21:44 +0000 (17:21 +0200)
.gitignore
cfgfile.cpp
expansion.cpp
od-win32/resources/resource.h
od-win32/resources/winuae.rc
od-win32/uaeunp/uaeunp.vcxproj
od-win32/win32.h
od-win32/win32gfx.cpp
od-win32/win32gui.cpp
od-win32/winuae_msvc15/winuae_msvc.vcxproj
od-win32/winuaechangelog.txt

index aa09874644fd4434be2c922a417c123e7afc3750..44d2b2118d513747ab2e014c2036242b8f6448ef 100644 (file)
@@ -74,3 +74,5 @@ aros.rom.cpp
 packages
 packages.config
 *.sqlite
+*.db-shm
+*.db-wal
index 0922241b45b59ea8d93bdb7a3400cd96f9e18e94..fa1d534a59a8178a4fde83a1e01f372e873a99f7 100644 (file)
@@ -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++;
                                        }
                                }
index ba86c4270711e0935ee151db64dd13b6fb81a7a5..e86cf532cf0e36b464c008eadf1d9be1f82b11e8 100644 (file)
@@ -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
+};
index 7fb31c4330a4bfd608884415d3c5bd52e737ef06..07a0b64833b99ace24f7583dfb276ad7f1bbaaa9 100644 (file)
 #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
index ed3fd4de60aa9bf57120a651c466abcc8938198d..f19c075bcafaab912d43ea9a956358bfea87c3d8 100644 (file)
@@ -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
index 17086f143f73d9342f21ebe3385f5e04d574d0f8..be9e2e756c7cf999037ebbe02047f0d33374c1f6 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>v140</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Test|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>v140</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v140</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
index 6ee25bac2eed3b3f964e3276d281de0a08ef7209..197e8dbabe3c30efebcc8f52cd0b4a9030447b0c 100644 (file)
 #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")
index 4abb6cffaa88cbc172467228d4c3843acc2da4e6..9baff6ee0f8b7cc8720426ad87aea5603e623718 100644 (file)
@@ -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);
 
index 7a02e5583297a084bcdcce834b5076e6254447b1..54e36191fa8980e9dc16048decd8042559b26026 100644 (file)
@@ -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) {
index 2fd7a1ff73b94933ab396de09469cf70e8d3bd32..1bcd885c15008ae06975bf46bbdc6f7b4bbaf918 100644 (file)
@@ -39,6 +39,7 @@
     <ProjectGuid>{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}</ProjectGuid>
     <RootNamespace>winuae</RootNamespace>
     <TargetPlatformVersion>8.1</TargetPlatformVersion>
+    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'" Label="Configuration">
     <UseOfMfc>false</UseOfMfc>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>v140_xp</PlatformToolset>
+    <PlatformToolset>v141_xp</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseOfMfc>false</UseOfMfc>
     <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v140_xp</PlatformToolset>
+    <PlatformToolset>v141_xp</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Test|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseOfMfc>false</UseOfMfc>
     <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v140_xp</PlatformToolset>
+    <PlatformToolset>v141_xp</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseOfMfc>false</UseOfMfc>
     <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v140</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
@@ -77,7 +78,7 @@
     <ConfigurationType>Application</ConfigurationType>
     <UseOfMfc>false</UseOfMfc>
     <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v140</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Test|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
index a2545c0813dd42153c7b6e354df478cd5cf2ce1e..92d8c4d773e1ff7df43bc32bb09f046429cc748c 100644 (file)
@@ -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.\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 17:\r
+\r
+- Allow non-power of 2 manually configurable memory size, in 64k blocks. (Unsupported with JIT)\r
+- If possible bitplane overrun situation is active, skip BPLCON0 non-delayed modification optimization. (Massive / Skarla)\r
+- Do not steal focus from tree view GUI panel when moving selection up or down using keyboard.\r
+- Switching from 32-bit to 24-bit address space CPU with Z3 UAEGFX: Mode was changed to Z2 without validating old size.\r
+- Some Z2 fast mem only configs crashed at startup.\r
+- American Laser Games arcade hardware emulation. ROMs added to ROM scanner, LD drive is also emulated.\r
+  LaserDisc emulation uses recently added genlock video emulation to play the video. (Games will run without video but\r
+  it also makes them completely unplayble..). NVRAM load/save support. ALG input events added to Input panel.\r
+- Genlock video file sound track is also supported but it is only played in ALG LD emulator mode.\r
+- Genlock image/video is now always scaled to screen, previous limited integer only scaling is gone.\r
+- Added genlock keep aspect option.\r
+- Picasso IV and x86 VGA ROM file was cleared when loaded. (b12)\r
+- Updated to Visual Studio 2017 RC\r
+\r
+American Laser Games configuration:\r
+- Standard A500, KS 1.3, ECS Agnus. Extended ROM = game ROM selection.\r
+- Genlock ALG mode, with video path pointing to LaserDisc video file.\r
+- Input config: Lightpen (do not configure mouse in Amiga mouse port), ALG Right Trigger = fire. Service = service menu.\r
+  Right Start and Right Coin needed to start the game and use service menu. Mad Dog McCree also needs Right Holster (reload).\r
+  Player 2 is not fully supported.\r
+\r
 Beta 16:\r
 \r
 - uaenet.device unit 0 and 1 (slirp units) didn't open (some previous beta)\r