#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
//
#pragma code_page(65001)
-#include "resource.h"
#include "winres.h"
+#include "resource.h"
/////////////////////////////////////////////////////////////////////////////
// English (United Kingdom) resources
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
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
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
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
else if ((int)lParam > 0)
monitor_off = 1;
break;
-
case SC_KEYMENU:
if (HIWORD(lParam) <= 0 && isfocus() > 1)
return 0;
winuae_inactive(mon, hWnd, 0);
break;
}
+ break;
}
case WT_PROXIMITY:
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:
#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")
struct winuae_lang
{
WORD id;
- TCHAR *name;
+ const TCHAR *name;
};
extern const struct winuae_lang langs[];
extern HMODULE language_load (WORD language);
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;
j++;
}
while (j <= MAX_PREVIOUS_IMAGES) {
- TCHAR *s = _T("");
+ const TCHAR *s = _T("");
_stprintf (tmp, _T("Image%02d"), j);
regsetstr (fkey, tmp, s);
j++;
} 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 ();
{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
{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
{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
{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
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
<SpectreMitigation>false</SpectreMitigation>
+ <EnableASAN>false</EnableASAN>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<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>
+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:
- 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.
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);