Annotation of uae/docs/README, revision 1.1.1.15

1.1.1.15! root        1: This is version 0.8.15 of UAE, the Un*x Amiga Emulator.
1.1.1.5   root        2: 
                      3: Versions numbered 0.8.x are beta versions, to be used for development only.
                      4: If you are only a user of UAE, you are better off using the latest 0.7.x
                      5: version or waiting for 0.9.0.
                      6: 
1.1       root        7: 
1.1.1.3   root        8: License
                      9: =======
1.1       root       10: 
1.1.1.5   root       11: UAE is available under the terms of the GNU General Public License. This means
                     12: that it is free software: you are welcome to distribute copies of it and/or
                     13: modify it, under certain conditions. It also means that there is no warranty
                     14: for UAE.
                     15: See the file COPYING that is included in the top level directory of this
                     16: archive for details.
1.1       root       17: 
1.1.1.9   root       18: The SCSI code distributed with UAE is also available under the terms of the
                     19: GPL and was written by J. Schilling.
                     20: 
1.1       root       21: 
                     22: Overview
                     23: ========
                     24: 
1.1.1.2   root       25: An emulator is a program which enables you to run software for a machine
                     26: which has non-native hardware and a non-native operating system, on your
                     27: computer.  UAE allows you to run most of the available Amiga software. It is a
                     28: software emulation, meaning that no extra or special hardware is needed to do
                     29: this. The hardware of an Amiga is emulated accurately, so that Amiga software
                     30: is tricked into thinking it is running on the real thing, with your computer's
                     31: display, keyboard, harddisk and mouse taking the parts of their emulated
                     32: counterparts.
1.1       root       33: 
                     34: UAE was developed for Unixoid systems. Meanwhile, it has been ported to the
1.1.1.2   root       35: Mac, DOS, the BeBox, NextStep, the XFree86/OS2 environment and the Amigas (it
                     36: can run itself by now). You should have received several other files along
                     37: with this document with details on how to install and use the version for your
                     38: operating system.
1.1       root       39: 
                     40: This section is just what it says: an overview. Please read _all_ of this
1.1.1.2   root       41: file, especially if you have problems. UAE has many, many features and
                     42: equally many configuration options. If you don't know about them, it's likely
                     43: that UAE doesn't work for you, or doesn't work as good as it could.
                     44: 
                     45: Please read also the file "FAQ" which contains some Frequently Asked
1.1.1.3   root       46: Questions (and even the answers!) You should also look for a document
                     47: describing the specific port of UAE to the operating system you are using,
                     48: for example "BeOS/README" or "DOS/README".
1.1.1.2   root       49: 
                     50: People have complained that the UAE documentation contains only "weird jargon".
                     51: Sorry about this. Despite what MessySoft and Tomato tell you, computer
                     52: programs aren't always easy to use. UAE does require some assistance from you,
                     53: and therefore you should at least understand a bit about computers. After all,
                     54: you are an Amiga fan, so you should know what a Workbench is, don't you think?
1.1       root       55: 
                     56: 
1.1.1.2   root       57: Features
                     58: ========
                     59: 
                     60: This version of UAE emulates:
1.1       root       61: 
1.1.1.5   root       62: - A 68000, 68010 or 68020 CPU, optionally a 68881 FPU
1.1.1.2   root       63: - OCS Graphics Chipset, plus big blits from the ECS Chipset
1.1.1.5   root       64: - Up to 2MB Chip RAM and up to 8MB Fast RAM, or 8MB Chip RAM without Fast RAM
                     65: - Up to 64MB Zorro III Fast RAM, independent of Chip RAM setting (68020 only)
1.1.1.3   root       66: - Up to 1MB Slow RAM, for extended compatibility with problem software
                     67: - Up to 8MB of graphics card memory, usable by software that supports
1.1.1.5   root       68:   Picasso 96 compatible graphics cards
                     69: - 4 x 3.5" floppy disk drives (DF0:, DF1:, DF2: and DF3:). It's not possible to
                     70:   read Amiga disks, so these are emulated with disk files.
                     71: - A hard-disk: either a harddisk image file or part of the native filesystem
1.1.1.2   root       72: - Joystick support (with option of mapping joystick to numeric keypad)
                     73: - Mouse support
                     74: - Ability to run in various screen modes (for better display quality or
                     75:   better speed)
1.1.1.5   root       76: - Full stereo sound support, consisting of 4 x 8bit channels
1.1.1.3   root       77: - Beta parallel and serial port support
1.1.1.2   root       78: - some other things which don't work well enough to mention them here...
                     79: 
                     80:   
                     81: Requirements (IMPORTANT! READ THIS!)/Limitations
                     82: ================================================
                     83: 
                     84: Not emulated:
1.1.1.3   root       85: - Sprite to playfield collisions (sprite to sprite collisions work)
                     86: - An MMU (part of 68030/040 CPUs except those that Commodore used). This means
1.1.1.2   root       87:   you can't use virtual memory systems or real operating systems like Linux
                     88:   or BSD.
                     89: - The AGA chipset (A4000/A1200). This chipset has enhanced capabilites for
                     90:   up to 256 colors in all resolutions.
1.1.1.11  root       91: - Serial port emulation exists but doesn't work too well.
1.1.1.2   root       92: 
                     93: Since the PC floppy controller can't read Amiga disks (yes, that's a fact), 
                     94: floppy access has to be emulated differently: Floppies are emulated by means 
                     95: of disk files that contain a raw image of the floppy disk you want to emulate.
                     96: A disk file is an image of the raw data on an Amiga floppy disk, it contains
                     97: 901120 bytes (880K), which is the standard capacity of an Amiga disk.
                     98: 
                     99: To actually run the program, you'll need to install the ROM image from your
                    100: Amiga. You can't run UAE if you don't have this image. It is not included
                    101: because it is copyrighted software. Don't ask me to send you one. I won't.
                    102: If you don't have an Amiga and still want to use UAE, you'll have to buy an
                    103: Amiga or at least the system software (ROM + Workbench) first.
                    104: The Kickstart image can have a size of either 256K or 512K. It must be named
                    105: "kick.rom" by default.
                    106: 
                    107: Read the section "tools" below for information how to create ROM images and
                    108: disk files.
1.1       root      109: 
                    110: If you don't have a Kickstart file, you may still be able to boot some games
                    111: and demos. The emulator includes some primitive bootstrap code that will try
                    112: to read and execute the bootblock of the diskfile you are using, and if that
                    113: bootblock only uses the one or two Kickstart functions that are supported by 
                    114: the "replacement Kickstart", your program will boot. Don't expect too much, 
                    115: though.
                    116: 
1.1.1.2   root      117: You'll also need some other software to run - why else would you want to
                    118: emulate an Amiga? There are several ways to make the software accessible to
1.1.1.3   root      119: UAE, either with disk image files or with a harddisk emulation. You should
                    120: make an image of your Amiga's Workbench disk and install it as "df0.adf"
                    121: (adf = Amiga Disk File) when you use UAE for the first time. More about how
                    122: to create these files in the chapter "Transferring software"
                    123: 
                    124: To use Picasso96 emulation, you need the Picasso96 libraries, which are also
                    125: not included. They can be obtained (e.g.) from Aminet.
1.1       root      126: 
                    127: 
                    128: Invoking UAE
                    129: ============
                    130: 
1.1.1.2   root      131: First, read the system-specific documents for information how to set up UAE.
                    132: You should have an executable program called "uae". You can simply execute it,
1.1.1.7   root      133: but you can also optionally give it one or more of the following parameters:
                    134: 
                    135:  -h              : Print out a help text.
                    136:  -f file         : Load a configuration file
                    137:  -s opt=val      : Set the emulator's option "opt" to value "val".
                    138: 
                    139: Configuration files consist of several lines of the form "opt=val", just as
                    140: with the "-s" parameter.  You can use the following options with the "-s"
                    141: option, or in a config file.
                    142: [Here, "=n" means the option takes a number as value.  "=bool" means the option
                    143: takes a value of either "yes" or "no" (or "true", "false", or abbreviations of
                    144: any of these).  There are other classes as well.]
1.1       root      145: 
                    146: General options:
1.1.1.7   root      147: accuracy=n [default=2]
                    148:   Set emulator accuracy to n. The default is n = 2, which means the
                    149:   emulator will try to be as accurate as possible. This no longer
                    150:   does much in this version, and I'll probably remove it.
                    151: framerate=n [default=1]
                    152:   Sets the frame rate to 1/n. Only every nth screen will be drawn.  Using a
                    153:   higher value can speed up the emulator, at the expense of graphics quality.
                    154: autoconfig=bool [default=yes]
                    155:   If this is enabled, all expansion devices provided by the emulation will be
                    156:   automounted. You should only disable this if you have a Kickstart ROM
                    157:   earlier than 1.3 which can't cope with this. Some badly written games and
                    158:   demos might also be incompatible with this.
                    159: kbd_lang=lang [default=us]
                    160:   Set the keyboard language. Currently, the following values can be used: "us"
                    161:   for U.S. keyboard (default), "se" for swedish, "fr" for french, "it" for
                    162:   italian, "es" for spanish, or "de" for german keyboard.
                    163:   This setting only affects the X11 version.
                    164: floppy0=file [default=df0.adf]
                    165:   Try to use the specified file as diskfile for drive 0 instead of df0.adf.
                    166:   The options floppy1, floppy2, and floppy3 also exist.
                    167: kickstart_rom_file=file [default=kick.rom]
                    168:   Use the specified file instead of kick.rom as Kickstart image.
                    169: joyport0=mode [default=mouse]
                    170:   Specify how to emulate joystick port 0. You can use "mouse", "joy0", or
                    171:   "joy1" to use the corresponding input devices of your machine, or you can
1.1.1.14  root      172:   select several different keyboard replacements for a joystick:
                    173:     "kbd1" for the numeric pad.  '0' is the fire button.  Three keys on the
                    174:            numeric pad act as autofire toggle: '.' (or ',' depending on your
                    175:            keyboard language), Enter and the division key.
                    176:     "kbd2" for the cursor keys with right control key as fire button and the
                    177:            right shift key as autofire toggle
                    178:     "kbd3" for T/F/H/B with the left Alt key as fire button and the left Shift
                    179:            key as autofire toggle.
                    180:   The autofire toggle keys will turn on autofire (25 shots per second), it
                    181:   will stay enabled until you hit the autofire toggle again.
1.1.1.7   root      182: joyport1=mode [default=joy0]
                    183:   Like joyport0, but for the Amiga's joystick port 1.
                    184: use_gui=bool [default=yes]
                    185:   Show a user-interface that enables changing these options at run-time.
                    186: 32bit_blits=bool [default=no]
                    187:   If enabled, the blitter emulation will use 32 bit operations where that
                    188:   seems profitable (note that this will cause bus errors on most  RISC
                    189:   machines)
                    190: immediate_blits=bool [default=no]
                    191:   If enabled, all blits will finish immediately, which can be nice for speed,
                    192:   but may cause incompatibilities.
                    193: cpu_speed=speed [default=4]
                    194:   This can have a value of "real", "max", or an integer between 1 and 20.
                    195:   "real" will try to give the CPU emulation exactly as many cycles, relative
                    196:   to the other chips, as on a real A500.  "max" will try to give you the
                    197:   maximum CPU emulation speed achievable on your machine.  Numeric values
                    198:   specify a fixed relation between CPU and custom chip emulation, where lower
                    199:   values prioritize CPU emulation, while higher values prioritize custom chip
                    200:   emulation.
                    201: cpu_type=type [default=68000]
                    202:   Controls which CPU is emulated. This can be "68000", "68010", "68020" or
                    203:   "68020/68881".  In some cases, you may need to use "68ec020" or
                    204:   "68ec020/68881" to emulate a crippled variant of the 68020 that has only a
                    205:   24 bit address bus.  Some software, including some Kickstart versions, does
                    206:   not work with a normal 68020 that has a 32 bit address bus.
                    207:   Careful: using an "ec" variant has harmful side effects, and should be
                    208:   disabled unless absolutely needed (you lose Z3 memory and Picasso
                    209:   emulation).
                    210: cpu_compatible=bool [default=no]
                    211:   If enabled, a slower but slightly more accurate variant of the CPU emulation
                    212:   will be used.  This is needed for some types of copy protection, among other
                    213:   things. This is only meaningful for a CPU type of "68000".
1.1.1.14  root      214: nr_floppies=n [default=4]
                    215:   The emulator will emulate this many external floppy drives.  Some very old
                    216:   games apparently have problems if this is larger than 1, but for all normal
                    217:   programs the default is good enough.
1.1       root      218: 
1.1.1.3   root      219: Emulating external devices (harddisk, CD-ROM, printer, serial port):
1.1.1.7   root      220: filesystem=access,volume:path [default=no filesystems mounted]
                    221:   Mount the host's file system at "path" as an Amiga filesystem with volume
                    222:   name "VOLUME:".  "access" can be either "ro" (for readonly), or "rw" (for
                    223:   read-write).  If you want to mount a CD-ROM, you should use a readonly
                    224:   mount.  You can mount multiple file systems.
                    225:   See below.
                    226: hardfile=access,secs,heads,reserved,bsize,file [default=no hardfiles mounted]
                    227:   Mount the hardfile "file" as an emulated harddisk, using a geometry of
                    228:   "secs" sectors per track, "heads" surfaces and "nr" reserved blocks.
                    229:   Each sector should have "bsize" bytes. This can be abused to mount
                    230:   floppy images.  You can mount multiple hardfiles.
                    231:   See below.
1.1       root      232: 
                    233: Sound options:
1.1.1.7   root      234: sound_output=type [default=none]
                    235:   The type of sound output can be "none" (no sound at all), "interrupts"
                    236:   (emulated for the internal side effects that can be noticed by programs,
                    237:   but no sound output), "normal" (emulated, and sound output), "exact" (a
                    238:   slightly more accurate emulation that may be necessary in some cases, but
                    239:   can also be slower).
                    240: sound_channels=type [default=mono]
                    241:   Can be "mono" or "stereo".
                    242: sound_bits=n [default varies across UAE versions on different OS types]
                    243:   Common values are 8 (low quality) or 16 (high quality)
                    244: sound_frequency=n [default varies across UAE versions on different OS types]
                    245:   Common values are 22050 or 44100. The quality of sound output increases with
                    246:   the frequency.
                    247: sound_min_buff=n
                    248: sound_max_buff=n [default varies across UAE versions on different OS types]
                    249:   You can specify the minimum and maximum size of the sound buffer.
                    250:   Smaller buffers reduce latency.  Usually only the minimum size is used.
1.1.1.10  root      251: sound_interpol=type [default none]
                    252:   Normally, sound samples are output exactly as they are computed, without
                    253:   any post-processing.  This can generate errors in the sound output when the
                    254:   output frequency isn't an even multiple of the input frequency.  These
                    255:   errors are usuable perceived as a high-frequency noise.
                    256:   There are currently two types of interpolation available, both under
                    257:   experimentation.  You can use either "rh" or "crux" as value for this
                    258:   option.  Note that no interpolation is supported for 8 bit output; you need
                    259:   to use 16 bit output to hear a difference.  If you have any comments about
                    260:   the effects of either method on audio quality, I'd be very interested to
                    261:   hear them.
1.1.1.3   root      262: 
1.1       root      263: Memory options:
1.1.1.7   root      264: bogomem_size=n [default=0]
                    265:   Emulate n*256K slow memory at 0xC00000. Some demos/games need this.
                    266: fastmem_size=n [default=0]
                    267:   Emulate n megabytes of fast memory as an expansion board.
                    268: z3mem_size=n [default=0]
                    269:   Emulate n megabytes of Zorro III fast memory as an expansion board.
                    270: chipmem_size=n [default=4]
                    271:   Emulate n*512K chip memory. Some very broken programs need specific amounts
                    272:   of chip mem to work properly. The largest valid value is 16, which means 8MB
                    273:   chip memory.
                    274: 
                    275: Display options:
                    276: gfx_width=n [default=800]
                    277:   Use a window that is n pixels wide for displaying the Amiga screen.
                    278: gfx_height=n [default=300]
                    279:   Use a window that is n pixels high for displaying the Amiga screen.
                    280: gfx_lores=bool [default=no]
                    281:   Enable this option if you use a very small window width (320 to 400 pixels)
                    282:   to shrink the display horizontally.
                    283: gfx_linemode=type [default=none]
                    284:   The type can be none (every line is drawn once), "double" (every line is
                    285:   drawn twice), and "scanlines" (every line is drawn once, but the image is
                    286:   stretched vertically by inserting a black line every other line to simulate
                    287:   the display on an old monitor).
                    288:   The "double" mode gives best results, but slows down the emulation quite a
                    289:   lot. Don't use the "none" mode if you want a decent interlace emulation.
                    290:   If you use "double" or "scanlines", your window needs to be twice as high
                    291:   as when using the "none" mode.
                    292: gfx_correct_aspect=bool [default=none]
                    293:   Try to fit the image into the specified window dimensions by leaving out
                    294:   certain lines.  Useful if you want to fit a 640x512 Amiga display in a
                    295:   640x480 window.
                    296: gfx_center_vertical=bool [default=no]
                    297: gfx_center_horizontal=bool [default=no]
                    298:   If you use a smaller window than 800x300 (400x300 with "gfx_lores" option or
                    299:   800x600 with a gfx_linemode other than "none"), not all parts of the display
                    300:   will fit on the screen. By enabling the necessary centering options, you can
                    301:   ask the emulator to try and move the screen contents so that the relevant
                    302:   parts are displayed. If you are unlucky, this can cause the contents to jump
                    303:   around a bit in certain cases.
                    304: gfx_fullscreen_amiga=bool [default=no]
                    305:   Enable if you want to use the full screen, not a window on the desktop, for
                    306:   the Amiga display.  Some ports (DOS, SVGAlib) always use fullscreen mode.
                    307: gfx_fullscreen_picasso=bool [default=no]
                    308:   Like gfx_fullscreen_amiga, but for the Picasso graphics card display.
                    309: gfx_color_mode=mode [default=8bit]
                    310:   Select a color mode to use.
                    311:   Color modes: 8bit (256 colors), 15bit (32768 colors), 16bit (65536 colors),
                    312:               8bit_dithered (256 colors, with dithering to improve quality),
                    313:               4bit_dithered (16 colors, dithered); 32bit (16 million colors)
1.1.1.10  root      314: gfxcard_size=n [default=0]
1.1.1.7   root      315:   Emulate a Picasso 96 compatible graphics card with n MB graphics memory.
                    316:   This requires that you use set the CPU type to "68020" or higher, and that
                    317:   you do not use 24 bit addressing.
1.1.1.3   root      318: 
                    319: Debugging options (not interesting for most users):
1.1.1.7   root      320: use_debugger=bool [default=no]
                    321:   If enabled, don't start the emulator at once, use the built-in debugger.
                    322: log_illegal_mem [default=no]
                    323:   If enabled, print illegal memory accesses
1.1       root      324: 
1.1.1.2   root      325: 
                    326: Whew. You'll probably have to experiment a little to get a feeling for it.
1.1.1.3   root      327: 
1.1.1.2   root      328: 
1.1       root      329: You can also put these options into a configuration file in your home
                    330: directory. Simply create ~/.uaerc and put some of these options in it. On
                    331: non-Unix systems, the file is called uae.rc and should be located in the
                    332: current directory.
                    333: 
                    334: 
                    335: Choosing color and screen modes
                    336: ===============================
                    337: 
                    338: As described in the previous paragraph, UAE can run in many different 
                    339: resolutions and color modes. However, few of the color mode options are
                    340: available if you use the X11 version of UAE, since the X server determines
                    341: how many colors are available. If you are running a 256 color X server, you
                    342: can use "-H3" to tell UAE to dither the colors for better results.
                    343: 
                    344: You will have to experiment which mode gives the best results for you at a
                    345: satisfying speed. Note that the dithering process consumes time, so even if
                    346: 256 colors with dithering look better than 256 colors without, remember that
                    347: UAE will be slower in that mode.
                    348: 
                    349: The recommended resolution is 800x600. In the lower resolution modes, some
                    350: overscan pictures the Amiga tries to display may not fit entirely on the
                    351: screen, others may be off-center and some graphical effects may look weird.
                    352: For best results, use 800x600 with at least 32768 colors.
1.1.1.3   root      353: For speed, use 400x300 lores with 256 colors.
                    354: 
                    355: _Don't_ use 24 bit or 32 bit screen modes, unless you absolutely have to.
                    356: These are way too slow to be usable.
1.1       root      357: 
                    358: 
                    359: Harddisk emulation
                    360: ==================
                    361: 
1.1.1.3   root      362: Since using diskfiles is awkward, it is necessary to emulate harddisks. There
                    363: are two ways how you can use large amounts of data with UAE: harddisk files
                    364: and mounted directories.
                    365: 
                    366: 1. Harddisk files
                    367: 
                    368: Harddisk files are large files that contain the image of an Amiga filesystem.
                    369: They work much the same way as a disk file. You can simply create a large
                    370: empty file and tell UAE to use it as a hardfile, but you will need to format
                    371: it from the emulation before you can actually use it.
1.1       root      372: 
1.1.1.3   root      373: Under Unix, You can create a (unformatted) harddisk file with
1.1       root      374:   dd if=/dev/zero of=hardfile bs=512 count=16384
1.1.1.3   root      375: That will create an 8MB file. Other ports of UAE may come with a utility
                    376: called "makedisk" or other ways to create such a file.
1.1.1.2   root      377: 
1.1.1.3   root      378: To tell the emulator that you want to use a certain file as a hardfile, use
                    379: the "-W" option, for example
                    380:   uae -W 32:1:2:hardfile
                    381: The first three numbers are geometry information which tell the AmigaOS how
                    382: the file is organized. The first number (32) is the number of sectors per
                    383: track, the second number (1) is the number of heads or surfaces, the third
                    384: number (2) is the number of reserved blocks. If you use "normal" sizes
                    385: (powers of two, like 32MB), then you should be OK using the same numbers as
                    386: in the above example. Using different numbers can make sense if you transfer
                    387: the image of a real Amiga harddisk which uses a different geometry. The last
                    388: field of the argument to the "-W" option is the name of the harddisk file.
                    389: 
                    390: If you are using Kickstart 1.3 or earlier, hardfiles can't currently be
                    391: mounted at boot time, and therefore you can't boot from it either. You will
                    392: have to boot either from a floppy disk image or from a filesystem (see below),
                    393: and mount the hardfile.device later. To do this, add the following to
                    394: "DEVS:mountlist":
1.1       root      395: 
1.1.1.3   root      396: UAE0:     Device = uaehf.device
1.1       root      397:           Unit   = 0
                    398:           Flags  = 0
                    399:           Surfaces  = 1
                    400:           BlocksPerTrack = 32
                    401:           Reserved = 1
                    402:           Interleave = 0
                    403:           LowCyl = 0  ;  HighCyl = 511
                    404:           Buffers = 5
                    405:           DosType = 0x444F5300
                    406:           BufMemType = 1
                    407: #
                    408: 
1.1.1.3   root      409: (You may need to adjust the values if you specified a different geometry,
                    410: and/or your hardfile has a different size than 8MB, and/or the hardfile is not
                    411: mounted as UAE0: because you mounted other harddisks before it.)
                    412: 
1.1       root      413: Then, type "mount UAE0:" (or put that command in your startup-sequence), and
                    414: you should be able to access it. Don't forget to format it with the AmigaDOS
                    415: format command:
                    416: 
                    417:   format drive uae0: name Mister_Willwink
                    418: 
1.1.1.3   root      419: b) Accessing native filesystems from the emulator
1.1       root      420: 
                    421: This has some major advantages:
                    422:  - It has no problems with Kickstart 1.3
                    423:  - It is more convenient.
1.1.1.3   root      424:  - It is much faster.
1.1       root      425: 
1.1.1.2   root      426: If you specify the -M or -m command line arguments, you your native filesystem 
                    427: from the emulator. If you start UAE with
1.1       root      428: 
                    429:   uae -m sound:/usr/amiga/modules
1.1.1.2   root      430: 
1.1       root      431: you can access all the files in /usr/amiga/modules by reading from the
                    432: AmigaDOS volume "SOUND:".
                    433: (DOS users: try "uae -m dh0:C:\" to mount your drive C:\ as DH0:)
                    434: 
1.1.1.3   root      435: You can mount up to 20 devices, either hardfiles or filesystems, by giving
                    436: either of these options multiple times. The volumes will be named UAE0:,
                    437: UAE1:, etc. UAE will boot from UAE0: if no diskfile is found for floppy
                    438: drive 0.
                    439: You can also use native filesystems to mount Amiga CD-ROMs, and you can
                    440: abuse the hardfile emulation to mount floppy disks: "uae -W 11:2:2:wb13.adf"
                    441: will mount the diskfile "wb13.adf".
1.1       root      442: 
                    443: 
                    444: Tools / Transferring files
                    445: ==========================
                    446: 
1.1.1.2   root      447: As you should know by now, you need to transfer files between your Amiga and
                    448: the machine you run UAE on. There are several ways how to do this.
                    449: 
                    450: - Using a null modem cable, and a terminal package running on each machine,
                    451:   you can transfer the file(s) via Zmodem upload/download. 68000 equipped
                    452:   Amigas can normally attain around 3000cps through the null modem cable,
                    453:   using the standard Commodore serial.device.  However, by using the device
                    454:   replacement BaudBandit.device, anything up to 5500cps can be attained.
                    455:   BaudBandit can be obtained from Aminet.  A second alternative is to use
                    456:   the BASIC program adfi.bas (included with UAE) to transfer a file from the
                    457:   Amiga to the PC via the null modem cable.
                    458:   
                    459: - If you're using CrossDOS on your Amiga, you can compress the disk or
                    460:   kickstart image using LhA or similar PC compatible archiver and copy it to
                    461:   a 720KB floppy disk.  You can now take the disk over to the PC, copy the
                    462:   compressed file to the UAE directory and uncompress it.
                    463:   If you don't have CrossDOS on the Amiga, there is a similar freeware tool
                    464:   called Msh, which can be found on Aminet or on Fish disk 382 or 327.
                    465: 
                    466: In either case, you ought to read the documentation for the programs that
                    467: you use for the transfer. These programs can't be explained here.
1.1       root      468: 
1.1.1.2   root      469: In the "amiga" subdirectory you'll find two small Amiga programs that will
                    470: help you to generate the necessary image files. These are called transrom 
1.1       root      471: and transdisk. Copy them to your Amiga and make them executable (by typing
1.1.1.2   root      472: "protect transrom rwed" and "protect transdisk rwed" in the Amiga shell
1.1       root      473: window).
                    474: transrom will dump the contents of your Kickstart ROM, and transdisk will 
                    475: dump an image of a floppy in one of the drives. Both programs write to the
1.1.1.2   root      476: standard output (read: the screen), so you'll want to redirect that. Do
1.1       root      477: 
                    478:    transrom >ram:kick.rom
                    479:    
                    480: to create a file called "kick.rom" in the RAM disk, and
                    481: 
                    482:    transdisk >ram:df0.adf
                    483:    
                    484: to create a file called "df0.adf" in the RAM disk. These files are pretty
1.1.1.2   root      485: big, 262144 or 524288 bytes for the ROM image and 901120 bytes for a disk 
                    486: image.
1.1.1.3   root      487: 
                    488: NEVER run either of these programs from the Workbench. Always open a Shell
                    489: or CLI window to do this.
                    490: 
1.1       root      491: transdisk understands the following arguments:
                    492: 
                    493:     -d device unit: Use this device instead of DF0:
1.1.1.2   root      494:     -s n:           Begin transfer at track n (default: 0)
                    495:     -e n:           End transfer at track n (default: 79)
                    496:     -w file:        don't read from the floppy, instead write the contents
                    497:                     of "file" to the floppy
                    498:     -h:             Treat the disk as high-density disk. HD images aren't
                    499:                     supported by UAE yet, though. Note that the resulting
                    500:                    file will be twice as big.
1.1       root      501: 
                    502: So, to transfer the disk in drive DF1:, you'd give the command:
                    503: 
                    504:   transdisk >ram:df1.adf -d trackdisk 1
                    505: 
                    506: If you don't have much RAM and can't fit all of a disk image in the RAM disk,
                    507: you can split up the transfer into multiple parts with the "-s" and "-e"
                    508: parameters. To transfer the disk in four parts, you'd use the following 
                    509: commands:
                    510:   
                    511:   transdisk >ram:df0_1.adf -s 0 -e 19
                    512:   transdisk >ram:df0_2.adf -s 20 -e 39
                    513:   transdisk >ram:df0_3.adf -s 40 -e 59
                    514:   transdisk >ram:df0_4.adf -s 60 -e 79
                    515: 
                    516: Of course, you should save each of the four files to another place before
                    517: transferring the next one with transdisk to make space in your RAM disk. 
                    518: If you have all the files on your PC, you can do the following under Unix:
                    519:   cat df0_1.adf df0_2.adf df0_3.adf df0_4.adf >df0.adf
                    520: or, under DOS:
1.1.1.2   root      521:   COPY /B df0_1.adf+df0_2.adf+df0_3.adf+df0_4.adf df0.adf
1.1       root      522: I've been told there are the following tools for the Mac to join binaries:
                    523: "ChunkJoiner 2.1.2" found under Info-Mac's <disk> directory or 
                    524: "JoinFiles 1.0.1" under Info-Mac's <text>.
                    525: 
                    526: The current transdisk can only read the standard AmigaDOS format. This means
                    527: that most games that rely on some form of copy-protection cannot be
1.1.1.2   root      528: transferred (more about disk formats in the file "FAQ")
1.1       root      529: 
1.1.1.2   root      530: ****************************************************************************
1.1       root      531: If you transfer commercial software, you must not distribute the resulting
                    532: image files, since that would be a violation of copyright law. The Kickstart
                    533: ROM has to be considered commercial software. You may only use the Kickstart
                    534: from your own Amiga, and you may not distribute Kickstart ROM files.
                    535: Please read the license that came with your software for details.
1.1.1.2   root      536: ****************************************************************************
                    537: 
                    538: 
                    539: Retrieving files from a disk image
                    540: ==================================
1.1       root      541: 
                    542: If you have a disk image file, and you want to retrieve the files from it, you
                    543: can use the "readdisk" tool. It is automatically built by "make". If you have
                    544: a disk image of a disk called "Workbench1.3D" as df0.adf, and you do
                    545:    readdisk df0.adf
                    546: the whole directory structure of the disk image will be stored in a newly
                    547: created subdirectory called "Workbench1.3D". You can optionally give a second
                    548: parameter to specify a directory where to create the output other than the
                    549: current directory.
                    550: readdisk only understands about the OFS right now. FFS disks will cheerfully
                    551: be regarded as being unreadable. Use the unixfs.device from within the
1.1.1.2   root      552: emulator if you want to transfer files from FFS disks.
1.1       root      553: 
                    554: 
1.1.1.3   root      555: Picasso 96 graphics card emulation
                    556: ==================================
                    557: 
                    558: To use this feature, you must select 68020 emulation with a 32 bit address
                    559: space. You also need a Kickstart 3.x ROM.
                    560: 
                    561: To specify how much graphic memory you want to emulate, use the "-U" option,
                    562: e.g. "-U 4" for 4 megabytes. Then, you need the Picasso 96 software which
                    563: is not distributed with UAE (There will be a link to the Picasso 96 home page
                    564: on the UAE Web page soon). Version 1.31 or higher is recommended.
                    565: Install the Picasso software, and make sure you enable the "uaegfx" driver.
                    566: After that is complete, reboot, and you should be able to select the new
                    567: modes from the ScreenModes program.
                    568: 
                    569: 
1.1.1.9   root      570: UAE SCSI device
                    571: ===============
                    572: 
                    573: To enable SCSI support, use --enable-scsi-device when running configure.
                    574: The emulator provides a uaescsi.device. This device only supports
                    575: direct SCSI, which is sufficient to run applications like MakeCD. The
                    576: device does not support reading or writing with the normal Exec commands,
                    577: so you cannot mount filesystems on it right now.
                    578: 
                    579: The unit numbers of the uaescsi.device follow the Amiga SCSI
                    580: conventions: unit number "xyz" maps to the lun y of target z on bus
                    581: x. Wide SCSI busses can have targets with numbers larger than 9. In
                    582: this case the uaescsi.device pretends that there is another SCSI
                    583: bus. To avoid confusion, all available SCSI targets are listed
                    584: together with their unit number when starting UAE. Devices cannot be
                    585: added while the emulator is running.  Reseting it is not sufficient
                    586: either for technical reasons.
                    587: 
                    588: The implementation of the uaescsi.device uses cdrecord's libscg as
1.1.1.13  root      589: interface to the native SCSI system. The Linux implementation of this
                    590: library used to be included into UAE, but now the library as generated
                    591: by the cdrecord source package (ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/)
                    592: is used. As the library is not distributed seperately, you will have
                    593: to get the whole cdrecord sources, compile it and then make several
                    594: header and lib files available to the compiler if (and only if) building
                    595: UAE with SCSI support. The script "src/install_libscg" copies the files
                    596: required for the libscg in cdrecord 1.8.1.
                    597: 
                    598: Using threads is strongly recommended, because some SCSI commands can
                    599: run for extended periods of time and would block the whole emulation
                    600: during this time without threads. Use --enable-threads when starting
                    601: configure.
1.1.1.9   root      602: 
                    603: Depending on the hosts capabilities the uaescsi.device may be limited
                    604: compared to other Amiga SCSI devices. The Linux kernel by default only
                    605: allows 32KB of data per SCSI command and does not always perform SCSI
                    606: requests in parallel.
                    607: 
                    608: Setting the chunk size in MakeCD to 30KB is already too much and
                    609: causes an IO error -4 (IOERR_BADLENGTH), because the setting is only
                    610: used as a guideline. You can work around this by setting the Tooltypes
                    611: BUFFER_CHUNK_XXX to 29. On a Pentium II 350MHz with Adaptec UW SCSI
                    612: controller on board on-the-fly copying was possible from a Philips
                    613: CDD2600 (SCSI) to a Yamaha CRW4416E (IDE) at 4x.
                    614: 
                    615: 
1.1       root      616: The UAE_CONTROL program
                    617: =======================
                    618: 
                    619: In the "amiga" subdirectory, you will find two programs, uae_control and
                    620: uaectrl that provide the same functionality as the X11 GUI. uaectrl is
                    621: shell-based and works with any Kickstart, while uae_control needs the
                    622: gadtools.library and a recent version of reqtools.library, so it only works
                    623: with Kick 2.0 and upwards. Copy these two programs to the directory that you
                    624: use for harddisk emulation. They should be self-explanatory.
                    625: 
                    626: 
1.1.1.9   root      627: The timehack
                    628: ============
                    629: 
                    630: Another tool in the "amiga" subdirectory, timehack, synchronizes the
                    631: emulated Amiga's system time with the host's time every second. This
                    632: is useful when the emulation is not done in real-time or is suspended
                    633: completely.
                    634: 
                    635: 
1.1       root      636: Quick overview of the debugger commands
                    637: =======================================
                    638: 
1.1.1.2   root      639: Some (window-system based) ports of UAE have a built-in debugger. You can
                    640: press ^C at any time to enter this debugger.
1.1       root      641: Each debugger command consists of a single letter and occasionally some
                    642: parameters.
                    643: 
                    644: g:                    Start execution at the current address. 
                    645: c:                    Dump state of the CIA and custom chips.
                    646: r:                    Dump state of the CPU
                    647: m <address> <lines>:  Memory dump starting at <address>
                    648: d <address> <lines>:  Disassembly starting at <address>
                    649: t:                    Step one instruction
                    650: z:                    Step through one instruction - useful for JSR, DBRA etc.
                    651: f <address>:          Step forward until PC == <address>
                    652: q:                    Quit the emulator. You don't want to use this command.
1.1.1.3   root      653: M:                    hunt for sound modules
                    654: S <filename> <address> <len>:
                    655:                       save a sound module
1.1.1.5   root      656: C <value>:            Search for values like energy or lifes in games
                    657: W <address> <value>:  Write into Amiga memory
1.1       root      658: 
                    659: 
                    660: Sound
                    661: =====
                    662: 
1.1.1.2   root      663: If your version of UAE supports sound, you can pass parameters like frequency
                    664: or number of bits to use on the commandline; if you don't specify any, sane
                    665: defaults will be used. If graphics output is enabled while sound is output,
                    666: the emulator will be much too slow on most systems. The sound will not be
                    667: continuous. Therefore, a hack to turn off screen updates is provided: Press
                    668: ScrollLock to disable graphics, press it again to enable them.
1.1       root      669: 
                    670: The quality of the emulation depends on the setting of the "-S" commandline
                    671: option. With "-S 3", all of the sound hardware is emulated; and some programs
                    672: (e.g. AIBB) won't run with other settings. "-S 2" should sound just as good as
                    673: "-S 3" and will be much faster for some programs. "-S 1" tries to emulate most
                    674: of the sound hardware, but doesn't actually output sound. "-S 0" completely
                    675: turns off sound.
                    676: 
                    677: 
1.1.1.2   root      678: Pointers
                    679: ========
1.1       root      680: 
1.1.1.2   root      681: There are a few sites in the Internet that contain helpful information about
                    682: UAE.
                    683: 
                    684: The new "official" UAE page is located at
                    685: 
1.1.1.11  root      686:   http://www.freiburg.linux.de/~uae
1.1.1.2   root      687: 
                    688: thanks to Stefan Reinauer who is now maintaining it.
                    689: 
                    690: There, you will find links to other UAE pages. One which is especially useful
                    691: is the "UAE Discussion Board" set up by Gustavo Goedert, the address is
                    692: 
1.1.1.11  root      693:   http://amiga.nvg.org/uaeboard
1.1.1.2   root      694: 
1.1.1.3   root      695: There is supposedly a newsgroup named "alt.emulators.amiga", but I don't get
                    696: it here.
                    697: The newsgroup "comp.sys.amiga.emulations" appears to be a proper place to
                    698: discuss Amiga emulation, but, strictly speaking, it is _not_ the right place.
                    699: More appropriate places are "comp.emulators.misc", and, of course, Gustavo's
                    700: discussion board.
                    701: 
                    702: Petter Schau has written another Amiga emulator named "Fellow".  It's mostly
                    703: written in x86 assembly and only runs under DOS.  It's quite compatible and
                    704: generally faster than UAE.  The Fellow homepage is at
                    705: 
1.1.1.11  root      706:   http://www.geocities.com/SiliconValley/Peaks/5244/
1.1       root      707: 
                    708: 
                    709: Thanks & Acknowledgements
                    710: =========================
                    711: 
                    712: Thanks to all who have written me so far with bugreports and success/failure
                    713: reports when trying to run the emulator on various hardware with different
                    714: Kickstart versions. A list of everyone who has contributed to the source code
                    715: can be found in the CREDITS file (this was getting too big to keep it here).
                    716: 
                    717: Special thanks to:
                    718:   - Jay Miner, Dale Luck, R.J. Mical and all the others who built the Amiga.
                    719:   - Felix Bardos, whose HRM I "borrowed".
                    720:   - Hetz Ben Hamo mailed Peter Kittel from Commodore asking for permission to
                    721:     give Kick 1.3 away. Unfortunately, the response was negative :-(
1.1.1.5   root      722:   - Stefan Reinauer, for hosting the UAE Web page after the RWTH decided it's
                    723:     too dangerous to let students have their own Web pages.
                    724:   - Bruno Coste, Ed Hanway, Alessandro Soldo and Marko Nippula provided useful
                    725:     documentation about the Amiga
1.1       root      726:   - Fabio Ciucci gets the "Best bug reports" award for his help with the
                    727:     blitter line emulation and other problem areas.
1.1.1.3   root      728:   - Michael C. Battilana and Cloanto Software, for all their support.
1.1.1.5   root      729:   - Julian Eggebrecht of Factor 5, for providing several F5 games and a lot
                    730:     of valuable input.
                    731:     Factor 5 has made Katakis, one of their classic Amiga games, freely
                    732:     available for download. There are still some good people left in the
                    733:     world...
                    734:   - Jens Sch�nfeld, inventor of the Catweasel controller, donated one
                    735:     controller card.
1.1.1.11  root      736:   - J�rgen Beck, maintainer of the Amiga emulation web site "Back to the
                    737:     Roots" (http://back2roots.emuunlim.com) and everyone else who spends
                    738:     time writing to software companies asking for permission to distribute
                    739:     old Amiga games.
                    740:   - all the software companies who allow distribution of their Amiga games on
                    741:     sites like "Back to the Roots".
1.1       root      742: 
                    743: 
1.1.1.2   root      744: Authors/Maintainers
                    745: ===================
1.1       root      746: 
1.1.1.3   root      747: My address is (please read the section "Before you send email" below):
1.1       root      748: 
                    749: [email protected]
                    750: 
                    751: or, via snailmail
                    752: 
                    753: Bernd Schmidt
                    754: Schlossweiherstrasse 14
                    755: 52072 Aachen
                    756: Germany
                    757: 
                    758: Email is more likely to be answered, and will definitely be answered much
                    759: faster. Please avoid phonecalls if you can.
1.1.1.3   root      760: I won't distribute software, neither PD or commercial. Don't send me floppy
                    761: disks without at least asking first, you will not get them back.
1.1.1.2   root      762: 
                    763: The following people have ported UAE to different platforms; you should
                    764: direct system-specific questions to them:
                    765: 
                    766: DOS port:
1.1.1.3   root      767:   Gustavo Goedert <[email protected]>
                    768:   Available: http://www.netrunner.com.br/dosuae
                    769:   Sourecode: available on the above Web page, most of it included in the
                    770:              main source (with some delay)
1.1.1.2   root      771: 
                    772: Mac port:
1.1.1.3   root      773:   Originally: Ernesto Corvi <[email protected]>
                    774:   Currently: Arnaud Blanchard <[email protected]>
                    775:   Available: http://www.pratique.fr/~jblancha/
                    776:   Sourcecode: extra package available. Bits and pieces in the main source,
                    777:               but nothing you could get to compile.
1.1.1.2   root      778: 
                    779: BeBox port:
                    780:   Christian Bauer <[email protected]>
                    781:   Available: The main UAE web page (use the Unix sources)
1.1.1.3   root      782:   Sourcecode: Included in the main source. Should compile OK.
                    783:   Notes: Christian says he doesn't have much time to spend on UAE, so if
                    784:          anyone is willing to help maintain this port, please speak up.
1.1.1.2   root      785: 
                    786: NextStep port:
                    787:   Ian Stephenson <[email protected]>
                    788:   Available: The main UAE web page (use the Unix sources)
1.1.1.3   root      789:   Sourcecode: Included in the main source. Should compile OK.
                    790:   Notes: Ian says he doesn't have much time to spend on UAE, so if
                    791:          anyone is willing to help maintain this port, please speak up.
1.1.1.2   root      792: 
                    793: Amiga port:
                    794:   Originally: Olaf 'Olsen' Barthel <[email protected]>
                    795:   Currently: Samuel Devulder <[email protected]>
                    796:   Available: Not quite sure yet. Paul Liss' Web page has binaries.
1.1.1.3   root      797:   Sourcecode: Included in the main source. Should compile OK.
1.1.1.2   root      798: 
1.1.1.3   root      799: pOS port:
                    800:   Samuel Devulder <[email protected]>
                    801:   Available: Not quite sure yet.
                    802:   Sourcecode: Included in the main source. Should compile OK.
1.1.1.7   root      803: 
1.1.1.13  root      804: OS/2 port:
                    805:   Pressenna Sockalingasamy <[email protected]>
                    806:   Available: ftp://hobbes.nmsu.edu/pub/os2/apps/emulator/uae2_0810_a1.zip
                    807:   Sourcecode: working on including it
                    808: 
1.1.1.2   root      809: XFree86/OS2 port:
                    810:   Krister Bergman <[email protected]>
1.1.1.3   root      811:   Available: http://www.kuai.se/~bellman/html/xfreeapps.html
                    812:   Sourcecode: nothing special, apparently the Unix stuff compiles cleanly (?)
1.1.1.2   root      813: 
1.1.1.3   root      814: Win32 port:
1.1.1.7   root      815:   Originally: Mathias Ortmann <[email protected]>
                    816:   Currently: Brian King <[email protected]>
                    817:   Available: http://www.codepoet.com/uae
                    818:   Sourcecode: bits merged into the main source, the rest available from the
                    819:               URL above. Still trying to merge more of it...
1.1.1.3   root      820: 
                    821: Acorn RISC PC port:
                    822:   Peter Teichmann <[email protected]>
                    823:   Available: http://www.wh1.tu-dresden.de/~sol/acorn.shtml
                    824:              http://www.wh1.tu-dresden.de/~sol/acorne.shtml
                    825:   Sourcecode: Some of it is included in the main source, but since Acorn's OS
                    826:               apparently doesn't have decent file handling, you can't even
                    827:              use the same source layout. Also needs lots of additional files.
                    828:              
1.1.1.2   root      829: Since I generally don't have the possibility to test or improve these ports,
                    830: it is a good idea to contact their respective authors if you have questions.
                    831: 
                    832: 
1.1.1.3   root      833: Before you send email...
                    834: ========================
1.1.1.2   root      835: 
                    836: Before you contact me with a problem that you have, make sure you have read
                    837: _all_ of the above. Please read also the file "FAQ", which contains a lot of
1.1.1.3   root      838: helpful information, and the README file for your specific system. 
1.1.1.2   root      839: 
1.1       root      840: I can't answer _every_ question. If you have trouble understanding this
                    841: README, either because you don't speak English very well or because you have
1.1.1.2   root      842: no clue at all about computers, please try to find some friend of yours who 
                    843: does understand this file and who can translate/explain it for you. I simply
                    844: can't explain (for example) how to use terminal programs or CrossDOS because
                    845: I don't use either, and it would be much too time-consuming anyway. This file
                    846: and the file FAQ contains about every piece of information I can give you. I 
                    847: try to help people who have questions, but sometimes it takes too much time.
                    848: 
                    849: Please don't ask for Kickstart ROM files or other copyrighted software. Don't
                    850: _send_ me stuff like this either. If you want to send me something else which
                    851: is big (>= 50K), ask me before or put it somewhere in Webspace.
1.1.1.3   root      852: If I get 3MB of screen shots or a core dump ("it doesn't work, it generates
                    853: this file"), I'm very likely to get extremely angry, I might complain to your
                    854: sysadmin, and you might lose your account. Think twice.
                    855: 
                    856: I'm also going to be extremely annoyed if you send email in HTML format.
                    857: Fight this disease!
1.1       root      858: 
                    859: Oh, and another thing: If I promise to do things (like implement new
                    860: features), and forget about them, pester me. That happens occasionally, it's
                    861: a known bug in my brain. I'll have it replaced.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.