Skip to content

The original public release of UAE 0.1 ported to SDL

Notifications You must be signed in to change notification settings

neozeed/uae-archive-uae-0.1

Repository files navigation

This is version 0.1 of UAE, the Unusable Amiga Emulator for Un*x systems.

1. <stddisclaim.h>

Copyright 1995 Bernd Schmidt. This program is freeware. You may do whatever
you want with it for personal use. Permission is granted to redistribute this
program free of charge, provided it is distributed in the full archive with
unmodified contents.
You may not port this program to Windows or any other so-called operating 
system made by Microsoft.
There are no warranties of any kind for this program. If you use this program,
you do so at your own risk. The author is not responsible for any damages 
that might result from using this program.
The program is not supposed to do anything useful. Don't expect it to work,
and you won't be disappointed.

2. What you need to get it to work

  - a Un*x system with the X Window System.
  - a C++ compiler. I use gcc; version 2.6.x will do, 2.7.0 will do better. 
    With some modifications it can be made to compile with gcc 2.5.8.
    Since only very few elements of C++ are used in the source, it should be
    possible to create a C version with minimal effort as well.
  - a Kickstart ROM file. I use 1.3, other versions may work, too.
  
I've successfully tested UAE on the following systems:
  - Pentium-90, Linux 1.2.7, X11R6 (XFree86 3.1.1), GCC 2.6.3
  - a while ago, i486DX2-66, Linux 1.1.>80, X11R6, GCC 2.5.8
  - HP Apollo, HP-UX, X11R5, GCC 2.6.0
  - Sun Sparcstation, X11R5, GCC 2.6.0
  
You see, it's fairly portable; it doesn't even rely on endianness.

What you need to enjoy it:
  - some programming skills to fix the bugs and add the missing features.
  - a CPU that is roughly 30 times faster than a Pentium 90.

To build UAE, first unpack it to an appropriate directory (e.g. /usr/src/uae
on a Linux system), cd into it and type "xmkmf" to create the Makefile. Then, 
do "make" to compile everything. Warnings can be ignored; there should be no
errors.
Some systems (the ones at my university) have a broken imake that generates
bogus Makefiles. For this, an examples Makefile is provided which can be
modified to suit your system.
After compilation, you'll need to install the ROM image. This must have a size
of exactly 512K and should be an image of the addresses 0xF80000-0xFFFFFF on
your Amiga system. You can dump it with any debugger that deserves its name,
and transfer it to a PC with a tool like CrossDos or MessyFS (or a serial
cable). It must be called kick.rom to be recognized.
You can also install a disk image file. This must be called wb13.adf (Amiga
Disk File), and should be a raw image of the data on the floppy disk: 
11x2x80 sectors == 901120 bytes. This will not buy you anything, since
floppy disk support is broken. The Kickstart will recognize that there's a
disk in the drive and try to boot from it, and therefore will not show the
startup logo. Since showing the logo is all the Kickstart ever does with the
emulator if there's no disk in the drive, you won't see anything at all, so 
don't install that disk file.
You can then execute the file "uae". It should load the Kickstart and
open a large X Window. UAE starts up in the builtin debugger, you can single 
step through the Kickstart if you want, but you can also type "f 1" to make it
run forever or until you press ^C, whichever comes first.

3. Current state of UAE

This program is only half-finished, that's why it is called the Unusable
Amiga Emulator. The following parts are already mostly complete:

  - MC68000 CPU: Almost done, some rare instructions (ABCD, ...) 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.
  - Copper: Not much to emulate here :-)
  - Timers: I think these are fully working, too.

Not done properly:
  - Playfield (display) hardware: Only black & white graphics, no dual
    playfield support, no HAM.
  - Sprites: None.
  - Sound: None.
  - Mouse, Keyboard, Joystick: None.
  - Timing: The CPU and blitter cycles are counted, but I have not bothered
    yet to adjust the timing to match the characteristics of a real A500
  - Floppy disk: Broken. I never modified disk.cc after creating it. It is not
    debugged and does not work.

Currently, this program can only display the Kickstart logo (hand holding
WB disk). If the disk support were working, it would probably boot and could
be made to execute some demos correctly.

4. Future

I have only very little spare time to work on this program. So, any help
is welcome.
If you fix any bugs or implement new features, please mail me any of these
enhancements (see below for address). If they are any good, I will include 
them into a new version of the emulator. You'll be credited for any of your 
changes that make it into the source.

Various approaches how to write an Amiga emulator have been discussed in
comp.emulators.misc, comp.emulators.cbm and comp.sys.amiga.emulations. This
implementation tries to emulate the behaviour of the Amiga hardware. This
hardware is supposed to be an A500 with Old Chipset, KS1.3 and 512K chipmem.
Extending this to ECS should be no problem, a 68020 emulation should be
possible as well, AGA may be tricky. I don't see a reason why newer
Kickstarts should fail with the emulator, please try it.

It should be possible to speed the thing up quite a bit. Currently, it is 30
times slower than it should be on my Pentium-90. I am sure this can be
improved by a factor of at least two. But currently, I think it's more
useful to work on compatibility instead.

Bugs: 
  - When the Kickstart tries to boot from a floppy, it doesn't seem to do the 
    Right Things. That may be a bug in the floppy support, or in the 68000
    part.
  - Somehow, I don't like what the Kickstart does with the copper lists when
    the system is initialized. COP2LC points at some location where no copper
    list is found. That may be a bug in the Kickstart, but I think that's
    unlikely.

5. The author's address

crux@pool.informatik.rwth-aachen.de

or, via snailmail

Bernd Schmidt
Schlossweiherstrasse 14
52072 Aachen
Germany

About

The original public release of UAE 0.1 ported to SDL

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published