top of page

5.1.0 beta11 / 07-12-2023





average rating is 4.1 out of 5
average rating is 4 out of 5
average rating is 4.6 out of 5

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

--Beta 11--

- Added 3rd Input panel keyboard "Backslash/F11" option (checkbox -> 3-state boolean checkbox, note that these work strangely in dark mode). New 3rd option uses original pre-5.0 behavior + F11 mapped to "missing" key (code $2b). -key_swap_hack command line parameter now takes value (0=5.0 default, 1=5.0 optional, 2=pre-5.0)
- Extended ROM bank was not released when Restart was pressed, possibly causing crash when same config was started again.
- CIA-B TOD counter was still unreliable in some specific situations (counted twice during single scanline). (ABC Chemii weird protection causing random crashes)
- Ejecting and then inserting disk using same GUI session inserted the disk instantly instead of doing eject, delay, insert sequence. Changing disk without eject worked correctly.

--Beta 10--

- Fixed crash in some configs when hard reseting with freezer enabled. (b9 fix didn't work)
- Do not activate default/TV scaling modes in programmed modes. (Previous "default" was supposed to skip programmed mode scaling but it didn't work correctly)
- Disk emulation state changes mid scanline worked unreliably (ABC Chemii / Ego Software copy protection)
- If only UAE expansion feature that needs UAE boot ROM is "Add PC drives at startup" and configured UAE boot ROM mode required F0 ROM, UAE boot ROM was not fully enabled automatically.

--Beta 9--

- If program updated RTG (uaegfx) hardware mouse cursor colors only (not shape), mouse cursor was not updated to match new colors.
- Detect compatible files in deeper subdirectories only when dropping archive file to floppy drive, do not do it when dropping to WB. (b1)
- If executable is mounted as disk image, do not automatically enable turbo floppy mode if program does disk DMA accesses that can't be used for normal track reads. (Booting executable programs that do [weird] disk tests work normally)
- Quickstart Host Configuration was not restored correctly (off by one because new entry was added, missed one place where index should have been increased by 1)
- Fixed KS 3.2 A3000 ROM checksum.
- Added disassembler optional parameter to always show EA. Previously EAs (An),(An)+ or -(An) An content was not shown.
- Disk info ("?" in floppy and quickstart panel) font size was not adjusted to current DPI/font size setting.
- If (weird) programmed mode without programmed vblank (VARBEAMEN=1 but VARVBEN=0) had less lines than hardwired PAL or NTSC mode, vblank interrupts still triggered, even when trigger line (last PAL or NTSC line) was never reached.
- Do not special case $FFFF,$FFFE copper wait as "no need to care about copper until restarted" if really weird and wide (max 256 CCKs) programmed mode is active.
- "Restart" GUI button didn't reset current windowed/fullscreen mode flag, causing GUI to re-open in last active mode GUI position (if full-window or fullscreen) instead of default windowed mode position.
- Possible fix for crash after reset in some configurations (Kickstart ROM area was left unallocated)
- Normal WB programmed modes randomly used wrong HB/VB values when positioning the screen. (5.0)


- Built-in DMS unpacking support update: validate packed track data under or overflow after decrunching and reject track as damaged if detected. Fixes incorrect brute force decryption key detection of some encrypted DMS files. (THE_PLAGUE_1.DMS and some others)
- Always enable DXGI_PRESENT_ALLOW_TEARING in D3D11 modes if driver supports it. This might improve variable sync compatibility and video/audio stability.
- CIA timer chaining (Timer B counts timer A underflows) only worked in CE modes. (Broke when CIA emulation was rewritten recently)
- Hardreset now randomizes seed value (if config entry "rndseed" is zero). b1 changelog mentioned it but seed wasn't randomized.
- Some weird and stupid VPOSW writes caused vblank processing to restart continuously in default and smaller overscan modes, making emulation really slow. (Action Replay 3)
- Writing to DSKLEN with bit 15 set didn't start disk DMA immediately if previous disk DMA had already been finished. Only if bit 15 is cleared DSKLEN needs to be written twice to start DMA.
- Emulated Paula disk read DMA bug (HRM says only "... Also, the last word in a disk-read DMA operation may not come in (that is, one less word may be read than you asked for)"). This is now emulated mostly accurately (still tests to do to find full details) if not floppy turbo mode. Previously emulation always returned requested number of words. This also implements "early" DMA end interrupt which fixes demo Knin Peaks / Reality. Demo's loader can only work if bug exists, without bug it will miss sectors, retries and crashes.
- Loading config file caused immediate crash if it had hardfile2 config entry with physical geometry and also geometry file and geometry file name was created from physical device id string and it included '/' character. Fixed parsing crash and when autogenerating geometry file name, replace all unsafe characters with underline characters.
- ALT-TABing from D3D11 fullscreen RTG mode and then back caused hardware mouse cursor to disappear until its shape was modified by Picasso96.


- Fixed on screen keyboard transparency in D3D9/11 modes. It previously only worked in D3D11 HDR mode.
- Ignore "Main window always on top" misc setting in D3D11 mode. D3D10+ windowed mode is not possible if always on top window flag is set. Previously this caused fallback to D3D9 mode. This does not make sense in my opinion and it does not seem to be mentioned in documentation but CreateSwapChainForHwnd() fails if it is set. Debug D3D11 DLLs also report that it failed due to unsupported window flag.
- Do not do unnecessary graphics setup reset if RTG mode changed but only parameter that changed was color depth and mode is not fullscreen with match depth if possible enabled. (b1)
- If D3D11 screen init decided that new requested mode has same parameters as old mode, skip also other unnecessary graphics reinitializations.
- Do not enable temporary frameskip in warp mode if debug overscan mode is enabled, it can cause random glitches. Warp mode normally enables frameskip in non-ce modes.
- Ignore backwards or same line vertical VPOSW writes if it was CPU write and CPU emulation is not in accurate mode. This basically reverts VPOSW updates to pre-5.0 behavior when CPU is not at least in memory cycle exact mode, supporting only usual "fake NTSC" modes. At least AR3 does stupid things with VPOSW that can't work if CPU is not slow enough.
- Added generic support for emulation of IDE controllers that have in-circuit programmable flash/EEPROM chip.
- Flash/EEPROM emulation updates (support write protection enable/disable commands, parallel EEPROM partial writes supported)


- On screen Amiga keyboard.
- GUI pad control mouse move now wraps around.
- Fixed Sound panel floppy sound GUI, switching floppy drives forced current configuration to selected drive. (b1)
- If Z2/Z3 IDE controller board with more than 1 IDE channel was configured more than once, second board's HDF was also mounted to first controller's second channel.
- Game ports panel Remap/Test panel only worked once (broke in some previous beta)
- Do not unnecessarily reinitialize D3D11 when switching modes if window size and filter settings do not change. This optimization is not in D3D9 mode.
- RTG<>native switch in fullwindow mode didn't properly check if both modes had same monitor (default monitor vs specific selected monitor was always detected as different monitor even if specific selected monitor was also default monitor), causing unnessary window reopen.

On screen keyboard details:
- Look is quite basic but it needs to be scalable to any resolution. Lines and fonts only, can't have any complex graphics.
- Pad button 4 is now default mapped to open/close on screen keyboard input event (if loaded config has button 4 mapped to something else, button is not mapped to OSK)
- Pad button/d-pad that normally controls Amiga joystick moves keyboard selection. Joystick movements and button presses are not sent to Amiga side as long as OSK is open.
- Fire button press = send selected key's press
- Fire button release = send selected key's release
- Second button press = toggle state of selected key. Keep shift or control or other qualifier key pressed.
- Second button release = does nothing.
- Keyboard layout is US layout + 2 keys that are used in international layout variants + few bonus "keys". I probably won't bother with other layouts because this is only meant for situations where key presses like "Press F1 to start game" are needed. It is impossible to know what layout program expects anyway if it reads keyboard directly or reads keyboard scan codes.
- If GUI is entered when OSK is open, GUI pad control is automatically enabled.
- Perhaps some useful other extra "keys" will be added later.
- Transparency only in D3D9 and D3D11 modes.
- This has nothing in common with GUI pad control.


- Screen mode switch (for example native<>RTG) could have caused blank screen, especially in D3D9 mode, if old and new mode had identical size. (b1)
- Restoring statefile without FPU when configuration with FPU was active: FPU was not disabled.
- Fixed random flickering last line in non-interlaced fields/fields+ modes.


- Exiting any GUI subwindow (hardfiles etc) was always cancelled, ignoring changes. (b3)
- Fixed DMS and other single disk image compressed disk image drag and drop. (b1)
- Add Harddrive still listed GPT drives if run without administrator privileges. (b1)
- D3D11 mode and different RTG/native/native interlaced D3D filter: filter was not always changed when mode was switched. (b1) *
- GUI control tree view: don't jump to root node when there is no more child nodes (dpad right)


- Blitter channel change when active emulation update. Fixes Jim Power cractro by Two Lives Crew. (Another TLC cracktro with similar blitter bug..)
- AUDxPER=1 audio interrupt was unreliable. (AIBB sound effect hang)
- 68030 MMU PLOAD disassembly fixed (FC variable was not updated)
- Simple pad GUI control support.


- If configured monitor size/coordinates changed, ignore it if it is not connected to any RTG board. Extra windows opened if non-existing monitor's window size was modified on the fly.
- Some paths were shown strangely in floppy/quickstart floppy paths.
- Bitplane start was horizontally shifted in some situations.
- Support autovectored interrupts in MMU and generic fast CPU modes (Hatari)
- Fixed Munt (and also other sound streams that mix with Paula audio) stopping if sound settings were changed.
- Last enumerated MIDI out device was missing.
- Fixed "Remove interlace artifacts". (Missing reset of separated Denise and Agnus horizontal counters)

--Beta 1--
- Dark mode implemented, requires Windows 10 or newer. Default is follow Windows dark mode setting. Checkbox in Misc panel (3-state checkbox: follow Windows dark mode setting, always on, always off). This is ugly hack because Windows still does not officially support win32 based UI in native dark mode. Some elements have wrong brightness and plain dialog boxes still have original "light" colors. Command line "-theme dark" or "-theme light" can be used to force dark or light theme, overrides GUI setting.
- GUI window resize updates now in real time (with some flickering but there does not seem to be any easy ways to fix it. Yes, DWM supposedly does offscreen rendering but it does not seem to work with GDI elements)
- Emulation window dragging and resizing does not anymore pause emulation.

- Built-in (statically linked) Munt v2.7.0 MT-32/CM-32L emulator. Listed in MIDI out menu. ROM images needed, either in c:\mt32-rom-data\ or in <winuae rom path>\mt32-roms\. Uses same ROM file names and ROM version selection priority order as DOSBox. Compressed ROMs are not supported. MIDI audio is mixed with Paula audio.
- On the fly MIDI out option change didn't reconfigure serial port emulation properly.

- Added AT&T DSP3210 emulation, done by Wrangler. Not fully working yet, for example DSP->CPU interrupts are not working and because DSP emulator runs in separate thread, code that assumes DSP steals cycles (if DSP needs to do external memory accesses) from the CPU (if not cached by the CPU) can't work correctly. Used in not released AA3000 mainboard and new AA3000+ MB based on original AA3000 design. Listed in Expansion panel built-in config list. Usable in A3000 configs with Super DMAC (AA3000(+) configuration) but currently also supported in any A600/A12000/A4000 configurations that have Gayle/IDE enabled. Don't ask me what to do with it, it is not my problem

- If OCS and >512k chip RAM: Advanced chipset 1M/2M Agnus options now set higher DMA addressing capability even if Agnus is OCS.
- Programmed mode register changes now immediately updates chipset emulation state, including current scanline length. Previously it had 1-2 frame delay. Host side window size/position is still recalculated only when new frame starts.
- Programmed beam counters enabled (VARBEAMEN=1) but no programmed hsync or vsync enabled (PAL or NTSC hardwired sync active): calculated visible width of display used hardwired horizontal cycle count, not programmed HTOTAL value. If HTOTAL was larger than 227, part of right border was not drawn.
- Recalculate display setup only if total scanlines, line length, hsync start or vsync start changes and difference is larger than 1. Previously display was reset and recalculated even if new display settings were identical (for example enabled VARBEAMEN with PAL or NTSC HTOTAL and VTOTAL)
- Football Director 2 dongle emulation. Again almost identical to Striker Manager and Multi-Player Soccer Manager dongles.
- Fast 68020+ modes didn't start pending interrupt immediately (started after following instruction) after MOVE to SR instruction that lowered interrupt mask. (Quick the Thunder Rabbit)
- Programmed mode + extreme overscan mode: right border might not have been fully visible.
- Full 68000 CPU tester sets retested (cycle counts, address errors, IPL timing etc. Excluding bus errors), no regressions found.
- ECS Agnus BPLCON0 SHRES and UHRES bits were ignored unless also ECS Denise was configured.
- Writing to V(H)POSW didn't flush any pending bitplane/blitter/sprite cycles. If V(H)POSW write modified current line number, all pending DMA accesses, even accesses that happened before V(H)POSW write, appeared in new line in DMA debugger.
- In some situations when bitplane count increased mid screen, next few cycles after change had wrong cycle allocation causing lower priority DMA channels (and CPU) to be blocked even if bitplane DMA didn't use all cycles.
- ECS/AGA, DDFSTRT already matched but bitplane DMA off: if DMA is switched on, bitplane sequencer starts 1 CCK earlier compared to start up time when DDFSTRT matches with DMA already on. (Turtle Party Intro / Image, bottom right scrolling logo corruption in ECS mode is now 100% correctly corrupted.)
- None serial port emulation mode and fast CPU configuration: transmit buffer empty SERDATR bit was not automatically cleared after writing to serial port, causing sender to hang if it wanted to transmit more byte(s).
- CIA latch=0/timer=0 special case handling updated. Fixed bug where timer=0 condition was detected incorrectly (Risky Woods sound effect glitches)
- Boot warp mode is now also activated when CPU executes RESET instruction.
- Integer scale + full window: Display panel windowed width and height was used instead of full window size (desktop size) when calculating scaling values.
- When Picasso96 screen dragging started with different size/depth screen mode behind, RTG display was uncessarily reset causing flicker.
- It was possible to read INTREQR with bit 15 set.
- Ultra extreme debug and Fields+ interlace mode: visible part of display was marked as blanked.
- UAE Boot ROM in indirect mode partially overwrote jump traps when system was soft reset, causing reboot loop depending on configuration. (Very old bug)
- Some scaling modes got confused if horizontal DIWSTOP was small value (which is actually large value, extends over $1c7 "limit")
- HAM mode + very early bitplane start (before hblank end) had horizontal offset and possibly also had random colors visible before bitplane start.
- Horizontal window/hblank/sprite positioning rewritten to support VHPOSW modifications and strobe cycle conflicts without special hacks.
- Horizontal blanking "lines" are now drawn in visible part of screen if Denise horizontal counter is out of sync with display start (for example strobe cycle conflict or VHPOSW was written). For example Colors / Mad Team corruption in ECS mode is now fully correct. (Corruption has more black lines)
- Other weird VHPOSW writes are now supported. VHPOSW test cases by ross.
- Allow AUDxPER=1, game Spaceport requires it. Previously min allowed audio period value was 4 to keep CPU usage lower if program keeps playing zero single sample continuously.
- Added Denise/Lisa horizontal counter to DMA debugger (value between Agnus/Alice counter and IPL level).
- DMA debugger first refresh slot strobe type was not always correct (Visual bug only)
- Do not blank display if chipset mode is invalid (if display resync blanking is enabled) but video port display adapter is active.
- Use hardwired syncs if video port adapter is configured and sync mode is combined. Fixes Video DAC 18 which sets bogus programmed hsync configuration, real HW works because Video DAC 18 generates the sync when it is active.
- DIWSTRT/DIWSTOP/DIWHIGH timing fix (affects only special cases where register is written almost at the same as old/new value would match). ECS Denise DIWHIGH has unexpectedly 1.5CCK delay compared to DIWSTRT and DIWHIGH which only have usual 1 CCK write delay.
- Refresh conflict emulation special case hacks removed, normal emulation handles it now (and also VHPOSW writes). Conflict and VHPOSW test cases like Colors / Mad Team and Smooth Copper / Up Front still work.
- Some badly configured native AGA modes were unstable (Super Street Fighter II Turbo CD32)
- On the fly A1000 Agnus/Denise model changes didn't work correctly.
- Randomize CPU start position after hard reset relative to raster position. Previously CPU was always started at HPOS=0/VPOS=0.
- Configurable random seed added (config entry "rndseed") rndseed=0 is default (randomized), any other value = static seed.
- Emulator internal random seed is now randomized at startup by default. Affects floppy mechnical timings and initial CPU startup delay after hard reset.

- -conlogfile <path to file> command line parameter: write all console debugger output to a file.
- Command line parsing was done after configuration validation, for example "-s joyportx=xyz" command line parameters didn't affect Game Ports panel until something else caused config file validation (for example emulation was started.). Old bug.
- Standard filter names and input panel "<none>" can be translated now.
- Quickstart Host Configuration menu first option renamed, "Default configuration" -> "Current host configuration". Added new option "Default host configuration" that resets host configuration to defaults.
- Quickstart selected Host Configuration was not activated when Quickstart panel was opened in Quickstart mode. It was only loaded when menu was changed. Also when menu is changed to "Default host configuration", reset configuration to defaults and then reload default.uae if it exists.
- Pressing "Set configuration" button now first loads selected host config (if any) before setting hardware config. "Current host configuration" = only hardware config is changed like previously.
- Click statefile load in GUI, cancel the dialog: default statefile was selected.
- Inserting archive in floppy drive now also tries to find any supported file type (disk images/executable) inside archive's subdirectories.
- hardfile2 -config entry's path used different escaping method when saving vs when loading. If path contained characters that needed escaping (in normal situations "," because it was used as a separator in old versions), backslashes disappeared when unescaped.
- "Autoclip screenshots" option now supports programmed native screen modes.
- uaedbg HUNK_RELOC32SHORT support. Memory allocation size larger than reserved pool crashed.
- Multiple 0x76 partitions per HD/card can be mounted now, previously only first was mounted and the rest become zero size non-existing drives.
- If 0x76 partition harddrive access was out of bounds read access (access outside of selected partition), do not complain and exit, only log it.
- If real harddrive access read or write fails due to some disk error or something preventing writes (like lack of admin privileges), return error code to AmigaOS side. Previously only written/read length was returned as zero which is not guaranteed to be detected as error condition.
- Hide all GPT drives in Add harddrive list.
- USB HID input device usage page check fixed, it accepted devices that had nothing to do with being input device. (Useless device(s) in Input device list)
- Support also 8 channel WASAPI mode (if no other channel modes are accepted), Sound BlasterX G6 requires this. (Maybe others too?)
- If sound driver does not support current channel setting but supports higher channel setting: only internally use higher channel mode, keep Sound panel sound channel setting.
- 64-bit host FPU mode FABS returned negative zero if input value was negative zero. Other negative values returned correct positive result.
- MMU mode MOVEM.x <regs>,-(An) with <regs> containing same register as target register: stored register content is after pre-decrement. Non-MMU mode was implemented ages ago (68020+ only).

A2410 emulation fixes (New Picasso96 driver uses many previously never [fully] used A2410 features)

- BT458 RAMDAC addressing fixed. Only address bits 0 and 1 are decoded, address bit 2 is used as read/write select line.
- TMS34010 host address load/data read automatic prefetch emulated. (Every time TMS34010 address register is written to and write autoincrement is not enabled, TMS34010 does immediate read from address, next data port read returns prefetched data and if read was autoincrement, new prefetch read is started immediately). Also fixes CGX4 A2410 driver mouse cursor color.
- A2410/native mode autoswitch and manual switch was unreliable in some situations.
- Display was not fully refreshed when for example emulator window size was changed.
- Overlay (Picasso96 and CGX use this to simulate hardware mouse cursor) positioning relative to graphics data fixed.
- Interlace support fixed.
- Horizontal/vertical panning supported.
- Missing plane masking (PMASK register) implemented. Not sure if it is fully correct. (Picasso96 A2410 uses it at least when drawing intuition menus), it was not implemented in original MAME TMS34010 emulation.
- A2410 display didn't re-activate after reset.
- A2410 stopped working with black screen if switched to mode less than 300 pixels tall.

Show Previous Changes

None to be added...

bottom of page