4.10.1 / 24-01-2023
WinUAE is a Commodore emulator for Windows:
High accuracy and compatibility for A500, A500+, A600, A1000, A2000, CDTV
Good compatibility (Cycle-exact chipset emulation, CPU memory accesses are cycle-exact, CPU internal instruction execution speed is not exact) for A1200 and CD32
Fast CPU emulation only (chipset/chip ram CPU accesses optionally cycle-exact) for A3000, A3000T, A4000 and A4000T. To see all features, follow this link.
Extension packages & Miscellaneous utilities
PPC CPU core plugin, 1.5.1+ Direct3D Pixel Shader filters, Improved drive sounds, Portaudio library
UAEUNP 0.8 to extract Amiga based disk images and archive
Windows: XP SP3 32-bit+
CPU: SSE2 capable
GPU: For Direct3D11 - Windows 7: SP1+
For Direct3D9 - June 2010 DirectX 9 redistributable required
Most Recent Changes
Chipset emulation updates and bug fixes.
Interlace filter mode saved invalid config in certain situations, causing crash when loaded. Also added validation to config loader that detects similar config errors.
GDI mode RTG hardware cursor leaved garbage when it was in top/left corner of screen and it was not fully disabled when Amiga was reset.
Serial port Ring Indicator signal fixed. If both printer and serial port was enabled, printer status was invalid.
Input device’s Input panel custom configuration was lost if config was loaded and saved when custom configured input device was not connected.
Game Ports panel custom input configuration was not automatically remapped to original input device if order or number of input devices changed.
Game Ports panel “Default” game controller type didn’t fully switch to CD32 pad mode when CD32 hardware was configured.
FM801 PCI sound card didn’t work in Voodoo 3 + Mediator configuration.
PCI bridgeboard crash when accessing non-existing board’s IO/RAM space.
Exclusive fullscreen Direct 3D 11 mode + Fullscreen GUI Misc panel option ticked and entering GUI: GUI window was not positioned correctly.
Video recording after loading statefile recorded one empty and one corrupted frame when recording was started.
Added continuous screenshot mode to GUI. When ticked, screenshot is taken automatically every frame.
Disabled move left/right joystick autoswitching mode. It was too easy to do it accidentally. Only buttons are supported.
Clear Harddrives panel list when loading hardware-only config.
Taking screenshot when DF0: is enabled but empty and CD drive is enabled but not empty: select CD image name. (Previously CD was ignored)
68000 based unexpanded (with optional Slow or Fast RAM expansion) configurations are now 100% cycle-accurate.
Big thanks to ross for writing test programs that required perfect cycle accuracy. Lots of expected and unexpected hardware features found and implemented.
Featute updates that got delayed but will be implemented in 5.0
OCS and ECS Denise mid screen resolution changes are not pixel perfect, correct chip model specific bit pattern is not emulated yet. AGA is pixel perfect.
Not all blitter line draw width != 2 (invalid line draw configuration, normally not used) conditions are 100% accurate.
Disk status/interrupt timing is not fully confirmed yet.
New hardware emulation features and update
68000 emulation is finally fully cycle accurate, last missing part, interrupt level change detection timing, is now cycle accurate.
Custom chipset interrupt timing is now cycle accurate.
CIA emulation is now fully cycle accurate. Timers were accurate previously but now also interrupt timing, TOD counting, CPU/E-clock sync, and more, including undocumented side-effects are cycle accurate.
Serial port internal timing, interrupt timing, including SERDATR status bits are now cycle accurate (I used serial port interrupts as a timer in my cputester real 68000 interrupt timing tests)
Audio interrupt timing is now cycle accurate (Was almost fully accurate previously).
Blitter timing is now cycle accurate (previously startup behavior and interrupt timing was not fully accurate).
Blitter line mode with invalid settings (for example width not 2, octant and line direction mismatch etc) is now almost accurately emulated. Some conditions are not fully correct.
Copper is now cycle accurate, previously some special cases were not handled correctly.
More undocumented chipset features implemented.
A1000 Denise bug emulated: sprites end horizontally 1 lores pixel later than bitplane horizontal window end. Currently enabled when A1000 Agnus is selected.
OCS/ECS vs AGA EHB on/off mid screen change different behavior emulated.
Emulated chipset mode display is blanked if programmed mode is active but has invalid configuration (for example too short or too long sync pulses or missing syncs, genlock sync enabled without genlock, etc).
Optional display mode change resync black screen delay.
Programmed custom chipset modes again use also blanking timing to position the display in addition to vsync and hsync (Most real world SVGA monitors do the same).
Max allowed programmed mode non-interlaced vertical line count is now 800 (increased from 592), special 700+ line programmed modes are possible and compatible with real SVGA monitors.
Refresh cycles conflicting with bitplane DMA is now accurately emulated, including all display and audio related glitches it can cause.
Optional Chip RAM and Slow RAM power up pattern emulation, enabled by default.
Color palette is now filled with pseudo-random contents at power up (was all black previously).
Monitor type selection. Composite sync or H/V sync. ECS Agnus/AGA programmed display modes can generate different C-Sync and H/V sync signals.
New other features and updates
RTG (uaegfx) Picasso96 v3.0+ mixed mode screen draggging is enabled by default.
RTG (uaegfx) blitter emulation now supports previously unsupported less common blitter operations.
RTG (uaegfx and emulated boards) automatic integer scaling support.
On the fly FloppyBridge drive change to normal or back now triggers automatic disk change condition.
Harddrive panel Full drive/RDB mode is now normal checbox. Hopefully it is less confusing than button that didn’t look like a button.
Larger default GUI size and slightly larger font if Windows desktop is large enough (at least 1600*1024).
CD audio is now always mixed with Paula audio. Separate CD audio output support removed.
Some American Laser Games didn’t have ROM descrambling support, also added missing ROM variants.
Added American Laser Games Quickstart support.
Added NVRAM path to Paths panel. Arcade/CD32/CDTV hardware NVRAM files default to this path.
Keyboard reset change, reset state is kept until at least one key is released.
CTRL+C in console log/debug window does not anymore close WinUAE. CTRL+C in newer Windows versions can be used as a Copy operation.
Changed CTRL+F12 fullscreen/windowed switch: If already switched from full-window to window. Next CTRL+F12 will return back to full-window, not fullscreen.
Optional interlace mode filter profile added.
DirectDraw mode was replaced with GDI mode. GDI mode does not support exclusive fullscreen but supports basic scaling modes and uaegfx hardware cursor that DirectDraw mode did not support.
Palette mode screenshot support. If enabled and screen has <= 256 colors, palette mode screenshot is created. It also attempts to preserve first 32 color entries if possible. RTC is automatically enabled if chipset extra= and system has fast ram, slow ram or chip ram expansion.
Save MSM6242B RTC model control registers to RTC file if they are modified. Previously only RF5C01A (Used in big box Amigas) control registers (and NVRAM) was saved.
If Quickstart ROM based Arcade hardware config (Arcadia or ALG) is selected, NVRAM file name is automatically set to ROM name. Genlock video file path is also set if ALG ROM is selected. Config files are not affected.
ROM file list sorting changed, added grouping, sort by group priority first (KS ROMs, extended KS ROMs, freezer ROMs etc..), then alphabetically.
Sometimes old graphics was temporarily visible in RTG modes if RTG had visible black borders (depends on scaling mode) and screen was switched and new screen had larger size/resolution.
Added “Slow” flag to RAM panel. If set, selected memory bank has Chip RAM timing but is not Chip RAM capable. Advanced chipset panel “C00000 is Fast RAM” removed, it is not needed anymore.
4.9.x bugs fixed
Sprite to playfield and playfield to playfield collisions were unreliable.
RTG (uaegfx) overlay was not drawn. 32-bit Windows only.
Magic mouse mode without virtual mouse driver installed: mouse position was incorrect in RTG modes and it also ignored scaling modes.
If hardware emulated RTG board VRAM was immediately (no gap in address space) after any RAM/ROM region and JIT direct was enabled: first 4096 bytes (host CPU page size) of VRAM was not fully JIT direct compatible and any direct read or write to first 4096 bytes would not access VRAM correctly, causing unexpected graphics glitches.
Quickstart panel floppy bootblock check used current track of drive (not track 0). Broken when FloppyBridge support was added.
Hires resolution and hires BPLCON1 bit set (or shres and shres BPLCON1 bit): single pixel horizontal offset may have appeared in right side of screen. AGA and non-subpixel mode only.
CD32/CDTV Quickstart mode “remembered” previous DF0: setting and didn’t disable it by default (even if Quickstart panel showed it as disabled).
CD32/CDTV Quickstart panel DF0: was not possible to select/enable.
Z2 RAM configuration was unreliable.
Older bugs fixed
CHD CD image CD audio timing fix.
Direct3D11 with custom shaders leaked memory.
Directory filesystem softlinks fixed.
68060 without FPU or disabled FPU and executing FPU instruction that uses -(An) or (An)+ addressing mode: D7 was modified when exception stack frame was created.
Reading from non-existing custom register always returned 0xFFFF instead of data that previous cycle’s possible DMA access transferred.
Higher 68000/010 integer clock multipliers (4x+) in CE mode: chipset access timing was not accurate.
Second 1M extended ROM bank is now internally split to two 512k banks. Non-aligned bank start and size caused problems in some configs.
Hardware emulated RTG boards that have physically swapped red and blue output (Spectrum, Piccolo, Piccolo SD64) had wrong colors in 24/32-bit modes.
Piccolo Z3 and Piccolo SD64 Z3 had wrong autoconfig board logical size (which crashed the driver).
CD audio was not resumed if WinUAE was unminimized and minimize was configured to pause emulation.
Debugging related updates and fixes
Ultra extreme overscan mode. Shows complete full raster including blanking regions. Horizontal and vertical blanking disabled. COLOR0 changes are always visible.
DMA debugger shows CIA accesses (including cycles lost due to E-Clock sync) and Chip RAM RAS/CAS addressing values.
DMA debugger shows CPU memory access type (instruction fetch or data access). Interrupt level and interrupt level change detection are included.
DMA debugger shows CPU opcodes in basic form (“NOP”, “MOVE” etc), vertically. Which can look a bit weird…
Added CPU STOP state information to DMA debugger (| = STOP idle cycle, + = STOP idle cycle and higher IPL detected = STOP ending soon)
Visual DMA debugger shows conflicting cycles as blinking red pixels.
Horizontal and vertical position are now included in debugger history output (H/HH)
Added OR, AND and XOR operators to debugger calculator (|, &, ^).
sp command parsed attached sprites incorrectly.
It was not possible to enter debugger anymore if CPU was stuck in stopped state after entering and exiting the debugger once.
Tracing STOP instruction now works differently, each single step executes one internal STOP “round”.
Memwatch break point that crossed 64k “bank” didn’t map last 64k “bank” if it was only partially needed.
Self modifying code (smc) debugger feature now clears detected modifications if 68020+ instruction cache is flushed.
DMA debugger (both console and visual) better support for variable/toggling horizontal and vertical line counts.
JIT indirect was unstable.
JIT enabled + emulated (not uaegfx) RTG board corruption was possible in certain situations.
Direct 3D 11 mode shader buffer leak.
x86 AT bridgeboard (A2286 and A2386SX) boot crash.
PCem RTG board 15 and 16-bit lores modes didn’t horizontally double correctly.
Remove interlace artifact option added 1 scanline offset to bitplanes and sprites.
Custom chipset and programmed display mode updates and fixes.
Older bugs fixed
Mouse would start moving erratically if emulator has been running continuously more than 10 hours.
Integer scaling only worked correctly if horizontal (lores, hires, superhires) and vertical resolution (non-doubled, doubled) matched.Filtered lores had wrong colors if host graphics mode was 16-bit.
NTSC mode and software switch to PAL: display was incorrectly vertically stretched.
Software YUV based filters had bad colors (32-bit only)
Paula configured for 4us (GCR) mode but normal 2us MFM disk in drive: disk index reporting was unreliable.
Programmed display mode improvements (positioning, blanking etc)
uaegfx Picasso96 overlay now works correctly with screen dragging.
It is now possible to type (almost) normally in warp mode. Keyboard key (if non-qualifier key) presses are released immediately in warp mode.
Epson printer emulation does not anymore print each page as a separate document.
Added IDE scsi.device disable hack. Makes booting noticeably quicker on OS39 and newer KS versions if mainboard IDE is not needed.
PCem Cirrus Logic SVGA emulation planar support enabled. Picasso96 supports 4bit/16 color planar mode.
“Default” filter and integer scale filters now automatically double horizontal or vertically if horizontal and vertical resolutions are different (for example lores + vertical doubling)
Major update: custom chipset emulation rewrite (biggest reason for far too long release cycle)
Agnus/Alice internal DMA cycle processing and RGA bus pipelining (bitplanes, copper, blitter etc) accurately emulated.
Programmed display mode support greatly improved, for example cycle accurate horizontal blanking (even if it is changed mid-screen), badly documented BEAMCON0 bit combinations accurately emulated, previously unknown undocumented features emulated and more.
Blitter internal logic emulation updates, for example blitter register modifications when blitter is active are now accurately emulated, line mode with B channel enabled undocumented behavior emulated and more.
Chipset edge-cases and chipset version specific undocumented behavior emulation improved, for example Copper waiting for Blitter chipset bug is accurately emulated (which causes visible glitches and was not emulated previously), borderblank glitch if horizontal window is opened early.
Display emulation is now from hsync to hsync (not scanline to scanline) which enables accurate emulation of left (programmed modes or blanking modified) and right border (normally visible, position where horizontal position wraps around) edge cases without extra hacks, both bitplanes and sprites. Vertical is also from vsync to vsync, for example last visible line of display can be line 0 (or even larger if special programmed mode) which wasn’t fully emulated previously. Multiple DIWSTRT/STOP regions in single scanline supported, including start/stop horizontal wrap around.
Bitplane DMA overrun condition is not a special case anymore, all overrun conditions are now fully supported, including bitplane wrap around. Overrun can be used to create special modes that are still fully PAL (or NTSC) compatible without usual restrictions (for example it is possible to have full overscan, horizontal scrolling in 64-bit fetch mode and still have most sprites available)
Overscan+ and Extreme display size options. Can see everything in emulation that real chipset can output in PAL/NTSC compatible modes with adjusted blanking timing when using converters like OSSC. Also OCS Denise blanking bug on first and last line is now emulated and visible.
Audio internal timing is now accurate, for example low audio period (lower than DMA can support) interrupt and sample reload timing is now cycle-accurate.
New emulated hardware
CyberVision 64, CyberVision 64/3D and S3 Virge PCI emulation. (S3Trio and S3Virge chipset emulation from PCem)
Voodoo 3 (8M VRAM) PCI emulation. (Voodoo 3 emulation from PCem)
M.A.S.T. Fireball (SCSI HD controller)
Hardital Synthesis (SCSI HD controller)
A.L.F.2 (OMTI HD controller)
Combitec HD 20 A/HD 40 A (OMTI HD controller)
GVP G-Force040 (68040 accelerator)
GVP A1230 Turbo+ Jaws (68030 accelerator)
Prelude A1200 clockport expander support
JIT update (Aranym) + shift instruction flag fix.
x86 bridgeboard emulation updated to PCem v17 x86 core.
Recent Picasso96 multimonitor support: usegfx Picasso96 DISPLAYCHAIN is now only forced if uaegfx monitor is monitor id=0 (shared with native chipset). Previously DISPLAYCHAIN was always forced.
ALT+Space does not anymore open WinUAE window standard menu when input is captured.
Saving config file: Confirm overwrite if existing file is read-only.
Do not allow opposite joystick directions at the same time (some games crash..) if mapped using Game Ports panel. It is still allowed if configured using Input panel and it was mapped to left/right/up/down events (not horiz/vert).
Debugger updates. Configurable disassembly format, DMA debugger DDFSTRT, DDFSTOP, horizontal window, vertical window, blanking markers, full 32-bit/64-bit bitplane/sprite pointer addresses, cycle conflict info, fi command accepts assembly syntax (for example “fi trap #0”).
Picasso96 v3.0+ uaegfx screen dragging and dual palette support.
uaeserial.device CMD_WRITE with io_Length=-1, EOFMODE and Mark and Space parity support implemented.
bsdsocket.library SBTC_GET_BYTES_RECEIVED, SBTC_GET_BYTES_SENT, SIOCIFADDR, SIOCIFFLAGS, SIOCIFBRDADDR, SIOCIFCONF, SIOCIFNETMASK, SIOCIFMETRIC and SIOCIFMTU support added.
All Z2 DMA HD controllers are now 24-bit addressing capable by default (real world capability), checkbox option added to enable full 32-bit capability (emulation only).
Added CD image select/eject keyboard shortcut. END+F5 = select CD image, END+SHIFT+F5 = eject CD. Statefile quick restore moved to END+F6
Executable as a disk image mounting now supports FFS and HD disks. Uses DD+OFS if selected file fits (like previously), then DD+FFS, finally HD+FFS (if drive is HD).
Amiga Bootblock Reader brainfile support (copy ABR package xml files to \plugins\ABR). Used when clicking “?” button in quickstart and disk panels.
Multi monitor mode window positions are now stored to registry/ini.
Experimental HDR mode. Supports brightness and contrast adjustment without immediate white clipping or black crush.
Fixed HAM left border corruption if overscan HAM mode and bitplane horizontal start was earlier than current filter horizontal start.
CDTV and CD32 CD audio playback statefile restore bugs fixed.
A2410 emulation fixed.
NPCap/WinPCap crash if more than 9 network devices was found.
Fixed GDI handle leak. GUI panel change leaked 2 font handles.
Floppy emulation rotation speed was slightly out of spec.
bsdsocket recv/recvfrom() returning truncated data now matches Unix/Amiga behavior. Windows also returned error when data was truncated.
OSD led font graphics is now generated from real Windows font and is high DPI aware.
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.
68040/68060 unimplemented FPU instruction emulation fixes, all 68060 FPSP test package tests pass now.
Softfloat FMOD, FREM update. FSINCOS implemented, calculates both SIN and COS simultaneously, previously FSINCOS calculated SIN and COS separately.
Add harddrive button tried to incorrectly guess logical geometry and didn’t enable full drive mode if drive didn’t already have RDB. Result was unusable drive.
CDFS mounting used wrong character set translation functions, files with region specific characters failed to open depending on Windows regional settings.
“Remove interlace artifacts” last line flickering workaround fix.
Fixed empty formatted standard HD ADF creation.
Many minor bugs fixed.
To do before 5.0. (Early 2022 – Summer 2022)
68000 interrupt sampling timing needs to be 100% accurate (My cputester + extra tester hardware should solve this). This is the last remaining non-100% accurate part of A500 emulation.
Detect programmed modes that real world display can’t support. Blank emulated display when detected.
4.9 bug fixes.
Replace PCem with 86Box?
68000 address and bus error (bus errors are not used in Amiga) stack frames are now 100% accurate, including all undefined behavior like partially updated flags or registers. Last missing part that wasn’t fully accurate previously.
68010 emulation is now cycle-accurate. Including loop mode.
68030 MMU emulation simplified and optimized.
CPU tester detected rare CPU/FPU bugs fixed.
Multiple CPU tester detected undocumented CPU and FPU (all models) behavior emulated, mainly edge cases that almost never happen normally. More information in detailed changelogs.
Debugger assembler and disassembler updates and fixes.
1x-8x CPU multipliers are now also supported in prefetch (more compatible) CPU mode.
Implemented Paula serial port emulation receive break condition detection support.
“diskchange rdh0:” can be now used to eject drag&drop mounted directory/file/archive harddrive.
On screen led floppy leds have brighter border if inserted disk is write protected.
If 2 light pens/guns enabled and if gun 2 moves, enable only gun 2 crosshair. Previously gun 1 move enabled both crosshairs.
“Default” filter mode now enables aspect ratio correction and scales to window/screen size only when display size is too large or too small.
Ignore ncap/winpcap dll version because recent ncap versions have smaller version number than old winpcap versions.
GUI Reset button now copies current full GUI config to active config, including options that normally can’t be changed on the fly.
FPU default is back to 64-bit. Very few programs require 80-bit accuracy, it wasn’t worth the speed loss.
Black borders are not anymore enabled in autoscale center mode.
Few custom chipset and CIA emulation updates.
Added easy to use and transparent printf()-like debug logging method for developers.
If disk read DMA was started without any selected drive(s), it was always emulated in turbo mode.
Screen capture to clipboard created blank image if 256 color or less RTG mode and capture before filtering was set.
When ejecting directory filesystem that points to plain file or archive, not all host file handles were closed properly.
Switching GUI panels left stale entry in internal array, possibly causing random crash after switching panels many times.
Config file (*.uae) icon is now correct again.
4.3.0 bugs fixed
Some RTG to RTG mode resolution switches didn’t resize windowed mode correctly.
CD32 pad red button didn’t always work as a normal fire button, depending on how it was configured.
CD32 ROM delay loop patch was skipped. Broke CD32 CD if CPU speed was too fast.
New emulated hardware
Hardital Dotto (clone of ICD AdIDE)
On their next update, this section will be refreshed.