]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
4500b7
authorToni Wilen <twilen@winuae.net>
Sat, 31 Oct 2020 17:47:54 +0000 (19:47 +0200)
committerToni Wilen <twilen@winuae.net>
Sat, 31 Oct 2020 17:47:54 +0000 (19:47 +0200)
od-win32/resources/resource.h
od-win32/resources/winuae.rc
od-win32/win32.cpp
od-win32/win32.h
od-win32/win32gui.cpp
od-win32/winuae_msvc15/winuae_msvc.sln
od-win32/winuae_msvc15/winuae_msvc.vcxproj
od-win32/winuaechangelog.txt
scsi.cpp

index 6db74eda1016b8f62939f47bebb6985abf81b42b..5492fb17949aa228ca2ec52f54bfe7b16fd0f56e 100644 (file)
 #define IDC_MISCLIST                    1810
 #define IDC_FASTMEMNOAUTOCONFIG         1810
 #define IDC_STATENAME                   1811
+#define IDC_FASTMEMDMA                  1811
 #define IDC_SAMPLER_STEREO              1812
 #define IDC_LISTDIALOG_LIST             1813
 #define IDC_LOGPATH                     1814
 #define IDC_ROM_ADDRESS2                1863
 #define IDC_CUSTOMROMFILE               1864
 #define IDC_SCSIROMFILEPCMCIA           1865
+#define IDC_SCSIROM24BITDMA             1866
 #define ID__FLOPPYDRIVES                40004
 #define ID_FLOPPYDRIVES_DF0             40005
 #define ID_ST_CONFIGURATION             40010
index dde75806b87acfc7da05d9f285623bde84e7150a..5267657a538b392efaa7f3ad33da485e0ee70ce4 100644 (file)
@@ -2,8 +2,8 @@
 //
 #pragma code_page(65001)
 
-#include "resource.h"
 #include "winres.h"
+#include "resource.h"
 /////////////////////////////////////////////////////////////////////////////
 // English (United Kingdom) resources
 
@@ -249,7 +249,7 @@ BEGIN
     RTEXT           "Autoconfig data",IDC_STATIC,11,214,57,15,SS_CENTERIMAGE
     EDITTEXT        IDC_AUTOCONFIG_DATA,78,213,164,13,ES_AUTOHSCROLL
     CONTROL         "Edit Autoconfig data",IDC_FASTMEMAUTOCONFIGUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,261,196,103,8
-    CONTROL         "Manual configuration",IDC_FASTMEMNOAUTOCONFIG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,261,214,103,8
+    CONTROL         "Manual configuration",IDC_FASTMEMNOAUTOCONFIG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,261,208,103,8
     RTEXT           "Memory board",IDC_STATIC,15,235,53,15,SS_CENTERIMAGE
     COMBOBOX        IDC_MEMORYBOARDSELECT,77,235,165,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     LTEXT           "Z3 mapping mode:",IDC_STATIC,263,234,115,15,SS_CENTERIMAGE
@@ -257,6 +257,7 @@ BEGIN
     EDITTEXT        IDC_RAM_ADDRESS,77,256,79,13,ES_AUTOHSCROLL
     EDITTEXT        IDC_RAM_ADDRESS2,164,256,79,13,ES_AUTOHSCROLL
     COMBOBOX        IDC_Z3MAPPING,262,256,117,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "DMA Capable",IDC_FASTMEMDMA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,261,220,103,8
 END
 
 IDD_CPU DIALOGEX 0, 0, 396, 316
@@ -843,7 +844,7 @@ BEGIN
     COMBOBOX        IDC_CS_UNMAPPED,125,212,113,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     RTEXT           "Unmapped address space:",IDC_STATIC,15,215,101,9
     CONTROL         "Toshiba Gary",IDC_CS_TOSHIBAGARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,197,106,12
-    CONTROL         "KS ROM has Chip RAM speed",IDC_CS_ROMISSLOW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,198,125,12
+    CONTROL         "KS ROM has Chip RAM speed",IDC_CS_ROMISSLOW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,197,125,12
     CONTROL         "CIA 391078-01 [] CIA revision that can't read IO pin status in output mode",IDC_CS_CIA,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,185,125,12
 END
@@ -1371,6 +1372,7 @@ BEGIN
     CONTROL         "CD32 Full Motion Video cartridge",IDC_CS_CD32FMV,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,193,259,193,11
     CONTROL         "Enabled",IDC_SCSIROMSELECTED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,79,99,12
     CONTROL         "PCMCIA inserted",IDC_SCSIROMFILEPCMCIA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,301,98,84,12
+    CONTROL         "24-bit DMA",IDC_SCSIROM24BITDMA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,61,84,12
 END
 
 IDD_CHSQUERY DIALOGEX 0, 0, 396, 85
index a666bfebde8546ae0b7c87d65cb4b880e64c501f..82a7544c52abbb82289716009c4b7b928d1a2367 100644 (file)
@@ -2428,7 +2428,6 @@ static LRESULT CALLBACK AmigaWindowProc(HWND hWnd, UINT message, WPARAM wParam,
                        else if ((int)lParam > 0)
                                monitor_off = 1;
                        break;
-
                case SC_KEYMENU:
                        if (HIWORD(lParam) <= 0 && isfocus() > 1)
                                return 0;
@@ -2542,6 +2541,7 @@ static LRESULT CALLBACK AmigaWindowProc(HWND hWnd, UINT message, WPARAM wParam,
                        winuae_inactive(mon, hWnd, 0);
                        break;
                }
+               break;
        }
 
        case WT_PROXIMITY:
@@ -2732,6 +2732,7 @@ static LRESULT CALLBACK MainWindowProc (HWND hWnd, UINT message, WPARAM wParam,
                        SetWindowPos(hWnd, NULL, r->left, r->top, r->right - r->left, r->bottom - r->top, SWP_NOZORDER | SWP_NOACTIVATE);
                        return 0;
                }
+               break;
        }
 
        case WM_GETMINMAXINFO:
index 050b47d16a72ced1aa1a8719f7de540dbaa77b0d..3af44d54dbff0d06fbd6423465a01af49c06c543 100644 (file)
 #define LANG_DLL_FULL_VERSION_MATCH 1
 
 #if WINUAEPUBLICBETA
-#define WINUAEBETA _T("Beta 6")
+#define WINUAEBETA _T("Beta 7")
 #else
 #define WINUAEBETA _T("")
 #endif
 
-#define WINUAEDATE MAKEBD(2020, 10, 18)
+#define WINUAEDATE MAKEBD(2020, 10, 31)
 
 //#define WINUAEEXTRA _T("AmiKit Preview")
 //#define WINUAEEXTRA _T("Amiga Forever Edition")
@@ -169,7 +169,7 @@ extern void rawinput_alloc(void);
 struct winuae_lang
 {
     WORD id;
-    TCHAR *name;
+    const TCHAR *name;
 };
 extern const struct winuae_lang langs[];
 extern HMODULE language_load (WORD language);
@@ -205,14 +205,14 @@ extern struct sound_device *record_devices[MAX_SOUND_DEVICES];
 
 struct contextcommand
 {
-       TCHAR *shellcommand;
-       TCHAR *command;
+       const TCHAR *shellcommand;
+       const TCHAR *command;
        int icon;
 };
 struct assext {
     TCHAR *ext;
-    TCHAR *cmd;
-    TCHAR *desc;
+    const TCHAR *cmd;
+    const TCHAR *desc;
     int icon;
        struct contextcommand *cc;
     int enabled;
index 3398d92a2a9381b6392789ef566e9e83e484c9ab..adac2f58e48a032613d8ddb211644c093b2b6825 100644 (file)
@@ -713,7 +713,7 @@ static void write_disk_history2 (int type)
                j++;
        }
        while (j <= MAX_PREVIOUS_IMAGES) {
-               TCHAR *s = _T("");
+               const TCHAR *s = _T("");
                _stprintf (tmp, _T("Image%02d"), j);
                regsetstr (fkey, tmp, s);
                j++;
@@ -2454,6 +2454,8 @@ void gui_display (int shortcut)
        } else if (shortcut == 4) {
                if (DiskSelection(mon->hAmigaWnd, IDC_DOLOADSTATE, 10, &changed_prefs, NULL, NULL))
                        savestate_state = STATE_DORESTORE;
+       } else if (shortcut == 6) {
+               DiskSelection(mon->hAmigaWnd, IDC_CD_SELECT, 17, &changed_prefs, NULL, NULL);
        }
        mon->manual_painting_needed--; /* So that WM_PAINT doesn't need to use custom refreshing */
        reset_sound ();
index 48bb2f9264dd27d912f391d913dbd3c130745011..01f79f013bf322d0916adff66c210027d382c789 100644 (file)
@@ -421,7 +421,6 @@ Global
                {EDD28611-EAD9-4EB5-A873-18160AC44434}.FullRelease|Mixed Platforms.ActiveCfg = Release|Win32
                {EDD28611-EAD9-4EB5-A873-18160AC44434}.FullRelease|Mixed Platforms.Build.0 = Release|Win32
                {EDD28611-EAD9-4EB5-A873-18160AC44434}.FullRelease|Win32.ActiveCfg = Release|Win32
-               {EDD28611-EAD9-4EB5-A873-18160AC44434}.FullRelease|Win32.Build.0 = Release|Win32
                {EDD28611-EAD9-4EB5-A873-18160AC44434}.FullRelease|x64.ActiveCfg = Release|x64
                {EDD28611-EAD9-4EB5-A873-18160AC44434}.FullRelease|x64.Build.0 = Release|x64
                {EDD28611-EAD9-4EB5-A873-18160AC44434}.Release|Mixed Platforms.ActiveCfg = Release|Win32
@@ -439,7 +438,6 @@ Global
                {EDD28611-EAD9-4EB5-A873-18160AC44434}.Test|Mixed Platforms.Build.0 = Release|Win32
                {EDD28611-EAD9-4EB5-A873-18160AC44434}.Test|Win32.ActiveCfg = Test|Win32
                {EDD28611-EAD9-4EB5-A873-18160AC44434}.Test|x64.ActiveCfg = Release|x64
-               {EDD28611-EAD9-4EB5-A873-18160AC44434}.Test|x64.Build.0 = Release|x64
                {07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Debug|Mixed Platforms.ActiveCfg = Release|Win32
                {07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Debug|Mixed Platforms.Build.0 = Release|Win32
                {07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Debug|Win32.ActiveCfg = Release|Win32
@@ -449,7 +447,6 @@ Global
                {07609D0D-FE6B-4A84-8C87-F914A4566F6F}.FullRelease|Mixed Platforms.ActiveCfg = Release|Win32
                {07609D0D-FE6B-4A84-8C87-F914A4566F6F}.FullRelease|Mixed Platforms.Build.0 = Release|Win32
                {07609D0D-FE6B-4A84-8C87-F914A4566F6F}.FullRelease|Win32.ActiveCfg = Release|Win32
-               {07609D0D-FE6B-4A84-8C87-F914A4566F6F}.FullRelease|Win32.Build.0 = Release|Win32
                {07609D0D-FE6B-4A84-8C87-F914A4566F6F}.FullRelease|x64.ActiveCfg = Release|x64
                {07609D0D-FE6B-4A84-8C87-F914A4566F6F}.FullRelease|x64.Build.0 = Release|x64
                {07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Release|Mixed Platforms.ActiveCfg = Release|Win32
@@ -467,7 +464,6 @@ Global
                {07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Test|Mixed Platforms.Build.0 = Release|Win32
                {07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Test|Win32.ActiveCfg = Release|Win32
                {07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Test|x64.ActiveCfg = Release|x64
-               {07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Test|x64.Build.0 = Release|x64
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
index 2f24afe33521fddfdb0c8cd3a90bf40ffb13072b..43e8f8d7616948d9aeb5019581c63dcfe99bacf8 100644 (file)
@@ -69,6 +69,7 @@
     <CharacterSet>Unicode</CharacterSet>
     <PlatformToolset>v142</PlatformToolset>
     <SpectreMitigation>false</SpectreMitigation>
+    <EnableASAN>false</EnableASAN>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
@@ -98,6 +99,7 @@
     <CharacterSet>Unicode</CharacterSet>
     <PlatformToolset>v142</PlatformToolset>
     <SpectreMitigation>false</SpectreMitigation>
+    <EnableASAN>false</EnableASAN>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
       <FloatingPointModel>Fast</FloatingPointModel>
-      <TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
+      <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <RuntimeTypeInfo>false</RuntimeTypeInfo>
       <PrecompiledHeader>
       </PrecompiledHeader>
index 87f8e2d1bfb62890bcacd0c7480f85c70d426aad..902917e02815aef885b6ed508f46f058806846f4 100644 (file)
@@ -1,12 +1,29 @@
 
 
+Beta 7:
+
+- Fixed incorrect bitplane DMA overrun condition that made Zool 2 AGA flicker strangely (b1) (AGA game with 7 planes but FMODE=0. What a waste of DMA slots.)
+- JIT FPU 80-bit host mode should work again (b1)
+- Emulated clockport expansions (Prelude A1200 is currently the only one) now support 4 port clockport expander. "-" = no expander (Same device mapped to all 4 slots), "1" = expander slot 1 and so on.
+- Added Zorro 2/A500/CDTV DMA controller 24-bit DMA checkbox in Expansion panel. (Unticked = full 32 addressing capable, ticked = 24-bit access only, real world behavior) Previously some emulated 24-bit DMA controllers had full 32-bit support, some didn't.
+- All Z2/Z3 RAM banks now have DMA capable checkbox in RAM panel. If not ticked and DMA HD controller tries to access it, read returns all ones and writes do nothing. (In real world result could be memory corruption, hang etc). This can be used to quickly test if some real world DMA controller + accelerator combination with accelerator RAM set to no DMA causes similar problems in emulation. Other RAM banks only have config file support. Find RAM name in config file and then replace "*_size" with "*_options=nodma=true". For example "bogomem_options=nodma=true" makes slow ram not DMA capable. NOTE: Chipset DMA is not affected even if chip ram DMA is disabled, it only affects mainboard (CDTV and CD32) and expansion CD/HD DMA controllers.
+- Added CD image select/eject keyboard shortcut. END+F5 = select CD image, END+SHIFT+F5 = eject CD. Statefile quick restore moved to END+F6. NOTE: currently END+F5 opens even if there is no emulated CD drive.
+- If game controller was plugged in after config was loaded and loaded config had game controller configured in game ports panel, game controller was correctly remembered but type and autofire mode was set to default values.
+- Hardware emulated Z3 RTG boards had wrong autoconfig size configuration. This caused access faults if MMU was enabled.
+- SVGA chip vblank interrupt acknowledge forced unnecessary full display refresh.
+- ALT+Space does not anymore open WinUAE window standard menu when input is captured.
+- JIT + Hardware emulated RTG board should fully work again.
+- JIT MOVEM/MOVE16 direct RAM access optimization (calculate address only once, then do moves vs do separate multiple calculate address+move combinations) is now automatically disabled if hardware emulated RTG board is enabled, most have byte/word swapping logic which would cause cause graphics corruption if same MOVEM/MOVE16 copy was first used for RAM reads or writes and then later (when it was still in translated format) it was used for VRAM reads or writes. At least CGX4 does this.
+- JIT LSL/LSR fixed (temporary fix, better fix later that should also fix other shift instructions). jit_blacklist config entry should be removed now.
+
+
 Beta 6:
 
 - Fixed CV64/3D 3D vertical clipping. Fixes at least warptest corruption when test texture goes out of screen vertically.
 - Fixed CV64 and CV64/3D weird behavior (pauses, possible "hpos" error dialog) due to interrupt triggering being called from a thread.
 - Fixed possible crash if hardware mouse pointer was very near to end of VRAM.
 - Debugger TO, Te and Tf didn't fully use current mmmu mapping mode. (For example TO output was corrupted if system was A3000 with loaded superkickstart)
-- x86 bridgeboard VGA display stopped updating every time display when mode changed. (b1)
+- x86 bridgeboard VGA display stopped updating every time display mode changed. (b1)
 
 Beta 5:
 
@@ -74,7 +91,7 @@ Beta 1:
 - Switching off display DMA when display DMA was active still had more hidden side-effects. It results in "bad state" that is not reset until bitplane DMA is switched back on, when it is back on DMA restarts from state which normally happens when DDFSTOP has been passed. Result is either 1 or 2 "bitplane blocks" (1 or 2 depends on horizontal position relative to next BPL1DAT slot when DMA was switched off) starting from DDFSTRT (if switched on before DDFSTRT). The rest of scanline is drawn using border color. Following scan line works normally. No differences between OCS/ECS. (vAmiga test case)
 - Another undocumented feature: if BPLCON0 HAM and DPF are both set, result is weird. HAM replaces R/G/B component: replacement component value is palette _index_ of current pixel in dual playfield mode! HAM selection bits zero: palette selection works like in dual playfield mode. BPLCON2 works like mode is normal dual play field (including invalid BPLCON2 priority values). OCS/ECS only. (vAmiga test case).
 - Dual playfield mode illegal BPLCON2 priorities didn't work correctly in hires mode. (bottom part of above test case)
-- Blitter nasty off cycle counting update, emulatation code wasn't exactly doing what it was supposed to do.
+- Blitter nasty off cycle counting update, emulation code wasn't exactly doing what it was supposed to do.
 - A1000 blitter busy bug was ignored if copper waited for blitter.
 - Added DMA debugger non-nasty blitter extra information: 's' (CPU will get next blitter cycle) and 'S' (CPU stole this cycle from blitter)
 - Confirmed CIA register contents at power up. CIA control register should be zero, for some reason previous reset default was $04.
index b52752f75c473cfd85242c0036677dddaea7f88f..78c9f0bbbbd42525079b653ee3540db947b55a61 100644 (file)
--- a/scsi.cpp
+++ b/scsi.cpp
@@ -4391,18 +4391,18 @@ bool kronos_init(struct autoconfig_info *aci)
        scsi->databuffer_size = 1024;
        scsi->databufferptr = xcalloc(uae_u8, scsi->databuffer_size);
 
-       uae_u16 sum = 0, xor = 0;
+       uae_u16 sum = 0, xorv = 0;
        for (int i = 0; i < 16 - 2; i++) {
                uae_u16 v = (kronos_eeprom[i * 2 + 0] << 8) | (kronos_eeprom[i * 2 + 1]);
                sum += v;
-               xor ^= v;
+               xorv ^= v;
        }
        sum = 0 - sum;
        kronos_eeprom[14 * 2 + 0] = sum >> 8;
        kronos_eeprom[14 * 2 + 1] = (uae_u8)sum;
-       xor ^= sum;
-       kronos_eeprom[15 * 2 + 0] = xor >> 8;
-       kronos_eeprom[15 * 2 + 1] = (uae_u8)xor;
+       xorv ^= sum;
+       kronos_eeprom[15 * 2 + 0] = xorv >> 8;
+       kronos_eeprom[15 * 2 + 1] = (uae_u8)xorv;
 
        scsi->eeprom = eeprom93xx_new(kronos_eeprom, 16, NULL);