
6.1.0:

Development:

- Copper emulation rewritten to match lower level logic (Relatively simple 3 stage state machine based on Alice schematics). This is needed to support nasty VHPOSW write special cases. Emulation code is also now much shorter and simpler, all COPxJMP special case hacks are gone.
- Unified native and programmed mode display positioning. For example positioning in native PAL and programmed mode that sets matching PAL parameters is identical now. This also includes overscan setting, previously programmed modes ignored TV mode settings.
- Display positioning now only uses Agnus/Alice generated sync and optionally using blank signals (like real displays work), this enables correct positioning even if mode is very strange. Previously positioning used hardwired PAL/NTSC sync/blank positions or programmed mode sync/blank register contents, this mode can only work mode is not too weird.
- Display height is from vertical blanking end to start. If vertical blanking is completely missing (It isn't required in real world, only need black in VB area to not confuse display's black level calibration), whole vertical (minus few lines after vsync start) are shown. Horizontal width uses horizontal blanking (or if missing, from hsync + few CCKs to start of next hsync).
- Chipset panel Monitor Sync Source option renamed to Monitor sync / positioning mode. First 3 options select blanking based positioning/size mode (default, same options as in previous versions), new 3 options select sync based positioning/size mode. This is basically how CRTs originally worked, later models had digital control logic and could also use blanking for positioning.
- Extreme overscan mode now equals selecting sync based positioning/size mode.
- Lines that TV overscan setting blanked also skipped bitplane/sprite collision detection.


Unified native/programmed mode can break existing configurations that have manually adjusted programmed modes. Only native PAL/NTSC mode normal overscan+ or smaller filter configuration positioning and size will be kept compatible with old config files. Autoscale and other similar filters should now work much better when mode is very weird.

6.0.3:

Beta 2:

- Fast drawing mode had unreliable long/short field detection in some programmed interlaced modes.

Beta 1:

6.0.x fixes:

- Fixed DDFSTRT being modified while previous value matched condition, it was not correctly updated when DDFSTRT/STOP logic was rewritten (6020b6). (Display corruption in Back in Bizness / 2000AD, Sly Spy, probably others too)
- Bottom right OCS Denise blanking bug was not visible in Overscan+ mode.
- In some situations fast mode drawing mode generated VB interrupt 1 line too early and also could toggle between correct and incorrect in interlaced modes.
- HIGHGFX SuperHires + interlace screen mode was broken when screen was dragged down 1 more or more pixels in fast drawing modes.
- Display drawing could overflow output buffer by drawing 1 pixel more than fits in the buffer and causing random crashes.
- Switch from RTG to native + fast mode: garbage was randomly possible in right border.
- GUI operations that update the display in realtime (for example Display panel brightness/etc adjustments) caused hang if done before starting. Operations waited for free Denise drawing queue slot without running Denise drawing thread.

Other:

- It is now possible to connect multiple emulated CD drives and use multiple CD images simultaneously. Internally support was mostly done years and years ago but it was never finished.
- Directory filesystem ACTION_CHANGE_MODE responded with ERROR_OBJECT_IN_USE if it was used to change already shared mode file handle or file lock to shared mode.
- Plain HDF with virtual RDB (Plain HDF mounted to emulated HD controller) didn't allow access to last 256k of HDF (wrong virtual HDF offset calculation). Bug probably since virtual RDB support was added. Also return write protected error if trying to write to virtual RDB. Previously writes to virtual RDB were ignored completely.
- If RAM panel memory range is adjusted that is also used for accelerator board RAM: adjust also accelerator RAM size. Expansion panel accelerator RAM to RAM panel copy was already implemented.
- Integer scaling now uses correct aspect ratio when "VGA mode resolution autoswitch" is active.
- If standard output is redirected ("winuae.exe >path/somewhile.txt"), all logging will get redirected. Log console is disabled if redirection is used, redirected output is in utf-8 format.
- -version command line only outputs winuaebootlog.txt "header" lines and then exits.
- If 1G of 32-bit chip ram is enabled: always use UAE Z3 mapping. Hardware info panel before starting emulation now shows correct Z3 board start.
- Internal sound buffer overflowed if WASAPI sound buffer was set to max and channel amount was 6 or more.
- Original X-Surf IDE ports emulated.
- Added Buddha v103.17 ROM to ROM scanner.

6.0.2:

Beta 12:

- Only some filter numeric edit boxes adjusted the sliders correctly.
- Magic mouse positioning had offset in some filter modes (v6).
- uaehf.device thread syncronization fixed when device is opened when current opener count is zero and closed when opener count becomes zero. Happened only if device was repeatedly opened and closed quickly. Probably has existed since uaehf.device was introduced.

Beta 11:

- Genlock mode in some ECS/AGA configurations crashed at boot.
- Reverted beta 8 statefile expansion update, full expansion restore is not yet complete enough. Old method requires config file that matches statefile expansions but at least it works if they match.

Beta 10:

- Filter panel new numeric text controls had wrong min and max values for most filter modes.
- When pausing emulation, release any pressed Amiga keys before pausing because key events are ignored when paused. Fixes stuck left ALT when using ALT-TAB and when active and mouse uncaptured = pause emulation. (Old bug)
- Added lightpen_offset_gfx=x,y that only adds offset to crosshair (host side) coordinates. Previously implemented lightpen_offset adds offset to Amiga side oordinates.
- Fast mode chunky line buffer could have contained partial data from previous line. It is now cleared. (Relic / Nerve Axis initial screen. Yet again.)

Beta 9:

- Fixed Matrox Millennium vblank start callback function. Display VRAM start address was not updated correctly if non-zero. Didn't affect other models.
- Fixed AVI Output color components possibly randomly swapping if output and input width was different. (Pixel adjustment used byte size instead of pixel size)
- Fixed possible AVI Output buffer overflow crash if video and output buffer dimensions were too different.
- AVI Output and screenshot requested height from drawing code but it could return wrong results (usually few pixels too short) in fast drawing mode. Most visible side-effect was few pixel vertically jumping AVI recording.
- SPRxPOS/CTL writes were 0.5CCK too late. (and another ross test works. AGA has more annoying 1 shres pixel offsets but they can wait for next version)
- Line that force-starts sprites (PAL 25, NTSC 20, end of VB line) also prevents sprite DMA enable even if sprite start or end vertical would match this line. VB end line is the only line that has this special condition because it is line that resets sprite logic. Old forgotten hack was finally removed and correct behavior was implemented.

Beta 8:

- If statefile is loaded and it contains expansion devices, ignore currently loaded configuration's expansion devices. Previously both got mixed and sorted using configuration's sort mode. Result was boards in wrong addresses after statefile was loaded if board configuration was not exactly same as in statefile.
- Fix graphics corruption (stuck sprites) in fast drawing mode if sprites were used "strangely". (Castlevania AGA)
- If sprite was armed, sprite shifter was activated, SPRxCTL was written, disarming the sprite: sprite stopped immediately due to too early switch to less complex bitplane-only drawing mode. Sprite output shifter should empty first.
- Horizontally early BPL1DAT write in OCS Denise config activated sprites even if it was too early (broke in some early v6 betas)
- Last line of frame and programmed mode: line was incorrectly detected as VB line when emulating sprites, even if programmed VB started later.
- Very messed up programmed mode setup could have caused internal divide by zero crash due to number of scanlines being detected as zero.
- Fixed AVI output swapped color components in "before filtering" mode. Again.
- If AVI output or continuous screenshot is active: always use internal temporary display buffer mode because reading from VRAM is slow.
- DMA debugger 64-bit (AGA FMODE=3) DMA transfer data digits was partially overwritten with other markers.
- Some Matrox fixes from 86box.
- D3D11 mode now clears allocated textures because they are not guaranteed to be cleared after allocation. Could have left garbage on screen when screen size/etc changed depending on GPU/drivers/etc.
- Some (older?) sound drivers return invalid argument error code instead of unsupported format when querying 8 channel formats which stopped supported format enumeration early if GUI selected mode was not supported.

Beta 7:

- Activating light pen on the fly (and other features that write on top of native screen) and fast drawing mode was possible: light pen left trails on non-modified parts of screen until display was reset (for example resize of windowed mode window). (v6)
- Fixed lightpen crosshair trails (and other overlay graphics that can appear on top of blanking) in higher overscan modes if fast mode drawn.
- Lightpen enabled but with crosshair cursor disabled could result in blank screen because it incorrectly enabled temp buffer mode but temp buffer was never selected because crosshair was disabled. It did work correctly if also some other feature required temp buffer, for example genlock.
- Fixed bad buffer size validation when fast mode drawing under hblank/border (for example large enough overscan) to temp buffer. It used original buffer end for limit check. If temp buffer was earlier than display buffer in address space, temp buffer was detected as too small, skipping the temp buffer part completely, creating visible horizontal offset.
- Added Warp Engine "ROM disabled" option.

Beta 6:

- DDFSTRT/DDFSTOP/HARDSTART/HARDEND/BPLSTART logic partially rewritten again, it still wasn't fully cycle-accurate. There is no DDFSTRT==DDFSTOP special case, it can't even exist. More details later. (ross tests(tm) are back, at least partially, and immediately something non-accurate was found)
- Bitplane DMA disabling sprites didn't work correctly if bitplane DMA started after sprites and then bitplane DMA overrun over sprite cycles in next line. (This never happens normally because it is not possible to have this condition without refresh and other conflicts). This and above means really weird (and totally pointless) DDFSTRT/STOP combinations with BEAMCON0 HARDDIS=1 are now cycle-accurate.
- Unaligned AGA FMODE>0 bitplane/sprite pointer/modulo adder behavior implemented again (another v6 rewrite missed feature)
- Audio state transition from 1 to 5 didn't handle interrupt correctly (other state changes were already fixed some time ago)
- FPS counter was not (usually) updated when any debugger breakpoint was active.
- Clear display buffer also when in no signal state (invalid programmed mode configuration)
- Debugger memory read and write commands end address off by one visual bug fixed.
- Bitplane to bitplane collision do not require any CLXCON bitplane bits set. Empty odd plane can "collide" with empty even plane.
- Sprites to sprites/bitplane collision detection activates 1 lores pixel early (1 pixel before border ends), sprite to bitplane collision is detected if sprite is under the border (last pixel of border) and bitplane collision bits are all zeroed ("Collides" to background color). OCS/ECS only. Fixed in AGA.
- If JIT is enabled, do not unmap Z2 and Z3 autoconfig RAM boards during reset. JIT can crash randomly when reseting the system and JIT was executing code from Z3/Z2 RAM. This was default long time ago but was removed because it appeared to work fine. Apparently not 100%. Technically Z2/Z3 RAM should disappear at reset but AFAIK at least some real world CPU boards with internal Z2/Z3 RAM don't do that. (I'd recommend also using "Prosessor slot" RAM expansion.)
- Added Processor slot RAM setting to main memory GUI (was previously only in Advanced Memory Settings dropdown menu) because in real world this is much more common accelerator RAM expansion than Z3 Fast RAM.
- If Chip RAM size was increased to 1M or more, Agnus is OCS and emulation has not been started: set Agnus model to ECS. Hopefully makes it less easy to accidentally configure broken OCS Agnus + 1M+ Chip RAM configuration which appears to work fine until chip ram gets allocated above 512k border. OCS Agnus + >512k must be still configurable because this (broken) modification can be done in real world quite easily.
- Fixed possible crash when switching native screen modes (Native screen mode = output buffer width/height changed, native mode lores/hires/shres change is not a mode change) (v6)
- Fixed possible crash/out of bounds write when updating output display buffer (v6).
- CD path pointing to non-existing image file caused "unitsem0 acquire mismatch" log message. (very old bug)
- Fixed wrong S3 Virge PCI mapping that got broken when Matrox emulation was added.
- Fixed S3 and S3 Virge PCI random crashes due to unsafe thread handling. It could happen when thread was started and then almost immediately killed.
- Added 1176*664, 1440*1080, 1600*1000 and 1600*1024 to uaegfx static mode ID list.

Beta 5

- KS ROM genlock detection still could misdetect genlock in JIT mode causing guru when timer.device attempts TOD calibration and causing non-existing 80000000 guru due to a KS bug (At least KS 3.1, perhaps others too). (6.0)
- Fixed bad drive click code, was semi-broken since the beginning. Sound buffer size affected click sound quality and possibly clicks were missed completely. For some reason some WASAPI devices seem to play empty drive clicks with very low volume and also sometimes play motor sample + clicks strangely (samples are exact same and even volume is same), maybe some noise filter or something done by driver or something?
- Visual DMA debugger now defaults again to Agnus lines, line zero at top. vv-x can be used to show virtual line at top, first line after vsync. Also previously it could have shown random bogus lines at the top or bottom.
- 6.0b1 "If CIA serial port data direction is changed (CRA OUTMODE toggled), serial port state is reset, possible pending transmit or receive is immediately aborted." checked CIA-A vs CIA-B instead of checking if modified control register was A or B. Most likely didn't cause any side-effects, at least with any normal programs.
- Chipset display is now cleared when entering genlock mode without genlock (hsync and vsync stops). Previously last frame was shown until no sync condition ended.
- Trying to load a statefile when in genlock no sync condition didn't do anything.
- ECS/AGA bitplane enable/disable fix when DDFSTRT==DDFSTOP. It always starts bitplane DMA but "ddfstop passed" condition depends on previous state of bitplane logic. Previously it always triggered "ddfstop passed".
- Some ECS/AGA bitplane sequencer mid scanline DMA on/off logic changes, was lost during v5 to v6 update.
- If bitplane DMA last BPL1DAT is also sprite slot and sprite is active: sprite and bitplane DMA conflicts. This was emulated in v5 but was lost during v6 update.
- AVI capture before filtering had swapped color components (6.0)

Beta 4:

- OCS/ECS "7-planes" mode didn't enable EHB. (6.0)
- Immediately switch to full line emulation if BPLxDAT is written to, even if line is normally hidden inside vertical blanking (Blanked lines are emulated with simplified code because bitplanes and sprites can be ignored). Unfortunately bitplane data can be visible in some special cases, possibly only during bitplane DMA overrun condition.
- D3D11 fullscreen mode active, enter GUI, switch screen mode to windowed or full-window, press Reset button: windowed mode didn't open, neither did fullscreen mode. Nothing opened. (Very old bug).
- Crash was possible when blanking left/right edges of scanlines, for example when in NTSC mode with NTSC artifacts hidden (b3)
- AlfaPower HD "ROM disabled" option added.

Beta 3:

- Fixed fast drawing mode horizontal positioning being wrong randomly (b2)
- NTSC and fast mode and pixel column just before horizontal blank start has changing graphics: single pixel column of garbage was visible (for example NTSC mode + Auto integer scale).
- If whole screen was drawn in fast drawing mode, horizontal bitplane start and end position was not stored, causing horizontal centering, automatic scale etc to fall back to default setting.
- Overscan blanking filter setting didn't allow selecting value -1 (disabled).
- Native/RTG autoswitch is really on by default again.
- Masoboshi Mastercard v2.202 ROM added.

Beta 2:

6.x bugs fixed:

- If horizontal centering moved display far enough left to hide part of bitplane, fast mode drawing had horizontal offset. If centering was far enough right, fast mode drawing didn't stop early enough and wrapped around.
- Fixed horizontal centering positioning in programmed/scandoubled modes.
- Added special case for DraCo Altais RTG board: always autoswitch to RTG. DraCo does not have native chipset. (6.0.1 optional autoswitch feature made Altais also optionally autoswitching because Altais does not have built-in switcher. Technically correct but also very annoying with DraCo.)

Other fixes and new features:

- If custom dialog window (HD to HDF creator status bar window possibly was the only one) was closed without user interaction, parent window re-activation was skipped, causing GUI to become completely unresponsive. Old bug.
- Added "Override initial native chipset display" to RTG panel. If set, selected RTG monitor is immediately active at emulator startup, overriding default chipset display. Screen will be blank until RTG board is initialized. Note: if RTG board has built-in switcher and switcher state is changed, switcher state change will override initial monitor selection.
- Masoboshi Mastercard v2.204 ROM (final version) was finally found. Added to ROM scanner. Has same "MASOBOSHI.device (MASOBOSHI MC-702 Treiberprogramm)" device strings but also extra "$VER: MasterCard MC302/MC702 2.204 (29.4.96) by Martin Berndt" at the end of ROM that no other known version have.


Beta 1:

6.x bugs fixed:

- Another blitter statesave restore when active fix. If blitter was active when restoring and state was saved with 6.0+, restore might have resumed the blit incorrectly.
- Status bar Power and DFx: had offset when clicking with mouse since capslock/line count was added.
- Add harddrive still didn't work correctly in all situations. (Partition was selected correctly but when emulation started, it didn't find the selected partition anymore). Added some more log messages.
- Configurations that need internal RAM graphics buffer (lightpen cursor, video port adapters including genlock, debugging overlays etc that need to modify output graphics) didn't work correctly in automatic scaling modes (right half of display blanked and possible other side-effects)
- Configurations that need internal RAM graphics buffer (see above) and switching PAL/NTSC (or some other reason for screen height change) didn't update line mapping table, leaving "new" part of display at the bottom blank.
- Autoresolution + NTSC (possibly also in some other display modes) switched between lores and hires continuously.
- Fast line drawing in some situations drew only part of scan line (Pinball Illusions table selection screen or Brilliance II first line of bottom screen)
- Fast line drawing in DPF mode with both planes having different scroll value: visible garbage was possible in right border (Pinball Illusions table selection screen)
- Horizontal centering change sometimes left garbage in edges of screen.
- A2024 and possibly some other display port adapters got broken in 6.0.1.
- On the fly switching to 68000/010 cycle-exact from any non-cycle-exact left internal cycle counter unaligned, causing CE 68000/010 to lose DMA slots "randomly".

Other fixes and new features:

- Added "Always stretch NTSC mode" checkbox to Filter panel (name needs to be better?). If selected (default), NTSC mode is stretched to match PAL mode height. Most filter modes had this active by default. It is now optional. Does not affect Integer scale, most automatic scale and TV modes.
- Paula pot counter increment is clocked by first strobe slot, was still using start of scanline. (As usual, no one cares)
- If GUI has text/numeric edit control active, return only unfocuses the control instead of exiting GUI. Return without focused edit control still exits GUI like previously.
- GUI filter horizontal/vertical number boxes are now directly editable.
- Manual filter mode positioning range increased, previously negative values were not accepted.
- Direct3D 11 mode ignored on the fly fullscreen refresh rate changes.
- External HRTMon ROM images were not accepted. (Maybe some really old ones did work?)
- Gameports remap window didn't always list all mapped input events. Non-listed events still worked correctly.
- Gameports remap and manually adding events with "Add event" button and input source was analog stick movement: remapping "randomly" chose between analog and digital input variant. Now digital variant ([-]/[+] at the end of name) has priority.
- Added 3.2.3 KS ROM checksums (Amiberry)
- If 680x0 CPU is stopped with IPL mask = 7 (CPU can only wake up with NMI or reset), CPU OSD shows CPU as stopped.
- Debugger MMU U command now also outputs MMU table descriptor pointers used for table search. Any debugger MMU command now always first flushes descriptor cache. Previously debugger MMU table searches coud modify MMU tables (for example modified bit would get set if not already set). 68030 MMU mmud full table dump command supported.
- RDB/OFS/FFS hardfile creation option is now separated to RDB and OFS/FFS. RDB adds RDSK identifier to new hardfile and enables Full drive/RDB mode automatically.
- If A2090 or Mast FireBall hardfile is added, RDB mode was not fully activated automatically.
- GUI hardfile "New hard disk image file" section does not anymore reset to defaults after HDF has been created and GUI panel is fully updated after new HDF has been created.
- Added GVP QuikPak (non-XP) 68060 accelerator board. Only has $F00000 ROM that does usual 68060 FPU disable and also adds 9999/22 fake autoconfig device and resident "J Boyer Copyright 1996", no SCSI etc. ROM added to ROM scanner.
- Added Archos Overdrive HD 3.0 ROM ("amiquest.device (IDE 3.0 05/05/93)") ("IDE 5.0 10/02/94" was added long time ago)
- Renamed "SCSI Kit III" and "SCSI Kit IV" -> "Blizzard SCSI Kit III" and "Blizzard SCSI Kit IV" (Rename does not affect existing configurations)


6.0.1

Beta 2:

- ROM scanner detected ROMs dialog didn't list CD32 if only detected CD32 ROM was single 1M ROM.
- CD32 single 1M ROM was not supported in Quickstart mode.
- Single CD32 1M ROM with swapped upper and lower 512k was not swapped when loading ROM. (Scanner swapped it but loader did not)
- Debugger S and L command now accept quoted path/filename.

Beta 1:

6.0.0 bug fixes:

- Fixed TCP serial mode hang.
- Entering and exiting GUI when in fullscreen mode crash fix.
- Virtual mouse driver mode was not in sync with host cursor, both RTG and native modes.
- Filter overlay graphics display positioning/size calculation was broken.
- ECS superhires works again (got broken in last minute update before final).
- CLXDAT bit 0 (odd to even bitplane collision bit) didn't get set in special case where no planes are selected for collision detection (=always collides). (Cruncher Factory/Kingsoft). This is now also more accurate than in pre-v6 versions, CLXDAT bit 0 is only set when bitplanes are active (not in border or in blanking regions), even in "always collides" state (no bitplanes are enabled for collision).
- CLXCON and CLXCON2 was always saved as zero (or if statefile was loaded first, value from statefile) to statefile.
- Fixed edge case in COPJMP sequence where copper forgot it was going to load the pointer register and continued executing from current address.
- Vertical and horizontal centering works again (was not converted to new chipset emulation and did nothing). Some limits change: now works with non-"auto" scaling filters, disabled if genlock image/video emulation is active (this never worked properly in old versions and too messy to work around), horizontal is now restricted to max 1/4 of width to prevent weird cases to cause weird side-effects. Like previously, only supported in display panel Overscan and smaller settings.
- Fast drawing mode + 32-bit Chip RAM address mask fix. (Garbage in fast drawing mode lines)
- When switching from emulated graphics board to native programmed mode screen, sometimes screen (fast drawing mode part) had offset.
- In some situations emulated graphics board was not drawn fully, bottom part was blank.
- Add Harddrive: Storage devices containing MBR partition table with RDB in later blocks was not detected correctly.
- OpalVision possible buffer underrun crash fix.

Other bug fixes/updates:

- RoboCop 3 dongle emulation fixed.
- Added Native/RTG autoswitcher option. Previously all RTG boards without built-in switcher always autoswitched, now it is optional, default enabled.
- If UAE Boot ROM is partially disabled (Mapped but diag bit not set in autoconfig data), writing to m68/host trap related areas caused a crash.
- ROM scanner now detects CyberStorm MK3/PPC and BlizzardPPC flash rom images using checksums. Address ranges that make ROM image unique (Serial number/board config and menu config areas) are ignored in checksum calculation.
- ROM scanner *.a600 ROM extension added. Super IV cartridge is not anymore shown as detected without ROM image (Super IV is a special case, "ROM" is loaded from disk and "placeholder" ROM was always detected as found)
- Copilot key now works as a right Windows (Right Amiga) key. Note that this is a hack and causes some (harmless) extra shift and left Windows key presses and releases due to Copilot key being really weird. (LSHIFT + LWIN + F23!)
- Automatic display switcher now also uses DPMS power saving state to detect if board is active or inactive. (S3 Trio, S3 Virge, Voodoo, Cirrus Logic and Matrox currently only)
- PC keyboard without numpad/end key optional translation mode. When enabled, PageUp becomes End (End still works normally). Because cartridge freeze is also PageUp, freeze becomes PageUp + PageDown. END/PageUp + cursor left is Pause and cursor right is Warp mode. (Replacing print screen key). PageUp + 7890/UIOP/JKL<key right of L>/M<key right of M> emulates numpad. Note that numpad emulation is done before PC to Amiga translation which means it does not override enabled numpad joystick option. Option in Input panel. This is registry/ini specific setting (just like F11 option).
- Built-in AROS ROM finally updated.
- Debugger disassembler (d16,An) addressing mode was (An,d16). If (d16,PC) addressing mode's d16 was negative (for example -1), it was output as $FFFF not -$0001.
- Debugger disassembler DIVxL.L second output register was not listed (shared code with MULxL which didn't have this special case)
- Debugger memwatch point change mode detected negative byte/word value writes as always changed due to sign extension before comparison.

6.0.0

Beta 33 (Final):

- UAE Boot ROM type state restore fixed (was some half-finished feature that was forgotten year or two ago).
- Full-window + superhires + interlace aspect ratio was weird if aspect ratio correction was enabled.
- Fast CPU could do Denise/Lisa register access before already queued RGA queue access was processed. (For example if Copper wrote to COLOR0, slightly later CPU write to COLOR0 can still happen before buffered Copper write was fully done).
- "Invalid" screen modes that disable Agnus bitplane DMA (for example 8 plane hires but FMODE=0) didn't draw anything but of course current background color and sprites (if AGA bordersprites are active) should still be drawn normally.
- Possible fix for IDE emulation read/write error during data transfer leaving DRQ active.

Beta 32 (RC2):

- Paula audio timing calcution used programmed vertical timing but hardwired PAL/NTSC horizontal timing when in RTG mode with inactive Amiga screen in doublescan mode. (b22)
- Fixed genlock emulation horizontal scaling and horizontal lightpen positioning, horizontal blanking changes broke it in some early beta.
- Pause zeroed display line count OSD (That normally shows 313p etc).
- At least Sound stereo delay GUI setting become empty instead of showing "-" when entering GUI again. Possibly others too. (Old bug)
- If ECS/AGA programmed mode registers got badly enough corrupted causing Agnus DMA to steal all cycles and CPU was accessing chip RAM: exiting UAE would become impossible because CPU never got any cycles. Normally CPU emulator checks state changes between each instruction.
- Added some missing translation strings.

Beta 31 (RC1):

- Adjusted CDTV CD+G subchannel read timing. CDTV CD+G graphics should be stable again. Timing is quite critical, every subchannel byte generates interrupt, CPU runs short interrupt handler which reads the byte and acknowledges the interrupt, then returns. There are 96 subchannel bytes per CD audio frame = 75 * 96 bytes per second. One interrupt about every 2.2 scan lines.
- Refresh indicator feature is working again (show_refresh_indicator=true command line option). Now detects all graphics changes, previously only bitplane changes counted. Also can be more CPU heavy because it stores whole RGB output, not just bitplane chunky values. (v6 chipset emulation does not anymore have separate temporary chunky bitplane buffers). Not supported in fast drawing modes.
- Force Denise drawing thread output flush before drawing next slice in beamrace mode.
- Fixed FDI disk image support. Was broken long time ago, decoder hung in infinite loop.
- Added CIA hack to JIT and fastest CPU mode that guarantees when running timer is read or timer is stopped by clearing START bit, following timer read has always counted down at least single tick from initial start value. Some programs try to detect CPU speed by running short CPU code and time it using CIA timer. But fail to handle zero CIA timer count resulting in divide by zero crash.
- OpalVision emulation now blanks left and right edges and control line data on top. (King of Karate has dark blue line at top which seems to be part of image)
- OpalVision OpalTest test program works again without flickering.
- Fixed possible crash during reset when using emulated video port display hardware, including genlock.

Beta 30:

- Default config without default.uae and without Quickstart is now A500 cycle-exact. (Was approximate mode previously)
- Default Quickstart mode is now cycle-exact (most compatible) A500. (Was approximate mode previously)
- Added partial support for some undocumented (undocumented as not used by CDTV extended ROM) CDTV CD commands. Added 2052 and 2340 CD sector size support, probably was never used (CDTV CD also accepts 512 and 1024 but they appear to be unusable), removed 2328 and 2352 which are not supported by CDTV CD.
- Added 2052 (4+2048) and 2340 (4+2336) CD sector size support to generic CD image emulator. (4 byte header + data).
- Recursive event callbacks fixed. This caused missed events in some situations.
- Add harddrive Lock option didn't lock all partitions if drive had MBR partition table + one or more known partitions (broke long time ago)
- If direct harddrive access read or write returns error (for example access denied), log the error.
- Hard reset again resets color registers to random values (except background color which is set to static value)
- First VPOSHW write after reset also set Agnus horizontal counter=1, causing small blanking glitch during boot.

Beta 29:

- Fast mode drawing always masked chip ram addresses to regular chip RAM size causing corrupted graphics if 32-bit chip RAM was enabled.
- Right edge horizontal scrolling glitch is now only emulated correctly (as in glitches correctly) in accurate emulation modes. Fast CPU modes "fixes" the glitch. I don't normally like "fixing" hardware design flaws but I didn't find any other simple solution to fix this problem without huge changes to fast drawing modes. This might work better in some future version. Normally this condition (Very large right edge overscan + horizontal scrolling) is rarely visible because it looks very ugly.
- Remove interlace artifacts very glitchy scrolling fixed (b28). There still can be single line that has wrong graphics before it gets redrawn in next frame but because it happens at the same as another usual glitch that affects all lines when bitplane pointers get updated while scrolling, it is not important problem.
- If only difference between odd and even field scrolling value in BPLCON1 was AGA-only hires or shres bits, emulation mode that emulates odd/even planes separately was not selected and odd planes used same scrolling value as even planes.
- Fixed crash when doubleclicking config tree view root node.
- b25 interlace change was not fully working, it was still possible to get for example autoscale filter mode display jumping between long and short field heights. 
- Borderblank 1 shres delay emulation got broken partially in b24 update. (Only supported in accurate modes)

Beta 28:

- Display panel Overscan TV modes didn't do anything if "No scaling" filtering mode was selected.
- Fixed Remove interlace artifacts last line flicker in some overscan modes and "out of sync" line when drawing mode changed from accurate to fast mode.
- Removed Chipset panel Subpixel emulation checbox. v6 emulation is always subpixel perfect in accurate modes. Config file support is not removed. (backwards compatibility)
- Only known Apollo 500/2000 boot ROM seems to only support AT500/AT2000 variant, driver does not initialize if hardware SCSI config bit is set. Now SCSI is disabled by default (making it AT500/AT2000), option added to Expansions panel. Possibly got broken when Apollo accelerators got supported or updated which use exact same SCSI hardware.

Beta 27:

- Interlace timing was broken, fast drawing mode calculations affected non-fast modes. (b26)
- Remove interlace artifacts works again (b26)
- "Default" filter mode now adjusts to Display panel overscan selection.
- Fast mode superhires + Display panel resolution set to hires had horizontal scrolling glitches.
- Add Harddrive listed some CF cards (maybe others too) as unaccessible MBR partitioned with single partition even if they had RDB (or nothing). Broken in some earlier beta.
- 65HC05 and 8039 keyboard MCUs was not fully reset when reconnecting keyboard on the fly.

Beta 26:

- Automatic resize filter added size multiplier twice in some situations.
- Collision CLXDAT register reads are now also horizontally cycle based (but not yet pixel perfect). CLXDAT reads are still line based if configuration does not have at least memory cycle-exact or CPU is in fastest possible mode. No real world program cares and also collisions are used really rarely.
- Programmed mode that enabled programmed HBLANK and programmed HSYNC (BEAMCON0 VARHSYEN and/or VARCSYEN) without VARBEAMEN used default PAL/NTSC positioning instead of using programmed HBLANK values for more accurate positioning.
- 68HC05 keyboard controller emulation keyboard matrix last row was not working.
- Fixed fast drawing mode last line having wrong color, mostly in programmed modes. (Last line color changing to black when mouse is near the bottom of screen and back to border color when moving mouse upwards).
- FPU FMOVEM to/from extended uses "original" code when JIT is enabled. This is test fix for reported "random" FPU value changes in JIT FPU mode.

Beta 25:

- Fixed possible drawing buffer overflow when drawing blanked lines.
- HAM state was reset when HDIW start matched even if HDIW was already open.
- Switching BPLCON3 BRDSPRT off mid-screen didn't immediately recalculate sprite visibility.
- Fast mode stopped drawing bitplane early if display needed horizontal scrolling ("misaligned" DDFSTRT and/or BPLCON1). Should fix remaining fast mode missing graphics problems near right border. (Usually only visible if HDIW ended after bitplane)
- Display panel "Resolution autoswitch" works again. (Was gone in v6 rewrite)
- Cirrus Logic SVGA chip emulation now only supports planar VGA when using text mode, 4 color or 16 color graphics modes. Can increase performance in normal SVGA modes.
- Double (not fields or fields+) interlace mode in automatic scaling/resize/etc mode never recalculated size/position when switching to interlace mode. (It kept waiting for both odd and even field but now only full frames are drawn in doubled interlace mode)

Beta 24:

- If bitplane DMA was active behind vertical blanking, it was incorrectly used for automatic scaling horizontal start/end detection.
- More horizontal start/end adjustments to exactly match 5.3.1 manual filter behavior.
- TV overscan modes are now almost same as in older versions. Narrow is slightly wider.
- Increased event queue buffer size, multiple audio channels with AUDxLEN=1 could overflow it.
- When filter mode like autoscale detects mode change, force full redraw (without this fast mode lines are not guaranteed to be redrawn with correct position or blanking)
- Borderblank 1 shres pixel early end emulation was incorrectly emulated also in border area. In some situations, when HDIW position and/or borderblank state was modified during border, it could have caused single wrong colored pixel glitches.
- Fixed bitplane garbage in right side of display in some fast drawing mode conditions (Usually hires or shres and HDIW end was larger than bitplane end)
- (Pointless) VHPOSW (like AR3 does) writes without CE caused graphics glitches in fast modes.
- Line count OSD (313p etc) now shows "----" (like FPS counter) when display sync is not stable. Not very useful to show mostly random values in weird situations.
- Fixed A1000 direct (without using boot ROM + KS disk) KS ROM loading.

Beta 23:

- Automatic center filter mode fixed.
- ECS superhires filtered lores implemented. Filtered lores odd/even genlock data is also now "filtered".
- In some situations right border had 1 lores pixel difference between border and hblank depending on drawing mode.
- Fixed AVI recording crash.
- Fast drawing mode + NTSC: left and right border glitches should be finally fixed.
- Fixed fast draw mode last line changing between blank/border when mouse was near the border.
- When reset was executed, new screen width included old short/long state. In NTSC mode new screen width was randomly 2 lores pixels wider.
- When in fast non-CE mode, switching from RTG to chipset and if fast RGA buffer become full, it was possible for CPU chipset writes to arrive in Denise side in different order, causing strange side-effects. (Frontier black screen)
- Partial fix for A2024 emulation. (All display port monitors need some updates)
- Fixed slirp use after free bug (Andreas Grabher)
- Added (config file only currently, "rtg_noautomodes=true") option that disables uaegfx automatically generated screen modes. With Picasso96 v3.4+ and P96Prefs new modes can be created manually, just like when using real hardware. Note: Old Picasso96 and/or PicassoMode utility don't support manual uaegfx modes.
- Added 3840x1080 to known uaegfx resolutions list ("known" = gets static mode id if autogenerated)

Beta 22:

- Fast mode drawing + HAM + left TV overscan blanking part of display caused HAM artifacts.
- Fast mode shres HAM in hires or hires HAM in lores didn't include skipped pixels in HAM color calculation.
- Fast mode drawing didn't mask bitplane addresses with chip ram address mask.
- Fast mode Remove interlace artifacts scrolling glitches mostly fixed.
- Garbage was possible in right border if bitplane ended earlier than HDIW. Fast mode only.
- Filter settings should not limit display width or height in extreme or higher overscan modes, extreme (and higher) should always show whole display area.
- Hardware emulated RTG boards didn't have vsync timing (b21)
- DIWHIGH state restore was unreliable.
- Automatic scaling (and related filters) now also work correctly if HDIW end never matches.
- Filtered lores option supported again. (If Amiga mode resolution is higher than display panel mode: normally every other pixel is dropped, filtered lores mode takes average color of two pixels)
- VPOS(H)W write refresh rate changes work again. (For example Wings of Death, DynaBlaster fake 60Hz). Non-CE modes only accept forwards vpos move and not out of range values.
- RTG with default settings (all 4 checkboxes in left side of RTG panel unticked) display positiong fixed.
- Adjusted display position and screenshot position/size slightly to better match older versions.

Beta 21:

- Filter panel TV modes and filter overscan blanking work correctly again (not doing anything since b1). Extra horizontal and vertical blanking handling changed again, might cause side-effects.
- NTSC horizontal long/short line artifacts are gone in TV overscan modes. NOTE: NTSC still have problems with some filter modes.
- Ultra extreme debug marker colors changed.
- Automatic scaling used also non-bitplanes to detect horizontal start/end. Now it matches 5.3.1.
- Automatic scaling + fast drawing mode: detected topmost line was 1 line too large.
- Screenshot when in non-PAL/NTSC mode memory out of bounds access fixed, caused random crashes also when entering GUI.
- Fixed possible crash in fast mode drawing code if number of planes changes suddenly.
- uaegfx vertical blank interrupt might have been duplicated or lost in some situations (very old bug), depending on RTG panel refresh rate setting.
- Ignore V(H)POSW writes when in non-ce modes. KS V(H)POSW writes when screen mode changes caused strange side-effects, including unreliable RTG/native mode switches.
- Passthrough printing fix for v4+ Windows printer drivers (untested)

Beta 20:

- Long/short field mode change (single LOF change, not interlace continuous toggle) didn't recalculate internal screen mode configuration. As a side-effect it also caused random last line to not being updated correctly when switching from long to short.
- Fixed fast mode drawing and TV overscan mode top/bottom lines not being always updated correctly.
- Audio hack that prevents high CPU usage if program sets (uselessly) AUDxPER to very low value is now more aggressive but not aggressive enough to break Spaceport. (R-Type II, ReadySoft 64 emulator)
- Serial port transmit works again in non-ce modes.
- Integer scale horizontal/vertical resolution aspect ratio correction should now work more sanely (for example if superhires + vertical doubling, result is always vertically doubled first, after that integer scaling ratio is selected). Supports also programmed doublescan modes.
- In AGA mode reads from write-only registers are now closer to 5.3.1 and older version behavior. (Artificial Paradise / NGC)
- If resolution/plane count was set before FMODE was updated and original FMODE was too small for new mode, drawing mode was reset to normal (HAM and EHB was drawn as normal mode). Affected hires and shres AGA HAM and EHB modes.
- Non-accurate CPU mode and writing to CIA high timer register didn't load timer from latch immediately in oneshot mode when timer was already running (Introduced in some 4.9.x version)

Beta 19:

- Display panel lores combined with superhires native mode is not anymore supported (It wasn't really working that well in previous versions either). Nothing is drawn in this combination.
- Filter panel adjustments also affect GDI mode in real time. It still has ugly flicker. Use only if D3D9/D3D11 is not available.
- Output D3D9/D3D11 texture was still locked when it was rendered. Old D3D9 drivers didn't like it (and was wrong in any case)
- Integer scaling superhires aspect ratio correction didn't work.
- If selected graphics API is not supported, test all other options. Previously failing D3D9 switched to GDI, even if D3D11 was available.
- Interlace + TV overscan modes: extra black line was visible near the end of display. (fast optimized modes are not yet fixed)
- Fixed attached sprites (only odd sprites affect attachment state)

Beta 18:

- PCI bridge autoconfig was unreliable, at least with Mediators, first boot worked, following reboot might not have. (broke few betas ago)
- D3D11 mode OSD was not drawn and usually had single frame in wrong position during mode changes.
- Wait for blitter option could cause recursive calls (and in worst case crash due to stack overflow) if delayed chipset pipeline callback was active.
- Some updates to fast mode drawing. (was accidentally disabled in b17, genlock support fixed, odd to even bitplane collisions (CLXDAT bit 0) supported and some other adjustments)
- Second refresh cycle was not processed in RGA pipeline because inactive NTSC STRLONG check incorrectly skipped part of pipeline processing. Whatever copper wrote in previous cycle was not written to Denise custom register causing strange side-effects.
- OCS/ECS sprite behind hires bitplane drew bitplane in lores. (Also drew in lores when sprite was on top of bitplane but it was not visible because sprite lores pixel hide both bitplane hires pixels)
- ECS Superhires fast mode drawing supported. (Except if display panel is set to lores but that is useless combination anyway)
- Virtual mouse driver horizontal movement works again.

Beta 17:

- Interlace artifact remove option didn't fully work in non-ce modes. (fast mode lines were not "scandoubled")
- Interlace filter was ignored (had disappeared during chipset rewrite)
- Filter modes default and no scaling fixed (b16)
- New output buffer lock state validation causing blank RTG screen in some situations (Validation is more strict now to detect bugs. It was a bug.)
- Remove color depth GUI option and internal color depth checks. 32-bit host depth is the only supported color depth. (Was already partially removed in b1)
- Serial port transmit buffer empty bit didn't get set when serial port was in "non-accurate" mode. (68030+, JIT etc where cycle accurate timing is not important). Serial port update is not yet complete.
- Visual DMA debugger and other on screen debugging features work again. Also now works with active genlock (for example when ALG game is running)
- KILLEHB BPLCON2 bit really works correctly now.

Beta 16:

- EHB was broken in ECS Denise and AGA modes. KILLEHB was always detected as active.
- Add harddrive last partition selection didn't work correctly. Also non-0x30/0x76 partitions are now allowed to be selected.
- When screen mode switches (PAL/NTSC/VPOSW trick etc), delay host side switch until at least 2 back to back frames have same width and height to prevent single weird size frame changes (for example during boot when VPOSW LOF bit is changed in random position from zero to one causing height of frame to change temporarily)
- Disabled too annoying CD audio OSD led flicker.
- Possible fix for autoscale not always detecting top and bottom borders.
- Filter internal scaling and positioning cleanup. Simplified coordinate and size calculations etc. Should not have any visible effect but it might break some filter configurations.

Beta 15:

- Vertical blank state was taken from wrong variable when in programmed mode, forcing fast mode to not be used when drawing programmed mode bitplane graphics.
- CIA SDR register added to CIA dump (c debugger command)
- BPLCON4 bitplane XOR value change delay was not correct.
- Fixed 1200TX second window logic and also implemented second window restriction: top 3 bits of window 2 are taken from window 1 position.
- Some changes to support future multiple PCI bridgeboards and PCI board reordering.
- Hide expansion device "autoboot disabled" checkbox when device does not have any autoboot jumpers. (or have nothing to do with storage)
- "Add Harddrive" with MBR partition storage device and multiple partitions: first item was mix of whole drive's/first partition's properties. (b1)
- Added https://aminet.net/package/docs/hard/512kWOM A1000 512k WOM expansion emulation. Option in Expansions->Built-in expansions.
- Last Denise RGA cycle of new "fast" line was skipped. If it had custom register write, it was not seen by Denise side.
- Fixed fast mode display panel scanlines.
- Check native mode screen changes when vsync starts (when whole frame is complete), not when Agnus vertical counter resets. Last few lines glitches when switching modes should be gone.
- Some FPU operations could run slightly slower in non-JIT mode but JIT FPU ticked. Force JIT FPU off when JIT is off.
- CPU/chipset timing update. Non-JIT fastest possible modes are almost as fast as 5.3.1 again.
- Fast mode bitplane optimization that detects if bitplane line changed or not is now disabled. It seems to be slower than always doing fast mode redraw of the bitplane line because it moves host CPU work from main thread to drawing thread and reduces main thread memory copies and comparisons that were needed to check if bitplane had changed.

Beta 14:

- Left side of display had corruption if horizontal resolution was small enough.
- Make sure drawing thread has finished before exit or config change.
- Fixed bad D3D surface lock/unlock functions.
- Keyboard reset without keyboard low level emulation didn't force CPU to reset state while reset keys are being kept pressed. CPU kept executing, possibly random instructions because ROM overlay is already active and autoconfig boards are deactivated, possibly causing random illegal memory accesses being logged.
- Matrox emulation blitter background thread support re-enabled.
- Remaining software filter support removed.
- Fixed slirp bug (has been since it was added) that didn't seem to affect WinUAE but affected other UAE ports.
- GDI mode didn't free all resources when native<>RTG mode switched.
- Closing last open configuration tree node didn't update registry/ini.
- Debugger command H DMA debugger listing support is back. Now only listed if D is appended (HD).
- CPU KS ROM accesses are listed in DMA debugger. 68000/010 only because 68020+ can have faster ROM access time than chipset. Uses CIA DMA debugger line but because there is not enough space, only R/W state, size and address is shown.
- -nomt skipped RGA buffering start/end overlap handling, for example copper color writes near the start of scanline were skipped.
- Genlock display had vertical wobble effect in threaded mode. Genlock, grayscale and CD32FMV are working. Other display port adapters should not be used yet.
- Non-CE fast mode subpixel scroll fix. (May not be perfect yet)
- TV overscan modes didn't affect fast draw mode horizontal blanking.

Beta 13:

Major performance improvement! Finally faster than older versions!

- Denise side processing is now in separate thread (bitplane shifting, sprite shifting, bitplane/sprite planar to chunky, special modes, bitplane/sprite priorities, strobes/blanking, RGB out etc). Line-based Denise RGA buffering made this possible because it cleanly separates Agnus and Denise logic and Denise is almost fully "fire and forget". Only exception is CLXDAT collision register reads which needs to flush all queued lines (and isn't cycle-accurate yet anyway). AGA color reads don't cause problems because they can be done in Agnus side emulation. Line queue is quite small (max ~10 lines), it won't cause any latency problems. Compatibility is not affected. (In previous UAE versions Agnus side processed whole frame, then Denise side did the rest which was not very optimal because temporary frame data needed huge RAM buffers)
- -nomt command line disables multithreaded Denise emulation.
- Previously always used temporary graphics buffering is only done if needed: display port adapter enabled (which also includes genlock in image mode, grayscale and CD32 FMV). This also increases performance. Only affects native chipset modes. When using display port adapter: complete chipset display frame is drawn to temporary RAM buffer, then display port adapter emulation merges it with any display port adapter graphics and writes the result to D3D texture. When this is bypassed, chipset graphics is directly drawn to D3D texture in single pass.
- Any enabled display port adapter (including genlock in image mode, grayscale or CD32 FMV) or enabled light pen disables non-CE border/bitplane optimizations.
- All software filters removed. Removal of always-enabled temporary graphics buffer makes software filter support annoying and they are obsolete anyway.
- b12 CE mode bitplane optimizations disabled (commented out), they are not needed anymore and they caused side-effects and glitches that are really difficult to fix completely without making optimizations useless. Non-CE mode optimizations are supported and will not be removed.
- Disable NTSC STRLONG strobe emulation if no STRLONG strobes have not been seen since last frame. Switching to NTSC and then back to PAL won't anymore cause slightly reduced performance (Accurate STRLONG emulation needs more complex line drawing code). NTSC still have right edge glitches on fast modes.
- Tiny blitter optimization.
- Adjusted non-fastest possible CPU mode frame waiting behavior (timing is different because now drawing is done after line has been emulated, in previous versions all lines were emulated first, then drawn in separate pass)

Beta 12:

- Cycle-exact mode drawing optimizations partially implemented.
- Programmed native display mode fast mode optimization fixes (both CE and non-CE).
- Added Optimizations select menu to Chipset panel (so far only meant for testing and debugging). Subpixel option does not anymore affect it (and possibly goes away soon). Full = do not redraw lines that have not changed, draw in simple mode if changed and display parameters have not changed. Partial = do not redraw line if not changed. Note that Full can't handle condition where bitplane crosses strobe (horizontal counter reset), usual effect is to have garbage there instead of border color. I am not yet sure how to solve this.
- Field+ display modes fixed in fast modes. (Disables also optimization of not drawing when line has not changed)
- ERSY=1 stuck stopped condition didn't check for input events and didn't do display refresh etc.
- If real HD/memory card has Windows supported partition table and partition metadata can be queried without administrator privileges (always normally possible?) but administrator privileges are needed to read/write partition data, list partition(s) in Add Harddrive dialog with "ACCESS DENIED" text. Previously partition(s) were not listed. Maybe this is less confusing than hiding them completely when administrator privileges are needed.
- Expansion panel SCSI controller ID selection enable/disable/selection fixed. (For example A4091)
- Configuration file list's expanded tree nodes are stored in registry/ini and are loaded and expanded automatically in following sessions.
- Autoscale coordinate fixes (still might work strangely in some situations). Auto integer scale still has issues.

Performance testing: first check that running program is using optimized code paths enough (xxx% in log is at least 30% or higher = not too much Denise related copper activity or sprites), then check CPU usage or max warp mode FPS using different optimization settings.

Beta 11:

Some more fast (includes any non-memory cycle-exact mode) optimizations and most remaining missing features added. All normal screenmodes are now supported in fast modes, only remaining always-"slow" is lines with copper activity and sprites. Both probably will be supported in the future but they are not that important. Copper activity only if it does not cause any immediately visible effect on screen (for example color change inside hblank). Previous betas CPU feature restrictions removed.

- BPLCON2 KILLEHB bit disabled EHB without BPLCON0 ECSENA bit.
- Fast mode drawing now uses mode/doubling/resolution specific optimized generated code (genlinetoscr)
- HAM6, HAM8, DPF and EHB fast modes fully implemented.
- Border color lines are also now fast mode drawn if line is still border and only color changed.
- OCS/ECS invalid PLFxPRI value (>=5) chipset feature supported in fast modes.
- Sprites were not always correctly visible in fast modes.
- Fixed shifted display in fast modes if HDIW opened before bitplanes started.
- Some more fast mode optimization and fixes.
- CPU requirement is back to SSE2. Normal non-ce chipset modes should be now fast enough (as fast or faster than old version?) with older CPUs now.

Background information: "slow" mode is always used to draw line when line's parameters have changed. When line has been drawn, parameters calculated by slow mode are stored. If line and its parameters have not changed since it was drawn using slow mode: do nothing. If line has changed (or colors changed) or horizontal scrolling has changed but parameters are same: draw it using fast mode using slow mode calculated parameters. This makes fast mode worth the trouble because it does not need do any complex calculations or handle weird special cases and it is very common to have parameter changes only in few lines. (Many demos are obvious exception but they usually need cycle-accurate CPU anyway). ("parameters" = custom registers used to configure display)

Beta 10:

This update includes most planned non-ce mode optimizations. As long as display mode is mostly normal, performance should be quite good even when all lines change every frame. Optimizations still need optimizations (most code is not optimized because it makes testing and fixing much easier. Too early optimization is rarely a good idea.). Part of these optimizations can be also used in CE modes but I am not yet sure if it is worth the trouble because cycle based chipset emulation can't be bypassed like it can be in non-ce modes, total performance improvement may be quite small.

- Added another optimized bitplane mode: if line's parameters (DDF/DIW/BPLCON,FMODE etc. Except BPLCON1) have not changed but content or colors have since previous field: draw the line directly from chip ram (bypassing DMA emulation) using quick line-based mode because it is guaranteed that it is safe to do for this line. Currently only supports normal bitplane modes (no HAM or DPF etc but these will be implemented later). Currently uses very naive planar to chunky conversion code. (Some SSE based would be nice). This should improve performance when most of native mode display changes continuously. Now all non-cycle exact configurations should be as fast or faster than old versions. WARNING: Programs that have "unaligned" DDFSTRT are not yet correct and will have lines with horizontal offset mixed with lines with correct horizontal offset. Subpixel scrolling is not fully supported yet.
- Reset stored line state (redraw whole screen) when any config change is detected.
- Optimized hardwired (PAL/NTSC) horizontal match cycle logic. Enable programmed mode horizontal match logic only if at least one horizontal programmed mode register is updated, don't unnecessarily enable it if only vertical register is updated. This should speed up cycle-exact modes.
- Immediate blitter in fastest possible modes was not as fast as previously. It is still not as fast as it was previously because this change can reduce pure CPU emulation speed, need tweaking later. This was unrelated to display emulation rewrite. For example AIBB EllipseTest.
- If Picasso96 SetSwitch() is called requesting switching to native mode but mode is already native mode: do nothing and don't create useless log message. (Happens when dragging native mode screens with Picasso96 loaded which caused unnecessary config changes and stored line state resets)

Beta 9:

- Fixed b8 optimization glitch fixes, first bitplane line had horizontal offset in some situations (for example Pinball Dreams), Denise horizontal counter was not reset to correct "past" position and in some situations top part of screen was filled with black.
- If config file only has uaehfx config entries (No much older filesystem2 or hardfile2 entries before first uaehfx line), uaehfx entries are now fully loaded. uaehfx was added long time ago as a replacement for fs2/hf2 but they were only used to load extended information for previously loaded hardfile2 entry if it was real harddrive. When saving config loaded without filesystem2/hardfile2, only newer uaehfx entries are now written to config file.
- b8 when exiting debugger, restore focus back to previously active window now also works when log window is not initially open.
- Genlock misdetection (and hang) was still possible in some configs randomly.
- NTSC + optimized mode long/short line toggle caused glitches. This is not easy to work around so now NTSC does not do Denise side long/short line emulation unless at least memory cycle exact is enabled. (Which only means extremely weird programs that abuse STRLONG strobe can only work in cycle exact modes). There is still edge NTSC glitches visible, will be fixed later.

Beta 8:

- More optimizations, now also uses line based emulation if scanline has bitplanes but it has not changed since last frame and line has no copper activity and no sprites. This restores performance compared to previous WinUAE versions when mostly static native display is visible (like WB or SysInfo screen :)) in non-cycle exact modes (including basic A500/A1200 + approximate CPU without CE). The less changing lines/copper activity the faster it becomes, almost static native screens are most likely faster than in old versions. Not perfect yet, some glitches can happen. Also more optimizations to do. This is more or less best of both worlds solution: chipset timing is accurate in all CPU modes (excluding blitter) but scanlines that have nothing interesting happening are emulated line based for best performance. Changed/non-changed line ratio logging is still active. Chipset panel subpixel emulation checkbox still disables this optimization.
- When exiting debugger, restore focus back to previously active window.
- b7 CD32 CD caching optimization didn't work correctly if identical sector range was requested back to back. Fixed. Affected at least FMV cartridge + VideoCD configuration.

Current chipset emulation overhead estimates:

RTG mode (no native mode visible): always linebased, very small chipset emulation overhead. (Same or faster than old versions)
Native, vblank or border only: only lines that have copper activity are not line based, small chipset emulation overhead. (Usually faster than old versions)
Native, bitplanes visible: line based mode when line has not changed and no sprites and no copper activity. Small chipset emulation overhead, the less lowers, the less overhead. Changed line or sprites or copper activity: high chipset emulation overhead. (Slower than old versions but can be also faster in some situations)

Memory cycle-exact enabled: always cycle-by-cycle chipset mode, high chipset emulation overhead.

TODO:

Detect lines that have "simple" copper activity where copper is only used to modify colors inside hblank (very common case) and emulate these in line based mode.
Emulate normal DMA mode sprites in line based mode.

Beta 7:

- Next part of optimizations partially implemented: use line based emulation and don't redraw the line if current line is vblank or background color and field has same type and color as last field and CPU is not memory cycle-exact and line has no copper activity. The more border visible, the faster emulation, currently mostly useful when booting to RTG mode, blank native mode during booting is emulated much faster now. (If line has bitplane and previous field's line had also same bitmap: skip line will be implemented later). Temporary debug logging: every second percentage of "skipped" lines is logged. Interlaced modes are not yet fully supported. Glitches possible, report any glitches (Chipset panel subpixel checkbox is temporarily reused as a DISABLE option for this optimization to confirm problem reason)
- 32-bit version AVX2 -> AVX requirement change.

- Only switch to no chipset RTG mode if memory cycle-exact is not selected.
- If BPLCON0 ERSY is set, emulate counters stopping accurately only if CPU mode is at least memory cycle-exact to prevent random genlock misdetections and resulting hangs at boot. (Fastest possible mode already did this but not approximate CPU speed without memory cycle-exact)
- Statefile OCS/ECS color register restore fixed.
- Fixed lightpen cursor in genlock modes.
- Fixed LDP-1450 OSD generated "YOU'RE HIT!!" message horizontal positioning (Platoon / Nova laserdisc arcade game).
- Some more 86box merges.
- PCI Matrox Millennium, Millennium II, Mystique and Mystique 220 emulation from 86box (originally from PCem). All 4 supported because all of them have differences that makes them partially incompatible with each other. Interrupts supported, blitter is fully working. Usual missing big-endian byteswapping bits implemented (Unexpectedly vsync interrupt was already implemented), blitter plane masking implemented, blitter TRANSC bit support was incomplete, support WORD writes to LONG-only blitter registers, Mystique built-in RAMDAC HW cursor color component order fixed. Blitter/3D FIFO was emulated in background thread in original code, this is disabled for next few betas because it makes debugging much easier.
- Do not reject uaegfx Picasso96 blit operation (=Picasso96 does the blit operation in software) if RenderInfo BytesPerRow field is zero. Zero BPR is allowed.
- Added Action Replay 3 3.17 full dump checksums to ROM scanner. Old dumps are still accepted where first 4 bytes of ROM are zeroed. (First 4 bytes are IO ports, ROM data is impossible to read with only software)
- CD32 CD reads should be more real optical drive friendly, when CD32 is reading data continuously (playing CD streaming animation or video), host side CD sector reads are now always in increasing order without repeating same sectors.

Beta 6:

- Almost all chipset emulation code is skipped when RTG mode is active and chipset screen is not visible (not connected to any other virtual monitor). This should restore RTG mode performance back to pre-v6 WinUAE versions. Pre-v6 versions also used similar optimization.
- "Remove interlace artifacts" now uses virtual lines internally, works even when VPOSW is modified mid screen. Last line flicker fixed.
- Limit initial Windows to Amiga clipboard copy to max 30k (initial = when Amiga is booted and Windows clipboard is not empty) if clipboard sharing is enabled. This prevent slow startup if clipboard sharing is enabled and configuration is not fast and Windows clipboard has some random large image.
- Fixed A2024 15Hz mode vertical line.

Beta 5:

- Autoscale filter fixed again.
- BPLCON4 was cleared when on the fly switching from OCS/ECS to AGA, causing wrong sprite colors.
- Wait for blitter option works again.
- "Remove interlace artifacts" option works again (with last line flicker, this will be fixed later). It now uses different logic which might work better when interlace mode is "non-standard".
- Prometheus FireStorm PCI IO space size is 2M, only lowest 1M was mapped and it also was not correctly mapped.
- Do not log Prometheus FireStorm status long reads as config space accesses.
- Merged some minor Voodoo emulation updates from 86box.
- Added previously missing hardware feature: PAL/NTSC long line count always causes end of field, even if current LOF=0. (Only important when doing VPOSW tricks badly) NTSC long line horizontal is also always matched, even if LOL=0.
- Added address and length to sample ripper file names.
- Query PC drive/network drive/removable drive status only after confirming drive type first. (For example if "Add PC drives at startup" or "CDFS automount" is only ticked, don't query status of possible network drives that might respond slowly)

Beta 4:

- Copper DMA is off and vblank strobe: copper loaded new pointer immediately, not when it get first DMA slot.
- ERSY=1 without genlock now really stops horizontal/vertical counters instead of faking it. Old hack removed.
- Reading AGA color register contents (RDRAM=1) read old value from previous scanline due to RGA bus buffering.
- Some ECS Denise modes had garbage visible in left and/or right side and display ended 1 lores pixel too early.
- Advanced chipset default (non-editable) Agnus revision field didn't always include ECS bit flag. Visual bug only. (Very old bug).
- TV Overscan modes work now, including genlock modes.
- Programmed mode screen width and horizontal position updates.

Beta 3:

- Added longer delay before BPLCON0 ERSY=1 bit without genlock stops horizontal/vertical counters.
- Two more copper/blitter conflict fixes. (Copper stopped due to dangerous register didn't count as copper not having requests active, COPJMP sequence followed by "skipped" MOVE's last cycle didn't "skip" the write)
- Another statefile overflow fix.
- Faster CPU modes now have separate longer RGA pipeline that allows fast CPU to do multiple Denise/Lisa register writes in single CCK without causing overflows and lost register writes.
- "SWIV scorebord" effect (BPLCON2>=5 and 5 or 6 planes) didn't work in 6-plane mode.
- TV Overscan options re-implemented.

Beta 2:

- Fixed 32-bit wide AGA sprite horizontally doubled image.
- Fixed automatic scaling in AGA modes.
- Fixed "HAM" mode with 4 or less planes. HAM previous pixel color variable was not reset correctly.
- NTSC right edge artifact was incorrectly visible in left edge in normal overscan mode. Now it is only visible in Overscan+ and higher modes.
- Doublescan modes that VGA autoswitched to superhires had random looking horizontal offset.
- BLTCON1 write didn't update internal DESC bit, causing possible following BLTBDAT write to use previous blit's direction value when doing initial shift.
- Fixed blitter statefile buffer overflow when saving.
- Fixed strange window movement when clicking on title bar and keeping it pressed and "Automatically capture mouse when window is activated" was enabled.
- Internal display buffer height was few pixels too tall, if window height was exactly same as visible display, bottom of window had black line and topmost line was missing.

Beta 1:

IMPORTANT NOTE

This version is currently optimized for accuracy and compatibility, not for fast CPU modes. Fast CPU modes do work but they aren't nearly as fast they were before. Current version is not meant for WB only use.

- All native chipset mode lines are always fully drawn. Optimization that skips unmodifed lines will be added later. (Maybe. These kinds of optimizations require lots of dynamic data variables which might not help much and also can make it much worse). Current plan is to draw lines without side-effects (no copper active etc) using line based "direct from chipram" mode which should be good enough for fast native mode WB usage. In other words: this version is slower, especially in fast CPU modes, at least for now.
- Remove interlace artifacts is not working. Make sure it is disabled.
- Host CPU requirement bumped to AVX2 (~2015+ CPUs). This is just arbitrary decision to cut off "too old" CPUs for now until things get better. Speed is not that relevant at this point. Non-AVX version might be also available when/if automated builds are added later.
- Subpixel checkbox in Chipset panel does nothing. It is now always internally emulated.
- Final version release estimate: summer 2025 or maybe even later.

UPDATES

Chipset (common):

- All custom chipset emulation hacks removed most of old custom emulation code removed and replaced with completely new code which is much simpler and easier to understand, works more closely like real HW. Some signals are emulated in almost logic gate level. Based on Alice schematics.
- Internal RGA pipeline is fully emulated.
- Agnus and Denise emulation separated, data transfer via emulated external RGA bus. Strobe registers used for chip syncronization like on real HW. No more shortcuts.
- Hardwired DMA slot selection (refresh, disk, audio, sprites) shift register chain is accurately emulated.
- DMA conflicts accurately emulated, without hacks.

Display/bitplanes/sprites/copper:

- Horizontal and vertical blanking and sync start/end, csync, csync equalization pulses, etc are now fully cycle-accurately emulated, both hardwired and programmed. Mixing of hardwired and programmed is fully supported too. Sync generator part is almost logic gate level emulated.
- VPOSW/VHPOSW on the fly modifications fully supported, all old limits are gone. (Ross special screen modes! For example screenmode where all displayable lines are same Agnus vertical line repeated as many time as there is visible lines or mode where hardwired blanking is disabled, allowed much wider display than normally which is still PAL compatible. Yes, similar to C64, Amiga's hardwired "borders" can be also opened with cycle-accurate CPU timing))
- "virtual" and real Agnus/Alice vertical and horizontal counters are now fully separate, display emulation now works correctly even if Agnus vertical or horizontal is moved backwards or forwards or anywhere (even outside of normal display range), unlimited times per line and/or field.
- All screenmodes (including "Fake" NTSC or similar mode) now count total number of "virtual" lines and uses it to setup display height. These modes now work even if they do multiple VPOSW modifications.
- Interlace is now detected if last 4 fields are LONG/SHORT/LONG/SHORT or SHORT/LONG/SHORT/LONG. Must check last 4 to prevent random or KS boot short to long field change detected as interlace mode.
- LOF or LACE hardware bits are not used for interlace short/long field detection anymore. Now VSYNC start position (relative to HSYNC/HCENTER) is used to detect LONG or SHORT frame type (like real displays). It is possible to create valid interlace mode with tricky VPOSW writes (or less tricky if ECS and using programed mode registers) without ever modifying LOF bit.
- Full AGA hires/shres bitplane and sprite horizontal granularity support. Separate subpixel mode does not exist anymore.
- ECS Agnus/AGA UHRES bitplane and sprite RGA DMA slots (0x78, 0x7a) emulated. (Useless feature but because they can steal cycles from copper, blitter and CPU, this needs to be emulated)
- COPJMP1/2 loaded new address 1 CCK too late. (Only makes difference if something does COPJMPx and then immediately writes to COPxLCx)
- CPU odd cycle COPJMP + blitter active conflict didn't work correctly if COPJMP was immediately followed by previously requested copper move.
- Added A1000 models (EHB Denise and non-EHB Denise) to Chipset panel. Also renamed existing entries.
- BPL1DAT write enables bitplanes 1 lores pixel earlier than BPLxDAT copy (OCS/ECS). AGA does it 1 hires pixel earlier.
- Mid screen BPLCON0 lores->hires change updates BPLCON1 Denise horizontal counter matching after extra 0.5CCK delay (ECS Denise) or 1CCK delay (OCS Denise). Hires to lores change does not have extra delay. AGA does not have any extra delays. This is not emulated fully. Internal interleaved shifter side-effects are not emulated. (Seems to be almost impossible to implement without Denise schematics, glitches that can happen are really strange)

NTSC/STRLONG: (This feature was a pain to emulate, normally invisible and does not really need to be emulated, even in NTSC, but you can write to STRLONG while in PAL mode and get horizontal 1 lores pixel shift and some glitches in right edge of screen, so it had to be emulated too)

- NTSC LOL (long line) state is accurately emulated. Mismatched STRLONG strobe and LOL state now causes correct lores pixel wide horizontal shift. (Mismatched = for example manually writing to STRLONG when line is not long)
- NTSC A1000 and OCS Agnus versions have undocumented feature: any access to VPOSW resets (hidden internal) LOL bit. ECS/AGA has same feature but LOL bit is not internal-only anymore.
- STRLONG behavior changed slightly between all chip versions (A1000/OCS/ECS/AGA). A1000/OCS Denise does it when hblank starts, causing visible sawtooth pattern at hblank start (A1000 and OCS has 1 lores pixel difference in sawtooth pattern), ECS Denise does it 2 lores pixel earlier, causing alternating doubled lores pixel/missing lores pixel pattern just before hblank. AGA: is similar to ECS but has 1 shres pixel offset. (AGA and its annoying shres pixel offsets here and there. Argh!)

Blitter:

- Blitter channel sequencer should be now 100% accurate (except possible line to non-line switch mid operation). Blitter "micro-operation" timings are not yet 100% = when exactly to apply A shift, when B shift, when A/B/C should handled internally etc. This will be tested and implemented in the future. (Only affects blitter result if BLTxDAT/shifts/etc are modified mid-blit. Channel enable/fill mode/desc/minterm changes should be already fully accurate)
- Blitter block mode D channel scheduler logic now matches real behavior (D gets "armed" 2 CCKs after shifter bit goes out and then any following free blitter cycle is used for D, there is no single and simple "D SELECTED" state). "Final D" write scheduling is now also accurately emulated. Previously unknown condition is also emulated: with 2 or more bits in scheduler shifter, there can be extra second "Final D" write after blit has already ended.
- When blitter has more than 1 bit rotating in scheduler shift register (BLTCON0 channel enable bits got modified while blitter was running) and multiple channels are selected at the same time, resulting channel is AND of RGA address (ABC only, D is only allowed if all other channels are not active at the same time and also bit must not be in A position even if A is disabled). Previously selection was based on channel order which was wrong, and line mode didn't have any handling for multiple selects at the same time.
- If BLTxMOD write or BLTCON1 DESC is toggled and it is immediately followed by same channel DMA transfer, transfer uses old modulo value. (Like Bitplanes do but blitter was not previously updated to handle it). BLTxPT write 1 CCK before same channel DMA transfer (write gets ignored) special case was also unreliable.
- BLTZERO is set when blitter gets next free cycle after BLTSIZE write. Timing is same as A1000 BLTBUSY bit set.

CIA:

- If CIA serial port data direction is changed (CRA OUTMODE toggled), serial port state is reset, possible pending transmit or receive is immediately aborted.

Misc:

- Host CPU requirement bumped to AVX2 (~2015+ CPUs). This might get lowered in the future but AVX2 has very useful looking instructions for future optimizations.
- On the fly chipset type switching improved (For example AGA colors are now preserved, not all registers were preserved fully previously)
- Even to odd bitplane collisions are now very simple and cheap to emulate. Collision mode default is now Full collision.
- Ultra extreme debug mode now shows bitplane and sprite pixels fully inside horizontal and vertical blanking. Previously only background color was fully visible.
- DMA debugger can be now viewed with Agnus lines or virtual lines ("v <x>" = agnus line line previously, "vv <x>" = virtual line). First virtual line is vsync start line.
- DMA debugger now shows state of Denise horizontal counter (1 CCK = 2 Denise clocks, one Denise clock equals one lores pixel)
- DMA debugger now shows current state of display related signals (syncs, blanks etc, see below)
- DMA debugger blitter and bitlane modulo add cycles are marked with 'M'
- Ignore all debugger breakpoints during quit/restart sequence.
- If CPU reads byte from custom chipset space, full 16-bit word is shown in DMA debugger.
- Debugger CIA dump now also includes PRA and PRB contents that include disk/serial/firebutton/etc state. (values inside []'s)
- Visual DMA debugger always uses virtual lines.
- Skip D3D frame rendering completely when in warp mode if frame gets skipped.
- Added line count and type to bottom border status line (for example 313p or 625i), fully supports all weird modes.
- 16-bit color option removed.
- Serial port TCP/IP mode uses now TCP_NODELAY flag to reduce latency.
- Fixed TekMagic onboard RAM config type.
- One second reboot delay didn't activate when reset was done after emulation was started (possibly worked some versions ago)
- If selected WASAPI sound channel mode is not supported, try all possible channel modes until supported is found, or until all combinations have been tested. Also if channel count needs changing from stereo to higher channel count (for example sound device only supports 6 or 8 CH modes internally), use 6/8 channel cloned stereo variant because user might only have stereo speakers.
- Removing last sound device on the fly (for example USB sound card without enabled on-board sound device) crashed in WASAPI mode.
- Config file only statefile_path=<path> can be used to have per-config file statefile paths. Overrides (but does not overwrite) Paths-panel entry.
- Added Amiga GPT partition type (GUID={3F82EEBC-87C9-4097-8165-89D6540557C0}) support. Works the same as 0x76 partition type with MBR partitioned drives.
- Debugger assembler didn't accept all MOVEM variants.
- Added RIPPLE IDE controller emulation by Matt Harlum

Keyboard low level emulation:

- Optional hardware level keyboard emulation! (*). Odyssey / Alcatraz CAPS LOCK flashing is finally supported :)
- Three variants emulated (all known?), CSG 6570-036 (used in almost all models except early A1000 keyboards and A1200), 68HC05C (used only in A1200) and D8039HLC which was used in some A2000 keyboards. All three are different 8-bit microcontrollers with small amount of ROM and RAM plus some IO ports, single timer and some other IO features.
- 6570-036 is 6502 based, uses https://github.com/gianlucag/mos6502 CPU emulator. 2048 byte ROM. Early A1000 keyboard has same MCU but older code which does not prevent key ghosting and it seems to be not dumped yet.
- 68HC05C is 6800 based, uses https://github.com/philpem/m68emu CPU emulator. ROM is about 8000 bytes. (Part of RAM is shadowed by IO/ROM)
- D8039HLC is 8048 based, uses 8048 emulator included with Altirra (8-bit Atari and expansions) emulator. External 2048 byte (EP)ROM.
- Keyboard behavior is now fully accurate, host keys are converted to simulated keyboard matrix, emulated MCU code reads the matrix and sends code serially to CIA serial port.
- Keyboard now works like real keyboard, reset warning, possible lack of n-key rollover and other side-effects if programs do bad things with key handshake work accurately. Obviously your host PC keyboard should have full n-key rollover capability to get accurate emulated keyboard only key ghosting/jamming results.
- One special effect is caps lock flashing, for example Odyssey / Alcatraz flashes it near the beginning of demo. It floods the poor MCU with huge amount of handshake pulses, each pulse causes interrupt request, result is that CPU has no time to do anything else than handle useless interrupts. After about 40ms external watchdog timer resets the CPU and reset code flashes the capslock led. Caps lock flashing trick does not work on D8039HLC because it does not have watchdog timer. Note that A1200 68HC05C resets whole Amiga when keyboard MCU resets..
- If Advanced chipset panel Keyboard reset warning is ticked, KB MCU handles the reset sequence and reset is detected by checking if MCU keeps KCLK line low >500ms (like big box Amigas with 6570-036 and D8039HLC) or if TCMP pin is pulled down (A1200, 68HC05C). If it is not ticked, reset is generated immediately when reset keys are pressed (like A500 and A600 keyboards do).
- Added caps lock OSD led (reddish/yellowish color). Note: caps lock is not synced with host caps lock state when in hardware keyboard emulation mode.
- Statefile support implemented. (ROM is not saved with statefile)
- if full emulation is enabled, statefile is loaded and statefile does not contain keyboard MCU state, MCU code is executed first in tight loop until keyboard is in idle state (init and init key codes sent) to not cause possible confusion. Statefile loaded program probably does not want extra key codes.
- Added "Keyboard" to built-in expansions. It has two purposes (so far), allow selection of custom rom image and option to emulate keyboard faults (RAM/ROM/Watchdog) that keyboard MCU detects and flashes the capslock led.
- Chipset panel "Keyboard connected" checkbox replaced with Keyboard mode ("Disconnected", "UAE keyboard" and list of different low level emulated keyboard models)

*) There is story behind this. ross accidentally messed up keyboard handshake in one of his ross(tm) tests and it caused real A500 keyboard to partially stop responding. I didn't really care about it at this point but few months later it was tested again and weird keyboard behavior was narrowed down to simply "too long" handshake pulse. MCU ROM dump was disassembled and examined. My decision was to emulate it fully because this behavior, key code transfer timing (and caps lock flashing hack) is practically impossible to emulate accurately in high level. Found very easy to use 6502 emulator and it took about 2 days to implement. (Other MCUs were implemened few weeks later)

MISC NOTES:

DMA debugger new Denise/Lisa and Agnus/Alice rows:

Denise/Lisa: WHVUB (W=Horizontal DIW, H = Horizontal blanking, V = Vertical blanking, U = Burst, B = BPL1DAT HDIW). NOTE: These are only filled when scanline is fully emulated. Partial scanlines only have question marks.
Agnus/Alice: WBEE HVCHVCB (W=Vertical DIW, B = Internal BPRUN [becomes D if DDFSTOP passed condition], E = Internal VE, E = Internal P_VE (ECS/AGA only), HVC = Hardwired HSYNC/VSYNC/CSYNC followed by programmed HS/VS/CS, B = Programmed HBLANK)

A1000 PAL Agnus is pseudo-PAL: line count and VB endline have been modified to PAL values (262/263 -> 312/313, 20->25), LOL toggle has been disabled but all other timings use NTSC values. This affects CSYNC output (wrong odd/even vsync state change positions, wrong equalization/serration pulses) but most 1980s "modern" PAL TVs handled it fine. This is now emulated in Ultra extreme debug (C).

Only A1000 to OCS Agnus modifications seem to be:
- Blitter busy bit fix. (BLTSIZE write sets BUSY immediately, originally BUSY was set when blitter got first free DMA slot)
- Hardwired vertical vblank start moved from line 0 to last line. This is what moved VERTB interrupt from line 1 to line 0 but because fix was simple internal VB trigger line change (A1000 Agnus already had internal signals for both conditions), it also caused new side-effect: line 0 strobe become STRVBL (was STRHOR in A1000. ECS Agnus fixed it and it become STREQU) but because OCS Denise ignores STRVBL (Yes, illogical, isn't it? STREQU enables VB, STRHOR disables VB. Both STREQU and STRVBL enables VB if ECS Denise or AGA), line 0 is still last visible line if combined with A1000 or OCS Agnus. Last line is last visible line if ECS Agnus/AGA.

TESTING EXAMPLES:

- Old statefiles. Almost all of them should still work (some rare blitter special cases can't be handled anymore)
- All usual badly coded demos (blitter modifications mid blit etc) should all work.
- Sprite to sprite/sprite to bitplane/bitplane to bitplane collisions should all (still) work.

NOTE: Always restart whole emulation between tests. Sometimes not all state gets fully reset when changing configuration. This will be fixed later.

Big thanks to:

Ross: special cycle-accurate CPU STOP synced tests.
Individual Computers: Keyboard MCU 68HC05c and D8039HLC ROM dumps (and hopefully 6800-1 dump will appear soonish) and donating 8370 and 8361 NTSC Agnus versions.


5.3.1

This is quick 5.3.1 beta series, normal update to 5.3.0. You might have heard that I have started rewriting (almost) whole custom chipset emulation few months ago. This isn't it. Still work to do, it isn't that useful in fast CPU modes yet.

Beta 3:

- Interlaced screenshots still had toggling height in some situations.
- On the fly Direct3D 9 mode OSD led font size change didn't recalculate new font size correctly until display mode was changed at least once.

Beta 2:

- TekMagic RAM configuration fixed.
- Added QuikPak XP v2.2 ROM and original QuikPak ROM (which only contains 68060 FPU disable code, no SCSI)
- SCSI CD audio PLAY AUDIO TRACK/INDEX returned error if end track was higher than last track. SCSI spec allows it and it should not cause error.
- Fixed integer scaling + aspect ratio correction: aspect ratio caused strange side-effects depending on window size.
- When CTRL+F12 is pressed and current mode is windowed, mode gets switched to last used mode (fullwindow or fullscreen). Last used native and RTG fullwindow/fullscreen state is stored separately. Last used fullscreen mode (fullwindow or fullscreen) is now stored in registry/ini. Fullscreen is default if last used mode does not (yet) exist.
- Taking screenshot from interlace mode now always return same height image, current frame type does not anymore affect it.

Beta 1:

- Added support for Picmatic Marbelle Vice and Tierras Salvajes 100Hz TV laser disc arcade games. 100Hz TV versions use external hardware to read lightgun positions. All older games use Amiga built-in lightgun support hardware (+external switch to select between player 1 and 2 guns)

- Fixed GamePorts panel "Swap ports".
- Some screen resolution/font combinations caused crash when on screen keyboard was opened.
- Fixed music glitch in James Pond 2 (non-AGA). Probably affected other interrupt based music players too. (5300b5)
- Prometheus Firestorm PCI bridge interrupt state bit was inverted.
- Implemented Mediator 1200TX second PCI window in 8M mode. (First 4M is first window, second 4M is second window), second window is normally mapped after first bank, emulating pre-1200TX hardware which only have one 8M window.
- S3 Virge PCI missed one byteswapping mode.
- If config with Golem SCSI II HD controller was loaded, it changed to HD3000. SCSI II had same internal name prefix as Golem HD3000.
- Fixed SPRxPOS modification in last possible moment being missed causing sprite to be disabled. (Reshoot R background flickering)
- Copper COPJMP1 and COPJMP2 strobed with DMA disabled is accurately emulated. Old and wrong "Copper stops when this happens" was not fully removed when correct behavior was added (Copper does not stop but jumps to address COP1LC OR COP2LC. Which usually as a side-effect stops it quite quickly because MOVE to "dangereous" register is very likely). Copper only stops when writing to (or "skipping") write to "dangerous" register.
- Allow 16-bit color depth only in Direct3D 9 mode. GDI and D3D11 force 32-bit depth.
- Serial transmit (in non-direct mode) now in average matches SERPER bit rate. Previously it was always slightly faster. Receive rate (in non-direct) is now throttled to max SERPER/4 rate instead of receiving new byte byte immediately after previous receive interrupt was cleared. Rate needs to be less than SERPER because it is meant for be very compatible with external serial connection without random buffer overflows.
- In fastest CPU mode, when there is free time at the end of scanline, skip event handling for few wait loops to improve performance.
- Fixed possible crash when AmigaOS 4 resets and switches to PPC mode if directory filesystem emulation was in use.
- Added GVP T-Rex II accelerator board ROM. It is very similar to TekMagic.
- Added "v1.0" DKB Wildfire ROM image (previously known was renamed as v1.1, it is larger and has new disabled Display options menu item but unfortunately all internal versions numbers are identical to v1.0)
- Implemented OpalVision undocumented automatic VRAM bank switch when VRAM address wraps around and fixed ignored VRAM address load command if it was located in second control line. Both features are used in King of Karate to have wider than screen scrolling background. Previously background was not scrolling.


5.3.0

Beta 10:

- Fast CPU and serial port loop back mode: transmit never finished, nothing was received.
- Undocumented serial port feature emulated: CPU/Copper INTREQ write that sets RBF bit will also set SERDATR OVRUN bit.
- ATAPI CD MODE SELECT command fixed. (Used to control analog CD audio volume) 

Beta 9:

- AGA mode color register with set genlock bit was misdetected as blanking being enabled. (b1 made it visible but real bug was introduced long time ago)

Beta 8:

- Line 0 is also visible at the bottom of screen in OCS Agnus + OCS Denise combination, works like A1000 but without 1 line delayed vblank interrupt. ("Extra" lines are only visible if Overscan+ or higher mode)
- DMA debugger line 0 strobe type is now correct in OCS Agnus and A1000 configurations. (STRHOR if A1000, STRVBL if OCS Agnus, STREQU if ECS Agnus/AGA)
- Implemented Permedia 2 (CVPPC//BVPPC) LineCount register. Fixes OS4 boot screen hang. NOTE: Read Classic_FAQ on OS41FE CD root directory before attempting to use CVPPC/BVPPC with OS4.
- Flush log file before adding log to crash dump file.
- b5 audio fix (in some situations audio DMA slot was allocated in wrong position causing DMA debugger reported conflict)
- -theme command line parameter now also support "default" value: ignore GUI setting and follow Windows setting.

Beta 7:

- b6 NTSC fix corruption fixed. Fix was incomplete.

Beta 6:

- Los Justicieros (Zorton Brothers) laserdisc arcade game left holster hooked up correctly. (Was stuck active previously)
- If programmed mode was enabled first and if programmed horizontal blanking got enabled slightly later, it didn't force display position recalculation. This is needed because programmed mode horizontal position also depend on horizontal blanking configuration. Real monitors also use both syncs and blanks to detect display position. (I noticed this in CyberVision PPC config where CVPPC gets activated at boot, then when END+F9 is used to switch back to native mode, display was horizontally shifted and clipped)
- In NTSC mode if bitplane DMA last fetch "overflowed" to cycle 0 (which is harmless and normal in overscanned modes) when line was short, it was incorrectly kept allocated for bitplane DMA also during long lines. Long line has 1 more cycle = no overflow. (NewTek demo reel 3 dynamic hires image corruption in NTSC mode, CPU didn't have enough time to update all colors quickly enough. Note: corruption at the bottom in PAL mode is demo bug. NTSC mode also has 2 slightly corrupted lines at the bottom, this is also normal.)
- Magic mouse mode without enabled mouse driver was broken in b1. Moving mouse outside of emulation window and back caused it to stop moving.

Beta 5:

- Fixed pre-KS 1.2 HDF/directory filesystem boot. Two bugs: crash due to config handling changes (3.6) and KS 1.0/1.1 seems to have a bug where level 2 CIA keyboard interrupt handler returns "I handled this interrupt" status even if it was caused by external device, skipping all following handers, including UAE filesystem interrupt handler, causing a hang. UAE FS interrupt level was changed to -1 if KS 1.3 or lower (4.9) because there was some buggy (KS1.x compatible only) program that poked interrupt list and broke if CIA handler wasn't first in list. Now UAE FS handler priority is lower than CIA handler only if KS 1.2 or 1.3.
- Multi-monitor active state was not fully reset when system was hard reset. (Secondary window was open -> hard reset -> window didn't open anymore again)
- If x86 bridgeboard SVGA and also other hardware emulated RTG board was active and END+F9 was used to switch monitors: both monitors' output was drawn in same window, causing corrupted graphics and possibly also crash if monitor sizes were too different.
- Adjusted 520b5 audio period hack, do not change period immediately after first loop but only after it has looped multiple times. Does not anymore mess up weird audio test programs.
- Permedia 2 Video Control register video enabled/disabled (disabled = blanked) and Line doubling bits emulated.
- Show error message without resetting config back to defaults when GUI Load button could not open the file.
- GD-CL54xx LFB VRAM reads fixed. (For example NetBSD console scrolling was broken)
- Fixed S3 Virge MMIO address calculation (fix from 86box update). NetBSD "No mapping" log message fix.
- A2410 NetBSD text console works again.
- Autoswitch to hardware emulated RTG board also when text mode gets enabled (*nix boot consoles etc)

Beta 4:

- ET4000W32/Merlin fixes, ProBench (Early RTG software for Merlin cards) now works without glitches. Merlin serial eeprom(?) emulation added: ProBench requires matching Merlin serial number and valid checksum. Serial number is configurable in Expansions -> Graphics boards -> Merlin. Note: amiga.resource.cx ProBench install disks have different serial numbers (1.10=937875, 2.1=23531, 2.2=10010). Note2: there is "cracked" ProBench 3.0 floating around but it is worse than useless, it has modified owner/user string but critical encrypted code is not decrypted. Decryption requires original user string and serial..
- ET4000AX/W32 lores mode not getting horizontal doubled in >8bit modes fixed. Picasso96 RGBA mode (only available in low resolutions due to chip limits) colors fixed. Interlaced modes fixed.
- OCS Denise left overscan special case emulation updated and fixed. Previously BPL1DAT write before cycle $2D was ignored but that is not correct. BPL1DAT writes work normally but only BPL1DAT writes >=$2D disable border. This is not same enable flag as DIWSTRT horizontal match. Bitplanes or sprites are not visible until both DIWSTRT and BPL1DAT border disable are active but bitplane shifters work normally. Only difference compared to previous version is that first few bitplane/sprite pixels in max overscan will not be visible (replaced by color 0) depending on DDFSTRT position if OCS Denise. ECS Denise/AGA does not have this limitation.
- DMA debugger only showed Denise horizontal counter value if also CPU interrupt level was non-zero.
- Only "insert" CV/BVPPC in to CSMK3/CSPPC internal PCI slot. Insert any other PCI card in to G-REX PCI slots. OS4 does not detect boards in first "internal" PCI slot. (b3)
- Fixed ECS Denise superhires mode hires sprite pointer strange odd/even horizontal movement.
- Check all possible Munt ROM directories, including root UAE ROM path when MT32 ROM is needed. Check also other directories if previously detected path existed but didn't contain requested ROM(s).

Beta 3:

- Merlin RTG board blitter fixed. 86box ET4000 blitter/MMU was incomplete (No linear blitter/MMU apertures, missing blit start mode check, pattern/source alignment restrictions are ET4000w32p only). Added vblank interrupt and monitor switcher support. Fixed horizontal panning in 24-bit modes. Overlay/PIP not yet implemented. It is quite useless because overlay and main bitmap depth must match.
- Added oMniBus RTG board (Zorro II to ISA adapter). ET4000AX (no blitter, no HW cursor) or ET4000W32 (blitter and HW cursor. Note: Current Picasso96 drivers have a bug that makes ET4000W32 blitter unusable, bug that apparently has always been in this driver. Fix will be in next Picasso96 release.)
- Added Graffity Z2/Z3 RTG board. Cirrus Logic GD5428 based. Has monitor switcher.
- Added Rainbow II "RTG" card. Not really proper RTG card, has only hardwired PAL and NTSC resolutions (768x576 and 768x476). 24-bit depth only. Note that emulation always refreshes whole screen every frame (not just modified parts but whole screen) which is not very optimal but it really isn't worth the trouble because I am sure now one cares about this old board.
- Some hardware emulated RTG boards had flickering colors during horizontal panning (>8 bit modes only)

- Small PCI emulation changes (For example G-REX + Permedia 2 + some other PCI card: same card appeared 8 times)
- Added Apollo 630 emulation and boot ROM 5.61. Nothing special, ROM is only used to detect the RAM: "32Bit Power-Burstmode-FastRAM", apparently cool sounding name can make RAM even faster! (oddly ROM contains at least parts of IDE and SCSI drivers from other Apollo accelerators).

- In a rare situation it was possible to get false positive "CPU Trace" error when loading statefile.
- Debugger breakpoint "f 123 <extra parameters>" didn't work, "<extra parameters>" was incorrectly detected as PC end address even when it wasn't a number.
- Programmed mode with only VARVBEN enabled (Programmed vblank but hardwired syncs) didn't check if programmed VB ended earlier than hardwired PAL/NTSC vblank, resulting in vblank ending too late, hiding part of display at the top. (ross test(tm))
- If strobe conflicts start after STREQU strobes but before first STRHOR strobes: Denise vblank state stays stuck active until next valid STRHOR strobe is seen by Denise. (SOS / Triangle + ECS Agnus). Interesting detail: If OCS Denise, STRVBL strobe DOES NOT enable vblank (fixed in ECS Denise). Only STREQU strobes enable vblank. STRHOR disables vblank.
- OCS Denise "buggy" vblank start/end (visible only in Overscan+ and higher) start/end position was 2.5 CCKs too early.
- Left and right A1000 Denise/OCS Denise/ECS Denise hardwired hblank position slight adjustments (1 hires pixel) to match new test results.
- Both "SaveImage" (automatically created ext adf when write-enabling non-writable image like ipf) file extension variants are now detected automatically when checking if file exists. Paths panel option now only affects name when new saveimage is created.

All Picasso96 supported RTG boards are now emulated. All CGX4 supported boards except Inferno. Inferno can't work, only known Wildfire boot ROM fails to configure it properly. PCI config logic seems to get confused if PCI BAR size is too large (GD5446 is 16M or 32M depending on revision). It seems Inferno support needs newer boot ROM which may not have been officially released. Apparently Inferno was also never officially released. EGS not tested, reports accepted if someone really wants to check EGS drivers.


Beta 2:

- Release raw input devices when GUI is open (except during input Test/Remap) or when debugger window is active. Allows Windows shortcut keys like Win+E work without need to unfocus the window.
- Added Misc panel option to disable default on screen keyboard gamepad button 4 mapping. 
- Added Domino RTG board emulation. (ET4000, basic SVGA chip, no HW cursor, no blitter. Has linear frame buffer support. Emulator code from 86box.)
- Added Merlin Z2 and Z3 RTG board emulation. (ET4000/W32, ET4000+ HW cursor and blitter. Emulator code from 86box.). Blitter is not yet hooked up properly. (If you try it, make sure NOBLITTER=YES)
- uae-configuration AKS_ events (on/off/toggle type only) now work again as designed. ("AKS_xxx -1"  = toggle, "AKS_xxx 0" always off, "AKS_xxx 1" always on)
- Some uae-configuration (and other similar) debugging logging messages automatically opened the console window. Now only entering debugger will open it.

- 68000 branch instruction bus error fixes (CPUtester + external bus error hardware tests was not properly done for these instructions for some reason, only following instruction non-branch prefetch bus error condition was tested few years ago). Bcc, BSR, DBcc, JMP, JSR, RTE, RTR, RTS confirmed having accurate bus error stack frame now. Hatari reported bug. Does not affect Amiga emulation.

(These all only because I got report that SuperPlus on ECS has first line blanked. So me and Ross did some weird tests again and things started to snowball. Again. Almost no normal program cares, only exception is ECS blanking fix)

- Programmed display mode state log lines (VS=xx, HS=xx etc) had illogical mix of hexadecimal and decimal values.
- Programmed vertical blanking start/end corrections. ECS Denise EXTBLANKEN=1 + BEAMCON0 BLANKEN=1 blanking starts 1 line earlier and ends 1 line earlier than AGA programmed blanking or ECS EXTBLANKEN=0 (Use hardwired horizontal, programmed vertical blanking). Agnus tells Denise blanking via CSYNC line but AGA Lisa handles it fully internally. Some ECS programmed mode screen modes had missing line at the top.
- Writing to BEAMCON0 didn't check if write would cause immediate vertical DIW close (or open) if HARDDIS/VARVBEN/VARBEAMEN changed. (No normal programs care as usual)
- Fixed corruption in some "weird" programmed modes, introduced in 5.0 betas.
- Sprite/bitplane DMA conflict when bitplane ends very early with active sprite slot in same position as last BPL1DAT: in some situations sprite DMA "won" and conflict didn't happen.
- BPLCON0 ERSY bit getting set without genlock now stops the copper after 2 lines. Previously copper worked normally and overwrote BPLCON0 with valid value if ERSY bit getting set was caused by something else, like a DMA conflict.
- Vertical frequency calculation always expected odd/even line length toggle in NTSC modes, even if BEAMCON0 LOLDIS was set.
- If programmed VBSTRT == VBSTOP: vblank interrupts are not generated.


Earlier than expected new beta with some fixes and some new PCI and RTG boards. Original plan was to start yet another custom chipset emulation rewrite but I so far I haven't found any good enough ideas that would solve all remaining known limitations without new side-effects.

Beta 1:

- CyberVision PPC/BlizzardVision PPC RTG board (Permedia 2 chip) partial emulation. G-REX needs to be enabled, C/BVPPC is basically Permedia 2 PCI card in CyberStorm MK3/PPC/Blizzard PPC internal PCI bus but I didn't want to to emulate "fake" G-REX with only single virtual slot. Yes. I wrote yet another SVGA chip emulator.
- Visiona RTG board emulation (INMOS G300 chip. And yet another video chip emulated.)
- Rainbow III RTG board emulation (INMOS G360 chip)
- EGS 110/24 RTG board emulation (INMOS G364 chip. Same as G360 functionally). Goes to GVP accelerator local slot, it is not autoconfig device. Can be configured without GVP accelerator card but at least Picasso96 driver needs to find GVP autoconfig device before detecting EGS.
- If PCI device was non-UAE built-in (It was PCem SVGA card) and PCI was configured by single write to PCI BAR (Base Address Register), without first doing PCI bar size/alignment detection, device ignored all BAR writes. Fixes pre-44.71 CSMK3/PPC/BPPC boot ROM CyberVision/BlizzardVision PPC PCI configuration (Pre-44.71 support CV/BV PPC but not G-REX PCI). This was not a problem with PCI bridgeboards because bridgeboard drivers always first autodetect each PCI device's BAR size and required alignment.
- Added Prometheus FireStorm PCI bridge emulation (Prometheus with different autoconfig ID, different PCI space mapping, few config bits and some fixes that don't affect emulation). Prmscan works and detects and configures boards, no other tests done. Please report if it works or not.
- When PCI bridge interrupts were enabled, possible already pending interrupts were not checked immediately. (Probably makes no difference)
- Delay ALG LDP seek complete status reply slightly. Fixes Platoon (Nova) few second hangs.
- Added partial Sony LDP-1450 OSD font emulation. Platoon (Nova) "YOU'RE HIT!!" messages are now visible.. (Yes, game uses LDP-1450 internal font generator to show this message. Amiga does not generate it.). If you want some other font than selected OSD font: config file genlock_font=<font name> can be used to override it.
- Lightpen/gun cursor in any edge of screen: lightpen/gun not pointing at the screen (position can't be read by the program)
- Fixed XT based Bridgeboards non-working floppy drive emulation, broke during 5.1 DraCo updates (wrong density detection)
- Statefile shortcut keys now select current config file name as base statefile name (for example, if "test1.uae" config file is loaded, SHIFT+END+0 will save statefile as "test1.uss". Quickstart mode config uses previously always used "default.uss")
- CD32 FMV video image size and positioning was weird in most scaled modes.
- OSD font/statusline size was very large in full screen modes if monitor had >100% scaling.
- Statusline font is now slightly taller (few pixels), same as height of OSD boxes. In recent versions statusline font was changed to same as OSD font, earlier versions' statusline text had different font and was also slightly taller than default OSD font.
- Allow 68020+ CPUs to fetch instruction words from custom chipset space. Only if more compatible is set. If some program really wants to do something weird like execute code located in AGA palette registers :)
- It was not possible to write and read ECS/AGA genlock transparency bit in color registers. It must have been broken long time ago... (I think some program used this to detect AGA)
- Added "Always on (Fixed only)" sound filter option. This enables A500 fixed filter but never enables "led filter". (A1200 does not have fixed filter, only "led" filter)
- Fixed serial port missed received data if received data arrived from "outside world" (master/slave serial port link or real serial port or direct checbox checked). Now waits for both SERDATR read and INTREQ bit clear before new serial word is accepted. Loopback mode was not affected. Previous serial loopback emulation updates made it too "accurate" in normal modes...
- -serlog serial port logging mode always enabled "direct" mode internally which affected serial timing. This does not happen anymore.
- Exclusive fullscreen and RTG resolution switch (RTG to RTG direct switch, not RTG->quick tempory blanked native->RTG) didn't change native resolution.
- Windows mouse capture/hide logic slightly changed, previously it always did temporary mouse unhide/hide which caused mouse cursor to very quickly appear and disappear during screen mode switches, even if mode switch didn't resize or reopen the window. (This also fixes some odd bug in recent Windows 11 insider preview builds where mouse is captured but does not always re-hide if done "too quickly")
- Replaced old Windows 2000 compatible Windows clipboard handling with newer, simpler to use method introduced in Vista.

Permedia 2 emulation status:

Emulated:

- All usual Graphics Processor mode screen modes (8/15/16/24/32 bits). Other weird modes are not supported.
- VRAM aperture byte swapping and RAMDAC red/blue swapping modes. (Used at least by Picasso96 driver)
- Hardware cursor (64*64*2).
- Blitter. Most 2D parts emulated. Even the 2D blitter is quite complex, it for example supports point, line, trapezoid and rectangle drawing primitives, bitmask (if bit is set: use color x, if bit is not set, skip destination write or use color y, other chips usually call this "color expansion"), "area stippling" (8x8 mask aligned to X and Y coordinates, can do same operations as bitmask), 16 different raster operations (ROP) and more. 3D features are even more complex.

Not emulated:

- SVGA core. Amiga programs/drivers only use Graphics Processor mode.
- 3D. 3D is Someone Else's Problem.
- Other Permedia 2 special features (front/back buffer swapping, stereo support, local buffer access etc)

Because CyberVision PPC/BlizzardVision PPC is basically PCI Permedia 2 card with different connector: it is also available as a PCI card in any supported PCI bridgeboard.
Only features that Picasso96 and CGX4 drivers need are implemented. Other drivers not tested. (Note that CGX4 driver requires v40-something 68040/060 library. Too old and it will fail silently.)

EGS 110/24, Visiona and Rainbow III:

- INMOS G300/G360 ("Colour video controller") chip. It is not VGA or SVGA chip like others but sort of "simple" programmable video generator + RAMDAC.
- G300 does not do much. Supports 8-bit 256 color palette mode and 24-bit truecolor. Linear frame buffer. Nothing else. No hardware cursor, no blitter.
- G364 is updated and modified G300 + 64*64*2 hardware cursor + 15/16 bit modes that have non-standard color component order.
- Some glitches remain. (Some might be emulation bugs or driver doing something wrong that accidentally works)

Almost all "classic" RTG boards are now emulated. Only Merlin and Domino (ET4000) and few very old ones are not yet implemented. ET4000 is in 86box, will be added next.


5.2.0

Beta 10:

- Always blank last visible PAL/NTSC line at the bottom of screen (This is actually line 0) unless overscan mode is Overscan+ or higher. It can't normally have any bitplane or sprite data but can have (very ugly looking) background color changes. This line is also almost always invisible on real world. I decided to hide this without Overscan+ because it can look ugly and it can look like there is something wrong with emulation because this line wasn't even visible until 4.9 (except if A1000 config)
- Disk swapper now allows same disk image in multiple slots.
- Disk swapper current cursor position is new disk insert position. Previously it always chose next free slot from the top.
- Insert more than 1 disk image to disk swapper list and then click remove disk image: cursor jumps back to first disk image and first disk image gets removed.

Beta 9:

- Advanced chipset CIA E-clock mode can be changed on the fly.
- Picmatic Zorton Brothers boot hang fixed. Too long delay in LDP ACK reply. For some reason all other LD games didn't care. Note that LD dump is not (yet?) available.
- Genlock scaling was broken (b7/b8) and only appeared to work if both Amiga and genlock image size was almost identical.
- Genlock video/image was not affected by TV Overscan modes.
- Quickstart "American Laser Games" renamed to "American Laser Games / Picmatic". Quickstart also now automatically enables NTSC if ALG game, disables NTSC if Picmatic game.
- Do not emulate OCS Denise "blanking bug" unless overscan mode Overscan+ or higher. "Blanking bug" lines can appear in some centering modes even in normal Overscan mode and they look too ugly. (Yes, this is correctly emulated but they are usually hidden in overscan)
- 68040 MMU faulting MOVES special case handling fix (Andreas Grabher)
- Advanced chipset panel "Custom register byte write bug" emulation fix.
- Harddrive panel Enter and Delete key shortcuts work again.

Beta 8:

- Clicking GamePorts panel remap/test crashed in some situations (remap device, change device type to something that has less events, remap device)
- In some situations GamePorts remap setup (number/type of buttons etc) didn't match selected device type (mouse, joystick, gamepad etc) and changing it did nothing.
- Better vertical positioning of NTSC mode in normal Overscan mode. Previously calculation used PAL max overscan height. Overscan+ and Overscan in NTSC mode now have almost same vertical positioning. 

- LD serial port communication timing adjusted and previously unemulated LD commands implemented (REPEAT and MARK SET). Now Picmatic Marbella Vice lightgun game works.
- ALG/Picmatic LD player always unpaused after exiting GUI, even if it was paused before entering GUI.
- ALG/Picmatic statefile support. Note that complete data is not saved, for example LD and NVRAM paths. Matching config file must be loaded first.
- Picmatic (Marbella Vice) player one/two gun selection implemented. Oddly there are two methods: parallel port first data pin selects gun but it is not used when in gun calibration service menu, only during game play. Other method is IO port at $f60000 which is used both in calibration menu and during game play. (Maybe Picmatic games had different hardware versions?). ALG uses joystick port #2 button #2 pin.
- ALG and Picmatic (Marbella Vice) input events now match. Picmatic games use different hardware and different joystick port pins than ALG, emulation now automatically remaps Picmatic events to matching ALG input events.
- Genlock overlay position relative to Amiga display does not anymore change when display panel settings are changed (lores/hires/double etc). Genlock image position was not correctly centered if genlock image size was (much) larger or (much) smaller than Amiga display size. Do not scale if video height is almost same as Amiga display height (+-8 lines). This fixes ugly horizontal artifacts when odd and even lines get "mixed" mid screen.

Beta 7:

- On the fly changing OSD font size didn't update OSD allocated vertical size until mode was changed.
- When opening fullscreen mode, OSD font was generated after texture allocation. Font was correct but OSD led boxes had wrong height.
- Start emulation, minimize window, click notification icon -> forever looping GUI open failures. (because minimized main window was detected as being minimized -> close GUI window. When GUI window was mid construction..) Very old bug.
- In some situations minimized GUI position was saved as current GUI position to registry/ini.
- Some "Fake 60Hz" modes had blank screen (Wings of Death) without Overscan+ or higher overscan mode.
- Drag&drop archive file in Quickstart mode and archive contains more than one executable, don't insert it in DF0:.
- Drag&drop archive file in Quickstart mode with not autodetected contents but it has Amiga executables: insert it as a harddrive.
- Max harddrive limit bumped to 50 (was already 50 in some places but 30 in some others) and check limit properly.
- Quick fix to prevent ALG Marbella Vice boot crash. (Really stupid interrupt code that breaks if LD player answers too quickly.. and also enables disk sync interrupt and crashes if it gets one. This is also worked around). ALG LD player command 0x55 added (Frame Mode), MV requires it. Nothing else tested yet.

Beta 6:

- DraCo NVRAM data was always written to NVRAM file, even if current config was not DraCo.
- Mad Dog McCree v1C (ALG) Holster input event supported. For some reason it is connected to joystick fire button in this version (First ALG game?). No other ALG game use fire button.
- If BLTCON0L is written to when blitter is running, don't do unnecessary blitter state checks. BLTCON0L writes are always safe.
- Executable in DF0: didn't anymore automatically enable turbo floppy mode. Broke when turbo was switched off if program does weird disk DMAs.
- RTG panel aspect ratio setting and Filter (RTG) aspect ratio was not forced to have same values and they work differently in different filter modes, probably resulting weird aspect ratios in some filter modes. Now updated value is automatically copied to other setting.
- Hardware emulated board cached size settings was not always updated, especially if mode was switched multiple times quickly. Result was display with wrong scaling or positioning.
- Sprite horizontal multiplexing (Copper SPRxCTL/POS/DATx mid-screen writes) was unreliable in non-CE modes. (5.1)

Beta 5:

- Registry/ini ROM paths and history list paths (last used ADFs, statefiles etc) are now properly converted to absolute/relative paths when new entry is added.
- Loading config with statefile config entry set: insert statefile in to statefile history list.
- Topmost line was missing in OSD status line texts ("DF0: -" etc) in some font settings.
- 5.1 b1 "Allow AUDxPER=1, game Spaceport requires it" adjusted, force period to higher value when sample loops (not immediately like pre-5.1 did). This keeps Spaceport happy without causing some other weird programs to slow down emulation very noticeably by "playing" period=1 empty sample continuously, all 4 channels. (For example during loading of Bad Dudes vs. Dragon Ninja)
- Added S3 Trio64 PCI RTG board (Uses same chip emulation as CyberVision64)
- Ateo Pixel 64 had BGR/RGB swapped colors in most color depths.
- Sound autoswitching is now off by default (default off when no config file loaded). Some sound devices have annoying audible pop when sound gets switched off or on.
- RTG modes allocated unnecessarily too large texture (size of whole viewport, not only actual RTG area). Broke in some 5.0 betas. This was harmless except it also caused uaegfx to not clip hardware mouse cursor in right and bottom edges and possibly broke some filters.
- Fixed mouse cursor jumping randomly when in tablet mode and clicking mouse button(s).

Beta 4:

- Changing OSD font when in full-window or fullscreen mode saved it incorrectly and nothing changed.
- DraCo Amiga HD disks supported. Note that DraCo hardware does not support writing to Amiga formatted floppies. It is CPU polled read only.
- DraCo PC floppy writing and formatting implemented (Required PIO support which original Bridgeboard emulation didn't need or use)
- DraCo PC keyboard right shift key code fixed. DraCo PC keyboard repeat implemented.
- UAE AHI ignored AHI volume slider setting. Also master volume was not converted to correct DS API volume range that AHI driver uses. (Paula DSound mode had different master volume than UAE AHI volume)
- Some config file paths (for example "statefile") was not saved as a path but as a string. Saving as a path automatically converts between absolute and relative paths.
- "Warp mode reset" on the fly change was not possible. (I always forgot this when adding new Misc panel option..)
- Loading filter presets that changed line doubling mode would not reset the display completely, leaving weird doubled or half-size image visible.
- Game Ports panel default config overrode button 4 with OSK enable/disable option even if it was already configured in Input panel.
- SX32Pro memory mapping fixed, bumped max memory from 64M to 128M.

Beta 3:

- Added GVP A1230 Turbo+ II (Jaws II) v5.3 ROM.
- Input panel custom event window was stuck in top/left corner (b1)
- Monochrome and genlock now uses calculated display start/end values. Previously it always used hardwired PAL or NTSC values.
- Display port adapters had blank screen in Fields+ interlace mode.
- Fixed double free and memory leak in debugger/custom event parser/calculator.
- OSD led/status bar font configuration added to GUI misc panel. Default font size slightly increased.
- DraCo accelerator settings new option: PC keyboard connected. Can be used to enable/disable PC keyboard and use DraCoTools to enable Amiga keyboard only.
- DraCo PC keyboard double press/releases fixed.
- x86 bridgeboard floppy emulation fixes, interrupt clears automatically after reading response data set by read/write/etc commands, floppy change detection requires also motor turned on. Fixes DraCo floppy driver read errors. DraCo PC formatted drive reading now works. Writing is not (yet) supported.
- DraCo now supports Amiga formatted floppies, implemented CPU polled flux change timing DraCo custom IO register.
- Retina Z2/Z3/Altais board 15-bit mode implemented. ICS RAMDAC emulation improved, fixes corrupted DraCo+CGX >8 bit modes.
- NCR 77C32BLT 64 pixel wide mouse cursor positioning (horizontal offset) fix.

Beta 2:

- "Simple mode" path string escaping in config file directory harddrive paths incorrectly escaped single quotes which added unwanted \'s to path.
- NCR SVGA 8/16/24 bit mode selection fixed, Picasso96 v2.0 Altais driver now works in DraCo configuration.
- Toccata was not mapped correctly in DraCo configuration.
- Hardware emulated RTG boards Picasso96 screen dragging horizontal shift fix (broke in b1 panning fix)
- Any TV overscan option + NTSC mode: few pixel grapohics corruption was visible in right edge of screen.
- Do not force release of pressed keys if mouse capture was requested but mouse was already captured. On the fly screen settings changes (for example via input events or uae-configuration) caused unexpected forced key releases in full-window mode. (Forced key release is needed because otherwise sudden mouse capture loss might cause stuck keys in Amiga side)
- 256 color screeenshot created wrong colors in some situations (usually when AGA and almost all colors in use). Attempts to keep custom chipset color 0 (background color) in first palette index.
- Include also current DPI when selecting between "old" smaller or "new" larger default GUI size. (Smaller desktop resolution + high DPI = too large default GUI size)

Beta 1:

- MacroSystem DraCo emulation. Quickstart entry also added. No V-Lab Motion emulation, no, don't ask.
- Retina Z3 RTG board emulation. NCR 77C32BLT SVGA chip emulation by me, including blitter that was not that trivial to implement (existing documentation was quite bad). This is implemented as a PCem display card because it makes basic (S)VGA features automatically supported. Yes, I did say that I won't ever do any SVGA card emulations (and still don't unless they are basic enough, 2D only).  Implemented because DraCo has NCR 77C32BLT based RTG card and I wanted to emulate DraCo :) Big thanks to IComp and Thomas Richter for help/driver information.
- Retina Z2 RTG board emulation. NCR 77C22E+ based, older version of NCR SVGA chip, no blitter, no linear frame buffer. Note that this is banked RTG board and Picasso96 driver requires MMU. Uses 128k of Z2 IO space only. 16 color mode (planar mode) is not supported.
- A2410 TMS34010 emulation PMASK and prefetch behavior fix. (Latest Picasso96 driver glitches in DMA mode)
- Autoswitch all RTG boards without internal switcher (Enable RTG if SVGA display gets activated, switch to chipset display if SVGA gets blanked). Previously only PCI RTG boards without internal switcher autoswitched because original code expected all Z2/Z3 boards to have built-in switcher but it was not updated when Cybervision etc was added.
- Fixed PicassoIV (GD5446) overlay skipping register writes if value is same as old which was not such a good idea because written value needs to be converted and copied to another variable in some cases which was skipped if value was same. Fixes P96PipDemo having blank window until window was resized.
- Fixed CV64/3D overlay emulation not masking overlay pointers correctly. Fixes P96PipDemo.
- Many hardware emulated board had problems with horizontal panning (weird jumping or odd random color changes in 24-bit mode or panning skipped every pixel(s)) This is x86box/PCem limit/missing feature, all emulated boards use identical panning logic but in real world different chips and modes can use different logic. I added callback to card drivers that needed custom panning adjustments.
- Access to unmapped parts of Z3 autoconfig boards (many emulated non-RAM Z3 boards have unmapped addresses) were detected and logged as Amiga mainboard side unmapped access.
- Disk DMA never finished if DMA length was zero and DSKSYNC was enabled. DMA should finish immediately without transferring anything when first DSKSYNC is detected. Used by some copy protections. (broke in 5.1.0 disk updates)
- Force windowed mode width to be 4 pixel aligned. "Unaligned" value can cause scaling artifacts in integer scale modes.
- If 68040/060 MMU caused bus fault and during bus fault handler execution interrupt level was increased, when CPU restarted the instruction, it was interrupt's first instruction that was "restarted". Normally mostly safe except if 68040 and both instructions were MOVEM, in this situation MOVEM used originally faulting instruction's pre-calculated effective address. (Found now because Retina Z2 Picasso96 driver uses MOVEMs very heavily to transfer data between board VRAM and mapped virtual VRAM)
- Dark mode was not initialized until GUI was entered. (Load config with use_gui=no: main emulation window didn't use dark mode even if it was configured)
- Some sub-dialogs (for example HDF creator status window) didn't support dark mode.
- "AVI output enabled" (and few similar on/off buttons) button type changed, previously they worked unexpectedly in some situations, visible state was not always matching internal state.
- If Z2 or Z3 board was "shut up" (for example 8M Z2 + non-banked Z2 RTG board which would not fit anymore), it was not skipped and replaced with following board, causing infinite autoconfig loop.
- power_led_dim=<value> enabled sound filter if value was larger than 95 (and if sound filter emulation was configured).
- Rrecalculate power led state after statefile load.
- Rewrote GUI sub dialog code partially again, some sub dialogs (like Gameports input mapping autofire) had old style/no DPI support and Input panel Qualifier window stopped working during 5.1 betas.
- HDF creator now updates status information once every second, previously it was quite slow and depended on drive speed. (Still does if drive is really slow)
- Misc panel "Automatically capture mouse when window is activated" changes on the fly was not supported.
- 5.0 b1 "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)" should only be done if SR is modified and interrupt level decreases, but it also affected other instructions. Beneath a Steel Sky CD32 speech works again in non-CE modes.
- Use modified horizontal blank start/end (HBSTRT/HBSTOP) values to calculate programmed mode position/size only if it has been stable for at least 2/3 of frame time. (WB 2.x Multiscan mode does something weird and wrong and modifies HBSTOP twice at the beginning of field)
- Setting quickstart config didn't reset CPU slot/mainboard RAM values.

MacroSystem DraCo emulated hardware:

- Altais RTG board (DraCo version of Retina Z3)
- 53C710 SCSI
- Revision 3 with CIA or revision 4 that does not require CIAs (but uses it if found). If CIA is enabled, ROM timer.device is used, otherwise DraCo boot ROM timer.device replacement is used.
- Mouse (PC serial mouse, using bridgeboard emulation)
- Keyboard (PC MF-II keyboard)
- Floppy drive (PC floppy controller, using bridgeboard emulation + PIO support. Does not work yet)
- Mainboard custom hardware (interrupt controller, timer etc)
- 1-wire RTC chip with 48-bit unique identifier and battery backed 512 byte SRAM. Current static ID is 04 010000000000 C3 (04 = static DS2404 family code, C3 is a checksum. DraCo serial check validates checksum and includes it in serial number: serial number becomes 01C3 = 451). Edit bytes 1 to 6 of NVRAM file to change serial number. Checksum is automatically calculated.

Notes:

- CPU must be 68060 with MMU emulation enabled.
- ROM must be A3000 KS 3.1 rev40.68.
- Accelerator board -> MacroSystem -> DraCo. Select DraCo Boot ROM (currently known existing versions are v1.3 and v1.5), set RAM to 128M.
- Chipset Extra -> DraCo
- Floppy drives -> configure drive DF2: as Bridgeboard 3.5" 80. This drive becomes DraCo floppy drive.
- Add HDF to "Accelerator (DraCo)"
- Z2 boards are supported but boot ROMs seem to be ignored. This includes UAE expansions.
- Z3 boards are not supported.
- Chipset does not exist, programs that directly access hardware won't work and probably open immediate DraCo alert screen. (UAE requires chipset because it is timing source for everything and also some chip ram configured which is the reason they can't be disabled completely)

Not very useful device but at least it is quite unique and has some unique software. Maybe this can be used as a sort of "compatibility testing model". If program oes not work on DraCo, it probably does something bad or tries to do direct hardware access (or needs newer OS/support software)

Don't try unless you know what are you doing, remember that DraCo is sort of pseudo-Amiga only, it does not have any Amiga chips. Any question that is not related to emulation will be ignored and possibly also deleted.


5.1.0

- Fixed "Double, Frames" interlace mode (b1)

Beta 15:

- 68030 MMU: If MMU generated MMU configuration exception (almost never normally), F-line exception was also generated, hiding the original exception.
- Apollo 040/060 accelerator (and possible some others): On board RAM mirrors partially appeared over 0x08000000 address space, confusing KS ROM RAM detection if KS supported 0x08000000 RAM.
- GUI main window was moved back if was not already bottom most window when closing child window. (Wrong order of closing child window and enabling main window) (b14)

Beta 14:

- Fixed FSINCOS disassembly (swapped destination registers)
- 68060 MMU MOVEM.L (An)+,<regs> restored regs and updated An in wrong order which previously was mostly harmless but not anymore after b1 MMU MOVEM.L <regs>,-(An) update and if An was included in <regs> list.
- GUI parent window was not disabled when child window was open (b1)
- Quickstart config is not anymore reset when only entering Quickstart panel, unless it was first Quickstart panel open in current session.
- Disk read DMA sometimes stopped 2 words too early (b8)

Beta 13:

- Interlaced programmed modes detected mode change every frame. (b9)
- 800% floppy speed caused crash. (b10)

Beta 12:

- b9 "'Restart' GUI button didn't reset current windowed/fullscreen mode flag" was wrong. Fixed correctly now.
- Some ECS Denise ECS-only features (mainly borderblank) didn't work (b1)
- Full-window mode in another monitor with different DPI than monitor where GUI position was previously stored and GUI is opened: GUI used wrong DPI value.
- CSMK3/PPC boot ROM seems to do hidden adjustments at least to DBLxxx WB screen modes (for example slightly more lines and refresh rate from 48Hz to 50Hz) and these modes with max overscan had few pixels cut from left border. This fixes it but if it also affects badly some other modes, I'll revert this change because "Overscan+" also fixed it. Please check if you use programmed modes in WB. (I didn't notice any but there are too many different variants to test and they can change between OS versions or have manual adjustments added)
- Backslash/F11 option incorrectly affected on screen keyboard keys.
- Added debugger calculator rl()/rw()/rb() functions that read value from address, for example "m rl(rl(4)+10)" returns address to exec base name. Improved support for hexadecimal numbers in calculator formulas.
- Debugger 'v' and 'V' remembers previous vertical and horizontal value.

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 was "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)

Beta 8:

- 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.

Beta 7:

- 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)

Beta 6:

- 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.

Beta 5:

- 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.

Beta 4:

- 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)

Beta 3:

- 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.

Pad GUI control details:

Currently uses XInput (because it is so easy to use). Might use more generic gamepad reading later. Note that this is completely separate feature from GamePorts/Input panel game pad settings. This is not meant to support full, easy and complete use of GUI without touching mouse or keyboard. Option in misc panel. Can be also enabled using command line -gui_control. Command line overrides misc panel option.

Gamepad config:

A = select (pad mode)/left mouse click (mouse mode)
B = right mouse click (mouse mode).
Y = change active GUI area (pad mode)/TAB UI element change (mouse mode).
D-pad = select UI elements, "pad mode".
Left stick = move mouse, "mouse mode".

UI element special cases:

TreeViews: left/right = Tree level up or down. Up/down = move up or down in current tree level.
Sliders: select element, press A and keep it pressed, move left or right to change slider position.
D-pad mode currently only supports WinUAE GUI windows. (Not Windows file dialogs etc)

Mouse mode is only available if any WinUAE GUI window or its child window (including Windows file dialogs) is active. Mouse movement is restricted to active window.

On screen keyboard? Not sure if it is worth the trouble..

GUI control code is currently ugly mix of SendInput() event injection, UI Automation and win32 UI element API calls.


Beta 2:

- 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 enumarated MIDI out device was missing.
- Fixed "Remove interlace artifacts". (Missing reset of separated Denise and Agnus horizontal counters)

Beta 1:

Some more chipset updates, including usual "ross test" support fixes/updates, and some new features. I also have plans to rewrite part of chipset emulation yet again to support more extreme VHPOSW horizontal changes. Maybe during this beta series, maybe not..

- 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 :) For example check a1k.org DSP thread if interested.

- 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.


5.0.0

- Wait for blitter hung if blitter hung. Now it exits if blitter is in hung state or it has waited few frames.

Beta 15: (RC7)

- 4.10.0 introduced low to high/high to low IPL delay is optional and off by default, it seems to only happen when Paula IPL lines have extra load (like expansion devices or logic analyzer probes..). Config file only: ipl_delay=true
- Fixed About panel title font size.
- Debugger command mid command calculation support fixed (for example "d $1234+10 1" works again)
- RC tag removed.

Beta 14: (RC6)

- "Remove interlace artifacts" + accurate modes: some blitter cycles were also rerun during "scandoubled" line.
- Added Multi-Player Soccer Manager dongle emulation. This is very similar to Striker Manager dongle.
- On the fly switch from AGA to OCS/ECS and then back didn't restore original AGA background color until running program wrote different value to COLOR0 register.
- In some situations refresh conflict (even if it was harmless single cycle conflict due to bitplane DMA being enabled with "bad" position) left sprites in always on horizontal "conflict offset" state. (4.9.9+)
- Added jit_inhibit config entry, can be used to force disable JIT temporarily even if uae-configuration/custom event is used to enable JIT. When you really want JIT disabled but don't want to modify anything else.

Beta 13: (RC5)

- Sprite buffer overflow was still possible. Adjusted buffer size again and added limit check, if it is still going to overflow, sprite emulation is skipped until next frame. Problem with this buffer is that it is static, it needs to be as big as max supported programmed display mode which is waste of memory when emulating normal PAL/NTSC modes. It needs to be dynamically allocated. But it is too late now. ("Green" Big Time Sensuality / Axis)
- Game ports panel autofire options didn't do anything (b8)
- b8 "Allow moving vertical position backwards (VPOSW/VHPOSW writes) if current vpos is out of range" only handled VHPOSW writes. Agony interlace title screen swapped odd/even fields if accurate A500 ECS 68000 mode (CLR.W $DFF02A..)
- Added Striker Manager dongle emulation.

Beta 12: (RC4)

- Integer scale in high overscan modes (Overscan+, Extreme and larger) used default native mode width/height, not selected overscan mode width/height.
- OCS Denise earliest allowed BPL1DAT access check (which was updated in b5) didn't disable border even if horizontal DIW was already open, previously earliest allowed was small enough to not cause this side-effect. (For example Seven Seas / Andromeda)
- Check that prevented unnecessary writes to same color register in same cycle (can happen in fast CPU modes) was not correct and in some situations triggered even in cycle exact modes (Hotbleeps / Loonies) 
- Off by one in bitplane sequencer stopping due to DMA being disabled. (Denise test case)
- If bitplane DMA was disabled when it was in "ddfstop passed" condition and DMA was re-enabled in later line (which finishes "ddfstop passed" condition, stopping bitplane sequencer after single "block"): lower priority DMA channels lost cycles because they incorrectly saw bitplane DMA being enabled and active normally during whole scanline.
- Debugger sprite "sp" option now uses ECS height bits when outputting sprite pattern if mode is ECS or AGA.
- Blitter internal state after line mode had ended was not correct since 4.9.2+ (Cemetery Of Silence / Possessed)
- Loading new statefile when emulation was running and blitter was active: it was possible blitter got stuck in active state. I have noticed this many times randomly but I finally found repeateable test case.
- FloppyBridge write protection status in GUI is now mirroring drive floppy protection status. Previously it was always shown as write protected (checkbox disabled and ticked). This didn't affect floppy drive writing, it was only visual problem. Note that GUI write protection status is not updated in real time, it is only updated when selecting floppy drives GUI panel.
- b10 automatic scaling fix fixed. Last line was off by one if bitplane ended normally (vertical diw end matched), wrong check was changed (plane count become zero or DMA was disabled). Interlace mode had one extra line at the bottom.
- Autoscale filter modes horizontal positioning was randomly unreliable or jittery if switched from programmed mode (or Picasso96 with "hidden" 31KHz mode) to native mode.
- About, contributors and error log window DPI/GUI font scaling support.
- CPU panel slider refresh update, previously any slider move caused slider update which could have caused side-effects.

Beta 11: (RC3)

- jit_blacklist config entry parsing out of bounds array access fix.
- Sprite buffer size was reduced too much (4.10.1), Big time sensuality / Axis buffer overflow. 
- Debugger H history with DMA debugger data improved formatting. DMA debugger data was from previous field in some situations. (Wrong frame counter variable used to keep track of current and previous field)
- Systray icon -> Floppy drives: DF1, DF2 and DF3 selected image from DF0:. Probably has been broken since it was introduced..
- RC tag is back, easier to keep track of versions. Beta tag is removed because it makes some functional differences (beta dialog etc..).

Beta 10: (RC2)

- On the fly gameports panel autofire mode setting change (for example using uae-configuration or executing custom event) was not supported.
- Fixed memory double free in b9 calculator update.
- Debugger ? binary output grouped to 4*8 bits.
- Cached bitplane DMA cycle sequence could have used wrong odd/even line mode if programmed mode was enabled when PAL/NTSC bitplane was active.
- If active bitplane was "behind" left horizontal blank (usually only if mode is "weird"), bitplane had extra horizontal offset.
- Some re-recorder fixes but it still loses sync randomly. Not required to work in 5.0 (it has never worked) but I'll try to debug this before final 5.0.
- Automatic scaling missed one line at the bottom and in certain situations top had one empty line. (Probably side-effect of 4.9.x display emulation rewrite)
- RTC address space memwatch points didn't work correctly.
- Beta tag removed.

Beta 9: (RC1)

- Debugger calculator (also used by custom input events) >> and << shift operators added. Negative hex and binary value support (?$-xx now works as expected). Ternary operator support ("condition_formula ? formula_calculated_if_true : formula_calculated_if false"). String parameters and string comparisons supported. Can be useful in custom input events. (for example "gfx_resolution=[\'gfx_linemode\'=='double2'?'hires':'lores']")
- Serial port GUI now have separate options to enable handshake/status pin emulation (RTS/CTS/DTR/DTE/CD) and Ring Indicator. RI is off by default because it is shared with printer port SEL which broke parallel port joystick if serial port was also enabled after RI update. "RTS/CTS" renamed to more correct "Host RTS/CTS" (Host serial port hardware handles RTS/CTS automatically, Amiga side does not need to care)
- Sound GUI panel slider flickering fixed when modifying (almost) any other sound configuration setting.
- Added v2.01 ICD AdSCSI 2000 ROM (v32.1 icddisk.device). Renamed v2.x (v33.0) to v2.1 because now it is almost certain it is v2.1.
- Only disk insert cleared forced floppy drive turbo mode (enabled when executable is inserted in disk drive). Now it is also cleared when "disk" is ejected, allowing floppy sounds (if enabled) to play normally. Floppy sounds are not played in turbo mode.

Beta 8:

- input.advancedmultiinput=true now also enables GUI "multiple input devices connected to same joystick port" Game Ports panel support. It is hidden because it is not complete yet and it is too late to do any possible breaking changes.
- Allow moving vertical position backwards (VPOSW/VHPOSW writes) if current vpos is out of range (vpos was previously in same frame moved past max vertical). Currently free backwards vertical position move is not allowed because it can cause bad side-effects and it can't be used for anything useful.
- Inter-process serial port emulation was unreliable (4.9.0+)
- Added inter-process serial port emulation RTS, CTS, DSR, DTE, CD and serial break support. (CTS->RTS, DTE->DSR/CD, both directions).
- Debugger breakpoints can now be chained, breakpoint chain breaks to debugger only when all chained breakpoints' condition matches. (for example: "wo 0 a0===0 s1" and "wo 1 a1==0" breaks when both A0 and A1 is zero. s1 = this breakpoint (#0) is chained to breakpoint #1)
- Extra breakpoint parameters (N: count N times before breaking and S: chained) are now only accepted at the end of command.
- Breakpoint N parameter counting down is now logged.
- Input panel mode("Configuration #1-3" selected) and mouse inserted using Game ports panel to any port and then later removed: [PORTS] events that used more than 1 slot were not removed. ([PORTS] label was removed but event was not). This caused mouse autoswitch only work once in input panel mode if mouse.

Beta 7:

- Paths panel string "System ROMs" had disappeared (b6)
- GDI mode, possibly also D3D11 mode had wrong screen positioning/size after mode change in some situations.
- Switching HW RTG modes with scaling enabled: new mode was not always using correct size (b5)
- Input panel "Device enabled" checkbox state was not refreshed when Input mode was changed (Game Ports Panel, Configuration #1-#3).
- Saving config after GUI was opened for the first time without default.uae, then loading it and saving it again: second saved config file was not identical.
- Adjusted "VGA mode resolution autoswitch" switch range, some OS 3.2 native display monitors have been changed and it triggered autoswitch incorrectly.
- Native mode integer scale behavior adjusted. Removed some earlier beta auto-adjustments because they would break programmed modes in integer scaling.
- RTG integer scale didn't support scaling multiplers smaller than 1x. 1/2x and 1/4x is now supported.
- Changed uaegfx Picasso96 BoardName field to "UAE" (was "uaegfx.card"). Now P96Prefs created modes have same prefix as UAE internally generated modes.
- Fixed disassembler FMOVE.L/FMOVEM.L to/from control registers register order (FPCR and FPIAR was swapped)

Beta 6:

- Bumped version to 5.0. No more 4.10.x versions.
- Input left/right joystick autoswitching mode is back, disabled by default, add input.autoswitchleftright=true to enable.
- Added input.advancedmultiinput config entry which currently enables inserting same input device in multiple ports (game ports panel) and in future enables multiple input devices in same game port GUI support.
- Enable also JIT FPU when JIT checkbox is getting ticked and FPU emulation (with host CPU mode) is already enabled.
- Fixed possible crash when quitting emulation when RTG mode with hardware sprite is active (b5)
- Inserting supported non-Amiga formatted disk image (for example PC DOS formatted image) in standard Amiga 3.5" DD drive was rejected, drive compatibility check didn't accept standard 3.5" DD drive. Image was accepted if drive was 3.5" HD drive. (Was probably broken when bridgeboard drive support was improved)
- Initial ROM scan window was invisible. (Not sure when it got broken or if it depends on Windows version)
- Added custom data path configuration to Paths panel. Data path = default path where config files, logs, statefiles etc are loaded and saved. This was supposed to have been added ages ago.. (previously available via command line -datapath parameter). Paths panel also now shows currently active data path.
- uaegfx internally generated modes didn't have active flag set and display parameters (total vertical/horizontal and sync lengths, values that are ignored by uaegfx) were technically invalid. Set active flag and made hor/ver totals slightly larger than visible resolution and adjusted sync values. Board type was not set to uaegfx (it was set correctly, then overwritten by wrong value) Some Picasso96 tools might have gotten confused.
- RTG hardware sprite update in b5 added caching that was not properly flushed when cursor shape was updated.

Some new "ross test" edge case chipset fixes:

- If chipset timing event was queued in same cycle as hsync event, hsync event was executed last. Hsync event should always have priority. This was "optimized" some time ago but it was wrong. (BPL1DAT write during same cycle didn't enable sprites in ECS Denise config)
- Very early BPL1DAT write didn't update sprite minimum visible horizontal position correctly, in some situations sprite that was "hidden" behind border didn't become fully visible.
- If BPL1DAT enables sprite(s) and "bordersprite" condition was possible (ECS Denise or AGA), enabled sprites activated border sprite state even if new visible sprite pixel would have been hidden by HDIW start. AGA 0.5 pixel lores "bordersprite" condition + borderblank enabled: "bordersprite's" complete pixel (1 lores) become visible.
- Bitplane DMA BPL1DAT access does not anymore open border if OCS Denise and BPL1DAT position was before HBLANK end. (OCS Denise undocumented feature, does not exist in ECS Denise or AGA which allows border open after HSYNC start). Manual BPL1DAT write already did this. ECS Denise earliest possible BPL1DAT access that opens border was 2 cycles too late.
- ECS Denise superhires sprite more accurate color selection emulation ("scrambled" odd/even palette access). Attached sprites are not yet correct (it does something in this mode but it can't be what normally working attachment does). Also it appears first pixel column of ECS superhires sprite is invisible (not transparent, appears as COLOR0, not background bitplane), this is not yet emulated. Sprites 4 to 7 are not working (nothing appears on screen) when in ECS superhires mode. (Agnus still does normal SPRxPOS/CTL and SPRxDATA/B writes)

Beta 5:

- Programmed mode aspect ratio correction ("VGA mode resolution autoswitch") improved. Programmed modes should now always have correct aspect (no more halved horizontal size)
- Integer scaling now automatically doubles width of display if original width is smaller than height and doubled width still fits.
- GDI mode display position might have been wrong in some situations after switching modes.
- Direct3D 11 mode world matrix coordinate handling fixed (finally, has been wrong since D3D11 mode was introduced). Scanlines etc are not anymore affected by scaling settings. Rotation (gfx_rotation) also now works correctly.
- RTG hardware sprite (mouse cursor) is now properly clipped when near edges of screen.

Beta 4:

- VHPOSW updates, copper special odd/even last cycle condition used original maxhpos value, not VHPOSW write "faked" hpos value. Do not do horizontal adjustments if CPU speed is fastest possible and/or JIT is enabled and VHPOSW access was CPU. Copper VHPOSW write is always accepted (which can only work if ECS or AGA).
- ROM rescan in ini mode didn't clear previously detected ROMs. Ini file whole section delete only deleted first entry in section.
- Added new KS ROMs to ROM scanner.
- uaegfx and hardware emulated RTG board and emulation window smaller than RTG resolution: part of right or bottom of display was clipped. (Used window size to check limits instead of internal surface size)
- Statefile restore fixes, 68020+ blitter wait hang after loading statefile, "cpu trace" error dialog shown even when there was nothing wrong.
- If reset was requested, it wasn't processed until next vsync. Between reset request and reset process CPU might have executed random data, temporarily flooding log with invalid access errors, exceptions etc.
- CIA synchronize clock drift bug fix (4.10.0)

Beta 3:

- Changed keyboard reset warning again: when reset keys are pressed, reset warning starts, when reset warning ends, system is reset but reset is kept active until at least one key is released. Keeping reset keys pressed more than 5 seconds force hard reset like non-reset warning config already did. Both keyboard reset modes now work identically.
- Programmed mode "do not include hidden lines" (b1) removed one too many line, breaking some programmed modes interlace field order.
- Interlace automatic LOF toggle cycle was still using pre-4.9 horizontal position origin. (Toggled 3 cycles too early, correct position is cycle 1 of line 0)
- LOL (NTSC long line) was toggled 1 cycle too early. Both LOF and LOL toggle when HPOS=1.
- COPJMP1+COPJMP2 strobe when Copper DMA is off stops the copper: this was not correct, if both strobes are generated, Copper instruction pointer is loaded with COP1PT OR'd with COP2PT. This usually indirectly stops the copper because it will sooner or later do MOVE to "dangerous" register. This is same address OR behavior as any other DMA pointer if more than one gets activated in same cycle (for example refresh + bitplane conflict). This was done before logic analyzer checks and was forgotten..
- HAM5/HAM7 was incorrectly allowed in AGA mode (broken probably in 4.9?). AGA only enables HAM if 6 or 8 planes.
- Disk image was accidentally opened twice, preventing disk image deletion/editing without closing WinUAE (b1)
- When disk image is ejected using GUI, close image file handle immediately (previously it was closed after returning back to emulation)
- Mounting exe as HD floppy image created broken disk structure if file was larger than 1329664 bytes. Bitmap block used original DD block location but was allocated after HD root block.
- Filter mode "default" now always scales if programmed chipset display mode.
- Debugger breakpoints are now also reported when single stepping (f and fo etc), previously trace override other breakpoint detection.
- Debugger wf didn't fill in binary mode.
- GVP 2040 original ROM image added (No 68060 support). "tekscsi2.device 1.1 (17.4.95)". Filesystem loader has serial debugging enabled. Updated 68060 variant is "tekscsi2.device 1.0 (27.8.95)". For some reason newer version has 1.0 in version string but device internal version is still 1.1.
- Changed new Agnus Chip RAM max addressing advanced chipset option: default equals Chip RAM size. Forcing 512k when OCS can break old configs and cause confusion and result will look like new emulation bug.
- Some VHPOSW horizontal change support improvements. It is still a hack but it is simpler hack and generic, required changes are now dynamically calculated. It is not anymore hardwired to Smooth Copper / Up Front specific VHPOSW horizontal position changes. Demo specific hacks removed. Also now horizontal position moves beyond maxhpos is also emulated, hpos counts to 0xFF before wrapping around. DMA debugger also updated to support skipped or doubled cycles. VHSPOW behavior needs future undocumented feature thread post. (Weird test cases by ross)

Beta 2:

- There is no undocumented HAM behavior, it was bug in emulation, in certain situations HAM decoding incorrectly started before border and fix only accidentally worked in test case. (b1)
- Hardware info panel now shows complete memory map when emulation has been started. Before starting emulation it works like previously (adjustable, lists expansion devices only). Added address space end column. (TODO: more info, perhaps also include PCI devices)
- Added backslash/F11 swap key option to Input panel. This is global option (registry/ini) and swap is done after input mapping. Reverts b1 key swap.
- Enabling Copper DMA didn't wake up Copper immediately but when next line started. (4.9.something probably)
- Added inverted lightpen/gun input events. (ALG Fast Draw Showdown)
- If any debugger memory search command (s, fa, etc) have start address parameter that points to any ROM address, search runs normally until last ROM address. Previously searching from ROM addresses was not possible.
- If keyboard reset warning was enabled, releasing reset keys caused second reset if they were kept pressed until reset warning had internally generated reset. (4.10.0)
- If keyboard reset warning is enabled, keyboard reset does not start (and reset warning key code is not sent) until at least one key is released and if keys are kept more than 5 seconds, hard reset is forced. Previously if keyboard reset warning was enabled, reset always started immediately and forced hard reset was not possible.

Beta 1:

- 1.5M Chip RAM size is now working correctly in all configurations. (Except JIT which does not like non-power of two RAM sizes)
- Added Agnus chip ram max size option to advanced chipset. Can be used to configure larger Chip RAM size than Agnus DMA supported size.
- Added A1000 Denise model selection to advanced chipset (A1000 Denise without EHB and A1000 Denise with EHB). Previously Agnus type was used to select if A1000 Denise features/bugs were emulated. Autoselect = Chipset type selected from chipset panel.
- Removed Agnus blitter busy bug and No-EHB Denise Advanced chipset options. Above Agnus and Denise model selection replaces them.
- If CPU was waiting for chip bus read or write (At least one cycle was stolen from CPU) when debugger was exited or GUI was entered, next CPU chip bus wait cycle was not counted.
- Blitter state is now fully saved even if blitter is in mid-operation. (cycle-accurate modes only). Previously blitter was force-finished if blitter was active when state was saved.
- Copper "overflow" to beginning of next field is now statefile supported.
- Chipset internal delay events are now accurately saved with state files. (Test cases by ross as usual)
- Statefile save exactly when CPU was about to do memory chip bus read or write: restore skipped this pending read or write.
- Updates to CPU state save support. In some situations state save/restore support was not correct and/or not cycle accurate.
- CD32 state was always saved, even when no CD32 features were enabled.
- Fixed LPSTOP instruction (68060 only, Low Power STOP). Broke when STOP instruction emulation was rewritten to match real 68000 behavior. No known Amiga programs use LPSTOP. (4.10.0)
- Level 7 interrupt input event now keeps NMI active until CPU detects it. Previously it only made a short pulse that was unreliable.
- If VPOSW has been written to more than once during single field and writes only modified LOF-bit and later write(s) during same field restored original LOF value: don't recalculate display settings when next field starts. LOF state only affects display during vertical sync and few lines before and after, it can be "safely" modified mid screen (with side-effects in some situations..)
- HAM previously unknown (?) and undocumented feature emulated. If bitplane is active earlier than horizontal border ends, last pixel under the border is HAM decoded normally using bitplane pixel value, it is not decoded using border color.
- In some situations when emulator config was changed on the fly (for example 68000 CE to 68020 non-CE), CPU emulator and other parts of emulator was not configured for new configuration.
- Prometheus PCI bridge PCI config space byte wide access endian swap fix.
- Picasso IV flash rom support. Not very useful because it can't be used to fully "generate" Picasso IV flash ROM image file (like you can do with PPC boards). Official flasher does not update first 16k of flash that contains autoconfig nybbles and loader code and Picasso IV and official updater can't work if it is missing.
- Serial port SERDATR TBE bit was unreliable in accurate modes. (4.10.0)
- Fixed floppy related bug where initial bit offset becomes negative, causing out of bounds array access (that may or may not cause a random crash).
- Fixed Input panel custom event string to GUI temporary config and from GUI temporary config to active config copying that caused double memory free. (Very old bug).
- On the fly disk check from GUI (for example ? in Quickstart panel), which reads boot and root block and shows disk information, which changed disk rotational position but it wasn't restored.

- Disabled strange ages old german keyboard layout only "#" key hack and changed 2 very rarely, if ever, used, default keys: Amiga key left of backspace which does not exist on any PC keyboards is now mapped to F11. Key left of enter (which only exists on european PC keyboards) is now mapped to correct matching Amiga key. (was previously key left of backspace for some reason). Hack can be optionally restored if there really was some reason for this hack. (I suspect original reason was pre-RawInput Windows 9x/ME DirectInput limit that possibly didn't allow all keys to be read normally).
- Ultra extreme overscan mode now includes blanking regions drawn using grid pattern. Added new HV ultra extreme overscan mode that shows HSYNC, VSYNC, Blank and Borderblank regions. Can be useful when creating/debugging programmed display modes. C mode shows CSYNC pattern, which is accurate enough to correctly handle at least some weird modes by ross :)
- Added reset warp mode Misc panel option. Reset automatically enables warp mode, first copper DMA activation (KS ROM sets it just before disk/HD boot starts) starts warp mode auto disable countdown. Default is 1 second delay before warp mode disables. warpboot_delay config file entry can be used to change delay value (value in frames). Makes KS ROM hardware initializations almost immediate without affecting compatibility.
- Bring GUI window on top if emulation window gets left mouse button double click or F12 (or configured GUI key) key press and GUI is open. Close GUI if ESC is pressed when GUI is open and emulation window has focus.
- SCSI CD command READ TOC, format type 0 returned invalid data (4.10.1)
- Added button toggle mode (press and release: button gets pressed, press and release again: button gets released) to Game Ports panel autofire mode select menu.
- A600 non-expanded Quickstart RTC selection fixed. RTC should not be selected unless RAM expansion is configured.
- Added missing Picmatic ROMs (European American Laser Games variant). Zorton Brothers and Marbella Vice.
- Added Disable keyboard and Disable game controllers when mouse not captured options to Pri & Extensions panel.
- Game port setting now accepts joyportnameX and/or joyportfriendlynameX=<name> + joyportX=customY simultaneously. This forces custom config Y to be mapped to named controller, ignoring device index value in custom config. Makes it easier to create config files with custom game port settings programmatically.
- Added possibility to have same Game ports panel joystick in more than one joystick port. Config file only currently. Use same config file entries with index number (for example "joyportfriendlyname1_1=<controller name>")
- Added screen rotation support, to fully support Fast Draw Showdown (American Laser games) game that had 90 degree rotated display. Direct3D9 mode only so far. Config file only: gfx_rotation=<rotation angle in degrees>, gfx_rotation=-90 for Fast Draw Showdown.
- Removed Expansion panel CD32 FMV checkbox. It is available via expansion list and needs ROM selection.
- Integer scaling now has 5% (width and height) safety margin before switching to smaller multiplier.
- If programmed mode: do not include scanlines hidden in vertical blank when calculating display size (for integer scaling/autoscale etc)


4.10.1

Beta 6 (RC2):

- "Default" joystick mode didn't fully enable CD32 pad mode when CD32 hardware was configured. (Very long ago?)
- Write to CIA timer HI register always loaded the timer in cycle-accurate CIA mode. Timer is not loaded if it is in continuous mode and timer is running. (HippoPlayer unstable playback speed). Fast CPU modes used "immediate" (CIA internal state change delays not emulated) CIA mode which was correct. (4.9.2 CIA rewrite)

Beta 5 (RC1):

- Fullscreen GUI Misc panel option ticked + D3D 11 mode exclusive fullscreen + enter GUI which drops back to desktop: GUI used full desktop size, when it should have used "work area" ("work area" does not include for example Task bar)
- End directory filesystem threads earlier in shutdown sequence, previously it was too late, after Amiga address space was freed, causing crash if filesystem queue had commands pending and they needed to read or write Amiga side memory.
- Improved Game ports panel Custom mapping autoswitch selection. Select first Custom config that has at least Amiga button fire button or second button mapped to connected input device that initiated autoswitch.

Beta 4:

- Added continuous screenshot mode to GUI (Was previously available via input events). When ticked, screenshot is taken automatically every frame.
- Fixed video recording and continuous screenshot including extra blank frame when loading new statefile. (4.9.0)
- Fixed second frame appearing corrupted after loading statefile due to not re-initializing long/short frame internal variables at startup (only visible in video recording or screenshot). (4.9.0)
- If game controller was configured using Game Ports panel (Custom #x setting) and device didn't have any Input panel mappings, config file input device matching with currently installed input devices was not done. This meant if config was moved to other PC, device specific input config was not loaded correctly. Now it also matches devices using only USB VID and PID if better match is not found. (Full match -> Partial match -> VID+PID only if exists -> Device friendly name)
- If config file has input device that is not currently connected, saving the config file didn't save non-connected device's config data. Now it is saved (like it was supposed to already do)
- Game Ports panel custom settings were not corrected automatically if device indexes changed (new input devices connected or removed)
- If Game Ports custom setting has entries that don't map to any currently connected device, show unmapped events as "<event name>=?" instead of showing nothing.
- CALLM disassembly fixed.
- 68030 MMU state was partially reset when loading statefile.
- If fast CPU mode program writes to color registers (usually COLOR0 to create background color rainbows), skip write if previous write already happened in same chipset cycle. This could have overflowed buffer that stores state where and when color change should happen in rendering part of emulation. Fast CPU modes don't slow down CPU by emulating chipset or chip ram delays.
- Reduced size of sprite buffers (which was huge), buffer size was enough to have whole screen filled with sprites in max superhires/800 lines screen mode which can't happen.
- "uae-configuration statefile_save <filename>" can be used to create statefile (note that save happens when vblank starts next, it is not saved immediately but uae-configuration still returns immediately)

Beta 3:

- Serial port RI (ring indicator) was inverted. If both printer and serial port was enabled, printer port SEL was pulled down even when RI was inactive.
- DSKBYTR behavior updated after more testing. It is updated all the time normally except if DSKLEN WRITE bit is set without DMA enable. It is even updated (with zeros) when disk write DMA is currently active.
- Dumping CPU state after JIT unhandled exception or program jumping to IO space won't open console window anymore.
- If 2 back to back internal cycle count events had same cycle count value, order of executed events was undefined. Now they are executed in FIFO order. Interrupt clearing and setting at same cycle queued two events, interrupt was lost if they were executed in opposite order. Fixed weird music issue in Jesus on E's / LSD.
- Fixed PCI bridgeboard crash if non-existing PCI board IO or RAM space was accessed.
- FM801 does not seem to have PCI Device control register Interrupt Disable bit (marked as reserved in datasheet). Made it unchangeable (and few other PCI config bits) to fix Mediator FM801 driver audio playback hang. (Possibly this worked with some older Mediator drivers)
- Added command line option "-winekeyboard" to change handling of PAUSE and NUMLOCK keys as a workaround for different (buggy?) Wine RawInput key codes and flags. (falcon35180)

Beta 2:

- Bitplane DMA stealing sprite DMA off by one fix (b1)
- Platform specific hardware specific config entries didn't parse correctly and were ignored (b1)
- B1 sprite/blitter conflict was unreliable (not accurate side-effects in some situations, probably no one really cares as usual..)
- DSKBYTR WORDSYNC bit was previously autocleared after short delay. Now it stays on as long as DSKSYNC matches. Was very old workaround for old and wrong WORDSYNC behavior. Load DSKBYTR only when valid data is available. Real HW does not seem to load DSKBYTR when only zeros are read. (Most likely DSKBYTR is not loaded if PLL is not locked?)

Beta 1:

- Fixed possible single scan line graphics corruption if BPLCON0 was changed when horizontal sync started (Caused by last minute 4.10.0 bug fix).
- Interlace config scaling mode was saved as RTG scaling mode which could write incorrect config entry or cause a crash.
- When saving config, check index values of array type config entries, preventing possible out of bounds memory access if entry is invalid (negative or too large) for some reason, like above bug. Config entry is internally index number, index is used to select config file entry value. If invalid value is detected, message is logged and config entry write is skipped.
- Removed useless "Scanlines" option under PAL filter extra settings.
- GDI mode RTG hardware cursor was not fully disabled when emulated Amiga was reset.
- GDI cursor leaved garbage on screen if hardware sprite coordinates were negative.
- Taking screenshot, DF0: is enabled but empty and CD drive is enabled but not empty: select CD image name.
- Disabled move left/right joystick autoswitching mode (was too easy to do it accidentally without noticing what happened). Only buttons are supported now. Improved popup description text of autoswitch option.
- Vblank interrupt trigger was 2 cycles too late. (Cracked The deep hang). This was supposed to be correct but probably some test results were misunderstood. Or something.
- Copper write to DMACON that disables copper DMA: copper stopped 1 cycle too early. (Following copper instruction's first instruction word is still fetched)
- DMACON write that switches blitter DMA on or off when blitter is running was not fully cycle-accurate. Now it is. (Blitter nasty was already correct)
- Yet another sprite DMA conflict found (Thanks ross again :)) and emulated. If sprite DMA is switched on exactly 3 cycles before sprite's DMA slot, DMA decision is done and sprite pointer is increased but slot is not allocated, DMA transfer does not happen and RGA bus appears in idle state (0x01FE). If some other DMA channel allocates same slot, it conflicts and usual RGA bus AND and DMA pointer OR operations happens. Bitplane or blitter seems to be only channels that can conflict in this situation. CPU also can use this cycle safely. (Why do sprites have 2 different kinds of undocumented and weird conflicts?)
- Disk DSKSYNC interrupt behavior adjusted (not done any proper tests yet to fully confirm it), INTREQ DSKSYN bit only seems to get set when internal DSKBYTR WORDEQUAL bit changes from 0 to 1 because without drives selected (internal buffer value is static) and causing DSKSYNC match: DSKBYTR WORDEQUAL is one but interrupt only happens once (for example setting DSKSYNC to non-matching value and back to matching will generate single interrupt. Only writing same matching value again won't generate new interrupt). This behavior was never accurate and some versions had different hacks. Hopefully this is more correct behavior. (Retrovision / Insane and others I don't remember)
- Some timing operations still used old 32-bit wrap around timer checks that can return bad results with new 64-bit internal cycle counter. Affected standard vsync mode.
- Clear Harddrives panel list when loading hardware-only config.
- Platform specific config entries ("win32.???") were host only. Separated to host and hardware config entries. Moved win32.rtg_vblank to hardware config (Also this shouldn't be in platform specific anymore..)

4.10.0

Beta 11 (RC3):

- Fixed magic mouse without virtual mouse driver installed in RTG modes. (4.9.0)
- Memwatch N flag was not cleared when watchpoint was reset.
- Syncronize clock option was broken, when active, CIA-A TOD was stopped. Broken when CIA emulation was refactored (b1).
- Small 68040+ "cycle-exact" adjustments.

Beta 10 (RC2):

- Bumped version to 4.10.0
- 64-bit natmem limit increased to support G-REX PCI VRAM modification detection (Only draw lines that have been modified). Previously Voodoo 3 + G-REX always forced whole screen refresh. G-REX PCI memory space is above 2G "limit". Check also current limit to prevent "picasso_getwritewatch 87" log messages when running 32-bit version.
- SupraDrive AMAB5 and AMAB6 are also 8k. Removed extra duplicated 8k. Previous SupraDrive 2000DMA ROM is called "44-25B" (Hand written text on ROM label did say 44-25B but I thought it was some kind of checksum or something but SupraRomChk on SupraBoot3.8B install disk does detect it as "44-25B"). Updated 2000DMA ROM mapping, SupraRomChck now detects supported ROMs correctly. Remaining undumped official Supra ROMs are "33-11B" and AMAB1, listed inside SupraRomChk executable. (Also some AMAB5 and AMAB6 beta roms are listed)
- Added Hardital Synthesis/Super Big Bang v48.5 (previous was v53.1)
- Serial port ring indicator (RI) signal support (RI is shared with printer port SELECT line)
- Fix out of bounds buffer access when checking what should be written to write-only register that was read. (b5)

Beta 9 (RC1):

- Direct3D9 mode overlay mode didn't show Amiga screen in most configurations.
- JIT interrupt handling fix part 2.
- Debugger SMC detector cache flush does not anymore clear whole SMC state array (which can be huge if Amiga RAM is located in Z3 space). When state array needs to be reset, reset only RAM and ROM regions. Max SMC array size is now automatically same as highest RAM address.
- Autoresolution didn't do anything unless gfx_windowed_multi or gfx_fullscreen_multi had non-zero values (b1)
- Autoscale worked incorrectly in programmed modes. (b1)
- Disable GUI Wait for blitter checkbox in 68000/010 cycle-exact modes. Previously it was allowed but did nothing.
- CDTV/CD32 Quickstart didn't use new NVRAM Files -path (b1)
- Added Supra AMAB2 ROM to ROM scanner. (Seems to support at least 2000DMA and AutoBoot models). AMAB1 is still missing, previously added 2000DMA ROM most likely isn't AMAB1 because it only supports 2000DMA. 2000DMA ROM selection now also lists all AMAB roms because AMAB2-4 have 2000DMA support (AMAB5/6 dropped 2000DMA support) and ROM scanner selection logic does not support filtering ROMs that have same type.

Beta 8:

- RTG to chipset mode (non-interlaced) switch didn't enable native mode filter (b7)
- If CIA-A TOD counting was PSU tick based, ticks that were delayed until next scan line (due to CIA internal TOD counting delays) were lost. (b1)
- Added GVP A1208 Z2 RAM + SCSI board. It is basically GVP Series II Z2 SCSI controller + RAM expansion in different form. Uses usual GVP Series 2 SCSI ROMs. If A1208 is emulated and Z2 RAM is enabled, Z2 RAM gets GVP A1208 Z2 RAM autoconfig data. A1208 GVP internal device ID is 0x97.
- JIT mode interrupt handling restored, JIT needs "different" interrupt handling than non-JIT modes for best performance. (b5)
- uaegfx blitter emulation was accidentally disabled since b4.
- uaegfx b1 update had wrong operator in masked 8-bit DST=SRC blitter function (Turbotext scrolling in 8-bit) (b1)
- uaegfx non-basic blitter functions (for example mask set or not commomly used) didn't handle overlapping source and destination correctly. (Turbotext scrolling in 8-bit mode)
- gfx_left_windowed and gfx_top_windowed config file entries replaced with gfx_x_windowed and gfx_y_windowed. Reason was swapped coordinates but to keep backwards compatibility, new config entries have been added instead of fixing it by swapping them. Old config entries still work.
- A4000 Quickstart mode set PSU tick CIA-A TOD timing but A4000 does not have PSU tick hardware.
- 68020 cycle-exact timing adjustment (Lionheart whdload slave v2.3)
- Increased A1200 68020 approximate speed slightly. (Many AGA demos had slowdowns). CE mode is not changed.
- Rare SupraDrive 2000DMA boot ROM was finally dumped. Support added.
- Debugger memwatch command parsing changed. Some parameters got skipped. Value match is now V<value>.
- Debugger string ot integer parser error condition support added. Potentially dangerous commands are now aborted if expected address can't be parsed (like 'g <typo in hex address that does not parse>'), previously failed string to integer conversion returned zero value.

Beta 7:

- When on the fly changing floppy type from FloppyBridge drive to normal or vice versa, disk change is now simulated automatically.
- floppyXprofile (x=drive number) config file entry can be used to change drive type on the fly using uae-configuration. Replaces floppyXtype which uses magic number parameters (it is still supported). Floppy type can be for example "35dd" or "35hd" or "floppybridge". (TODO: floppybridge:<parameters> support)
- CPU instruction prefetches are marked with "I" and data accesses with "D" in DMA debugger (for example "CPU-RWI")
- Do not allow JIT FPU option if no FPU is selected.
- If copper used last cycle of frame: following copper instruction (=very last instruction of copper before it restarts) was shown incorrectly in DMA debugger (visual bug only).
- Special empty copper cycles where copper allocates the cycle but leaves it unused are now marked with "C" in DMA debugger.
- Disk DMA write to nowhere (no drives selected) never finished. This (and reading which was fixed in b6) was working in older version, probably broke in b1.
- Disk DMA write DMA slots now have correct order (Read DMA: slots are filled from right to left, write DMA: filled from left to right).
- Floppy index sync (CIA-B flag) CIA interrupt bit was "sticky" in some situations. (b1)
- CHD CD audio sync fix. (Always use logical block access method)
- Some filter options still used non-interlace filter mode settings when interlace mode filter was active.
- D3D11 mode integer scaling artifacts fixed. (b1)
- D3D11 shader support code leaked ID3D11RenderTargetView, causing problems when shader or parameters were changed on the fly.
- Double clicking windowed mode window title bar always switched to fullscreen mode (should only switch if Shift pressed=Fullscreen or Control pressed=Fullwindow is pressed). Possibly Windows version dependant.
- DIWSTRT and DIWSTOP same vertical start and end was unreliable (James Pond 2 intro glitch)

Beta 6:

- Interlace mode filter crash fix (b5).
- Disk read DMA started (without DSKSYNC) and reading "nothing" (no drives connected): disk DMA never finished. (CDTV boot hang without DF0:)
- CIA B timer counting timer A underflows or CNT: generated interrupt was 1 timer count too early.
- 68060 without FPU and executing FPU instruction that uses -(an) or (an)+ addressing mode: address register's original value was restored twice when F-line exception stack frame was being created. Second time it used invalid register value causing D7 to be modified.
- Audio interrupts and AUDxDAT processing delays fixed. They were too long (2 CCK) when correct delay is only 1 CCK. 2 CCK appeared to be correct because previously interrupt timing was wrong.
- Keep CPU halted when keyboard reset keys are kept pressed. (b3 reset change update)
- EHB mode was unreliable in AGA mode (b5)
- 68010+ BKPT illegal instruction exception had stacked PC pointing to next instruction but it should point to BKPT.
- 68010 DIVU overflow condition undefined N flag behavior updated. (DIVS overflow undefined flags are still not fully correct)
- Copper/blitter bug tested, updated and confirmed and is enabled by default again (only if 68000 and cycle-exact). This is the infamous chipset bug that can cause copper pointer to blitter pointer copy if copper was waiting, CPU wrote to COPJMPx during odd cycle and blitter was active. Not 100% accurate (modulos are not added correctly when glitch happens) in line mode because line mode internal "micro-operations" are not fully correct (exactly when pointers change, modulo is added etc, invisible operations that don't affect line mode output).

Conditions that are needed to trigger this bug:
- Copper is waiting.
- CPU writes to COPJMP, using odd cycle. (Odd cycle seems to mess up copper COPJMP cycle allocation logic)
- 3rd cycle after COPJMP is blitter DMA transfer cycle. (1st and 2nd cycle can be used by CPU or any DMA channel)
If above conditions are true:
- Blitter DMA accesses address: blitter pointer OR current copper pointer (Copper pointer before COPJMP updates it)
- Old copper pointer gets copied to blitter address pointer. The very nasty part of this bug.
- New copper pointer is increase by blitter modulo (if this blitter access would have added modulo)

Beta 5:

- If copper used last cycle in scanline and last cycle was even cycle (PAL 226) and it wanted next possible copper cycle and it was free: copper will allocate cycle 1 (Copper won't use it, neither can CPU or blitter. Cycle is allocated because it is 2 cycles from 226 but it is unusable because it isn't even cycle) and cycle 2 (copper uses this normally) of next scanline. This was implemented before 4.9 but was lost when custom emulation cycle allocation rewrite was done.
- Reading from non-existing register always returned FFFF instead of data that previous cycle's possible DMA access transferred. (Equipose / Complex hang)
- Don't keep "interrupt active" flag set if IPL is >0 but CPU interrupt mask is higher or same as current interrupt level. Only check it if mask gets lowered. Prevents unnecessary status flag checks between each emulated instruction.
- Fill color palette entries with pseudo-random contents at power up. (Except COLOR0 to not get annoying color flash at startup. Which does randomly happen on real HW.)
- EHB mode OCS/ECS vs AGA difference emulated. OCS/ECS number of active plane does not affect EHB (only HAM, DPF or KILLEHB disables EHB). For example if plane count changes mid scanline from 6 to 5, EHB stays active and remaining data in plane 6's shifters still appear as EHB plane. But on AGA plane count change causes switch to normal color mode immediately, plane 6's remaining data selects color palette entries 32 to 63. (G.Rowdy / Desire)
- In some situations if same scan line enabled and disabled EHB, whole scan line was drawn without EHB. (G.Rowdy / Desire)
- Replaced C-library pseudo-random number generator with simple xorshift algorithm.
- Ultra extreme overscan mode screenshot was vertically clipped.
- Remove interlace artifacts option fixed. (b1)
- Added optional chipset interlace mode filter panel settings. If enabled and at least one entry is different than normal native mode filter panel, filter is selected when current native is interlaced and switched back to normal native filter when mode switches back to non-interlaced.
- Added semaphore locking to A2065 emulation, previously it was possible to free A2065 resources while some other thread (for example slirp) was currently accessing its on-board RAM.
- Fixed serial port MIDI emulation hang. (b1)

Beta 4:

- Remaining IPL fixes (LINK, UNLK, MOVE to SR/CCR, AND/EOR/OR SR/CCR, CPU wait state IPL fix).
- Emulated Paula side-effect that affects IPL timing. IPLx line state changes from low to high (IPL is active low) are about 0.5 CCK later than high to low transitions. This delays CPU IPL change detection by 2 CPU clocks if any IPL line had low to high transition. CPU accepts IPL change only if has been stable for 2 CPU clocks. (for example 3 to 5 has delay, 4 to 5 does not)
- Enable only WASAPI audio by default.
- Debugger break point command accepts number of hits before breaking to debugger (f Nxx <address> where xx is number of hits required)
- uaegfx overlay limit checks compared Amiga side VRAM end against physical host side bitmap end which accidentally passed if 64-bit Windows. Overlay window was usually empty if 32-bit Windows. (It might have worked in some configurations when using Z2 uaegfx)
- GUI Help button is now always available and opens if exists: (in priority order) winuae.chm, winuae.pdf. If neither is found, help web page is opened (without asking first like previously)
- It is still possible to run windowed WinUAE if desktop is 16-bit but it can cause graphics problems. Not sure if this needs to be supported anymore.

68000 based A500 like unexpanded (Fast RAM expansion is supported) configurations should be now 100% cycle-accurate. (If there are no bugs, many edge cases need complex and very carefully timed cycle accurate tests that are not easy to do)

Note that this does not mean all features are fully emulated, for example OCS and ECS Denise mid-screen resolution changes are not pixel accurate. Accurate as in if resolution change is not carefully coded, there can be few extra or missing pixels when resolution changes. AGA does not have this side-effect.


Beta 3:

- 68000 IPL check position is now almost fully accurate (Still some special cases to check and test). Very big thanks to fx68k author!
- W debugger command hang fixed.
- Full drive/RDB mode is now normal checbox. Hopefully it is now less confusing than button that didn't really look like a button. If selected HDF already has RDSK identifer, checkbox is ticked and disabled. Checkbox can be only ticked/unticked if selected HDF does not have RDSK identifier.
- GDI mode didn't force 32-bit screen depth mode.
- FloppyBridge uae-configuration change now really updates all internal variables.
- Screenshots didn't work if 256 color checkbox was not ticked (tried to create 24-bit palette indexed image)
- DMACONR blitter status 1 cycle delay was broken (Circle scroller / UFO)
- Enabling DMA debugger and then returning to emulator continuously reported conflicts until next frame had finished. DMA debugger init was changed but tables were not fully initialized.
- Keyboard reset now behaves more like real hardware. Press keys, hardware gets reset (if keyboard reset warning is not active), reset continues only when at least 1 key is released. If all keys are kept pressed more than 5 seconds: do hard reset.
- DMA debugger CIA access line includes also E-clock state (0, 2, <data access info>, 6, 8) and any "wasted" cycles needed to sync with E-clock are marked with "-".
- DMA debugger is wider. More space for future features.
- New cputester tests done, for example all SR modification instructions (including STOP) tested with both trace + pending interrupt. No errors found.
- If STOP was executed without trace active and STOP enabled trace, STOP still stops normally and only interrupt can wake it up. (b1)
- Blitter busy bit read incorrectly as blit not busy if blitter was in non-nasty mode and not line mode and CPU stole second to last D channel slot.
- Removed all remaining Windows 7/Vista checks (from days when XP and Vista was still supported).
- "Remove interlace artifacts" is broken. Will be fixed later.

68000 IPL notes:

"IPL check/sample position" = when 68000 microcode detects if IPL line has changed, this depends on instruction and addressing mode. This affects when new interrupt starts, if it happens early enough during current instruction, interrupt can start when current instruction ends but if it happens later, following instruction is executed first.

This can affect programs that for example enable interrupts and interrupt is already pending. Depending on current and following instruction, interrupt can start immediately or after next instruction. It can even break bad programs.

IPL check is most commonly at the beginning of instruction after EA calculations or when last prefetch starts.
- MOVEM.x <regs>,(An)+ checks IPL at the beginning of instruction. All other MOVEM addressing modes check it at the end of instruction.
- MUL check IPL at the beginning of instruction, DIV check it at the end of instruction.
- DIVS is special, if dividend is negative and divisor is positive, IPL check position is 2 cycles earlier (4 vs 6 cycles counted from end of instruction).
- MOVEs are quite complex, common fetch position is when data is read but it really depends on source and destination EA and size. One exception are absolute short/long destinations which always have IPL check at the same position. Word moves are also mostly similar except immediate source and (an), (an)+ and -(an) destinations.
- If instruction generates exception (including trap, divide by zero, chk), IPL is not checked. IPL check is always after exception checks.
- Interrupt exception processing seems to check IPL at least 2 cycles earlier than non-interrupt exceptions.
- If IPL check is at mid memory access, any wait state (DMA channel steals cycles from CPU) will also delay IPL check. Same also happens if memory access is using 6800 cycle (CIA access), IPL check is at the end of CIA access cycle.

This finally makes 68000 emulation complete. Everything observable (that Amiga uses) outside of 68000 should be 100% cycle-accurate now.

Beta 2:

- Display resync blanking was stuck enabled (~1s blank screen when mode switches)
- Internal emulated serial devices (for example laserdisc player) data transfer was unstable.
- Z3 hardware emulated RTG board autoconfig size data was fixed and then was broken again.
- Some NCR710+ SCSI controllers hung.
- Serial port status bits were not correct in all CPU modes.
- Internal CPU instruction emulation table refactoring, use separate table for instructions that return total cycles and instruction that count cycles internally (cycle-exact modes).
- Quickstart panel floppy type dialog was partially clipped if GUI was using smaller default size.
- D3D9 full install was accidentally required (d3dcompiler_47.dll error message).
- Automatic fall back to GDI mode (if both D3D11 and D3D9 is not available) retried forever.

Pre-4.9.2 fixes:

- Box art path detection didn't parse cdimage0 paths correctly if path had "," character. ("," needs special case because path can be optionally followed by ",delay")
- If only one autoconfig device was enabled and it was removed when emulator was running and then system was hard reset: old autoconfig data was not cleared causing disabled device to get misdetected by AmigaOS which usually caused hang.

Beta 1:

4.9.9 (or something like that) beta series start soon (1-2 weeks).
Because huge amount of low level changes, next version won't be 5.0. Next version is almost guaranteed to have too many stupid bugs to be called 5.0.

Main reason for delay is 68000 IPL timing testing. The last important part of cycle-accuracy. So far there has been 3 attempts this year, initial plan was to use serial port interrupts to generate cycle-accurately timed interrupt (connect TX to RX pin, send byte, when byte gets received, interrupt is generated). This didn't work because Paula serial port internal delays wasa unknown and I had no idea how to test it. Next plan was to use external hardware (microcontroller that pulls IPL lines). It worked but it wasn't fully cycle-accurate because of async clocks and it was annoying to use (I also didn't like requiring external hardware), it would have needed more hardware and I wanted to be it to be as simple as possible. Then we (me and ross) finally run out of weird display and CIA related tests and decided to analyze serial port timing. It took few more weeks (and also helped to confirm Paula interrupt timing). Finally serial port interrupt was usable for IPL testing. Still some tester software updates and testing to do before real work starts. This probably takes at least 1-2 months (it is soo boring..) which is the reason I plan to start beta series before IPL updates are done.

Current changelog:

- Added "Ultra extreme debug" overscan mode. Complete raster is fully visible, horizontal and vertical blanking disabled (including borderblank). COLOR0 changes are always visible.
- CPU chipset bus access cycle allocation was not fully accurate. Basically addressing part of cycle and data transfer part of cycle was swapped. Has been wrong since CE mode was introduced. Fixes for example Batman the Caped Crusader. (Single cycle difference was all that was needed to fix it..). This can break some older state files.
- 68000 STOP emulation rewritten, cycle usage and interrupt start timing is fully cycle accurate now.
- If all bitplane start conditions were active except vertical DIWSTRT and DIWSTRT was written later with vertical value == current vertical, bitplane DMA started immediately but there should be 2 cycle delay. If bitplane DMA was disabled but all other conditions were already active and then DMACON was written to enable BPL DMA: DMA started 1-2 cycles too late.
- If (quite short) bitplane DMA ends before all sprite slots have been processed, remaining sprite slots can still work normally (sprites are only inhibited when internal bitplane activity signal is active). This can also trigger very nasty (previously unknown?) chipset bug: when last bitplane DMA fetch happens, sprite DMA is not anymore inhibited by bitplane DMA (sort of off-by-one bug) and if same slot has active sprite, it will conflict with bitplane DMA. It can cause unexpected DMA write to another custom register (instead of BPLxDAT), possible range is from 0x100 to 0x11E. For example if it happens to be BPLCON0 (0x100), display can get corrupted or monitor can lose sync (or shows "No signal" message) if ERSY bit gets set. (Guess how this bug was found.. It was quite confusing when very innocent looking test program suddenly caused display to lose sync only on real hardware). This is now accurately emulated and DMA debugger will log conflicts.
- Bitplane refresh slot conflicts are accurately emulated (see below)
- Added monitor sync method configuration. Default is "Combined" (matches previous UAE versions that basically combines both modes), C-Sync: use composite sync signal as sync source, HV-Sync: use separate horizontal and vertical sync signals (VGA). Some programmed modes can have differences between sync modes or only work in HV sync mode or only in C sync mode in real world. For example ECS Denise can't generate both valid C-sync and programmed horizontal blanking simultaneously. AGA does not have this limitation.
- Emulated display is now blanked if programmed display mode settings are impossible (real display would lose sync, become blanked or show "no signal"), for example really too short or really too long sync pulses, BPLCON0 ERSY set without genlock, BEAMCON0 BLANKEN or CSYTRUE and CSYNC monitor setting selected etc.. If old statefile is loaded with ERSY set without genlock: enable genlock to prevent unexpected blank screen.
- Optional display resync blank screen added to Display panel. (Simulates "modern" display mode resync delay). If not enabled, OSD FPS counter will temporarily show "---"
- DMA debugger had wrong address shown for second copper WAIT/SKIP cycle. (was same as previous read cycle)
- 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. (Skidmarks II in hires mode)
- RTC is automatically enabled if chipset extra=<model without RTC> and system has fast ram, slow ram or chip ram expansion.
- Higher 68000/010 integer clock multipliers (4x+) in CE mode: chipset access timing was not accurate.
- A1000 Denise bug emulated: sprites end horizontally 1 lores pixel later than bitplane horizontal window end. Currently enabled when A1000 Agnus is selected.
- Replaced internal 32-bit cycle counter with 64-bit counter, simplifies internal logic because annoying counter wrap around handling is not needed anymore.
- Playfield to playfield collision (full collision) only worked when same line had at least one active sprite. (4.9.0)
- Sprite to playfield collisions didn't work correctly (4.9.0)
- Horizontal blanking was missing if programmed screen mode was active without programmed horizontal blanking (hardwired blanking should have been active)
- CIA emulation refactored, fully cycle-accurate now. See below.
- Max allowed programmed mode non-interlaced vertical line count is now 800 (from 592), special 700+ line programmed modes are possible and compatible with real SVGA monitors.
- Statefile restore didn't restore static BPLxDAT values correctly (only affects OCS/ECS programs that use "7-plane" mode and only update BPLxDATs at startup). (broke in 4.1.0)
- Copper zero cycle special cases updated, odd/even line length difference emulated. Copper list that "overflows" to beginning of next frame special case timing emulated, if copper has pending DMA request when COPJMP happens, COPJMP startup gets delayed by 1 copper cycle. Previously copper state was reset at cycle 0 and delayed start was queued which is not correct because first line's cycles 0 and 2 are still normally available for previous frame's copper list.
- Blitter startup sometimes had extra idle cycle (4.9.0)
- Blitter line mode with blit width != 2 is now accurately emulated and draws correct strange looking "lines" (previously it didn't do anything or line was normal looking)
- Blitter interrupt started 1 cycle too late. (+1 was added long time ago becase it fixes one demo but actual bug was following INTREQ register handling)
- If Paula internally sets INTREQ bit (not by writing to INTREQ with CPU or Copper): IPL line changes 1 CCK earlier, before INTREQR read returns new bit set.
- Starting emulation or loading statefile before emulation has been started: vblank state variables was not initialized correctly, first field enabled sprite DMA too early. (4.9.0 or .1). Hardreset started was not exactly same as initial boot, CPU started few cycles later if hard reset.
- Mid screen resolution changes are now pixel perfect (AGA fully implemented, OCS and ECS Denise only partially correct)
- Save MSM6242B RTC model control registers to RTC file if they are modified. Previously only RF5C01A control registers (and NVRAM) was saved.
- Serial port interrupts and SERDATR are now cycle-accurate. (Only if CPU memory cycle exact enabled)
- Serial port transmit interrupts and SERDATR transmit related bits are now emulated even when serial port = none.
- Serial port optional loopback mode added. TX->RX. RTS->CTS. DTR->DSR+CD. This is also cycle-accurate (for cputester IPL timing testing without extra hardware, only need TX to RX jumper wire)
- Second 1M extended ROM bank is now internally split to two 512k banks. Non-aligned bank start and size caused problems in some configs.
- uaegfx Picasso96 v3.0+ mixed mode screen dragging is enabled by default. 4.9.1 required "-p96test 1" command line parameter.
- 4.9.1 uaegfx Picasso96 screen dragging without ""-p96test 1" command line parameter crashed emulated Amiga.
- uaegfx new Picasso96 features are now optional (all enabled by default). Config file only.
- uaegfx all Picasso96 functions are now fully "hardware accelerated" (uses host side native code), excluding line draw. Previously some functions only supported common minterms/mask operations, unsupported operations were handled by Picasso96 software. Minterms that read and invert destination do not anymore invert unused/alpha bits if mode has them (15bit/32bit). Always use RGBFormat parameter in D7 if available, instead of RenderInfo RGBFormat variable.
- Chipset programmed display modes (again) use horizontal blanking timing to calculate display positioning. It has been confirmed that at least some early/mid 1990s multisync SVGA monitors (for example Microvitec 1438) do also use blanking timing to calculate display size and position instead of only relying on hsync/vsync timing.
- 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).
- 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.
- Simplified JIT direct exception handler, win32 exception context structure can be used to directly read and modify any host CPU registers, there is no need for trampolines and self modifying code.
- Chip RAM and Slow RAM initial power up pattern emulation is enabled by default (checkbox in advanced chipset). Now matches my real hardware (A500 OCS/A500 ECS/A1200) but modified configurations like ECS Agnus in rev5 (or older) mainboard don't create correct patterns. Random set/cleared bits are not generated, only all ones/all zeros repeating pattern. Pattern depends on ram chip type and manufacturer. Other chips can have different patterns.
- Disk data read returned random data even when no drive was selected (should return zeros only). Fixes corruption in original Nitro Psygnosis screen. Also fixed another related bug when no selected drives and disk sync matches side-effect that caused Juke Box 2 / Dreamdealers to hang at boot.

- Switched to Visual Studio 2022.
- Larger default GUI size and slightly larger font if Windows desktop is large enough (at least 1600*1024)
- Finally removed huge amounts of compilation warnings (excluding PCem).
- Quickstart panel initial UI element is now DF0: image selection button. Too many accidental Amiga model changes..
- DirectDraw support removed, added GDI (win32 basic GDI API) support. Function differences: exclusive fullscreen is not supported (switches to D3D11/9 if attempted), all basic scaling modes and uaegfx hardware cursor supported.
- Box art window screen shot rightmost pixel column and bottom pixel row was not visible.
- Crash dump dialog close button usually didn't do anything.
- ROM scanner dialog didn't use correct GUI size and fonts.
- CyberStorm MK I update: Accelerator and SCSI has been split. CyberSCSI module is now expansion board and has separate ROM image (works similar to Blizzard SCSI Kit). Main ROM should be only configured if CPU is 68060 because it will crash if CPU is 68040, it is only needed to disable 68060 FPU. Real CSMK1 had empty ROM socket(s) if installed CPU was 68040.
- Visual DMA debugger shows conflicting cycles as blinking red pixels.
- DMA debugger (both console and visual) better support for variable/toggling horizontal and vertical line counts.
- It was not possible to enter debugger anymore if CPU was stuck in stopped state after entering and exiting the debugger once.
- Added OR, AND and XOR operators to debugger calculator (|, &, ^)
- Debugger v command does not anymore crash if hpos or vpos is out of range.
- Debugger v command now (at least temporarily) shows Chip RAM row and column (RAS and CAS) addressing values. Very important for REFPTR and refresh/bitplane conflict behavior.
- Debugger sp command parsed attached sprites incorrectly (since the beginning).
- 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.
- Quickstart panel floppy bootblock check used current track of drive (not track 0). Broken when FloppyBridge support was added.
- Reset FloppyBridge state when changing floppy drive type to/from FB drive type to some other drive type. Fixes uae-configuration on the fly floppy drive type change to/from FB.
- 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.
- Do not add CPU instruction history entries when CPU is stopped.
- Horizontal and vertical position is now included in debugger history output (H/HH)
- Added CPU STOP state information to DMA debugger (| = STOP idle cycle, + = STOP idle cycle and higher IPL detected = STOP ending soon)
- DMA debugger decimal horizontal cycle counter value removed, replaced with current IPL (interrupt level) line state.
- DMA debugger shows CPU opcodes in basic form ("NOP", "MOVE" etc), vertically. It looks a bit weird but didn't have better ideas..
- Advanced chipset CD32 NVRAM or C2P without CD32 CD was not fully supported.
- 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.
- uaegfx automatic integer scaling supported (chooses max fully visible integer scaling multiplier), manual filter panel horizontal/vertical multipliers supported.
- END+F9 monitor switching is not anymore hardwired and can be changed using input panel. (END+F9 debug colors when in lagless vsync mode is still hardwired)
- CD audio is now always mixed with Paula audio. Separate CD audio output support removed.
- CD audio was not resumed if WinUAE was unminimized and minimize was configured to pause emulation.
- Z2 RAM configuration was unreliable. (4.9.0)
- Some American Laser Games didn't have ROM descrambling support. Added missing ROM variants.
- Added American Laser Games Quickstart support.
- 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.
- Added all 3.1.4+ official KS ROMs to ROM scanner.
- ROM file list sorting changed, added grouping, sort by group priority first (KS ROMs, extended KS ROMs, freezer ROMs etc..), then alphabetically.
- Integer scaling had scaling artifacts that depended on window size and other variables. (Old bug)
- Added NVRAM path to Paths panel. (Arcade/CD32/CDTV hardware NVRAM files default to this path)
- 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.
- CTRL+C in console window does not anymore close WinUAE. (CTRL+C in newer Windows versions can work as a Copy operation)
- Added video recording file select inputevent. This also starts recording if file was selected.
- Window border FPS counter value has "R" appended if recording is active.
- Creating directory filesystem soft link didn't work (returned "object not found") in relative path mode (Windows needs absolute path when creating shortcut files)
- Directory filesystem soft links only resolved if directory containing link was listed first or if softlink was created in same session (softlink was "cached" by filesystem emulation).
- 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. (Only affects CPU speed in cycle exact modes)
- ECS Denise Genlock features can be enabled manually: genlock_effects=<number of color palette indexes that become transparent> or p<number of bitplanes that becomes transparent if bit set>. "brdntran" can be used to force enable BPLCON2 BRDNTRAN bit, "brdrblnk" to force enable BPLCON2 BRDRBLNK bit. Separated by comma. (for example "genlock_effects=3,15,p7")
- Genlock sprite color selection bug fix.
- Genlock ECS Denise BPLCON2 BRDNTRAN emulation fixed. Not real HW tested but I think it is supposed to make border look normal even if color 0 is genlock transparent.
- Genlock ZCLKEN BPLCON3 bit emulated, if set, genlock transparency video out pin (PIXELSW) starts outputting 14MHz pixel clock. Emulation creates alternating hires pixel size toggling transparency if enabled and genlock is configured. (Which probably is what happens in real world too when genlock is connected. Originally it probably was supposed to be pixel sync signal for external video devices)
- Added Output panel optional 256 color palette indexed png screenshot support. If screenshot has more than 256 unique colors, 24-bit png is created like previously. It also tries to keep original palette order: first screenshot's unique colors are collected, then custom color register values are collected (values at the end of previous field), screenshot colors are matched with custom colors, if match found, color is marked as allocated. Then all remaining colors (copper color changes, EHB, HAM, on screen leds, blanking black etc..) are added to palette. If total is more than 256, 24-bit png is created. 256 color mode also tries to preserve first 32 color palette entries. (Preserved = color is not overwritten by another color even if color is not used in screenshot)
- Optional IFF screenshot support (-screenshotiff or screenshot_mode=2 registry/ini). IFF mode does not attempt to preserve first 32 color palette entries to keep image depth as small as possible. IFF is not (yet) compressed.
- Debugger 's' and 'W' quoting support improved, for example "W xxx "ab'c" works as expected.

CIA updates:

- Major rewrite, code duplication removed.
- Cycle-accurate (timers were cycle-accurate previously but not much else), CIA bugs/"features" emulated. Most of these have been inherited from 6526.
- CIA E-clock counting and CPU to E-clock synchronization rewritten.
- CIA-B TOD increment horizontal position calculation was broken, CIA-B TOD was incremented too early horizontally and could increase TOD twice if TOD was also modified in same line or line's TOD increment might have been missed completely. More compatible/CE only.
- CIA TOD internal increment by 1 is weird, TOD incremented value can be only updated every 4th E-clock (I guess full timer update is internally spread to 4 cycles). This also affects alarm interrupt timing.
- CIA-A TOD increment position is now cycle-accurate, including above every 4th E-clock behavior.
- CIA CPU access E-clock sync updated to include delay caused by VPA/VMA signals.
- CIA interrupts are delayed by 1 E-clock.
- Many undocumented special cases emulated, for example timer latch values 0 and 1 work unexpectedly (not very surprising, zero timer value probably wasn't designed to be used..).
- If CIA timer was started by writing to TxHI (ONESHOT mode) with timer previously loaded with value==0: interrupt is generated 1 cycle earlier than normally.
- CIA B-timer counting A-timer underflows: B-timer counts down 2 cycles after A had underflowed. Was immediate previously.
- Added E-clock phase (0 to 4) config file entry. Real 68000 E-clock phase relative to CPU clock is random, decided when system is powered up. At least my real A500 rarely powers up in E-clock phase=0 state (which UAE uses by default). Usually it seems to be 2 or 3. Phase can be detected in software using some tricks but no normal program cares.
- Word read from CIA-B space now returns correct register contents in upper byte. Previously it returned register content OR'd with previous bus data.
- CIA accesses added to DMA debugger (new line)
- Debugger CIA register dump current timer values were not necessary actual current values but values when any CIA register was last accessed.
- CIA E-clock cycle option added, A500 (68000 generates E-clock timing) has slightly different E-clock timing than A600 (Gayle generates E-clock). Option added to Advanced chipset. No normal program cares but this difference can be detected by software. Main difference is that Gayle generated E-clock is 2 CPU clocks longer than 68000 internal generated E-clock which makes it impossible to do back to back CIA accesses if Gayle based Amiga.
- Most special case are only emulated if CPU is more compatible and not fastest possible.

Refresh slot conflict details:

- Main discovery was hidden internal DMA refresh pointer ("RDMAPT"). REFPTR can be written to modify it (not 1:1 because REFPTR is only 16 bits, few low bits affect multiple RDMAPT bits).
- OCS has very different RDMAPT to RAS/CAS mapping than other chipsets. ECS 1M, ECS 2M and AGA have only small differences. Currently there is no separate 1M/2M Agnus selection, 2M Agnus is selected if Chip RAM size is larger than 1M and not AGA. This is not important because it only affects refresh conflict side-effects.

When bitplane DMA conflicts with refresh slot:
- Both RDMAPT and BPLxPT gets modified: Temp PT = RDMAPT OR BPLxPT. TPT is increased by 2 (if OCS) or $200 (if ECS). This increases Chip RAM RAS addressing value by one which is used for Chip DRAM refresh (RAS only refresh. AGA uses CBR refresh and RDMAPT increment has been removed). This overrides normal BPTxPT increase by 2. If BPL modulo is added, modulo is OR'd with refresh $2/$200 value, then modified modulo is added to TPT. Finally TPT is copied back to RDMAPT and BPLxPT. This explains graphics corruption but is not the only reason.
- DMA target address becomes BPLxDAT AND refresh slot address. First refresh slot: strobe address AND BPLxDAT which always results in read-only register so nothing special happens. Denise also does not see this BPLxDAT write which can make a visible difference if it was originally BPL1DAT. If later refresh slot (and not ECS and not NTSC long line which uses second refresh slot for STRLONG strobe): 0x1FE AND BPLxDAT = always original BPLxDAT.
- Because horizontal strobe register address gets corrupted, Denise does not know where horizontal start is located. Horizontal strobe normally resets Denise/Lisa internal horizontal counter.
- Paula also does not see horizontal strobe: disk and audio DMA requests are not sent to Agnus during conflict lines, this causes audio glitches. (and failed disk read/writes)

Missing horizontal strobe causes Denise's internal 9-bit horizontal counter to free-run which adds "random" offset to every horizontal decision inside Denise:
- DIW (DIWSTRT/STOP/HIGH). Visually this causes full horizontal overscan with unusual border color stripe pattern that repeats every 7 lines.
- Bitplane horizontal BPLCON1 positioning becomes jagged.
- Sprite horizontal position. Sprites become horizontal stripes and same stripe can appear twice/scanline.
- Horizontal blanking. This can cause display device to see non-black color in horizontal or vertical blanking region (if COLOR0 is not black), confusing black level detection. Usual side-effect is line becoming darker than other lines or have pulsing brightness or weird colors (if COLOR0 RGB components have different values). This is not (yet) emulated.

Example programs that have refresh bitplane DMA conflicts if ECS Agnus:

http://janeway.exotica.org.uk/release.php?id=6029 (Only single conflict)
http://janeway.exotica.org.uk/release.php?id=2219 (Multiple conflict lines)
http://janeway.exotica.org.uk/release.php?id=19588 (Whole visible display! Everything!)

Note that glitches can change depending on unused memory contents, memory config and chipset model.
WARNING: last 2 have very glitchy music because Paula can't send new audio DMA requests to Agnus if first refresh cycle conflicts.

TODO:

68000 IPL testing and fixing. Tester working using TX to RX serial loop back (No more need for external hardware). Tester and emulation updates should be finally done, instruction testing will start soon.
Pixel perfect (including chip model specific "artifacts") OCS Denise and ECS Denise mid screen horizontal resolution change.

Thanks to ross again for Display/CIA/Serial tests that require extreme cycle-accuracy to work correctly :)


4.9.1

Beta 9:

- b8 "default" filter update was not complete. Now image is automatically integer scaled if original image is half (or less) size of host window/fullscreen size.
- b8 MMU change didn't change much because MMU + CE isn't "real" CE mode but normal MMU + some timing adjustments. (Because there is not much point). Timing adjustments adjusted, now MMU + CE shouldn't be much slower than non-MMU CE mode.
- PAL filter (and probably some other software filters that internally use YUV) had wrong colors since 4.3.0, 32-bit version only.

Beta 8:

- Sprite collision bitplane end position calculation was not updated to 4.9.0+ chipset emulation. Probably didn't cause problems because it was too large and it most likely could not cause any spurious collisions.
- b6 ECS Denise CSYNC fix broke vertical blanking when EXTBLANKEN=1. Made only visible difference if mode was weird (not WB monitor driver)
- If programmed mode HSYNC start is later than normal, use it instead of standard VGA-like config. (More correct horizontal position if weird mode)
- Yet another Copper comparator update. WAIT and SKIP timing change again, all my statefile tests still work (and one that didn't also works now). SKIP comparison check timing is not same as WAIT, SKIP seems to check comparison result just before next copper instruction gets loaded (SKIP comparison active as long as IR1 and IR2 bits 0 are set)
- b4 bitplane number update fix, if number of bitplane was increased after hsync start but before hsync end, sometimes bitplane count change was ignored until next line.
- "Default" filter mode now also auto-adjusts if horizontal size does not match vertical (for example if horizontal is hires but vertical is nondoubled: double vertical automatically using filter scaling). Other modes are not yet updated because it can break existing configs.
- Reverted 490b25 68030+ MMU "CE" mode cycle count update that made it too slow compared to matching non-MMU mode.

Beta 7:

- 68020/030 CE mode too long interrupt delay fix.
- Possible fix for mouse counter overflow after emulator has been running many hours.
- Weird programmed mode blanking position calculation fix.

Beta 6:

- Use pre-430b5 lagless vsync behavior by default if Windows 7. -beamrace 0 command line will force 430b5+ behavior and -beamrace 1 will force pre-430b5 behavior.
- ECS Denise CSYNC blanking fixes. Denise ignores vblank strobes when deciding blanking if EXTBLKEN=1.
- Remove interlace artifact option enabled: bitplanes and sprites had 1 scanline offset. (introduced in some 490 beta)
- NTSC mode and software switch to PAL: display was incorrectly vertically stretched.
- Integer scaling only worked correctly if horizontal and vertical resolution matched (correct aspect ratio). Now also other combinations work correctly (for example superhires + any or lores + doubled)

Beta 5:

- Filtered lores had wrong colors if host graphics mode was 16-bit.
- Horizontal DIWSTOP = last possible horizontal position (+1 more would cause always on hdiw) didn't ignore DIWHIGH AGA H0/H1 bits, if either (or both) were set, always on diw was detected.
- Disk not in ADKCON FAST mode and normal 2us MFM disk in drive: disk index was unreliable.
- Some normal programmed WB modes unnecessarily enabled slower cycle-based custom chipset emulation.
- Another HBLANK fix, if previous line ends in border closed state and without hblank start, next line also starts in border closed state. Programmed HBLANK + AGA only, ECS Denise CSYNC blanking always resets border state when HSYNC starts.
- Previous A1000 3 lores pixel earlier change was not accurate, it is OCS Denise feature (including A1000 Denise) and it isn't hblank end difference but for some reason only bitplane data is not allowed until first 3 pixels, border works normally (Previous test used black border color which hide the 3 lores pixel border stripe). This is now fixed.
- In some situations old bitplane data was not properly cleared when number of planes decreased mid scanline (including change hidden in invisible part of scanline). b4 number of bitplane change side-effect.
- Adjusted overscan+/extreme positioning.

Beta 4:

- uaegfx overlay wasn't synced with screen dragging. It still works strangely if screen with overlay is not in front screen because Picasso96 does not yet support overlay fully during screen dragging.
- Reset filter button didn't reset manual filter settings.
- Added IDE scsi.device disable option to misc panel list.
- if number of planes changed mid scanline, whole line was drawn using planecount that was active when line started. If plane count was increased mid scanline, line was still drawn using lower plane count. If plane count was lowered, output was correct. (vAmiga test)
- Fixed x86 bridgeboard (AT variants only) boot crash if optimized build. Not sure if it was compiler bug or something else but I found a way to work around it. I think this exact same bug has happened previously.
- A1000 left hblank ends 3 lores pixels later than other models.

Later 4.9.0 beta series introduced bugs:

- If VSYNC starts after vertical wraparound (can happen in programmed modes), lines after wraparound before VSYNC was not drawn.
- HCENTER (ECS Denise only) "blanking" didn't work.
- Left side didn't open far enough in extreme overscan mode.
- OCS Agnus + OCS Denise: last blanked line bug on top of screen was not visible if line also had bitplane enabled.
- Direct 3D 11 mode shader buffer leak fixed. Caused crash after few dozens or so display mode switches.

Beta 3

- "Manual" BPL1DAT write disabling border timing updated. Also OCS Denise limit was not checked, OCS Denise ignores BPL1DAT writes until hblank end. (OCS Denise: border is forced to enabled state during hblank start to hblank end, ECS Denise/AGA: border is enabled when hblank starts).
- "Manual" BPL1DAT write between hblank start and hsync start: border didn't open. Now it does. ECS Denise/AGA only.
- If Remove interlace artifacts is enabled, last border lines now have correct color (border color or black). 4.9.0 had temporary hack that always used black.
- OCS Denise topmost line (Line that is mostly black, except tiny part of border color in right border) had off by one line bug.
- Reset blitter before loading state file. 4.9 new blitter emulation didn't reset all registers fully, loading state file on the fly might have caused corruption due to blitter not being fully reset.
- Programmed mode display size calculation modified. 4.4 and earlier used both horizontal sync and horizontal blank to calculate internal width and horizonta position. 4.9.0 used only more accurate way but only used horizontal sync. This caused some modes to be too wide internally (wrong aspect ratio) and/or have horizontal offset. Horizontal blank and sync is again used to calculate width and position if normal overscan mode. Higher overscan modes use only hsync (allows glitch-free emulation of hblank "effects", if something someday does it.. Hblank can be moved without causing display resync.)
- 4.9.0b40 blitter final D update was incomplete, final D is not skipped immediately when BLTSIZE is written to but when apparently blitter when sequencer starts.
- Hardfile images less than 4M are now mounted correctly as hardfiles when drag and dropped if file has common HDF extension (HDF/HDZ/VHD).
- Removed "PAL" filter preset. It has been unsupported since long time ago..
- Epson printer emulation does not anymore print each page as a separate document.
- Added IDE scsi.device disable hack. Removes ROM scsi.device from exec ResModules list, does not modify ROM. UAE boot ROM must be enabled. Config file only scsidevice_disable=true. Disabling is not done if any IDE device is added to A600/A1200/A4000 IDE or indirect ROM mode is enabled. Makes booting noticeably quicker on OS39 and newer KS versions if mainboard IDE is not needed.

If BPL1DAT write disables border and active sprite was hidden behind the border:
- OCS Denise: sprite is visible 1 lores pixel (2 hires) earlier than bitplane first pixel.
- ECS Denise: sprite is visible 2 lores pixels (4 hires) earlier than bitplane first pixel.
- AGA: sprite is visible 1.5 lores pixels (3 hires) earlier than bitplane first pixel. (This requires subpixel mode, without subpixel it becomes 1 lores pixel)

Beta 2:

- Adjusted programmed mode size/position calculation.
- Adjusted copper emulation, waits for too large horizontal position woke up normally.
- Delay warp mode automatic key release by few frames, some programs might not like immediate keypress/release pair.
- Windows event processing change fix.
- Border "bug" emulated (ECS Denise and AGA, does not affect OCS Denise). If bitplane DMA (BPL1DAT) happens inside VBLANK, border state gets disabled, when first non-VB line starts, line stripe from HDIW start to first BPL1DAT is still in "not border" state: sprites are visible and borderblank does not affect it. This happens because border state normally gets enabled when HBLANK goes from inactive to active state but it looks like HBLANK does not affect border state inside VBLANK. It can also happen during later scanlines if programmed HBLANK starts too early, before last BPL1DAT access. (HBLANK enables border, BPL1DAT access disables it again).

Beta 1:

4.9.0 bugs:

- JIT indirect safe mode MOVEM.W from memory didn't sign extend registers (very, very old bug but apparently it was almost invisible until now because previously indirect MOVEM wasn't used unless VRAM wasn't indirect capable and direct MOVEM was still incorrectly used even when indirect mode was enabled. This was fixed in 4.9.0.)
- Really force all emulated gfx board VRAM accesses to use indirect JIT. Previously used method still allowed direct JIT if code first accessed plain RAM and later (after it was translated) same code accessed VRAM. Fixes graphics corruption in some situations when JIT mode is direct and using emulated RTG boards. Only uaegfx is always fully JIT direct compatible.
- JIT MOVEM.x <regs>,-(An) and <regs> includes An: use MOVEM indirect safe mode. Tester does not complain anymore.
- PCem RTG board 15 and 16-bit lores modes didn't horizontally double correctly.
- HBSTRT very near end of scanline was detected as missed, opening left border.
- Programmed HBLANK end mid screen + bitplanes active (=totally broken situation) caused random graphics corruption.
- ECS Denise horizontal blanking logic updated, it is quite complex and previous was not complete. Note that in real world it can only work if display uses H/V sync (not composite sync) = VGA monitor. CSYNC vs HSYNC/VSYNC "monitor cable" option will be added later.
- Programmed Denise/Lisa side vertical blank ended 1 line too early. It takes 1 more line before Denise/Lisa ends it.
- Programmed vertical blank generated blank scanline wasn't always drawn fully to end of scanline.

Other updates and earlier version bug fixes:

- If warp mode and non-qualifier key is pressed: send release event immediately. It is now possible to type normally in warp mode. Note that physical key release will generate another, almost always harmless, key release event.
- PCem Cirrus Logic SVGA emulation planar support enabled. Picasso96 supports 4bit/16 color planar mode.
- Hardware emulated RTG mode + horizontal or vertical doubling + magic mouse: mouse position calculation incorrectly used doubled coordinates.
- Only process mouse/keyboad input Windows events during mid frame (used to reduce input lag) and process other events during vblank.

4.9.0

Beta 43 (RC4):

- CDFS mounting used wrong character set translation functions, file names with character codes larger than 128 could not be opened depending on Windows regional settings.
- Vertical centering sometimes decided to use max offset, pushing the image down as much as possible.
- Filter Overscan blanking used old horizontal origin (which changed to earlier, "true" horizontal=0 position, due to chipset updates). Workaround added.
- Blacker than black in non-HDR mode was not RGB=000000 black.

Beta 42 (RC3):

- Switching from D3D11 fullscreen mode to windowed mode using GUI caused windowed mode to keep-reinitializing continuously. (CTRL+F12 switch worked normally)
- Fixed wrong condition in check if Denise side BPLCON0 parameters needs updating, broke for example HAM enable/disable until next line (b41)
- Blitter line mode with C disabled also disables C-channel pointer modulo add operations. b39 update was not complete. (Methylate / Focus Design).
- Interlace mode last 2 lines (if Overscan+ or Extreme) had swapped long/short line (last line/line zero "wrap around" point), LOF toggles at this point but display device does not see it until few lines later.
- Fixed buffer overflow that caused unexpected crash due to internal variables getting corrupted. It happened if mode was RTG (native chipset not active) and native mode had copper list that writes to custom registers that can affect colors or blanking, state change was unnecessarily recorded to a buffer that is not in use if RTG mode and after long time (can be 100 minutes or more), it finally overflowed. Recent blanking updates introduced this.
- Programmed blanking change was not always fully detected, leaving partially blanked border in some situations.
- Enabled Remove interlace arfifact option without interlace mode: bitplane overrun emulation was not possible.
- Remove interlace artifact option last line flickering/garbage is really gone now. (Blanks extra line(s), this is not really the correct way but too late to fix it properly)
- Bitplane pointer pointing to upper 512k chip ram in ECS 0.5M+0.5M config didn't use indirect read routines. (Fixes Cen / Rare ECS 0.5M+0.5M config corrupted vector objects)

Beta 41 (RC2):

- Sprite processing was exited early if sprite horizontal start was zero (which is correct normally). But when combined with FMODE SSCAN2-bit, only "original" sprite is invisible but "doubled" sprite is still visible. Fixes Fantastic Dizzy CD32 background glitch.
- Improve Denise/Lisa internal bitplane pipeline logic, previously undocumented combined plane change + bitplane shift changes mid scanline are now working correctly.
- Above behavior also revealed yet another undocumented chipset feature/bug: if ECS Denise or AGA and bitplane plane count is lowered mid scan line and disabled plane's last bit out of bitplane shifter was one: last pixel appears twice. OCS Denise is unaffected. This is emulated only in subpixel mode.
- Clear all internal display emulation buffers at reset, previously some of them was not cleared. (Possibly could have caused temporary on screen garbage when loading statefile on the fly)


Beta 40 (RC1):

- A2065 emulation quit/reset crash fix, A2065 RAM was freed too early, when it was still possible to receive new ethernet frames.
- Blitter final D write does not happen if D channel gets disabled, line mode gets enabled or new blit starts before pending D write has finished. This mainly affects copper blitter wait bug behavior, if new blit is setup before blitter gets its last cycle, last D write never happens which can prevent the glitch from happening. (Last write getting skipped might not cause any visible glitches) Fixes Andy & Blondie / Finity second to last part's glitch. Note that final part has many glitches, happens also on real A500 if system does not have any real Fast RAM.
- Log warning message if BLTDPTx is written to while blitter final D write is still pending.
- Removed wrong INTENA write optimization. Fixes Expiration / Mayhem cube corruption. (Problem wasn't directly blitter related)
- If programmed mode was in use that didn't require configured VSSTRT/VSSTOP registers, display was blank. (Contactro / Illusion)
- Screen mode with even horizontal cycle length (programmed and normal NTSC mode) copper timing fix. Copper can use cycle 0 (previously incorrectly calculated as cycle $e0) if previous line's last cycle was odd cycle (even total length). (Contactro / Illusion)
- Programmed mode registers are again zeroed at startup (was all ones) because JtxRules / Illusion only sets VBSTOP and HBSTOP and expects zeroed HBSTRT and VBSTRT. (Programmed mode comparators don't have reset line connected but they still power up with zeroed contents. At least usually..)

Beta 39:

- 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).
- Fixed empty formatted standard HD ADF creation, broken in 4.3.0 (bitmap block used DD size)
- If A1200 config had PCMCIA emulation and 4M or larger Z2 RAM enabled, end of Z2 RAM didn't have "safety barrier" which caused long or word access that crosses end of RAM to crash the emulator.
- Some audio debugging was accidentally left enabled in b38
- Adjusted UAE Boot ROM variable locations, freeing more space for ROM code.
- UAE Boot ROM level 2 interrupt server priority changed to -1 if KS 1.x, workaround for old SoundTracker (and clones) broken keyboard handling that breaks completely if KS ROM level 2 interrupt server isn't first in chain.
- Fixed last line of bitmap missing or flickering if very tall interlace mode and interlace artifact removal was enabled.
- Blitter line mode didn't clear BLTZERO if line pixel was skipped because of onedot mode. (vAmiga test case)
- Blitter line mode didn't update global state of shift values and SIGN bit. (vAmiga test case where next blit is started without updating BLTCON0/1)
- Yet another small interrupt timing adjustment.
- Chipset emulation could get confused in non-ce configurations when BPL1DAT was modified with a copper.
- Reinitialize all selected FloppyBridges when exiting FloppyBridge UI.
- Change to memory card (CF/SD/etc) added as a harddrive: if you wanted to use same config with Amiga formatted cards and FAT formatted cards and Windows/driver allowed direct access even when FAT formatted card (without partition table) was inserted (oddly enough Windows 10 and older didn't allow it on my PC but after updating to Windows 11, direct access is possible), FAT card wasn't anymore mounted as a directory drive after re-insert because direct access has priority and it did succeed. Now direct harddrive mode is only used if drive does not have any PC partitions (no drive letter) or if Lock option is ticked.
- Experimental HDR support added. (This is not going to be fully implemented in next official release, it is only side project)

HDR mode details:
- Requirements: HDR capable monitor. Windows HDR mode enabled. Direct 3D 11.
- New Graphics API option: "Direct3D 11 HDR".
- Original 8-bit RGB values are converted to HDR color space using shaders.
- Brightness/contrast adjustments are now done in shader code which prevents usual SDR black crush or white clipping. (Work more like CRT). Gamma adjustment is not yet supported.
- "Blacker than black" option behavior is also changed, because HDR by design support blacker than SDR black, it does not need to affect normal color range like in SDR mode. It is also always enabled in HDR mode.

Beta 38:

- b33 audio update missed one condition, when DMA sample playback ended, last sample was played twice before audio channel entered idle state.
- FloppyBridge HD support fix. Fixed unreliable "turbo" writing and unreliable "?" button boot and root block reads.
- Quickstart floppy drive type is now remembered.
- Internal display buffer allocation was too small if image width was not divisible by 8. Could have caused crashes in some windowed mode configurations, for example when saving screenshots (very old bug).
- Screenshot height was always total internal size, even if it was partically blanked. (OCS Denise and mode was not Overscan+ or higher)
- OCS Denise last line "bug" was only visible in short field modes.
- Virtual mouse driver enabled, load new config that does not use virtual mouse: possible crash when restarting emulation.
- Fixed weird blitter behavior in some 68020+ memory cycle-exact modes if blitter nasty was also set.
- Fixed "Remove interlace artifact" display corruption in some programmed modes introduced in earlier betas. (Copper was partially enabled during "scandoubled" line processing).

Beta 37:

- "Copper wake up" (W) and "Copper wanted this cycle but couldn't get it" (c) markers in DMA debugger had disappeared. Skip also shows 'W' if SKIP skipped.
- Do not allow cycle-exact blitter without at least memory cycle-exact CPU. It is not anymore compatible with faster modes.
- Fixed random corruption when cycle-exact blitter was enabled and CPU was (memory) cycle-exact and CPU config was fast.
- 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).
- Added official WinUAE FloppyBridge support.
- Added basic floppy type selection to Quickstart panel (3.5" DD, 3.5" HD and FloppyBridge). Selection is not remembered yet.

FloppyBridge details:
- https://amiga.robsmithdev.co.uk/winuae
- DLLs go to <winuae path>/plugins
- Simple and flexible UI implementation. Different than in unofficial WinUAE floppybridge versions.
- Drive type select menus have "Configure Floppybridge" option if floppybridge DLL is detected. Selecting the option opens floppybridge configuration UI (which is located in floppybridge DLL, it is not part of WinUAE UI), use it configure one or more drive profiles. Select profile to enable floppybridge mode for selected emulated drive.

Beta 36:

- Lores Display panel resolution mode: horizontal DIW values had wrong masking, bitplane left/right edge missed 1 pixel row or had 1 pixel row too much. (b29)
- 68000 IPL timing adjustment, IPL copy seems to be done when CPU is going to do read/write data during second part of memory cycle if followed by prefetch memory access. Previously it was after memory access which seems to be too late.
- Horizontal mid screen HAM mode enable/disable combined with resolution change didn't anymore work correctly (Runaway / 2000AD, "Use joystick to move scroller!!" part) 
- Fixed "box art" window image filehandle leak.
- Warp mode was much slower in Direct3D 9 compared to Direct3D 11.
- Don't emulate chipset emulation interrupt delays if not approximate/more compatible CPU speed. Delays are far too large in fast modes where chipset/chip ram accesses have unrestricted speeds. Fixes random hangs when formatting/writing to floppies.

Beta 35:

- Adjusted 68000 IPL sampling timing. (Spectre Party / Phenomena, F1GP by MicroValue. Not Microprose!)
- Blizzard PPC: if RESET m68k instruction executed, apparently board logic also forces external CPU reset.
- Fixed GDI handle leak (GUI panel change always leaked 2 font handles)
- Updated GUI tab order.
- If emulator was started by selecting statefile and GUI was opened after starting emulation, every time GUI Misc panel was opened, selected statefile was set to reload when GUI exited. (b31?)

Beta 34:

- Harmnless bug causing "Negative nr_color_changes.. " log messages fixed.
- Copper VBLANK startup was 2 cycles too early. (Previous fix was not correct)
- Partially reverted b9 sound update that caused worse sound stability on some systems. It also makes FPS value slightly less stable.
- Audio volume (from AUDxVOL) is only loaded to internal volume register when period counter is loaded. Volume changes during period counting don't affect audio until next period load.
- Copper writes to AUDxDAT in non-cycle exact modes had inaccurate timing.
- AUDxDAT undocumented feature: AUDxDAT write has 1 cycle delay, state machine==3 INTREQ test is done when period counter==1, not when it is zero.  (Thanks to ross again, another weird test set :))
- RTG screen was not fully cleared in some situations when switching modes (b25)
- Changed debugger "dp" to "dppc" (switch to PPC disassembly mode)
- Ateo Pixel 64 RTG board emulation. Another Cirrus Logic based RTG board. Very quickly done, only works with recent Picasso96 versions, does not work with drivers that need ateobus.library (will be done if someone disassembles it, I am too lazy, as usual). 256 color mode has wrong colors and right edge wraps around. Does not autoswitch.
- "Smooth Copper" works correctly again.

Beta 33:

- DMACONR blitter busy bit state is 1 cycle later than copper waking up from blitter finished. (Circle Scroller / United Force)
- Direct3D9 mode crash was possible when switching screen modes (b32).
- Disassembler configuration (upper/lower case options, show calculated EA, show data pointed by EA, condition true/false), hex number prefix, min and max number of opcode/opwords. Currently only available via direct ini or registry editing, first enter debugger, then quit emulator to create default entries. Debugger sub section, debug_disasm_flags is bit mask, bits 0 to 4 are lower case bits (0=instruction name, 1=registers, 2=hex values, 3=instruction size), 4=show T/F, 5=show EA, 6=show EA contents, 7=show instruction opcode/opwords. Currently they only affect disassembler output. Defaults changed to lower case.
- Don't log flood "DMAL error" messages if (totally unusable) programmed mode with HTOTAL smaller than last audio DMA slot.
- DMAL (Serial DMA slot allocation information from Paula to Agnus) start cycle was not updated to match new custom chipset emulation.
- Small audio period causing repeated samples is now fully accurate, including 1 extra cycle delay if DMA request includes pointer reset (sample restart).
- Very strange programmed modes could have made it impossible to quit emulator normally.
- Adjusted behavior of CPU reads from write-only custom registers (Bozebobs / Area08)
- Fixed crash when loading some old A500 statefiles with CD32 CD incorrectly enabled.
- Adjusted "Smooth Copper" hack to work with new custom chipset emulation (not fully correct yet).
- Console log/debugger DPI adjustment.

Beta 32:

- HDIW blanking could get stuck in always-on state if VPOSW was written mid screen with out of range values. (Agony Psygnosis title screen become fully border color blanked if ECS)
- Wait 2 fields before updating visible screen after display parameter change. Hides glitches at the bottom of screen that can appear when last visible line is actually line 0 or higher. Direct 3D output is still refreshed normally, only difference is that data comes from old frame. Most "real" displays would either roll (CRT) or blank temporarily (LCD etc) in this situation.
- On the fly config changes are again checked and processed before vertical position 0 starts. Previous display updates moved it to line 1 or later, depending on mode. This might have caused unexpected side-effects.
- Hardwired vertical blanking didn't work correctly if OCS Denise was configured.
- Removed OCS Denise H-blank bug advanced chipset option. It is now always enabled (if OCS Denise configured) but "buggy" top and bottom line is only visible if overscan mode is Overscan+ or Extreme.
- Switching from some other config to/from ECS Agnus 512k/512k configuration where Agnus sees 1M chip RAM (Agnus sees upper half of chip RAM at usual $800000 address but CPU sees it at $c00000) didn't always change config correctly. For example loading statefile that uses ECS 512k/512k config when current config is OCS 512k/512k, didn't switch config correctly. (Very old bug)
- ECS Denise + EXTHBLANK=1: vertical blanking (display blanking only) is fully disabled.
- New undocumented feature: DIGHIGH bits 3 and 11 are vertical start/stop bit 11 in ECS Agnus. AGA replaces them with horizontal H0 bits. It is not documented in HRM ECS chapter documents them, officially V10 bit is highest (and even V10 is almost totally useless). VPOSR/W V11 does not exist and vertical counter is only 11 bits (0 to 10) which makes DIWHIGH V11 feature that makes no sense.
- CIA/CPU timing fix in b21 was partically broken.
- Programmed mode vertical display start/end calculation adjustments.
- Bitplane refresh slot conflict emulation was "too random". Internal behavior is still unknown. (First demo / Starline corruption if ECS)
- INTREQ write that clears interrupt(s) didn't use cycle accurate (delayed) code path. (La Weird / Cave)
- Vblank interrupt horizontal start was not adjusted to new custom chipset emulation (Spectre Party / Phenomena and others)
- VHPOSR was not adjusted to new chipset emulation (hpos=0 reads previous vertical line)
- CD32 NVRAM write that wraps around caused NVRAM file size to increase.

Beta 31:

- Sprite right overscan fixes.
- Programmed mode adjustments. HSSTOP does not affect display position. HSSTRT - HSSTOP only needs to be long enough for display device to detect it. Note that WinUAE will accept invalid HSSTOP and other impossible in real world programmed modes, there is no validation against real world video signal standards.
- HBSTRT/STOP accuracy improved in really weird situations (like having multiple HBLANK regions in single scanline..). Undocumented special case emulated: if HBSTRT to HBSTOP is less than 1 lores pixel (4 shres pixels), 4-(HBSTOP-HBSTRT) shres pixels of bitplane is visible before COLOR0 starts. Subpixel mode required. Apparently switching border on takes 1 lores pixel. (HB is Denise/Lisa internal trigger for border on state)
- Bitplane to refresh strobe vs refresh-only slot conflict behavior fixed (Water intro / Acme, Vectors Again / Armada etc, glitches are now correct if ECS Agnus)
- Optimized bitplane allocation now works correctly in NTSC mode, needs 2 alternating buffers because line length alternates in NTSC.
- Writing to horizontal DIWSTRT/STOP just before it would match missed the check.
- DIWHIGH full AGA hires/shres positioning bit support.
- Line buffer size was not large enough to fit "extreme" overscan superhires mode.
- HCENTER 8/9 CCK horizontal blanking period emulated. HCENTER generates extra sync pulse when it matches and current line is vsync line and long field. This is normally invisible but it can be visible in (weird or badly configured) programmed modes. Visible result is small black box, about at the middle of last line(s), ECS Denise only. This is never visible on AGA because blanking is generated by Lisa using internal registers. ECS Denise uses CSYNC pin to detect blanking condition. OCS Denise does not have CSYNC pin and uses internal hardwired blanking only.
- Fixed wrong border color/black color in right border when horizontal centering was enabled. Probably also possible in some other situations.
- ECS Denise hires resolution sprite horizontal position bit works strangely if bitplane resolution is lores or hires: first pixel row of sprite becomes transparent. Horizontal bit only works correctly if bitplane resolution is superhires.
- Subpixel emulation mode + superhires had single shres pixel offset in horizontal hblank and borderblank positioning. This change also means borderblank/border bug can't be anymore visible without subpixel mode + superhires resolution.
- DMA debugger uses first refresh slot to show if line is vertical blanking (B), vertical sync (S) or vertical diw is open (=), second refresh slot is used for long field (F) and long line (L). These special slots are marked with '*' to not (too easily) confuse them with same symbols in other slots. Horizontal diw ('(' and ')'), programmed horizontal blanking ('[' and ']') and programmed horizontal sync ('{' and '}') are also marked.
- PCem v17 merge. Some SVGA updates, Voodoo 3 updates, x86 CPU updates. (Probably moving to 86box in the future, PCem is not updated anymore.)
- Misc panel statefile text box was empty (might be Windows version specific or something) even when loaded config had statefile configured.
- Seems to run normally under Windows 11 insider build.
- fs debugger command fixed, display emulation updates made it randomly inaccurate.

Beta 30:

- BEAMCON0 LOLDIS modification was ignored unless display setup needed reinitialization (programmed refresh rate change etc..)
- Programmed VBLANK (BEAMCON0 bit 12) didn't blank lines after VBSTRT in some situations.
- Fixed scanline offset if resolution and BPLCON1 was changed during same scanline.
- Sprite horizontal wrap around support was only partially implemented.
- Horizontal display window (DIWSTRT/DIWSTOP) didn't support some wrap around/start larger than stop conditions correctly.
- Borderblank glitch emulation improved. If HDIW is open before first BPL1DAT access, there is 1.5 lores pixel COLOR00 gap between borderblank and first bitplane pixel.
- Reset didn't clear CIA-A/B B data port/direction.
- Bitplane first refresh slot conflict (strobe signal) was not reported and didn't trigger simulated conflict corrupted graphics.
- Added A590/A2091 v4.4 ROMs to ROM scanner. Probably original release version because ROMs had labels 390388-01 and 390389-01.
- If on the fly (emulation has already been started) Quickstart model or model specific change modifies expansion devices, force internal "Restart"-button press. Without it not all expansion devices initialize correctly.

Beta 29:

- b28 copper update was wrong. Second attempt. (Hotbleeps etc. This time without breaking others.)
- Sprite fix, sprite DMA does not start if frame's initial SPRxPOS/SPRxCTL fill loads vertical start position that matches current vertical position.
- Added bsdsocket IoctlSocket SIOCIFADDR, SIOCIFFLAGS, SIOCIFBRDADDR, SIOCIFCONF, SIOCIFNETMASK, SIOCIFMETRIC and SIOCIFMTU support. Read-only.
- Fixed uaegfx indirect mode BlitTemplate() harmless one byte buffer out of bounds read.
- VPOSW register access always clears LOL bit (if it was set = NTSC long line). It can't be set to one by writing to VPOSW.
- NTSC long/short line order was wrong after horizontal wrap around.

Beta 28:

- Fixed buffer overflow if more than 9 devices were found when enumerating NPCap/WinCap devices. (Special SLIRP cases ignore max size check)
- Mid screen HBlank change didn't force current scan line redraw. It could have caused glitches in some weird situations.
- Fixed crash when display DMA start/stop/position was too weird. (Can happen if setup changes mid scanline with DMA already active)
- AGA borderblank hires pixel delay is working again.
- b27 bitplane allocation optimization fix.
- Copper WAIT can't wake up at the start of scanline. (This was lost when custom emulation rewrite started)
- Sprite emulation fix, vblank end sprite reset and first possible sprite DMA didn't use same line.
- Blitter register modification while active support was partially broken few betas ago.
- ECS Denise H/V-blank emulation updates.
- RTS/RTE/RTR/RTD disassembly shows also return address, calculated using current stack pointer value.
- DMA debugger now includes DDFSTRT (0), DDFSTOP (1) and hardwired DDFSTOP (2) positions if match caused bitplane DMA to start (DDFSTRT) or stop (DDFSTRT/hardwired DDFSTOP).

Beta 27:

- Graphics glitches fixed (b26 and b25)
- Some programs (for example Wings of Death) that use OCS compatible 60Hz hack didn't have working vblank interrupt. If write to VPOSW jumped to mid last line, vblank start line check was missed.
- Added some optimizations (for example don't create new bitplane allocation table for current scanline if previous line had identical bitplane cycle sequence)
- Added bitplane/audio DMA conflict emulation that can happen in bitplane overrun situations. In this situation no DMA transfer is done (neither BPL or audio).
- Integer scale filters usually forced all scanlines to be fully redrawn, even if content didn't change.
- VPOSW fake 60Hz now uses 60Hz height if refresh rate is >=55Hz and 50Hz height if less than 55Hz. Matches 1081/1084 etc CRT behavior better.
- "Remove interlace artifacts" last line flickering fixed.

Beta 26:

- Write to most programmed mode registers (ECS/AGA only) caused display emulation reinitialization, even when modified register was not in use. Now reinitialization is only done if matching BEAMCON0 bit(s) is set. Fixes BC Kid screen flashing, game updates color registers but writes too much and modifies first few programmed mode registers.
- Remove interlace artifacts option works again but is not fully functional. (last line might flicker, copper modifications are not always accurate)
- On the fly switch to subpixel mode caused hang in some situations.
- Default overscan mode had one extra pixel row and line. Overscan+ size also fixed.
- Fixed display glitches in 68020+ memory cycle exact modes (memory cycle exact only).
- Shader files are again supported in Direct3D 11 mode. FX11 moved to separate static library.

Beta 25:

- On the fly PAL/NTSC switch (VPOSW trick or BEAMCON0) incorrectly adjusted screen width in some situations. Height is now adjusted relative to total vertical lines, some games use VPOSW trick to generate 56Hz mode which was previously scaled as NTSC.
- Programmed mode (BEAMCON0 bit 7 set) with PAL/NTSC like parameters are not anymore considered as VGA-like.
- Hardwired vblank end line was 1 too late.
- Fixed repeating autoresize.
- Yet another HBLANK related undocumented feature: HBLANK start enables border. If HBLANK start is moved to visible area and bitplanes are active during HBLANK: border gets re-activated and bitplane re-starts when next BPL1DAT write happens. This probably can't be used for anything useful because display's black level detection will get confused (weird colors, wrong black level etc) if HSYNC period is not blanked.
- And another undocumented feature: if horizontal display window was closed due to HBLANK and next BPL1DAT access is close enough (and after HBLANK end in visible region, so probably can only happen in bitplane overun condition, normally shift registers empty and only background color is shown), display window opens 1.5 lores pixel early, showing previous BPL1DAT loaded pixel pattern.
- Horizontal diw now works correctly even if display horizontally "wraps around" due to (much) larger than normal HSYNC position.
- Light gun/pen fix.
- Partial fix to cycle-exact + MMU emulation (but could also happen without MMU) weird copper behavior. Internal cycle counter was not always guaranteed to be chipset cycle aligned.
- GUI lists (for example Hardware info) column DPI support.
- Fixed D3D11 OSD led crash (D3D9 worked) if display moved monitors and they had different DPI.
- Fixed RTG unexpected display size/scaling, introduces few betas ago.
- Fixed RTG related crash when switching fullscreen modes (possibly also in other modes).
- Fixed chipset emulation buffer overflow in some programmed modes, buffers need to be slightly larger now that vertical "overrun" is supported.

Beta 24:

- usegfx Picasso96 DISPLAYCHAIN is now only forced if uaegfx monitor is monitor id=0 (shared with native chipset). Previously DISPLAYCHAIN was always forced.
- uaegfx in other monitor than native: uaegfx window was tiny before it resized to selected Picasso96 resolution. Now reset default is 640x480 instead of 0x0. uaegfx window also didn't re-open after reset.
- Extra multi monitor mode window positions are now stored to registry/ini.
- Bitplane wrap around (extreme bitplane overrun condition where BPLxDAT fetches before hsync start are visible after hsync end) is now fully supported.
- Sprite fix (Shadow of the Beast 3 missing sprite)
- Adjusted extreme overscan positioning and filter (for example integer scaling) support improved.
- Two (or more) horizontal DIWSTRT/STOP regions are now supported. Previously only first region was visible.
- Programmed mode WB modes should now have 100% correct vertical and horizontal blanking. Hardwired blanking is now correct in overscan+ modes.

Beta 23:

- Display positioned was shifted in some programs. (b22)
- Fixed horizontal jitter in some AGA programs. (b22)
- Black screen in some programs. (b22)
- Automatic scaling fixed. (b22)
- Switching from programmed horizontal blanking back to hardwired h-blanking didn't work.
- Added Overscan option to Display panel. Overscan selection is default from previous versions. This probably will replace will TV filter options in the future. Overscan+ and Extreme are even more larger modes, only useful if programmed blanking is enabled, more details later. TV options probably need some calibration.

Beta 22:

- Copper vblank start was delayed by few cycles.
- uaegfx used unsafe (assumes unrecoverable state if invalid address) address translation function without validating the address first. Invalid VRAM address would have crashes emulated Amiga.
- "Add harddrive" tried to incorrectly guess logical geometry and didn't enable full drive mode if drive didn't already have RDB. (and it become weird and useless drive)
- Picasso96 v3.0+ uaegfx screen dragging support fixed.
- Extended window border mode joystick/mouse direction/buttons indicators fixed.
- Overscan blanking filter settings added to filter profiles.
- DMA debugger now shows AGA FMODE>0 bitplane and sprite fetch read values fully (both 32-bit and 64-bit). Previously it was always truncated to 16-bit.
- Memwatch points now fully support AGA FMODE>0 bitplane and sprite fetches.
- Memwatch log only (L) flag was not cleared when memwatch point was replaced or reset.
- Bitplane graphics wrapping around is now emulated (BPLxDAT fetch done before hsync but it is long enough to be partially visible after hsync). Normally can't happen but it can happen in bitplane DMA overrun situations or if weird programmed mode. Not fully working yet.
- Hard reset tried to free hardware emulated RTG VRAM twice causing memory corruption.

More programmed mode/normal mode special case related updates, including really weird never before used modes (Thanks to Ross again :)) Still work to do.

- Many programmed screen modes had corruption.
- Vertical now also supports wraparound (Horizontal added in b18), if vblank starts at line 0 or later (normal PAL/NTSC vblank start is last line), they will be correctly drawn after "real" last line. More lines are shown if VB starts later than normally.
- BPLCON3 EXTBLKEN (horizontal blanking) is now fully emulated and accurate. Note that ECS Denise works differently than AGA:
-* ECS Denise: ECSENA=1 + EXTBLKEN=0: blanking disabled, including vertical (except tiny blanking during hsync to keep display black level detection working), ECSENA=1 + EXTBLKEN=1 and ECSENA=0: hardwired blanking. No programmed blanking, itseems HBSTRT/HBSTOP registers don't exists in ECS Denise. 
-* AGA: ECSENA=0 and ECSENA=1 + EXTBLKEN=0: hardwired blanking. ECSENA=1 + EXTBLKEN=1: HBSTRT/HBSTOP programmed horizontal blanking.
-* Note that display devices need blanked signals during part of hsync period (and vsync), it is used to set black levels, without blanking, image might become very dark or have strange colors, have strange brightness pulsing etc. This is not emulated.
- Increased internal max native display width by 2 lores pixels. ECS Denise/AGA can show 1 lores pixel more in right overscan compared to OCS. (Increased by 2 to keep display width even)
- Programmable vertical blanking is now handled accurately. VBSTOP = line when sprites are reset and first loads are done. VBSTOP+1 = first visible line. Sprites are also now emulated correctly even if VBSTRT is after vsync period. Display is now correctly blanked if vertical blank period is in visible part of display. First line of display is also adjusted depending on VBSTOP value when BEAMCON0 VARVBEN is enabled, even if other bits are not set.
- Advanced chipset "OCS H-Blank glitch" implemented (option already existed few betas ago). When enabled, first blanked line has background color visible in right border and last visible line has right border blanked. Not emulated by default because it looks really ugly and it is usually invisible when using real hardware due to overscan.
- Programmable horizontal (HSSTRT and HSSTOP) and vertical sync (VSSTRT and VSSTOP) emulation improved. Previously h/v-sync and h/v-blank was combined, now they are fully separate.

Part of below was already known previously but this time all chipset versions have been tested one by one and fully emulated now:

A1000/OCS Denise/ECS Denise last line differences:
- When A1000 Denise gets VB strobe, vertical blanking starts next line.
- When OCS Denise gets VB strobe, vertical blanking starts after 2 lines.
- When ECS Denise/AGA gets VB strobe, vertical blanking starts next line.

A1000 Agnus sends first VB strobe when current line is first line, line zero. (Which as a side-effect causes delayed vblank interrupt, interrupt is generated when line 1 starts) Other Agnus versions sends first VB strobe when current line is last line.

Bitplane DMA vertical DIW is forced closed when VB starts and sprite DMA is inhibited during all VB lines. Unless ECS/AGA and BEAMCON0 HARDDIS=1 or VARBEAMEN=1 or VARVBEN=1. (Note: DDFSTRT/STOP limits are not same, BEAMCON0 HARDDIS=1 or VARBEAMEN=1 or SHRES=1 or UHRES=1)

A1000: first blanked line is line 1. Line 0 is last visible line at the bottom of screen.
OCS Denise: first blanked line is line 1. Line 0 is last visible line at the bottom of screen. (This was not previously emulated, some programs might suddenly have different colored last line)
ECS Denise/AGA: first blanked line is line 0. Last line (312/313/262/263) is last visible line at the bottom of screen.
(Back in the CRT days last line was almost always invisible)

Normally only COLOR0 changes are visible during last line. All chipset versions have same first visible line. OCS Denise outputs 1 more visible line than ECS Denise/AGA in default PAL/NTSC modes.

Vertical blanking in this context means RGB output DAC (after Denise/Lisa) is in blanked mode. Vertical sync usually is different than vertical blanking in programmed modes.


Beta 21:

- Blitter line draw with B channel enabled supported. Flexible Zoom / Upfront uses it to load line pattern using DMA (undocumented feature, not really useful because it wastes lots of DMA time) instead of using static BLTBDAT 16-bit pattern.
- Blitter got stuck in some 68020+ CE configs.
- Copper blitter wait glitches are now accurately emulated.
- Cycle-exact mode CPU to CIA E-clock syncronization was not accurate.
- BPLxDAT CPU/copper write timing fix.
- FSINCOS native FPU mode had SIN and COS values swapped.
- If CPU reads from non-existing address space and code is executed from ROM, return all zeroes. This might not be exactly correct because it was only quickly checked on real hardware. Fixes Batman Vuelve slideshow II / Batman Group.
- A2410 works again (broke in 4300b1)

Beta 20:

- Blitter internal RGA bus pipeline emulation implemented.
- When blitter was started for the first time and cycle-exact mode: blitter idle time from start of scanline to BLTSIZE write position was not emulated cycle-exactly. Almost harmless previously, now it caused visible problems with statefiles that expected blitter to steal all cycles. Very old bug.
- Copper didn't stop when both COPJMP1 and COPJMP2 was strobed without active copper DMA. (b18)
- Copper WAIT wrong special case fixed. (Hotbleeps and EyeQlazer)
- Blitter register modification while active update. (For example fixes Demo Mix 5 intro / Tommyknockers). Not 100% yet.
- AGA FMODE bit 14 bitplane scandoubling odd/even scanlines were swapped. (b18)
- Optimized mode bitplane emulation didn't do anything if scanline's bitplane pointers crossed end of chip ram. Normally never happens but really weird programs or free running bitplane pointers might not have been 100% accurately emulated ("Warning: Bad playfield pointer" message). Ancient bug with ancient comment (probably from pre-0.8 UAE) that this should be fixed someday..
- Some more UHRES parts implemented. (Yes, this is useless but cycle usage still should match real hardware if UHRES is enabled for some weird reason!)
- b18 FSINCOS update broke non-softfloat FSINCOS.

Beta 19:

- Bitplane max plane limit was calculated before internal aga=true variable was set. Loading AGA statefile forced OCS/ECS limits if FMODE not updated in copper list.
- Fixed sprite glitches in some situations.
- Fixed graphics glitches if resolution was changed in horizontal blanking region.
- Different bitplane delay for odd and even planes didn't work correctly in some situations.
- Fixed memory buffer overflow when some types of file dialog was opened. (old bug)

Note: "Remove interlace artifacts" Display panel option is currently not supported. It must be disabled.
Note: Blitter cycle allocation is not yet pipelined. (Which is the real cause for 2 idle cycles after writing to BLTSIZE.) This will most likely affect copper blitter wait timing.


Beta 18: Version bumped to 4.9. (Which will become 5.0 later this year. Probably. New chipset and Voodoo 3 emulation are big enough features.)

Display emulation rewrite. Bitplane sequencer, copper (mostly) and internal pipelining is rewritten to match schematics.

NOTES:
- Performance is slower when running custom chipset heavy programs. Will be improved later.
- There should be no visible differences when running "normal" programs.
- Horizontal positions shown by debugger are now shifted by 4 cycles compared to previous versions. Old versions basically used wrong origin (based on DDFSTRT immediately starting BPL DMA which was not correct). I'll write more detailed notes about internal Agnus logic later.
- Programmed mode (BEAMCON0 and friends) rewrite is still work in progress, some glitches might be visible.
- D3D9 shaders are not currently supported in D3D11 mode.

What to check:

- Old bug(s) reappearing (hack removed but missing edge case wasn't reimplemented properly)
- Other bugs.
- Really bad performance. (But buy a new PC if you have something like pre-Sandy Bridge era CPU). New emulation is more complex but also some previous "lazy evaluation" optimizations might not be fully working.

- Bitplane logic internal pipeline is accurately emulated (DDFSTRT/limit check, BPRUN latch, sequencer output, RGA output latch = 4 cycle delay from DDFSTRT decision to first possible BPLxDAT slot). All known side-effects can be easily explained now. For example bitplane/copper/sprite DMA on/off mid scanline is now fully accurate (including all side-effects) with explanation that actually makes sense.
- Copper free cycle check uses pipelined bitplane allocation, copper decisions are done early (2 cycles).
- Display rendering part of emulation is now from hsync to hsync. Was previously scanline to scanline which required extra hacks to support displaying early horizontal positions in right border. All of that simply work automatically now.
- Bitplane DMA "overrun" condition special cases removed, it isn't needed anymore to handle overrun correctly. Lots of other similar hacks also become obsolete and are gone.
- Bitplane overrun new undocumented "feature": because BPL sequencer uses horizontal counter bit 0 as a clock signal, HPOS 226 to 0 transition does not increment BPL sequencer counter: same BPL cycle gets repeated.
- Lots of special case BEAMCON0 blanking/sync improvements. (Thanks Ross :))
- HBSTRT/HBSTOP now supports AGA-only 140ns/70ns/35ns resolution bits.
- BPLCON3 EXTBLKEN didn't affect blanking timing if it was changed after BEAMCON0 was written to enable programmable blanking.
- Sprite emulation is now also pipelined but because most of sprite decision logic is in "STCMSD" black box, exact behavior is still not 100% known. No non-working programs known.
- DMA debugger now shows DMA cycle conflicts, top/left contains string "!<register number that conflicts>" if conflict.
- Programmed display mode vblank timing calculation fixed (usually was less than 1Hz off), also correctly uses NTSC base clock if NTSC hardware.
- Copper debugger (od) now stores also copper jumps and copper disassembler follows jumps automatically (if not after SKIP). o3 = start from vblank (COP1LC value when vblank started).
- Loading statefiles created with 4.4 or older and blitter was active when statefile was created: loading statefile corrupted memory. Old-style blitter active statefiles are not supported: blitter is restored in stopped state. I haven't yet decided if support gets re-implemented.

- Prometheus PCI config word wide access byteswap fix. Fixes Prometheus Voodoo 3 Picasso96 driver hang. Note that 8-bit has graphics corruption, driver is buggy and has off by one error when it tries render fonts (extra line of garbage) and when rendering icons (and probably other image elements), it sets host-to-screen blit height to 1 but actually keeps writing multiple lines worth of data to blitter's CPU data input register. It seems real Voodoo 3 blits all extra lines and drops the last line. Partial workaround implemented.
- Saving config file: Confirm overwrite (which is actually rename as configuration.backup) if it is read-only.
- Softfloat FMOD, FREM update. FSINCOS implemented, calculates both SIN and COS simultaneously, previously FSINCOS called SIN and COS separately. (Andreas Grabher)
- uaeserial.device CMD_WRITE with io_Length=-1 is now supported. Sends data until first zero byte.
- uaeserial.device EOFMODE support implemented.
- uaeserial.device io_ExtFlags Mark and Space parity support implemented.
- American Laser Games Platoon and Space Pirates v1.4 descrambling support added.
- Add quotes to serial, parallel and MIDI port names in config file if they begins or ends with a space. Also escape if name contains quotes.

Beta 17:

- OSD led status bar positioning fixed (b16)
- OSD led status bar is now DPI aware. (NOTE: moving window from monitor to another monitor with different DPI does not yet work correctly)
- BPLCON0 UHRES-bit also disables DDFSTRT/STOP limits according to Alice schematics.
- Sprites in right border were still not fully correct when they crossed "hidden" hpos=0 position. Sprite didn't disappear if start position was after hpos=0 wraparound and sprite wrap around if it started just before hpos=0 stopped too early, last few pixels were missing before start of hblank. (Thanks ross for test program)
- One more blitter fix, last D write was done even if blit didn't have D channel enabled.
- CPU Idle slider value added to GUI. (It was not very clear which end of slider disabled it)
- Loading CD32 statefile with CD audio playback active: mute state was not always correctly restored.
- Loading CD32 statefile with CD audio playback active but paused: pause state was ignored.
- Loading CDTV statefile with CD audio playback active but paused: very short bit of audio was played before audio paused.
- Added "Restart emulation" input target. Does same as GUI "Restart" button.
- Reverted few b1 bitplane emulation changes. Complete rewrite will be planned for later because current emulation behavior is not really correct when compared against Alice schematics.

Beta 16:

- Hard reset leaked indirect mode allocated memory banks (outside of JIT compatible address range), for example Z3 RAM outside of partially outside of first ~2G of address space.
- GUI misc list powerled dims option never worked, option was always cleared. (Only manual config file editing worked)
- fi debugger command now accepts assembly syntax (for example "fi trap #0"). Only max first 3 words (if it is longer than 3 words) are used in breakpoint condition.
- CPU% OSD leading zero removed.
- "Blacker than black" display panel option did nothing in non-AGA modes.
- 68060 unimplemented integer instruction mode + unimplemented instruction with -(A7)/(A7)+ addressing mode in user mode: exception stack frame was created first, then -(A7)/(A7)+ modification was incorrectly restored using supervisor stack pointer.
- 68040/060 unimplemented FPU instructions also update FPIAR. Some invalid instructions don't but this seems to be undefined behavior. 6888x only update FPIAR if FPU exception(s) are enabled.
- 68040/060 unimplemented FPU mode arithmetic exception fixes, all 68060 FPSP test package tests now pass. (and when run using 68040 or 6888x: test errors will match real hardware 100%)
- Fixed FMOVEM.L #xxx,<more than one control register> disassembly.
- Windowed mode status bar height is correctly calculated when window is moved to different DPI monitor.
- Removed ROM scan expansion device result list. It is out of date and code was almost unmaintainable.
- Hopefully last blitter update related fix, copper blitter waits should work correcly again. (This is a hack. Copper emulation also needs an update.)

Beta 15:

- PCI Virge emulation. Not much point but Virge emulation already existed, so... Not all byteswapping modes emulated, only what Mediator driver needs to work correctly. G-REX + Virge also works but 24-bit modes have some byteswap problems.
- PCem PCI device config byte wide reads fixed (Voodoo/Virge + G-REX in CSPPC boot screen PCI list PCI device type is now shown correctly)
- Voodoo 3 now works with G-REX CGX4 drivers.
- G-REX didn't detect any PCI cards after FM801.
- PCI RTG board native/RTG mode autoswitching improved.
- Aranym JIT update missed move from FPU register to data register clamping (for example FPn -150.0 to Dn.B should become -128). Re-added.
- Fixed FPU instruction JIT blacklist support.
- Combitec HD 20 A/HD 40 A (not 100% sure it is exactly this model but very likely) emulation.
- Another blitter/copper timing bug fix. (b12)

Combitec HD 20 A/HD 40 A:
- OMTI compatible HD controller. Usual OMTI IO offset 0x641. Base address is at $800000 + autoboot ROM at $f00000.
- Autoboot ROM supports autoboot under KS 1.2 (seems to use same hack that other KS 1.2 autobootable HD controller use)
- Boot ROM version string: "autoboot.device (autoboot.device 6.18 (27.8.89) , Rom_1.2, FFS, Bildchen, Search, New Boot Partition Programmiert von Bernhard Möllemann & Hartmut Sprave (C) Combitec 1988,1989"
- Boot screen ("COMPUTER TOP EQUIPMENT COLOSSUS(R) HD-AutoBoot")

Beta 14:

- Fixed possible out of bounds array access when virtual mouse driver is installed.
- Added more strict coordinate/size validation to uaegfx blitter functions.
- JIT shift instruction fix rewrite, they still didn't work fully correctly and my tester didn't catch them because JIT uses registers differently in different use cases etc.. But it did break most Cirrus Logic based chipset Picasso96 drivers. Corrupt icons and text, at least with some Picasso96 versions. (Still need more optimal fix later)
- Improved PCem RTG mode scanline based display update timing.
- CyberVision64 (S3Trio64) vsync interrupt fix, could have caused stuck interrupt when monitor driver was started.
- Hardware emulated RTG boards interlace modes fixed (again).
- Gaps between on screen leds are now smaller.
- FAS246 SCSI chip apparently has Features Enable always set (or bit does not exist anymore). DKB RapidFire tests if transfer count high register works (write something, read it back) and assumes it is enabled without modifying Configuration 2 Register. Rapidfire worked when it first implemented because transfer count high was not originally correctly conditionally emulated. Datasheet seems to be MIA.
- Fixed 32-bit Chip RAM size string array out of bounds access if 768M or 1G was selected. (b11)
- Voodoo 3 byteswapped modes Mediator PCI sound card DMA hack fix.
- Yet another 2D/3D registers-only Voodoo 3 byteswap mode emulated. Some W3D drivers use it. (Without it nothing was rendered and log was mostly filled with "triangle_setup wrong order" messages)
- Blitter line mode was partially broken in non-cycle exact modes and CE mode wasn't fully accurate (b12). Still some edge cases to fix.
- DMA debugger blitter slots are now marked as BLT-x (normal), BLF-x (fill) or BLL-x (line). x = channel. RFS, DSK, AUD, SPR and BPL slots include channel numbers. (Easier to remember than xxxDAT register address numbers)

Shift instructions are really annoying to JIT compile because flags works very differently between x86 and 680x0:
- Shift count 0: does not modify any flags | clears C, updates Z and N. Keep original X.
- Shift count larger or same than data size: C undefined | C (and X) always equals last bit shifted out.
- Shift count mask: masked by 31 (except if x64 64-bit word) | masked by 63.
- Shift count from 1 to data size-1: practically identical behavior. Only needed extra step is simple C to X copy.

Beta 13:

- PCI Voodoo 3 3000 emulation from PCem.
- Fixed existing PCI bridge emulation memory mapped space address calculations (previous PCI boards were all IO only)
- According to Alice schematics, AGA delays blitter finished signal until last D write is done (2 cycles later, only if not line mode and D is enabled). Previous chipsets clear blitter busy (and trigger interrupt) when last D write still pending.
- Added GVP G-Force040. Basically same as G-Force030 (same ROM, same memory config), different internal GVP hardware ID.
- Fixed GUI debugger hang if something was selected in debugger and then focus was changed.
- MAST Fireball DMA address pointer handling fix, some address nybbles were decoded incorrectly. (I did say it has really strange DMA address pointer setup)
- PCem RTG boards didn't always refresh screen fully when switching modes.
- b12 blitter fixes, start up delay was 1 cycle too long, idle cycle before final D write does not need to be free cycle.
- b12 blitter fixes, blitter fill mode setup missed some conditions.
- Mainboard RAM settings disappeared in b11.
- GD5446 (Picasso IV) blitter fix, "Invert Color Expand Source Sense" bit was not handled correctly in all blitter modes. (For example caused MUI 3.8 "REGISTER NOW" window corruption)

Vooodoo 3 3000 details:
- 16M VRAM (max supported) First hardware emulated board that supports full HD at 32-bit.
- PCI board, PCI bridgeboard must be also configured.
- BIOS ROM seems to be required (at least Mediator Voodoo Picasso96 driver reads some data from BIOS), currently must be in ROM path and named voodoo3.rom. Must be from PCI Voodoo 3 3000.
- Native/RTG switching is implemented by checking status of SVGA screen blank bit. Might not always work correctly.
- Hardware accelerated 3D confirmed working.
- PCI to PCI DMA supported, compatible with Voodoo 3 + SB128 or FM801 sound card Mediator DMA hack.

Beta 12:

- 68000/010 cycle-exact/prefetch: If long write access, check IPL when first word of long has been written, not after last word. Fixes Made in Croatia / Binary (again).
- Cycle-exact blitter DMA sequencer emulation now matches real hardware shift register based logic. Includes almost accurate emulation of on the fly modifications of BLTCON0/BLTCON1 (blitter cycle diagram changes). This should fix remaining A500 demos that do stupid things with the blitter. For example TLC Lotus 2 crack intro which is very broken.
- When in warp mode, alternate between 10 and 11 skipped frames (was always 10). Previously if program showed exactly 10 frame animation, it looked like emulation had paused.
- Reverted b1 copper skip update, it broke Tek/Rampage.
- Added Hardital Synthesis emulation.
- Added M.A.S.T. Fireball emulation

Hardital Synthesis:
- Clone of ICD AdSCSI (It seems to be common theme: Hardital Dotto is a clone of ICD AdIDE, Hardital TQM appears to be a clone of DKB Cobra)
- Identical autoconfig data.
- Driver has strings "ICDBoot.device", "ICD BootRom (C)1992" "hidden" in nibble part of boot ROM. All visible strings have been edited from "ICD" to "SYN". Different than AdSCSI ROMs, probably based on later not yet dumped AdSCSI ROM version.

M.A.S.T. Fireball:
- True DMA! Has really weird way to set up DMA controller address pointer, it needs minimum of 7*2 IO writes, max (7+6*7)*2 IO writes to configure it. Yes, amount of writes depends on DMA address value.
- Not RDB compatible. Uses same partition table structure as A2090.
- ROM version string: "FireBall 0.4 (10 Mar 1990)"

Beta 11:

- S3Trio/S3Virge double scan mode detection fixed. Calculation used size parameters before bit depth specific screen width adjustments.
- Hardware emulated RTG boards interlace modes fixed.
- Added DMA capable RAM checkbox to RAM GUI panel.
- Added force 16-bit checkbox to RAM GUI panel. Affects more compatible and cycle-exact CPU modes only. If 68020+ and 16-bit: CPU always splits 32-bit accesses to two 16-bit accesses. Defaults have not changed, chip ram is 32-bit if A3000 or AGA, all other RAM is 32-bit if 68020+ CPU. Most common use case is to be able to change "slow" RAM bus width. ("Real" 16-bit "slow" ram vs 32-bit accelerator board "slow" ram)
- Lightpen cursor left trails if vertical centering was enabled.
- Effects 11 (FX11) updated to latest (and apparently final) version. WinUAE uses it to support D3D9 shaders in D3D11 mode.
- Fixed HAM left border corruption if overscan HAM mode and bitplane horizontal start was earlier than current filter horizontal start. (Old bug)
- scp disk image format support fix (keirf). Account for residual flux time at end of final revolution. Fix double replay of revolution #0 when track is initially loaded.
- uaedbg does not anymore report word reads from execbase or exception vectors as invalid if CPU is 68000/68010 or if chip ram is 16-bit wide.
- $bfff00 debug logging word/long behavior changed. Format string without %l (except pointers: %p, %s and %b) is now consided word even if long was written to $bfff00.
- A2386SX 1.2M floppy error workaround. It expects to read 1.2M and 1.4M floppies using 720k floppy bit rate. 1.4M was already worked around previously. (Software thinks it is using shared Amiga 1760k drive, "Flipper" hardware is not emulated).

Beta 10:

- Added workaround for Windows socket behavior difference compared to Unix/Amiga. Windows return truncated data and error status if bsdsocket.library recv/recvfrom() supplied buffer is smaller than available data. Unix/Amiga sockets will also return truncated data but don't return error status.
- Debug logging $bfff00 write truncated long words to words.
- Log window size was not stored in ini mode.
- ini file is now only saved if contents has been modified.
- Fixed CV64/3D in Z2 mode. (CGX4 hang, Picasso96 wrong colors in some modes)
- Fixed PicassoIV overlay. (Possibly can only happen with some P96 versions, at least some set overlay at VRAM address zero which accidentally worked)
- Fixed Cirrus Logic blitter bug that was introduced few betas ago (for example some CGX4 modes had ghost shell window cursor images)
- uaedbg invalid access message now includes information if it was caused by any chipset DMA channel. Memwatch logging must be enabled (w + return in debugger or any memwatch point enabled)

Beta 9:

- 64-bit JIT used wrong flag handling mode which broke some programs (b1).
- Improved chipset display mode frame rate timing stability in sound emulation disabled and WASAPI sound modes.

Beta 8:

- Remaining JIT shift instruction bugs fixed. (I really didn't want to but I had to learn a bit more how JIT internally works..). My tester now passes all normal tests.
- Some hardware emulated boards bypassed byte/word swapping if accessed by PPC CPU.

Beta 7:

- Fixed incorrect bitplane DMA overrun condition that made Zool 2 AGA flicker strangely (b1) (AGA game with 7 planes but FMODE=0. What a waste of DMA slots.)
- JIT FPU 80-bit host mode should work again (b1)
- Emulated clockport expansions (Prelude A1200 is currently the only one) now support 4 port clockport expander. "-" = no expander (Same device mapped to all 4 slots), "1" = expander slot 1 and so on.
- Added Zorro 2/A500/CDTV DMA controller 24-bit DMA checkbox in Expansion panel. (Unticked = full 32 addressing capable, ticked = 24-bit access only, real world behavior) Previously some emulated 24-bit DMA controllers had full 32-bit support, some didn't.
- All Z2/Z3 RAM banks now have DMA capable checkbox in RAM panel. If not ticked and DMA HD controller tries to access it, read returns all ones and writes do nothing. (In real world result could be memory corruption, hang etc). This can be used to quickly test if some real world DMA controller + accelerator combination with accelerator RAM set to no DMA causes similar problems in emulation. Other RAM banks only have config file support. Find RAM name in config file and then replace "*_size" with "*_options=nodma=true". For example "bogomem_options=nodma=true" makes slow ram not DMA capable. NOTE: Chipset DMA is not affected even if chip ram DMA is disabled, it only affects mainboard (CDTV and CD32) and expansion CD/HD DMA controllers.
- Added CD image select/eject keyboard shortcut. END+F5 = select CD image, END+SHIFT+F5 = eject CD. Statefile quick restore moved to END+F6. NOTE: currently END+F5 opens even if there is no emulated CD drive.
- 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.
- Hardware emulated Z3 RTG boards had wrong autoconfig size configuration. This caused access faults if MMU was enabled.
- SVGA chip vblank interrupt acknowledge forced unnecessary full display refresh.
- ALT+Space does not anymore open WinUAE window standard menu when input is captured.
- JIT + Hardware emulated RTG board should fully work again.
- JIT MOVEM/MOVE16 direct RAM access optimization (calculate address only once, then do moves vs do separate multiple calculate address+move combinations) is now automatically disabled if hardware emulated RTG board is enabled, most have byte/word swapping logic which would cause cause graphics corruption if same MOVEM/MOVE16 copy was first used for RAM reads or writes and then later (when it was still in translated format) it was used for VRAM reads or writes. At least CGX4 does this.
- JIT LSL/LSR fixed (temporary fix, better fix later that should also fix other shift instructions). jit_blacklist config entry should be removed now.

Beta 6:

- Fixed CV64/3D 3D vertical clipping. Fixes at least warptest corruption when test texture goes out of screen vertically.
- Fixed CV64 and CV64/3D weird behavior (pauses, possible "hpos" error dialog) due to interrupt triggering being called from a thread.
- Fixed possible crash if hardware mouse pointer was very near to end of VRAM.
- Debugger TO, Te and Tf didn't fully use current mmmu mapping mode. (For example TO output was corrupted if system was A3000 with loaded superkickstart)
- x86 bridgeboard VGA display stopped updating every time display mode changed. (b1)

Beta 5:

- If ADF started with 4 first bytes of executable (x000003f3), it was mounted as a bootable executable. Even if it was disk image and too large to fit in 880k image. Exe mounting is now only done if size is smaller than 880k and file extension is not known disk image extension. (B.A.T. II disk #4)
- Read random data also if disk image is inserted, drive is selected but motor is stopped. Previously random data was only returned if drive was empty.
- CV64/3D 15/16/24-bit graphics glitch fix (b4 debugging code)
- CV64/3D emulated chip model was wrong, fixes WarpTest in perspective correct mode.

CV64/3D + Picasso96 + Warp3D stuff sort of works. CV64/3D + CGX4 + Warp3D does not, reason unknown.

Beta 4:

- Implemented bsdsocket.library SBTC_GET_BYTES_RECEIVED and SBTC_GET_BYTES_SENT.
- Fixed floppy max possible write length, was slightly too short, b1 fixed read timing.
- Hardware emulated RTG sometimes rendered outside of right border.
- Cirrus Logic updates: CGX double scan modes fixed. Vertical multiplication by 2x CL feature supported (used if height >1023).
- All hardware emulation modes: Fixed crash when switching 24-bit modes.
- Added missing safe S3 Virge and S3 Trio thread kill support. (Existing PCem code simply killed it, even if it was currently processing 3D or blitter queue)
- Picasso IV byte VRAM access address "XOR 1" was missing in byteswap bank. (OS4 graphics corruption in 16-bit modes)
- CV64 15/16-bit non-PC modes had wrong colors, one byteswap VRAM mode was missed.
- PCem CV64 blitter emulation didn't support source/destination base address variables and clipping rectangle worked incorrectly if coordinates were negative. Caused graphics corruption if blitter accessed second 2M VRAM bank. Pre-Virge S3 blitter is strange, addressing is based on X and Y coordinates and width of current graphics mode relative to start of VRAM (+optional base offset, 0M, 1M, 2M or 3M), there are no blitter address registers.
- Added horizontal doubling support to PCem SVGA emulation, enabled automatically if mode is doublescanned and tall enough, keeps aspect ratio. For example CGX4 512x384 mode is doublescanned.
- If logging is enabled and PCem RTG board is active: board status gets logged periodically.

This should fix remaining known new RTG emulation issues. JIT Direct still causes problems but it might not be directly JIT problem but due to syncronization issue with threaded S3 blitter emulation.

Beta 3:

- JIT + bsdsocket.library (and probably some other UAE expansions) hang fixed.

Beta 2:

- On screen led crash fix.
- On screen leds size and font type is more closer to old style.
- Added support for Aranym JIT blacklist string and added also opcode name blacklist (never compile listed opcode) support. jit_blacklist=<opcode in hexadecimal> or jit_blacklist=<opcode1>-<opcode2> or jit_blacklist=opcode to disable all "opcode" variants. If you have JIT only problem: try "jit_blacklist=lsl" to work around known updated JIT bug until it gets properly fixed.
- Fixed Picasso96 corruption when running program that opens new RTG screen. (This didn't happen if not yet released Picasso96 2.5.0 was installed)

NOTE: 2 known JIT bugs: 1) If there are weird graphics corruption or similar only if JIT is enabled and Direct/Indirect makes no difference, try "jit_blacklist=lsl" (see above). 2) UAE expansions that need to call m68k code might hang if JIT is enabled, for example bsdsocket.library.

Beta 1:

- Fully merged latest Aranym JIT. Previously it was only partially merged because of unsolved problem that made it completely unusable. It is solved now.
- JIT should be now trace mode (debugger) compatible. If SR register T1 or T0 bit gets set, JIT transparently drops to normal emulation mode. JIT reactivates when trace gets cleared. Very rarely used M SR bit also does same.
- Full CPU tester 68020 test set now passes in JIT mode, including trace mode tests. (NOTE: bcc.b and bsr.b tests fail unless Hard flush is also set)
- JIT has two known not yet fixed bugs: edge case shift condition (shift count is divisible by 32) C-flag problem and ROR/ROL does not clear V-flag.

- x86 Bridgeboard update: PCem x86 core updated to v16. Update added FPU support for pre-486 CPUs. FPU checkbox added to bridgeboard expansion settings.
- uaegfx Picasso96 2.5.0 screen dragging support added.

- CV64 RTG board emulation. S3 Trio 64 chipset emulation from PCem. Roxxler chip is not (yet?) emulated. CGX4 complains if Roxxler fails to work correctly. Picasso96 does not use it.
- CV64/3D RTG board emulation, Z2 and Z3 mode. S3 Virge chipset emulation from PCem. (S3 Virge is very different than S3 Trio)
- All Cirrus Logic based RTG boards now use PCem Cirrus Logic SVGA chip emulation.
- Piccolo SD64 fixed.
- Reordered RTG board list.
- Hardware emulated graphics board screenshot support fixed.
- x86 Bridgeboard VGA still use QEMU Cirrus Logic emulation. I'll keep it (at least for now) because it enables simultaneous use of bridgeboard VGA and PCem RTG board.

- No. Don't ask. Permedia 2 (Cyber/BlizzardVision PPC) or complete enough Voodoo 3 chip emulation does not currently exist.

- Audio and disk DMA: Agnus also ignores DMACON DMAEN bit. DMAEN bit is checked inside Paula. Audio: Paula audio DMA requests are only generated if DMAEN is set when channel generates DMA request (not when transferred via DMAL). DMAEN can be cleared after request has been generated and DMA request still goes to Agnus and Agnus does DMA to AUDxDAT during channel's DMA slot in next scanline. Disk: both DMAEN and DSKEN needs to be set. Previously DMAEN was checked in Agnus side when deciding current DMA slot state. Most likely no normal program cares, this is quite extreme edge case.
- Copper write to BPLxDAT timing fix.
- cpu_halt_auto_reset config entry added to GUI misc panel.
- Analog joystick multiplier/offset default adjusted.
- Load PAL mode, OCS Agnus state file directly from GUI/command line, start emulation, on the fly switch chipset to ECS Agnus: mode was changed to NTSC.
- Switching off display DMA when display DMA was active still had more hidden side-effects. It results in "bad state" that is not reset until bitplane DMA is switched back on, when it is back on DMA restarts from state which normally happens when DDFSTOP has been passed. Result is either 1 or 2 "bitplane blocks" (1 or 2 depends on horizontal position relative to next BPL1DAT slot when DMA was switched off) starting from DDFSTRT (if switched on before DDFSTRT). The rest of scanline is drawn using border color. Following scan line works normally. No differences between OCS/ECS. (vAmiga test case)
- Another undocumented feature: if BPLCON0 HAM and DPF are both set, result is weird. HAM replaces R/G/B component: replacement component value is palette _index_ of current pixel in dual playfield mode! HAM selection bits zero: palette selection works like in dual playfield mode. BPLCON2 works like mode is normal dual play field (including invalid BPLCON2 priority values). OCS/ECS only. (vAmiga test case).
- Dual playfield mode illegal BPLCON2 priorities didn't work correctly in hires mode. (bottom part of above test case)
- Blitter nasty off cycle counting update, emulation code wasn't exactly doing what it was supposed to do.
- A1000 blitter busy bug was ignored if copper waited for blitter.
- Added DMA debugger non-nasty blitter extra information: 's' (CPU will get next blitter cycle) and 'S' (CPU stole this cycle from blitter)
- Confirmed CIA register contents at power up. CIA control register should be zero, for some reason previous reset default was $04.
- Disassemble FBF with zero offset as FNOP.
- Debugger fi instruction breakpoint command now accepts up to 3 opcode words.
- Config file list wasn't refreshed when config file was deleted. (4.4.0)
- RTF_AFTERDOS is broken in KS 2.0 , KS 2.0 now uses pre-WinUAE 3.3 hack and only KS 3.0+ use RTF_AFTERDOS. Clipboard sharing and uaenet.device work again under KS 2.0.
- Added Amiga Bootblock Reader brainfile support (copy ABR package xml files to <winuae root>\plugins\ABR -directory). Used when clicking "?" button in quickstart and disk panels.
- Fixed emulated floppy disk rotation speed, it was slightly too slow. This change could break some copy protections. Unexpected side-effects are always possible..
- Copper SKIP wasn't updated when WAIT logic was updated ages ago. SKIP had wrong timing in some rare situations.
- "Default" filter mode: PAL/NTSC switch automatically scales the image.
- DF3: floppy led was drawn using very dark color if it was disabled and system didn't have NVRAM hardware.
- OSD led font graphics is now generated from real Windows font and is high DPI aware. Led size multiplier config entries now also support non-integer values.

- Added GVP A1230 Turbo+ Jaws. Boot ROM adds RAM outside of 24-bit address space and fake RAM autoconfig board.
- Accelerator board RAM slider range was larger than supported range with some boards.
- Added Trumpcard v1.5 and v3.1 ROM. Added also hardware interrupt checkbox, later trumpcard (still non-pro) variants have interrupt support. It seems 8k ROM variants don't have interrupt, 16k do have it. Setting is wrong if it hangs at boot.
- Added A.L.F.2 OMTI variant and v2.2 boot ROM. ROM possibly also includes SCSI driver but I didn't examine how it works. A.L.F.2 OMTI IO port is exact same as in A.L.F.1.
- Trifecta LX SCSI emulation fixed.

4.4.0

Beta 9 (RC2):

- TRAPcc and CHK2 exception stack frame fix. Stacked PC was not pointing to next instruction. (CPU tester didn't validate 68020+ exception stacked PC field. Fixed and retested.)
- 68060 LPSTOP illegal instruction if second word is not 0x01C0 and privilege violation due to new SR not having S-bit set stack frame had wrong stacked PC.
- 68060 STOP privilege violation if new SR didn't have S-bit set (68060-only special case) exception stacked PC was wrong.

Beta 8 (RC1):

- More "Default" filter adjustments: enable aspect ratio correction only if current aspect ratio is not close enough to 4:3. Enable scaling to current window/screen size only if current window/screen is "too" large or small. Main reason for this change is to keep old behavior (no scaling or aspect ratio correction if default window/screen size but enable scaling/aspect ratio correction if window is larger or smaller)
- Beta tag removed.

Beta 7:

- Fixed Misc panel statefile text box working strangely when typing. Also default statefile path and .uss extension is added if missing.
- CPU multiplier in prefetch mode (support added in b1) wasn't saved to config file.
- CPU multiplier is set to pre-4.4 defaults when loading old config files.
- CPU multiplier (if prefetch/ce) is changed to default multiplier when CPU model is changed.
- "Default" filter mode now enables aspect ratio correction and scales to window/screen size. Disabled previously active GUI elements that are not compatible with current filter mode.

Beta 6:

- Small 68030 prefetch mode tweak.
- Enable cycle accurate Paula DMA request emulation if more compatible is ticked. Previously either cycle-exact option was required.
- GUI reset button didn't do full hard reset, for example rom images were not reloaded.
- GUI configuration Delete button can be now used to delete empty configuration directory.
- b5 "Debugger fa and s commands skipped chip ram." fix was incomplete, caused some debugger search commands to hang in infinite loop.
- Fixed *.uae icon, it was most likely accidentally changed long time ago to winuae.exe icon without no one noticing.

Beta 5:

Some more or less edge-case cpu tester detected fixes:

- 68020 and 68030 unexpected difference found: RTE causing format error with trace set (T0, T1 or both). 68020: format error stacked SR has trace bits unmodified (expected behavior). 68030: stacked SR has trace bits cleared! (Stacked SR equals current SR at the beginning of format exception handler) Very useless difference. 68040/68060 works like 68020.
- 68040 and 68060: instruction that can generate exception internally (CHK, CHK2, DIV, TRAPx) and if trace is active: trace is not generated after execution continues from address pointed by exception vector. All previous CPU models generate trace exception in this situation.
- 68040 T0 trace + MOVEC: only MOVEC to control register triggers T0 trace. (Documentation only lists "MOVEC")
- 68040/68060 + cpRESTORE/cpSAVE (=FSAVE/FRESTORE with co-pro ID!=1) will always generate F-line exception. Probably because external co-pro interface was removed in 68040. 68020-68030 will generate privilege violation if not in supervisor mode.
- 68040 RTR and RTE with odd return address in stack: address error stacked SR contains contents before RTR/RTE SR modifications. SR register contents when address error exception starts has correct contents.
- 68060 RTR odd return address: CCR is loaded first, then address exception is generated. Previous models: CCR is not modified.
- 68060 RTE odd return address: SR is not updated, CCR part is cleared. Z is set if new SR would have been zero, N is set if new SR would have had bit 15 set.
- 68040/68060 seems to halt if trace (probably any exception) is being processed but exception vector is odd. 68000-68030 will generate address error without halting.

- UAE: 68020+ MOVE to CCR triggered T0 trace but it only should be done if MOVE to SR (which does pipeline refill which triggers T0 trace)
- UAE: 68020+ and trace exception with odd trace exception vector (which will generate address error): SR trace bits were not cleared when address error started.
- UAE: 68040+ BSR/JSR address error stacked address field was incorrect.
- UAE: 68020+ MOVE to SR, EOR SR, OR SR enabled trace: following trace exception stack frame PC field in stack was wrong.

- b3 "When ejecting directory filesystem that points to plain file or archive, not all host file handles were closed properly." caused problems when opening archive files.
- ROM scanner now prefer roms that have matching size (overdumps and a1000 ks disks have lower priority) and are not in archive (was already done previously).
- Debugger assembler didn't support instructions that modify address register but mnemonic does not end to 'A'. (for example EXG x,An)
- Debugger fa and s commands skipped chip ram.
- FPU default is back to 64-bit. Very few programs requires 80-bit, it isn't worth the speed loss.
- Optional (config file only) halt if BKPT instruction is executed. Some accelerator boards hang when it is executed because they don't generate required acknowledge cycle.

Beta 4:

- 68010 address errors fixed. Most read and write bus errors tested and fixed.
- 68010 DIVU cycle count fix. It does not have fully static cycle count as I originally thought (due to not random enough test data). Best case 74 cycles, worst case 104 cycles. Most "normal" divisions (relatively small divisor) are 104 cycles. Algorithm seems to be exact same as used in 68000 but compare and subtract operation if comparison was true appears to be "free" in 68010. (MULs have similar operation, they do compare and add in a loop. 68010 hardware probably gained feature that first executes compare, then compare result is used to select between internal register or zero register, then following ALU operation is executed using selected value. 68000 had to do compare, check comparison result, branch if false, execute ALU operation if true which takes longer.)
- 68010 loop mode CLR.B and CLR.W need 2 extra cycles when loop ends. CLR.L was already correct.
- 68010 loop mode was 2 cycles too fast/loop round in prefetch (non-ce) mode.
- Verified real 68000 and 68010 in cputester cycle test mode again.
- 68030 MMU RTE software fixed pipeline stage handling bug fix. (WHDLoad QA tests 33003/33004/33005, 33012)
- 68030 MMU + prefetch: if instruction generated MMU access fault and it was Locked Read-Modify-Write (TAS, CAS, CAS2), MMU status register RM flag was not set. (94040)
- 68030 MMU + prefetch: "68030 MMU seems to do -(an)/(an)+ adjustment before bus error is detected and original register content is not restored when bus error exception starts" b1 update fix. Amix should boot again.
- Screen capture to clipboard created blank image if 256 color or less RTG mode and capture before filtering was set.
- When switching GUI panels, old sub panel window was not removed from element array. Possibly could cause crashes or some other issues when it was re-used.
- Added b1 debug logging format string flags and width specifier support (except floating point values). Alternate use mode implemented: write pointer to argument array to $BFFF08, then format string to $BFFF04. In this mode %d/%u/%x is assumed to be word wide, %ld/%lu/%lx long word wide (like exec/RawDoFmt). %c was missing.


Beta 3:

Not much updated because 68000 bus/address error stack frame bug wasn't that simple to fix.

- b1 disk read dma without drives update didn't handle situation where disk write was started without any selected drives.
- 68000 bus/address error stack frame program counter field was almost always incorrect (b1). One modification was lost when gencpu was cleaned up and my CPU tester had a bug and ignored this field.. Address errors and bus errors fixed (read, write and prefetch). Amiga does not use bus errors and only some protections use address errors. You probably would expect bus/address error stacked PC point to address that was being prefetched but usually it has +2/-2 offset. It can get even more interesting if it is jump or branch instruction.
- When ejecting directory filesystem that points to plain file or archive, not all host file handles were closed properly.

CPU tester FPU trigonometric and logarithmic instructions verified. Last 16 or so bits of extended double was ignored in most tests because 6888x returns slightly different results than 68040+ FPSP and also some 6888x instructions return less precise result than FPSP does. All 6888x trigonometic and logarithmic instructions seem to work correctly enough in softfloat mode.

- FSINH and FCOSH didn't set INEX bit if result was infinity.
- FREM and FMOD didn't round using current rounding mode.
- FREM and FMOD will only return correct results with some input parameter values. FREM and FMOD is based on some other CPU behavior, most likely x87, and it isn't fully compatible with Motorola implementation. For some reason this was not updated. Will be fixed later.
- FSCALE didn't round the final result correctly in all code paths.

Most likely no real world program was affected. Host FPU mode will also return even more different results.

Beta 2:

- Custom CPU frequency selection fixed (b1)
- CPU speed adjustment supported in more compatible (prefetch) CPU mode.
- 68020+ speed has changed again. Was also changed in b1.
- "uae-configuration cdimage0 ." left image partially mounted in some situations. GUI eject button always worked.
- FPU FGETMAN should ignore current rounding mode, result is always in extended precision.
- Debugger "mustchange" memwatch point flag was never cleared.
- Added misc panel enable checkbox for beta 1 introduced debug logging. Note that quickstart mode always disables it.
- BPLCON4 sprite bank selection bits have different delay than bitplane "XOR" bits. Sprites: 1 hires pixel. Bitplanes: 2 hires pixels. It was wrong previously.
- "diskchange rdh0:" can be now used to eject drag&drop mounted directory/file/archive harddrive.

- 68030 MMU with more compatible (prefetch) is not stable, at least in Amix (as usual..). Will be fixed later.

Beta 1:

Another quite useless new feature: cycle-accurate 68010! Includes full and accurate 68010 loop mode emulation.

Main updates:

- 68000 emulation is now fully(*) accurate, functionally and in cycle level, including exception side-effects (undefined flags and register contents etc). Cycle counts are also correct in prefetch (more compatible) mode if nothing steals cycles from the CPU.
- 68000 common instructions cycle count without more compatible are also accurate unless instruction has variable cycle count (like MUL/DIV and others).
  * = IPL sampling time to interrupt level change detection is not 100% accurate.
- 68010 emulation is now cycle-accurate, including loop mode. (Exception timing/side-effects, mainly bus error undefined flags are wrong. Address errors are correct)
- Basic FPU support added to my CPU tester. FPU softfloat basic arithmetic instructions tested and confirmed working accurately. No exceptions yet tested because FPSR setting when FPU generates exception seems to have CPU/FPU specific differences.

- 68000 address error and bus error emulation updates, all side-effects/undocumented behaviors are now emulated. Prefetch generated bus errors are now 100% functionally accurate (Including possibly partially modified flags, partially modified registers etc..) and cycle accurate. Special case example: TRAPV, if prefetch causes bus error and V is set: bus error stacked SR field always has S-bit set and T is always cleared. If V was not set: stacked SR field contents are as expected. Another more common result: if long word is being read or written to and access causes bus or address error: CCR Z and N flags are set using only low 16-bit of long word. CPU tester prefetch bus error testing mode added.
- 68010 loop mode emulation (prefetch and ce only) NOTE: when stepping loop mode in UAE debugger, looped instruction appears to be skipped because in loop mode it is merged with DBcc execution.
- 68010 loop mode is cycle-accurate. Cycle totals are correct but idle cycle ordering may not be fully correct. (TODO: do some logic analyzer checks)
- 68010 accurate address errors and exception stack frame emulation (only documented part of stack frame, it has lots of undefined fields, like 68020/030 bus/address error to allow instruction continuation after the fault/fault retry with RTE. This is not emulated). Prefetch/ce only.
- 68010 read bus errors accurately emulated. (Except RTE support like above)
- 68010 cycle count adjustments. Most 68010 cycle counts are correct now. (TODO: recheck later)
- MOVES was 68020+ instruction. It was introduced in 68010.
- BKPT was 68020+ instruction. It was introduced in 68010. It is illegal instruction (at least without debugging hardware), only difference is that it executes break point access cycle which delays illegal instruction by 4 cycles compared to normal illegal instruction.
- 68030 MMU emulation simplified and optimized.
- 68030 MMU seems to do -(an)/(an)+ adjustment before bus error is detected and original register content is not restored when bus error exception starts. This is now emulated. No programs should care.
- gencpu now automatically and properly indents generated cpuemu_xxx.cpp files.
- 68000-010 CPU internal IPL change detection timing is now more accurate (but not 100% correct) and more optimal.
- 68000-010 CPU internal IPL change detection timing is now also emulated in prefetch mode without cycle-exact. (IK+, Warhead, etc sound now works without cycle-exact)
- 68010 RTE format error exception does not clear trace flag. 68020+ RTE format error exception clears it.
- 68000/010 odd exception vector generated address error stack frame is now correct. Tester support added. Odd bus error or address error vector will halt the CPU.
- 68000 exception (including interrupts) cycle usage also validated.
- 68000 BTST Dn,#x was 2 cycles too fast.
- 68000 DIVU/DIVS divide by zero exception processing starts after 4 cycles (was zero).
- 68000 JMP and JSR address error check was before EA calculation, 2-6 cycles too early.
- 68000 ADDX.L -(an),-(an) and SUBX.L -(an),-(an) had wrong cycle order: it is reada+2,reada+0,readb+2,readb+0,writec+2,prefetch,writec+0 (was prefetch,writec+2,writec+0)
- Lots of approximate (with or without prefetch) 68000 mode instruction total cycle count fixes. Cycle counts are now 100% correct.
- 68010 is now cycle accurate.
- 68010 MOVES.W an,-(an)/(an)+ and both source and destination an is same register: modified register content is stored if size is word. MOVES.L stores original register content.
- 68000 MOVE causing write address error: address error was checked too early, after read, even if it was followed by prefetch before write.
- All CPUs: Most address errors due to odd jump/branch address are now correctly emulated in non-prefetch mode.
- 68020 MUL and DIV use static cycle counts (just like 68010. Only 68000 MUL/DIV cycle counts depend on input values). Added slightly shorter delay than documented to non-fastest possible prefetch and ce modes. (MUL.L and DIV.L probably don't have fully static cycle counts)
- MOVES access to supervisor only address range is now correctly emulated in all CPU modes (SFC/DFC is used to check access privilege instead of CPU's current supervisor state), including MMU modes. Amiga does not have any but Atari ST does, used by Hatari.
- Full hardware bus error support (used by Hatari and also available via UAE debugger memwatch point b mode) is enabled in beta builds. It will require slightly more CPU power in 68000/010 modes.

FPU emulation updates:

- Implemented CPU tester FPU support. Still work to do.
- FBcc, FDBcc, FTRAPcc, FScc, FMOVEM and FMOVE to/from control register validated. Basic FPU instructions also validated (not logarithmec or arithmetic). (68882, 68040 and 68060)
- FPU exceptions that have EA field now also keep state if instruction filled the field because real FPU EA field can contain data used by previous instruction(s) if instruction didn't have EA, enables FPU tester EA field validation only when needed.
- Softfloat FCMP didn't also set N flag if source and destination was zero and either or both was negative zero.
- FPU conditional instructions (FBcc, FDBcc, FTRAPcc, FScc) didn't handle condition codes completely accurately. Invalid combinations like NaN + Z didn't match real hardware behavior.
- 6888x and 68040/68060 have different behavior in some undefined condition code combinations. This is also now emulated.
- FScc didn't modify address register if EA was (An)+ or -(An).
- If 68040+ unimplemented FPU instruction uses (An)+ or -(An) addressing mode, An should not be modified.
- If 68060 tries to execute packed datatype and addressing mode is -(An), An stored in unimplemented instruction stack frame is only decreased by 4 bytes. (eXtended datatype does same if FPU is not available or disabled. This is documented. Packed datatype behavior was not mentioned in documentation.)
- It was possible to set some FPCR and FPSR unused bits. 68040 and 68060/6888x have slightly different behavior.
- If 68040+ and instruction is unimplemented: generate exception 11 if instruction's EA can never be valid (for example PC relative or immediate destination) but generate unimplemented instruction exception 55 if EA can be generally valid but not necessarily valid for current instruction. Previously 11 was always generated if EA was invalid.
- 68040+ generates normal exception 11 (frame 0, like 6888x) if FPU instruction is non-existing (unknown opmode field). Previously frame 2 was always generated, only instructions that are implemented in 6888x but unimplemented in 68040+ generate frame 2.
- 6888x has undocumented opmodes that map to existing, documented, opmodes (for example $05 -> $04 = FSQRT). Only unused opmodes 0x40 to 0x7f generate F-line. This is now emulated, main reason was to not require special conditions in cputester. "Some extension field encodings are unspecified, are redundant with valid instructions implemented by the FPCP, and do not cause an F-line exception if executed.  However, these encodings are reserved for future definition by Motorola, and thus should not be generated by assemblers or compilers.".  Future is in the past now and 68040+ generate F-line exception as expected.
- 6888x packed data type is not 100% correct, sometimes last digit of 64-bit mantissa is 1 higher or lower. Probably rounding related.
- All FPUs FMOVE(M) to/from control registers and register field is zero: FPIAR is selected. This was previously partially emulated.
- FMOVEM with dynamic register list used incorrect mask, registers D4 to D7 become D0 to D3.
- 6888x and FMOVEM with MODE field=predecrement: register list order is inverted, even if actual EA is not predecrement. 68040+ only use inverted register order if EA is predecrement. 68060 ignores MODE field completely and only uses EA to select between predec/postinc.
- 6888x FMOVE.P FPx,EA: if EA is invalid (for example Dn), conversion is still executed and possible FPSR flags (for example OPERR if k-factor>17) are set before F-line exception is generated.

68040 FPU weird behavior:

- FMOVEM.X to/from Control registers: if undefined bit 10 is set, CPU hangs. Not emulated. Tester blacklisted.
- FMOVEM.X to memory,-(An) but mode is postinc or FMOVEM.X to memory,NOT -(An) but mode is predec: extended doubles are written in reversed order (low mantissa, high mantissa, exponent).

68060 FPU weird behavior:

- 68060 unimplemented FDBcc stacked EA field contains last 2 words of instruction (condition and offset). It does not contain real effective address.
- If FPU instruction opmode is 0x78-0x7f (last 8 opmodes): instruction generates exception 4! All other non-existing opmodes generate expected F-line exception 11.
- At least 68060 is weird when it attemps to execute invalid FMOVE.D FPx,Dn (Works like FMOVE.S FPx,Dn but also generates exception 4!) or FMOVE.X FPx,Dn. (Also generates exception 4!) There are also other situations where illegal FPU instruction (valid opmode but EA is invalid) does something unexpected, like modifies other registers. Which means annoying special cases are needed in tester.. Not emulated. Tester blacklisted.
- FMOVEM.X #imm,FPx-FPy does not generate any exceptions and seems to zero all listed FP registers! Not emulated. Tester blacklisted.

- Do not enable filter detected borders in autoscale center mode.
- List all enabled hardware built-in HD expansions first in hardfile/drive controller selection.
- Disassembler now disassembles MOVEQ, ADDQ and SUBQ correctly (previously it was disassembled as MOVE.L #, ADD.x #..), EXT.B -> EXTB.L. Assembler also didn't support byte or word size ADDQ/SUBQ variants.
- Disassembler shows MOVEC inside [] if used control register is not supported by currently selected CPU model.
- Ignore ncap/winpcap dll version because recent ncap versions have smaller version number than old winpcap versions.
- On screen led floppy leds have brighter border if inserted disk is write protected. (Color/shape may change in future updates)
- Hardital Dotto IDE controller emulation.
- CD32 ROM delay loop patch was skipped because of initialization order change in 4.3.0. Broke CD32 CD if CPU speed was too fast.
- Debugger W command used white space stripping parsing functions.
- RDB HDF max physical block size was 2048 and larger block size was not out of range checked causing buffer overflow. Max is now 8k and larger sizes are ignored.
- If disk read DMA was started without selected drives, it was always emulated in turbo mode. (Probably broken whan Amax floppy support was added)
- CD32 pad red button didn't always work as a normal fire button, depending on how it was configured. (4.3.0)
- Ignore next key release after exiting debugger. (Only if following key event is release, if next is key press, next release is handled normally)
- GUI Reset button now also copies current GUI config to active config. Normally only config entries that support on the fly changes are active after reset but because GUI Reset button does cold reset, all changed config entries can be safely enabled. (For example Harddrive panel automount options)
- Paula has 2 CCK delay between AUDxDAT write and AUDxLEN counting down. (http://eab.abime.net/showthread.php?t=100311)
- DMA wait hack (automatically work around audio routines that have CPU delay loops) now also checks if CPU has executed enough instructions between DMA off and DMA on because there are also few bad audio routines that unnecessarily disable audio DMA and then re-enable it quickly. Log also if audio dma hack activates (first 100 times only to prevent possible log flood)
- Debugger memwatch points accessed random memory (and possibly crashed) if CPU was 24-bit but accessed address was outside of 24-bit address space.
- Interrupt delays rewritten to match real hardware better. Only Paula external interrupt pins (INT 2, 3 and 6) have delays (4 CCKs which is a lot, why?), internally generated interrupts don't have delays.
- 1x-8x CPU multipliers are now also supported in prefetch (more compatible) CPU mode.
- Some RTG to RTG mode resolution switches didn't resize windowed mode correctly (4300b1)
- Keyboard resync didn't replace old key code with new (zero) key code.
- Emulated CIA-B serial port which is connected to parallel port busy and paper out lines (CIA-A SP is connected to keyboard). Perhaps some diagnostics software uses this connection to do simple partial CIA port test without extra hardware.
- Emulated CIA-B timer mode that counts CNT (serial port clock pin) pulses. Probably no program cares.
- Emulated CIA-B PBON+OUTMODE. PB6 and PB7 are connected to floppy drive /MOTOR and /SEL3 signals. Most likely no program cares, part 2. But really weird program can at least in theory control floppy motor by starting and stopping CIA-B timer B in continuous mode...
- If 2 light pens/guns enabled, if gun 2 moves, enable only gun 2 crosshair. Previously gun 1 move enabled both crosshairs.
- Microbotics HardFrame v1.8 rom added, v1.9 replaced, previous v1.9 may have been corrupted. All other known HF roms have almost identical (and unused) data where old v1.9 has random looking data.
- .wrp unpacking now aborts if it attempts to read more data than is available (instead of possibly hanging in infinite loop). Reversed wrp algorithm may not be 100% correct, at least one file has been found that does not unpack correctly.
- CIA ROM overlay bit, parallel port and serial port handshake bits in input mode didn't have pullup support. (If input mode and pin floating: read state is high)
- Disassembler didn't output "(68020+)" if brief extension format with non-zero SCALE bit(s) and CPU was 68000 or 68010. It was only shown if full extension format.
- Disassembler didn't support 68040+ FxxxS and FxxxD FPU instruction variants (FSADD, FDADD etc). Append "(68040+)" if current FPU is 6888x.
- Implemented Paula serial port emulation receive break detection support. Paula behavior when serial receive line is in break condition is weird and undocumented: it keeps receiving all-zero serial words (including zero stop bit) continuously, as long as break condition is active. Serial.device break detection behavior is also a bit weird: when break status is detected (all SERDATR receive bits and RXD is zero), it starts a timer. If any non-break state serial word arrives when timer is active: not a break condition. When timer expires and RXD is not zero: not a break condition. Break is now internally marked as detected but serial.device still needs one more serial word that is not in break condition before break is reported to caller. One normal serial word always arrives at the end of break because when Paula finally sees non-break state, it receives serial word with stop bit normally set (other bits may or may not be zeros depending on timing). In other words, serial.device break support depends on Paula undocumented behavior.
- If selected avioutput selected video codec returns error, automatically retry codec open using 32-bit bit depth. Some codecs don't support 24-bit mode. 32-bit was already selected if genlock was enabled.
- AUDxPER=0 internally set wrong period, should equal 65536 but was set to something much larger.
- Added on screen led size multiplier, config file only currently: show_leds_size and show_leds_size_rtg ("1x","2x","3x","4x")
- Added A1060 Sidecar 2.05 ROM (pre-release, BIOS screen says "Test release") to ROM scanner.
- New easy to use and transparent printf()-like debug logging method for developers: simply write parameters to address $bfff00 (byte, word and long accepted) one by one, then format string to $bfff04 (must be long) and formatted log message will appear in log window. Address may change, currently only active if 128k UAE boot rom mode is enabled and accepts only %d, %u, %x, %p, %s and %b (BSTR). Quickly made for quick and easy UAESND AHI driver debug logging..
- ELF ROM loader: always align section beginning to 8-divisible addresses.

68010 loop mode:

Loop mode is basically <supported single word instruction> + DBcc loop that uses CPU internal 2 prefetch registers and instruction decode storage register as a cache for all 3 words (looped instruction, DBcc and DBcc offset). Loop runs without any prefetch memory reads.

- Most instructions have same cycle totals in loop mode. Prefetches are usually replaced with 4 idle cycles. Some only have 2, some add 2 cycles.
- DBcc execution when loop continues: 4 cycles. Non loop mode DBcc takes 10 cycles so usually at least 6 cycles is saved per round.
- When DBcc is executed that matches all loop conditions and loop mode is not yet active, first DBcc execution takes normal 10 cycles and does normal prefetches (one for looped instruction = branch address, one for itself = branch address + 2 which seems unnecessary)
- Loop exit due to loop count expiring: no extra cycles added, 2*prefetches only.
- Loop exit due to condition code: adds 2 or 4 cycles (+2*prefetches), depends on looped instruction.
- Memory shift instructions (ASRW etc..) and few others add unexplained 2 extra idle cycles in loop mode.

New undocumented 68010 weird behavior:

- some instructions, when they generate bus error, take 4 cycles longer because they for some unknown reason repeat bus access that caused bus error. Normal bus error: bus access is done, CPU waits for DTACK or BERR, if bus error, exception starts. Weird case: bus access is done, same bus access is done again, bus error exception starts. (logic analyzer confirmed). Possibly this only happens because my test hardware generates bus error when address range and rw-state matches, normally external hardware generates it after few cycles delay. This is not handled by tester (bus error cycle counts don't match) or emulated.

Hardital Dotto:
- Clone of ICD AdIDE.
- Memory map and autoconfig IDs are identical.
- Driver has strings "icdboot.device", "ICD BootRom (C)1990" and "icddiskide" "hidden" in nibble part of boot ROM. All visible strings have been edited from "ICD" to "SYN". Almost identical to already dumped ICD AdIDE ROMs, probably based on v32 AdIDE ROM (which is not yet dumped).



4.3.0

- Emulated sound card stream close changes, mark the stream first closed, then close the stream to not crash if done by PPC thread while audio is playing.

Beta 10:

- Emulation window status bar DPI calculation fixed.
- Default GUI size (when opened without existing registry/ini data or version in reg/ini is old) didn't include DPI correction.
- Added -resetgui command line parameter that resets GUI customizations stored in registry/ini.

Beta 9:

- Executed full 68000 and 68020 CPU tester recheck (Including trace and address errors).
- 68020 T0 set and RTE causing format error exception: trace exception is not generated.
- Yet another update to "Alien Breed 3D glitch that depends on screen size". Hopefully this is now fully working.

Beta 8:

- Partition HDF default geometry calculation changed if partition size is 1000M or larger, keeps total cylinders under 32768 = better compatibility with pre-OS3.9(BB2?) versions. Only changed when HDF is added using GUI. Config file loaded geometry won't change.
- RDB mode didn't disable if RDB HDF was selected and then switched to partition HDF using GUI.
- CD32 didn't boot from CD after reset (b1)
- DMA debugger update in b7 had incorrect commmand parsing.
- Microbotics HardFrame v1.9 ROM CRCs added.
- D3D11 HDR mode is not anymore enabled automatically (if compatible hardware is detected), it is now only enabled if gfx_hdr=true is in config file. This is experimental feature and should not be the default in official versions.
- RTG mode D3D9/11 overlay graphics support. (Scaling/positioning needs to be better but it needs more updates, after 4.3.0 is out)

Beta 7:

- Output DMA debugger output to log file with "vl" command.
- Fixed b6 horizontal bitplane buffer size check. (for example superhires wasn't fully visible)

Beta 6:

- DMA debugger SPRxPOS/SPRxCTL and SPRxDATA/SPRxDATB was swapped.
- Lagless vsync: use raster line polling if Windows 7. D3DKMTWaitForVerticalBlankEvent() (still) seems to work badly in Windoes 7 (b5).
- PCMCIA overrode any Z2 boards at 0x600000-0x9fffff range. Any Z2 board conflict will now disable PCMCIA. (This is not really what happens in real world but you can't easily have multiple Z2 boards in A600 or A1200 either in real world. It can get confusing if you change Z2 boards and suddenly one or both boards simply stop working.)
- Added limits to internal horizontal bitplane rendering, in some situations (high AGA fetch mode, high resolution and/or subpixel mode) it overflowed to next line.
- Added support for AccessX 2000 IDE controller. Same ROM contents, different ROM address/data line "scrambling" than used in 500 variant.
- 68010 CLR.B <odd ea> caused address error. (CPU tester previous beta updates missed size check..)
- CPU tester updates, more bus error and address error special cases (branch instruction jumping to bus error address - 2 etc) checked and correctly emulated. Trace is also now much better supported.

Beta 5:

- Don't map invalid Blizzard 2060 maprom space and crash if board has no RAM installed.
- Added support for new cooked adf variant that can store sector headers: sector header data is appended at the end of normal ADF. Only enabled if ADF file size is exactly (80 to 82) * (512 + 16) * (11 or 22) * 2. Practically useless because almost no program uses sector headers and extended adf can already store them (but only in raw mfm form). GUI create disk image creator won't support it.
- Lagless vsync stability improvements. Current raster line polling removed, replaced with scanline calculation using last vsync time and total scanlines. Raster line polling causes huge GPU driver stalls.
- IVS Trumpcard *.driver to boot ROM automatic conversion didn't support older single hunk driver file versions.

Beta 4:

- AGA border sprites enabled: sprite was still clipped to horizontal display window end. (b3)
- Fastlane SCSI DMA controller address configuration emulation was incomplete. (Address bus is used for bits 0 to 23, upper 8 data bits for 24 to 31)
- A2024 monitor didn't show full viewable area. (4.0) It still won't work correctly if multimonitor mode is enabled. A2024 is a special case, it is basically display port adapter but it is not hardwired to chipset timing/display size/position like all other display port adapters.
- Remaining (?) GUI update glitch fixed. (b2)
- Added Trojan light gun preset to Game ports panel. Trojan fire button is joystick left. Standard light pen/gun fire button is 3rd mouse/joystick button.
- PPC board without ROM or zero size ROM and 68060 CPU with FPU: Generated fake boot ROM didn't include FPU disable boot code. Since 4.1.0 68060 FPU is not disabled when emulated accelerator board is configured.

Beta 3:

- Subpixel emulation + borderblank: sprite end was 1 hires pixel before bitplane end, leaving 1 hires pixel gap in right border.
- On the fly chipset change support improved. (More OCS/ECS/AGA custom registers differences supported)
- ECS Denise + Subpixel emulation mode + Superhires Display panel setting + not Superhires mode: do not enable ECS Superhires (max 4 colors) emulation mode.
- GUI corruption in some theme modes fixed (b2).

Beta 2:

- 68060 PCR FPU disabled bit was not set when 68060 model didn't have FPU (b1).
- PCMCIA slot (if card configured) was not enabled at reset. Small change to attribute from image file: extra attribute data must be at least 512 bytes (b1).
- CALLM disassembler support
- FSAVE/FRESTORE and PSAVE/PRESTORE (if 020/030) generate privilege violation exception (if run in user mode) even if FPU/MMU is not installed.
- When editing Display panel width/height boxes, don't validate the value immediately to prevent useless "must be at least" messages in the log window/error log.
- List font selection removed, may come back if fix for some side-effects is found.
- GUI scaling partially rewritten yet again. Now uses ReactOS/Wine CreateDialogIndirectParam() reimplementation with some customization which enables resize code to find out exactly which elements are part of GUI, final screen coordinates, types etc. Remaining high DPI related glitches should be fixed.
- GUI panel change redraw flicker is gone.
- Fixed double free and buffer overflow in GUI code (b1)
- Copper COPJMP cycle sequence order was wrong, first cycle does not need free cycle, second cycle requires free cycle, logic analyzer rechecked. (vAmiga test case)
- Using SPRxPOs to move DMA mode sprite horizontally towards right very little so that "both" sprites still have overlapping pixels: old sprite was still drawn fully. (vAmiga test case)

Beta 1:

- Trumpcard A500AT v1.2 ROM dump found, compared to v1.1 (extracted from driver disk .driver file), main difference seems to be use of interrupts. Emulation updated. Both ROM versions have same version/date string "AT 1.1 (06 NOV 1991)", I guess they forgot to update it..
- Disk index pulses were not being generated when disk was being written (Broke Cadaver v0.1 save disk writing, has been broken at least since 3.0)
- Restoring CD32 or CDTV statefile with CD audio playing: start playing immediately, do not emulate CD audio start delays.
- Added statefile generic partial IO autoconfig board support, board is mapped in address space and visible in Hardware Info panel after restore. Each board still needs separate statefile implementation.
- CDTV audio CD playing state restore fixed.
- Don't save AGA colors chunk to statefile if config is not AGA and all AGA colors are uninitialized (if initialized: config was changed on the fly and AGA palette should be saved)
- Archos Overdrive HD (PCMCIA IDE adapter) emulation added. 
- Generic PCMCIA hotswap support, each PCMCIA expansion has "PCMCIA inserted" checkbox, if ticked, card is inserted and if any other card was inserted, it gets removed first. If unticked, card is removed. Checkbox can be changed on the fly. Reason for this change is to have hotswap support that is not device type specific.
- PCMCIA SRAM and PCMCIA IDE are now expansion devices. Old PCMCIA SRAM/IDE configs need to be manually updated.
- PCMCIA conflict check was incorrect, it detected 4M Fast RAM as conflicting.
- PCMCIA SRAM: if SRAM image size is larger than 4M but less than 5M, extra data is used to replace autogenerated attribute data (0xa00000-0xa1ffff)
- Expansion panel selected device was unexpectedly cleared when clicking GUI elements.
- CIA overlay is unused only in Gayle based Amigas (A600, A1200) and also CD32. A4000 and A4000T models had incorrectly disabled CIA overlay emulation.
- Internal CD mount audio playback handled pregap incorrectly if previous track was in different file than current audio track and pregap was between tracks (cue/iso/wav, first audio track), it caused first 2 seconds (or length of pregap) of audio to be played with zero volume.
- High DPI support rewritten, now requires "Per Monitor DPI Aware V2" feature which was introduced in Windows 10 1703. 8.1 introduced original "V1" version which is not supported anymore. Manual GUI size/font adjustments are still supported in older Windows versions.
- GUI high DPI problems fixed, for example when moving GUI window from monitor to another monitor with different DPI usually worked very badly.
- Windowed mode bottom status bar is now high DPI compatible.
- Direct3D11 mode + Windows 10 with DXGI HDR support + HDR enabled GPU and display: use HDR compatible back buffer (DXGI_FORMAT_R16G16B16A16_FLOAT)
- Disk swapper path modifications did nothing while emulation was running.
- When overwriting configuration.backup, don't move old file to recycle bin. Backup of a backup is not that useful.
- CD32 pad emulation didn't handle weird pad reading code where pad mode selection Paula pin was in input mode and code set POTGO START bit which discharges POT caps = CD32 pad will see 0v in 3rd button line and activates CD32 pad mode.
- Enabled CD32 pad mode and normal second fire button (not CD32 blue) is pressed: override CD32 pad mode and use normal joystick mode. (This is basically same as having joystick port splitter that allows to connect both CD32 pad and normal joystick at the same time)
- CIA odd address word or long read/write access returned upper and lower byte swapped.
- Switching chipset on the fly (OCS<>ECS/AGA using uae-configuration) didn't reset BEAMCON0, some other AGA only registers and sprite widths.
- Removed all 68020 cycle-exact CPU mode internal idle cycles. It wasn't good enough design (as expected), need to start from scratch later.. again.. It made real 68020 best case results too slow. (and worst case was still too fast..)
- uae-configuration didn't work in indirect UAE boot ROM mode. (uae-configuration uses C-style stack parameters and trap code didn't preserve SP)
- Added separate CPU tester project that generates test data file for configured CPU (cputestgen.ini) and Amiga program that uses generated data.
- Fixed E-Matrix 530/Typhoon MK2 RAM mapping. Now all supported memory sizes work and is detected correctly.
- Modularized expansions device handling more, each device now dynamically adds hsync, vsync, interrupt check etc... callbacks when initialized. Report if some expansion device/device combination stopped working.
- Sprite to bitplane collisions didn't set all CLXDAT bits with certain CLXCON combinations (bad early exit optimization added long time ago)
- Scala MM "green" and "red" dongles emulated and confirmed working.
- Emulate HHPOS "UHRES" hsync counter read-only and write-only registers (ECS/AGA) and BEAMCON0 DUAL bit. If BEAMCON0 DUAL=0: HHPOS counts to normal max horizontal position, if DUAL=1: It counts to HTOTAL.
- Host directory/archive drag and drop to WinUAE window now supports mounting multiple items simultaneously.
- First pixel(s) of sprite was not drawn in certain situations when sprite start position was just before border and distance was less than 1 lores pixel. (Marvins Marvellous Adventure)
- SPTI CD/DVD access mode now internally emulates all CD audio commands (CD/DVD/BD drive analog CD audio support was obsoleted long, long time ago). All other commands are forwarded to the drive like previously.
- uaegfx RTG mode was unnecessarily initialized twice in some situations.
- When selecting accelerator board using GUI, matching CPU model is also set and 24-bit addressing is cleared. Manual adjustment is still possible after autoselect. Note: when CPU model gets lowered from 68030 to 68020 compatible board or from 68060 to 68040 compatible board, CPU is not changed automatically.
- Debugger "Scanning.." memory selection worked strangely or badly when system had 32-bit RAM.
- Debugger memwatch bus error option ("B"), generates bus error when triggered.
- nrg CD images didn't load correctly in relative path mode.
- 24-bit uaegfx RTG mode had random wrong color pixels in some situations (Elastic Dreams)


Fixed CPU tester detected differences between UAE and real CPUs. Mainly undocumented/undefined features, 68020+ T0 trace etc..

UAE = emulation bug fixed, not undocumented feature. No UAE = Undocumented CPU feature (that also needed UAE update)

68000:

- LINK stacked value is saved before SP is decreased by 4. Only affects pointless LINK A7,#x variant. (All models except 68040)
- CHK.W undefined flags fully emulated.
- DIVU and DIVS divide by zero condition codes are now 100% correct: DIVS always set Z-flag, DIVU sets Z-flag if dividend upper word is zero, N-flag if dividend upper word is negative.
- CPU bug found and emulated, MOVE.W <EA>,-(An) causing bus or address error: stack frame's opcode field contains following instruction's opcode and "IN" (Instruction/Not) field is set to one! ("Not instruction"). ADDED: this only happens if following instruction would cause illegal instruction, privilege violation or trace is pending.
- All instruction address errors should be 100% correct now. An contents are updated (or not updated) if -(an) or (an)+. Condition codes are also correct.
- MOVEM to <EA> with zero register mask: possible odd EA does not cause address error exception. (NOTE: MOVEM from <EA> with zero mask does generate address error exception even if mask is zero because MOVEM that reads from memory always does extra word read)
- BSR.B/W stores old PC to stack and decreases SP before checking if PC is odd.
- DBcc and odd offset: Does not generate address error if condition is true. Count does not affect address error. UAE: Address error stacked PC was wrong.
- UAE: MOVE to SR address error fixed.
- Many instructions update condition codes only partially if it generates address error exception. This is now 100% correctly emulated.
- UAE: TAS cycle sequence was wrong. (read-write-prefetch but for some reason used obviously wrong read-prefetch-write)

68000 but not directly Amiga related: Accurate bus error emulation.

- Bus errors emulated, condition codes, stack frame, register contents are 100% correct.
- Bus error during second word of full prefetch (branch taken) is unexpected: exception stack frame opcode field is zero.

68010:

- RTE with unknown frame type (=generates exception 14) modifies flags: N is set if stack frame/vector offset field is negative, Z is cleared (I assume zero frame field would set Z but zero frame id is always valid). V is always cleared.
- DIVU and DIVS undefined flags have different behavior compared to 68000. Other undefined flags work identically.
- Bus error/address error stack frame documented fields now contain mostly correct data. (RTE from bus/address error is not supported)
- MOVE SR,<memory> (like CLR <memory>) don't do extra dummy read.

68020/030:

- UAE: More compatible CPU mode didn't split CPU read/write access if it would cross memory banks or wrap around (no normal program is supposed to do this but tester does)
- DIVS.W and divide by zero: undefined V flag is "unstable", when same test is repeated (with V having static value before executing DIWS.W), sometimes it is set, sometimes it is cleared after div by zero. This is not emulated (I have no idea why it works this way. So far this is the only instruction that has this kind of really weird behavior. It does sound like CPU forgets to either copy V to some internal state variables or back when DIVS.W generates div by zero)
- UAE: PACK instruction incorrectly used stack byte decrement behavior (-2) when source parameter was A7.
- UAE: UNPK instruction incorrectly used stack byte decrement behavior (-2) when destination parameter was A7.
- ABCD, NBCD and SBCD always clears undefined V flag.
- MOVES An,(An)+ and MOVES An,-(An) stores incremented/decremented An to memory. (Also 68040)
- CHK.W, CHK.L undocumented flags fully emulated.
- CHK2/CMP2: comparison was not correct when lower bound was larger than upper bound (Documented fully in "M68000 Family Programmer's Reference Manual" "Integer Unit Condition Code Computations" table. Other documentation only mentions inaccurate "If Rn<LB or Rn>UB" formula) . Undefined N and V flags emulated (This was really complex..).
- DIVS.L undefined flags are not fully emulated. (Other DIV variants: fully emulated)
- UAE: BSR and JSR address error fix.
- Both T0 and T1 trace bits set (Documented as "undefined/reserved") is same as T1 only set, normal trace mode (also 68040).
- UAE: MOVE to SR is considered change of flow instruction because it does full pipeline reload (T0 trace, also 68040).
- 64-bit MUL.L: Dh is updated before Dl.
- UAE: 68020/030 FSAVE/FRESTORE and PSAVE/PRESTORE (cpSAVE/cpRESTORE) generate privilege violation exception if run in user mode even if FPU/MMU is not installed.
- UAE: 68020 T0 set and RTE causing format error: trace exception is not generated.

68040:

- CAS2 updates Dc2 first, 68020/030 updates Dc1 first. (Only makes a difference if Dc1 and Dc2 is same register)
- LINK stacked value is saved after SP was decreased by 4.
- MOVES An,(An)+ and MOVES An,-(An) stores incremented/decremented An to memory (same as 68020/030)
- 64-bit MUL.L: Dl is updated before Dh.
- DIVU.W and DIVS.W: does not modify undefined N and Z flags if overflow. All other CPU models will modify N and Z flags.
- UAE: Missing 68040-only T0 trace trapping instructions emulated (MOVE to USP, MOVEC, CAS, FSAVE, etc..)
- CHK2/CMP2 undefined N and V flags emulated (Very simple: N is set if source value is negative, V is always zeroed)
- STOP parameter can have S-bit zeroed without privilege violation exception. Only 68060 requires parameter's S-bit being set.

68040/060:

- DBcc generates address error even if odd branch is not taken. (68000-68030 won't)
- Registers are always original unmodified if address error (jump to odd address) is generated.
- DIV.L divide by zero: C flag is cleared. Other flags are not modified.
- CHK clears N-flag if not exception.
- Unaligned MOVE16 works very strangely, need more testing with different accelerator boards.

68060:

- UAE: if DIV.L or MUL.L generated exception (unimplemented or div by zero) and addressing mode was -(an) or (an)+: an was not restored.
- MOVES An,(An)+ and MOVES An,-(An) stores non-modified An to memory.
- UAE: Added "Debug Pipe Control Modes" debug instructions HALT and PULSE: HALT = $4ac8 ("TAS A0") and PULSE = $4acc ("TAS A4"). HALT halts the CPU (requires supervisor mode, privilege violation if not in supervisor mode), PULSE does nothing ("toggle non-pipelined mode" says documentation). Other $4ac8-$4acf ("TAS An") instructions generate normal illegal instruction exception.
- UAE: LPSTOP fixed. First it checks if instruction's second word is correct (0x01c0), if not: F-line. Then it checks for supervisor mode, if not: privilege violation. Order was previously swapped.
- UAE: RTE accepted stack frame type 7 which is 68040 only.
- MOVEC with invalid control register in user mode generates illegal instruction exception. Previous CPU models generate privilege violation exception in this situation.
- UAE: BUSCR was not fully implemented.

68020-060:

- 68020+ instructions that have extra opword field with zero bit followed by 3-bit REG (data register 0 to 7) field: If zero bit is set to one, REG field becomes address register field! Unfortunately it also seems to make instruction to return incorrect results, it looks like some internal operations use it as DREG and some as AREG. "Zero" bit appears to be not fully supported A/D select bit. (For example MUL.L, DIV.L, CAS2)
- 68060 + DIV.L with second opword zero bits set to one: some combinations seems to hang the CPU! (Internal divide algoritm stuck in infinite loop?)
- UAE: Prefetch mode locked RMW instructions (TAS, CAS, CAS2) did prefetch between read and write.

I haven't found any differences in condition code undefined behavior between 68020 and 68030.

Misc:

- UAE: Some branch instructions generated wrong stacked trace exception Instruction Address field. (Was branch target, not address of branch instruction)
- UAE: 68000/010 JSR, BSR and RTS didn't check and generate address error if stack pointer was odd. (RTE and RTR did check it)
- UAE: Partially emulate 68010-only bus/address error stack frame. Bus/address error recovery is not emulated, it would be really complex. It is similar to 68030 MMU bus error retry. Most likely no Amiga (or Atari ST) program has ever required 68010 and expected and handled/emulated address errors. Previously 68000 address error stack frame was created
- UAE: 68010 in non-prefetch mode generated and accepted 68020+ stack frame types 1 and 2. 68010 only supports stack frame types 0 and 8.
- Stack pointer was modified before RTE detected format error (unsupported stack frame id), overwriting part of unsupported stack frame. (as usual, probably no program should care)

Strange things:

- Blizzard 1260: BKPT always hangs the system. Warp Engine: randomly hangs. CSPPC: does not hang.
- Blizzard 1260 (rev 1 68060): RESET instruction resets the system even in user mode! CSPPC, rev 1 68060: generates expected privilege violation exception. I don't see how this can be board specific (CPU interrnally generates RESET signal) so perhaps there are different rev 1 68060s?
- 68040: CHK.L #$40000000,D1 (D1=0) is buggy. Execution continues from PC+8, not PC+6! But for example if constant is #$50000000 or D1 is replaced with D0, it works correctly.

Disassembler updates (CPU tester uses disassembler to calculate instruction's source and target EA and length of instruction)

- FDBcc fixed.
- FTRAPcc support added.
- Some variants of MOVE16 didn't disassemble correctly.
- PACK and UNPK support added.
- MUL.L disassembles as MULS.L or MULU.L
- DIV.L disassembles as DIVS.L, DIVU.L, DIVSL.L or DIVUL.L
- CAS fixed.
- LPSTOP fixed.
- CALLM support added.

Undefined flag status:

ABCD, SBCD, NBCD: complete (implemented 10+ years ago)
CHK: complete
CHK2, CMP2: complete
DIVU.W, DIVS.W: complete (overflow and div by zero). Except 68020-68030 DIVS.W div by zero "unstable" V flag.
DIVSL.L DIVUL.L, DIVU.L: complete (overflow and div by zero)
DIVS.L: not fully emulated

ICD Trifecta:
- A500 SCSI and IDE controller (LX), IDE only (EC)
- SCSI is true DMA! IDE is usual boring PIO.
- Only supports FFS in RDB. If it is the only RDB installed filesystem... Any other filesystem installed: all filesystems gets skipped!

Archos Overdrive HD:
- PCMCIA IDE controller, PIO.
- PCMCIA card appears as a read-only SRAM disk (CC0:, including startup-sequence and everything), data is stored in onboard 32k boot ROM, which loads the IDE driver, mounts the HD, changes assigns and finally executes HD s/startup-sequence.
- "amiquest.device (IDE 5.0 10/02/94)"

M-Tec Mastercard:
- NC53F94 based SCSI controller for M-Tec T1230 A1200 accelerator.
- Fake DMA (long word data port)
- E-Matrix 530 and Typhoon MK2 has same (or almost same) hardware. Driver is also almost identical.
- Emulated as a separate expansion board (not CPU board) because logically it is standard Z2 autoconfig board and it does not depend on accelerator board features in any way and boot rom is located on Mastercard expansion board. Main accelerator board does not have boot rom.

TODO:

- PCMCIA HD change


4.2.1:

- 68020+ MUL(S/U).L EA,Dn set Z and N flags like it was 64-bit (EA,Dh:Dl) variant, it used internal 64-bit result value when it should have used truncated 32-bit result value. Returned Z and N flag may have been wrong if multiplication overflowed. Has been broken since the beginning.

Beta 5:

- Adjusted previous SPTI CDROM update, if track type is unknown, use IOCTL_CDROM_RAW_READ and check and store track type. If track is normal CDROM track (MODE0) and only 2048 bytes are requested by caller, use normal read routine to read it. Using raw (2352 byte) read would skip part of error correction, possibly causing read errors if CD is not in good shape.
- x86 bridgeboard floppy disk write command didn't check no more data DMA condition, causing hang if floppy write command didn't end with EOT condition.
- x86 bridgeboard floppy disk read and write commands didn't handle non-set MT bit correctly, which broke A2386SX disk accesses.
- CD turbo mode affected also CD32 CD features that should have normal timing (like TOC entry timing), only normal read should be accelerated.
- Another 420b2 "Fixed AGA HAM graphics corruption.." fix. Previous fix revealed old bug if position of hblank border changed (for example automatic scaling)
- Adjusted 68020 cycle-exact mode timing, there was some extra cycles in branch instructions that can't be correct.

Beta 4:

- 410b1 sub pixel update broke BPLCON1 scaling in Absolute Inebriation / Virtual Dreams. (Very old glitch was temporarily back..)
- If SPTI CDROM mode: always use IOCTL_CDROM_RAW_READ. Normal 2048 sector read does not necessarily return error (but hangs) if track is not normal 2048 sector size CDROM track.

Beta 3:

- Number of partitions in single UAE HDF was still not correctly restricted to max supported (420b8).
- PPC CPU incorrectly used direct access when accessing Picasso IV byteswap memory regions. (Shogo color error, probably other PPC games/demos too)
- Added support for Picasso IV Zorro II 2M VRAM mode. (J1 jumper in real hardware, VRAM size adjustment in UAE)

Beta 2:

- It was not possible to delete existing floppy disk saveimage using GUI button if write protected checkbox was ticked. (Very old bug)
- Added "cpu_halt_auto_reset=false/true" config line entry. If true, hard reset is immediately forced if CPU would halt.
- 420b2 "Fixed AGA HAM graphics corruption.." more fixing..

Beta 1:

- 420b2 "Fixed AGA HAM graphics corruption.." missed one special case. Fixes Alien Breed 3D graphics corruption.
- Reset/Restart didn't clear uaegfx overlay state.
- Added uaegfx overlay statefile support.
- uaegfx statefile restore and hardware sprite mode: mouse cursor image was not restored.
- Picasso IV and uaegfx YUV422 overlay support fixed (frogger, moovid). Note that scaling is linear, real chip uses interpolation. YUV411 is still untested but I am not sure if it was ever used.
- New 128k UAE ROM stored statefile didn't restore correctly.
- Changing accelerator board options (jumpers etc) on the fly didn't do anything.
- uaedbg chip ram memory allocation fallback to normal chip ram fixed.
- Updated remaining weird instruction names in disassembler (MOVEP, MOVE USP, MOVE/AND/OR/EOR SR/CCR, memory rotate instructions)


4.2.0

Beta 8:

- Added A2090a ROM driver workaround, in one error condition situation it forgets to set correct DMAC mode before reading DMA status. So apparently DMA error bit can be also read when last mode was start DMA (or perhaps it is always valid). Fixes A2090a + tape drive hang.
- Not all autoconfig boards configured fully when used with A2620/A2630. (Which has differently behaving autoconfig driver compared to KS ROM in its boot rom)
- Sprite to bitplane and bitplane to bitplane collisions didn't work correctly if subpixel mode was enabled.

Beta 7:

- ELF executable ROM loader crash fix.
- Borderblank + horizontally bitplane ending before display window end: part of right border was drawn using wrong color (borderblank color vs color 0).
- uaegfx and Picasso IV 8-bit palette overlay mode was not implemented. Fixes XIII/Oxyron PIP mode.
- Fixed uaegfx overlay corruption if allocated overlay bitmap width was not divisible by pixel byte size. (PiP_View + image with "unaligned" width)
- Disassembling 68020+ full format extension type (an,dn,xxxx.w/.l) didn't print an part.

Beta 6:

- On the fly switching to built-in AROS ROM with low memory config (like basic A500) crashed.
- Tape emulation: only support reads/writes if CDB fixed bit is set, emulated drive is not variable block size compatible and it was wrong anyway.
- Activate debugger if entering halted state and debugger is in use (for example breakpoint active)
- ATAPI tape: ATAPI identity response device type was CD-ROM, not Sequential access device.

Beta 5:

- Picasso IV Flifi I2C bus responses are now faked. Removes P4Info "I2C Bus disabled" message. Very useless.
- Picasso IV driver polls GD5446 CR3F bit 7 (VREF state) when changing modes, probably to wait until native mode is completely redrawn, bit now toggles quickly to reduce delays when switching modes.
- Disassembler CHK2/CMP2 support was incomplete. Another 68020+ instruction with "non-standard" encoding.
- Added 68030 MMU instruction disassembler support.
- 68030 MMU instructions that have FC field: 11xxx FC field is invalid and generates F-line exception. (Was missed in previous invalid bit update few versions ago)
- Added support for shader (.fx) embedded config entries. Format: "string winuae_config : WINUAE_CONFIG = <uae-configuration compatible string>";. String can be split, for example like this: "param1 value1" <linefeed> " param2 value";. Config data is parsed and enabled when config file is loaded (with shaders selected) or when shader is changed using GUI.
- Added Tandem IDE HD/Mitsumi CD controller emulation. Only IDE is supported (which is identical to AlfaPower IDE controllers), Mitsumi drives are not emulated.

Beta 4:

- Enabled color burst bit emulation always made display grayscale except if BPLCON0 was not modified during frame.
- Adjusted color burst emulation: if genlock is connected, color burst state is ignored. Grayscale due disabled colorburst when using genlock is impossible because it is connected to RGB port and color burst only affects composite video out.
- 410b7 sprite FMODE=3 to lower FMODE value mid scan line update affected (parts of sprite disappeared) non-FMODE=3 sprites in certain situations.
- UAE RDB hardfile mounting didn't stop partition enumeration if number of partitions in single HDF exceeded max amount UAE HDF/directory partitions.
- Magic mouse change (b2) reverted and correctly fixed now. Only reactive WinUAE when mouse is moved back over WinUAE window with focus still active.
- 68020/030 cycle-exact: CPU to AGA chipset bus write waited full chipset cycle to finish which is not correct. Written data is latched by chipset buffers allowing CPU to continue executing after 68020/030 CPU memory cycle finishes (which is shorter than chipset cycle). This update slightly increases write speed to chipram/custom registers. (and probably fixes some demos and breaks others as usual)
- D3D11 shader viewport coordinate fixes. (pre and post shaders)
- Added Prelude (Zorro II) and Prelude 1200 (clock port) sound card emulation. (Hardware info from Oliver Gantert)

Prelude emulation notes:
- Prelude is similar to Toccata. PIO data transfers, FIFO memory and CS4231a audio codec chip. Toccata uses AD1848, CS4231a is fully compatible with AD1848 and also has some extra features.
- Prelude 1200 driver only initializes if card.resource exists: HW config must be A1200 with A1200 KS ROM. (=hardware with clock port)
- There may be something wrong with AHI (version specific?), test sound plays at 8000Hz instead of 44100Hz.
- I am not sure which AHI version is required. First I tried some 5.x AHI and device was detected but test button did nothing (also no HW accesses whatsoever when button was pressed). Replaced with 6.0 and test sound worked.

-> don't immediately assume problem is in emulation!

Beta 3:

- If win32.guikey is set to zero, disable F12 special handling. Normally if win32.guikey equals valid keycode, F12 can't open GUI, even if F12 in Input panel is configured to open GUI. (Another historic reason..)
- Genlock mode didn't always enable fully (was emulated but transparency was not visible).
- HAM + border sprites visible in border areas: in some situations bitplane data was incorrectly visible in borders.
- Filter border "blanking" was not working (b1).
- Selected filter panel mask/overlay was not updated when filter position (-4..0..4) was modified. (410b4)
- Many video port adapters (which includes grayscale mode and genlock) didn't support all doubling modes.
- Genlock and CD32FMV output was in color even if grayscale mode was enabled.
- 68030 MMU emulation now also creates short bus error frames. They are created when bus error is caused by write and write was instruction's last memory access. For some reason documentation mentions that some instruction prefetch faults also generate short frame but it seems to be incorrect.
- 68020/030 MOVES in instruction pipeline emulation (prefetch/more compatible) mode had wrong instruction length.
- 68020 full format extension disassembler fix, some addressing modes didn't print address register ([] instead of [an])
- Added IVS Trumpcard (non-Pro) v4.9 ROM.
- uaedbg ELF executable support. Not much different compared to HUNK support except ELF SHF_WRITE and SHF_EXECINSTR section flags are used to detect invalid writes or instruction fetches from non-code sections. uaedbg changed, old version is not compatible anymore. Separate debug files used in AROS are not yet parsed. 
- do not try to validate or canonicalize UNC network paths to reduce unnecessary delays at startup.

Beta 2:

- Adjusted CDTV CD drive read/play startup delays. Fixes Town without no name speech audiotrack play stopping too early.
- Window resizing keeps current window aspect ratio if left or right CTRL is pressed when resize operation starts.
- Separated Filter panel internal texture size multiplier to vertical ands horizontal. Vertical "-" = same as horizontal.
- Magic mouse mode and some other Windows program is active and mouse gets moved over WinUAE window: don't activate window automatically. It can cause side-effect where other program is still getting keyboard input.
- Simply uaegfx overlay rendering optimization, if both RTG and overlay bitmap does not change during frame: don't force full redraw.
- Fixed AGA HAM graphics corruption if same scan line had BPLCON4 non-zero, border sprites enabled and at least one sprite visible in left border and HAM bitplane active.
- Added global memwatch l option, enables invalid access logger:
  - Custom registers: unaligned, byte (except $dff002 and $dff006), mirror addresses and non-existing registers.
  - Custom registers: detect if any unused bit is written as one to registers like BPLCONx.
  - Custom registers: detect if any DMA pointer write access sets invalid address (outside of chip ram address space)
  - Detect if any chipset DMA tries to access non-chip RAM memory (checked before address is masked with size of chip ram).
  - CIA registers: detect invalid accesses, word accesses, unused register 11, mirror CIA address.
  - Anything else needed?

Beta 1:

- Bypass indirect memory access function calls (xget()/xput()) and access the memory directly if memory is normal RAM without side-effects (Real fast RAM). Should improve performance slightly in fastest possible non-jit or jit indirect modes.
- GUI listviews column order is now adjustable. Column order and width is stored in registry/ini. Adjustments are reset to defaults if number of columns changes in the future, manual reset to default button in Misc panel.
- Reject all Alt+<some key> windows system menu key shortcuts because invalid shortcuts may generate annoying beep sounds in magic mouse mode.
- Manual configured RAM address text box didn't support addresses larger than $7fffffff.
- Map >256k extended ROM images to $f00000 (not $e00000) if it begins with $1111 identifier.
- KS ROM selection now support hunk and m68k elf executables. Automatically relocated at startup and symbols, if embedded with executable, are loaded to debugger. Image must be rommable but can have multiple sections. Checksum, size field and interrupt vector offsets are automatically appended if final relocated ROM image is smaller than 512k. If final image is larger than 512k, it gets mapped at $a80000-$b7ffff and $f80000 only contains header and vector offsets. This was mainly implemented to make aros m68k ROM debugging less annoying but it probably can be useful for any custom rom development. Source level debugging may be implemented later, DWARF debugging information documentation is not very useful for implementing parser..
- Added keyboard_handshake=<v> config file entry. If handshake time period (in CCKs, not milliseconds) was less than v, message gets logged.
- Added memwatch point PC parameter, only detect hit if PC equals start of address of instruction that generated the memory access. For trainer internal use.
- Added log (L) only memory watch breakpoint mode, log only hits, don't break to debugger.
- Accelerator board CPU fallback (to mainboard CPU mode) was broken.
- "Add PC drives at startup" enabled and same drive root directory also mounted manually: drive was mounted twice (4.1.0 bug, earlier versions skipped duplicates)
- Added uaegfx Picasso96 overlay/PIP support.
- Added Cirrus Logic SVGA chip overlay/PIP hardware emulation (Picasso IV)
- AVI recording with non-standard refresh rate was reset to default if GUI was entered and exited during recording. Affected recorded audio pitch and sync.
- bsdsocket.library emulation SBTC_RELEASESTRPTR ("release string" = name + version string) was not implemented.
- Fixed sprite x-position before DMA slot(s) (left overscan) emulation bug that caused some partially hidden sprites to completely disappear depending on order of x-coordinates. (3.5)
- 68030 MMU and instruction ending to memory write that causes bus error: bus error exception stacked PC points to following instruction.
- 68020+ prefetch mode debugger H history command returned wrong instruction addresses.
- uae-configuration returned return code 10 even when matching config entry was found.
- Debugger disassembler didn't show scale factor if effective address mode was brief extension format. (broke when 68020+ addressing modes were fixed)
- Added custom ROM selection, 4 slots with manually configurable start and end addresses. Start and end are restricted to 64k boundaries.

- Added Pacific Peripherals Overdrive SCSI controller emulation and 2 ROM versions.
- Added Harms 3000 Professional 68030 accelerator board which is almost identical to A26x0 but ROM remapping seems to be slightly different.
- Added IVS Trumpcard (non-pro) emulation.
- Added IVS Trumpcard 500AT emulation.
- Trumpcard driver disk devs/*.driver files contain embedded raw boot rom image. If added as Trumpcard/Pro/500AT ROM image file, it will be automatically loaded as ROM image.
- Added ICD Trifecta emulation.

 Overlay/PIP support:
- All Picasso96 RGB and YUV formats supported. (CL hardware supported modes: RGB565, RGB555, YUV422, YUV411. Few weird non-Picasso96 compatible modes are not implemented.)
- Color keying supported (CL hardware limit: 24-bit mode does not support color keying)
- Cirrus Logic hardware supported color key masking (8-bit color key and 8-bit mask, only available in 8-bit modes) is not implemented.
- Cirrus Logic hardware supported chroma key not implemented (Mainly designed for video capturing).
- Scaling supported, uses basic linear scaling.
- Pure software rendering, don't try to open too large video windows.

Pacific Peripherals Overdrive:
- Possibly first ever A2000 HD controller.
- 5380 based SCSI controller.
- 68440 DMA controller, CPU polls DMA complete register. (SupraDrive 2000 DMA which uses same DMA controller also CPU polls)
- RDB compatible, mostly, for some reason it assumes partition device names are C-strings, not BSTRs which makes device names look quite interesting in AmigaOS. v2.0 supports custom filesystems.
- Both known ROM versions have "SCSI 1.3 (14 Aug 1988)" version string but overdrive.device versions are 1.5 and 2.0.

IVS Trumpcard:
- 5380 based SCSI controller, byte wide fake DMA.
- Functionally same as Trumpcard Pro except Pro-only long/word wide fake DMA data ports and SCSI ID/status register are not implemented.

IVS Trumpcard 500AT:
- Usual basic PIO IDE controller.

ICD Trifecta:
- SCSI and IDE controller (LX), IDE only (EC). Don't select EC, at least 4.2 install disk driver seems to assume SCSI chip is always installed.
- SCSI is DMA capable, FAS216 SCSI controller, Xilinx FPGA based DMA controller.
- IDE is PIO only, uses large MOVEM copy loop.
- Boot ROM is still MIA, tested only with install disk driver.


4.1.0

Beta 13:

- Hardware emulated graphics board interrupt was not emulated when gfxboard mode was not (yet) active and refresh mode was not "chipset". (For example Picasso96 + PicassoII+ or PicassoIV hang when switching to gfxboard mode)
- cdimageX config entries didn't support ejecting CD using uae-configuration. Now empty string ejects the CD. String "empty" and dot also equals empty.
- floppyX config entries also supports dot as empty drive.

Beta 12:

- If tablet.library was ticked and config was loaded to system without tablet, it was not possible to untick it.
- If original path stored in statefile is not valid anymore, fix attempts (testing if it exists in current dir etc..) may have returned non-existing path in certain situations even if valid path was available.
- More 68030 MMU bus error retry fixes. (Remaining Previous NextOS crashes fixed)
- MMU's internal table read/write accesses should be always done in supervisor mode. (Not much effect on Amiga but other platforms usually have memory regions that are supervisor only)
- Magic mouse Windows cursor to Amiga mouse sync fixed. (Broken long time ago, still not fully working in every filter combination)
- When config file rom path pointed to non-existing file, autodetect of rom path is attempted. If last autodetect phase detected it, rom path was not updated.

Beta 11:

- Debugger assembler didn't assemble Scc and TRAPcc. CLR didn't show memory contents if EA was not register.
- Debugger disassembler does not create useless output anymore when disassembling 68020+ addressing modes. If CPU is <68020 but full extension bit is set: disassemble as 68000 but append "(68020+)" to output.
- SPTI mode CD read buffer overflow fix. (Probably only when playing CD audio)
- 68030 MMU + more compatible bus error handling was very broken. (MMU updates in previous betas broke it)
- 68030 MMU bus error exception/unaligned access emulation partial rewrite. Odd long access uses byte+word+byte access sequence (not 4xbyte). MOVEM and normal data accesses use same data buffer variable now, confusing special cases removed. Unaligned accesses that cross MMU page boundary retries are now compatible with new retry logic (b8).
- 68030 MMU + prefetch mode fix when prefetch crossed MMU pages and neither page was mapped as valid. (Amix illegal instruction error in early boot)
- 68030 MMU + prefetch + data cache mode fixed. (also broke in b8)

Beta 10:

- Fixed invisible sprites after statefile load (at least when not in AGA mode). (b8).
- Reading CIA interrupt register exactly when CIA interrupt is going to activate may have caused stuck PORTS interrupt until CIAxICR was read again, which would also return unexpectedly no interrupts active in this situation.
- 68020+ more compatible state files didn't restore CPU mid-instruction properly, caused restored Amiga side crash if state was created during mid-instruction that has side-effects (like -(an) or (an)+ addressing mode) (introduced in 4.0 betas)
- 64-bit version didn't support rar unpacking without archiveaccess.dll, probably because 64-bit unrar.dll didn't exist when it was implemented.
- Window corners are now drag'n'drop hot spots for different floppy drives. (top/left=0, top/right=1, bottom/left=2, bottom/right=3).
- 68030 MMU MOVEM <ea>,<regs> access fault retry was unreliable in some situations.

Beta 9:

- UNPACK and PACK instructions (very rarely used) had code like "v = read_from_address(x) + read_from_address(y)" which has undefined function call execution order in C.
- 68030 MMU MOVEM to memory access fault retry special case fixed (b8). Amix boots normally again.
- 68030 MMU unaligned data access retries always used aligned access. (b8)
- AGA 32/64-pixel FMODE BPLxDAT writes are also now emulated accurately. Behavior is same as sprites, FMODE=3: first 16 pixels are last bus data, remaining 48 pixels are duplicate of written data. FMODE=2: first 16 pixels bus data, last 16 pixels written data. FMODE=1: written data duplicated. (Last bus data is first word of copper MOVE to BPLxDAT if copper was used to write to BPLxDAT). Writing to BPLxDAT when FMODE=3 and then lowering FMODE disables last 32 pixels (like sprites do) but this is not yet emulated.
- Yet another undocumented AGA bitplane special case. When FMODE=1/2 and modulo is added, bit 1 carry is ignored, for example 0x102 + 0x12 = 0x110. FMODE=3: same except bit 2 carry is ignored. This can only happen if bitplane pointer and/or modulo is "unaligned", not integer divisible by fetch size. Quite useless feature because unaligned bitplane pointers will always result in corrupted display. But at least (corrupted) display is now 100% accurate.
- Debugger memwatch points detected also debugger read or write accesses.
- Multi Evolution v2.2 ROM added. Does not seem to be RDB compatible, probably only v3.0+ are RDB compatible.

Beta 8:

- Another undocumented AGA 32 (only if FMODE bit 3 is set) and 64 pixel wide sprite feature emulated: when writing to SPRxDATx, first 16 pixels of sprite equals previous data in chip bus. Remaining 16 pixel "parts" contain written data duplicated. Unless SPRxDATx write is immediately after bitplane DMA fetch, then first 32 pixels of sprite gets replaced with previously fetched bitplane data, last 32 pixels are duplicated SPRxDATx written value. If normal 32 pixel wide mode (FMODE bit 2 set): both first and last 16 pixels contain written data.
- Subpixel mode didn't always flush all buffered pixels at the end of scanline.
- When DIWSTRT or DIWSTOP is accessed neither old or new value can match comparisons during the access cycle. (Fixes Bograts and Penguins small graphics glitch in top left corner)
- Very large directory filesystem harddrives (>3T or so) returned halved disk used and free values.
- 68030 MMU data fault handling update: SSW register FC mode bits must be used for data access retry cycle. Exception handler may have modified it. (So far only one program does it, Memwatch debugging tool for Atari ST and later models..)
- In some situations 68030 MMU access fault size stored to stack frame was byte even when actual fault size was word or long size.
- 68030 MMU mode FPU FRESTORE didn't handle possible access fault retries when reading stack frame.
- Above MMU updates break Amix boot, this gets fixed in next beta because I couldn't find the problem quickly enough and there must be better test cases than Amix..

Beta 7:

- If disk image's track size is less than 66% of nominal 2us track, assume it is using 4us (GCR) bit rate.
- Added option that catches JIT crashes that happen when already translated code jumps to non-existing memory causing interpretetive emulation to access non-existing RAM (for example JSR (An) was already translated but due to program bug, later call contains garbage in An) Logs a message and then generates fake exception 2 (if PC was even) or 3 (if PC was odd). This is not fully safe option because it is practically impossible (without slowing down JIT which would be against the point of JIT) to detect if crash is due to bad CPU PC or address registers or due to real bug causing access fault that now gets catched and not causing crash..
- Recording from hardware emulated RTG board always recorded internal resolution.
- Emulated undocumented AGA 64 pixel wide sprite feature: if sprite FMODE is lowered when sprite's first 32 pixels are being drawn, matching part in last 32 pixels will get zeroed.
- AGA sprite's width is decided and stored when SPRxDATx is written to, if sprite FMODE is changed after SPRxDATx write, sprite width won't change on screen except in above 64 pixel wide special case. (Previously used current FMODE value)
- Added vertical offset option to D3D scanlines.
- 68030 MMU rejected PTEST/PMOVE with EA mode 6 and generated F-line exception.
- 68030 MMU PTEST levels 1-7 does not check TTRs.
- If 68030/040/060 config has data cache emulation enabled but MMU emulation is not enabled: force chip ram as non-data cacheable.
- Magic mouse uncapture (uncapture when moving against window edges) now only uncaptures if no buttons are pressed.

Beta 6:

- Video recording from hardware emulated graphics boards recorded only black screen.
- Screenshot from hardware emulated graphics boards always captured visible output even if capture before filtering was ticked.
- Filter panel (D3D) scanlines work now properly in multimonitor mode. (Previously native/RTG selection was ignored)
- Taking screenshot/recording when in multithreaded RTG mode was not thread safe.
- x86 bridgeboard category move broke SCSI and IDE x86 expansions. Sound Blaster and NIC was not moved.
- x86 bridgeboard virtual serial mouse connected serial port was not reset at reboot.
- A2386SX bridgeboard chipset EMS banking emulation was not complete, chipset native EMS driver complained about invalid hardware.
- Creating state file when disk access was active and disk image included timing information (for example ipf) caused buffer overflow.
- Autoload checkbox was hidden under string field in Advanced information panel.
- Added untested MSBSYNC disk synchronization mode support.

Beta 5:

- Search clear ("X" button) didn't store new empty search filter to registry/ini.
- Delete config file confirmation message includes also name of config file.
- Added history list to config file name edit box. New item is only added when emulation is started.
- Reduced config file list redraw flickering when searching/filtering.
- Always force 32-bit if Direct3D 11 mode. 16-bit does not seem to be fully supported, screenmode may open but then some later allocation can fail, making recovery difficult (because you can't easily find out if the problem was 16-bit or something else). RTG "Match color depth" option is now also ignored in D3D11 mode.
- Added support for loading file contents to Z2/Z3 RAM boards (autoconfig or manually configured). Append offset=<RAM byte offset>,fileoffset=<file byte offset>,filesize=<bytes to load>,file=<path to file> to fastmemx_options line. Append readonly to make it ROM. Path must be escaped (\ = \\).
- Moved all x86 bridgeboard-only expansions under new category "x86 bridgeboard expansions".
- CD image mounting used original path, when it should have used resolved path (win32.cd_path, environmental variables, etc..) (401b4)

Beta 4:

- Horizontal mid-screen resolution changes (Disposable Hero title screen, Runaway / AD 2000 second disk first part) broke when subpixel support was added.
- Filter GUI masks/overlay selection menu was unnecessarily cleared and filled each time option was changed.
- 53C80 SCSI bus reset didn't disconnect active SCSI devices.
- 53C400 compatibility fixes (RT1000B)
- Added x86 bridgeboard compatible 8-bit SCSI adapter: Rancho Technology RT1000B.
- Fixed stuck keys/mouse not getting captured if ALT-TAB was pressed and while keeping ALT pressed, TAB was used to select WinUAE window again.
- Added quick search text box to Configurations panel. Searches from config file name, description and new tags config entry (config_tags=<tag1,tag2,..>).
- Added quick directory select to Configurations panel. Filters by directory or category. Category is new config entry (config_category=<category name>).
- Moved Link and autoload options under Advanced information. Added Category and Tags fields.
- Ignore Huawei mobile USB sticks that have fake CD mode, they hang if SPTI SCSI read is attempted.

Beta 3:

- Some CHD CD files returned incorrect data.
- AccessX second IDE port support added.
- Added v3.4 Multi Evolution ROM (Later Off Limits variant with different boot screen). Note that Off Limits variant has Fast RAM SIMM sockets which are not autoconfig and will crash the system if system has another Z2 board (even if Multi Evolution board has no RAM). Boot ROM RAM detection does not check if RAM for example is located in CPU socket installed accelerator.
- CD audio handling improved, now each unit has own state variables. Multiple CD drives can now play CD audio simultaneously without corrupting each others state.
- Fixed crash if more than 1 non-Paula audio stream was active. (emulated sound cards, also CD audio if "include" option ticked)
- Fixed corrupted doublescan modes (b1)

Beta 2:

- NE2000 PCMCIA and NE2000 bridgeboard didn't support custom MAC and network mode selection (slirp with open ports or pcap mode).
- XT IDE fixed (b1). Also XT IDE previously generated useless Amiga-side interrupts.
- If config had KS ROM path/file that didn't exist, path was replaced with useless <original path>../system/rom/kick.rom path.
- Bridgeboard CPU speed adjustment setting (CPU panel) is now activated when BIOS does first video register write. Early BIOS diagnostics tests can fail if CPU is too fast.
- Bridgeboard CGA graphics mode without VGA board had corrupted graphics, special graphics mode memory access was not implemented.
- Added AccessX/Acetec 500 IDE emulation.

AccessX 500:

- Usual simple PIO IDE controller.
- ROM has address and data lines swapped (probably to make PCB design simpler, I don't think it was meant for protection because ROM is visible in Amiga address space)
- Uses interrupt level 6. This is first emulated IDE controller that didn't use level 2!
- "harddisk1.device (AccessX Device Driver 41.30)"
- v2.1 ROM added, in scrambled and descrambled format. Both are supported.
- Supports custom filesystems.

Beta 1:

- Full sub pixel accurate display emulation. AGA hires/shres BPLCON1 resolution is now fully supported, in all modes. Option in Chipset panel, not enabled by default. It is rarely needed and requires much more CPU power.
- Previously unemulated DIWHIGH H0/H1 AGA-only bits emulated. Does not require subpixel emulation mode.
- Emulated AGA borderblank undocumented feature: borderblank activates and deactivates horizontally 1 hires pixel later than on OCS/ECS. Only emulated if subpixel mode is enabled.
- Simple subpixel emulation mode (which only works if both odd and even playfield have same shift value) hires/shres resolution left border may have had wider than normal pixels in first visible pixel column.
- Added second fire button keys to built-in keyboard layout info strings.
- 68020 + memory cycle exact hung the emulator in some very tiny loops.
- Some programs caused continuous flood of "blitter is active, forcing immediate finish" log messages.
- Softfloat mode 68040/68060 nonmaskable FPU exceptions should be also disabled if Unimplemented FPU emu is ticked. It confuses 68040/68060.library FPU emulation.
- Blitter statesave with blitter active: log window opened and listed few lines of blitter debug information.
- CTRL+F11 quit ignored new "Warn when attempting to close window" option.
- Added new misc option which captures mouse immediately when windowed/full-window winuae window is activated.
- Added A4091 v40.4 and v40.9 to ROM scanner. v40.4 is most likely pre-release/beta version (but was dumped from working card), has serial debug logging and device name is "ncr.device", not "scsi.device".
- Fixed typo in NCR53C710 emulation (wrong bit), fixes A4091 v40.4 ROM boot hang.
- uaehf.device HD_SCSICMD didn't set scsi_SenseActual. Also set io_Actual=30 (=sizeof(struct SCSICmd))
- Allow also read commands (previously only metadata commands like INQUIRY were allowed) when accessing partition HDF via uaehf.device HD_SCSICMD.
- 53F94 emulation zeroed DMA transfer register at the end of transfer but it should be decreased by number of actually DMA transferred bytes (transfer won't necessarily complete fully). Fixes Blizzard 53F94 based SCSI controllers returning too large HD_SCSICMD scsi_Actual value after executing SCSI command that can return less than requested number of bytes.
- Fixed multimonitor mode mouse losing mouse capture at startup or mouse becoming unusable when first multimonitor window opened. Mainly x86 bridgeboard VGA related.
- Display port adapters that needed genlock data didn't work correctly since 4.0.0.
- Display port adapters didn't work in multimonitor mode. (I think they did work in some early 4.0.0 beta but got broken before final)
- "Warn when attempting to close window" option now works on the fly.
- Added CSA Twelwe Gauge emulation (partial, jumpers not yet supported)
- Added history list to statefile path string box.

PC Bridgeboard emulation rewrite:

- Replaced DOSBox and Fake86 x86 emulators with PCem emulator core. CPU, interrupt controllers (PIC), timers (PIT), DMA controller and IO and memory mapping. PCem emulates specific PC models in hardware level, DOSbox emulates sort of "generic" PC with generic BIOS which required too many hacks and had compatibility problems.
- DOS extenders, Windows 3.x enhanced mode and Windows 95 confirmed working.
- Floppy controller is still using my own implementation.
- (S)VGA, XTIDE, NE2000 expansions supported like previously.
- Added CL-GD542x linear frame buffer support.
- Optional CL-GD5429 SVGA chipset. 2M VRAM support and blitter which may be useful under Windows. Previous 5426 is still the default.
- A2386SX VLSI chipset memory mapping features implemented (ROM shadowing, EMS pages).
- CPU panel x86 speed setting supported. "Max" option is gone because PCem emulates specific CPU frequency rate.
- FPU is not available, PCem does not seem to have FPU emulation, at least for pre-486 CPUs.
- Bridgeboard shared IO regions are now dynamically changed, same with mono/color vs VGA IO regions. Affects A2088+ only. Sidecar uses jumpers.
- PC Speaker (enable in bridgeboard settings) and Sound Blaster (various models) emulation added from PCem. Note that SB expansion GUI configuration does not do any SB model specific filtering.
- PC compatible mouse emulation, under Expansion/Custom expansions. Simple config: select which Amiga port gets routed to emulated ISA serial card. Serial (COM1), PS/2 and PS/2 Intellimouse supported. Last two aren't really possible in real world but it was easy to support in emulation (and may not work in emulation either). Implemented because bridgeboard AMOUSE is not Windows 95 compatible.
- Removed AT IDE Secondary, A2286 and A2386SX BIOS only supports primary IDE.

CSA Twelwe Gauge:
- A1200 68030 accelerator.
- v1.0 ROM (does newer ones exist?) is not KS 3.1 compatible. (KS 3.1 adds $08000000 RAM automatically, then CSA boot ROM does the same..)
- 5380 based PIO SCSI controller.
- "CSA Twelve Gauge(TM)/CSA1250(TM);P/N 22162A1000;Date: 93.JUN.25;Computer System Associates, Inc. (C)1993. All Rights Reserved"


4.0.1

Beta 6:

- Statefiles now include full relative and absolute path (disks, harddrives etc), now supports restoring statefile paths correctly even if relative path mode changed between save and restore. Old versions ignore new fields, old statefiles work like previously.
- When tracing ('t' debugger command) STOP instruction in debugger, break first when STOP is executed (like previously), next trace waits until STOP instruction exits. Previously STOP activated debugger immediately again.
- Picasso96 statefile restore didn't restore screen state fully. (4.x bug)

Beta 5:

- input.keyboard_type was always read as Amiga keyboard. If PC layout was set as default, keyboard layout was read incorrectly from config file.
- Amiga reset during RTG rendering in RTG multithread mode could have caused a crash.
- Modified Filesys path in hardfile dialog was not saved if dialog was exited with return key.
- Don't attempt to resolve symbolic links or shortcuts when saving config file paths. (b4)
- Only attempt to resolve symbolic links when directory filesystem accesses it (to simulate Amiga side link), not when opening disk images, hardfiles etc..
- Fixed clipboard sharing (b1 update broke it)
- Delay clipboard data transfer when screen mode changes to prevent situation where mode changed because of program taking over the system. (Emulator can't easily detect between all kinds of Amiga-side triggered native<>RTG mode changes or if it is user switching modes/alt-tabbing which triggers clipboard data transfer check)
- Added Harddrives and Disk Swapper drag'n'drop workaround that fixes corrupted graphics during drag operation. (ListView_CreateDragImage seems to been broken since Vista or so..)

Beta 4:

- Floppy, CD, Tape, HDF geometry, HDF filesystem, disk swapper, RTC and flash rom file paths also support b1 resolve environmental variables update. (b1 update had issues requiring partial rewrite so it was good idea to update all other paths too. Excluding special paths like ROM paths.)
- Previously only some SCSI controllers flashed CD led when emulating CD drive.

Short description about path handling change: Previously any path was always converted to either full absolute or relative path with possible environmental variables resolved when config was loaded or path was typed/selected from dialog. When config was saved, old path (possibly containing environmental variables) was lost. Now paths are loaded unmodified from config file and only converted when needed. "Normal" path strings (no environmental variables) are still automatically converted to absolute/relative when saving config.

Beta 3:

- If CD audio playing from real/virtual CD (not directly mounted image) was restarted because of config change, playback always started from beginning (or possibly failed to restart).
- 68060 FPU disable behavior change (68060 accelerator boards have "$f0" ROM to disable FPU because exec does not understand 68060 FPU and will crash if enabled), FPU is not anymore automatically disabled at hard reset if any emulated accelerator board is configured (matches now real world), if no accelerator board: if UAE boot ROM is at $f00000 ("old" mode), it disables FPU (just like real accelerator board do), if UAE Boot ROM is any other address: ("new" mode), m68k RESET instruction will disable FPU. Previously 68060 config got stuck in reboot loop because of not-disabled FPU if system was software reset.
- D3D9/11 vsync modes (lagless and standard) will now support 100/120Hz with optional black frame insertion.
- Always check interrupts immediately after MOVE to SR instruction (except if JIT enabled). Previously it was delayed until following instruction if fast 68020+ mode.

Beta 2:

- QuikPak SCSI working. (Has same bug as tekscsi2.device 1.0: does not load RDB custom filesystems)
- 80-bit FACOS fix. Also removed old unneeded JIT FACOS workaround.
- If drive identity is read and it is CHS-only, don't enable CHS-only mode unless host OS also returns zero drive size. Some (old) Windows IDE drivers do support CHS-only drives. (3.6.0)
- Added checks to prevent crashes when running in lagless vsync under wine. (DISPLAYCONFIG_VIDEO_SIGNAL_INFO and IDXGIOutput1 not implemented)

QuikPak 4060:
- Very similar in high level compared to TekMagic, main difference is SCSI chip, 53C720 (was 53C710 in TekMagic).
- "tekscsi2.device (tekscsi2 2.1 (17.7.97) ©1997 Asimware Innovations Inc.)". Apparently v2.2 also exists.

Beta 1:

4.0.0 bugs fixed:

- 80-bit native FPU mode FREM and FMOD had parameters swapped in x86 code.
- 64-bit FPU mode config mode was not loaded from config file.
- "Minimize when focus is lost" could cause crashes.

Older bugs:

- "Minimize when focus is lost" incorrectly activated when switching modes in some situations. (same as above)
- If CPU panel select menu was active and then some other panel was selected: JIT got switched off.
- Don't abort with "tried to seek out of bounds" message when HDF/HD has virtual RDB and writing to too large offset.
- When inserting previously connected USB device, previous device type (Gamepad, CD32 pad etc) and autofire type (if any) was not restored.
- Do not copy data to Amiga side clipboard buffer if filesystem heartbeat signal is missing (=Some program took over the system), clipboard data can overwrite other program's data.
- Directory filesystem/UAE HDF uses indirect mode if new debugger is active. (Indirect is needed for debugger to detect memory reads and writes)
- "Minimize when focus is lost" minimized main emulation window when GUI was open and main window lost focus.
- RTG Multithread mode display refreshing was unreliable in palette modes when palette changed.

Other:

- Resolve hardfile/directory path environmental variables only when needed, loading and saving config now keeps original unresolved variables.
- Save also config file to crash dump file.
- QuikPak XP board emulation, not yet fully implemented.
- Added GVP v3.7, Blizzard 2060 v7.25 and QuikPak v2.1 to ROM scanner.


4.0.0

Beta 16:

- Unminimizing didn't refresh display in certain situations.

Beta 15:

- 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.

Beta 14:

- 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 volume 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.

Beta 13:

- 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.

Beta 12:

- 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.

Beta 11:

- 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.

Beta 10:

- 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.

Beta 9:

- 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)

Beta 8:

- 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.

Beta 7:

- 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.

Beta 6:

- Added DCE Typhoon MK2 (A1200 accelerator). ROM is almost identical to E-Matrix 530/1230. Identical SCSI driver, slightly modified RAM detection code.
- Fixed E-Matrix RAM selection.
- Fixed crash in lagless vsync mode if CPU speed was on the fly changed.
- Fixed directory harddrive uaehf.device bugs.
- Added optional extended precision (80 bit) host FPU mode. (Probably becomes default and replaces old when/if this gets good enough)

Extended precision FPU mode:
- Fully JIT FPU compatible.
- 32-bit and 64-bit compatible.
- Uses short assembly routines to directly execute x86 FPU instructions. (MSVC does not support long double)
- Basic floating point operations, square root, sin and cos are currently natively supported. Others use normal double precision C-library routines.
- Not yet fully working. Testing needed.

Beta 5:

- Single scan line off by one fix in lagless vsync, frames+ mode now works correctly without static horizontal lines.
- Single slice lagless vsync had blank display (b4)
- Automatic scaling and some other scaling modes had very strange corrupted display in lagless vsync mode. Some small tearing is still possible if scaling is large enough.
- END+F9 lagless vsync debug mode now also adds small flickering markers that show where Amiga-side slices are positioned (Optimally they should be in the middle of large color bars). Switching screen modes does not anymore automatically disable debug colors.
- Reduced amount of data copied in lagless vsync if null filter or d3d shader is enabled.
- Overlay leds (b2) are now also supported in D3D9 mode.
- BPLCON1 delay logic fix when single scanline had at least one odd plane delay not equaling even plane delay and then one or more odd == even delays. (Very rare situation)
- Debugger fa command didn't find anything.
- Disassembler crashed if it disassembled FMOVECR instruction and statefile was loaded without enabled FPU.
- Switching from non-cycle exact to cycle exact mode stopped interrupts if only single INTENA interrupt was enabled.
- Moved CDTV SRAM from Advanced chipset to Expansions and added size selection.

Beta 4:

- Show only every 10th frame in D3D11 warp mode. For some reason Present() blocks if rate is higher than current max monitor refresh rate, not even DXGI_PRESENT_ALLOW_TEARING or DXGI_PRESENT_DO_NOT_WAIT help.
- Normal windowed D3D11 vsync mode should work correctly again.
- Default WASAPI audio device now follows Windows default audio device if default gets changed and emulation is already running.
- Renamed new low latency vsync to official "Lagless VSYNC (Beamraced)".
- Flip first slice early, before vblank (Early flip won't cause tearing as long as it happens during last slice). This should fix tearing in topmost slice when flip gets delayed (which for some unknown reason seems to regularly happen if flipping is done during vblank). This change makes last debug color bar shorter which is normal.
- Use NtDelayExecution and ZwSetTimerResolution (if available) for sub 1ms delays in non-fastest possible CPU low latency vsync modes.
- Replaced FastLane ROM with full 32k dump.
- Emulated (partially) C-Ltd Kronos.
- Removed CDTV SCSI from Advanced Chipset. It is optional hardware module and should be only in Expansion panel. Old CDTV SCSI configured config files are still supported but this and future versions won't write old CDTV SCSI config file entry to config file anymore.

C-Ltd Kronos:
- 5380 based SCSI controller with buffer RAM.
- Boot ROM added ("CLtd RomBoot 3.4, Copyright 1989, Wayne E. Miller")
- Boot ROM is only small driver loader from drive's custom partition table.
- SCSI settings are stored in 256 bit 93C06 serial EEPROM. EEPROM is emulated but data is static (boot enabled, SCSI ID=7)
- Install disk is MIA: Emulation is not yet complete, for example buffer RAM/fake DMA is not emulated.

Beta 3:

- New low latency vsync should now work under Windows XP, D3D9 only.
- Added ICD AdSCSI ROM with icddisk.device v33.0 (unknown ROM version, most likely v2.0 or v2.1) and v34.0 (v2.2 ROM version)
- Added MacroSystem DraCo v1.3 Boot ROM. Set it as extended ROM, A3000 KS 3.1 as normal ROM. (Boots and hangs like Casablanca)
- Fixed MOVE16 debugger disassembly.
- Fixed HDF/directory harddrive unit number conflict (if directory was between HDFs in harddrives list) introduced in b1.
- Fixed randomly occurring timing issue. Reported refresh rate suddenly increased and it looked like warp mode was activated.
- Full-window mode is now supported in virtual multi monitor mode. Native mode window opens on selected monitor, next virtual monitor opens on following real monitor and so on (or on top of existing window if not enough real monitors)

Beta 2:

- New low latency vsync tweaks and updates.
- If low latency vsync polling takes longer than 2 vblanks, exit immediately to prevent total hang if scanline reads return unexpected and weird values.
- Display panel "native" resolution returned non-existing mode which got fixed to smallest supported resolution.
- Fixed clipboard sharing.
- Fixed graphics corruption (black lines/tearing) in new low latency mode with Vertical centering enabled.
- Added overlay led support. Led overlays must have same resolution as main overlay file, fully transparent color except location of led. Name must be <original name>_x_led.png where x = power,df0,df1,df2,df3,hd,cd,md,net (md = flash/eeprom access, for example cd32 nvram) Currently D3D11 only.
- MMU emulation works again (at least 68030 was broken)
- If low latency vsync and DSOUND: switch to WASAPI. New low latency vsync needs "pull" mode audio driver.
- Added new misc panel option, asks for confirmation when trying to close emulation window using close button or ALT+F4/CTRL+F11.
- Fixed Output panel crash if capture before filtering was set.

Beta 1:

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.

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.

--

Lagless Vsync
-------------

Implemented lagless vsync mode (https://www.blurbusters.com/blur-busters-lagless-raster-follower-algorithm-for-emulator-developers/)
Replaces old low latency vsync mode.

What does it do? It reduces input latency from usual 20ms-40ms+ to less than 5ms! (or even less)

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.
- 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.

This method passes my standard Pinball Dreams input latency test. Ball/flipper response feels wrong even with 1 frame of input latency.

--

New debugger features:
----------------------

Main discussion thread: http://eab.abime.net/showthread.php?t=91321

Ability to load any Amiga executable to special debugger RAM:

- Static location, custom loader: program is always loaded in same addresses.
- Each hunk is separated with (later configurable) 32k space to detect possible out of bounds accesses.
- Program's memory allocations are also allocated from debugger RAM, with mungwall-like out of bounds access detection.
- Program's stack is also moved to debug RAM.
- Out of bounds detection is real-time and byte-based, detects both reads and writes. Detects also reads from uninitialized memory (read before write).


Note that stack does not have unitialized memory read detection because dos does not always write to all addresses in stack frames it allocates (for example when it creates dos packet structures) which causes too many false positives.

If debug ram is not manually configured and uaedbg is run, 256M of memory is automatically allocated if $70000000 to $f0000000 has at least one free 256M block. It can be manually configured by adding following lines to config file:

debugmem_start=<address>
debugmem_size=<size in megabytes> Must be power of 2.

Amiga-side debugger command (may become built-in later):

uaedbg <program to debug> <program parameters>

uaedbg loads the program, relocates it to debug memory region, moves stack to debug memory region, breaks to debugger with PC pointing to first instruction of program. Hooks also AllocMem() and FreeMem() and if current task is same as uaedbg task, memory allocation is done from debug ram. (This needs to handle programs that create new tasks, later..)

If program includes symbols (HUNK_SYMBOL), they are also loaded and shown in disassembler when current address matches or instruction's effect address matches symbol's address.

Segment 1: 000003e9 70008000-700122ef
__stext:
70008008 [000000] 23c8 7002 3cfc           MOVE.L A0,$70023cfc [00000000] ___commandline
7000800E [000006] 23c0 7002 3cf0           MOVE.L D0,$70023cf0 [00000000] ___commandlen

If program includes GCC stab (-g) debugging information in HUNK_DEBUG, it is loaded and parsed, including source files. Disassembly will automatically list matched source files. Automatically converts internal source file paths from cygwin (/cygdrive/drive/path) and wsl (/mnt/drive/path) paths to native paths.


70008172 [00016A] 48e7 3f3e                MOVEM.L D2-D7/A2-A6,-(A7)
70008176 [00016E] 2478 0004                MOVEA.L $0004 [08000810],A2

  240   SysBase =  *((struct ExecBase **)4);
  241
  242   /* init globaldata */

7000817A [000172] 2c4a                     MOVEA.L A2,A6

  243   g = AllocMem(sizeof(struct globaldata), MEMF_CLEAR);

7000817C [000174] 203c 0000 09d0           MOVE.L #$000009d0,D0
70008182 [00017A] 7201                     MOVE.L #$01,D1
70008184 [00017C] 4841                     SWAP.W D1
70008186 [00017E] 4eae ff3a                JSR (A6, -$00c6) == $00f9f4ec

Debugging information also contains variable type data, register and local stack parameter data but it is not yet parsed or used.

Debugger also resolves final address when it notices JSR x(PC) + JMP <final address> instruction combination:

70008252 [00024A] 4eba 05f4                JSR (PC,$05f4) == $70008848 == $70015718  _FixStartupPacket

vs old non-resolved final address:

70008252 [00024A] 4eba 05f4                JSR (PC,$05f4) == $70008848

Chip RAM "zero page" (0 to $400) is now watched (like Enforcer). All writes break to debugger immediately, long read from 4 is allowed, if vbr is 0: long aligned exception vector reads are allowed. All other reads break immediately.

Non-existing RAM/IO read or write also breaks to debugger immediately.

LVO symbol support:

if amiga.lib (from Amiga NDK) is in plugins/debugger, it is scanned for LVO symbols.
if plugins/debugger/fd contains one or more *.fd files, they are parsed and added to LVO symbol list.

When disassembling jsr -$xx(a6) instructions will include name of library and LVO if a6 and -$xx matches. 

LVOs are resolved like this (See also TL command):

70008034 [00002C] 4eae feda                JSR (A6, -$0126) == $080006ea exec/FindTask == $00f8272a

If LVO jump table points to other known segment (not debugged program's segment), segment information is also shown.

Stack frame tracking:

Tracks debugged program JSR/BSR/RTS instructions.

70008052 -> 700080a0 SP=7003c0f8 [000098] Segment 1: 000003e9 70008000-700122ef
70008052 [00004A] 614c                     BSR.B #$4c == $700080a0
70008054 [00004C] 2f39 7002 3d00           MOVE.L $70023d00 [00000000] ___env,-(A7) [700080b8]

700080b6 -> 700121ac SP=7003c0f4 [00A1A4] Segment 1: 000003e9 70008000-700122ef ___initlibraries
700080B6 [0000AE] 4e90                     JSR (A0) ___initlibraries
700080B8 [0000B0] b584                     EOR.L D2,D4

700121d6 -> 080005e8 SP=7003c09c
700121D6 [00A1CE] 4eae fdd8                JSR (A6, -$0228) == $080005e8 exec/OpenLibrary == $00fbf246
700121DA [00A1D2] 2680                     MOVE.L D0,(A3) [00000000] _DOSBase

00fbf24e -> 080182b8 SP=7003c078
00FBF24E 4ead 0038                JSR (A5, $0038) == $080182b8
00FBF252 2400                     MOVE.L D0,D2

PC before JSR/BSR, PC after JSR/BSR instruction, Stack pointer before JSR/BSR.
Segment offset and segment details new PC points to debugged program.
SR is also listed if supervisor mode stack frame.
Disassembly of branch instruction + following instruction.

Other new debugger features:

- Early boot segtracker-like feature for loadable libraries and others, enable in misc panel.
- if opcode 0x4afc (official invalid instruction) is executed when debugger is active: trigger breakpoint, don't generate illegal instruction exception.

New debugger commands:

- tr = break when PC points to any allocated debug memory
- tl = break when PC matches next source line, step to next source line.
- seg = list loaded program's segments.
- segs = list all segtracker loaded segments.
- u = inhibit current debugmem break to debugger method. (ua = inhibit all, uc = clear all)
- TL = scan and match library bases (exec library, device and resource lists) with loaded amiga.lib/*.fd symbols. Automatically done when starting debug mem debugging session.
- rs = show tracked stack frame.
- rss = show tracked supervisor stack frame.
- ts = break when tracked stack frame count decreases. (=tracked stack frame matched executed RTS) 
- tsp = break when tracked stack frame count decreases or increases. (RTS/BSR/JSR).
- tse/tsd = enable/disable full stack frame tracking. Can be used when no debugmem debugging is active.

ts/tsp stores current supervisor mode and only breaks to debugger if stack frame operation has same supervisor mode.

All debugger commands that take address or register value also support symbol names. (for example "d __stext")
"library/lvo" is also resolved if library was found when scanned with TL. (for example "d exec/wait" disassembles Wait())

Notes:

- Don't mention anything about GUI. Proper source level debugger may require it but I am not yet sure if it really can be done or is worth the trouble..
- Console debugger must be in use. (If GUI mode: enter xx command to switch)
- If executable has chip ram hunks, whole address space is made chip ram compatible and then hunk is loaded to debug ram.
- Very unoptimal data structures, most also have static sizes. Odd errors and crashes can happen..
- JIT must be off.
- 32-bit addressing must be enabled.
- KS 2.0+ only.

TODO:

- Does other popular compilers also generate useful HUNK_DEBUG data?
- Suggestions needed! (But don't mention GUI!)

--



Lagless Vsync:

Implemented lagless vsync mode (https://www.blurbusters.com/blur-busters-lagless-raster-follower-algorithm-for-emulator-developers/)
Replaces old low latency vsync mode.

What does it do? It reduces input latency from usual 20ms-40ms+ to less than 5ms! (or even less)

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.

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:

http://eab.abime.net/showthread.php?t=91321

--

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.


3.6.1

- 3200b15 "Support DSKLEN writes while disk DMA is active" didn't check if new DSKLEN write had write bit set. Fixes Amax II disk formatting.

Beta 7:

- Added resident struct to UAE boot ROM filesystem, enables c:version <directory filesystem device name>: to report name and version.
- Enabled hardware emulated network card was not fully freed when Restart was pressed, it was still listening for incoming packets.
- Game Ports panel selected Custom input mapping reverted to none in some situations.
- Added PP&S Zeus 040 emulation, SCSI supported, other possible special hardware features not implemented.

PP&S Zeus 040 SCSI:
- 53C710 based which has built-in DMA controller but for some unknown reason driver wastes all CPU time.
- PPSscsi2.device ("PPS SCSI Device 2.98 (28 Aug 1992)")

Beta 6:

- Task bar icon -> close window (possibly also other "external" close methods) didn't always work in D3D11 fullscreen mode.
- Virtual RDB non-512 byte block size support. Last update also broke it if filesystem field was empty.

Beta 5:

- Creating new file with "DOS" name (for example AUX) to directory filesystem drive returned error (got broken in 3.6.0, it added special handling for reading existing special named files in case if filesystem accepts them without mangling but creating new files was missed..)
- Autoscale ignored small vertical display areas in very top of display in some situations.
- A600/A1200/A4000 IDE missed doubler supported flag. (3.5.0+ only shows ports 2 and 3 if device is confirmed supporting IDE doubler)
- Virtual RDB is now supported with dynamic (VHD) hardfiles. (Virtual RDB: if partition hardfile is mounted to any hardware emulated IDE or SCSI controller, virtual RDB is automatically added. This enables to boot/mount partition hardfiles even when using hardware emulated HD controllers)
- Virtual RDB now also includes FSHD and LSEG blocks if hardfile FileSys path is non-empty. (Makes filesystem compatibility testing much faster and easier when using non-UAE controllers)
- If D3D11 mode shader/mask loading failed (for example missing mask image file), not all allocated data was freed.
- Remaining D3D11 alt-tab/F12 fullscreen<>windowed mode crashes should be fixed.
- D3D11 fullscreen mode restore after alt-tab sometimes only showed blank screen.
- Reverted 3.6.0b17 allow JIT direct in CSPPC mode. PPC can't boot without JIT-direct incompatible memory mapping. If you want JIT Direct with CSPPC and don't need PPC: Use CSMK3.

Beta 4:

- Cirrus Logic emulation blit out of bounds checks added, previously it usually caused a crash, for example OS4 + Picasso IV sometimes does small blits that cross end of VRAM. (Original QEMU blit checks were very broken)
- Yet another interrupt handling rewrite to properly support cross thread interrupt activation (PPC emulation).
- Added more validation to clipboard sharing IFF parsing to prevent crashes if data is truncated.
- RTG multithread + hardware mouse cursor + no OSD: mouse cursor movement didn't re-draw the screen.
- If SCSI ATA passtrough returns weird timeout error (instead of immediate failure like it is supposed to do), don't attempt it again to reduce delay when selecting real harddrive.
- Fixed D3D 11 mode debug mode warning. Most likely it was harmless.

Beta 3:

- Not all Advanced chipset options reset when compatible checkbox was ticked.
- Windows 10 build 10240 fix (b1) was incomplete, it caused crash when starting emulation.
- b1 interrupt handling update fix.
- Floppy sound used empty drive volume level if disk was inserted and floppy sound settings was changed when emulation is running. (Different than b1 fix)
- Some fixes to UAE generated emulated IDE identity data. Added CHS-only IDE drive emulation support. (LBA bit is cleared in identity data and setting LBA bit in IDE register does nothing)
- Pre-filled CHS-only drive CHS geometry data query dialog used original non-byteswapped identity data.
- CHS-only IDE drives can now be mounted in emulation and they appear with real size and geometry when using USB adapters that allow identity read but does not support CHS (like common JMicron based adapters). Writing is not allowed.
- RTG background multithread thread safety fixes.

Beta 2:

- If D3D11 fullscreen refresh rate is default: prefer highest supported refresh rate.
- Use pre-scaled values when calculating aspect ratio in integer scale modes. Note that integer scale value selection uses original values, not aspect ratio scaled values. (Fixing this is more complex)
- Few Application Verifier detected bugs fixed. One could have caused random crash at startup or when saving config.
- Fixed random crash when at least one Input panel custom event string was set, Restart was clicked and then emulation was started again.

Beta 1:

- Added Elsat Mega Ram HD controller emulation.
- A.L.F.3 HD controller emulation
- Rewritten expansion hardware interrupt handling to make it more compatible with PPC emulation.
- Implemented experimental RTG mode background thread for Amiga side VRAM to host texture color space conversion/copy. Option in RTG Board panel.
- Fixed crash at startup if DXGI 1.4 was highest available version (Windows 10 build 10240 only)
- KS 1.2 boot hack caused a crash in some manually configured UAE boot rom configurations without at least one directory filesystem/harddrive.
- OCS/ECS only BPLCON2 with "illegal" PF1 or PF2 value is now accurately emulated in dual playfield mode. (If BPLCON2 PFx>=5 and matching playfield is not transparent: playfield is drawn using COLOR0 with playfield priorities still working normally)
- D3D11: switching off on screen leds on the fly left static led texture on screen.
- Floppy sound type selection was not loaded correctly from config file (3.6)
- Floppy sound empty drive volume level was used if disk was inserted before emulation was started. (old)
- HDF filesystem loader now skips HUNK_DEBUG and HUNK_SYMBOL hunks instead of aborting filesystem initialization.
- Direct3D11 fullscreen, enter GUI, press save screenshot button: nothing happened.
- Direct3D11 window mouse drag resize now refreshes the display only after resizing ends.
- Do not allow UAE RTG init to succeed if it is enabled but not autoconfigured. (Few versions ago introduced new autoconfig handling broke previous "is this configured test?")
- Some 68000 instructions didn't use correct reversed memory access order in long -(An) addressing mode. (MOVE EA,-(an), MOVEM, ADDX, SUBX)
- Reading real 68EC040 MMU enable/page size TC register always returns zero, emulation now does the same. (Real 68EC060 not yet tested)
- 68040 SRP and URP registers are full 32-bit, 68060 masks out low 9 bits (which are ignored anyway when calculating descriptor table addresses)
- NCR5394 emulation improved (A.L.F.3 compatibility), support use of "Transfer information" command to manually read status and message bytes instead of "Initiator command complete sequence" that was designed for this purpose and all previously emulated 5394 based controllers have used.
- NCR5394 emulation didn't handle situation where data was written to FIFO before true DMA write was started. FIFO contents should be written before DMA transfer starts. (Blizzard SCSI Kit IV in some situations, possibly others)
- Added "Identity" checkbox to Add harddrive panel. If ticked, real ATA identity data is used in emulated ATA device instead of generic UAE generated and drive appears exactly as it does in real hardware (identical name, geometry etc). If checkbox is disabled: used HD controller/adapter does not support reading ATA Identity or drive is not ATA or ATAPI.
- Read Identity now also shows CHS geometry, LBA and LBA48 (if supported), parsed from identity data (if available)
- kickstart_ext_rom and cart config entries support Arcadia and ALG ROM images.
- joyport2 -config entry incorrectly used port 3 slot.

Elsat Mega Ram HD:

- Basic PIO IDE controller.
- elsat.device "ElsatHD 1.0 (09 Oct 1992)"

A.L.F.3:

- SCSI, NCR5394 based.
- Fake DMA, MOVEMs used in transfer loop.
- No official ROM dump available, tested using loadable driver ROM hack.


3.6.0

- Main window was not activated early enough, it was possible to get logged D3D11 fullscreen error and automatic fallback to windowed mode in some situations.

Beta 19:

- D3D11 fullscreen and GUI open: Quit/Restart did unnecessary fullscreen open and close. (Was working in some betas, broke later)
- Loading new config file via GUI using "Load" button when emulation is already running and loaded config had statefile selected: statefile was not loaded automatically when emulation was started.

Beta 18:

- Added real CHS-only IDE drive HDF imaging support that works with some (single? all?) USB adapters that don't natively support CHS only drives (Drive appears as having zero byte capacity in Windows Disk Manager and SCSI READ CAPACITY returns FFFFFFFF00000200) Imager first asks for drive's CHS geometry and then uses standard Direct SCSI mode READ (10) to read correct blocks. This works as long as adapter blindly copies SCSI LBA fields to ATA CHS/LBA registers internally.
- Default D3D11 fullscreen refresh rate may have incorrectly chosen native interlaced mode if it was available.
- D3D11 no buffer fullscreen vsync does not update as fast as possible anymore.
- Restored norawinput keyboard and mouse modes (-norawinput_all disables all, -norawinput_keyboard and -norawinput_mouse to only disable mouse or keyboard rawinput mode). They were removed in 3.3 but apparently RDP does not support rawinput keyboard.
- BCD instruction V-flag fix, 68020+ BCD instructions don't do undocumented V-flag modifications, only 68000/010, previously it was only done if 68040+.
- Notification icon handling updated, previous Windows 7 workaround removed.
- Added Misc panel option to show WinUAE in Windows shutdown/logoff screen (Vista or newer) if emulation session is active.

Beta 17:

- Added Profex HD3300 emulation and boot ROM.
- Fixed rounding issue in D3D11 mode screen position calculation. (Single pixel offset in some situations)
- 68040+ "cycle exact" could have appear hung if all running code and data fit in caches.
- Geometry file parsing memory free bug fix.
- Interlace artifact removal last flickering line fixed (b1)
- Allow JIT direct in CSPPC configuration. This disables CSPPC Map ROM address mapping completely.
- D3D11 threaded Present() calls removed, it is not compatible with some systems. (Caused blank screens when switching modes)
- Re-initialize D3D11 display mode if ResizeBuffers() return an error instead of showing blank screen.
- End of chip ram didn't have safety barrier if chip ram size was less than 2M. Unaligned long or word access from the very end of chip ram could have caused crash.

Profex HD3300:
- Yet another basic OMTI based HD controller.
- "omti55.device 22.0 (17-Apr-1989) (c) 1988,1989 by Thomas Rudloff for Intelligent Memory Frankfurt, W. Germany"

Beta 16:

- Fixed statefile memory corruption if CPU is 68060. (Introduced when 68040/060 data cache support was added)
- Made SA-1000 and SA-2000 suboptions (like SupraDrives) SA-2000 is same as SA-1000 without $f0 ROM mapping. (Old SA-1000 configs must be re-created)
- GUI opened in D3D11 fullscreen mode: GUI minimization fixed.
- D3D11 mode fullscreen alt-tab, then clicking GUI reset button didn't restore fullscreen mode correctly.
- D3D11 scaled RTG mode hardware mouse cursor position and scaling fixed.
- D3D11 fullscreen RTG, enter GUI, exit GUI: there may have been long delay before fullscreen mode was restored.
- Handle D3D11 mode possible DXGI_ERROR_DEVICE_REMOVED error by retrying mode setup instead of stopping screen updates.
- Catweasel expansion caused hang (infinite autoconfig loop), it was not fully updated to new expansion system.
- SA-1000 Amax driver hang fixed (WD reset command didn't clear busy in all situations)
- Tape emulation now returns single file mark after last file before final end of file/blank state, no filemark returned if last file of index file does not have ending linefeed. Fixes Amix installation error if last file on tape (X11r5src) was selected for installation. When writing, multiple filemarks between files are supported.

Beta 15:

- Debugger 68040/060 MMU table dump command (mmud) didn't support 8k page size. Mask out page descriptor bit 3 (unused) and 4 (M) when checking for descriptor flag differences to generate more useful output from Fusion Forty boot ROM generated page tables.
- Debugger memory string routines now also use MMU mapping mode if enabled.
- Fusion Forty memory flag fixed (It does not use processor slot ram and it must not be enabled). Fixes boot crash if MMU emulation is enabled. Note that it will crash (nothing to do with emulation) if MMU is enabled and 32-bit RAM (except board's onboard RAM is enabled) or any Z3 boards are enabled. Real A2000 can't have those.
- D3D11 no-buffer mode now selects blit model (instead of flip model) if DXGI 1.5+ allow tearing mode is not available.
- D3D11 low latency vsync partially implemented. No calibration, it uses Windows reported value because they should be accurate (reported as fractional number)
- D3D11 black frame insertion support implemented. (which probably isn't working very well..)
- D3D11 mode will now reload shader(s) automatically on the fly if they are modified.
- D3D11 mode D3D9 to D3D11 compatible shader conversion now also converts D3D9-only migfilter/magfilter lines.
- D3D11 mode D3D9 to D3D11 compatible shader modification is completely skipped if technique10 or technique11 is found.
- D3D11 mode fullscreen alt-tab reliability improved, it was still possible to get blank or partially blank window after alt-tab.

Beta 14:

- D3D11: lower hardware levels are supported again. (broke in previous beta)
- D3D11: if Windows 7 and DXGI 1.1+ is not detected, show message that asks to install Platform Update (KB2670838). WinUAE requires DXGI 1.1. DXGI 1.0 won't be supported. (Confirmed on VM that Win7SP1 iso install + optional KB2670838 from Windows Update without installing any other updates is enough to use D3D11 mode)
- D3D9 low latency vsync was reverted to normal vsync if default.uae was missing or default.uae enabled D3D11 mode.
- D3D11 custom fx shader support implemented.
- D3D11 supports most existing D3D9 fx shaders by in-memory string renaming: technique -> technique10 and ps_2_0/ps_3_0 -> ps_4_0_level_9_3 and vs_2_0/vs_3_0 -> vs_4_0_level_9_3. For some reason D3D11 effect compiler ignores D3D9 technique format but nearly everything else is supported. D3DCompiler_46.dll or D3DCompiler_47.dll required.
- D3D9 and D3D11: if shader fx file does not have combineTechique but has at least one technique: automatically select first technique as combineTechique.
- D3D11 mode GUI D3D shader list is only shown if D3DCompiler_46.dll or D3DCompiler_47.dll is available.
- D3D11 in 16-bit mode but 16-bit not supported: switch to 32-bit instead of falling back to Direct3D 9.
- DirectDraw + UAERTG caused crash (earlier betas)
- Use 391078-01 CIA in A600 Quickstart. It seems most (all?) A600s have -01 revision, A1200/A4000 can have -01 or -02.
- If Direct3D 11 is selected as default, also select 32-bit as default depth.

D3D11 custom shader note: texture shaders (tx_1_0) are not implemented. D3D11 replacements for D3DXFillTextureTX()/D3DXFillCubeTextureTX()/D3DXFillVolumeTextureTX() D3D9X functions don't seem to exist. (But fx compiler supports "tx_1_0" shader target so perhaps they are hiding somewhere..)

Beta 13:

- Memory cycle exact CPU speed slider scale fixed. (0 is max)
- D3D11: monitor bezel overlays supported.
- D3D11: RGB mask wrong colors fixed. (RGB<>BGR)
- D3D11: fall back to D3D9 if 16-bit mode is selected but it is not supported. 16-bit is not required format in D3D11.
- D3D11: minimum supported hardware level is now 9.1 (was 10.0).
- Added Evesham Micros Reference SCSI controller emulation.
- Kupke Golem HD3000 autoboot disabled option did nothing.
- It was not possible to override Z2 RAM board autoconfig data if board had built-in manufacturer/product ID defaults (for example any Z2 HD controller with Z2 RAM)

Evesham Micros Reference:
- Basic 5380 based PIO controller.
- Fake DMA, byte wide data port.
- Driver has filesystem relocator but it seems to be broken, for example PFS3 crashes because all relocations point to invalid addresses.
- "Evesham.device (Kemputa1/Evesham drive 13Mar93)", "(c)1993 Kemputa Systems,Pen-y-Gwaith,Ysbyty Ystwyth,Ystrad Meurig,Dyfed. UK"
- It has strange fast RAM configuration, RAM can be disabled with a jumper but it only clears autoconfig "add to free list" bit. If you want to replicate this (board's custom memory test utility only runs in this mode), tick RAM panel edit autoconfig data and clear bit 5 of first byte (for example E4 -> C4)

Beta 12:

- Direct3D11 fullscreen + DXGI 1.5 works again (b11)
- D3D11 fullscreen -> GUI -> change resolution/display parameters -> exit GUI does not cause blank screen anymore.
- 68020 memory cycle exact CPU speed slider is again partially working, CPU speed can be reduced but not increased.

Beta 11:

- Updated to MSVC 2017 15.5
- Config file Description field caching broke in b9.
- Ignore WM_DEVICECHANGE messages during first 2 seconds when WinUAE GUI opens for the first time. Some systems seem to send spurious WM_DEVICECHANGE at program startup.
- Simple box art/screenshot config file support. (See http://eab.abime.net/showthread.php?t=89014 for details.)
- Direct3D11 mode OSD/RTG HW cursor support. All basic features are now implemented. Improved vsync and custom shaders to do.
- D3D11 is now the default (=config file does not override it) if Windows 7 or newer.
- Entering and exiting GUI in D3D11 fullscreen mode restored wrong texture size.
- If Wait for Blitter is enabled and blit size makes no sense (larger than chip ram size), don't wait. (Fixes long delay in Vital / Mystic)

Beta 10:

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).
- Direct3D11 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.

Beta 9:

- 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 corrected, caused random crashes and caused file dialogs to crash if certain shell extensions were installed. (Thanks mutetus!)

Beta 8:

- 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.

Beta 7:

- 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 plugins\filtershaders\direct3d11 (http://www.winuae.net/files/b/direct3d11_shaders.7z)

Beta 6:

- "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.

Beta 5:

- 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.

Cubo CD32 updates:

- Cubo is now an expansion device under custom controllers, DIP switches and hardware feature enable/disable settings are also in expansion config. Cubo config needs to be made from scratch.
- NVRAM (Only in some later models) emulated, saved with CD32 nvram file. (1024 byte CD32 NVRAM + 2048 bytes Cubo + 16 byte Cubo RTC)
- PIC protection emulated (not used by all games), added configurable Cubo PIC language string (2 characters) and game specific security key string (4 characters).
- RTC (Only in some later models) emulated. Saved at the end of CD32 NVRAM file (16 bytes), games use unused timer registers as non-volatile data storage.

- TODO: emulate different hardware variants. (different coin counter bits etc.. Information needed!) Current emulation supports latest (Odeon Twister 1/2?) version, only coin and ticket dispenser ("hopper" and "suzo" in service menu) are not implemented.

Beta 4:

- 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)

Beta 3:

- 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.

Beta 2:

- 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.

Beta 1:

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.

Notes:
- 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..).
- 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.

New ROMs:
- 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.

Ashcom Addhard:
- 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 Combitec:
- 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)


3.5.0

Beta 14:

- Fixed MMU mode HALT3 errors (b7)

Beta 13:

- Masoboshi Mastercard fully emulated. SCSI fake DMA write and true SCSI and IDE DMA read/write support implemented.
- DKB Rapidfire emulation. v1.31 rom image from flash update disk added to rom scanner.
  ("dkbscsi.device (DKB SCSI Driver 1.31 - Copyright © 1996 by DKB Software.)").
  Almost same hardware as DKB 12x0 accelerator board SCSI controller.
- MOVEP C undefined behavior fix that caused wrong access order.
- Fixed nasty JIT FPU bug, saved FPSR was not always correct. (b1)
- Fixed 128k UAE Boot ROM crash in indirect JIT mode.

Beta 12:

- Added workaround for sound filter emulation problem (no sound in A500 filter modes) if non-softfloat FPU emulation enabled
  and program modifies FPU precision/rounding modes.
- b8 blitter update was partially wrong. (Graphics corruption in Arte / Sanity)
- Masoboshi Mastercard crash fix.
- Masoboshi SCSI works again (3400b7 FIFO update missed special case, both status + message byte are in fifo, even in PIO mode)

Beta 11:

- 68060 PLPA MMU instruction now returns data that makes more sense in non-MMU mode. (Similar change as b10 68040 PTEST)
  (Emulated 68030+ always appears as MMU capable from software point of view for compatibility reasons, even if MMU emulation is disabled)
- Do not enable Logitech LCD support if init succeeds but no displays available.
- Listview font width calculation was still wrong if font was same as GUI font.
- Use softfloat routines (not normal doubles) to output debugger FPU register contents in softfloat mode. (AG)

Beta 10:

- Version bumped to 3.5.0. .x was only reserved for minor bug fix versions.
- GUI listview column width calculation used default font size, not selected font.
- Z3 autoconfig in Z3 space didn't support documented byte write to 0x44 config register. (KS ROM always uses word write)
- Manual RAM configuration GUI end address validation was incorrect. Now end address can be smaller than total RAM board size.
- Fixed A2090(a) ST-506 emulation, last accessed LBA status field must be always filled if read/write/format command, added disable
  ST-506 option. (ROM driver checks bit in autoconfig data if ST-506 is available)
- MMU emulation can be now switched on/off on the fly. (Of course AmigaOS will crash if MMU is switched off and MMU is used for Map ROM etc..)
- MMU PTEST in 68040 mode without MMU emulation now checks transparent translation registers and returns correct physical address,
  now Enforcer initializes correctly in non-MMU mode and does not cause crash due to wrong MMU tables if MMU is later switched on.
- Fixed Blizzard accelerator crash if memory size was zero (don't map empty maprom space)
   
Beta 9:

- Comspec emulation was very unstable in cycle-exact modes.
- Amiga-side key(s) pressed when entering pause state was not correctly released when unpaused.
- Add UAE boot ROM (if not 128k full autoconfig device) fake ConfigDev as earlier (in diag init) to make sure possible
  rom configured MMU setup knows about the fake autoconfig device (for example m68k AROS with MMU enabled)
- Updated AROS ROM.
- Selecting built-in AROS ROM always opened console window (broke when console window serial input was added).
- Added A590/A2091 v6.1 ROM.
- H CPU history debugger command now also shows all DMA accesses if v DMA debugger is enabled.

Beta 8:

- Blitter BDAT register's old content was not preserved and shifted in when BDAT was rewritten with CPU or copper
  and current B-shift was non-zero. (Probably never used by purpose but emulation still should be always correct)
- 68010+ RTE didn't generate format error exception if frame was not supported by selected CPU but it was supported by
  other 680x0 model and CPU emulation mode was not MMU or more compatible.
- Added Comspec SA-1000 RTC emulation. Always returns current host time, time registers are not writable.
- Built-in HRTMon 2.37 update.
- Added two A2088T BIOS 4.0 (390657-01) ROM versions with different internal date (09/11/89 and 14/11/89).
- Added A2386SX 1.00.03 ROM.
- PC bridgeboard NE2000 boot crash fix. (Introduced when NIC specific MAC setting was added)
- Adjusted windowed mode mouse clipping so that when winuae window is partially under taskbar (including auto hide taskbar)
  or partially outside of monitor, Amiga mouse won't randomly hit hidden borders (if Windows Mouse mode) or become
  unexpectedly uncaptured (any mode, window partially under taskbar).
- Do not delay SCSI/ATAPI emulation audio CD play state change from startup to playing. Only CD32/CDTV require it.

Beta 7:

- Accessing accelerator board SCSI IO region without any added SCSI device caused crash.
- winlaunch.lib native code use attempts are now internally "emulated". Library is not used or needed anymore.
- Old style 0xf00000 boot rom is automatically mapped (if memory is not already in use and "new" rom mode) if it looks like
  program is directly jumping to boot rom trap space instead of using uae.resource.
- AGA FMODE>0 unaligned bitplane and sprite pointer behavior should be now accurately emulated. (It is not simple masking)
  Sprites not tested (too boring) but both should use same DMA hardware.
- Added A590 v4.6 boot ROM to ROM scanner.
- Fixed A590 XT mode request sense handling (for example if out of bounds read).
- 68040/060 without FPU or 68060 with FPU disabled exception had wrong PC OF FAULTED INSTRUCTION field in exception stack frame.
- Comspec SA-1000 controller emulation remaining features implemented.

Beta 6:

- Comspec SA-1000 SCSI HD controller emulation. (Partially implemented only, don't have working install disk)
- California Access Malibu SCSI HD controller emulation.
- Stop immediately with halt code 11 if initial PC does not point to any valid address or is odd when CPU emulator starts.
- Manually configured but disabled (size zero) Z2/Z3 banks were added to system.
- Apollo 1240/1260 memory address space fixed. Memory disable jumper option added.
- 68000 address error stacked PC was not correct in some read-modify-write instructions.
- If Custom board order was enabled, expansion devices custom config setting(s) was not saved correctly.
- Emulate rare 68040/060 FPU (with unimplemented instructions not emulated) fpsp (68040/060.library) software emulation case
  correctly when both operands are denormals.
- Show [Paused] in windowed mode title bar when in pause mode.
- Transcendental functions added to softfloat emulation (Andreas Grabher). Not 100% identical results compared to
  6888x but almost. Softfloat mode is now complete.
- Removed Arithmetic exceptions option, it is now always enabled in softfloat mode. (It was only temporary option until
  arithmetic exceptions are fully implemented)
- Visual DMA debugger can be switched off, "vo".
- Added visual DMA debugger -5 and -6 modes (-5 = larger overlay with "transparency" and -6 = no "transparency)
- Added separate colors for visual DMA debugger copper wait and special cases (strobe extra cycle, 0xe0 cycle)
- Added visual DMA debugger configuration: DMA channels can be disabled and colors can be changed.
  "vm" = show status
  "vm <channel> <sub index>" = enable/disable toggle. (sub index is not used but must be included)
  "vm <channel> <sub index> <hex rgb>" = change color of channel. If sub index is zero: all sub index colors are changed.

Comspec SA-1000:

- Autobooting A1000 HD controller that also supports loading KS disk from HD!
- Not RDB compatible.
- WD33C93 based, PIO, handshake in hardware but still needs status register polling.
- "ComspecHD.device 34.805 (17 Oct 1988)" added to ROM scanner.

California Access Malibu:

- 5380 SCSI, fake DMA (Long word)
- "Malibu.device 1.0 (1 Jan 1991)" added to ROM scanner.


Beta 5:

- Added Actionware dual light gun adapter emulation. Second gun config entries added to Input panel.
- More accurate lightpen emulation, if lightpen is enabled (bplcon0 bit 3), VPOSR is always stopped from beginning of last
  line to end of vblank (last line really is special!). Beam detection is now cycle exact.
- Light guns apparently have pull up resistor in trigger line, at least Capone requires it.
- Added lightpen offset config entry ("lightpen_offset=x,y"). Offset is in Amiga hardware resolution, lores and non-laced.
- Automatically de-interleave unknown (not in ROM scanner) but valid looking 1M interleaved CD32 ROM images.
- Automatically byteswap unknown 256k, 512k and 1M KS ROM byteswapped images. ROM must have valid checksum, header and size fields.
- Implemented previously completely unimplemented bsdsocket.library emulation sendmsg() and recvmsg().
- Switching middle button = untrap on the fly didn't change windowed mode title bar text.
- GVP SCSI emulation now supports boot roms that do not copy code to RAM first, without need for more compatible option.
  Only if not banked. (not guru rom).

Beta 4:

- BPLCON4 bitplane XOR values didn't affect background color between end of bitplanes and end of horizontal diw.
- FPU packed decimal datatype conversions are now accurately emulated. (AG). Softfloat mode is now mostly complete.
- -serlog command line parameter without -log now only logs serial output (and reads serial input).
- Lightpen emulation absolute coordinate HID pointing device support. (For example Aimtrak Light Gun)
  No extra configuration needed, absolute coordinates are automatically used in lightpen mode.
- American Laser Games second player light gun support added. ALG #2 horizontal/vertical input event.
- Fixed buffer overflow when screen was extremely wide internally with bitplane dma overrun.
- Escape old style directory and hardfile paths if it contains "," (which is config file separator)
- Bitplane overrun didn't work in lines that didn't have any other chip bus accesses or when mode was non-CE.

Beta 3:

- M-Tec AT-500 Megabody v1.33 ROM added. Slightly different than M-Tec AT-500 v1.33w ROM.
- Debugger now shows softfloat mode FPU register contents correctly, also both internal binary format and decimal value is shown.
- More FPU updates and fixes. Arithmetic/unimplemented instruction/datatype exceptions should be mostly complete now. (AG)
- FPU packed decimal format conversions are now accurately emulated (AG)
- JIT FPU works properly again.
- Bitplane overrun emulation was wrong if line didn't have any custom register changes.
- Tablet/touch screen lightpen emulation. (Game Ports panel -> Insert Touchscreen light pen -virtual device in either port)
  Only listed if Windows touch API or wintab compatible tablet or touch screen is detected.
- Added lightpen_crosshair config entry, set it to false (true is default) to disable yellow lightpen targeting cursor.
- Multiple gfxboards didn't work (b2).
- Fastest possible mode was very slow in some situations (b2)
- Slirp updates merged from Basilisk II.
- Final MSVC 2017 compiled.

M-Tec AT-500 v1.33 vs M-TEC AT-500 v1.33w:
- v1.33w is from external M-Tec AT-500, v1.33 from Megabody.
- w = word? v1.33w uses MOVE.W, v1.33 uses MOVE.L in unrolled transfer loop code.
- ROM has 2 16k banks, one for autoboot off mode, other for autoboot on mode.
- Oddly enough v1.33 and v1.33w have same autoboot off 16k bank. Unused driver code and version strings are
  100% identical ("v1.33w").

Beta 2:

- FM801 16-bit audio corruption fixed.
- Some 68020 CE mode cycle-counting is back.
- Clear button state mask when mouse capture state changes. If mouse or joystick button was kept pressed when mouse was
  uncaptured, button was kept pressed when capture state was restored even if real button was already released.
- G-REX and Cirrus Logic graphics board state was reset if autoconfig board info was re-scanned (entering RAM or HW Info panels)
  and emulation was already running (3.4.0)
- Middle mouse button default is back to enabled. (was changed in b1)
- Magic mouse on the fly on change didn't work.
- FPU exception handling rewrite, arithmetic exceptions partially implemented (Andreas Grabher), 68040 unimplemented FSAVE
  exception frame compatibility improved. Arithmetic exceptions are not that useful in Amiga emulation, programs that use FPU
  arithmetic exceptions are very rare. I don't know any, report if you find one :)
- FPU arithmetic exceptions checkbox added to GUI for easier testing. Will be removed when exceptions are fully implemented.
  Even when exceptions are disabled, they are still logged. Softfloat FPU only only.

Beta 1:

- Quickstart Blizzard modes (except if JIT enabled) enabled 24-bit addressing which caused new autoconfig/fallback mode
  support to think Blizzard is in 68020 fallback mode, disabling autoconfig.
- Added Apollo 1240/1260 SCSI module installed on/off option.
- IDE Identify drive command didn't reset multiple sector offset value. If previous read was partial multiple transfer,
  identity drive returned previously read data block.
- Added Lock drive option to real harddrive mount dialog. If checked, all partitions in selected drive will be locked
  and unmounted when emulation is running, enabling full read/write access even if drive has Windows mounted FAT partition(s).
  Lock will be ignored if drive has one or more NTFS partitions.
- Add harddrive didn't accept magneto-optical devices.
- Lots of softfloat FPU mode and normal FPU mode fixes and updates. (Andreas Grabher and me)
- Softfloat FPU mode added to GUI, supports on the fly switching.
- Untrap middle mouse button option was stuck.
- Implemented accurate 68020+ T0 trace mode emulation. (Original one has not been changed for ages..)
- Fixed crash when sound card audio play started and mono sound channel mode and "Include CD and FMV audio" was ticked.
- 271b3 "Blitter final D write don't increase "nasty" count" That is not true, I think this was only added to fix demo
  that randomly glitches on real hardware too.. Fixes intro Himalaya by Avalanche.
- Added illegal instruction at the end of each memory bank allocation, just outside of last available byte to force
  exception if execution falls of the edge of memory. This can happen if "more compatible" is not checked.
  Currently this causes bus error exception. May become halt in the future.
- Audio interrupts are delayed by 2 cycles, logic analyzer confirmed. Emulated only in cycle-exact mode. (Mission Elevator)
- Emulated sprite special case when DMA mode sprite's start X-coordinate is less than sprite's DMA slot position.
- Fixed AGA HAM6/8 behavior when BPLCON4 XOR value is non-zero. Planes 6 and 7 never affect palette selection if HAM8,
  Planes 4 to 7 if HAM6. If HAM control bits select hold mode, selected direct R/G/B value bypasses XOR operation.
  (Thanks to Dissident for test cases)
- AGA EHB plane 6 half-brite selection bit is taken before BPLCON4 XOR adjustment. (Same)
- HAM mode and BPLCON4 BPLAM bit changes or HAM mode and BPLCON4 sprite bank bit changes and sprites in same scanline
  may have caused wrong sprite or HAM colors.
- >2M chip RAM didn't work in non-JIT compatible modes.
- Added -ldlog 1/2 command line parameter, logs all laserdisc commands.
- Recursive mode ROM scanner now skips directories starting with dot.
- HDF creator used old style dialog type.
- 68030 CE/prefetch mode cache access fix.
- JIT direct broke 512k and 1M chip RAM size detection.
- If statefile is loaded with one or more floppy images that can't be opened: keep fake disk in drive (like previously)
  and ask for new disk path when missing disk is accessed for the first time. (access = read or write attempt)
  Old disk path is shown in disk dialog title bar.
- SCSI emulation SCSI buffer re-sizing didn't handle READ(6) zero size length correctly.
- Added memory cycle-exact Quickstart step for A1200 and CD32 configurations. Less CPU heavy than full cycle-exact and
  usually not much more worse (or better). At least not until 68020 CE gets better.
- Memory cycle exact mode incorrectly counted internal CPU cycles partially.
- Memory cycle exact mode also enables more accurate custom chipset mode.
- 68020 CE mode adjustments, fixed Chip RAM access speed (was too fast previously), removed all extra cycle
  counting temporarily. Work in progress.
- Include key scancode in Input panel key events.

Softfloat FPU mode is now officially supported, Andreas Grabher (Previous) implemented required 6888x-specific
features to softfloat support library. Only needed if "weird" features are required (denormals and unnormals, invalid
operands) or extended precision (that WinUAE does not support due to MSVC not supporting it) or accurate status register
flags or 100% accurate rounding/NaN handling, FMOD/FREM quotient etc.

Arithmetic exceptions are not yet supported. Trigonometric and logarithmic functions are currently implemented
using normal native C-library functions and won't return 100% same results as real 6888x.

Not compatible with JIT FPU emulation.

3.4.0

Beta 20:

- Selecting item from HDF "history" drop down worked strangely depending on Windows version.
- Custom event string delay handling fix if delay was last or single event. (But I don't think anyone uses it this way..)

Beta 19:

- Some WASAPI buffer size + frequency combinations caused immediate hang at startup.
- Reset confused display vertical positioning in some situations (Incorrectly detected it as "fake" 60Hz-like hack).
- Some adjustments to GUI panel tree view and main view tab order.

Beta 18:

- Input device on the fly change support now ignores all non-input device change events.
- On the fly switching from keyboard connected to disconnected did nothing.
- Added MIDI out and Genlock video volume setting to Sound panel volume drop down menu.

Beta 17:

- Allow non-power of 2 manually configurable memory size, in 64k blocks. (Unsupported with JIT)
- If possible bitplane overrun situation is active, skip BPLCON0 non-delayed modification optimization. (Massive / Skarla)
- Do not steal focus from tree view GUI panel when moving selection up or down using keyboard.
- Switching from 32-bit to 24-bit address space CPU with Z3 UAEGFX: Mode was changed to Z2 without validating old size.
- Some Z2 fast mem only configs crashed at startup.
- American Laser Games arcade hardware emulation. ROMs added to ROM scanner, LD drive is also emulated.
  LaserDisc emulation uses recently added genlock video emulation to play the video. (Games will run without video but
  it also makes them completely unplayble..). NVRAM load/save support. ALG input events added to Input panel.
- Genlock video file sound track is also supported but it is only played in ALG LD emulator mode.
- Genlock image/video is now always scaled to screen, previous limited integer only scaling is gone.
- Added genlock keep aspect option.
- Picasso IV and x86 VGA ROM file was cleared when loaded. (b12)
- Updated to Visual Studio 2017 RC

American Laser Games configuration:
- Standard A500, KS 1.3, ECS Agnus. Extended ROM = game ROM selection.
- Genlock ALG mode, with video path pointing to LaserDisc video file.
- Input config: Lightpen (do not configure mouse in Amiga mouse port), ALG Right Trigger = fire. Service = service menu.
  Right Start and Right Coin needed to start the game and use service menu. Mad Dog McCree also needs Right Holster (reload).
  Player 2 is not fully supported.

Beta 16:

- uaenet.device unit 0 and 1 (slirp units) didn't open (some previous beta)
- Floppy drive sound volume labels were swapped.
- HDF create size option now accepts decimal numbers. (4.5 = 4.5M. Size is always truncated to 512 byte boundary)
- Microbotics HardFrame SCSI controller emulation. v1.5 ROM added.
- Mainhattan A-Team IDE controller emulation. v1.8. ROM added.
- Immediately free previously allocated screenshot data if screenshot parameters change. (No need to close and open GUI)
- Improve floppy selection drop down behavior. Don't select image until drop down gets closed, sort history list only after
  combo box loses focus to allow keyboard shortcuts to work properly, cursor up/down works without qualifiers.
- GUI tab-key order updated.

Microbotics HardFrame:
- Adaptec AIC-6250 SCSI chip. Possibly only Amiga controller that uses this chip. Slightly more advanced than 5380.
- True DMA! Off the self 68430 DMA controller.
- v1.5 ROM ("MicroBotics HardFrame Driver 1.5")
- Incomplete emulation, only driver required SCSI chip and DMA controller features are emulated.

Mainhattan A-Team:
- Yet another basic PIO IDE controller.
- v1.8 ROM ("ateam at-bus device driver (romversion) V1.8 (19-Jun-92)"
- "ateam.asm,v 1.8.1.1 92/05/20 20:44:21 ML Rel $ Copyright (c)92 by MAINHATTAN-Data. Written by Mike Lamm. All Rights reserved!"
- Does not seem to support custom filesystems.

Beta 15:

- GUI created pre-formatted DD disks had wrong root block allocation in bitmap. (b7 or somewhere close)
- Enabling Quickstart mode didn't reset all new memory parameters (autoconfig etc), only size.
- Fixed WASAPI sound hang if sound device disappeared/changed modes when emulation was waiting for too full buffer to empty.
- Handle AUDCLNT_E_INVALID_DEVICE_PERIOD and AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED, do not disable sound.
- WASAPI sound attempts to re-open automatically if for example Windows sound control panel parameters have been changed.
- Changing CPU config during reset (for example using reset input event) didn't always re-initialize all required CPU settings.
- Added RAM to UAESND board. (8M if Z3, 32k if Z2) Can be used for 1:1 physical/logical mapped sample set or sample data storage.
- UAESND sample type variable added, unused for now but if/when there needs to be compressed format support that can
  be transparently uncompressed using Windows codecs. (mp3 etc..). Sample set structure is not compatible with old version anymore.
- Added keyboard connected chipset option. Inserting keyboard on the fly does usual powerup keycode sequence like any real
  removable keyboard (for example A1000). Logica diagnostics ROM uses this to detect connected keyboard. 
- Sprite to bitplane collision optimization, skip the collision calculation if collision bit(s) are already set
  (=program does not use collisions), previous fix removed (bad) optimization and unnecessarily increased CPU power requirements
  when program uses lots of sprites and does not care about collisions.
- Replaced Vector Falcon 8000 v7.1 ROM with correctly odd/even split version and added v7.6.

Beta 14:

- Ariadne network adapter emulation added. (Am79c960 based, improved Am79c90)
- uaesnd update, sample format byte changed, added support for little-endian and signed samples.
- Old NE2000 config entries overrode new style entries until config file was rewritten at least once.
- Sound output frequency max limit increased from 96KHz to 192KHz. (Useless but if you really want to do it..)
- Added missing drive type/feature level options to add harddrive dialog.
- Opalvision updates, OpalPaint palette is now fully visible, interlace mode missing lines fixed.
  King of Karate confirmed working. PlayAnim24 (which uses sort of polarity inverted control line) works. 

Beta 13:

- Fixed double free in RTL8019 9346 EEPROM emulation. Caused random crashes.
- Implemented DP8390 NIC support (Same register set as NE2000 but without on board RAM "fake DMA" support)
- Added DP8390 based NICs, ASDG LAN Rover/EB920 and Hydra AmigaNET.
- Moved slirp/winpcap option to Expansions -> Network Adapters. Note: Still can't have more than 1 network device active.
- Removed A2065, NE2000 PCMCIA and Realtek 8029 PCI GUI checkboxes. Everything is now under Network Adapters.
- Expansion device select menu sorting fixed.
- winpcap mode now by default uses generated local MAC address (aa-82-8a-xx-xx-xx xx=from physical NIC MAC), or if A2065, it uses real
  A2065 00-80-10-xx-xx-xx MAC. This fixes conflicts with Windows' use of same physical NIC. Custom winpcap MAC address can be forced by
  editing config file (*_rom_options=mac=xx.xx.xx.xx.xx.xx). GUI is not yet supported. Physical NIC is also switched to promiscous mode
  automatically if NIC MAC does not match Amiga side MAC.
- Ignore all received winpcap packets when emulation is paused.
- FFS partition HDF (with WB 1.3 disk L:FastFileSystem) now fully boots under KS 1.0.

WinPCap note: Use http://www.win10pcap.org/ if you have Windows 10. NOTE2: It has a bug that causes "FATAL Bad Memory Block."
errors to appear in winuae's log. It is fortunately harmless. https://nmap.org/npcap/ may also work. (npcap DLL path
locations are now supported)

NOTE: Only 3.3 (and older) config files with old style A2065 or RTL8029 PCI config entries are loaded.
3.4 beta created config files need manual A2065/RTL8029/NE2000 PCMCIA reconfiguration. Old config entries are still created
for backwards compatibility but they are ignored when loading.

Beta 12:

- If genlock is active, mode is not "-" and new genlock alpha option is checked, screenshots and avioutput videos
  include alpha-channel generated from genlock transparency data. Only works in 32-bit mode and may not work if capture
  before filtering is not set.
- Added genlock video input events: restart, pause/unpause, next and previous frame.
- WASAPI shared mode uses lower latency mode introduced in Windows 10 that allows sub-10ms latencies in shared mode (if sound driver
  supports it). Buffers larger than 10ms and non-Windows 10 systems use "old" method.
- "Min" (WASAPI only) sound buffer setting added. Selects smallest buffer size that driver supports.
- WASAPI sound buffer size adjusted. All buffer size values now allocate smaller buffer than previously, pull (event) mode
  is much more stable than previously used push mode, there is no need for very large buffer sizes anymore.
- WASAPI sound automatically switches to default device if current device disappears (for example unplugged USB sound card/headset)
- Added RTL8019 9346 EEPROM emulation.
- Ariadne II NIC emulation. RTL8019AS based. (9346 contents are not correct but driver does not seem to care)
- X-Surf NIC emulation, also RTL8019AS based. (Including ISA PNP emulation that driver needs...) No IDE support.
- X-Surf 100 (Z2 and Z3) NIC emulation, uses RTL8019AS "compatible" chip. Does not emulate any AX88796B extra features (=only works
  if driver assumes chip only supports NE2000/RTL8019AS features. Official driver does not seem to use any extra features.)
- Ariadne II and X-Surfs are currently SLIRP-only, no configuration available. Multiple enabled NICs are still also not supported.
- Disable horizontal/vertical filter configured blanking if display port adapter is active that needs RGBI control lines.
- Try to uncapture mouse before showing crash report dialog.

Beta 11:

- Added generic Z2/Z3 autoconfig support to expansion.cpp. Previously each expansion type needed own separate autoconfig handling.
- Ariadne II added but not yet working. Drivers require working 9346 EEPROM chip. (RTL8029 is NE2000 clone with some extra features)
- Any archive mounted as a harddrive: skip files with zero length file names.
- LZX archive mounted as a harddrive: archives inside LZX archive didn't always unpack and zero size files failed to open.
- Genlock custom video file, capture device and image file support fully implemented. GUI support added. Uses obsolete DirectShow
  SampleGrabber method which is not necessarily supported with all video files/capture devices. Image support requires png image files.
  Scaling is simple integer scaling. Genlock display changes to blue if image, video or capture device fails to open. Capture option
  uses default capture device. You may get few seconds of blue genlock screen before capture/video initializes fully.
  Maximum pointlessness feature level reached!
- uaesnd updates. It can play sound for the first time.
- Test compilation with Visual Studio 15 Preview 5.

Beta 10:

- OpalVision emulation. Not fully supported yet, King of Karate does not work but for example OpalPaint mostly work with some glitches.
- ColorBurst emulation, partial. Only existing software seems to be "CB Paint Update" in TOSEC. ColorBurst is functionally nearly
  identical to OpalVision but has less features. Note: that most test programs are buggy and very CPU speed sensitive, the slower the
  CPU the less you see..
- It was not possible to edit directory harddrive volume or device name.
- Current visible RTG display state was not fully re-initialized when system was reset.
- Increased GUI max size limits to support very high resolution screens.
- Some accelerator boards (for example CSMK1) mapped 128k board to Z2 autoconfig space when correct size was 64k. Caused validation
  halt error and/or reset loop if it wasn't last Z2 board.

OpalVision and ColorBurst note: Multiple per-pixel calculations are needed to render the output (priority/plane/genlock stencil masking,
memory bank selection, color modes, copro line-based mode changes, etc..). If it is too slow: buy a new PC. I am not going to optimize it.

Beta 9:

- Untrap = middle mouse button default was wrong and setting was nearly always incorrectly loaded from config file. (b8)
- Added SCSI+IDE, SCSI only and IDE only Dataflyer Plus options. (SCSI+IDE = default)
- Game Ports panel Remap/test option now supports button-specific autofire configuration. Main Game Ports panel autofire option is
  now ignored when any custom slot is selected. Other confusing Input panel options may be moved later here with more logical grouping.
  Does not yet hide options that are not compatible with selected input event.
- Orphaned (no bridgeboard configured) x86 VGA board caused bogus error message at startup.
- Enabling Picasso IV added incorrectly "NOROM" ROM type to Expansions panel.
- For some reason QEMU Cirrus Logic code only stored chip model when initialized for the first time, this caused graphics glitches
  if any 4M board was initialized after 2M or smaller board. For example Picasso IV + x86 VGA.
- JIT Direct + Picasso IV Z3 was broken in recent beta.
- Added Expansion Systems Dataflyer Plus boot ROM v1.5 and v1.7 to ROM scanner. (v2.1 was added in b8)

Beta 8:

- Do not initiate disk eject+reinsert sequence when changing write protection state that requires saveimage and emulation has not
  been started yet.
- Window border DF0:<>N mouse hotspot offset fixed.
- Do not reset HDF parameters when changing hardfile.
- Some combo boxes (text box with select menu) didn't accept select menu selection without also selecting the text first.
- Made "RTG board" support more modularized to enable easier implementation of new boards. END+F9 switching improved.
- Implemented Harlequin frame buffer graphics board emulation. Multiple boards supported simultaneously. Plus revision features
  only partially emulated, BT RAMDAC has lots of features that no known Harlequin software use.
- Added show Prev/Next/Native/RTG 1/RTG 2/RTG 3/RTG 4 input events. Old toggle chipset/RTG was renamed to Next display.
- -norawinput now only disables raw hid, keyboard and mouse always use rawinput since 3.3.0.
- Windowed mode statusbar message was only randomly visible when switching modes.
- Currently visible status bar message will be immediately overridden by new message if both messages have same type.
- END+F9 mode switch to programmed mode custom mode was not correctly positioned.
- Expansion Systems Dataflyer Plus SCSI/IDE controller emulated. (Not same as Dataflyer SCSI Plus which is A1200/A4000 IDE port SCSI adapter)
- Moved middle button untrap and "magic mouse" untrap/mouse sync to single select menu in gameports panel. (Misc panel middle
  button is kept because it is commonly used but now it only changes gameports option)
- Release all Amiga keys only when mode changes and window needs to be closed and opened (for example fullscreen<>windowed change)

Expansion Systems Dataflyer Plus:
- SCSI-only, IDE-only or SCSI+IDE configuration.
- SCSI is 5380 based, fake DMA (byte wide)
- Boot ROM is basically only a small driver loader, main driver is stored in RDB blocks.
- RDB compatible but can't autoboot from non-Dataflyer partitioned drive.
- It seems IDE partitioned HDF does not work in SCSI controller and vice versa, probably something geometry related that
  prevents boot rom to find RDB embedded driver.

Beta 7:

- CD32 FMV ROM image was not loaded correctly from pre-3.4 config files.
- CD32 first CD audio track play attempt from the beginning was confused with TOC subchannel read.
- Z2/Z3 autoconfig data first byte's upper 5 bits was not editable. Only low 3 size bits should be forced (board size).
- Implemented non-autoconfig RAM board definition support. Added DKB Insider I/II.
- CD emulation didn't automatically load TOC when accessing the CD for the first time and program didn't request TOC previously. (Fixes
  Buddha ATAPI device not reading CD in non-image mode)
- Added manual (non-autoconfig) GUI memory board support. Any Z2 or Z3 board can be configured as manually mapped.
- Pre-KS1.2 boot support works again. Now expansion tree is build before emulation starts but pre-KS1.2 boot support obviously needs
  to know KS version before emulation starts but KS won't be loaded until emulation starts..
- Fixed harmless "SCSI command xx, no direction specified!" messages when attempting to play audio CD using hardware SCSI/ATAPI emulation.
- Fixed unstable Portaudio audio in vsync modes.
- Tecmar T-Card RAM works again. First Z2 RAM is emulated as Tecmar autoconfig RAM board.
- Shortcuts with SHIFT work again in optimized builds. It was buffer overflow (reading past end of buffer) very deep in input handling.
- Both SCRAM 500/2000 SCSI board variants emulated (DP8490V = 53C80 and NCR53C94).
- More ESP/NCR5394/FAS216 updates, FIFO in PIO mode only can contain max 1 byte. (SCRAM NCR53C94 fix)
- Otronic Filecard 2000/OSSI 500 emulation. (Official ROM is MIA, Aminet replacement rom works but it needs to be merged first)
- Automatically loaded default.uae with unplugged input device: set it to none, not layout A.
- Include CD/FMV audio caused infinite loop when playing CD audio.
- Disable ROM panel UAE MapROM option if accelerator board emulation is enabled. They are incompatible.
- Accelerator boards that required ROM but nothing was selected: crashed during expansion tree building.
- DD-only drive + turbo floppy mode + standard ADF HD floppy image: valid MFM was returned.
- Ignore all write attempts if standard ADF HD image in DD-only floppy drive.

Beta 6:

- Workaround for possible NCR53C720+ emulation bug when read is shorter than command's allocation size. CSPPC SCSI driver gets confused
  if it causes phase mismatch error. (b5 REQUEST SENSE fix caused this side-effect)
- CSMK3/CSPPC/BPPC without UAE Boot ROM: accelerator boot ROM didn't work very well.
- Picasso IV enabled + reset: always caused hard reset.
- If extended ADF's track space is smaller than write length, ignore first bits in sector buffer (it is most likely part of the gap).
- Fill REQUEST SENSE Information Bytes (if SCSI) or Address bytes (if SASI) if error was LBA related.
- x86 VGA board didn't correctly skip autoconfig. (It is technically shared with normal autoconfig boards)
- b5 memory bank update broke ECS 0.5M+0.5M config.
- Compiled again with pre-release MSVC compiler. Does speed now match 3.3.0? (Few reported that 3.4 betas have slower performance)
  This breaks most SHIFT+<something> shortcuts.. (It appears to be optimizer bug related to 64-bit variables in 32-bit mode)
  Temporary change, either I'll add workaround or I'll use official version or final/fixed version will be released soon.
  Only confirming if this helps with performance. (3.3.0 was accidentally compiled with pre-release version..)

Beta 5:

- Buddha Z2 IDE controller emulation added. Catweasel Z2 model optionally selectable (Has nearly identical Buddha hardware, CW
  part is not emulated). No ROMs added, flash rom images are available from manufacturer's web site. IDE doubler is not emulated.
- Reset drive sound state when emulated Amiga is reset.
- Z3 mapping = Automatic didn't choose UAE mode if JIT direct was enabled and Real mapping would not fit in allocated natmem space
  but UAE mapping would fit.
- Select UAE mode if Z3 mapping is automatic and UAE fits inside 2G barrier but Real does not. (To better match pre-3.4 behavior,
  selecting Real in this mode can cause non-booting config if config has enough Z3 RAM)
- 3G of Z3 RAM is now possible (3x1G Z3 boards). 64-bit WinUAE only, can't be fully JIT direct compatible.
- Hardware info GUI panel shows also last Z3 address.
- Hardware info shows Z3 board status info: dark background = outside of 2G border (can cause problems because some exec memory
  functions that use bit 31 for error status, reset proof programs mainly use them, usually causes reboot loop). Yellow background = board does not
  fit in address space (32-bit overflow, start address is also 0xffffffff in this situation). Red background = memory allocation failed.
  Lighter text = JIT direct enabled but memory is not JIT direct capable.
- SCSI emulation request sense always returned allocation field number of bytes even if command returned less data.
- If ATAPI CD data transfer size is odd (which is not valid), ignore last byte.
- NE2000 ISA is now available in x86 bridgeboard emulation. 100% untested!
- Portaudio driver converted to pull mode.
- Added Blizzard SCSI Kit III emulation and boot ROM v1.139.
- Blizzard 1230 MK III ROM layout changed to match SCSI Kit III ROM. (Still no proper dump but I am sure this is correct)
- Fixed M-TEC IDE controller emulation rom handling.
- Low latency vsync + no buffer + WASAPI pull mode should be stable again. (RTG mode: todo)
- Sound audio switch off didn't select correct timing method in WASAPI pull mode.
- Small Z2 RAM (256k or smaller that goes in IO Z2 space) shadowed f00000 UAE Boot ROM in some configurations.
- If only one or more Z3 RAM boards are outside of natmem and JIT direct is enabled: don't disable JIT direct completely but only
  force non-JIT direct capable Z3 memory banks to use indirect mode.
- Show Tecmar T-Card as "Zorro I" (prototype/unreleased version of autoconfig) board in Hardware info GUI.
- Certain accelerators with autoconfig board didn't appear correctly in Hardware info panel.
- Z2/Z3 memory bank that failed to allocate (out of memory) caused a crash.
- Save image extended adf image was created with smaller max PAL size if emulation was not already started and in NTSC mode.
- Some fake-DMA harddrive controllers with internal buffers crashed the emulation if GUI was opened during internal DMA operation
  and CPU mode was compatible/cycle exact.
- Separated memory bank pre-allocation and after allocation memory size variables.
- Return correct SASI request sense data.

Blizzard SCSI Kit III:
- PIO-only! I thought all Phase 5 SCSI controllers were true DMA...
- FAS408 SCSI chip which is FAS216 + 128 byte PIO FIFO buffer. (was annoying to emulate without datasheet..)
- v1.39 ROM ("$VER: A1233_VERSION 1.139 (9.5.95)") added to ROM scanner.
- Blizzard 1230 "MK I" to go.. (Does anyone have it? With or without SCSI Kit)

Beta 4:

- Fixed uaegfx 8-bit mode palette updates.
- Added A2630 v4 to ROM scanner. (v2, v3 and v5 to go)
- Force UAE mapping mode if 1G Z3 Chip RAM size.
- Do not map Z3 RAM (and crash) if RAM allocation fails.
- Improved some "Too much RAM" edge cases when deciding UAE/REAL mode and if JIT direct supported.
- cpuboard_settings config entry wasn't loaded correctly if it had any multiselect options.
- Added IVS Vector accelerator board emulation.
- Added support for accelerator 68000 mode fallback, IVS Vector has different boot menu logo in 68000 mode :)
  (It is not possible to boot directly in 68000 mode, IVS Vector boot code needs to initialize first in 68030
  before menu in 68000 mode will work)
- Blizzard 1230/1260/2060 68EC020 fallback mode supported. Hard reset restores original CPU configuration.
  Very pointless but IVS Vector support code already handles it.
- Stop PPC emulation first, before freeing any emulation resources to prevent random crashes at exit.
- Added some predefined autoconfig RAM board choices. Few popular options copypasted from amiga.resource.cx. More later..

IVS Vector:

- 4.14 ROM added. ("Vector Driver 4.14 - ROM IMAGE  IVSSCSI 4.14 (02 SEP 1992)")
- Same SCSI hardware as IVS Trumpcard Pro. (53C80, fake dma etc..)
- Main RAM is jumper selected (4/8/16/32, Accelerator select menu option selects main RAM size)
- Supports A2630 RAM expansion (Accelerator RAM slider selects A2630 RAM size)
- Most jumpers emulated.
- MapROM (FastROM) hardware is not emulated.
- 68000 mode Z2 RAM options not emulated. (Just use normal UAE RAM sliders if you want matching config)
- Right mouse button = boot menu.

Beta 3:

- PCI ES1370 fixed.
- (Missed from b1 log): CPU Idle logic has been completely changed, now it only has two states, inactive and active.
  Active state changes internal CPU speed state to approximate and active equals fastest possible mode.
  Old logic was never good enough. CPU usage was never low enough and it didn't prevent audio glitches.
- Another b1 missed log entry: conditional register breakpoints, break when any CPU register matches
  (equals, smaller, larger, range). More information in debugger help.
- Do not use new CPU Idle mode in PPC-only configs.
- Low latency vsync really fixed. Can also fix other CPU usage related problems in other modes.
- Hardware info panel up/down button disable logic improved.
- Bitplane DMA overrun 1 cycle adjustment, now it matches real A1200 100%. Possible Disk/Audio/Sprite
  DMA slot conflicts are not yet emulated. (Causes graphics glitches on real hardware)
- uaegfx vblank interrupt hang fixed.
- Network OSD led was invisible.

Beta 2:

- Needed natmem space also included IO only Z3 boards but only RAM and VRAM boards should count.
  Fixes most "out of memory" errors.
- RTG VRAM outside of natmem space handling is back, RTG works again in 32-bit Windows in "Real" Z3 mode.
  (also in "UAE" mode if RTG was not first Z3 board and previous board(s) was large enough)
- A2065 didn't work if accessed by PPC CPU.
- Mainboard built-in autoconfig devices were movable (CDTV and A3000 DMAC).
- Hardware info panel move up/down buttons are now disabled when unmovable item is selected.
- Automatic Z3 mapping mode selected UAE mode even when it was not needed. (no JIT direct and not enough natmem space)
- Natmem allocation is still used (if possible) even when starting emulation without direct jit to have better chance
  for on the fly direct jit switching.
- Low latency vsync fixed.

Beta 1:

Big updates:

- New GUI panel (currently named "Hardware info") that lists most installed hardware and allows reordering of autoconfig boards.
- Multiple Z2/Z3 RAM boards can be enabled simultaneously. Manufacturer/product or full autoconfig data can be customized.
- Multiple graphics boards can be active simultaneously (with some limitations). Note that there is still only one viewport,
  END+F9 (this needs simpler option) cycles between active displays.
- Multiple sound cards can be enabled simultaneously.

Expansion device updates:

- Added NE2000 PCMCIA NIC emulation, cnet.device compatible. On the fly insertion/removal supported.
- Blizzard 1230 MK II and SCSI Kit II emulated. MapROM emulated, only power of 2 RAM sizes supported.
- Blizzard 1230 MK III added, ROM software dumped (Physical chip is 32k, boot rom is only 16k, other 16k is
  either duplicate of first or not mapped, physical dump needed). MapROM emulated, SCSI Kit III not emulated,
  SCSI Kit ROM is MIA.
- ESP/53C94/FAS216 emulation PIO mode FIFO handling updates. Multi Evolution and E-Matrix work again.
- Catweasel MK II emulation moved to expansion select menu. Network cards may be moved later.
- Multiple different sound cards can be enabled at the same time. (Multiple identical boards not yet possible)
- Sound card audio internal emulation improved, now supports up to 8 simultaneous streams.
  (1 stream = supports up to 7.1 channel audio. Each stream can have different sample rate.)
  Each emulated sound card (and CD audio emulation) now dynamically allocate streams on the fly.
- uaesnd hardware "emulated" Z2/Z3 DMA sound card, more information later. I also may write AHI driver later.
- Simplified Blizzard 1230MKIV/BPPC memory layout, now it is always located at $400000-$4fffffff and
  mirrors are removed (which weren't correctly emulated anyway). MapROM feature emulation updated.
- Added A2620 v1 ROM image to ROM scanner, use correct autoconfig product id, A2620 is product $50, A2630 is product $51.

Blizzard SCSI Kit MK II:
- FAS216 based, true DMA.
- SCSI Kit MK II only has SCSI chip. Everything else (including boot ROM chip) is located on accelerator board.

Misc updates:

- Added network led (N). red=transmit, green=receive. yellow=both in last 1 second or so.
- Input panel always press/onoff option. Click on name of input event to change it. press:each button/key press and
  release generates only press events. onoff:button press=activate,button release=deactivate. (for example when
  mapped to warp mode, warp mode is active only when button is kept pressed)
- FPS counter can now show FPS values up to 9999. (was 999.9)
- CD32 logging can be now enabled with command line parameter (-cd32log and -cd32log2). Was compile time previously.
- If config file has input device(s) with empty name, insert it in first free slot instead of dropping it.
- Moved Logitech LCD updating to separate thread. LCD updates using new API are slower, at least in some situations.
- Catch console window CTRL+C and window close button click and remove notification icon before exiting.
- Custom game port settings were lost if they were edited again or config was loaded.
- Floppy drives 2 and 3 didn't have same floppy sound default volume as 0 and 1.
- Mounting file smaller than 512 bytes was mounted as a zero block size virtual harddrive.
- Don't try to set D3DPRESENT_INTERVAL_TWO in windowed mode (D3D error in low latency vsync with 100Hz+ desktop refresh rate).
- Limit joystick buttons to 20 (not 32) to leave space for [+][-] events, both share same max 32 button space.
  Also check limits correctly, previously it was possible to have >32 buttons causing strange input behavior.
- Added Single Step input event, when activated, unpauses (if paused), emulates one field and then (re-)activates pause.
- When paused, show current field, not previous field.
- FPS.Adj was not saved to config file and load duplicated built-in PAL/NTSC entries.
- Environment variables in file paths (%VAR%) are now always expanded internally.
- Event ("pull") mode audio support added, currently only supported by WASAPI (Vista or later only). Lower sound latency,
  no need for extra sound sync adjustments and also should be more stable.
- SND% is hidden in pull mode, status is not that simple to calculate.
- CDTV statefiles work again, support was broken in some recent previous version.
- Starting AVI recording from shortcut didn't initialize audio if both video and audio was enabled.
- -scanlineadjust <lines> command line parameter, added to low latency vsync scanline counter to manually adjust frame flip
  vertical position.
- Added longPathAware manifest entry (Removes 260 character path limit, supported by Windows 10 version 1607 or later)
- Network drive ("Include network drives.." option) device name is now NDHx: to reduce possible name conflicts.
- On the fly directory/archive mounting only worked once under OS4.x.
- Max windowed mode window size was still restricted to very old 3072*2048 max resolution.
- added "default" displaydata parameter, always selected if no other displaydata entry matches.
- added "custom" displaydata parameter, previously existing pal and ntsc parameters now only match standard PAL/NTSC modes, custom
  matches any programmed (BEAMCON0 bit 7 set) mode.
- Reduced input latency.

Chipset updates:

- 24-bit addressing on the fly change + reset crash fixed.
- Disable AGA subpixel scrolling if odd and even plane has different subpixel scroll value, current emulation can't
  support it. (Worms DC and ACSYS)
- Added hack that fixes Smooth Copper part in demo Coolfridge / Upfront.
- Sprite to bitplane collision stupid optimization fixed. Fixes Jumpman Junior.
- Emulate "extreme" AGA-only bitplane DMA overrun special case, if display position is exactly right, it is possible to have
  overrun that does not conflict with other DMA channels (at least when disk DMA is inactive), 32/64-bit fetch mode only.
  Fixes game Moon Child.
- Implemented "secret" Akiko PIO mode CD command/response packet transmit/receive emulation.
- Fixed edge case where invalid word or long access (by some buggy program) to end of UAE expansion space crashed the emulation.

Graphics card emulation updates:

- Multiple cards can be now enabled simultaneously, for example UAEGFX + PC Bridgeboard VGA.
- Limitations: Only one uaegfx, A2410 and x86 bridgeboard VGA supported simultaneously. Uaegfx must be first (if enabled)
  card. Any Cirrus Logic based card can be enabled multiple times (up to 4). Invalid config is automatically fixed.
- END+F9 cycles between displays (native->gfx board 1->gfx board 2->..->native). Inactive displays are skipped.
- Board name is shown in status bar when manually switching.
- After reset, board that initializes its output first gets autoselected replacing chipset display.
- Autoswitch status bar message is only shown if more than one board is configured. Bridgeboard VGA never autoswitches.
- NOTE: still no support for multiple outputs visible at the same time.

Expansion/autoconfig handling updates:

- All autoconfig boards and their final addresses are now known before emulation starts.
- Added new GUI panel that shows all configured expansions (expansion = autoconfig boards and few other internal
  expansions. Others will be added later, perhaps also other types of hardware information lists), autoconfig
  addresses and board locations are always updated in real time.
- RAM board manufacturer and product id or full autoconfig data can be set/modified per board.
  (But you are on your own if you change board size bits without matching configured board size!)
- All Z2/Z3 autoconfig boards (includes HD controllers, sound cards etc) can be manually reordered.
- Multiple Z2 and Z3 RAM cards are now supported. (Max 4 at the moment)
- All RAM size combinations are now supported (Previously second board had to be smaller or same size as previous)
- Most autoconfig related config validations removed, for example if you add more than 8M Z2 fast, config is
  not automatically fixed anymore, result now depends on what KS autoconfig code does.
- Multiple Z2 HD+RAM boards are now fully supported, RAM board's autoconfig data is now always copied from
  HD board's data structure instead of always using first HD controller's or default autoconfig Z2 RAM data.
- Accelerator with Z2 RAM will be always paired with first Z2 RAM board.
- New RAM select menu also shows paired Accelerator/HD expansion.
- Default autoconfig sort order is optimized for best fit, boards are ordered from largest to smallest.
- Moved GUI sound card options to SCSI/IDE/etc expansions section.
- Built-in SCSI and IDE controllers are now separate expansion devices (old GUI options still work, there
  is no need to use Expansion GUI to enable them). They are also not anymore listed in HD controller
  list if not enabled.
- A1200/A600 PCMCIA is now single option in HD controllers and also only listed if PCMCIA configuration
  is enabled. SRAM/IDE selection moved to separate select menu.
- 128k UAE Boot ROM works now even if autoconfig address is not 0xEA0000.
- If there is not enough memory, error message is shown and GUI reappears. Memory sizes are not automatically
  lowered and retried like previously (It would get really messy without old RAM size restrictions).
  This can break old configs that only worked because of memory allocation retries.
- Most RAM size/position related JIT direct restrictions should be gone.
- Multiple PCI and x86 bridgeboards are now automatically disabled. (Has always been unsupported config)
  Support can be added if there really is some real world situation where it makes sense.
- Expansion device lists are now alphabetically sorted.
- WD33C93 based SCSI controllers with drivers that execute directly from boot ROM (not copied to RAM) are now
  JIT direct compatible, for example A590/A2091. (Others aren't yet converted to new expansion handling)

3.3.0

- 68060 mode always disabled all 68060-only unimplemented instructions, even when unimplemented emu
  checkbox was ticked. (b11)

Beta 18:

- "ROM needs 68020+" dialog repeated forever.
- Fall back to old GDI screenshot method if GetRenderTarget() fails.
- Logitech color LCDs work again, old API did the conversion automatically.
- Fixed UAE boot ROM trap code corruption if "too many" UAE expansions were enabled. (b3)

Beta 17:

- Pre-KS1.3 boot hack code and data was overwritten by new resident structure update in b4.
- PlanarToDirect RTG optimization fixed. (b16 included forgotten borken version).

Beta 16:

- Replaced obsolete Logitech LCD API usage with current version. No other changes, still plain black and white only.
- Fixed IDE emulation corner case when polling (not using interrupt) BSY bit.
- Changing GUI relative path mode immediately updates paths stored in registry. (Older WinUAE versions don't
  understand relative paths in registry, switch off relative mode if you use old versions)
- Fixed directory filesystem slowdown introduced when it was converted to OS4 compatible trap system (b3).
- Replaced obsoleted _wpgmptr with GetModuleFileName()

Beta 15:

- Remove unmatched characters from keyboard injected paste event. (Previously was replaced with spaces).
- Delay each paste injected key press and release a bit. Some programs don't like too fast key events.
- Restoring statefile with blitter active and it was force-finished (=not cycle-exact mode): blitter
  interrupt was not correctly generated when restoring state file.
- Fixed Direct3D mode DirectX9 install warning buffer overflow.
- Added "ROM disabled" to ROM panel Boot ROM selection. "ROM disabled" = force disable UAE boot ROM even
  if one or more UAE expansions are configured.

Beta 14:

- AGA subpixel scrolling: if line's parameters didn't change compared to previous field's line, line was
  not marked as "changed" and was not always redrawn correctly. (Roketz scoreboard corruption)
- CD32: always generate subchannel interrupts and transfer subchannel frames when reading CD sectors if
  subchannel DMA channel is enabled. (Previously was only done when playing CD audio)
  Real hardware also transfer subchannel frames when CD is idle. This is not yet emulated.
- Added "Paste" input event (END+INSERT default mapping), injects host clipboard text content using emulated
  keyboard key codes. Only available when clipboard sharing is not active and only supports ROM default US
  keyboard layout. For example can be used to paste strings directly to boot CLI, hardware debuggers or
  non-AmigaOS operating systems.
- Mouse/joystick autoswitching broke some betas ago.
- Pause/GUI + black frame insertion: don't show black frame.
- IVS Trumpcard Pro/GrandSlam SCSI emulation implemented.
- AROS ROM updated.
- Few weeks ago released new MSVC optimizer enabled (May not have it enabled in final version because it
  is not yet fully production ready). Report if you notice any performance improvements.

IVS Trumpcard Pro/GrandSlam SCSI:
- Autoboot, seems to support custom filesystems.
- 5380 based.
- Fake DMA. Long reads, word wide writes.
- "Trumpcard Professional Driver 4.9 - devs/IVS_SCSIpro.driver IVSSCSI 4.9 (20 Sep 1991)"

Beta 13:

- HALT10 was incorrectly triggered in some configurations (b12)
- Update ExecBase.MaxLocMem (and ChkSum) if more than 2M chip RAM is configured.
- It was not possible to fully disable enabled expansion device without restart. Checkbox was unticked but
  device was not fully disabled.
- Copper COPJMP blitter conflict bug emulation is again disabled (Breaks Batman Vuelve / Batman Group).
  There is still something unknown. I did some more tests and some blitter cycle sequences do not conflict
  with buggy copper cycle and correctly wait one extra cycle.
- Added IVS Trumpcard Pro/GrandSlam SCSI v4.9 ROM image. Emulation not yet implemented.
  "Trumpcard Professional Driver 4.9 - devs/IVS_SCSIpro.driver IVSSCSI 4.9 (20 Sep 1991)"

Variable Refresh rate updates. I finally bought G-Sync monitor, Acer Predator X34. Every emulator
(any emulator!) user should get G-Sync or FreeSync hardware because variable sync has all the advantages of
vsync without any vsync disadvantages!)
  
- Adaptive Sync renamed to Variable Sync. Adaptive Sync is name of DP variable refresh rate standard (which
  AMD's FreeSync is based on). "Official" generic name is Variable Refresh Rates but Variable Sync fits
  better with other VSync modes in GUI.
- Variable sync + black frame insertion is now supported in windowed and full-window mode.
  (I couldn't get G-Sync to work in normal windowed mode but it did work in full-window)
- Variable sync + black frame insertion is now supported in RTG modes.
- Black frame insertion is not enabled in variable sync mode if refresh rate would become larger than
  selected display refresh rate (fullscreen) or desktop refresh rate (windowed/full-window).
- Variable sync + black frame insertion and if doubled refresh rate is equal to selected/max hardware
  supported refresh rate: automatically reduce internal emulated refresh rate by 0.5Hz to guarantee
  glitch free display. (Workaround for monitors that have max refresh rate of 100Hz=PAL or 120Hz=NTSC)

Continuation to offtopic PC story: returned it on monday, replacement arrived on wednesday.

Beta 12:

- Dummy 68030 MMU instructions were also accidentally disabled in "generic" 680x0 core. (b11)
- AGA mode HAM6 colors were not 100% accurate. (Was fixed in b11)
- Stop with HALT10 if compatible CPU is not ticked and exception begins with SSP pointing to non-existing
  address space.
- Prevent programmed mode display width and height to become too small. Program doing something very stupid
  or crashing program can write very random values to programmable refresh rate custom registers.
- Switching Advanced chipset compatible option off and then back on does not anymore reset chipset extra
  back to Generic in non-quickstart mode.
- 1M/512k+512k Advanced chipset option was not reset when Advanced chipset was in compatibility mode.
- A3000 SCSI + any WD based Z2 SCSI controller: autoconfig didn't work.

Offtopic PC story: yesterday one of my GTX980 (Gigabyte Gaming G1) decided to release some magic smoke mid game,
I guess something shorted and power supply shut the system down instantly. Today I tested both (SLI setup,
I wasn't sure which one died, backplate hides most of the PCB), one works, another shows fire
and smoke signals.. Fortunately everything else appears to be fine.

Beta 11:

- Screenshot/capture without "before filtering" ticked now uses much faster GetRenderTargetData()
  function in D3D mode to capture the output.
- Ticked 68060 unimplemented CPU emu checkbox also enabled 68030 MMU instructions.
- Terminate indirect UAE Boot ROM trap threads before unmapping Amiga side memory to prevent
  random crashes when exiting emulator with traps active.
- Debugger il mask is now accepted in two 32-bit parts, 64-bit values are not supported by debugger input.
- Added gfx_black_frame_insertion_ratio config entry, sets timing between normal and black frames in adaptive
  sync mode. Default is 50 (50%, normal and black frames have same duration).
- CD32 emulation updates, mostly previously unknown undocumented features:
  - It seems unmapped addresses don't "float", all invalid reads seem to always return zeros.
  - CIA chip select, address bits 12 and 13 are CIA selects. Gary: 0=none,1=A,2=B,3=A+B,
    Gayle: 0=none,1=A,2=B,3=none, Akiko: 0=A,1=A,2=B,3=B (Very unexpected)
  - CIA address space: Gary: $A00000-$BFFFFF, Gayle: $BFDxxx and $BFExxx, Akiko: $BFE000-$BFFFFF.
  - Custom register mirror at $B90000-$B9FFFF! (This is really weird..)
  - Usual custom register mirror at $C00000-$CFFFFF.
  - Akiko addresses are mapped from $B80000 to $B87FFF (was $B8FFFF) and has 64 byte mirroring (was no
    mirroring)
  - Akiko ID at $B80000.l is $C0CACAFE (was only $CAFE at $B80002.w, KS checks this address for $CAFE)
  - All write-only registers seem to read same data as nearby read-only register.
  - Interrupt registers only have bits 24 to 31 writable, other bits always read as zeros.
  - Config ($B80024) register has bits 23 to 31 writable, other bits always read as zeros.
  - Subchannel arrived interrupt bit is set at boot for some unknown reason, subchannel index
    register ($B80018) works strangely and has unexpected value at boot ($C2).
  - Match Akiko C2P behavior with real hardware when reading bytes/words or when doing multiple read passes.
  - When booted with CD inserted: first packet from CD MCU is always "media inserted" packet.
  - $B80028.b reads last received command packet byte.
  - Writing to $B80028.b sends command bytes to CD MCU. (This is not emulated yet and no program uses it)
  - Akiko internal CIAs don't have external TOD input pins. CIA-A TOD which normally counts vsyncs or
    power supply ticks count rate is selected with $B80020 bit 23 (0=50Hz, 1=60Hz). CIA-B (hsync)
    timing logic is not known yet but it is also internally generated.
  - Old interrupt request set/clear hacks removed.
  - All CD status return codes (including errors) include door status (open/closed) in bit 0.
  - Contents of unused TOC entry bytes now contain real hardware matching values.

Beta 10:

- if uaenet.device is online and packet(s) have arrived but there is no pending CMD_READ/CMD_READORPHANs:
  wait about 2s before dropping it, it is possible that multiple packets will arrive so quickly that Amiga-side
  TCP/IP stack don't have time to queue more read commands before packets get dropped.
- uaenet.device stability fix.
- Loading config with unplugged joystick or mouse inserted in either port: previous device was not autoselected.
- Filter panel scaling mode active and mouse driver enabled: mouse got stuck in a corner in some situations.
- Screenshot input event set to toggle-mode in Input panel: key/button press = create screenshots continuously
  every frame, following key/button press = stop automatic screenshots.
- one genlinetoscr function (16-bit 4x horizontal stretch) used genlock function in non-genlock mode.
- Adaptive Sync "vsync" mode added. Optimal setting designed for G-Sync/FreeSync monitors. Also allows 100/120Hz
  black frame insertion mode. Not very stable yet. (Don't try to use without adaptive sync hardware..)
- 68040 MMU mode SR M-bit handling was missing. 68060 SR M-bit handling was not correct.
- Disable bsdsocket.library if indirect UAE Boot ROM is enabled, it is not (yet?) compatible.

Beta 9:

- Fixed swapped audio channels if stereo separation was set (b1 cleanup missed code path)
- Fixed uaehf.device SCSI emulation sense data possible crash/wrong status. (trap update related)
- 32M UAE RTG board was always address space aligned. It is wrong in UAE mapping mode.
- Only swallow hardware horizontal and vertical mouse movement when in mouse driver mode, not mouse wheel.
- Improved programmed refresh rate hsync start and end validation to prevent crashes if weird mode is set.
  (BoggleDop / Sanity)
- Added hardfile virtual bad block support. uaehf.device and hardware SCSI emulation only. Create geometry text file
  (<name of hardfile.hdf>.geo) in same directory as hardfile, add badblocks=<blocks> line. (<blocks> can be range, 10-100
  or single value or multiple ranges/values, for example 10-100,200,1000-20000) Max 8 bad block values/ranges supported.
  Error is returned if block in badblock range is attempted to be read or written.
- OS4.x UAE trap mode now uses hybrid busy wait mode. Performance has improved again, directory filesystem speed is now
  fully usable and uaegfx is also noticeably faster.
- UAE indirect trap stability updates.

Beta 8:

- Game Ports joystick type was always empty (undefined).
- Quickstart panel CDTV/CD32 CD path name label was "DF1:", not "CD". (Broke when bridgeboard drive support was added)
- Dragndrop to emulation window didn't work correctly until GUI was opened at least once.
- Added screenshot autoclip mode, uses autoscale display size/position detection.
  Also added following config file only entries: (all config entries need win32. prefix)
  screenshot_min_width and screenshot_min_height: minimum autoclip size in lores pixels.
  screenshot_max_width and screenshot_max_height: maximum autoclip size in lores pixels.
  screenshot_width and screenshot_height: forced screenshot size (non-autoclip mode only)
  screenshot_x and screenshot_y: position/offset of screenshot (non-autoclip mode only)
  screenshot_mult_width and screenshot_mult_height: 1x, 2x, 3x, .. 8x screenshot size multiplier.
  screenshot_output_width_limit and screenshot_output_height_limit: minimum screenshot size, if original size is smaller,
  multiplier is increased until width/height is same or larger.
- More internal changes to support more than one enabled RTG board at the same time. (Still lots more to do..)
- 68020/030 RTE didn't generate exception when it encountered 68040+ or 68010 only stack frame types.
- Return error code instead of crashing if bsdsocket emulation sendto() tries to use unsupported raw protocol.
- Switching from relative path mode back to normal mode could have caused repeated crashing.
- Do not write reserved block at the end of FileInfoBlock back to Amiga side, Pre-2.x dos commands don't allocate
  complete FIB structure. (Was side-effect of OS4.x compatible trap system)
- Basic NERO nrg CD image support added. Data and audio tracks seems to work.
- CDFS mounting selects Joliet volume label if found. (Joliet volume label is not restricted to capital ASCII letters)
- uaenet.device S2_READORPHAN should not filter unknown multicast addresses.

Beta 7:

- Fullscreen + paused + enter GUI: GUI was invisible.
- OSD FPS counter shows 'P' in pause mode.
- Directory filesystem drive total/used values are not anymore converted to internal block count before
  again converting to AmigaOS block count. Reported Amiga-side size is now accurate.
- Create more sane looking fake geometry for directory harddrives. (Not that anyone really cares)
- Directory filesystem harddrive block size is dynamically adjusted to enable correct drive size information
  even if drive is large (>2T), as long as AOS also supports it (OS3.9+ probably required).
- If m68k FPU is in float (32-bit) precision mode, force output register value to 32-bit precision after each
  host FPU operation to guarantee correct result. (Kilofix / Iris missing geometry)
- Clear UAE boot ROM temporary variables at reset. (OS4.x reset loop after warm reset)
- Added 20 bytes of empty space after directory filesystem volume node. If OS4 decides to use it for something.
  (OS4 volume node is 20 bytes larger. UAE puts it in hardware board space, it can't use DOS functions to allocate it).
- Implemented OS4 ACTION_FILESYSTEM_ATTR directory filesystem dos packet.
- Selecting none in Game Ports reverted back to previously selected device/layout.

Beta 6:

- Fixed uaehf.device and input on the fly device change invalid free() calls.
- Game Ports panel autofire/joystick type setting was not remembered.
- Do not queue new uaenet.device uae_Signal() call if previous is still in queue.
- Do not call any host OS functions from uaegfx trap functions, trap function can run in different thread context
  which can cause strange side-effects. OS4.x uaegfx resolution changes should be safe again.
- Added shellexec custom input event/uae-configuration command that can execute Amiga-side commands or scripts.
  Uses SystemTagList() with NIL: Input and Output handles if KS2+, Execute() with NIL: Output if pre-KS2.
  Only works when UAE Boot ROM is active, dos.library has been initialized and AmigaOS is running normally.
- Display panel color component gamma value calculation fixed, any brightness or contrast modification was too dark.

Beta 5:

- Game Ports mouse and joystick was always reset to defaults (b4)
- Dark palette fix adjustment is now calculated before other adjustments (brightness, contrast, gamma)
- Dark palette fix third option added, pre-converted Atari ST palette increased to full range, 12-bit EEE becomes
  nearly full white, FCFCFC in 24-bit RGB space. (Not FFFFFF because palette would not be linear anymore)

OS4 UAE expansion updates:

- Directory filesystem random errors fixed.
- Directory filesystem/CDFS CD on the fly insertion/removal supported! (It wasn't that difficult after all)
- uaescsi.device supported.

NOTE: Try not to change uaegfx resolution in OS4, it can cause mysterious crashes or side-effects. Fix coming later.

TODO: bsdsocket.library and fixing random hangs.

Beta 4:

- Default game ports config without default.uae (Mouse + keyboard layout A) was not set. (b3)
- On the fly input device change crash fix. (b3)
- Monochrome mode config file entry added.
- Atari ST dark palette fix moved to Brightness/Contrast/etc select menu and added alternate mode.
- UAE expansion resident structures are now injected to execbase ResList. Now less important expansions are initialized
  later. Previously all were initialized during diag init time. Now also uses normal RTF_AFTERDOS resident to start
  clipboard sharing instead of ugly hack.
- Simplified rawinput support, also removed rawinput checks, added when long time ago WINE didn't fully support rawinput.
- Added harddrive master write protection checkbox to Misc panel. WARNING: don't use it with hardfiles unless you know
  exactly what you are doing.
- UAE Boot ROM with PPC native OS message now asks to enable correct boot ROM mode.
 
OS4 UAE expansion updates:

- Clipboard sharing is now supported.
- Magic mouse is now supported.
- Virtual mouse driver is now supported.
- uaenative.library converted to new trap system but not tested.
- uaescsi.device initialization converted to new trap system, device will open now without crashing but any CD access
  commands will not work (and most likely will also crash strangely).

Still not supported:

- Directory filesystem on the fly insertion/removal, including CDFS CD swaps. Getting this to work will be extremely
  complex task. Not sure if it is worth the trouble.
- bsdsocket.library
- uaeahi (Probably not needed, PCI sound card emulation is better choice)

Beta 3:

- When matching config file and on the fly connected game controllers, first check if both id and friendly name match and
  only if no match, check id only and finally name only. Some multi slot controller adapters have unique name for each
  port but all ports have same ID. (Was id and then name matching previously)
- Remembered input device selections are now forgotten when new config is loaded.
- On the fly unplugged devices are now properly remembered and re-inserted if on the fly reconnected.
- PC Bridge disk drives raw image support (extended adf, ipf and so on.) Standard DOS disks only, no copy protections
  or other tricks supported. Read-only, writing is not supported.
- JIT slider now only shows power of 2 cache size values and max is 16384. (Max was already changed in previous betas)
- Linked config files loaded unreliably (or never) due to uninitialized variable.
- Real storage device (harddisk, memory card etc..) failed to open the device if it didn't have device path, only
  drive letter.
- CDFS automount didn't mount CDs with empty label, dos does not like empty volume names, replace empty name with "NO_LABEL"
- BPLCON0 BYPASS bit emulated. AGA-only, bypasses palette selection, creates gray scale output. (Microcosm cheat mode effect)
- Added A1000 composite out monochrome output mode emulation when BPLCON0 COLOR bit is zeroed. Option in advanced
  chipset panel. Only emulated if no video port display devices enabled, monochrome emulation shares same code (and
  in real world it is also not possible, RGB video out is not affected by COLOR bit). Also added always-on monochrome
  mode option to Display panel. (Uses HRM documented gray scale brightness = 30% red, 60% green and 10% blue)
- "Atari ST palette fix" added to Display panel, called "Dark palette fix". It is wrong to mention Atari ST in GUI :)
  There are few stupid Atari ST ports that use original palette (3 bits/component) = halved brightness in Amiga.
- UAE autoconfig board/boot ROM selection added to ROM panel. Do not touch unless you wan to run OS4 + UAE expansions.
  OS4 + UAE expansions: must be set to last option, "New UAE (128k, ROM, Indirect)". (Quickly added to GUI, probably
  will change in future versions)

OS4 compatible UAE autoconfig board, boot ROM and communication interface.

Currently supported UAE devices:

- Directory harddrives.
- uaehf.device (UAE HD controller hardfiles)
- uaegfx RTG. (Copy OS3.x uaegfx and uaegfx.info to OS4.x Devs:Monitors)
- uaenet.device
- uae.resource
- uaelib ("uaelib_demux" trap)

Not yet supported (lots more work needed):

- bsdsocket.library (This is the most difficult)
- uaenative.library
- clipboard sharing
- uaescsi.device
- virtual mouse driver
- on the fly directory harddrive changes.

And everything else that was not mentioned.

Notes:

- Slower than normal host<>Amiga communication because every read or write that accesses Amiga memory needs to be
  done in Amiga side (due to non-1:1 logical/physical mapping). It will never be as fast as direct communication.
- Remember to set ROM panel UAE expansion type to "New UAE (128k, ROM, Indirect)".
- Directory harddrive (copied from HDF) OS4 installation will boot but it is not recommended, it is slower
  than HDF and there is mysterious issue that causes random read errors. (Missing font requester when booting is the
  most common side-effect)
- Most UAE expansions have preliminary updates for indirect trap support and support required multiple major
  changes = many things can be strangely broken..

Development speed of OS4 compatible UAE expansion and priority of features mainly depends on donations.


Beta 2:

- Game Ports panel keyboard layouts didn't load from config file. (b1)
- Only first (of 3) Input panel keyboard config slot was loaded correctly. (b1)
- Other input handling fixes (very old, old and b1) and updates. Some problems probably still remain unfixed.
- GUI allowed unsupported combination: more compatible CPU ticked in JIT + 68040/68060 modes.
- Hardfile SCSI emulation READ CAPACITY block count off by one if PMI bit was set.
- MODE SENSE (10) added to HD SCSI emulator.

Beta 1:

- Added extra validation checks for STORAGE_DEVICE_DESCRIPTOR, buggy drivers may return invalid (negative) offset
  values.
- 64-bit JIT harmless "Warning! 12 is locked" log spamming disabled.
- Updated copper/blitter cycle conflict emulation. It only triggers when CPU writes to COPJMP, Copper is waiting and
  Copper DMA is enabled (and blitter uses same cycle). If Copper DMA was off, bug won't trigger, even if DMA gets
  enabled few cycles later. Copper bug emulation is again always enabled if 68000 and cycle-exact config.
- Cancel main thread sleep state immediately (Sleep due to CPU idle or similar) if PPC thread caused mainboard interrupt-
  This should reduce PPC to M68K interrupt emulation latency.
- Hardware RTG emulation rendered same frame twice in some situations. Caused very slow performance in triple buffered mode.
- Debugger keyboard presses were buffered and output to Amiga-side when debugger was exited.
- Starting disk DMA does not flush Paula internal 16 bit buffer. Poll DSKBYTR for DSKSYNC, immediately start disk DMA with
  WORDSYNC enabled: following sync word must not be missed. (Original Virus really slow loading in cycle-exact mode)
- Chip ram was marked as 16-bit Fast RAM for the CPU (no DMA contention emulation) if any memwatch point was active.
- Amithlon partition type (0x78/0x30) support was broken, partitions were detected but it was not possible to mount them.
- Added SX32 Pro board and ROM image. (Not all RAM sizes are correctly mapped)
- Only unmap Z3 Fast RAM at reset if Z3 mapping mode is "Real" for better compatibility with old configs that assume
  Z3 RAM does not temporarily disappear at boot.
- JIT on/off on the fly change without other CPU settings changed at the same time with uae-configuration didn't work.
- Hardware emulation autoconfig board UAE interface first working feature: uae-configuration now works under OS4
  Requires also updated uae-configuration, interface can also work under other non-m68k AmigaOS operating systems,
  only requirement is simple native uae-configuration port. Interface design is not final yet.
- If CSPPC or BPPC is booted with empty or zero size flash rom image, fake resident idtag is automatically added that
  fools official flash rom updater to detect working board, "updating" the empty flash with full image (updater
  contains full flash rom image in encrypted format)
- Debugger memwatch points can now match only CPU instruction (CPUI) or only CPU data accesses (CPUD, CPUDR, CPUDW)
- "Heat map" debugger added, shows optional visual heatmap of CPU and DMA accesses. Can list highest addresses used by
  CPU instruction fetches or all addresses that single device accessed (Some DMA channel, CPU)
- Some AGA modes were incorrectly detected as bitplane DMA overrunning causing screen corruption.
- AROS ROM updated.

Input system and mapping updates:

- Added SPC_SWAPJOYPORTS input event, swaps gameports joystick ports.
- Added END+J default mapping = SPC_SWAPJOYPORTS.
- Device autoswitch didn't ignore button release without matching press.
- Device autoswitch switches to new Game Ports custom event if it has fire button mapped to mouse or gamepad.
- "WinUAE null keyboard" renamed to "WinUAE keyboard", this is now the default global virtual keyboard. GamePorts panel
  only uses this keyboard, multiple keyboards are only supported in Input panel mode and only if manually enabled.
  Reduces complexity and confusion when moving configurations between systems with different number of keyboards.
- Game Ports custom mapping rewritten. Now Game Ports list has 6 custom slots which can me inserted to any joystick port.
  New custom mapping data is also saved to separate config entries, one per slot.
- Old Game Ports custom config is automatically converted to new custom mapping system.
- Removed X-Arcade built-in layouts. Re-create them with new custom mapping system if needed.
- Cleared custom input event string equals setting event to "<none>".
- Fixed since the beginning bug that caused incorrectly matched input device(s) and input config when config was loaded
  with different connected input devices and order of devices was also different.
- Rewritten game ports validation (Detect and fix if same device in multiple ports etc..).
- Old config files should still work like previously except: game Ports custom mapping and first keyboard input config
  goes to WinUAE keyboard slot.
- Last few Game Ports panel inserted devices (layout or real input device) are remembered. For example if config is loaded
  with joypad A inserted in port 2 but pad is not plugged in, then user manually changes it to joypad B. Now if pad A is
  later reinserted and pad B is removed, A is automatically put in port 2. It also works with keyboard layouts or new
  custom layouts, if keyboard layout was previously selected, then it was later replaced with gamepad, if gamepad is unplugged
  on the fly, previous keyboard layout is automatically selected.

Game Ports panel "simple" custom mapping should be finally very intuitive to use.

3.2.2

- JIT x64 R12 special case fix.

Beta 4:

- Serial emulation didn't flush transmit buffer, it was possible last few characters remained in buffer.
- AVIOutput hang if sound emulation was idle. (Sound was autoswitched off)
- Added hidden (no overlays) touch mouse and joystick support. Only enabled when touch panel is detected,
  Game Ports panel mouse driver is not active and Windows mouse is not selected. Multi-touch supported.
  Located in bottom half of screen, left side is always mouse, right side is always joystick.
  First basic implementation. Nothing is configurable. Tested only with Wisky 7.85 Windows tablet.
- Sending input event externally (via uae-configuration for example) that goes to inactive Amiga-side port
  now also enables it automatically. Previously event was ignored.

Beta 3:

- Debugger thought slow ram was IO region if ECS Agnus.
- CDTV-CR mode CD led didn't flash when reading data, only when playing audio.
- Fixed linestate array buffer underrun if mode was interlaced. Most common side-effect was blanked
  screen in interlaced modes, especially in fields or fields+ mode, if build was full optimized.

Beta 2:

- SASI/SASI (CHS) options were not visible in GUI when listing SASI controllers.
- No MIDI out devices detected, 64-bit only.
- AVIOutput with "capture before filtering": width is now always divisible by 16 and height is divisible by two.
- Added config file only optional AVIOutput position and offset parameters: recording_width and recording_height,
  (resolution of video) and recording_x and recording_y, offset from top/left of Amiga display. If offsets are not
  set or negative, Amiga display is automatically centered. Only available in "capture before filtering" mode.
  GUI setting may be added later.
- Windowed mode bottom bar CPU state didn't show PPC state if x86 and PPC CPU expansion was active at the same time.
- Phoenix Board SCSI emulation added.

Phoenix Board SCSI:
- Autoconfig, 5380 SCSI chip.
- Very simple design, PIO SCSI, software handshake. (No "fake DMA").
- Boot ROM version J added, pbscsi.device 3.1. ("Phoenix Board SCSI J 29/7/92")

Beta 1:

- 68020+ BFFFO instruction's result value must be calculated from full offset (was offset AND 31),
  even when effective address is data register.
- When loading config with joystick that is not available, switch to keyboard layout that was
  previously selected or none, not layout A. Set layout A in default.uae if you want old behavior.
- If IPL rises during interrupt exception processing, new interrupt exception should start immediately when
  previous one was about to execute first instruction. Previously one instruction was always executed before
  new instruction exception processing started.
- Per-monitor high DPI update still caused repeated GUI window closing/opening.
- Slirp code had undefined C (unsigned <= 0 comparisons, in WinUAE only), probably accidentally worked when
  using older compiler. Caused slirp thread to use 100% CPU time continuously.
- Keyboard names are now listed in Input panel device list. (Replaces "HID Keyboard Device" or similar generic name)
- AGA FMODE register was reset to original value if state was restored and then display parameters changed (for
  example window was resized) and program didn't update FMODE for example in copper list. (3.1.0b10)
- AGA subpixel bitplane delay emulation rewritten. (Fire and Ice CD32 config screen jitter, Banshee flickering
  vertical line)
- Fixed wrong free call in function that creates zipped debugging log files.
- Renamed log file zip file name. includes now 64-bit identifier and version number.
- Added Windows build number to log version string.
- Filter reserved USB HID usage IDs, not just vendor reserved IDs.
- Changed HID RawInput handling, never unregister raw input, use rawinput device change events to detect device
  insertions/removals instead of generic change support that also includes other types of media changes.
  This update also works around odd Windows 10 (10586 only?) rawinput side-effect where device handle can change
  after RegisterRawInputDevices() call. Raw input device change notification support is Vista or later only.
- Updated built-in HRTmon to 2.36
- Clip out of bounds RTG coordinates instead of rejecting graphics operation completely.
- SSE2 rounding mode should match FPU rounding mode. (3.2.0b16)

3.2.1

- Restoring statefile with FPU crashed.
- If Blizzard RAM allocation fails in non-JIT compatible special case mode, halve memory size and try again
  instead of crashing.
- DDFSTOP special case (changing value during cycle when old DDFSTOP would have matched) triggered
  also when it should not have triggered. (Real / Complex)
- 68020+ accept odd stack when processing exceptions. For some reason I had assumed exceptions need
  aligned supervisor stack.
- GUI Picasso IV ROM config never listed rom scanner detected ROM.
- If RTG board and JIT is enabled but RTG VRAM is located outside of natmem region (For example "real" Z3 address
  at 0x40000000 under 32-bit Windows), disable the board instead of trying to config it in unusable address.
  Previously used hack is not anymore compatible with updated JIT.
- libpng updated to 1.6.19.
- CPU state file buffer overflow when saving 68040+ state.
- If triple buffering, windowed, no vsync and desktop compositing (DWM) enabled, use double buffering.
- 64-bit version didn't load any plugin DLLs without extension (_x64 etc..)

3.2.0

Beta 20:

- Map ROM feature was not JIT direct compatible (JIT update few betas ago)
- Do not initialize CD drivers twice. (scsi passthrought, ioctl, image)
- Fix compatibility with old config files (before 68000/010 32-bit addressing option was added),
  force 24-bit addressing if config file was saved with 2.8.1 or older.
- Another old config compatibily update, if 68000/010 with chipset extra set to Generic, use more A500-like
  mainboard config than bigbox-like.
- Added Kupke Golem FastSCSI/IDE combo board.
- FastLane SCSI autoconfig mapping fixed.
- ROM scanner prefer roms not in archives update (b15) had exactly opposite effect..

Kupke Golem FastSCSI/IDE:
- SCSI/IDE combo board. Whole board or only IDE can be disabled.
- Fake DMA (SCSI long word wide, usual word wide PIO IDE)
- 4.2 ROM added ("fastscsi device (romversion) V4.2 (06-FEB-95)")
- Boot ROM made in 1995 without custom filesystem support..
- Does not copy ROM code to RAM, driver code executes directly from ROM.

Beta 19:

- Sprite in far right border feature (b1) didn't work correctly in AGA modes that require hires/shres horizontal
  sprite resolution support. (Alien Breed 3D garbage sprite in right border)
- AGA hires/shres horizontal scrolling feature was not fully in sync with sprites (Banshee)
- In some situations bitplane DMA emulation internal state flag got stuck in active state (Aladdin blank screen).

Beta 18:

- If dragndrop to GUI closed GUI (for example config file with show_gui=no), invalid GUI windows handle was accessed.
- Don't parse command line again when restarting emulation (for example by loading new config when emulation has
  already been started). Previously command line overrode new config.
- "Forget" all remembered scan line states when forcing full refresh, previously some border region scan lines
  were not refreshed properly when display parameters, for example centering, changed.
- Fixed named pipe unicode format buffer size calculation bug.
- If last command line parameter is a path and it looks like config file or state file: load it automatically.
  Adds support for dragndrop over winuae.exe shortcut with other parameters in shortcut's Target field.
- Automatically resolve all shortcut (*.lnk) paths in command line.
- D3D9 non-shader mode forgot scanline texture when switching modes.
- Fixed off by one bug in input device re-enumeration causing keyboard layout B->A or C->B change.

Beta 17:

- Trace mode in 68000 cycle-exact was 4 cycles too long.
- 68000 cycle-exact mode STOP needs at least 8 cycles before it can wake up.
- Memory-only cycle exact crash when entering GUI.
- Memory-only cycle exact shortcut config entry cycle_exact=memory (Old false and true values have not changed)
- Only use picassoiv_rom_file config entry if it contains valid path. (Workaround for some config files that
  contain picassoiv_rom_file=:NOROM for some reason)
- Z3 Picasso IV was disabled if there was not enough address space even when JIT was disabled (b16).
- JIT on/off change was not delayed until it was safe to do, like other CPU option changes. uae-configuration
  (or similar) on the fly config changes were unreliable in this situation.
- FAT drive mounted as a directory harddrive: file's modification time was not always correct. (2.6.0, wrong
  date field name)
- Warp mode fps limit added, config file only: warp_limit=fps

Beta 16:

- Added Mediator 1200SX autoconfig data.
- Added support for 68020+ CPU floating bus data when clock chip is not connected (Not yet correctly emulated, need
  accurate CPU cycle sequence and more)
- SPS plugin was not searched from all supported directories.
- Don't add fake uae boot rom expansion board if "hide uae expansions" is enabled.
- FPU FPCR and FPIAR was swapped in disassembler.
- CIA-B TOD accurate cycle counting code used CIA-A "is tod on?" variable.. (2.7.x or somewhere close)
- Use official AD1848 crystal value in Toccata emulation (24.576MHz), it seems some Toccata boards have correct
  crystals and some not exactly correct (For example 24.582MHz). Now 48000Hz output is exactly 48000Hz. (was 48011)
- 64-bit JIT FPU rounding mode fix and other 64-bit FPU fixes. (Frode)
- 64-bit QEMU PPC plugin fixed (Frode)
- Added memory accesses only -cycle-exact mode. In this mode CPU does not internally count cycles, only external
  memory accesses are counted, including chipset DMA contention. (This was previously only used when 68040/060 and
  cycle exact was enabled). 68020+ only, at least for now. More compatible (prefetch + caches) also required.
- GUI disk eject button worked unreliably if disk was inserted and then immediately ejected.

Beta 15:

- KS1.2 boot hack improved, now also works with KS 1.1, KS 1.0 and even with 0.7 beta!
- Added old style >2M chip RAM support back as a fallback, used when new method can't extend chip ram size.
- Fixed CAS2 instruction comparison failed case, memory operands should be written to Dc, not Du.
- Support DSKLEN writes while disk DMA is active, update only remaining DMA length without modifying DMA state (undocumented feature).
- If ROM scanner finds same ROM image multiple times, select plain file version if possible (not in archive).

Pre-KS 1.2 boot notes:
- KS 1.1 and older DOS is pure BCPL. Added separate BCPL entry point to directory filesystem
  handler that makes BCPL DOS happy.
- Expansion.library does not exist: MakeDosNode and AddDosNode replacements added.
- Directory filesystem automount/boot fully supported.
- Hardfiles work more or less same as with KS 1.3.
- Boot priority sorting is not supported, first drive is always boot drive. (This can change in the future,
  don't depend on current behavior!)
- WB 1.3 L:FastFileSystem is supported with 1.2 and older versions. (Automatically puts it inside BCPL wrapper and
  patches 1.2+ only CopyMem() calls)
- BCPL stuff from AROS m68k. Most of DOS BCPL was re-implemented and documented by Jason and me in AROS m68k.
- This completes one of the most pointless features ever. Until next most pointless feature.

Beta 14:

- 64-bit JIT fixes. JIT FPU also fixed. (Frode)
- RDB parser dumps block contents to the log if parsing fails.
- SCSI tape request sense tape position bits (end/beginning) was not reported correctly (b7)
- UAE devices (uaeserial, uaescsi and so on) are now supported under KS 1.2.
- Directory harddrives and uaehf.device is now KS 1.2 automount/boot capable.
  KS 1.2 HD boot hack from Multi Evolution driver.

KS 1.2 boot notes:
- Logic reverse engineered from Multi Evolution SCSI driver.
- First drive in Harddrives panel is boot drive, even if it has lower boot priority than other drives.
- If boot priority = -128 (no autoboot): don't enable fake DF0: boot disk hack.
- Ugly hack. Temporarily patches DoIO() to inject fake df0: boot block and PutMsg() to get control after
  dos has been initialized.

Beta 13:

- SCSI emulation INQUIRY command didn't clear old data in output buffer (b7)
- Do not abort uaehf.device RDB parsing if drive init or bad block list is set.
- A2386SX 16M+ memory size crash fix.
- Implemented previously empty QEMU byteswap function, fixes 16-bit Cirrus Logic VGA text mode.
- zlib and libpng (used by screenshot function) updated to latest versions.
- Added PC 3.5" HD 21 sectors/track format to PC floppy size autodetection list. (DMF format)
- Renamed GUI Flash RAM file title, it is also used for A2286/A2386SX CMOS RAM.
- Big Aranym JIT merge. 64-bit version JIT supported. Includes big 32-bit JIT
  changes. May cause breakage. (Frode) PPC support is not (yet) 64-bit compatible.

64-bit compatible JIT notes:

- 2G of Amiga address space available (vs ~1G to ~1.5G in 32-bit version under 64-bit OS).
  Because JIT still requires Amiga address space inside first 4G of host process address space and
  Windows allocates few pages in the middle of first 4G, 2G is the current max. Technically
  this is not a problem because AmigaOS is not really designed to support RAM at 2G-4G of
  address space, programs may use signed pointers and some exec functions use address bit 31
  for error state. (In theory 3G may be possible later if it is really needed)
- Use "UAE" RAM allocation mode (not "Real") if you want max available Z3 RAM (up to
  1.5G. Z3 RAM + RTG VRAM + 256M must be less than or equal to 2G. Anything more = crash.
- 64-bit JIT FPU is not fully functional yet. Do not enable.

Beta 12:

- Boolean config true value converts to 1 and false to zero before doing any calculations.
  someboolentry=[1-someboolentry] custom event string now works as expected.
- Bridgeboard in VGA graphics mode only updated part of display (and sometimes nothing was updated).
- ESP (53C94, FAS216 etc..) SCSI updates to support Multi Evolution (Needs FIFO used count and does odd things)
- Multi Evolution 500/2000 SCSI controller emulation added.
- XT bridgeboard timer gate 2 pin was not hooked up in DOSBox CPU mode. ("Timer2 control function failed")
- Removed RTC status bit hack, PIC_TickIndex() works now. ("The Real Time Clock has not been initialized")
- Delay bridgeboard emulated MDA/CGA VRAM write interrupts until next vblank to reduce number of
  interrupts. (Real hardware may or may not do same)
- Initialize bridgeboard add-on IDE controllers after Z2 boards (was after Z3 which prevents them to
  initialize if used KS ROM does not support Z3 boards and at least one Z3 board was enabled).
- Adjusted MDA/CGA emulation mode hsync/vsync reporting, some programs had really slow screen updates.

Multi Evolution 500/2000:
- Not autoconfig but has boot ROM at $f00000 region. (Autoconfig is only for RAM expansion)
- Boots also under KS 1.2. (Boot ROM does some ugly system patches)
- Long word wide fake DMA.
- Boot image that also shows SCSI detection diagnostics messages.
- At least v3.0 ROM version driver does odd things, it sends MESSAGE ACCEPTED command first, then
  it reads the message byte.

Beta 11:

- Fixed A2386SX default video mode configuration, it is software controlled, not jumper like in
  older models. Fixes unexpected "Invalid configuration information" BIOS messages.
- Added A2386SX-only hack to enable working 1.4M floppy images, I assume it thinks connected drive is
  Amiga 1760k drive and it programs FDC to use 720k (1.4M half speed) bit rate.
- Autodetect *.ima PC disk images inside archives.
- Increased IDE emulation multiple transfer support from 64 blocks to 128 blocks (Max possible).
- Universal XTIDE BIOS load address is now user configurable. (Exxxx does not work in AT systems)
- x86 IDE emulation used wrong byte swapping mode if data port width was 16/32-bit (AT systems)
- Added support for IDE emulation edge triggered interrupts. ISA bus uses edge triggered interrupts,
  Fixes A2386SX IDE configuration hang.
- Only first non-autoconfig "board" was initialized if more than one was configured (for example
  both x86 AT IDE and XT IDE controller was enabled)
- Write-protect 0xDC000 region from Amiga-side writes if it is used by XTIDE Universal BIOS. This
  address conflicts with Amiga-PC shared memory space but fortunately it seems only beginning of this
  space is actually used for Amiga-PC communication.
- XTIDE Universal BIOS hardware is now correctly emulated.
- Per-monitor high DPI update caused repeated GUI re-open in some situations.
- DOSBox CPU modes now use DOSBox hardware timer emulation, fixes A2386SX floppy access delays.
- Added all currently available bridgeboard BIOS ROMs to ROM scanner.
- Cleaned up internal expansion ROM selection code.

NOTE: Nearly all previously created DOS HD images are not supported anymore due to wrong
byte swapping. They need to be created from scratch.

Beta 10:

- IDE emulation internal operation change. Previously next block was read from hardfile after previous
  block was transferred. Now all blocks are buffered first before transferring (or if write: all data
  is received first and then all buffered data is written to HDF). Fixes A2286 BIOS built-in IDE driver
  which does not wait for interrupt or DRQ status bit between transferred blocks. (Which technically is
  a bug, driver is depending on some specific HD manufacturer/model internal implementation detail)
- Amiga to PC bridgeboard interrupt enable/disable state fixed. A2286 Janus hardfile access does not hang
  anymore.
- Added x86 CPU speed adjustment (CPU panel, full left = fastest possible mode). Note that some BIOS
  drivers use CPU delay loops, unexpected things can happen.. Fastest possible enables extra hack
  ("immediate" floppy to prevent floppy detection fail). Speed adjustment is only enabled after initial
  BIOS diagnostics checks have been done because some timer tests fail if CPU is too fast..
- Added right control = right Windows key option. (Keyboards without right Windows key, quicker to use
  than creating custom mapping, note that it also disables keyboard layout B RCTRL=fire mapping)
- GUI window is now per-monitor high DPI aware.
- 3-State Apollo 500/2000 IDE/SCSI combo HD controller fully implemented. ROM added to ROM scanner.
  3rd party replacement ROM available from Aminet. (http://aminet.net/package/disk/cdrom/AT_ApolloDev)
- CDFS automount without physical drives mounted 10 empty image drives (b1).

Beta 9:

- x86 floppy controller EOT parameter was read from wrong offset. Note that previously 1.4M floppy in
  720K drive (configured in 2286+ BIOS) worked, not anymore.
- Added x86 bridgeboard 1.2M PC floppy image support.
- Added Advanced chipset option that emulates some 68040/060 board's (for example Blizzard 1240/1260)
  custom register byte write "bug" where byte write to custom register does not write same value to
  both upper and lower byte. Previously this was always enabled if CPU type was 68060.
  (Writing to even address: zero written to odd address, writing to odd address: works "correctly")
- Fixed emulation boot crash if mouse driver was enabled (b8)
- x86 IDE config didn't load correctly. (Reset and save needed to fix it). x86 VGA also needs config
  reset.

Beta 8:

- Many saved accelerator board enabled configurations loaded incorrectly in b7.
- PicassoIV ROM selection in expansion panel caused crashes. (b6)
- Added DCTV emulation. Colors are not yet correct.
  Blurriness is mostly correct, DCTV is composite out only, horizontal resolution is only 320 pixels,
  color resolution is worse (color bleeding). Some filtering is still needed to simulate real composite
  signal.
- Another Cirrus Logic mode change crash fix. (x86 bridgeboard reset when in text mode).
- x86 bridgeboard 720k/1440k floppy images supported.

Beta 7:

- 68030 prefetch/ce mode now also uses improved prefetch pipeline emulation.
- b4 prefetch RTS (and others) special case does not exist, my original test must have been broken.
- GUI won't anymore allow multiple sound or network cards enabled at the same. (It has never been
  supported configuration)
- Cirrus Logic out of bounds VRAM access check improved.
- Picasso IV ROM loader update didn't support all old ROM paths (b6)
- SCSI Unit Attention (bus reset/media change) status handling should be now exactly as described in
  SCSI spec. (Roctec Rochard v2 boot ROM*)
- A1060 Diagnostics and 8087 jumper was inverted.
- Continuing WD SCSI transfer with another Select and Transfer when previous SaT had already transferred
  all buffered data: new SaT restarted from beginning. (A590/A2091 omniscsi.device + cdfs)
- Config file loaded with non-existing *_rom_file_id: rom key file ("rom" with ID=0) was selected.
- M-Tec E-Matrix 530 accelerator board added (Thanks to Jozsef Vamosi)

Rochard RH800C with v2 boot ROM:
- Supports both SCSI and IDE. v1 is IDE only.
- Has crazy "Is drive ready?" polling routine, driver executes 300 (!) TEST UNIT READY commands in
  CPU loop per LUN (timer.device exists for a reason..), with single SCSI drive, driver executes total
  6*300=1800 TUR commands during drive detection! (I recommend not to enable scsi logging..)
- ROM not yet added.

M-Tec E-Matrix 530:
- ROM image is software dumped (chip is not socketed), ROM layout (single chip contains two logical
  autoconfig boot ROMs) may not match real ROM dump.
- 53C94 based SCSI. Fake DMA, 2*long word wide data port. Whole transfer loop runs in level 2
  interrupt routine..
- Boot ROM requires KS2.0+ only because it calls CacheControl() without checking ROM version.

Beta 6:

- Bridgeboard floppy drive motor and click sound supported.
- x86 CPU status string was visible even when bridgeboard was not active.
- Added software readable A4091 DIP switches and Warp Engine SCSI jumpers to GUI. Note that default
  jumper state for Warp Engine is "No autoboot", you need to set all 3 jumpers to re-enable previous
  autoboot configuration.
- Even more Z2 and Z3 board address validation, do not map the board if OS attempts to map it over any
  existing mapped space. Some Z2/Z3 boards didn't use validating memory bank map routines.
- A590 XT drive emulation uses now generic "custom" HD emulation like all recently added MFM/RLL
  controllers. Automatic geometry fixing removed, it can cause problems.
- Fixed A590 XT random bug that tried to start DMA transfer middle of command phase in some situations.
- Remember last open Expansion panel expansion device, saved to config file.
- A2286 "The Real Time Clock has not been initialized." message is gone.
- A2386SX CMOS RAM size fixed, but BIOS still complains about invalid configuration and setup screen
  shows incorrect extended RAM size. (Why? Early boot phase extended RAM size counter is correct.)
  Floppy drive access also seems to stall for 5s+ regularly and then work normally again.
- Added x86 bridgeboard AT IDE drive emulation. Selection under IDE controllers. Only A2286 and A2386SX
  have BIOS support for AT IDE. At least fdisk and formatting confirmed working.
- Added IDE commands 0x40 and 0x41 (READ VERIFY SECTOR(S)), BIOS code uses it during formatting.
- Added support for XTIDE Universal BIOS (https://code.google.com/p/xtideuniversalbios/) See notes.
- Added support for IDE emulation 8-bit data port width. (XT mode XTIDE Universal BIOS)
- Only show SASI harddrive types if selected controller uses SASI-like commands.
- Cirrus Logic hardware emulation text modes used graphics mode resolution when selecting host screen
  size. Larger than 8 pixel font width text mode was too narrow.
- Added x86 VGA board emulation (uses already existing Cirrus Logic emulation).

x86 bridgeboard VGA notes:
- Does not autoswitch, use END+F9 to switch between screens.
- Empty Amiga-side Janus PC window must still be open to enable keyboard input.
- It is not possible (at least not yet) to have Amiga RTG board enabled at the same time.
- VGA uses A0000-BFFFF, make sure bridgeboard "Address Sector" does not conflict. (Bad
  memories are starting to return from PC DOS era...)

RTG ROM configuration notes:
- Expansion panel has new "RTG board" category that currently lists 2 boards that need rom image,
  Picasso IV and x86 bridgeboard VGA ISA card.
- This selection is currently a special case: selected ROM gets automatically removed when RTG board
  is changed, always use RTG panel first to select the board, then Expansion panel to set the ROM.
- If Picasso IV ROM is not selected ("ROM disabled"): old rom loading method is used. In other words,
  you can ignore whole RTG ROM configuration if you are never going to use x86 bridgeboard VGA card.
- Probably any old ISA Cirrus Logic GD542x VGA ROM can be used, for example
  http://www.vgamuseum.info/index.php/component/k2/item/131-cirrus-logic-cl-gd5420
  or http://www.nongnu.org/vgabios/ seems to work.

XTIDE Universal BIOS notes:
- BIOS is loaded at 0xEC000 to guarantee it becoming last BIOS extension, it is required to make it
  work properly if there are other extensions (Janus handler/library). Make sure bridgeboard
  "Address sector" is not conflicting (D0000-DFFFF works fine, for some reason no BIOS checks A0000
  to AFFFF region but it is documented as existing option in hardware).
- Uses Universal BIOS defaults (IO address base 0x300, no interrupt).
- A1060 and A2088 confirmed working.

Beta 5:

- Added OMTI-Adapter HD controller, same as ALF1 but different hardware base address.
- It was not possible to select HDF PCMCIA SRAM and IDE options.
- Flash ROM file and RTC battery backed up RAM file dialog didn't allow creation of new files.
- Made disk image dragndrop floppy drive hit box larger.
- ROM panel drag drop over ROM paths will work as expected. Previously it was always autodetected
  and "best" ROM path was selected. Now autodetection will be only used when dropped over empty space.
- Harddrives panel CD path dragndrop update.
- ProWizard written module files now include name of inserted disk in DF0: or CD image, like screenshot file names.

x86 bridgeboard updates:
- A2286 and A2386SX emulation implemented. CPU and FPU core, keyboard, interrupt controller and
  more from DOSBox. A2386SX BIOS is still misdetecting things.
- Floppy drive label is changed between DF2:<>A: and DF3:<>B: if configured as PC bridge drive.
  (Note that if you don't configure any PC drives, you will get really slow BIOS floppy detection)
- Added 40 track (5.25" 360k) and 80 track (all others) drive selection. This must match inserted image
  or BIOS drive detection will get confused.
- Always do full disk image size autodetection when disk is inserted in PC bridge drive. Without
  it most dos disks was detected as undersized adf images.
- A2286/A2386 CMOS RAM is stored to disk if ROM panel Flash RAM file path is set.
- DOSBox CPU core type selectable in bridgeboard config GUI, also 8088-based bridgeboards
  can be optinally configured to use DOSBox CPU core.

Beta 4:

- RTG<>chipset mode switching didn't check if modes have different filter type (forgot to add
  when RTG filter support was implemented)
- 68020/030 prefetch pipeline b3 missing addressing mode implemented. Other adjustments: single
  word unconditional branch-like instruction (for example RTS) stop prefetches immediately but
  conditional single opcode always prefetch one extra word before stopping. Bcc.S (when not
  branching) and DBcc probably aren't exactly right yet.
- A2090 ST-506 support implemented.
- Note about existing configurations that use A590 XT support: drive type (SCSI ID/XT) must be reset.
- GUI default windowed mode window size (when it runs for the first time and size information is not
  yet stored in registry/ini) is now adjusted for high DPI screen. (Windows 8.1+ only). Previously
  default size was far too small on high DPI displays.
- Added "I am Windows 10 compatible" manifest entry, winuaebootlog.txt now shows correct Windows 10
  version information.
- Cleaned up pfield_do_linetoscr() mess.
- Added support for AGA subpixel bitplane delays (lores pixel can horizontally scroll 4 shres or 2
  hires pixels or hires pixel 2 shres pixels). Limit: only works if both odd and even planes have
  same subpixel scroll value (which probably is true practically in all situations)
- b1 sprite right border corner case broke SSCAN2 sprite horizontal duplication.
- x86 bridgeboard emulation! A1060 Sidecar, A2088 and A2088T currently implemented.

x86 bridgeboard information:
- Currently uses fake86 CPU core + PC support chip emulation. Selected because it was very easy
  to integrate. Possible future A2286+ emulation needs different CPU core.
- All jumpers emulated. (Required redesign of expansion GUI extra config)
- Amiga floppy drive DF2: and DF3: can be re-configured as bridgeboard PC drives A: and B:.
- Only 360k and 720k standard dos disk images supported.
- A2088T 360k/720k compatible drive supported. Floppy switch not implemented.
- A1060 and A2088 apparently only have 360k drive and BIOS support.
- BIOS ROM required. Searching for "A2088 BIOS" or similar should work... No BIOS ROMs
  added to rom scanner.
- Not much real testing done. Boots from dos boot floppy, drive formatting and reading/writing works.
- x86 CPU speed is currently very randomly chosen speed.

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)
- RTL8029 received packets got sometimes stuck in receive buffer until next packet was received.
- Fixed PCI bridge unreliable interrupts in some situations.
- Added Mainhattan Data Paradox SCSI emulation.
- Added Spirit Technology HDA-506 HD controller.
- Added Elaborate Bytes A.L.F. HD controller.
- Built-in wave recording created huge files, bytes-to-write variable was never reset (3.1).
- Added Mediator 1200 autoconfig data.
- Added support for multi-function PCI devices.
- 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 <name> (<manufacturer>).
- A2410 display card emulation! TMS34010 emulation core from MAME.

A2410 notes:
- Very strange display board.. Very flexible TMS34010 CPU on board, code uploaded to internal
  RAM from Amiga-side. Unfortunately board never had good software support.
- Current WinUAE direct RTG system requires Amiga-side mapped VRAM, but because A2410
  does not have any linear mapped Amiga-visible VRAM, A2410 internal VRAM is "fake" mapped at 0xa00000
  (normally unused CIA space). It shouldn't cause any problems.
- Interlaced modes are not supported (Original code didn't support it all, I added quick hack
  that doubles height in interlaced modes), either CGX4 driver is wrong or TMS34010 documentation
  is wrong, documentation says "The size of the DUDATE increment specified for an interlaced display
  should be twice that required for a noninterlaced display of the same dimensions" but CGX4 driver
  uses same width value in both interlaced and non-interlaced 1024*768 mode.
- BT458 RAMDAC Overlay bitplanes fully emulated, including blinking features.
- CGX4, Amix, NetBSD console and demo programs from DevCD (Milan 1991 DevCon) confirmed working.
- END+F9 can be used to manually switch between native and A2410 display.
- CGX4 driver seems to have bug in overlay (mouse pointer) color setup routine.
- Emulated Amiga randomly hangs when switching CGX display modes. Reason unknown.
- TMS34010 CPU execution speed is probably totally wrong and very random.
- Because TMS34010 can update any register or RAM data any time it wants (like copper but more flexible),
  emulation needs to be at least line-based (not frame like other RTG boards) and because emulation
  also needs to execute TMS34010 code, A2410 emulation is slower than other RTG boards.
- A2410 has DMA and hardware byte swap circuitry (can be seen in schematics) but so far I haven't found
  programs that use it. (A2410 DMA = TMS34010 CPU can directly access Amiga address space).
- Must use 32-bit host display depth. 16-bit is not supported.

Mainhattan Data Paradox SCSI:
- Parallel port to SCSI adapter.
- Non autoboot.
- Make sure no other parallel port devices are enabled at the same time.

Spirit Technology HDA-506:
- Supports autoboot but it is not implemented, ROM dump not available.
- OMTI controller, uses early SCSI-like protocol but addressing uses CHS instead of LBA.

Elaborate Bytes A.L.F.:
- Non autoboot.
- MFM/RLL controller.
- Same protocol as HDA-506 but there can be differences in some commands.

Vortex System 2000:
- Supports autoboot but ROM image is not available.
- Non autoconfig, ROM and IO hardwired at 0xf00000.
- Again same protocol as HDA-506.
- Fake DMA, 2xword data port size. Some sites incorrectly lists it as a DMA controller.

Beta 1:

- Emulated sprite undocumented special case, sprite start hpos from 2 to 9 will be visible at the
  very far right overscan border of display.
- WinPCap network mode didn't detect any devices (broken some time ago)
- ROM type configuration for expansion sub devices. SupraDrive A2000 DMA does not anymore list
  incompatible AMABx ROMs. (A2000 DMA model ROM is still MIA)
- Improved SCSI/IDE controller init log messages.
- Fastlane and Z3 RAM configured: use Fastlane Z3 RAM autoconfig data.
- Handle recursive default_xlate() calls, can happen if autoconfig mapping is really bad.
- Accelerator with GVP Series II SCSI controller + GVP Series II SCSI expansion controller combination
  didn't work.
- Accelerators that include autoconfig RAM (Only GVP A530 currently) now include matching RAM autoconfig
  parameter data.
- WASAPI audio init may have caused crash if some WASAPI query functions returned error code.
- Implemented support framework for PCI bridges.
- dm debugger command shows PCI bridges and PCI boards.
- Added DKB Wildfire accelerator board.
- Check and halt if any illegal autoconfig remap is done. (Instead of causing pointless reset loop)
- Added support for ECS Denise genlock features. (Did any program ever use ECS genlock features?)
- Expansions boards without ROM now have simple enable/disable checkbox.
- PCI Realtek 8029 added from QEMU (NE2000 clone), automatically connected to any enabled PCI bridge.
- Moved accelerator and expansion board GUI items to new Expansions panel. Old Expansion panel
  is now RTG settings only panel.
- More 68030 data cache emulation fixes.
- Added generic SASI (SCSI predecessor) controller emulation and SASI HD GUI selection.
- Added Tecmar T-Card/T-Disk expansion/SASI HD controller.
- Added Xebec 9720H HD controller.
- Audio period modulation with zero period value stopped modulated channel.
- Blizzard 1230IV default ROM was incorrect.
- If no physical/virtual CD drives available and image drive was not manually selected:
  automatically select empty image drive. Previously emulated drive was removed.
- Blizzard SCSI Kit IV configuration weirdness fixed, old config is not compatible anymore.
- SSE2 capable CPU is now required.
- If you use WINE, 1.7.44 or newer required.
- Files are now 7zip compressed.

New Most Pointless Feature Ever:
- Genlock emulation can now replace transparent pixels with noise pattern or static image.
- Implements also ECS new genlock features (I still think there is no software that uses them..)
- Transparency control.

DKB Wildfire:
- Interesting design, SCSI and ethernet chips are connected to internal PCI bus that boot ROM
  initializes. (Reason why PCI bridge emulation had to exist first)
- SCSI is emulated, uses same QEMU 53c895 emulation as CSPPC.
- Ethernet is not emulated.
- Boot ROM is stored in 2*32k parallel EEPROM chips. Wildfire flash update program supported but
  but modified data is not saved back to rom image file.
- ROM image is from install disk.
- Boot menu (keep right mouse button pressed while booting) options are not yet saved to file,
  it looks like it is saved to 3rd(!) Flash/EEPROM chip via 53C815 built-in ROM support circuitry.
  High resolution image of the board is needed.
- Board config space ($ffff0000) bits are not emulated, except 68000 mode which only halts the
  emulation.

PCI bridges:
- Wildfire with 53C815 chip connected to first internal PCI slot.
- Prometheus.
- G-REX. NOTE: only supported by latest 44.71 CSPPC/BPPC boot ROM.
- Mediator 1200TX and 4000MK2. (If you have other model, please contact me)
- Only 53C815 (Wildfire only) and Realtek 8029 PCI devices implemented so far.

Try not to ask non-emulation related PCI bridge questions (like which driver to use, where to find
them, how to install them, how to configure 8029 driver and so on..), thanks.

Tecmar T-Card/T-Disk:
- The very first Amiga harddrive controller.
- No autoboot, no automount, no RDB.
- KS 1.0 and 1.1 compatible, possibly also earlier version. Not KS 1.2+ compatible.
- SASI controller, make sure SASI drive type is selected.
- Implements old style autoconfig that was documented in first HRM revision, Appendix_G,
  Disk based autoconfig driver ("xbus.resource"). Not compatible with KS 1.2+ ROM based
  expansion.device. Possibly the only released hardware with old style autoconfig.
- Memory board emulated (Use second fast ram slider, autoconfig must be disabled).
- Clock emulated.

Xebec 9720H:
- Another very early Amiga harddrive controller.
- No autoboot, no automount, no RDB, SASI.
- Not autoconfig, hardwired at $600000.
- 5380 based, on-board 16k SRAM, 5380<>SRAM DMA. SRAM<>CPU PIO.


3.1.0

- Unticked "Game controllers disabled" works now in DirectInput mode.
- 68030 data cache fix.

Beta 23: (RC3)

- Toccata audio didn't automatically re-enable audio if it was stopped by automatic switching.
- Fixed A2065 crash in "Cable disconnected" mode.
- Added J.Kommos ROM v1.7 (1990-03-13) Previously added ROM was v1.8 (1990-07-25).
- Preferred Technologies Nexus added to ROM scan result window.
- Fixed 68030 MMU prefetch hack flaw that caused A3000 with 2.04 SuperKickstart to crash.
- "Mouse uncaptured: emulation paused" and any key pressed: key was not released automatically (ALT-TAB).
- 68881/68882 NULL FSAVE frame has normal frame size stored (Undocumented but real hardware confirmed)
- Don't prevent RTC in A1200 chipset extra mode if accelerator board is also enabled.
- HD selection GUI visual bugs fixed.
- Added input device autoswitch on/off checkbox. (This was supposed to be added long time ago but I forgot)

Beta 22: (RC2)

- In some rare situatations both "HARD_DDF_STOP" and "plf_passed_stop" test conditions incorrectly passed
  in single fetch block. Only happened when DDFSTRT/DDFSTOP value pair caused bitplane dma overrun
  so result was different corrupted display. (Plastic Passion / Upfront plasma part with OCS Agnus)
- BPL DMA pointer modified one cycle before same channel's BPLxDAT gets accessed behavior adjusted.
  (Powertrax / The Light Circle)
- Archos ADD-500 is also confirmed having fast ram autoconfig board after HD controller.

Beta 21: (RC1)

- b17 DSKSYNC update should not have started DMA in WORDSYNC mode.
- Moved A590/A2091 ram autoconfig board after HD board. A2091 install disk RAM tester expects it.
  (Some other boards may also have wrong HD/Fast RAM board order)
- Debugger deep trainer "not modified" condition fixed.
- AROS ROM updated.

Beta 20:

- Drive sound noise fixed. (b19)
- FireCracker 24 6-bit (R2G2B2) overlay fully emulated.
- Video-only recording is now possible. (Audio codec can be disabled by canceling audio dialog)
- Chip RAM mirroring disappeared in b3.
- Do not crash if on the fly switching from non-uae boot rom config to boot rom config.
- Bus error emulation in non-MMU mode (not really Amiga specific) didn't call do_specialties() correctly.

Beta 19:

- Switching from non-lace to/from lace didn't always select correct long/short/interlace frame timing.
- SCSI CD READ TOC and READ SUB-CHANNEL returned failure instead of truncating result if command's
  allocation length was smaller than returned data structure.
- If cycle-exact and sound is Disabled: force Disabled, but emulated.
- Added Preferred Technologices Nexus MEM TEST -jumper, clears autoconfig add to memlist bit.
- Removed Nexus 2M/4M/8M config options, dynamic RAM board autoconfig data modifications are now supported.
- Added Impulse FireCracker 24 display adapter emulation, single display mode only.
  (Display scaling and positioning incomplete and not all control register bits are known)
- Pixel perfect genlock transparency data is now available if configured display adapter needs it.
  (HAM-E and FireCracker 24) HAM-E end of display is now correctly detected.
- AVIOutput wave/avi mode and file name is stored in registry/ini.
- AVI recording A/V sync getting larger and larger fixed. Should be perfect now in all configurations.
- Tablet touch GUI open function really works now.

Beta 18: (Official in 2-3 weeks)

- Archos AVideo 24 emulation. Animation/doublebuffering feature not yet emulated.
  Note that AVideo 12 and 24 are not hardware compatible and it is also not AGA compatible, same
  $dff1fc custom register conflict. (A4000 version not yet emulated, compatible driver/install disk
  is MIA, latest available is v15 which was released long before A4000 version)
- Video DAC 18 and AVideo emulation now works correctly in Double, fields+ interlace mode.
- AVideo 12/24 mode autodetection supported.
- Improved 53C80 emulation.
- Trying to execute MODE SELECT SCSI command in low level scsi emulation mode worked strangely.
- Added C-Ltd A1000/A2000 SCSI controller.
- Added Preferred Technologies Nexus SCSI controller. Boot ROM added.
- Added Expansion Systems DataFlyer 1200/4000 SCSI+.
- GUI tab order fixed and updated.
- Don't disable Overlays in Filter panel if system has no shader support. Only Masks need it.
- Only take internal screenshot when entering GUI if mode is fullscreen DirectDraw. (Entering
  GUI can cause lost DD surface which would make Screenshot button useless). Delay when opening
  GUI in some systems should be gone now. (If not DD fullscreen).

C-Ltd A1000/A2000:
- 53C80 fake DMA.
- Non-autoboot, no ROM and no ROM socket.

Preferred Technologies Nexus:
- 53C80 fake DMA (word wide).
- Boot ROM is only a small driver loader, complete driver is stored in RDB's LSEG blocks!
- nexus.device, 1G drive size limit.
- Partition/formatter utility is strange..
- Has different Fast RAM autoconfig product ID depending on RAM size.

DataFlyer 1200/4000 SCSI+:
- Connects to A1200/A4000 IDE port, converts it to IDE + SCSI controller.
- 53C80 fake DMA (byte wide).
- No boot ROM, loadable driver only, can't boot from SCSI drive.
- Uses unused IDE control block registers to switch between IDE and 53C80 registers.

Beta 17:

- Restrict GUI IDE units to 2 if device is single port and without IDE doubler support.
- Added recursive ROM scan option to Paths panel. Currently restricted to 2 directory levels.
- HAM-E Plus average pixel calculation bug fixed in hires mode.
- "Direct" serial mode and Amiga serial receive buffer is full and program does not clear buffered byte before
  new byte arrives (uses emulated serial speed): keep waiting until program reads the buffered byte.
  Previously it was possible to lose received characters in some situations.
- Windows 10 TP hack (b13) removed, build 10061 fixed it. RIM_TYPEHID RawInput bug is also fixed in 10061.
- VGA autoresolution hires<>superhires switch was unreliable, it didn't set internal "config changed" variable.
- If DirectInput device acquire call fails 10 times, ignore the device and stop error logging until all devices
  needs to be re-acquired (for example focus is lost and regained or GUI is entered and exited)
- Entering ROM panel possible crash fixed.
- Newtronic Technologies Video DAC 18 RGB port video adapter emulation. (Format encoding information by mark_k)
- If programmable hsync or vsync enabled with out of range values: syncs stop, stop also CIA-A (if vsync timed)
  and/or CIA-B TOD counting.
- Archos AVideo 12 emulation. Denise adapter, not AGA compatible, can't be AGA compatible even in emulation due
  to custom chipset register conflict. (Information by mark_k)
- FBcc and FDBcc FPU instruction didn't work correctly in more compatible or cycle-exact modes.
- Negative boot priority value was parsed incorrectly when loading config file. Broken when manual HDF
  geometry support was added
- If system has built-in touch screen (for example Intel based Windows 8.1 tablet), >3s touch in top/left
  corner will open GUI. Added because previously it was impossible to enter GUI without external keyboard.
  Quick hack only, real touch support may or may not be implemented in future.
- Made "Double, fields" default for interlace mode.
- Added partial 53C400 SCSI chip emulation (53C400 = 53C80 + integrated buffered "fake" dma support +
  some PC single chip SCSI integration/compatibility features)
- Added Roctec RocHard RH800C SCSI emulation (53C400). Emulation is based on boot disk SCSI format utility
  behavior, for some reason disk loadable driver won't automount SCSI disks. v2.0 ROM is still MIA.
  IDE-only (SCSI chip not installed) and IDE+SCSI board subtypes added.
- Generate DSKSYN interrupt if DSKSYNC matches zero when DMA is started but before any bits gets
  transferred. Jukebox 2 / Dreamdealers accidentally (wrong INTREQR bit checked) requires it.

Beta 16:

- Automatic resize used horizontal zoom value for both horizontal and vertical.
- Replaced half-integer scaling options with separate select menu with 1/1, 1/2, 1/4 and 1/8 scaling options.
- Paths panel portable mode checkbox now switches between modes. NOTE: currently old data is not copied but
  created from scratch. Switching off portable mode automatically deletes winuae.ini. Switching on portable
  mode does not delete registry data.
- Graffiti/HAM-E mode switch does not anymore change display position.
- Added HAM-E Plus emulation. (Probably not correct implemention, currently uses simple average calculation
  to create extra pixel between each "normal" HAM-E pixel)
- Added separate waiting for connection TCP serial option. Old option does not wait anymore.
- Fixed 7-bit serial bytes in serial logging/TCP modes (Stop bit=bit7 was not cleared)
- Added Roctec RocHard RH800C emulation. rtidedisk.device, 1.0 ROM added which is IDE-only. First port is
  IDE unit 0, second port is IDE unit 2. Ports are not shared and master-only.

Beta 15:

- Map only upper half of ROM image if GVP Series II ROM is 32k.
- HD controller ROM loader duplicate code removal from HD controller specific code.
- Accelerator board HD controller hardware was not added to emulation if board's boot ROM was missing. (b12)
- Added DKB 12x0 accelerator on-board RAM support. 1M and 2M size are not supported, address mapping is
  not completely emulated.
- Floppy sound volume mixing fixed (b14).
- Oktagon 2008 didn't have autoboot disable option.
- Only keep high Windows timer resolution mode active when emulation is running.
- Added Seek (6) and (10) SCSI commands to HD SCSI emulator, only checks for valid LBA.
- VGA modes had inverted TV/VGA aspect ratio setting. (Probably not completely correct yet)
- Added configurable blanking borders. GUI adjustment hacked to Filter panel, "Overscan blanking" setting.
  When "Overscan blanking" is selected, filter mode is always none. First slider adjusts horizontal start,
  second = horizontal end, third = vertical start, fourth = vertical end. Values are always in superhires
  (horizontal) and interlaced (vertical) coordinates. Zero = disabled.
  Currently display is only updated with new values after returning to emulation and GUI text elements are
  not changed.

Beta 14:

- Show selected accelerator board and HD controller name(s) in log lines.
- GVP Series I and II HD controllers can now be active at the same time.
- Added SCSI controller ID selection (only AdSCSI and A4091 supported so far)
- Mark HD controllers with * if it is enabled, becomes [x] if more than 1 controller is active.
- Fixed referencing to already freed SCSI/IDE HD controller context structure after reset/restart (b12)
- Added SupraDrive AMAB3, AMAB4 and AMAB5 ROMs.
- NCR539x based SCSI controllers always accessed unit 0.
- Added emulation of edge case when SPRxPOS or SPRxCTL vertical position is updated at the last available dma slot
  at the end of scanline. Next line's vertical comparison will match just before this position, in other words, if
  old value would match in next line and new value does not anymore, comparison match still happens. Fixes
  Arc Ed / United Forces missing sprite scroller.
- Added half-integer scaling option. (*0.5, *1.0, *1.5 and so on)
- New Velvet prototype difference found: both CIAs generate level 2 interrupt. Now Velvet tries to boot from
  disk, reads and executes boot block code if disk has correct bootblock which is different than release AmigaOS
  bootblock. MFM level format seems to be identical. Unfortunately, at least so far, no original Velvet floppy
  disks have been found and for some reason real hardware refuses to read any disks.
- If -serlog is enabled, console log window also listens for key codes and sends them to emulated serial
  port. Very basic console emulator, enables quick use of Velvet ROM built-in serial debugger.
- Added "Any floppy drive" option to keyboard led configuration.
- Floppy sound volume control is not global anymore. Empty and disk in drive states also have separate volume
  settings. (Upper volume slider = drive empty, lower slider = disk in drive)
- Added fullscreen GUI option to misc panel. Opens GUI in max size, possibly useful with low resolution devices
  and/or small Windows tablets.
- Z3 autoconfig in "UAE" mode didn't work correctly with hardware RTG boards (b4)

Beta 13:

- Mainboard SCSI controllers didn't initialize correctly (A3000/A4000T/CDTV) (b12)
- "Do not force full display reset.." update made it worse, should be better now (b12)
- I finally bothered to carefully re-examine AR3 freezer behavior, emulation updated, should now match real
  hardware, previously unsupported features like autofire work.
- If copper DMA is switched off mid-instruction, allow instruction to finish. Fixes AR2 weird copper
  list detection code.
- Added RDB mode HD geometry GUI support. (RDB mode geometry option = what IDE Identify Device and SCSI
  MODE SENSE Format Parameters/Rigid Disk Geometry returns). Very old controllers may require custom geometry.
- Added HD/CF IDE harddrive GUI option. Currently only difference is in IDE Identify Device word 0 identifier.
  (Cause for infamous hdtoolbox "Unit is not a disk (Type 7)" error)
- Added GUI IDE and SCSI version selection to hardfile panel. IDE has ATA-1, ATA-2+ (old default, returns ATA-6
  to allow LBA48 support and more) and ATA-2+ Strict which drops ATA-1 feature that become optional in ATA-2,
  triggering A600/A1200/A4000 IDE driver bug that causes infamous "max transfer bug". (No, it isn't drive bug)
  SCSI has SCSI-1 and SCSI-2 options. Currently only real difference is INQUIRY version number, some old
  software (like original A590/A2091 install disk) require SCSI-1 version.
- Added Archos ADD-500 emulation.
- Added AdSCSI Advantage 2000 emulation.
- Internal enforcer emulation hit can break to debugger, enable/disable with 'fen' debugger command.
- SCSI Read Defect Data command: return empty defect header instead of Defect List Not Found error.
  (ADD-500 driver gets confused if Read Defect Data command does not return any data)
- WD33C93 SCSI devices didn't support multiple units (b12)
- Added hack that fixes max overscan scrolling in demo Seven Seas / Andromeda. (Demo has workaround for chipset
  bug that causes right edge to have a vertical gap if BPLCON1 is larger than zero. Hack is currently needed
  because glitch happens when hpos=0 and emulation is not designed to handle bitplane changes that cross virtual
  scanlines). Glitch was not emulated until few versions ago, demo worked only accidentally previously.
- Added Windows 10 TP bug workaround, for some reason dialog window is visible before WM_INITDIALOG message
  (documentation specifically says it won't be visible until after WM_INITDIALOG) and also dialog is set
  as not visible. Fixes quickly appearing and disappering empty WinUAE GUI panel each time GUI is opened.

AdSCSI Advantage 2000:
- 5380 based fake DMA.
- First 5380 based driver that uses chip's arbitrate bit instead of assuming AdSCSI is the only initiator.
- 1.6 ROM added. (Anyone have later? At least 1.9 exists)
- RDB parser is not fully compatible, does not load all filesystems (for example PFS3).

Archos ADD-500:
- Yet another 5380 based fake DMA SCSI controller.
- v1.21 ROM added.

Beta 12:

- Do not force full display reset when switching to/from programmed mode and autoresolution is active
  and mode is D3D. (D3D can switch display buffer size without closing existing window)
- Added config file option to force UAE boot ROM active even if current configuration does not need it.
  boot_rom_uae=automatic/disabled/min/full. automatic (or line not included)=normal default, disabled=always
  disabled (all features that require uae boot rom stop working), min=only add old-style $F0FFxx traps).
- Serial port emulation (if connected to real serial port) lost characters if transmit speed was fast enough.
  Broken since 2810b4.
- Raw SCSI emulation improvements and updates.
- WD33C93 emulation didn't allow use of select and transfer to split single transfer in multiple pieces.
- Kupke Golem SCSI emulation.
- Microbotics A1000 StarBoard 2 StarDrive SCSI expansion board emulation.
- J.Kommos A500 SCSI emulation, 1.8 rom added. 
- Vector Falcon 8000 emulation. ROM created from disk based driver.
- M-Tec AT 500 emulation.
- Protar A500 HD emulation.
- Added AdIDE 40/44 emulation.
- Masoboshi SCSI read access works again, writes are still broken. (Driver is strange, it uses code path
  that simply can't work, writes 16 extra bytes. There is another code path that looks correct but there
  are lots of unknown variables that are set here and there..)
- Kupke Golem 030 A500 accelerator and boot rom added ("68030 Autoconfig (17-FEB-91) V1.0 ET")
- Added manufacturer names to HD controller selection.
- Reorganized internal accelerator board handling.
- GVP Series I ROM and buffer RAM mirrors now 100% match real hardware.
- Memwatch points didn't work with autoconfig address bank.
- Refactored expansion board handling yet again, multiple identical boards are supported again.
- Added GUI support for multiple identical HD controller boards. Current max is 4 boards.
- Selecting some accelerator ROM file (for example CS MK I and II) also added it to cart rom file.
- Show only mainboard HD controllers and enabled (ROM selected) expansion controllers in HD controller
  selection list. (CDTV and some others are not yet hidden, much more work to do, later..)
- Added "Velvet" A1000 prototype to chipset selection. Floppy IO lines are not hooked to CIA chips
  correctly, probably lots of other minor changes that are not known yet are not emulated.
- Show floppy image's original file name in status bar even if file needed decompression or converting.

Microbotics StarDrive SCSI:
- A1000 StarBoard 2 RAM expansion optional HD controller module.
- Text based partitioning software.
- 5380 based, no autoboot ROM, no RDB support.
- Clock not emulated.

M-Tec AT 500:
- 1.33 ROM added. "mtec-at500.device mtec-at500 1.33w (08 July 1993)"
  "(c) Hardware Design Udo Neuroth, Bottrop, Dieter Niewerth, 1992 1993"

AdIDE:
- 68000 socket.
- Uses custom data bit swapping (drive partitioned with AdIDE won't work in any other IDE controller and
  vice versa), emulation will automatically read/write non-swapped data.
- Uses RDB but does not seem to be fully compatible, other controller partitioned drives don't mount.
- ROM was software dumped, real chip probably has swapped address or data lines similar to IDE data lines.

Kupke Golem SCSI:
- Fake dma interface.
- Tested with 3.8 and 3.9 drivers. 3.9 rom added.

Protar A500 HD:
- ROM only has small loader code, loads driver from HD. (If drive is unformatted, press mouse button
  to boot from floppy)
- 8490 chip (improved version of 5380). 8490 extra features not emulated, at least Protar driver does
  not use them.
- ROM added, unknown version. There probably is later version because only 1.4 (1.x?) boot disks
  detect the hardware.

J.Kommos A500 SCSI:
- Strange non-autoconfig autobooting HD controller, uses cartridge ROM space.
- Byte-based fake dma.
- Boot HD detection screen.
- Not RDB compatible.
- ROM includes 36.3 FastFileSystem handler.
- jkscsi.device, "Autoboot SCSI-HardDisk By J.Kommos Date: 25.07.1990".

Vector Falcon 8000:
- Improved version of Kommos SCSI.
- More or less functionally same as Kommos but most glue TTL chips and GALs put in single FPGA-like chip.
- Long word/word based fake DMA.
- More colorful boot HD detection screen.
- vector.device. "Autoconfig 16 Bit SCSI + CD-ROM Driver (©) by J.Kommos V7.1 - 11.08.1993"
- ROM includes CD ROM filesystem.
- Bad filesystem loader: must be single hunk, only loads filesystems if KS 1.3, ignores all relocation
  hunks.

Beta 11:

- Supra HD autoconfig state was not reset when system was reset.
- 68000 bus/address error stack frame I/N bit emulated, added better check for odd stack in exception stack frame
  writes. Also added helpers for bus error checks for platforms that need it (UAE 68k emulator is also used by
  Hatari) I don't know any program (or protection) that uses it but crashing/buggy programs may trigger it.
- Show also currently selected accelerator board in harddrive controller selection.
- Toccata capture support, not tested. Uses WASAPI (=Vista or newer only) and uses Windows default
  recording device, not configurable yet. First tries to allocate exclusive mode, if it fails, retries with
  shared mode. Note that only exclusive mode allows configurable sampling frequency, shared uses value set in
  Windows recording sound control panel.
- Tweaked A590/A2091 DMAC interrupt handling and DMAC-01 DMA transfer counter emulation.
- Added Kupke Golem v3.9 ROM image, not emulated, Golem does not use any SCSI chips, it is very
  difficult to guess function of each IO address.
- CDTV SCSI works again, broke when A2090 support was added.
- A26x0 J304 jumper emulation fixed. It should not be active anymore after autoconfig io gets enabled.
- Added rare SupraDrive 2000 DMA emulation. Boot ROM are not available, some supra install disks have on-disk
  loadable driver which has bug in 2000 DMA model specific code that causes it to hang (uses wrong address
  register, overwrites one inportant byte in interrupt handler code..) Perfect.
  AMAB6 ROM is selectable in rom select box but it is not compatible with 2000 DMA.
  (Thanks to mark_k for HD driver disassembling and examination)
- Non-image CD last available block number calculation changed, do not trust geometry Windows returns.
  (Fixes OS41FE install error)
- Fixed OS41FE RTG graphics mode switch crash. (Check Cirrus Logic VRAM bounds before calling redraw routines,
  apparently driver first switches mode, then sets new display offset, this can cause temporary out of bounds
  access in emulation)

Beta 10:

- Added hd controller subtype selection.
- A590/A2091: DMAC-01/02 revision selection.
- GVP Series I: all revisions.
- Remaining non-DMA SupraDrives added.
- Masoboshi MC-302 (IDE-only) and MC-702 (IDE+SCSI). Note that only MC-302 is currently working, DMA also not
  yet supported. (Driver by default uses only PIO)
- Added A2090/A2090a emulation.
  (Currently shared with A590/A2091, it is not possible to use A2090 and A590/A2091 at the same time)
- Previous supradrive config entry name changed, config reset needed.
- A590/A2091 interrupt handling updates.
- 68000 address error stacked PC accuracy improved (MOVEM and NOT, CLR and other single operand instructions)
- Apparently GVP Series I Z2 RAM autoconfig id is 1761/8.
- Accelerator board without IDE and SCSI and SCSI (auto) or IDE (auto) selected: drive was incorrectly reserved
  for selected accelerator board.
- Reorganized accelerator board handling, built-in HD controller configuration source code special cases removed.
  ROM selection shows only ROM images compatible with selected accelerator board.
- Added accelerator rom config/jumper options. Currently only map rom for Blizzards (ROM panel MapROM emulation
  still also selects it) and OSMODE (J304) jumper for A26x0.
- WD33C93 emulation fix, A2630+A2090 Amix installation works.
- "24-bit address space is not supported with selected accelerator board configuration" error even when 24-bit
  was not enabled.
- Bogus 0x20 68882 stack frame version id removed, both 68881 and 68882 use 0x1f.
- Set/reset accelerator ROM correctly in Quickstart mode.
- Debugger fl was already reserved for listing active break points. Scanline fl renamed to fs.
- Debugger library and device list commands (Td, Tl) shows version, revision, opencount and id string.
- Debugger task list command (Tt) shows signals that task is waiting for and PC where task continues executing
  when Wait() returns. Also previously it showed extra bogus entry and usually also didn't show all tasks..
- Added extra prefetch hack for A26x0 ROM off switch code if 68030 MMU is enabled.
- On the fly switching from AGA to non-AGA mode didn't reset FMODE value.

A2090(a):

- Commodore's first Amiga harddrive controller and it shows..
- Custom partition table (No RDB), autoboot is supported.
- Very confusing and illogical partitioning system. (No, double clicking "Prep HD" icon won't do what
  you would expect it to do. At least with SCSI-only configuration.)
- 34.4 boot ROM added.
- At least 34.4 has broken format routine (few absolute addresses are not relocated correctly in rom code)
  for SCSI drives. Disable boot ROM and use binddrivers mounting when running prep-program as a workaround.
- ST-506 parts not emulated.

GVP Series I:
- Impact A2000-1/X (Autoconfig Product number 1)
- Impact A2000-HC (Product 2)
- Impact A2000-HC+2 (Product 3)
- Nearly identical hardware. Different SRAM buffer size and SRAM address offset.
- Early partition software created incompatible RDB blocks. (For example checksum fields are zeroed)
- v1.0 (1.16 driver version) ROM added.

SupraDrives:
- A500 ByteSync/XP (was already supported since b8)
- 2000 WordSync
- A500 Autoboot
- 4x4 (Non autoboot). Clock chip not yet emulated.
- Supra AMABx ROMs support all above models.
- All Supradrives except very rare 2000 DMA (which apparently had bad DMA implementation and uses
  very different driver) are now emulated.

Beta 9:

- Fixed harddrive config parse crash. (b8)
- Blizzard SCSI Kit was always enabled if compatible accelerator board was selected. (b8)
- Accelerator board with SCSI and "IDE (auto)": HD was mounted as accelerator SCSI. (b8)
- Accelerator board ROM selection is not anymore in SCSI/Boot ROM list.
- Added autoboot disabled jumper option to harddrive controllers. Not all devices supported yet.
  (Some only hardware disable rom chip, some change autoconfig data in hardware level)

Beta 8:

- 53c710 software reset bit emulated.
- Cirrus Logic register memory banks should not be marked thread safe.
- Show '?' instead of 'E' in harddrives list if hdf can't be opened because of access fault, for example if it
  is already open and emulation is running and show '!' if open failed because of write protection.
- Rewritten expansion board rom handling, expansion data is now fully parametrized, autoconfig emulation and
  config file handling does not need code changes anymore when new board with boot rom is implemented.
- Secondary IDE/SCSI boards temporarily removed.
- Automatically disable 24-bit CPU addressing if selected accelerator board is 32-bit.
- Existing Blizzard 1230IV/1240/1260+SCSI configurations need adjustment. SCSI Kit configuration has changed.
- Do not initialize tablet if tablet options are not enabled.
- 5380/53c80 SCSI chip emulation implemented. Surprisingly basic chip, even Apollo SCSI hardware is more complex,
  driver needs even more bit-banging than Apollo..
- SupraDrive 500XP (5380) emulation implemented.
- Added GVP G-Force 030 board. Same as GVP A530 but supports more RAM, located at 0x01000000.
- A2620/A2630 accelerator board RAM now adjusts 0x01000000 memory size.
- Fixed GPV Series I autoconfig product id.
- STOP instruction was 2 cycles too fast in 68000 cycle-exact mode.

NOTE: Accelerator board ROM appears also in SCSI/Boot ROM list. It will be removed later.

SupraDrive 500XP:

- v3.8 ROM (AMAB6) added. (Anyone have AMAB5 or older? I'd like to know why older versions have so many
  compatibility problems with modern drives. A2000 WordSync version also accepted.)
- Uses MOVEP in main data transfer loop. (My crystall ball says WordSync version does not...)
- Usual fake DMA, CPU used to transfer data, hardware automatically handles SCSI data handshake.
- Any CPU access to "fake DMA" address space when SCSI chip is not in DMA mode: access never finishes.
  This is also emulated, causes halt 6 state.

Beta 7:

- Fixed infinite recursion (and stack overflow) when pause when uncaptered is enabled and display mode changes.
- Added AlfaPower/AT-BUS 508/2008/AlfaPower Plus IDE controller.
- Very simple low level SCSI emulator added to support Apollo software bit-banging SCSI.
- Added Apollo IDE/SCSI board (AT500/AT2008) and Apollo 1240/1260 accelerator boards with SCSI.
- Added GVP Series I SCSI controller.
- Added GVP A530 accelerator. Uses same boot ROM as GVP Series II SCSI controllers. (Uses GVP #2 SCSI slot)
- Added Masoboshi MC-702 IDE+SCSI controller.
- Toccata CD audio (AUX1) volume control added.
- Another Restart related crash fix.
- Added "framecounter" float shader variable.
- Paths panel Save All button now creates zip file that contains winuaebootlog.txt, winuaelog.txt and config file.
- Quickstart A1200 + accelerator board, A500+ and A600 with expansion never had RTC. (Wrong order of functions..)
- Possible clock sync option small stability improvement.
- Fixed memory corruption if directory harddrive with empty name was selected.

SCSI/IDE controller notes:

GVP Series I:
- Not true DMA, DMA transfers from WD to/from onboard SRAM buffer. CPU needed to read/write buffer ram.
- Driver (scsidev.device) is very old and has (many?) limits, for example only OFS and FFS partitions mount correctly.

AlfaPower/AT-Bus 508/2008/AlfaPower Plus:
- AlfaPower: no hardware interrupt (!!), AlfaPower Plus implements interrupt support.
- v6.10 ROM (Last that works with non-Plus hardware?) and v8.3 that requires Plus.

Apollo:
- All Apollo variants seems to have identical SCSI hardware. (Accelerators and 500/2000)
- SCSI is working. IDE is not fully tested, only AT500/AT2000 have full IDE driver. For some reason
  Apollo 1240/1260 driver still have short "is there any IDE drives" detection code remaining.
- "Software" SCSI, hardware can only do bus arbitration in hardware, everything else is done by bit-banging
  SCSI IO lines. Both SCSI and IDE also use non-DMA data transfers.
- 128k Apollo ROMs (68060 f00000 ROM code and SCSI driver) are currently supported. Non-accelerator
  (AT500/AT2000) ROMs don't seem to be available = can't test IDE emulation.
- 128k v5.60 ROM added. Seems to be last 1240/1260 ROM with SCSI.

Masoboshi:
- Unusual design, SCSI supports both PIO and DMA, software selectable.
- IDE and SCSI in non-DMA mode working.
- SCSI writes are not working correctly, do not use! DMA controller not yet emulated.
- "2.201" (device version) boot ROM added. ROM image does not have any version numbers or dates.
- IDE driver uses CHS addressing and seems to have problems with 2G drives, actual limit may be smaller.
  It tries to access first unavailable block number at the end of drive. (Driver flashes red background
  color if drive returns error status)

Most popular SCSI and IDE controllers are now implemented.
Remaining IDE boards that I'd like to support:
- Roctec RocHard (Need boot ROM)
- AdIDE 40/44 (Need boot ROM)
Remaining SCSI boards are 5380/53c80 based boards that need chip emulation first:
- All SupraDrives.
- Trumpcard 500/2000

Perhaps others too. As long as at least one boot ROM is found for unsupported boards.

Beta 6:

- b5 input device update fix, changing to any keyboard layout didn't reset "remembered" device name.
- Cycle at DDFSTRT-1 was sometimes incorrectly unavailable for blitter. (b5)
- In some rare situations blitter stole cycle(s) from copper.
- Pre-calculated end position of scanline was incorrect in some situations causing incorrect bitplane
  vs other DMA cycle allocation (b5)
- If RawInput didn't find any game controller HID devices and command line didn't have any forced HID parameters,
  always try again when new device is inserted instead of disabling HID support completely and falling back to
  DirectInput. RawInput and DirectInput device identifiers are different and wrong device may have been selected
  in some situations.
- Master volume is now real master volume control. Paula, CD and AHI are sub-volume controls.
- Toccata Paula (AUX2 input) volume control implemented. Not tested.
- GVP SCSI without ROM didn't set any autoconfig data.
- Fastlane (and possibly some other Z3 SCSI boards) didn't autoconfigure if Z3 autoconfig space was disabled.

Beta 5:

- Fixed ESP SCSI DMA emulation bug I introduced when non-DMA mode support was added (Original code from QEMU was DMA-only)
- Nordic Power v3.2 and Pro Access v2.17 (early version of cartridge that become Action Replay 1) support added.
- Some chipset emulation tweaks. Strange bitplane DMA on/off mid scanline behavior now emulated, not sure if exactly
  right yet. Also some strange OCS/ECS differences tweaked. Should be mostly finished now.
  I'll post more details later.
- Some tweaks to writing to BPLxPT 1 cycle before BPL DMA fetches same bitplane. Nakudemo / Vision-X ECS only corruption
  is now correct (and also looks much worse than previously).
- GVP SCSI WD33C93 transfer info command with DMA enabled was not working.
- Compressed flashable rom images didn't unpack automatically. Flash modifications are not saved if using compressed image.
- Remember original input device name when loading config and input device is not currently available. If/when input
  device gets connected, device is automatically inserted in to originally configured port. Remembered name is "forgotten"
  when input device is manually changed in GUI or if autoswitching is used.

Beta 4:

- HAM-E images updated only every other line in doubled modes.
- Graffiti didn't sync correctly if config was not AGA.
- Restart button crashed if hardware RTG was enabled.
- PCMCIA IDE didn't work anymore (b2)
- .pkd file extension inside archive wasn't autodetected.
- Disk/CD insert status message file name was shown as "null" if file was inside archive root.
- HD and tape SCSI emulation unsupported LUN sense data was overwritten with default ILLEGAL FIELD IN CDB sense data.
- CD SCSI emulator didn't check for non-zero LUNs.
- Return SCSI-1 HD inquiry data only if A590/A2091.
- Show also REQUEST SENSE command and data if scsi emulation logging is enabled.
- 68000 prefetch mode DIVS/DIVU timing update didn't work, always returned 4 cycles due to missing parenthesis.
- Switching chip ram and/or slow ram size usually crashed after reset if ECS Agnus was selected.
- Some very old statefiles had Z2 fast ram with zeroed autoconfig address, added workaround (broke during 2.9 betas)
- Added fl <lines to wait> or fl <absolute line> <absolute hpos> and fc <CCKs to wait> break points to debugger.
- Z3 space memory mapping was not initialized if only non-RAM/VRAM Z3 expansions are configured.
- Clock sync feature update, previously only 50Hz CIA-A TOD rate was fully accurate.
- Load CDTV/CD32 state file, load other state file: CDTV/CD32 CD was still mounted.
- Yet another bitplane DMA sequencer emulation rewrite and cleanups. Still some bitplane DMA on/off switch edge cases remaining
  Switch on bitplane DMA near end the scanline: following line starts DMA for one "block" only, next line works normally.
  This needs more real hardware testing to find exact conditions.
- Source cleanup, moved all kinds of device init/free/interrupt check codes to common file from non-related source
  files.
- Added name to UAE Boot ROM DiagArea. (May be visible in some system info/diagnostics software)
- HALT status was not cleared when loading new state file.

Beta 3:

- Bitplane DMA sequencer emulation rewritten yet again to again match better with real hardware behavior.
  DDFSTRT and DDFSTOP seems to use hidden counter that counts 4 cycles ahead of real hpos counter.
  When DDFSTRT matches, next 4 cycles appears to be idle (probably used to init and fill some bitplane dma
  sequencer shift register?) and after this delay DMA starts normally. Same for stop. Now programs that write to
  DDFSTRT or DDFSTOP just before, exactly in same cycle or just after it should match now just work without
  any extra hacks. (Some kind of 4 stage shift register would also explain why changing number of bitplanes by
  writing to BPLCON0 mid-line always take effect after exactly 4 cycle delay)
  Can break anything as usual! Correctly breaks SCX_CoolSpot1.adf's intro on ECS Agnus configurations :)
- 512k chip + 512k slow ram + ECS Agnus chip mirroring didn't set slow ram bank with "no memory allocated" flag,
  could have caused crashes when it was attempted to be freed.
- OCS Agnus 512k chip + 512k+ slow and 1M/0.5+0.5 advanced chipset checkbox checked: move slow ram start at $080000.
- 68000 bus error and address error exception stack frame's first word undocumented bits 6 to 15 seem to contain
  opcode of faulted instruction. (from Hatari)
- IDE/ATAPI emulation decoupled from Gayle emulation and moved to separate source file.
- Added GVP A3001 board with IDE. Apparently Series I and II have different hardware and drivers. (v4 for Series II)
  Series I IDE emulation seems to be fully working. Non-DMA, gvpat.device, v3.3 added to ROM scanner.
  Does not byte swap data words but emulation swaps it automatically to keep HDFs compatible with other controllers.
- Added ES_SYSTEM_REQUIRED flag to SetThreadExecutionState(), perhaps it keeps screensaver inactive.
  (ES_DISPLAY_REQUIRED seems to only make sure monitor does not switch to power saving mode)
- HAM-E emulation added. Because HAM-E "magic cookie" can be nearly anywhere on screen, enabling HAM-E will slow down
  emulation (It needs to check nearly all pixels every frame) even when HAM-E mode is not active. "Automatic" setting
  still only does A2024 and Graffiti detection. DCTV emulation: not going happen without image encoding specs.

Beta 2:

- Paula audio filter still filtered Toccata audio. Note that stereo separation is after Toccata audio
  mixing.
- Added "ROM disabled" to GVP SCSI ROM selection.
- GVP SCSI ROM space word reads accessed invalid memory.
- Added Paths panel option to store "saveimages" in same directory as original image file, instead of always
  saving in saveimages-directory, extension changed to .save_adf to prevent it being visible in directory
  listings with normal disk image filter type active.
- 68030 MMU on the fly off->on switch crashed. (Not that on the fly MMU switching is really supported..)
- WD33C93 Select without ATN command didn't fully skip message out phase. (AMAX GVP SCSI driver)
- Reading WD33C93 SCSI message in with Transfer Info command is a special case, after it finishes, it does
  not advance to next state automatically, it must wait for Negate ACK command. (AMAX GVP SCSI driver)
- AMAX rom "dongle" emulation improved floppy drives didn't work reliably.
- Added AMAX rom image selection to ROM panel SCSI select menu, renamed to SCSI/Boot ROMs.
- Added very simple next opcode word prefetch emulation to 68030 MMU mode, only done when MMU state changes.
  Fixes programs that first switch on (or off) MMU which also unmaps memory where currently executing code
  is located and then executes JMP (An).
- Added Toccata recording support, currently only internal hardware emulation is implemented (FIFO and interrupts),
  returns only zero samples.
- Show also inserted data CD volume id (label) in status bar, strip path from file name.
- Show inserted floppy image filename and label (if OFS/FFS image) in status bar.
- CD image audio can be now mixed with Paula audio, just like Toccata output. CD audio can be finally recorded
  with internal wave or avi recording support (Requested feature). FPS.Adj also adjusts CD audio speed (and pitch)
  and CD audio sound sync (For example Liberation CD32 intro) is kept even if emulation slows down.
  Enable option added to Sound panel (can be switched on the fly but mode only changes when CD audio thread restarts),
  old method is still the default. Note: when enabled, Paula audio slider becomes master volume for CD audio.
- CD32 FMV also supports new audio mixing mode. FPS.Adj not supported yet.

Beta 1:

- Lowered disk motor startup delay, more closer match with real hardware (at least matches some random drive
  in my A500)
- Memwatch points in KS ROM address space crashed during reset. (Wrong ROM mirror selection)
- A4000T NCR SCSI data bus width become 16-bit in cycle-exact mode. Caused write triggerable registers
  to start operation before full 32-bit value was written.
- Memwatch points didn't work in ROM addresses.
- CPU HALT state caused infinite loop in some configurations.
- 2900b16 68040 MMU MOVEM stack frame update was incorrect. (NetBSD crash, probably other Unix-likes too)
- Some 68000 MOVE variants seem to sample interrupt lines before writes and some after writes. Added special
  case for one variant, allows Made in Croatia / Binary to work in cycle-exact mode. Need more testing later,
  there does not seem to be any pattern.
- Last line sometimes flickered with random colors in "Double, fields/+" non-interlaced mode.
- RTG mode screenshots in 16-bit host color depth mode had wrong colors.
- Non-cycle exact modes with display vertical diw open but bitplane DMA disabled: in some situations display was
  corrupted or shifted. (Gloom AGA, Worms Directors Cut title screens)
- Directory filesystem exnext packet update didn't always work correctly if file was deleted during directory
  enumeration. (Which is technically illegal but it accidentally worked with OFS/FFS and become a feature..)
- Autoconfig space was not unmapped after it finished, broke during previous autoconfig rewrite.
- GUI didn't allow selection of custom SCSI ROM file.
- Completely rewritten CPU idle function, max CPU idle setting should now work without any slowdown side-effects,
  also lowest CPU idle state should be less than 10%. Please test.
- Last line is not special if A1000 Agnus. I was expecting this result when I noticed that A1000 sprite behavior
  is different in last line vs later Agnus models. A1000 Agnus: all visible lines are normal, later revisions:
  last line inhibits bitplane and sprite DMA. Real A1000 confirmed. I think this is last A1000 vs later Agnus
  revision undocumented difference.
- Small sprite update, only writes to SPRxCTL disarms sprite (I had special case for first DMA write to SPRxPOS
  too, only because it worked around another old bug..). Now OCS Agnus + ECS Denise + KS3.1 combination mouse
  cursor sprite corruption is 100% correct.
- On the fly media insertions are now serialized and only processed when Windows PnP manager reports idle
  state (Media mounting works even if it causes "installing drivers" phase) and multiple simultaneous media
  insertions also work reliably now (for example USB reader connected with multiple cards already inserted)
- First on the fly inserted device name becomes RDH0:, second RDH1: and so on. Previously number was next
  available directory filesystem unit number.
- Delay enumeration of inserted/removed input devices by 2 seconds. One removal or insertion can cause
  multiple device events (which is harmless but sometimes annoying)
- Picasso IV autoconfig missed special case, other boards are 16M in Z3 mode but PIV is 32M. Fixes incorrect
  address alignment if Z3 fast RAM is also enabled and size is less than 32M. (OS4 black screen hang)
- Picasso IV byteswap VRAM space didn't handle byte reads or writes correctly, only words and longs worked.
  (OS4 1024*768*16 screen mode glitches, possibly also other 16 bit modes)

New hardware emulated:

- GVP SCSI Series I and II hardware emulation (WD33C93), HC+8 board. v3.15 and v4.15 boot ROMs added to ROM
  scanner (gvpscsi.device). GVP SCSI enabled + Z2 fast RAM: use GVP Z2 fast ram autoconfig ID.
- DKB 1230/1240 accelerator board + SCSI emulation (FAS246 which appears to be compatible with 53C94/FAS216).
  SCSI is non-DMA (dkbscsi.device). v1.23 ROM added to ROM scanner. RAM not emulated, no idea about address space.
- Fusion Forty accelerator board emulation. It has interesting menu and graphics in boot ROM, press right
  mouse button when booting. v3.4 ROM images added to ROM scanner. RAM expansion emulated.
- Toccata Z2 sound card emulation.

Toccata hardware features emulated:
- Mono and stereo channel modes.
- 8-bit and 16-bit linear PCM. Companded (ulaw/alaw) modes are not supported.
- Left and right output channel volume control and mute.
- All AD1848 supported output frequencies.
- Output only. Input channels are not supported.

Technical details:
- Has 1024x9bit FIFO chip, one for output and one for input.
- No DMA. Uses level 6 interrupt to fill FIFO, 512 bytes/interrupt. Interrupt triggers when FIFO has 512 bytes or less
  data available. (Which makes about 7 interrupts/frame at 44100Hz/16bit/stereo)

Notes:
- Different implementation than uae ahi and CD audio. Audio goes to Paula emulation backend (after Paula 8 to 16-bit
  conversions and filters). Very good latency but glitches are possible if configured buffer size is too small or
  not enough CPU power available (just like with Paula audio). It should be usable for (game) sound effect, not just
  for music.
- Because it uses Paula audio path, Toccata audio is included with sound recording. Same method may be used with
  CD audio in future. (Possibly optionally).
- It is best to set same sample rate in both AHI and UAE sound settings to reduce possible resampling artifacts.
- Does any DMA capable simple sound cards exist? (Simple = basic CODEC chip only, no DSP chip)

3.0.0

Beta 28: (RC3)

- qemu-uae.dll updated to final 2.2.0 QEMU release. (No PPC changes)
- Removed A26x0 chip ram mirror hack (b25), not needed anymore.
- Copper WAIT with BFD=0 (wait for blitter enabled) sequence was incorrect, copper first waits for blitter, then
  it goes to normal WAIT state. Previously WAIT state check was done first, then blitter wait. It is not same
  because copper requires idle cycle when WAIT ends and it should be after blitter has finished, not before.
  (Last minute change 1)
- Second last minute change: last line sprite DMA logic behavior difference between A1000 Agnus and Fat revisions.
  Sprite glitches are different in Skitro by Awesome/D-Tect/Vanish when run on A1000 vs OCS A500. Also fixes missing
  yellow glitches in same demo.
- b23 "Fixed missing graphics in Disposable Hero title screen in non-cycle exact modes." broke (again) demo Back
  in 90 / Samplers. Added quick workaround: only do "Disposable Hero" fix if CPU is 68020+ (=works in most whdload
  configurations without glitches).

Beta 27: (RC2)

- Added compatibility warning message if PPC CPU (and m68k is stopped) configures UAE filesystem
  autoconfig board ("UAE" controller that is needed by uaehf.device bsdsocket, uaescsi and so on)
- Added download url to no ppc plugin detected message.
- Minimize when inactive option should be ignored if mode is fullscreen. Only uncapturing mouse in
  real fullscreen mode makes no sense. (b24)
- 68000 MOVE to CCR/SR idle cycle count is 4 cycles, not 6.
- 68000 prefetch mode ("more compatible") DBcc cycle counting fixed.
- 68030 prefetch/"cycle-exact" mode MMU instruction exception prefetch fix. (Same as 280b1 for FPU)
- 68030 "fake" MMU (MMU emulation not enabled = MMU instructions do nothing), absolute address
  (xxx.w and xxx.l) addressing modes were marked incorrectly as invalid.
- Strange immediate TST variant (TST.x #z) is valid instruction if 68020+.
- Allow 24-bit address space with 68030 CPU. (Not going to touch other CPUs just yet)

Beta 26: (RC1, Official release date deadline is mid december)

- Bumped version to 3.0. 
- Directory filesystem statefile support didn't save open file's full path correctly if path was deeper than
  2 levels from root. (Bug since directory statefile support was implemented)
- Z3 mapping mode = automatic: select always real mode if JIT is disabled.
- Added picassoiv_rom_file config file entry, if you want to use different versions or custom path.
- Off by one error in internal buffer calculation, display was shifted by 1 vertical pixel, hiding
  first line if window size was small enough but still big enough to fit all vertical lines.
- 68000 JMP (d8,An/PC,Xn) didn't include extra 4 cycle idle time. (Documentation says 3 read cycles which
  is incorrect, correct sequence is 4 idle cycles + 2 idle cycles + prefetch + prefetch)

Beta 25:

- Added 1M/0.5M+0.5M chip/slow ram option checkbox to Advanced Chipset (for example in rev6 A500 it is JP2
  solder pad). If hardware is configured for 1M chip without 512k slow ram, normal chip ram alias at upper
  512k of chip ram address space gets replaced with "bus noise". Can be only changed when chip RAM size is
  less than 1M. (ECS Agnus + 512k chipram without slow ram configuration always used this option previously,
  now it is optional and not enabled by default)
- Map Chip RAM mirror at 0x01000000 in A2620/A2630 config, to prevent A26x0 built-in monitor program detecting
  huge ram expansion at 0x01000000.
- uaenet.device + slirp combination was broken (probably has always been).
- uaegfx modeid space increased, reduces modeid conflicts if host os has huge amount of resolutions (>~80).
- Debugger does not anymore exit stopped CPU state (STOP instruction) after exiting debugger.
- "SCSI (Auto)" priorities changed: mainboard built-in first, then accelerator board, expansions last. (Expansions
  was first previously)
- More accurate 68000 prefetch mode instruction cycle usage, added non-static cycle counting (mul, div etc..)
- Most CDTV-CR built-in CD audio player features, including CD+G, are now working. Media changes supported.
  3.44 ROM CD player works better than 3.32.

Beta 24:

- Native code Z3 offset was wrong if Z3 mapping was using "real" mode.
- CD32 NVRAM file was not automatically created (b14).
- Added some accelerator board A1200 and A4000 configs to Quickstart. 
- Only PCM audio worked (and was always used) when recording audio in non-wave mode.
- Picasso IV in Z3 mode didn't appear in Z3 autoconfig space.
- Initialize VGA chip emulation earlier, fixes emulator crash when Piccolo board is configured. (Also for some
  reason Piccolo and Piccolo SD boards are not used by OS4)
- Too large Z2 RTG VRAM value in config file was accepted as valid.
- Show user friendly message if PPC CPU is started without PPC plugin.
- Disassembler decoded FMOVE.x FPy,<ea> incorrectly, FPy was wrong.
- "Untrap = middle button" + "Minimize when focus is lost" + full-window mode didn't minimize. Only windowed
  mode should require real lost focus to become minimized.
- GUI appeared under full-window background window.
- Use secondary fast RAM bank for A2620/A2630 accelerator memory, works better with other Z2 boards (like A2091)
- Allow hardware unsupported (total >8M) Z2 total board size. Can happen in real world so it should be available
  in emulation too.
- Added Z2 autoconfig address validation, log and ignore any autoconfig attempt outside of valid Z2 regions.
- Added 68030 + more compatible CPU core. Previously this combination was unusable.

Beta 23:

- Dragging vhd file to harddrives panel now adds it as a HDF, not a directory if it does not contain any known
  filesystem or RDB identifiers.
- PCMCIA IDE was always mounted without drive since drive attribute update long time ago.
- PCMCIA IDE and SRAM can be added (card inserted) after emulation has been started.
- Replaced "JIT direct compatible" option in memory panel with more useful Z3 mapping option:
  Auto = Use OS mapping if possible, fall back to UAE hack if JIT direct enabled and not enough adddress space.
  UAE = Always use UAE hack mapping (0x10000000). NOTE: not compatible with non-m68k operating systems. This mode
  was always forced until 282b1.
  Real = Always use OS mapping (0x40000000 with alignment support), disable JIT direct if not enough address space.
- Fixed missing graphics in Disposable Hero title screen in non-cycle exact modes.
- Load config with statefile set, load another config without statefile, GUI shows no statefile selected but
  when starting emulation statefile was still loaded.
- CDTV-CR CD read speed is now limited to 1x/2x.
- Added CD turbo data read speed mode, affects CDTV/CDTV-CR/CD32 emulation only. SCSI CD is always in turbo mode.
  Checkbox in CD/Harddrives panel.
- QEMU PPC module update, now all extra dependencies are statically linked. External dlls are not
  needed anymore (whole plugins\qemu can be deleted). Must be located at <winuae path>\plugins\qemu-uae.dll

Beta 22:

- CDTV-CR CD unit was initialized even when CDTV-CR emulation was not enabled. Broke CD access on configurations
  that used CD unit for other purposes.
- Changed directory filesystem max file size limit (when not using 64-bit dos packets) to 4G-1. Old 2G-1 was
  technically official max size but most native filesystems don't enforce it and support file sizes up to 4G-1
  (at least as long as application uses unsigned integers)
- Standard CD image read sector function didn't handle (rarely used) 2336 byte CD sectors correctly.
- Some statefiles have corrupt "extra_cycle" value (probably saved by some buggy beta) that causes long delay
  when restored, added workaround.
- 68000 CE mode IPL line sampling timing update. Do it during any memory access, not just prefetches.

Beta 21:

- Moved CDTV-CR under original CDTV Quickstart option.
- Added 3.44 CDTV-CR extended ROM.
- CDTV-CR now boots CDTV CDs. CD audio player does not yet work and some games that play CD audio will hang.
  Also CD reading speed is currently unlimited.
- Added 256M (max possible) Blizzard accelerator board RAM size support. Works with 1230, 1260 and PPC.
- CSPPC P5_SELF_RESET bit emulation fixed, M68K can only reset PPC and PPC can only reset M68K if
  P5_SELF_RESET is not active. (Blizkick reset hang)
- When switching quickstart modes, extended ROM was not reset if new mode didn't use extended ROM.
- Switching Quickstart models now remembers previously selected model configuration setting.
- Disable tablet mode if tablet name query returns error or empty name. WTInfo() with null parameters is
  supposed to return error if tablet is not connected but it does not seem to be true with all drivers.
  (Fixes division by zero guru at boot if tablet emulation is emulated)
- default_xlate() system halt didn't work, broke probably when 1 second boot delay option was added.
- default_xlate() now also generates bus error if Gary bus error bit is set instead of halting.
- Include approximate exception startup time in non-cycle exact 68000 emulation modes.

Beta 20:

- A2630 rom was not unmapped completely (only first half)
- CSMK3/CSPPC/BPPC Amiga reset bit should stop the PPC before reseting the system to prevent random hangs.
- CSMK3/CSPPC/BPPC switching off maprom programmatically (not hard reset) didn't restore original KS ROM.
- Added preliminary CDTV-CR emulation. Boots to title screen, preferences screen also works. Only clock
  and 4k (nonvolatile?) RAM emulated. No CD, no nothing else. v3.32 extended ROM added to ROM scanner,
  CDTV-CR option added to Quickstart.
- PPC interrupt/thread-safety hang problems should be fixed.

Beta 19:

- Restarting and loading another config crashed if PPC or RTG without JIT direct was active.
- After restarting non-JIT config, JIT direct was not available (old restriction that should have been gone
  few official releases ago)
- Added A2620/A2630 emulation and two rom images to rom scanner. (390282-06/390283-06 and 390282-07/390283-07)
  Not JIT direct compatible. 68000 fall back mode causes HALT4 status. ROM special feature: right mouse button
  at boot = enter boot menu, in boot menu shift+m and right mouse button: enter rom monitor.
- A590/A2091 word writes to DMAC WD SCSI byte registers and Z2 autoconfig registers supported. A2630 boot
  rom likes to do word writes to byte-size registers.
- PicassoIV AGA flifi bit was set even when using non-AGA hardware. No functional changes.
- Fixed RTG hardware emulation crash in some situations when switching (fullscreen) modes.

Beta 18:

- "Pause emulation when xyz" option remained forever stuck in pause mode if PPC CPU was active.
- PearPC PPC emulation removed.
- Freezer cartridge ROMs had disappeared from GUI.
- Freezer cartridges didn't work.
- Force Direct3D mode if hardware RTG board + PPC enabled. DirectDraw has glitches. (Will also have
  glitches in non-PPC mode but there is no need to change it yet)
- CSPPC/BPPC interrupt controller IO address accesses were not thread safe, caused random lost or stuck
  interrupts.

Beta 17:

- Hard reset now forces reload of KS ROM if maprom is active, previously map rom mapped image
  was still in use after hard reset.
- Fixed some more Z3 autoconfig bugs introduced in recent betas autoconfig updates.
- Only add VirtualAlloc() MEM_TOP_DOWN flag when OS is XP. For some unknown reason with MEM_TOP_DOWN my system
  suddenly started giving less address space than without it..
- A1000 with full KS ROM configured (instead of A1000 boot strap ROM) didn't boot since b9.
- Reset didn't clear QEMU PPC JIT translation buffer, fixes mysterious hangs after reset.
- Added main thread sleep option slider to GUI, reduces CPU usage when M68K is stopped and only PPC is active.
- PPC CPU model can be manually configured using ppc_model=<name> config entry. Can be any QEMU supported
  PPC CPU model name string. (Model strings are in qemu source file target-ppc/cpu-models.c)
- Automatically disable m68k JIT autoconfig hack if only PPC CPU is active when autoconfig starts after reset.
- Fixed WarpOS (possible PowerUP too) semi-random program hang caused by lost PPC interrupt(s).
- Allow m68k JIT direct with accelerator board if board is not Blizzard model (no Blizzard memory aliases)
  CyberStorm PPC + m68k JIT direct at least seems to work, no guarantees.

Important:

- QEMU PPC libraries are now loaded from <winuae path>\plugins\qemu\. Old location is not supported
  anymore. Move all qemu dependency libraries and qemu-uae.dll to new path.

Beta 16:

- GUI (and log) showed wrong size for very large drives (>1T). Visual problem only.
- Fixed F12/pause hang when PPC was active.
- Fixed uaegfx RTG in Z2 mode memory mapping (b14)
- 68040 MMU MOVE16 fault size was wrong. (Cache line, not long)
- 68060 MMU read-modify-write fault had inverted read/write status.
- QEMU PPC vs UAE side memory banks are now dynamically mapped.
- PPC CPU HID1 set to more correct value, detected CPU clock is not same as bus clock anymore.
- QEMU TCG (JIT) buffer was too small, real world PPC programs run now much faster.

NOTE: Reset when PPC CPU is active still does not work 100% correctly.

Beta 15:

- "ROM disabled" A2091/A590 ROM option was not visible (b14)
- Blizzard board ROM code was ignored (b14)
- Log window was opened when PPC CPU started (b14)
- Dragging adf file over window mode bottom bar HD led didn't mount it as a harddrive.
- Mounting adf as a harddrive uses adf's real volume name instead of host-side file name.
- Added support for sub memory banks, can divide normal 64k UAE memory bank in to smaller sub memory
  banks. Mainly needed to properly map PPC CyberStorm MK3/PPC SCSI IO and SCRIPTS RAM for QEMU PPC.
- SCSI CD emulation via NCR SCSI (53C94/FAS216 or NCR53C710+) chip didn't flash CD led.
- Added hack that prevents Picasso IV switching temporarily to RTG mode immediately after reset.
  (Picasso IV does not use simple signal passthrough like other cards)
- Switch to/from hardware RTG mode only after mode has been stable at least 0.5 seconds.
- Show CD insert/eject messages in new status bar message area. (Should it show real volume name instead
  of file name?)
- Quickstart CD eject button was always disabled.
- Status bar NVRAM led also shows accelerator board flash write accesses. Includes also writes that only
  enable chip ID read mode.

- PPC IO access completely rewritten, most IO areas are now directly accessible and only special regions
  (custom chipset and CIA) require locking. Very slow IO message passing system is completely gone.
- QEMU PPC core support. Read separate notes!

Beta 14:

QEMU PPC is still work in progress (by Frode and me), QEMU-side is not yet included. It run for the first time
few days ago. It is not stable enough yet but hopefully soon...

- Autoconfig stopped immediately after first A590/A2091 board was configured.
- If VHD check/validation failed after VHD type was fetched (static vs dynamic), VHD was still accepted as valid,
  possibly crashing soon after. HDF type variable was not cleared, bug since VHD support was added.
- Automatically extend internal SCSI emulation buffer size if larger than current buffer size transfer is requested.
- If 68060 and "Unimplemented CPU emu" is ticked: 68060 unimplemented instructions that are completely unimplemented
  (CHK2/CMP2/CAS2/MOVEP) still triggered illegal instruction exceptions.
- 68000/010 configuration with 32-bit address space is now allowed.
- Blizzard 2060 ROM loading special case handling didn't work. (Has odd/even parts, others don't)
- Redesigned GUI SCSI expansion ROM selection, easier to add new boards in future.
- Fastlane Z3 SCSI board emulation implemented, another FAS216 based SCSI controller. z3scsi.device from
  phase5.a1k.org in rom scanner, but it would be nicer to have full dump. SCSI part only, memory part ignored.
- Oktagon 2008 SCSI board emulated. This was interesting, it has "software DMA" (SCSI chip is told to do DMA
  transfer but "DMA controller" is IO space that CPU reads or writes), it also have 512 byte serial EEPROM used
  to store config (with only 15 bytes used). EEPROM data is internal, not saved to any file. 6.12 (last release?)
  boot ROM added to rom scanner. Autoconfig data is currently not confirmed. Support added only because it was
  quite different than most other SCSI controllers.
- TekMagic 2040/2060 board added. 1.0 tekscsi2.device ROM added to ROM scanner, both odd/even pair and merged
  rom supported. NOTE: tekscsi2.device has a bug that does not allow RDB filesystem loading. Fast RAM expansion
  is not supported, it seems TekMagic fast RAM can also start from 0x02000000, not the usual 0x08000000.
  tools/showconfig output needed.
- NCR53C710 SCRIPTS DMA wasn't correctly started when in manual start mode. (tekscsi2.device)
- Added support for non-MMU bus error caused by invalid memory accesses, including 68000/010/020 models which
  normally can't generate bus errors but perhaps some expansion hardware will need it in future.
- Screenshot with D3D shader filter + take screenshot before filtering ticked saved final D3D output, not original
  unfiltered buffer.
- "SCSI (auto)" now works with all SCSI boards. Selects first SCSI board that is enabled. (In same order as
  select menu lists SCSI controllers)

Some code restructuring:

- Autoconfig board handling rewritten yet again, removed lots of code duplication and moved most duplicated
  autoconfig logic from board specific files to common expansion.cpp.
- Autoconfig board ROM config handling reorganized, now it is much easier to add new Z2/Z3 boards.
- Replaced my hacky serial EEPROM emulation with better one from QEMU, made it generic (previously only used
  in CD32 emulation).
- Removed A590/A2091 and A4091 Expansion panel checkboxes, enable/disable is now ROM selection. (ROM selected =
  enabled, ROM selection empty = not enabled)

Beta 13:

- Fixed vhd hardfiles. (b12)
- Emulated strange OCS/ECS feature similar to "SWIV scoreboard" feature (plane color > 16 becomes 16 when PF2PRI
  is set to invalid value). It gets more interesting if mode is dual playfield and PF2P2 is invalid: odd planes
  become transparent and it still hides even planes behind it if PF2PRI is set! (Running Man / Scoopex)
- A2065 buffer ram is now directly accessible, if someone wants to do some weird stuff with it (xlate and check
  memory functions supported)
- ROM scanner result window redesigned, all expansions that need rom images added.
- Fixed CHD CD crash when sector size conversion was required.

Beta 12:

- Windowed mode status bar button mouse click off-by-one fix.
- If command line has more than one -f/-config= parameters, config will be now reset to built-in defaults
  only once, before first config file is loaded.
- Updated CHD support, uncompressed CHD write support added, can be mounted as read-write hardfile.
  (CD subchannel support may or may not work, there does not appear to be easy way to convert ccd/sub/img
  combination to chd)
- CSPPC/BPPC IPL_EMU register's M68K_IPL bits only change when PPC is interrupt master.
- b11 Blizzard accelerator Z3 autoconfig hack didn't work correctly.
- BlizzardPPC flash mapping fixed (b11)
- 68000 mode, without CE and more compatible, RTE instruction didn't check for odd program counter.

Beta 11:

- P5_AMIGA_RESET CSMK3/CSPPC/BPPC bit can be only changed if P5_SELF_RESET is cleared first.
- Never use normal Z3 autoconfig mapping if Blizzard board is emulated to reduce address space
  conflicts with Blizzard RAM mirror at 0x48000000. Note that this is impossible config, there is no
  way to have any Z3 boards with BPPC in real world.
- Blizzard PPC rom name renamed to blizzardppc_060.rom and added blizzardppc_040.rom. 68040 and 68060
  variants have different (and incompatible) flash rom contents.
- 68000 + no cycle exact and no "more compatible" used wrong memory access method. (b9)
- RTD instruction was set as 68000 compatible (should be 68010+). Incorrect since the beginning.
- Accelerator board ROM select menus didn't select anything.
- Added full CyberStorm MK1 image ($F00000 ROM code is 68060-only), added another 68040 compatible ROM
  that simulates boards with boot rom jumper disabled or boot rom chip removed. (Original non-flash based
  boards had separate ROM chip for boot and diag ROMs and boot was only installed if CPU was 68060)
- CyberStorm MK1 SCSI works again.
- Automatically update accelerator board ROM settings when board type is changed in GUI.
- PPC BAT register handling fixed (Technically not emulation bug but OS bug, PPC documentation says
  '... BEPI and BRPN fields must have at least as many low-order zeros as there are ones in BL.', BEPI and BRPN
  needs to be masked with BL instead of trusting software doing as documentation says..)
- Added missing PearPC divwu, divwuo, addco, subfco PPC instructions. (Variants of already existing
  instructions).

Last two updates allows AmigaOS 4.1 Classic to boot.

OS4 note: If you enable Z3 RTG board, it must be mapped at real Z3 space (0x40000000+), "JIT Direct compatible
Z3 memory mapping" must be unticked or you must have large enough host address space (=64-bit Windows). OS4 resets
the system and autoconfigures all boards, m68k hacks can't work. (NetBSD and Linux work because they read board
config data from AOS expansion.library before taking over the system)

Next topic:

PearPC CPU emulator is a dead-end. Missing instructions, only partially emulated instructions, no support
for integer overflows, division by zero, illegal instruction exceptions and so on.. (Which means any buggy or
badly behaving program can crash the emulator or hang or crash emulated operating system). It did its job, allowed
easy and quick PPC emulation test. It would not have happened with any other more complex cores.

It seems most compatible PPC CPU emulation is in QEMU. Dolphin only have experimental MMU support which is not
supported in JIT modes. But QEMU is complex, very complex..

What does this mean? It means all PPC CPU related bugs will be ignored until PPC CPU emulator core is replaced
(timeframe: unknown.), only exception is bugs that didn't exist in b10.

Beta 10:

- Added CyberStormI/II/III/PPC and Blizzard PPC flash rom images to rom scanner, name based detection only.
  (Remember to click ROM rescan button) Now opens usual ROM missing dialog when flash rom image can't be opened.
- Added GUI support for manual accelerator board ROM image selection.
- NCR53C770 emulation spurious interrupt fix.
- Reset/exit froze the emulation if PPC CPU was in sleeping state.
- Map ROM checkbox was checked if 128M CPU slot memory was configured (old bug).
- 68030 more compatible/CE with MMU does not use data cache anymore, 68030 caches logical addresses (which
  will get really difficult and complex to emulate), 68040+ caches physical addresses.
- CyberStorm PPC/Blizzard PPC board emulation improved, PowerUP also works.
- Do not map PPC board FFF00000 memory mirror if no on-board RAM installed.
- Generate CyberStorm/BPPC fake flash rom hardware idenfication data and serial if it is missing.
- If CyberStorm MK3/PPC flash image is 256k or larger, map it like BPPC does it. (Not sure if this is correct)
- Reset with Picasso IV enabled forced hard reset.
- Z2 RTG crash fixed (some configurations).
- Added PPC GUI option to CPU panel. If ticked, selects matching board automatically. Becomes ticked and disabled
  if board was already selected. 68040/060 only. (CSPPC/BPPC flash boot code uses 68040+ only instructions)
- Move PPC thread to main thread when m68k gets disabled, improves performance of native PPC operating systems.
  (No need to move IO access messages between threads)
- Disable RTG board if >2M chip ram configured and Z2 RTG configured. (Forgotten address conflict check)
- OSD CPU led changes to "PPC" when PPC is active and m68k is disabled.

Beta 9:

- PearPC PPC emulator core added. Only because it was very easy to add, it may not be compatible enough.
  (and it isn't, at least not fully compatible, at least it has some unimplemented instructions, some
  programs or operating system surely won't work)
- PPC disassembler added to debugger ("dp", PPC mode is remembered, use "do" to switch back to m68k)
- Windowed mode status bar shows PPC state (if CyberStorm PPC or Blizzard PPC selected). Shows 4 possible states:
  STOP (inactive), RUN (executing instructions), SLEEP (low power state, waiting for interrupt), CRASH
  (CPU emulator detected something bad, like invalid instruction etc)
- BlizzardPPC memory GUI adjustment fixed.
- Fixed 68020/030 CE + fastest possible hang if program executed loop that didn't do any memory accesses.
- 68040/060 CINVx instruction was still disassembled strangely.
- Adjusted 68040/060 "cycle-exact" mode timing, also if data cache is enabled, emulate all data memory accesses as
  immediate. (until data cache is emulated fully)
- CyberStorm MKII F0 ROM section of flash rom is now flashable. (third party mk2diag flash updater works)
- Blizzard PPC flash rom chip emulation now works correctly (was wrong mapping and wrong flash chip device code..)
- Added special JIT indirect CPU core that supports code execution from non-linear and/or aliased memory. Technically also
  should allow to emulate A2091/A590 but it still crashes for some reason. (But at least now it executes some ROM code before
  accessing invalid memory. A2091/A590 is perfect test case because it does not copy driver code from autoconfig ROM to RAM like
  most other HD controller drivers do, code runs directly from ROM and same memory "bank" also has IO registers)
- Memory allocation source clean up. Can break nearly anything.. 
- SCSI CD READ CD command didn't read audio tracks 2+.
- Entering debugger force the emulator if m68k CPU was stopped with STOP instruction and all interrupts disabled.
- NCR53C770 emulation tweaks, fixes netbsd hang. Now it gets unexpected interrupt, no fix available yet.
- Version bumped to 2.9.0

PPC Notes:

Only a proof of concept currently.
Automatically enabled when CyberStorm PPC or Blizzard PPC emulation is selected.
Only PearPC interpretive PPC emulation is currently supported. Speed is totally irrelevant at this point.
PPC emulator runs in separate thread, it requires special handling with PPC IO accesses, IO accesses are serialized and sent to m68k-side.
Plain memory accesses are direct. (This assumes M68K is still doing Amiga housekeeping duties and PPC is mainly used as a co-processor,
probably will cause huge performance hit if PPC does everything, for example when running PPC-only operating systems)
Should be fully m68k JIT compatible, at least in indirect mode.
Dual core CPU or better required. If you don't have one, you are not allowed to report anything, sorry.
PowerUP kernel does not work (hardware is not fully emulated). WarpOS appears to work.
Do not use BlizzardPPC, it has (currently incompatible) PowerUP in flash and it runs at boot.
Make sure CPU speed is fastest possible. PPC IO access serialization will be slowed down if m68k is waiting for
chipset.


Beta 8:

- When loading old config which has both cycle-exact and fastest possible enabled: disable fastest possible.
  Previously this combination was invalid but some for some reason old configs can have both set.
- One second boot delay was always active, even when restoring statefile..
- "Fastest possible" with cycle-exact now works as designed, removes all CPU internal processing cycles, only
  affecs 68000, 68020 and 68030 models. (68040+ and 68030 MMU is always internally immediate). This should be
  better option (uses less CPU time) than using MHz adjustment if you want fast CPU in cycle-exact mode.
- Immediate blitter is now selectable in cycle-exact modes.
- Some more Z3 autoconfig mapping tweaks. (Warp Engine..)

Beta 7:

- NCR93C94/FAS216 SCSI emulation write didn't work correct and wrote corrupted data, fixed. Added also check
  that aborts transfer if SCSI chip and DMA controller data directions don't match (should never happen but...)
- Flash chip emulation didn't emulate all "chip is still erasing" status bits, broke CSMK3/CSPPC/BPCC flasher.
  Worked only accidentally in older version.
- SCSI Kit rom checksum data was in wrong position, broke Blizzard 2060 odd/even rom loading.
- CyberStorm MK2 flash update was not written back to rom file.
- "JIT Direct compatible Z3 memory mapping" option with RTG enabled worked only in some configurations.

Beta 6:

- Added NCR53C94/FAS216 SCSI chip emulation (from QEMU)
- Added Blizzard1230IV/Blizzard1260 + Blizzard SCSI Kit IV emulation. SCSI Kit v8.5 ROM added to rom scanner.
- Added CyberStorm MK1 and CyberStorm MK2 emulation, map rom and SCSI included.
- Blizzard 2060 (map rom not emulated) and Warp Engine works now.
- CyberStorm PPC and Blizzard PPC 0xFFF00000 mapping improved, now switches correctly between KS map rom and
  PPC boot code locations. BPPC now correctly attempts to start flash built-in PPC support code during boot
  and hangs because PPC won't respond.
- Added warning message when BlizzardPPC or CyberStormPPC PPC CPU gets booted.
- Remap UAE Boot ROM (if needed) to secondary backup location if Blizzard PPC is enabled, if MMU emulation is
  enabled BPPC will remap normal boot ROM backup location causing boot hang.
- Added CyberStorm MK2 flash rom chip emulation, map rom and disable key support (=HALT4).
- Added CyberStorm MK2 full 128k rom image support (64k of autoconfig rom and 64k of diag rom)
- Flash chip emulation compatibility improved, fixed CSMK2 flasher infinite loop.
- Accelerator memory option now automatically changes CPU board memory if accelerator uses same memory type.
- Added keyboard hack to help Phase5 boot rom key detection, it still wasn't realiable enough with some boards.
- Added one second boot delay option to misc panel, allows easy access to boot menus without need to
  slow CPU emulation speed.
- Added 'Te' command to debugger, shows expansion autoconfig board information.
- CPU slot memory region was accidentally removed from mman list, causing random crashes in some JIT configurations.
- 68040+ more compatible / "cycle-exact" mode cache flush instructions didn't do anything.

About PPC emulation. It is now possible, at least technically, all other pieces are now done (at least partially).
QEMU has license compatible and apparently very good PPC CPU emulator, including MMU and dynamic translation and
it is proven to boot at least Linux.

Only need someone who knows QEMU inside out and can create standalone PPC emulator module that is black box
that only needs few functions: read physical address, write physical address, reset PPC, set interrupt level,
set CPU parameters. There appears to be some kind of CPU API/class but because it is unstable, internal only API,
there is no documentation.

Note that I still don't care what happens will happens in PPC side. If/when Blizzard PPC/CyberStorm PPC can run
some small PPC programs = it is done.

Beta 5:

Big accelerator board emulation update:

Added CyberStorm MK3, CyberStorm PPC and Blizzard PPC. ! There is no PPC CPU ! Technically it emulates board
with PPC CPU removed. (Which surprisingly does not seem to cause any problems, at least under emulation, real
hardware may get confused if PPC chip is removed). SCSI fully supported, boot menu works, boot menu options
can be modified and saved to flash, flash updater works. Map rom should work, including BlizKick.

Boot menu config is saved to flash rom which means selected flash rom will be modified, only use copy of your
flash rom image (If it is writable, files inside archives are never modified).

You need to be really fast or select slower CPU mode if you want to enter boot menu (ESC key). This needs some
emulator updates to allow easier way to press keys when starting emulation.

Map ROM is software selectable in boot menu, map rom option in GUI does nothing when using these boards.

Flash ROM images must have following names and must be in ROM directory because checksum based ROM detection can't work:
- CyberStorm MK3: cyberstormmk3.rom
- CyberStorm PPC: cyberstormppc.rom (emulates Phase5 version that has 128k flash, DCE 512k flash version not tested)
- Blizzard PPC: blizzardppc.rom (Note: flash is 512k but second half is only used for config, if rom image
is 256k (size you get if you simply dump the F0 space from real hardware), it gets extended to 512k after
onfig save or flash update). ROM images uploaded to the zone.

GUI/config file ROM selection will be added later. Note that real flash rom images also contain some card
specific information (PPC CPU speed, serial number which also includes card type). This area is blank in rom
images uploaded to the zone (they are from official flash updater, old serial is kept when flashing). blank
serial does not seem to cause any problems but some software probably gets confused.

NOTE: Only Blizzards use Accelerator board memory slider, other boards use CPU Board memory slider and Accelerator
board slider still needs to be set to some non-zero memory amount. (Will be fixed later).

Blizzard PPC seems to have something else in F50000 which may be important. (I only have CyberStorm PPC for
testing). Blizzard is (and can't be) JIT compatible due to high RAM addresses and RAM mirroring, CyberStorms
are much more JIT friendly but it is not guaranteed to be safe. Blizzard also does not boot if MMU emulation
is enabled.

- Added optional FPU emulation that uses softfloat library, another feature not for normal use.
  Full 80-bit FP accuracy, bit-perfect results (not including trigonometric functions), supports FPU
  arithmetic exceptions, much slower (Uses integer algorithms, host FPU is not used).
- Added mostly unmodified Qemu 53c895a SCSI emulation (originally heavily modified for 53c710 emulation). It is
  53c770 compatible, 53c770 is used in CyberStorm MK3 and CyberStorm PPC.
- Some 53c710 updates, Blizzard PPC SCSI driver didn't work.
- Added simple flash rom emulator.
- Fastest possible CPU option is now available for cycle-exact modes. CPU internal cycles are not counted,
  only (mainboard) memory accesses are cycle exact (DMA steals cycles from CPU) in this mode.
- 68040/060 "cycle-exact" mode is back, emulates only Amiga mainboard memory accesses cycle-exactly, includes
  instruction(*) cache emulation. Any 32-bit fast ram or cached access is still immediate. (Which is still
  much closer to real 040/060 than old behavior, 040/060 is heavily bottle-necked when accessing mainboard)
- 68040/060 "compatible" mode now adds instruction cache emulation.
- 68030/040/60 MMU mode "more compatible" (68030: adds both instruction and data cache emulation, 68040/060:
  instruction cache only) and "cycle-exact" modes supported. (more compatible + mainboard access slowed down)
- 68030: data cache support is temporarily disabled. (Didn't work with MMU for some reasonm)
- DFx: eject messages appeared in new status bar even if drive was already empty.
- Right-align status messages in fullscreen mode.
- A2065 autoconfig was broken (b4)
- b1 directory filesystem change rewritten again, removed also lots of unneeded complexity from original code.
- On screen CPU halt message reason code was always 1.
- Generated virtual RDB (when IDE/SCSI mounting partition hardfile) created empty string for device name.
- 270b6 "JIT MOVEM used direct mode if memory was direct capable but direct mode was disabled." was wrong
  fix, original code probably was done to work around some JIT indirect bug.. (AmiKit crash during boot
  if JIT is in indirect mode)

*) Instruction cache only? because emulating data cache would not make any useful difference (except to slow
down emulation), data cache normally does not cache any mainboard addresses anyway.

Beta 4:

- Added Blizzard 1230-IV and Blizzard 1260 board options. Do not use if you only want to run
  WB and other programs, it is not JIT direct compatible due to memory address space aliasing.
  Only emulates memory layout (which is Blizzard unique), matching CPU is not 100% required if you want to try
  weird configs. Map ROM is also emulated, old map rom checkbox in ROM panel enables Blizzard hardware maprom
  if Blizzard board is selected. Requires matching Blizzard flash ROM images. (Only difference between 1230IV
  and 1240/1260 is slightly different boot rom, hardware ram addresses appear to be exact same)
  Mostly useless, mainly meant to help development and testing. (Useful for aros m68k testing for me at least)
- Added Warp Engine board emulation (It has already emulated 53C710 SCSI), autoconfig works, ROM code runs,
  SCSI (53C710) does not work yet, not yet sure how jumpers are mapped to board address space.
- Really fixed CD32 data track checks. (CD32 Commodore Demo Disc 2.0 MPEG tracks)
- Disk Swapper panel drag'n'drop or file dialog multiselect mangled file names strangely.
- Added A590 XT drive emulation. A590 emulation is now complete :)
  WARNING: XT drives use real physical CHS geometry, don't attempt to use hardfiles formatted using other
  controller, it won't work in real world. (Emulation includes work around hack) Largest XT
  drive was 40M and protocol max limit is 511 cylinders, 15 heads and 63 sectors = ~235M.
  Both SCSI and XT drive can be active at the same time in same controller.
  Interesting fact about ROM xt.device: It uses WD33C93 Translate Address command to convert LBA to CHS
  which means WD33C93 chip needs to be inserted and working or XT (which has nothing to with SCSI) port
  won't work.
- Fixed A590/A2091 SCSI emulation crash if SCSI ID was non-zero.
- Z3 autoconfig was broken (b1).
- Serial port data rate register (SERPER) was not saved correctly to statefile.
- Serial port transmit interrupt and transmit related status bits are now more accurately timed in cycle-exact
  CPU modes. (If some software really cares, probably not)
- Inter-process serial port emulation added, when selected, automatically creates virtual null modem cable
  between two winuae processes. Uses shared memory, no latency. (Says "Master" in serial port selection menu
  if WinUAE instance created shared memory and "Slave" if shared memory was already created by some other instance.
  If nothing = something failed)
- Added support for short text messages, appears in OSD bar's unused space and windowed mode bottom bar. Currently
  only shows disk image eject/insert and input device autoswitch information.
  OSD messages won't appear in following configurations: native mode + DirectDraw + no filter and RTG
  mode + DirectDraw. (In DirectDraw mode status bar is drawn directly to target surface, erasing gets annoying
  because it should not be read. In D3D mode it is another texture, hardware does the rest)
- Added remove all button to Disk Swapper panel.
- Game controllers can be now optionally kept active when winuae window is not active or minimized.

Beta 3:

- Selected chipset extra didn't match what dialog box shows (b2). This broke many configs..
- CD32 FMV 16-bit display mode support.
- A590/A2091, A3000, A4000T and A4091 SCSI was not initialized unless at least one device was connected (b1).
- Added Picasso IV flash rom v7.4 image to rom scanner. It does not need to be called picasso_iv_flash.rom anymore.
- Added Blizzard 1230-IV and 1240/1260 Boot ROMs to rom scanner. (Coming soon Blizzard 1230/40/60 unique memory
  layout and maprom emulation. It can be useful for developers and for testing without real board. This was
  supposed to be implemented in this beta but chipset extra bug required quick update)
- .bin extension added to ROM scanner.

Beta 2:

- Pointless CD32 Full Motion Video cartridge emulation! (Check notes below)
- CD32 FMV 40.22 ROM image rom scanner checksum fixed (was from byteswapped image). ROM rescan required.
- Added CD32 FMV option to Expansion panel.
- Added CD32 FMV to ROM scanner result dialog.
- GamePorts panel autofire always-option crashed.
- CD image emulation didn't support 2336 to 2352 sector size conversion.
- CD image emulation didn't return correct data if image had 2 data tracks back to back and
  tracks from second data track was requested. (Cannon Fodder CD32 FMV track)
- Debugger MOVES instruction's source and destination was swapped.
- Quickstart CD image selection text box become empty after image was selected (b1)
- RTG scale options didn't work on the fly. (2.8.0)

CD32 FMV notes:

- ROM requests won't be allowed and will be deleted. ("Find" it yourself or get AmigaForever or something)
- Only supports CL450 MPEG decoder commands that basic playback needs.
- VCD quality is not that good: MPEG-1 with 352x288 (PAL) or 352x240 (NTSC) resolution, MPEG-1 layer 2 audio.
- Requires at least null filter. (Automatically enabled)
- Requires 32-bit display mode, 16-bit will work in future. (Not automatically enabled)
- Tested with CD32 FMV 40.22 and 40.30 ROM versions.
- Tested only with Cannon Fodder CD32 video track and one VCD movie.
- Rewind or fast forward hangs the player software. (No idea why. No CL450 commands sent.)
- AV sync may not be that good.
- Sound buffer underflows will happen.
- CL450 video window size and position values ignored, video window is always centered and automatically
  1x/2x/4x scaled.
- Video is 1:1 pixel mapped, aspect ratio is ignored.
- Before reporting anything: make sure your Cannon Fodder CD32 image is correct. It must have 2 data
  tracks, check .cue file using any text editor. Plain iso also can't work.
- Config must be based on "CD32 with Full Motion Video cartridge". Do not load old CD32 config and tick
  CD32 FMV expansion option. If you do it, you are on your own.

- Only obvious bugs (very jittery video, nothing happens etc..) will be accepted.
  Everything else will be ignored until I get my own FMV cartridge.
  I won't pay for it. Exception is getting enough donations.
  WinUAE is not a video player!

Beta 1:

- Debugger TR command didn't handle linked resident lists correctly (inverted mask..).
- TO debugger command also lists FileSysStartupMsg and DosEnvec of mounted devices.
- Slow down 68EC020 RTE instruction, fast clock rate multiplier modes could have executed MOVE to
  INTREQ + RTE combination too quickly (before Paula had cleared the interrupt) causing interrupt to
  re-trigger immediately after RTE.
- Added SCSI controller selection to GUI and config file. ("SCSI (Auto)" does same as old plain
  SCSI selection = use first enabled SCSI controller).
- More than 1 SCSI controller can be now active simultaneously. (For example A4000T + A4091)
- Added support for two A590/A2091 and two A4091 boards, both (or even all 4) can be active at the same time.
- Secondary A590/A2091 and A4091 share primary board's boot ROM by default. a2091_2_rom_file and
  a4091_2_rom_file config file entry can be used to select other ROM version.
- 280b7 sprite update missed AGA bordersprite condition, causing clipped sprites in some situations
  (Silicon Graphics 2 / WFMH)
- Rewritten directory filesystem Examine Next logic, now returned fib_DiskKey always have file/directory
  entry specific unique value. Some programs check fib_DiskKey and (incorrectly) assume that it is unique
  value and may also assume file must be same if both file's have same fib_DiskKey. Now also C:List KEY output
  looks "correct". This needs testing because original (Tripos?) directory enumeration packet design is
  not that good..
- AGA border sprite bit set and if same scanline had at least 1 sprite that was outside of playfield and at
  least 1 bitplane was active and BPLCON4 palette XOR value was non-zero: wrong background color was visible
  in some situations. (Nexus 7 / Andromeda "shade cluster" part)
- Some BEAMCON0 programmed mode emulation updates. VBSTRT/VBSTOP register values only affect screen if
  VARVBEN bit is set.
- Use also value stored in VBSTRT (vertical blank start) register when setting up programmed mode vertical
  size, some weird modes can have (much) smaller VBSTRT than VSSTRT (vertical sync start). (Jtxrules by Illusion)
- HBSTRT/HBSTOP register values are only used if BPLCON3 EXTBLKEN bit is set. (Demos Contactro and Jtxrules by Illusion)
- BEAMCON0 HARDDIS bit also disables DDFSTRT hardware limit. (Weird stuff, VARBEAMEN disables it too,
  even superhires mode disables it..)
- Fixed "CPU trace blahblah" error after 68020+ state file was loaded and loaded program used bitfield instructions
  later.
- Split ROM images didn't load (again..) correctly if relative path mode was active.
- Added support for missing Z2 RAM board sizes (64k/128k/256k/512k). Note that small boards (256k and less) can
  be mapped at IO autoconfig base (0xe90000+) which makes predicting final address difficult: JIT (if enabled)
  can't use direct mode to access this RAM board.
- Added support for second Z2 fast RAM board. Size must be smaller or same as first board. (Makes JIT
  board address calculation simpler)
- Above two changes mean it is now possible to have total 6M of Z2 RAM in 24 bit addressing config with 2M gfx
  board config (4M + 2M and 2M gfx) or less useful 8M fast + extra 256k of fast config...
- Z2 gfx board JIT direct calculation didn't correctly align the board base address if Z2 RAM size was less than
  Z2 gfx board size.
- Implemented no-hack Z3 memory mapping, lets OS handle Z3 autoconfig without patching base addressess from
  >=0x40000000 to >=0x10000000. This mode is not JIT Direct compatible. Option in Memory panel. Do not enable
  unless you know what are you doing and you really need 100% matching real hardware Z3 address mapping.
- Use no-hack Z3 allocation automatically if all configured boards fit in official Z3 space, fully JIT Direct
  compatible. Requires 64-bit Windows and available space will be about 300M to 500M. RAM panel text string
  shows free space. 32-bit Chip RAM does not count, it is not Z3 board and it is always located at 0x10000000.
- Added 384M and 768M 32-bit Chip RAM size options. (768M fits perfectly at 0x10000000-0x3fffffff)
- Added Z3 autoconfig advanced chipset option. If ticked (or A3000/A3000T/A4000/A4000T chipset extra selected),
  Z33 boards will now appear at Z3 autoconfig space (0xFF000000), previously Z2 space was always used.
  Z2 space is supported by AOS but most real, but not all, Z3 boards use Z3 space. Optional because not all
  KS ROMs (for example A1200) support Z3 autoconfig space but do support Z3 boards.
- Try to keep number of cylinders under 65536 when generating default geometry even if partition hardfile
  is very large (>100G) for better old AOS compatibility. (Helps my big partition PFS3 testing..)
- Hardware (Cirrus Logic) RTG board emulation incorrectly required UAE boot ROM.
- 68030 MMU update from Previous, fixes some supervisor/write protect edge cases.
- Added "history" menu to filesystem, hardfile and tape path selection text boxes.
- Added portable mode (.ini) on/off state to Paths panel. Read-only, enabling it on the fly would cause
  all kinds of side-effects. Unsupported warning removed.

2.8.1

Beta 8:

- Tweaked 68020 reading from non-existing memory behavior.
- Added *.a500, *.a600, *.a1200 and *.a4000 extensions to ROM dialog file name filter.
- AVIOutput didn't use (slow) reads from VRAM even when it should have been used it, resulting in
  tiny non-scaled video output if "capture before filtering" was not ticked and resolution was large enough.
- AROS ROM updated.

Beta 7:

- Yet another BPLxDAT update. If BPL1DAT is written when sprite is already active and no planes enabled in
  BPLCON0, "sprites visible 1 lores pixel before first bitplane pixel" feature is not active. Previous
  update was not correct and broke some other demos. (Real fix for Rink A Dink / Lemon extra pixel in
  rotozoomer part)
- 68000 CE with 8x (or higher) clock multiplier was really fast (270b4)
- AROS ROM updated.

Beta 6:

- b2 HAM update was incomplete and broken, nr_color_changes check was not fully working. (b2)
- Display panel missing translations added (autoresolution and brightness/contrast/gamma)
- Some file operations (zipped files, possibly something else too) didn't support recently introduced
  relative "..\" path part update.
- Copper emulation state was not fully reset when restoring state file, in some situations copper
  may have modified restored custom register in next cycle after state was restored.

Beta 5:

- Relative path improvement broke CDFS CD mounting in some configurations.
- Ungrab (b4) event didn't disable mouse capture when it was activated in fullscreen modes.
- VPOS LOF bit toggles (if interlace) exactly 2 cycles before first refresh slot. Logic analyzer tested.
- Copper vblank strobe also stopped the copper if DMA was disabled and second strobe register was accessed
  previously. Broke in 280b1. (Sequential / Andromeda first screen)
- More accurate BPL1DAT emulation.(Glitches appeared in Sequential / Andromeda magnet part's
  left border when one pixel gap in Rink a Dink / Lemon rotozoomer part white border was fixed)
- 8-bit split (odd/even) roms didn't load if merged parent was missing.

Beta 4:

- New relative path mode worked badly under Windows XP, possibly up to Windows 7 without SP1.
- "Toggle between mouse grabbed and un-grabbed" input event has not done anything at all for ages (if ever).
- "Switch between audio interpolation methods" input event probably has never done anything at all, probably
  totally useless (custom events works as well) but at least it works now..
- 2.8.0 translation dlls are accepted now.

Beta 3:

- Do not show "hpos = 256!?" error dialog if something writes very bad values to programmed display
  mode registers.
- "Magic mouse" now stays disabled unless there is at least one open Intuition Screen.
- If relative path mode, support also relative paths that point outside of winuae root directory.
- BPLCON2 KILLEHB bit still required AGA instead of ECS Denise. This was supposed to be fixed in 1.4.5.
  (But no one cares, pre-AGA it was only meant for genlock stuff)
- Removed "Unimplemented error" dialog if directory filesystem returns unhandled/unknown win32 disk error
  codes, adds log message, returns ERROR_OBJECT_NOT_AROUND. (Most common causes are network filesystem problems,
  file/directory errors due security problems etc, no new missing errors reported for long time)
- On the fly (not using GUI) switching from Automatic resize filter to another filter mode may have incorrectly
  changed window size in some situations.

Beta 2:

- Quickstart GUI disk eject button was unreliable.
- HAM mode right border in some situations (Uridium 2 title screeen in some filter modes), also restored
  proper operation (got broken long time ago) of original "fast mode" if HAM scanline does not have any
  color register changes.
- CIA update (which I forgot to mention in b1 changelog) improved, was not fully compatible if CPU was faster
  than 68000 , do not trigger CIA interrupt while CPU is accessing any CIA register (not 100% confirmed but
  seems to be true), this also made b1 CPU mode switching unreliable.
- Reduced diskready (motor rotating at full speed) activation time by small amount, fixes Critical Mass / Parallax.
- Disk inserted (if replacing existing disk) and disk ready bit setting time is now more "random", now delay time
  counts scanlines, previously it counted vblanks (=disk was always inserted at vblank)
- Removed 270b16 Windows 8.1 mouse bug workaround, bug seems to be fixed.

Beta 1:

- Audio DMA CPU wait hack (that tries to prevent missing samples if program has CPU timed audio DMA wait)
  improved, now compatible with programs that really need delay after DMA switch off (for example switches
  DMA off, then clears interrupt request, and then finally waits for audio interrupt).
- CPU on the fly mode changes were unreliable (2.8.0b15)
- Fixed some GUI strings that didn't support translation.
- .ccd CD images didn't automatically load from archive if file was not in archive root.
- Disk insert after emulation has been started may have internally set disk as write protected even
  if disk image is write enabled. (broken since GUI "?" button was added)
- Added DMA channel support to memwatch points. Add DMA channel name (or more than one) at the end of
  debugger w command line, for example COP, BLT (or BLTA if you only want A channel reads) and so on..
  No parameter = CPU accesses only.
- Null filter didn't check display bounds, fixes possible DirectDraw mode crash when display size changes.
- Directory filesystem ACTION SET FILE SIZE will now fail if target file size is >= 2G. (Prevents accidental
  truncation if program does not support large files)
- Added directory filesystem MorphOS compatible 64-bit file size packets: ACTION_SEEK64, ACTION_SET_FILE_SIZE64,
  ACTION_LOCK_RECORD64, ACTION_FREE_RECORD64, ACTION_EXAMINE_OBJECT64, ACTION_EXAMINE_NEXT64, ACTION_EXAMINE_FH64 and
  ACTION_EXAMINE_ALL ED_SIZE64. (OS4 packets were implemented long time ago)
- AGA and reading non-existing or write-only custom registers work differently than on A500, don't use new more
  A500 compatible method added in 2.8.0 with AGA configurations. (This is far from accurate)
- Mouse device autoswitching was unreliable if rawinput was not supported or was disabled.
- If Quickstart mode and sound filter is set to A500 or A1200 emulated or always on: automatically match it with
  selected config.
- DMA debugger now shows CPU and DMA 32-bit chip ram accesses, previously data was truncated to 16-bits. 64-bit
  DMA is still truncated to 32-bit.

2.8.0

- Lowered floppy drive step limit again a bit more, fixes Elektrica / Cascade.
- Sound timing calculation used hardware maxvpos, not possibly currently active "fake 60hz"
  method maxvpos. (2.7.0b13)

Beta 19:

- Increased space for UAE boot ROM extension resident module structures, it was too small and overflowed
  (causing boot crash) if too many UAE resident module expansions were enabled simultaneously.
- Windows specific configuration defaults were not set if config was command line or double click loaded
  (missed in b17 fix)
- AROS ROM updated.

Beta 18:

- 0xFFFF was not returned when reading write-only or non-existing custom register and previous cycle was
  idle cycle. Not exactly 100% correct but more compatible with programs that accidentally read wrong
  custom registers.
- Cirrus Logic emulation had some useless logging enabled.
- Added GUI option to enable/disable new automatic programmed mode resolution selection to Display
  panel, enabled by default. (For example if you want to use superhires all the time and use filter
  panel to scale the display back to correct aspect ratio)
- Unexpanded A1200 also reads last fetched opcode word when accessing non-existing memory, similar
  to unexpanded A500. (more compatible and cycle-exact only)
- Last possible displayable line was incorrectly drawn in border color in some situations when short
  field mode was active.

Beta 17:

- Debugger breakpoints work again. (b14)
- Full CPUSHA/CPUSHL/CPUSHP disassembly implemented.
- Integer scale mode compatibility improved with programmed display modes.
- Integer scale mode changes Filter panel zoom slider range to -99 to 99 and is used to adjust integer
  scaling calculation. For example -10 means if next largest scaling factor is selected even if
  display height is 10% too big to fit normally. (This was implemented already but it didn't
  work properly)
- Fixed fill_line() top/bottom background line drawing buffer overflow in some programmed modes.
- Some programmed modes had single short background colored line in left horizontal blanking area.
- Command line (or icon doubleclick) loaded config didn't reset previously loaded config (default.uae,
  if it existed)
- Emulated more Fat Gary address regions that are unmapped (CIA is same as Gayle, upper 32k in
  clock space and Gary register space are unmapped, 0xdf0000-0xdf7fff is also unmapped)
- Emulate Fat Gary invalid address space access timeout if Gary timeout bit is set, first 50 timeouts
  are always logged. To prevent last moment stupid bugs or bug reports, delay is not yet enabled.

Beta 16:

- Borderblank blanked sprites incorrectly in some situations (b11, Roots AGA)
- SPRxDATx/SPRxPOS copper write/Denise internal sprite behavior should now fully match real hardware.
- Ancient (and recently non-working) Superfrog flashing intro bee hack removed, properly emulated now.
- gfx_filter_keep_autoscale_aspect and gfx_filter_keep_aspect config entry change was not detected
  when using using uae-configuration.
- Last used AVI codec was not restored from registry if ICGetState() returned zero size data block.

Beta 15:

- Finally bumped version to 2.8.0. This isn't small 2.7.0 update (Should have been done since b6 or so..)
- FPU register negative zero transformed to positive zero when it was written to or read from memory
  in extended FP format (FMOVE.X FPx,<ea> or FMOVE.X <ea>,FPx or FMOVEM). No one should care as usual.
- When loading FPU register from memory in extended format, normalize any "unnormal" zero.
  (non-zero exponent but zero mantissa part). Motorola FPUs do this automatically, x86 FPU
  does not seem to like them. (Another mostly Next specific update)
- Programmed mode autoresolution should now work with strange modes like highgfx.
- Only allow CPU mode changes between instructions, previously change sometimes happened mid-instruction
  (during instruction internal memory read/write) which wasn't safe.
- Small tweak to recent sprite update (Hybris)

Beta 14:

- FSINCOS second register supported in disassembler.
- FMOVEM and FMOVECR disassembler support. Disassembler should now support all FPU instructions.
- Added missing special case 68020+ instruction disassembler support: bit fields, MOVES.
- Disassembler output improved, most unsized instructions don't have .L size extension anymore.
- Action Replay 2/3 was incompatible with b8 cpu emulation changes.
- CPU mode (JIT/more compatible/cycle-exact) on the fly switching was unstable since b8.
- Mirror Expansion panel RTG scale options in Filter panel. (More options will be added in future)
- Removed some forced inlining that only increased size of executable and wasted CPU cache space.
- Added support for early 68040 revision that has slightly different FPU stack frames and version
  id. (Config file fpu_revision=0x40). Not much use in Amiga emulation but first 68040 based Next
  systems came with first revision 68040's and NextStep 2.0 unimplemented emulation code only
  supported first revision unimplemented stack frame type.
- FMOVEM predec/postinc mode bit emulation fixed again, now it really works correctly.
- Implemented (partial) 68040 FPU BUSY stack frame.
- Pre filters in RTG mode loaded incorrectly from config file.
- Implemented FPU exception state statefile support.
- b13 JIT FPU bug workaround replaced with fixed optimization (Peter Keunecke)
- Attempt to automatically select correct resolution (hires/shres) when programmed mode is active.
  Always active if resolution setting is hires or larger and doubling is enabled. No more programmed
  modes that are 2x wide or half width without manually changing resolution setting, note that currently
  "wrong" mode is visible at least 1 frame before mode changes.
- Arcadia game Aaargh supported.

Beta 13:

- Canceling video or audio codec selection dialog will disable audio or video recording.
  This has been broken for long time, it was impossible to record video only or audio only
  (except in wav mode).
- 64-bit build now also supports wintab tablet API.
- Fixed some slirp Windows specific 64-bit compilation issues.
- Fixed JIT + more compatible enabled emulated Amiga crash. (b9)
- If "always on top" option is enabled, GUI is also opened with "always on top" flag.
- gfx_linemode=none (no doubling) was loaded as doubled mode.
- Check and limit 2x software filter height value if size is larger than allocated buffer size,
  preventing display buffer overflow crash.
- Debugger now disassembles most FPU instructions correctly but some of them may look strange..
- Disassembler MULL and DIVL fully decoded.
- Support "INPUTDIMS" D3D shader variable. Used by some shaders.
- JIT FPU rare bug workaround, FPU constant optimization introduced in 1200b3 disabled.
  (Code looks correct, it works correctly except in some very rare situations, real cause may be
  some unknown JIT side-effect)

Beta 12:

- Config file writing created corrupted (and harmless) config file lines, most common being
  uaehf line which fortunately isn't important config line entry. (b11)
- BCHG/BCLR/BSET allowed PC-relative addressing modes, broken since the beginning. (from Hatari)
- If program read disk by polling DSKBYTR (not using DMA), index emulation was unstable.
- Switching bitplane DMA on few cycles (not yet confirmed, I assume range that makes sense is 1 to 3)
  cycles before DDFSTOP will also trigger ECS/AGA "passed plfstop" state change. (Death Trap)
- Full tablet emulation boot division by zero guru fix.
- Tablet.library emulation now works but at least dpaint5 does not seem to do anything with pressure
  data. It reads pressure tag contents but nothing seems to happen.

Beta 11:

- Borderblank + bordersprite caused border glitches in some situations.
- CDTV front panel buttons' default state after reset should be enabled, not disabled.
- Added new double options to non-lace modes. Not really useful, maybe be moved somewhere else later..
- 68040 MOVE16 write access error stack frame is now correct.
- Editing non-existing new style real harddrive config entry opened hardfile properties dialog.
- Separate filter options for native and RTG modes. Currently only following settings are RTG compatible:
  Direct3D shader filters (no software filter support and never will be), masks, overlays, scanlines.
- New automatic resolution option was unreliable in some situations.
- Do not detect modes with VTOTAL=350 or less as scandoubled to fix Super72 halved height.
- tablet.library emulation, totally untested, do not enable.
- After long field to short field change last line still showed old background color(s) if line had any
  background color changes before field mode was changed.
- Master floppy write protection config option was not loaded from config. (wrong config entry name..)
- Disk emulation multirevolution support was unstable, disk revolution data stream change was not always bit perfect.
- Added Super Card Pro (scp) image file support. (Don't ask me if images don't work, I didn't implement it originally)
- Added support for raw dumps from Softpres Capture Tool and KryoFlux using new capslib v0.5.

Yes, above two changes in same beta is only a strange coincidence. Note that both are raw dumps which
can't be confirmed easily, don't bother me if there are compatibility problems.

FPU improvements (Mostly low level stuff that only makes difference if unimplemented checkbox is not ticked, much
more important for Previous emulator, NextStep OS requires FPU and uses it heavily):

- 6888x any FPU instruction (except FSAVE/FRESTORE) causes null state to idle state transition but
  68040+ conditional FPU instructions won't affect null state.
- 68040 unimplemented FPU instruction emulation was broken, FSAVE exception frame was not emulated, 68040.library
  emulation code needs it for proper operation.
- 68040/060 FPU FMOVECR is now unimplemented instruction.
- 68040/060 unimplemented packed-decimal data type exception is now emulated.
- 68060 FMOVEM.X with dynamic list now causes unimplemented effective address exception.
- 68060 F<op>.X #imm,FPn and F<op>.P #imm,FPn now causes unimplemented effective address exception.
- 68060 FMOVEM.L #imm,<more than 1 control register> now causes unimplemented effective address exception.
- FMOVEM.X with dynamic list and -(An) and (An)+ effective address overrides static/dynamic post/pred state.
  (for example FMOVEM.X Dn,-(An) uses pre-decrement even if mode bits are set to dynamic post-increment)
- All FPU FPSR register (overflow, div by zero etc..) status bits emulated. (May not be fully reliable)
- 6888x Packed-Decimal Real k-factor support fully implemented. (May still have rounding bugs)

This should complete emulation all FPU features except arithmetic exceptions (that no one seems to use)

Beta 10:

- Programmed display mode positioning bug fixed, should fix remaining problems with clipped left or right edges.
- Switching between interlace PAL and interlace NTSC modes calculated wrong vertical line count.
- Some CPU emulation optimization, only modify linear memory address in getpc/setpc/incpc functions if mode
  is not prefetch/ce/mmu.
- Added slirp inbound port configuration, config file slirp_redir=<proto>:<port>:<internal port>:<internal ip>,
  multiple entries supported, internal ip part is optional.
- Added simple slirp inbound port configuration, config file slirp_ports=port1,port2,.. (TCP ports only,
  internal address is default 10.0.2.15, host port equals internal port)
- Added quick slirp inbound port selection to GUI, opens TCP ports 21, 22, 23 and 80. (Same as slirp_ports=21,22,23,80)
- Added missing slirp cleanup code from QEMU.
- 6888x Packed-Decimal Real negative k-factor values fully emulated (Previous confirmed, required by NeXTSTEP OS),
  positive non-zero values not emulated yet which needs Fortran "E" scientific notation format string that C does
  not directly support.
- First and last drawn scanlines were always detected incorrectly since few major versions ago, breaking vertical centering.
- Input device autoswitch by using analog directions now only work with X or Y axis, other directions may work
  differently and can cause accidental switches.
- Force recalculation of horiz and vert centering (if enabled) when screen mode is detected (guessed) as changed.
- Toggle input events (warp mode, mute etc..) now also support setting to on or off state without toggling.
  Input panel only, click on input event name to change mode
- Added audio/video recording input event, supports also new toggle/on/off modes. If recording is started using
  input event (not from GUI), number is appended to filename and it is increased each time recording is started.

SLiRP inbound ports note: all ports will be opened when network hardware is initialized, there is no way to know
when something actually starts listening for some port. This also means you won't get exactly same behavior as
"real" low level network emulation, mainly you won't ever get connection refused if port is open but not actually
listening on the Amiga side, connection opens and then closes immediately.

Beta 9:

- NCR emulation didn't work with SCSI IDs 4-6.
- NCR SCRIPTS MOVE command phase bit test mismatch returned wrong interrupt status. (NetBSD 1.x)
- Added partial hack to NCR emulation that "fixes" NetBSD harmless "Phase mismatch: REQ not asserted!" warnings.
- IDE emulation: use LBA48 calculations only if command is new LBA48 command (read/write ext).
  This could have caused unexplained disk error messages if device driver used both lba28 and lba48 commands
  and HDF was lba48 enabled (>=128G in size)
- maxmem command line parameter can now also be used to increase natmem limit (if host OS allows it)
- b5 interrupt update had another problem, CE modes lost interrupts in some situations when using UAE HD controller.
- Partition hardfile dostype was set to mostly random value with some CPU configs (b1).
- Disabled "smart centering" (tries to keep old centering parameters if it is "good enough"), it does not seem to
  work correctly anymore (probably worked only accidentally) and leaves normal WB screen modes non-centered. Will
  be debugged more if something else breaks, as usual..

Beta 8:

- 68000 CE/prefetch mode reads of non-existing memory should return correct data in all situations.
- Reading of write-only register will now write correct data to register. Data that CPU gets back
  still isn't 100% correct (which can be totally different than what was written to register).
- ROM image didn't load correctly if ROM image was in multiple parts (odd/even) and merged parent ROM was not found.
- NCR SCSI: SCSI commands that failed returned wrong status.
- uaehf.device SCSI Verify (10) implemented. (Does not verify anything)
- A590/A2091 and A4091 options moved to Expansions panel, they are expansions, not built-in
  features and not part of internal hardware config (advanced chipset). CDTV SCSI is also technically
  built-in because driver and DMAC are located on mainboard, CDTV adapter only contains WD SCSI chip.
- A590/A2091 linear ROM mapping was incorrect (Any CPU mode without "more compatible" fetched bad opcode data).
  Note that A590/A2091 can't be JIT compatible.
- Added "ROM disabled" option to A590/A2091 ROM select menu. (ROM disable jumper is for 1.2 compatibility)
- It was possible to set and get unused DMACON bits 11 and 12.
- A4091 was not compatible with Z3 Fast.
- Hardcoded A4091 autoconfig data was replaced with data from ROM image.
- Border blank didn't override AGA border sprites (broke in some previous beta).
- 68020/68030 SR M-bit should be cleared (if set) before executing interrupt routine.
- 68030 MMU FPU FMOVEM instruction continuation state recovery after bus fault was incomplete.
- Generate bus error when accessing invalid memory if A3000/A4000 Fat Gary based system, MMU emulation active
  and Gary TOENB register bit is set.
- Joystick/joypad can be used to control light pen cursor. (Was mouse only previously)
- Some kind of physical mouse as digital/analog joystick/joypad support. Not that good but perhaps better
  than nothing.
- Removed useless address space gaps between Z3 boards.
- CD image CDA player may have gotten confused in some situations if new track was requested while other
  track was still playing.
- 6888x Packed-Decimal Real with Dynamic k-Factor data type was detected as invalid instruction. Allowed
  now but k-Factor is ignored (Packed-Decimal Real with Static k-Factor was also ignored) but it isn't that
  important, practically no one uses packed decimal data types.
- Some CPU and FPU emulation changes to make it more usable with other emulators (I am working with
  author of Next emulator Previous to get 68030 based Next computer booting)

Beta 7:

- A4091 and A4000T NCR53C710 SCSI emulation works now! Now all built-in devices in all supported setups
  are emulated. I guess last interesting big missing Commodore designed part is CD32 MPEG module.
- Added A4000T and A4091 to ROM scanner results window.
- Added A590/A2091 and A4091 boot ROM selection to GUI, if empty, uses old automatic selection.
- A590/A2091 + Fast RAM: Fast RAM is always first, A590/A2091 second, then other boards (if enabled),
  now matches real A590/A2091 with fast ram installed.
- HID RawInput had wrong access mode in device open call, failed if other users of same device
  used different access modes.
- 68EC020 "opcode x has faulty prefetch" triggered too easily when program did stupid things.
  (It is only a debug feature, it will be gone someday)
- AGA high fetch mode screens with ddfstop near the end of right border were completely blank.
- DDFSTRT limit should go away if programmed mode or superhires (broke in some previous beta).
- Reset horizontal display window if it is still active at the end of scanline (even if it is
  larger than last hpos value) if programmed mode or superhires. Perhaps this is wrong, perhaps not,
  not bothered to test yet.. (Background "leak" in right edge in some wide programmed mode screens)
- Accept uaehf.device open call even if ioreq->io.Message.mn_Length is invalid or too small.
- Renamed some protection dongle names in GUI.

Beta 6:

- Display emulation last horizontal position (plfright) was not correctly updated, caused all kinds of
  bad side-effects, including non-immediate/non-ce blitter to take seconds to finish.

Beta 5:

- "Strange right edge overscan display shift" adjusted, in some situations it was visible when
  it shouldn't have been. Looks also correct in NTSC mode now (Sawtooth pattern caused by alternating
  line lengths)
- OCS Agnus requires one cycle between sprite DMA and bitplane DMA, ECS Agnus can have both cycles
  back to back. This means OCS Agnus will only fetch first sprite word (practically making sprite useless)
  where ECS Agnus can fetch both.
- Rarely during heavy interrupt activity in cycle-exact mode some delayed interrupt register set or clear
  operation may have been lost causing possible spurious interrupt.
- lea (d8,An,Xn) prefetch is last operation, not idle cycle.
- 68020 CE mode CAS instruction prefetch was broken.
- When UAE boot ROM is enabled, add fake autoconfig board (configdev) that has same board address and
  size as boot ROM. Allows MMU utilities (mmu libraries, enforcer etc..) to mark boot ROM as valid
  address space without extra command line parameters.
- Partially rewritten horizontal Agnus bitplane state machine. Can (as usual) break something..
- When BPLCON1 matches, only copy enabled planes to shift registers. (Back In 90 / Samplers)
- Power led didn't turn off after soft reset.
- Added sprite-only linetoscr routines, bordersprites and HAM do not mix well. (Satyanarayanan / Scoopex)
- AGA and 64-bit fetch modes: last 16 or so pixels were not flushed to display, depending on BPLCON1 value.
  (Satyanarayanan / Scoopex)
- New (still WIP) modern native library interface merged from FS-UAE.
- Added LSI 53C895A SCSI chip emulation from QEMU. Lots of changes to make it 53C710 compatible
  (53C720 and later have multiple registers changes but SCRIPTS code is fortunately backwards compatible)
  A4091 and A4000T NCR driver now "work", chip init works, returns timeout error (no device connected) when
  it tries to detect SCSI devices. Do not connect any drives, it does not work yet.
- pdk compressed (or dsq) files always unpacked to Amiga DD floppy size.
- Keyboard leds lost sync in some situations.

Beta 4:

- More than one horizontal DDFSTRT-DDFSTOP window is now accurately emulated without requiring any hacks.
  Random garbage between display windows is also gone. (Subtle Shades / Nuance)
- Removed some more obsolete variables from display emulation.
- Saigon Megademo fix got accidentally broken in b2.
- 260b17 "strange right edge overscan display shift" optional hack removed, new delay/shift register
  behavior creates identical output automatically simply by reseting delay counter (hpos counter) at the
  end of scanline. NOTE: Some programs with large overscan can now have small graphics corruption in right
  border (gap in graphics), it is not a bug, it is accurate emulation. (For example Back in Bizness / 2000AD)
- Some OCS only programs may now have graphics corruption in ECS mode (if bitplane DMA crosses scanlines),
  this is also not a bug, real hardware would show even worse corruption. Someday this will be more accurately emulated.
- Agnus vpos counter increase delayed by 1 cycle. Fixes Hit the Road / Flash Production "Floffy2" part.
- Keyboard leds as power/floppy/etc indicators are now properly restored back to original state when
  keyboard input is not active, changing led config on the fly also works now.
- Exiting GUI with close button or ALT-F4 didn't save GUI position.

Beta 3:

- Sprites near left border had strange corruption (b1)
- "toscr_nbits > 16" error in some situations (b1)
- "Modified interrupt delays" b1 change was bad, sometimes interrupt request was kept active
  causing spurious interrupts (which caused crashes).
- New autoresolution selection was not loaded correctly from config file.
- Blitter final D write don't increase "nasty" count. (Which makes sense, blit is already
  finished, blitbusy bit was cleared 2 cycles ago)
- Removed most BPLxDAT related hacks, they become obsolete after b2 BPLCON1 update (it also changed
  how data gets moved to shift registers). May introduce new glitches and if it does, it needs
  correct emulation updates, not hacks.

Beta 2:

- BPLCON1 mid scan line modifications now should match real hardware 100%.
  This was very big change, old emulation was functionally close enough but very far from real
  hardware behavior. Old code couldn't emulate some side-effects correctly.

- Partial/full scanline based mode ("SPEEDUP") is again used more regularly, "is it safe to use" check
  got partially broken during 2.7.0 betas. It is also more optimal in AGA 32/64-bit fetch modes.
- AGA border sprite in right border and 2x or 4x horizontal sprite pixels (vs bitplane pixels): sprite's
  rightmost pixel(s) were missing.
- Superhires and top or bottom border sprite: graphics garbage was seen in border area, memory
  corruption was also possible in some situations.
- Magic mouse + mousehack mode now always stops keyboard input when mouse is outside of emulation
  window, even if window still has focus.
- 68020/030 CAAR register preserves also all reserved bits.
- Disable JIT if config has 68000/010 CPU and non-zero JIT cache size.
- 68020 CE broke interrupt state fetch, interrupt didn't clear if write to INTREQ was immediately
  followed by RTE. (b1)
- Does not anymore require SSE2 capable CPU (b1 did)

Beta 1:

Lots of small blitter, copper and CPU timing adjustments. (Thanks to amilo3438 for collecting huge amounts
of demo test cases). Lots of logic analyzer tests done during last few weeks.

Custom chipset and 68000 CPU should be now 100% cycle-exact!
Note that it does not yet means glitch free programs:

- Blitter behavior when register modified while active is still mostly unknown.
- Bitplane delays (BPLCON1) are not fully cycle-exact (Psycho Medium IV / Turnips does horizontal
  scaling effect differently than any other demo I have seen)
- Reading write-only custom registers is not fully known.

Huge changelog, mostly technical stuff.

- Setting blitter channel mode to D only from D + any other channel(s) combination when blitter was active
  caused blitter emulation to repeat D write until BLTSIZE was written again. (Sinemania / Latex)
- Blitter was not fully synced with bitplane DMA. When CPU had nothing to do (waiting for memory fetch or had
  long internal operation executing), blitter and bitplane DMA was emulated in separate passes. Optimization
  which is not that good idea in cycle-exact modes. Fixes glitches in most demos with vertical "copper" bars.
- "Blitter: D-channel without nothing to do?" can happen if program changes channel mode on the fly from D to AD,
  do not cancel blit in this situation. (Just Another Compilation / Magnetic Fields)
- Blitter's last idle cycle before final D write does not require free bus cycle. Exception: it needs to be
  free if it is extra cycle added in fill mode. (Lets Rave / Profecy, CrazyWorld / Dioxide)
- D-only blit didn't set blitter finished state early enough. Blitter finished bit is set, in normal mode,
  after second to last D write is done, not when blitter pipeline is empty and final D is written. (Bob demo / D-Mob)
- Blitter line mode timing updates, blit finished bit gets set immediately when last D write has been done
  but copper waiting for blitter needs 4 extra cycles and they don't need to be free cycles.
  I assume these 4 extra cycles are same as non-line mode 2 extra cycles + line mode forcing blitter to
  use only every other cycle. (Matches logic analyzer results but this is not easy to 100% confirm)
- Writing to blitter pointer register 1 cycle before same blitter channel is used for DMA fetch: written
  value is ignored, pointer does not change. Cycle exact mode only.
  (Rampage / TEK music corruption in Credits and Acknowledgements part, corrupted when landscape part started)
- Blitter not in nasty mode: idle cycles (that are usable by CPU) incorrectly counted as "CPU waits for bus".
- Blit without D-channel active in cycle-exact mode: final cycle still used D channel. (Oops..)

- When copper was stopped by writing to both COPxJMP registers while DMA was also disabled, it incorrectly was
  set to strobed state if yet another COPxJMP access was done with DMA still being disabled.
- Emulated quite weird copper feature, if second cycle of copjmp strobe cycle sequence would cross scanlines
  (positioned immediately after first strobe/refresh slot), it will disappear! (Psycho Medium 4 / Turnips)

- New undocumented feature: bitplane DMA and sprite DMA is inhibited during last line of field.
  (A500 logic analyzer confirmed, no difference between OCS or ECS)
- DDFSTOP > maxhpos causing full horizontal overscan DMA (ECS only) improved. (Child's Play 1 / Silicon Ltd)
- "SWIV" bitplane feature was line based, now it is cycle-based. (No one has enabled or disabled it
  mid-scanline, but at least emulation is more compatible now)
- If number of bitplanes decreases mid scanline, possible remaining data (BPLCON1 non-zero) in disabled planes'
  shift registers must be shifted out. (Party Report / Escape & Outlaws)
- Optimized "SPEEDUP" bitplane emulation didn't copy last fetched data to BPLxDAT storage variable, causing
  random glitches in other parts of display if program changed number of planes after DDFSTRT had matched.
  (Plasma Explosion / Timex)
- Bitplane delay (BPLCON1) mid-scanline timing should be now 100% exact. (Psycho Medium IV / Turnips)
- Sprite update in 270b13 was wrong, should work better now, it broke Elfmania scoreboard.
- Modified interrupt delays, handle situation where (broken) program starts blitter with INTREQ already
  set and blit finishes before next instruction clears it. (Absolute Inebriation / VD "big double glenz" part)

- Reset color registers only after hardware reset.
- It seems ECS Denise color palette is full white after power up but full black if OCS. (Small Intro / TWW)
- Reading byte from CIA address that has valid CIA A/B select bit but bit 0 inverted (Active 8 bits of
  16-bit data bus not driven by CIAs) didn't read prefetch buffer contents in 68000 CE/prefetch mode.
  (Copper Bandwagon / New Age)
- 68020 CE mode 6888x exceptions didn't skip instruction prefetch, broke for example KS 1.3 FPU detection.
- 68020 CE last prefetch word load after branch or exception used incorrect (too fast) non-ce fetch call.

- MSVC 2013 compiled, switched to fastcall calling convention.
- Added optional gameports panel setting: don't disable original key if it is mapped to keyboard joystick
  emulation. Config file only, joyportXkeyboardoverride=false (X=port number).
- Added "delay <fields>" command to custom event strings. (for example "kbr 'a'" "delay 50" "kbr 'b'" will
  send key 'a', wait 1 second (in PAL mode), send key 'b'. Multiple delayed custom events can be active at
  the same time.
- Accept Draco Casablanca partition table identifier (CDSK instead of usual RDSK).
- 256k rom image inserted in floppy drive: mount as A1000 KICK disk, 512k rom image mounts as A3000
  SuperKickstart disk (with 256k rom area empty and no bonus code included = useless for A3000 emulation)
- Resolution autoswitch was not compatible with new interlace scanline modes.
- Resolution autoswitch improved, instead of being boolean (on or off), now it can be configured for
  percentage of resolution used, for example if value is about 10 or larger, and game has tiny hires scoreboard
  and the rest is lores: lores will be selected. Value=1 emulates old behavior, use highest resolution if
  there is even single line of hires or shres mode.
- Some Game Ports panel remap operations didn't work correctly if Input panel was set to "Configuration #1-#3"
- Automatically focus debugger window when debugger activates.
- Capture mouse after exiting debugger if it was captured when debugger was activated.
- Do not ask for extended ADF if program writes to disk using standard dos format and 1 or more sectors
  have non-zero header data, add message to log and ignore sector header data. (Thrill Kill disk writing)
- Standard partition HDF zero or -1 dostype: force DOS\0.
- <= 512M partition hardfiles had IDE-like geometry if it didn't have OFS or FFS filesystem.
- Always mount all non-CDROM SCSI devices if uaescsi.device is enabled and SCSI mode is SPTI.
- More readable crash dump file naming, 64-build dump file support added.
- Mouse driver mode + magic mouse lost mouse buttons when WinUAE window focus was lost.
- RTG mode + Aspect ratio not default or automatic + Scale if smaller set: screen was very narrow.
- DMA debugger blitter color changed, now normal blit, fill blit and line blits are different enough.

- Arcadia support synced with MAME 0.152 (ar_xxxx.zip rom images), missing bios roms and games added.
  Old rom files not supported. Note that Arcadia is NTSC, new bios 4.00 hangs in PAL mode. ROM rescan
  required to detect new files.

Some 68000 emulation cycle usage fixes and logic analyzer tests.

- JSR and JMP (d8,PC,Xn) or (d8,An,Xn) addressing modes did one unneeded prefetch.
- MOVE from SR was too fast if destination was memory (68000 does memory write twice for some reason)
- SR/CCR modification instructions always do full prefetch fill.
- (d8,PC,Xn) and (d8,An,Xn) addressing modes have idle cycle before first prefetch, not after.
- CMP.X #imm,EA where EA = -(a0) or (d8,An,Xn) didn't have extra idle cycle.
- Logic analyzer rechecked and updated exception initialization times. (Some were 2 cycles too fast)
- DIVU/DIVS cycle count algorithm had prefetch included: division operations were always 4 cycles too slow.


2.7.0

- If Picasso IV flash image is not found, show also link where to download it from.

Beta 16: (RC1)

- Z3 RTG base address was not adjusted if Processor Slot RAM was 128M.
- Writing to high BPL pointer when next cycle does same bitplane number DMA fetch: old address is
  used for fetch. (Powertrax / The Light Circle graphics glitch)
- Added workaround for Windows 8.1 bug, after SetCursorPos() call WM_MOUSEMOVE returns new coordinate
  as expected, then comes single message with old coordinate (this shouldn't happen) before it works
  correctly again. This fixes "Windows mouse" jumping ~50 pixels while moving the mouse. Rawinput HID
  mouse is not affected by this bug. (No, KB2908279 does not fix it, I guess working fix will be released someday)
- "Install mouse driver" + RTG mode has been unusable since 2600b1.
- Re-enabled "CIA TOD bug" by default but only in A500-like modes.
- Built-in HRTMon updated to 2.35
- Built-in AROS ROM updated. Added memory hack, bootup structures are allocated from hidden memory pool
  (located at 0xa80000-0xb80000, automatically enabled if built-in AROS rom is in use), when AROS starts
  booting from disk or HD, hidden pool is marked as full and all following allocations come from normal RAM.
  Now even 512k chip only config will boot and work with AROS rom replacement. Hack only used if CPU has 24-bit
  address bus. (68000/68010/68EC020).

Beta 15:

- Removing directory harddrives on the fly crashed in some situations.
- Interlace with black lines ("fields+") didn't always work correctly.
- Only allow GUI mininize button if emulation has not yet been started, minimizing GUI when emulation window
  is open only causes problems..
- Copper debugger (od) shows when blit waiting WAIT ends and also stores copper instruction words when
  copper fetched them, shows '!' if words have changed since copper fetched them. (Previously it was possible
  to see copper list in state that makes no sense if program modified it after copper executed it)
- Add 16M to Z3 start address if Processor slot RAM is set to 128M, prevents KS RAM detection to confuse Z3
  board as being part of Processor Slot RAM.
- Cirrus Logic graphics board enabled but inactive and refresh set to Chipset slowed down emulation.
- Sprite stuck in non-DMA mode was not correctly restored from statefile. (Has never worked previously)
- Adjusted programmed refresh rate blanking start and end position calculations.

Beta 14:

- GUI didn't work in fullscreen modes.
- Input panel lost all keyboard events (not even Test button accepted any key presses) in some situations,
  already non-working config files can't be fixed. Older bug.
- New frames interlace mode (without blacklines) now only redraws changed lines.
- 68040 without FPU: unimplemented FPU exception used wrong exception vector.
- 68020+ DIVL div-by-zero exception in cycle-exact mode didn't skip prefetch phase.
- Do not set lightpen triggered state when BPLCON0 lightpen bit is set unless lightpen is also configured
  in gameports or input panel.
- Fixed crash if disabled keyboard had (old) gameport mappings.
- Autoscale size change comparison used wrong value (width, not height) causing slow down, forced config
  change check every frame.
- Added configurable directory filesystem file/directory name length limit, currently config file only,
  filesys_max_name_length=x, files and dirs with longer names are not seen in Amiga-side (directory operations only)
- Really fixed sound sync timing issue, partly introduced in b1 and b13.

Beta 13:

- Standard partition hardfile OFS filesystem check was broken (2.6.1)
- Adjusted sprite xpos == hpos check. (Shed Tears / Ozone scroller)
- 64-bit build didn't load portaudio dll.
- GUI window minimize button worked strangely when emulation window was open.
- Added new interlace emulation modes, first new is same as old one but display is updated every field
  (Old doubling updated every frame) and another that does same and also blanks every other line.
- Added separate non-laced and lace doubling modes to GUI. (Better labels needed, but there is no space)
- Sound timing calculation wasn't updated to match new long/short field/interlace display emulation timing (b1).

Beta 12:

- AROS rom memory mapping fixed (b1).
- RTG mode video recording image size was accidentally restricted to native chipset size.
- Ignore VPOSW writes if it would move vertical position backwards or if vpos is changed during vertical
  blanking and new value is also inside vblank period. (Prevents strange behavior if program tries to
  do weird things)
- Added minimize button to GUI window.
- 68000 CE ADDA.x/SUBA.x Rn,An was 2 cycles too fast.
- DIVS/DIVU prefetch is after division operation, not before like with MULS/MULU.
- Adjusted data returned when accessing non-existing memory.
- New Wix based installer test version included. Remove old installation first.

Beta 11:

- 68000/010 CPU core merge accidentally removed 68000 CLR to memory and Scc to memory dummy read
  -modify-write behavior.
- Sometimes after autoswitch (unconfigured mouse left button press) mouse was configured correctly
  but mouse input was kept disabled.
- Using stick/dpad to autoswitch now requires move, release, move inside 0.5s window to prevent
  accidental switches.
- Some more autoswitch bugs fixed.
- Switching bitplane DMA on just before DDFSTRT handling improved. (Sargon Megademo "Shir Khan" part)
- 68030 + more compatible without cycle-exact was unstable.
- Flush 68020/030 caches and refill prefetch buffers when switching CPU modes (cycle-exact/more compatible)
  on the fly.
- 68020 cycle-exact improvements.
- Bitplane graphics was horizontally shifted if program switched from lores to hires less than 4 cycles
  before bitplane DMA starts. (Chipset emulation was correct but drawing code saw invalid lores to hires
  switch)
- Stupid code fixed in CD image audio code that coud cause random crashes.
- CD image audio start was delayed if audio was compressed (zip/mp3/flac/whatever) and start position
  was at the very end of previous track.

Beta 10:

- B8 Blerkenwiegel workaround caused buffer overflows in some situations. Fix improved.
- MoreNewStuffy fix (231b11) was not complete, non-modulo bitplane DMA fetches work
  differently than modulo adding DMA fetches. (Alpha and Omega / PMC)
- Also above behavior seems to only happen with first plane fetch. (New and Better Routines / Cult)
  This needs more testing, someday.. 
- '?' disk info button now opens normal dialog window, disk label also included (if dos disk) and
  type of bootblock (1.x standard, 2.x+ standard, custom)
- When loading config that has 2 identical game controllers configured in both ports and only one
  controller is connected, connected controller was inserted in both ports.
- GamePorts panel port change behavior improved, if new device is already inserted in other port,
  device in other port is now always automatically changed, not the one you just changed.
- When clicking mouse that is not inserted in either Amiga port and host system has only one mouse
  connected, "Windows mouse" is inserted, not HID mouse.
- 68020 more compatible without cycle-exact works again and also uses new 68020 CE prefetch method.
- 68010 is now supported in more compatible and cycle-exact modes. New instructions supported and
  new stack frames emulated but timing is same as 68000, 68010 special timing improvements and loop
  mode is not emulated. At least not yet.
- 68010 emulation used some 68020+ only exception stack frames.
- FPU emulator now properly uses prefetch buffer emulation if more compatible or cycle-exact is
  enabled. Emulated program crashed in older versions with some FPU instructions.
- On the fly switching from fastest possible to prefetch ("more compatible") or CE didn't fill
  prefetch buffers and usually caused emulated program to crash.
- Added "Log window" checkbox to Paths panel, easier non-command line method to open log window.
- On the fly change of A1000 Agnus or No-EHB Denise Advanced chipset didn't do anything.
- A1000 Agnus and vertical bitplane start (DIWSTRT) of zero: nothing happens, bitplanes are
  only enabled if it is 1 or larger.

Beta 9:

NOTE: 68020 CE mode should be usable again.

- Added CIA tod bug option to Advanced chipset. Demo The end / Trilobit running under
  KS 1.3 has corruption in "photos" part if tod alarm bug is not emulated. KS 1.3 + real A500
  does not have corruption. (I don't understand what is going on, some programs require this bug,
  some will hang if it is emulated. There has to be some unknown variable.)
- Writing to DIWSTOP during mid scanline and new value matches current vertical line:
  bitplane DMA fetches stop. Fixes Demo Starflight / Phenomena, OCS only.
  Interestingly ECS DMA fetches restart when DDFSTOP matches, causing scroller to jump horizontally.
- Writing to BPLxMOD exactly one cycle before bitplane fetch that also adds modulos
  uses old modulo value. (Copper Slave / Ram Jam)
- Mouse was uncaptured when switching from non-fullwindow to fullwindow mode.
- b8 hires unaligned check removed, it was wrong, logic analyzer confirmed.
- CMPA idle cycle was 2 cycles too slow in 68000 CE mode.
- Tape read command returned size of read request, not actual length which may be smaller than request size.
- OCS/ECS "7-planes" feature got broken in b8.
- HAM mode double pass display emulation's first pass didn't reset colors back to original before
  second pass. (Animotion / Phenomena)
- New memwatchpoint code didn't work with CIA registers.
- Log message if bitplane DMA ends at 0xe2 (can happen if start position is unaligned enough), this causes
  odd looking corruption on real hardware. (each scanline has random looking few pixels shift). Previously
  only DMA that ended at the start of next scanline were logged.
- Sprite vertical start == sprite DMA first line won't enable sprites. (Ultrademo #1 / The Link)
- If windowed mode was reset (for example RTG to custom chipset mode change) and mouse was not captured
  but window had focus: input got disabled, extra mouse click was required to enable input.
- Copper cycles were emulated too early before bitplane DMA decisions, copper might have used
  cycle reserved for bitplane DMA in some situations.
- Added "?" buttons to floppy GUIs. Current implementation is very lazy, few lines of information,
  boot block contents and it opens in default text editor.
- Limit VPOSW refresh rate display size changes to sane values, min display size is 256 lines and max
  is not allowed outside PAL size. Reduces flickering if program does something really weird or stupid
  with VPOSW.

Second 68EC020 cycle-exact emulation rewrite. Timing may not be much better but cycle usage emulation
should be much more closer to real hardware. (This needs logic analyzer check but I don't have
all required hardware yet)

Lots of work left to do but at least it should not be any worse than old code and it also should be
much more accurate now when code has small loops (for example stupid CPU delays).

If there are no demos or games that break or run really badly compared to 2.6.1, this is not anymore
showstopper for 2.7.0 release.

NOTE: 68030 can queue data memory accesses, this is not yet emulated.

Beta 8:

NOTE: Still no 68020/030 CE mode changes. Do not use.

- Added CD32 MPEG ROM 40.22 (part number 391777-01) to ROM scanner.
- GUI 1x/2x/4x/custom CPU speed setting showed incorrect selection (b7)
- Added "I am Windows 8.1 compatible" manifest entry.
- Workaround for Blerkenwiegel/Scoopex breakage (261b1). May cause side-effects.
- 68000 mode "CPU trace" state file restore errors should be gone (270b4)
- 260b15 sprite update off-by-one fix. (Missing vertical sprite line in Prurient/Rebels and others)
- Enabling hires bitplanes (by writing to BPLCON0 or enabling DMA) during first 4 hires
  fetch units didn't wait for next complete fetch unit block (should have skipped next 4
  "unaligned" hires fetch units) causing shifted graphics. Partially fixes RAF Megademo
  single line of shifted scroller in vector part.
- Short horizontal line of incorrect graphics was visible in some very rare situations,
  internal buffer was not correctly cleared. (SillyScroller / Phenomena)
- ATAPI MODE SENSE (10) returned too much data if request size was small enough.
- Return INVALID COMMAND error if ATAPI and command was MODE SENSE (6). ATAPI only supports
  10 byte variant of MODE SENSE.
- Added SEEK(6) and SEEK(10) commands to SCSI CD emulation.
- Some decompression formats (at least lha) were not compatible with file type detection.
  (for example lha containing executable didn't mount as a floppy image)
- BTST Dn,#data was accidentally marked as invalid addressing mode in b7.
- Power supply TOD counting accuracy was not that good in earlier update.
- 8-bit bmp screenshots were broken (Only created when capturing 8-bit RTG mode)
- Ignore window size changes if emulation window is minimized. Readjust size (if needed) when unminimized.
- Picasso IV flifi/VGA output enable logic tweak (Linux Cirrus Logic console)

Beta 7: READ NOTE BELOW BEFORE USING!

- SCSI UNIT ATTENTION/MEDIA MAY HAVE CHANGED clears when TEST UNIT READY is executed, not
  when UA status is read by using REQUEST SENSE. Fixes ATAPI CD disk change issues with
  some AOS ATAPI drivers.
- Accessing real CD (or CD emulator) in non-SPTI mode returned read errors depending on what
  kind of imaginary geometry IOCTL_CDROM_GET_DRIVE_GEOMETRY returned.
- Memory bank change (reset) removed new memwatch debugger watchpoints.
- Built-in lzx decompressor didn't always decompress last byte of file correctly...
- b4 drive spinup update change: also don't enumerate drives if new config entry is found but
  drive path fails to open and returns "not found" error (for example USB card reader not connected)
- When switching from RTG to native fullscreen or vice versa, re-open fullscreen mode if number
  of backbuffers, selected monitor, refreshrate or vsync mode is different.
- New adf or hdf path was not converted to relative in relative path mode.
- Added VID 0x79d, PID 0x0201 ("USB  ADAPTOR") analog joystick to USB adapter to rawinput blacklist.
- "Error log" button becomes visible in bottom part of GUI if any kind of config error was detected
  or config required fixing, for example directory or harddrive failed to open, attempting to enable
  Z3 fast with 24-bit address space CPU etc. (Currently many messages can be confusing and not all
  important messages are enabled)
- Tape drive LOAD/UNLOAD SCSI command fix, error message during Amix 2.1 retension tape command.
- Picasso IV in Z2 mode + Z2 Fast RAM enabled used incorrect internal memory mapping
  (missing graphics etc..)
- Only call D3D SetMaximumFrameLatency() when buffer flipping mode is immediate. Vsync waited flipping
  caused major slowdown if emulation created frames faster than current display refresh rate.
- Increased "CPU slot" Max RAM size from 64M to 128M.

- Removed 68040+ "cycle-exact" support. It was useless and does not fit in new 68020/030 ce handling
  without creating new CPU emulation core.
- Added 68020 and 68030 instruction cache dump command to debugger ("rc"). * = data valid.
- JIT + more compatible problem fixed.

!IMPORTANT NOTE!
Following is work in progress. Do not use 68020/030 cycle-exact modes. Timing is broken. Other modes work fine.

- Added 68030 manual head/tail/clocks timing values to table68k, gencpu automatically calculates
  final values for 68020 (=68030 + 1 wait state added) and 68030 cores using table68k values and
  EA timing formulas. Only includes 680x0 common instruction so far, 68020+ only instructions and
  addressing modes and rarely used instructions do not have cycle-exact timing yet.


Beta 6:

- Enabled Cirrus Logic RTG VRAM size configuration. CL VRAM memory bank setups used by VRAM size
  detection code is now (partially) emulated, should be enough to support CGX and Picasso96.
- Fixed crash that usually happened when system was reset and if it caused immediate PAL/NTSC
  mode change. (2.5 or 2.6 bug)
- Removed some dead JIT code, "afterPic" and "indirectKS" comptrustxxx parameters that haven't been
  used for ages.
- JIT MOVEM used direct mode if memory was direct capable but direct mode was disabled.
- Picasso IV VRAM is now always (*) in JIT indirect access mode. It can't be made JIT Direct compatible
  due to multiple banks. Also P4 Z2 CGX 15/16 bit mode has graphics corruption if JIT Direct is enabled
  because of JIT issue that can't be fixed. If same code is used to copy data from RAM and it is later
  used to copy data from VRAM, there is no way for JIT to detect that it should recompile it and
  use indirect mode instead of (incorrect for this bank) JIT direct mode. Other boards are very
  simple and can support JIT direct VRAM access.
- *) P4 Z3 mode includes now a hack that makes it JIT direct compatible. At least it seems to work..
- Cirrus emulation large basic copy blits are now 4x faster. (P96Speed horiz/vert scroll tests are not
  extremely slow anymore)

Beta 5:

- Spectrum 28/24 official name is EGS-28/24 Spectrum.
- Stupid bug in b4 CD image update. Some CD32 games refused to play first audio track.
- Some CUE images with both INDEX0 and INDEX1 and audio tracks in separate files may have played 1-2
  seconds of previous track when starting CD audio.
- Added partial support for non-direct JIT only memory mapping support that allows Z3 boards in their
  original non-hacked OS chosen base address (0x40000000-> vs 0x10000000->). Not available yet.
- More old 68020 CE state files load now but note that it is impossible to support all of them with new
  emulation code.
- Some 68020 CE mode timing tweaks.
- Emulate Picasso IV byteswapped VRAM bank (5446 CL chip feature) Fixes CGX 15/16 bit modes.
- Cirrus Logic blitter emulation bug fixed (Inversion + Color expansion + Transparency combination uses
  foreground color, there is no background vs foreground swapping like in all other inverted modes)
  Fixes graphics glitches in Picasso IV 24-bit Picasso96 modes.

Beta 4:

- Picasso IV RTG board emulation implemented. Very important information:
  - Requires full 128k raw flash rom image, available from
    http://www.sophisticated-development.de/ (PIV_FlashImageXX), renamed as picasso_iv_flash.rom
  - Does not use rom scanner system, image file must be located in Paths panel configured rom path.
  - Very big thanks to Tobias Seiler for answering questions about board's hardware implementation.
  - Do not bother Tobias (or anyone else) who does not develop UAE with Picasso IV emulation problems.
  - Only implements basic functionality, flifi or other extra stuff is not emulated.
  - Real Picasso IV uses flifi when displaying Amiga modes, emulation ignores it and simply displays
    Amiga modes normally.
  - Picasso96 and CGX4 confirmed working.

- Piccolo autoconfig size change reverted, problem appears to be caused by EGS 7.4 driver bug.
- >1024 pixel tall interlace mode fix.
- CL vertical blank handling fixed, it caused spurious interrupts in some situations.
- uaegfx driver was enabled if on-disk version was loaded and hardware board emulation was configured.

- CIA TOD counting delay emulated. Time between TICK input going active and TOD increasing has
  14-16 E-clock cycle delay. Logic analyzer confirmed using ALARM interrupt.
- Disabled CIA TOD bug emulation. It makes no sense, I have AGA program that refuses to work on
  my real A1200 (Gets unexpected interrupt and crashes) but there is no way it didn't work 20
  or so years ago..

- Workaround for hard drive enumeration waking up sleeping drives if one or more harddrives are
  mounted in configuration and emulation is started. To enable it, all configured real harddrives
  (or memory cards) need to be re-configured using GUI and config saved to create new config field
  required to find the drive without enumeration. Falls back to full enumeration if drive's "friendly"
  name does not match config saved value or new config entry is missing.
- Simplified CIA interrupt handling, removed some old hack which appears to be obsolete. I hope.
- Added CPU interrupt level information to visual DMA debugger. Each scanline has extra pixel on left side
  of DMA usage image that shows scanline's highest CPU interrupt level.

- Rewritten 68020/030 cycle-exact emulation core. Emulates 68020 simultaneous bus controller and
  instruction execution more accurately. It still runs too fast, but at least it is less fast than
  previously, still lots of tweaking to do but at least now it should be possible to match real 68020
  more closely than what was possible with old code.
- 68020/030 CPU emulation updates, prefetch emulation (also used in cycle-exact mode) should be much
  more compatible, "more compatible" checked without cycle-exact now also includes instruction cache emulation.
- 68030+ more compatible (prefetch) and 68040+ "cycle-exact" modes are broken temporarily. Do not use.
- Restoring old 68020 cycle-exact saved state files may show dialog complaining about mismatched state
  information and restore may also fail. It is normal, will be fixed later.
- Cycle-exact CPU accesses to AGA custom registers used 32-bit accesses, not 16-bit.
- b3 .cue decoding update broke some variants, fixed.
- Added workaround for Windows returning returning invalid (too small) value when asking for
  ACM_METRIC_MAX_SIZE_FORMAT. (Output panel crashing)

Beta 3:

- Disable Z3 Cirrus Logic RTG board if 24-bit address space.
- Hard reset and CL board enabled crashed.
- Added Chipset/RTG screen toggle input event ("Toggle chipset/RTG screen"). Only works when RTG mode is active,
  supports both Cirrus Logic emulation and uaegfx. NOTE: temporarily also hardwired to END + F9.
- VGA planar modes (<=16 colors) work now.
- VGA text modes confirmed working (NetBSD and OpenBSD enable VGA console automatically if supported board detected)
- Piccolo appears to have 4M address space (VRAM alias). Fixes EGS 7.4 graphics bugs and missing mouse cursor.
- >1024 pixel tall modes work now correctly, including cursor vertical positioning (see below).
- GD542x documentation says hardware cursor can't be used if "Multiply Vertical Registers by Two" bit is set
  (allows >1024 pixel tall modes, wasn't emulated in original qemu code) unless chip is GD5429 or later. But
  CGX4 does use it with boards that only had GD5426 or GD5428. I guess it only happens when cgxmode is used
  to create impossible modes that no real monitor or chip can support...

- Added misc panel "Hide all UAE autoconfig boards" option. It deletes all UAE-only autoconfig
  board ConfigDev nodes in ExpansionBase.
- Rewritten .cue decoding, some CD images with audio tracks had incorrect audio positioning,
  for example Tie Break Tennis CDTV and Falcon CDTV.
- Log also physical/virtual CD drive track information.
- CIA-A vsync TOD counting is now cycle-exact. (if cycle values in Commodore's Agnus sync pulse timing sheet
  are correct, they appear to be because it is standard PAL/NTSC)
- CIA-B hsync TOD counting is also positioned cycle-exactly now (end of hsync pulse), was at the start of
  scanline previously.
- SPTI didn't work, SCSI routing got broken when Tape drive support was added.

Beta 2:

- Fixed Piccolo SD64 Z2 wrong address space size.
- Piccolo is Z2/Z3 board.
- Fixed Z3 board subsize.
- Improved QEMU CL emulation glue code, VRAM banking/offsets supported.
- Some modes had invisible hardware sprite (mouse cursor).
- Implemented Piccolo/SD64/Spectrum vblank interrupts. Picasso96 won't hang anymore.
- Reset didn't reset all necessary graphics board variables.
- Force 32-bit host display mode if byteswapped board is selected (Any board except PicassoII/II+)
  Cirrus Logic emulation code supports byteswapping only in 32-bit mode.
- Note: Most VGA planar modes (16 colors or less) are not working. Includes also mouse cursor.

- Rewritten memory bank handling, moved all memory variables (start address, mask, size, etc)
  to addrbank stucture. Standard RAM bank code duplication replaced with macros.
- Debugger memwatch points now also detect hits in aliased addresses and only bank(s) that have
  watched addresses are redirected to debugger.
- CDTV SCSI option works again.
- Some uaenet.device improvements.
- It was not possible to write to Amithlon-style partitions.
- 5:4 aspect ratio had disappeared.
- CIA-A TOD counts (if vsync timed) on line 5 (PAL) or line 6 (NTSC), not line 0.
  (This is not 100% accurate yet, horizontal position is still wrong, will be
  improved in later betas)
- Installer update also coming, will be built with WiX (msi installer).

Beta 1:

- Hardware Cirrus Logic based SVGA Zorro II/III RTG board emulation.
- SLIRP user mode NAT emulation.
- Added SCSI tape emulation. Amix tape based install works, also tested with
  Quarterback and Diavolo.
- lua scripting support added from fs-uae. Very minimal at the moment.
- SCSI HD/CD/TAPE statefile compatibility improved.
- SCSI emulation compatibility improved, Amix use of WD Select and Transfer
  used wrong data size when direction was from WD to device and command was not
  write command, for example MODE SELECT.
- Show custom chip mode as interlace/not interlaced decision now more closely matches
  real hardware behavior. (No, it isn't as simple as BPLCON0 LACE bit set/not set)
- Show also device type (HDF, CD, TAPE) in Harddrives panel.
- Joystick axis dead-zone fix, wired xbox 360 d-pad missed events, it didn't affect
  wireless version. (261b2)
- Top and/or bottom border showed graphics garbage if AGA sprites outside of bitplane
  area feature was enabled and in use and screen mode was HAM. (Tint / Black Lotus)
- Dragging and dropping archive/file to WB tried (unsuccesfully) replace already
  existing normal directory harddrive if dropped file and directory harddrive had same
  base path.
- Renamed CPU cycle exact speed multipliers and added 1x speed (1:1 CPU/DMA clock sync)
- It was impossible to select RTG aspect ratio select box Automatic value.
- Display panel depth select box was not updated if new resolution had more or less
  depth choices than previously selected resolution.
- Mouse was captured even if "Start mouse uncaptured" was ticked and booting to RTG mode.
- Amiga side does not anymore see .lnk extension if it is valid Windows shortcut softlink.
- Enabling JIT for the first time in GUI now always forces JIT Direct mode.
- If blitter was started one cycle before final D write (Cycle which is always unused by
  blitter), new blit's 2 cycle startup incorrectly accepted DMA cycles that were not free.
  (Day of Reckoning / Digital)
- Bitplane DMA incorrectly stole sprite DMA in some situations (Plastic Passion / Upfront)
- Sync clock when resuming from sleep/hibernate (if clock sync option is ticked)

SLIRP notes:

- Available for A2065 and uaenet.device (uaenet unit 0 = slirp, 1 = first WinPCap device)
- Does not need any drivers, uses normal WinSock API.
- NAT, outbound connections only.
- TCP and UDP only (no ICMP or other ethernet frame types)
- DHCP supported.
- Manual settings: IP 10.0.2.15, Gateway 10.0.2.2, DNS 10.0.2.3, Mask 255.255.255.0.

Hardware graphics board emulation notes:

- Currently emulates following Cirrus Logic GD542X/543X based boards:
  - Picasso II
  - Picasso II+
  - Piccolo
  - Piccolo SD 64 (Zorro II and III)
  - Spectrum 28/24 (Zorro II and III)
  - Picasso IV may be implemented in future.
- Uses QEMU Cirrus Logic SVGA graphics chip emulation.
- Picasso 96 and CyberGraphX v4 tested.
- Works with non-AmigaOS operating systems that don't support UAEGFX RTG board.
- Vertical blank timing uses GUI configured refresh rate value, display sync settings programmed
  to VGA chip are completely ignored.
- Only single VRAM size supported which is hardware supported max VRAM. Smaller VRAM requires
  emulating of VRAM aliasing and banking stuff that drivers use for VRAM size detection. It would
  become too Direct mode JIT unfriendly. Future "more compatible but slower" option is possible.

SCSI Tape notes:

- Tape path can point to directory, archive or plain file.
- Directory: all files in directory are included in virtual tape, ordered in whatever
  order OS returns the directory (unless index.tape is found), emulated file mark
  is between each file. Subdirectories are ignored.
- Archive: All files in archive are included, including subdirectories.
- Plain single file: tape only contains selected single file.
- If directory or archive and index.tape is found, it is assumed to contain order of
  files in virtual tape, plain file name strings separated by line feeds.
- Writing is also supported if path points to a directory. Creates files named
  xxxxx.tape where xxxxx is file number.
- Tape ERASE command only deletes files that have extension .tape to prevent
  accidental data loss. Subdirectories are also ignored.
- Can be connected to SCSI hardware emulation (SCSI0-6) or uaescsi.device (UAE),
  uaescsi.device unit number is always 4 or larger (if 4 was already used by
  some CD device).
- Tape change on the fly is supported.

lua scripting:

- very minimal and basic at the moment.
- lua=<path to script> in config file, multiple files supported.
- lua/default.lua is loaded by default.
- supported UAE-specific functions:
  uae_log, uae_read_u8, uae_read_u16, uae_peek_u16, uae_write_u8, uae_write_u16
  uae_read_config, uae_write_config.
- lua functions:
  on_uae_vsync (every vsync)
  on_uae_config_changed (any config value has changed)


2.6.1

Beta 4:

- Added new level between pre and post shaders (0 in GUI, selected by default) which
  works exactly like pre-2.6.0 versions. Some shaders (hq2x for example) requires
  input texture in original Amiga display resolution and output texture in final
  output resolution or result will be quite crappy. D3D h2x really works again.
- Some on the fly graphics config settings (uae-configuration) reset RTG state.
- RTG screen mode selection in Display panel wasn't active if Z2 RTG was enabled.
- AROS ROM updated.

Beta 3:

- Direct3D hq2x shader filter should work correctly again. (2.6.0)
- 68040/060 MMU mode address error stack frame fixed. (Possibly only debuggers need this)
- 68030 MMU mode address error stack frame has correct format but it is not yet
  recoverable. (I don't think address error recovery is used by any OS)
- FScc, FTRAP and FBcc didn't get FPU out of NULL state. (No one cares fix)
- extraframewait and framelatency command line parameters are also available via
  config file (uses win32. prefix)

Beta 2:

- Moved >2M Chip RAM merge earlier in boot process. Previous was too late and it broke
  early boot menu. (It sets reset proof resident positioned at the end of chip ram and
  if chip ram is not available early enough, exec assumes resident is invalid and
  ignores it). Now nearly complete unfragmented Chip RAM is available, even if booting
  with Chip RAM only configuration.
- Do not filter all keyboard presses without matching releases, only filter repeats.
  (Which isn't that simple because press and repeating press are identical events)
- Inverted keyboard releases (=press) required matching release before next press
  event was accepted. (This update wasn't really needed but maybe in future it will
  be more useful)
- Added separate 68060 unimplemented integer emulation checkbox. More compatible
  should only enable/disable prefetch emulation. (approximate/partial or 68000 exact)
- 68060 MOVEP was not marked as unimplemented.
- Non-prefetch CPU mode now fully checks if memory disappears after reset by
  checking memory "bank" pointers instead of using hardcoded addresses. Program
  doing software reset by executing RESET + JMP (An) now always works. (If opcode
  is something else or PC points to non-existing memory for some reason, it assumes
  program attempted normal software reset and jumps to start of ROM code). Makes
  aros arosbootstrap softkick more reliable under emulation.
- Tree view "Hard drives" -> "CD & Hard drives"
- Delay 68020+ interrupt detection by one instruction unless cycle exact is enabled.
  (For example Skeleton Krew CD32 first enables interrupt and then updates interrupt
  vector. Game code even guarantees request is active while enabling interrupts..)
- 68040 MMU PTEST and 68060 MMU PLPA instructions were shown incorrectly by debugger.
  (Read was shown as write and vice versa. Emulation was working fine)

Beta 1:

- KS 1.3 OFS hardfile fix. Apparently 1.3 L:FastFileSystem does not support OFS.
  Use ROM built-in FS if OFS partition and hardfile FileSys path is empty. (2.6.0)
- Added emulation of unimplemented FPU instruction exceptions.
  New FPU "Unimplemented emu" option added to GUI: ticked = emulate all instructions
  (old behavior), Unticked = instructions not emulated, unimplemented instructions
  generate exceptions: 
  6888x: S or D variants are not supported (FSADD, FDADD etc..), 68040/060 only.
  68040: usual removed instructions and FINT/FINTZ
  68060: usual removed instructions, FTRAP, FDBcc and FScc. FINT and FINTZ are back.
  68040/060 unimplemented datatype (packed decimal) is still emulated normally because
  unimplemented datatype exception requires special pre and post FPU-only exceptions.
  (This is not guaranteed to be perfect, not that easy to test fully)
- Hardware/software reset didn't reset SCSI emulation fully.
- A3000 KS 1.4 scsi driver wasn't fully compatible with SCSI emulation, write command
  got stuck in never ending loop. Only reads worked. (WD SCSI chip is quite flexible,
  it allows multiple and very different ways to send and process SCSI commands)
- Non-prefetch CPU mode RESET/JMP (An) combination detection did only check if it was
  located in chip ram, it didn't check Z2 Fast.
- Input panel Invert option added. Button and key presses become releases and vice versa.
  Joystick and mouse (if relative) movement is inverted.
- winuaeenforcer aros m68k debug.library segtracker-like support added.
- Added Tf debugger command that lists FileSystem.resource contents.
- Added system memory list dump option to debugger ('Tm')
- Merge >2M chip RAM with original chip ram pool instead of creating new one.
- Bitplane data (usually horizontally repeating) was visible if sprites were visible
  in border regions. (2.6.0)
- Do not emulate CIA TOD bug if MMU emulation is enabled, workaround for Amix boot hang.
  (Until real problem is found)

2.6.0

Beta 21 (RC2)

- Ultimate Body Blows CD32 pad button problem fix. Hopefully this last minute update does not
  break anything else...

Beta 20 (RC1) Final in few days:

- AROS ROM updated.
- DirectSound mode crashed if DS sound play cursor got stuck (which normally shouldn't happen)

Beta 19:

- Reduced internal display buffer memory usage, use MEM_TOP_DOWN VirtualAlloc() flag, this seems to
  reduce Windows XP only memory reservation problems that cause mysterious crashes.
- GUI allowed cycle exact and JIT active at the same time.

Beta 18:

- If config (for example default.uae) has keyboard layout A/B/C selected, it will be remembered as default
  keyboard layout for selected port, then if new config is loaded and it has non-existing device
  (for example unplugged gamepad), port is configured for remembered default keyboard layout instead of always
  defaulting to layout A.
- Patch stupid CD32 ROM CD drive detection CPU delay loop if configured for non-approximate CPU speed modes.
- Validate RTG blit parameters more carefully to prevent invalid memory accesses if program(s) do bad things.
- winuaeenforcer disassembly crashed due to recent debugger changes.
- B15 sprite emulation update caused graphics corruption if display window was "too wide". (Himalaya / Avalanche)
- Mention also Administrator privileges in real harddrive/memory card "block zero write failed" messages.
- Modified emulation of ddfstrt/ddfstop value pairs that cause display corruption on real hardware due
  to bitplane dma being active too long and conflicting with refresh/strobe slots, prints log message.

Beta 17:

- One more IDE emulation fix, bogus extra write interrupt removed (I think this was accidentally introduced in some recent
  update). For some reason all tested drivers seemed to ignore it but it also could have caused data corruption in worst case.
- Added support for very large resolutions (NV Surround/AMD Eyefinity), max is now 8192x8192 (from 3072x2048)
  (I now have 3xVG248QE in portrait surround, 2d lightboost mode, GTX680 SLI. Debezeling still to do..)
- Display panel GUI didn't accept new selected resolution if previously loaded config had non-existing resolution.
- B16 didn't fix all glitches, yet another fix attempt. (Mindriot/Andromeda and more)
- Fixed sprite priorities in HAM mode (Thanks to Paradroid for this and right edge overscan test case)
- Added some uncommon aspect ratios to GUI aspect ratio select menus.
- Added new config entry "chipset_hacks" that is used to enable emulation of not fully known chipset features or bugs.
  Bit 0 = emulate COPJMP/Blitter cycle conflict (Blitter DMA channel gets loaded with Copper address)
  Bit 1 = emulate strange right edge overscan display shift if lores bitplane and scroll value is greater than 7.
  DO NOT enable in your default configuration, these are not fully emulated and can and will break other programs!

Beta 16:

This beta should fix all strange display glitches introduced in previous 2.6 betas.

- New style filter mask config entry didn't load. (b6 or later)
- Improved mouse movement mapping in GamePorts panel remap window (It creates mouse movement mappings that makes sense..),
  also implements 1s delay before next mouse movement is accepted in test/remap modes to reduce accidental events.
- Don't attempt to combine left/right->horizontal and up/down->vertical if remapping single event.
- Add select menu didn't include any "standard" device-specific events. (Incorrect filtering)
- DirectDraw + none filter was slow. (b7)
- Blitter changes in b12 still had some problems.
- "Subtle Shades" update was still broken, caused strange glitches in some situations.
- Left and right border was always fully blanked if scanline was in HAM mode.
- Low latency vsync + black frame insertion now always uses threaded vsync mode, normally was only used if fastest possible
  CPU mode is in use (If you have 100Hz+ monitor, especially lightboost, your PC shouldn't be low end..), improves
  stability. No buffer also supported but it can be unstable.
- Added "gfx_autoresolution_delay" config entry. Number of frames to wait before autoresolution mode changes, timeout will
  always reset if mode change is detected during timeout countdown.

Beta 15:

- IDE emulation drive status bit fix (DRQ and BSY active at the same time), fixes data corruption if IDEFix was active. (b5).
- Added support for previously unemulated and undocumented feature, sprites can appear 1 lores pixel earlier than first bitplane pixel.
  (First BPL1DAT access enables sprites immediately, only bitplanes need HRM documented delay).
  This is not normally visible because horizontal DIWSTRT usually equals bitplane left edge.
  Fixes "original" Rink-a-Dink/Lemon missing left white border in rotozoomer part.
- Do not use "8372 (Fat-hr) (agnushr),rev 5" VPOSR chipset id when config is ECS 2M chip RAM. This ID does not appear to exist in real world.
- Both bordersprite and borderblank active: sprites were incorrectly visible in upper and lower borders (241b13)
- Rewritten b4 "Subtle Shades" update, it was wrong and caused bad side-effects.

Beta 14:

- A3000 SCSI emulation crashed if no SCSI drives configured.
- Added previously config-file only master floppy write protection option to GUI misc panel.
- If Windows softlink or .lnk can't be opened (access denied) or has system attribute flag, handle it as a normal
  file/directory, just like in older versions.
- DIVS/DIVL integer overflow crash fix (INT_MIN/-1 = an integer that does not exist, causes cpu overflow exception)
- GUI Add Hardfile added IDE or SCSI was mounted as a CDROM. (Worked if config was saved and then loaded again)
- Adjusted read-write-only-custom-register-side-effect in AGA mode. (Artificial Paradise / NGC missing loading screen, does
  stupid bset #9,$dff104 which, depending on previous accesses, either writes $0200 or "random bits" OR $0200)
- Manually added custom addmem2 memory region config entry used addmem1's memory region..
- "Load From"/"Save From" buttons didn't change config name in window title.

Beta 13:

- Ignore vendor specific USB usage pages also in received USB HID packets, fixes for example Logitech Precision gamepad ghost button events.
- Fixed border sprite bug introduced in b12, border sprites should stay hidden if border blanking is also enabled.
- Black frame insertion is now supported in legacy vsync D3D 100Hz+ modes. DirectDraw modes may also work.
- 68020+ cycle-exact CPU speed changed after entering and exiting GUI in some situations.
- Partition hardfile dragndrop didn't work.
- Automatically loaded ROM path FastFileSystem file always replaced FileSystem.resource FFS when mounting FFS partition hardfiles (b1).
- Blitter DMA disabled, writing to BLTSIZE, writing to other blitter register(s) and finally enabling blitter DMA appears
  to start the blitter normally. (Pink Panther graphics corruption, probably worked accidentally in some old versions)

Beta 12:

- AGA border sprite feature emulation is now also cycle-exact. Similar update to borderblank was done in 2.5.0. For example
  it was possible that sprites were hidden when border sprite bit was set and zero bit planes enabled.
  (Noticed when doing some unrelated real hardware limit tests)
- Black frame insertion was incorrectly used (if enabled) in <100Hz fastest possible CPU modes.
- Horizontal blanking rewritten, should be more accurate now, programmed display modes only.
- Display emulation tweak, Super72 sprite display corruption is gone.
- Fixed bug introduced in b5, blitter emulation ignored DMA off state in cycle exact mode.
- Emulate DIV divide by zero undocumented flags when CPU >=68020. So far 68020 and 68060 tested and confirmed.
  Odyssey / Alcatraz and 68020+ CPU does not anymore get stuck in part where spaceship flies above ground.
- CPU halted state didn't disable CPU interrupts.

Beta 11:

- Blank left and right border if programmed mode and part of original borders would be outside of programmed hsync start and end period.
- Address error exception always started debugger, forgotten debug option disabled.
- Added Ts debugger command, list all exec residents.
- Restoring state file with harddrives crashed in some situations. (broke with previous filesystem updates)
- CD32 TOC entries were transmitted too quickly due to missing check, correct speed would have been one entry per CD frame (75/sec),
  not one entry per scanline. CD command buffer overflowed and driver detected CD as broken if CD had enough tracks.
  Old bug, was mostly invisible until 2.5.0 Universe TOC fix. (Super Street Fighter II Turbo and others CDs with lots of tracks)
- IDE emulation ignored optional forced physical cylinder number setting in config file.
- Both hires and superhires bits in BPLCON0 set: superhires mode active.
- 100Hz+ black frame insertion is now optional, setting in Misc panel. (Still D3D/low latency vsync only)
- GamePorts panel test/remap improved
  - Implemented custom event add option. Select event from select box and click "Add", then press any button/key/etc to map it.
  - Added event will be automatically removed if it does not have any mapped events (Works differently than normal events)
  - Loading config file that has GamePorts panel custom added events using older version is not supported.

Beta 10:

- SCSI CD MODE SENSE emulation fixes.
- SCSI CD Write commands should return unknown command error, it is not a CD writer.
- SCSI CD and HD: return correct sense code if Read or Write command tries to access out of bounds LBAs.
- SCSI/ATAPI CD: return medium changed unit attention sense data after media change.
- OCS and ECS Denise/AGA have slightly different behavior when program writes to BPL1DAT to enable sprites
  before DDFSTRT (sort of AGA bordersprite option), OCS: only works if hpos is large enough (~40+), ECS:
  smaller limit (or no limit, didn't test).
- Soft link emulation improved.
- Directory filesystem ACTION_MAKE_LINK implemented, supports soft links only, creates shortcut (*.lnk) files.
- Entering GUI Harddrives panel removed image from internel CD image mounter if mounted as ATAPI or SCSI. (introduced few betas ago)
- Restructured blkdev.cpp unit handling.
- Sound autoswitching is disabled when AVI recording is active.
- Low latency vsync no buffer mode and doubled frames (100Hz+) was unstable.
- POTGO right button bit was temporarily and incorrectly active in some situations when loading state.
- D3D Low latency vsync in double and triple buffer double rate modes (100Hz+) now blank every other field to minimize "ghosting" effect.
  Will be optional later. (http://www.blurbusters.com/ for more information)
- Added hack that prevents incorrectly triggering CIA alarm interrupts in non-cycle exact modes due to not that good KS timer.device
  code. (It did not cause any problems, just wasted some emulated CPU time)
- Fixed memory corruption in exe to adf conversion code. (b1)
- GamePorts panel test/remap option rewritten.
  - Test and Remap buttons combined.
  - One or more events can be added.
  - Events can be removed one by one.
  - Non-key/joystick/mouse events (insert floppy, reset emulator etc..) can be added and removed. Not yet implemented.
  - Doubleclick on input list will record single input event.
  NOTE: Built-in (non-custom mode) events can not be edited, you need to start from scratch. (Click "Delete all")

Beta 9:

- 68000 NBCD didn't emulate undocumented V-flag behavior. (Probably forgotten long time ago because SBCD had correct
  implementation)
- It was impossible to get out of halted CPU state in some situations.
- FDBcc and FScc 6888x FPU instructions without installed FPU returned wrong f-line exception PC field.
- Directory filesystem: emulate Windows shortcut (.lnk) files and symbolic links as Amiga side soft links.
  Implements ACTION_READ_LINK. Works also across drives if shortcut/link target exists in any mounted directory harddrive.
  Not guaranteed to be 100% correct implementation, Amiga softlinks are a bit strange.

Beta 8:

- CD SCSI emulation: implemented mode sense CD/DVD page code 0x2A. Used to detect drive capabilities, for example
  if it can read or write CD-R, DVD-ROM or DVD-R and so on.
- SCSI emulation MODE SENSE didn't limit returned amount of bytes to allocation length field.
- BPLCON0 SuperHires bit disables normal DDFSTRT/DDFSTOP limits. (Why?)
- Resolve shortcut path if mounting shortcut (.lnk) as a harddrive.
- If inserting RDB hardfile using GUI: get device's blocksize from RDB block size field.
- Attempted write to SCSI or IDE CD (using normal SCSI Write command) crashed. 
- Return WP bit set in SCSI Mode Sense result if SCSI HD is write protected.
- Add harddrive option set wrong parameters, drive was added as non-RDB partition hardfile (some earlier beta).
- Hardfiles and harddrives: attempt to mount as read-only before failing if read-write access is not allowed.
- Hide bootpri/bootable/donotmount boxes in GUI when selected RDB mode/controller combination does not support them.
- Added support for write protected disk images even if physical file is write-enabled. Config file
  only, floppyXwp=true
- 68020/030 no-FPU F-line exceptions didn't work correctly, broke in previous 68040+ FPU disabled exception
  updates.

Beta 7:

- In JIT mode format 2 stack frames had wrong address field contents, this also broke 68060 unimplemented integer
  instruction exceptions (64-bit variants of DIVL and MULL).
- GUI boot priority/autoboot/automount handling fixed and simplified.
- 68030 "cycle-exact" mode used 020 instruction cache emulation code. No guarantees that this fixes all 68030 "CE" problems.
- D3D texture memory leak fixed (b6)
- A2024/Graffiti extra display buffer memory leak fixed.
- 1/50s file modification date also supported on FAT volumes. Returns FAT file creation date (which has 10ms resolution,
  file modification date only has 2s resolution) if it is inside file modifcation date's 2s resolution.
- 68040+ "no FPU" exception stack frame still had incorrect data.
- Disable 68040/060 CPU "More compatible" option if JIT is enabled. JIT active and not emulating unimplemented
  instructions isn't safe because JIT and normal emulation does not always agree which instructions are supported.
- A2065 emulation tweak, Ethernet chip documentation STOP/STRT/INIT bit documentation is not very clear.

Beta 6:

MMU emulation is now considered mostly done. Some minor bugs probably still exist but Amix, NetBSD, Debian
Linux, Enforcer and WHDLoad MMU option seem to work fine.

- SCSI and IDE emulation HD and CD read and write commands are now executed in background thread, slow devices
  (for example real optical drive) won't temporarily pause the emulation anymore.
- ATAPI CD emulation didn't support split data transfers. Fixes NetBSD installer unpack error.
- Show also error code converted to string if HD to HDF image creation fails.
- Added mostly useless CD list to CD drive GUI. (Someday there will be more than 1 option)
- Do not allow multiple identical HD/CD controllers (if not UAE).
- Increased size of ATAPI data buffer and added size checks. 65536 was too low. (Debian installer)
- SCSI emulation didn't handle WD33C93 Select-and-Transfer command scatter/gather DMA. (Debian installer)
- CD led didn't flicker during SCSI and ATAPI CD access.
- Fixed D3D shader error/warning string buffer overflow crash. Some shaders can output really long warning messages.
- D3D internal texture size was incorrect in some situations, causing some shaders to have incorrect geometry.
- Added support for "post" shader filters. Post = apply shader to final output (after scaling, D3D scanlines
  and RGB masks), Pre = apply shader to internal Amiga display (same as in previous versions).
- D3D shaders can be "stacked", max 4 pre and post shaders supported. (-4 to -1 = pre, 1 to 4 = post),
  Output of previous shader is input to next shader. Can be useful if you want to have "normal" filter and CRT
  geometry filter active at the same time. Also stacking same filter multiple times makes interesting results :)
  D3D only, software filters not supported.

Beta 5:

- RDB hardfile dragndrop to hardfiles panel added empty hardfile.
- Windowed mode bottom border "led" state didn't always match OSD led state.
- SCSI emulation improved, select and transfer starting from 0x45 can be used to receive data.
- SCSI emulation WD33C93 is now correctly detected as revision A, not B. (only B has Queue Tag register)
- 68060 MMU: BFCHG, BFCLR, BFSET and BFINS are read-modify-write instructions.
- GUI IDE/SCSI CD path was not updated in harddrive list when CD was changed using "Select image file" button.
- 68040/060 MMU emulation fix, PFLUSH/PFLUSHN only flushed supervisor space ATC. Hopefully this was the last major
  040/060 MMU bug. Weird NetBSD and Linux crashes are gone.
- Subtle Shades / Nuance remaining graphics glitches fixed. (NOTE: ECS only, OCS has corrupted graphics and it is correct behavior)
- GUI "Swap Ports" cleared custom mappings.
- 68040/060 no FPU/disabled FPU exceptions now include correctly calculated EA field. This should allow "compatible" 040/060 FPU
  emulation with correctly handled missing instructions in the future (currently 040/060 FPU always supports all 68881/2 instructions)
- Added new keyboard custom event type, "kbr <string>". For example 'kbr "abc " SHIFT_LEFT "abc" shift_left RETURN'
  generates "abc ABC<return>". Input name in upper case = press, lower case = release. Quoted string automatically sends both press
  and release key codes. Any unreleased keys are automatically released at the end. Non-quoted names are same as input event config
  names without KEY-prefix. (inputevents.def in source archive)
- Adjusted drive step limit value slightly, Extemporized / Digital works again.
- Fixed virtual mouse driver mouse movement problem (b1)

Beta 4:

- Fixed 68030 MMU MOVEM to memory wrong bus error data output buffer value.
- 68030 MMU FMOVEM didn't work if it caused bus fault.
- 68060 MMU non-locked Read-Modify-Write bus error bits emulated.
- SCSI emulation: reject >0 LUNs also when LUN is included with SCSI Identify Message.
- IDE single drive setup should return zero when accessing non-existing slave drive's status register.
- A2065 emulation initialization tweak, fixes NetBSD 1.0 hang.
- CDFS didn't use CD led (FS)
- Blitter logging/debugging command line option added (was compile time previously) -blitterdebug x
  (1 = logging, 2 = writes to blitter register while already active logging, 4 = disable D channel, 8 = immediate blitter even in cycle-exact mode)
- Support display setups that have two (or more) horizontal DDFSTRT/DDFSTOP regions.  Fixes Subtle Shades / Nuance "face" part.
  (There is still some small glitches on left side of text part, later..)
- Some remaining instant reset conditions replaced with halted state.

Beta 3:

- Programmed display modes disable normal DMA start/end display limits. (NetBSD AGA console screen)
- ATAPI CD emulation compatibility improved, should fix detection problems.
- IDE HD emulation returned corrupt data if 2 drives enabled at the same time (b2).
- CD image mounter crashed if CD image selection was empty. (b2)

Beta 2:

- 030/040/060 MMU TAS and CAS/CAS2 Read-Modify-Write cycle special handling emulated, RMW read access
  part is internally considered a write access and it will cause access fault if address is write protected.
- 040 MMU MOVEM special handling (SSR CM-bit) emulated.
- Some 040/060 MMU emulation bug fixes. (It still isn't fully compatible)
- A3000 2.04 ROM requires 68030 or higher, it is not 68030-only. (Only 1.4b is 68030-only)
- Bogus filesystem.resource entry was added if RDB HDF had more than one partition with custom filesystem (b1)
- Fixed stuck IDE emulation interrupt that hangs the emulated system, happened randomly during A4000 IDE detection. (Old bug)
- Geometry file FORCELOAD parameter added, forceload=1: do not re-use already loaded filesystem(s).
- A590/A2091/A3000 SCSI CDROM emulation added, uses SCSI emulation originally made for uaescsi.device.
- Gayle/A4000 ATAPI CDROM emulation added (uses uaescsi.device SCSI emulation, ATAPI = IDE CDROM SCSI command support)
- CD image mounter SCSI emulation inquiry command's vendor/product/revision data was blank.
- Ultra-minimal "Add CD Drive" GUI added. Only IDE or SCSI and only one CD entry can be added. Use hardddrives panel bottom
  CD drive/image selection select menu to select mounted CD. uaescsi.device still works as previously but note that
  same CD drive/image slot (internally there is more but they are not available in GUI yet) is shared = it may not be good
  idea to enable both uaescsi.device and hardware IDE/SCSI CD emulation at the same time.
- Added more emulated SCSI CD commands, READ TRACK INFORMATION, READ DISC INFORMATION and PREVENT/ALLOW MEDIUM REMOVAL
  (which does nothing). READ TOC allocation length check fixed.

Note: Curently SCSI and IDE CD is single threaded = whole emulation pauses while waiting for CD command to finish = better
not to use real CD drives. Only uaescsi.device runs in background.

Beta 1:

Big MMU emulation update:

- Previous (Next emulator) 68030 MMU added (+missing bus error exception stuff implemented by me),
  some 68040 MMU updates merged. A3000 1.4 boot ROM, 1.3 SuperKickstart (which uses special MMU mapping for "bonus" code),
  Enforcer and Amix confirmed working (Amix can't be installed because tape drive is not emulated but pre-installed
  HD image work)
- 68060 MMU emulation added, mostly same as 68040, different stack frames and 68060 restarts
  all bus faults, 68040 restarts only read faults (excluding MOVEM).
- Executable is larger, MMU compatible 68030 and 68060 CPU emulation cores added.
- MMU double fault stops the CPU (just like real CPU does), no more instant resets, makes debugging easier.
  Windowed mode status bar shows "HALTx" (Hx in OSD) in this situation (x = reason code). Only reset gets out of halted state.
  Also non-MMU mode fake double bus faults or other impossible states (for example odd supervisor stack) now enters halted state.

Note that 68030 MMU is very complex compared to 68040+ = slower than 68040 or 68060 MMU emulation.

- Added second A3000 Quickstart compatibility level, 68030 MMU emulation or fake MMU + JIT.
- Always refresh windowed status bar floppy leds when emulation starts or statefile is loaded.
- Executable as a disk image mounting does not generate identical disk creation dates anymore, wrong date calculation fixed.
- Use name of original file when mounting executable as a disk image, will be truncated if too long.
- Disable floppy sounds when exe mounted as a disk is inserted.
- Added wheel mouse Game Ports device type. Old "Mouse" is renamed "Wheel Mouse" and new "Mouse" is
  mouse without wheel mapped. Added because some older programs can get confused with mouse wheel keyboard events.
- Win+D (show/hide desktop) has now same behavior as minimize/unminimize.
- Named pipe accepts also UTF16LE (Windows native) and UTF8 strings if BOM is included. No BOM = assumes
  current "ANSI" character set. Old ipctester.exe works finally again.
- Named pipe also supports debugger commands, either using dbg_<name of debugger command> or first setting it
  to debugger mode using "ipc_debug" command. ("ipc_config" = config mode, "ipc_event" = event mode, "ipc_restore" =
  back to normal mode). Other direct commands are cfg_<config entry and evt_<event name>.
  (Works exactly same as uae-configuration commands)
- Call DwmEnableMMCSS(TRUE) if running under Vista or later.
- VSync/HSync counting CIA TOD counters run at half rate if genlock mode is active.
- Added hack that fixes unreliable KS ROM genlock detection in fastest possible CPU modes.
- Enabling or disabling windowed mode status bar does not reopen the window anymore.
- Horizontal programmed screen mode registers' upper byte must be masked. Fixes Debian Sarge blank screen.
- All debugger commands support MMU logical to physical address translations, enable with "mmu <CPU function code>", 0 = disabled.
- Added support for A2000 old style RTC address range (Adv. chipset panel), this also maps new style clock
  address range (0x00DC0000) as custom chipset.
- FPU NULL state implemented. Fixes Amix FPU detection, it tests FPU by restoring NULL frame then immediately saving
  FPU frame and only accepting the FPU if stored FPU frame is NULL frame.
- Filesystem added using FileSys hardfile option will have at least 4000 byte stack, filesystem will be only added to
  FileSystem.resource if it does not already include filesystem with same dostype. (Previously it was always added, replacing
  previous one)
- addmemx config option(s) caused crash if emulation was restarted.
- Filter position and zoom values uses now floats, weird integers are gone. Old settings are ignored, config entries renamed!
- Custom input events can send commands to debugger, "dbg <debugger command>", output goes to console window if open.
- Changing filter position/zoom values using custom events or uae-configuration incorrectly forced display subsystem reset.
- WD33C93/DMAC SCSI emulation improved. (Amix, NetBSD and so on..)
- Added A590/A2091/A3000 SCSI DMAC state file support. Only basic state, any SCSI operation must not be active while saving.
- Windowed mode title bar doubleclick now maximizes normally, shift+doubleclick = fullscreen and ctrl+doubleclick = fullwindow.
- Immediate blitter didn't check if blitter DMA was enabled.
- Added CHD (Mame) CD image support support. Full data, CD audio and subchannel support.
- CHD image as a hardfile support added. Read-only.
- LZMA (7zip) support code updated to latest beta (required by CHD LZMA code)
- Host FPU rounding/accuracy mode was not reset back to correct original values when using filters.
- Pause mode updates, configuration changes while in pause mode work better but currently display becomes blank if
  display mode changes while in pause mode (Old screen was lost and new data can't be generated in pause mode)
- Filesystem config (cylinders, sectors etc..) parameter passing rewritten, now uses same structure everywhere instead
  of passing huge and random amount of ugly variables around. Big change, can break things.
- Partition hardfile parameter/geometry support update, if file named <original hardfile name>.geo is found in same directory as
  hardfile, it is parsed for mountlist-like parameters (key=value). It also supports parameters that are not available in GUI or
  in config file (for example lowcyl, buffers, maxtransfer etc..).
- Log partition hardfile full geometry data when mounting.
- Added native resolution selection to Display panel fullscreen resolution options. Uses always monitor's native mode. (Actually it is
  monitor's desktop resolution because biggest listed resolution may be unsupported)
- Replacing or removing HDF files using the GUI now changes the drive on Amiga side too. Inserting new HDFs won't work.
- Fixed IDE emulation bug introduced in 2.4b17, IDE status register returned bogus data after execute diagnostics command.
  (KS driver didn't care, other drivers probably did)
- 1.5M chip RAM size didn't work (Note that this can't work if JIT is enabled)
- Very very long (hours..) startup delay if emulation was started in fastest possible + CPU throttle enabled.
- Windowed RTG to native switch (or vice versa) while window had no focus set internal focus state causing keyboard input to appear
  on Amiga side.

2.5.1

- Only reserve max total physical memory / 2 of ram under 32 bit Windows versions.
- lzh/lha MSDOS-style timestamps supported

Beta 5: (Possibly 2.5.1 final)

- Fixed crash when reset caused switching from RTG to native mode. (b3)
- Power led (and audio filter if enabled) state was not updated correctly (2.5.0)
- Exiting pause mode kept mouse uncaptured in some situations (b4)

Beta 4:

- Floppy read/write checkboxes didn't work (b1 filesystem update)
- Writing to Maprom region crashed in JIT mode, ROM protection introduced in 25b6 is now disabled when maprom address is queried for the first time.
- Inserting or ejecting USB game controller removed all Game Ports panel custom mappings. (older bug)
- Only attempt to mount dragged zip as a harddrive if harddrive emulation is enabled, if no harddrives, attempt to insert as a disk image in DF0:.
- Some mouse tweaks when fullscreen mode on secondary monitor positioned on left side of primary monitor (negative coordinates).
- Harddrives panel CD file selection box file name was truncated if path contained "][" string.
- uaeexe_server UAE boot ROM hook was set even if uae boot rom was disabled (Does something use this hook? seems ancient..)
  This corrupted part of CDTV extended ROM in b2 and 2.5.0 versions. (b3 initialization order change partially fixed it)

Beta 3:

- bsdsocket was initialized too early, didn't configure if memory config changed due to not enough physical memory etc.. (old bug)
- 32-bit Windows memory reservation limit was too small, some old configs had more memory available under 2.4.x and older versions (2.5)
- Crash dump file is written to data path or TEMP if winuae.exe directory is write protected.
- Do not crash if sound is enabled and number of sound output devices is zero.
- Archive directory filesystem crash fixed (b1)
- SCSI emulation READ commands returned data from wrong track (following track if CD had more than 1 tracks). Argh.
- Back to MSVC 2010, 2012 seems to have some optimization and XP compatibility issues to solve, later..

Beta 2:

- Resuming pause with input event didn't restore sound. (b1)
- Do not capture mouse when theme changes, keep pause state (Window may not get refreshed until unpaused, this won't be fixed until later) (b1)
- Windows mouse mode and mouse not captured: right, middle and other possible extra mouse buttons leaked to Amiga side.
- Fixed GUI JIT slider weird behavior when cache size slider was moved to zero.
- Windowed mode status bar appeared in full window modes after mode change (b1)
- Epson matrix color printing swapped red and blue fixed. (Printing only, png output worked)
- Fixed 68010 + cycle-exact broken interrupt handling. (This is not recommended option, it is far from cycle-exact)
- Optimized build (official b1) had wrong settings, didn't load on Windows XP.

Beta 1:

- Internal mouse counter under/overflow fixed, while moving mouse far enough, mouse jumped in opposite direction. (old bug)
- Directory filesystem file modification date resolution support is now 1 microsecond (was 1 second). AmigaDOS file
  time 1/50s "tick" resolution is now fully supported (if NTFS, FAT only has 2 second resolution)
- 1G RTG RAM was detected as "too large". (early 250 beta)
- ClipCursor() was not always called, it was possible for hidden Windows mouse to move outside of WinUAE window in some situations. (250b24)
- RTG aspect ratio still affected filter panel aspect ratio setting. (b26 update was not complete)
- _UAEFSDB.___ meta data files (stores illegal names, protection flags and comments if non-stream capable filesystem like FAT)
  haven't worked correctly for a long time.
- _UAEFSDB.___ wasn't always deleted when it become empty.
- Unminimizing unpaused emulation when "pause when mouse is uncaptured" was enabled.
- If win32.guikey config entry is set, normal GUI key (F12) events won't open the GUI anymore.
- Always reset special monitor active flag (A2024/Graffiti) when display mode changes, fixes A2024 mode position when window
  needs to reopen but resolution didn't change.
- Improved windowed mode bottom statusbar height calculation, fixes two pixel gap in Windows Vista classic mode.
- Fixed Amiga-side illegal memory access when booting directory harddrive(s) under KS 1.3.
- Reset GUI/emulation display when Windows desktop state changes (Theme change etc..)
- Removed remains of unused AROS CDFS support code.
- Compiled using MSVC 2012 with update 1 installed.

2.5.0

Beta 28 RC4:

- uaescsi.device SCSI sense data is now returned correctly (For example MakeCD shows error messages that make sense now)
- AHI channel swap also swaps AHI recording channels.
- BMP screenshots were corrupted.

Beta 27 RC3:

- Modulated volume value wasn't range checked, caused noise if volume word was not between 0 to 64. (Platou title music)
- Fixed SPTI mode CDFS crash.
- CDFS didn't correctly remove hidden trailing ;1's in some Joliet CD filenames.
- SPTI standard CD access: Use READ (10), not READ CD when requesting standard 2048 byte user sectors, not all BD/DVD drives support READ CD when reading DVDs.

Beta 26 RC2:

- RTG aspect ratio setting was loaded to wrong variable from config file (filter panel aspect ratio, not RTG)
- CD32 CD audio play delay timing fixed. (Was originally timed using bad Liberation CD image)
- RTG on screen leds was rendered twice in D3D mode (D3D sprite and software method).
- Audio 14bit to 16bit scaling introduced extra low level noise.
- Only enable AUDxPER limit hack (to reduce CPU usage with weird programs) if audio DMA is active. Manual AUDxDAT audio software may use higher periods.
- Fixed rare crash in input/gameports panel test/remap support.
- Added on screen leds per-led enable/disable config file support, for example show_leds_enabled/show_leds_enabled_rtg=power,df0,df1.
  In future versions order of led names are also supported and gaps in place of disabled leds will be gone.
- DPI GUI size compensation disappeared (b25).

Beta 25 RC1:

- Switching to interlaced mode and autoscale enabled: don't calculate new size until 2 frames have been drawn to prevent multiple display size changes.
- More accurate GUI resizing algorithm.
- Show also first few bytes of disk in harddrive selection GUI.
- Add real harddrive as IDE: calculate physical CHS values using H=16,S=63,C=total blocks/(H*S) formula to better match with real hardware.
  (ROM built-in IDE drivers use IDE identify device CHS values to calculate last accessible block of drive, LBA support was added in ROM updates)
- Action Replay 2 copper list detection code hang tweak.
- Prowizard AC1D update (Asle)

Beta 24:

- CDFS: ACTION_DISK_INFO no disk status really works now.
- Fixed "Windows mouse" sometimes hitting invisible barriers in windowed mode if window size changed and mouse was captured. (Quite old bug)
- blitter_cycle_exact=true and cpu_cycle_exact=false confused blitter emulation if BLTSIZE was written twice while DMA was disabled.
- CAS and CAS2 instruction fixes from Aranym (I guess these are practically never used on Amiga..)
- Ignore duplicate USB HID axis IDs. (I was lazy and only added duplicate button check previously..)
- USB HID D-Pad/POV axis may have caused ghost events.
- GamePorts panel Remap separated axis configuration support (for example up can be mapped to button and down can be normal down axis),
  and multiple input sources can be mapped to single input target. Selection cursor now wraps around to allow multiconfiguration.

Beta 23:

- CDFS: Joliet CDs didn't work and caused crashes. Directory listing worked but it was only possible to open non-existing files :)
- CDFS: ACTION_DISK_INFO never returned no disk status.
- Filesystem path selection and default RDB settings broke in b22.
- FPU FINTRZ didn't work correctly if input value was outside of signed 32-bit range. (Bug since the beginning?)

Beta 22:

- "Generic" Amiga model incorrectly enabled A3000 DMAC emulation which caused most programs that require UAE Boot ROM in
  normal 0xF00000 area to crash. (Old bug, b20 adv.chipset caused it to appear much more commonly)
- Disable ROM protection when switching JIT off on the fly.
- Dragging standard HDF to Hardfiles panel sets correct default geometry.
- Added logical cylinder value to HDF config data, default is zero = calculate from size of the HDF (same as previously)
- Added "physical" CHS values to HDF config data, can be used to override autogenerared IDE emulation CHS values.
  (append ",logical cyls,C/H/S" to hardfile2 config entry. No GUI support.)
- GUI resize button was permanently disabled after it was unticked once.
- log_disabled=1 in registry (DWORD) or ini disables winuaebootlog.txt.
- Check DPI value when selecting default GUI size.
- CD32 audio emulation update, Guardian CD32 (and possible some others) had muted audio since b1. Immediate reply
  to CD play command should not have "play active" bit set. It should be only set in later status packets.

Beta 21:

- Use software volume also in WASAPI non-exclusive because WASAPI main volume control also affects waveOut used by CD audio.
  (XP + DS also seems to affect waveout.. CDA really should use some more modern sound API, later...)
- Floppy sound sample mixing volume fix, volume level got lower if more than one drive had enabled sounds.
- Virtual mouse driver option IECLASS_POINTERPOS inputevent ie_Qualifier apparently needs to include mouse button state bits or
  Magellan II's (AmiKit) menus won't stay open, possibly affects other programs too. (This is not documented in HRMs, hmm...).
  "Start menu" still won't work but it is application bug because it also won't work if mouse is moved using Amiga + cursor keys.
- CDFS crash fix when unsupported media (not unreadable but for example UDF-only DVD) was accessed.
- Check and ignore possible duplicated CDFS CD insert or eject Windows message.
- Compile time directory filesystem logging is now runtime option (-filesyslog and -filesyslog2)
- Borderblank still didn't work correctly in all situations. (Aladdin AGA)
- Fullscreen DirectDraw mode IDirectDrawSurface7_Flip "Was still drawing" fix. (I still have no idea what was I thinking of..)
- Added "waiting blits" special case, when blitter is started and blit would use all available cycles: start waiting for the blit immediately.
- Changing hardfile path does not anymore clear device name and filesystem text boxes.
- Fixed crash when loading statefile with JIT enabled (b6 "ROM protection" should be disabled temporarily when loading UAE boot rom data..)
- zlib updated to 1.2.7
- Built-in AROS ROM updated.

Beta 20:

- Reduced Gayle based configuration CIA memory bank size to 4096 bytes, only accesses to bfdxxx and bfexxx goes to CIA chips if Gayle.
- Reverted b19 horizontal change, I forgot that it was made to fit max overscan modes better..
  (Manually adding "gfx_horizontal_tweak=8" to config file can be used as a workaround, if needed for some reason) 
- RTC update in b11 was not compatible with KS 1.x.
- improved RF5C01A RTC emulation, previously KS2.0+ detected stopped clock and attempted to reset it (which is no-op because
  emulated clock's time is currently read-only) and after reset it finally read the time.
- RTC year value is saved differently depending on OS version, Pre-2.0: RTC year value = current year - 1900,
  2.0+: year value = last 2 digits. Both methods supported when reading. WinUAE now uses pre-2.0 method if
  MSM clock chip (because this is the only type that KS1.x supports), 2.0+ if RF clock chip, previously always used -1900 method.
- RTC 12/24h bit emulated, this is not used by AOS.
- RTC time/date, alarm and memory data save/load to file supported (alarm time/date, note that alarm interrupt pin is not connected in Amigas,
  and 104 bits of memory, used mainly for A3000 SCSI settings, included with RF clock chip type). Date/time ignored when loading.
- added win32.gui_active_page=name, sets default GUI panel after emulation has been started (Old win32.gui_page = before emulation starts)
- In some situations adv. chipset may have used incompatible data stored in config file even if compatible settings was ticked.
- Syncronize clock on the fly CIA TOD adjustment is now only active if heartbeat signal (b11) is detected.
- b11 heartbeat system was not fully disabled when UAE boot rom was unavailable.
- On screen led HD/CD/NVRAM indicator is blank if device is not available (like floppies already did).

Beta 19:

- GamePorts panel Test function now shows all currently mapped input target(s). Can be used to test any kind of input event mapping.
- Do not map 3rd button to joystick/pad with more than 2 buttons if GamePorts panel gameport mode is joystick.
  Joystick is meant to be max 2-button, non-pullup resistor game controller.
- Directory filesystem ACTION_DISK_INFO InfoData->id_Inuse is now non-zero if any files or locks are open. (Was previously always zero)
- Use D3D (if available) to fetch GPU names listed in monitor selection GUI. Should now show correct GPU name when running on hybrid GPU systems.
- GUI CD audio volume control added.
- Standard PAL/NTSC mode horizontal position (without filters or centering enabled) is not slightly shifted anymore, not sure when this
  changed, probably in some update that improved programmed mode display positioning.

Beta 18:

- FPS and CPU% react quicker now. Can Show previously hidden CPU usage spikes. NOTE: CPU% now showing "myserious" usage spikes does not mean emulation has become slower!
- Automatically limit tablet mode X and Y coordinate range to prevent 16-bit signed overflows if tablet has large resolution. (not confirmed)
- Always generate full size mask texture, workaround for mask pixel mapping errors in some scaling modes.
- Only release pressed keys if window or screen gets reopened (prevents stuck keys), not when any graphics related config option changes.
- Do not allow GUI resize if GUI is larger than fullscreen resolution because Windows may automatically resize it to fit on screen, making GUI completely unusable.
- Always recalculate Display panel horiz/vert centering option internal values when configuration changes.
- 68030+ CPU and more compatible checkbox checked: enable very basic prefetch emulation, only 68000-68020 have more complex prefetch emulation.
- JIT + more compatible also enables basic prefetch. Only works if code is not yet translated. (Not much point but it was easy to do)
- Added route all MIDI In data to MIDI Out configuration option.
- Improved 68030 MMU instruction decoding. WHDLoad + MMU option enabled + 68030 CPU does not crash anymore. (No, there still is no 68030 MMU emulation, it is
  only emulating 68EC030 without MMU circuitry which probably does not exist in real world + hack for A3000 1.4 ROM)
- Few (rare) variants of MOVES didn't increase PC correctly.
- BSR.L was emulated as 68020+ instruction on 68000/010. (Bcc.L was correct)
- For some reason 68000 BSR.B and BSR.W address exception stack frame PC field points to new odd PC, instead of address of BSR opcode.

Beta 17:

- Enabled windowed mode window maximize button.
- Removed windowed mode window inner edge.
- -diskswapper command line looks inside all supported archive files.
- Any non-UAE controller harddrive didn't work. (b16)
- Beta 16 D3D alignment fix updated, previous broke 1:1 pixel mapping in some situations.

Beta 16:

- Added easy to use log options to Paths panel. Open = open selected log or current config to text editor. 
  Save All = create file that includes both logs and current configuration. Makes requesting logs easier for debugging purposes.
  Log checkbox overrides misc panel logging option. Checkbox state not saved, resets back to non ticked after restarting.
  (Included config is exact current configuration, not necessary same as last loaded config file)
- Fixed uae-configuration config listing garbage ????? line at the end.
- USB HID game controller [-] and [+] input axis movement used wrong event (one-shot instead of normal press/release).
- Possible fix for D3D display alignment errors in some modes (AMD only apparently)
- Fixed D3D blank screen after alt-tabbing back to fullscreen mode. Non-D3DEx (Windows XP mainly) only.
- Non UAE HD controller harddrives and CDFS config data conflict, inserting CD corrupted HDF path.
- Some CD (both images and physical drives) on the fly media switching problems fixed.
- Ignore start uncaptured and start minimized if starting in fullscreen mode.
- Input panel slots #2-#8 not saved to config file if slot #1 had GamePorts [PORTx] event.
- Configuration #1-#3 selected and GamePorts not set to <none> and then changed back to <none>, original slot #1 event was not restored.
- CD32 gameport type also enabled normal joystick firebutton/2nd button event. Only CD32 red and blue are needed.
- Break to debugger if program jumps to non-existing memory ("Did something stupid") and any break point is already active.
- Remember last selected Input panel device.
- 64-bit build now support up to 2.5G memory space and max 2G of Z3 fast RAM, emulated as 2x1G Z3 boards (1G is max Z3 board size)
  Note that AmigaOS may have signed integer problems if 2G border is crossed.

Beta 15:

- Fixed too large GUI size if non-100% Windows DPI setting and full optimized build. (b13)
- Fonts with long names caused corrupted dialog structure.
- Marked WinUAE as Windows Vista/7/8 compatible. This should have been done long time ago, without this Windows enables
  some backwards compatibility features, for example Aero gets disabled in fullscreen directdraw.
- Disabled COPJMP bug emulation, it triggers incorrectly in Seven Sins/Scoopex.
  (Already did some logic analyzer testing but I can't yet confirm exact trigger conditions for this bug, it wasn't as simple
  as I originally thought)
- Editing non-custom event's qualifier reset input target to none.
- Lightpen cursor wasn't removed when lightpen mode was disabled.
- Wintab tablet messages corrupted memory if Windows driver installed but tablet mode was not enabled. (b6)

Beta 14:

- Borderblank emulation rewritten yet again, now borderblank state is included with color 0 change events (this time
  exactly where it should be), fully cycle-exact, works even if some strange program toggles it multiple time / scanline.
- Some GUI sanity checks, for example check if GUI size is really small or huge before opening GUI window and also after
  GUI is open. Reset size and fonts to default if size is out of range.
- GUI Windows DPI setting compensation fixed.
- Activate COPJMP bug emulation, only if 68000 CE. (logged since b11)
- Autoscale aspect ratio fixed. Setting is enabled by default now.
- Disable map rom if 24-bit address space and 2M ROM (No space for ROM mirror).

Beta 13:

- Parallel port audio sampler had very bad quality on some systems. NOTE: Sampler requires exact DirectSound
  recording position reporting = not that good results when using some onboard Realteks etc..
  (It can be made better but because this is really pointless feature: pay or buy a better PC)
- Very old statefiles triggered keyboard powerup initialization sequence when restored, caused phantom keypresses.
- Sinc audio interpolation filter clipping fixed. (Was always wrong in UAE, was much more noticeable after b11 audio update)
- Input configuration parser didn't parse custom input event strings correctly if it contained '.' or ',' characters.
- Added experimental (and mostly useless) option that removes DOS reserved name restriction (CON is the most popular because
  it is also included with WB disks). Note that this causes some interesting side effects: most Windows programs, including
  Explorer, won't be able to open any file if it has DOS reserved name... You don't need this option, UAE has always
  mangled illegal names transparently (for example CON becomes something like "__uae__con" on host side)
  Configuration file only: win32.filesystem_mangle_reserved_names=false (defaults to true if not set)
- Disable screensaver option didn't work, SetThreadExecutionState() needs to be called periodically, not just once,
  function documentation is a bit confusing..
- When deciding first visible line and programmed mode: select which is largest, VBSTOP or VSSTOP. (SuperPlus)
- Added Keep autoscale aspect ratio checkbox, only sort of working now...
- Map rom region size mirrors ROM size, address automatically moved to 0xe00000 (512k) or 0xa80000 (1M) if 24-bit CPU.
- Remove interlace artifacts option halved size of display horizontally in some programmed screen modes.
- Portaudio sound and sound was deactivated automatically: sound led kept showing buffer underrun state.
- Disable screen updates if monitor enters power saving mode.
- When restoring state file with floppy image(s) missing (files moved etc..), there still was rare possibility that floppy
  drive was reported as empty.
- Some more manual BPLxDAT emulation updates, Sequential Magnet part garbage introduced in previous update is gone.
- Color registers were emulated as non-existing instead of write-only in OCS/ECS modes. (I guess only visible difference
  will be more colorful display if program crashes or does weird things and starts reading from color registers..)
- DENISEID is now non-existing if 68000 prefetch or cycle-exact and OCS Denise. (Programs may misdetect if no prefetch emulated,
  and now programs, if they even exist, that misdetect it on real OCS A500 will misdetect it on emulation too! :)
- Renamed Paths panel "WinUAE defaults"-paths, meaning of selection should make more sense now.
- Better input qualifier GUI, Windows key default qualifier added.
- Slot #5-#8 custom events didn't work correctly.

- GUI resize and font selection support added (misc panel). It was possible after all, needed only some hacking..
  * Default size is now larger then previously.
  * This is a hack, rebuilds classic Windows dialog resources on the fly while adjusting GUI element coordinates and size.
  * GUI size after resizing may not be exactly what you expected.
  * Windows always closes and reopens after resize. It is also normal, can be improved, later if ever..
  * Window/Fullwindow/Fullscreen have separate position, size and font settings.
  * Less than 80% size not officially supported, overlapping and clipping is normal. Select smaller font.
  * Possible future improvements: more preset sizes, some kind of autofit in smaller fullscreen modes.
  * I hope GUI now appears to be more modern than it actually is :)

- Version bumped to 2.5.0.

Beta 12:

- Moved cycle-exact option to Chipset group in GUI. Other options are minor options/hacks, CE is not.
- Do not enable wait for blit if immediate blitter is enabled in quickstart mode.
- Added RTG hardware sprite (mouse cursor) enable/disable option. Enabled by default if D3D mode. Was always enabled
  previously if D3D mode.
- GUI Memory panel 32-bit RAM size information text incorrectly included Z2 mode RTG memory.
- Added directory harddrive limit option to Harddrives panel. When enabled, all directory harddrives size is faked
  to ~950M with free space relative to original size (for example 500G HD with 100G free = 950M HD with 950*100/500=190M free)
  This hack is workaround for installers that think drive is full or have negative free space if drive is larger than 2G (32-bit overflow).
  Can be changed on the fly. Edit configuration file manually if you want custom limit size. Also virtual fake block size changed
  from 1024 to 512. More compatible with KS1.x dos commands that seem to use hardcoded 512 block sizes when calculating disk size.
- cpu_throttle configuration entry also accepts decimal values.
- Added Start minimized and Start mouse uncaptured Misc panel options.
- In minimized mode D3D/DirectDraw display updates are also now completely stopped.
- ECS Denise/AGA border blanking handling rewritten again. (Brian the Lion borders are black again)
- Ignore color 0 (background) writes if borderblank is currently enabled when deciding autoscale start vertical
  coordinate. (Brian the Lion)
- Parallel port audio sampler emulation partially rewritten, it actually sounds correct now, mono/stereo option added.
  AudioMaster IV confirmed working. Very pointless feature.
  
Beta 11:

- END special qualifier didn't work when combined with other qualifiers, some END + shortcuts leaked key presses to emulated
  Amiga side (b10)
- GUI wasn't centered and/or scrolling if single monitor, full screen mode and resolution smaller than 640x480. (b6)
  Automatically center to screen if GUI title bar isn't visible on any monitor. Two or more monitors and >800x600 resolution
  desktop in any monitor = always allow manual GUI positioning.
- Wait for Blitter changes:
  - Does nothing in 68000 cycle-exact mode.
  - Approximate CPU speed or 68020 CE: Pause CPU if blitter would steal all CPU cycles
  - Fastest possible: Any kind of active blit pauses CPU if writing to any blitter register.
  - Logged if triggered (only first 10 times)
- Quickstart modes (except 68000 CE) enables Wait for Blitter option.
- Wait for Blitter GUI only sets above "automatic" mode, manual config file editing supports forced "always" and "only if not idle" modes.
  (for debugging purposes)
- RTG video capturing uses now RTG vsync timing, not (possibly very different) custom chipset vsync timing.
- Added UAE Boot ROM AOS "heart beat" vblank interrupt, do not sync clock or check filesystem insertions if heart beat counter
  does not change = OS has been taken over, prevents possible memory corruption if program also overwrote system structures.
- RTC year tens digit was not in correct BCD format, probably no program cared about the difference. (Bug since the beginning)
- Extended adf writing was disabled, forgotten debugging and it was also disabled in 2.4.1. Oops. (241b11)
- POTGO register state was not fully reset when loading state, disabled mouse right/middle button in some situations.
  (for example Sound of Silents)
- AUDxDAT manual audio mode and new period was written to AUDxPER: new period value was loaded too late, after first
  8-bit sample was finished.
- AUDxVOL is 7-bit register (64-127 = max volume, 128 = 0, 129 = 1 and so on..). Actual volume range is 0-64.
- Sinc interpolator updated from UADE (from few years ago, better late than never..)
- Debugger 'm' command didn't show last byte of memory region.
- Log COPJMPx while copper is waiting blitter cycle conflict. Does not yet emulate blitter pointer = COPxLC copy.

Beta 10:

- BPLxDAT CPU/Copper writes are now accurately emulated. (Blerkenwiegel/Scoopex)
- COPJMPx triggered second cycle is special, does not need to be free but if it is free, it is allocated for copper.
  (EyeQlazer/Scoopex is now 100% correct)
- Emulate copper waiting + CPU write to COPJMPx slightly different copper cycle usage.
- Fixed chipset emulation infinite loop if program crashed and wrote totally bogus values to programmable display
  refresh rate registers.
- Both mouse and joystick enabled in same port: moving joystick does not cause mouse big cursor jumps anymore.
- Automatic center option incorrectly set display limits to autoscale limits (black borders).
- "Release" key qualifier support. When [R] qualifier is selected, qualifier key is released before sending mapped
  keycode and then immediately pressed again. Qualifier selection GUI is currently ugly.
- Modified Input Qualifier support, now non-matched qualifier combinations (one or more qualifiers pressed but no
  match in any 8 slots) always trigger non-qualifier input target(s), previously nothing was triggered.
- Added "Wait for Blitter" GUI option, when enabled, CPU is paused if blitter is active and CPU attempted to modify
  blitter registers. Previously was always enabled if fastest possible CPU (and still is), now it can be manually
  enabled in other modes, can be useful when running 68020/AGA programs that run badly in non-ce modes but also have
  some display problems in ce modes. (because of not accurate enough CPU speed)
- Fixed flickering graphics corruption in some programs (for example Disposable Hero), also could have caused
  reduced performance. (b1 display limit feature)

Beta 9:

- Replaced readpu.c 68020+ special case TST An/PC-rel and CMP #imm,PC-rel variants with proper table68k entries.
- Debugger disassembler decodes illegal instructions if opcode is supported by higher CPU model,
  shown in parenthesis, note that PC is only incremented by 2 in this situation.
- Debugger W (write to memory) command supports multiple values and strings.
- Slow debugger commands can be aborted by pressing return (console only)
- 64-bit DIVL.L checked div by zero exception before checking if instruction is 68060 compatible.
- Use IOCTL_STORAGE_QUERY_PROPERTY to query optical drive vendor/product/version information instead of SCSI inquiry.
- "Take screenshots before filtering" supported in RTG modes, takes screenshot from emulated VRAM buffer.
  8-bit png if 8-bit RTG mode, 24-bit png if >8 bit RTG mode. Does not capture mouse if mouse is emulated hardware sprite.
- "Capture before filtering" recording option supported in RTG modes.
- D3D D3DERR_DEVICELOST handling improved.
- Inhibit Windows error dialogs completely. On some systems missing harddrive still opened annoying Windows no disk error dialog(s).
- Improved extended ROM statefile support.
- Save ROM overlay state to statefile separately from CIA OVL pin state, fixes loading of statefiles if current configuration has
  CIA overlay support but state configuration does not. (Gayle based chipset or CD32)
- Misc statefile load compatibility improvements when current config is very different compared to statefile's configuration.
- DMA debugger 'c' = copper wanted this cycle but it wasn't available
- BPLxDAT non-DMA modifications emulated while bitplane DMA is disabled, not perfect but at least screen isn't completely blank anymore.
- Ancient Superfrog copper hack removed, it isn't needed anymore. (EyeQlazer/Scoopex is nearly correct now)

Beta 8:

- 68060 and CPU compatible checkbox ticked: generate unimplemented instruction exceptions instead of emulating instructions
  that real 68060 don't have. Integer instructions only, 040/060 FPU emulation still supports all 6888x instructions.
- Set FPU FPIAR register (No one shouldn't care, except unimplemented FPU exception handler which isn't supported)
- RTG state restore broke in previous update.
- Save RTG mode palette to statefile (Quite important missing information if display mode is 8-bit..)
- More memory space reservation updates.
- "Restart" GUI option improved, shouldn't cause strange errors if new config has 32-bit RAM enabled and old one didn't.
- Savestates with 32-bit RAM configured should now load without need to first load configuration that has same amount
  (or more) RAM configured.

Beta 7:

- Directory filesystem 64-bit seek (ACTION_CHANGE_FILE_POSITION64) broke in 240b27
- -nodirectinput mode was always enabled. (b6)
- -nodirectinput does not anymore disable mouse/keyboard directinput enumeration if rawinput fails to initialize.
- Syncronize clock enabled and loading new config crashed in some situations (b6)
- Blitter emulation didn't leave correct data in blitter's B data register after linedraw finished, fixes
  No Way demo by Academy that seems to use wrong minterm that requires correct static value in B data register.
- WASAPI exclusive software volume control support. It seems normal WASAPI volume control does nothing in exclusive mode.
- Added support for unimplemented integer instructions to 68k emulation code generators. Not yet in use.
  (This is easy part, unimplemented floating point support is very difficult because it requires special FPU stack frame)

- Experimental memory space rewrite. Now WinUAE reserves address space as much as possible (~1.6G if 64-bit OS, 512M if 32-bit, note
  that this is only reserved space, actual memory is not yet allocated). Allows more stable on the fly memory size changes.
  It is not guaranteed that this is safe to use and won't cause side-effects or other bad behavior or loss of performance,
  please test and report.

Beta 6:

- PC raw MFM decoding improved (uaeunp, Amiga/ST/PC multiformat PC images didn't decode properly)
- Interlace flag wasn't set if resolution had "i" flag but refresh rate didn't, caused blank screen in D3D modes.
- Set system time to host time (timer.device/TR_SETSYSTIME) when exiting GUI or unpausing if syncronize clock option is enabled.
  Only works if at least one directory filesystem is in use. (Shares directory filesystem process to minimize resource usage)
- Interlaced host resolution field matching with emulated interlace rewritten, now simply waits extra field if fields
  don't match. Can cause small sound glitches if small buffer but this is also much more reliable than old method. (Need tweaking)
- Small non-fastest CPU mode low latency vsync tweaks.
- Ignore CPU writes to DSKDAT. (Useless "DSKDAT: FIFO overflow!" log messages caused by some programs that poke DSKDAT).
- Added -nodirectinput command line parameter that completely disables directinput device enumeration.
- Gayle PCMCIA CF IDE emulation improvements, PCMCIA CF config #2 also supported (PC primary IDE IO addresses)
- GUI position is also saved in fullscreen mode, separate from windowed mode GUI coordinates.
- Some chipset mode on the fly configuration changes also reset RTG internal variables, causing blank screen when
  returning back to RTG mode. (Very old bug, "SetSwitch() - Picasso96 0x0x0" in log)
- Fullscreen RTG mode refresh rate uses chipset mode refresh rate or rate directly set in Expansions panel. Automatically selects
  lower available refresh rate if selected rate is unsupported. 
- Added option to enable/disable RTG vblank interrupt emulation. Previously it was automatically enabled if Refresh rate option wasn't set to
  disabled. Moved to separate GUI option because of above new feature and because some games don't like RTG board generated interrupts.
- Direct3D mode RTG OSD only updated when any part of RTG bitmap changed.
- Blank unused displays(s) (opens full screen topmost black window(s)) option added to misc panel.
- Only save minimal CPU context (registers and PC) during native/m68k code switching. Previously it saved lots of unneeded data,
  including data that can be changed outside of CPU emulator. May also increase performance in some situations.
  Finally explanation and fix for mysterious copper state corruption.
- CD image mounter: MDS image CD audio tracks didn't play if subchannel data was not included, MDS image data tracks that also
  included subchannel data returned wrong data.
- Host MMU write protect ROM regions in JIT direct mode because JIT only checks destination address type when generating x86 code for
  the first time. Badly crashing programs can corrupt loaded ROM image causing repeating red/black screen reset loop. (Another
  mysterious previously reported problem solved)
- Restructured UAE boot ROM variable locations, ROM part write protected.
- Doubleclicking Input panel Input Source column resets clicked line back to default. (Currently keyboards only)
- Added uae-configuration harddrive attribute modification support:
  Syntax: uaehfX_Z where X = unit number, Z = attribute name. (for example: "uaehf0_bootpri 10")
  Attribute names: devicename, volumename, root, bootpri, read-only, filesys, controller.
  Syntax is write-only. Use plain uaehfX to check current values.
  Reset required to activate modified settings.

Beta 5:

- More custom input event fixes.
- Replaced custom event single line string dialog with larger multiline dialog, increased allowed custom event string length.
- Autoresolution didn't detect interlaced mode in some situations.
- Added "Internal events" input device category. Currently it only contains two events:
  "CPU reset" and "Keyboard reset". It can be used to customize what happens when emulated Amiga is reset.
  For example: set CPU mode back to fastest possible, eject or insert disks, quit emulator, etc..
- Added 68020 prefetch CPU core. Emulates instruction prefetch without cycle-exact. "More compatible" option
  enables this mode (Previously it did nothing in 68020 mode)
- A1200/CD32 Quickstart compatibility slider changed: cycle-exact/prefetch/fastest possible without JIT/JIT
- ASPI support removed.

Beta 4:

- Custom input event autofire wasn't always canceled when shortcut included qualifier(s).
- Do not crash if 7zip unpacking fails because out of memory or process address space.
  (Big compressed CD images and 32-bit Windows)
- Log also RDB dostype in text format.
- Replaced misc panel checkboxes with scrolling checkbox list view. Now there is unlimited space
  for all kinds of on/off options that I previously refused to add because of lack of GUI space.
- Added disable notification icon option.
- Loading statefile using GUI now remembers statefile filename, allowing to save configuration files with
  statefile (running configuration file will automatically load the statefile). This required manual config
  file editing previously. Statefile path and checkbox that "forgets" stored path added to GUI.
- Ignore vendor specific USB usage pages (Do not list for example some Logitech USB mouse/keyboard receiver dongles)
- Z2 RTG + 68EC020 fixed, RTG requires memory mapping. (Memory mapping was originally JIT only and 68EC020 is not JIT compatible)

Beta 3:

- FPS led was always yellow in most non low latency vsync modes.
- Custom input event toggle didn't work (3rd and 4th slots), (2.4.1)
- Custom input event non-toggle mode with qualifiers didn't work correctly.
- Allow D3D RTG hardware sprite if non-power of 2 textures are supported, do not require shader support.
- Do not override currently selected CD image when loading statefile if new CD path does not exist. 
- Do not report CD not present state if restoring CD32 statefile that was created with inserted CD.
  It would usually cause immediate reboot to CD32 title screen and most CD32 shovelware ports won't care about
  the CD after game has been loaded. This has been broken previously many times..
- Any active breakpoint stopped all interrupts in some situations if 68020 cycle-exact mode.
- "ALT-TAB or middle mouse button untraps mouse - F12 opens settings" window title was missing.
- Uncapture mouse when entering debugger.
- Fixed blank screen in directdraw + no filter mode. (b1)
- Do not move directories or empty files to Windows recycle bin (if recycle bin option enabled).

Beta 2:

- Missing harddrive in harddrive dialog if any device returned "too short STORAGE_DEVICE_DESCRIPTOR only x bytes". (2.4.0)
- D3D crashed if Vista or newer and D3D9Ex couldn't be used (shaders didn't load for reason for example) (2.3.something)
- Vsync dynamic adjustment algoritm updated.
- Added vsync debugging command line options:
  -vsync_min_delay <val>: val is value from 1 to 90, minimum guaranteed extra time left for
  display rendering. Automatic dynamic adjustment system can still use higher values if needed.
  -vsync_forced_delay <val>: val is forced extra time, dynamic adjustment is disabled.
  <val> is percentage of total frame time, the bigger the value, the less chance for tearing and slower
  CPU emulation performance (if fastest possible mode).
  Above Parameters work in low latency no buffer mode and in all legacy vsync modes.
  -vsynclog shows frame counts (total, missed, errors, time waited for frame relative to total frame,
  average of previous value, current frame time difference) Low latency only parameter.
  -vsynclog2 starts logging current adjustment parameters. Mostly undocumented values except last 4:
  current adjustment value, time/scanline, total frame time, adjustment percentage value.
  Note that time unit is internal PC time counter (Rate can be seen in winuaebootlog.txt)
- Added -rtg_blitter <val> command line option (0 = disable native RTG blitter acceleration code)
- Show more correct vertical and horizontal frequency in display mode change log line.
- Added -bsdlog command line parameter, enables full bsdsocket emulation logging. (This was previously
  compile-time option)
- Support PC screen resolutions that have both progressive and interlaced modes.
- PC interlaced modes work in D3D mode, fixes blank screen.
- Added 50i/60i switching support to autovsync.
- Added timing compensation to low latency vsync for some drivers (nvidia only?) that don't count any
  lines inside vblank period. (MinV=1 in the log)
- IOCTL 32-bit overflow fix, CDFS DVD read error when accessing data outside of first 2G.
- Built-in CD image mounter 32-bit image size restrictions removed.

Beta 1:

- Autovsync 50/60Hz also accepts 100/120Hz modes if available, supports also refresh rates +-1 from nominal.
- CD32: CD command receive DMA emulation correctly emulated, TOC read hack removed.
- CD32: Repeat each CD TOC packet 3 times (same as real CD TOC format) (Universe title screen CDA)
- CD32: CD audio stopped if multiple play requests were sent very quickly (Universe in-game CDA)
- GUI RTG monitor selection implemented.
- Low latency vsync + fastest possible CPU auto adjustment updates.
- Legacy vsync automatic adjustment implemented, hopefully improves stability. (Remember that legacy
  vsync is only compatible with approximate/ce CPU modes)
- FPS led background flashes yellow if frame was missed in vsync modes.
- Detect display driver forced vsync, switch to double buffered mode if low latency no buffer mode.
- Always call D3D SetMaximumFrameLatency(1) if vsync mode (any vsync) to reduce latency, previously
  was only called when low latency no buffer mode used. (SetMaximumFrameLatency only available on
  Vista and later) Usually display driver control panel can be also used to override this value.
- Added auto scale integer scaling method, uses autoscale display size instead of max overscan.
- Integer scale mode filter horizontal and vertical zoom sliders value is now added to native screen
  size before calculating integer scaling value. (Negative values reduce size of screen = scale to
  higher multiplier earlier)
- Integer scaling supports non-power of 2 integer upscaling ratios now, downscaling still only supports
  1/2, 1/4 and so on to prevent scaling artifacts or blurriness.
- Warp mode now works properly in all vsync modes.
- Most filter modes (autoscale etc..) now fill "invisible" borders with black, for example this removes
  ugly extra border(s) in autoscale fullscreen or full-window mode when using non-4:3 displays.
  (In other words anything outside of 4:3 sized window are now blanked in non-4:3 screen/window sizes)
- Low latency vsync displayed blank screen if emulation was restarted using GUI Restart button.
- JIT GUI cache size box was broken.
- Do not return error code if uaehf.device read or write io command has null data pointer and length
  is also zero.
- Added more Windows error codes to directory filesystem to AmigaDOS error conversion table.

2.4.1

- Try to flush GPU queue after rendering the frame to prevent delayed background flipping that
  introduces tearing on fastest possible no buffer low latency mode.
- Integer scaling + gfx_xcenter_pos or gfx_ycenter_pos set had wrong positioning.

Beta 14: (RC3)

- Cycle-exact/approximate CPU speed non-vsync b1 sound sync update didn't work, it did nothing.
- Some more low latency vsync timing updates, improved dynamic adjustment.
- Legacy vsync slowdown problems fixed (2.4.0)
- Restored (50Hz) and (60Hz) fake rates that were removed in 2.4.0. Only available in legacy vsync mode.
- RTG + low latency vsync was not stable.

Beta 13: (RC2)

- Possible improvement for low latency no buffer mode tearing problem.
  - Fastest possible CPU: very simple dynamic flip delay timing adjustment. Reduces tearing (and slows
  down CPU emulation speed) but won't fix it completely. Difficult problem to solve 100% without
  losing too much CPU speed. Currently only way to remove tearing is to reduce CPU speed.
  - Cycle-exact/approximate CPU: Tearing problem on some systems should be fixed.
- Fastes possible low latency vsync sometimes flipped buffers before or during internal frame rendering,
  usual result was same frame being shown multiple times.
- Legacy vsync refresh rate didn't override internal chipset refresh rate causing very bad slow down
  if rates didn't match.
- Map directory filesystem Windows error ERROR_INVALID_PARAMETER to AOS ERROR_OBJECT_NOT_AROUND, 
  GetFreeSpace("path to empty CD drive") returns this code on some systems.
- Validate SCSI INQUIRY data before using it when requesting IOCTL CDROM vendor and product names.
  It seems query can return success without returning any data in some situations.
- Store beta dialog state to winuae.ini if enabled.
- Random bsdsocket crash when calling gethostbyname() with numeric IP address. (2.4.0)
- Allow again zero back buffers in DirectDraw mode, 2.3.3 allowed this configuration.
- Canceling HD HDF cloning froze the GUI. (Possibly Vista and newer only)
- Store also monitor's system specific id string to config file, system can have multiple identical monitors.

Beta 12: (RC1)

- More Fastest possible + low latency vsync tweaks.
- Ignore sprite 0 (normally mouse pointer) when calculating autoscale position and size.
- Custom Input event editor usually crashed.
- CD32 boot screen autoscale improved.
- b10 "show drives that require admin privileges" hide drives that also have drive letter.
  Background info: for some strange reason USB memory card adapters have two devices, one (without drive letter) that can't
  be accessed without admin privileges and drive letter device that can be accessed.
- Fastest possible CPU + low latency vsync and double frame mode (85Hz+) jitter fixed.
- "Masks" in filter panel is selected by default, "Overlays" is only selected if overlay image is already configured.
- Possible fix for D3D mask alignment errors in some scaling settings.

Beta 11:

- Adjusted Fastest Possible timing a bit more..
- Better PC interlace screen mode detection.
- Fixed invalid MFM encoding when converting standard adf unencoded data to MFM encoding. (Few incorrect MFM clock bits) Another
  "no one cares" fix (since the beginning, does not affect adf data quality), noticed when testing m68k AROS trackdisk.device write support.
- Vsync mode sound sync shouldn't be that aggressive. (b8)

Beta 10:

- Partial rewrite of fastest possible CPU low latency vsync detection code. Should fix jitter caused by frame not always
  getting shown on screen at correct time.
- Low latency vsync and double frame mode (85Hz+): guarantee every other vblank is really skipped, previously it didn't
  work correctly in some situations.
- Calculate final vblank busywait time from selected rate instead of using hardcoded 50Hz/100Hz-only compatible value.
  Fixes >50Hz no-buffer jitters.
- Emulate extra CPU time if it has been more than 7 lines since last extra CPU time, matches older behavior without
  losing 2.4.0+ performance increase.
- Fixed low latency vsync + fastest possible CPU getting in state where FPS dropped greatly temporarily, usually at startup.
- Show also drives that require admin privileges in harddrives panel, unselectable and marked with "Access denied"
  label. Only name shown because accessing any other attribute may require admin privileges.

Beta 9:

- Fixed D3D texture reallocation ordering. Caused blank screen or other strange side-effects (b7)

Beta 8:

- 68EC020/68020 state files didn't load properly if current CPU config didn't match.
- Adjusted JIT timing a bit, possible fix for slowdowns on some systems.
- Made sound sync a bit more aggressive. (2.4.0 relaxed it a bit too much, I think)
- D3D crash fixed (b7)
- CIA related rare statefile CPU TRACE error fixed.
- Crash fixed when CDFS CD drives enabled without any harddrives.
- Disable USB HID RAWINPUT (Fallback to Direct Input) if "blacklisted" devices found, added
  RM-203 USB adapter to list because it requires calibration which WinUAE can't support.

Beta 7:

- DirectDraw full-window mode on non-primary monitor was blank.
- Adjusted (again) fastest possible CPU mode extra CPU time scheduling, trying to find balance between better
  timing syncronization and not causing unnecessary slowdowns on some systems..
- OCS Denise bug emulation update, PAL STREQU counts are 8 (short field) or 9 (long field) lines, not static 9 lines.
  (Probably no program cares)
- F11 in gameports/input test mode shows next page (if list is longer than visible area).
- Manual display positioning X coordinate offset fixed (Filter panel or gfx_center_horizontal_position)
  Origin should be hardware position 0 (same as sprites), not first possible visible position.
- Fastest possible low latency vsync should work better again (b2), plus some other adjustments done, CPU throttling
  supported.
- Autoresolution worked badly in some situations.
- Removed USB_DEVICE_ID_RETRO_ADAPTER from USB "quirks" list, apparently it is working correctly according
  to firmware sources. (Perhaps older version was wrong, not exactly sure why it was included in Linux HID quirks list)
- Save also selected monitor name (gfx_display_name) to config file because order of displays can change when removing
  or adding monitors or replacing display cards.

Beta 6:

- Most CDFS RockRidge file comments were truncated. (Very stupid bug)
- CDFS media change still crashed in some situations.
- Show "UAE" as HD controller, not "n/a" (same as "IDE0" and others do)
- Improved fastest possible CPU throttle option. (Less CPU% usage)
- If fastest possible CPU does not have enough frame time for extra CPU emulation, reduce extra time in next frame to
  prevent possible high CPU% usage and slowdowns.
- Fullwindow RTG, D3D and scaling in Expansion panel enabled: switching to bigger RTG resolution than max fullwindow crashed. (b2)
- Updated statically linked zlib and libpng to latest versions (1.2.6 and 1.5.10)
- Debugger basic math operators support (+-*/) added, for example "m 8+100*4" lists memory beginning from 0x408. Note that space
  is not allowed because it is parameter separator.
- Borderblank didn't work if BPLCON3 was only written outside of displayable area (b5). This is still quite ugly implemention,
  it should be done similar to COLOR0 handling but it would require too big changes. Later..
- A2024 2 lowest RGB bits set correctly, was always cleared previously.
- Keyboard reset warning fixed (2.4.0)
- Fixed 1-3 line background color bar on top of screen in autoscale modes (2.4.0)
- USB joypad/joystick rawinput dpad diagonal movement fix. (2.4.0)
  
Beta 5:

- Left edge display limit fix, it was correct when in lores but OCS/ECS hires max overscan
  (or AGA in 16-bit fetchmode) can start 8 pixels earlier. (ECS SuperPlus missing left edge)
- Tweaked programmed mode sync positioning algorithm.
- Use config file gfx_top_windowed and gfx_left_windowed top/left window coordinates if borderless mode.
- Sort filter presets alphabetically.
- When calculating autoscale position, restrict left and right side of display inside hsync end and start positions,
  fixes really wide display in promoted modes. Note that autoscale can't work correctly in (some?) promoted
  modes because viewable area is larger than visible bitmap = borders are visible.
- DirectDraw mode wasn't re-initialized correctly when window size changed causing blank screen.
- Borderblank didn't blank topmost lines and last line. (Old bug which usually wasn't visible until now)
- Clear display decision tables when switching modes to prevent old, now possibly unvailable lines to be visible in new mode.
- Possible fix for mouse pointer jumping to (0,0) when pressing buttons and running on some virtual machines. (2.3.3)

Beta 4:

- 68020 CE mode statefile CPUTRACE (CPU state can be saved even in mid instruction) support was not complete,
  should fix "CPU trace: blah" errors when restoring statefiles. It can't fix already created broken statefiles.
- Fix built-in CDFS lowercase conversion. Only convert to lower case if plain ISO-9660 (without RockRidge or Joliet)
  also convert from second character to match CacheCDFS default behavior. Fixes AmigaOS 3.5/3.9 CD file names.
- Automatic scale/center/resize didn't like screen mode that has horizontal start as early as possible (SuperPlus + ECS)
- Automatic resize kept resizing forever in interlaced modes. (2.4)
- Do not emulate ECS Agnus internal 1M address space if JIT enabled and 0.5M Chip RAM because JIT ignores memory
  bank masks causing OS to misdetect full 1M Chip.

Beta 3:

- On screen led status line was drawn using both D3D sprite and directly to bitmap methods in D3D no-filter mode (b2).
- Removed PAL/NTSC vertical scaling hack which is not needed anymore.
- PAL/NTSC vertical scaling added to Fullscreen (TV)/(Max) filter modes.
- Fullscreen (TV)/(Max) also handles programmed modes like real monitor would, positioning and scaling using sync parameters.
- Fake 60Hz (VPOSW poking) did nothing. (2.4)
- DirectDraw + null filter crash fixed when display height was smaller than emulated display height. (b2)
- D3D overlay mask scaling artifact in some resolutions (2.4)
- CDFS CD drive statefile support.
- Ignore duplicate HID button IDs.
- Reduced flicker when refresh rate changes (PAL<>NTSC or other mode changes)

Beta 2:

- Filter system partial rewrite again. Do not use static display buffer. Always dynamically reallocate internal buffer if
  display mode changes (double scan modes, A2024 etc..). Fixes slowdown introduced in 2.4, also fixes shader filters
  that expect texture size = output size. Very tall (>1024 line) programmed modes are also now fully visible.
  Most likely some more updates needed..
- Always cancel custom event autofire if any release event arrives.

Beta 1:

- Input custom event autofire support.
- Automatically switch to another monitor if current monitor does not support selected RTG mode.
  (RTG mode list always lists all monitors' modes)
- CDFS ACTION_EXAMINE_ALL crash. (It seems this was 2.4's most stupid bug)
- Fastest possible CPU mode (including JIT) CPU speed throttle option. 
- Non fastest possible CPU mode CPU speed adjustment option. Currently GUI allows from -90% to 500%.
- Removed Adjustable CPU/Chipset speed option, above option should be much better.
- Switch from 16bit to 32bit (or vice versa) on startup if selected color depth does not exist.
  (Beta Windows 8 + NVidia don't seem to have any 16bit modes)
- Experimental sound sync update. Should increase stability of sound sync in non-fastest modes.
  (Side-effects possible)

2.4.0

Beta 27: (RC5)

- Saving directory filesystem statefile crashed (b23)
- "unixfs warning" optimization fix, ACTION_READ when file seek position was at the end
  file returned bad result. (b23)

Beta 26: (RC4)

- CDFS missing features added: HighCyl value and volume creation timestamp.
  I think all features are now done.
- CDFS media change stability improved (removing unreadable CD crashed)
- Forgot to mention: UAE CDFS also works fine under KS 1.x. (AROS CDFS was 2.0+)

Beta 25: (RC3)

- CDFS ACTION_EXAMINE_ALL fixed.
- CDFS file/directory search now uses simple hash table for better performance.
- Fixed crash introduced in b23 if filesystem was asked to open directory that couldn't be opened.
- Directory filesystem host memory leak fixed (leaked few bytes when filehandle was closed). Very old bug.
- Autodetect old-style geometry if >512M OFS/FFS partition harddrive was created with older UAE version.
- Some rare DMS files didn't unpack properly.
- Possible fix for diagonal artifact in some D3D filter modes.

Beta 24: (RC2)

- CDFS Amiga Rock Ridge 'AS' extension support added. (comments and protection flags)
- Free CDFS inodes if they are not needed anymore, previously only freed when media was changed,
  better performance and less (host) memory used when CD has 10000+ files or directories.
- More logical "RDB: WARNING: end of partition > size of disk" message. Check RDSK header size and partition(s)
  size separately.
- CDFS boot priority changed to -127 (lowest possible).
  
Beta 23:

- CPU Idle change improved, b22 caused major slowdowns on some systems.
- MB RAM option + JIT enabled detected wrong amount of RAM. (Can't have extra memory barrier there)
- Directory filesystem ACTION_DISK_INFO and seek updates (ACTION SEEK had some problems in archive mode)
- Sprite debugger showed 64-bit AGA sprite shape totally wrong.
- END + PrinScreen (Screenshot to file) used incorrectly screenshot to clipoard input event.
- Legacy vsync was horribly slow (b22)
- optimized normal safe "unixfs warning: Bad pointer passed for read" directory filesystem situation.
- added win32 ERROR_BAD_NETPATH = AOS ERROR_OBJECT_NOT_AROUND mapping directory filesystem error handler.
- improved filesystem volume insert/removal stability.
- config file/uae-configuration/custom input math formula (+-*/ and parenthesis) support.
  For example it is now possible to increase or decrease any numeric configuration entry,
  very simple example: "gfx_filter_horiz_offset=[gfx_filter_horiz_offset+1]". Multiple variables and
  complex formulas fully supported. This was already in previous beta because it was too experimental,
  but I guess it can be considered "official" now because of CDFS delay..
- A500 advanced chipset extra option always enabled RTC (real time clock), should have been enabled only
  when more than 0.5M RAM configured.
- built-in AOS CDFS removed, unfortunately it is not license compatible (non-commercial usage only).
  I was too blind to not notice it months ago.
- CDFS replaced with host native Linux isofs/directory filesystem wrapper which works quite differently
  but should have exactly same behavior from Amiga program point of view. Uses filesystem emulation but
  accesses CD data using Linux isofs filesystem code that directly reads CD sectors via IOCTL native API
  or UAE built-in CD image support.
  Amiga specific rock ridge 'AS' extension (protection flags and file comment) is not supported yet.
  Does anyone know any example CDs or images?
- AROS ROM updated.

New isofs/directory filesystem CDFS hybrid needs testing! 2.4.0 final waits until CDFS is guaranteed working.


Beta 22: (RC1)

- CPU Idle limit added, do not sleep if there are no frame time left, no more slowdowns if CPU Idle is set too high.
- Only use long frames to recalculate interlace autoscale positiong. (Autoscale jitter in some interlace setups)
- Autoscale didn't always ignore standard mode display limits when displaying programmed display modes.
  
Beta 21: (Fastest possible vsync should be fixed finally, only some testing left to do)

- Direct3D masks and scanlines fixed, forgotten testing code.. (b20)
- 2.3.2 "stop the cpu and wait until blitter has finished if any blitter register is accessed while blitter is busy and
  cpu mode is fastest possible" was broken and could cause side-effects in some situations.
- Direct3D to DirectDraw fallback if DirectX is not recent enough crashed. (b5)
- Keyboard lost sync state emulated, needed with some programs that don't handshake all buffered key codes but still clear
  the CIA keyboard interrupt flag, this caused dead keyboard after b1 update. Now keyboard should be fully emulated.
- Quickstart panel disk insert always reset track position to zero. (forgot to restore old track after checking disk
  type and bootable state, bug since Quickstart was introduced!) Fixes Wrath of Demon disk swaps.
- Z2 RTG changes broke chip RAM "memory barrier" causing crash if JIT executed code at the very end of chip RAM. (b16)
  
I finally really examined and even understood (I think..) how fastest possible and JIT modes handle CPU emulation,
(in reality fastest possible without JIT didn't really handle it all, other UAE ports most likely have exact same issue):
Some unnecessary and big event code inlining also removed (shorter code, should be faster on modern CPUs due to less cache trashing)

- Huge improvement in fastest possible CPU (with or without JIT) + low latency vsync performance.
- Fastest possible without JIT performance improved in non-vsync modes. It now executes small chunks of extra code after
  each scanline instead (as long as there is time, the faster the host CPU, the more extra time there is) of single huge
  chunk just before vsync. JIT basically does the same but because it has "unknown" timing, it may execute "too much"
  code first and then skip multiple scanlines until there is enough time again.
- Immediate blitter is now 100% immediate. Fastest possible (with or without JIT) performance greatly improved (10x+ possible!)
  if program does lots of small blits. Previously, even in immediate blitter mode, blitter wait caused CPU emulator to waste
  its extra "fastest possible time slot" by doing absolutely nothing else than waiting the blitter that never happened. It can't
  happen until next scanline, during extra fastest CPU "slots" chipset emulation has to be paused.

Fastest possible CPU throttling option will be also possible, this will be done later..

NOTE: Above changes WILL break some games/demos that (accidentally) worked previously. It is 100% guaranteed!
  
Beta 20:

- Fixed DirectDraw on screen led status bar surface allocation error when switching modes in some situations.
- A3000 quickstart CIA mapping fixed (no mirrors, can't enable both CIAs at the same time, only original Gary does this)
  and 0xc0-0xcf added (same as A4000) Only affects very badly behaving programs, programs that most likely wouldn't run
  on A3000 or A4000, with or without this change.
- Do not fully recalculate display parameters if only long/short field state changes.
- Lace<>non-lace mode switch scanline flashing effect hopefully fixed (may also break something else..)
- Overlay graphics Direct3D mode should have more correct positioning again (still not exactly right)
- Z3 board <16M RAM size autoconfig data makes more sense.
- Upper half of 8M RTG Z2 board was overridden by Gayle PCMCIA address space if enabled.
- Windows 8 Consumer Preview tested, didn't notice any problems. WARNING: No Windows 8 discussion here!

Beta 19:

- Triple buffered native chipset low latency vsync uses slightly different flipping method
  and also does not force min D3D framelatency value.
- Added active but mouse uncaptured pause/no sound option.
- Interlace to non-laced switch graphics corruption fixed (b17)

Beta 18:

- Z2 Fast Autoconfig on/off checkbox added.
- RTG double/triple buffering option added ("no buffer" is not supported in RTG mode)
- Do nothing if Load From or Save From file dialogs are canceled.
- Input panel mode (Configuration #1-#3) also autoswitches joysticks/mice using "GamePorts" method
  (GamePorts setting overrides Input settings) if GamePorts panel port is not set to "none".
  (autoswitch = press button on non-configured joystick or mouse = enables it automatically)
- Task bar click minimize didn't enable minimized state.
- Accept non-power of 2 sound buffer size.
- GUI sound buffer range changed, previously next size was always previous * 2. Now buffer sizes are
  256, 512, 768, 1024, 1536, 2048, 3072, 4096, 8192 and 16384 samples.
- Fixed NTSC and 100% floppy speed mode disk errors in some situations.
- A4000 Quickstart/advanced chipset configuration updates, 0xc0 to 0xcf is chipset mirror, ROM mirrors don't exist.

Beta 17:

- Fixed b16 low latency vsync issues.
- Possible fix for no buffer vsync tearing in D3D mode on some systems.
- Tweaked b4 too fast cpu audio hack, it broke routines that start playing empty sample (with length=1)
  and then near immediately reset audio pointer to correct sample. Hack detected this as a bad
  behavior and "fixed" it causing corrupt sound. (Game Solid 2 AGA)
- Release keys before pausing, stuck Alt if Alt-Tab pressed and emulation was set to pause when inactive.
- Magic mouse triggered window activation/deactivation didn't handle inactive pause or sound correctly.
- UAE controller mounted RDB hardfiles support bootable and do not mount checkboxes. "Do not mount" ticked
  = ignore all RDB hardfile partitions, "Bootable" unticked = do not boot from any RDB hardfile
  partition. Other boot priority values are ignored.
- Execute drive diagnostics IDE command should also set interrupt state (if enabled)
- Enable null filter if none and low latency vsync selected. It can't work with "none" filter.
- gfx_contrast/gfx_luminance/gfx_gamma didn't work on the fly using uae-configuration.
- Interlace mode detection rewritten. This should improve interlace emulation of weird programs
  doing weird things with interlace... Do not simply mirror BPLCON0 LACE bit but also check
  that LOF bit toggles correctly.
- Only enable vblank waits in non-vsync modes if triple buffering is enabled. I always forget that
  it is bad idea because on some systems it works fine, on some others it causes huge slowdowns.
- Some Advanced Chipset panel settings were not overridden if compatible settings was enabled.
  This could have caused strange compatibility problems even in Quickstart modes if default.uae
  had modified advanced chipset config entries.
- On the fly RTG vsync mode switch does not freeze the emulation anymore.
- Fixed A1000 Quickstart ROM missing message.
- KS 1.2 or older: map Z2 FastRAM as a non-autoconfig memory board.
- HID joystick negative axis values broke in b15.

Beta 16:

- AROS CDFS update, disabled annoying and pointless "Write protected" requester.
- Reload shader filter automatically if shader file's modification date changes,
  quicker to experiment with filters, changes will be visible immediately.
- Added texelsize as a parameter to _winuae.fx shader, needed to quickly access other
  pixels (not just current pixel), version number bumped to 3.
- DirectDraw mode screen blanked when adjusting slider settings on the fly.
- Reordered emulated autoconfig boards, first comes all Z2 boards and then all Z3 boards.
  KS1.x stops autoconfig process when first Z3 board is found, previously filesystem "board"
  was after Z3 boards causing UAE controller HDs to not mount under 1.3 if Z3 or RTG was
  enabled. Debugger 'dm' command also shows name of current autoconfig board in autoconfig
  config space if autoconfig didn't finish.
- Picasso_FindCard() will now return error if RTG board is not fully autoconfigured.
- Added RTG Z2/Z3 board mode selection. NOTE: both Z2 Fast RAM and Z2 RTG RAM must fit in 8MB
  Z2 autoconfig region.
- Removed NO_SHUTUP flags from emulated autoconfig devices, AOS is now allowed to "shut up" the card
  (usually can only happen if there is no free config space) and continue autoconfig process.
  Probably never happens but maybe someday it is needed.
- Clear RTG screen buffer when switching modes, sometimes previous graphics was visible on border
  area if RTG resolution changes without host screen mode change.
- Low latency vsync partial rewrite, fastest possible CPU/JIT should have better peformance
  compared to previous betas, triple buffering is not needed anymore, double and triple should
  have exact same performance, triple only increases latency. RTG low latency vsync should
  be stable now, some hangs also fixed.

NOTE: Previous betas saved gfx_backbuffers_rtg=2 to configuration file, edit it or remove it manually if
you want to use double buffer (=1) RTG mode which is also the default now. There is no GUI option yet.

Beta 15:

- Append 'i' to PC resolutions that are interlaced. (TV Out, VGA + 15KHz hacks etc..)
- Low latency Amiga interlace mode odd/even fields are now in sync with output's odd/even fields,
  if output resolution is also interlaced.
- Set cpu speed to "real" if it was fastest possible originally when switching cycle-exact on the fly
  using uae-configuration.
- MIDI device IDs are correct again (b1)
- Display panel displaydata PAL/NTSC/etc select box now mirrors currently active emulated setting.
- "Default refresh rate" skipped every other frame in DirectDraw mode (b14)
- gfx_autoresolution_min_vertical and gfx_autoresolution_min_horizontal support on the fly adjustment
  using uae-configuration.
- Write winuaebootlog.txt to Windows temp directory if original directory is read-only.
- Directory harddrives configured as unbootable are now really unbootable under KS 1.3.
- Mequa's optimized Akiko C2P added.
- HID raw input mask overflow when HID bitsize was 32. (PPJoy)

Beta 14:

- Input panel qualifier key/button support. I think this was requested many many years ago.
  (I didn't originally plan to do this now but someone reminded me few days ago..)
  - Any key or button can be configured as a qualifier (like a shift or control key that modifies behavior
    of other keys)
  - Any Input Target can be configured to require qualifiers. Input Target only triggers if it's
    Input Source and all configured qualifiers are active at the same time.
  - If multiple slots are configured, only slot(s) that have matching qualifier will be triggered,
    for example if slot 1 has qualifier and slot 2 has none: Only slot 2 triggers if Input Source matches
    without qualifier active and only slot 1 if Input Source matches with active qualifier.
  - Same qualifer code (1-8) can be configured to more than one key/button.
  - Qualifier(s) set to any other types than keys or buttons is currently undefined.
  - End ("*" in GUI), Shift, Alt and Control keys are mapped to built-in qualifiers.
  - Most previously hardwired key mappings (END+F1 etc..) are now implemented using Input qualifier system
    Exceptions: F12 so that there is no way for users to accidentally disable GUI access.
    END+<number> and END+<numpad number> disk swapper and statefile shortcuts, I didn't want to add 30+
    new mostly pointless input targets.. Disabled if END-key's qualifier flag is removed.
  - Qualifiers and custom events: slots 1 to 4 and 5 to 8 can have different qualifiers.

- Doubled number of input target slots (4 to 8)
- "Copy from"-button corrupted memory.
- Added keyboard default options to "Copy from"-button. Can select either Amiga or PC default mapping.
- TODO: restore only single input target to default.

- Less than 35Hz vsync display refresh rate: show only every other frame.
- Workaround for strange Windows feature or a bug. First call raw input RegisterRawInputDevices() to unregister
  HID devices and then immediately call to register them again: Windows randomly stops reporting HID events.
- Windows to Amiga clipboard sharing wrong string size if string contained cr/lf line endings.
- Low latency VSync screen mode switch fixes and updates.
- Native code execution (winlauch.alib etc..) is not anymore allowed by default. Option in misc panel.

Beta 13:

- bsdsocket emulation: use SOCK_DGRAM if requesting IPPROTO_UDP + SOCK_RAW. Raw sockets require
  admin privileges and have restrictions (introduced in XP SP 2 / Vista). This partially fixes Genesis
  traceroute, UDP packets are now transmitted (Wireshark detects it) but for some reason it is not
  possible to receive ICMP packets using winsock anymore (but ping that both sends and receives
  ICMP packets do work fine, so it seems you can only receive replies to your own packets)
- bsdsocket emulation WaitSelect() incorrectly cleared break mask signals, this caused programs like
  traceroute to not exit with CTRL+C.
- Swallow raw input mouse middle mouse button presses if middle mouse button is set to untrap mouse.
- WinUAE Windows dialogs (not GUI or file dialogs) may have been invisible in some situations in
  fullscreen D3D mode.
- Some on the fly config changes caused side-effects if new vsync mode was enabled, for example
  JIT on<>off or fastest possible<>approximate caused graphics corruption.
- Switching on the fly to/from fastest possible CPU to approximate or cycle-exact mode in low latency
  vsync didn't switch to correct internal vblank detection mode.
- It was possible to enable both JIT and cycle-exact using uae-configuration which froze the emulation
  until GUI was entered and exited (which fixed the bad configuration). Now this conflicting
  configuration is detected and JIT is automatically disabled.
- Built-in CDFS crashed if CD was unreadable (empty CD-R).
- Input panel custom event configuration changes didn't trigger until some other config entry changed
  or GUI was entered.

Beta 12:

- Quick beta update: blitter cycle-exact mode was not cycle-exact in b10 and b11 release builds.

Beta 11:

- SocketBaseTagList() must not report unknown tag error unless tag is really unknown, not just
  unsupported. SBTC_LOGx tags are now "supported" because some programs sets them and they also
  do not want to get any errors.
- bsdsocket.library SBTC_IOERRNOSTRPTR, SBTC_S2ERRNOSTRPTR and SBTC_S2WERRNOSTRPTR implemented.
- bsdsocket.library SBTC_FDCALLBACK implemented. Should fix (SAS-C compiled only?) Unix ports that
  use both socket and plain file FDs.
- Multiple bsdsocket emulation thread safety fixes. Should finally fix all YAM hangs.
- Directory filesystem internal file size access update, previously Examine() and friends returned old
  file size if file size changed (either inside or outside of emulation) until file was closed.
  (fixes Subversion bad request 400 error)
- Built-in zip unarchiver utf-8 encoded file name support implemented
- Vertical centering and small enough display size: vertical positioning was really wrong.

Beta 10:

- RTG mode list should always list all monitors' supported resolutions.
- PAL filter display positioning is now same as other filters.
- Removed obsolete right control key hack, Amiga does not have right control key, it was only originally
  needed to handle keyboard layout B in old UAE versions.
- Cycle-exact mode and very heavy interrupt activity caused lost internal interrupt event in some very rare
  situations, bug introduced long time ago. (Guardian Dragon II / Kefrens random hang, probably others too)
- In non-vsync modes only triple buffering enables vsynced page flipping, other modes flip instantly
  for better performance (and possibly introduces tearing but it is better than bad performance)
- Log more complete RDB dump when mounting RDB hardfile or real harddrive using UAE controller.
- bsdsocket emulation tweaks. SocketBaseTagList() more compatible with AmiTCP (emulate weird behavior of
  breaking tag list processing if unknown tag detected, some programs actually don't even have a TAG_END..),
  get/setsockopt more compatible ("Unknown optlen (1)" log error messages) Convert SO_SNDTIMEO and
  SO_RCVTIMEO time values between milliseconds and struct timeval.
- HID input stuck button fixed if multiple buttons were kept pressed while releasing another button.
- HID input configuration loading didn't always match devices correctly

Beta 9:

- USB HID game controller support really works now. (HID signed value handling is a bit special)
  Also added pad quirks list from Linux, some game pads apparently report bad minimum and maximum range
  values, this also includes Logitech G13 stick which was not listed (reported range is -127 to 127,
  real range is 0 to 255) and this caused the b8 problem because I assumed it was supposed to work that way
  which of course broke other correctly working devices with negative minimum range.
- D3D and DirectDraw fullscreen mode monitor selection improved, it wasn't reliable if system had
  more than 1 display adapter(s). (Win32 EnumDisplayDevices(), DirectDraw and Direct3D monitor indexes
  are not guaranteed to be same)
- Adjusted sound buffer range, old 1 is new 2, 2 is 3, and so on. Old 7 is too big, most drivers won't
  accept it and new vsync can work with buffer smaller than old 1. (Buffer size "0" or "1/2" would have
  been too confusing..) In other words, if you load old configuration, only value shown in GUI increases by one,
  real buffer size does not change.
- Fixed Graffiti emulation crash if Graffiti hires mode was detected but emulation was
  not configured for superhires support. (Only in some situations)
- Disable genlock detected option if A2024 or Graffiti enabled, this is impossible configuration and would only slow down
  emulation (forces Graffiti emulation to keep looking for command codes continuously)
- PC keyboard emulation mode, maps keys like F12, End, Home etc.. to Amiga key codes (afaik same key codes are also used by AROS, OS4 and MorphOS).
  Num Lock opens the GUI by default (Only remaining key that is more or less free), all other special UAE key mappings are disabled.
  Config file only at the moment: input.keyboard_type=pc
- Do not include "raw" display modes (marked as "!") in RTG resolution list.
- Old vsync mode is back (native only, non-fastest CPU mode compatible only)

Beta 8:

- Fixed D3D RTG hardware cursor stupid divide by zero crash introduced in b6
- Old "Include CD/DVD drives.." now always mounts in CDFS + uaescsi.device mode (uaescsi.device is automatically enabled)
- Approximate CPU speed and 68020: divide A500 instruction cycle counts by 4.
- RTG vsync and >=100Hz display didn't work correctly.
- RTG vsync and non-fastest CPU speed mode fixed.
- Removed RTG autovsync setting, it does not make any sense.
- Fixed D3D + no filter crash in some situations.
- CDFS CD mounted drives are now bootable but only if media is present when drive is mounted to prevent ugly "No disk present in device CDx:" requesters.
- Display vertical position was wrong if A2024 or Graffiti emulation was enabled.
- AROS ROM updated.
- Low latency USB HID game controller raw input mode is now the default (except if Windows XP, it should work but enumerated device paths are wrong),
  old custom input mappings compatibility is not guaranteed, DirectInput is still used for any non-HID devices.
- Fixed HID analog stick handling if reported range was -val to +val instead of 0 to +val, also other small updates.
- USB HID device name detection improved, less generic names, better match with DirectInput device names.

Test all input devices and report any strange behavior!

Beta 7:

- vsync in non-fastest CPU modes fix (b6)
- Renamed "Include CD/DVD drives.."
- Disable other uaescsi.device CD drives if image mode or drive letter is selected from CD type select menu.

Beta 6:

New vsync should finally work in all modes.

- Removed sound exclusive checkbox, WASAPI exclusive modes are now listed in select menu.
- New RTG vsync using low latency sync method, currently always triple buffered.
- Display selection GUI changed again, now lists both display adapter(s) and connected monitor(s).
- Associated ".uae" didn't set correct icon id (right click on .uae shows wrong or missing icon). Reset .uae association again to fix it.
- Fixed filter panel hang in some situations before emulation was started.
- Low latency vsync keeps list of modes that have already been calibrated, switching back to remembered mode uses stored calibration value.
- Unreliable old-style vsync options are gone. Replaced by low latency + double or triple buffered mode.
- DirectDraw low latency vsync fully implemented.
- RTG hardware cursor positioning fixed in aspect ratio corrected full window modes.

Beta 5:

- Removed obsolete fake (50), (60), (100) and (120) refresh rates.
- Primary Display Driver monitor selection removed.
- Only primary monitor allowed >75Hz modes.
- Does not load or use ddraw.dll anymore if D3D mode enabled.
- Display and mode enumeration rewritten (does not use ddraw aymore).
- DirectDraw mode vertical positioning fixed (was always on top of screen)
- Fixed Sound panel crash if sound card id stored in configuration file was larger than available number of sound card drivers.
- Handle situation where PortAudio Pa_IsFormatSupported() returns true but Pa_OpenStream() fails with paInvalidSampleRate.
  (Usually seems to happen when requesting 44100Hz but hardware supports only 48000Hz) 
- VSync sound syncronization improved (All types: DirectSound, WASAPI, OpenAL and PortAudio). Note that buffer settings are not same between device types.
- SND% blue/yellow/red flickering fix, previously flickering speed changed depending on buffer size.
- More fastest possible/JIT low latency vsync updates.

- AROS CDFS is now UAE boot ROM built-in. "Include CD/DVD drives.." now has two modes:
  - if uaescsi.device is not enabled: mount as Windows drive (same as previously) This mode may disappear in the future.
  - if uaescsi.device is enabled: mount using built-in CDFS. (Correct file names, protection flags, audio tracks etc..) There is no need to install
  Amiga-side CDFS anymore. I am not sure if AROS CDFS if good enough but at least it appears to work..

  "Include CD/DVD drives.." (+uaescsi.device) can now be used to install OS3.0+ safely. KS2.0+ only. (CDFS requires 2.0+ features)

Beta 4:

- Another switching from CE mode to non-CE hang fix. (Blitter nasty related)
- Another too fast CPU audio hack update, fixes random glitches (Uridium II, Moonstone, probably many others)
- Low latency vsync buffering change, selected buffering mode can be modified now.
  - No buffering is same as previously
  - Double and triple buffering can be enabled, increases latency but can reduce random jumps.
- Fastest possible CPU low latency vsync update:
  - Works now without buffering
  - Flips buffers in vblank thread (Flipping timing is correct now, tearing gone)
  
Normal vsync may still be broken.

Beta 3:

- Fixed DirectDraw mode crash (b1)
- Fixed uaenet.device crash if program attempted to open it but winpcap was not installed. (old)
- Added CD32 drive emulation hack, CD32 Mutation Gold Compilation games now load (but they didn't work on my real CD32 either so technically
  not working is correct behavior. This hack is removed if it breaks other programs)
- Too fast CPU audio hack update, one of the hacks actually caused sound glitches with some strange sound routines.
- Do not blank screen if display can't be shown (DirectDraw display position negative upper left coordinates), now sets coordinates to zero.
- Keyboard statesave buffer overflow (b1)

- Experimental new vsync mode for fastest possible/JIT CPU modes. Tested using WHDLoad demos and games.
  - Uses secondary thread which polls vblank state continuously. There is no way to get signal/message/whatever during vblank. Stupid Windows.
  - Activates automatically if 2 or more CPUs/cores detected and fastest possible/JIT and low latency mode selected.
  - JIT is also supported.
  - Works in windowed and fullscreen modes (just like normal low latency vsync).
  - This mode is currently buffered, used to hide horrible tearing (flip timing is much more complex if fastest possible CPU), will be hopefully improved later.
  - Sound pitch changes possible, this also needs some improving later.

Beta 2:

- Adjusted horizontal positioning, full overscan was not visible.
- Clear display buffers when monitor type or refresh rate changes.
- A2024 1-plane mode brightness level fixed (DPL bits implemented)
- Fix A2024 10Hz flickering near panel borders.
- 16-bit color supported in A2024/Graffiti emulation.
- Disable audio emulation hacks if 68020 CE (previously only if 68000 CE)
- Switching from CE to non-CE on the fly froze the emulated machine in some situations until mode was switched back to CE.
- PCMCIA CF IDE emulation added ("SC IDE" controller type), originally developed for AROS m68k PCMCIA CF IDE support testing.
- Fastest possible without JIT + low latency vsync should work much better now (but probably still not good enough)

Beta 1:

- Number of supported serial ports, MIDI ports and sound devices increased, allocated dynamically.
- Fixed crash if more than max supported serial ports or MIDI ports found.
- Sort MIDI and serial ports alphabetically.
- Hardfile write protection has never worked, only worked when using real harddrives.
- Very old keyboard handshake emulation hack removed, now following key code won't arrive until current key
  code has been handshaked properly. I guess this hack was needed when CIA emulation was not good enough.
- Parallel joystick adapter unused pin added to Input panel (spare/2nd button) World Cup 1990 parallel
  port joystick adapter uses this pin.
- Gayle IDE emulation IDE doubler mode improved, both buses are now separate, supports drivers that
  send command to drive on another bus when drive on other bus is still processing previous
  command (Linux/NetBSD/AROS)
- Emulate disk write with enabled wordsync. Write does not start until wordsync marker has been found
  on disk. Some games accidentally enable wordsync bit when writing. Previously write never started.
- Saving configuration crashed if scale mode was set to integer.
- -portable disables winuaebootlog.txt, also added -bootlog and -nobootlog parameters.
- Switching from physical CD to image or vice versa didn't send uaescsi.device change notifications
- Support added for special screen modes that can have different "input" and "output" resolutions
  or positioning. On the fly switching also supported.
- A2024 and Graffiti emulation implemented, uses above system. Configuration in chipset panel,
  autodetect = attempts to detect if mode is normal, A2024 or Graffiti.
- All programmed display modes (DBLPAL/NTSC, MULTISCAN etc..) should be always centered, exact
  display positioning configuration is now taken from sync position custom registers.
- Normal modes may also have better centering without extra configuration.
- Mode switching can leave old graphics garbage, this will be fixed later.

A2024 and Graffiti emulation notes:
- 32-bit display mode required.
- Direct3D or DirectDraw + null filter mode required. (=Does not work if DirectDraw + no filter)
- Make sure display resolution (lores/hires/shres) is equal or higher than required resolution:
  * A2024 10Hz: lores
  * A2024 15Hz: hires (loss of every other pixel if lores)
  * A2024 only tested using WB drivers (which don't use all A2024 special features)
  * Graffiti lores: hires (does not work at all if lores)
  * Graffiti hires (AGA required): shres (does not work at all if hires or lores)
- A2024 output resolutions: 1024x1024 (PAL), 1024x800 (NTSC), OCS chipset: 1008x1024 or 1008x800.
- Yes, weird A2024 refresh behavior is normal, single display is built from multiple frames!
- A2024 enabled but special mode line not detected: fall back to normal native display. Real
  A2024 would show 8 grayscale screen. This is not (yet? Pointless feature?) emulated.

NOTE.NOTE.NOTE.NOTE: Because display positioning has been changed:
- Remove all custom filter positioning settings first!
- Also test without enabled horizontal or vertical centering.

NOTE2:NOTE2:NOTE2: This can also change again during beta period. It won't be compatible with old versions.

2.3.3

Beta 7:

- do not misdetect standard adf images that have small amount of garbage data appended at the end of file
- forgotten experimental code removed. (b1, broke Sequential 18Frames! part)
- ECS superhires sprite color fixed (Didn't handle "color scrambling")

Beta 6:

- added "statefile_name" configuration file entry, sets default statefile name (normally "default.uss")
- fixed jittery raw mouse movement
- resolution autoswitch should now work correctly, no more strange centering without autoscale.
- analog stick mapped as a mouse had wrong and unstable speed
- rarely used configuration entries were only supposed to be written if they had non-default value.
  re-saving configuration will reduce size of most config files. Older bug.
- "Integer scaling" visible in GUI (AF specific feature originally), selects biggest integer scaling
  ratio that still fits on screen
- "VSync (new)" renamed to "Low latency VSync"
- Input panel configuration #1-#3 can be renamed by manually editing config file (input.x.name=name)
- GUI allows FPU in cycle exact modes. Not much point but if you really want to enable it..

Beta 5:

- CD image audio play buffer size increased, some system have glitchy sound if buffer is too small
- on the fly resolution change didn't reset all parameters
- resolution autoswitch now uses startup resolution and doubling values as highest supported mode
  (internal display buffer needs to be as big as max supported mode and it can't be re-allocated
  on the fly without major display glitches)
- RTG modes were rendered twice/frame, caused performance loss (b1)
- do not add >2M chip RAM to memory list if it is already added (perhaps m68k AROS does this automatically in future)
- borderblank change didn't redraw all changed scanlines
- key/button mapped to mouse directions didn't work
- add Harddrive allowed without admin privileges, removable drives do not seem to require extra privileges. (anymore?)
- b4 sprite optimization fix was broken
- automatic scaling max scaling values adjusted, now 3.x max overscan fits completely on screen

Beta 4:

- rawinput was not enabled properly in all situations (mainly affected -rawhid parameter)
- write log message if D3D command pipeline flush fails or is not supported (tearing in new vsync mode)
- added win32.gui_page=<name of panel> configuration entry, selects default panel when GUI opens
- magic mouse in fullwindow mode only uncaptures if mouse would move to another monitor
- quickstart mode now sets sound mode to "disabled but emulated" if it was "disabled", previously
  it was always set to "emulated".
- CD/CD image switching on the fly was unreliable (different problem than b2 fix)
- optimization that detects if sprite changed has not been working for ages
- sprites above or below bitplane area and AGA border sprite bit set caused graphics garbage around the mouse cursor in some situations.
- possible fix for autoresolution aspect ratio problems when filter aspect ratio setting is enabled
- removed default scroll lock -> inhibit screen updates key mapping
- AROS ROM updated

Remaining new vsync updates coming later...

Beta 3:

- tearing in new vsync modes should be completely gone, without introducing any extra latency
- Display panel buffering option now does nothing in new vsync modes

Beta 2:

- experimental joystick raw input support, enable using -rawhid command line parameter.
- D3D blank screen problem should be really fixed now
- empty winuae.ini now does exact same as -portable command line parameter
- harddrive paths relative to win32.hardfile_path didn't work
- config file full paths are converted to relative if path matches win32.xxx_path entries
- ignore new displaydata vsync stuff if RTG mode is currently in use
- Display panel new vsync refresh rate GUI really works now
- uaescsi.device cd image on the fly switching was unreliable
- uaescsi.device crash when switching images (I could only duplicate it with AROS CDFS)
- AROS ROM updated

Beta 1:

- new vsync option
  * does not need extra buffers (very little input lag), make sure "no buffering"
    is selected
  * works also in windowed/fullwindow mode
  * attemps to autodetect exact refresh rate, ignores what Windows/driver reports
  * less busy waiting, no more continuous 100% CPU usage
  * much more stable than "normal" vsync
  - old vsync is currently always forced to new mode
  Usual vsync restrictions still apply: do not use fastest possible modes, 50Hz capable
  display and driver required if you want proper PAL speed.
  Old vsync support may disappear later.
- keep old joystick Gameports setting if no joysticks detected when loading config file
- another method to enable unconfigured joystick: quick firebutton press = joystick port,
  long press = mouse port
- unconfigured joystick move left/right can also be used to enable joystick
- DirectDraw and 2x filter = non-centered image, broke few releases ago
- IDE multiple sector writes fixed (2.3.2 final fixed spurious interrupts but fix wasn't
  complete, last interrupt didn't always arrive causing driver to hang)
- set IDE CHS/LBA address after read/write command has finished as explained in ATA-1
  spec (last accessed sector, not next sector). This is undefined in later ATA spec
  versions, but AOS IDE driver >256 sector transfers corrupt data if this is not
  handled exactly as ATA-1 spec says. (Infamous "max transfer problem")
- detect and log split >256 block IDE transfers
- only load OFS from RDB if partition and RDB filesystem dostype matches exactly
- create _winuae.fx only if full D3D plugin path exists
- A590/A2091 boot ROM was mapped non-executable, crashed on 68020+ CPUs

2.3.2

Beta 8 (RC1):

- always disable FPU when using GUI to change CPU to 68000 or 68010
- slow ram max is now 1.5M (was 1.0M) when Gayle features are enabled.
- stereo separation 0% equaled 100% if stereo delay was 0 or 1
- stereo delay 1 was same as 0
- brightness/contrast/gamma read-only numeric value box added

Beta 7:

- borderblank only worked in AGA mode, BPLCON0 bit 0 was ignored in ECS Denise mode
- config_window_title configuration entry added, text shown on GUI and main window title bar if set
- delay allocation of filter buffers if current mode is RTG
- fixed uninitialized buffer when writing joystick input settings to config file, possible worst case issue
  was corrupt input configuration data in config file
- AROS ROM updated

Beta 6:

- Display panel overwrites chipset_refreshrate decimal part only when slider is adjusted
- Display panel directly accepts non-integer refresh rates
- last serial port device was not listed (b1)
- added serial_stopbits configuration parameter, sets Paula serial port emulation stop bit length.
  (0 = 1bit, 1 = 1.5bits, 2 = 2bits) Technically it should always work but at least some USB
  adapters don't seem to reliably read Amiga serial data at 19200 without setting it to 1 or 2.
  (interestingly for example 115200 works fine, this is quite confusing)
- Gameports panel remapping fixed (b4)
- avioutput refresh rate was not rounded to nearest integer (b5)
- fixed crash when switching from RTG mode to native mode (old bug, only in specific combination of filter and display settings)

Beta 5:

- floppy step signal's previous state was not restored properly from statefile (possible one skipped
  or one extra step when program steps for the first time after state was restored)
- tight DSKBYTR() read loop sometimes triggered second index sync pulse after few cycles. Broke some
  copy protections randomly. (for example original Double Dragon II)
- enable Gayle ID register in CD32 mode. CD32 boot menu checks for Gayle ID and immediately exists if Gayle is not detected.
  This must mean Akiko includes some (unused or never fully implemented?) parts of Gayle (at least ID register) because boot
  menu works on a real CD32.
- RESET instruction didn't work correctly in 68000 compatible non-ce (prefetch) mode (Arcadia/AR/A1000)
- only use triple buffer if triple buffer selected and vsync enabled. Seems to fix (at least partially)
  random Direct3D blank screen issue (also triple buffer in non-vsync modes is quite pointless)
- configuration file chipset_refreshrate accepts now floating point values

Beta 4:

- added new autofire option. Button released = autofire. Button pressed = normal non-autofire firebutton.
- 231b13 reset fix fixed again (A1000 and Arcadia emulation crash)
- automatic resolution switch interlace detection was unreliable
- show a message and refuse real harddrive write attempts to block zero (=RDB write attempt) if drive has one
  or more mounted PC partitions. Partitioning is going to fail even if write appears to succeed.
- screen mode change (fullscreen<>windowed or windowed mode window size change) released all currently pressed keys,
  it should only happen when WinUAE loses focus, not when switching modes
- window title bar mouse text shortened, F12 note added
- stop the cpu and wait until blitter has finished if any blitter register is accessed while blitter is busy and
  cpu mode is fastest possible

Beta 3:

- TD_WRITE64, TD_FORMAT64, NSCMD_TD_WRITE64 and NSCMD_TD_FORMAT64 io_Actual was always zero
- b1 CIA update broke CIA interrupts partially (keyboard problems etc..)
- MIDI input buffer length command line parameter, -midiinbuffer §12345
- AROS ROM updated, should work better again, previous one was quite broken

Beta 2:

- 68000 exception 3 emulation changes (again), many very old copy protections didn't work since last
  large CPU emulation update (for example original Soldier of Light and Zoom!)
- win32.floppy_path and win32.hardfile_path finally really do what they are supposed to do
  (multiple paths supported, use paths if file not found using original path)
- include non-CDTV/CD32 CD audio state in statefile. Currently ignored during restore
- fixed color change table overflow crash that can happen when running amiga program crashes really badly
- AROS ROM updated, now includes WB replacement

Beta 1:

- added built-in AROS KS ROM (alpha development build), used by default if no ROM files available,
  not very useful at this point but more compatible than very basic UAE KS replacement
- serial port telnet server (win32.serial_port=tcp://host/port, add /wait to delay startup until client connects)
- DSKLEN=0x8000 emulation timing improved (Codertrash / Mexx crash after fractal part)
- improved disk wordsync bit timing (El Egg Tronic Quarts / Quadlite)
- improved CIA emulation accuracy in cycle-exact modes (Risky Woods sound glitches)
- fixed random sample ripper crash (ancient bug)
- CDA sound volume configuration entry (sound_volume_cd), default = same as sound_volume value, no GUI yet
- on screen led bar position configuration. config file only, "osd_position=x:y" 0:0 = default, negative value =
  offset from top of screen, add % to make it percentage of display height (osd_position=0:95.0%),
  x-coordinate positioning not fully supported yet)
- restoring statefile with memwatch point didn't automatically enable debugger memwatch subsystem

2.3.1

Beta 13:

- fixed RESET instruction compatibility problem introduced in previous betas, broke action replay roms.
- BPLCON4 BPLAMx color changes were ignored in far right border (location where actual hpos is 0-7 or so)

Known bugs not fixed in 2.3.1 (too large changes to do in this beta series):

Codertrash / Mexx, crash after few parts. (Disk related)
El Egg Tronic Quarts / Quadlite, not loading. (Disk related)
Risky Woods, sound glitches. (CIA related)

Beta 12:

- emulate A3000 Fat Gary/RAMSEY configuration address space mirroring (no real world effect but I was testing
  m68k AROS ROM on my A3000 and noticed this mirroring)
- hrtmon 2.32->2.33 update
- hrtmon didn't work in cycle-exact modes
- MIDI device names are also stored in configuration file (overrides old style id numbers)
- in auto resize and center filter modes 1x/2x.. modifiers change window size
- manual filter configuration size adjustments added, saved to config file
- RTG: do not refresh area outside of bitmap if bitmap is smaller than RTG screen resolution (AROS does this)
- some read write-only custom register changes, bset (and other similar instructions) don't have previously
  read prefetch data appearing in data lines when reading (like most other instructions do), data is zero.
  This explains why buggy programs that for example bset #x,$dff096 don't mess up register contents too much.
  (Fixes Kefrens Party Intro by Wiz, coder thought that bset #10,$dff096 is the right way to enable blitter nasty)
- sample ripper ignored most samples (broken when audio emulation was rewritten in 2.3)
- topmost scanline was usually not visible in autoscale modes
- weak bit copy protected ipfs broke in earlier betas (only if using latest dll)

Beta 11:

- random RTG color errors when switching to/from fullscreen 8-bit RTG modes
- emulate chipset feature where custom dma pointer register write is ignored if next cycle uses same register for Agnus DMA access
  (bitplanes added, sprites partially supported previously) fixes intro MoreNewStuffy by PlasmaForce
- added execute drive diagnostics IDE command to Gayle IDE emulation (used by AROS ata.device)
- some spurious IDE interrupts removed (AROS ata.device complained)
- SPTI+SCSI SCAN ignored all detected non-CD devices (2.2.1)
- joystick layout A: numpad enter was mapped to button 2, it should have been button 3 and only if gamepad joystick enabled

Beta 10:

- fast multicore systems filesystem slowdown fix (always been there but "slower" CPUs didn't trigger it so easily)
- last scanline was invisible in filtered doubled modes
- sprite dma does not switch immediately off when DMACON sprite bit is cleared (Magic Demo / Diabolics)
- do not autoswitch (button press on unused input device) if it would replace GamePorts custom remapped input device
- fixed GamePorts parallel port configuration possible crash and wrong configuration

Beta 9:

- emulate mouse counter behavior 100% when joystick is connected (increase/decrease counter by 4 when
  two lowest bits change from 0 to 3 or vice versa) Most likely no program cares..  Mouse cursor
  movement is now exactly same as on real Amigas when moving joystick in mouse port..
- "Delete Saveimage" button didn't work, broke when CD image GUI was added
- save CPU/chipset ratio to statefile
- attempt to load disk image and harddisk paths in statefiles from current dir, current adf/hardfile paths
  and directory where statefile was loaded if original path or file is missing
- harddrive statesaves didn't save correctly if more than 1 harddrive was configured
- b3 "stop linedraw if blitter register modified while active" hack didn't always clear blitter active bit
- stopped CPU in CE mode was saved incorrectly to statefile (introduced in some earlier beta)

Beta 8:

- mixed mode CD first audio track didn't always play (uaescsi.device only)
- some CD/DVD drives refuse to read MODE 2 Form 1 data tracks if "only read Mode 2 Form 1" sector type set. "Any type" works..
- SCSI emulation CDA paused state should automatically unpause when play request arrives
- most SCSI commands in uaescsi.device SPTI mode were broken since SCSI emulation was implemented..
  (SCSI/CD audio changes should fix for example T-Zero and The Shadow of the Third Moon CDA problems)
- comma in cdimage command line was incorrectly handled
- audio pitch errors if audio period rate was near minimum audio DMA time (2.3.0)
- added basic doslist debugger command ("To")

Beta 7:

- RTG board start address was not 16M aligned if Z3 fast board smaller than 16M was enabled (no functional difference)
- D3D mode was still modifying host FPU rounding modes
- increased number of available breakpoints and memwatch points
- debugger commands can be sent via uae-configuration (or custom input event)
  uae-configuration dbg "debugger command" (remember quotes if debugger command has spaces)
- Fullscreen Max/TV filter settings only worked if display panel resolution matched emulated resolution
- added "Manual" filter option (originally used by AF, now added to GUI, positioning using absolute shres/laced coordinates) Ignore it.

Beta 6:

- "old" RTG interface added, used by AROS KS ROM replacement RTG driver

Beta 5:

- check clipboard sharing disabled state earlier, before any resource allocations
- clipboard sharing option added to misc panel
- fixed archive mounting crash if archive can't be fully unpacked (for example dms without filesystem)
- autodetect byteswapped harddisk RDSK signature in blocks 0 to 15 (not just block 0)
- fixed 68020+ non-JIT/non-CE but compatible mode set causing random errors in some situations (b1)

Beta 4:

- automatically disable battery backed up clock when input recorder is enabled
- automatic resize didn't set "configuration changed" flag when window size changed, size timeout also changed to 10 frames (was 50)
- 2352 byte sector plain iso images didn't mount (misplaced parenthesis in mode test..)
- exception return address error in non-JIT fastest possible CPU modes (b1)
- increased MIDI sysex buffer size (16000 byte buffer is not large enough, some devices send about 18000 bytes)
- copy also log file (if enabled) when saving input recording
- clipboard sharing can be disabled (config file only)
- joystick/mouse button contact bounce is now off by default (config file only)
- Gayle ID update, 0xD1 (AA), 0xD0 (normal). Real A600/A1200 confirmed (unless there are other revisions)

Rerecorder features:

Re-recorder = combined input and state recorder.

- automatic (every n seconds) or manual ("Save state capture checkpoint" input event) in-memory state capture
- circular buffered multiple state capture checkpoints (note that each state capture takes as much RAM as one uncompressed normal statefile), use "Load current state capture" to return to previous checkpoint and "Load previous state capture checkpoint" to return to previous (if more than 0.5s) or to older (if less than 0.5s to previous checkpoint) check points.
- recording can be started from boot or you can use already existing statefile
- When saving recording (can be done as many times as needed), following files will be created:
  - input file (*.inp) Note that currently this includes debugging data.
  - startup statefile (*.uss) This gets automatically loaded when starting playback.
  - all disk image(s) that were used during recording. Used automatically when playing back.
- during playback you can switch to recording mode any time by clicking "re-recording enabled" button (do not touch playback button). First state capture check point will be created automatically.
- playback is 100% cycle-exactly identical to recording. Even single emulated clock cycle difference will be reported and can cause desynchs! (Amiga's shared chip ram between custom chip DMA and CPU makes this very difficult, even one incorrectly timed audio DMA fetch stealing single CPU cycle can mess up the timing completely)

Requirements:

MUST BE A500 most compatible (cycle-exact) Quickstart configuration.
Only following hardware configuration entries can be modified:
- chipset (ocs/ecs)
- number of disk drives
- memory size
- Kickstart ROM

This means no harddrives. Even unused or dismounted harddrive will mess up the timing.

- standard and extended adf supported (including all compressed variants).
- compatible ipf support requires 4.1 or newer library version (not yet released)

- Warp mode is safe to use.
- Most host GUI options can be changed while recording or playing. Changing input options may not be fully supported.

All other hardware settings MUST BE exactly same as in original Quickstart configuration.
(it may still work but you are on your own and you should keep your hands away from keyboard)

Input file most likely won't be compatible with newer emulator versions if there is even single cycle exact mode
timing update.

It took over a month to make this usable. It takes less than one second to move this to "unsupported stupid feature" category. Think about it before posting anything stupid. (I don't care about this feature, I was bribed to do this :))



- input recorder and state recorder completely rewritten and merged, it is now "re-recorder"
  - desynch issues fixed
  - input recording file is linked to statefile, statefile is automatically loaded with input file
  - statefile/inputfile pair plus including all used disk images will be saved to disk when
    "save recording" button is clicked (does not stop recording, can be saved multiple times)
  - buffer size configuration replaced with number of states buffered (circular buffer)
  - rewind operation change, less than 0.5s from latest state: remove newest state and jump to
    previous state, more than 0.5s from last state: jump to newest save
  - "rewind" = "Load previous state capture checkpoint" input event or "Load current state capture
    cheakpoint" = "rewind" to newest capture checkpoint, never earlier
  - rewind restore graphics glitches fixed
  - cdtv/cd32 support (state recorder only, cd timing is not compatible with input recorder)
  - automatic in-memory input recording, rewind automatically starts input recorder playback (if enabled),
    any user input event (or end of input data) restarts recording.
  - save checkpoints manually by using "Save state capture checkpoint" input event


Beta 3:

- ipf support only worked with not yet released library version (b1)
- use original autoconfig IDs if maprom is enabled (blizkick detection checks for IDs, update probably needed in future)
- stop blitter linedraw if bltcon0 is accessed while line draw is active (workaround for Boundless Void / Nemol)
- Direct3D + LARGEADDRESSAWARE fix (possible fix for D3D blank screen problem?)

Beta 2:

- CIA timing issue in some situations (b1)
- some 68020+ exceptions had wrong return address (b1)
- do not attempt to save log window position if it is minimized
- do not set vblank bit during state restore, old code that broke interrupt delaying and rerecorder timing

Beta 1

!!!!!! NOTE: Re-recorder discussion will be opened later in another thread. All posts related to new input recorder
in this thread will disappear. !!!!!

- directory filesystem ACTION_LOCK_RECORD and ACTION_FREE_RECORD dos packets implemented (very rarely used)
- CDTV CDA playback didn't work if play ending track was set to last track (Prehistorik CDTV)
- reset CD support internal flags when reseting or loading new configuration
- save chipset extra setting to statefile, previously state restore always restored full
  advanced chipset configuration and reset chipset extra setting
- 3-stage 68020 cycle-exact prefetch pipeline (not much difference compared to old one)
- do not emulate very small audio periods exactly in non-cycle exact modes, this combined with
  very short samples used huge amounts of CPU power (used by some stupid audio routines) (2.3.0)
- when restoring state, sound was initialized after first frame, could have caused glitches
  or missing sound if audio registers were modified during first frame
- mouse counters (JOYxDAT) were not restored from statefile, fixes random statefile restore mouse jump
- VPOSW ECS/AGA-only LOL-bit (long line) is hardwired to zero (can't be modified) in standard PAL mode
- SCSI emulation START/STOP UNIT translated to physical drive load/eject command
- combined volume and period modulation was broken in 2.3 audio update (probably never used in real world..)
- added "gamepad" device type to gameports panel, has two differences compared to "joystick", 3 buttons
  mapped and pullup resistors emulated (most Amiga compatible gamepads have pullups). It is not possible
  to have pullups automatically in joystick mode because it can break some badly programmed single-button
  games, some detect always pressed button in this situation.. (fixes Aladdin and other games that
  only have working 2nd button if buttons have pullup resistors)
- allow scanning of plain roms (no archives) in winuae root directory
- A2065 statefile support (autoconfig location saved), max allowed transmit size was too small, big packets
  were silently dropped, random lost transmit interrupts, broadcast packets being ignored if NIC chip
  hardware multicast filter was disabled
- change emulated board filesystem and Z3 board IDs because of ID conflicts with QuickNet Z2 board (2011/2)
- set default filter to 1x (was FS) and enable new "default" scaling method that only scales if window
  size is set to "large enough" or so small that image wouldn't fit, always scales in fullscreen modes.
- "autoresolution" checkbox added to Display panel, automatically selects lowest used resolution setting
  (lores screen = lores/nondoubled, lores and hires at the same time = hires/nondoubled etc..) Positioning
  may not work correctly yet, glitches possible.. Enable some autoscaling settings if you don't want changing
  display size..
- do not attempt to steal focus in magic mouse mode if WinUAE is not active, it only messes up focus state
- A500 power led fade tricks should really work now
- less accurate CIA register access timing in JIT modes (not really much point in accuracy..)
- "re-recorder" implemented (completely rewritten combined input/state recorder). More information
  coming later.

- many statefile related changes for input/state recorder compatibility, may break something else..
  - WARNING: statefiles created with betas may not be compatible with future versions!
  - save current track's data and density in statefile if disk drive motor was active (regenerated
    raw track data/density after state restore may not be identical if using ipf or fdi images)
  - state save/restore while disk DMA is active is now fully supported
  - save strings in utf8 (should have been done long time ago during unicode updates..)
  - useless DMAC chunk was saved in non-CDTV configurations (2.3.0)
  - CD state chunks were saved even if selected configuration didn't have any CD drives (2.3.0)
  - 68020 cache and prefetch pipeline saved and restored
  - debugger memory watchpoints saved and restored
  - save active (very rare) interrupt delays (interrupts that have been triggered but have not yet
    been noticed by Paula)
  - mid-instruction CPU state save support, restored state CPU state is now exactly same
    as when state was saved (68000 CE only, 68020 CE later), previously current instruction
    was simply restarted (this was really complex and non-trivial task, it is only easy if you
    accept much higher CPU usage. Which isn't good idea...)
  - full blitter statefile support in cycle exact mode, state capture/input recorder only currently.
  This saves blitter emulation variables, not real hardware state (internal statemachine state, latches,
  counters etc..) because internal structure is unknown. State capture only because it requires 100%
  identical state after restore (normal blitter state forces current blit to finish). This is not
  enabled in normal state saving because it is very difficult to keep state saving compatibility
  between versions when state is hardcoded to current emulation implementation.


Final 2.3.0

Beta 20 (RC3):

- Configuration panel save and delete operations lost currently selected configuration entry
- some filters in DirectDraw mode had blank screen (depended on display height)
- VirtualAlloc() allocation error and JIT direct enabled recursed until stack overflowed

Beta 19 (RC2):

- rar archives crashed if file was already open (stupid design flaw, it was possible to
  open archives even if requested mode was read-write)
- added "fullscreen (max)" and "fullscreen (tv)" (approximate only) to "autoscale" select
  menu, basically replaces old "FS" filter multiplier

Beta 18 (RC1):

- F13/F14/F15 rawinput keycodes fixed (at least available on some apple usb keyboards)
- removed default volume and mute keyboard mappings because in rawinput mode they
  are always handled by Windows (which is annoying, I haven't found any simple way to
  disable them, "disable hotkeys" flag only seems to disable Windows keys)
- fall back to directinput if rawinput enumeration worked but RegisterRawInputDevices() returns error
- Paula disk fifo statefile support

Beta 17:

- removed duplicate "none" in filter list
- RTD also missed address error check
- MMU emulation bus error handler uses C++ exceptions again (like in original Aranym version),
  removed some not so useful forced inlining, smaller executable.
- decided to disable some MMU table caching and suddenly NetBSD crash disappeared, MMU emulation
  is probably much slower now but at least it seems to work until proper fix is found,
  (hopefully Aranym developers have some ideas) Debian 68k Sarge Linux confirmed working now
- right border color "glitch" when waiting for hpos<7 in copper list broke in b3
- only disable Direct3D9Ex if pixel shader support is < 2.0
- do not open files smaller than blocksize (512 bytes) as a hardfile
- hardfile dialog accepts dragged and dropped files

Beta 16:

- removed old audio hack that was left accidentally, not needed since DMAL was emulated
  (Murder, Mission Elevator etc.. compatibility hack is finally gone)
- CD audio OS specific code was duplicated in ioctl and image mounter, moved to common
  source file
- LARGEADDRESSAWARE compiler flag was lost sometime ago, ~1.5G RAM is again possible under
  64-bit Windows versions
- second Z3 fast ram region was incorrectly mapped if "z3chip" was enabled
- on some systems winuae stole focus when some other application attempted to open fullscreen
  mode
- Windows to Amiga clipboard conversion was not protected from starting new transfer when
  previous was not yet received by Amiga-side (previous fix only handled Amiga to Windows
  direction), usually caused crash when pressing printscreen in rawinput mode
- 680x0 RTS emulation didn't check if new PC was odd (seems to have been missing since the
  beginning?) This finally solves mysterious JIT crashes (thanks Glen!)
- Epson printer emulation didn't flush print buffer when form feed command was received
  (and some other commands that cause new page to be generated)

Beta 15:

- swallow USB keyboard led mode phantom keypresses, do not touch non-enabled keyboard leds,
  key pressess do not cause lost led state sync anymore. rawinput mode only.
- floppy panel disk image creator can now create FFS and bootable images, pre-formatted
  extended adf ("custom floppy") will be created if label is set or FFS or bootblock is ticked.
  (empty label box = label will be "empty" when creation standard adf)
- b1 plugin path detection didn't check exe location\plugins

Beta 14:

- DSKSTEP and DSKSELx going inactive at the same time steps the rw-head normally
  Fixes Euro Soccer stupid disk change detection.
- uaehf.device HD_SCSICMD TEST UNIT READY returned an error (HDInstTools works again)
- added 68020 CE-mode very approximate 2-stage CPU prefetch pipeline emulation (not that 68020
  don't really have 2-stage prefetch but it still will be more compatible without major changes)
  Fixes ATR and (partially) Last Ninja 3 CD32 graphics glitches, (missing blitter waits..)
  also more compatible with self-modifying code
- CD32/CDTV empty "image mode" tried to select physical drive
- added windowed mode configuration GUI setting (borderless, minimal, normal, extended)
  Extended is WIP and something you (and me?) should ignore
- do not capture mouse if left mouse was clicked and WinUAE window had no focus
  (now available via GUI = can't be totally useless anymore..)
- borderless mode can be dragged by clicking mouse button once, only double click captures mouse
- fixed epson printing emulation blank page when printing multiple text pages and later pages
  didn't have any font or font style changes
- more prowizard ripper updates

Beta 13:

- addaq.x #x,Ax and subaq.x #x,Ax had too long cycle count (this was really stupid bug)
- joystick type (default,mouse,joystick,analog joystick,etc..) was reset to default when
  configuration was loaded
- do not decide bitplane dma overriding sprite dma too early, DDFSTRT might get moved few
  cycles before bitplane dma was originally supposed to start (Heimdall 2 AGA mouse cursor)
- floppy panel DF0: "write-protected" text was getting disabled
- SCSI emulation is only forced if version stored in configuration file is older than 2.3
- CDTV MODE2FORM0 2336 byte sectors didn't work in image mode
- Sherlock Holmes - Consulting Detective separate video tracks hack removed, working full image is available.
- mds subchannel data wrong positioning fixed
- fixed some rare thread syncronization issues when CDA was stopped
- read also standard 2048 byte sectors using SPTI if CDA required SPTI mode, mixing IOCTL
  and SPTI does not seem to be reliable
- Brian the Lion CD32 starts CDA play at the very end of data track, obviously this must not
  be an error, only return error if both current start and start + 2s is located inside data track
- files inside archives didn't load if path was relative
- paused CD32/CDTV was resumed after exiting GUI ("old-style" GUI pause/resume was not removed..)
- directories selected via "favorite menu" also sets default path
- prowizard updates

Beta 12:

- <drive letter>: without '\' in harddrive paths was detected as a relative path,
  automatically add missing '\', it was commonly used in old config files
- CD32 pad in 2-button mode usually returned non-existing 3rd button pressed
- CD32 pad in 2-button mode didn't have pullup resistor emulation (was lost when
  joystick pullups were removed in 2.2)
- autocorrect CD32/CDTV CDA starting position if R-W subchannel data is detected, workaround
  for a bug (happens on real CD32 and CDTV too) that can cause missed subchannel frames at
  play startup causing corrupt or missing CD+G graphics
- CD thread safety critical sections moved to common part from image mounter
- CD image mounter in play state while replacing image: state was still reported as playing
- do not enable rawinput if rawinput capable device is inserted after winuae has been started
- 2x or larger filters changed RTG hardware mouse cursor size.. (D3D + hardware RTG cursor only)
- scsi emulation always-on logging disabled, added -scsiemulog command line parameter

Beta 11:

- internal CD audio handling update, status change (starting, started, end, error) callback
  added, CD32 and CDTV emulation does not poll for state changes anymore, better accuracy
  in audio start and end timing. CD handling rewrite should be complete now.
- CD image mounter is now thread safe, no more weird and random behavior if mounted image was
  in use and image was ejected or replaced
- fixed rare crash in display emulation (introduced when right border blanking update was added)
- improved CD32 CD sound/animation timing
- CD32 CD timing now works correctly in NTSC mode (previously used hardcoded PAL values)
- "non-path" kickstart rom configuration file selection now only allows normal KS roms in
  kickstart_rom variable and extended roms in kickstart_rom_ext variable
- fixed D3D non-shader mode crash introduced in b9
- bogus autofire mode was enabled if same joystick was custom configured in input panel and in gameports panel
  (missing masking of flags variable, time to wear brown paper bag again..)

Beta 10:

- archive dragndrop worked too well, it unpacked everything, including adf filesystem etc..
- do not expand zipped filename when dragdropping if zip only contains single file
- insert floppy image dialog in disk swapper also "extracts" images inside selected archive
- MODE1 "raw" 2352 data tracks didn't work in CDTV and image mounter + uaescsi.device non-direct scsi mode
- MODE2 FORM1 data tracks didn't work in uaescsi.device SCSI emulation mode
- CDTV mode didn't close CD handle when reseting
- CDTV frame interrupts in non audio CD play mode stopped working (broke when CD+G was implemented)
- overlay height configuration file setting was written incorrectly if it had non-zero value
- statefile configuration entry is not lost when configuration is load and saved again
- scan zip directory even if compression method is unknown
- hardfile scsi emulation block validation checked against physical size, not virtual size:
  direct-scsi filesystem installed on dynamic hardfile didn't work very well..
- dynamic hdf corrupted data if hdf's physical file size grew over 4G
- bezel overlay support improved, aspect ratio correction, visible area autodetection,
  (image positioning is not yet pixel perfect)
- pointless bezel configuration file size parameters (temporarily?) removed, bezel overlay
  configuration needs to be reset (it had stupid design fault)
- DIWSTRT/DIWSTOP writes didn't check if hdiw state should have changed since last hsync
  (has always been broken but it wasn't really needed until Denise "bug" update in 2.0)
  fixes Friday at Eight / Polka Brothers

Beta 9:

- when attempting to play CD32 data track: return normal "playing" status and "play ended
  with error" flag in next status packet (Mission Impossible 2025 CD32)
- return error status when CD32 qcode command packet is received and currently played CD
  audio track is about to change (jumping "laser" in CD32 built-in CD player)
- new D3D filter stupid design fault corrected, all 2x or higher D3D shader filters had
  bad image quality because both internal source and destination textures had identical
  size..
- select box next to filter name is now D3D shader filter supersampling mode,
  1x = normal, 2x = internal texture is twice the size of display etc.. Big texture
  support required, makes some shader filters look more smoother when combined with
  bilinear filtering (for example hq2x)
- crash when entering or exiting GUI when ASPI SCSI mode is enabled (b6)
- cd32 pad shift register should stay in reset state in 2-button mode (F17 Challenge CD32)
- added cd insert/eject to systray menu
- added configuration file delayed cd insert, add "delay" to end of path ("cdimage0=<path>,delay"),
  waits 3 seconds before inserting the cd, workaround for stupid CD32 games that only work
  if CD is inserted after boot screen (F17 Challenge and Last Ninja 3, maybe others)
- fixed cue+mp3 size detection if mp3 frames included checksum data
- only accept 8 or 32-bit Windows clipboard image input (instead of crashing..)
- diskswapper and floppy/quickstart archive dragndrop: add all disk images inside the
  archive (I don't know why this was not done ages ago..)

Beta 8:

- GUI configuration panel crash fix (b7)
- do not emulate slow CDA startup in uaescsi.device mode
- blue button was still broken in CD32 pad 2-button mode
- removed obsolete 15-bit fullscreen mode support code
- statefile restore failed if rarely used 68020 M status register bit was set
- added protection against starting new transparent clipboard conversion
  if previous operation has not finished yet

Beta 7:

- reverted b5 audio hack, it breaks other programs and also it does not seem to
  be audio.device bug after all but application calling CMD_WRITE with interrupts
  disabled..
- zipped iso was unnecessarily unpacked completely during scanning if cue was found
  later
- some drives/driver/Windows versions don't seem to like IOCTL_CDROM_RAW_READ, returns
  ERROR_INVALID_FUNCTION (XP returned ERROR_INVALID_PARAMETER). Falls back to
  SPTI SCSI passthrough in this situation and uses SCSI READ CD command
- improved default ROM path handling
- ccd and mds CDA was silent (b5)
- higher CPU usage, display emulation debugging stuff.. (b5)
- initial rom scan didn't load AF key files correctly
- updated VPOSW fake 60hz support sometimes selected bogus 314 line timing for sound sync
  (not really much difference, might have caused some extra SND% changes)
- CD32 audio play status code was unreliable if new CDA play command was send without
  stopping previous play state (Fightin' Spirit CD32)
- CD32 state restore ignored statefile embedded CD image path (if included)
- CD32 state save saved wrong command fifo offset, restoring state can send some
  random commands to drive (old bug)
- new CDTV state file support was quite unusable
- state restore didn't initialize audio completely, samples playing while state was
  restored could play incorrectly until sample (on any channel) ended or new sample
  was started (old bug)
- printscreen key saves screenshot when button is released (was when pressed)
  quick workaround for Windows built-in screenshot not getting overridden in
  rawinput keyboard mode (perhaps there is better way..)
- "highend" quickstart mode was not in KS2.0+ check list
- fullscreen 8-bit RTG and "match depth" RTG setting enabled and 32-bit display
  mode selected in Display panel: 16-bit mode was selected with 32-bit mode
  color settings.

"Portable mode" updates: (and no stupid registry related comments again or..)

- added -portable command line parameter which is same as "-ini winuae.ini",
  creates ini in temp directory if winuae.exe directory is write protected
- /<command line parameter name> also accepted
- official support for relative paths added, checkbox in Paths panel, automatically
  enabled when ini mode is started (ini missing or empty), all paths that are inside
  of winuae directory are kept relative. Report all possible side-effects or paths that
  are not in correct format. Currently all relative paths have .\ prefix, this may
  disappear in future
- do not set apppath in registry in ini-mode
- real harddrive configuration path is now ":<name of device>" (was "HD_<name of device>")
  (to prevent relative/absolute path conversion conflicts, field is unfortunately shared
  with hdf paths), this is automatically converted when old config is loaded

Beta 6:

- MP3/FLAC background decompression, no more delayed CDA startup if audio file
  decompression takes more than 2 seconds
- implemented "delayed decompression" zfile open flag, currently only zip backend supports it
  and it is only enabled when using CD images. Most zipped CD images with big audio files
  start almost instantly now
- potential memory corruption crash in zfile_fclose() if file had parent file(s)
- zero length disk DMA (used by some copy protections) never finished, broke in b1
- fixed extra space characters in favorite menu items
- pause uaescsi.device CDA when emulation is paused or GUI is open
- uaescsi.device CDA lights green on screen CD led
- cue/bin audio tracks were completely silent (cue/wav worked)
- on the fly image switching didn't send uaescsi.device change interrupts correctly
  if CDFS polling flag was disabled (empty drive without diskchange command)
- new dynamic hardfiles have .vhd extension instead of .hdf

Beta 5:

- version number bumped to 2.3
- few lines of non-filter scanlines was missing in bottom part of display
- audio DMA start interrupt is now immediate after starting DMA in too fast CPU modes
  (normally when audio state changes to 5), fixes EasyACDDA hang. Seems to be
  yet another audio.device bug when CPU and memory is "too fast"..

More CD related changes and updates:

- unified CD32/CDTV CD unit allocation, also internal unit number is always zero =
  GUI CD media change now work as expected
- CDTV frontpanel Stop now quits frontpanel/CD+G mode correctly
- added more obsolete SCSI commands: PLAY AUDIO TRACK RELATIVE (10) and (12) and
  PLAY AUDIO (12) (10-byte version was added in b4)
- CDTV subchannel hardware interrupt timing improved, CD+G works in cycle-exact mode now
- cd configuration code cleanups
- added mds/mdf image format (only v1 and first session, v2 appears to be scrambled..)
- cdimage0 in configuration file now disables all following units (backwards compatiblity)
  add 2 or more cdimage[0-7]= lines in increasing order if you want multiple units configured
- cue/ccd/iso/mds detection in zipped cd images stopped working
- moved 2048 to 2352 byte sector conversion code to generic image mounter code from CD32
  emulation, CD32 FMV ROM now detects VideoCDs (and then it hangs)
- mp3 cd audio: detect audio length using ID3v2 TLEN tag if it exists, assume it is CBR MP3 if
  first 100 frames have equal bit rate, fallback to original slow full file scan if no tags and VBR
- remove mp3 decoding time from audio playback delay time, keeps av sync if decoding takes less
  than 2 seconds
- FLAC CD audio tracks supported (cue/iso/flac), perhaps this will be useful in future..
  (remember to redownload winuaeinclibs.zip if you want to recompile this or future versions)
- note that currently both mp3 and flac decoding needs to finish before playback starts which
  can take few seconds on slow machines
- some XP-only CD access issues fixed, tested on VMware workstation (donated by Cloanto).
  VirtualPC sucks too much.
- when looking for cue/iso/ccd/mds inside archives: do not attempt to autodetect (unpack)
  other files. CD image archives containing audio tracks should start faster now (all audio
  tracks are still unpacked at startup but previously they were unpacked twice)

Future todo: hardware IDE (ATAPI) and SCSI emulation to CD SCSI emulation connection, no big CD
GUI updates until it has been designed. (won't be done in this beta series)

Beta 4:

- rawinput was disabled if only one keyboard device was detected, input didn't work at all
  in b3 because of null keyboard (detected only one rawinput keyboard = it was ignore but null
  keyboard was still added later -> more than one keyboard -> do not fallback to directinput..)
- redirect unknown rawinput messages to null keyboard (shouldn't happen but you never know..)
- spaces not allowed in directory filesystem volume name (wrong validation routine used)
- bottom border was half-blanked in some doublescanned modes

Another major CD update. CD configuration unified, now any CD unit "slot" can point to different
CD backend (image mounter + scsi emulation, IOCTL drive + scsi emulation, SPTI drive + scsi
passthrough) On the fly changes fully supported. CD mess is nearly gone, code is finally structured
logically without special cases. (this finally made SCSI emulation quite easy to implement)

- SCSI emulation is now the default SCSI mode (CDFS and audio tracks always work, switch to
  SPTI if you need advanced stuff like cd writing) Some audio CD players work for the first time
  now because some SCSI commands have been obsoleted long time ago like PLAY TRACK/INDEX
- CD audio DAE emulation does not attempt to play data tracks anymore
- added most common CD audio SCSI commands to SCSI emulator, OS3.5+ PlayCD confirmed working.
  Following new SCSI command added:
  START/STOP, STOP PLAY/SCAN, SCAN, PLAY AUDIO MSF, PLAY AUDIO, PLAY CD, PLAY TRACK/INDEX,
  PAUSE/RESUME, READ SUB-CHANNEL, READ TOC, MODE SENSE/MODE SELECT (cd audio volume page only),
  READ CD and READ CF MSF (only audio extraction supported + subchannel options)
- added CD audio io commands to uaescsi.device (most programs use HD_SCSICMD)
- emulated INQUIRY vendor, product and revision fetched from real device if possible

Testing:

Load your normal WB3.x configuration (that uses uaescsi.device CDROMs), start emulation
normally. (This and following betas force SCSI Emulation mode!) Report all changes,
including logs, SCSI emulation logging is enabled.

Notes:

GUI selection overrides slot 0, for example if you normally have D:\ = uaescsi.device unit 0
and E:\ = uaescsi.device unit 1, mounting a cd image "ejects" whatever is in unit 0 and
replaces it with image file.

If CD32 or CDTV is started in "autodetect" mode and it chose unit 1 or later (CD32/CDTV or
Audio CD inserted), unit 0 changes are ignored until original drive becomes empty. This
needs to be more intelligent.

Beta 3:

- most debugger options now accept .b, .w and .l size extension (+special .3 if 3-byte word),
  old style separate size values (1, 2, 3 or 4) not supported anymore
- debugger 'w' memory freeze mode improved, now also works with copper writes,
  word and long size freeze values work properly
- fixed right border corruption when horizontal centering enabled
- filesystem access problems fixed (b2, forgotten test code..)
- another "too fast CPU" hack re-added to audio code
- quickstart "disk image requires ks2.0+" message ignored A3000/A4000/CD32 configurations
- skip DMAL emulation in JIT modes
- rawinput supports rawinput packets that have zero scancode but virtual keycode set or
  null device handle (for example some software injected keys and some keyboard media keys),
  packets with null device handle are redirected to new "winuae null keyboard"

Major updates in CD related options, IOCTL access, built-in image mounter, CD32, CDTV,
uaescsi.device:

- cd rom image and IOCTL handling rewritten, unified toc and subchannel data structures
- cd drive/image selection added to harddrives panel (quickstart duplicate, temporary
  location until real CD selection panel is done.. if ever..)  Use this to switch images
  and drives on the fly, report if switching causes crashes or weird behavior.
  NOTE: only unit 0 supported in uaescsi.device mode, other units are immediately put
  to "no disk" state when this option is used for the first time.
- quickstart/harddrives CD "image mode" selected with blank select box: enable image
  drive without media
- always use IOCTL in CD32/CDTV modes
- only enumarate SPTI devices when uaescsi.device is enabled
- subchannel support added to IOCTL CDROM handling (CD+G)
- CloneCD (.ccd) CD image file support added, including subchannel files
- CD32 CD subchannel DMA channel emulated, CD+G audio CDs supported
- CD32 CD end of play notification only worked if play command was last packet sent
- many CD32 and CDTV on the fly drive/image/media change updates again
- CDTV statefile support added
- CDTV 6525 (CIA-like 3-port IO chip/interrupt controller) emulation rewritten
- CDTV CD subchannel hardware emulated (CD+G, see notes below)
- added CDTV front panel CD player buttons to input event list (they directly control
  CD mechanism and they are the only buttons that work in CD+G mode)
- "regular" CDTV remote Play/Stop/etc.. input events emulate front panel buttons when CD drive
  receives enable front panel command, sends "normal" keycodes when frontpanel is disabled
- simple SCSI emulation added to image mounter in uaescsi.device mode (no CD audio support yet)
  simple means: CDFS in SCSI mode should work with mounted images now, nothing more.
  (TEST UNIT READY, READ [6,10,12], READ TOC, INQUIRY, READ CAPACITY emulated. Audio CD commands
  will be implemented in later betas)
- added SCSI emulation option to SCSI GUI panel, enables SCSI emulation when using real drives
- uaescsi.device mounted image file changed without CMD_ADDCHANGEINT or CMD_REMOVE media change
  interrups: use long 8 second media change delay (CDFS default poll time is ~5s)

CD+G notes:

Some subchannel packets will be lost if emulation slows down too much.
CD+G confirmed working, CD+MIDI should also work but not tested.

CD32 CD+G mode starts automatically, button also in main audio CD screen.

CDTV needs extra steps: In audio CD player screen select "TV/Keyboard" icon in bottom
right corner, then press front panel Play-button, only front panel buttons are accepted
at this point. NOTE: CDTV CD+G does not (yet) work in cycle-exact mode.

CD32 and CDTV do not correctly handle all CD+G discs, it seems both miss first few subchannel
packets at the beginning.. Confirmed on real CD32 and CDTV. They do work in emulation
if playback start position is about 1s earlier than asked but this hack is disabled
because it can cause cd audio sync issues in games.

Beta 2:

- CD32/CDTV image mounting broke in b1 (can still be broken in some situations)
- new audio state machine emulation froze in some situations
- re-added "too fast CPU" hack that fixes missing sounds with sound routines that use CPU loops
  in DMA waits (also needed in 68020 "CE" mode because short loops are currently too fast)
- automatic audio switching detected idle audio when playing long samples
- CD32 statefile restore ignored possible CD image file path in statefile
- CDTV CD led flicker was practically non-existing when reading data
- (I also noticed CDTV statefile support is still missing..)
- old CD audio timecode relative track position bug fixed (CDTV audio CD player slow time display)
- built-in image mounter cd audio timecode relative track position had 2 second offset
- real cd audio cd playback asked for exclusive CD access when shared also works fine
- do not parse mounted images (cue files) twice when booting in CD32 or CDTV mode
- path update in b1 broke D3D related paths
- CDTV processing thread stalled if no drive was detected when exiting

Beta 1:

- fixed Z3/RTG RAM leaking when restarting
- D3D scanlines can be (finally) enabled on the fly
- blank right border after approximate hsync position instead of filling it with border
  color that extends far outside of displayable area
- ECS Agnus bitplane DMA state machine update, state machine advances on OCS when DDFSTRT
  matches hpos and display window is open. ECS only requires DDFSTRT match. (yaqube)
- triple/double/single buffer option was never saved to configuration file
- autovsync was broken
- "old" overlays are now masks in plugins\masks, "new" overlays are in plugins\overlays.
  (rename overlays -> masks and create new overlays directory)
- both overlays and masks can be selected using GUI (overlay position can be only
  modified by editing configuration file)
- added Automatic center option to autoscale select menu, centers image using autoscale
  parameters
- audio state machine emulation rewrite, now it is fully cycle-exact, including
  correct DMAL DMA request line delays. (DMAL logic examined by yaqube, I was too slow and lazy..)
- disk emulation DMA accesses are now fully cycle-exact, emulates DMAL and Paula 3-word FIFO
- fixed ancient bug in disk emulation that emulated remaining cycles in current line twice
  when disk event triggered (index, word sync), basically made disk rotate twice the speed
  for about 20 or so bits of data from disk
- above disk events didn't work correctly if multiple drives were selected at the same time
  (very rare situation)
- added CDROM drives to quickstart CD32/CDTV "autodetect" select menu (works on the fly too)
- cdimage0=<drive letter>:\ at startup didn't work (only worked if changed on the fly)
- rawkeyboard hardcoded F12 check ignored focus
- drive sound emulation crashed if specific sound files were missing
- non-accurate sound enabled -option removed, difference compared to 100% accurate was
  practically non-existing, also now totally useless chipset sound options removed,
  disabled but emulated is now also 100% accurate
- files inside plugins-directory will be checked from 3 locations (until found):
  plugin_path, data_path and exe_path. (fixes some path issues introduced in 2.2)

In cycle-exact mode DMA fetches happen in exactly correct positions (need more CPU power),
in non-cycle-exact modes all DMA fetches use audio channel 0 position (faster, less timing
events needed). Complete custom chipset should be fully cycle exact now (in theory at least)

All "too fast cpu" audio hacks removed except audio.device AUDxDAT write with AUDxPER=8
and then waiting for interrupt, in JIT modes interrupt code may run fast enough to enable
DMA before audio state machine has returned back to idle state. This hack forces AUDxDAT
writes with AUDxPER less than 10 to finish immediately.


2.2.0 Final

- A3000 KS 2.04 ROM odd/even pair mismatched checksums fixed
- no registry or ini data, -datapath not used and winuae.exe in Program Files
  (CSIDL_PROGRAM_FILES): set default paths to CSIDL_COMMON_DOCUMENTS

Beta 12: (RC3)

- directory filesystem action_read/action_write with length=0 special handling
  added (host OS routines may have returned weird errors in some situations)
- monitor "bezel" overlay image support added, direct3d and configuration file only.
  gfx_filter_overlay=<path>:x,y,width,height (only path is mandatory)
  x and y: position of overlay relative to top/left corner. -1 = center, value% = relative to window size.
  width and height: width of overlay image. -1 = scale to window size, 0 = use original size,
  > 0 = scale to this size. value% = scale to window size + %adjustment.
- rawinput VID and PID values didn't work under Windows XP

Beta 11: (RC2)

- DirectInput keyboard and mouse didn't work in Test/Remap mode after emulation was started
- directory filesystem GUI directory/file selection dialog remembers previous path
- floppy sound disabled channels had different volume level
- XP DX check reverted, for some reason DirectX web installer didn't install all DLLs
  (including d3dx9_43.dll) when it was released originally, seems to be fixed now
- uaescsi.device: do not send media change interrupt if actual media state didn't
  change (was possible when changing cdimage0 using uae-configuration), some
  cd filesystem versions crash(!) in this situation..., fix media detection
  when switching on the fly from SCSI mode to built-in image mounter. Note that
  on the fly device changes only works properly if CDFS uses trackdisk.device-style
  commands (not directscsi) and media change interrupts are enabled (not polling)
- cdimage0= in config file (nothing after '=') means enable built-in image support
  without media inserted, do not detect and use physical/virtual drives
- renamed pad/joystick POV pairs (1) and (2) to (X) and (Y)

Beta 10: (RC1, official release before Midsummer)

- some V(H)POSW modifications corrupted memory (AR3 for example)
- AR3 3.09 odd/even pair rom image didn't load correctly
- AR1 has never worked in cycle-exact mode
- Amiga->Windows image clipboard sharing didn't work if any IFF
  chunk (except body) size was more than 255 bytes
- removed confusing and useless Input keyboard key numbers
- GamePorts test mode list vertical centering improved
- configuration file joyportX=kbdZ/joyZ/mouseZ (where Z is larger than max available devices) was not checked
- floppy sound channel mask added, configuration file only (floppy_channel_mask),
  default is all channels. 1=left,2=right,4=center,8=sub,16=surleft,32=surright.
- keyboard input configuration slots 2/3/4 not saved if slot 1 contained port
  configuration and stored slot 1 was mapped to default keyboard key
- configuration.backup and configuration.cache remembers hidden file attribute

Beta 9:

- "megachip" was added even if disabled (was fixed in b8 update)
- fixed DX detection on XP (was fixed in b8 update)
- removed "*" from DirectInput keyboard and mouse name strings
- uaeunp/virtual archives: if input file was inside archive and it had multiple output
  files (most raw disk image formats can have .ima, .adf and .ext.adf output files)
  only first supported file was listed. Plain files worked correctly.
- added "scanning ROMs" dialog
- fixed old memory corruption bug if rom scan data has single rom from odd/even pair
  (unpaired rom removal code was buggy)

Beta 8:

- Z3Chip is not a Z3 board anymore, now also compatible with KS 1.x (don't forget that
  32-bit addressing capable CPU is required)
- rawkeyboard RIDEV_NOHOTKEYS flag was missing (Disables Windows keys etc..)
- GamePorts remap/test GUI updated
- GamePorts remap when in Configuration#x mode didn't update GamePorts input mappings
- data in GamePorts overwritten Configuration#x slot 1 is stored in hidden slot 5, also
  saved to configuration when needed (not backwards compatible with old versions). Now
  you can load old configurations in Configuration#x mode, set GamePorts to <none> without
  losing original input configuration data in slot 1.
- added key label to keyboard configuration data, not used for anything yet (compatible with
  old versions, old versions simply ignore it)
- added supported archive extensions to CD image dialog's file type list
- DX SDK updated (June 2010), d3dx9_xx.dll version bump -> DX runtime update required...
- added stupid looking vid and pid values to rawinput keyboards and mice, makes it possible
  to distinguish multiple mouse or keyboard.. (instead of "HID Keyboard Device [n]" x N that
  change position if you remove or add any keyboard-like device, including bar code readers)

Important: if you have configurations with Configuration#1-3 set, please do following tests:
(There is no way I can test all possible combinations)

Test 1: Load configuration file, set both mouse and joystick port to <none>. Check that all
mappings are still 100% correct. NOTE: remember that Keyboard* and Mouse* are gone if you have
rawinput compatible mouse and keyboard (most likely). Keyboard or mouse mappings disappearing
due to this rawinput change is not a bug.

Test 2: Play with Game Ports mouse and joystick settings, add random custom mappings, whatever
(You can keep checking Input panel if you want) and then set them back to <none>. Mappings
should still be 100% exact same as when configuration was originally loaded.

Test failed -> email or attach original configuration and include short problem description.
(what test phase, what you did, what happened)

Beta 7:

- do not center horizontally if there is no bitplanes enabled (result was very badly aligned
  screen, normally not visible but if there are background color changes or sprites..)
- input config backwards compatibility fix, old versions read GamePorts mode as Configuration#4
- huge brown paper bag bug fixed, in some situations INTREQR can return bit 15 set.. (fast CPU
  modes only, introduced in earlier 2.x release)
- do not emulate hpos offset in non-cycle exact modes, JIT mode can return hpos/vpos value pairs
  that are not normally possible (and so far only some A500 programs require hpos offset = vpos
  increments when hpos equals 4, not when hpos equals 0)
- audio filter emulation didn't always follow power led state correctly
- emulate fire and left mouse button contact bounce (no 2nd and 3rd because they are connected to
  POT capacitors) Fixes Spacestone which waits for button release and then immediately checks
  button state again.. I guess coder had really bad joystick firebutton, planet selection works
  quite unreliably on my real A1200 :) cycle-exact only
- NTSC disk timing was not fully compatible with RNC Copylock
- b6 wordsync change reverted, another hopefully better tweak added
- joystick button pullups removed, this will break some games' second joystick button read routines
  but it has to be done because they wouldn't work on real Amigas with standard joystick either and
  this workaround also breaks some other games that don't expect pullups (Dick Tracy for example)

- another big input change, Game Ports settings are now always merged with currently selected
  input configuration (possibly overwriting event that was manually configured in slot 0)
  In other words, Game Ports panel settings are now finally working as expected by most users
  instead of only confusing most users :) Just select your gamepad/joystick using GamePorts panel,
  select Configuration#1 and remap remaining extra buttons, should be simple and easy enough now.
  
  This also means old Configuration#x configurations now have Gameports mappings merged when loaded.
  (which most likely is something you don't want) Workaround: set GamePorts settings to <none>
  Hopefully some kind of automatic fix is possible..

- GamePorts mapped Configuration#x events are marked as [PortX] in Input list where X is port number.
- GamePorts custom configuration in Configuration#x mode also supported.
  NOTE: configuration files that have GamePorts customized Input Configuration#x's are not
  backwards compatible
- renamed GamePorts port 0 -> port 1 and port 1 -> port 2, now same as input target port numbers
  (1 = "mouse" port, 2 = "joystick" port, 3 and 4 are parallel joystick adapter ports)
- do not add default mappings to Configuration#x joysticks and mice (not needed anymore)
- automatically disable empty devices in Configuration#x modes
  
  Just ask if you have any questions or suggestions. Input configuration is never finished :)

Beta 6:

- CE-mode CIA interrupt delay decreased by 1 CPU clock cycle, tst.b CIAICR immediately followed
  by move.w #x,INTREQ didn't clear the interrupt in some situations
- disk DMA used generic memory access routines, not chip access routines (could DMA to/from
  any memory address, not just chip ram)
- "Z3 fake chip" added, "unlimited" chip ram size. (technically it adds another z3 fast ram
  board that UAE boot rom changes to MEMF_CHIP|MEMF_PUBLIC|MEMF_LOCAL and removes normal chipset
  DMA addressing limits)
- two directory filesystem crash fixes (related to opening non-existing files or directories,
  broken during C++ conversion)
- CD32 state restore didn't work if CD32 configuration was not pre-selected
- save POT capacitors' charge status to statefile
- disk read DMA wordsync should not skip first syncword if bit stream is already aligned
  (Starglider 2 original)
- on the fly cycle-exact switching broke few betas ago
- use early blitter finished state emulation only in 68000 cycle exact modes, 68020 "CE" can
  execute blitter busy check followed by write to blitter register really too quickly

Beta 5:

- autovsync was broken in b3
- added NTSC checkbox to Quickstart panel
- use DirectInput keyboard if rawinput keyboard is not found, same with mouse.
  (do not disable both if only mouse or keyboard is found like in b4)
- DirectInput keyboard and mouse didn't work in Test/Remap modes
- Gameports remap keyboard configuration was not loaded correctly
- Write Allocate 68030 data cache bit emulated
- better "too fast" 68020 CE interrupt workaround
- CD32 CD on fly media changes fixed (both internal mounter and real/virtual drives)
- CD32 CD unknown command handling modified (Last Ninja 3)

Last Ninja 3 NOTE: game only works if CD is inserted after CD32 boot screen! (Real CD32 confirmed)

Beta 4:

- keyboard input configuration didn't load correctly (was overwritten by default mappings
  or mappings were completely erased)
- if at least one rawinput keyboard and mouse is found: skip directinput keyboard and mouse
  enumeration. Prevents stupid side-effects if both are used simultaneously, for example fullscreen
  and directinput keyboard enabled: rawinput stops getting any input (and technically directinput
  is less direct than rawinput, it is only good for joysticks/pads today)
- fixed possible division by zero in new power led code
- statefile_quit=<path> configuration file parameter added, automatically saves state to <path>
  when emulator is quit normally
- CPU speed and advanced chipset configuration stored in statefiles
- in some situations full-window mode tried to use vsync frame wait (which did nothing and caused
  warp-mode like speedup)
- added toggle fullwindow<>fullscreen and fullwindow<>window input events
- yet another sprite update, Total Perspective Vortex / Frantic background smallest sprites
  missed last line of data

WARNING: Configuration files saved with previous 2.2 betas won't be fully compatible with later
versions. Keyboard input data is handled slightly differently (no more "super" keyboard that
gets all keyboard input), beta 1-3 written config files may not have all keyboards enabled if
Configuration #1-#3 mode is enabled. Older configuration files should work correctly.

Beta 3:

- added XZ compressed file support
- Paths panel "Reset to defaults" was unreliable if more than 3 choices was available
- mouse horizontal wheel (HWheel) works in raw mouse mode, it is now always listed because
  for some unknown reason RID_DEVICE_INFO_MOUSE.fHasHorizontalWheel is always false,
  even when mouse has working horizontal scroll wheel
- fixed unreliable device switching in input test/remap mode
- fixed CD32 extra buttons not automatically getting enabled when joystick/pad was in
  "default" mode
- "default" was changed to "joystick" or "mouse" when switching between device types
- CD32 default button change, Red and Blue buttons are automatically read as a fire
  and second button if pad is read in standard 2-button mode (previously they did nothing
  in normal mode, required fire and 2nd button mapped)
- CD32 2-button mode 2nd button (CD32 Blue button as 2nd button) fixed, never worked previously
- Game Ports Test mode now shows mappings that have multiple input targets
- added "toggle" autofire mode to ports panel
- D3D "none" filter allows again all filter setting adjustments

Beta 2:

- reverted filesystem indirect memory change, it can't never work because filesystem
  is running in a separate thread
- rawkeyboard extended key fix (Pause-key)

Beta 1:

- less hacky cue/iso selection priority handling inside archives
- autoscaled top border was incorrectly positioned if program had always-on bitplane DMA
  and first background color change was later than vertical bitplane DMA start position
  (Shadow of the Beast)
- do not enable OpenAL or PortAudio support by default (there are some bad OpenAL drivers
  that crash when enumerating devices...)
- save also rom checksum to configuration files, configuration file checksum is now used to
  find rom path from rom scanner data if path stored in config file does not exist
- removed Windows 2000 compatibility code (mainly RTG guard page stuff)
- D3D mode is more compatible with crappy Intel integrated GPUs that have hardware pixel shader
  but only software vertex shader support (scanlines and shader filters should work now)
- WASAPI and PortAudio sound volume control supported
- 7zip support moved to static link lib, updated to latest LZMA SDK, PPMD supported
  (no XZ because currently only plain XZ (de)compression appears to be supported in SDK)
- static png and zlib libraries updated to latest versions
- virtual directory drive fake block device geometry and block size set to non-zero values
  to fix sys:system/format division by zero crash when started from WB
- cycle exact custom cpu frequency calculation fixed
- remove non-existing paths in disk history when selected (not automatic because they might
  point to non-existing network shares = "unexplained" slowdown at startup possible)
- 68030 instruction and data cache "cycle exact" emulation code added, (68020 and 68030
  caches are slightly different 68020's cache is 64*1 longs, 68030's cache is 16*4 longs).
  Data cache can only cache fast ram and rom. (MMU is normally used to prevent IO and
  chip ram data caching) Because native expansion code (bsdsocket etc..) bypasses the cache,
  if there is emulated cache hit, data in memory is compared with data in cache and real
  memory data is used instead of stale data in cache. (test read is direct access, it does
  not mess up timing). This also means you will have problems if you use old "68030 cycle exact"
  configurations, this mode was never supported. Not that this new mode isn't any better..
- made 68020 "CE" NOP slightly slower (move.w to somewhere followed by NOP: write must be
  complete before NOP finishes, Roots 2.0 / Sanity globe effect)
- Roots 2.0 / Sanity "flower zoomer" part gaps fixed (BPLCON4 color change has 1 lores pixel
  delay compared to direct color register write. AGA-only feature)
- sprite emulation change, removed few lines of code that was not needed anymore (I hope..), this
  fixes missing bottom part on Roots 2.0 / Sanity "flower zoomer" part
- directory filesystem uses now indirect memory access (read&write is still direct, no performance
  loss + cache flush if in CE030 mode), better compatibility with dcache and MMU (other modules
  will follow)
- 68020 "CE" mode movem and some other instructions used direct memory accesses instead of
  cycle exact fetch modes (=was too fast if accessing chip ram)
- power led fade hack emulation improved
- -disableharddrivesafetycheck command line parameter disabled, it is not needed anymore
  (it was made when there was no "is drive mounted in Windows" test) This parameter has
  also become THE FIX for every, even totally unrelated possible, HD/CF related problem...
- toggle between fullwindow and fullscreen if started in fullwindow mode
- fixed data corruption in input parsing if mapped key did not exist (different keyboard)
- transparent archive support updates and handle leak fix
- small filter panel GUI changes
- single/double/triple buffering option added to Display panel, also affects D3D now mode now
- enabling any "raw" input device disables all "super" devices if they have same device class
  (and vice versa) For example "Windows mouse" enabled, enable "raw mouse" -> "Windows mouse"
  gets disabled.
- GUI treeview and listview "hot underline" mode enabled
- missing input keyboard name and status lines added to configuration file
- Game Ports panel settings does not use special case handling anymore, input panel slot #4
  is now "Game Ports" configuration slot, all gameports panel settings are always converted to
  this slot. (slot #4 because I didn't want add new slots and slot #4 is most likely to be free)
- slot mentioned above is used to store new easy to use new game ports input mapping
- added "Test" and "Remap" buttons to Input panel, both temporarily enables all input devices,
  disables GUI and waits for any input, when input event is received, input device and event
  type gets selected automatically. "Remap" exists immediately when any event arrives, "Test"
  stays active until F12 is presed. (or if GUI window becomes inactive)
  Only "raw" devices detected (for example "super mouse" and "raw mouse" don't really play well
  together)
- GUI listviews remember old cursor positions
- default caps lock key input configuration was incorrectly saved to configuration
- easy joystick remapping support finally implemented.
- autofire checkboxes added to gameports, sets/disables fire button/CD32 red button autofire,
  autofire rate modified, it is much faster now (test games and report) 

Quick instructions for new Game Ports panel remapping function:
- First select type of Amiga side device (mouse/joystick/analog joystick etc..).
- "Default" device type = mouse in port 0, joystick in port 1.
- Click Remap and the rest is near automatic :)
- Click Test to check and test current device type mapping (both built-in and remapped).
- F12 = exit, F11 = skip current event (jump to next event without mapping)

NOTE:NOTE:NOTE: Answer is still the usual: "Use Input Panel" if you want something more complex.
This is the QUICK and EASY solution for most commonly needed joystick remapping.


Final 2.1.0

Beta 25 (RC3):

- CD32/CDTV NVRAM led (DF3) works again
- Windowed mode status bar "leds" show activity status again in all Windows versions (SBT_POPOUT status bar
  flag for some reason stopped working in XP non-classic theme and later Windows versions)

Beta 24 (RC2):

- do not use waveOutSetVolume() in CDTV/CD32 CD audio routines, for some weird reason (legacy backwards
  compatibility..) it also adjusts application's global volume setting.. CD audio volume control is now
  handled by modifying sample data directly.
- expand environment variables ("%var%") in configuration file and command line paths

Beta 23 (RC1, max 1 week left for possible bug reports):

- SPS library return code check added, show notification if selected image requires newer library version
- Quickstart DF1: and CD localization fix
- beta warnings disabled

Beta 22:

- PAPEROUT and BUSY was not always forced inactive, usually preventing printing if program directly poked printer port hardware
- fixed epson emulation graphics printing again, 9-pin graphics gaps fixed, added some missing 9-pin only commands, graphics
  (both b&w and color) confirmed working. Should be perfect now :)
- added shield icon to "Add Harddrive" button (which does not do do anything, shows only admin privileges requirement)
- Vista+ file dialog multi selection fix (broken since Vista/Win7 file dialog support was added)

Beta 21:

- Epson printing updates (score positions, superscript, color support etc..), -pngprint added to select print to png image mode
  (Epson emulation only)
- CDTV 2336 sector (Mode 2 Form 0/2) read offset fix, built-in cue raw read (2336 and 2352 sector size) support added
- parallel_port configuration entry set to "default" = select system default printer
- cdimage0 pointing to image file and uaescsi.device set in configuration: mount image on uaescsi.device:0 in basic non-scsi mode
- cdimage0 configuration option now also accepts CD drive letter (in "X:\" format) and if set, only selected drive is mounted on
  uaescsi.device:0. All other drives will be ignored

Beta 20:

- winuaebootlog.txt incorrectly listed WASAPI sound devices as PortAudio devices
- raw keyboard enumeration stopped after first keyboard was found
- raw keyboards are now always enumerated (previously -rawkeyboard was required), also they can be enabled and remapped separately.
  F12=GUI hardcoded to prevent completely getting locked out of GUI (for example by disabling all keyboards)
- -rawkeyboard does not anymore disable directinput keyboard enumeration, it only disables dinput keyboard and enables all raw keyboards.
- automatically switches to raw keyboard mode if directinput enumeration returns unexpected keys
- Epson printer emulation improved. Does not anymore require freetype libraries or extra fonts. Outputs to printer directly,
  automatically uses printer's resolution internally. Old-style Epson text justification command emulated (left/right/center/full)
  (Note that this isn't "real emulation", text output is always high-quality, only bitmap graphics output looks ugly)
- parallel port sound sampler emulation implemented, input selection in IO Ports panel (DirectSound sources only).
  Sound quality is not good enough (syncronization implementation is crappy), mono only.

Beta 19:

- fixed random D3D RTG ALT-TAB crash if hardware mouse cursor was enabled
- fixed swapped sound channels if stereo separation code path was used, bug since stereo separation was implemented
- internal sprite DMA pointer bit 0 was not cleared
- _winuae.fx shader file is now built-in, will be written to plugins directory if directory is writable and
  file does not exist. File will be used as long as version in first line matches (if you want to do some shader experiments)
- winuae <file.cue or file.iso> will internally convert to cdimage=<file.ext> (not very useful currently but if someone
  wants to associate cue or iso extensions)
- added "quickstart=<model (a500,a500+,..)>,<subtype (0-n)>" configuration file option
  (probably only useful as a command line parameter, at least for now) More useful in future, perhaps..

Beta 18:

- fixed blank RTG fullscreen 8-bit modes if "Match host and RTG color depth if possible" was enabled
- D3D RTG performance improved when whole screen gets refreshed (see below for more info)
- fixed original extended adf (factor 5 images) handling (broke in b11)
- command line parsing heap corruption fix (2.0.0 bug but only caused problems randomly)
- added "minimize when focus is lost" option to misc panel
  (for example if you want to emulate fullscreen alt-tab in windowed or full window modes)
- always capture mouse when fullwindow mode gains focus (like real fullscreen mode does)
- D3D Null filter does memory copy again because it might be faster (D3D internally uses "doublebuffered"
  textures if it is told that texture data will be completely rewritten. This prevents GPU stall if previous
  frame is still being rendered)

Beta 17:

- right mouse button popup menu disk changes fixed, added "copy from dfx:" options
- possible D3D performance improvement when updating screen only partially
- CE mode crash fix when display updating is disabled (Scroll Lock)
- CDTV: return CD error status immediately when program attempts to play non-existing cd audio track
  instead of relying on CD backends to notice the error (Psycho Killer CDTV)
- do not show inserted CD32/CDTV quickstart CD image in floppy drives panel (currently cd image is quickstart-only)
- added "save screenshot to clipboard" input event (previously only save to file was possible)
- some statefiles didn't select correct refresh rate (PAL/NTSC) when restored
- added small delay to RTE instruction in 68020 CE mode because MOVE.W #x,INTREQ; RTE; currently executes too quickly,
  faster than emulated IPL lines change state causing interrupt to start again after RTE
  (another case of improving one part of emulation breaking lots of programs because not directly related part is not exact enough..)

Beta 16:

- implemented feature that makes selecting image from multi disk programs faster and easier.
  When multidisk image is in disk drive, right clicking on "Select disk image" will open menu
  that lists all detected disk images (+including all normal "favorite" menu options)
  Also added previous and next disk input events.
  Currently supports following disk number naming conventions:
  "*(disk x*", "*<a-z/A-z/-/_/ >x.*", "*_a.*", "*-a*", "*<a-z>A.*"
  (x = number 1 to 9, a = a-z/A-Z, A = A-Z, ? any character, * = anything)
- D3D vsync in interlaced modes was erratic (bug since the beginning)
- added "GamePorts" to "Copy From" option in Input panel that merges Game Ports panel mouse and
  joystick configuration with current non-compatibility input configuration, also possible old
  keyboard layout Game Ports panel mappings will be replaced with default keyboard mapping
  Nothing is remembered, slot 1 mappings are simply overwritten with new mappings.
  
Beta 15:

- D3D filter does not scale anymore in "no filter" mode to prevent confusion when switching
  between D3D and DD. D3D null filter does not waste CPU power anymore.
- RTG 8bit to non-paletted mode switch in fullscreen didn't always select correct color
  space conversion mode (older bug)
- fixed D3D 16-bit only "vertical scanline effect" introduced in b14
- onscreen led on/off configuration problems fixed
- restoring NTSC state files work again (broken when NTSC long/short line emulation was introduced)
- PAL/NTSC configuration saved with statefile (I guess this was forgotten long time ago..)

Beta 14:

- old non-shader direct3d mode is back (if you have really old card)
- do not create big tiled overlay texture if overlay texture size is same as original
  image size (hardware did not have texture size restrictions), sampler can then do the tiling
  automatically without seams (only if shader 2.0+)
- always align overlay mask top/left corner 
- updated about links (back2roots not removed, probably comes back sooner or later..)
- RTG vblank interrupts didn't work in all situations (older bug, guru when switching to RTG mode)
- fixed incorrect colors in some RTG modes (both DD and D3D)
- fixed major (in some situations) JIT performance loss introduced in b8
- READ THIS: You MUST delete old winuae.fx and winuae_old.fx and use new versions included
  with this beta

Beta 13:

- version bumped to 2.1.0
- 1620b10 broke 68020 RTE "Throwaway frame" emulation (Quik The Thunder Rabbit CD32)
- warp mode on the fly change fixed
- only check for configuration file changes (current vs changed) when needed, not
  every frame (some on the fly changes may be missed now, report if found)
- b12 "no scaling" in directdraw was wrong, scaling isn't going to be removed.
- blurry D3D RTG hardware mouse cursor fixed
- p96refresh works again (broke few betas ago)
- filesystem still had one missing unicode<>Amiga charset conversion (in some
  situations caused wierd errors when creating new files with file name
  including non-ISO-8859 charsets)
- cyrillic charset (1251) Amiga-side charset support fixed (more or less broken
  since unicode update but it only worked accidentally previously)
- fixed JIT filesystem slowdown introduced few betas ago
- fixed RTG directdraw fullscreen alt-tab blank screen


Beta 12:

- VPOSW/VHPOSW "fake" 60Hz support rewrite, ugly hacks removed, this also
  fixes possible odd/even field mismatch when program initializes interlace
  by writing to VPOSW (only clearing or setting LOF-bit, not attempting to
  do "fake 60Hz)
- JIT checkbox fixed (broke during 64-bit compilation fixes)
- Prowizard PM20 fix (Asle)

Big Direct3D change:

- more gfx subsystem unification. Direct3D is now fully shader based.
  Overlay and scanlines are done with pixel shaders, also overlay is not scaled anymore.
  Overlay and pixel shader filters are now compatible.
  PS 2.0 capable display card required. (PS 1.0 should also work)
  Scanlines and overlays can't be used simultaneously. (Easy to do with shaders but why?)
  Horiz and vert positioning works without filter enabled.
  Point/bilinear setting works now when shader filter is enabled.
  Direct3D and Null filter: wastes only CPU power, do not use. (will be fixed later)
  Currently included winuae.fx/winuae_old.fx must be in same directory as winuae or in shaderfilters
  directory (later it will be built-in. winuae_old.fx = PS1.x compatible shader)
  If you have problems: include graphics card model, Windows version, winuaebootlog.txt and winuaelog.txt.
- RTG D3D changes: full Direct3D mode support, hardware sprite is D3DSprite.
  DirectDraw still supported but only in basic mode (no hardware cursor, no scaling etc..)
  Direct3D is so much simpler and easier (automatic scaling, transparency, clipping)
  Currently D3D scanlines and overlays are also applied to D3D RTG screens which may not be what you want...

- NOTE: some older cards or drivers seem to have random problems that come and go between restarts, configuration
  changes etc.. Report Windows version, card name and driver version when this happens. (when this happens there
  are no error messages in the log and only on screen leds are visible, it is some other problem if error was logged)

- removed paletted (256 color) mode support completely (no functional changes because native modes haven't supported
  it for ages and RTG modes have used 16/32-bit modes and transparent color space remapping since 1.6)
- Direct3D selection moved to misc panel (D3D isn't filter specific anymore)

Beta 11:

- hpos "offset" was accidentally changed (DFF006 = 0000 is possible)
- .cd32 rom file extension added (missed when .a500, .a1200 and .a4000
  was added long time ago)
- b10 interrupt issues at least partially fixed (freezing or crashing demos)
- code cleanup, compiles as C++ now (do not worry, this is not "just add
  hundreds of casts to make it compile") This project has gotten so big
  that plain C is making things painful (for example archive filehandling
  would be less messy if written properly in C++, core emulation works fine
  in C, also future wxwidgets GUI is now at least theoretically possible..)
  This should also make portability simpler, easier to have better
  "insulation" between portable and OS specific code. Anyway, nothing
  really changes until (much) later..
  Random things can be broken! Report all kinds of undocumented changes
  compared to previous betas and 2.0.1.

Beta 10:

- CE interrupt handling timing rewrite, again, to better match real
  behavior (still not good enough but better than previously)
- only accept winpcap version 4 or newer
- match autoscale left position to WB max overscan size (maybe in
  future there will be "TV"-option that restricts to 1990s TV overscan)
- accept all kinds of DI8DEVCLASS_GAMECTRL devices, not just those that
  have gamecontroller-like device type

Beta 9:

- CE 68000 interrupt handling update, Spectre Party Demo /
  Phenomena works without jumping 
- autoscale left and right border position restricted to sane max
  overscan values
- enabling autoscale changed filter mode to scale2x
- autoscale detects COLOR00 (background color) changes outside of
  bitplane area 
- do not enumerate drives if every "Include .. drives" is not ticked
- CD32/CDTV crash fix (IOCTL CD crash) (b8?)

Beta 8:

- do not use D3D9Ex if no v3 shader or dynamic texture support
  (workaround for some older cards that may not be fully compatible)
- added workaround for weird display drivers that don't allow changing
  to 50Hz Direct3D fullscreen but accept it if identical directdraw
  fullscreen mode is already open
- 68000 exception3 quick fix (Zoom)
- CE 68000 CIA cycle timing updates (was too fast)
- warp mode was slow in windowed D3D mode (b7)
- selected dostype in create hardfile panel was ignored if hardfile
  type was dynamic
- added filter panel overlay/mask selection, put overlay/mask files
  in <path>\plugins\overlays
- DMS files with fake complete first cyl (containing BBS ads) didn't
  unpack correctly. Support HD DMS files (not tested)
- CE interrupt handling rewritten (still not good enough)

Beta 7:

- Direct3D errors didn't properly reset back to non-D3D mode
- pixelshader filter configuration save/load didn't work
- window was closed and opened when some filter parameters changed
- use Direct3D9Ex when running on Vista/7 or newer (direct3d is
  now in C++ because D3D9Ex uses inheritance and "emulating" it in
  plain C is not worth the pain)
- less tearing in non-vsync D3D fullscreen mode
- added support for D3D mask/overlay image files (config file only,
  gfx_filter_mask=<path>) Automatically tiled if image is smaller than
  display size, uses D3DX function to load image files, .bmp, .dds,
  .dib, .hdr, .jpg, .pfm, .png, .ppm, and .tga supported
- skip frames in D3D vsync mode when turbo is enabled
- WinXP center dialogs in fullscreen mode works now properly
- clear D3D mode borders if screen is larger than Amiga display window

Beta 6:

- filter panel GUI issues fixed
- arcadia quickstart incorrectly enabled CD mode (b5)
- directory filesystem ERROR_USER_MAPPED_FILE mapped to OBJECT_IN_USE
- directory filesystem: complain about unimplemented error(s) only once
- unminimize changed display size (update to b4 fix)
- window resize was ignored unless both width and height changed (b4)
- OSD had extra gap in right border (b1)
- D3D fullscreen handling update, device loss handling improved,
  possible ALT-TAB weirdness should be gone now, D3D debug runtime
  warnings fixed

Beta 5:

- save cdimage path to statefile (if set)
- cdimage on the fly change support (CD32 CD detection may not always
  notice it without reboot, something wrong with detection)
- cd images inside archives supported but all tracks will be unpacked
  before emulation starts = do not use with big images.. (this is
  something that can be improved someday..)
- GUI added (quickstart only). "Automatic" and "Image file" does not
  really do anything, only tries to show that real CDs are still
  autodetected like in older versions..
- disk image selection always used DF0: (b4)
- replaced advanced chipset blitter busy bug checkbox with A1000 Agnus
  (DIP package 8361/8367) because there are more differences, first
  vblank strobe is triggered on line 1, not line 0.. (Alcatraz Megademo
  2) Perhaps someday this gets moved to main chipset panel.. Thanks to
  yaqube for finding this hardware "feature" accidentally :)
- more 68000 CE interrupt timing changes

Big DirectDraw/Direct3D change. Anything can be broken..

- Direct3D filter mode is now a checkbox, there is now DirectDraw
  and Direct3D "render backend" (instead of DirectDraw and D3D
  filter hack) All software filters are available in both modes
  (of course pixel shader filters only in D3D mode) This is part of
  graphics subsystem unification, RTG is still DirectDraw only.
- point/bilinear setting moved to filter extra menu
- 16bit/32bit setting removed, uses desktop/fullscreen depth, selects
  16bit if selected software filter is 16bit only (and lets D3D do
  the conversion automatically)

Beta 4:

- ADDX and SUBX timing updates
- ABCD and SBCD idle cycle position in -(An),-(An) mode fixed
- EXG idle cycle and prefetch swapped
- BCLR/BSET/BCHG/BTST idle cycle and prefetch swapped
- writing to blitter registers while active could have confused
  blitter emulation logic, stopping the blitter mid blit (stopping
  because emulation got confused, not because emulation detected
  situation when it should really stop)
- plain A500 OCS/ECS byte writes to custom registers fixed (I think
  this was using 68020/AGA behavior for all modes accidentally)
- interrupt delay and 68000 IPL sampling timing improved
- windowed mode window was sometimes incorrectly detected as resized
  when it only lost focus (native mode size was changed to current
  window size)

  Big CD32/CDTV CD handling update:

- stupid MCI CD32/CDTV CD audio replaced with simple "audio ripper"
  that reads the digital CD audio data and sends it to audio device
  NOTE: no jitter correction yet (possibly bad sound if your drive
  is old enough to not have accurate streaming support)
- CDTV CD hardware volume control now supported
- CD32 CD mute on/off "volume" control supported (no real volume..)
- Sound-panel volume also adjusts CD32/CDTV CD audio volume
- CD32/CDTV Q sub channel data virtualized (does not need real drive
  anymore, makes new things possible, see below)
- Built-in CUE CD image support, including CD audio track support!
  .CUE + single big .BIN and .CUE + .BIN + .WAVs supported (MP3 audio
  is also supported if you have mp3 codec installed but all tracks will
  be decoded before emulation starts..) Most common data tracks
  supported. Plain iso images also supported.
  Problems = logs AND .cue file required.
  cdimage0=<path to .cue/.iso> in config file, command line parameter
  -cdimage=<path to .cue/.iso> can also be used.
  No GUI support yet.

Beta 3:

- Shadow Fighter AGA graphics priority issue really fixed now
- COPJMP cycles in DMA debugger shown correctly, no functional
  change (after COPJMPx access copper does dummy move cycle before
  COPxLC changes, dummy data and addresses shown now correctly)
- show CPU access type (byte, word or long if 32-bit bus) in DMA
  debugger. TODO: separate instruction and data fetches without
  slowing everything down..
- added DMA channel names to DMA debugger (COP, BLT etc..)  
- few hours of boring logic analyzer CPU cycle usage checks..
- 68000 AND.L, OR.L, EOR.L, ADD.L, SUB.L also write data in reverse
  order (like NOT.L, CLR.L and NEG.L do, R+0, R+2, W+2, W+0)
- CMP idle cycle and prefetch swapped (previously only CMPA)
- AND/OR/EOR/ADD/SUB #x,Dn idle cycle and prefetch swapped
- ADDQ.L #x,An had wrong cycle count
- 68000 interrupt startup cycle counting updated
- MOVE address error handling may be temporarily broken
- 68020 ce-mode cpu chip bus access used a500-like timing
- above changes seems to have fixed some demo glitches

Beta 2:

- ioctl cd drive detection corrupted memory if more than 8 drives
  found
- removed remains of old and wrong OCS Denise "bug" emulation
- 2.0.1 OCS Denise update diw counting bug fixed (Stardust map selector)
- eat relative mouse movements while mouse driver mode is active
- "blitter active while saving state" compatibility updates
- fixed buffer underflow in sprite code if sprite was really far and
  hidden in left border, it overwrote part of dual playfield priority
  tables causing weird effects in dpf modes (Shadow Fighter AGA)
- removed some code duplication from dpf mode genlinetoscr.c
- prowizard promizer18a update (Asle)
- CD32 pad emulation improved, CD32 Roadkill "non-standard" way of
  reading buttons works now
- do not scan files in floppy history at startup (=scan and add
  possible disk images inside archives)

Beta 1:

- prowizard is now in static link library (no functional changes)
- update HDIW=0 or 1 OCS Denise feature, after more research (thanks
  to yaqube for finding real technical reason), OCS Denise hdiw counter
  does not reset from last line of previous field to line 9 causing
  "random" positions to match both start and end of hdiw, including
  normally unavailable positions. This was fixed in ECS Denise.
- sometimes cpu frequency was reset to 1000000, now it resets to default
- set "A500 speed" automatically when switching to cycle exact on the fly
- renamed "Match A500 speed" to "Approximate A500 or cycle-exact A500/A1200"
- fixed rare sprite bug introduced in 2.0.0
- DF3 on screen led reused as internal nvram read/write led in CD32/CDTV
  modes
- filter presets were broken
- replace possible illegal (not in Amiga charset) characters in directory
  filesystem volume and device names, truncate to 30 characters if longer
- fixed random Direct3D filter garbage when on screen leds enabled and
  sometimes even when osd was disabled
- changed filesystem thread priority back to highest (+2), same as before
  2.0, it seems +1 isn't enough in all systems (slow fs performance when
  main thread is using all CPU time)
- removed broken URLs in about panel
- fullscreen and windowed file dialogs have separate position and size
  settings (Vista and newer only)
- attempt to center file dialogs in fullscreen mode (XP only)
- caps lock key supported in key mappings, toggle should be usually
  enabled if you are mapping host non-caps lock key to Amiga caps lock
- hardcoded keys (pause, scroll lock etc..) automatically disable
  hardcoded mapping if it is mapped in input panel (END + mappings are
  not disabled)
- num lock or scroll lock mapped to amiga caps lock -> follow led state
  (just like host caps lock key mapped to amiga caps lock key)
- filesystem charset conversion fallbacks added, ISO-8859-15 ->
  ISO-8859-1 -> windows-1252 -> current Windows codepage (not all XP
  installations have all charsets installed by default, last 2 can have
  problems with national characters but it is better than nothing)
- closing GUI debugger window won't close the emulator anymore
- rar unpack crash fix

2.0.1

Beta 3: (RC1)

- emulate OCS Denise "bug", vertical DIW already active, matches again
  with horizontal start DIW=0 or 1 -> DIW stays inactive until next
  frame. (Kefrens Megademo 8, Snake Bite part)
- emulate ECS Denise (and AGA) "bug fix", horizontal start DIW=0 or 1
  gets ignored. (=b2 fix -> ECS Denise/AGA only)
- sometimes sprite was visible even if bitplane DMA should have
  disabled it (older bug)
- ECS Denise DENISEID register returned 0x00FC, correct is 0xFFFC

Beta 2:

- if rom load fails, try to find matching rom file using rom scanner
  data by comparing file names without paths
- improved file/directory name Amiga<>Windows conversion 
- hide directory filesystem file/directory names if they have characters
  that do not exist in Amiga charset (again, was accidentally changed in
  1.6.0), they would have been inaccessible anyway
- non-tablet mouse driver mode was not enabled without magic mouse
- fixed potential crash in mouse driver mode
- "capture before filtering" not enabled mode was broken (b1)
- DIWSTRT hpos <=1: DIW state machine does not change (stop hpos >
  max was emulated long long time ago)

Beta 1:

- blitter linedraw onedot mode was partially broken in non-ce modes (2.0)
- old off-by-one sprite error fixed, was recently triggered in 2.0 final
  causing (usually) random display interference (2.0)
- avioutput "capture before filtering" option
- screenshot "before filtering" option
- manual avioutput fps selection removed, automatic now
- tar archive support (was supposed to be in 2.0)
- recursive archive engine improvements and fixes
- only accept unrar.dll version 4 or newer

2.0.0

- blitter linedraw onedot mode sometimes wrote to memory even if pixel
  was written in same line previously
- sprite DMA start and stop positions were not checked if DDFSTRT would
  have disabled the sprite
- copper wait and skip must not use odd cycles (last/first cycle "border")

Beta 26: (RC4)

- in some specific cases copper didn't use its allocated cycle
  because it thought it was reserved for BPL DMA (broke in early
  2.0 betas. Rebels Megademo "Made in Sweden" part)
- CPU writes to COPJMPx caused copper to start fetching instruction
  words instantly, using same cycle as CPU. Added 1 extra copper idle
  cycle if COPJMPx was written by CPU (harmless, caused only DMA
  debugger warnings)
- 68020 CE emulation become very slow if most accesses were cache hits
  and froze if all acceses were cache hits

Beta 25: (RC3)

- directory filesystem parameter (label, bootpri, rw) changes were
  ignored unless device name was also changed (b22)
- BPLCON0 change was partially ignored if hpos was >= e0 (b17)
- disable JIT when cycle exact is ticked in GUI
- added Quickstart Arcadia ROM selection (lists all roms)
- random jumping single black scanline bug finally fixed (variable
  that was not reset properly caused BPL DMA emulation to think this
  line had DMA disabled) I finally managed to duplicate this bug 100%
  using Arcadia Leaderboard..

Beta 24: (RC2)

- non 8 divisible width and avi video recording crash fix
- DMA debugger sprite register addresses fixed
- D3D 32-bit scanlines fixed
- frozen blitter didn't unfreeze when old channel mode was restored
  (FreeNEasy / Arctic Force does bclr.b #1,$dff042 while blitter is
  active.. Most likely simple accidental mistake)
- CE CPU emulation CMP cycle order change
- undocumented sprite DMA update, write to sprite pointer is ignored
  between sprite DMA accesses (IcewindDale BBS intro / Possessed)

Beta 23: (RC1)

- mouse capture didn't work if mouse driver (tablet) mode was enabled
  without magic mouse
- selecting wave recording (file select) disabled audio sync even if
  recording was not activated
- added disable sound sync option to output panel. Previously it was
  always disabled (for best sound quality), option was added because
  audio only recording with sync disabled can cause sound glitches and
  emulation slowdowns and vsync issues (recorded sound was still fine)
- CD32 state restore compatibility update
- only update BLTSIGN when writing to BPLCON1, not when starting the
  the blit (Anesthesia / Possessed and probably others)

Beta 22:

- do not load multiple harddrives (directory and regular hardfile) from
  configuration file if they have identical device names, also fixes
  bad handling of hardrive paths with national characters in utf8
- added simple validation to harddrive device and volume labels
- fixed small graphics glitch in Sequential / Andromeda "18 frames!"
- slightly smaller on screen leds, fits in 320 pixel wide display
- BPLCON1 to bitplane delay timing fix in some specific situations
- KS 1.x interlace screen setup was incompatible with "scandoubler"

Beta 21:

- stupid b20 VPOSR bug fixed (upper vpos bits returned "random" data
  when new frame was about to start)
- "manual" BPL1DAT write update, Sequential / Andromeda "Magnet"-part
- interrupt delay changed to 5.5 (was 6) color clocks (<=5: Gleat Stuff
  #1 breaks, >=6: Warhead audio breaks)
- reading non-existing memory in 68000 CE-mode was broken (upper byte
  was always zero), fixes Time Machine (game has buggy IFF animation
  reader, IFF parser checks end of file incorrectly and keeps reading
  "random" data and accessing "random" memory)
- ProWizard promizer20 converter update (Asle)
- only autodetect PC/Atari ST image files if file name extension is
  known (adf, adz, st, ima or img)
- file dialog file type setting is stored to registry/ini
- some work with serial port emulation via UDP (ENET). May or may not
  be implemented before final 2.0. (if you are wondering about ENET in
  serial port settings..) NOTE: do not expect most serial linked games
  to work, at least via Internet.. null-modem games expect extremely
  low latencies.

Beta 20:

- 68000 CE timing updates
- expansion panel GUI tree icon added
- serial port detection didn't detect all ports (broke in 1.6.0)
- http://, https:// and ftp:// file paths supported (pointless but it
  was very easy to implement, do not ask for extra improvements)
- dms, ipf and some other disk image types didn't unpack if inside
  archive, truncate adf converted >80 cylinder images to 80 if all 81+
  tracks are empty (uaeunp)

Beta 19:

- do not "fix" \\'s at start of path (b14)
- sound sync ignored recently emulated NTSC short/long line toggle
- less aggressive sound sync in non-vsync modes (not much point really)
- 68020 CE cycle counting rewritten (may not be better yet but easier
  to tweak in future)
- added support for single sided PC/Atari ST-style images
- added .st to disk image dialog extension list, .vhd to hardfile list
- onscreen leds show selected disk side
- onscreen led track number is dimmed when drive is empty
- always mount regular hardfiles, even if dostype is unknown or
  filesystem fails to load (unknown dostype = whole drive disappeared
  after reboot)
- add or create regular partition hardfile and size >=512M: generate
  more compatible default disk geometry (cylinders less than 65536)
- Action Replay statefile support should work again (again and again)
- AVIOutput: handle recording thread errors without freezing, record
  as 24-bit (instead of 32) if display is 32-bit
- fixed really stupid and old bug in blitter state restore
- added pause priorities (user pause > inactive > minimized), lower
  priority pause states can't unpause higher priority states

Beta 18:

- dongle GUI selection added (IO Ports), Leviathan dongle supported
- added 9pin Epson matrix printer option (9pin printer has different
  graphics aspect ratio than 24/48pin)
- visual DMA debugger (possibly useless but cool!) different colors
  mark different DMA channels, "v <val>" to enable, no parameter or -1 =
  normal,-2 = small visual, -3 = wide and -4 = big. CE-only
  Current colors: yellow = copper, green = blitter (light=normal,
  dark=line), blue = bitplane, cpu = gray, audio = red, sprite =
  white, disk = purple
- disable bitplane "speedup" optimization if dma debugger enabled
- beta versions do not load language dlls anymore
- SCSI mode GUI fixed
- minimizing: priority was set wrong, closing when minimized:
  remembered windowed mode size was reset (old bugs)
- unpause when clicking on "PAUSED" fps led
- some (vsync)sound sync experiments again..

Beta 17:

- fixed uaescsi.device TD_GETGEOMETRY total number of blocks off by one
  error, return TDERR_DiskChanged if no media inserted
- ACTION_FH_FROM_LOCK didn't reset write notification flag, caused
  ghost file notifications + parent directory date changes when file
  was closed if same file/dir was ACTION_ADD_NOTIFY'd earlier
- VHPOSW/VPOSW emulation rewritten (mainly used for "fake" 60Hz but
  also can be used for other purposes)
- less confusing GUI CPU frequency configuration
- when selecting best fit fullscreen mode, ignore modes that have
  completely wrong aspect ratio (for example rotated screen)
- right border 2 lores pixel delay properly handled in copper emulation
- RTG onscreen leds (no transparency, does not ignore scaling)
- new pointless feature: following games' protection dongles emulated:
  Leaderboard, Robocop 3, B.A.T. II, Italy'90 Soccer, Dames Grand Maitre,
  Rugby Coach, Cricket Captain
  No GUI support, add "dongle=x" where x is name of the game

Beta 16:

- Faster RTG moved to misc panel
- TD_REMOVE implemented in uaescsi.device (BabelCDRomFS media changes
  work under KS 1.3) and in uaehf.device
- bsdsocket GUI checkbox didn't work
- delay copper writes by 2 lores pixels if hpos >= 0xe0 (I am not sure
  100% why but I guess extra 0.5 cycle in PAL 227.5 color clock
  horizontal timing causes this) Fixes Leander "border", can fix other
  similar border problems. Previous fix in b15 was wrong.
- disable new expansion checkboxes when emulation is running
- CE linemode blitter non-nasty broke in b14

Beta 15:

- automatically enable ini-mode if registry initialization fails
  (this should never happen, something is wrong if HKEY_CURRENT_USER
  is read-only or admin-only..)
- August 2009 DX SDK (you know the drill, latest DX runtime required)
- A2065 Ethernet card emulation. winpcap required.
- mostly useless "kickstart replacement" works again. Broke long long
  time ago..
- hrtmon v2.32
- 68030 "MMU" "emulation" instruction decoding fixes  
- 68040 MMU on the fly switching supported
- fixed 1 lores pixel background color gap in some copper effects
- renamed display card panel to expansions and moved misc expansion
  related options from misc panel (still work to do)
- 1.5M slow ram was 1.0M+0.5M mirrored (non-power-of-2 memory sizes
  are not really supposed)
- MMU: hardreset if double bus error (real CPU would freeze and wait
  for reset in this situation, not worth the trouble)
- IDE emulation updates, read/write multiple implementation fixed,
  write interrupt fixed, 128-256 sector transfers supported, status
  register DSC must be always set. Compatible with Linux IDE driver

Beta 14:

- added very basic MMU statefile support
- and more MMU compatibility updates (LINK, RTD, CMPM)
- FTRAPcc fix from Aranym (I guess nobody uses this instruction..)
- MMU access error instruction restart update, Linux really works now
  but is quite useless because there is no hardware cdrom or network
  emulation..
- CD32 pad default mapping RWD and FFW swapped
- non-CE mode blitter timing fix (blitter timing got better few betas
  ago but it was less compatible because cpu is not slowed down..)
- bsdsocket MSG_WAITALL really works now
- added "value must change" debugger memwatch mode (C)
- another reading write-only register update, reading 0xDFF000 always
  returns whatever was left on chip bus. Only on OCS chipset and only
  0xDFF000 (BLTDDAT) does this. Correct fix for Codetrash. This demo
  has really "fun" bug, it does cmp.b #$30,$dff000;bne.s loop (should
  be $dff006) and this comparison only succceeds because of 0xDFF000
  special case AND because module player is running and there is at
  least one audio sample with value of $30! (unbelievable, isn't it?)

Beta 13:

- MMU emulation bug fix (was bug in Aranym's code, official fix now
  included), fixes MMULib crash
- other MMU emulation fixes
- Gayle IDE address mapping corrected, reserved Gayle expansion space
  not included anymore
- CD32/CDTV CD led flickers blue when there is CD activity, shows
  green when playing CD audio
- built-in hrtmon updated to 2.31
- 68020 cache freeze-bit emulation fixed
- CD32 pad default mapping green and yellow buttons switched
- MOVES fixed (this has always been wrong but nobody noticed because
  it is only used with MMU)
- bsdsocket: support MSG_WAITALL (previously recv() with MSG_WAITALL
  always returned -1)
- 68020+ bit field instruction update from Aranym (correct memory
  access size for MMU and CE020. BFCHG, BFSET ignored size)
- more regstruct (ccrflags) removal
- added U <logical address> debugger command, shows translated physical
  addresses (user+code,user+data,super+code,super+data. RW=readwrite,
  RO=readonly) or * if address is not mapped (accessing it would cause
  access violation)

Beta 12:

- increased vertical filter display buffer size by 4 pixels (max PAL
  overscan fully visible now, again..)
- autovsync vertical resolution autoselection really works now
- more MMU fixes, Linux boots now. MMULib does not work but it most
  likely is a bug in MMULib which expects some undocumented behavior
  of 68040 (like how ATC caches work etc..) Commodore's 68040.library
  works. Note that native code (for example filesystem emulation) can't
  support MMU address translation (impossible to call bus error handler
  from non-68k code without some heavy black magic) -> any non-debugging
  MMU software most likely won't work without using IDE or SCSI
  emulation. MMU support is considered finished now. Enforcer and Linux
  working = good enough :)
- version number bumped to 2.0

Beta 11:

- fixed 68020 CE-mode cycle counting bug (too slow memory accesses)
- MOVE16 MMU support update (fetch all data before writing), MOVES MMU
  support update, MOVEM to memory MMU special handling support
  (still not working with mmulib, reason unknown)
- b10 blitter cycles given to CPU update was very wrong..
- copper BFD=0 wait woke up too early in some cases (and real fix here)
- calculate autoscale settings only when display window registers have
  been stable at least 1 full scanline (also fixes NTSC "jumping")
- WASAPI shared mode closest match update

Beta 10:

- and more reading of write-only register fixes, original Cardiaxx
  loads now without extra hacks
- yet another CPU core added, 68040 MMU emulation from Aranym
  (Atari ST/TT/Falcon emulator) is finally enabled! (not compatible
  with JIT, slow etc blahblah) Enforcer+Lawbreaker seems to be working.
  Perhaps even something else that needs MMU also work..
- blitter cycles given to CPU (bltnasty=0) didn't count as free cycles
  for blitter idle cycles
- blitter line mode froze if new blit was started when last 2 final
  idle cycles were in progress

Beta 9:

- vsync automatic frequency switching is now optional ("autovsync")
- 100Hz/120Hz supported in vsync automatic switching mode
- "Disable powersaving features" is now "Disable screensaver" (when
  not active) Screensavers are always disabled when active. Programs
  shouldn't override "real" powersaving features anymore (and Vista
  and later will ignore these requests anyway)
- 68020 CE mode all instructions now need at least 1 CPU cycle (1/4
  bus cycle) to finish (+any slow chip/custom memory fetches),
  previously all instructions were instant when accessing fast ram
- CPU frequency configuration added (CE-modes only). Fast RAM (and ROM)
  is always considered wait-state free, chip ram speed does not change
  Pre-defined values use main clock as CPU clock source (=includes
  PAL/NTSC difference), manually typed frequency basically emulate CPU
  card that has separate CPU clock crystal. For example pre-defined
  "7MHz" is 7.093790.. if PAL mode) Not very useful in 68020 mode. yet.
  (see earlier beta change log for explanation)
- copper woke up 1 line too late (and never woke up if waiting for line
  255) if wait ended on NTSC long line (this was the real reason for
  NTSC jumping, b8 hack removed)
- added "cycle_exact" configuration entry, quick way to switch CE on/off
  with uae-configuration
- wrong/missing display sometimes in "too fast" CPU modes (b5)

Beta 8:

68020 CE mode updates:

- unaligned word/long accesses emulated (68020 always fetches aligned
  longs, two accesses required if for example word is fetched
  from address 3)
- emulate 68020 instruction cache logic as documented in 68020 manual,
  cache hits are free, cache misses require normal, possibly slow
  chip ram fetch
- approximate emulation of 68020 prefetch buffer, more compatible with
  self-modifying code
- very approximate 68020 MUL/DIV cycle usage added
- 68030/040/060 also supported in "020CE" mode. Not totally useless
  because this can mean more compatible HD installed games by switching
  between JIT and "CE" mode on the fly using uae-configuration.
  (switching between CPU types on the fly isn't very good idea..)

Note that 68020 "CE" is still too fast (CPU internal calculations are
not counted yet) but this is 100x better than previously because
memory fetches are emulated, too fast CPU chip memory accesses and
too fast blitter was the most common cause for problems.

- CD32 drive command communication and interrupt handling rewritten,
  should now match real hardware (I think..) At least Brian the Lion
  CD32 works again..
- NTSC mode shouldn't jump anymore
- automatic vsync mode on the fly switching between 50Hz and 60Hz
  screen modes if refresh rate is supported, disable vsync temporarily
  if rate not supported (until switching back to supported rate)
- Superstardust AGA weapon panel breaks if 1 extra BPLCON0 delay cycle
  added. Obviously previous fix wasn't right.. Lets try something else,
  add extra cycle if first bpl dma cycle is allocated (8 planes)

Beta 7:

- removed very old width divisible by 8 restriction
- genlock "emulation" (chipset clocks stop if no genlock and BPLCON0
  external sync bit is enabled) was broken few betas ago
- NTSC alternating short/long line emulated (perhaps some rare
  NTSC-only demo cares about this)
- 5.1 sound mode had wrong Amiga channels -> center/sub mixing ratio
- another MOVEM disassembler fix
- pointless regstruct duplication in sources finally removed
- 68EC020/68020 "cycle exact" mode implemented. This is A500 chipset
  cycle exact mode combined with 68020 CPU. 68020's chip RAM fetches
  are slowed by DMA, instruction cache is not emulated but "close
  enough" opcode fetches are not slowed down as much (better than
  nothing). Extra instruction processing cycle usage is not yet
  included, CPU basically runs as fast as memory allows. (which is
  more or less correct except slow instructions like mul and div need
  extra cycles) Quickstart A1200/CD32 most compatible now enables this
  new CE-mode. Some weird sound problems can be noticed, reason unknown..

Two above changes can break lots of things as usual.. Binary size also
increased, 4th CPU core added (68020CE) and finally, next official
version is now guaranteed to not be 1.6.2..

Beta 6:

- STOP increased PC only by 2 if trace was active (copy protections..)
- WASAPI exclusive mode improved (final Windows 7 SDK had much better
  examples than RC or Vista versions)
- restart sound (close and open) if sound gets stuck instead of killing
  sound completely
- thread priority updates and fixes (perhaps this fixes reported slow
  filesystem emulation)

Beta 5:

Biggest A500 cycle-exact updates should be done now.

- interrupt delay rewritten and corrected, fixes Gleat Stuff #01/BRB
- blitter/CPU timing tweak, fixes 1010 bobs/Celtic
- disable sound if sound driver buffer position gets stuck (driver bug)
- final partition read/write fix..
- try to emulate reading of non-existing/write-only custom registers
  more accurately
- Brian the Lion "dialog screen" seems to be something AGA specific
  after all.. 1 extra cycle needed after write to BPLCON0 before BPL
  cycle diagram changes (or at least in Brian the Lion's situation..)
  so add one cycle in AGA and hope it isn't totally incorrect fix..

Beta 4:

- 0x76/0x30 partition types are marked as "PART" in GUI and read/write
  should really really work..
- exec* command line didn't support command separation (;) characters,
  batch files supported ("cmd.exe /c <batch file>")
- fixed very old left border graphics error in Absolute Inebriation
- b3 sprite fix broke other programs, fixed again
- Brian the Lion "dialog screen" problem is not anything AGA-specific,
  BPLCON0 write needs 5 cycle delay, not 4 when written by copper.
  Not fixed yet, waiting odd number of cycles in copper emulation isn't
  currently possible

and few buggy demos fixed, doing weird things with the blitter and work
only accidentally.. For the first time ever Rampage/TEK works!

- Absolute Inebriation/VD "red linevector cube inside white object" part
  now works. Bug in blitter wait, rewrites blitter registers when old blit
  is still active, normally this would mess up the blit but it worked
  because write to BLTCON1 freezes the blitter if it causes switch from
  "extra" cycle fillmode to normal mode.
- Rampage/TEK blitter feature workaround added, another buggy demo, it
  changes blitter channel mode from 0x01 to 0x0D while blit is already
  active, result is blitter getting confused and changing to weird cycle
  diagram without D-channel. No writes, no memory corruption, no crash...
- above cases (blitter channel mode changing while active) also writes
  message to log. I am not going to test all combinations :)

Random freezing not yet fixed.

I guess version will be renamed to 1.7 or 2.0 because of huge A500
compatibility increase..

btw, I only have single non fully working A500 test statefile remaining,
I need more non-working A500 game/demo reports :)

Beta 3:

Two main compatibility testing demos work perfectly now:
Final Bobs/Complex and Hulkamania/TSP. (Rampage/TEK still won't work..)

Both require very exact CPU/DMA timing to work. First has "scrambling"
that uses vertical beam position as a key, main demo has already worked
if "scrambling" was bypassed, and second writes to BPLxPTs with CPU when
display DMA is already fetching data.. Yes, sane coders use copper..)

- lots more cycle-exact CPU cycle count updates
- some more blitter updates (correct startup and copper wake-up delays)
- non-DMA mode sprites were always reset during vblank (I remember that
  this was working long long time ago, possibly broke during Superfrog
  "intro bee" fix or something) Fixes B2 world rotozoomer graphic glitch

- added sound driver use/do not use GUI to sound panel (stored to
  registry/.ini) Faster startup.
- exec* command lines should work better. Check the log if problems
- 0x76/0x30 partition types are always available read/write
- bsdsocket fix, cvs (SR)

Beta 2:

Background information:

After many days of logic analyzer work, blitter should finally be
100% cycle-exact, even in line mode.

DMA emulation cycle-exactness is greatly improved, most vector
routines that had slowdowns, flickering or graphics garbage should
work perfectly now (even Los Huivos/Virtual Dreams doubleglenz work,
this has shown only major graphics garbage previously)

There are still some that won't still work or work even worse,
these could be caused by CPU emulation timing errors (even single
cycle difference in single instruction that is used regularly enough
can make the difference)

"Standard test" programs still not working: Rampage/TEK, Hulkamania/TSP
(and left border garbage in one part of Absolute Inebriation/VD, reason
is known but I am not sure how to implement the fix)

- "DMA cycle debugger", v <vpos> [<hpos>] lists selected scanline's DMA
  activity, hpos, custom register, data, address. This made
  compatibility testing much easier. (just compare this data to
  logic analyzer data) Second row can contain extra characters:
  N = blitter cycle given for CPU, b = blitter interrupt, B =
  blitter finished. (not necessarily exactly same thing)

- chipset bitplane/copper/blitter cycle exact mode DMA sequence
  routines rewritten. Emulation may be slower due to missing
  optimizations. Later.
- blitter cycle diagrams rechecked with logic analyzer, errors fixed

- CPU emulation fixes, lsl/asl/ror and friends had wrong cycle
  counts. bclr/bset/bchg are 2 cycles shorter if bit number is less
  than 16 (16-31 = add extra cycles) and more. Lots of testing to do..

- WASAPI sample format fallback didn't work correctly
- command line parser now really works exactly like Windows console
- added "win32.exec_before" and "win32.exec_after" configuration
  entries, "before" command is run when emulation starts, "after"
  when emulation shuts down or before another config is loaded.
  Multiple commands can be separated with ';'. Waits until command
  returns (=waits forever if program never exits..)
- interlace artifact removal works again (b1)
- automatically handle split dms files. If extracted data is only
  about half of standard DD disk and if file name is "*a.dms",
  attempts to open and merge "*b.dms" with already unpacked data
- do not enumerate openal recording devices

Beta 1: (too many changes, everything can break blahblah usual stuff)

- command line filename will be detected as a disk image if file don't
  have known extensions but is small enough and first 3 bytes contain
  "DOS" (previously detected as hardfiles..)
- check for windows messages more than once per frame, may reduce
  latency (in worst case it may increase power requirements..)
- marked DLLs that are rarely used/only in specific configurations
  as delay loaded, may make startup slightly faster
- inserting/ejecting USB input devices on the fly replaced all "<none>"
  and all keyboard layouts with keyboard layout A (old bug)
- "Add PC drives at startup" does not anymore mount drives that are
  also configured as real harddrives
- real harddrive safetycheck modified, now all drives can be mounted as
  long as drive does not have any Windows mounted partitions. Any drive
  with one or more Windows mounted partitions are only available in read
  only mode. Command line parameter is now only needed if you want to
  add drives that have Windows mounted FAT partitions. Drives with NTFS
  partition(s) are never (there is a complex way..) allowed in
  read-write mode.
- SCSI (RDB hdf emulation) write commands return proper write protected
  sense status if hdf is read-only
- A590/A2091 SCSI ROM 7.0 was not accepted (debugging code..)
- RDB filesystem loader still had fse_PatchFlags hack instead of
  handling it 100% correctly (no functional change, at least with any
  popular filesystem)
- accept also partition type 0x30 (another Amithlon like RDB drive
  inside real PC partition)
- added new RTG configuration panel, more space for future options, also
  old RTG setting panel was not really in correct place anymore
- command line parsing handled quotes inside strings differently than
  Windows does when running from command line

- added bitplane DMA fetches to copper debugger (there will be separate
  DMA sequence "disassembler" in future)
- Agnus bitplane DMA behavior correctly emulated when number of planes
  or resolution changes mid screen. Old code (1.5x+) was totally wrong
  and too complex..  Now all my test statefiles work 100% correctly:
  Disposable Hero, Bass-O-Matic/Crusaders, Innovation Part 2/Axxis 
  Brian The Lion "dialog" screen is corrupted again but this seems to be
  AGA specific feature (SMD chips = no logic analyzer)

- CD32 CD controller emulation improved, CDXL animations should run more
  smoothly now, previously emulation couldn't load more than few sectors
  before CD32's cd driver detected error condition and retried
- added seek delays to CD32 emulation (CD32 drive has really slow seeks)
- CD32 Lotus Trilogy's Lotus 3 finally loads (stupid loader partially
  overwriting already loaded data if CD DMA "slot" sequencing is not
  exactly correct)
- CD32 CD audio moved to separate thread, no more emulator pausing when
  CD audio starts or track changes (possibly introduces other issues..)

- D3D 2D sprites (ID3DXSprite) used in D3D filter onscreen leds, correct
  positioning, no scaling and free transparency. Scanline texture also
  converted to 2D sprite, now works correctly with D3D filters (future
  plan: convert all DirectDraw code to D3D 2D sprites)
- OpenGL filter removed, totally obsolete now. Gone forever unless
  someone updates it. (including correct positioning and scaling)

- built-in WASAPI sound driver implemented. Replaces DirectSound if
  running on Vista or newer. WASAPI has two modes, shared and
  exclusive. Shared roughly equals old DirectSound, exclusive means
  sound card is exclusively used by WinUAE. Exclusive mode has lowest
  possibly latency but note that there may be only one or two
  supported sample rates (for example 48000). NOTE: buffer sizes
  can not be directly compared between different modes. PortAudio
  is now considered very unsupported (that didn't last long..)
  Needs tuning, not good enough yet (especially exclusive mode)
- distortion in sound was possible with short square wave samples (160)
- final 16-bit sound samples always had lowest bit (or two lowest bits)
  zero, now lowest bit(s) are duplicated from real lowest significant
  bit(s)
- programmed display modes had bad sound (161b4 sound update was not
  fully complete.. most stupid 1.6.1 bug so far)
- portaudio fallback code added, unsupported samplerate = try 44000,
  48000 and default reported before disabling sound. Same with number
  of channels, unsupported channels = fall back to stereo

- Vista or newer: AvSetMmThreadCharacteristics() is used to enable
  task scheduling better suited for multimedia applications = more
  CPU time given without slowing down lower priority tasks (which
  can happen with normal priority settings)
  

1.6.1

Beta 5: (1.6.1 RC)

- JIT indirect/direct state is remembered when JIT is switched off and
  later restored when JIT is switched back on (uae-configuration etc..)
- inhibit "no disk" Windows dialogs when connecting some USB memory
  card readers without media
- do not add disk images to disk history if they are inside archive
  that was mounted as a harddrive
- fixed infinite archive recursion introduced in previous betas
- magic mouse automatic mouse capture didn't work reliably (160b7)
- Ports/About GUI icons and file association icons updated (JW)
- language identifier changed to english, neutral (was english, US)

Beta 4:

- mixed disk swapper panel id and number of input panel columns..
- magic mouse was unreliable in directinput mouse mode ("mouse *")
- magic mouse can be switched on/off on the fly
- utf8 configuration entries didn't work correctly and caused
  duplicate entries. (fix by loading and saving config again)
- added generic disk icon image (from Cloanto) that is associated
  with disk image extensions (if enabled in associations panel) This
  may change before 1.6.1 if my brother feels less lazy next week :)
- App Paths winuae.exe reg key created if winuae is run as admin
  at least once, this fixes some file association issues (wrong or
  missing icon for example), also some other association updates
- statefile harddisk restore problem fixed (still not guaranteed
  to work..)
- 60Hz on PAL (or NTSC in 50Hz) sound sync/vsync calculation was
  incorrect
- in AGA only HAM6 or HAM8 supported. HAM mode bit set with 5 or 7
  planes seems to be ignored (OCS/ECS has "HAM5")
- HAM ignored AGA BPLAM (BPLCON4) bits

Beta 3:

- added exception handler that writes log message if openal or
  portaudio device enumeration crashes
- fixed d3d pot/square texture restriction check, only for really
  old display cards (which may be too slow for d3d filter..)
- bsdsocket cleanup crash fix (ancient win32-specific bug)
- gzip decompression problem (yet another unicode conversion bug),
  also broke built-in hrtmon (which is gzipped internally)
- reset fpu rounding state to original temporarily when doing filter
  calculations (single pixel jittering in some filtering modes if
  Amiga-side code uses FPU and modifies rounding mode)
  
Beta 2:

- fs "double vsync" mode (100Hz+) was still slow in warp mode
  (note D3D mode will stay "slow" because afaik it is not possible
  to switch D3D vsync on/off on the fly)
- added warp mode to configuration file (warp=true/false, config file
  read-only)
- and another read-only configuration entry, "headless" that switches
  invisible emulation mode (window gets hidden). future feature..
- log window scrollback buffer increased to 900 lines
- command prompt "console wrapper" support (run winuae in command
  prompt: output goes to command prompt window, does not open separate
  log window) More information later, not important just yet..
- saving configuration after modifying input-panel autofire setting
  caused modified input event to be saved incorrectly (old bug)
- display scaling does not anymore change D3D filter scanline scaling
- unicode conversion broke magic mouse
- uaeunp file handling update broke some archive operations (b1)
- loading config from command line with GUI enabled didn't override
  quickstart (if enabled)
- added "toggle" option to input panel. First button/key press =
  emulated button is pressed and kept down. Second button/key press
  = emulated button is released

Beta 1:

- development PC updated to Intel Core i7 based. (Asus P6T DeluxeV2,
  i7 920 2.66GHz CPU @ 3.7GHz, 3x2G 1866MHz RAM)
- ASPI crash fixed (calling convention mismatch.. I didn't test and
  only assumed previous fix would be the only problem left..)
- filesys default codepage changed to default ansi page (1252 breaks
  many non-european characters)
- added more directory harddrive error codes to Windows->Amiga code
  translation table (unit not ready, bad unit)
- directory harddrive Windows illegal character handling was broken
- do not capture mouse at startup if window is hidden/minimized
- archive dragging to HD-led really mounts it as a harddrive, even
  if it contains only disk images
- 1760k HD and 10 sector DD PC formatted had switched internal
  DD/HD flag (=above image types didn't work)
- FAT12 formatted images supported as a harddrive (uaeunp feature)
- turbo/warp mode in fullscreen mode wasn't as fast as possible

Final 1.6.0

- filter mode PAL aspect ratio corrected (~5% difference) if keep
  aspect ratio checked. (it includes now non-square pixel ratio)
  Does basically same as long time ago removed aspect ratio option.
  Because it can look ugly and it isn't exactly required feature,
  it is only enabled in FS or autoscale modes (they need scaling
  even without aspect ratio correction)
- ASPI SCSI unicode conversion bugs fixed (random crashes..)
- "Ignore modes that have larger resolution than largest supported
  mode". Now it really does this.
- D3D fall back to non-filtered if IDirect3DDevice9_Reset failed
  (instead of closing and reopening the screen and trying again)
- filter scaling sliders didn't work in normal (1x+ mode)

Beta 29: (RC2, beta dialog removed)

- Pang hack side-effects fixed
- autoscale/keep aspect ratio combination fixed
- NTSC hardware in PAL mode: shrink display (fit PAL display in NTSC
  space) Previously NTSC was always stretched but I think it is better
  to make "base" hardware PAL/NTSC mode non-scaled. Note that PAL/NTSC
  vertical streching/shrinking is only supported in filter modes
- screenshots never worked in windowed D3D modes
- screenshot size was wrong in full-window mode
- 100% stereo separation was only about 95% stereo separation

Beta 28: (RC1)

- re-added CD32 emulation hack that was removed in b4, fixes unreliable
  booting in non-JIT modes (do not return TOC until "turn led on/off"
  command is received. At that time led command was unknown command,
  now I am quite sure this can't be the correct way to do it..)
- Rainbow Islands one missing horizontal line fixed ("Ode to Ramon"
  scanline fix broke this, OCS-only)
- printer GUI changed, checkboxes replaced with select menu.
  Passthrough: no changes, original printing method.
  ASCII-only: prints only basic ASCII text.
  Epson matrix printer emulation: you do not need to know. yet.
  PostScript options: no changes.
- list also supposedly unsupported modes/refresh rates in resolution
  list, marked with '*'. Ignore modes that have larger resolution
  than largest supported mode and modes that have 75Hz or higher
  refresh rate (just to be in safe side..) Some display drivers
  don't return custom resolutions in "monitor supported" list..
- loaded configuration files, disk images and statefiles are added to
  recent list (includes Windows 7 jump list support)
- more accurate audio Paula/native rate conversion (from UADE, I was
  supposed to merge this fix long long time ago..), this fix and some
  sound sync code updates mean much improved sound sync (SND% should
  be much more stable now, including vsync modes)
- filter-panel aspect ratio works as expected, aspect ratio selected
  is monitor's aspect ratio and automatic = aspect ratio calculated
  from desktop resolution (if fullscreen) or window size (if windowed)
- added hack that fixes Pang (and perhaps others) graphics problem,
  real fix coming (much) later..

Beta 27:

- on screen led was always enabled (b26)
- scaling in NTSC mode really fixed (b26)
- enabling autoscaling and no filters enabled: select Direct3D if
  at least 2.0 shaders supported (=fast enough), only select Null
  filter if older. (D3D9 scaling is "free" on modern hardware)
- Logitech LCD SDK updated (currently waiting for G19..)
- autoscale found sprites outside of bitplanes when BRDSPRT was
  enabled without ECSENA
- vertical positioning in autoscale was wrong in some cases
- AHI works again
- always enable Picasso96 BIF_INDISPLAYCHAIN (not enabled means
  RTG mode display size of 0x0 pixels = crash)
- delayed printer open, do not open until enough data received, also
  ignore data completely if less than 10 bytes received
- added "ASCII Printer" option. Select this option if you use programs
  that print directly to emulated parallel port (bypassing Amiga
  printer drivers) and they expect old-style printers that directly
  accept ascii text (Action Replay, demo scene disk magazines etc..)
  In future this will also include emulation of old Epson matrix
  printer control codes (de-facto control codes that most printers
  supported at that time)
- added missing "Automatic" aspect ratio setting in Filter panel
- selecting "Full Window" mode when no filters enabled = also enable
  Direct3D + FS. (this is what users apparently expect, not confusing
  tiny image on the middle of screen)
- development PC updated to Windows 7 RC

Beta 26:

- added transparent support for ICD AdIDE "bit swapped" disks and
  hardfiles. Each 16-bit data word has bits swapped, bit 0 = 15,
  bit 1 = 0, bit 2 = 14, bit 3 = 1 and so on (reason is most likely
  PCB cost) Listed as "CPRM" in "Add Harddrive" list because first
  (which is normally hidden) block starts with ascii string "CPRM"
- wrong sound device was selected if configuration was loaded and
  DS, OpenAL or PortAudio had 100% identical device names
- bsdsocket not too common connection issue fixed (b15)
- sound card index in config file > number of sound devices = very
  slow emulation
- added "All" option to RTG RGB format selection menus (make sure
  "ENV:Picasso96/ShowModes" contains "All" or only single format per
  color depth is available in screen mode dialogs)
- autoscale: show blank display using previous scaling instead of
  defaulting to non-scaling
- NTSC vertical centering fixed in scaled modes
- D3D and OGL mode was not properly closed when switching to
  windowed/fullwindow RTG mode (old graphics was visible depending
  on screen/scaling etc..)
- AHI is broken in this version. Do not use

Beta 25:

- Picasso96 crash in some specific cases when 8bit->16/32 or 16->32
  conversion is used (bug since new Picasso96 emulation was introduced)
- "yes/no"-style dialogs in fullscreen with active GUI: mouse was
  (incorrectly) captured when exiting the dialog
- switching between ce and non-ce mode in some blitter heavy programs
  could have frozen the blitter (workaround was to switch back to
  original mode)
- input was disabled when in "mouse driver" mode and focus was lost
  and regained
- DXSDK update, D3D support requires March 2009 DX runtime or newer
- D3D fullscreen "border" flickering fixed

Beta 24:

- debugger T command fixed (b15)
- JIT FPU bug, one addressing mode was wrong (b15)
- reset clears "native2amiga" command queue (it was possible to have
  command queued just before reset which would have been executed
  after reset -> random errors and crashes)
- do not include mice in parallel port joystick select menus
- add new empty adf files to disk history list
- added simple list devices, libraries and resources command to
  debugger (Td Tl Tr)
- log file long datestamps fixed

Beta 23:

- archives (zip etc) didn't unpack (b22)
- directinput keyboard was not always unacquired when focus was lost
- hq2x/3x/4x crash in specific situations (old random bug)
- clipboard initialization changed again, now initialized after all
  other residents (previously it was after dos)

Beta 22:

- do not change priority if current priority is HIGH or REALTIME
- command line parameter parsing crash fixed
- added 5:4 aspect ratio to rtg and filter settings
- archiveaccess filename encoding fixed (b15)
- recursive archive support fixed (b15)
- added adf, rdb and hdf "archive" support. It is now possible to
  browse adf/hdf/dms/ipf/fdi/extended adf inside zip/lha/whatever
  archives when mounted as a harddrive :) (uaeunp.exe feature mainly)
- clipboard initialization should really be after dos initialization,
  should fix random "UAE clipboard sharing" crashes when booting
- debugger crash fixes (b15)
- lha non-extended file/dir timestamps fixed
- 7z SDK updated to newer version, timestamps supported
- diskspare (12/24 sector) disk images supported, also includes "plain"
  adf files that have exact diskspare format size
- dragging to windowed mode HD-"led" forces harddrive mount (for
  example adf is mounted as a harddrive, normally dragging autodetects
  type and inserts adfs to disk drive)
- dragging file to harddrive panel also automounts it immediately if
  emulation is already running

Beta 21:

- registry subsystem wasn't initialized in b20 (broke lots of things)
- postscript printing crash fixed (old bug that didn't crash so
  easily in older versions..)
- slowdown introduced in b13 should be fixed (inverted comparison
  when testing if current scan line can be emulated in "fast" mode)

Beta 20: (feature complete now. I think..)

- added controller type to gameports panel, easier way to enable
  more complex standard controller configurations without need for
  input panel (analog joystick, lightpen, joystick mouse emulation..)
  Note that impossible configurations like emulating joystick with
  mouse aren't supported even if GUI seems to allow it, also
  non-mouse lightpen isn't really supported, it works but moves
  badly (not worth the trouble really, maybe)
- added "CDTV Mouse" which is CDTV remote controller mouse emulation,
  only difference between normal and CDTV mouse is speed setting,
  normal mouse speed is adjustable in input-panel, CDTV mouse speed
  is not adjustable and is same as real CDTV mouse emulation (there
  are CDTV programs that expect CDTV remote controller -like mouse
  speed and they do not work very well with normal mouse)
  NOTE: speed not yet calibrated!
- added CD32 controller type to gameports GUI, enables CD32 controller
  emulation. Now it is possible to emulate normal joysticks in CD32
  emulation mode (without using input panel)
- parallel port joystick adapter configuration added to gameports panel
  (GUI lists all devices but only joystick/keyboard supported)
- light pen cursor is centered when used for the first time
- added more compatible default analog joystick parameters
- digital joystick/buttons mapped to analog stick axis work correctly
- state restore rom detection fixed (b15), added logging
- support "0x402 An unknown error occurred" when deleting non-existing
  directory with recycle bin enabled
- drives 1 to 3 config load didn't work (b15)
- added possibly pointless command line image conversion option,
  "winuae -convert <src> <dst>" where src can be any supported archive
  and/or disk image (even archive.lha\fileinsidearchive.dms should
  unpack to adf) Separate command line unpacker maybe in future..

Beta 19:

- missing command line unicode support added
- added support for winuae.exe <paths> [<other params>] command line.
  <Paths> can be path to a configuration file, any supported floppy
  disk image file or statefile, multiple paths supported, path
  parsing stops when first parameter beginning with '-' or '/' is
  detected. Automatically disables "show gui on startup".
- improved configuration parsing, now for example something="path"
  and command line -something="path" works, previously " (or ')
  was not parsed properly
- clear dsound buffer when sound autodeactivates, it was possible to
  have some old sound data left in buffer if buffer size is really big
- gui debugger clipboard and enter address option fixed (b15)
- autoscaled screen was off center if display size was too small
- directory filesystem "unimplemented error 3" fix
- directory filesystem "unimplemented error 87" when setting file/dir
  datestamp and drive is in FAT partition (FAT date range is not as
  large as Amiga supported date range, AmigaDOS minimum date is
  1978-01-01, FAT minimum is 1980-01-01)
- directory filesystem date underflow fixed, host-side date earlier
  than 1978-01-01 caused underflow, result usually was date in
  far future.. (bug since the beginning most likely)
- updated directory filesystem date calculations to 64-bit
- directory filesystem ERROR_COMMENT_TOO_BIG implemented
- PortAudio works again, also accept only v1899 or newer library
- clear D3D filter screen when autoscale settings change
- added F13-F16 to rawkeyboard keycode array

Beta 18:

- gui debugger unicode conversion fixes (b15)
- native dll call fixed (b15)
- already existing _UAEFSDB.___ was not updated properly on NTFS
  volumes, "dirty" _UAEFSDB.___ data was not flushed when emulator
  was exited (old bug)
- non-ascii configuration strings are duplicated in UTF-8 as
  <entry name>.utf8. Now even japanese file names and paths work in
  configuration files :) (backwards compatible, old versions will
  ignore it)
- clipboard sharing: accept only v37 or newer clipboard.device
- added DD (720k) and HD (1440k) PC floppy image type to create disk
  option (image will be unformatted)

Beta 17: (even more fixes. do not use b15 or b16)

- module ripper text conversion fixed
- winuae.ini UTF-8 support (only new ones are created in UTF-8)
- ACTION_READ with "illegal" length or address crashed (b15)
- catweasel log information string wrong encoding fixed
- ACTION_SEEK 2G limit and 64-bit filesystem packet fixes
- configuration file handling bugs fixed (b15)
- directory filesystem date field ignored timezone (b15)
- crash dump file naming fixed (old bug)

Beta 16:

- multiple unicode conversion issues fixed, hardfile/drive issues,
  clipboard text conversion, statefiles etc..
- automatically add KS rom "footer" if rom is too short (for my own
  rom project, more information later...)
- unrar.dll support fixed and uses now unicode functions
- all text file reading routines now automatically support UTF-8 and
  UTF-16LE formats if BOM is included (plain files only, not inside
  archives yet)
- directory filesystem seek 2G test added, 64-bit seek function return
  code fix

Beta 15:

- WinUAE is now native unicode application (internally all strings are
  NT native UTF16-LE format instead of 8-bit "ANSI")
  What does this mean?
  - lots of breakage possible, size of one byte = size of one character
  isn't true anymore and finding all cases is difficult. Report all
  mysterious crashes (they are usually easily duplicated)
  - Windows<>Amiga directory filesystem character set conversion can
  be configured (Windows "code page" may not match Amiga charset =
  "special" characters should work better now. Default is CP 1252 which
  is functionally identical to Amiga standard ISO-8859-1)
  - logs and configuration.cache are UTF-8 formatted (UTF-8 is more
  human readable than UTF-16), "old" charset supported
  - log window supports unicode now, no more weird characters in
  (for example) device names containing national characters
  - configuration files are still in old format (would cause too many
  problems with old versions and front ends..)
  - I simply wanted to do this when I dropped 98/ME support but I wasn't
  ready until now. (also most new Vista+ APIs are unicode only,
  converting between ansi<>unicode was getting too annoying)

- ACTION_EXAMINE_ALL was quite broken, it always returned full directory
  entry data (wrong variable used..) Most (all) programs didn't care.
- "not implemented error" filesystem warning is now shown to user
  (nobody apparently noticed it in the log = I can never fix it..)
- directory filesystem >2G files are shown as 2G minus 1 byte (instead
  of truncating to 32-bit and showing negative or other random sizes),
  >4G files internally supported
- directory filesystem ACTION_CHANGE_FILE_POSITION64,
  ACTION_GET_FILE_POSITION64, ACTION_CHANGE_FILE_SIZE64 and
  ACTION_GET_FILE_SIZE64 implemented (OS4+ packets but also supported
  by 68k SFS2)
- ignore all input events (except activation events or if mousehack
  is enabled) if no focus and not active (previously only focus was
  required)

Beta 14:

- filter out PortAudio DS and MME drivers (useless duplication only)
- portaudio WDM-KS freeze fixed (ancient bug in portaudio library
  and nobody hasn't fixed it yet.. Why do I have to do everything..)
- folder selection dialog updated to larger Vista/W7 version
- new Vista/W7 style file dialog was always in "open" mode, it was not
  possible to select non-existing file when saving

Beta 13:

- mousehack mouse sync works in filter modes
- D3D filter display positioning should be correct. maybe.
- full window RTG scaling changes or RTG<>native switches didn't clear
  old graphics completely
- unofficial/experimental PortAudio audio library support, copy dll
  (portaudio_x86.dll) to plugins-directory. Main point is very low
  latency sound API (ASIO, WDM-KS, WASAPI) support. WDM-KS (XP) not
  tested, WASAPI (VistaSP1/W7 only) confirmed working. Generally
  can be ignored, do not ask :)
- file selection dialog uses new IFileDialog interface (if available,
  Vista or newer only) Dialogs still should look same, shout if
  something looks weird. (currently this is my workaround for
  Windows 7b feature/bug of remembering old directory, even if
  OPENFILENAME structure has lpstrInitialDir set)
- automatic scaling update, very large DIWSTRT/DIWSTOP values are
  clipped to max overscan size when calculating display size
  (some demos had really wide autoscaling)
- fixed autoscaling + aspect ratio set + resolution/linedoubling ratio
  not 1:1 (for example lores + doubling) = wrong aspect ratio.
- clipboard Amiga->PC conversion crashed if clipboard contained no
  text data (empty FORM FTXT structure without data content)

Beta 12:

- file comment was not reset when file already existed and file was
  opened mode = MODE_NEWFILE, also caused lost file comment if file
  was opened and old comment was set again (probably another "since
  the beginning bug") Thanks to TC for finding easy test case.
- mousehack/tablet support "mouse sync" updates (still not fixed)
- "Magic mouse cursor" mode configuration added.
  - Both = show standard Windows and Amiga cursors
  - Native = show Amiga cursor only
  - Host = show Windows cursor only (with colors and shape copied
    from real hidden Amiga cursor) This mode fakes really smooth
    looking cursor movement (as long as positioning is correct..)
- 'e' debugger command OCS/ECS color register contents are shown
  correctly in AGA mode
- sprite garbage in some rare situations (reason not fully known..)
- floppy drives were emptied if quickstart was enabled, show gui on
  startup was not enabled and GUI was entered for the first time
- sprite attachment fixed. Surprisingly it works as documented :)

Beta 11:

- fix for graphics corruption introduced in 1.5.3 when bitplane DMA
  fetch happened while bitplane pointer was updated
- AGA 6 plane mode (non-EHB) was not always enabled properly (b3)
- added -clipboarddebug command line parameter that writes clipboard
  contents to file in winuae directory. (clipboard_p2a.xxx.dat
  and clipboard_a2p.xxx.dat)
- added ripper path to Paths panel, used by prowizard and sample
  ripper (previously sample ripper used screenshot directory and
  prowizard used winuae root directory)
- directory filesystem ACTION_CHANGE_MODE was completely broken in
  CHANGE_FH mode, returned error and "Error: couldn't find key
  x / y!" was logged. Bug since the beginning
- clipboard: multiple CHRS chunk merging fixed (again), less stupid
  clipboard.device detection
- blitter line mode (only if linedraw code was "weird") broke in b3
- file selection dialog (adf, hdf etc..) remembers previous filter
  mode ("*.adf", "all files" etc..)

Beta 10: clipboard stuff.

- clipboard: multiple CHRS chunks inside FTXT supported
- clipboard: IFF ILBM Amiga to PC support implemented. EHB supported,
  HAM6/8 automatically converted to 24-bit, 24-bit IFF supported
- clipboard: PC to Amiga IFF conversion. Counts the number of colors,
  if 256 or less, creates normal paletted IFF image, if more, creates
  24 bit IFF.
- clipboard: Windows clipboard is only updated when there is new data
  in Amiga clipboard and WinUAE loses focus. Same with Amiga clipboard,
  do not copy contents of Windows clipboard until WinUAE gains focus.
- switching from "artifact fixed" interlace mode to non-laced now
  force updates the screen completely, fixes possible glitches

Beta 9:

- flickerfixer improved, also first and last line glitch fixed, sprite
  positioning fixed. Now interlaced WB is rock solid.
- "Flicker fixer" renamed to "Remove interlace artifacts" (it really
  isn't same as flickerfixer or scandoubler)
- led transparency removed, it read from display ram which caused huge
  slow down
- artifact removal broke autoscaling
- am and sm debugger commands merged to single M<sub command> command
- bitplane disable debugger command added, Mb <enabled planes>
  [<if disabled plane, show it as all zeros or as all ones>]
- automatic, transparent clipboard sharing! Data in Windows clipboard
  is automatically copied to Amiga clipboard.device unit 0 and vice
  versa. Only text-based content currently supported. OS2+ only.
- REPEAT NOTE: D3D/OGL filter is still broken. Do not use.

Beta 8:

- UAE boot rom was enabled when it should not have been (b7)
- little blitter tweak, writing to bltcon1 while blitter was
  enabled confused blitter emulation in some cases
- filter multiplier select boxes now support manually entered
  multipliers, for example 2.5 = 2.5x.
- "Commandline" registry (or ini) string entry will be parsed as a
  command line (separate step after normal command line parsing)
- built-in hrtmon cycle-exact mode issue fixed
- non-interlace to interlace switch issue fixed (another one,
  they never end..)
- do not autoresize unless display parameters are stable for next 50
  frames
- added "Include removable drives.." option. Now "Add PC drives" only
  adds nonremovable drives. USB etc. will be only mounted at startup
  if new option is ticked. "Workaround" for case when "Automount
  removable drives" is ticked but USB (or whatever) drive is already
  inserted.
- removable drive insert/eject used unallocated signal bit, it did not
  cause problems but fixed now
- experimental "flicker fixer" implemented (Display panel). Works
  perfectly in WB, not so perfect in games yet (and impossible to get
  perfect in all cases, as usual..) No more interlace artifacts when
  any graphics object or mouse pointer moves.
  NOTE: first and last line will flicker or show garbage.
  
  Technical details: normal interlaced display goes like this: draw
  even lines (0, 2, 4, etc..), next frame draws odd lines (1, 3, 5..)
  This makes 25Hz refresh rate and also causes interlace artifacts when
  objects move. UAE flickerfixer draws both fields simultaneously,
  even lines = 0,1*,2,3*,4,5* and odd lines (0*,1,2*,3..).
  * = draw display using bitplane pointers stored during previous frame
  
Beta 7:

- version number bumped to 1.6.0
- added "resize" autoscale method. Resizes windowed mode window
  to current detected Amiga display size. (1:1 pixel mapping, no
  blurriness)
- PAL/NTSC switching in KS3.x early boot screen was ignored until
  following reboot (old bug)
- do not report no_cd-status when loading CD32 statefile without CD
  inserted
- doublescan modes autoscale/resize better
- improved Amiga display size detection
- autoscale option saved to configuration file
- do not capture mouse if mouse pointer is not in normal mode, prevents
  annoying accidental capture when dragging/resizing
- very large overscanned modes are centered in autoscale modes,
  previously right border was simply clipped
- tablet+magic mouse cursor positioning will be even more broken now
- do not create registry key if ini mode is enabled (release versions
  only)
- renamed "Drawing tablet support" to "Install virtual mouse driver"
  (which is not much better but at least a bit less confusing..)
- mouse autocaptures in "sync mode" if native side mouse driver does
  not get "heartbeat" signal from Amiga-side driver (for example
  when running game that takes over the system). Current timeout is
  2 seconds.
- native mode mouse cursor shape copied to Windows cursor (yes, I am
  going really too far now..) in mousesync mode. Just experimenting..
- left mousebutton didn't always work in mouse sync modes
- fullscreen and full window should work correctly again
  (hint: full window + autoscale + correct aspect = useful if you
  don't mind blurriness, scale2x/pal filter may also help)
- on screen leds' background is translucent (32-bit screen + filtered
  only)
- NOTE: D3D/OGL filters do not yet work correctly in autoscale,
  autoresize or mouse sync modes (=mouse driver + magic mouse)
- NOTE2: screen dragging does weird things with autoscale/mouse sync
  (mouse sync issue when two different screens are visible should be
  fixable)
- NOTE3: both real and "fake" cursor is temporarily visible in mouse
  sync modes. They should always be in 100% sync and have identical
  shape. (but aren't, still much work to do..)

Beta 6:

- Spheris Legacy top/bottom border autoscaling fixed
- screen width checking only stored final display size before vblank
  (game with wide gamescreen and narrow scoreboard at the bottom would
  have used scoreboard's width)
- autoscale saved to config file
- non-filtered mode is back but enabling autoscale will automatically
  enable null filter if current selection was no filter
- filter aspect ratio setting in autoscale mode was wrong
- filter aspect ratio now set by default
- detected screen size logged
- loading new statefile didn't always trigger scale update

Beta 5: WARNING: big changes. 1.6 version change expected.

- KS loader 16-bit odd/even rom image to 32-bit merging fixed
- A1000 bootstrap rom in even/odd format wasn't loaded correctly
- added "Blacker than black" display configuration parameter.
  Ticked = borderblank is full black, color register RGB range is
  0F0F0F to FFFFFF (instead of 000000 to FFFFFF) "Fixes" missing
  "widescreen effect" in Nexus 7 galaxy effect. (blanked border is
  "blacker than black" on real hardware, at least on TV-style
  display devices)
- useless correct aspect setting is gone (use null filter instead)
- do not try to decrypt broken non-encrypted DMS files
- added new panel "Gameports", moved joystick configuration from
  io ports. (more space for future "easy" input configuration mode)
- moved mouse related settings to new gameports panel
- added tablet settings to new gameports panel
- CD32 mode onscreen CD led now emulates real CD32 CD led behavior :)
- some CD32 CD command and status code updates (did some logic
  analyzer stuff, more to do later), now updated cd.device that comes
  with FMV cartridge works. Also CD command 2 now returns full
  firmware string, "CHINON  O-658-2 24" (useless but fun, same with
  CDTV CD ROM firmware versions..)
- F12+CTRL was same as F11+CTRL (partial copypaste error)
- renamed motherboard RAM expansion areas
- Wings of Death "fake" NTSC works correctly
- Null filter is default and non-filter mode is not anymore possible.
  Finally I can use filters for other things than just simple
  filtering . See below!
- filter FS multiplier + keep aspect works as expected
- pal/ntsc vertical size change emulated (using filter scaling, try
  KS3.x early boot screen)

- mouse and tablet/"absolute mouse" support completely rewritten
  * mousehack mouse removed (not needed anymore)
  * mousehack interrupt and task renamed to "UAE tablet driver"
  * do not select any "tablet mouse" in ports-panel. Use normal mouse.
  * tablet automatically detected (currently needs to be wintab32.dll
    compatible. Really confusing Tablet PC support maybe later..)
    Tablet properties in log file.
  * tablet and mouse are separate devices, like real Amiga tablets.
  * if tablet is detected (and "UAE boot rom" is installed), "UAE
    tablet driver" will be automatically enabled:
    KS1.x: uses old-style mousehack mode
    KS2.x: creates IECLASS_NEWPOINTERPOS/IESUBCLASS_TABLET messages
    (position, range and pressure. Note that pressure variable is
    documented as "not used" in 2.x documentation..)
    KS3.x: creates IECLASS_NEWPOINTERPOS/IESUBCLASS_NEWTABLET messages
    ("lots of stuff")
  * stylus inverted = right button (if supported by tablet)
  * proximity detection (if supported by tablet)
  * reported tilt angles are 99.9% surely totally wrong
  * Tested only with old USB Wacom Graphire.
  * No tablet.library emulation because no information available.
    (Deluxe Paint requires it for pressure support)
  * TODO: configuration (left button sensitivity, margins etc..)
  * New gameports panel settings:
    - "Drawing tablet support" = install "tablet driver", mousehack
      or real tablet. Same as mouse in "mousehack" mode. (bad label,
      will be renamed later..)
    - "Full tablet emulation" = use wintab32.dll for all tablet
      parameters (x, y, pressure etc..). Real mouse still works in
      mousehack mode.
  * "Magic Mouse" updated.
    - without tablet mode enabled: like previously but more accurate
    - mousehack/tablet mode: RTG mode perfectly smooth and seamless
      mouse cursor movement inside and outside of emulation window.
      (Changes Windows mouse cursor shape, hides real RTG cursor,
      works only if RTG hardware mouse cursor enabled)
    - native mode cursor sync should be always perfect. (this took
      long and was really difficult to do properly..) Does not work
      with screen dragging (yet?)
    
  * NOTE: real table support can't be improved until I get more
  information (tilt range etc..) Official documentation is non-existing.
  (short comments in includes aren't really considered documentation..)

  And finally extremely long awaited feature that was not supposed to
  ever happen: automatic display scaling!
  - enable checkbox is "autoscale" in filter panel
  - supports all filters (maybe?)
  - scaling sliders change extra border size (middle = no borders)
  - keep aspect ratio does just that
  - ignores possible sprites outside of display area (Banshee, Spheris
  Legacy etc..) Will be updated later..
  - enabled by default, aspect ratio disabled, at least during beta
  phase. Perhaps there should be button in quickstart panel to disable
  or enable autoscaling because not everyone likes blurry display to
  become the default..
  - to prevent very small displays scaled to fullscreen (like Guru
  meditation boxes), minimum allowed internal display size is 256*192.
  Max size is 344*272 (in lores, nonlaced pixels)
  - the better this gets the more comments I get.. (which means
  screenshot and complete name and/or CRC32)
  
  Does not (cannot) work with all programs. Why did I finally do this?
  Because "magic mouse" sync mode required position of display start
  and end and it was more or less the same was required for automatic
  scaling.. And also because filter internal algorithms are finally
  good enough.
  
Beta 4:

- removable real harddrives (or other memory devices) work again
  (broke in b2)
- OCS/ECS "7-planes" mode didn't enable EHB mode
- 320x256, 640x512, 800x600, 1024x768 and 1280x1024 are always
  available in Picasso96 resolution selection, even if host does not
  support the mode (in fullscreen mode automatically selects next
  higher available mode + black borders) 320x200 and 320x240 was
  already "faked" previously
- ECS Agnus 0.5M+0.5M "1M chip" mirror works again (Move Any Mountain)
- copper disassembler uses Agnus bank instead of direct memory access,
  works now with above configuration
- blitter writes work to "chip mirror" (Move Any Mountain missing gfx)
- mouse counter emulation rewrite, now works with programs that read
  counters hundreds of times/frame. (Oil Imperium pipelining minigame,
  some weird lag can be noticed but it is much better than previously)
- added support for 81 and 82 cylinder PC/Atari ST image formats
- memwatch breakpoints work after reset/memory bank changes

Beta 3:

- HAM errors if left border was not fully visible (it seems this bug
  has been there since the beginning of UAE, code that was supposed
  to handle this case has never worked correctly..)
- mid horizontal line HAM/EHB/DPF change fixed (Cover Girl Strip
  Poker) broke in 1.5.3
- added win32.guikey to configuration file, keycode that opens GUI
  (raw directinput keycode, for example F10 = 0x44) -1 = default.
- game & io-ports <none>-setting works properly
- vhd creator didn't create fully compatible images (larger images
  were incompatible with official vhd tools, did not cause data
  corruption)
- 1st Anniversary by Lazy Bones OCS/ECS "7-planes" trick emulated
  (missing black vertical lines)
- Disposable Hero title screen is now perfect. Take screenshots
  before it gets broken again :)
- added some more sanity tests to DirectDraw surface handling

Beta 2:

- fixed b1 slowdown when lots of sprites are visible
- CD32 mode CD32.TM detection added (log only)
- RTG vblank interrupt changes, use INTB_VERTB if RTG vblank is set
  to "Chipset". (very compatible, no extra interrupts happening) Uses
  INTB_PORTS if different than Chipset. (Previously used INTB_EXTER but
  some games didn't like it, Ports seems to be more compatible) Added
  "Disabled" option which disables RTG vblank support.
- fixed possible crash when closing fullscreen mode
- uaeserial.device unit 10+ open failure fix
- hardfile os-specific and common stuff separated more logically, more
  portable (and easier to add new image types, see below)

- VHD (VirtualPC) fixed and dynamic harddrive images supported. Reading
  and writing supported, image creation supported. HDF->VHD conversion
  is not built-in but you can use for example VHDTool or any other tool
  that supports raw to vhd conversion (hdf is a basic raw harddrive
  image type) "Differencing" image type may be supported in future
  (differencing = all written data goes to another image, like adf
  "saveimages")
  
  WARNING: vhd support may not be bug free yet. Remember backups!
  
  Why YetAnotherImageFormat? Main point is dynamic images. New empty
  dynamic image is always very small (even if virtual size is multiple
  gigabytes) and image grows automatically when needed.

Beta 1:

- DXSDK updated, D3D filters again require updated DX runtime
- some CD32 pad reading routines returned phantom buttons in JIT
  modes if pad was not "connected"
- another partial sprite rendering update, fixes sprite size problems
  in screen modes that have multiple resolutions in single horizontal
  line (for example Innovation Part 2 by Axxis is 100% correct now)
- also fixes wrong sized sprites in some lores resolution modes
- superhires in lores mode supported (show only every 4th pixel)
- superhires in filtered lores supported (visible pixel is average
  color of 4 internal shres pixels. This may be slow..)
- ECS SHRES in lores supported (both non-filtered and filtered)
- 10 sectors per track PC floppy images (800k) supported

1.5.3

Beta 8:

- delay sync clock enable until 10s from reset (do not confuse
  KS delay calibration routine)
- real PCMCIA SRAM re-insert detection really really does work now
  (Thanks to Eclipse for donating PCMCIA SRAM card)
  Vista note: Vista does not come with generic PCMCIA SRAM drivers
  anymore but XP built-in drivers do work, only need memcard.sys and
  memcard.inf from XP install. 32-bit Vista tested only.
- vblank interrupt was not working in RTG vsync mode
- fixed wrong colors after 16-bit fullscreen RTG to 32-bit desktop
  switch

Beta 7:

- fixed D3D scanline missing right edge
- OCS NTSC chipset always used PAL rates
- windowed RTG mode FPS counter shows both RTG and chipset refresh
  rates "<RTG> [<chipset]"
- CIA TOD didn't stop when genlock mode was enabled without genlock
  (caused KS to detect wrong timing mode, result was most OS time
  functions, including CLI wait-command, counted incorrectly if
  configured chipset refresh rate was different than current refresh
  rate. Bug since the beginning of time but genlock option made this
  worse because old "genlock always connected" feature hide this bug..
  (CIA-A TOD configured to PS tick didn't have this problem) Thanks
  to Ed Cruse for real NTSC A3000 testing.
- Syncronize clock improved. Automatically enables PS supply tick mode
  (CIA-A TOD = sysclock only if it uses PS supply tick) and also counts
  "lost" ticks when emulation is stopped (for example GUI is open)
  This is still a hack but at least it seems to work now :)

Beta 6:

- Picasso96 vblank rewritten again, now uses build-in Picasso96 vblank
  hardware interrupt support. It really works now, WaitTOF() does not
  waste CPU time anymore
- added Picasso96 vblank rate configuration in GUI. Chipset = RTG
  vblank is same as chipset refresh rate (same as in previous versions)
  Real = real host-side refresh rate. <value> = refresh rate. Currently
  this only affects vertical blank waiting functions
- "Associate all"-button didn't work
- fullscreen to another fullscreen resolution switch on non-primary
  display could have frozen emulation in some cases
- statefile-configuration parameter also sets default statefile path
- 150b23 "disk write does not start if wordsync is enabled" was not
  exactly right, disk write works normally if wordsync is enabled and
  previous read detected wordsync. Internal "Wordsync detected" flag
  apparently only gets reset when disk read is started. Kick Off 2
  save, most likely many other programs too..

Beta 5:

- moved file extension stuff to half-empty priority panel, replaced
  button with list and added (de)associate all buttons. Extension
  command line visible and editable? Perhaps later..
- Improved emulation of reads from write-only custom register after
  some boring real Amiga testing.. (still not exactly right)
  S.E.X by Fantasys works now. (does MOVE.L INTREQ,D0 when it should
  have been MOVE.W INTREQR,D0.. This only worked accidentally)
- Picasso96 vblank wait implemented without busy waiting. Was in pre
  1.5.0 but busy waited, was "lost" when RTG was rewritten
- sometimes first vertical blank interrupt was missed when loading
  statefile if statefile was created when blitter was active

Beta 4:

- midline resolution support changed again (should be "good enough" now,
  better compatibility requires bigger changes and boring logic analyzer
  testing)
- centering was very broken in some cases (b2)
- only accept openal32.dll 6.14.357.22 or newer. (fixes possible crash at
  startup)
- missing sprites in some programs fixed, for example Leander and Battle
  Squadron (b2)
- added descriptions to file associations, fall back to user-specific
  (instead of system-wide) file associations if no admin privileges (was
  broken in Vista)
- added "Associate file extensions"-button to Paths-panel. Adds following
  extensions: .uae, .adf, .ipf, .dms, .uss. Removal not yet possible
  (it gets really tricky if other programs use same extensions and there
  is no API for adding or removing associations, only way is to access
  registry directly.. believe it or not.) Automatic .uae association
  removed. Better GUI in future. Maybe.

Beta 3:

- fixed AGA display corruption (hopefully all cases..)
- POTxDAT behavior in output mode fixed

Beta 2:

- RTG hardware cursor was still visible if switching from hardware
  cursor enabled WB installation to non-hardware cursor installation
  without closing WinUAE
- some CE-mode memory access optimizations
- configuration cache loader missed most configuration files inside
  directories (parent was set to wrong entry..)
- some midline resolution change updates. Disposable Hero looks better
  but not perfect yet.. Innovation Part 2 by Axxis also looks better
  (sprite resolution issue still remaining). Brian the Lion "message
  dialog" corruption fixed.

Beta 1:

- huge memory leak fixed (display mode switch)
- fullscreen color depth change didn't work on the fly
- multi monitor resolution list may only have listed primary monitor's
  resolutions
- OpenGL fullscreen works again

Beta 0.1:

- "always on top" change works on the fly
- "no taskbar button" works on the fly
- missing stack frame type 4 added to RTE
- dragging zipped adf to floppy leds mounted it as a filesystem, not
  as a disk image (I guess zip containing only disk image(s) dropped to
  WinUAE window should also mount as a disk image?)
- emulated OCS-only "scanline" effect if DDFSTRT < 0x18. (Music disks
  Ode to Ramon I and II by Digital Force. ECS = scroller is unreadable
  and without "scanline" effect)
- "latest news/abandon"-fix broke "nakudemo"-fix, both work now
- parallel/serial/midi select menus didn't work
- Input-panel numeric boxes at the bottom didn't work (same as above)
- sleep_millis() was not thread-safe (could have caused random timing
  glitches in some very rare cases)
- emulate joystick 2nd/3rd button pullup resistor because some games
  require it (and apparently some/many Amiga compatible 2+ button pads
  have it). For example BC.Kid 2-button mode won't work without
  joystick/pad with pullup resistor in second button pin. (regular
  single button joysticks don't have pullups) Analog joystick update in
  1.5.x "broke" this.
- POTxDAT X and Y counter bytes were inverted (Aladdin second button)
- reset current disk sound parameters when on the fly drive sound
  settings are changed (does not fix missing motor sound until drive
  motor restarts, not worth the trouble, at least not yet)
- replaced "shouldn't happen" abort()'s in JIT with error dialog and
  forced hard reset
- highgfx superhires mode missing pixels fixed (also possible in some
  normal max overscanned AGA-only screenmodes)


Final 1.5.2

- uaescsi.device only updated CMD_GETGEOMETRY parameters when emulation
  was started (and also broke CMD_READ if there was no CD in drive)
- "Magic mouse" tried to uncapture mouse when it was already uncaptured
- save relative rom paths in ini-mode

Beta 4: (final beta)

- check openal32.dll version before using
- accept 1.5.1 language DLL files (no GUI changes)
- Catweasel: do not use direct access to read joyports if driver is
  installed, caused conflicts with driver provided joystick/mouse
  (note that I still don't care about CW until 64-bit compatible
  drivers are released, if ever. Do not ask stupid questions.)
- fixed D3D 8876086C error if display number in configuration file was
  bigger than current number of displays
- display mode switching mouse cursor handling tweaks

Beta 3:

- bsdsocket initialization rewritten, should be more reliable now
  if uae rom is moved and/or other extra residents enabled
  (I don't understand how it was supposed to work previously..)
- OpenAL sound mode problems fixed ("I hope")
- Raw mouse/"name of mouse" mouse wheel support fixed (has always
  been broken)

Beta 2:

- RTG mode and width set to bigger than resolution (autoscroll)
  = bottom part of display was not updated (1.5.0)
- windowed mode minimize and restore, only title bar was visible
- mute on/off inputevent fixed
- added analog joystick emulation multiplier and offset config
  entries (not in GUI yet)
- analog joystick emulation improvements, pot line (=2nd/3rd
  firebutton) capacitor charging/discharging emulated. Not yet
  perfect, F19 Stealth Fighter still not working in analog joy mode.
- directory harddrive/uaehf.device hardfile didn't enable
  uaelib hooks (used by uae-configuration/uaectrl)
- added log message if bsdsocket host-side initialization fails
- filter preset load didn't redraw the display using new parameters

Beta 1: (crashing bug = this will be quick beta series, really!)

- 4th floppy drive track display number was clipped in windowed mode
- non-vsync RTG mode run in "warp"-mode if native mode was set to
  fullscreen+vsync
- USB "non-friendly" name buffer overflow, caused random crashes
  and weird behavior, including uae-configuration issue. (1.5.1)
- sprite garbage was possible if sprite(s) active during resolution
  change from higher to lower resolution (AGA only) (1.5.0)
- OpenAL sound support (experimental, OpenAL may be better API for
  new AHI driver than DSound) Note that OpenAL uses internally
  DirectSound if sound card does not have native OpenAL support.
  "Generic Hardware" = DSound wrapper, "Generic Software" = WaveOut
  wrapper (really bad), something else = native support. OpenAL sound
  devices only available if OpenAL is installed. DO NOT ASK something
  like "What is OpenAL". Learn to use search engines first or ignore
  this feature.
 
Final 1.5.1

- compiled with August 2008 DXSDK, shader files modified (old ones are
  not compatible anymore) D3D filter now requires August 2008 or newer
  DirectX. Shader support need pixel shader version 2.0 or later.
- MSVC 2008 updated to final SP1

RC4: (still waiting for fixed winuae.net..)

- quickstart A1200: increase A1200 KS 3.1 priority over
  Cloanto A4000 KS 3.1 (AF2008 finally includes real A1200 3.1 ROM)
- multiple identical USB game controllers fix really works now
- non-ce/non-immediate blitter timing calculation returned totally
  bogus values if AGA fmode=3, wide sprites or sprite doublescan was
  enabled (tiny blit could take few seconds to finish in worst case..)
  Ancient bug.
- input device re-enumeration cleanup after usb device insert/remove
- crash when inserting or removing USB devices before emulation has
  been started
- inserting/removing USB devices does not anymore change currently
  selected mouse or joystick in ports panel

RC3:

- bsdsocket broke in rc2
- D3D filter does not crash if texture creation fails
  (=non D3D9 compatible display card/driver)
- shader filters renamed to "D3D: <name of filter>" in GUI

RC2:

- PAL filter was not selectable
- direct3d fullscreen mode switching really works now
  (non-flashing fullscreen d3d->other mode switching coming after 
  1.5.1)
- new autoswitching input handling got confused if multiple USB
  game controller had same product GUID
- fixed some harmless and ancient thread handle leaks

RC1:

- clear RTG screen when switching to different RTG mode
- d9dx9_36.dll set to delay load, winuae now runs without recent DX
  redistributable installed as long as D3D filter(s) aren't used
- shaders moved to plugins\filtershaders\direct3d (perhaps opengl
  shaders will be implemented someday..)
- pixel shader filter on the fly change crashes fixed (I hope)
- adf was not updated if disk write DMA was aborted (Cadaver save)

Beta 8:

- PAL filter preset fixed
- fixed random copper problem introduced in b7
- Direct3D filter updated to full D3D9, added pixel shader filter
  support (http://www.si-gamer.net/gulikoza/) Pixel shader files
  included with beta. Some filters will require PS3.0, some work with
  PS2.0. Check the log for possible error messages. Pixel shader filters
  are "free" as long as display card is modern enough.
  NOTE: this beta may need recent DX9 redistributable, I'll try to
  fix this later.. NOTE: on the fly switching can crash
- include hardfile name in IDE identification command

Beta 7:

- PCMCIA SRAM can work as a memory expansion now (it was not possible
  to execute 68K code in emulated SRAM previously..)
- configuration files in subdirectories didn't load if configuration
  cache was enabled
- "refresh rates in parenthesis" handling fixed
- on-screen leds do not disappear when switching filters
- enable ini-mode if <name of winuae.exe>.ini (without .exe) is found
  (previously winuae.ini was always used)
- logic analyzer copper timing updates (thanks to yaqube for test
  program) Not 100% correct yet, there seems to be unknown 2 cycle
  offset between bitplane dma and copper, and also seems to break
  Leander's right border (as I expected, something always breaks as
  long as it isn't 100% full fix)
- background color changes on very right edge of screen are now
  visible
- stop sound while inactive or minimized paused emulation
- directory filesystem statefile restore didn't work without
  restarting emulation

Beta 6:

- RAM limit update in previous beta wasn't working..
- ddfstrt >= ddfstop "feature" emulated. OCS = display ends at "hard
  stop". ECS/AGA = starts and ends immediately = not much to see.
  Scroll text in intro "Latest News" by Abandon is now visible,
  OCS-only, scroll text missing on ECS Amigas (except small graphics
  garbage on left border)
- uaescsi.device and uaehf.device read/write command parameter
  validation improved (previously length = 0 was considered valid)
- experimental rawkeyboard mode added, add -rawkeyboard command line
  parameter to enable it (also disables directinput keyboard mode)
  Normally not needed but may help if some keys are not working in
  directinput mode. Windows XP or newer only.
- added BIF_NEWDIALOGSTYLE to path selection dialogs
- path selection dialogs autoselect old directory
- added path selection dialog to "favorite path" feature (right click
  on disk image select buttons)
- filter aspect ratio selection added

Beta 5:

- avi recording crash if only audio recording was enabled
- native dll support fixed
- do not enable second Z3 board if RAM limit reached (=decrease Z3 size)
  and Z3 size is smaller than 256M (4M+2M combination for example is
  quite stupid..)
- adjusted max RAM limit calculation (max RAM + max page file instead
  of currently available RAM + max page file)
- sound adjustments, previously it was possible to lock non-safe portion
  of directsound sound buffer causing glitches in some cases (which may
  or may have never happened)
- SuperEagle, Super2xSaI and 2xSaI 32-bit color support added
- disable filter if filter size multiplier is too big for configured
  display size (instead of overflowing buffers..)
- resolution and doubling setting change on the fly updates filter
  centering
- added -ddsoftwarecolorkey command line option. Workaround for buggy
  Intel integrated laptop chipset Vista graphics driver causing non-
  transparent (pink rectangle) RTG hardware cursor
- (new AHI driver will be only available after 1.5.1)

Beta 4:

- input panel custom events in slots 2+ were not saved if previous
  slot was empty
- debugger memwatch points were still broken in byte and word modes
- debugger movem was disassembled incorrectly (wrong source/dest
  address shown) if addressing mode was not address register relative
- raw mouse friendly names added (was easier said than done..),
  defaults to old-style "RAW Mouse" if name can't be found
- directdraw max surface size driver workaround fixed
- game Lancaster ce-mode blank-screen tweak

Beta 3:

- corrected directinput keyboard enumeration, possible fix for
  wrong keycodes (=non-working key) on some keyboard/driver
  combinations. (bug since the beginning, I blame really bad keyboard
  directinput documentation)
- Picasso96 color space conversion color errors (b2)
- Picasso96 now always keeps aspect ratio in scaled modes
  (both windowed and full-window)
- window resize worked strangely in some cases
- full-window on the fly monitor change fixed
- disappearing mouse cursor if scaled window was smaller than original
  Picasso96 resolution
- detect Amiga Forever 2008 Value Edition rom key when winuae is
  located outside of AF install directory
- fullscreen to fullscreen non resolution/depth changes won't
  reopen the display anymore (except D3D/OGL<>other filter change)
- fullscreen to fullscreen resolution/depth change speed improved
- Windowed Picasso96 scaling fixed when native mode was set to
  fullscreen or fullwindow
- nasty memory corruption fixed in configuration handling introduced
  in 1.5 betas. Causes random crash or memory corruption sooner or
  later when saving configuration few times.

Beta 2:

- Picasso96 hardware mouse cursor may have been invisible (or wrong
  graphics) in some cases after resolution change
- borderblank switching does not corrupt graphics in interlaced modes
  (this was already fixed in beta 1)
- default JIT timing value increased to 25000, should help with some
  PCs that had slowdown in 1.5.0 series, hopefully without side-effects
- HRTMon works (again) if JIT is enabled
- "Kickstart replacement" is compatible with new KS loader
- interlace should work again in "normal" mode (no doubling or
  scanlines) (broken since 1.3b2..)
- interlace<>nonlace switching graphics problem fixed (1.5.0) 
- window is now reopened only when switching to fullscreen. Every
  on the fly windowed configuration change should never reopen the
  window anymore.
- full-window modes work again, filtered modes center properly
- renamed Picasso96 option "Scale instead of switching resolution" to
  "Scale if smaller than display size setting"
- added Picasso96 option "Always scale in windowed mode", this option
  causes window size to never resize when resolution changes. Also
  enables manual window resizing. Just experimenting..
- Picasso96 "Scale instead of switching resolution" in full-window modes
  always scales to full screen
- fixed possible crashes when switching Windows desktop resolution or
  when using quick user switching (post message if there are still
  problems, I rarely use these features)
- some directdraw and direct3d memory leaks fixed

Beta 1: (1.5.1 in few weeks)

- windowed mode "instant" switching implemented (this was planned for
  1.5.0 but it would have delayed release 2-3 more weeks)
- windowed mode window sizing enabled (not available in P96 modes,
  if enabled, what it should do? scale the image?)
- A500 "Chipset extra" enables RTC if memory expansion configured
- KS 1.3 hardfile mounting fixed (so far "worst" 1.5.0 bug found..)
- rewritten full featured AHI driver coming soon


  * all AHI sample types supported (8-bit, 16-bit, 32-bit)
  * 7.1 supported (probably will convert to 5.1 if 7.1 not supported)
  * rear speakers supported in stereo mode (negative panning value)
  * "infinite" number of sounds supported (basically emulates sound
    card with "infinite" memory)
  * number of simultaneous sounds only limited by PC sound card/driver
  * all mixing is done by Windows sound driver (old driver used
    Amiga-side software mixing)

1.5.0

Beta 25: RC1

- "non-standard" Picasso96 resolutions are available again
- fixed unusable huge crash dumps if logging was enabled

Beta 24:

- real PCMCIA SRAM card removal should really really work now
- real harddisk (or memory card or usb stick) disk change message
  could have been sent to wrong device unit if multiple harddisk
  devices were configured (including hardfiles)
- direct3d and opengl fullscreen fixed
- direct3d/ogl<>Picasso96 switching fixed (instant switch not possible)
- NTSC vblank end vpos fixed (top of display was cut in overscan modes)

Beta 23:

- OGL/D3D fixed but uses old scaling method (update after 1.5)
- AF2008 ROM scanner detection problems really fixed
- JIT timing change test (perhaps faster CPU without other
  side-effects..), added command line parameter -jitevent <val>
  current default 10000, old was 3000. Experiment if interested..
- default display buffer setting changed to "DefaultRAM" (which
  is same as in 1.4.6 and older, can cause too much confusion
  if new version even in non-Picasso96 mode is much slower than
  old version due to weird display drivers)
- disk write does not start if wordsync is enabled
- improved rare heavy CPU usage situation when sync word=0
  without disk inserted
- improved dragndrop file type autodetection
- ignore duplicate directinput joystick axis indexes

Beta 22: (To do: OGL/D3D scaling options. bleh.)

- AF2008 non-KS/extended ROMs didn't decrypt properly
- configuration cache checkbox added to paths-panel (default is
  enabled, saved to registry/ini)
- added pointless CD32+FMV Quickstart entry
- CDTV extended ROM 1.0 part numbers added (2.07 PN still missing)
- Action Replay 3 v3.09 even/odd ROM checksums added (roms dumped,
  thanks to Jope for adding ROM sockets to my AR3). First four bytes,
  io-addresses that can't be dumped using software dump method, are
  0x50 0x00 0x00 0x00. (how boring..)
- possible fix for sluggish GUI Memory-panel

Beta 21:

- A3000 1.3 SuperKickstart fakeMMU bonus remapping fixed
- A3000 mode (=A3000 SCSI enabled) forces UAE boot rom to backup
  location (no more conflicts with 1.3 SuperKickstart bonus area)
- notification area icon is now created only once at startup
- added function to uae.resource that can be used to query function
  pointers using string labels (more portable and safe)
- 32->16bit Picasso96 color space conversion fixed
- all missing Picasso96 color space conversion routines added
- HAM6 with less than 6 planes emulated properly
- 0.5M chip + 0.5M slow + ECS Agnus chip ram aliasing implemented
  (DMA addresses 0x80000-0xfffff are aliased to 0xc00000-0xc7ffff)
  Previous chip mapping fixes were not 100% correct, there is no "bus
  noise" when slow ram is enabled.
  Fixes demo "Move Any Mountain" by "Lazy Bones"
- floppy drive sounds fixed in 4+ sound channel modes
- fixed rare bug in configuration list, missing directory entries
  possible if it only contained other directories (no files)
- implemented configuration cache that caches all data needed to
  populate Configuration-panel quickly without directory/file scanning.
  Currently always enabled (this way I surely get enough testing..)
  Cache is stored in file called "configuration.cache" in configuration
  root directory. Cache file is only re-created when configuration is
  saved, deleted or cache file is missing or corrupted.
  Enable/disable in future, first some testing :)

Beta 20:

- only reset sound when changing configuration if sound mode, sound card,
  frequency, channels, or buffer size is changed
- 5.1 sound settings now also send mixed sound to center and LFE channel
  (mixing volume may need adjusting, please test)
- superhires sprites in doublescan mode had halved horizontal resolution
- power led fade support (very crappy)
- possible fix to random joystick/mouse switch crash
- programmed resolutions (doublescan) are now horizontally centered
- right side max sprite clipping position was incorrect
- D3D/OGL filters do not crash anymore but still do not work as expected..
- added Amiga-side uae.resource, safe method to find "uae rom" base and
  other information. Version of resource is UAEVERSION.UAEREVISION
  NOTE: in compatible modes resource may not be available.
  Check sources for more information.
  
Beta 19:

- lha/lzh archives with directory entries ("-lhd-") crash fix
- GUI chip ram 8M option was unavailable (b17)
- joyportx and input panel parameters (except input mappings)
  supported via uae-configuration
- less useless logging in fullscreen alt-tab
- GUI autoscroll fixed when using fullscreen mode smaller than 640x480
  on non-primary monitor 
- non-AR cartridge emulation problems fixed
- dont emulate chip ram mirroring if JIT direct is enabled at startup
  (OS can detect wrong chip ram size, JIT does not support mirroring)
- emulate "bus noise" (very far from real thing currently) when ECS
  Agnus but only 512M RAM configuration (512k chip ram, 512k bus noise,
  512k chip ram, 512k bus noise) In theory 1M/2M Agnus configuration
  should be implemented because 1M Agnus + 1M chip = 1M chip ram + 1M
  chip ram mirror but 2M Agnus + 1M chip = 1M chip ram + 1M of "bus
  noise" (for example A500Plus) Later..
- Picasso96 state file support fixed (not compatible with old states)
- development PC CPU updated to Q9450 quad core CPU, 3.2GHz
  currently, more/less overclock later :) (old CPU was E6600)

Beta 18:

- sprites were visible when they were outside of DDFSTRT/DDFSTOP range
  (which really is DDFSTRT - end of line, another undocumented
  feature) "Fixes" demo Blittersweet (looks more broken now but it does
  look exact same on real A500) This update may not be 100% correct yet,
  it can break other programs. Test and complain :)
- some archives mounted as a harddrive crashed

Beta 17:

- hardware mouse cursor trails fixed when cursor height > width
- cursor directdraw surface handling changed, perhaps workaround
  for buggy drivers
- fullscreen to fullscreen picasso96 mode switching work properly
  when "Match host and RTG color depth if possible" is off
  (instant switch without resetting display mode)
- Picasso96 "fake" (320x200 etc..) display resolutions fixed
  (resolutions disappeared few betas ago)
- added 1.5M chip ram option (A500Plus + 0.5M trap door expansion)
  NOTE: do not use with JIT, JIT does not like non-power-of-2 RAM
- added 384M/768M/1.5G Z3 RAM options (enables second Z3 RAM board,
  384M = 256M+128M, 768M = 512M+256M...) Why? Because on most PCs
  1G is not possible (without having 64-bit OS) but 768M is usually
  possible and lots of RAM is fun and pointless :)
- Z3 RAM is now always mapped (more compatible with some reset proof
  programs)

Beta 16:

- winuaebootlog.txt and winuaelog.txt (if enabled) is written to crash
  dump file automatically
- uncapture mouse when paused if in windowed mode
- release only non-enabled input devices when mouse is uncaptured and
  release all devices when focus is lost. This makes WinUAE's behaviour
  more Windows-like (input is read as long as program has focus)
- "Match host and RTG color depth if possible" set and 24-bit fullscreen
  Picasso96 mode selected -> use 32-bit native mode
- fixed corrupted Picasso96 hardware mouse cursor in 8/16-bit modes

Beta 15:

- autoconfig emulation update, fixes AR3 (broken) autoconfig code that
  detected non-existing ram expansion at 0x00600000-0x009ffff
- modified directdraw fullscreen mode fallback code
- Picasso96 hires hardware sprite problem fixed. It was emulation
  problem after all.. (I really need new brown paper bag soon)
- Picasso96 hardware sprite resolution switching problem should be
  really fixed now. (lots of logging can still happen after alt-tab,
  this will be removed later)
- disk insert/remove tweak

Beta 14:

- fixed IDE emulation crash
- uae-configuration problems with some config entries
- pointless feature: 68881/68882 available in 68000/68010 modes
  (cycle-exact or more compatible not allowed at the same time)
- warp-mode didn't work in fullscreen mode if display refresh rate was
  set to "default"
- restoring statefile that includes one or more directory harddrives or
  uaehf.device hardfiles didn't restore uae boot rom properly
- some vsync tuning
- pause sound immediately when entering GUI
- maprom "shadow" ram moved to 0x0f000000 (no more conflicts with
  extended ROMs or incompatible Cloanto Kickstart ROMs)
- hardfile state restore freeze fix (Picasso96 statefile support not
  yet updated)
- Picasso96 hardware sprite DirectDraw surface is now allocated only
  once (instead of dynamically re-creating when shape changed)
- gfx garbage in mixed non-interlaced and interlaced modes should be
  finally fixed (maybe. for example Pinball Illusions scoreboard in
  hires-mode)
- totally broken interlaced doublescan modes fixed
 - "The Diagnostic 2.0" by Logica (Amiga diagnostic replacement ROM)
  keyboard detection fixed. Checksums added to ROM scanner.
- do not send initiate and terminate power-up key codes after
  restoring statefile
- floppy sounds also supported in <winuae path>\plugins\floppysounds
  directory
- JIT GUI changes, removed useless force checkbox, direct/indirect
  switching should work as designed again

Beta 13:

- more screen mode switching problems fixed
- automatically select next bigger resolution if fullscreen mode fails
  to open (for example 50Hz-only modes without 50Hz compatible display)
- added "keep aspect ratio" checkbox to filter panel, syncronizes
  vertical and horizontal zoom sliders (OGL/D3D are still broken!)
- both vertical and horizontal filter multiplier set to "FS" and aspect
  ratio checkbox checked -> keep aspect ratio
- midscreen BPLCON4 modifications fixed (broken since 1200b2, stupid bug,
  wrong register address..) fixes Gloom (and other programs using same
  copper C2P method) graphics problems
- winuaeenforcer stack debug output fix (BR)
- PCMCIA SRAM emulation eject crash fix
- fullwindow Picasso96 mode is centered again

Beta 12:

- hardfile creation: sparse file option added (sparse file = non-written
  parts of file do not take space on HD, NTFSv5+ required)
- IDE harddrive emulation LBA48 support implemented (>128G hardfiles)
  NOTE! READ THIS: http://eab.abime.net/showthread.php?t=35801
- memwatch breakpoints with value detection improved if size is word or
  byte
- CD32 CD frame interrupt was not always cleared (Liberation CD32, perhaps
  others, JIT still needs to be disabled)
- mousehack (tablet) mode fix, partially broken since 1.4.6 (not tested,
  I need to borrow my brother's tablet first..)
- Picasso96 tweaks

Beta 11:

- uaegfx.card is now WinUAE built-in, libs:picasso96/uaegfx.card is not
  needed anymore (and is ignored if it exists)
- resolution names in display preferences are now named
  "UAE:<w>x<h>" instead of "uaegfx:<w>x<h>"
- added new Picasso96 options to GUI
- 24-bit display depth Picasso96 blitter routines implemented/updated
- added all Picasso96 supported color depth modes, defaults are
  old standard PC modes (palette mode, R5G6B5PC and B8G8R8A8)
  NOTES:
  - only one 8-bit,15/16-bit, 24-bit and 32-bit mode supported
  simultaneously
  - All "new" modes require color space conversion = slower.
  - Not all mode color space conversions yet supported (black screen)
  - Can be useful with old RTG compatible demos or games that require
    specific "non-pc" display color modes
- added "Display buffer" option to misc-panel (stored to registry)
- "FS" scale setting is now the default
- refresh whole screen using very optimized routine if >80% of
  Picasso96 screen needs refreshing (faster than partial update)
- Marvin's Marvellous Adventure clouds/score interference fixed
  (It was really stupid bug, can only happen with AGA sprites)
- Skid Marks hires mode car sprite problem fixed (b10)

Beta 10:

- MOVEM is not weird in debugger anymore
- JIT RAM allocation failure path fixed (if Z3+RTG RAM fails to
  allocate, lower amount of RAM automatically and try again)
- limit internal sprite resolution to current display resolution
  (setting in display panel), should improve performance slightly
  in AGA modes if lots of sprites are used and display isn't shres
- harddrive detection crash if returned STORAGE_DEVICE_DESCRIPTOR
  was shorter than expected
- disable hardware sprite if uaegfx.card is old version without
  hardware sprite support and devs:monitors/info has softsprite=no
- adjusted DirectDraw surface allocation parameters, perhaps helps
  with P96Speed differences
- added -ddforcemode <mode> command line parameter, if you have slow
  P96Speed results compared to 1.4.6, try mode values from 1 to 3 and
  report results.

Beta 9:

- crash when fullscreen enabled and error dialog was shown before
  display was changed to fullscreen
- CD32 state restore compatibility improved
- SSCAN2 'undocumented' feature emulated. "If SSCAN2 bit in FMODE is
  set, then disable SH10 horizontal coincidence detect". This really
  means both one AND zero SH10 match = single sprite can appear twice
  on screen! (Fantastic Dizzy CD32 background)
- AGA mode only: last line of sprite may have been redrawn if bitplane
  width was changed and sprite was reused later (introduced in 1.4.5)
- debugger sp command improvements
- AGA sprite outside bitplanes position bug fix (introduced in 1.4.5)
- Picasso96 8-bit mode wrong palette after mode switch
- Picasso96 8-bit and 16-bit optimized blitter bug fix, too much data
  was blitted if width was >32 bytes (not pixels) and it was not
  divisible by 32. 32-bit mode was working properly.
- emulated LPSTOP instruction (68060 only)
- MMU instructions didn't check supervisor mode. Note that there is no
  MMU emulation, I think I have to repeat this every time I talk about
  MMU :)
- added 68040/68060 MMU instructions to table68k (no more generic
  "MMUOP" in debugger's disassembler) 68030 MMU instructions are still
  shown as "MMUOP030", they don't really fit to table68k format because
  first instruction word does not specify the instruction type
- MOVEC weird disassembly updated (MOVEM is still weird)

Beta 8:

NOTE: OGL/D3D filters still using old scaling

- uaegfx.card fallback graphics routines fixed (rarely used drawing
  modes that native C-code "blitter" does not support)
- print uaegfx.card version to log file
- simple RTG scaling support, do not change resolution but scale to
  fullscreen if display size configured in display panel is larger than
  requested Picasso96 resolution. Quality is not good, real filter
  support later. Perhaps.. Mainly useful with games/demos that use
  very low resolutions. (configuration enable option not yet added)
- "super skid marks fix" updated, previous "fix" broke all attached
  AGA-mode sprites
- GUI does not get overdrawn in fullscreen when adjusting filters
- timer calibration removed, uses now performance counters only, also
  checks periodically if counter frequency changes and adjusts to new
  rate automatically (possible fix for random power saving slowdown
  problems)
- fullscreen non-filter mode graphics problems fixed
- vsync is working but it isn't 100% smooth yet (at least on my PC)
- real CD32 rom (391640-03) checksums added to rom scanner
- fixed left and top border RTG hardware cursor graphics problems
- added warning if p96_uae_tweak is detected, it is incompatible with
  new uaegfx.card (update will be released later)
- filter temporary directdraw surface size restricted to max hardware
  supported 3D texture size (at least some cards apparently switch
  to very slow software blitter if size is bigger than max texture
  size) note that this can restrict scaling range, image simply
  disappears if scaling multiplier is out of supported range
- "watch" only visible RTG display RAM, should improve performance if
  program uses multiple temporary offscreen bitmaps
- RTG hardware cursor didn't always get erased properly when cursor
  shape was changed
- ROM chip part numbers added to rom scanner data, also added to GUI
  because not all ROMs have confirmed part number yet. "Non-ROMs" not
  included, like separate CD32 ROMs (real CD32 has single 1M ROM)
- PCMCIA SRAM on the fly insert/removal fix


Beta 7:

NOTE: _DO_ use filters (except OGL/D3D). Vsync still broken.

- Gayle and Gary CIA select lines work slightly differently, Gayle
  does not select any CIAs if both CIA select bits are zero (address
  bits 12 and 13). Gary enables both. Gary-style selection was
  emulated long time ago, Gayle-style emulated now. (I think 'select
  both CIAs' was only used by some games accidentally and perhaps
  also used by some copy protections)
- car color flickering in hires mode super skid marks (ancient bug)
- real PCMCIA SRAM card detection really works now
- uaegfx.card updated, now works even if "UAE boot rom" is not in
  "standard" 0xf00000 location (=CDTV ROM enabled) or disabled.
  Previos version simply crashed.
- uae boot rom backup location moved from 0xe70000 to 0xef0000
  (0xe70000 can conflict with KS mirror)
- jit memory allocation update, should prevent random RTG memory
  allocation failures
- Picasso96 emulation updates and tweaks
- CPU panel "After RTG" radiobutton removed, not needed anymore
- big filter rewrite (NOTE: OpenGL/Direct3D not yet updated)
  Settings needs to be readjusted
  + works more intuitively now
  + scaling does not affect centering anymore.
  + position setting (0,0) = centered.
  + 1/2x scaling factor added
  + "FS" scaling factor added = full screen scaling (obsoletes short
  lived "full screen filter" setting)
  + user scaling factor (FS,1/2x,1x,2x..) never include filter's
  possible internal scaling
  + hq3x and hq4x added
  + onscreen leds are now rendered after filter calculations
  + (some kind of "keep aspect ratio" option needed?)

Beta 6:

NOTE: Do not use filters, do not use vsync.

- real 8-bit RTG mode work (fullscreen only)
- buffer overflow in floppy image favorite shortcut code
- disappeared Z2 fast ram amount box is back
- Z3 but no RTG RAM allocation failure fixed
- Picasso96 BltPattern and BltTemplate COMPLEMENT-mode uses now native
  code
- Picasso96 "new" mode is now Windows 2000 compatible. NOTE: this is
  not 100% correct yet, graphics errors possible. W2K workaround mode
  is also slower than Windows XP+ mode
- Picasso96 RectFill() optimization (2x speedup here)
- some mode switching crashes/graphics errors fixed
- write warning to log if blitter is forced off in devs:monitors/uaegfx
- 8-bit modes removed from display-panel GUI. Native (custom chipset)
  display modes need at least 16-bit color depth now. RTG 8-bit still
  supported.

Beta 5:

NOTE: filters are currently not supported, they may or may not work
NOTE: vsync not supported. expect flashing or other issues..

- "favorite path" editing added. Path added is always last opened
  path from any file select dialog. (later..)
- "favorite path" right button context menus added to most path
  selection buttons
- picasso96.c clean up, removed old p96mode and other unused code
- new p96mode works without JIT
- CHK.L is 68020+, not 68000+ (only CHK.W is 68000+)
- uaescsi.device missing CMD_GETGEOMETRY added (not sure if "geometry"
  data is correct but at least device type and removable flag is set)
- RGB overlay option is gone, not very useful anymore and newer
  display drivers seem to emulate this in software..
- big directdraw support rewrite
- fullscreen to different fullscreen mode switching should be quick
  now (no more switching back to desktop and then back to fullscreen)
- 16 bit modes should work correctly again
- Windows-side 8 bit modes (temporarily) disabled. 8-bit RTG modes
  still work and are automatically converted to 16/32-bit
- "Match RTG color depth" option added to misc-panel. If checked
  fullscreen RTG mode uses Amiga-side color depth (as previously)
  Not checked = always use Display panel depth setting. (if you have
  programs that switch modes but you don't want Windows-side display
  mode changes) Windowed mode always uses desktop color depth
- GUI debugger updates (KB)

Beta 4:

NOTE: Fullscreen RTG modes are not fully working yet. Do not use.
NOTE: Before benchmarking, make sure Display panel display depth
matches Picasso96 display depth.
NOTE: P96 OLD-mode not supported. Only use NEW-mode.

- "Full-window" mode does not reopen window when switching modes
- 16 and 8-bit RTG mode optimized blitter operations
- RTG template-blit ("RectFill() Pattern") operations optimized (do
  pen value endian swap only once per blit, not every pixel..)
- RTG hardware mouse cursor implemented. Rock-solid, no flickering.
  Replace libs:picasso96/uaegfx.card with included updated version.
  NOTE: Make sure devs:monitors/uaegfx.info does not have forced
  software sprite setting. (SOFTSPRITE=Yes)
- 16-bit RectFill() graphics corruption fixed (b3)
- rom scan registry data updated, A590/A2091 ROMs work again, also
  version number information in the log is correct. Manual ROM rescan
  required or all roms will fail to load
- "favorite paths" added. Right click on floppy "Select disk image" or
  ".." buttons to open favorites menu. Data stored in registry, no
  GUI support yet. No data in registry: show beta-only example paths.
  There may be submenus or something similar in future if you are
  wondering about 'ALL'-part.. Will be added to other path-buttons in
  future.

Example registry editor export:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Arabuusimiehet\WinUAE\FavoritePaths]
"PATH_ALL_01"="d:\\amiga\\stuff\\games"
"PATH_ALL_02"="d:\\amiga\\stuff\\demos"
"PATH_ALL_03"="My Favorite Path #1 \"E:\\blah\\blah\\adf\""


Beta 3:

- "P96 new"-mode only: RTG display depth is now completely virtual.
  Emulation converts to real color space (configured in display panel)
  16->32, 8->32, 32->16 and 8->16 supported. 8-bit and 16-bit (without
  overlay) now possible in windowed mode. I guess real 8-bit support
  can be removed because it is not very well supported anymore..
  24-bit and 16-bit RGB (instead of 16-bit BGR) can be also implemented
  if some weird program don't support other modes..
  NOTE: make sure you have 32 bit selected in display panel if you want
  real 32-bit RTG mode. (instead of 32bit converted to 16bit)
- "new mode" fixes and optimizations
- chipset<>RTG switching is now instant (no closing and reopening) if
  both modes have same dimensions. (to do: different dimensions)
- "old p96 mode" will be removed soon because it is incompatible with
  above new features. (perhaps some optimizations to do first)
  Other new possible features will be RTG filter support (for example
  2x support for small resolutions like 320x200)

Beta 2:

- experimental Picasso96 speedup code. Default enabled, temporary
  option added to RAM-panel (stored to registry, not config file)
  May be slower on older PCs, I get up to 8x speedup in P96Speed
  benchmark (both desktop and laptop) Post your results here.
  Including PC specs, "old" and "new" P96Speed or other test results.
- harddrive detection now also includes more devices, even CDROMs..
  (perhaps this allows PCMCIA SRAM direct access)
- Weird Dreams sound problem (hospital scene when game is starting)
- GUI debugger patch I forgot to merge


Beta 1: (possible big changes in future betas)

- MSVC 2008 compiled. Does not run on Windows 98/ME anymore.
- debugger sprite dump command added (sp <addr> [<addr2>] [<size])
- A3000 2.04 revision number fixed. It really is 37.175.
- DOS HD floppy image crash fixed
- PCMCIA SRAM card emulation. SCRAM "HD controller" in harddrive panel
  (other HD parameters are ignored) Hot-swapping supported.
  Note 1: Amiga PCMCIA slot supports max 4M of directly addressable RAM
  and you can't have more than 4M of (non-32bit) fast RAM at the same
  time. Note 2: real PCMCIA SRAM card in PCMCIA/CardBus slot is not
  supported yet. I need SRAM card to implement it (or good
  documentation)
- rom scanner odd/even split and byteswapped rom support. Does not
  include: AR2/3/1200 ROMs (no real rom dumps available), Arcadia ROMs
  (not worth the trouble) or "non-rom roms" like Cloanto ROMs.
- rom scanner data in registry changed, added human-readable names
  NOTE: You need to manually rescan roms if you need to use 1.4.6 or
  older WinUAE versions
- EXTB.L was 68000+ when it should have been 68020+ (bug since the
  beginning and more)
- Gayle interrupt handling rewritten to match preliminary datasheet.
  This solved remaining PCMCIA problems. This can also fix possible
  problems with IDE emulation with specific device driver versions
- uaenet.device NSCMD_DEVICEQUERY fixed (didn't work and/or corrupted
  memory) S2_ADDMULTICASTADDRESSES and S2_DELMULTICASTADDRESSES had
  wrong command number
- uaenet.device random deadlock fixed
- really ugly uaenet.device interrupt handler setup replaced with
  proper exec.library AddIntServer() call
- added NSCMD_DEVICEQUERY to uaeserial.device
- added some sanity checks to emulated devices' open function
- Quickstart boot disk check does not complain anymore if track zero
  has errors but sectors 0 and 1 are ok
- multithreaded avioutput (finally). Video/audio encoding now runs
  in separate thread, MUCH faster encoding on 2+ core CPUs
  Note: null filter recommended (or any other 2d filter), non-filter
  mode requires reads from display RAM which is very slow
- GUI debugger improvements (Karsten Bock)


1.4.6

1.4.6 will be the last Windows 98/ME compatible version. 1.5.0
will require Windows 2000 or newer.

Beta 9:

- CD32 FMV cartridge "supported" (Actually it is a Z2 board). CD32 FMV
  ROM checksums added to scanner. Completely unusable currently.
  CD32 Cannon Fodder will try to play video, of course nothing can be
  seen or heard :)
- ECS Denise (without ECS Agnus) option re-added. Confirmed working
  configuration (except superhires, OCS Agnus does not know shres
  bitplane DMA sequence, result is vertical stripes. This "feature"
  is not emulated)
- full screen filter GUI checkbox was not initialized correctly
- small fullscreen filter tweak
- set foreground Logitech LCD priority when WinUAE has focus

Beta 8:

- input-panel NMI and END+SHIFT+Break NMI was unstable in
  cycle-exact/more compatible modes
- Denise without EHB added to advanced chipset (was already in
  A1000 "ICS" Quickstart)
- original Agnus BLTBUSY bug added to advanced chipset (also was
  already in A1000 Quickstart)
- accept same windowed mode resolution as windows desktop
- added "full screen" option to filter panel. Amiga display area
  fills whole screen when this option is enabled. Maybe useful when
  using "full-window" mode. Note: "whole screen" = resolution selected
  in full screen display select box, even in "full-window" mode.
  "Internal" filter window size can't be adjusted yet.

Beta 7:

- debugger activating when address error happened (debug code..)
- 1M CDTV ROM (0xf00000-0xffffff) confused CPU emulator if m68k
  instruction crossed extended and ks rom memory banks, 1M CDTV ROM is
  now single 1M extended rom bank (I am still doing 1M real CDTV EPROM
  tests..)
- audio emulation update, copy AUDLEN and AUDLC to backup registers
  when AUDxDAT starts interrupt-driven audio mode (Dungeon Master II)

Beta 6:

- binary support added to debugger, '%10101'
- hex/dec/bin converter added to debugger, '?<value>'
  result is 0x<hex>, %<bin>, <unsigned dec> and <signed dec>
- all debugger commands which take numeric parameters also accept
  register names: A0-A7 = RA0-RA7, D0-D7 = RD0-RD7, PC, USP, VBR,..
- debugger number prefixes: hex = 0x or $, bin = %, dec = !. Most
  command parameters default to hex (addresses) or decimal.
- do not reserve lots of jit direct ram if non-jit compatible cpu
- logitech lcd dfx/cpu/fps counter leading zeros removed
  (I have G15 again, updated revision this time)
- some incorrect Quickstart RTC configurations fixed
- keyboard reset warning feature emulated and added to advanced
  chipset panel. Reset warning information:
  http://cataclysm.cx/random/amiga/reference/Hardware_Manual_guide/node0178.html
  Reset warning sequence is only triggered if Amiga-Amiga-CTRL key
  sequence pressed and reset warning setting enabled. Or Input panel
  event "Keycode 0x78 (Reset Warning)" is received.
  Amiga-Amiga-CTRL-ALT still does instant hardreset. Second
  Amiga-Amiga-CTRL during reset warning sequence will also cause
  instant reset.
  Pre-emptive "bug report": if Amiga-Amiga-CTRL now causes gurus,
  reset delays or something weird (and does not if reset warning is
  disabled or GUI Reset-button clicked) you have buggy/badly configured
  reset handler utility installed. This is Somebody Else's Problem.
- joystick autoswitch update: firebutton press on non-connected
  (to emulated Amiga port) joystick AND another joystick already in
  joystick port (port 1) WITH firebutton pressed = insert new joystick
  to mouse port

  Following can be ignored if you aren't testing custom ROM images
  before burning EPROM(s)

- kickstart chipram overlay maps 0xe00000 rom instead of 0xf80000,
  same with 0xf00000 rom if it begins with 0x1114 (emulates my 1M CDTV
  EPROM hack..)
- 2M ROM image support. Gayle ROM mapping:
  * first 512K bank: E00000-E7FFFF (overlay bank)
  * second 512K bank: A80000-AFFFFF
  * third 512K bank: B00000-B7FFFF
  * fourth 512K bank: F80000-FFFFFF
  At least A600 and A1200 have 2MB ROM support but note that A1200
  Blizzard accel's MAPROM feature must be disabled
- cia overlay advanced chipset setting added (Pre-Gayle models use
  CIA overlay io pin, newer models have overlay logic inside Gayle)
- ROM Mirror advanced chipset setting separated to E0 and A8 ROM
  banks. (A8-B8 = Gayle feature)

Beta 5:

- fixed wrong input device GUID format in config files
- 'friendlyname' mapping didn't work if device name had trailing
  whitespace (like USB ProComp 'USB 2A4K  GamePad          ')
- C00000 and F00000 relocated beta/special KS roms supported
  (200000 already supported long time ago)
- A3000 official confirmed 2.04 ROM added (37.132 internal rom version,
  37.175 shown in "insert disk" screen..)
- possible crash when switching >2M chip setting from/to <=2M Chip
  and >0M Fast RAM configuration
- removed bogus "P96: display resolution list corruption" log message
  if biggest available resolution required more RTG RAM than available
- directory filesystem ACTION_EXAMINE_ALL is now "compatible" with
  FFS implementation. (workaround for older Scalos ExAll bugs that
  caused missing icons. Probably fixes other bad programs too..)
  - eac_Entries is now always at least 1 if continuation flag is set
  - keep returning ERROR_NO_MORE_ENTRIES even if previous call already
  returned ERROR_NO_MORE_ENTRIES

Beta 4:

- A600/A1200/A4000 IDE emulation 4G wrap around bug fixed
- "Add PC drives at startup" drive device name creation tries to detect
  already mounted device names, prevents ugly looking 'DHx_0'-style
  names. (note that this only affects name generation of "Add PC drives
  at startup"-drives)
- renamed GUI "autoboot" -> "bootable"
- rom scan duplicate path detection improved

Beta 3:

- input compatibility mouse switching restrictions added due to
  stupid Windows "supermouse" features. (Problem happens when you get
  two or more mouse button clicks from two or more virtual mice when
  in reality there is only one physical mouse..) Also you can't just
  select "raw mouse" because it can have different speed/acceleration
  than Windows "supermouse" mouse cursor..
- unusable pcmcia sram card emulation. No on the fly card insert/eject
  support yet. (insert empty sram card before starting emulation =
  card becomes system ram expansion automatically)
  This will be fully implemented after 1.4.6
- new default mapping end+shift+pause/break = IRQ7/NMI
- hardfile info panel didn't use 2G+ compatible size check
- IDE emulation end of drive check fixed (most block addresses after
  2G were detected as past end of disk)
- JIT-mode memory allocation was not disabled in non-JIT modes
  (68000/68010 and 68020 without 32-bit address space)
  Caused problems with cartridge emulation and more. (b2)
- GUI aligment/spacing errors fixed (David Walker)
- "Add Harddrive" HD controller select box updates correctly
- "SWIV" undocumented bitplane feature broke in 145b4 (not related to
  shres changes, just standard code cleanup copy/paste error..)


Beta 2:

- sprites outside bitplane area (AGA feature) was not working in all
  bitplane/sprite resolution combinations (broke when shres was added)
- relaxed Z3/RTG max RAM limits slightly (NOTE: it is 100% your
  problem if you select too much RAM resulting in massive paging and
  hd trashing)
- systray icon was not always removed
- fullscreen mode fallback fixes (145b18)
- do not flush directory filesystem cache if ACTION_MORE_CACHE is
  called with dp_Arg == 0, return current number of buffers only
- ports-panel joystick/mouse friendly/guid name saved to config file,
  no more changed selected devices if you save config, exit WinUAE,
  insert or remove some input device(s) and then reload the config

- joystick/mouse autoselection, input compatibility mode:
  Press any unselected joystick's button 0 to "insert" it in
  Amiga port 1 (joystick port) and button 1 to "insert" it in port 0
  (mouse port). Same with any unselected mouse except left mouse
  button = port 0 (mouse port) and right mouse button = port 1
  (joystick port).

- joystick/mouse autoselection, input configuration mode:
  Differences compared to compatibility mode:
  - because you can have mappings to multiple ports, device's first
  port related mapping in input-panel is decided as the only port
  number when doing remappings. When switching, only mappings that have
  same port number are remapped to new port. Old mappings that already
  have new port number will be remapped to old port number. Other
  mappings are not changed.
  - all other devices that are mapped to same port as new device will
  be disabled
  - only devices that are disabled (checkbox on right side of device
  name is not ticked) are available for autoselection
  - mouse switching is disabled if there are any "supermouse" mice
  enabled (Windows mouse etc..) because it would cause total confusion.
  Rawmouse or catweasel mouse are "safe".  
  
  Note: joystick button 0 has to select port 1 because for example
  Amiga joysticks in PC adapter may only have one button and generally
  you want joysticks in port 1.
  
  Just insert any plug&play compatible joystick on the fly and press
  first button. Can't get any easier!

Beta 1:

- ESS Mega (CDTV) "hidden" data track now reads properly on W2K/XP
  (uses SPTI READ_CD SCSI command if ReadFile() returns zero bytes.
  This is getting quite messy, mixing IOCTL, MCI and SPTI, Windows
  version specific read modes etc..) NOTE: SPTI requires exclusive
  access (IOCTL does not) so make sure no other program (including
  Windows explorer) do not have any open handles.
- crash when program executes any 68k command that causes a-line
  exception and pc was in first 64K of chip ram (145b1x)
- added inverted mouse/analog joystick input events
- 'none' input event was incorrectly parsed causing all following
  'sub configuration' entries to be ignored
- added friendly name and not so friendly (GUID) device names to input
  configuration file (so that we can match devices if they change or
  configuration gets moved between PCs, see below)
- input device insertion/removal on the fly supported (Windows 2K+)
  Lots of bugs expected.. (ports-panel settings are not updated yet)
- fixed mouse not capturing (Windows 98/ME mainly)
- dynamic JIT direct memory allocation, can now have max 1G of Z3 fast
  or 512M RTG RAM (both not possible at the same time, automatically
  lowers memory settings until allocation succeeds) Max 2G Z3 possible
  when 98/ME support is gone (need also 64-bit OS)
  Extremely pointless feature.


1.4.5

Beta 19:

- ESS Mega (CDTV) now works, added workaround for another Windows
  low level CDROM read weirdness..

Beta 18:

- moved Picasso96 resolution list from special reserved display RAM
  area to regular Amiga RAM (allocated with AllocMem) This should be
  100% fix to display resolution list corruption in display prefs
  utility. (if previous fix in b16 didn't fix it)
- following "fake" display resolutions added to Picasso96 resolution
  list (if no native support): 320x200, 320x240, 640x400, 640x480.
  In fullscreen selects next bigger supported resolution automatically.
  Note: fullscreen display is not centered
- keyboard led emulation should not cause random key presses anymore
  (but it still is quite unreliable)
 
Beta 17:

- rom scan detected roms inside archive directory failed to load
- mouse buttons #4 and #5 default Left ALT + Cursor Left/Right mapping
  fixed, was mapped to "Wheel +/-" if less than 5 buttons

Beta 16:

- added 2 non-autoconfig ram configuration entries
  addmem1/addmem2=<address>,<size>
  Adds fast ram to specified address without autoconfiguring it. Size
  must be power of 2 and min size is 64k. GUI support in future.
- uaenet.device unit number >0 abortio fixed
- 512M Z3Fast and 128M RTG RAM now works without overflowing allocated
  JIT direct access memory (no garbage gfx modes in display prefs)
- map extended ROM location depending on advanced chipset CDTV/CD32
  settings (previously 256k = 0xF0, 512k = 0xE0)
- Direct3D CreateTexture() return code was ignored, crashed if texture
  creation failed for some reason (out of video memory?)
- misc tweaks

Beta 15:

- fullscreen switching should work correctly again
- mouse moves are now ignored if winuae is not active
- do not get in "semi mouse captured" mode if WinUAE opens without
  focus (for example other program got focus before WinUAE opened)
- some uaenet.device tweaks

Beta 14:

- BPLCON3 BRDRBLNK-bit didn't work when chipset was ECS Denise
- BPLCON3 KILLEHB-bit was first implemented in ECS Denise (not AGA)
  It makes 6-plane display to work like normal 5-plane display,
  6th plane can now be used for genlock mask
- COPCON CDANG-bit allowing full register writes was first implemented
  in ECS Agnus, not in AGA. (OCS has low address limit of 0x40)
- CDTV QS Denise setting corrected (OCS, not ECS Denise)
- added "slow is fast" option to advanced chipset. (Original A2000
  with DIP Agnus has real fast at 0xc00000, some A1000 CPU socket
  fast ram expansions mapped to 0xc00000 instead of usual 0x200000)
  CPU socket RAM expansions) Speed difference only in CE-mode
- Windows message handling changes, most likely breaks something but
  also should fix Direct3D filter fullscreen switch issues (WIP)
- compressed disk images (dms, adz etc..) inside archives (lha, zip
  etc..) supported (this may have worked few releases ago, not sure..)

- uaenet.device backend replaced with winpcap
  http://www.winpcap.org/install/ (version 4.x only tested)
  differences:
  - winpcap is easier to use. Install. Done. (*)
  - promiscuous mode supported
  - all available network adapters are automatically mapped to
    uaenet.device. first adapter = unit 0, second = unit 1 etc..
    (manual configuration someday, maybe..) Check the log.
  - some (bad) software firewalls may block some/all packets..
    (at least Vista x64 + eset smart security fw seems to eat all
    non-broadcast packets..)
  - fixed bug in dropped packet (packet that nobody wanted) handling

  *) Vista note: winpcap kernel mode driver will be loaded when it is
  first required. This needs admin privileges (only once after boot)
  Another easier solution is to enable autostart:
  Open Device manager, "View"-menu, "Show hidden devices", open
  "Non-Plug and Play Drivers" from device tree, find "NetGroup Packet
  Filter Driver", select properties, "Driver"-tab, set type to
  "Automatic"

Beta 13:

- more cd/dvdrom automount issues fixed
- S2_ADDMULTICASTADDRESSES and S2_DELMULTICASTADDRESSES were not
  included in NSCMD_DEVICEQUERY list
- fixed SANA2IOF_RAW write length
- S2_ONLINE Sana2DeviceStats->LastStart uses GetSysTime() now
- -netlog command line parameter added, default logging disabled
- more compatible with raw (non-AmigaDos format) disk writes that do
  not fill complete track
- crash when loading AGA statefiles (usually only when JIT was enabled)
- CDTV SCSI emulation interrupt handling fix, would freeze randomly
- UAE boot rom is moved to 0xe70000 if CDTV mode is enabled. Now "UAE"
  HD controller harddrives work in CDTV mode. (note that other
  expansions like Picasso96 use absolute jumps and will crash if UAE
  boot rom is located in non-standard location)
- autocomplete added to most path text boxes (I didn't know Windows had
  very easy to use text box autocomplete feature..) TAB (+SHIFT) can be
  used to move between paths. (SHAutoComplete() does not work exactly
  like "normal" autocomplete because cursor keys/ESC must go directly
  to normal text box functions)

Beta 12:

- path selection really fixed now
- do not mount cd/dvdroms on the fly if removable automount was enabled
- uaenet partially rewritten, "should" be working properly now
  * multicast supported, including multicast filter (not tested)
  * IEEE 802.3 frame support (I think)
  * CMD_FLUSH implemented
  * stats trackers implemented, probably do not work correctly yet..
  * globalstats fixed
  * multiple openers handled correctly
  * interrupt handler setup is still very ugly
  * SANA2IOF_RAW supported
  * S2_PacketFilter hook supported (not tested)
  * (Genesis still refuses to send anything but I think the problem
    can't be uaenet.device but something else. Also Genesis calls
    S2_ONLINE before S2_CONFIGINTERFACE which is against the spec..)

Beta 11:

- some device insertions caused crashes
- quick start mode on/off registry setting fixed (b9)
- A3000 RAM detection problem fixed (b10)
- some hardfiles didn't automount
- Sana2 device is working, at least in theory..

Sana 2 device emulation instructions:

Requirements:

OpenVPN Win32 TAP driver
http://openvpn.net/download.html (OpenVPN 2.1_rc4 or newer)
run OpenVPN installer, only needed component is "TAP-Win32
Virtual Ethernet Adapter"

Now TAP Adapter and real network adapter needs to be bridged.
Go to "Network Connections", select both TAP adapter and your real
network adapter and select "Bridge Connections" from right mouse menu.
http://www.pavelec.net/adam/openvpn/bridge/
(only steps 1 and 2 are needed, name is not important)

Check new bridged adapter has correct IP settings. (This is now your
"real" network adapter) Windows networking should continue working
normally.

(Perhaps there is simpler solution?)

Enable "uaenet.device" in misc-panel. Emulation-side device name is
"uaenet.device" (remember to disable bsdsocket emulation or there may
be bsdsocket.library conflicts)

Note: without bridging all sent data goes to black hole and nothing
can be received either. Emulator can't detect bridge's status.

Not supported (yet):
- multicast
- tracked stats counters
- promiscuous mode
- something I forgot..

Other notes:

- global stats may not be correct
- stability may not be too good
- very ugly interrupt routine.. (CopyToBuff,CopyFromBuff made things
  very complex..)
- produces lots of logging
- MiamiDX DHCP and ping worked
- OS3.9 Genesis never tries to send any data.. Confusing..
- didn't test AmiTCP, I didn't bother to configure it :)
- as you can see, not much testing done..

Beta 10:

- added missing "barrier" bytes at end of Z3 fast. Crashed in
  non-direct JIT-mode if read/write crossed memory boundaries.
  (for example long read from END_OF_Z3 - 2)
- paths reseting to default fix (b9)

Beta 9:

- default GUI and main window position is centered, not top/left corner
- optional ini-file registry replacement.
  * -ini <file> in command line: use <file>
  * winuae.ini used if it is in same directory as winuae.exe
  * file extension must be .ini or it will be ignored
  * file will be silently deleted and re-created if
    - it is read-only but not delete-protected
    - if warning messages in ini-file are modified or deleted
    - if it is not compatible with new version
  * message will be added to both logs if registry replacement is
    enabled. Bug reports without also testing in non-ini mode will be
    ignored. Pointless Windows feature "discussions" won't be allowed.

Beta 8:

- AGA sprite doublescan fixed (b7)
- some more doublescan tweaks (Super72 modes are now detected as
  doublescanned. Other "weird" modes also work more or less, note that
  some require horizontal centering)
- sana2 configuration save fixed (but note that sana2 emulation still
  isn't really doing much)
- CDTV "Snoopy" fix corrected. Fixes random CDTV boot freeze.
- increased A590/A2091 SCSI data buffer size (crash while formatting
  if sectors per track size was large enough)
- default hardware config (used by QS) clears pc drive mount checkboxes
- harddrive removal signal was not always send to uaehf.device if drive
  was removed with disk still in drive (for example USB ZIP drive)
- directory filesystem ACTION_SET_DATE notification check crashed if
  file didn't exist
- directory filesystem and hardfile slowdown fixed (b2)
- state save crashed if directory harddrives were configured but state
  was saved before drive initialization, for example when booting
  non-dos adf
- always include empty memory space between Z3Fast and RTG RAM

Beta 7:

- added information text to hardfile panel.
  RDB hardfile: size of selected file, first 4 bytes of data.
  Regular hardfile: cylinders (warns if > 65535, OS3.5+ only), blocks,
  current size and total size of hardfile, first 4 bytes of data.
- analog joystick mouse emulation didn't "repeat"
- graphics garbage in right border fixed (happened for example when
  productivity mode with vgaonly was enabled)
- CDTV CD ROM command 0x83 emulated, returns drive name/version string
  ("MATSHITA0.97", also "MATSHITA0.96" exists. No idea if there are any
  real differences). Another quite pointless feature because CDTV's
  driver does not use command 0x83..
- ECS superhires sprite positioning fixed. Note that ECS shres sprites
  always have halved resolution (not size) due to emulation limitation
- ECS superhires "palette scrambling" emulated, ECS shres colors should
  be now 100% correct
- some doublescan emulation tweaks

Beta 6:

- do not call CD32 CD emulation handler when non-CD controller
  Akiko registers are accessed. Fixes slowdown when program uses
  C2P feature of Akiko (Wing Commander CD32, perhaps others)
- debugger ea command AGA genlock color bit support
- smc command added to debugger help
- Ghostscript and neroaspi registry detection didn't work without
  admin privileges
- directory harddrive read/write status and volume name change
  work again on the fly
- directory harddrive eject-button works again
- directory harddrive readwrite checkbox is not disabled anymore if
  no path entered
- filter superhires support
- ECS Denise hires sprite support removed, hires/shres sprite support
  is not compatible with OCS ham modes (and who needs ECS hires sprites
  when AGA is much better choice..)

Beta 5:

- AGA T (genlock transparency) color register bit emulated
  (=color register read, RDRAM=1 and LOCT=0 -> return stored
  T-bit, bit 15, value with color RGB value)
  instead of always returning zero. Nobody probably cares..)
- AGA sprite doublescan emulated (FMODE SSCAN2 bit)
  (Does something use this feature?)
- 16 bit display mode graphics problems fixed (b4)
- regular hardfiles, KS 1.3 and FFS filesys path set: all hardfiles
  gets properly mounted. Previously only first hardfile used FFS.
- switching doublescan<>non-doublescan didn't always reset all display
  parameters (bottom half of display was sometimes blank)

Beta 4:

- fixed completely broken joystick buttons (b3)
- input panel mouse wheel "buttons" added. Sends button/key down
  event, waits one frame, sends button/key up event
- started implementing "real" ROM image ROM scanner support
  (2xROM setups like CDTV extended ROM or A1200, Nordic Power etc..)
- big superhires resolution and hires/superhires sprite update
* full SuperHires resolution support (without dropped pixels)
* Doublescan hires modes are now also properly displayed (hires
  doublescan is really "half-scan" superhires mode)
* Replaced lores checkbox with lores/hires/superhires selection.
  SuperHires mode uses 4xdoubling in lores, 2xdoubling in hires and
  no doubling (and no dropped pixels) in superhires
  Hires = old non-lores mode, 2xdoubling in lores, no doubling in
  hires and drop every other pixel in superhires (*)
  Lores = no doubling in lores, drop every other pixel in hires (*),
  superhires not supported
  * = lores smooth filtering supported
  NOTE: regular (non-doublescan) superhires aspect ratio is wrong,
  use filters if you need correct aspect ratio
  NOTE2: interlaced doublescan modes are buggy
* AGA superhires sprite resolution supported (previously hires only)
* hires sprites are not converted to lores (and then doubled again..)
  anymore if screen is doubled (lores program, hires/shres in GUI)
  Check Super Stardust AGA if you want to see the difference.
* AGA hires/shres "smooth" scroll BPLCON1 bits supported
* OCS/ECS (no ECS Denise) uses old code path = no performance change.
  ECS-Denise and AGA uses new more complex and slower sprite/bitplane
  drawing code path (optimization still to do..)
* Probably breaks something...

Beta 3:

- autoboot/donotmount checkbox problems fixed
- winuaenforcer enabled and VBR not moved: interrupt levels
  6 and 7 caused enforcer hit flood
- uae boot rom was always mounted (b2)
- b2 interrupt fix update, only "pre-delay" vblank interrupt
- A-Max rom-"dongle" emulation added (manual configuration file
  editing currently needed, amax_rom_file=<rom file>) Yes, this is
  very pointless feature. (A-Max technical info by Mark Knibbs)
- C debugger command only worked in byte-mode
- disk write without drives selected was emulated as a read without
  drives selected, clearing disk dma buffer
- input configuration is fully saved again, need design update..
  (in b2 all default settings disappeared after saving and loading..)
- added "directional buttons" to input panel list, for example
  "X-Axis" is available as "X-Axis" (original), "X-Axis [-]" (button
  event when joystick/dpad moved left) and "X-Axis [+]" (button
  event when joystick/dpad moved right) Currently new "buttons"
  are at the end of the list.

Beta 2:

- warp (.wrp) disk compression format supported
- ce-mode interrupt delay fix, intreq contents was incorrectly delayed
  (fixes some programs that froze in CE-mode)
- doublescanned modes look slightly better
- added 64-bit CMD_READ uaescsi.device support (if there are programs
  that access DVDs in non-SCSI-direct mode) 
- missing hardfile dos type select box is back (disappeared few
  releases ago..)
- Nordic Power v3.0 support added (Thanks Christian!)
  Interestingly this one has ROM at 0xf60000, not at 0xf00000
- EXPERIMENTAL: save only non-default configuration entries. Makes
  smaller config files but I am not yet sure if this is safe..
  (at least long list of input config entries can be removed safely)
- added autoboot (bootpri>=-127) and donotmount (bootpri=-129)
  checkboxes to GUI
- Amiga-side dummy Sana2 driver (most commands return bogus errors)
  Real communication between Sana2 driver and TAP driver (comes with
  OpenVPN, 2.1rc4 or newer required) will be implemented later,
  I hope.. current development name is "uaenet.device".
- do not show rom scan results if rom scan was automatic (missing
  registry data or new winuae version was detected)
- high end quickstart cpu changed back to 68040 (68060 does not boot
  very well without 68060.library..)

Beta 1:

- CDTV and CD32 interrupt handling improved, fixes "Snoopy In The
  Case Of The Missing Blanket"
- lzx decompressor compatibility and stability improved, store-mode
  supported
- do not include display dimensions in display list if Windows 98/ME
  (it is garbage, at least on some systems)
- Windows 98/ME serial port detection update
- possible fix for overlay issues but it might cause slow downs in
  some cases..
- added -busywait debugging command line option
- DiskSqueeze (dsq) dms-like disk packer format supported (probably
  totally useless but was easy to do..) cop, dimp, warp (not to be
  confused with mfmwarp) support may be "useful" too, perhaps in
  future.. Unfortunately most formats are not documented.

1.4.4

Beta 9: RC2

- deleting file, recycle bin support enabled and deletion fails:
  returned error code was wrong (SHFileOperation() is weird)
- Action Replay 1/2/3 work again
- bsdsocket froze if new configuration was loaded on the fly
- filter crashes (old bug) if display was big, also centering code
  is back to pre-b7

Beta 8: (this is basically RC1 if bsdsocket is fixed)

- ExAll ED_OWNER supported (return zero uid and gid) because
  there are programs that ask for ED_OWNER and ignore
  ERROR_BAD_NUMBER (as documented in autodocs)
- possible fix for bsdsocket crash/issues after reset
  (previously background threads weren't terminated properly and
  caused random access errors, another ancient bug in bsdsocket..)
  Also added some cleanup logging.

Beta 7:

- hq2x crash fix (too small temp buffer)
- directory/archive dragndrop work now without empty spare drives
- uaehf.device media insertion detection fixed
- display size and position (if not 0*0) added to display name list
- joystick direction does not get stuck anymore if active mouse and
  joystick is configured to same port using input panel
- allocate more temporary memory space for filesystem state saving
- GUI add/remove directory filesystem work on the fly (hardfiles not
  supported)

Beta 6: (DO NOT USE OLDER BETAS, they are too broken)

- real harddrive support improvements:
  - empty drives are now listed in "Add Harddrive" GUI
  - uaehf.device media change command support (CMD_ADDCHANGEINT,
    CMD_REMCHANGEINT and CMD_CHANGESTATE are not no-ops anymore)
  - drive parameters (includes size) is re-detected every time new
    media is inserted
  - automount on the fly but only if configured using "Add Harddrive"
    (drive was empty or missing when emulation was started)
    No RDB parsing.
  - do not automount as a directory filesystem on the fly if drive is
    in "Add Harddrive" list (for example: FATxx formatted zip disk/HD
    mounted using Amiga-side fat filesystem driver)
- configured directory drives always support automount (even if
  "automount removable drives" is not checked). Also keep original
  configured volume name. (do not replace with real volume label)
- harddrive safety check slightly relaxed, do not complain if drive
  is inserted on the fly and only complain once.
- 'E' in harddrive panel means drive is mounted but empty
- KS 1.3 directory filesystem WB HD icons appear again (instead of
  hiding somewhere and corrupting memory)
- KS 1.3 directory filesystem automount support
- added "Restart" (better names?) button that closes running emulation
  and returns back to GUI without changing current configuration
- do not hide mouse pointer when GUI is active in fullscreen mode
- ACTION_EXAMINE_ALL 2xbug fix. If last directory entry was filtered
  with eac_MatchString/eac_MatchFunc, previous eac_Next was not
  cleared (broke monitor driver loading if last dir entry was *.info
  or vgaonly). eac_MatchString/eac_MatchFunc filtering didn't work
  correctly, calculated number of bytes to copy in register D0, used
  D1 in main copy loop... DO NOT USE OLDER BETAS.
- hq2x filter support. I hope someone is happy now.
- [still nothing done with bsdsocket problem, FS problems first]

Beta 5:

- "Add Harddrive" button was disabled on Windows 2000 ("full
  administrator" test used function that was Windows XP+ only)
- improved directory filesystem Windows-side media change detection,
  detects now memory cards in card readers (stupid Windows having
  multiple completely different ways to get media notifications)
- added GUI "Add Harddrive" emulated HD controller selection
- directory filesystem read+write/readonly on the fly status change
  fixed
- device node is now removed when removable drive gets ejected and if
  drive was originally created on the fly. Note: device node is only
  hidden (removed from dos list) and it will be reused later when new
  disk is inserted. No KS 1.3 support yet.
- added GUI option to enable/disable on the fly automounting
- current configuration name added to window title bar
- added two A4000 quickstart configurations (68030/68882 and 68040)
- better CD32 audio end detection accuracy, last 1s was cut previously
- ["bsdsocket breaks after reset if it was initialized before reset"
  will be fixed soon]
- [uaehf.device media changes may be implemented before next official
  release but full support will be done later]

Beta 4:

- ACTION_EXAMINE_ALL_END implemented (forgot in b2..)
- directory filesystem on the fly mount implemented without need for
  spare empty devices. (I lied again, it was really simple after all..)
  "empty slot" drives removed. USB memory sticks etc will always
  mount on the fly automagically now. (if uae boot rom is available)
  Device node ("RDHx") is never removed. My black magic skill level
  is not high enough yet. Hardfile on the fly automount next..
- enable uae boot rom if chip ram > 2M enabled (KS does not
  detect more than 2MB of chip, the rest is mapped by boot rom)
- 68040/060 FPU was always interpreted (no JIT) (b1)

Beta 3:

- do not cause hard reset if PC was in memory area that disappears
  during reset ("Did something stupid.."-message appeared after soft
  reset)
- software reset didn't fully reset all subsystems. Do not use beta
  1 or 2 anymore. Can cause random crashes etc..
- added more ACTION_EXAMINE_ALL error codes (from SFS changelog, no
  space for even one directory entry = ERROR_NO_FREE_STORE, unknown
  or already finished directory scan = ERROR_OBJECT_WRONG_TYPE)
- "real" removable drives supported, for example USB memory sticks
  will get removed/mounted properly. (Restriction: new removable
  drive needs empty drive slot because new Amiga-side drives can't be
  created on the fly. Perhaps later but it would need major filesys
  emulation changes..)
- automatically adds 2 hidden empty drives if one or more directory
  filesystem drives configured (RDH0: and RDH1:, reserved slots for
  new removable drives) Testing, this might change in future..
- CD drives can be again mounted easily without uaescsi.device,
  checkbox added to GUI. (I didn't really want to do this but now it
  really works as well as it can ever work.. No audio tracks and some
  Amiga CDs really need Amiga-side CDFS but it still is much easier
  to use..) Not really recommended if uaescsi.device is used..
- compiled with MSVS 2005 again

Beta 2:

- 4-channel stereo mixing fixed (broke in b1)
- Pro-Wizard updated (1.62)
- directory filesystem ACTION_INHIBIT fixed (didn't really do much
  and if it rarely did, result was infinite loop)
- directory filesystem ACTION_EXAMINE_ALL implemented (more optimal
  but also more complex way to read directory listing). Bugs possible,
  please test it by running all kinds of new utilities. eac_MatchString
  confirmed working, eac_MatchFunc not tested (no test program found)
  Full logging currently enabled.
- some removable directory drive fixes
- Harddrives GUI can be used to eject and insert directory harddrives
  on the fly (device name ignored)

Beta 1:

- ROM scan now always scans all detected ROM paths (skips duplicate
  paths)
- zero sized files inside archives could have caused illegal accesses
  in some cases
- return HFERR_NoBoard, not IOERR_OPENFAIL when opening non-existing
  uaehf.device units. Fixes problem with <OS3.5 hdtoolbox versions
  not detecting hardfiles that are not in topmost position in harddisk
  panel.
- if blitter line draw with onedot-mode enabled, blitter does not write
  non-drawn pixel words back to chip ram (it becomes free bus cycle)
- -datapath fixed, again and again, it seems to never work properly..
- CD32 statefile support works again
- paths-panel adjustments, "new" path (in All Users) is only created
  if selected in paths-panel.
- directory filesystem ACTION_WRITE_PROTECT packet implemented
  (AmigaDOS Lock-command) Note: "hardware" lock (read-only status
  in configuration file/GUI) can't be unlocked with Lock-command.
- directory filesystem ACTION_INHIBIT implemented (not really needed
  but it uses same functions as removable drive support)
- directory filesystem ACTION_MORE_CACHE implemented (Addbuffers),
  No-op, currently always returns 50 and flushes file/dir cache.
- directory filesystem ACTION_FLUSH_CACHE implemented, flushes
  file/dir cache.
- possible filecomment leak/access error in fsdb/streams support
- filesystem ACTION_WRITE optimized (no temporary buffer if memory
  is directly accessable, optimization copied from ACTION_READ)
- removable directory filesystem support added
  - it is not possible to add new devices after emulation has been
    started (workaround: add 1 or more empty drives = add new directory
    without device/volume name or path)
  - only volume name gets removed (like CD0: without CD inserted)
  - GUI can't be used to insert/remove harddrives. Yet.
    I don't know make it easy to use..
  - drag'n'drop (directories or files/archives) to WinUAE's window is
    currently the only way to test removable drive support. Note that
    only drives that were empty when emulation was started will be
    remounted. (It is quite bad idea to remove OS/boot drive..)
  - weird things can happen if files are open when changing drive
  - volume name is automatically generated from directory or file name
  - very useful when installing software, just drag and drop
    installation package (lha-archive for example) and run it.
    No need for temporarily locations or worry about losing flags or
    file comments.
  - overrides normal (executables -> floppy drive, configuration file
    -> restart emulation etc..) drag and drop function if GUI is not
    active and dropped file/directory gets accepted by filesystem.
- CPU emulation and other cleanups (Bernd Schmidt!)
- X-Power Professional 500 v1.3 supported
- Nordic Power v1.5 supported
- compiled with MSVS 2008 (Orcas) Beta 2

1.4.3

Beta 13: (RC2)

- Action Replay 1200 "cartridge support" credits added
- Nordic Power/X-Power/SuperIV statefile support added (not complete)
- 68030 "NOP MMU emulation" fix, some variants of PFLUSH caused F-line
  exception
- illegal access logger (wd) now supports full 32-bit address space

Beta 12: (RC1)

- added quick enable/disable checkboxes to floppy panel
- non-word aligned word writes to custom registers emulated correctly
- byte writes to custom registers emulated properly on a 68060 (perhaps
  only Blizzard 68060 cards' feature?)
- 68020 "cycle-exact" does not anymore freeze when switching to RTG mode
  (but it still should not be used)
- Nordic Power v2.0 support (got another "blue" Nordic Power today,
  also "cartridge support" credits added to contributors list)

Beta 11:

- autoconfig memory banks do not show as ****'s in debugger anymore
- filesystem not initializing if JIT was enabled and no other
  autoconfig expansions enabled (ancient bug..)
- do not crash if CD32 is selected in advanced chipset without
  extended ROM
- fixes and updates to illegal access logger
- "faster RTG" "immediate copper" emulation was very broken
- reverted JIT LSL/LSR/ASR change, merge error most likely, later..

Beta 10:

- Arcadia emulation crash fixed
- SCSI emulator MODE SENSE code 3 and 4 crash fix (uaehf.device only)
- A3000 KS 1.3 ROM removed from rom scan "available"-list (only
  proper A3000 ROMs, 1.4b and 3.1 included)
- added missing version numbers to cartridge roms
- xBCD instruction 68040/060 undefined behaviour emulated, N and V
  flags are not cleared. (from Basilisk II JIT)
- JIT LSL, LSR, ASR X-flag was incorrectly modified when shift count
  was zero (from Basilisk II JIT)
- configuration and bootlog (text format) saved with statefile
  (compressed, few kb size increase, only for debugging purposes)
  NOTE: fake END-hunk inserted before CONF and LOG hunks, you can
  simply delete all "useless" data after first END-hunk without
  corrupting the statefile.
- action replay/hrtmon statefile hunks are now compressed
- drive GUI properly initialized when restoring state (disabled
  drives are "blanked", no track number visible)
- empty drive disk change status was incorrect in some cases when
  restoring state (load state, OS detects disk in empty drive)
- do not allow JIT direct mode if emulation was originally started
  without JIT direct enabled (different memory allocation which is not
  compatible with direct = crashes. Will be properly fixed in future)
- uaescsi.device SCSI mode selection reset after loading new config
- messagebox in fullscreen mode tweaks, perhaps fixes problem with
  hidden "too old rtg.library" messagebox in fullscreen mode
- close native-side open filehandles after software reset
  (fixes locked startup-sequence after directory fs setpatch reset)

Beta 9:

- ROM scan dialog listed "available" even if configuration required
  2 ROMs (like CDTV or CD32) and only one was available.
- if fullscreen resolution is smaller than GUI size, moving mouse to
  screen borders moves the GUI dialog. (in future this means it is now
  possible to increase GUI size to 800x600 without too many complaints)
- CD32 CD audio end position detection and signaling, interrupt
  handling finally implemented, fixes non-looping audio tracks,
  (for example Brian the Lion), and games that freeze (for example
  Fightin' Spirit, Base Jumpers)

Beta 8:

- plain executable mounted as a harddrive automatically creates
  virtual s/startup-sequence (same as mounting executable as a floppy)
- possible crash fix in SCSI emulation
- X-Power Professional 500 cartridge support. (basically old version
  of Action Cartridge Super IV)
- Nordic Power cartridge "support" but only 2 bad non-working rom
  dumps available (ROM chip fault, one data line stuck) And perhaps
  suprisingly, perhaps not, Nordic Power is old version of X-Power :)
- possible fix for audio problems when using audio.device (usually
  when continuously starting and stopping short samples) in JIT mode.
  (usual reason: too "fast" cpu/chipset access speed..)
- removed sound latency value from GUI, it was wildly inaccurate

WANTED: Nordic Power cartridge(s) (can be non-working)

Beta 7:

- rom scanner detects overdumped roms again
- added "(SK)" to A3000 KS 1.3 ROM name (SuperKickstart disk rip,
  this version has never been in ROM chip format, only included
  because it comes with AF)
- removed A4091 boot rom from scan result dialog (NCR SCSI won't
  be implemented in next version)
- removed add host scsi from advanced chipset (not working)
- added more rom choices to "highend" configuration
- rom scanner didn't write full path to registry (zipped roms)
- command line configuration parameters accept compressed
  configuration files ("-f myconfigurations.zip\myconfig.uae")
- some dms compressed files failed to decompress and also took
  very long time to finish 
- disk history is updating correctly again
- new rtg.library version number bump. added warning if older
  library is installed. NOTE: new rtg.library is fully compatible
  with older (Win)UAE versions.
- disabled CDTV debug logging
- hrtmon works again
- gzip decompression works again

Beta 6:

- rar unpacking double memory deallocation (unrar.dll is still
  the most stupidly designed unpacking library)
- crash if dearchiver (rar or archiveaccess) was not available
- hardfile filesys loader/relocator sometimes incorrectly allocated
  code/data space from chip memory
- lha/lzh archive detection fixed
- P96 ram allocation forced indirect JIT mode
- -datapath fixed, overrides paths-panel paths again

- recursive harddrive archive support enabled
  
  Archives inside archive are only unpacked when first accessed for
  best performance. Tested by creating 200MB zip archive that contained
  ~250 pre-installed zipped WHDLoad demo slaves. (Note that this can
  confuse some programs because size of "harddrive" gets bigger and
  bigger the more archives inside archives are unpacked..)
  
  Original archive is "duplicated" as a directory called
  <name of archive>.DIR
  
  "file not found" or "empty directory" is returned if decompression
  fails
 
  In future there may be options to disable recursive archive support
  and ability to replace original archive file with unpacked directory
  (without .DIR extension) Another future idea is write access (to
  separate "diff" directory)

  Note: rar archive inside another archive can not be unpacked
  without archiveaccess.dll (unrar.dll can't do it without temp
  files and I refuse to use temp files)

Beta 5:

- JIT on/off switching via uae-configuration re-enables direct mode
  This time it really should work as designed.
- video recording sound pitch change fix (side-effects possible..)
- random FPU fixes from Aranym (which btw, isn't feature complete
  either, at least float to integer clamping is missing)
- rom scanner uses SHA-1 now (instead of CRC32)
- archive as a harddrive emulation. Data is decompressed on the fly.
  Only directory tree is allocated in memory during mount-phase.
  "file not found error" will be returned if decompression fails
  (corrupt archive?) Already decompressed files will be left in
  memory (memory is cheap, repeated decompression can be slow)
- archive support completely rewritten (memory/file leaks possible)
  Recursive decompression possible (not yet enabled and not fully
  implemented), not sure if I enable it later or not.. (would
  enable transparent archives inside archives inside archives etc..)
- work in progress (this is really crazy idea..): xfd (Amiga
  decompression library) slave library support via separate 68k
  emulation instance :D Crazy or very stupid idea, not sure yet..
  It would enable full transparent decompression support of nearly
  every Amiga compression format..
- built-in lha/lzh archive support added
- built-in lzx archive support added (store mode not supported yet)
- "add directory/archive" harddrives: only path is mandatory, volume
  name (if left empty) is automatically generated from selected path
- added "add archive" harddrive type. Single plain file also accepted.
- real harddrive "safety check" system changed, now all drives are
  listed (and marked as empty,non-empty or RDB) but drive is not
  mounted if safety check is not disabled and drive is non-empty.
- disable "add harddrive" on vista without full admin privileges
- harddisk panel directory and archive dragndrop added
- included beta updated rtg.library, fully enables >1024 pixel wide
  bitmaps (including acceleration), obsoletes picasso96fix. (BR)

Beta 4:

- return SCSI-1 style inquiry response when using A590/A2091 SCSI
  emulation (Old HDToolbox compatibility fix)
- do not crash with "out of bounds" error if SCSI emulation tried to
  read/write non-existing HDF block(s)
- SCSI READ CAPACITY PMI-bit emulated, HDToolbox "Read configuration
  from drive" compatibility fix
- A3000 1.3 SuperKickstart support implemented (includes "bonus"
  code remapping to 0xf00000 area)
- JIT on/off switching via uae-configuration re-enables direct mode
- added MOVEC registers and PC to r <reg> <val> debugger command
- A4091 ("A3090" says driver string in ROM...) Z3 card autoconfig and
  ROM loading implemented (pointless, no NCR53C710 SCSI chip emulation
  yet, same infinite loop as with A4000T KS3.1 built-in SCSI driver)
- A590/A2091 Guru ROM adapter emulated, driver does not yet work,
  uses not yet emulated WD33C93 features.
- real SCSI device support (via hardware emulation) is not really
  working. It isn't so easy to implement after all..
- copper writes are now detected by memwatch break points (note: writes
  only, freeze not possible. copper is a special case)

Beta 3:

ROM rescan required (or new hrtmon/superiv config support won't work)

- ROM scan report dialog was totally broken
- uaescsi.device backends (SPTI/ASPI) are now available in new
  SCSI emulation mode. Checkbox added to advanced chipset, merges
  all SCSI and IDE CD/DVD devices automatically, does not override
  configured HDFs. Not multithreaded yet = emulation is stopped while
  SCSI command is executing = mostly useless for real world tasks,
  also SCSI configuration panel is still not implemented..
- confirmed A3000 3.1 ROM added to rom scan list.
- floppy drive sound GUI didn't work correctly if fdrawcmd.sys was
  not installed (=no PC floppy drives listed)
- A3000 36.141 KS ROM SCSI driver compatibility fix (long word writes
  to byte wide WD33C93 registers.. not the first time Commodore ignored
  their own programming guidelines.. )
- A3000 SuperKickstart support hack, SuperKickstart loading works!
  (simple memory map remap hack, there is no MMU!)
- QS panel does not anymore complain about boot block crc error if disk
  is A1000 Kickstart disk or A3000 SuperKickstart disk
- A3000 Quickstart settings added, 1.4 = KS with Kickstart menu,
  SuperKickstart disk (or HD installed SuperKickstart) required.
  (also try clicking on top/left corner..)
- added "need 68030 CPU" dialog (KS 1.4)
- added expansion boot rom missing dialog
- added process breakpoint debugger feature (KB)
- GPL Ghostscript registry installation detection added (AFPL was only
  supported previously)
- Ghostscript printing fixed (only worked previously by accident..)
- built-in HRTMon moved to Cartridge ROM select menu
- added "real" SuperIV cart emulation (=need loader disk)
- debugger deep trainer improved. "D[<s><dix> <[max diff]>]"
  Di = value must increase, Dd = decrease, abs(new value minus
  old value) must be smaller than "max diff". s = 1 = byte, 2 = word.
  long words not supported. (defaults to byte) Signed integers used in
  comparison. NOTE: not really tested, I was not interested :)


Beta 2:

- WD33C93 + (Super)DMAC based SCSI HDF emulation. A590/A2091, A3000 and
  CDTV with SCSI expansion. Current implementation is very minimal.
  A590/A2091 Boot ROMs 6.0, 6.6 and 7.0 tested and confirmed working.
  A3000 random KS ROMs (including "1.4") also confirmed working.
  CDTV with 1.0 extended ROM freezes during standard WB 1.3
  startup-sequence (works if run manually..) Newer extended ROMs work
  without freezes.
  NOTE: disconnect/reconnect not emulated (yet?), SCSI Message out +
  Command + Data in/out + Status + Message in phases emulated. Most
  WD33C93 registers are not emulated. Non-tested drivers (KS versions)
  most likely won't work yet. Check the log!

- A3000 KS "1.4" added to ROM list (yes, it is beta but it came with
  some A3000s) Need confirmed official A3000 and A4000(T) information
  before more A3000/A4000(T) ROMs will be added. (Note A3000 ROMs,
  not SuperKickstart images!)
- A590/A2091 6.0, 6.6 and 7.0 added to ROM list. A590/A2091 ROM is
  automatically selected, manual rom selection is not possible.
- A590/A2091 Guru ROM added to ROM list (not yet supported, I need
  A590/A2091 autoconfig er_InitDiagVec value first, Scout shows it)
- A4091 40.9 (no CRC available yet) and 40.13 ROM added to ROM list.
  NCR SCSI (A4091 and A4000T) is not yet emulated.

- Action Cartridge Super IV Professional emulated partially, also added
  support for Super IV "ROM version" (Super IV cartridge does not have
  any ROM chips, "ROM" is loaded from disk) Loader disk does not work
  yet! Interface is very different compared to Action Replay series.
 
Beta 1:

- use Segoe UI font only if running on Vista
- separated native and P96 vsync setting, note that P96 vsync has
  never been "real" vsync but sync to internal refresh rate which isn't
  usually same as real host refresh rate. Sound problems fixed when P96
  VSync and 56KHz "audio trick" was enabled.
- sprite attachment fix, fixes "Great Demo" by "The Tremendous Trio" :)
- clear sound buffer before reopening window/fullscreen
- delayed CDTV CD inserted notification (Xenon 2)
- CDTV CD audio stop command fix (DOTC2, ChaosInAndromeda CD player)
- added MB RAM support to debugger's search commands
- Paths-panel improved, added previously "hidden" AMIGAFOREVERDATA
  environmental variable (if set), and separated AF2005 and "new" WinUAE
  paths (only difference is default KS ROM path, AF2005 =
  <root>\..\system\rom, WinUAE is <root>\roms or <root>\rom)
- Quickstart-panel DF1: disable/enable checkbox added (available only in
  configurations that have DF0: enabled)


1.4.2a

- added PCMCIA to advanced chipset. It does not emulate PCMCIA (yet),
  it only reserves address space and makes CIA bank 64k (0xbf only
  instead of 0xa0 to 0xbf) Previously only AGA changed CIA bank size.
- fixed paths defaulting to CSIDL_COMMON_DOCUMENTS even if previous
  default was something else.

1.4.2

Beta 12:

- CDTV right button/second firebutton pin state fixed (CDPD IV)
  (logic high when inactive, not floating like with other models)
- Quickstart DF0:/DF1: text changed (future improvement), no
  functional changes yet

Beta 11:

- fixed randomly lost CDTV CD transfer finished interrupt in
  CE-mode
- fixed windowed mode size check
- added some preliminary SCSI hardware emulation stuff
  - A3000, minimal support, KS driver detects SCSI controller
    with no SCSI devices connected. (SuperDMAC + WD33C93)
  - A590/A2091, (DMAC + WD33C93), minimal support, boot ROM
    (tested with rev7) detects controller with no SCSI devices.
    (check log if for some weird reason you want to test it..)
  - A4000T NCR53C710, nothing implemented yet (no datasheet)
- CDTV and A590/A2091 autoconfig chained with UAE autoconfig
  devices (fast ram, HD etc works in CDTV mode)
- more GUI debugger updates

Beta 10:

- CDTV CDROM command 0x09 (play audio cd in lsn mode) fixed, parameters
  are start sector and number of sectors, not start and end sector..
- state file load: keep current disk in drive if image's path in state
  file does not exist. (keeps some programs happy that don't access the
  disk but start complaining if disk is suddenly ejected)
- fixed stupid typo in fpu clamping fix (327676 instead of 32767..)
- CDTV audio cd end position detection didn't always work
- GUI debugger improvements (Karsten Bock & TW)

Beta 9:

- new PAL filter configuration file support (forgot it in b8)
- PAL filter now works both in 16 and 32-bit modes. Internal color
  space is now only R5G6B5, even in 32-bit AGA. Makes things simpler
  (minus image quality loss) Fix later, not sure..
- map "UAE Boot ROM" automatically if any "external" expansion is
  enabled (uaescsi, uaeserial, bsdsocket etc..) Previously it was
  only mapped if filesystem (directory or hdf) was configured.
- IDE non-RDB HDF statefile support added
- filter default centering fixed (I think..) and other related tweaks
- minor FPU updates to very rarely used instructions (from aranym)
- "cpu060_revision" config entry added ("read-only", not created when
  saving config), sets 68060 revision field in PCR register (current
  default is 1)

Beta 8:

- very long CDTV CD reads don't freeze anymore (overflow in CD
  speed varible)
- added "PAL" filter. It is based on Vice C64 PAL filter with some
  changes like scanlines in 1x-mode and noise. Simulates blurry
  composite/RF signal. 32bit color depth only. NOTE: filter + AGA
  enabled = RGB 6:6:6 internal color space only. (compromise between
  speed+memory usage and image quality)
- command line parameter was skipped if previous parameter was
  win32-specific or it needed numeric parameter(s). (b7)
- IDE partition (non-RDB) hardfile support (no custom filesystem
  supported yet) NOTE: virtual RDB is read-only, all write attempts
  to RDB area are silently ignored, no errors returned.
- non-3D filter improved default centering
- replaced GUI scanline sliders with more flexible extra parameters
  settings. Added built-in filter preset support (single PAL filter
  example currently)

Beta 7:

- hardfile reset routine randomly read non-existing memory (b4)
- IDE emulation froze if total read or write transfer was larger
  than current multimode sector amount
- added 2 scanline delay before IDE command complete-interrupt is
  sent. Could cause missed interrupts in compatible 68000-mode and
  also made emulation sluggish during large reads or writes.
- HRTMon IDE commands work now in A600 configuration.
- HD onscreen led write color fixed in IDE mode
- 4/6 channel modes should really work with Emu10K based cards..
  (I can always hope..) EDIT: It did work!
- USP and ISP registers are back in debugger
- brightness/contrast/gamma setting added to display panel
  (not working in real time yet)
- "IDE Splitter" / "4-Way IDE" hardware emulation added. IDEFix or
  similar driver needed. Enabled if IDE3/IDE4 selected
- much faster IDE in JIT modes

Beta 6:

- added 4 channel and cloned stereo in 5.1 native mode. Workaround for
  non-working 4.0 modes on many sound cards. (5.1 center and lf
  channels are silent currently)
- 4ch/6ch mode swap channel, interpolation, filter (anti and sinc only)
  and stereo separation support added
- IDE CHS calculation fixed. Max heads is always 16 and max sectors is
  63 for drives smaller than 8GB. (A600/A1200 crashed or gurued with
  large HDF images) >8G should also work, current "hardware" max limit
  is 128G (no LBA48 support) NOTE: CHS value is only imaginary value for
  compatibility purposes and it has nothing to do with real geometry, it
  can even change and HD still works fine. Internally it is always
  translated to LBA.
- added some ATA-3 bits to identify drive reply

Beta 5:

- A600/A1200 and A4000 IDE emulation (mount RDB HDF as a IDE drive)
  - Following IDE harddrive commands emulated (commands that KS ROM
    require, also IDEFix97 appears to work fine)
   - Format Track (50, dummy command)
   - Identify Drive (EC)
   - Initialize Drive Parameters (91)
   - Read Sector(s) (20 and 21)
   - Read Multiple (C4)
   - Write Sector(s) (30 and 31)
   - Write Multiple (C5)
   - Recalibrate (10, dummy command)
   - Set Multiple Mode (C6)
   - Set Features (EF, no feature commands supported)
   
  - max 2 drives available. "HD Controller"-selection added to GUI.
  - support statefiles (WARNING: HDF data corruption danger!)
  - ATAPI (IDE CDROM) emulation not supported (yet?)

  Notes: you can't mix Kickstart versions. A4000 KS has only A4000
  IDE driver, A600/A1200 KS has only A600/A1200 driver.

  Emulated drive is ancient ATA-1 feature level drive, size limits
  not tested, PIO-0 speed restrictions not emulated :)

  This also means some defaults have been changed. Real IDE without
  harddrive installed is now enabled if chipset extra is set to
  A600/A1200 or A4000. Emulated "IDE wire trick" is enabled if no
  drives installed to prevent long KS boot delay.

  Interesting note: A600/A1200 and A4000 KS IDE drivers are totally
  different, for example A4000 uses LBA addressing but A600/A1200
  uses CHS. I don't see the point when the only hardware differences
  basically are base IO address and different interrupt register..
  
- HRTMon IDE activated if IDE emulation enabled. AR A1200 also works.
- 68020/68030 + JIT random crashing fixed (b4)
- non-3d filters work again (broke in 1.4.2b2)
- Agnus/Denise revision settings re-added to advanced chipset
- added non-EHB A1000 to Quickstart (not yet in advanced chipset),
  also added blitter busy bug to A1000 QS if cycle-exact enabled.
  (busy flag not set until blitter gets first bus access cycle)


Beta 4:

- statefiles with autoconfigurable (fast and z3fast) memory wasn't
  restored properly
- directory filesystem statefile support.
- Picasso96 statefile support (not very compatible yet)
- HDF statefile support. WARNING: HDF _WILL_ get CORRUPTED if you
  try to restore same HDF statefiles multiple times and there has been
  one or more writes between restores. Read-only will be forced before
  official release.
- JIT slowdown after restore fixed (CPU CACR register instruction cache
  setting syncronized with JIT cache settings)

  Filesystem statefile information:

  Handling of missing files or directories during restore:
  - missing root directory: most likely crashes
  - open file:
  dummy file with exact same name and size will be created (filled
  with zeros) to prevent crashes. Of course application using the
  file most likely fails because it may not contain data it expects
  but at least FS emulation and AmigaDOS is happy..
  - open lock:
  lock is re-created but missing file/directory stays missing. Again,
  filesystem and AmigaDOS is happy. Application may crash or return
  weird errors..
  
  Always check the log first if there are problems.
  
  NOTE: uaescsi, bsdsocket etc.. are not saved. You may be able to
  restore statefile with unsupported "expansion" devices enabled
  without crashing (for example restored uaescsi won't crash the
  emulator but Amiga-side program can get confused.. Tested with
  AmiKit, no crashes but CD0: stops working)
  
  NOTE2: statefile format can and will change in future betas.

  Manual loading of configuration recommended before restoring.


Beta 3:

- CPU/FPU on the fly change fixes
- report 68060 EC/LC ID in PCR register when FPU not enabled,
  68040/60 FPU disabled exception emulated.
- some 68030 MMU instructions had incorrect instruction length
  (no, MMU is NOT emulated but MMU instructions are still processed
  normally instead of reporting illegal instruction because some
  programs expect MMU and most/all 68EC030's don't report exceptions
  either, they simply have MMU that does not work 100%)
- http://aminet.net/util/sys/Mu680x0Libs.lha appears to be free,
  working replacement for 680x0-libraries. 68030 (didn't work in b2),
  68040 and 68060 with or without FPU confirmed working.
- FPU state restore fixed
- added CPU/FPU frequency to state files (not yet really used except
  sets A500 speed if stored statefile was A500-speed config)
- added 68030+ control register statefile support
- 1340b4 "rare divide by zero error..." really fixed..

Beta 2:

- 10x+ performance increase during "decrunching" color effects when
  no filters enabled and bitplanes disabled (background color only)
- console debugger breakpoints sometimes continued immediately
- quickstart "random" selection inside archives should be fixed
- mousehack interrupt do not start multiple times anymore
- all CPU-specific special registers added to debugger
- CPU/FPU configuration rewrite.
  - new FPU options: none/68881/68882/CPU internal
  - 68030 (EC-version, 030-only MMU instructions are simply ignored)
  - proper 68060 with FPU support. See NOTEs below!
  - 68040/68060 without FPU allowed but note that 68060.library does
  not appear to like non-FPU 68060s..
  - no FPU+68000/68010 (technically possible but not worth the trouble)

  68060 NOTES: No working Setpatch and 68060.library = NO FPU.
  68060 has FPU disable bit that all real 68060 accelerators' boot ROM
  set because KS task switching routine do not understand 68060's
  FRESTORE/FSAVE frames. Setpatch+68060.library is the fix.

  Real 68060 is also extremely slow without 68060.library because all
  caches and other speed-up features are not enabled but this is
  completely irrelevant in emulation.

  You can use "C:CPU" command to check CPU/FPU status:
  - Incorrect: "System: 68060 (INST: blahblah"
  - Correct: "System 68060 68882 (INST: blahblah"
  New setpatch (44.38 confirmed) support 68060.library directly, older
  versions need dummy 68040.library (less than 1K in size)
 
  NOTE2: FPU emulation emulates all 6888x instructions, even those that
  were removed from real 68040/060. 

  !!! NOTE3: _EMULATED_ 68040 and 68060 HAVE EQUAL SPEED !!!

  
Beta 1:

- Chip set extra config load/save missed some models (crash when
  saving if using missing models)
- GUI font dynamically switches to "Segoe UI" (Vista) or "Tahoma"
  (XP or 2000). Old font still in resource file to keep compatibility
  with older Windows versions. TODO: new GUI tree icons.
- dynamically modifying resources and resizing dialogs is "fun"...
- finally removed pixel format detection. It has not been needed for
  years..
- merged (and modified) "GUI" debugger by Karsten Bock. WIP.
  F1-F6: switch between different pages
  F1 and F2: two work areas
  F3 and F4: memory viewer
  F5 and F6: disassembler
  F3-F6: alt+cursor up/down/left/right modifies current address
- x closes debugger, xx switches between console and GUI debuggers
- extended debugger 'm' instruction, 'm r<cpu register>' 
- direct harddrive support now works with drives that return empty
  vendor and product id (confirmed: SyQuest removable harddrive)
- log window position and size stored in registry. (Log window first
  appearing in default position before jumping to stored position
  is normal, logging must be initialized before registry handling)
  Windows 2000 or newer only.
- GUI/Main window registry entry names changed, positions will reset
- blitter CE-mode ABC channel combination cycle allocation fixed
- rar archives left "temporary" files around (stupid unrar.dll..)
- added combination of fullscreen and windowed mode. If you have two
  (or more) monitors, load your favorite WB configuration, select
  non-primary monitor and "full-window" mode to both native and RTG,
  also make sure "Magic mouse" is enabled, adjust P96 resolution.
  D3D/OGL filter may also be good idea.
  Result will be near-seamless Windows/Amiga integration :)
- "Magic mouse" didn't work with some system patches, also adjusted
  sensitivity
- tweaked vblank interrupt delay by 1 cycle (game Feud)
- refresh rate switching (PAL/NTSC or by poking VPOSW) improved

1.4.1

Beta 4:

- skip unknown extensions (or files without extension) when scanning
  for known ROMs (faster scan if non-ROM files in ROM directory)
- Picasso96 RAM was incorrectly mapped in non-JIT modes
- paraport parallel port support sets INIT (pin 16) to inactive state
  (called RESET in Amiga parallel port)

Beta 3:

- map POV Hat to joystick up/down and left/right by default
- added master volume (Windows main volume) control input targets
  default: END+CTRL+(numpad - and +, * = mute on/off)
  (without CTRL = WinUAE-only volume control) Also master volume
  mapped by default to "multimedia" vol down/up/mute keys.
- custom input targets editable in GUI now (not very intuitive but
  whole input panel isn't too intuitive. someday..)
- fixed crash when switching from CD32/CDTV mode to A500 mode
- input panel input list can be browsed in "compatibility mode"

Beta 2:

- better bsdsocket threading fix, should finally fix random crashes.
- diskswapper input-panel input targets added (next/prev/insert)
- change input configuration (1-4) input target added
- custom input targets added, experimental, not in GUI yet, need manual
  configuration file editing, syntax:
  <anything>.button.x=<press>,<release>,<secondary press>,<sec. release>
  press/release = key down/up, joystick button down/up
  secondary = toggle-mode (first press uses "press" event, second press
  uses "secondary press", third press is again "press" event etc..)
  format of single event: '"entry=value"'.0 "unlimited" multiple
  entry/value pairs supported: '"entry1=value1" "entry2=value2"'.0
  empty event: NULL.0
  Examples:
  - toggle onscreen leds:
  '"show_leds=false"'.0,NULL.0,'"show_leds=true"'.0
  - refresh rate = 100 while key/button is kept down:
  '"chipset_refreshrate=100"'.0,'"chipset_refreshrate=50"'.0
  NOTES: format can change in future, toggle-mode may be added to regular
  input event mapping system in future version.
  BTW: custom input was implemented ages ago but it was not enabled until
  now... (I forgot it..)
  
Beta 1:

- startup crash fixed if serial port enumeration detected more than
  8 ports. (broke in 140b6 when "compatibility mode" enumeration was
  added) Also increased max amount of supported serial ports
- default ASPI detection selected (possibly non-existing) AdaptecASPI
- Quickstart now automatically selects working SCSI mode (uses setting
  from default.uae if available, if not, selects "best" available)
- 120b1 right border update fixed to work in interlaced modes (Unreal)

1.4.0

Beta 10 (pre-final):

- in some cases dskready signal was set active even if floppy drive
  was empty and motor was running
- yet another undocumented CIA TOD related feature implemented
  TOD does not latch (by reading TODHI) if CRB ALARM-bit is set.
  Fixes Batman the Movie (which worked in older versions only
  by accident..)

Beta 9: (RC 2)

- non-ASPI CDTV CD audio didn't always stop when exiting/reseting
- added dj [<mask>] command to debugger. Enable joystick/mouse
  input logging  
- CDTV quickstart chip ram size set to correct 1M (correct config
  is more important than workaround for one game)
- Fixed another filesystem lock leak in ACTION_FH_FROM_LOCK
  (dos.library/OpenFromLock())
- do not allow unlocking of non-existing locks in filesystem.
  Previously it caused random memory corruption and also triggered
  following (previously unknown) 1.0b2 issue:
  "added workaround for AMOS filesystem emulation incompatibility
  (infinite loop in filesystem code) Reason for freeze unknown,
  proper fix unknown.. (filesystem emulation is confusing..)"
- external drive sound selection GUI didn't work if fdrawcmd.sys
  was not installed

Beta 8: (RC 1)

- uaehf.device unit >=30 crash fixed
- CDTV CD audio will be stopped when exiting/reseting
- correct CDTV CD number of tracks returned in ASPI-mode
- re-added and fixed special case handling for 68k reset-instruction
  when more compatible CPU setting is not enabled
- filesystem ACTION_COPY_DIR_FH packet memory (lock) leak fixed

Beta 7: (possible bug fixes and small tweaks left)

- Picasso96 graphics problems really fixed
- adjusting GUI sound settings on the fly does not anymore cause
  random sound issues after returning back to emulation (like
  missing channel(s) for few moments etc..)
- Action Replay 1, ver 1.0 added to ROM scanner identication list

Beta 6:

- FPU emulation floating point to integer conversion fixed, previously
  for example float -> byte conversion simply truncated to byte instead
  of clamping it to -128 or 127 if original value can't fit in a byte.
  Same problem was with words and longs. (Aske Christensen)
- uaeserial.device compatibility fixes
- A500 D80000-DDFFFF area is unmapped (except possible RTC at DC0000)
  higher end models can have other MB devices here
- A1000 is most likely the only Amiga model that has custom chips
  mapped at D80000-DDFFFF
- RTC access is now exactly same as in real A500 (if more compatible
  setting enabled)
- AGA end of fast (or chip if no fast) to BBFFFF is not mapped, same
  with C00000 to D7FFFF. (Need more testing)
  Mapping changes may help with some buggy programs that poke illegal
  addresses.
- My A1200 seems to have KS ROM mapped at 0xA80000-B7FFFF. But with
  Blizzard 1260 installed it is replaced with 64kb "bank" of RAM from
  card's expansion RAM.. It seems all "unmapped" areas map to
  Blizzard's expansion RAM. Quite interesting effect.. (not emulated)
- serial port detection update. For some reason not all serial ports
  (at least some USB types) can't be detected by enumerating
  GUID_CLASS_COMPORT class. (and this was supposed to be the proper
  way to do it..)
- do not log KS motherboard RAM probe (less useless spam when booting)
- Picasso96 graphics corruption introduced in previous betas should
  be fixed (also other changes, can be faster or slower in some cases,
  also there is possibility something else broke..)

Beta 5:

- CD32/CDTV emulation now autodetects all CD (all drives) changes on
  the fly. Previously drive was only autodetected once when emulation
  started.
- blitter linedraw update, PD game Tanx (not same game as Tanx in HOL,
  ID=5409) uses really "interesting" way for drawing vertical lines,
  it sets ADAT=FFFF and BLTAFWM=8000.
- remove agnus/denise revision settings. Will be replaced with more
  flexible configuration later (perhaps select box with real chip
  identification strings, current system couldn't support for example
  oldest Denise without EHB and Agnus with buggy blitter wait bit)
- another possible bsdsocket thread timing bug fix
- running p96refresh automatically forces power supply cia-a tod to
  prevent clock running faster
- mapping of RTG RAM adjusted (locate immediately after end of Z3 RAM
  and align to 16M border), fix board size (previously <16M was
  reported incorrectly in Scout)
- Arcadia added to ROM scan message (but only if Arcadia bios rom(s)
  detected, Arcadia: unavailable would only confuse users..)

Beta 4:

- separate Arcadia bios and game rom selection
  (rom rescan required) Idea and original patch by Karsten Bock
- "Add PC drives at startup"/"Include network drives" fixed
- cd32/cdtv/arcadia flashfile set to <datapath>\<mode>.nvr
  in quickstart modes
- CDTV 64kb sram card quickstart mode added, saved to flashfile with
  CDTV internal sram (tested with Sim City CDTV)
- harddisk panel fixes and updates. Non-existing hardfiles and
  directories are marked with "X".

Beta 3:

- remove harddrives loaded from default.uae in quickstart-mode
- wrong device/volumename in harddisk panel (visual error only)
- S<something> in command line parameters set illegal stereo
  separation value in some cases
- hardfile configuration handling bugs fixed
- disk history list wrong item selection fixed (really old bug,
  select second entry from disk history then select first entry
  from other drive's disk history)
- sinc interpolator update from uaede 2.04
- CDTV CD audio play end position status change detection improved
- application icon updated (also includes 256x256 Vista-style icon)
- CD access freeze when CD was already open in another program, also
  tries shared access mode first before falling back to exclusive
  mode
- emulation paused mode sound start/stop issues fixed


Beta 2:

- filter zoom and position is not restricted to coordinates divisible
  by 4 pixels anymore
- datapath command line parameter fixed (broke in 1.3.4b9)
- enumerate only known DirectInput devices types (keyboards, pointers
  and game controllers), apparently there are some broken DI compatible
  "unknown" devices that crash DirectInput's internal enumeration code..
- "magic mouse" related freezes fixed
- dragndrop disk insert fixed (again..)
- added more Picasso96 modes to "unique" mode list
- possible fix for some missing Picasso96 display modes
- added Amiga-side pointer validation to bsdsocket (smaller chance for
  crashing if Amiga-side program passes garbage to bsdsocket)
- added safe host<>Amiga memcpy/strcpy helper functions to memory.c
- Aminetradio bsdsocket freeze fix (broke in 1340b6)
- do not "fix" configuration when advanced chipset compatible checkbox
  is not checked and using A4000 rom.
- Windows driver Catweasel-mode works again
- only access CW registers if CW mouse/joystick is selected, read
  keyboard port only if CW checkbox is enabled

Beta 1: Lots of scary options. Do not touch!

- added new misc configuration options "(handled in previous versions)"
  - RTC type (none, MSM6242B or RF5C01A) + adjustment in seconds
    (always enabled, MSM6242B but no 26x4bit memory implemented
    and was initialized as RF5C01A... Looks like previous developer(s)
    didn't know there was two different clock chips, neither did I
    until few days ago.. Basically 68020+ Amigas have RF5C01A)
  - CIA-A TOD clock source, vblank/50hz/60hz (always vblank except
    50Hz/60Hz in programmed modes, another hack was here)
  - built-in IDE A600+A1200 or A4000. Not really doing much yet.
    (something that prevented IDE detection delay)
  - A1000 Boot "ROM" on/off (enabled when 8k/64k ROM was used)
  - DF0: ID hardware on/off (no ID if DF0: was 35DD)
  - A3000/A4000 "motherboard resources", RAMSEY and/or Fat GARY
    (0xDE000x, 0 = TOENB, 1 = TIMEOUT and 2 = COLDREBOOT registers)
  - KS ROM mirror at 0xe00000-0xe7ffff (Cloanto ROM selected)
  - CD32 CDROM on/off (when 512k extended ROM was selected)
  - CD32 C2P on/off (when 512k extended ROM was selected)
  - CD32 NVRAM on/off (when 512k extended ROM was selected)
  - CDTV CDROM on/off (did not exist)
  - CDTV NVRAM on/off (when 256k extended ROM was selected)
  - CDTV SRAM (64k only, not saved) Card on/off (not implemented)

  Why? Because there are small differences between different Amiga
  models and even revisions and every possible model must be
  configurable for emulation.. (like more real A4000 configuration)
  Also can remove some ugly hacks (like the IDE hack) with proper
  emulation.
  
  I REPEAT: Do not touch Adv.Chipset panel if you aren't sure about
  what you are doing! :)

  NOTE: A4000 KS ROMs (Cloanto 3.x ROMs = A4000 ROM) _REQUIRE_ RAMSEY
  or they will freeze at boot. WinUAE will automatically enable RAMSEY
  and GARY if recognised A4000 ROM is selected, also default "Generic"
  Amiga setting is most compatible with old configurations.

  NOTE2: CD32 and CDTV configurations require now CD32 or CDTV setting
  in chipset-panel (Quickstart mode does this automatically). Previously
  CD32/CDTV mode was enabled depending on size of extended ROM but that
  is not a good idea anymore.

- Amiga model specific chipset extra settings added, available only if
  "compatible settings" is enabled in "Adv. Chipset" panel
- Akiko moved to separate memory bank (was in CIA bank previously, no
  functional changes)
- Configurable motherboard resources memory bank added (includes Fat
  Gary DE0000, DE0001, DE0002 and RAMSEY DE0003 and DE0043)
- RAMSEY revision configurable
- Fat Gary revision configurable (AFAIK this does not exist in existing
  chips but was planned in future. But Scout detects this so...)
- 2 x RAMSEY (A3000/A4000 memory controller chip) controlled 32-bit MB
  Fast RAM configuration added. ROM support for detection needed.
  - First max 64MB "bank" ends at 0x08000000 (A3000/A4000 ROM needed)
  - Second max 64MB "bank" from 0x08000000 (as above plus any 3.1+ ROM)
  In theory there is space for max 96MB but UAE memory system does not
  like non-power of 2 memory areas. Can be used with RTG and Z3 RAM.
- Configurable DDxxxx (A3000/A4000 SCSI) DMAC memory bank added (not
  yet doing anything)
- CDTV emulation support! (thanks to Mark Knibbs for debugging CDTV
  ROMs two years ago)
  - data and audio tracks supported
  - CDXL animations work better than in CD32 emulation
  - CD audio volume control not supported
  - multithreaded, no emulation pauses because of possible slow CD
    access or CD spin up/down. May not be fully stable yet.
  - 1x drive speed emulation
  - 2MB chip enabled in CDTV Quickstart because DF0: is always
    detected (even without drive) and apparently some games need all
    available memory. KS 1.x always uses DF0: and I am not sure how
    CDTV ROM should disable it (or does it do it? CDTV don't have
    built-in floppy drive)
  - starting data CD read without aborting previous CD audio
    freezes (for example DOTC), cdtv device driver keeps waiting
    for some signal that does not appear. (returning error status
    will fix this but it also breaks Xenon II, hopefully proper
    fix is found soon..)
- do not draw onscreen leds ofscreen (left border in narrow modes)
- "Magic" mouse option added (wip) System friendly screens + windowed
  mode only. There is still offset in position when using native
  screen.
- disk read DMA without any selected drives will finish normally
  (would have frozen emulated program in previous versions)
- "Faster RTG" "instant copper" does not freeze even if copper list
  has infinite loop.
- removed A2000 from A500/A2000 quickstart setting, they aren't
  100% same hardware (A2000 has DF0: ID hardware and CIA-A TOD clock
  is powersupply tick by default)
- IOCTL (used by CD32/CDTV emulation) CD access digital CD audio
  work in Vista (previously total silence when using Daemon Tools
  or no sound cable between CD drive and sound card)
  Ugly detail: it closes CreateFile() handle and opens MCI handle
  when CD audio calls are needed (and back to CreateFile() when
  accessing data)
- Current open GUI config panel was initialized, destroyed and
  initialized again when entering GUI and emulation was running.
- selecing keyboard layout C and then selecting any other keyboard
  layout didn't disable layout C.
- Quickstart disk swap delayed insert fixed again
- D3D does not depend on D3DX library anymore (no more need for
  dec 2004 DX SDK to prevent d3dx9_xx.dll dependancy)
- harddisk configuration handling completely rewritten. Configuration
  data and mount data are now separate, configuration data is copied
  to mount data only when starting or reseting the emulation.
  Also failed mounting won't delete the configuration data.
  No more disappearing configuration entries if paths have changed
  or USB device is not inserted or error messages when adjusting
  configuration settings when emulation is already running.
  First column shows if the device is currently mounted
- sound filter/interpolation etc was not initialized until GUI panel
  was visited

1.3.4 (30.12.2006)

Beta 9:

- interrupt timing tweak (Gravity Force in ce-mode)
- CPU Idle tweak (slightly less aggressive)
- file dialogs work again in Windows9X/ME..
- sound problems really fixed now

Beta 8: (RC3, really final?)

- random sound automatic restart delay fixed
- sound underflow handling improved
- JIT NATMEM VirtalFree() incorrect parameters fixed (MS Application
  Verifier report)

Beta 7: (RC2)

- AGA sprites outside display window emulated when sprite is above or
  below the display window. Previously they were only visible when
  it was on left or right side of display window.
  (fixes Spheris Legacy missing status graphics)
- clear garbage at the bottom of screen for example when switching from
  doubled to non-doubled 
- serial port set to none in config file didn't work properly
- cloned stereo and 4 channel sound mode uses proper initialization
  (according to MSDN WAVEFORMATEXTENSIBLE is required if >2 channels but
  for some reason "incorrect" way also worked previously..)
- mask unused DIWHIGH bits, could have caused narrow image appearing on
  screen when loading statefile with DIWHIGH having highest bit set and
  ECS Agnus or AGA enabled.
- border blanking feature (ECS/AGA BPLCON3 BRDRBLNK-bit) now also
  updates top and bottom borders

Beta 6: (RC)

- serial port "friendly" names listed in serial port selection,
  also detects virtual (for example bluetooth) serial ports.
  Windows 2000+ only. W9X/ME shows normal "legacy" names.
- more bsdsocket stability fixes
- 1M ROM image support (upper half maps to regular KS space,
  lower half to 0xe00000) Apparently A600/A1200/A4000 does the
  same with 2x512K EPROMs
- compiler optimization settings changed for release build

Beta 5:

- remove winuae-specific command line parameters before passing
  them to configuration parser.
- internal serial and parallel port selection updates
  (partially in b4 + fixes in b5)
- Paula serial port emulation fixed (broke in b4)
- more uaeserial.device tweaks
- defined more Picasso96 modeIDs, now most PC display modes have
  unique ID (updating display card/drivers, moving between PCs
  does not anymore cause mysterious mode changes)
  NOTE: you may need to reset your Picasso96 display mode if you
  used mode other than 640x480, 800x600, 1024x768, 1280x1024 or
  1600x1200.
- fixed another random Picasso96<>native switching crash
- added -maxmem command line parameter, "-maxmem 1024" enables 1G
  Z3Fast support. (32-bit max) Note: can cause random side-effects
  depending on total memory and/or Windows version.. Large RTG RAM
  sizes require larger maxmem parameter (but values over ~1060 may
  not work, check winuaebootlog.txt). Pointless but fun option :)
- vsync mode sound pitch shifting fixed. Pitch can still shift
  slightly in some cases.
- bsdsocket stability fix

Beta 4:

- uaeserial.device tweaks
- added more logging to RDB parser
- do not reopen DirectSound when losing/gaining focus
- DirectSound initialization changes
- drivesound disk selection menu selected wrong entry in some cases
- rare divide by zero error when running Amiga program tries to
  program 1 line tall display mode
- final MSVC 2005 SP1 installed
- dual core/SMP hardfile freeze fix (RD)
- bsdsocket bug fix that could have caused buffer overflows

Beta 3:

- uaeserial.device implemented, serial.device-like device that maps
  unit numbers directly to host's COMx-ports (unit 1 = COM1, 2 = COM2
  etc..) Supports most serial.device features (No xOn/xOff support)
  Bugs possible. Tested using Term and Nokia E70 via bluetooth serial
  connection :)
- page down is now properly configurable in input-panel (previously
  was internally always mapped to freeze button)
- GUI AHI sound volume adjustment support (previously was Paula only)
- disk emulation event handler error fixed, broke most custom loaders
  (bug introduced in b1)
- X-Arcade GUI tooltip compatibility update, in some cases only tiny
  piece of upper left corner was visible. (Vista only?)
- more blitter tweaks, try to be compatible with broken programs that
  write to blitter registers while previous blit has not yet finished.
- some DirectSound tweaks

Beta 2:

- fixed possible crash when input recording stops (introduced in b1)
- log memory map after reset and also after autoconfig
- log loaded KS ROM information in memory map dump
- fixed boot crash (some CPU/KS combinations only)
- bug in new event handler fixed (symptom was random really slow
  non-ce/non-immediate blitter)
- interrupt priorities are correct again (broke in b1) Some tweaks.
- filesystem flag emulation updates (again) Protection flags on FAT
  volumes should now work properly in non-UAEFSDB mode.
- filesystem directory protection flags supported (on FAT volumes)
  Very old comment says: "Unix dirs behave differently than AmigaOS
  ones. windows dirs go where no dir has gone before..." Perhaps
  Windows 95 had some issues? Hope I didn't miss something..

Beta 1:

- dms files inside archives automatically added to disk history
- Windows98/ME direct MK4 catweasel support. Need command line
  parameter "-directcatweasel 0xyzzzz". y = CW model (3 or 4,
  3 is default), zzzz is io address in hexadecimal. (simple, quick
  workaround if someone really wants to use MK3/4 under 98/ME for
  some unknown reason) IO address in configuration file is obsoleted
  (was never compatible with CW joystick or mouse port detection)
- Catweasel MK4 mouse support fixed (broke in 1.3.3)
- Catweasel direct mode automatically enabled if Windows is 2000
  or newer, IO library is installed and CW driver is not installed
  (previously was automatically enabled only if OS was 64-bit)
- compiler updated to beta SP1. I am very anti-"don't fix it if it
  is not broken" person but I think you must already know it :)
- updated to latest Windows SDK
- winuaeclipboard crash fix (BR)
- finally replaced really ugly interrupt delay hack with more
  cleaner and accurate method (fixes Fun School 4)
- made non-ce "more compatible" CPU emulators' main loop more
  compatible with programs requiring delayed interrups
- windowed mode "leds" had incorrect mouse click positions
- debugger memwatch "freeze" option now also accepts memory values
- added separate memory bank function for 680x0 opcode fetches
- debugger memwatch points can now detect between opcode fetch
  and data fetch, 68000-only currently.
- basic self modifying code (SMC) detection implemented in
  debugger (smc-command) Works in 68000-mode only.
- Windows Vista rawinput crash fix (weird change in vista..)
- avioutput sound sync errors fixed (broke in 1.3.3)
- avioutput video codec type registry saving improved
- fixed CPU emulation condition code bug caused by compiler bug or
  undefined C behaviour (not sure yet..) Affected some copy
  protections. Introduced in E-UAE merge.
- added horizontal mouse wheel input-panel support (hwheel support
  added in Windows Vista, not tested)
- add single "fake" button entry if joystick driver reports zero
  buttons (PPJoy in two-player mode, no idea if this helps)
- cleaned up AHI emulation, initialize and start recording only
  when requested for the first time
- disk image dragndrop caused instant disk swap instead of delayed
  swap (eject, wait 1.5s, insert new disk)
- fixed Windows only bug in new stack magic replacement code, both
  bsdsocket and AHI leaked Windows handles (SR)
- less aggressive sound adjustment
- horizontally scrolling list view selection fix (for example input
  panel with wide enough key name could have made autofire selection
  impossible)
- inputrecording reliability increased (but it still loses sync)

Final 1.3.3

- sound stereo channel swap setting was not saved to config..
- added "affinity <value>" -command line parameter, sets CPU affinity
  bit mask (1=first CPU only, default. 2 = second CPU only, 4 = third,
  3 = CPU 1 + 2 etc.. 0 = original startup affinity value)

Beta 8: (RC1, GUI DLL included)

- unrar.dll supported, rar-archives do not need archiveaccess.dll
  + rar support files anymore (archiveaccess support not removed)
  Note that unrar.dll is stupid, it only allows filename as an
  input archive (instead of memory pointer) which means rar archives
  inside archives can't be unpacked without archiveaccess.
- clear only first 8MB of Z3 RAM during hard reset (full clear of
  Z3 RAM can cause swapping if low on physical RAM)
- remove possible orphaned files (files that have been deleted from
  Windows side) from directory filesystem's cache (BR)
- disk eject and reset from GUI ignored the eject (broke in b4)
- floppy leds write status color works properly
- GUI in 640x480 fullscreen was incorrectly centered in some cases
- removed timestamps from winuaebootlog.txt

Beta 7:

- CIA TOD does not "re-latch" if it has already been latched
  (A1200 confirmed)
- CIA TOD hardware bug emulated, TODMED counts .. 1D 1E 1F
  10 20 21 22.. (1F->10->20 is only couple of cycles but it
  will trigger alarm comparison, not visible to normal programs
  that read TODHI first and TODLOW last)
  (A500, A1200, CD32 confirmed)
- hard reset zeroes all memory types (previously cleared only
  chip memory)
- time base calculation does not overflow even if future PCs
  have 10GHz+ timer resolution :)
- bsdsocket waitselect fix, fixes Remote Desktop (SR)
- filesystem Windows file flag handling fixes (detection if Windows
  flags support current Amiga-side flag combination or if uaefsdb
  is needed has been broken for a long time..)
  List of supported flags/flag combinations: (x = no care)
  H = Windows Hidden flag
  P = Windows System flag
  A = Windows Archive flag
  S set = not supported, FSDB required
  E or R not set = FSDB required
  xxxxR-E- = Windows Read Only flag
  ----RWED = default, no Windows flags set
  other combinations = FSDB required  
- some incorrect blitter cycle sequences corrected,
  fixes Twintris in non-immediate blitter modes.

Beta 6:

- ProWizard updated to 1.61
- added logging if required filesystem is missing (not in RDB and in
  FileSystem.resource)
- RTG RAM max size increased to 64MB (64 and 128 have always been
  possible via manual configuration file editing, 128 not in GUI
  because it may cause problems if combined with 512MB Z3)
- "mousehack mouse" crashed without HD emulation (=no UAE "boot rom")
- increased sound "resync" range again
- "100% accurate"-sound mode tweak, no more huge cpu usage in some
  games that "misuse" AUDxPER-register.
  (for example Paradroid 90, Rambo III..)
- TVicPort direct io support added (includes also 64-bit Windows
  support which is missing from winio, winio support not removed)
  http://www.entechtaiwan.com/dev/port/index.shtm
- CWMK4 direct io support + latest FPGA core built-in. CWMK4 now
  works under 64-bit Windows (yeah, very hackish way but it really
  does work..)
  PCI IO address is automatically detected (also supports MK3),
  Windows 2000 or newer only. Direct IO & PCI scan is only used if
  Windows driver is not installed and running under 64-bit Windows
  (no CW drivers) or -directcatweasel command line parameter is used.
  Direct IO is never used if Windows driver is present.
- Zoom! (SPS version) exception 3 hack (exception3 return address
  is not defined by Motorola, another "problem" when emulating
  microcoded CPU..)

Beta 5:

- built-in 7zip decompression (there is now official, easy to use
  license compatible C-only support library. Old C++/COM library
  was completely unusable.. built-in rar still missing due to
  license incompatibility)
- rom.key system rewrite, old and new (AF2006) rom keys supported
  simultaneously
- RDB HDF partition mount failed if correct filesystem was in ROM
  but RDB contains one or more not needed filesystems  
- Lightpen/gun emulation (available in input-panel, mouse-only)
  Enforcer and Orbital Destroyer confirmed working
  NOTE: random cursor trails possible. not tested in hires or
  laced modes.
  NOTE2: Trojan phazer fire button is joystick 2 left!
  (and Orbital Destroyer crashes if normal fire is pressed..)
- Faster RTG (picasso96_nocustom) added to GUI
- Faster RTG does not disable audio anymore (use automatic
  sound stop/start system instead). Also copper moves are now
  emulated instantly (all waits are simply ignored, shouldn't matter
  in RTG modes, copper is used basically only for setting hidden
  refresh rates for Paula audio frequency hacks etc..)
  Enabled by default now, should not cause any issues anymore.
- added misc-panel checkbox for allowing Windows screen/powersavers
  while WinUAE is active (previously powersaving features were
  always disabled)

Beta 4:

- rom scanner lists nondetected roms (with CRC32) in log
- improved sound underflow detection
- better approximation of sound delay values in GUI
  (includes hidden delay caused by DirectSound)
- sound led didn't always light when sound emulation was
  re-enabled
- sound autostart/stop config option (enabled by default)
- removed latency slider, new sound system should adjust
  automatically
- disable sound autostop if recording is enabled
- only use recording-mode sound auto-adjust while recording
  previously used both..
- RTG RAM enabled without Z3 RAM crash fix (broke in 1.3.2)
- debugger ea lists real AGA color registers instead of
  host RGB values..
- fixed debugger e-command random crashing
- remove some obsolete MSVC 2002 and older project files
- floppy sound didn't restart autostopped audio
- GUI disk eject-button is delayed until exiting emulation
  (fixes "instant disk swap" bug if clicking eject and then
  immediately selecting new image)

Beta 3:

- more sound tweaks, added warning "led" colors to sound buffer
  status. red = underflow (very bad), blue = nearing overflow
  situation (sound lag will get larger but no sound quality
  problems), yellow = overflow prevention triggered (still no
  sound problems but emulation will lose CPU power)
- buffer is filled with empty sample data if underflow happens,
  prevents buffer wraparound and few seconds of totally out of
  sync sound
- new feature: (could be broken feature..) stop audio emulation
  if sound hardware has been idle for 2 seconds. emulation restarts
  immediately when any audio related register is accessed (even
  if it causes no sound like setting volume to zero during boot
  process by Kickstart ROM)
  Stopped = no paula audio or resampling and mixing, host sound
  hardware is still playing empty buffer to prevent any possible
  sound glitches during starting/stopping
- point of sound buffer led is to make sound problem debugging
  easier

Beta 2:

- ReleaseCopyOfSocket() bsdsocket.library implemented,
  fixes AmiVNC (SR)
- input-panel: key mapped to <none> reverted back to its default
  mapping after saving and loading the configuration
- hardfile TD_GETGEOMETRY caused one byte memory overflow
  (long write to DriveGeometry.flags instead of byte..)
- uaescsi.device cleanup breakage fix (direct scsi didn't work etc..)
- HD_SCSICMD now returns error (unimplemented command) instead of
  not doing anything and returning success if SCSI-support is not
  available
- ROM scanner can now detect AF2006 rom.key even if it has been
  renamed, also some other ROM scanner tweaks
- partial sound handling rewrite, some tweaking still needed
  make sure lag adjustment is zeroed before testing!
- added sound buffer status "led", -30 to 30 is ok (the closer to
  zero the better) bigger values most likely cause sound issues.
  value jumping to very high or small value for few seconds after
  reset/resolution change/state file load/etc is normal
- increased "led" update rate
- "vertical scanline"-effect in 16-bit AGA modes fixed
- version changed to 1.3.3, no 1.4 until E-UAE merges and
  sound system updates are tested in public

Beta 1:

- merged portable stack magic replacement from E-UAE
- merged 68k regs-struct optimizations from E-UAE
- merged genlinetoscr from E-UAE + implemented filtered lores support
  (filtered lores now also includes "special" modes like HAM, EHB etc)
- other random E-UAE source cleanups ect merging (part 1/x)
- MSVC version of REGPARAM (__fastcall) enabled and
  USE_NORMAL_CALLING_CONVENTION disabled.
- breakage and performance increase possible, see above :)
- HDF/real HD access optimizations, removed one unneeded temporary
  buffering layer.
- replaced mostly unusable TFHB keyboard layout with "standard" WASD.
- Reset-button in GUI forces hard-reset now
- ignore DMS CRC errors while unpacking instead of aborting the
  process, for example previously harmless error in track 1 created
  completely unusable image even if all other tracks were 100% ok
- encrypted DMS files are transparently decrypted (16-bit
  "encryption key" can be brute-forced quickly..)
- GUI genlock connected-checkbox was broken
- audio emulation tweak, previously audio.device AbortIO() and then
  CMD_WRITE could have caused lost audio interrupt
- memory watchpoint F option added, "freezes" (ignores writes)
  selected address range

1.3.2

Beta 2:

- Mouse Up/Down and Left/Right input destinations can now work
  simultaneously (diagonal movement) Really works now.
- Amithlon partition detection should now work without need to
  disable safety checks
- avioutput audio recording in cloned stereo mode created incorrect
  audio (2 channel instead of 4 and 1/2 the pitch, proper way
  would be to change 4 channels back to 2, maybe later..)
- dskrdy-delay added, apparently there is very small delay before
  dskrdy changes state after switching motor off.
  (fixes Pro Tennis Tour's stupid loader)

Beta 1:

- don't open debug console when restoring state or when quitting..
- ignore printer autoflush timeout if Postscript detection is enabled
  (autoflush during Postscript parsing will quietly abort the print
  process..)
- Mouse Up/Down and Left/Right input destinations can now work
  simultaneously (diagonal movement)
- extended ROM statefile support
- CD32 statefiles supported. CD32 configuration must be set
  before loading the statefile. (will be fixed in future)
- don't save hrtmon to statefile if it has not been activated at
  least once (=hrtmon data has been modified and needs to be saved)
- FDI 2.1 format support, header checksum supported
- HRTMon DE/F keyboard layout autodetection really works now
- HRTMon WHDLoad commands don't cause WHDLoad stack error message
  anymore (for example wq)
- A1000 Kickstart disk image can be used as a ROM image file, also
  supported by ROM scanner
- Z3Fast start address can be set in configuration file. Don't touch
  it if you don't know what you are doing!


1.3.1

Beta 3:

- blitter timing updates. Maybe I am becoming crazy or something
  but I did another test and enabling A-channel does not "anymore"
  steal all bus cycles like I thought it did previously.. Or maybe
  it does in specific situations only. Anyway, Hostages insta-kill
  fixed again. broken since 1.1b4..
- more SPTI and ASPI tweaks
- bad access fault fixed in mousehack replacement code (could cause
  random crashes etc..)
  
Beta 2:

- drag'n'dropping disk images now adds them to disk history list
- drag'n'dropped floppy panel disk image file names were truncated
  if name included "]["-string
- removed "force ECS Agnus if chip ram > 512k"-fix. It is too
  restricting when trying fun configurations, should not be needed
  because of quickstart configuration. At least I hope so..
- avioutput framerate limit and fps stored in registry
- HRTMon colors replaced with "Action Replay colors". (B&W looked too
  boring... configurable in future)
- debugger "unstopped" the CPU if CPU was in stopped state when
  activating the debugger.
- debugger trainer code cleanups, z3fast added to trainers and
  prowizard
- "deep trainer" (idea stolen from Action Replay III) added to
  debugger. GUI for trainers will be added in future, with memory
  location "freeze"-option. Cl = list found trainer addresses

  Ds = start deep trainer (or plain D if this is the first time),
  continue game and lose live (or time or whatever), D = rescans
  memory and removes all addresses that have not changed since last
  scan. Repeat until correct location is found. (may take many many
  times..) Dx = rescans memory and removes all addresses that HAVE
  CHANGED since last scan.

Beta 1:

- uaescsi.device CMD_WRITE/CMD_FORMAT commands implemented (not just
  returning write protected anymore), CMD_READ also works with non-CD
  devices. Testing needed, I don't have any zip drives or similar..
- force bogoram size to 1MB if >1MB bogoram and AGA enabled
  configuration is loaded. (fixes crash if JIT is enabled)
  Gayle IO space conflicts with >1MB bogo. In reality this is totally
  bogus configuration because there are no real AGA machines with
  bogo (slow) ram...
- fixed original extended adf (Factor 5 disk images) decoding error,
  broke somewhere during 1.3 betas..
- ASPI tweaks (may or may not help with some random issues)
- disable cycle-exact if 68020/68040+JIT configuration is loaded
  (not supported configuration and has already caused too many
  useless bug reports because it can cause weird problems..)
- map Gayle memory bank if 68020+ (A4000 KS will freeze without
  something in Gayle space)
- 1280 display width limitation changed to 2048 (real current
  maximum) Previously selecting >1280xYYYY resolution would change
  to 1280xYYYY and cause weird errors.. Also unsupported >2048
  resolutions are not listed in resolution list anymore.
- HRTMon updated to 2.30
- "blitter unstuck" hack (if blitter is stuck for more than 3 frames
  due to blitter DMA being disabled, it will be forced to finish.
  Only enabled in immediate blitter-mode. Compatibility hack for
  some JIT game problems, for example SlamTilt Pinball)
- sound filter configuration load bug
- mostly harmless access fault fixed in "boot rom"
  FileSystem.resource list scanner
- "log illegal memory access"-option does not anymore log Z3
  expansion area (0xff0000xx) and extended rom area (0x00f00000)
- WHDLoad HRTMon detection works now (NOTE: hrtmon must be activated
  manually at least once before it works. WIP)
- avioutput recording incorrectly split the avi when focus was lost
- avioutput codec configuration stored in registry
- first avioutput recorded frame is not blank anymore
- window close button and GUI quit-button didn't work if emulation
  was paused
- changing filters didn't reset graphics subsystem properly
- D3D filter problems fixed, again and again.. (I hope..)

1.3

Beta 8: (second RC)

- ASPI crash fixed
- W9x/ME language dll error log spam really fixed
- hrtmon moved to 0x00a10000 (w9x/me conflict really fixed)
- uade "Sinc" interpolator fixed 

Beta 7: (RC, beta removed from about-panel)

- Action Replay state save/restore should finally work, HRTMon state
  file support added. Old AR state files are not compatible anymore!
- A1200 Action Replay CIA snooping added, previously exiting AR
  caused totally corrupt data written back to CIA registers
- don't map "filesystem boot rom" if no hard drives are enabled
  ("ROM" was visible even in basic A500-mode at 0xf00000) (b6 update)
- Quickstart CDTV description bug fixed
- preparing for uaescsi.device non-CD trackdisk support
  (will be fully implemented after 1.3 is out)
- drivesound (non PC-drive) crash fixed
- Picasso96 graphics crap fixed if P96 window was smaller than full
  P96 display window (BR)
- ROM names changed to "KS ROM xxx" (less confusing, I hope..)
- some key events were passed to emulation while END-key was kept
  pressed
- don't fill log with language DLL load errors if running W9x/ME
  (for some reason W9X/ME returns ERROR_DLL_NOT_FOUND but 2000/XP
  returns ERROR_MOD_NOT_FOUND)
- don't try to create crash dump under W9X/ME, it won't work.
- dm-debugger command fix (last bank was missed)
- hrtmon moved to 0x00a00000 (no more conflicts with 8MB fast RAM)

Beta 6:

- HRTMon 68000 bug fixed (tried to read non-existing stack frame type
  when CPU was 68000 causing crash while freezing if freezed program
  was running in supervisor mode)
- Set German/French HRTMon keyboard layout automatically
- dm debugger memory space dump command added
- AHI updates (BR)
- updated to latest uaede filters ('sinc' is currently broken)
- changing interpolation setting on the fly sometimes didn't work
  correctly
- updated uae home page url in about-panel (when did it change?)
- shutting down WinUAE caused infinite recursion and stack overflow
  when there was already another WinUAE's named pipe open
- Paths-panel info changes: "Amiga Forever 2005" -> "Amiga Forever"
  (2005, 2006 and future releases should use same directory format)
- GUI: removed all (?) visible Commodore trademarks (if they even
  exists today) like "Kickstart". Stupid yeah but you never know..
- some directory filesystem disk full errors were not converted to
  proper AmigaOS error code

Beta 5:

- "cloned stereo" mode added to sound panel (4 channel mode that
  mirrors front channels to rear channels)
- Action Replay A1200 cartridge support
- HRTMon 2.29 "cartridgefied" and is now WinUAE build-in
  (should even work in JIT and Picasso96 modes)
- fixed incorrect numpad key shortcut statefile default path
- added separate Gayle address bank, needed for future IDE controller
  hardfile emulation (A600/A1200/A4000 compatible) Will be implemented
  after 1.3 is out (I read ATA-1 spec yesterday and it was surprisingly
  simple. All "intelligence" is inside the drive, Gayle basically only
  works as an address decoder)

Beta 4:

- replaced directory harddrive size check code with >2G compatible
  code (but it may not help much because of Amiga-side software
  size calculation overflow bugs)
- UNC directory harddrives (\\server\share) work now properly
  (previously ACTION_INFO returned error, for example Shell command
  "info" ignored the drive)
- harddrive hdf creator compatibility updates
- wider harddrive selector window, swapped name and size
- directory harddrive protection flag bug (beta 2)
- overlay workaround for broken ATI X1x00-series card drivers
  (blank RGB overlay since Catalyst 6.1) -enableowr force-enables,
  -disableowr force-disables.
- 3.5" "ESCOM" floppy drive type added (Some newer A1200s came with
  modified PC drives that don't support DSKRDY-signal) Useless?!
- RTE stack frame 7 added (needed when/if MMU emulation happens..)
 
Beta 3:

- Check ROM checksum only if ROM looks like a regular Kickstart ROM
  Currently searches for "exec.library" in the first 256 bytes of ROM.
- interlace-bug fix tweaking (and i am still not happy with the fix)
- uade filter update, 44100Hz-only restriction is gone. Removed old
  filter emulation code. UADE filter/interpolation improvements by
  Antti S. Lankila
- state restore fix, some 68010+ CPU state files required loading of
  statefile twice (first load would cause Amiga-side crash because
  of trying to access not yet mapped memory)
- extended debugger e-command, ea = list AGA color registers
- added timestamps to log files (both real world and frames+vhpos)
- changing fpu_strict on the fly works
- D3D fullscreen freeze fixed (btw, December 2004 DXSDK is the last
  SDK with statically linked d9dx library)
- priority-panel pause emulation/disable sound output checkboxes
  were always shown as unticked
- directories with "illegal" characters work now in NTFS stream
  -style directory filesystems (previously for example directory
  named "blah>" would have changed back to real Windows-side
  directory named "__uae___blah" after reboot)
- only create stream fsdb -file if file/directory has illegal
  name, unsupported protection flags or comment set, also delete
  the stream-file if file does not have illegal attributes anymore
- clear disk history -button added to paths-panel
- CPU% >99% is shown without %-sign in onscreen leds because of
  not enough space

Beta 2:

- motor on/off state added to PC floppy drive sound emulation
  (fdrawcmd.sys >= 1.0.1.9, not yet released)
  NOTE: due to another stupid PC hardware limitation, motor must
  always be switched on while seeking (even if emulated motor
  is not switched on)
- MSDOS DD (720k) and HD (1440k) disk images supported
  (PC0: works fine but PCTask or Transformer won't accept DOS
  images for some unknown reason)
- possible Picasso96 screen switch crash workaround
- disk image drag'n'drop to main window fixed
- disk image drag'n'drop to status bar df0-df3 "leds" added
- input recording disk image change support added
- Both "exe" and "data" path will be used when looking for Help
  file (WinUAE.chm). Previously only "data" path was used.
- selecting from disk history (rarely) selected wrong entry
- "simple" gfx option changes on the fly don't force whole gfx
  system reset anymore (close & open screen)
- No more "No disk in drive x"-dialogs if disk history had paths
  pointing to removed removable drives (for example USB sticks)
- NeroASPI-path had extra \-character (Maybe only if Nero 7 is
  installed?)
- don't cache comment or unsupported protection flags internally if
  drive does not support UAEFSDB or NTFS streams (setting comment and
  immediately using Examine() returned saved comment even if it was
  not possible to store comments or flags to disk)
- paths-panel "WinUAE default"-setting uses relative paths. Only
  if "data" and "exe" paths are identical
- fixed AVIOutput crashes and incorrect display positioning in some
  situations
- 68000 RESET-instruction prefetch update (needed by proper Arcadia
  boot sequence, fixes ancient PC emulator Transformer)
- Arcadia emulation update from MAME 0.105u3. Uses now correct
  boot method which works with Kickstart 1.2 (old one needed KS 1.3)
  Fixes Sidewinder graphics errors (game requires KS 1.2)
- sound filter adjustments, separated filter on/emulated/off state
  from filter type. now uses uade filters by default (only if
  44100Hz frequency is selected, this limitation will be fixed
  in future by uade filter author)
- added "anti" and "sinc" interpolators from uade and set "anti"
  as a default. (note: "sinc" needs much more CPU time than other
  interpolators)
- strip ending :'s from device and volume names (seen some bug
  reports about missing harddrives because of illegal names)
- frogaspi.dll support added (http://www.frogaspi.org/)
  FrogASPI is free ASPI library (frogaspi.dll worked with older
  WinUAE versions but only if it was renamed to wnaspi32.dll)
- blitter state save fix. should fix random frozen emulation after
  restoring. (note: error happens while saving, old damaged statefiles
  won't be automatically fixed)
- "scanline"-effect in changed parts of display while in interlace
  mode bug finally fixed! (for example Pinball Illusions' score panel
  in hires mode)
- very experimental automatic lores/doubling switching added.
  Enable any filter that allows 1x/2x-checkboxes and tick "autoscale"
  at the bottom of filter panel.
  
  Now lores and doubling is automatically changed on the fly.
  - lores/nonlace: lores enabled, doubling disabled, horizontal
    and vertical filter multiplier set to 2x
  - hires/nonlace: lores disabled, doubling disabled, horizontal
    filter multipler 1x, vertical 2x
  - etc..
  - mixed hires and lores forces hires-mode (lores disabled)
  
  So whats the point? Filter 1x/2x scaling is free (display card's
  blitter does it). lores/doubling scaling uses CPU. Most games and
  demos use lores but many have hires title screen etc -> free speed
  boost without quality loss (in theory..)
  
  Whats the catch? It is currently quite useless.
  - graphics subsystem needs to be reinitialized every time
    (=windowed mode recommended now..)
  - scaling is broken (blurring)
  - sound is restarted
  
  "autoscale"-checkbox will be removed in non-beta releases
  (but it will be available by manually editing config files)

- first implementation of uae-configuration-style control software
  that works outside of emulation (using named pipe \\.\pipe\WinUAE)
  
  currently working commands:

  - "CFG <config_entry> <config_value> [<another_entry>=<value>] .."
    change configuration on the fly
  - "CFG config_entry" return value of <config_entry>
  - "CFG beginning_of_config_entry*" return all config entries that
    beging with "begining_of_config_entry"
  - "EVT event event_value [more events]" send input event
    (inputevents.def in source archive, "KEY_A 1", "SPC_QUIT 1"..)
  
  return string is status code (http-style 3 digit status) +
  message-specific extra status.

  NOTE: Named pipes require Windows 2000 or newer. WIP.
  TODO: automatic notifications when configuration changes and more
  
  ipctester.exe (in separate archive) can be used to experiment with
  this feature.
  

Beta 1:

- improved C (trainer) debug command. Multiple searches supported
  (life counter = 3, "C 3", die, "C 2", more than one result?
  die again, "C 1" etc..) C without parameters resets the search.
  byte,word,3 byte,long integers supported. value < 256 = byte,
  value < 65536 = word etc.. "C <value> <size>" can be used to
  force type of value. (1-4). Added slow and fast memory support.
- fpu_strict config option added to GUI
- added Action Replay "fa <addr> [<saddr>] [<eaddr>]"-command to
  debugger
- started implementing "Input recorder". Only keyboard, joystick,
  mouse events supported. Don't try to change disk images.
  Record/playback buttons added to Output-panel.
  "Alt. playback mode" = more compatible but less accuracy.
  (debugging option currently) May not be too reliable yet. WIP.
  Please test and report. Usage: start recording, boot emulation
  or start recording and load state file. Same for playback.  
- build-in mousehack. MH code is now automatically started if
  "mousehack mouse" is selected from ports-panel, mousehack-Amiga
  side program is not needed anymore. MH C-code converted to asm
  and moved to filesys "boot rom". (filesys.asm)
- added disk label text box to "create standard adf"-option
  ("custom" adfs are unformatted)
- and finally the best new feature ever: drive sounds from PC floppy
  drive!... (requires driver from http://simonowen.com/fdrawcmd/)

1.2

Final: (official release date in 3-6 days)

- fpu_strict=yes/no config option added. yes = more accurate
  but slower. No GUI option yet.
- winuaelog.txt logging can be enabled or disabled on the fly
- another CIA keyboard handshake update. Previous update broke
  some intros with extremely weird keyboard routines..
- removed default mapping of PC PrintScreen key to Amiga key code
  0x6e (no special key should be visible to Amiga-side by default)
- winuaeenforcer update (BR)
- small tweak to "writing to BPLxPTL while bitplane DMA was
  accessing it at the same time" (unnamed intro by the Senses)
- it was not possible to delete directories in directory filesystem
  if recycle bin-setting was disabled. (broke in 5 and stupid me)
- windows recyclebin setting is on the fly adjustable
- OGL and D3D filters replaced with original versions, 1x-8x
  select boxes will be implemented later..

Beta 6:

- png screenshots (use "-screenshotbmp" command line parameter
  to force bmp screenshots. This will be removed in future.)
- FSGLMUL and FSGLDIV slowdown fix (PK)
- language selection added to misc-panel (user-specific, stored
  in registry, not in configuration file)
- disabled SHIFT+F12 debugger shortcut in fullscreen modes
- "final" translation dll included, no more changes to GUI.
- D3D/OGL scaling still broken... (so boring thing..)

Beta 5:

- fixed swapped parallel port joystick adapter firebuttons
- more FPU precision/rounding and other updates (Peter Keunecke)
- added improved sound filter code from uade (regular versions only,
  not "E"-versions) NOTE: only available when frequency is 44100Hz
- implemented internal light pen hardware (BPLCON0 bit 3 and VPOSR
  work now properly), mostly useless because there is no cursor or
  trigger yet..
- clicking on disabled drive's trackdisplay slot in windowed mode
  does not open disk dialog anymore
- switching adf read/write-status does not leave stale file locks
  open anymore
- apparently CIA TOD only stops when writing to TODHI and restarts
  when writing to TODLOW. Writing to TODMID does not stop it.
  (demo Harmony by Haujobb)

Beta 4:

- sprite DMA cycles are not anymore available for blitter or CPU
  in ce-mode (game Detonator, probably others too)
- some small ce-mode tweaks
- tweaked Sci-fi COPJMP-update, Thai Boxing works again.
  Copper stops (until next frame) only in following condition:
  - Copper DMA is disabled
  - Copper was waiting when DMA was disabled (this was missing)
  - both COPJMP1 and COPJMP2 were accessed while DMA is disabled
  -> Copper does not restart after DMA is re-enabled
- cycle-exact blitter line draw timing updates
- HAM enabled but only 4 bit planes enabled fixed (broke in B2)
- misc JIT cleanups (Peter Keunecke)
- D3D/OpenGL "works" now. Need some positioning fixes in
  lores/non-doubled modes.
- added AmiKit to about-panel

  I found something interesting about DMA slot allocation, the
  diagram in HRM is correct but there is 5 cycle offset.
  I used simple program that read DFF007 in tight loop (68060 A1200)
  and counted available horizontal positions. 4, 6, 8 and 10 is
  always unavailable (memory refresh). 18 = audio channel 0, 20, 22,
  24 channels 1-3. 26, 28 sprite 0, etc.. This leaves 12, 14 and 16
  for disk DMA (didn't bother to test because slots fit perfectly)
  Questions: Which one is the "real" value and which one is "fake"
  and why? Whats the reason for this unexplained delay? This does not
  affect DMA timing in UAE but CPU reads from DFF007 are not 100%
  correct. (this probably only affects really stupid wait routines)
  I will later use this same method to confirm copper's cycle usage.

Beta 3:

- doubleclicking on power-"led" in windowed mode opened multiple
  (broken) GUI windows
- display filter size and position formulas modified. old presets
  are not compatible. (D3D/OpenGL not yet updated, don't use)
- CIA-A keyboard handshake update, found another game (Wicked) that
  has "interesting" key handshaking code
- configuration save crash (B1, "Filtered Lores"-config entry was
  broken)
- display was shifted by one pixel to right if horizontal centering
  in lores-mode was enabled
- another priority-panel "Above Normal"-bug fixed..
- another FPU update from Peter Keunecke
- missed B1 changelog entry: overlay-checkbox is on the fly
  configurable

Beta 2:

- Logitech G15 LCD support complete (gfx by Jani Wilen)
- D3D filter works again
- ProWizard module ripper updated to latest version
- ignore MinSecondarySampleRate and MaxSecondarySampleRate when
  selected sample rate is 22050 <= x <= 44100 (found broken
  driver that reports 48000 as a min and max frequency..)
- more Amiga Forever 2005 path updates (incorrect paths if trailing
  / was missing from AMIGAFOREVERDATA-environment variable and in some
  situations ROM-path was incorrect)
- %-character fixed in debugger's memory dump
- sprite priorities and HAM change in mid horizontal line supported.
  Fixes Bubba'n'Stix second level background and Cover Girl Strip Poker
  title screen. May also fix demos/games with single incorrect horizontal
  line(s). Disposable Hero titlescreen is not fixed yet but looks slightly
  better.
- rare CE-mode bitplane/copper timing error (demo Green Surprise by Scoopex)
- horizontal cycles 0 to 3 (about) are visible in right border (for some
  reason horizontal blanking does not start at cycle 0), until now color
  changes were delayed until next horizontal line. Fixes wrong right
  border color in Leander, T-Racer, Unreal etc..

Beta 1:

- updated to final MSVC 2005
- sound in 4 channel mode created broken 2-channel wave-files
- added hdf creator to "add harddisk" panel, creates 1:1 hdf-image from
  selected Amiga formatted harddrive.
- harddisk check (RDB detect) crashed if drive's blocksize was >512.
  (does >512 physical block size block devices even exist?)
- FPU emulation update, rounding errors fixed, bad generation of NaNs,
  some missing constansts added. (Peter Keunecke, Bernd Roesch)
- JIT ACOS FPU bug really fixed (Peter Keunecke)
- switching from OCS to ECS or vice versa on the fly didn't reset
  "Arcadia Xenon"-fix correctly. Reboot is still needed to reset it.
- new horizontal shrinking mode, "Filtered lores" in GUI. New pixel is
  now average of two pixels instead of dropping every other pixel.
  Fixes incorrect colors in programs that use superhires tricks
  (for example Virtual Karting, demo Rest-2 by Codebusters) Also
  affects hires-screens if lores-checkbox is ticked. Does not work
  in 8-bit host mode.
- Logitech G15 keyboard LCD display support. WIP.
- overlay windowed window size was incorrect by 1 pixel
- GUI string update. WIP. (M.C. Battilana, TW)
- D3D filter is broken and crashes. Trying to fix another case of
  DLL hell.. (d3dx9_xx.dll)

1.1.1

Beta 3:

- don't set CIA-A FLAG-interrupt bit when program writes to parallel
  port without connected printer. Fixes Gauntlet III.
- editing filename or path from history list works again
- fps adjustment in display panel goes to 1 fps now (was 5)
- .uae extension in registry pointed to <data path>\WinUAE.exe, not
  <path to executable\WinUAE.exe. Caused only problems if -datapath
  command line parameter was used.

Beta 2:

- SPTI SCSI SCAN mode finally works properly. Also duplicate devices
  are now automatically removed.
  Big thanks to Frank Busse for testing, Cloanto for help and donating
  some SCSI stuff. and tiny thanks to me for bothering with
  installation of old SCSI stuff to my test PC, filling my small room
  with another PC, SCSI devices (old scanner I borrowed from work is
  huge and heavy) and wasting lots of time with testing and cursing bad
  documentation..
  This really took much longer than I originally thought. Only SCSI GUI
  panel to do and then SCSI subsystem is more or less finished.
- fixed yet another disk emulation bug. Reading from empty disk drive
  returned random data. "No disk in drive"-status was detected as
  drive with unformatted tracks. (Reading unformatted tracks must
  return random bits) Fixes Xybots. Bug was probably introduced after
  "Typhoon Thompson"-fix was implemented
- disk history select boxes' path separated from filename and moved to
  right side. Now filename is always visible even if path is very long.
  Yes, I know, it does not look too good but I didn't find any non-MFC
  custom multicolumn combo-box examples..

Beta 1:

- fixed incorrect AF2005 paths after clicking "reset to defaults"
- blitter could freeze in ce-mode if D-channel was not enabled
- separated GUI fullscreen resolution and depth selection
- do ASPI check only once and cache the results, check version
  of aspi dlls before enabling, nero aspi must be >=2 and adaptec
  aspi must be >= 4. No more bluescreens/crashes under W9x/me if
  using Windows build-in wnaspi32.dll crap.
- "floppy drive speed" and "new disk image" swapped in disk-panel
- extremely stupid bug in disk emulation fixed (broke in b10,
  may have caused disk detection problems with some games)
- SPTI-mode improved, re-enabled SCSI device scan ("SPTI + SCSI SCAN"
  in GUI. Separate option because driver bugs may cause problems..)
  SCSI scanners and tape drives should now work even without installed
  Windows driver. Note that WinUAE may detect SCSI devices twice in
  this mode (one from regular SPTI enumeration and the another from
  SCSI scan)

1.1

Beta 10: FINAL

- hardfile config loading bug if hardfile was missing
  (broke some versions ago)
- filesystem Examine(<root dir>) should return 2 (ST_USERDIR)
  instead of 1 (ST_ROOT) ST_ROOT isn't used. OFS, FFS and SFS
  also return ST_USERDIR. (and Guru Book says ST_ROOT isn't used)
  This fixes some (buggy?) file checking routines.
- fixed really stupid diskrdy-signal bug (broke in 0990b6..)

Beta 9:

- added "non-path" Kickstart ROM mode in config files.
  (useful for frontend-type programs etc..)
  Syntax:
  kickstart_rom=v<ver>[.<rev>] [r<subver>.<subrev>] [<model>]
  Only <ver> is mandatory. Model must be specified if requested
  ROM file is not a regular Kickstart ROM.
  Examples:
  v1.3 (select any autodetected 1.3)
  v1.2 r33.166 (must be KS1.2 revision 33.166)
  v1.2 A500 (KS1.2 rev 33.180)
  v2.05 A600HD (KS 2.05, rev 37.350 or 37.300)
  v3.1 r40.68 A1200 (KS 3.1 rev 40.68 A1200)
  v3.1 r40.68 (KS 3.1 rev 40.68, both A1200 or A4000 version allowed)
  v3.1;v3.0 (any revision of KS 3.1 or 3.0)
  v3 A1200 (A1200 KS 3.1 or 3.0)
  v2 AR (any Action Replay v2)
  Multiple matches: highest available version is selected
  Extended ROM config item: kickstart_ext_rom=
  Cartridge ROM config item: cart=
  Arcadia ROMs:
  cart=Arcadia <name>, for example cart=Arcadia Xenon
- CIA INMODE=3 normally equals INMODE=2 (CIA serial port clock pin
  is normally high while idle) Fixes game Warp
- "bad hardfile"-messages replaced with something slightly better
  (can't be translated yet)
- added support for amigaforever.dll (optional rom.key alternative)
- compressed hardfiles supported. current restrictions:
  - max 100M (whole hardfile will be kept uncompressed in memory)
  - all written data will be lost after reseting or exiting WinUAE
  - hardfile filename extension must be hdz,zip,rar or 7z
- hardfiles can be dragndropped to harddisk-panel
- statefiles with Action Replay work again (broke in 0.9.90)
- OCS/ECS Amiga colorspace translation to native color space was
  not completely correct (I guess since the beginning..) for example
  0xfff was translated to 0xf0f0f0, not 0xffffff (basically this makes
  OCS/ECS modes slightly brighter)

Beta 8:

- ACTION_COPY_DIR_FH fix (it was totally broken..)
- Disk Swapper: right button doubleclick in "Disk image"-column:
  removes disk in disk swapper panel. right button singleclick in
  "Drive"-column: remove disk in drive
- CAPS -> SPS renaming here and there..

Beta 7:

- modifying directory's protect or comment changed its modification
  time. Previous update failed to handle directories properly.
  (CreateFile() to dir needs FILE_FLAG_BACKUP_SEMANTICS flag. urgh.)
- tweaked "Bubba'n'Stix / Battle Squadron sprite update". It broke
  Elfmania's scoreboard. Now all 3 games run without gfx bugs.
- JIT-checkbox remembers previous JIT cache size
- improved switching from cycle-exact mode to non-cycle-exact (or
  vice versa). Previously switching modes may have resulted in frozen
  emulated software (missing blitter finished flag/interrupt)
- simple copper debugger implemented. Breakpoint, trace and vpos/hpos
  of executed copper commands (vpos/hpos-feature was already
  implemented but it needed to be activated in compile-time)
  New commands:
  - ob <addr> = breakpoint (not 100% exact yet)
  - ot = single step
  - o0 = disassemble from current address 
- Arcadia World Trophy Soccer (MAME 0.99u8, ar_socc.zip) supported
- "desktop smaller than windowed window"-check was incorrect
- SPTI direct SCSI-adapter enumeration disabled until code has been
  fully tested (currently it is mostly useless)

Beta 6:

- tweak to undocumented "switching bitplane DMA on during DDF"-feature
  (Death Trap flashing score board. Semi-broken copperlist again..)
- SPTI CDROM support was broken in b5
- Priority panel's active priority was broken in b5
- sprite update updated. Fixes CD32 "key" in nvram screen. (0992b4)
  OCS/ECS: sprite is attached if odd or even sprite's SPRxCTL bit 7
  is set. AGA: odd sprite SPRxCTL bit 7 only.

Beta 5:

- some 68000 prefetch special case tweaks 
- some cycle-exact blitter tweaks
- replaced ASPI-checkbox with select box (SPTI, AdaptecASPI, NeroASPI)
- updated to latest zlib
- SCSI tape drives and scanners are not filtered anymore in ASPI-mode
  (-noaspifiltering parameter is not needed anymore)
- another SPTI-mode non-CDROM support improvement (not finished yet)
- delay possible forced rom scan until GUI is opened
- replaced "delayoffset" tables with proper(?) algorithm. (Loons Docs)
- added "none" to joystick/mouse selectbox
- improved Amiga Forever 2005 path handling
- added AF2005/AF/WinUAE default paths -select box. Only visible if
  user has more than one installation (for example AF 2005 and plain
  WinUAE)
- directory filesystem ACTION_COPY_DIR_FH (DosPacket) implemented
  (AmigaDOS function DupLockFromFH()) No idea why this one was missed..
- added address-parameter to debugger i-command (overrides VBR)
- updated and cleaned "disable bitplane dma if planes > maxplanes".
  It isn't that simple. OCS/ECS, lores and planes set to 7 -> number
  of planes is 4. DMA gets disabled only if number of planes is larger
  than available DMA slots, for example OCS/ECS hires and > 4 planes.
  (demo Spanish Rose by Creed)
- fixed buggy COPJMP fix in 1.0b6. Broke for example Obliterator intro.

Beta 4:

- blitter blockmode update, this time I did lots of testing with real
  Amiga. Results are quite interesting.. (more notes in blitter.c)
  fixes: many demos with flickering or partially clipped objects
- last line was missing in programmed interlaced display modes
- DIVU/DIVS division by zero exception return address fix
  (broke in b1, reorganized code too much..)
- set JIT have_rat_stall (broken in b1 CPU detection code update)
- native code slowdown workaround (BR)

Beta 3:

- fixed incorrect paths if running WinUAE from network drive
- Paths-panel "Reset to defaults" forces reload of configuration file
  directory
- AHI works again (broken in b2)
- don't call init_hz() every frame if interlaced programmed display
  mode is enabled (for example interlaced Euro36)
- screen vertical starting position properly calculated in programmed
  modes (horizontal pos is much more complex, later or never..)
- many programmed mode registers were saved as zeros to statefile
  (also debugger e-command showed wrong contents)
- updated to latest archiveaccess.dll. Library is used to support rar
  and 7z archives. I'd prefer internal support but it seems rar's
  license prevents it and (at least last time I checked) 7z-support
  routines were unreadable mess..

Beta 2:

- "genlock connected" GUI option added. Please continue reading before
  saying I am crazy :)
  Kickstart's genlock detection code always detected genlock due to not
  emulated ERSY-bit in BPLCON0. Normally it does not really matter but
  most non-video frequency compatible monitor drivers don't load if
  genlock is connected. (and currently most of them work very strangely
  because not all programmable sync registers are used to calculate the
  position of screen) GUI option is basically only for backwards
  compatibility.
- Fast Copper removed (Bernd#1) It is too broken..
- removed now useless mod ripper from debugger
- added more missing unused keycodes to inputevents.def, updated CDTV
  CD player keycodes
- MMKeyboard support added (http://www.geit.de/eng_mmkeyboard.html) (BR)
- AHI recording memory leak (BR)
- special WinUAE qualifier key (END) is now configurable (currently
  the only way is to manually edit the keycode in config file, config
  entry is called win32.specialkey)
- transparent "led status bar"
- in windowed mode window height (Amiga display area's height) was not
  correct in some cases (for example 200 was changed to 208)
- "Add PC Drives at Startup"-option adds only local drives, added
  separate checkbox for network drives
- default to MultiMediaTimers instead of Sleep() if both have good enough
  time resolution (previously defaulted to Sleep())
- AmigaSYS added to About-box
- CD32 mode enabled: map CD32 buttons to compatibility-mode joystick
- Keyboard led mode-configuration option added (can't be autodetected
  properly)
- zlib statically linked (90kb is nothing..), zlib1.dll is not needed
  anymore
- merged CPU detection code from BasiliskII JIT (64-bit updates coming
  later)
- added non-CDROM SCSI device support to SPTI-mode. May not work
  because I don't have any real SCSI devices.. Check the log between
  "Scan starts..." and "finished." and send reports.
  NOTE: Order of CDROMs (if you have more than one) may change because
  drive letters aren't used anymore. SCSI GUI-panel will be implemented
  later..

Beta 1:

- zipped encrypted roms didn't always decrypt properly
- rom/disk image maximum allowed path size increased
- improved catweasel mouse/joystick support (separate input devices
  instead of hardcoded input layout) NOTE: MK3 can't read joystick
  buttons 2 and 3 without installed SID-chip. Catweasel is now always
  enabled if detected. Checkbox in misc-panel is only used to enable
  Catweasel ZorroII-card emulation (floppy access)
  NOTE2: right and middle mouse button may not work on every Amiga
  mice. This will be fixed in future Catweasel core update.
- ACOS FPU fix (fixes broken particles in "Fake Electronic Lightshow"
  by Ephidrena, broke in previous FPU update) (Peter Keunecke)
- left click don't capture mouse anymore if GUI is active
- Picasso96 graphics problem introduced in 1.0
- lots of 64-bit compilation errors fixes (non-JIT version already
  works, also it is possible to have max 2G of Z3Fast in 64-bit
  version.. pointless but fun..)
- more stable on the fly configuration loading
- added exact 68000 DIVU and DIVS cycle usage algorithm (ce-mode only)
- stackmagic is 64-bit compatible (argh, that took ages to fix..)
- replaced inline assembly stackmagic-space allocation with _alloca()
  (compatible with both 32 and 64-bit compilers)
- bsdsocket emulation 64-bit fix (may have caused breakage, bsdsock.c
  did have some quite "interesting" code that needed complete rewrite...)

Not yet 64-bit compatible:

- JIT (Basilisk II have 64-bit compatible JIT)
- native code support
- inline asm helper functions in ahidsound.c (inline assembly is not
  allowed in 64-bit mode..) First task is to add C-versions and add
  64-bit assembler versions later if really needed.
- not all external libraries or devices are available in 64-bit yet
  (Catweasel drivers, CAPSImg.dll, ArchiveAccess.dll, gsdll32.dll)
  64-bit zlib.dll is included.
- asm-optimized filters default to C-code in 64-bit mode (which means
  scale2x etc.. are probably slower in 64-bit)

1.0 (06.06.2005)

Beta 10: (final)

- FSINCOS-FPU instruction with identical destination registers
  fix (Peter Keunecke)
- fixed graphics corruption (shifted bitplane) if BPLxPTL was
  written and bitplane DMA accessed it exactly at the same time.
  Fixes intros "3v Demo" by Cave and "New Year Demo" by Phoenix

Beta 9:

- changing write protection status of command-line inserted disks
  failed to reinsert the disk properly
- added optimized JIT FPU trigonometric functions (Peter Keunecke)
- added directory filesystem speed up-patch (BR+me)

Beta 8:

- SPTI SCSI-mode sense-key handling fix. Some systems failed to
  detect media ("Drive empty" in log) Bug since the beginning..
- recompiled with MSVS 2005B2. Faster? Slower? Unstable?
  (experimental 64-bit versions coming after 1.0 is out)
- Windows 98/ME(?) SHGetFolder-error fixed
- catweasel direct io is back (there is no new drivers for MK1)
  Direct io is enabled if catweasel-config option is larger or
  equal than 100
- default translation dll included

Beta 7:

- debugger 'H'-command fixed and improved.
  H=disassembly only, HH=disassembly+full cpu state. Command
  only works while debugger is active (for example one or more
  breakpoints are enabled)
- GUI's screenshot option does not capture the GUI anymore
  (happened in D3D/OpenGL and non-overlayed modes)
- added test for installed rtg.library version
  (it seems too many users don't know about updated library)
- X-Arcade layout tooltip re-added
- .uae-extension is stored to user-specific registry if user
  is running in non-admin account (NT-based Windows only)
- audio reverse stereo option added
- [development PC updated to 64-bit Windows XP. I'll try first
  64-bit build (without JIT) when free MSVS 2005 Beta 2 arrives]

Beta 6:

- active priority was not set until window lost and reacquired focus
- winuaenforcer updated. "winuaeenforcer 1" cause all illegal
  adress read or write from 0-$100 or unused amigamem an illegal
  adress Exception 3. (BR)
- b5 only worked on Windows XP (nobody is using 98/ME or 2K anymore?)
- implemented undocumented COPJMP-feature (game Sci-fi)
- Marvin's Marvellous Adventure works again in JIT-mode
- disk read/write debugging option (see debugger help)
- added sample ripper (in output-panel) Samples are dumped to
  screenshots-directory. Duplicates are ignored automatically.
- "save as wav" statefile option (for easy manual sample hunting)

Beta 5:

- fixed possible crash while restoring saved state (broken in b1)
- proper natmem-allocation update (W2K/XP only)
- fixed "Couldn't load Kickstart"-message while loading older
  statefiles (b1)
- Tenebra (AGA demo) "face"-part partial fix (missing 3d-object
  is now visible) Top and bottom parts of face are still missing
- added Windows CPU info (32/64-bit and revision levels) to
  winuaebootlog.txt

Beta 4:

- disk step rate limit improved. For example Music disk Extemporized
  by Digital (and some other Digital products) do two very quick
  steps that must not be ignored. It is really far too quick but it
  still works.. (but most likely some drives don't like it..)
  And of course there ARE demos that do very very quick steps that
  must be ignored..
- Battle Squadron hiscore-sprite update, 3rd letter of player's
  name was not visible in hiscore-screen, also fixes Bubba'n'Stix's
  jumpy background mountains.
- compatibility filesystem and hardfile -config entries are back
  (not sure why or when they disappeared..)
- added filesystem "no recyclebin"-option to harddrive-panel
- "Catweasel"-checkbox is now disabled if CW driver or card is not
  detected
- Catweasel MK3 Windows driver support fixed and confirmed working
  (Can anyone with MK1 test?) 
- ASPI-mode now automatically uses Nero ASPI if Nero Burning ROM is
  installed (Demo or full version) Nero ASPI has much better
  compatibility than Adaptec's crap... Detected ASPI is shown in log
- joystick/mouse selection GUI changed again (tooltips not fixed yet)
- rare load crash fixed
- fullscreen mode resolution reset when using resolutions where y > x
- loading preset filter didn't update the screen

Beta 3:

- changing Amiga-specific protection flags or comment changed also
  file's modification date. (broke in 0.9.92 FS update) 
- simple config file backup, config file is renamed to
  "configuration.backup" before it is overwritten or deleted
- Windows 9x/ME didn't like new natmem-allocation system,
  so now only NT-based Windows' use new system
- Picasso96's autoconfig config area RAM size was always 8M when
  configured size was 8M or larger.. (bug since the beginning..)
- enforcer bug fix (BR)
- removed filesystem automatic read-only check, apparently it is
  impossible to detect read/write status of network drives
  (and 100% sure detection of networked drives is also too complex..)

Beta 2:

- DMA accesses to upper 512kb of chip RAM with only 512k chip RAM
  and 1MB Agnus installed don't map to low 512kb like CPU accesses do.
  Fixes Arcadia SideWinder (game bug, bogus blitter d-channel address)
- added AmigaForever ROM path autodetection to ROM scanner
- added workaround for AMOS filesystem emulation incompatibility
  (infinite loop in filesystem code) Reason for freeze unknown,
  proper fix unknown.. (filesystem emulation is confusing..)
- compatible with Arcadia MAME 0.90u4 ROM update
- "Kickstart v1.2 (A1000)" was not detected because of wrong CRC32..
- joystick axis/buttons were marked non-mappable to mousebuttons,
  fixed
- natmem-area allocation changed slightly (allocation is still buggy
  because there is race condition that can cause allocation to
  fail in some rare cases but fixing this properly isn't so simple)
- SPC_INCREASE_REFRESHRARE -> SPC_INCREASE_REFRESHRATE...
- adjusting keyboard leds and then entering to any panel except
  priority panel reset all priority values to "Above Normal" (and
  I thought this was 100% fixed some releases ago..)
- fixed Picasso96 freeze/crash/bogus refreshrates if display-panel
  "parenthesized" refresh rate was selected.
- relative kickstart/floppy/hdf paths work properly again
- misc disk swapper-panel updates
- enforcer update (BR)
- keyboard layout C: both numpad 5 and 2 is mapped to down
- bsdsocket update (SR) (don't open connection dialog if
  requested address is localhost)
- Catweasel support now requires Windows driver (no more direct port
  access) New official Windows driver will be released very soon.
  Added Catweasel enable-checkbox to misc-panel

Beta 1:

- bsdsocket emulation could crash in some cases (SR)
- exception 3 update in 0.9.90b6 was buggy, broke Shinobi, Double
  Dragon 2 and probably others..
- Arcadia arcade system emulation (MAME 0.90 Arcadia roms supported)
  Configuration: basic A500 setting (KS1.3, 0.5M Chip etc..)
  Point "Cartridge ROM File" to Arcadia ROM file (ar_????.zip)
  Start emulation.
  Default key shortcuts: F2 = diagnostics menu,
  1 = start 1 player game, 2 = 2 player game, 5 = coin slot 1,
  6 = coin slot 2 (configurable in input-panel)
- audio channels were swapped (no idea when or if they ever have been
  correct..)
- Picasso96 DOpus 4.12-problem fix (BR)
- debugger improvements:
  - r sr xx = change status register
  - r ccr xx = change condition codes (low 5 bits of SR only)
  - r usp/isp/msp xx = change stack pointers
  - r vbr xx = change VBR
  - sc = screenshot
- filesystem configuration (mountinfo) data handling rewrite. This
  should finally fix random crashes when reloading new config (or
  changing quickstart model settings) on the fly. Note that changed
  harddrive settings are only activated after reset instead of
  immediately (which usually resulted in confused AmigaOS..)
- switching from catweasel-enabled to non-cw-enabled configuration
  on the fly caused crash (I forgot to reset catweasel options..)
- added history list/text edit box to disk swapper


0.9.92

Beta 8: (final. official release date: tuesday/wednesday)

- setting number of bitplanes (BPLCON0) larger than max supported
  caused incorrect blitter and copper timing. Fixes intro
  "First Anniversary" by "Lazy Bones"
- refresh is now forced to every frame if cycle-exact is enabled

Beta 7:

- fixed AHI bug introduced in b6
- fixed AVIOutput bug that lost every other frame when recording
  interlaced screen modes and linedoubling was enabled
- HD size detection improved. In some cases larger harddrives'
  detected size was slightly smaller than real size. This was due
  to using "wrong" Windows size-detection IOCTL, unfortunately the
  better one is Windows XP/Windows Server 2003-only routine...
  (IOCTL_DISK_GET_DRIVE_GEOMETRY and IOCTL_DISK_GET_LENGTH_INFO)
- Picasso96 optimization (Bernd Roesch)

Beta 6:

- fixes memory corruption/crash if using >1024 pixels wide 32bit
  chipset display mode without filters
- changed default active priority from "Above normal" to "Normal"
  (yeah, I changed my mind, again..)
- fixed beta 4 and 5 disk insert problems
- added windowed mode "Always on top"-checkbox to misc-panel
- WinUAE now uses multiuser-aware Windows language settings for
  selecting GUI translation DLL instead of using old-style system
  default setting
- replaced really weird and incorrect AddTail()-function in
  picasso96.c with correct version (20 lines of code -> 4 lines..)
- non-ce-mode blitter timing bug fixed (broken in 0823b2..)
- ce-mode slowdown introduced in b4 optimized

Beta 5:

- Quickstart disk insert fixed (broke in b4 multiselect support)
- X-Arcade updated mappings
- internal drive click sound fixed (broke in b4)
- last swapper position was unavailable (and b4 again)
- some printing tweaks
- image tool tip support (currently only used for X-Arcade keyboard
  layout, image and mappings by Pierre Astruc)
- compiled with updated zlib headers and library (1.2.2)
- onscreen floppy and HD leds flash red while writing
- window close-button is now working if "Use CTRL+F11 to quit"
  is enabled
- fixed random disk read errors when writing and immediately reading
  same track back in non-turbo mode (broke in 0.8.26 or so, fixes
  SuperDuper formatting, also probably fixes some save disk formatting
  problems)

Beta 4:

- cycle-exact copper/bitplane fix (may cause some slowdown, sorry..)
- improved drive click emulation, requires big external sample file
  Samples maybe compressed and included inside winuae.exe in future.
  (James Bagg)
- fixed drive click GUI external sample detection
- another sprite emulation update (intro "Da blue mouse" by Vectra)
  Sprite attachment must be active if sprite's attachment-bit is
  set, even if odd sprite pair is not "armed"
- added soft and hard reset input-targets
- fixed sprite problem introduced in beta 3
- added keycodes to keyboard input source list
- added configurable print job flush timer
  0 = disabled, >0 = automatically close printer handle after
  parallel port has been idle x seconds (workaround for
  Windows 2000/XP never ending print jobs)
- fps adjustment GUI support added
- fixed really stupid mistake, input-panel autofire always said
  "yes", even if autofire wasn't enabled. I guess this happened
  when yes/no was added to translation.
- bsdsocket update, fixes Newsrog (SR)
- X-Arcade build-in keyboard layouts added (tooltips still missing)
- disk-image dialog multiselect support
  (Quickstart, Disk Drives and Disk Swapper)

Beta 3:

- and another incorrect "SWIV-fix" side-effect fixed
  (intro "Inspiration Is None" by Anarchy)
- GUI window close button or ALT-F4 fixed
- config-load command line parameters now load hardware and host-
  configurations properly
- CIA PBON/TOGGLE-bits emulated (fixes really weird copy protection)
- last 4 scanlines were invisible in filtered modes
- "Pause emulation" when inactive paused immediately after emulation
  was started, clear CPU% and FPS when entering pause-mode, more
  logical GUI operation with "Pause emulation" and "Disable sound
  output" -checkboxes.
- sprite tweaks, Superfrog intro bees, SuperStardust AGA tunnel section
  and Kefrens Pharaos Fantasy -intro's scroller (Superfrog and
  SuperStardust updates are quite logical but Kefrens fix looks slightly
  illogical which means something may break..)
- copper/blitter timing tweaks

Beta 2:

- demo Nivel by Banal Projects works properly again
  (demo triggered "SWIV-fix")
- archiveaccess multiarchive support (only 7z, rar and zip currently
  enabled) Archiveaccess + 7z plugins are in separate archive
  (experimental, may be removed if better solution is found)
- all DLLs from WinUAE's directory can be moved to directory called
  "plugins"
- PostScript detection corrupted PostScript data if start marker was
  %!PS<something here> instead of %!PS<linefeed>
- hardfile creation improved. Create-button is only enabled if size
  is set, added dostype selection. It is now easy to create regular
  non-RDB SFS-hardfiles, simply create SFS-hardfile, point
  FileSystem-path to SmartFilesystem-filesystem handler and use
  SFSFormat to format it
- postscript settings can be changed on the fly
- serial port direct-setting can be changed on the fly
- fixed incorrect initialization of user-defined drive sounds
- reset GUI's coordinates to top-left of desktop if original location
  is not visible on any monitor
- disk image bootable check didn't ignore non-zero sector headers
  (for example Second Samurai ipf-image was rejected)
- screenshot-files are now named <name of image in df0>_xxx.bmp
  (or xxx.bmp if df0: is empty)

Beta 1:

- generic GUI custom key shortcut support added
- disk swapper GUI panel key shortcuts added:
  cursor up/down = move cursor
  SHIFT + cursor up/down = move cursor & selected disk image
  cursor right = change drive (DF0->DF1->DF2->DF3->DF0)
  return = select image
  del = remove image
  CTRL + 1-4 = change drive (direct)
  ALT + number = jump to line 1-10
  SHIFT + ALT + number = jump to line 11 - 20
- harddisk key short cuts added
  (cursor up/down and shift, enter and delete)
- implemented generic GUI mouse listview drag'n'drop
- disk swapper and harddrives up/down arrow-images removed (looked
  quite ugly with Windows XP styles..), replaced with drag'n'drop
- automatically map developer/beta KS ROMs at 0x200000
  (if chipram size <= 0x200000 and fast ram is not enabled)
- cycle-exact plus frameskip enabled does not affect internal timing
  anymore (but frameskip in ce-mode isn't as fast in older versions)
- speed (refresh rate) adjustment implemented in non-vsync modes.
  no gui-support yet but END+SHIFT+numpad -/+ can be used to
  increase/decrease speed
- graphics corruption in NakuDemo by Vision-X fixed (demo is OCS-only)
- updated AHI driver, fixes record bug when ahi_minbufflen was set
  to any other value than default 2. (Bernd Roesch)
- Stardust (non-AGA) starwars-scroller ce-mode blitter bug fix
- non-JIT fastest possible/CPUvsChipset-option fixed
- remove harddrives when setting quickstart configuration
- entering quickstart for the first time used default host-settings,
  not (possible) user-selected host-settings configuration file
- CompaVsCPU-slider was sometimes reset to leftmost position
- experimental non-GUI disk swapper shortcuts added,
  END+1-0 (not numeric keypad) = insert image from swapper slot 1-10
  END+SHIFT+1-0 = insert image from swapper slot 11-20
  END+CTRL+1-4 = select drive
  What about preferred drive selection in GUI for all slots?
- regular HDF TD_GETGEOMETRY now returns user-entered HDF parameters
  instead of "guessed" values
- filesystem bug fix (0.9.90/0.9.91), files with Windows System or
  Hidden -flag set didn't open properly in all cases. (another
  Windows feature..)

- filesystem protection flag, comment and Windows illegal character
  handling update, UAEFSDB-information is now stored in file's named
  stream called "_UAEFSDB.___". (=works 100% transparently, no more
  separate UAEFSDB-files) New mode is only used if current directory
  has no old __UAEFSDB_-file and filesystem is NTFS.
  
  *** TESTING IS NEEDED! ***
  
  Information about NTFS streams:
  http://www.winnetmag.com/Articles/Print.cfm?ArticleID=15900
  http://patriot.net/~carvdawg/docs/dark_side.html
  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/ntfs5.asp

- "flush print job" button works now properly
- PostScript printer emulation. It is now possible to print
  directly from WinUAE to any Windows-supported printer.
  (except if program does not use printer.device and it doesn't have
  build-in PostScript-support)

  1: install Ghostscript (http://www.cs.wisc.edu/~ghost/)
  2: tick "PostScript printer emulation" in WinUAE settings
  (grayed out checkbox = no Ghostscript gsdll32.dll detected)
  3: boot to Workbench and select PostScript printer driver
  4: print normally
  (thanks to Borg No. One for inspiration and testing)


0.9.91

Beta 3:

- priority level and systray menu translation dll support fixed
- translation DLL load problems fixed
- disable quickstart-mode if using -f or -config= -command
  line parameters
- bsdsocket update, fixes ~2 second pause on some systems and
  added internet connection off-line check (Stephen Riedelbeck)

Beta 2:

0.9.91 will be released next weekend (or so) because of dangerous
filesystem bug (files can be truncated to zero, originally, for
some reason, I didn't think it was that dangerous problem..)
No new features except possible quick bug fixes to do.

- added right alt = firebutton to keyboard layout B (right ctrl is
  kept for compatibility) Many laptops don't have right ctrl nor
  numpad.. (was in b1 but changelog entry was missed)
- CPU idle calculation update (based on Bernd Roesch's idea) you may
  need to readjust your CPU Idle-setting
- ALT-TAB updates (again..) Direct3D+GUI enabled ALT-TAB seems to
  work now (or not)
- Picasso96 screen is properly refreshed when GUI is active (except
  in fullscreen mode but I don't know to fix it without overwriting
  the GUI window..)
- non-existing paths automatically defaults to WinUAE's directory
- uae-configuration fixes and changes. for example:
  "uae-configuration cpu*" lists all config entries that start
  with "cpu"
- fixed Picasso96 CTRL-ALT-DEL to login screen and ESC -> black screen
- one more open file filesystem bug fix
- and another blitter non-ce/non-immediate speed fix (it didn't really
  do anything since beta 13.. PPHammer and Spindizzy Worlds work again
  without flashing)

Beta 1

- directory hardfile: added more commands that flash hd led
- some improvements to JIT crash preventer
- missing translation strings added (priority levels, compatible
  and turbo -floppy speeds, yes/no in input autofire and harddrive
  emulation read-only status)
- updated Overkill AGA fix (Alien Breed II AGA scrolling)
- filesystem fixes. Read-only files didn't open, some error codes
  were wrong and opening file in readwrite-mode truncated it
- BorderBlank-bit is in ECS-Denise and newer chipsets (was AGA-only)
- loading config didn't set correct stereo separation variables
  if separation was set but delay wasn't. fixed.
- Latest SFS changelog says "ACTION_ADD_NOTIFY now returns
  ERROR_BAD_NUMBER if the notification is neither a NRF_SEND_MESSAGE
  nor a NRF_SEND_SIGNAL notification." Filesystem emulation does
  the same thing now.
- added uae-configuration Amiga-side program, it is basically very
  extended uae-control. It has 3 modes:
  1: without parameters it outputs all current configuration settings
  2: with single parameter it outputs value of config entry
  example: "uae-configuration cpu_type" -> "68040"
  3: with two (or more) parameters it can change configuration and
  send input events on the fly.
  examples: "uae-configuration cachesize 0" (disable JIT) or
  "gfx_vsync true gfx_refreshrate 50" (enable vsync and set refresh
  rate to 50) "SPC_ENTERGUI 1" (open GUI), "KEY_A 1 KEY_A 0" (press
  and release A-key) etc.. Check inputevents.def (in source archive)
  for all supported events.
  Return codes: 0 = ok, 5 = config name not found, 10 = other error,
  20 = not supported (too old UAE)
- automatic rom-scan check improved, no more forced scanning if user
  run older WinUAE versions without rom-scan support


Final 0.9.90:

- floppy speed was never initialized to 100% in quickstart-mode
- default.uae ignored paths-panel configurations-path
- in some circumstances regular configuration was saved to
  hardware or host configuration directory
- enabling/disabling lores on the fly didn't always reset all
  internal variables correctly resulting in weird display

RC1:

- back2roots URL updated (was ancient http://back2roots.emuunlim.com/),
  abime.net URL added
- fixed uninitialized variable that may have caused problems in
  4-channel sound mode
- possible crash bug in beta13's blitter update fixed
- game-port panel joystick compatibility with older config files fixed
  (why is kbd1 = first keyboard layout but joy0 = first joystick?)

Beta 13:

- changed quickstart uae-config's floppy speed to turbo
- MOVEC control register 0x804 was incorrectly marked as 68040-only,
  but it really is 68020+. It seems I broke this in some 0.8.22 version
  without anyone noticing it.. (fixes AIBB crash in 68020-mode)
- directory filesystem deleted files/directories are now moved to
  Windows Recycle Bin (if RB is not disabled)
- release all inputdevices when entering debugger (and acquire them
  again after exiting) Fixes keyboard freeze on some Windows 2000
  systems
- last entry in Ports-panel mouse/joystick-selectbox was unselectable
- middle mouse button didn't work, stupid typo in b12's input cleanup
- removed "Windows mouse" mousewheel and number of buttons limits, there
  are programs that can send for example faked middle button messages
  even if real mouse has only 2 buttons etc..
- "Windows mouse" middle button = ALT-TAB fix
- disable quickstart media-check if quickstart-checkbox is not checked
- yet another active/inactive/minimized-fix
- added image+crc tooltip to df0-df3 windowed mode "leds"
  btw, for some reason SB_SETTEXT's SBT_POPOUT-mode don't do anything if
  non-classic skin in Windows XP is selected. (which means "leds" don't
  move "up" or "down") Any ideas?
- left click on status bar df0-df3 = insert disk, right click = eject,
  left click on power = gui, right click = reset. Left and right button
  doubleclicks are still free if someone needs more functions :)
- blitter non-ce/non-immediate approximate slowdown due to bitplane dma
  -code changed
- add support for other german keyboard layouts

Beta 12:

- "Syncronize clock"-feature is back, fixed random turbo clock
- gameport configuration defaults fixed
- added "4 Channel" audio mode (=feed all 4 Amiga channels directly
  to DirectSound device without 4->2 software mixing, was earlier only
  available with "-dsaudiomix" command line parameter)
- "Crux"-interpolation with stereo separation enabled fixed
  (readjustment of stereo separation GUI-settings are needed)
- show message if there is no Kickstart ROM selected and Kickstart
  replacement fails to run disk image in df0: (previous versions
  simply returned to GUI without saying anything..)
- "Could not load Kickstart ROM"-message readded (not sure why or when
  it disappeared..)
- kickstart replacement wasn't enabled if no Kickstart ROM was
  selected, but it worked if selected ROM couldn't be loaded.. fixed.
- input device renaming must be of course after sorting, not before..
- Added "Amiga 2000" to Amiga 500 model-title
- mousehack-support changed, mousehack-mode is only enabled when
  Amiga-side mousehack-program is running and new special
  "Mousehack mouse" is selected. Autoselecting mousehack-mode would
  have caused too many unsolvable problems. Without mousehack-program
  mousehack-mode works just like "Windows mouse"
- mousehack works in fullscreen mode. (=tablets work in fullscreen)
- quickstart only autosets configuration when "start in quickstart-mode"
  -checkbox is checked. "Set Configuration"-button can be used to
  set the config when checkbox is not checked.
- dragndrop rom type detection
- cd32-pad emulation improved, should be nearly perfect now,
  also default joystick/joypad cd32-button mappings changed
  (removed useless "firebutton") (CD32 pad info from schematic at:
  http://home.t-online.de/home/malibann/cd32gamepad/cd32gamepad.html)
- cd32 cdrom drive is now always redetected after every reset
- keyboard layout A/B/C compatibility with older versions fixed
  (check and resave your configs)
- changed default windowed resolution to 720x568

Beta 11: hopefully only bugs fixes left..

- improved game controller/mouse selection in "Game & IO-ports",
  even multimouse is now possible without need to use input-panel
  (but don't forget OS limits: 98/ME = two USB mice required,
  2000 = no multimouse support, XP = no mouse limits)
- changed naming of input devices with identical names
  (first is named "xxx [1]", second "xxx [2]" etc..)
- removed some REALLY obsolete win32-specific filesystem filename
  mangling functions. (for example ~ in file names didn't work)
  Testing needed!
- Action Replay freeze-key (page up) was unavailable for configuration
  even if Action Replay was not enabled, fixed. Again.
- USB keyboard led-support (may not work in all cases yet)
- more ALT-TAB fixes (this is so stupid, for example Direct3D-
  fullscreen mode sends minimized information differently than other
  regular DirectDraw fullscreen modes..)
- added "Windows Mouse" buttons 4 and 5, detect the real number of
  "Windows Mouse" buttons and wheel. NOTE: non-DirectInput maximum
  number of supported buttons is 5 (Windows 2000/XP) or 3 (9x/ME)
- added default mapping of mouse buttons 4 and 5 to ALT+CURSOR LEFT
  and ALT+CURSOR RIGHT (back and forward)
- it is now possible to dragndrop disk image(s) directly to any drive's
  path-string box

Beta 10b:

- "automatic" jump back to fullscreen after ALT-TAB fixed, I think..
- changed TD_GETGEOMETRY slightly, use CHS-values from RDB if RDB
  is detected, only "invent" the values if RDB is not detected.
- paths-panel manual path editing fixed
- flash ram manual editing fixed

Beta 10: lots of small things..

- Action Replay 2 and 3 ROM first 4 byte tweak, dumping the ROM under
  UAE (pointless?) results now exactly the same dump as on real A500
- debugger tracing commands didn't work in ROM
- added automatic KS patcher that disables A4000T ROM's
  "NCR scsi.device" -> A4000T ROM is back and working. (A4000T NCR
  scsi.device expects correct scsi hardware -> no hardware -> confused
  driver -> infinite loop..) Maybe pointless too but...
- some A500<>A1000<>CDTV<>CD32 on the fly switching bugs fixed
- 68020/68EC020-KS check didn't work correctly if
  shapeshifter-patch was enabled, fixed
- fixed possible crash when ALT-TABing from filtered fullscreen mode
- crash when saving new config and no old config file has been selected
- fixed corrupt logical disk format when creating standard 3.5"HD ADF
  (this has been broken since the beginning..)
- added TD_GETGEOMETRY (very rarely needed) support to uaehf.device
- optimized stereo separation/mixing algorithm, fixed incorrect config
  file entry name ("sound_stereo_mixing" -> "sound_stereo_mixing_delay")
- added missing KS 37.299 ROM in A600-ROM scan check
- don't touch WinUAE version number in registry if it is newer than
  current
- Quickstart "Host Configuration"-checkbox didn't remember previously
  selected configuration.
- added some example host configurations (800x600 and 640x480
  fullscreen and one windowed). I plan to add these and maybe some
  other (suggestions?) host-configurations with release version.
  (it will be optional component in installer)
- added configuration link selector and probably confusing
  ignore-checkbox to config panel (ignore = don't load linked config,
  load instead host config from regular config file or from user-forced
  file in Host-panel)
- fullscreen mode always used no-taskbarbutton-mode. fixed.
- automatically default to ASPI if uaescsi.device is enabled and
  OS is Windows9x or if user has no admin privileges
- don't crash if DirectInput fails to initialize (Why does
  DirectInput8Create() fail with "unspecified error" when running
  WinUAE under different user using Windows XP "Run as..."-feature?)
- use SetPriorityClass() under 2000/XP instead of SetThreadPriority()
  (now Task Manager shows same priority settings as WinUAE GUI)

Beta 9:

- replaced "mixed stereo" with stereo separation adjustment and made
  mixed stereo delay buffer size adjustable, original mixed stereo
  buffer size was 5. (don't ask about mixed stereo delay buffer, I
  have no idea whats the point :) (Idea from xtc)
- quickstart-mode reset button fix
- CDTV Extended 2.7 is back, 2.3 renamed to 2.30
- A4000T KS 3.1 removed (apparantly it is not compatible with UAE)
- improved Kickstart CPU compatibility check
- added misc-checkbox for hiding Windows Taskbar-button
  (that was much easier said than done..)
- windowed mode DFx,Power,etc.. "leds" now support non-96DPI modes
- added more hardfile/harddisk error logging (non-blocksize aligned
  or out of bounds accesses)
- added mostly useless 1.8M BogoRAM selection (there were A500 2M
  expansions but 0.2M was lost "under" custom chip address space)
- included translation DLL for testing (but note that this won't be
  the final version)

Beta 8:

- added missing A500+ and A600 ROM scan messages
- model info, ROM scan messages are now translatable
- removed yellow "!" from message-dialogs
- possible fix for ancient "black bar at right border when
  centering is enabled and screen width is large enough"-bug
- remove floppies from disabled drives in quickstart-mode
- quickstart disk history was duplicated when selecting new image
  and image change caused configuration update.
- "config_hardware_path" and "config_host_path" config entries added
  They can be used to link two config files. I am not yet sure how to
  add GUI support for saving linked config files..
- replaced RDB filesystem relocator's 68020+ only instructions with
  68000-compatible instructions (oops..)
- added model info to Kickstart ROM information
- removed hack/beta KS 3.1 40.70 (0x917100a0, hack/beta) and CDTV
  Extended 2.7 (not confirmed), added A4000T KS 3.1 40.70 (0x75932c3a)
  (Kickstart info by Rodney Hester)

Beta 7:

- fixed beta 6 quickstart problems
- added A500Plus and A600-entries (A500P with KS 37.175 and A600 with
  37.350/37.300) and CDTV (with warning)
  Yes, I changed my mind again :)
- added very expanded example configuration to quickstart-page

Beta 6:

- better 68000 exception 3 (address error) return address
  calculation (fixes yet another copy protection)
- cycle-exact mode timing fixes (broke in 0826b1.. caused some
  (many?) copylock-protected images to fail, also Dynamic Hires images
  look much better now but it is not yet perfect.
- removed some unneeded code from ce-mode cpu
- removed compiler.c and compiler.h. No idea when this was last
  used (or maybe it was never really used?)
- added volume level value to sound panel
- keyboard led select boxes worked strangely, fixed
- more 68000 DIVU/DIVS undefined flags defined :)
- added more RDB parsing messages to log
- Overkill AGA graphics fix. WARNING: may cause graphics
  problem (shifted image) in other AGA games/demos.
  Keep your eyes open!
- don't check quickstart disk image bootable-status anymore after
  emulator has been started
- new (not yet released) caps library required
- force ROM rescan if WinUAE version info in registry is older
  than current version
- bootblock crc check added to quickstart insert-disk check
- german keyboard #-key hack fix (Bernd Roesch)
- disable chipset speed settings if 68000 and cycle-exact enabled
- quickstart and paths icons added (Jani Wilen)
- wider harddrive-dialogs
- added "enable RDB-mode"-button to hardfile dialog
  (it only clears sectors, surfaces and reserved-fields)
- dialog should really appear correctly in fullscreen mode
- added CRC32-tooltip to quickstart DF0-select box arrow.
  (why? bug reports without enough info to confirm used image..)


Beta 5:

- dragndrop didn't close filehandles (left files that were not
  possible to delete or rename until WinUAE was exited)
- save state key shortcuts fixed (broke in beta 2, I think)
- added tooltip support to every control in GUI (this is quite
  stupid: All dialog strings with "[]" in them is split to two pieces.
  Dialog string is replaced with leftmost piece and tooltip is added
  with rightmost piece. Stupid but this does not need any extra resources,
  is automatic and it is easy for translators)
- example tooltips added to keyboard A, B and C-checkboxes
- more tooltips to cpu, disk and chipset tab. Help needed, I am not going
  to write any more myself..
- configuration tooltip fixed
- replaced tooltips with balloon tooltips
- disk history weirdness fixed (randomly changing disks etc..)
- added message if "Add harddrive" does not detect any drives
- updated NT-based Windows' admin privilege-check
- removed ECS Denise-selection. OCS Agnus + ECS Denise was never used
  (probably does not even work on real Amigas)
- update last used config file name when saving config
- more common notifications/error messages can be translated
- added message that appears only once when saving to standard adf and
  saved track is not standard AmigaDOS format.

Beta 4:

- return back to GUI if Kickstart ROM is missing and Kickstart
  replacement fails (do we even need this anymore?)
- don't add nonexisting files to disk history
- added saveimage delete-button to disk-panel (only visible when there
  is saveimage present for selected image)
- added -diskswapper=image1.adf,image2.adf,...-command line parameter
- startup-zlib-dialog-crash fixed
- improved rom scanner, now Kickstart ROMs/keyfile are detected even
  if all roms are stored in single zip...
- stupid disk writing bug fixed, causes some crappy disk routines to
  save corrupted data, for example SWOS. (was introduced in 0.8.26)
- paraport direct parallel port support improved
  (busy signal was inverted, printing works now)
- mapped AmigaDOS H-flag to Windows hidden-flag. This leaves S-flag
  but there are no Windows flags left..
- moved "no uaefsdb"-checkbox to harddisk-panel
- added scaling support to all software filters
- testing tooltips in model selection area (texts by G. Chillemi and me)
  Good or bad idea?
- added OCS A500 0.5M+0.5M configuration on top of list. Apparantly
  OCS A500 is the most common Amiga 500 (except here in Finland or
  something)
  
Beta 3:

- hardware/host-settings should now really work..
- filter presets added
- "clear registry" really removes all new keys now
- changed default joystick to keyboard layout B
- set default sound filter to emulated
- filter presets (saves filter settings plus lores, doubling,
  correct aspect and centering settings from display page)
- added avioutput path to paths-page

Beta 2:

- added missing Cloanto KS 1.3 and 3.1 CRCs
- Reset-button was enabled when inserting disk even if
  emulator was not yet started
- less ROM-check messages
- disable serial options if no serial port selected
- removed A500+/A600-configs (not much use here)
- removed CDTV config (not much point until CDROM works)
- don't load quickstart-page's config when entering quickstart
  page for the first time if quickstart-mode is not enabled
- don't disable Start-button
- clear disk image paths when in quickstart mode (=don't load
  floppies from default.uae)
- added second drive, only enabled when RAM size is 1MB or
  larger.
- quickstart reset handling improved
- obsolete rom.key-GUI option removed
- hardware/host configurations save/load/delete fixed
- added simple JIT on/off switch (only sets cache to zero
  or max and it does not remember old value)

Beta 1:

I have been thinking of bumping version number to 1.0 in next
release. Emulation seems to be good enough, GUI looks ok
and now finally there is long-awaited "quickstart"-mode for
"normal" emulator users.

I really request comments about Quickstart-mode GUI. One or
two drives? Build-in configs are ok? ROM-messages are ok?

It is possible I have gone really too far this time..

- more support for small devices, debugger can be disabled
  by editing sysconfig.h
- dialogs don't appear behind the screen in fullscreen modes
- warn only once when saving state with harddisk(s) enabled
- chip ID-register (VPOSR upper byte) never reported ECS Agnus
  (broke in 0.8.26)
- TST.x Ax, TST.x (d16,PC), TST.x (d8,PC,Xn), CMP.x #x,(d16,PC)
  and CMP.x #x,(d8,PC,Xn) are 68020+ only. There are probably
  more to fix.. (some 68000/68010-instructions don't support
  all addressing modes)
- SMBFS, FAT95, AmigaNCP map Windows System-flag to AmigaDOS Pure-flag,
  so do it also in UAE filesystem emulation, also archive bit was
  inverted
- configuration file scanner didn't work correctly if directory
  was deeper than 1 level, fixed, also added limit to 3 levels
- added CRC32 ROM-detection (only common official ROMs supported)
- show selected ROM's name instead of filename in ROM-page if
  selected ROM is in CRC32-list
- all detected ROMs are added to ROM-filename selectbox
- statefile ROM CRC32 is used to select correct ROM when loading state
- ROM path is scanned when starting WinUAE for the first time,
  ROM path is changed or Rescan ROMs-button is clicked
- added Paths-page
- added QuickStart-page (for users that only want to run floppy based
  programs without need to know anything about configuration)
- rom.key-path is basically obsolete now, WinUAE automatically tries
  all possible locations for rom.key. (current dir, rom-path etc..)
  Any reasons for not removing the rom.key-path from GUI?
- switching from A1000/CD32/CDTV mode to normal-mode and back works
  now correctly
- changed default configuration to regular Amiga 500-config, also
  some other default config tweaks
- in quickstart-page inserted disk image's bootblock is checked
  - no bootblock/wrong checksum = don't accept image
  - OFS bootblock -> continue
  - FFS/FFS+INT bootblock -> autoselect KS2.04 config (if previous
    config was < KS 2.04)
  - FFS+DIRCACHE bootblock -> autoselect KS3.0 config (if previous
    config was < KS 3.0)
- "Clear registry"-button in paths-page can be used to remove
  all new WinUAE registry entries, for easier beta testing
- added hardware/host-specific configurations, autoload checkbox =
  automatically load selected hardware/host-only config after "regular"
  config

TODO:

- new icons

btw, is there are any problems using names like "Amiga" or "Kickstart"?

0.8.27

Beta 4: (final?)

- AVIOutput tweaks (enable-button is disabled until codec(s)
  are selected, don't clear selected codec(s) after recording
  is stopped, no more clicks in recorded sound while alt-tabbing
  and more)
- COPJMP-delay was 2 cycles too short, fixes 2000AD-intro
  (properly this time!) and Total Triple Trouble-intro's missing
  characters (sprites)
- debugger: added illegal access logger (any memory access to
  non-existing memory or "non-official" custom chip/cia address is
  logged) enable with "wd"-command, delete addresses with "wd x y"
  where x = start address y = length of range.
- A1000 boot rom works again (b1)
- some centering tweaks

Beta 3:

- don't exit if using 68020+ Kickstart ROM without 68020 CPU
- fixed rare null filter crash
- full collision setting fixed. Game called "Rotor" does
  require working CLXDAT collision bit 0 (="full collision")
  This is the first known program that needs full collision!
- 68000 CLR.L/NEG.L/NEGL.X/NOT.L data access order finally fixed
  (read first word, read second word, write second word, write
  first word) This is important because there are some demos
  that do CLR.L $DFF088..
- contents of zipped files in disk history-list had extra space
  in the beginning of filename. fixed. (b1)

Beta 2:

- added correct return value in 68000+more compatible/ce-mode when
  accessing CIA-address space without selecting any CIA (both
  CIA selection address bits 12 and 13 set) rtclock, buggy
  A1000 "Insider"-memory expansion's real-time clock setting
  utility program works now without crashing.
- state saves were saved in random point instead of at the
  beginning of vblank. (broke somewhere during 0.8.22 or so)
- debugger 'am'-command fixed
- removed disk swapper auto disk insert when loading config.
  It wasn't too good idea. (disk in swapper position 1, eject disk,
  save config and load config -> disk is back in df0..)
- vertical/horizontal centering fixed! (or at least it is much
  improved) Does not fix bar in right side of screen if using too
  large resolution
- MIDI does not require selected serial port anymore
- "exter_int_helper: unknown native action" is confirmed fixed
  (bug has been there since native2amiga.c was originally created..)
- re-added SPCFLAG_DOINT, JIT seems to have too weird timing to
  work without it in some cases.. Non-JIT modes still use new and
  more compatible method.
- fixed crash in CDTV-mode (broke in 0826B1)
- D3D and OpenGL mode fullscreen ALT-TAB fixed
- harddisk "bad blocksize" error (broke in b1)
- typing to disk image text boxes was ignored, fixed
- bug in kickstart loader fixed (b1, 256K ROMs only)

Beta 1:

- loading empty config/directory crashes (broke in beta 4)
- ports-page's joystick/mouse radiobuttons were not initialized
- added some source configuration options for low memory devices
- config file scanner ignored extension of files and scanned
  ALL files in configurations-directory, even binary files..
- GUI works with non-96 DPI font settings (arg, only bug was
  different font in "panel"-dialog than "page"-dialogs..) 
- removed "Highest" priority setting. It was mostly useless and
  slightly dangerous too.
- added check for too small hardfiles (zero or smaller than block
  size), also block size set to zero is not anymore allowed.
  (no more "tried to seek out of bounds! (FFFFFFFFFFFFC000 >= 0)"
  error message)
- JIT got confused and crashed if CPU setting was modified or
  JIT-enabled state file was loaded
- OpenGL fullscreen mode now uses DirectDraw to change screen's
  resolution instead of ChangeDisplayMode(). ALT-TAB works now
  properly.
- added missing semaphore-protection to native2amiga.c
  (fixes random "exter_int_helper: unknown native action xxx"
  errors and freezes when using for example uaescsi.device
  and hardfile(s) at the same time) NOT CONFIRMED YET
- interrupt delay in JIT mode reintroduced with much smaller
  and safe delay. (AB 3D II works again)
- new rtg.library, 20-30 times faster pixel read function in
  32-bit Picasso96 modes. Used in alphablending. (Bernd Roesch)
- fixed forever repeating "...because desktop is too small for
  the specified window size.."
- only add images inside zip to history if there are more than
  one image
- saving config: add ".uae"-extension to config file name if
  missing
- buffer overflow in drive click code fixed

0826

Beta 6:

- enter disk swapper for the first time, press up, first image
  disappears, fixed.
- ancient MIDI-IN freeze bug finally fixed
- module ripper's dialog boxes appeared "behind" WinUAE's screen
  in fullscreen modes
- disk image history list: move selected item to top of list
- move ripper to output-page (path etc.. improvements won't be
  implemented until 0.8.26 has been released)
- entering and exiting gui didn't restore 8-bit Picasso96-palette
  if opening GUI didn't force drop to desktop
- use GUI's real size (Windows XP styles can make it bigger than
  default) instead of hardcoded 640x480 when determining if GUI
  fits to current fullscreen mode
- more FDI2 updates
- added workaround to "turbo speed"-problem in non-ce modes
  (for example Battle Squadron cracktro by Freestyle)
- END+Fx-disk change shortcuts didn't add image to history list,
  fixed
- disabled interrupt delays in JIT-mode. That was not too good
  idea.. (crashed some programs)
- configuration "save as"-button used wrong path, fixed

Beta 5:

- "... Switching to full-screen display."-messages didn't work
  and crashed the emulator.. (oops)
- don't show paths in disk swapper-page
- disk swapper crash fixed (stupid bug, missing "break;" oops*2)
- loading config file copies inserted disk images in disk drives
  to disk swapper and also fills empty drives from disk swapper
  automatically.
- reload configuration file list after loading new config and
  emulation has already been started
- don't restart immediately if loading new config and show gui
  is not ticked and emulation has already been started
- fixed debugger memwatch point command's parsing of 'rw'
- cycle exact blitter/cpu-timing was broken since beta 1..
  (Robotics Life and others again..) I tried to store 0x100 to
  8-bit buffer.. (and oops^2)
- Pro Wizard module ripper included! (http://asle.free.fr/prowiz/)
  Supports over 50 packed tracker formats, automatically converts
  them back to standard Protracker format.
- enabling warp-mode (END+PAUSE) does not freeze the emulator in
  JIT-modes anymore
- moved multirevolution (= copy protections that use weak bits)
  code from common disk emulation to disk image-specific code
- improved FDI2 decoding (Vincent Joguin)

Beta 4:

- made debugger t and z -commands log all exceptions
- state save/restore added to input-tab
- dropped configuration file separation. maybe in next release,
  will need much more design time..
- FPU emulation bug fix. Fxxx.B #yy,FPz-style commands used wrong
  address (high byte instead of low byte) to fetch immediate value.
  It seems this has always been broken..
- configuration load/save page now remembers last selected config
  file
- m68k shift instructions timing improved in cycle-exact mode

Beta 3:

  NOTE: ignore the "Type"-select box in configuration page. It will
  change in next beta. Comments are not accepted :)

- caps bitcell timed track + saveimage crash fixed
- made GUI slightly smaller and improved child-dialog positioning
- updates systray icon if explorer restarts
- dropping config file to gui or window restarts emulation immediately
  if "Show GUI on startup"-checkbox in new config file is unchecked
- undocumented filesys_no_uaefsdb-config option added to GUI
  (prevents creation of new UAEFSDB-files which means all comments,
  protection flags not supported by host filesystem are lost, also it
  prevents creation of file names with "illegal" characters inside
  of emulation)
- "Knin Peaks" disk emulation fix broke software that set DSKLEN = 0
  (usually used by some copy protections) Fixed.
- store windowed GUI position in registry. GUI in fullscreen is
  always centered.
- JSR-instruction's prefetch fixed (protection code in original
  Datastorm)
- Windows XP styles supported
- 68000 exception processing stack pushes are now executed in
  exactly the same order as real 68000 does them (ce-mode only)
- D-channel only blit with ALWM or AFWM != 0xffff fixed
  (ce-mode only, Elfmania loading screen)
- caches configuration file list, reload only when saving
  or deleting.
- refresh rates in parenthesis don't anymore get reset to default
  (parenthesis = display driver does not support selected rate
  but it still may be available if some tweaking program is in use)
- added supported refresh rates to winuaebootlog.txt
- debugger breakpoints and memwatch points work now even if address
  register's high 8 bits contain crap and UAE is emulating 24-bit
  address space (copy protections..)
- implemented more correct interrupt delays and removed now obsolete
  SPCFLAG_DOINT, also (temporarily?) added experimental 68020+
  interrupt "fix" which may not be safe..
- POTGO fix (even "simple" io-port handling is complex in Amiga..)
  fixes for example The Band's Human Killing Machine trainer
- audio emulation tweaks. noise in Warhead and Hammerfist, 100 most
  remembered C64 tunes freeze and most importantly, without breaking
  Mission Elevator :)
- compressed state file Action Replay bug fix (but AR statefile
  support isn't too stable)
- added missing address error exception check in exception handler
  (and another copy protection works..)

Beta 2:

- full drag'n'drop support, config files/disk images/state files/roms
  supported.
- entering gui from smaller than 640x480 fullscreen mode fixed

Beta 1:

- GUI update! I am expecting lots of suggestions..
- Configuration Load/Save-page updated, directory support addded
- replaced floppy text box with select box, works as a combined disk
  image text box and history list (30 last used images, also
  automatically lists images inside zips) History list is stored in
  registry.
- added Disks-page for quick disk swapping (work in progress)
- systray icon and menu
- new icons (Jani Wilen)

- scsi logging improved and moved to non-host specific code
- AmiTradeCenter (ftp-client) bsdsocket emulation compatibility fix (SR)
- gethostname() CTRL-C-signal fix (SR)
- added debugger audio channel enable/disable command
  (am <channel mask>)
- Final (...) sprite-bitplane collision fix (Aunt Arctic Adventure)
- IRQ level 7 didn't wake CPU up from possible STOP-state
- END+PAUSE warp-mode sets frameskip temporarily to 10 (2-8x speedup)
  except in cycle-exact mode (ce-mode's timing needs zero frameskip)
- added Quit emulator -option to input source list
- MODE SENSE/SELECT 6<>10 translation bug fix, 4 last data bytes were
  replaced with random data (usually zeros) Was not noticed because
  most programs use larger buffer than required.
- cause bus error exception (and logs current CPU state) if program
  jumps to non-existing memory and CPU is 68020+. ("Your Amiga program
  just did something terribly stupid")
- added exception handler that tries to trap instruction opcode
  accesses. You see small dialog box explaining the situation. it
  will be removed in release version. This usually happens when memory
  gets corrupted and program flow "falls" off the end of memory bank.
  These two fixes should prevent most 68020 and/or JIT WinUAE crashes
  without any perfomance loss.
- CE-mode 68000 instruction tweaks here and there
  (I found out that you can use special blitter mode to "log" data bus..
  More fixes later)
- JIT is confirmed compatible with Windows XP SP2's data execution
  prevention (missed three smaller buffers in previous DEP fix)
- crash automatically creates minidump file to WinUAE's directory
  (winuae_yyyymmdd_hhmmss.dmp) Minidumps helps debugging the crash.
  Zip and send the file if I request it.
- RTS/RTD/RTE return address exception 3 fix
- Picasso96 WaitForVSync fixed, demo "Fake Electronic Lightshow" by
  Ephidrena is now usable in RTG-mode.
  Windowed mode = Virtual vsync. Uses frame rate from gui, default = 60
  Fullscreen = Virtual vsync. Uses fullscreen mode's refresh rate.
  Fullscreen + Vsync = real vsync.
  btw, before someone asks after checking the sources: update is
  "hidden" in filesys.asm..
- zipped statefiles and zipped dms files work again
- ancient 8-bit Picasso96-mode palette problem solved
- don't crash if emulated harddisk is removed while emulation is
  running
- disk emulation fix (Knin Peaks by Reality)
- cycle-exact single channel blit speed fix (very undocumented
  feature..)
  fixes slowdown in demos Revival and How 2 Skin a Cat.

0.8.25:

- even more improved AVIOutput. Added enable/disable button, entering GUI
  does not stop the recording anymore. Picasso96 modes supported.
  (config file support will be added in future version)
- cycle exact blitter B-channel handling fix (Arte)
- drivesound: don't play "snatch"-sound if drive is empty
- "2000AD"-fix removed, it isn't really right either, later...

Beta 3: (final?)

- added uaescsi.device logging, enable it with -scsilog command line parameter
- Windows XP multimouse really works now
- added uaescsi.device ATAPI INQUIRY and MODE SENSE/SELECT 6<>10 translation code,
  fixes IDE CDROM compatibility problems with PlayCD and probably others too.
  (thanks to Oliver Kastl) TEST THIS!
- added frame limit -checkbox to avioutput page. checked = disable frame limit
  and don't output sound, unchecked = frame limit enabled and sound output enabled.
  (maybe somebody wants to record and play the game at the same time..)

Beta 2:

- drive sound sample rate conversion code was total crap..
- calcdiw() vpos >= minfirstline-check re-commented, correct place is in decide_line()
  (corrupted some regular Workbench native screen modes)
- display/resolution enumeration code updates
- desktop size check corrected
- increased supported input devices from 4 to 6
- some small directinput cleanups
- bsdsocket emulation update. CNet's SMTPd works now. (Stephan Riedelbeck)
- don't use bitcell timing buffer when writing to disk..
- avioutput is now much faster (on some display cards it was already fast but
  on others it was very slow, about max 5fps..)
  Display data is fetched directly from UAE's internal buffer instead of using
  slow reading from display RAM if any display filter is enabled (except D3D or OGL)
  Also display size and depth config options were removed, now you get exactly
  the same display as you see. (I didn't want to add complex display depth
  conversion code when you can easily do the same by changing WinUAE's display
  settings..)

Beta 1:

- "Windows mouse" doubleclicking fixed
- drive sound volume was not saved to config file
- right border is not clipped anymore even if program uses max overscan. Finally..
  (Settlers, Pinball Illusions etc..) NOTE: screen position has changed a little.
- filter display buffer width increased to 736, old 708 was too small for max overscan.
  (noted here because it can also affect screen position slightly in filter-modes)
- fixed display corruption in programs that update DDFSTRT just when display
  starts. Fixes Mystic Tunes by Vertical, Bierkrug-tro by TEK, Forgotten Realms
  Slideshow '90 by Fraxion and probably much more..)
- "more compatible" now enables very basic prefetch emulation in non-JIT
  68010-68040 CPU models. (very rarely needed, I currently know only 2 programs)
- multimonitor code didn't ignore disabled displays, caused DX errors when
  WinUAE started.
- input code didn't check max number of detected devices, having more than 4
  mice, joysticks or keyboards in input tab crashed WinUAE.
- don't start bitplane dma until vpos >= minfirstline (comparison was commented
  out for some reason) Fixes old demo Back in bizness by 2000AD
- RTG-RAM start address was not saved to statefile, restoring it caused RTG
  RAM being mapped over chip RAM.. (not really problem because full Picasso96
  state is not supported yet)


0.8.24

Beta 3:

- drive sound was mixing (empty) sounds even if all drive sounds were disabled
- added "Windows mouse" to input-tab. It has exactly the same "feeling" as WinUAE's
  mouse before directinput-input code was implemented.
- fixed stupid debugger bug, remove breakpoint-command didn't check if breakpoint was already removed..
- "saveimages" were limited to "parent"-image's max number of tracks (for example writing
  to track 80 was ignored if parent image was standard 80 track (0-79) adf)
- lores-checkbox is back, it wasn't as useless as I originally thought..
- debugger 't'-command can now be used to step more than 1 instruction (t <number>)
- cycle-exact BLITPRI timing fix (Robotics Life, probably others too..)
- improved 68k MUL and DIV -instruction timing in ce-mode
- improved FDI 2.0 support

Beta 2:

- more debugger updates, search-command s <"string">/<hexvalues> [<addr]> [<length>]
  bl lists all stored "state recorder" states
- F12 now works even if all keyboard(s) are disabled in input-tab..
- added volume-slider to sound-tab, added volume up/down/mute shortcuts
  (end+numpad minus, end+numpad plus and mute = end+numpad star, also mapped to "multimedia" keys)
- hide single raw mouse, having two identical mice is too confusing I think.
- moved some hardcoded GUI-strings to resource
- power/led/etc led initialization fixed (editing the GUI before starting the emulation didn't
  update all necessary variables, editing on the fly worked fine)
- display frequency-setting affects now Picasso96-modes (no more default refresh rate)
- drive sound emulation :) (James Bagg, me)
  You can also use external samples if you put files called drive_click_xxx.wav,
  drive_spin_xxx.wav, drive_startup_xxx.wav and drive_snatch_xxx.wav (xxx = whatever you want,
  "click" is the only mandatory sample) to directory called <winuae path>\uae_data\ (better suggestions?)
- fullscreen multimonitor support
- better multimonitor compatibility (use correct display limits instead of primary display
  limits when positioning WinUAE's main window, non-primary screen overlay mode works etc..)
- "state recorder" is now mostly working. It takes automatic state saves every x seconds to its internal
  buffer (size is also configurable). "Rewind"-key can be configured in input-tab or also END+numpad /
  can be used. (This feature may not be in next official release)

Beta 1:

- don't ignore frame skip setting when capturing AVI
- implemented "memory state recorder" (don't ask about it yet..)
- bsdsocket updates from Stephan Riedelbeck
  fixes TCP device TCP:<port>, Apache and maybe other programs too.
- Windows XP multi-mouse support and DirectInput mouse-handling updates
  Windows XP-only: Input-tab now lists regular DirectInput-mouse and
  one or more "raw" mouse.
  Windows 9x/ME: only USB-mice can be handled separately, PS/2 mouse is always
  only connected to "supermouse" (DirectInput system default mouse that combines all
  separate mouse events, marked with '*' in input-tab)
  -> two USB mice are required for two mouse games under 9x/ME
  and finally, Windows 2000 does not have any support for multiple mice,
  all you get is single "supermouse".
  Big note: currently you need to disable default-mouse first if you want any
  events from non-default mouse.
- fixed JIT default settings without loading any configuration
  (log was filling with JIT error messages..)
- cleaned up Kickstart ROM loader part of memory.c
- saving compressed state file without zlib1.dll didn't correctly fall back to non-compressed mode
  (created corrupted statefiles with completely empty memory chunks..)
- crash after 4th or 5th state save finally fixed (very embarrassing mistake..)
- fixed crash when Picasso96 was enabled and graphics filter GUI was accessed
- FDI 2.0 support (not complete yet)
- lots of debugger improvements (much more useful now..)
 - f-command extended:
    f without parameters = break when PC not in ROM and current instruction is not
    0x4ef9 (don't break when executing library jump tables) Great for finding start
    address of bootblock.
    f i = break when PC points to RTS/RTR/RTE-instruction
    f i <opcode> = break when PC points to instruction opcode <opcode>
    f <addr> = add/remove new breakpoint (max 8)
    fd = remove all breakpoints
    f <addr1> <addr2> = break when <addr1> <= PC <= <addr2>
 - W-command's value-parameter can be decimal 12345 or hexadecimal (0x12345 or $12345)
    write size is byte if val < 256, word if 255 > val < 65536 and long if val > 65535.
    (previous version's write size was always long and was limited to chip ram)
 - memwatch break points added, w <0-3> <address> <length> <r/w/rw> [<value>]
    break when address space between address and address + length is accessed and
    if accessed value = <value> R = break only on reads, W = writes, RW = both
 - i-command: interrups and traps combined, VBR supported
 - custom register dump -command added (e), dumps the contents of all existing registers
   between 0xdff000-0xdf1ff.
 - CIA dump-output slightly modified, added TOD stopped status-flag
 - exiting debugger automatically creates "memory state" and b-command can be used
   to "rewind" (again, don't ask and don't try yet..)

0823

- small AUDxDAT fix (The Pawn's music was broken again..)

Beta 4:

- sprite emulation fix, broke in b1 (Hybris bullets/score)
- JIT cache is now allocated with PAGE_EXECUTE-flag (=JIT compiled code is allowed to run)
  Future Windows versions may not enable PAGE_EXECUTE by default due to security reasons.
- merged first source patch from Richard Drummond (http://www.rcdrummond.net/uae/)
- "figure_pixel_formats" possible infinite loop fixed
- zip/gzip support requires now new zlib1.dll instead of old zlib.dll
- forced blitter finish when saving state didn't work correctly in ce-mode (yeah, again..)
  (could cause infinite loop and freeze when saving)

Beta 3:

- non-ce blitter speed was wrong (broke in b1)
- MAPROM-emulation checkbox fixed and moved to ROM-tab
- problems with keyboard leds and priorities fixed
- slightly changed filter GUI (support for future 3x/4x filters)
- increased the range of filter size/position adjustments
- fixed bug that causes randomly lost characters received from serial port
- delay simultaneous disk inserts
- more commands (pause, turbo, irq7 etc..) added to input-tab
- scale is halved when in D3D/OGL-mode and resolution is smaller than 450*350
- clock sync option removed from GUI (causes too many problems)
- screenshot system freeze fixed (Windows9x/ME only)

Beta 2:

- don't complain about AGA requiring 16 bit if selected screen mode is 8-bit Picasso96-mode
- blitter emulation updates for very buggy programs that starts blitter before updating
  BLTCON0 and BLTCON1.. (old Psygnosis games) Was partially broken in R9. This fix was already
  included in B1 but I forgot to add changelog entry.
- fixed bug in blitter update that broke textured line mode
- uaescsi.device unit numbers always start from 0 (0 = first CDROM, 1 = possible second
  and finally other SCSI devices if available) Unit 0 is reserved for CDROM, first available
  unit number will be 1 if PC has no CDROM(s) but other supported SCSI devices.
  This makes CD filesystem installation more user friendlier.
- AHI emulation improvements (Bernd Roesch)
- state saving happens immediately after selecting state file name (woohoo..)
- complain if HD emulation is enabled when saving state
- added some unused keycodes to input-tab
- forced blitter finish when saving state didn't work correctly in ce-mode
  resulting in slightly corrupted state files.
- fixed very stupid mistake in CIA parallel port read routine, fixes parallel port
  joystick adapter, was broken in r8b4.
- Picasso96 faster solid window moving (Bernd Roesch)
- bcc.b was 2 cycles too fast in ce-mode (probably does not fix anything..)
- SPTI-CDROM didn't use shared mode, fixes media change detection problems
- added MAPROM-like feature (jumper on Blizzard's accelerator cards that map Kickstart
  ROM space to RAM) Enable-checkbox in misc-tab, uaelib function 80 returns mapped memory area.
  (0 = no support, 0xffffffff = not enabled, other = mapped RAM address, currently hardcoded
  to 0xe00000) Thanks to BlizKick's author for adding support

Beta 1:

- cpu usage meter implemented, results may be surprising...
  (note that in "fastest possible" it always shows 100%+ except when
  idle-mode is enabled and cpu is executing STOP-instruction)
- more undocumented features found, switching bitplane DMA on during DDF can have
  (at least) 3 different results:
  1: OCS only: nothing happens, bitplane fetches don't restart until next line
  (only this condition was emulated in older versions)
  2: ECS/AGA: fetches start normally if DMA was disabled outside of DDF or during
  current line (Sixth Sense Investigation's buggy copper list requires this..)
  3: ECS/AGA: display processing goes to "DDFSTOP passed"-condition immediately
  if DMA was disabled inside of DDF during any previous line
- add missing ".avi" automatically to avioutput filename
- overlay state was not reset when changing display modes, caused
  "The selected screen mode can't be <blahblah>"-message and forced
  unnecessary fullscreen mode.
- Page Up-key is available for user configuration if Action Replay is not enabled
- AWeb/IBrowse bsdsocket.library possible connection freeze/slowdown fix
  (Stephan Riedelbeck)
- switching from 68000 to 68020+ JIT-mode works and also fixed crash if switching
  from 68000+CE-mode to JIT-mode
- added hack that syncs CIA-TOD to host system's time. No need to run restoretime
  hack anymore. Checkbox in misc-tab. (hack = may cause compatibility problems)
- misc-tab split. Priority options moved to "Priority"-tab, added separate priority
  setting for active, inactive and minimized WinUAE.
- don't zero LOF-bit when executing customreset(), fixes original Shinobi
- bsdsocket SBTC_SIGIOMASK support, fixes Jabberwocky. Thread priority updates.
  (Stephan Riedelbeck)
- enforcer-style debugging improved (Bernd Roesch, Sebastian Bauer)
- restoring state didn't update floppy drive type correctly, fixed
- sometimes Amiga left mouse button got stuck when WinUAE lost focus, fixed

R9:

Beta 4:

- fullscreen height was incorrectly initialized when loading "old" config files
- avioutput width and height are correctly initialized
- null filter centering fixed (null is 1x, not 2x..)
- moving GUI over fullscreen software filter mode didn't refresh screen
- it is now possible to disable creation of UAEFSDB-files by adding
  unofficial config entry "filesys_no_fsdb=true" to config file
- automatic AVIOutput AVI split before file size goes over 2G
- GUI disappearing "behind" the screen in fullscreen mode fixed
- fixed "bug" (removed one consistency check..) in unzip code, some zip files
  didn't uncompress. Either unzip code I use is buggy or zip file is slightly
  broken (but winzip nor winrar didn't complain)
- AVIOutput sound and video sync problems fixed
- don't stop AVIOuput recording when entering END+Fx-disk change dialog
- "AGA 16-bit"-message box was incorrectly shown in windowed mode
- "saveimage"-floppy write support was again broken.. (it was possible to make
  zipped files write-enabled but writing to "saveimage" was still ignored..)

Beta 3:

- software filters fixed in windowed non-overlay mode
  Only Scale2X and Null support 32-bit, filter defaults to null if unsupported
  filter is selected. (wrong filter is better than black screen..)
- crash with sound disabled fixed
- another bsdsocket connection fix
- separated width and height for fullscreen and windowed modes
- hide lores-checkbox, lores is now automatically enabled if doubling is disabled
  (But maybe there was/is reason for separate horizontal and vertical doubling?)
- removed lots of compilation warnings
- replaced IOCTL_GET_GEOMETRY with more compatible IOCTL_CDROM_GET_GEOMETRY,
  properly fixes Windows 2000 CD32 CD detection.
- disable "Add Harddrive"-button if Windows is not NT-based

Beta 2:

- immediate blitter works again
- return 0xffffffff again when CPU >= 68020 and reading non-existing memory
- uncompressed RAM dump added to state save dialog
- loading config that mounts floppy drive don't anymore cause
  "no disk in drive A:"-dialog
- bsdsocket.library updates (Stephan Riedelbeck)
  - accept(socket, 0, 0) works, fixes IRCD
  - gethostbyname (Windows 9x only) could freeze for couple of seconds
  - reset socket error after gethostbyname, fixes AmyGate
  - connection failures on some systems
- scale2x, supereagle, 2xsai and super2xsai 2x filters integrated
  (all except scale2x borrowed from ScummVM project)
  filter configuration changed again, null filter added (=filter that
  does nothing but allows vertical and horizontal position adjustment)
  Currently only supports 16-bit modes (automatically forces 16-bit)
- added message and force 16-bit if 8-bit and AGA is enabled
- SPTI CDROM eject/insert media detection fix
- it seems IOCTL_DISK_GET_DRIVE_GEOMETRY is only supported on Windows XP,
  added workaround that fixes CD32 emulation in non-ASPI mode on Windows 2000

Beta 1:

- fixed (I hope) compiler optimization bug, at least ROXL.W didn't set N-flag correctly
  maybe other rarely used instructions also had problems
  (broke CAPS Rick Dangerous 2 protection code)
- NTSC-mode vsync sound fixed
- don't crash in CD32 mode if both ASPI and SPTI are not available
- added CAPS-support (and CE-support) to mini-version due to popular request.
  I hope this does not cause any unnecessary slowdown. Executable is now
  2x bigger because of included "more compatible" and "ce"-cpu emulators.
- implemented 100% (I think..) exact blitter block-mode cycle diagram in ce-mode
  (minus possible bugs..) All tested "100+ bob" -routines work now without flashing.
  line mode cycle diagram is still not completely known.
- small ASPI CDROM media detection code change (may or may not help..)
- simplify audio emulation if 68020 or better selected. New code is "too" correct
  and causes timing problems if custom register/chip ram access is really too fast
  (fixes TBL's Tint-demo's music)
- sound calibration-button (may not be in final release)
- ticking/unticking 68000 "more compatible" checkbox on the fly now reconfigures the cpu
  emulator correctly, emulated program should not crash anymore.
- replaced "run at higher priority" with priority selection select box
- don't write obsolete config entries from old config file when saving
- D3D AVI capture works again (D3D AVI support code was mysteriously disappeared..)
- more audio changes again, old "Mission Elevator"-fix still wasn't correct enough
  (broke some music players) Audio state machine transitions from 1 to 5 seem to have
  unexplained delay(s). I think ME is the only game that requires this (and only because
  of stupid bug in ME's sound effect code..)
- SPTI CDROM media detection fixed (never noticed it because enabling debug-logging
  "fixed" the bug..)
- SPTI/ASPI CDROM possible crash fixed (both CD ROM fixes needed before I managed
  to install OS 3.9 without problems)

- R8

Beta 6:

- blitter always used exclusive fill mode, caused single pixel gap between
  filled polygons if program used inclusive mode (for example The Pink Circle by Arcane)
  I broke it accidentally some releases ago, I think...
- optimized Picasso96 blitter emulation (Bernd Roesch)
- always compress "quick" state files
- startup config file description scan crash fixed (needed more than 100 or so config files..)
- size of display resolution table was too small
- mapped "AppMenu"-key to right Amiga key

Beta 5:

- display width is now forced divisible by 8 when adjusting width on the fly
- miniwinuae and regular winuae display mode list is now sorted identically
- cpu speed calculation overflowed if cpu frequency was >~2.8GHz (latest P4 CPUs)
  caused huge slowdown
- JIT CPU nop's removed
- clear execbase when reseting if memory size (any memory) was adjusted
- don't mount non-existing virtual directories (prevents red screen reset loop)
- updated AHI support (Bernd Roesch)
- F6-state shortcut removed, replaced with END + <numeric keypad number> (restore)
  and CTRL or SHIFT + END + <numeric keypad number> (save)
  zero or period = currently selected statefile (includes period because my keyboard
  ignores simultaneous CTRL/SHIFT + END + 0..)
  1 - 9 = currently selected statefile + "_" + <number> added to end of file but
  before extension.
- force full screen update after loading state file
- disable beta 4's "Fighting Soccer fix" if CPU >= 68020. I think there are too
  many bad sound routines that fail with "too" fast CPU or custom chipset access speed.
- fixed (I hope..) rare filesys crash when rebooting (introduced in beta 2)

Beta 4:

- wav-output created slightly incorrect wave files and frequency was not updated correctly
- GUI CPU JIT-page update, enable JIT checkboxes only if "Force Settings"-checkbox is ticked
- AR2/3 ROM bank size fixed
- CD32 audio CD play/stop/pause commands changed slightly, may fix some ASPI problems
- Picasso96 windowed<>fullscreen switch and reseting while in Picasso96 mode fixed
  (broken in beta 2)
- audio emulation fix, AUDxLEN is copied to backup register when DMA is enabled but
  AUDxPT when first DMA fetch happens. (fixes "Fighting Soccer" referee speech)
- D3D/OpenGL automatic doubling if selected resolution is "too large"
- free old harddrives before loading new config
- CIA-A TOD rate was about 11% too fast (broke in R7B1)

Beta 3:

- joystick keyboard layout B and C 2nd firebutton mapping
  (Right and left shift) was wrong and caused crashes.
- CD32 media change detection works properly (again..)
- bsdsocket.library emulation works again (stupid merge error by me..)
- prevent badly crashing programs setting very crazy vblank frequencies
- pause CD32 cd audio when GUI is active
- decreased the rate of HD-led flickering because there are keyboards that
  are really slow in changing led state
- fixed 57600 to 56000 serial bitrate rounding

Beta 2:

- fixed extended ADF HD floppy support
- DirectX version check fixed, only D3D support requires DX9
- selected 3D-mode was not saved correctly to config file, fixed
- About-tab is back.. (broken in B1)
- call fixup_prefs_dimensions() after loading config
- POTGO/POTGOR emulation improved, more compatible CD32 pad emulation
- Picasso96 display mode id strings fixed (broken in B1)
- SCSI emulation was accidentally disabled in B1
- added Direct3D screenshot support
- removed Output-tab from mini-version
- compiler updated to Visual Studio Net 2003
- "intelligent" CD detection in CD32 mode
- lores, correct aspect and linedoubling can be changed on the fly
- added wav-sound output support to Output-tab (select "*.wav" from "Save As Type:"-select box)
- virtual directory harddisk mapped to read-only directory (for example network share)
  is forced read-only
- it is (finally?) possible to return back to GUI and/or load new configuration.
  "Load" and "Load from"-buttons are now always enabled, new "Exit"-button can be
  used to return back to GUI (with old configuration intact)
  WARNING: expect bugs and memory leaks..
- bsdsocket.library emulation updates (Stephan Riedelbeck)
- changed mini-version's default config to basic A500


Beta 1:

- source tree is now  more configurable. sysconfig.h contains defines that can be used
  to enable or disable emulation features like JIT, AGA, autoconfig, harddisks, drop
  all CPU features except 68000 etc..
  I hope this helps porting (Win)UAE to slower devices like some PDAs etc..
- win32_displaymode and PicassoResolution -structures merged
- DirectDraw fullscreen mode flags fix (Sane)
- added workaround for buggy sound drivers (ISA SB16, maybe others) that return zero as
  minimum and maximum allowed sample rate...
- fast copper was always disabled. oops..
- another "last_custom_value" tweak, fixes Sonic - Irrepressible intro in ECS-mode
- non-DMA audio mode properly emulated, fixes Mortville Manor's and Maupiti Island's speech
- ext2-adfs' write-protection check fixed
- Direct3D filtering and scaling implemented. Should be faster because D3D allows
  direct rendering to texture's memory space. Note, DX9 required due to stupid MS
  decision: opening child windows (F12-GUI etc..) while in D3D fullscreen mode is not
  supported by DX8 API (Window simply disappears "behind" the screen..)
  Unfortunately I get weird smearing effect when moving the GUI window (display driver bug?)
- display resolution and depth can be changed on the fly
- D3D/OpenGL mode image adjustments changed, size sliders at 0/0 = 1:1 display ratio
- joypad problems fixed, bug affected some pads that have "point-of-view hat"-style
  direction controller
- fixed rare filesystem crash when copying files to directory in virtual harddisk's root
- END+F6 = load from last selected state file, SHIFT+END+F6 = save to last selected state file
- game Barney and Freddy Mouse by Kingsoft needs CLXDAT bit 15 set ("not used" says HRM but
  always set on my A500 and A1200)
- exiting GUI with Cancel or ESC cancels state save/restore request
- Freespace demo JIT FPU bug fix (Bernd Roesch)
- FPU rounding bug fix (Bernd Roesch)
- fast copper state saved to config file (I don't see any other way to fix graphics bugs on
  some games that fast copper causes)
- CD32 joypad emulation works again (oops, has been broken quite a long time..),
  default CD32 keyboard joypad mapping fixed, default joypad config added


R7 (30.05.2003)

Beta 5:

- zipped ipf-image support (new CAPS plugin required). No official multidisk support yet.
  (unofficially you can add "/<name of file>" or "\<name of file>" to the end of path,
  for example "c:\caps\PinballFantasies.zip\PinballFantasies_CourseDisk1.ipf")
  new CAPS plugin only for beta testers included.
- "KickShifter" ROM checksum recalculation was wrong, fixes red screen with some Kickstart versions
- bsdsocket Windows 2000/XP AmTelnet SSH freeze fixed (Stephen Riedelbeck)
- new AHI driver, fix for wrong maxsamplesize, includes separate patch for DigiBooster Pro 
  slowdown (Bernd Roesch)

Beta 4:

- "SWIV-fix" wasn't working if lores-mode was ticked, fixed
- "sprites outside playfield"-fix is now working in lores mode, also fixes black bar that appeared
  when running programs that use hires or shres mode, BRDSPRT was enabled and mouse pointer was
  moved near right border
- fixed broken "ShapeShifter" Kickstart patch code, replaced with generic patcher
  (KS 3.0+ use separate code path for 68040+ which was not patched and KS 2.04 patch was just wrong)
- "fake RDB" filesystem updates, multiple non-RDB custom filesystems works now properly
- GUI filesystem selection crash bug fixed
- beta 3 keyboard input update wasn't complete (loading new config was using old incompatible code)
- selected sound sample rate wasn't updated correctly if sound driver didn't support selected rate
- rewritten and cleaned display refresh rate selection code
- more weird undocumented blitter line mode features emulated:
  - after first pixel, C-channel's address is copied to D-channel.
    (first pixel is written to address pointed by D-channel, all following pixels are written to
    C-channel's address) Fixes Frantic's Cardamom and Cardamon demos.
  - BLTAPT stays unchanged if A channel is disabled. I found this useless feature when running
    tests on my A1200, probably never really used..
- "collision detection does NOT change when you select either single- or dual-playfield mode"
  says HRM. BZZZT, WRONG! Sprite to playfield collision detection should be correct (?) now.
  Fixes Inferior and Sub Rally (I call it "Suck Rally" for obvious reasons..)
- sprite DMA start raster line in NTSC mode fixed. This was surprising, first visible line in
  PAL is 28, NTSC 27. But first possible PAL sprite DMA position is 25, NTSC start is line 20.
  I was expecting smaller difference. Tested on my PAL A1200 in NTSC-mode.

Beta 3:

- horiz centering bug fixed (could cause crashes)
- trace-mode fix. fixes CAPS Defenders of Earth trace-vector-decoder protection routine.
- POTGOR emulation fixed (Sound of Silents -music disk ugly right mouse button test code..
  here is snippet: cmp.w #$0100,$dff016; bne right_button_not_pushed; ...)
- sectors, surfaces and reserved are automatically zeroed if selected hardfile contains RDB
- multiple keyboards supported, config save crash/non-working keyboard fixed when MS SideWinder
  Virtual Keyboard driver is installed.
- MOVEC-instruction fix, register 3 is 68040 only, it is not supported by 68020 (ancient bug, fixes
  Aladdin AGA and Banshee AGA in 68020 mode. CPU detection code detected MMU due to bug..)
- SWIV scoreboard graphics bug fixed (was caused by very weird undocumented OCS/ECS-only hardware feature)
- input point-of-view hat controller support
- small audio hardware reset fix

Beta 2:

- 68020+ instruction bcc.l was broken in 68000/68010 mode when cycle-exact mode was implemented
  (is really useless version of bcc.b when run under 68000/68010), fixes Paradox cracked Nitro
- harddisk partition detection updates. It seems Windows sometimes lies about drive's partition table
  (drive really only contains RDB partitions but Windows still thinks there are some empty
  MBR partitions..)
- improved Action Replay state file support
- new misc-page layout, added "Run at higher priority"-checkbox to misc page (sets process priority to higher
  than normal when WinUAE is active, helps skips and jumps caused by background processes)
- sound frequency GUI updated, allowed frequency range is now from 8000 to 48000 (max 96000 if sound card supports it)
- some experimental and buggy copper code from beta 1 removed..
- audio filter emulation (formula from
  http://groups.google.com/groups?q=g:thl3970091855d&dq=&hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=5sntr1%243ki%241%40nef.ens.fr)
- button/key mapped to mouse direction wasn't working correctly, fixed
- another bsdsocket fix (Stephen Riedelbeck)

Beta 1

- audio emulation fixes (fixes Mission Elevator again, this time proper fix)
- removed obsolete code (I think so..) when bitplane count during the raster line was
  decreased (single line of crap between playing area and scoreboard on Mission Elevator)
- Rainbow Island works again (broke in beta 4)
- serial port settings can be changed on the fly
- changing printer on the fly works
- printer didn't work if also serial port was enabled
- added serial port "direct"-checkbox, forces 115200 bit rate, lowers latency,
  needed by some serial linked games (Lotus 2) when connecting two PCs running WinUAE
- partial Action Replay state file support
- bsd socketfix for Ping Traceroute UDP Ping (Stephan Riedelbeck) 
  If you can test diropus Magellan with FTP Lister so please test,if this work as before.
  Try to connect to de.aminet.net dir aminet/new with anon on
  If you get no error 22 report from diropus for 5 trys all work ok 
- replaced uae_int with level 2 interrupt (was level 6), fixes buggy HD installable
  demos/games that disable level 6 interrupt. Using level 2 is more compatible
  because A1200/A4000 IDE-controller and A590/A2091 use level 2 interrupt.
  Also fixed bug that added uae_int handler twice. Set priority of interrupt to 20 (A1200 IDE uses it)
  Fixes game Old Timer and demo Captured Dreams by The Black Lotus (and probably much more..)
- CIA OVL-bit is ignored in AGA Amigas
- proper emulation of POTxDAT counters, analog joystick support in input-tab
- blitter in linedraw mode is weird, D-channel can be disabled without any effect on drawn line, enabling
  C-channel is enough. (undocumented feature, fixes Great Fun #16 packdisk)
- added hack that fixes buggy demos that read accidentally from write-only or non-existing custom
  registers and expect sane return values. Fixes Captured Dreams, Industrial Fudge, Codetrash.
- changed sprite-attach handling, even sprite attach-bit must not be ignored because setting it
  does something interesting.. and thats another undocumented feature, fixes Elfmania scoreboard
- DDFSTOP >= 0xe4 effect DOES NOT happen on OCS chipset, only on ECS and AGA... (fixes Sargon History -megademo)
- copper WAIT-wakeup state may not need free cycle, fixes Full Contact but I am not sure if this is correct fix..
- palette wasn't updated properly when entering and exiting the gui in fullscreen 8-bit Picasso96 mode
- new application icon (Michael Battilana)


R6 (19.04.2003)

Beta 6 (final?)

- disabling fast ram (or any expansion ram) and reseting the Amiga doesn't crash anymore
- do not reset when selected CPU is 68000 + compatible or cycle-exact and when program counter
  goes to no man's land (fixes demo Purple by Warfalcons, uses very bad and tricky protection..)
- right CTRL can be used to reset Amiga (RCTRL + INSERT + HOME or RCTRL + Windows keys)
- 68020+ word moves from non-word aligned custom registers fixed (for example move.w $dff005,d0 uuargh..)
  (fixes 4k AGA intro, Fuck the Pc! by Anorganic/Promise!) 
- DDFSTOP >= 0xe4 effect also happens on OCS and ECS chipsets, don't know why I missed that..
  (fixes Wind It Up Megamix 93)
- added DirectX 8 test
- full DIWHIGH save/restore support added
- OCS Agnus ignores DDFSTRT/DDFSTOP bit 1, this fixes Eliminator/Double Dragon 2 properly
  without stupid hacks. (Yes, both games are OCS only, tested on OCS and ECS A500 and A1000)
- default chipset changed to ECS Agnus and selecting >0.5M chip ram automatically enables ECS Agnus
  more compatible and less (hopefully..) complaints about programs that suddenly fail under OCS chipset..

Beta 5

- fixed stupid ASPI bug (bug introduced in B4)
- fixed ce-mode blitter freeze in Picasso96 modes
- fixed crash in Picasso96 mode if OpenGL was enabled (I think so, it didn't crash here..)
- pause-mode (END+PAUSE) fixed (bug introduced in B4)
- simplified and improved disk wordsync and indexsync emulation (fixes Quadlite's "El Egg Tronic Quarts" -slideshow)
- CIA-A LED and OVL bit fix (wasn't proper enough last time..)
- input-tab disable-checkbox implemented, unticked = selected input device is disabled completely
- added Amiga joystick port swap button to input-tab and other input fixes
- AGA dualplayfield color fix, this confirms that BPLCON4 is used normally in DPF mode
  (fixes Tube Warriors bottom of screen, one wrong colored horizontal line still remains)
- 9-bit mode serial port hack implemented. PC hardware don't support 9-bit mode (1 start, 9 data and 1 stop bits)
  but this hack transparently doubles the baud rate and sends/receives two characters when using 9-bit mode.
  Only works if two PCs running WinUAE are connected, PC - Amiga connection naturally can't work.
  Serial linked games should now work (Stunt Car Racer and Lotus 2 tested and confirmed working)
- added support for weird AGA only -feature, if DDFSTOP is >= 0xe4 (= can't be never reached), display DMA
  always starts at 0x18 (DDFSTRT is ignored). This also confirms that position 0x18 is first possible bitplane
  DMA slot. (fixes CCCP-demo and Hellfire cractro graphics garbage)
- ECS/AGA SPRxCTL bits 5 and 6 emulated (vertical start and stop bit 9) (fixes The Dark Demon - Burning Spears demo)
- chipset type can be changed on the fly

Beta 4

- blitter slowdown code fix
- CD32 pad buttons work properly again
- CPU idle checkbox replaced with a slider (was already in B3 but forgot to include changelog entry)
  note that slider works now differently than in B3:
  Slider fully left = disabled, every step to right increases the number of idle-calls. Quick way to find
  good position: boot to WB, move slider right step by step until FPS drops below 50fps then move the
  slider back left two steps. (setting depends on host CPU speed, there is no good default value, yet)
- CPU idle is always disabled in A500-speed mode (only caused trouble)
- increased the size of DirectInput buffers, no more lost input events when moving mouse very quickly
  and/or using high mouse refreshrates.
- copper SKIP-instruction fix (fixes TEK's Rampage -demo partially, later part still crashes)
- uncompressed statefiles can be created by selecting "uncompressed" from "save as type"-select box
- CIA TOD fix (ALRM-interrupt is disabled when TOD is stopped, fixes Entity, which by the way has
  very buggy level 2 interrupt handler..)
- fixed bsdsocket bug that caused hangups when transferring ftp data with diropus (Stephan Riedelbeck)

Beta 3

- AGA BRDBLANK-bit partially supported. Fixes Aladdin AGA. NOTE: running utilities
  that toggle BRDBLANK-bit doesn't update top and bottom border correctly yet.
- better (?) Pentium 4 JIT fixes merged from latest BasiliskII JIT (Bernd Roesch)
- added PAL and NTSC -strings to 50/100 and 60/120 vsync frequencies
- random sound popping fixed (workaround was to enter and exit the GUI)
- fixed freezing if RDTSC's contents suddenly jumped very far, this usually happens
  when returning from hibernate-mode or waiting for a long time in GUI before returning.
  (Bernd Roesch & me)
- more display updates, fixes Wild Streets (and hopefully doesn't break anything..)
- fixed bug in CDTV battery backed RAM emulation (newer CDTV extended ROMs don't freeze anymore)
- turbo-floppy mode supports writing (earlier versions only "turboed" reading)
- fixed writing to multiple floppies simultaneously
  (for example SuperDuper with multiple destination drives selected)
- proper CIA OVL bit emulation (fixes very tricky CAPS Double Dragon 2 protection code)

Beta 2

- more audio tweaks, Liverpool works again
- implemented Picasso96 RAM state file support, added "hooks" for saving/restoring full state
- ADKCON UARTBRK-bit really works now (was commented out in beta 1)
- display emulation update, fixes Eliminator and Double Dragon 2 graphics corruption.
- major disk emulation bug fixed, could cause frozen write operation and disk corruption..
- compressed statefile support. Statefile's RAM contents are automatically compressed when saving.
  also added support for loading (g)zipped statefiles.
- GPF bug fixed when program counter was pointing to random address in 32-bit space in 24-bit mode
  Fixes "more compatible"-mode only, non-compatible still crashes (not easy to fix without
  performance problems or big changes), ce-mode already worked without crashing.
- fixed bug in saveimage-support, compressed disk images can now be write-enabled.
- implemented very simple code that approximates the number of cycles that bitplane DMA steals from the blitter.
  Now it is possible to run some games/demos without graphics glitches in non-cycle exact mode
  (for example PP Hammer and Spindizzy Worlds)
- screenshots are saved to <winuae directory>\ScreenShots -directory
- more CIA serial port emulation updates
- fixed crash when creating empty CD32 NVRAM image file

Beta 1

- input configuration autofire settings weren't saved properly
- Terrorpods background graphics fixed
  (Game writes to BLTCON1, BLTAFWM and BLTALWM after writing to BLTSIZE..)
- disable Windows screensaver when WinUAE is active and GUI is not visible
- disable middle mouse button events when "Middle Mouse-Button -> ALT-TAB" is enabled.
  (caused stuck middle mouse button because release event never arrived..)
- fixed crash when zlib.dll was missing and (g)zipped image was selected
- changing floppy image and clicking "Reset Amiga"-button booted from old image
- added hackish support for AGA only feature that allows sprites outside display window,
  fixes Banshee AGA scoreboard and AB3D background graphics, will cause small (?)
  performance loss only when program uses this feature.
- fixed ancient blitter bug, writing to address 0 was ignored. Fixes CAPS Guy Spy and Dragon's Lair.
- small "delayoffset" fix, fixes Skeleton Krew's jumpy scrolling
- floppies-tab floppy drive type/disable/enabled state select boxes didn't update internal state correctly
- DSKREADY-signal fix. DSKREADY is only low when motor is running full speed and disk is in drive.
  (confirmed with my real A1200 and 2 external drives, drive always turns motor off if floppy is ejected)
  Pango (and probably others too) use this signal to detect disk changes..
- another audio bug fix, caused missing samples/noise with some music players
- partially rewritten serial code, emulated Amiga's DTR,RTS,CD,CTS and DSR lines are
  directly "connected" to PC serial port pins, ADKCON UARTBRK-bit supported, SERDATR status bits
  and serial interrupts are (nearly) properly timed. Configurable hardware CTS/RTS handshaking.
  Of course PC hardware have some limitations: DTR and RTS are output only and
  CD, CTS and DSR are input only. WARNING: may not be 100% bug free yet..

R5: (28.02.2003)

Beta 8 (final?)

- GUI problems in fullscreen mode fixed
- audio bug fixed, fixes Impossible Mission II
- another last minute change: (I really can't stop adding new features..)
  added HDF filesystem selection GUI. Simply select path to Amiga
  filesystem driver (FastFileSystem from WB1.3:L when booting HDF's
  under KS 1.3, SmartFileSystem if you want to boot SFS formatted HDF
  etc..) No more playing with roms-directory and hexadecimal names.

Beta 7 (Release candidate, expected release date 27-28/2):

- Murder/Crack Down audio hack-fix removed. (not needed anymore).
  This must mean my audio emulation updates are correct :)
  Fixes Terrorpods.
- extended adf2 support fix (loading of non-RAW tracks failed)
- implemented input-tab GUI support for 1-4 input events/input source
- Windows 9x crash fixed
- reverted back to beta 5 serial port code, there is no time to
  fix all bugs now in new code. Later..

Beta 6:

- audio quality should be "perfect" again
- sound-"resync" code re-enabled, vsync should be 100% smooth again
  (was accidentally disabled in beta 5)
- disabled floppy drive's motor state is cleared when restoring state
  (no more disabled drives and green leds)
- improved fake-RDB-filesystem loader, it is now possible to autoboot/mount
  custom filesystem formatted regular HDF-files. (SFS, PFS etc..)
  Requires filesystem driver in WinUAE's roms-directory, named filesystem's
  "dostype in hexadecimal.fs". For example SFS's dostype is 0x53465300, file must
  be named 53465300.fs (I know, not very logvery logical but that was too easy to implement..)
- some serial port compatibility "fixes", serial port support may not work...

Beta 5:

- sound quality fixed (I think so..)
- removed debug code that disabled "fast copper"
- enabled very experimental 4 channel DirectSound audio code.
  Amiga's 4 separate audio channels are directly fed to DirectSound
  instead of using UAE's software mixing.
  NOTE: currently 4+ speaker systems get strange results: each Amiga
  channel goes to separate speaker.. (1 goes to front left, 2 goes
  to front right, 3 goes to rear left and 4 goes to rear right..)
  Not tested with 2 speaker systems..
  Enable with "-dsaudiomix" -command line parameter.
  I'll try to fix the speaker problem if this is useful feature (= increases
  performance noticeably compared to software mixing)
- sound interpolation-checkbox fixed and added support for both modes
  (btw, are interpolation modes broken or why do they sound so bad?)
- Amiga program p96refresh let you choose higher mousepointer refreshrates in P96
  p96refresh <frequency 50-200> (Bernd Roesch)
- native interface added to allow executing windows DLL from 68k side (Bernd Roesch)

Beta 4:

- fixed Competitor PC joystick interface compatibility problem
- fixed CAPS image crash when reading non-existing tracks
- track >79 compatibility fix (Pinball Hazard)
- added OS version to winuaebootlog.txt
- floppy speed slider GUI update fix
- copper COPJMP fix (CAPS Wreckers)
- audio updates and hack that fixes Murder, Crack Down and Liverpool
  AUDxDAT should now work correctly
  (rewrote audio state machine emulation. Yeah, I know I shouldn't do
  these kind of near-last minute changes but... Complain loudly if sound
  works badly)
- keyboard led update, update led state only max once/frame,
  only change selected leds' state
- resetting or reinserting disk image didn't always release old image
- changing floppy drive type or enabling/disabling floppy drives
  works properly when emulation is active

Beta 3:

- OpenGL <15 bit depth check should only be done when using fullscreen mode
- more CIA keyboard emulation fixes (CAPS R101)
- CPU status register emulation fix, bits 14 (T0) and 12 (M) are 68020+ bits
  and must always be zeroed in 68000 mode. (CAPS Toki copy protection code)
- new extended adf2's contains free space for 83 tracks (was 80)
- added disk write-protection support GUI. moved drive disable-checkboxes to
  drive-type box. This is quite complex internally..
  - images that support writing (regular and ext2 adf)
    - checked = read-only flag set
    - unchecked = read-only flag removed
  - read-only images (caps,fdi,ext adf,compressed images):
    - checked:
      - save-image exists and is not empty: save-image's read-only flag is set
      - save-image exists and is still empty: delete save image
      - no save-image: do nothing
    - unchecked:
      - save-image exists: remove read-only flag
      - no save-image: create empty saveimage
  - save images are always created in <winuae root>/SaveImages -directory
    (because selected "parent" image may be located in read-only media)
  - changing writeprotection state causes automatic disk re-insert
    (eject,2s delay,insert)
- state files are now saved to <winuae root>/SaveStates (was Configurations..)
- keyboard LED GUI (misc-page)
- AGA SHRES sprite bug fix (fixes Super Skidmarks hires-mode cars)
- restoring 68020+ state and CPU speed is set to A500 -> change to fastest possible
- filter END+<any key> key releases

Beta 2.1:

- non-blocksize aligned HDFs work again
- keyboard led code improved and fixed
  configuration file line is now: "keyboard_leds=xxx:yyy,xxx:yyy,xxx:yyy"
  where xxx = "capslock", "numlock" or "scrolllock" and
  yyy = df0,df1,df2,df3,power,hd or cd
  (example: "keyboard_leds=scrolllock:power,capslock:df0")

Beta 2:

- renamed save-images to "<name of original image>_save.adf", original extension is removed
  (for example: Example.ipf -> Example_save.adf) Makes names more logical when this feature
  is used with regular adf-files.
- hardfile/harddrive cache bug fix (SFS formatted hardfiles/harddrives work again)
- Action Replay improvements (Mark Cox)
- it wasn't possible to set input-tab's default mappings to none, fixed
- fixed too small config file description buffer in WinUAE GUI code
- configurable keyboard leds (DF0,DF1,DF2,DF3,POWER,HD and CD)
  No GUI yet. Add "keyboard_leds=xxx,xxx,xx" to config file.
  (num lock, caps lock, scroll lock) xxx = none,DF0,DF1 etc..
  Need Windows9x testing (W9x uses very different way of controlling leds than W2K/XP)
- primary sound buffer option removed and disabled. It is not needed anymore and usually
  only caused strange slowdown problems.
- DirectInput devices were allocated multiple times and never freed
- middle mousebutton in fullscreen mode minimizes WinUAE if
  "Middle-Mouse-Button -> ALT-TAB" is ticked.
- OpenGL-mode is disabled if display depth is lower than 15
- Because Windows DDK can't be downloaded anymore from microsoft.com, I added define to
  sysconfig.h (WINDDK) that can be used to disable compilation of features that need
  DDK includes (Windows 2K/XP CDROM, harddrive support and keyboard leds)
- improved programmable horizontal and vertical timing support. Setting 31KHz native
  mode under Picasso96 display modes (for example writing "setenv picasso96/amigavideo 31khz")
  works mostly but audio isn't too good yet..
- yet another Pentium4 JIT fix, Pagestream crashes without it (Bernd Roesch)


Beta 1:

- restoring state with sound disabled caused crash if state was saved with sound, fixed
- fixed mouse problems in Space Crusade, Billy the Kid and more..
- another fast ram state restore fix
- writing to ext2 images was unstable, fixed
- FPU state save support
- floppy drives' disk change flag wasn't reset when state was restored, fixed
- "save disk image"-support. All writes to images that don't support writing go to separate
  extended adf2-image and reads from already written tracks come from ext2-image instead of
  "main" image. This is especially needed by some future CAPS-images. (There are games that
  want to write to the original disk, for example Pinball Dreams highscores but we can't and
  don't want to modify original images)
  "save image" must be currently created manually by clicking "create custom image" (disk-tab),
  image's name must be <name of original image>.adf (for example, Example.ipf -> Example.ipf.adf)
  Image is write-enabled only if save-image exists and is not read-only.
  Any suggestions for GUI?
- 68000 cpu returns the contents of prefetch register when reading from address that does
  not exist. (for example reads from 0x200000 without real fast ram)
- CIA serial port emulation updates. Fixes Back to the Future 2's keyboard freeze.
  (fixes probably other games' keyboard problems too)
- another "last_custom_value"-update, fixes more slowram detection crashes (Commando etc..)
- another bsdsocket emulation fix (Stephen Riedelbeck)
- added configurable device name and boot priority for volumes and hardfiles
- "more compatible" 68000-mode accidentally used some cycle-exact-only functions
- CD32 media change detection fixed (only worked in 0821R1..)
- CD32 pads are now enabled even in non-cd32 mode if configured in input-tab


---
R4

Beta 3:

- switching between windowed and fullscreen disabled sound
  (does not happen with some sound drivers), fixed
- Caps lock fixed (again..)
- build-in DMS support. Will be removed if someone complains..
  (Xdms.exe is really too limited..)
- CTRL-AMIGA-AMIGA-ALT hard-reset works again
- Debugger's S-command used non-binary mode to save files, fixed
- DENISEID-register last_custom fix (fixes Alien Breed - Tower Assault)
- added support for 1.5MB bogoRAM expansion
- another ACTION_RENAME-bug fixed. Rename created new unneeded
  __uaefsdb-entry if only filename's case changed
  (for example: "rename file.txt file.TXT")

Beta 2:

- sound timing always defaulted back to PAL when WinUAE lost or gained focus, fixed.
- Voyage by Razor1991 really works but only randomly
  (requires cycle-exact mode and might need multiple tries, more improved ce-mode needed..)
- CAPS-format support added.
  Needs CAPSImg.dll from CAPS. Not yet available for public.
  Send your questions about Caps directly to http://www.caps-project.org/
  I don't answer any Caps-specific questions.
- use QueryPerformanceCounter() instead of RDTSC if CPU throttling is detected.
  Fixes slowdown problems on laptops, also old processors without RDTSC should run WinUAE again
  without crashing.
- ALT-TAB keyboard fix
- joystick layout B fire fixed (broke in B1)
- joystick configuration bug fix (sometimes joystick didn't work..)
- Picasso96 framebuffer access speedup (Bernd Roesch)

Beta 1:

- improved FPS-counter, added FPS-counter led.
- added blitter fill-mode cycle diagram. Enabling fill mode adds DMA channel C to
  cycle diagram even if it is disabled in BLTCON0. Fixes "Reflect - Sound Vision"
- Catweasel MK3 Amiga keyboard and joystick ports support and Z2-board emulation implemented
- emulate serial port transmit interrupts even if serial port is disabled
  I don't think we can expect users to enable serial emulation to run some games
  that don't even have serial-link option. (Dragon's Lair 2, Moonwalker etc..)
- removed exclusive mouse-mode, mouse handling should be now more compatible.
- faster Picasso96 color fades (Bernd Roesch)
- CD-led is now lit when CD32 audio track is playing
- RDB filesystem loader compatibility fix, SmartFileSystem 1.58 doesn't crash anymore
- filesystem: _UAEFSDB.___ handling fixes, also deletes "ghost"-entries automatically
  (files/directories that are deleted outside of emulation)
- filesystem: ACTION_RENAME fixes. Old name's opened locks and filehandles are transferred
  to new name, filehandles are temporarily closed during rename (under AmigaDOS it is
  possible to rename files that are open) Fixed some "ghost"-UAEFSDB entry-bugs.
- filesystem: added notification support (ACTION_ADD_NOTIFY, ACTION_REMOVE_NOTIFY)
- filesystem: added code that updates parent directory's modification time when file is
  created, written, deleted or renamed. (NTFS does all except rename, FAT apparently never
  updates parent directory's modification time)
  Fixes Directory Opus and DosControl automatic directory list refresh when using FAT
- log messages that arrive before emulation starts are written to winuaebootlog.txt
- uaescsi.device reset crash fixed (happened only under Win9x)
- custom chip "last_custom_value"-update. Fixes Lotus 3 (and probably some other programs')
  slow ram detection.
- CIA and MOVEM M->R cycle usage fixes (Voyage - Razor1991 works now, first boot only...)
- allocate bigger MIDI sysex buffer to prevent overflows (Bernd Roesch)
- disabled mostly useless JIT-log messages (can be enabled by defining JIT_DEBUG and recompiling)
- PAUSE-key = pause emulation. PAUSE+END = full speed emulation (sound is turned off)

Mouse code is mix between old and new WinUAE mouse code. It probably have some bugs..

Filesystem compatibility should be much better now. Could someone test programs that have refused
to install/run under older UAE filesystem versions?


---

RC:

- floppy drive leds light correctly (stupid bug)
- small CIA fix (reading $BFE001 returns correct power led state)
- Input-tab keyboard configuration works again (why didn't nobody notice?)

Beta 3:

- all hardfiles/harddrives described in default.uae were never freed making them unavailable
  if other configuration was loaded and it used same hardfiles as default.uae. fixed.
- mouse counter overflow limit works again (moving mouse very fast made mouse jump around under
  KS 1.3 and some mouse controlled games)
- Amithlon partition detection failed if drive had >6 partitions. fixed.
  (Partition table buffer was too small...)
- non-Amiga formatted or non-empty harddrive safety test can be disabled with
  "-disableharddrivesafetytest" command-line parameter. WinUAE also shows warning
  messages if "dangerous" harddrives are detected and test is disabled

Beta 2:

- A500-speed slowdown problems fixed (*)
- "The selected screen mode can't be displayed in a window, because.." now correctly
  forces fullscreen mode instead of repeating the message forever..
- initial Amiga viewport position fixed

(*) My new Asus A7N8X Deluxe Gold (nForce2) -mainboard arrived today and suprise, suprise,
WinUAE's fps decreased to about 40fps. I finally managed to debug this problem!
It appears calling timeBeginPeriod() and timeEndPeriod() too many times/frame
caused big slowdown. I still don't understand why it only affects some systems..
(probably it depends on drivers because I didn't reinstall OS)

Beta 1b:

- removed debugging code that disabled RDB custom filesystem

Beta 1:

- Ports-tab crash fixed (printer detection bug)
- some joysticks had joystick axis in wrong order (for example Y before X etc..)
- only first joystick worked in input-tab
- plus other joystick bugs fixed
- WinUAE window position in registry is now correct
- hard drive configuration save fix (some harddrive ID's had trailing spaces)
- fixed stuck keys when switching between WinUAE and Windows
- sprite fix (flashing garbage in Pinball Dreams)
- added Harddisk and CD-leds that flash during HD/CD access
- thread priority tweaks
- Windows 95 setupapi.dll error fixed

R2:

Beta 7:

- screenshot changes, PrintScreen -> Windows clipboard
  (now works even in overlay-mode) and PrintScreen + END
  -> screenshot file (was F11)
- more disk emulation updates ("The Deep" works again)
- bsdsocket changes. Fixes Win98 dialing, TCP-device
  and Amygate (Stephan Riedelbeck)

Beta 6:

- primary sound buffer checkbox can be changed on the fly
- floppy buffer overflow fixed
- RDB filesystem bug fix
  caused memory corruption if RDB contained non-automountable partition(s)
- ALT-TAB didn't always release mouse capture
- DirectInput device enumeration fixed
- blitter nasty-mode bug fixed (Obliterator and TerrorPods intro graphics corruption)
- Amiga Catweasel ZorroII-board emulation. (ISA-Catweasel supported)
  Device is detected but reading is unreliable due to timing problems either in
  isacatweasel.device or timer.device in JIT mode. No GUI config, to enable emulation
  add "catweasel_io=xxx" to config file. WinIo.dll, WinIo.sys (2K/XP) and
  WinIo.VXD (W9x) from http://www.internals.com/utilities/winio.zip required.
  Download Amiga driver from http://www.jschoenfeld.de/ support page
  (ISACatweasel.device for Amithlon)
  New Catweasel MK3 (PCI-version) support will be implemented in future.
  Experimental. Bug reports are probably ignored because this won't be part of
  "official" 0.8.22R2 feature list..
- network printers are listed in ports-tab
- tries to prevent frozen mouse if WinUAE crashes
- Kickstart replacement is now correctly enabled if kick rom was not selected
- disk emulation updates
  fixes for Megalomania, Knightmare, Supaplex etc.. ultra slow loading speed,
  more compatible with some copy protections
- Action Replay support fixed

Beta 5:

- ignore mouse events when WinUAE is not in focus
- disk emulation track length/motor speed fix (Istv¯n Fabian)
- filesystem "ghost"-file fix
  (but we still have one bug left in ACTION_RENAME that isn't so easy to fix)
- F10 and ALT-keys don't freeze the emulation anymore
- Capital Punishment graphics fix
- Picasso96 COMP-drawing mode don't work correctly in >8bit modes, added
  workaround. (found by Bernd Roesch)
- fixed buggy gfx_opengl_mode and gfx_opengl_bits -configuration entry handling
  (caused duplicate entries)

Beta 4:

- mouse fixes and speed multiplier added to input-tab (100=1x,200=2x,50=1/2x etc..)
- caps lock fixed
- cpu idle changes (still need much better algorithm, later..)
- replaced Sleep() with multimedia timers (much better timer accurary)
  this fix might improve sound with small buffer sizes
- switch from fullscreen/no-vsync to vsync crash fixed (this was a very old bug)
- another old config file compatibility fix

Beta 3:

- keyboard layout "B" firebutton fixed
- startup "detect 16-bit" crash fixed
- copper cycle diagram fix (Chaos Engine AGA/CD32 horizontal line)
- screenshot button was always disabled

Beta 2:

- GUI's hardfile/harddrive size fixed (fractional part was always zero)
- "Use Primary DirectSound buffer"-checkbox fixed
- input-tab's joystick/mouse/keyboard axis/button/key names are now queried from DirectInput
- all keyboard's special keys are also configurable in input-tab
- DirectInput fixes (joysticks work etc..)
- direct harddrive access fixed, >512 byte reads/writes are now working properly.
  (caused "not a dos disk" errors if filesystem block size was > 512)
- added 1024 and 2048 physical blocksize support to direct harddrive access code
- RDB code renames duplicate device names (DH0: -> DH0_0: etc..)
- german keyboard layout "hack" fixed (Bernd Roesch)
- improved keyboard configuration, old keyboard configs are not compatible anymore
- "Pentium 4 JIT"-fix enabled in release build
- state load fixes (replacing KS don't clear chip RAM anymore, another CPU type fix)
  Loading 68020/AGA states files with A500 config should now replace configuration
  correctly (finally..)

Beta 1.1:

- >4G hardfiles really work now
- cpu idle fixed

Beta 1:

- disk emulation fix (High density floppy images in non-"turbo" mode were read too slowly causing
  read errors)
- removed bad disk emulation optimization (froze some custom loaders)
- implemented disk drive type configuration. I had to do this because it is not possible
  to emulate real DD and HD drives 100% correctly automatically and I also wanted to add
  ancient&useless 5.25 drive (A1010) support too :)
- automatically disable "turbo"-floppy speed if using non-standard ADF images
- implemented Kickstart 1.3 hardfile support and some RDB filesystem compatibility bug fixes
  (regular KS1.3 hardfile autoboot/mount requires FastFileSystem from WB1.3:L in roms-directory)
- hardfile code rewritten with full 64-bit support ("unlimited" size)
  supports both TD64 and NSD -style 64-bit access.
  Windows 2000 or XP and NTFS filesystem required (Both W9x and FAT32 are
  limited to max 2G files)
  WARNING: some Amiga disk utilities fail to understand >2G partitions and could
  corrupt big hardfiles! OS3.5+ recommended!
  Only drives that don't contain recognised PC partition table and are either empty or
  contain RDB are available in selection dialog (safety feature)
  Amithlon partition support (partition type 0x76) implemented. NOT TESTED YET!
  WARNING: Bugs could cause lost data! Every read and write access to Amithlon partition
  is tested against partition bounds but better safe than sorry..
- uaehf.device is now threaded (read/write requests are run in background)
- fixed uaehf.device crash with older HDToolBox versions
- removed sectors, surfaces and reserved from harddisk tab
  (IMHO they only need to be in hardfile configuration dialog)
- added missing CPU idle configuration entry
- CPU idle code changes
- added cycle exact configuration entry
- increased directory filesystem emulation cache
  (workaround to randomly disappearing flags/comments)
- CPU model is restored correctly when restoring save state file
- DirectInput keyboard, mouse and joystick interface
  - shift-keys don't get stuck anymore in Pinball Dreams etc..
  - Uses DirectInput's MS supported way of disabling all special keys, only ALT-TAB and
    CTRL-ALT-DEL are left enabled.
  - Uses DirectInput exclusive mouse mode to hide Windows mouse pointer instead of
    old version's "interesting" hack...
  - WARNING: expect to find bugs
  - NOTE: mouse speed might be different because DirectInput reads directly from
    mouse driver. (no acceleration etc..)
- mouse input-configuration changed (separated horiz and vertical axis and mouse
  wheel is now third axis)
- "disable Windows keys"-checkbox removed. Windows keys are now always disabled.
  (I added disable checkbox because wkeykill.dll was unsupported hack and could have
  caused problems in some situations) Complain if there is need to not disable
  Windows keys.
- some old config file compatibility fixes
- "compatible" cpu mode checkbox was ignored
  (This was the reason why 0822R1 needed cycle-exact mode to run C64 tune disk)
- 68000 RESET-instruction's prefetch emulation fixed
- CIA overlay-bit fix (regs.pc_p and regs.pc_oldp wasn't updated)
- added Kickstart ROM path to state files (only used when restoring if file exists)

0.8.22R1:

Beta 5:

- RDB custom filesystem fixes
- make "regular" hardfiles invisible to HDToolbox
- fix CD32 pad emulation in compatibility mode

Beta 4:

- small sound changes: AHI sound disabled when resetting the Amiga, DirectSound is freed
  when WinUAE is minimized and "Disable sound output" is ticked.
- input-tab autofire rate fixed
- fixed fast memory state save bug
- joystick compatibility mode fixes
- another uaescsi.device compatibility fix

Beta 3:

- AVIOutput fix (editing parameters didn't work until emulation was started)
- centering works again (broke in beta 2)
- more uaescsi.device compatibility fixes (all Amiga CD filesystems should now work properly)
- CD32 pad emulation fixes
- fixed crash when "ejecting" broken zipped adf-files
- bsdsocket fixes (Stephan Riedelbeck)
- exception 3 handling fixed (was broken by JIT fix ages ago..)
- improved RDB filesystem relocator (fixes PFS3 and others)
- screenshot key shortcut mapped to F11
- multiple sound card support (original GUI code by Brian King)
- fixed programs that use POTxDAT to read second fire button (was broken ages ago)

Beta 2:

- UAE 0.8.22 merge, bumped version number (most changes were already included in R4)
- switching cycle-exact off does not freeze the emulator anymore (but Amiga still freezes..)
- Action Replay 1 support (breakpoints don't work)
- writing to hardfiles work again
- CPU emulator fix: CHK-instruction's exception return address was wrong (Days of Thunder)
- AVIOutput update (Sane)
- floppy speed slider GUI fixed
- disk emulation initialization fix (fixes A1000 boot failure in non-"turbo" mode)
- CPU idle checkbox works after emulation has been started
- keyboard fix (some key presses were missed when pressing multiple keys)
- sound changes: (yet again...)
  - vsync enabled and/or JIT enabled: adjustment active (like older versions)
  - vsync disabled and JIT disabled: UAE 0.8.22 sound timing (adjustment disabled)
  (JIT will have HUGE slowdown and vsync skips if UAE 0.8.22-style timing is enabled)
  - uses DirectSound primary buffer if possible (SDL does this too)
  - depending on sound card, small buffers (1 and 2) might work very badly..
- uaehf.device scsi emulator fixes
- changed "create hardfile"-dialog's hardfile size to megabytes and added 2GB limit
  (limit will be removed after uaehf.device supports 64-bit addressing)
- uaescsi.device reboot crash fixed
- full RDB harddisk image support (automount, custom filesystems etc..)

Beta 1: (too many changes, expect breakage..)

- unoptimized near cycle-exact cpu and blitter emulation implemented (checkbox in misc-tab)
  Fixes most programs that expect correct cpu and blitter speed (PP Hammer, many demos etc..)
  WARNING: requires at least 50%+ more cpu power than "regular" mode.
  Athlon XP/Pentium IV + DDR/RAMBUS RAM highly recommended!
  WARNING2: Frameskip must be set to 1
  WARNING3: very experimental, timing is quite far from perfection
  Complain loudly if "regular" mode is slower. (It shouldn't be but you never know..)
- yet another 68000 prefetch emulation rewrite (fixes "100 most remembered C64 games" and more..)
- OpenGL scanline brightness slider added
- yet another disk emulation update
  (more compatible, stupid extended adf bug fixed that caused format/verify errors)
- interlace mode vsync fixed (no more 2x speed)
- added support for compressed kickstart rom-images
- encrypted A1000 boot rom support added
- 64kb A1000 boot rom supported (A1000 boot rom size is really 64kb even if only first 8kb is used..)
- 256kb chip RAM support added (first A1000s come with 256kb chip RAM as standard, expandable to 512kb)
- dms files inside zip -crash fixed
  (xdms.exe that does not add .dms extension to source file's name needed for correct decompression support)
- fixed com-port warning (start emulation, press F12, select input-tab)
- sprite-playfield collision fix (fixes Inferior but may break something else.. Testing needed!)
- display garbage fix (Nightbreed Interactive Movie, some demos)
- input device support updates
  defaults added to mouse and joysticks, mouse didn't always work correctly,
  autofire works now properly, supports max 4 input targets/input source
  (currently only available by manually editing configuration files,
  example: input.1.mouse.0.button.0=JOY1_FIRE_BUTTON.0,JOY2_FIRE_BUTTON.0)
- another experimental cpu idle hack (detects when Kickstart executes STOP-instruction)
  lowers host CPU usage near zero when emulated system is idle.
- added cpu idle checkbox to GUI CPU-page
- new AHI code and driver (Bernd Roesch)
- Amiga <> Windows clipboard support, see winuaeclip.txt for more information (Bernd Roesch)
- added device io (CMD_READ, CMD_CHANGESTATE etc..) support to uaescsi.device
  no need to enable direct-scsi anymore, also media change detection
  (ADDCHANGEINT/REMCHANGEINT) is emulated properly. This means uaescsi.device emulation should
  now work properly with all available cd file systems without special mountlist flags.
- fixed bug in state save restore code, sometimes restored floppy drive track was incorrect
- added wkeykill.dll support. Kills all normal Windows key combinations (except some keys don't
  work properly on WXP, for example LWin+L, hopefully this can be fixed later..)
  Unfortunately it is not possible to integrate Windows key kill code to WinUAE because it seems
  it is only possible to kill Windows key events properly from a separate dll..
- Amiga-"viewport" is now centered correctly, no more clipped window borders
- FPU emulator's precision was poor, fixed (cause: wrong compiler optimization parameters)
- filesystem bug fix (hopefully fixes bug that causes random files appearing as directories)
- on the fly switching between OpenGL and DirectDraw mode
- on the fly switching between vsync and non-vsync mode
- DirectSound sound code is back with auto-adjust. Better or worse than old code?
  (I replaced SDL audio because it is now confirmed that SDL audio has strange lag
  problems with some systems. I might include both, depends on test results..)
- audio emulation fix (Mission Elevator)
  also some AUDxDAT fixes (fixes random CD32 boot tune noise)
- build-in screenshot function (original code by Sane)
  supports all modes: DirectDraw, DirectDraw Overlay, OpenGL and Picasso96
  current shortcut key: END+F6 (Suggestions?)
- set active WinUAE process priority level higher, improves smoothness
  makes Windows' responsiveness worse but I hope it isn't too bad..
- decreased trackdisplay leds' brightness slightly
- writing to kickstart rom memory area crashed the system if JIT was enabled
- floppy speed slider (I know I shouldn't put it back but I got too many requests..)
- second filesystem bug fix: situations where file read length was very big were not handled correctly
- third filesystem bug fix: CON.something, AUX.something etc. are not valid Windows filenames
- added simple "scsi emulator" to uaehf.device. It is now possible to edit full harddisk images with hdtoolbox
  ("hdtoolbox uaehf.device". Sectors, surfaces and reserved can be set to zero)
  not very useful feature because booting/automounting does not work yet...

R4:

- EXPERIMENTAL: added configurable input device (mouse, joystick, keyboard) support
- EXPERIMENTAL: added OpenGL mode (for best results set lores and disable line-doubling)
- printer support fixed (Bernd Roesch)
- MIDI updates (Bernd Roesch, Alfred J. Faust)
- custom chipset updates (Superfrog,Exile,Apocalypse,Rainbow Islands,Torvak the Warrior etc..)
- CPU idle patch (no more 100% CPU usage)
- HOME + F5 opens state restore dialog and SHIFT + HOME + F5 opens state save dialog
- vsync updates (50/60/100/120 frequencies are now always selectable. Useful for Powerstrip users)
- AVIoutput improvements (can be started later, stops when re-entering GUI)
- Picasso96 updates. Mouse trails are now 100% fixed (Bernd Roesch)
- refresh rate selection only affects Amiga display modes, Picasso96 always use default refresh rate
- "16-bit mode detect" crash fixed
- removed useless 8/16-bit sound selection. Sound output is now always 16-bit
- sound lag compensation slider reimplemented. (if you have bad sound, move slider left until sound gets better)
- build-in gzip and zip support (autoselects first adf-image or Amiga executable if zip contains multiple files)
- executable to adf support, just "insert" Amiga executable in to floppy drive
- improved external decompression support (xdms.exe)
- configuration save option is now available even after emulation has been started
- HD floppy image support in disk-tab

Beta 8:

- OpenGL vsync is now correctly disabled in windowed mode
- frequency selector config load/save fixed
- fixed lost key release(s) when switching between Picasso96 and native modes
- fullscreen OpenGL mode mouse problems fixed
- avioutput OpenGL mode support added

Beta 7:

- refresh rate selection now shows 50/60/100/120Hz properly
- non-OpenGL scanlines-selection gets disabled after emulation is started
- DF1-DF3 and HD floppies work again
- vsync fix
- JIT exception 3 fix (Bernd Roesch)
- OpenGL "returning from GUI in fullscreen mode" freeze fixed
- exiting WinUAE stops CD32 CD audio
- sound buffer 7 in stereo mode fixed
- disk emulation update (fixes SuperDuper)
- sound gui changes
- MIDI sysex support (Bernd Roesch, Alfred J. Faust)

Beta 6:

- Picasso96->OpenGL mode switch crash fixed
- added OpenGL texture color depth and filtering mode selection
- centering and non-OpenGL scanlines are not available if OpenGL mode is enabled
- MIDI ports can be changed on the fly (Bernd Roesch, me)
- Create Standard/Custom floppy-buttons can also be used to create HD floppies
- level 6 interrupt handling fix (Marvin's Marvellous Adventure AGA)
- CPU exception 3 fix (Shinobi)
- disk updates (more correct DSKRDY/floppy device ID handling) (S.T.A.G)
- *.zip added to disk image selector
- Caps Lock and misc keyboard fixes (new input device mode only)
- return random bits if program is trying to read track past image's end (Typhoon Thompson)
- yet another sprite emulation rewrite. Report immediately if you notice missing/flashing/corrupt etc sprites!
- scanlines fixed in OpenGL AGA mode

Beta 5:

- joystick/mouse -> keyboard mapping fixed
- keyboard -> Amiga joystick/mouse/keyboard configuration implemented (US keyboard layout only)
- another copper skip fix (fixes Rainbow Islands)
- CPU idle patch
- MIDI fixes (Bernd Roesch, Alfred J. Faust)

Beta 4:

- better Superfrog/Exile etc.. border fix (old version caused display problems with some demos)
- new input device configuration is finally working
  TODO:
  - more intuitive GUI (Help needed)
  - add international key names
  - implement multiple mouse support
    Unfortunately it seems DirectInput don't support multiple mouse on W2K/XP.
    http://www.angelfire.com/retro/u_rebelscum/faqs.html#win2000limit
    (confirmed with two USB mouse on WXP)
  - PC keyboard -> Amiga mouse/joystick/keyboard mapping editor
- OpenGL tweaks (scaling changed, 0,0,0,0 = centered screen. Added default-button)
- misc-tab changes (disabled state save-button if emulator is not started, reset and quit-buttons are always visible)
- GUI remembers last used property page (tab)
- two executables, one compiled with MSVC 7 (MSVS.net) and the other with MSVC 6.

Beta 3:

- HOME + F5 opens state restore dialog and SHIFT + HOME + F5 opens state save dialog
- experimental OpenGL support
  internal window size is always 752*600 (376*300 if lores is enabled and linedoubling is off)
  image size configuration
  scanline emulation (transparency and size)
  requires 1024 * 1024 or larger supported texture size (won't work with old cards)
- AVIoutput improvements (can be started later, stops when re-entering GUI, vsync-waits ignored)
- Picasso96/native mode switching should be working again (was broken in beta 1 and 2)
- Superfrog, Exile etc.. left border bug fixed
- adz support fixed
- CIA alarm update (fixes Torvak the Warrior's music)

Beta 2:

- build-in gzip and zip support (autoselects first adf-image or Amiga executable if zip contains multiple files)
- executable to adf support, just "insert" Amiga executable in to floppy drive
- improved external decompression support (currently only xdms.exe),
  temporary files are loaded back in to memory and deleted immediately after decompression.
- 50/60/100/120Hz frequencies are now always selectable. I think this allows vsync-support with display drivers
  that don't support frequency selection but support custom resolutions (for example with PowerStrip)
- Picasso96 Drawstudio fix (Bernd Roesch)
- removed 8/16-bit sound selection from gui. Sound is now always 16-bit.
- sound adjust slider reimplemented. (fully automatic sound adjust seems to be impossible..)
  sound code is still autoadjusting but with very limited adjustment range
  (allows 100% smooth vsync at least on my pc..)

  adjustment instructions: move slider left until sound doesn't crackle anymore (no more sound buffer underflows)
  adjustment position isn't very important except if you want vsync without random skips.

Beta 1:

- fixed right border garbage (CD32 bootscreens and other programs)
- "16-bit mode detect" does not crash anymore if registry keys are not found
- vsync updates, vsync can be enabled or disabled during the emulation
- Picasso96 JIT memory mapping update (Bernd Roesch)
- Refresh rate selection only affects Amiga display modes, Picasso96 always uses default refresh rate
- CIA changes

R3:

Beta 3:

- missing gui-tabs fixed (was broken in beta 2) (me)
- serial port update (Bernd Roesch)
- cycle exact bitplane modulo emulation (fixes Lemmings 3 AGA) (me, Bernd Schmidt)
  I think this patch is finally bug free. Report immediately if you see display corruption!
- modified delayoffset hack (fixes Mindriot-demo) (me)

Beta 2:

- AGA mode EHB fix (Superfrog title screen) (me)
- hardfile sectorsperblock fix (Reorg works again) (from WinUAE 0817)
- CIA update (better compatibility with some weird programs) (me)
- PC joystick in both joystick ports works again (was broken in every 0821 release) (me)
- icon fixed (no more random pixels) (me)
- Picasso96 overlay mode is working again (was broken in beta 1) (me)
- Shapeshifter-checkbox fixed (from WinUAE 0817)
- JIT shift-instruction fix (from Basilisk JIT)

Beta 1: (VSync test beta)

- joystick keyboard emulation do not anymore create normal key presses
- sprite update (no more flashing bees in Superfrog)
- CIA update (fixes Powermonger, thanks to Istv¯n F¯bi¯n)
- VSync and separate refresh rate selection added
  I had to implement this because I got too many requests :)
- requires DirectX 7 or newer (was DX5 or newer)
- Picasso96 and other misc updates (Bernd Roesch)

to do: input device configuration GUI

R2:

Beta 6:

- sprite emulation changes (me)

Beta 5:

- WBStartup filesystem fix (Bernd#1)
- FDI-image support re-merged (me)

Beta 4:

- fix SPTI/ASPI detection code (me)
- ASPI and SPTI CD32 media change detection implemented (me)
- JIT timing fix, filesystem access speed should be normal again (Bernd#3,me)
- shift/ctrl/alt+Fxx key combinations fixed (was broken in beta 3)
- CD32 pad button emulation fix (me)
  Fixes stuck red button on some Team 17 games (Superfrog and Alien Breed 2, maybe more)
- fixed missing CD32 audio if all floppy drives are disabled (me)
- bsdsocket fix (Stephan Riedelbeck)
- added ASPI/SPTI SCSI layer selection (me)
  Currently only ASPI supports non-CDROM devices (except harddisks due to security reasons)
- ASPI and SPTI code swaps SCSI bus and target if all units' target and lun is zero (me)
  Only affects IDE devices (ASPI sets every IDE device to different "SCSI"-bus causing strange
  uaescsi.device unit numbers)

Beta 3:

- fixed nasty and very old memory overwrite bug in keyboard_win32.c (me)
- SPTI uaescsi.device emulation works again (me)
- uaescsi.device ignored io error return codes, fixed. (stupid me)
- added CD32 media eject/insert support, Windows 2000/XP only (me)
- added missing #define USE_X86_FPUCW 1 (Bernd#3)
- serial port fix (Bernd#3,me)

Beta 2:

- this time really fixed max sound buffer crash (me)
- added Bernd#1's vsynctime "fix"
- JIT FPU fix (Bernd#3)
- filesystem A-flag handling was reversed (Stephan Riedelbeck)
- filesystem fixes (Bernd#1,me)
- blitter timing bug fix (stupid me, yet again)
- removed useless refresh rate from display mode selection box
- fixed crash if RTG was enabled and Z3 memory size was 8MB (Bernd#3)
- noticed problems with uaescsi.device SPTI support, uses ASPI until problem is solved.
- added more uaescsi.device logging (drive names and unit numbers)

Beta 1:

- filesystem fix (Bernd#1) Fixes at least some problems. Testing needed!
  (Bernd: I only merged your first patch, second file order "fix" is not enabled)
- if JIT is disabled, disable "force settings" too (me)
- joystick 2 fixed (me)
- AR "freeze"-button was pressed when exiting GUI, fixed (me)
- memory leak and small bsdsocket fix (Stephan Riedelbeck)
- clear extended rom and cartridge rom configuration entries when loading new config (me)
- pressing F12 and then later pressing shift doesn't start debugger anymore (me)
- sprite fix (me)
- Windows 2000/XP CDROM detection fix (CD32 and uaescsi.device)
- re-enabled full-row-select option (config load/save and hard drives -tabs)
- sound changes. Does this fix crashes and/or bad sound?
- copper fix (Bernd #1)
- CTRL-AMIGA-AMIGA-ALT resets and clears chipmemory (removes all reset proof programs)

Beta 6:

- rare keyboard freeze fixed (caused by fault AR3 keyboard hack)
- blitter nasty fix

Beta 5:

- added missing Bernd#3's serial port update
- Battle Squadron sprite fix (me)
- copper fix (Bernd#1)
- filesys seek fix (Bernd#3)
- joystick gui fix
- added hack that tries to prevent notebook cpu throttling when calculating cpu speed (Bernd#3,me)
- zlib.dll support merged from 0817R3 (me)
- another stupid blitter cycle diagram bug fixed (me)

Beta 4:

- scsi.device config file fix (me)
- sound buffer gui changes (me)
- sound fix (Bernd#1)
- win32 specific thread code replaced with SDL threads (me)
- big sprite state machine update (me)
- disk images are replaced correctly when restoring state (me)
- filesys seek fix (Bernd#3)
- fixed broken fps counter after returning from gui (me)
- fix stupid blitter cycle diagram bug (stupid me)

Beta 3: 

- another bsdsocket fix (Bernd Roesch)
- midi in/out selection boxes added (me)
- filesys fix (Bernd Schmidt)
- Action Replay 2/3 support, freeze button = PageUp (me)
- serial/parallel port updates (Bernd Roesch)
- VPOSW refreshrate hack support added (me)
- copper timing updates
- some missed fixes from 0.8.21

Beta 2:

- maximun screen height increased (600 -> 1280)
- uaelib updates
- middle button = alt-tab fixed
- added track display enable/disable button
- better blitter patch
- AviOutput sound capture added
- >2MB Chip works again
- Z3RAM can be larger than 64MB
- default.uae fixed
- missing call to bsdsocket.library initialization added
- "Add PC drives" fixed (CDROM drives are ignored)
  I think it is better to use uaescsi.device to access removable (CDROM) drives. Any comments?

Beta 1:

- full CD32 emulation
- uaescsi.device Win32 port
- blitter "fix" (fixes Desert Dream freeze and Hostages insta-kill)
- input device rewrite (no config file save/load and gui yet, not very useful now..)
- Sane's AviOutput (no sound support yet due to changes in 0820 Win32 audio code)
- JIT + some fixes (I decided to drop "JIT"-part from the
