]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
3400b12
authorToni Wilen <twilen@winuae.net>
Sat, 15 Oct 2016 17:23:27 +0000 (20:23 +0300)
committerToni Wilen <twilen@winuae.net>
Sat, 15 Oct 2016 17:23:27 +0000 (20:23 +0300)
12 files changed:
cfgfile.cpp
devices.cpp
include/options.h
od-win32/dinput.cpp
od-win32/resources/resource.h
od-win32/resources/winuae.rc
od-win32/sounddep/sound.cpp
od-win32/win32.cpp
od-win32/win32.h
od-win32/win32gfx.cpp
od-win32/win32gui.cpp
od-win32/winuaechangelog.txt

index d73dda6fa2f588a95cb99af8177da8a5ee41ca58..f4c34088c57c5e4528bfc665e12793809e9f4b54 100644 (file)
@@ -1834,6 +1834,7 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
        cfgfile_dwrite_str (f, _T("waiting_blits"), waitblits[p->waiting_blits]);
        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_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);
@@ -4670,7 +4671,8 @@ static int cfgfile_parse_hardware (struct uae_prefs *p, const TCHAR *option, TCH
                || cfgfile_yesno (option, value, _T("ks_write_enabled"), &p->rom_readwrite)
                || cfgfile_yesno (option, value, _T("ntsc"), &p->ntscmode)
                || cfgfile_yesno (option, value, _T("sana2"), &p->sana2)
-               || cfgfile_yesno (option, value, _T("genlock"), &p->genlock)
+               || cfgfile_yesno(option, value, _T("genlock"), &p->genlock)
+               || cfgfile_yesno(option, value, _T("genlock_alpha"), &p->genlock_alpha)
                || 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)
@@ -5207,7 +5209,7 @@ void cfgfile_compatibility_rtg(struct uae_prefs *p)
                                                } else if (romtype == ROMTYPE_x86_VGA) {
                                                        romname = _T("");
                                                }
-                                               addbcromtype(p, romtype, romname, NULL, devnum);
+                                               addbcromtype(p, romtype, false, romname, devnum);
                                                devnum++;
                                        }
                                }
@@ -5258,7 +5260,7 @@ void cfgfile_compatibility_romtype(struct uae_prefs *p)
        addbcromtype(p, ROMTYPE_NE2KPCMCIA, p->ne2000pcmcianame[0] != 0, NULL, 0);
        addbcromtype(p, ROMTYPE_NE2KPCI, p->ne2000pciname[0] != 0, NULL, 0);
 
-       static int restricted_net[] = { ROMTYPE_A2065, ROMTYPE_NE2KPCMCIA, ROMTYPE_NE2KPCI, ROMTYPE_NE2KISA, ROMTYPE_ARIADNE2, 0 };
+       static int restricted_net[] = { ROMTYPE_A2065, ROMTYPE_NE2KPCMCIA, ROMTYPE_NE2KPCI, ROMTYPE_NE2KISA, ROMTYPE_ARIADNE2, ROMTYPE_XSURF, ROMTYPE_XSURF100Z2, ROMTYPE_XSURF100Z3, 0 };
        static int restricted_x86[] = { ROMTYPE_A1060, ROMTYPE_A2088, ROMTYPE_A2088T, ROMTYPE_A2286, ROMTYPE_A2386, 0 };
        static int restricted_pci[] = { ROMTYPE_GREX, ROMTYPE_MEDIATOR, ROMTYPE_PROMETHEUS, 0 };
        romtype_restricted(p, restricted_net);
index 16b42ef2a8fef4cb96f626ac85a6a30f17a49273..b146faa1bf6c20461d5567400dd261638c114be8 100644 (file)
@@ -194,6 +194,7 @@ void devices_hsync(void)
 #ifdef WITH_TOCCATA
        sndboard_hsync();
 #endif
+       ne2000_hsync();
        DISK_hsync ();
        audio_hsync ();
        CIA_hsync_prehandler ();
@@ -205,6 +206,7 @@ void devices_hsync(void)
 #endif
 }
 
+// these really should be dynamically allocated..
 void devices_rethink(void)
 {
        rethink_cias ();
@@ -238,6 +240,7 @@ void devices_rethink(void)
 #ifdef WITH_TOCCATA
        sndboard_rethink();
 #endif
+       rethink_ne2000();
        rethink_gayle ();
        idecontroller_rethink();
        rethink_uae_int();
@@ -303,6 +306,7 @@ void reset_all_systems (void)
 #if defined (PARALLEL_PORT)
        initparallel ();
 #endif
+       ne2000_reset();
        native2amiga_reset ();
        dongle_reset ();
        sampler_init ();
@@ -462,7 +466,7 @@ void devices_pause(void)
 #ifdef RETROPLATFORM
        rp_pause(pause_emulation);
 #endif
-       pausevideograb(true);
+       pausevideograb(1);
 }
 
 void devices_unpause(void)
@@ -474,5 +478,5 @@ void devices_unpause(void)
 #ifdef WITH_PPC
        uae_ppc_pause(0);
 #endif
-       pausevideograb(false);
+       pausevideograb(0);
 }
index 5993141eb552ebfd8deffdd83623d48e509fb8ba..4b7a6a059b029dbe61a180654a6b02e41c77a1c9 100644 (file)
@@ -509,6 +509,7 @@ struct uae_prefs {
        bool genlock;
        int genlock_image;
        int genlock_mix;
+       bool genlock_alpha;
        TCHAR genlock_image_file[MAX_DPATH];
        TCHAR genlock_video_file[MAX_DPATH];
        int monitoremu;
index 49fe3112560685e48d72059d7624030c1af16f26..7a531ecc7a44526366b69163601c6e3461e49bbf 100644 (file)
@@ -2663,7 +2663,9 @@ void handle_rawinput (LPARAM lParam)
                if (dwSize <= sizeof (lpb)) {
                        if (GetRawInputData ((HRAWINPUT)lParam, RID_INPUT, lpb, &dwSize, sizeof (RAWINPUTHEADER)) == dwSize) {
                                raw = (RAWINPUT*)lpb;
-                               handle_rawinput_2 (raw);
+                               if (!isguiactive() || (inputdevice_istest() && isguiactive())) {
+                                       handle_rawinput_2 (raw);
+                               }
                                DefRawInputProc (&raw, 1, sizeof (RAWINPUTHEADER));
                        } else {
                                write_log (_T("GetRawInputData(%d) failed, %d\n"), dwSize, GetLastError ());
index 616399cd2273f492135e20519b9a427f7130c0cd..a55b0f2d09262fe7ce464af2a32d60c2686782f7 100644 (file)
 #define IDC_GENLOCK                     1220
 #define IDC_COMPATIBLE_FPU              1221
 #define IDC_FASTERRTG                   1221
+#define IDC_GENLOCK_ALPHA               1221
 #define IDC_COMPATIBLE24                1222
 #define IDC_SPEED                       1223
 #define IDC_FPU0                        1224
index b642a7162e222e8e182970a0eb427498dc6a8f27..2697f824502e4b66885382ee8e80104227e41904 100644 (file)
@@ -702,7 +702,7 @@ BEGIN
     PUSHBUTTON      "Cancel",IDCANCEL,201,57,48,15
 END
 
-IDD_CHIPSET DIALOGEX 0, 0, 396, 258
+IDD_CHIPSET DIALOGEX 0, 0, 396, 266
 STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
 FONT 8, "MS Sans Serif", 0, 0, 0x0
 BEGIN
@@ -728,7 +728,7 @@ BEGIN
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,32,150,10
     CONTROL         "Wait for Blitter [] Compatibility hack for programs that don't wait for the blitter correctly, causing graphics corruption if CPU is too fast.",IDC_BLITWAIT,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,45,150,10
-    CONTROL         "Genlock connected [] Allow boot sequence to detect genlock. Genlock is not emulated.",IDC_GENLOCK,
+    CONTROL         "Genlock connected [] Allow boot sequence to detect genlock.",IDC_GENLOCK,
                     "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,13,209,150,10
     LTEXT           "Video port display hardware:",IDC_STATIC,237,62,117,15,SS_CENTERIMAGE
     COMBOBOX        IDC_MONITOREMU,237,80,147,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
@@ -745,9 +745,11 @@ BEGIN
     COMBOBOX        IDC_GENLOCKMIX,330,209,54,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     CONTROL         "Cycle-exact (Full) [] The most compatible A500/A1200 emulation mode.",IDC_CYCLEEXACT,
                     "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,12,68,194,10
-    GROUPBOX        "Genlock",IDC_STATIC,0,195,393,57
-    COMBOBOX        IDC_GENLOCKFILE,12,231,356,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "...",IDC_GENLOCKFILESELECT,375,230,10,15
+    GROUPBOX        "Genlock",IDC_STATIC,0,195,393,66
+    COMBOBOX        IDC_GENLOCKFILE,12,241,356,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "...",IDC_GENLOCKFILESELECT,375,240,10,15
+    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
 END
 
 IDD_CHIPSET2 DIALOGEX 0, 0, 396, 305
@@ -1550,7 +1552,7 @@ BEGIN
 
     IDD_CHIPSET, DIALOG
     BEGIN
-        BOTTOMMARGIN, 192
+        BOTTOMMARGIN, 258
     END
 
     IDD_CHIPSET2, DIALOG
index 6960a317380d9615747947dca245f15a9c9fbe47..92857808029611f13c75a8e6fd15dec38c61b29c 100644 (file)
@@ -47,6 +47,8 @@
 
 #define USE_XAUDIO 0
 
+#ifndef _WIN64
+
 // only in 8.1+ SDKs
 
 typedef enum _AUDIO_STREAM_CATEGORY {
@@ -105,6 +107,13 @@ public:
 
 };
 
+#else
+
+#define AudioCategory_Media 11
+#define AUDCLNT_STREAMOPTIONS_MATCH_FORMAT 0x2
+
+#endif
+
 EXTERN_C const IID IID_IAudioClient3;
 
 MIDL_INTERFACE("7ED4EE07-8E67-4CD4-8C1A-2B7A5987AD42")
@@ -1340,7 +1349,7 @@ static int open_audio_wasapi (struct sound_data *sd, int index, int exclusive)
 
        if (s->AudioClientVersion >= 3) {
                BOOL cap = FALSE;
-               hr = s->pAudioClient->IsOffloadCapable(AudioCategory_Media, &cap);
+               hr = s->pAudioClient->IsOffloadCapable((AUDIO_STREAM_CATEGORY)AudioCategory_Media, &cap);
                write_log(_T("WASAPI: IsOffloadCapable() returned %d %08x\n"), cap, hr);
        }
 
@@ -1352,8 +1361,8 @@ static int open_audio_wasapi (struct sound_data *sd, int index, int exclusive)
                        AudioClientProperties props;
                        props.bIsOffload = FALSE;
                        props.cbSize = sizeof props;
-                       props.eCategory = AudioCategory_Media;
-                       props.Options = AUDCLNT_STREAMOPTIONS_MATCH_FORMAT;
+                       props.eCategory = (AUDIO_STREAM_CATEGORY)AudioCategory_Media;
+                       props.Options = (AUDCLNT_STREAMOPTIONS)AUDCLNT_STREAMOPTIONS_MATCH_FORMAT;;
                        hr = s->pAudioClient->SetClientProperties(&props);
                        if (FAILED(hr)) {
                                write_log(_T("WASAPI: SetClientProperties() %08X\n"), hr);
index b65c7c6f715098d5a21bd2910f1f6b3a02540133..439cbf4e61c1bf52d2d4ff081472315bbfa7667d 100644 (file)
@@ -6417,6 +6417,9 @@ static void create_dump (struct _EXCEPTION_POINTERS *pExceptionPointers)
                                        flush_log ();
                                        savedump (dump, f, pExceptionPointers);
                                        CloseHandle (f);
+                                       ClipCursor(NULL);
+                                       ReleaseCapture();
+                                       ShowCursor(TRUE);
                                        if (isfullscreen () <= 0) {
                                                _stprintf (msg, _T("Crash detected. MiniDump saved as:\n%s\n"), path3);
                                                MessageBox (NULL, msg, _T("Crash"), MB_OK | MB_ICONWARNING | MB_TASKMODAL | MB_SETFOREGROUND);
index c2cd329188ac03bc405231ed40338820b9711cf5..bbd6f1484fa29cbb81b77fc527cbf4134fde46fe 100644 (file)
 #define LANG_DLL_FULL_VERSION_MATCH 1
 
 #if WINUAEPUBLICBETA
-#define WINUAEBETA _T("11")
+#define WINUAEBETA _T("12")
 #else
 #define WINUAEBETA _T("")
 #endif
 
-#define WINUAEDATE MAKEBD(2016, 10, 8)
+#define WINUAEDATE MAKEBD(2016, 10, 15)
 
 //#define WINUAEEXTRA _T("AmiKit Preview")
 //#define WINUAEEXTRA _T("Amiga Forever Edition")
index 6354b451535632fe23c9415fde2cb5cd939f825a..ee18a0cc5601e9337a4eb60bfba525c369fd6efb 100644 (file)
@@ -2044,6 +2044,7 @@ int check_prefs_changed_gfx (void)
        c |= currprefs.monitoremu != changed_prefs.monitoremu ? (2 | 8) : 0;
        c |= currprefs.genlock_image != changed_prefs.genlock_image ? (2 | 8) : 0;
        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 |= _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;
@@ -2141,6 +2142,7 @@ int check_prefs_changed_gfx (void)
                currprefs.genlock_image = changed_prefs.genlock_image;
                currprefs.genlock = changed_prefs.genlock;
                currprefs.genlock_mix = changed_prefs.genlock_mix;
+               currprefs.genlock_alpha = changed_prefs.genlock_alpha;
                _tcscpy(currprefs.genlock_image_file, changed_prefs.genlock_image_file);
                _tcscpy(currprefs.genlock_video_file, changed_prefs.genlock_video_file);
 
@@ -2437,9 +2439,9 @@ void init_colors (void)
        S2X_configure (red_bits, green_bits, blue_bits, red_shift,green_shift, blue_shift);
 #endif
 #ifdef AVIOUTPUT
-       AVIOutput_RGBinfo (red_bits, green_bits, blue_bits, red_shift, green_shift, blue_shift);
+       AVIOutput_RGBinfo (red_bits, green_bits, blue_bits, alpha_bits, red_shift, green_shift, blue_shift, alpha_shift);
 #endif
-       Screenshot_RGBinfo (red_bits, green_bits, blue_bits, red_shift, green_shift, blue_shift);
+       Screenshot_RGBinfo (red_bits, green_bits, blue_bits, alpha_bits, red_shift, green_shift, blue_shift, alpha_shift);
 }
 
 #ifdef PICASSO96
index 051929985e8fbf2cb08bfb26a71f46ea12805a3b..108fcacdf32ec628c55e6327694979fe100e8041 100644 (file)
@@ -1409,7 +1409,7 @@ static const int msi_cpuboard[] = { 0, 5, 6, 7, 8, 9, 10, 11, 12, 13 };
 #define MIN_REFRESH_RATE 1
 #define MAX_REFRESH_RATE 10
 #define MIN_SOUND_MEM 0
-#define MAX_SOUND_MEM 9
+#define MAX_SOUND_MEM 10
 
 struct romscandata {
        UAEREG *fkey;
@@ -6694,6 +6694,7 @@ 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);
 }
@@ -7684,6 +7685,7 @@ static void values_to_chipsetdlg (HWND hDlg)
        SendDlgItemMessage(hDlg, IDC_MONITOREMU, CB_SETCURSEL, workprefs.monitoremu, 0);
        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);
 }
 
 static int cs_compatible = CP_GENERIC;
@@ -7696,8 +7698,11 @@ static void values_from_chipsetdlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
        int id = LOWORD(wParam);
 
        workprefs.genlock = ischecked (hDlg, IDC_GENLOCK);
+       workprefs.genlock_alpha = ischecked(hDlg, IDC_GENLOCK_ALPHA);
+
        workprefs.immediate_blits = ischecked (hDlg, IDC_BLITIMM);
        workprefs.waiting_blits = ischecked (hDlg, IDC_BLITWAIT) ? 1 : 0;
+
        n2 = ischecked (hDlg, IDC_CYCLEEXACTMEMORY);
        n1 = ischecked (hDlg, IDC_CYCLEEXACT);
        if (workprefs.cpu_cycle_exact != n1 || workprefs.cpu_memory_cycle_exact != n2) {
@@ -11816,8 +11821,10 @@ static int sounddrivesel;
 static int getsoundbufsizeindex (int size)
 {
        int idx;
+       if (size < sndbufsizes[0])
+               return 0;
        for (idx = 0; sndbufsizes[idx] < size && sndbufsizes[idx + 1] >= 0 ; idx++);
-       return idx;
+       return idx + 1;
 }
 
 static void update_soundgui (HWND hDlg)
@@ -11825,8 +11832,12 @@ static void update_soundgui (HWND hDlg)
        int bufsize;
        TCHAR txt[20];
 
-       bufsize = getsoundbufsizeindex (workprefs.sound_maxbsiz) + 1;
-       _stprintf (txt, _T("%d"), bufsize);
+       bufsize = getsoundbufsizeindex (workprefs.sound_maxbsiz);
+       if (bufsize <= 0) {
+               _tcscpy(txt, _T("Min"));
+       } else {
+               _stprintf (txt, _T("%d"), bufsize);
+       }
        SetDlgItemText (hDlg, IDC_SOUNDBUFFERMEM, txt);
 
        SendDlgItemMessage (hDlg, IDC_SOUNDVOLUME, TBM_SETPOS, TRUE, 100 - workprefs.sound_volume_master);
@@ -11958,7 +11969,7 @@ static void values_to_sounddlg (HWND hDlg)
        CheckDlgButton (hDlg, IDC_SOUND_CDPAULAMIX, workprefs.sound_cdaudio);
 
        if (workprefs.sound_maxbsiz < SOUND_BUFFER_MULTIPLIER)
-               workprefs.sound_maxbsiz = SOUND_BUFFER_MULTIPLIER;
+               workprefs.sound_maxbsiz = 0;
        SendDlgItemMessage (hDlg, IDC_SOUNDBUFFERRAM, TBM_SETPOS, TRUE, getsoundbufsizeindex (workprefs.sound_maxbsiz));
 
        SendDlgItemMessage (hDlg, IDC_SOUNDVOLUME, TBM_SETPOS, TRUE, 0);
@@ -12214,8 +12225,12 @@ static INT_PTR CALLBACK SoundDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
        case WM_HSCROLL:
                if ((HWND)lParam == GetDlgItem (hDlg, IDC_SOUNDBUFFERRAM)) {
                        int v = SendMessage (GetDlgItem (hDlg, IDC_SOUNDBUFFERRAM), TBM_GETPOS, 0, 0);
-                       if (v >= 0)
-                               workprefs.sound_maxbsiz = sndbufsizes[v];
+                       if (v >= 0) {
+                               if (v == 0)
+                                       workprefs.sound_maxbsiz = 0;
+                               else
+                                       workprefs.sound_maxbsiz = sndbufsizes[v - 1];
+                       }
                }
                workprefs.sound_volume_master = 100 - SendMessage (GetDlgItem (hDlg, IDC_SOUNDVOLUME), TBM_GETPOS, 0, 0);
                (*volumeselection) = 100 - SendMessage (GetDlgItem (hDlg, IDC_SOUNDVOLUMEEXT), TBM_GETPOS, 0, 0);
@@ -14181,8 +14196,7 @@ static void getfloppytypeq (HWND hDlg, int n)
 static int getfloppybox (HWND hDlg, int f_text, TCHAR *out, int maxlen, int type)
 {
        LRESULT val;
-       TCHAR *p1, *p2, *p;
-       TCHAR *tmp;
+       TCHAR *p;
        int i;
 
        out[0] = 0;
@@ -16637,7 +16651,6 @@ static INT_PTR CALLBACK RemapSpecialsProc(HWND hDlg, UINT msg, WPARAM wParam, LP
        case WM_NOTIFY:
        if (((LPNMHDR)lParam)->idFrom == IDC_LISTDIALOG_LIST)
        {
-               TCHAR name[256];
                int column, entry;
                NM_LISTVIEW *nmlistview = (NM_LISTVIEW *)lParam;
                list = nmlistview->hdr.hwndFrom;
@@ -16648,7 +16661,6 @@ static INT_PTR CALLBACK RemapSpecialsProc(HWND hDlg, UINT msg, WPARAM wParam, LP
                {
                        entry = listview_entry_from_click(list, &column);
                        if (entry >= 0 && inputmap_selected >= 0) {
-                               int devnum, num, sub;
                                if (inputmap_handle(NULL, -1, -1, NULL, NULL, -1, NULL, inputmap_selected,
                                        remapcustoms[entry].flags, IDEV_MAPPED_AUTOFIRE_SET | IDEV_MAPPED_TOGGLE | IDEV_MAPPED_INVERTTOGGLE, NULL)) {
                                        inputdevice_generate_jport_custom(&workprefs, inputmap_port);
index 95980e0615d67b372fdf5fc9b95933e4b0796c13..64ba3cb57cc0a6730ebfcc23faa4832f19908512 100644 (file)
@@ -5,6 +5,27 @@ JIT Direct current rules are less complex now. It automatically switches off onl
   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
 \r
+Beta 12:\r
+\r
+- If genlock is active, mode is not "-" and new genlock alpha option is checked, screenshots and avioutput videos\r
+  include alpha-channel generated from genlock transparency data. Only works in 32-bit mode and may not work if capture\r
+  before filtering is not set.\r
+- Added genlock video input events: restart, pause/unpause, next and previous frame.\r
+- WASAPI shared mode uses lower latency mode introduced in Windows 10 that allows sub-10ms latencies in shared mode (if sound driver\r
+  supports it). Buffers larger than 10ms and non-Windows 10 systems use "old" method.\r
+- "Min" (WASAPI only) sound buffer setting added. Selects smallest buffer size that driver supports.\r
+- WASAPI sound buffer size adjusted. All buffer size values now allocate smaller buffer than previously, pull (event) mode\r
+  is much more stable than previously used push mode, there is no need for very large buffer sizes anymore.\r
+- WASAPI sound automatically switches to default device if current device disappears (for example unplugged USB sound card/headset)\r
+- Added RTL8019 9346 EEPROM emulation.\r
+- Ariadne II NIC emulation. RTL8019AS based. (9346 contents are not correct but driver does not seem to care)\r
+- X-Surf NIC emulation, also RTL8019AS based. (Including ISA PNP emulation that driver needs...) No IDE support.\r
+- X-Surf 100 (Z2 and Z3) NIC emulation, uses RTL8019AS "compatible" chip. Does not emulate any AX88796B extra features (=only works\r
+  if driver assumes chip only supports NE2000/RTL8019AS features. Official driver does not seem to use any extra features.)\r
+- Ariadne II and X-Surfs are currently SLIRP-only, no configuration available. Multiple enabled NICs are still also not supported.\r
+- Disable horizontal/vertical filter configured blanking if display port adapter is active that needs RGBI control lines.\r
+- Try to uncapture mouse before showing crash report dialog.\r
+\r
 Beta 11:\r
 \r
 - Added generic Z2/Z3 autoconfig support to expansion.cpp. Previously each expansion type needed own separate autoconfig handling.\r