Nowa beta emulatora AMIGI - WinUAE Toni Willena. Poprawki do DX11 i garść innych usprawnień.
Ostatnia pełna wersja emulatora to WinUAE 3.5.0.
Winuae 3.6.0 Beta 10 05/12/17
Direct3D11 support should now work in any Windows 7SP1+ installation without extra manual updates (that D3D9 required) and also work with most older GPUs.
- DIVS/DIVU overflow condition undefined flags emulated. 68000 was already correct (N is also always set). 68020/030 has weird extra conditions. 68040/060 never sets undefined flags.
- Direct3D11 init failing due to missing DLLs caused a crash.
- D3D11 mode now uses pre-compiled shaders, D3DCompiler_47.dll is not needed anymore, which is not system built-in in Windows 7 and 8.0.
- D3D11 fullscreen now temporarily switches to desktop when opening GUI. Opening GUI on top of fullscreen is unreliable, causing random black screens, dropping to desktop with blank emulation window visible etc...
- D3D11 16-bit mode is now working, only main texture should be 16-bit, everything else needs to be 32-bit (GPU does needed conversions internally).
- D3D11 mode minimum supported hardware level is now 10.0 (was 11.0)
- Gigatron Arriba boot ROM support added.
- GUI OSD now ignores very quick floppy select/deselects (for example used to check diskchanges), floppy OSD only lights when drive is selected for more than 1 frames. Reduces number of useless OSD updates.
- Added "CIA 391078-01" advanced chipset checkbox. This CIA revision has a bug, if IO port is in output mode, reading it will always read output mode data state. Other models, including original DIP 8520, 391078-02 and Akiko internal CIAs read IO pin external voltage level as documented. This can affect "bad" mouse left button/joystick fire button reading code if it uses output mode.
- Joystick fire button/mouse left button CIA IO ports in output mode always used 391078-01 behavior.
- 68020/030 instruction cache update, cache read hits were possible even if cache was disabled.
Winuae 3.6.0 Beta 9 02/12/17
- Added workaround that disables RTG HW sprite if enabled in D3D11 mode. (HW sprite is not yet supported in D3D11)
- Fixed D3D11 position calculation bug that for example caused full window RTG to be partially off-screen.
- 16-bit color depth is now supported in D3D11 mode.
- D3D11 to D3D9 fall back didn't work correctly, it tried D3D11 twice and then selected DirectDraw.
- READ CD-DA (MSF) really works now.
- KS 1.2 autoboot didn't work without extra reset if UAE autoconfig board wasn't first board in autoconfig chain.
- Fixed AdIDE emulation, AdIDE data line "scrambling" got broken in b1.
- Added untested ATAPI tape drive support.
- Selecting index.tape directly (instead of selecting directory where it is located) will also mount the tape in directory mode.
- Tape emulation ignored new index file if tape was first written, rewound and read in same session.
- Tape emulation accuracy improvements.
- Added Toshiba Gary to Advanced chipset, if ticked, 0xe80000 to 0xf7ffff has chip ram access speed.
- Added ROM is slow (Toshiba Gary without transistor fix), KS ROM space also has chip ram access speed.
- 68030 data cache emulation didn't work correctly if write was cached and address was odd. (Bug found by Hatari developers)
- ECS Denise BPLCON2 ECS-only bits were masked unless AGA was selected, ECS-specific KILLEHB linetoscr was not implemented. Seven Seas/Andromeda now shows correctly corrupted palette if ECS Denise.
- IDE FORMAT TRACK fixed, it needs to transfer single block of data (and then toss it away). Fixes Gigatron Arriba installer.
- Emulated Gigatron Arriba IDE controller. ROM dump not available.
- 64-bit only bad stack linker setting correctded, caused random crashes and caused file dialogs to crash if certain shell extensions were installed. (Thanks mutetus!)
Winuae 3.6.0 Beta 8 19/11/17
- Replaced b7 unmapped zero checkbox with a 3 option select menu. Different A2000/B2000 variants can have either pullup or pulldown resistors connected to CPU data lines.
- CD SCSI emulator READ CD-DA and READ CD-DA MSF emulated.
- Single console output max write size was limited to about 4000 characters. It truncated or corrupted for example 100+ line disassembly.
- D3D11 RTG mode supported, D3D9X dependency should be gone, screenshots/recording supported, filter scaling/position options enabled, shaders are built-in, scanlines and masks/overlays supported.
- D3D11 mode not yet supported: transparent OSD, low latency vsync (need totally different logic), custom shaders (won't be implemented in next official version).
- D3D11 didn't restore back to fullscreen (or to blank fullscreen) from minimized state in certain situations.
- D3D11 fullscreen mode + GUI can work strangely. (GUI may open on desktop with black background, exiting GUI may not restore fullscreen or cause mode to become minimized)
- Fall back to D3D9 if D3D11 fails to init, only fall back to DirectDraw if D3D9 also fails to init.
- GamePorts panel custom mapping incorrectly parsed joystick autofire state from config file.
- On the fly switching from KS 1.2 to KS 1.3+ properly undoes possible previously added KS 1.2 autoboot UAE rom patches.
- Added Reiter Software Wedge HD controller emulation.
- Added 3.07 GVP Series I ROM.
Reiter Software Wedge:
- Simple XT adapter hardware. Emulation only supports OMTI controller based harddrives.
- No autoconfig, no boot ROM, no interrupts.
Winuae 3.6.0 Beta 7 29/10/17
- Added support for npcap without winpcap backwards compatibility option, fall back to winpcap if not found. (https://nmap.org/npcap/, fully Windows 10 1607+ compatible, original winpcap is not and win10pcap has at least one annoying bug.)
- Fixed partially corrupted first avioutput recorded frame.
- When saving state with avioutput active: last frame was not recorded.
- Number of avioutput frames buffered (waiting for compression thread to process them) counter was reset periodically which caused lost frames (and leaked memory) in recorded video if CPU was not fast enough.
- 680x0 STOP #X instruction undocumented feature emulated (documentation does not mention #X S-bit having any special conditions)
- 68000 (010?) X S-bit cleared and Trace not active: Updates SR, increases PC and then causes privilege violation exception. (Weird, isn't it?)
- 68000 (010?) exits after 4 idle cycles if trace was active, without trace it takes 8 cycles (or more if it needs to stop).
- 68020/030: works as documented, S-bit makes no difference.
- 68040/060 and X S-bit cleared: Does not modify SR, does not increase PC, causes immediate privilege violation exception.
- Added Kupke Golem HD3000 emulation. Uses existing OMTI adapter emulation, not tested, working install disk is MIA.
- Added Music Master dongle emulation.
- Added "unmapped zero" advanced chipset option. If set, all unmapped memory regions return zeros (previously always if non-ce 68020+). Added because B2000 (A2000 not tested) does this which is different than all other 68000 based Amigas, probably due to bus controller chip. This can change behavior of some badly coded programs.
- Directory filesystem ACTION_SET_DATE failed to change datestamp if file was read-only.
- Expansion device GUI changes are now activated after hard reset.
Kupke Golem HD3000:
- OMTI controller based. ("SASI CHS" HD mode)
- Byte wide hardware handshake PIO.
- v1.4 ROM added ("golem driver v1.4 (15 SEP 1989)")
Very experimental Direct3D 11 mode (DXGI 1.2+). Work in progress!
DXGI enables much better control of frame timing (not yet in use), allows windowed variable refresh rate support and more.
- Only windowed/full-window/fullscreen option supported.
- Multiple monitors supported.
- Direct3D11 on the fly switching supported.
- Filter settings are ignored.
- Scaling can't be adjusted.
- Enables (if available) windowed variable refresh rate mode (DXGI_FEATURE_PRESENT_ALLOW_TEARING, DXGI 1.5+). G-Sync confirmed working. Which is nice.
- In theory may work with Windows 7 (must have all updates) but may also accidentally require 8 or 10 (at this point). Windows 10 16299 only tested.
- Useless error message appears if things go wrong.
- Still requires d3d9x (=June 2010 DX redistributable) for matrix calculations.
- Calls SetMaximumFrameLatency(1) but I am not sure if it has any effect in windowed mode.
- Quick and dirty hack of Direct3D11 2D example tutorial.
- Shaders must be unpacked in pluginsfiltershadersdirect3d11 (http://www.winuae.net/files/b/direct3d11_shaders.7z)
Winuae 3.6.0 Beta 6 14/10/17
- "PC Bridge (40)" drive was missing from "Don't support 360k floppy images in Amiga drive unless it is configured as 5.25" drive" check.
- American Laser Games work again (b3).
- PCMCIA SRAM/IDE work again (b1?).
- Previous button release update always released buttons when input devices were released but it should have only been done when mouse was uncaptured.
- Delay avioutput init until first display frame or sound buffer recording request comes. Previously "before filtering" option may have used wrong display size in some situations.
- Avioutput does not anymore forget uncompressed video selection.
- First frame was not rendered (and also not recorded) if statefile was restored when emulation was already running.
- If emulator state was changed (debugger breakpoint, statefile save etc..), last frame before state change was not recorded if avioutput recording was enabled.
- uae-configuration joystick port (joyportx) modification only queued changes.
Winuae 3.6.0 Beta 5 30 September 2017, 19:13
- Do not fallback to standard D3D9 from D3D9Ex if -nod3dshader command line is used, removed also other now mostly useless fallbacks.
- Reduce CPU Idle when DMA operation is active (directory filesystem/UAE HDF or true DMA SCSI controller).
- If Wait for blitter was enabled, blit used all available cycles and statefile was saved when blit was active: CPU state was saved before PC was increased. Restoring statefile would incorrectly restart the blit.
- Action Replay III CIA read/write internal NMI triggers need small delay (NMI must be delayed until following instruction completes). Fixes Virus Test "Boot" option hang.
- 341b2 mouse/joystick button release when input is uncaptured didn't fully set the new state.
- Include "JIT direct switched off: reason" message in error log.
- Relative path mode ignored Filesys path.
- Host FPU mode: set host FPU round to nearest mode temporarily (if needed) before calling any native C-library trigonometric functions, other rounding modes can return (very) wrong results.
- AVI recording file splitting (2G limit) flushed sound buffers causing random sound glitches. Added -max_avi_size <bytes> -command line parameter to set split size.
Winuae 3.6.0 Beta 4 10 September 2017, 17:52
- If DirectDraw mode surface allocation fails, retry it with smaller size.
- Smaller than 512 block size and writing to HDF block zero was always detected as failed.
- SCSI MODE SENSE format parameters/rigid drive geometry and uaehf.device TD_GETGEOMETRY didn't return manual physical geometry if it was set.
- If config file has sound driver name that can't be found, try to find default device of same type before defaulting to first in list.
- 68030 MMU + prefetch mode delayed bus error fix.
- Added Cubo CD32 config dip switches (Cubo Switch #1 to #8), event activation = switch state toggled. State is only logged, perhaps some kind of on-screen message will be added later.
- Added Cubo CD32 option in Quickstart panel. Currently only enables serial port fake touch screen used by some later games, responds "ok" to all touch screen commands.
- Expansion panel string datatype was unimplemented (forgotten..). NIC MAC option is now visible.
- Disassembler [xxxx] data values (b3) now support 68030+ data caches. If data is located in cache and data in memory is identical, it is prefixed with *, if data is cached and data in memory is different: [value in cache:value in memory]
- Ignore DMS unpacking errors if all data is already unpacked (for example if dms has extra data at the end etc)
Winuae 3.6.0 Beta 3 27 August 2017, 17:31
- 68030 data cache + indirect UAE Boot ROM will now always work, even without MMU. UAE Boot ROM address space now forces all caching off, even if write-allocate is enabled.
- 68030 hardware cache inhibit signal is now also emulated in non-MMU/EC modes, making data cache emulation usable in this mode.
- Identity save option ignored user selected file name and path.
- Read identity button didn't support ATAPI devices correctly, it only worked if ATAPI device appeared as SCSI or "RAID" device.
- Activate DTR and RTS when uaeserial.device is opened to match serial.device behavior.
- Serial port emulation to PC serial port reset DTR (and RTS state if RTS/CTS was unticked) when baud rate changed.
- Disassembler now also shows data in memory, makes step by step tracing less annoying, for example "CMP.W (A4)+ [2f09],D2". Not shown if address is not plain RAM or ROM.
- Assembler BSR fixed.
- uaenet.device didn't close low level ethernet handles when Amiga was reset, causing duplicate packets.
- 68020 CE statefiles created with 3.5 or older should load normally again.
- UAE controller hardfile custom unit number selection didn't work if unit numbers had gaps.
- Do not re-open main window when GUI on top option is changed.
- uaeserial.device crash, broken when OS4 compatible trap system was added.
Winuae 3.6.0 Beta 2 16 August 2017, 20:45
- Read Identity and floppy drive bootblock font size ignored DPI setting.
- Multiple 68030 non-MMU and MMU mode fixes.
- 68030 data cache emulation was not compatible with indirect boot ROM. Note that this requires either 68030 CACR Write Allocate bit off or MMU setup that inhibits caching. (If write allocate is enabled and MMU does not inhibit caching: long aligned writes to cache inhibited regions will allocate data cache lines!)
- Previously accidentally working 6888x <> 68040 on the fly switch is now a feature. If unimplemented fpu emu is ticked and FRESTORE frame matches other FPU, use matching FPU emulator to execute it and do not generate exception.
- L debugger command fixed, also length is now optional (=read until end of file)
- AGA bitplane special case missed a check and broke many AGA programs.
- Windows illegal name check fix.
WinUAE 3.6.0 Beta 1 05 July 2017, 20:38
Big CPU emulation update. More compatible (instruction cache) and data cache is now supported with MMU emulation. Probably not that useful for normal users but developers may find it interesting. Multi window (One window / Amiga monitor/output) support may be coming later.
- 68020 more compatible/CE mode statefiles may not load ("CPU tracer" error dialog)
- Anything CPU related may have broken..
- And more!
- 68030 + memory cycle exact (without full CE): BSR didn't use data cache memory access routines.
- Softfloat fix: 68040+ will convert unnormal zeros (zero mantissa, non-zero exponent) to normals without datatype exceptions.
- 68040/060 MMU updates. MOVES was wrong in some situations, ATC status bit handling updated. (Originally Previous fix, first Next version that supported 68040 seems to do some strange things)
- 68030/040/060 MMU emulation internal fast path translation cache added, performance improved noticeably.
- Fully validate 68030 MMU instruction opcodes and generate F-line exception if unused but invalid bits are set. (Real 68030 confirmed)
- 68030 MMU PLOAD was unsupported.
- "EC" MMU option added, emulates access control registers only (renamed transparent translation registers in EC models).
- 68030 MMU + prefetch + instruction + data cache emulation mode. (Enabled when "More compatible" is ticked) CPU caches are now correctly located between CPU and MMU and they cache logical addresses.
- 68030 MMU + prefetch + instruction + data cache + "cycle-exact" emulation mode. (Same timing as 68030 non-MMU "CE" mode)
- 68030 data cache emulation is now optional.
- 68030 data cache emulation is internally disabled if UAE Boot ROM is active in non-indirect mode. It is not compatible with most UAE expansions because they access memory directly, bypassing the data cache and previous data cache hack made the cache mostly useless.
- 68040/060 MMU + full instruction cache emulation (when more compatible is set).
- 68040/060 data cache emulation (including write-through and copyback, MMU support), optionally available in more compatible mode.
- 68040/060 without FPU: many FPU instructions generated incorrect F-line stack frame contents, usually wrong PC or EA field.
- 68881/68882 FMOVECR undocumented ROM offsets are now 100% accurately emulated, offsets 0x40-0x7f return f-line exception.
- Currently emulated hardware cache inhibit signal is always active when CPU accesses anything non-RAM.
- It was not possible to change existing path with Select Directory/Select Archive or Plain File buttons.
- Do not reset manual geometry HDF setting when changing hardfiles.
- Automatically enable RDB mode if empty HDF is added and controller type is IDE or SCSI.
- Replaced ReadProfileString/WriteProfileString based ini support with custom routines that don't have 65536 byte section size limits. (Long ROM paths can easily become longer than 32k wide characters)
- SCSI expansion SCSI ID: don't show it when it is not selectable, also make sure it is 7 by default, previously in some situations it become 0.
- Internal AKS input events are now available in custom event strings (for example statefile save and restore)
- uaehf.device hardfiles/harddrives unit number is now user configurable.
- Joyport setting was not fully reset before loading Host-only config.
- Added UAE HD controller A2090 partition table support. RDB didn't exist when A2090 was released.
- Added extra validation after Windows illegal name check, if name is illegal, check what CreateFile() returns, name is invalid if it returns ERROR_INVALID_NAME. If open succeeds, return also illegal name status if GetFileType() does not return FILE_TYPE_DISK.
- Avioutput on the fly recording start used GUI sound frequency setting if recording was started with a shortcut. If GUI was never opened, sound recording rate become 44100Hz, creating video that had bad AV sync if real in use frequency was not 44100Hz.
- Don't support 360k floppy images in Amiga drive unless it is configured as 5.25" drive. (Fixes 360k DS vs 720k SS misdetection)
- Disable low latency vsync if calibration returns impossibly large values (>1000Hz). Seems to happen with some recent NVidia drivers.
- Do not create hidden inactive uaegfx modes if none of color modes fit in VRAM.
- Fixed uaegfx VRAM size check, some modes that almost filled the whole VRAM didn't appear in resolution list.
- Z3 RAM in manual mode was completely broken.
- Added blitter_speed_throttle config file entry, adjusts blitter speed if in non-ce/non immediate blitter mode. (0 = no change, 0.1 = 10% speedup and so on)
- If JIT FPU was ticked but JIT was off: FPU emulation used simple JIT FPU compatible FPU status register calculations, even if softfloat mode was selected.
- New undocumented feature emulated: Bitplane DMA can be restarted during last AGA FMODE>0 idle cycles after DDFSTOP.
- Bitplane overrun condition triggered incorrectly in rare situation where bitplane DMA is enabled after DDFSTOP on OCS. (Scoopex crash landing cracktro, possibly others)
- "Include CD and FMV Audio" and/or sound mode change when CD or FMV audio is playing is now supported.
- DKB RapidFire flash rom chip emulated. Contains boot rom but is also used to store "advanced scsi config" settings. (ROM scanner still detects flash rom update file, scsi config is located at the end of flash chip, far away from boot rom data)
- DKB 1230/1240/Cobra flash chip emulated, advanced scsi config utility config save supported. SCSI expansion is now optional.
- A2090 boot ROM didn't work without more compatible enabled.
- Hardfile SCSI emulator MODE SELECT (6) and (10) added, mostly does nothing, added because A2090 SCSI driver TD_FORMAT requires it.
- Host side read-only hdf was supposed to also force read-only HDF in Amiga-side.
- Automatically support software dumped A590/A2091 ROMs that don't have 0x2000 wraparound/offset.
- Comspec SA1000 KS rom image loader compatibility fix.
- Blizzard 1230 MK I appears to be functionally identical to MK II. Same boot ROM, same SCSI expansion.
- Added debugger 'I' command, send custom event string, same as Input panel uses (inject keycodes, change config like uae-configuration does..).
- *** DO NOT USE, it will truncate the file! (Added debugger 'L' command, load data from file (same parameters as 'S'))
- Added debugger fill memory command 'Wf <addr> <eaddr> <bytes or string like W>, repeats byte/string writing until end address.
- Added debugger assembler ('a') command! (Most 68020+ only special encoded opcodes are not supported)
- Ashcom AddHard emulation.
- A2090 Combitec ROM expansion support.
- FastATA 4000 MK I/II.
- Spirit Technology InMate SCSI controller.
- Emplant SCSI controller (and only SCSI)
- Hardfile/drive geometry file support extended. (WIP)
- Geometry data can now include full ATA identity (512 bytes) and SCSI Inquiry/Mode pages.
- Data can be added to mounted IDE or SCSI emulated HDF or real harddrive to make drive appear exactly as drive which geometry data was read, exact same name appears in hdtoolbox, exact same logical CHS geometry and so on.
- WARNING: Identity data has priority, even if drive is smaller than size information stored in identity data.
- Added drive identity option to add harddrive panel. It tries to query ATA Identity data and all SCSI Inquiry and Mode pages. Note that USB uses SCSI protocol and if drive is ATA, ATA identity can be only read if USB adapter supports SCSI ATA Passthrough. Unfortunately most USB CF adapters don't support it. (USB SATA harddrives seem to commonly support it)
- Includes hack that enables reading CF ATA identity with Realtek chip based USB card readers. Uses vendor specific command to read memory region that contains ATA identity, requires card reinsert. Confirmed working with Kingston FCR-HS3 and Transcend TS-RDF9K. Probably works with most Realtek chip based card readers.
- A590 v5.92 ROM.
- DataFlyer Plus v2.0 ROM. (This was stored in 16k ROM but because others were 32k and duplicated, I manually duplicated this one too)
- A2620 -02 and -03 ROM. (-05 remaining)
- Non-SCSI DKB 1230/1240/Cobra flash ROM update image.
- Replaced old DKB Ferret SCSI expansion compatible DKB accelerator ROM image with flash ROM update image. (Official flasher will create identical ROM image, also some CPU speed specific firmware data gets written at the end of flash image)
- Ashcom AddHard boot ROM.
- A2090 Combitec A2090a update ROM and 2x A2090 combitec expansion board ROMs.
- A2090 MacroSystem boot ROM.
- Vortex System 2000 v1.02 ROM.
- Spirit Technology InMate v1.0 ROM.
- 5380 based, nothing special.
- Clone of Trumpcard, even ROM driver is a copy, only names have been changed! Nybble-wide loader code at the beginning of ROM has original IVS_SCSI.device string visible after converting it to bytes! Someone (who didn't know what or why there is nybble-wide data?) simply used hex-editor to change all visible strings?
- ADD_SCSI.device "ADDSCSI 2.0 (26 MAR 1992)". But driver version number is actually 4.9. (Original Trumpcard driver version?)
- A2090 ROM board that adds KS 1.2+ compatible autoboot support to original non-a variant of A2090. (Also works with A2090a if original ROMS are removed first)
- Shows boot screen.
- MacroSystem ROM uses same adapter. Different driver and boot screen.
FastATA 4000 MK I/II:
- Z3 ATA controller with 2 ports (Max 4 devices).
- Only v3 Boot ROM tested. (FastATA 3.0 (10 NOV 03)). Proper ROM dumps needed.
Sprit Technology InMate:
- Emulated as SCSI autoconfig board, not an accelerator board because it is 68000 board and does not require special address spaces.
- AIC-6250 SCSI chip.
- Fake DMA, word wide data port. Not fully hardware implemented, needs DMA status polling after each word read or write.
- It has worst RDB filesystem loader ever (at least in 1.0 ROM). Must be single hunk, no relocs, must have total length patched in first long word (I assume install disk patches it). Does not do any checks.
- Jumpers emulated. (ABOOT jumper mirrors Autoboot disabled -checkbox)