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 (). - 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 or fl and fc 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, 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 \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= 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 \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, or FMOVE.X ,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.X #imm,FPn and F.P #imm,FPn now causes unimplemented effective address exception. - 68060 FMOVEM.L #imm, 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=:::, 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 " 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= 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 ". For example 'kbr "abc " SHIFT_LEFT "abc" shift_left RETURN' generates "abc ABC". 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_ 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_. (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 ", 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 ", 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 .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 and then changed back to , 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 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 is forced extra time, dynamic adjustment is disabled. 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 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+ and END+ 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= 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: - : 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=,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 - / 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 ":" (was "HD_") (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=:\ 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=: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 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 . 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 . 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 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= configuration file parameter added, automatically saves state to 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 will internally convert to cdimage= (not very useful currently but if someone wants to associate cue or iso extensions) - added "quickstart=," 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*", "*x.*", "*_a.*", "*-a*", "*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 \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=) 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= in config file, command line parameter -cdimage= 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 " 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 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 ") - 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 [] 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 "" 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 " 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 [] command line. 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 .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 command - bitplane disable debugger command added, Mb [] - 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 -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 " [ = 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: " 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 .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 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 \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:x" instead of "uaegfx:x" - 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 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 [] [' result is 0x, %, and - 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=
, 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 in command line: use * 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=) 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 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 .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 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[ <[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 = \..\system\rom, WinUAE is \roms or \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' - 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: .button.x=,,, 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 [] 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 \.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 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 " -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 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 [=] .." change configuration on the fly - "CFG config_entry" return value of - "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 " 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 [] []"-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 \WinUAE.exe, not =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() 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[.] [r.] [] Only 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 , 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 = 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 instead of %!PS - 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 _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 ) - 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 ) - 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">/ [ [] 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 \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:, 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 = break when PC points to instruction opcode f = add/remove new breakpoint (max 8) fd = remove all breakpoints f = break when <= PC <= - 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>
[] break when address space between address and address + length is accessed and if accessed 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 "-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 + (restore) and CTRL or SHIFT + END + (save) zero or period = currently selected statefile (includes period because my keyboard ignores simultaneous CTRL/SHIFT + END + 0..) 1 - 9 = currently selected statefile + "_" + 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 "/" or "\" 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 \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 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 (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 /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 /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+ 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 "_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 .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 name)