home *** CD-ROM | disk | FTP | other *** search
- UAE-0.6.1
- AMIGA version
-
- by Samuel Devulder
- devulder@info.unicaen.fr
-
- Aug. 1996
-
-
- INTRODUCTION
- ============
-
- This the Amiga port of UAE v0.6.1. UAE is the Un*x Amiga Emulator
- written by Bernd Schmidt. This port was achieved by me (Samuel
- Devulder) and is slightly different from the original AMIGA port by
- Olaf Barthel (available in UAE v0.5.3). I thank him for his code that
- I used in this version (cybergfx part in awin.c).
-
- You should read the README file before this one to know more about uae.
- (how to use it, command-line options, what is emulated, and so on...).
-
- This port features many things. It is build with the help of ADE
- (Amiga Development Enviroment): GCC, ixemul, ... Thus allowing an easy
- port of the original unix version to the Amiga without a lot of
- modifications.
-
-
- REQUIREMENTS
- ============
-
- This version will work on any Amiga running at least AmigaOS v2.04 and
- is programmed to use AmigaOS v3.0 facilities when available. UAE needs
- roughly 8Mb of free ram to run on the Amiga. A fast processor is also
- strongly recommended.
-
- Note that you can use UAE under VMM and that uae can run under uae !
-
-
- FEATURES
- ========
-
- The joystick can be used within the emulation, allowing you to play
- games without destroying your numeric keypad with the '-J' option :-).
-
- The sound is not emulated as the emulation is too slow on the Amiga to
- be usefull.
-
- The CPU emulation is speed up by using ASM code to compute flags
- directly from the 680x0 SR/CCR register.
-
- It supports all Amiga natives mode as well as cybergraphics mode (that
- still needs to be tested; I'm waiting your bug-reports :-). It can run
- on a automatically-selected custom screen, or on a user-selected
- screen, or on the default public screen. It will dither the output
- when not enough colors are available (unless you disable dithering),
- and eventually use a grayscale palette if less that 8 colors are
- available. This will give you the best graphic output according to
- your configuration. (use "uae -h" to know how to selected the
- rendering style).
-
- You can mount Amiga partitions using the -m option, but as it is only a
- port, this version does not allow you to use Amiga disk-drives and you
- must use disk-files. Be sure to use unix convention when giving a path
- to UAE. For exemple do not do
-
- CLI> uae -m boot:dh0:path -0 /disks/df0.adf
-
- but rather
-
- CLI> uae -m boot:/dh0/path -0 ../disks/df0.adf
-
- This is not a bug, but an ixemul.library feature. May be you can read
- floppy disks by using a dev: handler (something like "uae -0
- /dev/trackdisk.device/0" might suffice).
-
- You can reset the emulator by pressing CTRL-ALT-DEL in UAE's window. I
- guess it reminds you something.
-
- The F12 key of the X11 version of uae is simulated by pressing
- CTRL-SHIFT-ALT-F10 simultanemously. This toggles the mouse emulation
- mode and is needed for some games or demos when you find that the
- mouse does not work well under UAE.
-
-
- HOW TO (RE-)BUILD UAE
- =====================
-
- If you wish to (re-)build uae, you need to have ADE/gcc correctly
- installed (see ftp://ftp.ninemoons.com/pub/ade/). Not all part of ADE
- are needed, but be sure to have gcc2.7.2, binutils, autoconf, awk, ...
-
- The default Makefile provided is for a mc68030 microprocessor. If you
- wish to have a Makefile tuned for your CPU, just type "sh -c configure".
-
- If you have deleted the file "configure", you can rebuild it from
- "configure.in". To do this, just type autoconf in a shell. Although be
- warned that ADE's autoconf is somehow buggy and the generated
- configure script is likely to generate a wrong "config.cache" file. So
- take care about the included configure script as this one is not buggy
- (I've modified my /share/autoconf/acgeneral.m4 file to remove that bug).
-
- Once your Makefile is generated (if needed), you can modify the file
- "config.h" to suit your needs. You can also modify "awin.c" to allow
- the support of cybergfx codes (you need to get CGraphX-DevKit.lha from
- aminet to do so).
-
- When you have configured uae correctly, type "make" in a shell. Then
- 1.5 hours later you get the uae executable (it might be less if you
- have a real fast Amiga). I know it's slow, but Amigas are slow (even
- those with 060 are not that fast, by today's standards ;-).
-
- To compile, 10Mb of free memory should be enough (I have 4Mb, but
- virtual memory helps in that case). The resulting directory size is
- roughtly 4Mb on my harddrive. Be sure to have a stack of at least
- 300Kb when compiling UAE and at least 32kb when UAE is running.
-
-
- REMARKS OR BUG-REPORTS
- ======================
-
- You can send me your remarks and bug-report to:
-
- devulder@info.unicaen.fr
-
-
- MODIFIED FILES
- ==============
-
- This Amiga port should compile well on other systems than the AmigaOS
- as no big hack was needed to do the port. All amiga specific code is
- embeded within #ifdef AMIGA / #endif pair.
-
- configure.in: Detection of target amiga.
-
- awin.c: Main Amiga file. It is a port of xwin.c that uses
- Amiga functions. (file added to the original uae-0.6.1
- archive).
-
- debug.c: Code to support ^C break. (see defined(AMIGA)).
-
- expansion.c: Check if malloc() returns NULL.
-
- filesys.c: Deletion of SAS/C code from Olaf's port (ixemul rules :)
-
- gencpu.c: GNU_FLAG_OPT (slight optimisation of flag evaluation
- using gcc extensions).
- M68K_FLAG_OPT (uses SR to evaluate flags).
-
- gfxutil.c: Added setup_maxcol() and setup_grey_dither_maxcol() for
- awin.c to run well. This should not interfere with the
- unix code.
- Make a special case for 8bit per pixel in DitherLine().
-
- main.c: Call unix parse_cmdline() in case of AMIGA.
- Use .uaerc in current directory if not found in $HOME.
-
- memory.c: Check if malloc() returns NULL.
-
- newcpu.c: M68K_FLAG_OPT code.
-
- os.c: Joystick emulation code. (I'm sorry to poke the
- hardware, but the gameport.device is awkward.. I need
- to have a look at the lowlevel.library).
-
- zfile.c: Special code for lha on unix as I've discovered that
- cmdline argument was different from lha on the Amiga.
-
- include/newcpu.h:
- M68K_FLAG_OPT code.
-
- include/options.h:
- Define M68K_FLAG_OPT when mc68000 is defined (might
- help mac version of uae too :-)
- Special code for fast_memcmp() and memcmpy() in case
- of m68000+.
- Defined REGPARAM to make use of gcc __attribute__
- extension.
-
- include/sysdeps.h:
- Redefinition of absolute values defined in libamiga.a.
-
-
- LAST NOTE
- =========
-
- Why emulate an Amiga on an Amiga ? That can seem to be a foolish
- behaviour.. Actually it is not !
-
- Many old games/demos refuse to work well if you are using a 68030+;
- even with degrader running. In that case, uae might be usefull.
-
- UAE might also help graphic-board owners. With UAE, they can view all
- the demos with copper and blitter effects that fails to run on their
- graphics board. Or run programs like Deluxe-Paint or Brilliance that
- poke the hardware directly.
-
- Using uae on a 68040+ Amiga will let you play games or demos on your
- workbench, in a perfect multitasking. And that is, believe me, quite
- amazing (even on my poor 68030 :-)
-
- The main advantage of uae, will be when PowerPC Amigas will come out.
- On these machines, I bet no old programs will run. Those machines will
- certainly include a 680x0 emulation enough to run DOS programs, but
- certainly not sufficient to run old games. Thanks to UAE, backward
- compatibility will not be a problem anymore. UAE is definitely a cool
- thing.