UAE 0.6.9 Win32/DirectX, release 12 (c) 1995-1997 Bernd Schmidt (c) 1997 Mathias Ortmann =============================== WARNING ================================ This version of UAE has been optimized for performance, not for user- friendliness. If you don't feel confident that you are able and willing to invest about an hour of your time into reading the documentation and understanding how UAE works, or if you are not an Amiga veteran with a solid base of computer knowledge, this program is not for you. GO AWAY. You may come back in a couple of months when further enhancements and a GUI have turned UAE-Win32/DirectX into a foolproof, point-and-click, drag-and-drop, no-hassle, easy-to-use standard Windows application. Thank you for your cooperation. ================================ WARNING ================================ For general information about UAE, refer to the following URL: http://www.schokola.de/~stepan/uae/ This readme file does _not_ cover the features of UAE that are common to all versions. If you're not familiar with UAE yet, consulting the generic distribution before attempting to use this port might actually not be a bad idea. The generic UAE documentation can be found in the docs directory of this archive. Take these docs with a grain of salt, though: Not every detail of the Linux documentation pertains to WinUAE, and vice versa. The latest release of UAE for Win32 is available from: http://www.informatik.tu-muenchen.de/~ortmann/uae/ or the U.S. mirror http://www.geocities.com/ResearchTriangle/1570/ This port is far from being complete and implements nothing more than the bare-bone functionality of UAE. At this time, it still behaves rather UN*Xish (it must be started from the command line). If you are using Windows 95 (shame on you!) and don't have DirectX installed yet, you need to grab and install a copy first. UAE works with older versions of DirectX, so chances are that you won't have any problems if you had installed a DirectX game on your machine at least once. Windows NT 4.0 comes with DirectX included, but you do need a DCI-capable display driver. Unfortunately, the default drivers that come with NT do not include a DCI provider (with a few exceptions), so you might need to contact the manufacturer of your display adapter for an update. | BUG REPORTS VIA EMAIL: Please make sure that the following conditions are | met before you report any kind of problem: | | (1) You are using the latest version of UAE-Win32/DirectX | (2) You have read the documentation (90% of all potential questions are | answered thoroughly in the this readme file, including the most | popular one: "Why don't you optimize the sound emulation?") | (3) You have used your brain | (4) The graphics drivers of your systems are up-to-date (sorry, I cannot | tell you where to get the latest NT 4.0 drivers for your Trident or | Cirrus Logic card). | | If you do write me, _always_ state what version of UAE your feedback is | pertaining to. Include all the necessary information, e.g. the command | line options you are using. | | Do _not_ send me warez of any kind, no matter how non-working they are. 1. Command Line Parameters ========================== UAE's command line options can be obtained by typing uae -h at the command prompt (uae -h | more if the text scrolls off your screen). -m VOL:dir : mount directory called as AmigaDOS volume VOL: -M VOL:dir : like -m, but mount read-only Mounts Win32 directories under AmigaDOS. Example: -m WORK:c:\wb makes c:\wb available to AmigaDOS under the volume label WORK:. UAE will try its best to bridge the gap between Microsoft and Tripos file system semantics, but there are some inherent limitations: 1. The Windows "read only" flag controls the w and d bits on the Amiga side 2. r and e are always set 3. h, s and p cannot be set 4. The a flag is preserved 5. File comments are not supported 6. Not all file names that are "forbidden" under the lame Windows fs are being handled correctly yet. The most common ones, however, are. Beware: UAE does _not_ live in a chroot-like environment! There is no checking for accesses to directories above the mount point. Do not assume that your data is absolutely safe from rogue Amiga programs! -s n : Emulate n*256 KB slow memory at 0xC00000 -c n : Emulate n*512 KB chip memory at 0x000000 -F n : Emulate n MB fast memory at 0x200000 -4 : Use a 32 bit address space instead of 24 bit. -a : Add no expansion devices (disables fastmem and harddisk support) These should be self-explanatory. -J xy : Specify how to emulate joystick port 0 (x) and 1 (y) Use 0 for joystick 0, 1 for joystick 1, M for mouse, a/b/c for various keyboard replacements This option allows you to freely configure the Amiga's joystick and mouse ports. The default here is -J M0, which means that the mouse is in port 1 (as usual) and the joystick, if present, is in port 2. The keyboard replacements are as follows: a b c Up Keypad 8 Cursor Up T Down Keypad 2 Cursor Down B Left Keypad 4 Cursor Left F Right Keypad 6 Cursor Right H Fire Keypad 0 Right Ctrl Left Alt -f n : Set the frame rate to 1/n If you want to speed up the emulation and don't need smooth graphics, you can use this option to output only every nth frame. -i : Print illegal memory accesses -A n : Set emulator accuracy to n (0, 1 or 2) For advanced users only. -g : Turn on gfx-lib replacement (EXPERIMENTAL). This replaces some graphics.library and layers.library functions with native routines. -C hpos : Adjust copper emulation (see README for explanation) If you have set your workbench to maximum overscan and 4 planes, you should use -C 224 to circumvent a copper bug. Do _not_ use this parameter if you run anything else (see compatibility.txt). -n parms : Set blitter parameters: 'i' enables immediate blits, '3' enables 32 bit blits Using -n 3i may speed things up and can theoretically cause compatibility problems, but may just as well fix incompatibilites. Feel free to experiment! -[0123] file : Use file instead of df[0123].adf as disk image Example: -0 c:\disks\rsi1.adf WinUAE supports gzip-compressed disk images. If you have a 32 bit (!) gzip.exe installed, you can store your disk images (.adz) and ROMs (.roz) in compressed format. Compressed disks will be write protected. Remember that you can dynamically insert (End+F1...F4) and eject (Shift+End+F1...F4) disks at run-time. Windows NT users: Using the compression feature of NTFS instead of gzip is a good idea if you wish to save space and be able to write to the ADF files at the same time. -r file : Use file as ROM image instead of kick.rom -S n:flags : Sound emulation accuracy (n = 0, 1, 2 or 3) For sound emulation, n = 2 is recommended Supported flag(s): 's' for stereo To disable sound entirely, use -S 0 (default). If a program depends on audio interrupts, -S 1 will enable them, but leave sound output disabled. For full audio, use -S 2. There is a special level, -S -1, which disables sound _and_ FrameSync, making the timing of UAE-Win32/DirectX comparable with the other versions. -b n : Use n bits for sound output (8 or 16) Usually, 8 bit audio (default) is sufficient. If you have a good sound driver (these seem to be rare), 16 bit audio should not consume a lot more CPU power. -R n : Use n Hz to output sound. Common values are 22050 Hz or 44100 Hz 22050 Hz (default) is acceptable for most purposes, although 44100 Hz sounds a lot better if you can afford it. -p prt : Use for printer output (default LPT1). Specify a destination for UAE printer output. Currently, a new print job will be generated after 2 seconds of inactivity on the printer port. This timeout is experimental and may be made configurable in the future. Please email me if you have any comments. -I device : Use for serial output (e.g. COM1). Serial support is still in beta at this time, but things are improving rapidly. RTS/CTS will soon be functional. -d n : Set floppy speed This parameter is purely experimental and will most likely go away soon. Its efault is 4. -w n : Set CPU speed in relation to the hardware emulation. This parameter is quite important for optimizing the performance of UAE. With badly programmed software that waits for specific vertical beam positions (such as "Great Giana Sisters"), -w can even control whether a game runs or freezes (see section compatibility.txt for details). If the CPU runs too fast (-w is too small, i.e. less than four), some programs may break because CPU-loop timed events occur too late. For games and demos that synchronize with the vertical blank interrupt, an optimal -w parameter results in the CPU's work for a frame to be completed shortly before the virtual video beam reaches the end of the screen, so as little time as possible is wasted polling for the next frame flop. Usually, this can be accomplished with values around 8, but finding the optimum requires some experimentation and cannot be automated. High values of -w (such as 30 or 50) make the CPU run extremely slowly, but can be the only way of generating contiguous sound on machines below 200 MHz. The default value of -w is 4 as of 0.6.9 release 8. Before that, it used to be 7. Therefore, you may experience a loss of performance that is easily fixable by setting -w back to 7. -W : Open UAE display as a desktop window [Toggle: F12] If you use -W to start UAE in a window and decide to use a screen size that DirectX doesn't support in full-screen mode (such as 320x256), you have to make sure not to press F12 accidentally, as UAE would quit with "Mode not supported" (this will be fixed). Do not attempt to use UAE on an 8 bit display. I haven't bothered implementing support for this, and I've actually got only a single complaint so far. :-) -X : Emulate Commodore 1081 PAL monitor [Toggle: Shift-F12] Although this feature works with any display size, recommended settings for realistic aspect ratio and overscan are: -O 672:550:xyd (hi-res) or -O 332:275:xyl (lo-res) You can dynamically toggle this parameter using Shift-F12. If you're using Windows 95, -X will be severely broken. Your fault. Microsoft is doing their best to improve things in Memphis. -P n : Set UAE base priority By default, UAE runs in the IDLE_PRIORITY_CLASS. For some weird reason, this partially fixes choppy mouse moves in windowed mode. If you require a different priority class, you can select it with this parameter: NORMAL_PRIORITY_CLASS 32 IDLE_PRIORITY_CLASS 64 HIGH_PRIORITY_CLASS 128 REALTIME_PRIORITY_CLASS 256 -Q n : Set system clock frequency in kHz By default, UAE measures the system clock frequency at startup time. You can override this very imprecise method by specifying your system clock directly. Common values are: 100 MHz - 100000 120 MHZ - 120000 133 MHz - 133333 150 MHz - 150000 166 MHz - 166667 180 MHz - 180000 200 MHz - 200000 233 MHz - 233333 250 MHz - 250000 If you have a CPU that does not support RDTSC (e.g. a 486 or a Cyrix 6x86), you may have to use -Q-1, or UAE will crash. -O modespec : Define graphics mode Controls the resolution of UAE's display. The format is width:height:modifiers. The modifiers supported by UAE-Win32/DirectX are: l - treat the display as lores, drawing only every other pixel x, y - center the screen horizontally or vertically d - draw every line twice unless in interlace (this doubles the height of the display) Common values are: -O 320:240:xyl (320x240, center, lo-res) -O 640:480:xyd (640x480, center, double) -O 800:600:d (default) Remember that DirectX severely limits your choice of resolutions for full-screen mode. Example: The Matrox Millennium drivers version 3.12 for Windows NT 4.0 offer no more than six modes that are usable for UAE, of which none is ideal. These are: 320x200, 320x240, 512x384, 640x400, 640x480 and 800x600 There are no such restrictions if you run UAE in a window, of course. You can store your preferred default setup in a file called "uae.rc". 2. Keyboard Emulation ===================== Most of your keyboard retains its regular functionality under UAE, but there are a few notable exceptions: - the left neighbor of BACKSPACE doesn't exist on PC keyboards and has been remapped to F11 - if you don't have a Win95 keyboard, you'll have to use Ins/Home as a replacement for Left Amiga/Right Amiga (this is different from other versions of UAE) - HELP has been remapped to PgDn - F12 toggles full screen/windowed mode - Scroll Lock toggles screen refresh, speeding up the emulation - Pause toggles sound, speeding up the emulation (note that you can't enable sound this way if you haven't configured UAE to run with sound from the beginning). - End+F1, F2, F3 or F4 allows you to change disks in one of the four Amiga disk drives. Shift+End+F1...F4 ejects the disk. 3. Performance Issues ===================== On a sufficiently powerful PC, UAE will give you quite an authentic flashback into a (better?) past. Thanks to DirectX, the raw drawing throughput of this version will be among the highest of all Intel ports. 800x600 is only about 20% slower than 320x200 on my Pentium 100, although it requires more than seven times as many bytes per second to be pumped across the PCI bus. UAE's native display depth is 16 bpp. This table shows how the net drawing speed is affected by your display type: 16 bpp full screen - 100% 16 bpp desktop - 98% 24 bpp desktop - 72% 32 bpp desktop - 60% Unfortunately, windowed mode clipping causes system services such as mouse/keyboard input and the file system to slow down (there is no way of avoiding this at the moment). This does not affect SMP machines. Sound is a luxury. Because sound output is strictly synchronized with video DMA, you _won't_ get clean sound _unless_ your machine is capable of running at 50 fps at least internally. Rule of thumb: Get a PPro or Pentium II if you want full graphics and full sound at the same time (reportedly, even the Pentium MMX 200 MHz, overclocked to 250 MHz [83.3 MHz bus speed], is a powerful platform for running UAE. I have no definite reports about the K6 and the M2 yet, but these should do pretty good as well.). On a Pentium 100 equipped with a Matrox Millennium, UAE-Win32/DirectX is slightly faster than the Linux version under AcceleratedX for programs that perform a _lot_ of screen updates, i.e. action games and demos. All other things should run at roughly the same speed. Note that you have to use -w n -S -1 -P 128 in order to benchmark the Win32 version against the Linux or DOS versions realistically, with n = M68K_SPEED (config.h), usually equal to 4. 4. Compatibility ================ The number of programs that don't run properly under UAE decreases with every new release. If you find a piece of software to require special treatment, please let me know. I have received copies of pirated software in my email in the past. Never ever do this to me. Consult compatibility.txt for tips on how to get software running and a growing collection of user-submitted parameters. In UAE 0.6.9, sprite problems are still an issue. A few broken programs require instruction prefetch and/or exception 3 to be emulated (e.g. Shadow of the Beast I, Katakis and Denaris). These can be forced to run by using uaec.exe instead of uaef.exe. Be warned: uaec.exe is roughly 15-25% slower than uaef.exe. 5. The Future ============= See todo.txt for features that are planned for future releases and their current status. 6. Acknowledgements =================== to Bernd Schmidt for creating this comprehensive emulation of the most complex home computer ever to Microsoft for contributing an excellent IDE and an operating system that hasn't crashed a single time during the development of this project, although I've done some pretty nonstandard things to it repeatedly :-> to the Free Software Foundation for providing an invaluable set of tools to Cygnus Software for porting them over to the Win32 environment to the flu that rendered me unable to do something more useful during the the first weekend of the year 1997 to Thomas Kessler for mercilessly tracking down and reporting even the most subtle bug to Andreas Schildbach for providing several hundred MIPS of raw CPU power and demonstrating that this program will actually make sense on the entry-level PC generation of 1998. :-)