Short: Version 0.4.3 of UAE, the Un*x Amiga Emulator Author: Bernd Schmidt Uploader: Santagostino Carlo Type: misc/unix now is USABLE!!! Emulates a full Amiga 500 (blitter, copper, drives etc.) full speed on a P166 (or a DEC ALPHA, SGI, HPUX etc.) Need kickstart ROMS. -------------------------------------------------------- This is version 0.4.3 of UAE, the Un*x Amiga Emulator. 1. Copyright 1995, 1996 Bernd Schmidt & contributors (see below). This program is freeware. You may do whatever you want with it for personal use. Permission is granted to call it a simulator if it makes you happy and you can give me a satisfactory explanation why "simulator" and "emulator" are not synonyms. Permission is granted to redistribute this program free of charge, provided it is distributed in the full archive with unmodified contents and no profit beyond the price of the media on which it is distributed is made. Exception: It may be included on freeware/shareware collections on CD-ROM. There are no warranties of any kind for this program. If you use this program, you do so at your own risk. The authors are not responsible for any damages that might result from using this program. This program is still in an early development stage. It contains bugs and is not user-friendly. 2. What you need to get it to work - a Un*x system with the X Window System, or, if you use Linux, SVGAlib. X is much more stable and not that much slower, so use X if possible. SVGAlib can get your system into an unusable state if it crashes. You have been warned. - A graphics card that lets you use a resolution of at least 800x600 in 65536 colors. You can compile UAE for 256 color screens, but the colors will not be quite as good. - a C compiler. An _ANSI_ C compiler. What most workstation vendors ship is not a compiler, but a nightmare. Use GCC if it is available. - A Kickstart ROM file. I've heard success reports with Kickstart 1.3, 2.0, 3.0 and 3.1 from various people. There seem to exist special 68020+ versions of newer Kickstarts. These will not work, neither will EPROM versions, and neither will ZKick files. Please do not ask me to send you one. The Kickstart is copyrighted, and I can't pass it around. This version of the emulator can boot some programs even without a Kickstart. See below for more information. I've successfully tested UAE on the following systems: - Pentium-90, Linux 1.3.45; X11R6 (XFree86 3.1.1) / SVGAlib 1.2.9, GCC 2.7.2 - HP Apollo, HP-UX, X11R5, GCC 2.6.0 - Sun Sparcstation, Solaris, OpenWindows, GCC 2.6.1 Several people have successfully run previous versions on a variety of systems, including a SGI Indy, Suns, a DEC Alpha and a m88k based Unix box. 8. Current state of UAE The following parts are already mostly complete: - MC68000 CPU: Almost done, some rare instructions are not emulated yet. I'd like to make this a 68020 emulation, but I need more info than I have about the special registers (MMU etc.) Maybe it will one day run Linux/68k! - Blitter: If there's no bug, it ought to be complete. - Timers: I think these are fully working, too. - Copper: Not much to emulate here :-) - Floppy disk: Standard AmigaDOS disks seem to work O.K., some special formats can be made to work (not yet really supported). - Playfield (display) hardware: Normal cases are working, as well as dual playfields, EHB and HAM and interlace (interlace only with correct aspect) - Mouse, Keyboard, Joystick: Mouse and joystick should be autocalibrating. Only DE and US are supported as keyboard languages. - Sprites: Still one or two bugs, but usually working. - Sound: Some support (Linux only). Not too useful right now. See below. Not done: - "System control hardware": That's what the HRM calls sprite/playfield collisions/priorities. Only the most common priority settings are implemented. - Timing: It does not really behave like a real A500, but I don't think complete accuracy is necessary. 9. Input devices Mouse, keyboard and joystick can be used in a straightforward way. Two keyboard languages are supported right now: german and US keyboard. If you have a different keyboard, patches to make UAE work with it are appreciated. The X version of the emulator will try to keep the Amiga mouse pointer at the same location as the X mouse pointer. You can turn off this mode if it does not work with your program by pressing F12. This is needed (for example) for Lemmings and the Magnetic Scrolls adventures, which don't use sprite 0 as a mouse pointer. The SVGAlib version does not have this problem. If you use Linux and have the joystick driver kernel module, you can configure UAE to use it. The joystick should be autocalibrating. Turn it a few times on startup to get the calibration done. 10. Sound You probably noticed the LINUX_SOUND configuration option. If defined, this will make the emulator use /dev/dsp to output sound with 16 bit, at a frequency of 44100KHz. Your soundcard has to support this rate. If it does not, your results will be unpredictable. If graphics output is enabled while sound is output, the emulator will be much too slow on all current systems. The sound will not be continuous. Therefore, a hack to turn off screen updates is provided: Press ScrollLock to disable graphics, press it again to enable them (note: for X, you'll have to press it twice each time). The LINUX_SOUND_SLOW_MACHINE option will steal cycles from the CPU emulator. The relative CPU speed will be reduced somewhat if this option is set. This may lead to incompatibilities. The system should not be heavily loaded (no blitter or disk activity) while sound is being played, or even this will be too slow. Only a subset of the Amiga sound hardware is emulated. Attached channels are not implemented, neither is CPU-driven output. Currently, this implementation is good enough to play *Tracker modules and some game title melodies. It is fast enough (on a P90, without the LINUX_SOUND_SLOW_MACHINE option) to play modules using a Workbench player program if no other (Amiga) processes are active. On other Unix systems, the AF sound system may be available. You can configure UAE to use this, too, by changing some paths in the Makefile. 11. Speed A Pentium with about 500MHz would be nice... (*) but even a Pentium-90 is not that bad, if you set the frame rate to a high value, e.g. 9. Animations will not be smooth if not all frames are drawn, but the speed of the emulation will be considerably higher. The speed of the emulation is not fixed. Programs that make heavy use of blitter, copper and disk DMA will run somewhat slower than programs that only use the CPU. More bitplanes and sprites will also slow things down. The speed also depends very much on configuration options. UAE can calculate the average time it needs to finish one Amiga frame. Use the 'c' debugging command. If you use SVGAlib, the average frame rate will be displayed when you exit UAE, provided the library doesn't mess up your text-mode screen when you exit. There used to be a table here with speed comparisons, but it was getting constantly out of date. Short summary: A Pentium-90 will be 4-5 times slower than a real A500 at full frame rate. If you reduce the frame rate, it is only about 2 times slower. It can achieve full speed for sound output if graphics are turned off (useful for module players).