From: Toni Wilen Date: Mon, 13 Jul 2015 16:24:59 +0000 (+0300) Subject: 3200b3 X-Git-Tag: 3200~134 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=c24f7387f96ae5dc25bbec6626e7877df41be7df;p=francis%2Fwinuae.git 3200b3 --- diff --git a/mame/tm34010/tms34010.cpp b/mame/tm34010/tms34010.cpp index 12ed32b8..8f24c70c 100644 --- a/mame/tm34010/tms34010.cpp +++ b/mame/tm34010/tms34010.cpp @@ -1136,6 +1136,9 @@ WRITE16_MEMBER( tms340x0_device::io_register_w ) oldreg = IOREG(offset); IOREG(offset) = data; +// if (offset != 15 && offset != 16) +// write_log("WRITE %08x %04 (%04x)\n", offset, data, oldreg); + switch (offset) { case REG_CONTROL: @@ -1473,6 +1476,8 @@ READ16_MEMBER( tms340x0_device::io_register_r ) // if (LOG_CONTROL_REGS) // logerror("%s: read %s\n", machine().describe_context(), ioreg_name[offset]); +// write_log("READ %08x %04x\n", offset, IOREG(offset)); + switch (offset) { case REG_HCOUNT: diff --git a/od-win32/win32.h b/od-win32/win32.h index 20ecf6da..74b9cd73 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -20,12 +20,12 @@ #define LANG_DLL_FULL_VERSION_MATCH 1 #if WINUAEPUBLICBETA -#define WINUAEBETA _T("2") +#define WINUAEBETA _T("3") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2015, 7, 7) +#define WINUAEDATE MAKEBD(2015, 7, 13) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") @@ -112,7 +112,7 @@ void setpathmode (pathtype pt); extern void sleep_millis (int ms); extern void sleep_millis_main (int ms); -extern void sleep_millis_busy (int ms); +extern void sleep_millis_amiga (int ms); extern void wait_keyrelease (void); extern void keyboard_settrans (void); diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index ed6742f4..066e1300 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -7696,8 +7696,8 @@ static void enable_for_memorydlg (HWND hDlg) extern uae_u32 natmem_size; static void setmax32bitram (HWND hDlg) { - TCHAR tmp[100]; - uae_u32 size, rtgz3size, z3size; + TCHAR tmp[256]; + uae_u32 size, rtgz3size, z3size_uae = 0, z3size_real = 0; uae_u32 sizealign = 16 * 1024 * 1024 - 1; rtgz3size = gfxboard_get_configtype(workprefs.rtgmem_type) == 3 ? workprefs.rtgmem_size : 0; @@ -7708,12 +7708,12 @@ static void setmax32bitram (HWND hDlg) if (changed_prefs.mbresmem_high_size >= 128 * 1024 * 1024 && (size || workprefs.z3chipmem_size)) size += (changed_prefs.mbresmem_high_size - 128 * 1024 * 1024) + 16 * 1024 * 1024; if (natmem_size > 0x40000000) - z3size = natmem_size - 0x40000000; - else - z3size = 0; + z3size_real = natmem_size - 0x40000000; + if (natmem_size > 0x10000000) + z3size_uae = natmem_size - 0x10000000; size += ((workprefs.z3chipmem_size + sizealign) & ~sizealign); - _stprintf (tmp, L"Configured 32-bit RAM: %dM, reserved: %dM, true Z3 address space available: %dM", - size / (1024 * 1024), (natmem_size - 256 * 1024 * 1024) / (1024 * 1024), z3size / (1024 * 1024)); + _stprintf (tmp, L"Configured 32-bit RAM: %dM, reserved: %dM, Z3 available: %dM (UAE), %dM (Real)", + size / (1024 * 1024), (natmem_size - 256 * 1024 * 1024) / (1024 * 1024), z3size_uae / (1024 * 1024), z3size_real / (1024 * 1024)); SetDlgItemText (hDlg, IDC_MAX32RAM, tmp); } @@ -8199,7 +8199,7 @@ static void init_expansion2(HWND hDlg) } -static const int expansion_settings_id[] = { IDC_EXPANSION_SETTING1, IDC_EXPANSION_SETTING2, -IDC_EXPANSION_SETTING3, 1 }; +static const int expansion_settings_id[] = { IDC_EXPANSION_SETTING1, IDC_EXPANSION_SETTING2, IDC_EXPANSION_SETTING3, 1 }; static void values_to_expansion2dlg_sub(HWND hDlg) { @@ -8382,6 +8382,7 @@ static void values_to_expansion2_expansion_settings(HWND hDlg) while (expansion_settings_id[i] >= 0) { int id = expansion_settings_id[i]; SetWindowText(GetDlgItem(hDlg, id), _T("-")); + hide(hDlg, id, true); i++; } } @@ -8822,6 +8823,13 @@ static void values_to_expansiondlg(HWND hDlg) if (workprefs.rtgmem_type >= GFXBOARD_HARDWARE && v < gfxboard_get_vram_min(workprefs.rtgmem_type)) v = gfxboard_get_vram_min(workprefs.rtgmem_type); workprefs.rtgmem_size = v; + } else { + int v = workprefs.rtgmem_size; + if (workprefs.rtgmem_type >= GFXBOARD_HARDWARE && v > gfxboard_get_vram_max(workprefs.rtgmem_type)) + v = gfxboard_get_vram_max(workprefs.rtgmem_type); + if (workprefs.rtgmem_type >= GFXBOARD_HARDWARE && v < gfxboard_get_vram_min(workprefs.rtgmem_type)) + v = gfxboard_get_vram_min(workprefs.rtgmem_type); + workprefs.rtgmem_size = v; } if (workprefs.rtgmem_type >= GFXBOARD_HARDWARE) { switch (gfxboard_get_vram_min(workprefs.rtgmem_type)) { diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index 56c61c61..72ff77c5 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,4 +1,29 @@ +Beta 3: + +- CD and sound card audio are now always resampled with Anti interpolator before it gets mixed + with Paula audio stream. Previously it used very crude resampling method. +- ES1370 (SB128) emulation fixed, DMA length register was not reset when playback was restarted. + (I don't understand how it would have ever worked in QEMU without sound glitches) +- Added "Full PCI DMA" option to PCI bridges that in real world don't have Amiga to/from PCI DMA + support (Prometheus and Mediators). Default is off = emulates real hardware limits. +- Validate PCI DMA addresses, log message and return random data if trying to access unsupported address + or if attempting to access Amiga address space and bridge does not have full PCI DMA support. + (Probably becomes HALT-something if real hardware simply hangs in this situation) +- 68040 MMU mode hardware bus error not caused by MMU had incorrectly status register ATC bit set. +- More reliable A2410 resolution switching. +- A2410 framebuffer space is also mirrored at the beginning of TMS34010 address space. +- Implemented A2410 TMS34010 to/from Amiga address space DMA feature. So far no programs found that + uses it. +- Emulate 68020/030 prefetch pipeline more accurately, branch instructions stop prefetching after + last opword of branch instruction has been loaded. It reduces unnecessary memory accesses. + This probably also makes 68020/030 cycle exact mode even more faster without adjusting + other parts of emulation (which needed to be made faster because some other unknown part + was too slow, hopefully it was this prefetch feature..) + Not fully implemented yet, addressing modes that use brief or full extension words disable + this feature until next branch instruction because length of instruction needs to be known in + advance and in these addressing modes it can't be calculated statically. + Beta 2: - Borderblanking works again (b1) @@ -13,6 +38,9 @@ Beta 2: - Added ES1370 from QEMU. (PCI sound card), common ES1370 based card is SB128. - Added FM801 emulation. (PCI sound card). - Added Vortex System 2000 HD controller. +- 68020/030 prefetch/cycle-exact: don't prefetch from old PC if instruction is going to branch. +- Accelerator board memory size reset when viewing RAM GUI panel if accelerator used "Blizzard" RAM type. +- HD and RTG boards are now named (). - A2410 display card emulation! TMS34010 emulation core from MAME. A2410 notes: