[AMIGA] Winuae 4.0.0 beta 1

[0] # EAB | !!! Niedziela, 8 Kwietnia 2018 22:35 CET [08-04-2018 22:34 CET]

[AMIGA] Winuae 4.0.0 beta 1

Następna seria testowych wersji WinUAE. Zmian jak w każdej pierwszej becie sporo (nowy debbugger, emulacja wirtualnych monitorów - wszystkie te rzeczy posiadają swoje własne changelogi - zostawiam odnośniki - dużo magii;))

Ostatnia pełna  wersja emulatora to WinUAE 3.6.1

Winuae 4.0.0 Beta 1 08/04/2018

  • Huge graphics subsystem rewrite to support multiple virtual monitors.
  • Lagless vsync.
  • New debugger.
  • If any existing configuration that works with 3.6.1 crashes or works strangely, attach config and winuaelog.txt, thanks. Do not attempt to "fix" it by adjusting config!


Current limitations:

  • Does not support black frame insertion or frame doubling = use only standard 50Hz or 60Hz modes. (or up to 85Hz or so )
  • Native mode only. Cycle-exact/approximate/fastest possible/JIT supported.
  • Direct3D 9 and 11 only.
  • Fullscreen only.
  • Amiga display to monitor position mapping must be border to border vertically (or close enough) or you may see tearing lines.
  • Does not gain anything from G-Sync.

Current features:

  • Input is read after each slice.
  • Default is 4 slices (adjustable in GUI) which makes max input latency about 6ms. (Assuming quality "gaming grade" USB input devices that use <=1ms USB rate.)
  • Because output is shader based, outputting each slice requires full render pass each time. It technically means same as rendering screen 4 times the frame rate. (for example 50Hz output requires rendering 200 frames) -> don't enable any extra shaders unless you have powerful GPU. Most likely requires GPU with on-board RAM (discrete GPU) because this mode increases VRAM bandwidth requirements heavily. Or reduce resolution.
  • END+F9 toggles debug colors when in low latency vsync mode (In normal modes END+F9 changes screens). When debug colors are disabled, useless screen clearing before each slice rendering is also disabled.

Multi virtual Amiga monitor support:

  • Enables multiple virtual Amiga monitors. Amiga monitor = single WinUAE window.
  • Default mode is unchanged, highest priority Amiga display output appear in single WinUAE window, switches automatically or manually (END+F9).
  • Optionally any video port display adapter or any RTG board can be disconnected from default monitor and connected to other monitor. (Monitor 1 to 4 select box in GUI, 1 = default). Only one signal source can be connected to non-default monitors. Only default monitor support on the fly switching/END+F9 manual switching.
  • Native (chipset) video output is always connected to first (default) monitor.
  • Each active monitor (WinUAE window) content is refreshed in real-time.
  • For example x86 VGA can be now visible at the same time with WB.

Limitations and other information:

  • Windowed mode only (later full-window with single virtual monitor to physical monitor mapping)
  • Fullscreen is not supported and won't be supported.
  • Direct 3D 9/11 mode only. DirectDraw won't be supported.
  • GUI options adjusts all monitors. If native/video port: native filter and all other native related settings are in use for all windows in native/video port mode, if RTG: GUI RTG settings are used for all monitors in RTG mode.
  • Non-default monitors are always opened next to default monitor. Positions are not stored.
  • It does not matter which window has focus/captured mouse. All windows listen for input normally.
  • Non-default windows don't have status bar or OSD and only have name of monitor in title bar.
  • Video port device's window opens immediately at startup, RTG board's window open when board's output is enabled with valid display configuration for the first time.

New debugger features:

Minimal Macrosystem Casablanca "emulation"

Supports Casablanca ROM images, none of Casablanca special IO address spaces supported. It is has very unknown custom hardware.

If you want to help with debugging/reverse-engineering Casablanca internals using emulation:

- Set correct ROM, either original 2x512k 1:1 ROM images (ROM scanner supported) or 1x1024M manually merged and byteswapped. (Don't ask me, they contain KS modules, in scrambled format.) If rom starts with "00 00 00 00 00 00 00 18 44 52 42 52 00 01 00 06 ........DRBR...." = correct merged and byteswapped image.

  • CPU must be set to 68060 (MMU bus error handler assumes PC always points to faulting instruction, 68040 documentation says it isn't guaranteed)
  • MMU emulation must be enabled.
  • Chipset extra must be set to Casablanca.
  • Other chipset options don't matter.
  • RAM must be set manually: Select Z3 Fast #1, set size (32M/64M), tick "Manual configuration", set Address range start = 40000000. (End address is set automatically). Casablanca RAM uses Z3 space but does not use autoconfig.
  • Log window should be enabled.

It "works" if you see lots of casablanca io access log messages, including MMU enable message. (MMU: TC=109dc enabled=0 page8k=0 PC=00000106). Finally it gets in infinite loop with exec partially initialized.

Because ROM is descrambled and copied to RAM by boot code and MMU is used to remap it to usual $f80000 region, also "zero page" is remapped, you need to enable UAE debugger mmu mapping support (for example "mmu 1" = use current MMU tables to translate user space addresses, 5 = super space) or you most likely get random garbage when using debugger commands.

Other Changes

  • Directory harddrives now use uaehf.device as a fake device driver (instead of non-existing uae.device), SysInfo does not anymore crash in Drives page when selecting directory harddrive. (SysInfo bug: it does not check for device driver open failure) HD_SCSICMD is also partially supported in this situation, mainly identification commands that don't access the drive, like READ CAPACITY and INQUIRY. Unsupported commands return Incompatible Medium Installed ($05/$30 00) error.
  • Partition hardfiles also support above HD_SCSICMD SCSI commands.
  • Don't show loaded config file ".uae" extension in GUI title.
  • GUI title didn't show loaded config file if it was loaded from command line or via doubleclicking config file.
  • MSVC code analyzer warnings fixed (uninitialized variables, buffer size checks).
  • ROM is slow -option only changed $e0-$e8 ROM space timing (wrong end address)
  • Toccata recording used wrong interrupt bit.
  • Fixed WD33C93 based SCSI controller and no SCSI devices: boot hang (3.6.1)
  • If CD was changed and system was reset during change delay, drive become empty and new CD was never inserted.
  • DKB RapidFire and SpitFire use same boot rom. Renamed to RapidFire/SpitFire. Only difference seems to be RAM expansion.
  • Added Xetec FastTrak, CSA Magnum 40, GVP A1230 Series II, Hardital TQM and MacroSystem Falcon 040 (without SCSI).
  • Real harddrive imager attempts to automatically temporarily dismount source drive first.
  • Directory filesystem harddrive block size is dynamic adjustment now starts from smaller disk size to also fix WB free space calculation overflow.
  • Disk swapper config file data is restored from statefile.
  • If memwatch point is watching for blitter accesses, blitter registers at start of blit and current register are output when breakpoint is hit.

Xetec FastTrak:

  • 5380 based SCSI controller, byte wide fake DMA, uses MOVEP.L.
  • "bootdisk.device" "bootdisk 1.42 (22 Mar 1990)" "Xetec FastTrak Autoboot"

CSA Magnum 40:

  • A2000 68040 accelerator.
  • 53C710 based SCSI, true DMA.
  • ROM is loader only, SCSI driver is installed to RDB LSEG blocks by the installer.

GVP A1230 Series II:

  • A1200 68030 accelerator.
  • Usual GVP WD33C93 + 24-bit GVP DMA chip combination, with 2 extra external DMA bits to support up to 32M of RAM.
  • ROM v5.0 gvpscsi.device.
  • Clock not emulated. (DS1994 1-wire clock)

Hardital TQM:

  • A1200 68030 accelerator.
  • ROM only adds RAM to system.
  • Possibly clone of DKB 1230. Nearly identical ROM contents with "DKB1230" string in "hidden" nybble based data!

MacroSystem Falcon 040

  • A1200 68040 accelerator.
  • Only non-SCSI boot ROM currently available, adds only RAM to system. Uses MOVEP, not 68060 compatible. (SCSI boot ROM wanted!)


NOWSZY [AMIGA] Winuae 4.0.0 beta XVI

Winuae 4.0.0 Beta XVI 20/06/2018

  • Beta tags removed.
  • Unminimizing didn't refresh display in certain situations.

This may become final tomorrow or thursday.

NOWSZY [AMIGA] Winuae 4.0.0 beta XV

Winuae 4.0.0 Beta XV 18/06/2018

Hopefully last beta

  • JIT cache size limit was in wrong validation routine, was ignored by on the fly changes (for example uae-configuration).
  • Harddrive imager now also supports native (mainboard/expansion board) IDE connected CHS-only drives.
  • Softfloat: 68040 only FPU undocumented feature emulated, FCMP with either (or both) parameters NaN with sign bit set: N-flag gets set.

NOWSZY [AMIGA] Winuae 4.0.0 beta XIV

Winuae 4.0.0 Beta XIV 17/06/2018

Possibly final or almost final

  • Virtual RDB (generated when partition hardfile is mounted in non-UAE controller) now also supports >512 block size partitions.
  • Some more code analyzer fixes.
  • Paula audio GUI volume setting was ignored if audio mode was mono.
  • Restrict minimum allowed JIT cache size to 128. (Previously too small unsupported size was allowed)
  • Fixed uaescsi.device reset memory corruption if CD filesystem uses TD_ADDCHANGEINT.
  • Logarithmic softfloat functions returned infinity when source value was nan.

NOWSZY [AMIGA] Winuae 4.0.0 beta XIII

Winuae 4.0.0 Beta XIII 12/06/2018

Beta 13: (Hopefully final next week)

  • Toccata sound was not fully closed when reset/reset and caused crash if new config was loaded and started.
  • Returning back to D3D11 fullscreen from GUI didn't automatically recapture mouse. (b12)
  • Debugger f <start> <end> was broken.
  • Corrupted OSD graphics (if OSD was enabled) and extra dark/bright line was drawn at the bottom of display in lagless D3D11 fullscreen mode after exiting GUI.
  • Second to last line was not drawn in lagless mode. Very last line is invisible by design.
  • FMOVE and FMOVEM to memory didn't check if destination addressing mode was invalid (PC relative) and didn't generate F-line.
  • FMOVE to control register didn't check if more than 1 control register bit was set which is also invalid and should generate F-line.
  • FMOVEM to (An)+ and from -(An) are invalid.
  • Softfloat FABS and FNEG didn't handle infinity correctly.

NOWSZY [AMIGA] Winuae 4.0.0 beta XII
Strike Aces (a.k.a. Fighter Bomber) (Accolade, Inc., 1990)

Winuae 4.0.0 Beta XII 03/06/2018

1-2 weeks to go, some fixes remaining..

  • Don't allow lagless vsync in normal windowed mode.
  • Hide lagless vsync slice count in GUI if lagless vsync is not selected.
  • Fixed crash if screen mode open failed and error dialog was shown. (b11)
  • D3D11 fullscreen mode opened in primary monitor if selected non-default monitor was connected to another GPU.
  • New debugger didn't load 3.1 (and probably older) amiga.lib files.
  • Added debugger_options config entry, currently only supported sub entry is pathprefix=x where x is string that gets appended to stabs source file paths.
  • Try harder to find working path for stabs source files and when working path combination is found, remember it instead of enumerating all possible variants every time source file is loaded.
  •  uaedbg now breaks to debugger when debugged application causes unhandled exception via tc_TrapCode.

NOWSZY [AMIGA] Winuae 4.0.0 beta XI

Winuae 4.0.0 Beta XI 22/05/2018

  • D3D11 fullscreen mode after alt-tab/gui was not restored properly if emulation was in paused state.
  • D3D9 lagless vsync partial updates (introduced in b5) used incorrect (full, D3DLOCK_DISCARD) texture update mode.
  • Decrease/increase emulation speed input events didn't do anything.
  • Power led dim config option is now integer (0 = fully off, 1 to 100 = brightness level)
  • Hardware emulated graphics boards didn't update properly without enabled OSD led (uaegfx was already fixed in b9)
  • A2410 didn't support multiple monitor mode.
  • Merged Aranym JIT updates.
  • Fixed old (since the beginning?) JIT bug: many instructions always cleared V-flag (ADDX, SUBX, NEGX, BTST/BCHG/BCLR/BSET, possibly others). Fix by Thorsten Otto.

NOWSZY [AMIGA] Winuae 4.0.0 beta X

Winuae 4.0.0 Beta X 15/05/2018

  • Full-window mode captured mouse (and moved it to center of screen) even when window didn't have focus.
  • Removed single buffer display option, it was only useful when using old low latency vsync mode.
  • Help button now asks for opening online help version if help file is not installed. (not finished yet)
  • Added windowed mode resize enable/disable option. Default is enabled.
  • Added D3D11 standard vsync black frame insertion support. (100Hz/120Hz)
  • Action Replay II/III statefile support improved. (For example AR state was invalid when loading AR statefile when AR was already active)
  • On the fly switching between fastest possible <> non-fastest possible CPU modes in lagless vsync caused hang in certain situations.
  • Debugger: show number of cycles used when tracing (t, z, breakpoints). Only shown if max 2 frames since last debugger activation. (TODO: should also count number of memory accesses and no-wait state minimum cycle count)
  • Freezer cartridge automatic RTG switch on/off wasn't reliable.
  • Removed forgotten, useless and obsolete "The selected screen mode can't be displayed in a window, because.." check.
  • 68030 MMU PLOAD R variant (R/W bit=1) caused f-line exception.
  • Clear both ping-pong buffers when pausing/unpausing WASAPI exclusive sound mode. 

NOWSZY [AMIGA] Winuae 4.0.0 beta IX

Winuae 4.0.0 Beta IX 59/05/2018

  • D3D11 mode screen was not fully refreshed when returning back to fullscreen RTG mode with ALT-TAB/GUI exit
  • Inserting or removing USB device with very long internal device name caused a crash.
  • Inserting USB device may have also logged some other already connected device as newly inserted.
  • Fixed JIT FPU FETOXM1.
  • If D3D11 mode with level 9.x hardware: test in init phase if main texture creation succeeds, fallback to D3D9 if it fails. It may unexpectedly fail with some old and broken drivers. Previously it would have caused blank screen.
  • RTG screen was not updated if only hardware mouse cursor moved and RTG OSD was not enabled or multithreaded RTG was not enabled. (b8)


NOWSZY [AMIGA] Winuae 4.0.0 beta VIII

Winuae 4.0.0 Beta VIII 5/05/2018

  • CL horizontal doubling used wrong width size, fixed buffer overflow (b7).
  • CL horizontal doubling multiplier changed to 9/10. Old value missed 320*200 resolution.
  • 64-bit host FPU FMOVECR constants that didn't fit in double were clamped to max when they should have been set to infinity.
  • All logarithmic and trigonometric functions now use assembly code from existing JIT functions in new 80-bit host FPU mode. This should be feature complete now.
  • Multithreaded RTG now only does color conversion/copy in separate thread, present() is done in main thread because of possible thread safety problems.
  • Added quite pointless power led switches off/dims misc panel option. Affects OSD power led and D3D led overlay power led brightness.
NOWSZY [AMIGA] Winuae 4.0.0 beta VII

Winuae 4.0.0 Beta VII 1/05/2018

  • Added debugger 'ex' command: 'e' command with extended data: last value written and PC of CPU or Copper when value was written.
  • UAEGFX RTG 15/16/24-bit graphics corruption fixed (b1).
  • If multimonitor mode and aviout/screenshot: capture/record from window that has focus.
  • Added horizontal doubling to Cirrus Logic emulation, enabled if screen height * 0.75 >= width. Keeps aspect ratio if CGX doublescan graphics mode is configured.
  • Native screen OSD was drawn twice in some multimonitor configurations, also could have caused crashes or some other weird behavior.

Extended precision host FPU mode updates:

  • Some FPU instructions used wrong precision.
  • Supports divbyzero, underflow, overflow and inexact2 status bits and exceptions. Only in non-JIT FPU mode. (and no software really cares)
  • FCMP uses softfloat comparison code if more compatible is enabled (FCMP can't be directly mapped to host FPU), if not, it uses simple and quick test. (Difference: infinities, nans etc.. special cases only work in more compatible mode. No normal programs care, as usual)
  • Uses softfloat routines for rarely used functions (most trigometric, fexpman, fscale etc). Previously: extended to double conversion -> c-library math function -> double to extended conversion. Which probably wasn't noticeably faster.

I think this is good compromise between speed and accuracy, commonly used operations use native code (that native FPU supports directly, x86 FPU does not directly support all operations that 6888x supports), complex and rarely used operations use softfloat code.

NOTE: Host FPU extended precision FPU emulation is now enabled by default and always overrides config file saved 64-bit mode. If something works strangely, load your config, change FPU mode to 64-bit/softfloat and try again: if it fixes the problem -> report the problem immediately.

wstecz08/04/2018 22:35
Dodatkowe informacje
... bez komentarza
Ostatnio dodane pliki
Newsy Linkownia Emulatory na PC Wideoteka Screenshoty Bajtek Reduks Ready.Run

© Try2emu 1999 - 2024 | Krzysztof 'Faust' Karkosza Kontakt Polityka Prywatności OWU