]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
4100b6
authorToni Wilen <twilen@winuae.net>
Sat, 22 Sep 2018 17:40:10 +0000 (20:40 +0300)
committerToni Wilen <twilen@winuae.net>
Sat, 22 Sep 2018 17:40:10 +0000 (20:40 +0300)
blkdev_cdimage.cpp
od-win32/picasso96_win.cpp
od-win32/picasso96_win.h
od-win32/resources/winuae.rc
od-win32/rp.cpp
od-win32/win32.h
od-win32/win32gfx.cpp
od-win32/win32gui.cpp
od-win32/winuaechangelog.txt

index 1c212315f4cd9ecbd39786146fa2712921aa7070..efde70a539490798ba1fd2434c9ee19c8f4f3737 100644 (file)
@@ -2253,7 +2253,7 @@ static int open_device (int unitnum, const TCHAR *ident, int flags)
                }
                ret = 1;
        }
-       blkdev_cd_change (unitnum, cdu->imgname_in);
+       blkdev_cd_change (unitnum, cdu->imgname_out);
        return ret;
 }
 
@@ -2275,7 +2275,7 @@ static void close_device (int unitnum)
                unload_image (cdu);
                uae_sem_destroy (&cdu->sub_sem);
        }
-       blkdev_cd_change (unitnum, cdu->imgname_in);
+       blkdev_cd_change (unitnum, cdu->imgname_out);
 }
 
 static void close_bus (void)
index b18ad2d5dca36921ecddbc9d47ee95cce212ab2f..ce5a9eaa6193156b9bc03dd9f994515ba044ea48 100644 (file)
@@ -203,15 +203,15 @@ extern addrbank gfxmem_bank;
 extern addrbank *gfxmem_banks[MAX_RTG_BOARDS];
 extern int rtg_index;
 
-static void lockrtg(void)
+void lockrtg(void)
 {
-       if (currprefs.rtg_multithread)
+       if (currprefs.rtg_multithread && render_pipe)
                EnterCriticalSection(&render_cs);
 }
 
-static void unlockrtg(void)
+void unlockrtg(void)
 {
-       if (currprefs.rtg_multithread)
+       if (currprefs.rtg_multithread && render_pipe)
                LeaveCriticalSection(&render_cs);
 }
 
@@ -4456,6 +4456,8 @@ uae_u8 *getrtgbuffer(int monid, int *widthp, int *heightp, int *pitch, int *dept
        width = state->VirtualWidth;
        height = state->VirtualHeight;
        pixbytes = state->BytesPerPixel == 1 && palette ? 1 : 4;
+       if (!width || !height || !pixbytes)
+               return NULL;
 
        dst = xmalloc (uae_u8, width * height * pixbytes);
        if (!dst)
@@ -4490,7 +4492,6 @@ uae_u8 *getrtgbuffer(int monid, int *widthp, int *heightp, int *pitch, int *dept
        *pitch = width * pixbytes;
        *depth = pixbytes * 8;
 
-
        return dst;
 }
 void freertgbuffer(int monid, uae_u8 *dst)
index 4342ccd6878813e60361c41e96e4889561b959fe..aa67e257ca573016ce062e4bb5f90843bce5488d 100644 (file)
@@ -592,6 +592,9 @@ extern uae_u8 *gfx_lock_picasso(int monid, bool, bool);
 extern void gfx_unlock_picasso(int monid, bool);
 extern int createwindowscursor(int monid, uaecptr src, int w, int h, int hiressprite, int doubledsprite, int chipset);
 
+void lockrtg(void);
+void unlockrtg(void);
+
 void fb_copyrow(int monid, uae_u8 *src, uae_u8 *dst, int x, int y, int width, int srcpixbytes, int dy);
 
 extern int p96refresh_active;
index b515827fa4c7e9e4caea19bbc3bae28030246e46..88174af08453ef43c0046b075b640b6eab4d2f7c 100644 (file)
@@ -467,7 +467,14 @@ STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
 FONT 8, "MS Sans Serif", 0, 0, 0x1
 BEGIN
     CONTROL         "",IDC_CONFIGTREE,"SysTreeView32",TVS_HASLINES | TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | TVS_TRACKSELECT | WS_BORDER | WS_HSCROLL | WS_TABSTOP,1,2,393,236,WS_EX_CLIENTEDGE
+    RTEXT           "Search:",IDC_STATIC,7,245,44,8,SS_CENTERIMAGE
+    EDITTEXT        IDC_CONFIGSEARCH,55,243,90,13,ES_AUTOHSCROLL
+    PUSHBUTTON      "X",IDC_CONFIGSEARCHCLEAR,149,243,15,14
+    RTEXT           "Filter:",IDC_STATIC,172,245,39,8,SS_CENTERIMAGE
+    COMBOBOX        IDC_CONFIGFOLDER,216,243,177,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     RTEXT           "Name:",IDC_STATIC,4,265,47,8,SS_CENTERIMAGE
+    COMBOBOX        IDC_EDITNAME,55,264,175,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+    EDITTEXT        IDC_EDITPATH,236,263,49,15,ES_AUTOHSCROLL | WS_DISABLED
     RTEXT           "Description:",IDC_STATIC,1,286,50,8,SS_CENTERIMAGE
     EDITTEXT        IDC_EDITDESCRIPTION,55,284,230,13,ES_AUTOHSCROLL
     GROUPBOX        "Additional Information",IDC_STATIC,289,260,105,38,BS_LEFT
@@ -478,13 +485,6 @@ BEGIN
     PUSHBUTTON      "Load From...",IDC_LOAD,162,301,60,15
     PUSHBUTTON      "Save As...",IDC_SAVE,226,301,60,15
     PUSHBUTTON      "Delete",IDC_DELETE,335,301,60,15
-    COMBOBOX        IDC_CONFIGFOLDER,216,243,177,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    EDITTEXT        IDC_CONFIGSEARCH,55,243,90,13,ES_AUTOHSCROLL
-    RTEXT           "Search:",IDC_STATIC,7,245,44,8,SS_CENTERIMAGE
-    RTEXT           "Filter:",IDC_STATIC,172,245,39,8,SS_CENTERIMAGE
-    PUSHBUTTON      "X",IDC_CONFIGSEARCHCLEAR,149,243,15,14
-    EDITTEXT        IDC_EDITPATH,236,263,49,15,ES_AUTOHSCROLL | WS_DISABLED
-    COMBOBOX        IDC_EDITNAME,55,264,175,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_IOPORTS DIALOGEX 0, 0, 396, 295
@@ -712,16 +712,16 @@ BEGIN
     RTEXT           "Path:",IDC_STATIC,5,15,36,15,SS_CENTERIMAGE
     EDITTEXT        IDC_PATH_NAME,46,15,324,15,ES_AUTOHSCROLL
     PUSHBUTTON      "...",IDC_SELECTOR,376,15,10,15
-    PUSHBUTTON      "OK",IDOK,146,102,48,15
-    PUSHBUTTON      "Cancel",IDCANCEL,201,102,48,15
     RTEXT           "Link:",IDC_STATIC,6,37,33,8,SS_CENTERIMAGE
     COMBOBOX        IDC_CONFIGLINK,46,35,250,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    CONTROL         "Ignore link",IDC_CONFIGNOLINK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,305,37,58,12
-    CONTROL         "Autoload",IDC_CONFIGAUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,305,56,51,12
     RTEXT           "Category:",IDC_STATIC,6,58,33,8,SS_CENTERIMAGE
+    EDITTEXT        IDC_CONFIGCATEGORY,46,54,249,15,ES_AUTOHSCROLL
     RTEXT           "Tags:",IDC_STATIC,6,76,33,8,SS_CENTERIMAGE
-    EDITTEXT        IDC_CONFIGCATEGORY,46,54,324,15,ES_AUTOHSCROLL
-    EDITTEXT        IDC_CONFIGTAGS,46,74,324,15,ES_AUTOHSCROLL
+    EDITTEXT        IDC_CONFIGTAGS,46,74,249,15,ES_AUTOHSCROLL
+    CONTROL         "Ignore link",IDC_CONFIGNOLINK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,305,37,58,12
+    CONTROL         "Autoload",IDC_CONFIGAUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,305,56,51,12
+    PUSHBUTTON      "OK",IDOK,146,102,48,15
+    PUSHBUTTON      "Cancel",IDCANCEL,201,102,48,15
 END
 
 IDD_CHIPSET DIALOGEX 0, 0, 396, 287
@@ -2159,7 +2159,7 @@ BEGIN
                             "PPC native OS booted with incompatible UAE boot ROM enabled.\nSelect ROM panel ""New UAE (128k, ROM, Indirect)"" option\nor disable all UAE expansions.\n"
     IDS_AUTOSCALE_OVERSCAN_BLANK "Overscan blanking"
     IDS_NUMSG_NOMEMORY      "Out of memory or too much Z3 autoconfig space configured.\nIf 64-bit, make sure RTG board is first in board list."
-    IDS_EXPANSION_CATEGORY  "Built-in expansions\nSCSI controllers\nIDE controllers\nSASI controllers\nCustom controllers\nPCI bridgeboards\nx86 bridgeboards\nGraphics boards\nSound cards\nNetwork adapters\nDisk controllers\nx86 bridgeboard expansions"
+    IDS_EXPANSION_CATEGORY  "Built-in expansions\nSCSI controllers\nIDE controllers\nSASI controllers\nCustom controllers\nPCI bridgeboards\nx86 Bridgeboards\nGraphics boards\nSound cards\nNetwork adapters\nDisk controllers\nx86 bridgeboard expansions"
     IDS_WINUAETITLE_PAUSED  "[Paused]"
     IDS_MOUSE_UNTRAP_MODE   "None (Alt-Tab)\nMiddle button\nMagic mouse\nBoth\n"
     IDS_TABLET_MODE         "-\nTablet emulation\n"
index ca432599b3859bdae93ee3a88fd2051202c3c9f8..bca126e51fbc20f2af4032152aae82240fc3288b 100644 (file)
@@ -1757,7 +1757,7 @@ void rp_harddrive_image_change (int num, bool readonly, const TCHAR *name)
 }
 void rp_cd_image_change (int num, const TCHAR *name)
 {
-       rp_device_change (RP_DEVICECATEGORY_CD, num, 0, 0, name);
+       rp_device_change (RP_DEVICECATEGORY_CD, num, 0, true, name);
 }
 
 void rp_floppy_device_enable (int num, bool enabled)
index 4fc242fb66a206352956ec364d934ffe6551cd3d..2e3b1bc515cbb31c2a107fd14306f4a33ca8acfe 100644 (file)
 #define LANG_DLL_FULL_VERSION_MATCH 1
 
 #if WINUAEPUBLICBETA
-#define WINUAEBETA _T("5")
+#define WINUAEBETA _T("6")
 #else
 #define WINUAEBETA _T("")
 #endif
 
-#define WINUAEDATE MAKEBD(2018, 9, 16)
+#define WINUAEDATE MAKEBD(2018, 9, 22)
 
 //#define WINUAEEXTRA _T("AmiKit Preview")
 //#define WINUAEEXTRA _T("Amiga Forever Edition")
index 8941b9b4032f34c2c1ca37a17f743bd01046b99b..7c54a1c9ff15057344a0726da9dd43aeab1bcbb9 100644 (file)
@@ -4201,15 +4201,13 @@ bool target_graphics_buffer_update(int monid)
        return true;
 }
 
-void updatedisplayarea(int monid)
+static void updatedisplayarea2(int monid)
 {
        struct AmigaMonitor *mon = &AMonitors[monid];
        struct amigadisplay *ad = &adisplays[monid];
        if (!mon->screen_is_initialized)
                return;
-       if (mon->screen_is_picasso)
-               return;
-       if (dx_islost ())
+       if (dx_islost())
                return;
 #if defined (GFXFILTER)
        if (mon->currentmode.flags & DM_D3D) {
@@ -4225,8 +4223,20 @@ void updatedisplayarea(int monid)
                                        S2X_refresh(monid);
                        }
 #endif
-                       DirectDraw_Flip (0);
+                       DirectDraw_Flip(0);
+               }
+}
+
+void updatedisplayarea(int monid)
+{
+       if (monid >= 0) {
+               updatedisplayarea2(monid);
+       } else {
+               for (int i = 0; i < MAX_AMIGAMONITORS; i++) {
+                       updatedisplayarea2(i);
                }
+       }
+
 }
 
 void updatewinfsmode(int monid, struct uae_prefs *p)
index 95999af26adc1dc491d11ce8a09811b25e22c9f4..b97ddffaff7313e8ac3c0da4c30065d520b6eb34 100644 (file)
@@ -4651,8 +4651,6 @@ void InitializeListView (HWND hDlg)
        DWORD extraflags = 0;
        int listpadding;
 
-       SetWindowRedraw(hDlg, FALSE);
-
        if (cachedlist) {
                if (lv_old_type >= 0) {
                        lv_oldidx[lv_old_type] = ListView_GetTopIndex (cachedlist);
@@ -4741,6 +4739,8 @@ void InitializeListView (HWND hDlg)
 
        }
 
+       SetWindowRedraw(list, FALSE);
+
        scalaresource_listview_font_info(&listpadding);
        listpadding *= 2;
        int flags = LVS_EX_DOUBLEBUFFER | extraflags;
@@ -5202,8 +5202,6 @@ void InitializeListView (HWND hDlg)
                }
 #endif
        }
-       SetWindowRedraw(hDlg, TRUE);
-       RedrawWindow(hDlg, NULL, NULL, RDW_ERASE | RDW_FRAME | RDW_INVALIDATE | RDW_ALLCHILDREN);
 
        if (result != -1) {
                if (GetWindowRect (list, &rect)) {
@@ -5235,6 +5233,8 @@ void InitializeListView (HWND hDlg)
        }
        lv_old_type = lv_type;
 
+       SetWindowRedraw(list, TRUE);
+       RedrawWindow(list, NULL, NULL, RDW_ERASE | RDW_FRAME | RDW_INVALIDATE | RDW_ALLCHILDREN);
 }
 
 static int listview_find_selected (HWND list)
@@ -7504,7 +7504,7 @@ static void update_da (HWND hDlg)
        set_da (hDlg);
        init_colors(0);
        init_custom();
-       updatedisplayarea(0);
+       updatedisplayarea(-1);
 }
 
 static void handle_da (HWND hDlg)
@@ -9715,6 +9715,8 @@ static void init_expansion2(HWND hDlg, bool init)
                                continue;
                        if (scsiromselectedcatnum == 0 && (expansionroms[i].deviceflags & (EXPANSIONTYPE_SASI | EXPANSIONTYPE_CUSTOM)))
                                continue;
+                       if ((expansionroms[i].deviceflags & EXPANSIONTYPE_X86_EXPANSION) && scsiromselectedmask[scsiromselectedcatnum] != EXPANSIONTYPE_X86_EXPANSION)
+                               continue;
                        int cnt = 0;
                        for (int j = 0; j < MAX_DUPLICATE_EXPANSION_BOARDS; j++) {
                                if (is_board_enabled(&workprefs, expansionroms[i].romtype, j)) {
@@ -13390,7 +13392,7 @@ static void addhdcontroller(HWND hDlg, const struct expansionromtype *erc, int *
 {
        TCHAR name[MAX_DPATH];
        name[0] = 0;
-       if (_tcsicmp(erc->friendlymanufacturer, erc->friendlyname)) {
+       if (erc->friendlymanufacturer && _tcsicmp(erc->friendlymanufacturer, erc->friendlyname)) {
                _tcscat(name, erc->friendlymanufacturer);
                _tcscat(name, _T(" "));
        }
@@ -19143,7 +19145,7 @@ static void filter_handle (HWND hDlg)
                }
        }
        enable_for_hw3ddlg (hDlg);
-       updatedisplayarea(0);
+       updatedisplayarea(-1);
 }
 
 static INT_PTR CALLBACK hw3dDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
@@ -19251,7 +19253,7 @@ static INT_PTR CALLBACK hw3dDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
                        currprefs.gf[filter_nativertg].gfx_filter_horiz_zoom_mult = workprefs.gf[filter_nativertg].gfx_filter_horiz_zoom_mult = 1.0;
                        currprefs.gf[filter_nativertg].gfx_filter_vert_zoom_mult = workprefs.gf[filter_nativertg].gfx_filter_vert_zoom_mult = 1.0;
                        values_to_hw3ddlg (hDlg, false);
-                       updatedisplayarea(0);
+                       updatedisplayarea(-1);
                        break;
                case IDC_FILTERPRESETLOAD:
                case IDC_FILTERPRESETSAVE:
@@ -19268,14 +19270,14 @@ static INT_PTR CALLBACK hw3dDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
                                        currprefs.gf[filter_nativertg].gfx_filter_keep_aspect = workprefs.gf[filter_nativertg].gfx_filter_keep_aspect = 0;
                                enable_for_hw3ddlg (hDlg);
                                values_to_hw3ddlg (hDlg, false);
-                               updatedisplayarea(0);
+                               updatedisplayarea(-1);
                        }
                case IDC_FILTERKEEPAUTOSCALEASPECT:
                        {
                                workprefs.gf[filter_nativertg].gfx_filter_keep_autoscale_aspect = currprefs.gf[filter_nativertg].gfx_filter_keep_autoscale_aspect = ischecked (hDlg, IDC_FILTERKEEPAUTOSCALEASPECT) ? 1 : 0;
                                enable_for_hw3ddlg (hDlg);
                                values_to_hw3ddlg (hDlg, false);
-                               updatedisplayarea(0);
+                               updatedisplayarea(-1);
                        }
                        break;
                default:
@@ -19333,7 +19335,7 @@ static INT_PTR CALLBACK hw3dDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
                                        item = SendDlgItemMessage (hDlg, IDC_FILTERSLR, CB_GETCURSEL, 0, 0L);
                                        if (item != CB_ERR) {
                                                currprefs.gf[filter_nativertg].gfx_filter_scanlineratio = workprefs.gf[filter_nativertg].gfx_filter_scanlineratio = scanlineindexes[item];
-                                               updatedisplayarea(0);
+                                               updatedisplayarea(-1);
                                        }
                                        break;
                                case IDC_FILTEROVERLAYTYPE:
@@ -19351,11 +19353,11 @@ static INT_PTR CALLBACK hw3dDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
                                        break;
                                case IDC_FILTERHZMULT:
                                        currprefs.gf[filter_nativertg].gfx_filter_horiz_zoom_mult = workprefs.gf[filter_nativertg].gfx_filter_horiz_zoom_mult = getfiltermult (hDlg, IDC_FILTERHZMULT);
-                                       updatedisplayarea(0);
+                                       updatedisplayarea(-1);
                                        break;
                                case IDC_FILTERVZMULT:
                                        currprefs.gf[filter_nativertg].gfx_filter_vert_zoom_mult = workprefs.gf[filter_nativertg].gfx_filter_vert_zoom_mult = getfiltermult (hDlg, IDC_FILTERVZMULT);
-                                       updatedisplayarea(0);
+                                       updatedisplayarea(-1);
                                        break;
                                case IDC_FILTERASPECT:
                                        {
@@ -19370,7 +19372,7 @@ static INT_PTR CALLBACK hw3dDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
                                                                v2 = getaspectratio (v - 2);
                                                }
                                                currprefs.gf[filter_nativertg].gfx_filter_aspect = workprefs.gf[filter_nativertg].gfx_filter_aspect = v2;
-                                               updatedisplayarea(0);
+                                               updatedisplayarea(-1);
                                        }
                                        break;
                                case IDC_FILTERASPECT2:
@@ -19378,7 +19380,7 @@ static INT_PTR CALLBACK hw3dDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
                                                int v = SendDlgItemMessage (hDlg, IDC_FILTERASPECT2, CB_GETCURSEL, 0, 0L);
                                                if (v != CB_ERR)
                                                        currprefs.gf[filter_nativertg].gfx_filter_keep_aspect = workprefs.gf[filter_nativertg].gfx_filter_keep_aspect = v;
-                                               updatedisplayarea(0);
+                                               updatedisplayarea(-1);
                                        }
                                        break;
 
@@ -19459,7 +19461,7 @@ static INT_PTR CALLBACK hw3dDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
                                init_colors(0);
                                notice_new_xcolors ();
                        }
-                       updatedisplayarea(0);
+                       updatedisplayarea(-1);
                        recursive--;
                        break;
                }
index f1d4df375817d4808b4ec7014f45c161a47e90f4..a4521a00772db81cf60a670fdbefcb44da1fd878 100644 (file)
@@ -1,5 +1,18 @@
 \r
 \r
+Beta 6:\r
+\r
+- Video recording from hardware emulated graphics boards recorded only black screen.\r
+- Screenshot from hardware emulated graphics boards always captured visible output even if capture before filtering was ticked.\r
+- Filter panel (D3D) scanlines work now properly in multimonitor mode. (Previously native/RTG selection was ignored)\r
+- Taking screenshot/recording when in multithreaded RTG mode was not thread safe.\r
+- x86 bridgeboard category move broke SCSI and IDE x86 expansions. Sound Blaster and NIC was not moved.\r
+- x86 bridgeboard virtual serial mouse connected serial port was not reset at reboot.\r
+- A2386SX bridgeboard chipset EMS banking emulation was not complete, chipset native EMS driver complained about invalid hardware.\r
+- Creating state file when disk access was active and disk image included timing information (for example ipf) caused buffer overflow.\r
+- Autoload checkbox was hidden under string field in Advanced information panel.\r
+- Added untested MSBSYNC disk synchronization mode support.\r
+\r
 Beta 5:\r
 \r
 - Search clear ("X" button) didn't store new empty search filter to registry/ini.\r