|
|
1.1 root 1: UAE-0.7.0
2: AMIGA version
3:
4: by Samuel Devulder
5: ([email protected])
6:
1.1.1.2 ! root 7: Feb. 1997
1.1 root 8:
9:
1.1.1.2 ! root 10: CONTENT
! 11: =======
! 12: 1. INTRODUCTION
! 13: 2. REQUIREMENTS
! 14: 3. QUICKSTART
! 15: 4. COMMAND LINE ARGUMENTS
! 16: a. Window size
! 17: b. Screen type
! 18: c. Render style
! 19: d. Memory settings
! 20: e. Floppy emulation
! 21: f. Volume mounting
! 22: 5. RUNTIME HOTKEYS
! 23: a. Reset UAE
! 24: b. Enter in debug-mode
! 25: c. Quitting UAE
! 26: d. Enable/Disable display
! 27: e. Ejecting and inserting virtual floppies
! 28: 6. FAQ
! 29: 7. HOW TO SPEED UP UAE?
! 30: 8. AREXX PORT
! 31: 9. HOW TO (RE-)BUILD UAE
! 32: 10. COMPILING UAE WITH SAS/C
! 33: 11. COMPILING FOR POWERUP
! 34: 12. REMARKS OR BUG-REPORTS
! 35: 13. LAST NOTE
! 36:
! 37:
! 38:
! 39:
! 40: 1. INTRODUCTION
! 41: ===============
1.1 root 42:
43: This the Amiga port of UAE v0.7.0. UAE is the Un*x Amiga Emulator
44: written by Bernd Schmidt.
45:
1.1.1.2 ! root 46: This port is build with the help of ADE (Amiga Development Enviroment):
! 47: GCC, ixemul, ... Thus allowing an easy port of the original unix version to
! 48: the Amiga without a lot of modifications.
! 49:
! 50: For extra information (specially, the unix-like command line options), you
! 51: should read the README file.
! 52:
! 53:
! 54: 2. REQUIREMENTS
! 55: ===============
! 56:
! 57: This version will work on any Amiga running at least AmigaOS v2.04 and is
! 58: programmed to use AmigaOS v3.0 facilities when available. You'll need
! 59: ixemul installed because it was compiled with gcc. To allow the GUI to
! 60: work, MUIRexx (and MUI) must be installed too. Without MUIRexx, UAE will
! 61: stick to CLI and unix-style operations.. this is quite boring :)
! 62:
! 63: UAE needs roughly 8Mb of ram to run on the Amiga (of course, this depends
! 64: on UAE memory settings). A fast processor is also strongly recommended.
! 65:
! 66: Note: if you are short in ram, that you can use UAE under VMM (virtual
! 67: memory program by Martin Apel). If you dare, you can also run UAE under
! 68: UAE!
! 69:
! 70:
! 71: 3. QUICKSTART
! 72: =============
! 73: UAE is originaly a unix world program. That means it has cryptic option and
! 74: command line arguments. Hopefully, I've managed to make this a bit more
! 75: amiga-user friendly. Roughtly, UAE can be seen as organised in layers: On
! 76: top you find the GUI (graphical user interface): UAEWB; below, there is the
! 77: CLI-to-unix command-line translator: "UAEWB CLI"; and the last layer is the
! 78: "UAE" executable which can only understand unix-like parameters.
! 79:
! 80: [UAEWB] <==> MUIRexx GUI
! 81: | |
! 82: V V
! 83: [UAEWB CLI] <==> CLI
! 84: | |
! 85: V V
! 86: [UAE] <==> Unix
! 87:
! 88: Each layer transforms and directs its arguments to the layer immediately
! 89: below until the last unix level. You can run UAE from every layer; so that
! 90: means there is at least three ways to start UAE: You can either use the
! 91: workbench, or a CLI/Shell with the standard amiga template or in a
! 92: cli/shell with a unix-like (read cryptic) command-line.
! 93:
! 94: To quickly try UAE, you should use the workbench. That requires MUIRexx to
! 95: be installed (v3.0 is prefered). Provided MUIRexx is properly installed,
! 96: you can simply click on the UAEWB icon. The GUI-launcher will pop-up, then
! 97: you can modify the settings and press on the "USE" button. If you stop the
! 98: mouse pointer on a gadget, an help-bubble will tell you about the meaning
! 99: of the gagdet.
! 100:
! 101: To start UAE from the cli, you can simply enter "UAEWB CLI". You can also
! 102: add various arguments (see below) to modify the default setup.
! 103:
! 104: Last way: the unix-fashion. This one is reserved for advanced users or
! 105: users that already know uae on a unix-like plateform. In that mode, UAE
! 106: accepts argument of the original linux-uae with some minor differences. If
! 107: you have a bootable disk, put it in DF0: and type this in a shell/cli:
! 108: UAE -H2 -S2 -c2 -s2 -f2 -O320:256:XYl -0/dev/df0
! 109: Then you should see a screen-mode requester. Select the HAM6 (pal:320x256)
! 110: mode to see the demo run in a HAM screen.
1.1 root 111:
1.1.1.2 ! root 112: Once UAE is running, you should see the runtime GUI appear on the
! 113: workbench. Help-Bubbles will tell you how the GUI works.. The QUIT button
! 114: closes everything.
! 115:
! 116:
! 117: 4. COMMAND LINE ARGUMENTS
! 118: =========================
! 119:
! 120: a. Window size
! 121: --------------
! 122: This is the size of the display UAE will use. This is the first parameter
! 123: you need to enter. Normally, a window size of 320x256 or 320x240 (ie.
! 124: pal-lores output is emulated) or 640x512/640x480 (ie. pal/hires output is
! 125: emulated) should be enough (recall UAE only emulates an A500 where only PAL
! 126: screens are available).
! 127:
! 128: This option is selected with the folling command lines:
! 129:
! 130: unix-style: -O<width>:<height>:XY<ld>
! 131: <width> can be 320 or 640. If it is 320, then <ld> must be 'l'.
! 132: <height> can be 256 (or 240) or 512 (or 480). If it is 512, <ld>
! 133: must be set to 'd'.
! 134:
! 135: amiga-style: LORES/S,HIRES/S
! 136: LORES makes uae use a 320x256-like window
! 137: HIRES makes uae use a 640x512-like window
! 138:
! 139: GUI-style: select LORES or HIRES.
! 140:
! 141: Other resolution are of course possible, but you should know what you are
! 142: doing to use them.
! 143:
! 144: b. Screen type
! 145: --------------
! 146: This is the second parameter you should enter. This option tells UAE what
! 147: kind of output it must use. It can be a public screen or a customscreen. If
! 148: the customscreen is used, it is declared as public with "UAE" as a
! 149: name. You can then, using MUI, redirect the GUI on UAE screen (but I think
! 150: it not a good idea :)
! 151:
! 152: unix-style: -H n
! 153: n=0 => Makes UAE automagically select the best PASL screen to
! 154: display the desired size.
! 155: n=1 => Tells UAE to use the workbench screen.
! 156: n=2 => UAE will pop-up and asl-screen selector in which you can
! 157: select the mode you prefer. Please note that you will
! 158: probably have to correct the screen-size because ASL tends
! 159: to modify the initial setting of the -O option (I know, this
! 160: is strange :)
! 161: n=3 => this mode is supposed to give a Graffiti screen, but I think
! 162: it is somehow broken (graffiti users can use picasso96 I was
! 163: told anyway :-)
! 164:
! 165: amiga-style: DEFSCR/S,PUBSCR/S,REQSCR/S,SM/K,DEPTH/K
! 166: DEFSCR => same as -H0 above.
! 167: PUBSCR => same as -H1 above.
! 168: REQSCR => same as -H2 above.
! 169:
! 170: SM/K and DEPTH/K are working together. You use them to tell UAE to
! 171: use a special screen-mode (SM=<ModeID>) at a specific depth
! 172: (DEPTH=<depth>) without using the mouse. For example, to use an
! 173: HAM6 output, you can do:
! 174: UAEWB CLI LORES SM=0x21800 DEPTH=6
! 175:
! 176: Note that, HAM6 is the only ham-mode supported. HAM8 is not usefull for UAE
! 177: because the ECS can't display more than 4096 colors simultaneously.
! 178:
! 179: c. Render style
! 180: ---------------
! 181: UAE can render a dithered output and/or a gray output.
! 182:
! 183: The dithered ouput is usefull when not enough colors are available
! 184: (typically less than 256), but it takes some cpu power and reduces the
! 185: output readibily. By default, uae always dithers, but you can disable this
! 186: with the following options:
! 187:
! 188: unix-style: -x
! 189:
! 190: amiga-style: NODITHER/S
! 191:
! 192: GUI-style: click on the DITHER check box.
! 193:
! 194: The gray output is usefull when not enough colors are available, it also
! 195: reduces the chipram requirement and thus increase the speed of the display
! 196: (16colors + ditherings is pretty good and fast):
! 197:
! 198: unix-style: -T
! 199:
! 200: amiga-style: GRAY/S
! 201:
! 202: GUI-style: select the GRAY checkmark.
! 203:
! 204: d. Memory settings
! 205: ------------------
! 206: UAE can emulate different kinds of memory settings. You can have from 512kb
! 207: up to 8Mb of chipram, you can also have fastmemory at $200000 or
! 208: pseudo-fast memory at $C00000. If UAE is emulating a 68020+ cpu, then you
! 209: can even have Zorro-III ram (up to 64Mb of Z-III ram):
! 210:
! 211: unix-style: -c<n>, -s<n>, -F<n>, -U<n>
! 212: see original README or use "UAE -h".
! 213:
! 214: amiga-style: CHIP/K,SLOWFAST/K,Z2RAM/K,Z3RAM/K
! 215: memory is mesured in Kb but a few inputs are aceptables:
! 216: - CHIP can be 256 or 512 or 1024 or 2048.
! 217: - SLOWFAST is the memory at $C00000 and 512 or 1024 are the two
! 218: availables choice.
! 219: - Z2RAM is the memory at $200000 and it can grow from 1024 (1Mb)
! 220: to 8192 (8Mb) by steps of 1024 (1Mb).
! 221: - Z3RAM is the zorro 3 memory and it starts from 1024 to 65536 by
! 222: steps of 1024 (1Mb).
! 223:
! 224: GUI-style: Should be self-explicit. Use the help-bubbles in case of
! 225: trouble.
! 226:
! 227: e. Floppy emulation
! 228: -------------------
! 229: You can emulate up to 4 floppy disks with UAE using adf files (amiga disk
! 230: file). Here is the command line way to define them:
! 231:
! 232: unix-style: -0<name1>, -1<name2>, -2<name3>, -3<name4>
! 233:
! 234: amiga-style: DF0/K, DF1/K, DF2/K, DF3/K.
! 235: simply use DFn=<name>.
! 236:
! 237: GUI-style:
! 238: enter <name> in the DFx: asl file-requester.
! 239:
! 240: There is a special magic in UAE in that you can use your native floppy
! 241: system for UAE. To do do, you must use a <name> with a special format. That
! 242: format is DEV:<device-name>[.device]/unit or DEV:DF<num> (uppercase or
! 243: lowercase doesn't matter) with the amiga or GUI style. With the unix-style,
! 244: you can use the unix-style path: /dev/<device-name>[.device]/unit or
! 245: /dev/df<num>. You can even see those magic DEV: file in UAE file-requester
! 246: under the DEV: assign. For example, to make UAE use the current disk you
! 247: have in df1, just use the dev:df1 name..
! 248:
! 249: Note: the DEV: assign that UAE creates can interfere if you have a real
! 250: DEV: handler installed. UAE will output a warning if he sees that DEV: is
! 251: already used. In that case you wont be able to see the DEV: assign in the
! 252: file requester but you can still use the DEV:name magic in UAE (the DEV:
! 253: handler and UAE magic are compatible :)
! 254:
! 255: f. Volume mounting
! 256: ------------------
! 257: You can mount Amiga partition under UAE. This is usefull if you want to see
! 258: your own workbench running under UAE in a workbench window. Please not that
! 259: this is an advanced option and you should refer to the original README to
! 260: see how to properly use that feature, but here is how it can be used on the
! 261: amiga:
! 262:
! 263: unix-style: -m<uaename>:<amiga path>
! 264: You can use that paramater up to 20 times. <Amiga path> can be a
! 265: natural amiga-path like sys:t/ or a unix-style path like /sys/t/.
! 266:
! 267: amiga-style: MOUNT/K
! 268: You can only mount one single volume. The syntax is
! 269: MOUNT=<uaename>:<amiga path>
! 270:
! 271: GUI-style:
! 272: You can enter up to 2 volumes with the GUI using the "Volume 1:"
! 273: and "Volume 2:" string gadget in the "Disk setup" panel. Other
! 274: volumes must be entered using the "extra:" string gadget on the
! 275: misc panel. The "extra" parameters in the GUI are transmitted
! 276: directy to the unix executable, so you must use the "-m" or "-M"
! 277: scheme (see README).
! 278:
! 279:
! 280: 5. RUNTIME HOTKEYS
! 281: ==================
! 282: When UAE is running, you can make the emulator some specific actions
! 283: (reset, change a virtual floppy, ...) by pressing certain keys. Here is
! 284: a listing:
1.1 root 285:
1.1.1.2 ! root 286: a. Reset UAE
! 287: ------------
! 288: You can reset the emulator by pressing CTRL-ALT-DEL in UAE's window. I
! 289: guess it reminds you about something :^) [*] You can altenatively press on
! 290: the "RESET" button in the GUI.
1.1 root 291:
1.1.1.2 ! root 292: b. Enter in debug-mode
! 293: ----------------------
! 294: You can enter debug mode by pressing ^C or ^D in the cli/shell window or by
! 295: pressing the close-gadget of UAE's window when used on a public screen. You
! 296: can also send a break signal to UAE task using c:break or other tools like
! 297: that. Last solution: press on the "debug" button on the GUI.
1.1 root 298:
1.1.1.2 ! root 299: c. Quitting UAE
! 300: ---------------
! 301: To quit UAE, you have to enter in debug-mode (see above) and press 'q'. You
! 302: can also send the QUIT command to the AREXX port name UAE (see below).
1.1 root 303:
1.1.1.2 ! root 304: d. Enable/Disable display
! 305: -------------------------
! 306: You can toggle on/off the screen rendering to speed up the sound processing
! 307: by pressing CTRL-SHIFT-ALT-F9 or using the "display: off" cycle gagdet in
! 308: the GUI.
1.1 root 309:
1.1.1.2 ! root 310: e. Ejecting and inserting virtual floppies
! 311: ------------------------------------------
! 312: You can insert disks by pressing CTRL-LALT-F1, CTRL-LALT-F2, CTRL-LALT-F3, or
! 313: CTRL-LALT-F4 in UAE window. F1 corresponds to drive DF0, F2 to DF1, and so on.
! 314: Alternatively you can simply eject a disk by pressing LSHIFT in addition of
! 315: the above keys. On the GUI, there is an "Eject" button to eject disks, and
! 316: you can enter the name of the file uae can use as a disk in the string
! 317: gadget to the right of the "Eject" button.
1.1 root 318:
1.1.1.2 ! root 319: _____
! 320: [*] That's the way to Reset an IBM-PC clone :)
1.1 root 321:
322:
1.1.1.2 ! root 323: 6. FAQ
! 324: ======
1.1 root 325:
1.1.1.2 ! root 326: Q. Can I use my joystick?
1.1 root 327:
1.1.1.2 ! root 328: A. Yes, just try it :)
1.1 root 329:
330:
1.1.1.2 ! root 331: Q. Can I use .dms files instead of .adf?
1.1 root 332:
1.1.1.2 ! root 333: A. Yes, grab undms.c.Z by David Tritscher from aminet (misc/unix). Compile
! 334: it using any C compiler (DICE by Matt Dillon for example). Put the
! 335: executable someware in your path (c: for example), and UAE will be able to
! 336: use dms files.
1.1 root 337:
338:
1.1.1.2 ! root 339: Q. The README file tells about a necessary kick.rom file, but I've noticed it
! 340: is not needed by the amiga port, why ?
1.1 root 341:
1.1.1.2 ! root 342: A. If UAE does not find a rom-file, it'll use the ROM located at address
! 343: $F80000 - $FFFFFF. Thus, you need not grab it and that will spare you
! 344: some disk space. You can disable this feature by creating the
! 345: environment variable "USE_UAE_ERSATZ", in which case UAE will try to
! 346: emulate rom calls using a built'in pseudo kickstart.
1.1 root 347:
348:
1.1.1.2 ! root 349: Q. Can I use cybergraphics or picasso96?
1.1 root 350:
1.1.1.2 ! root 351: A. Yes, using the -H2 option, you can select a cybergfx/picasso96 mode. Be
! 352: sure to select a proper window size for UAE. If you are using a
! 353: cybergfx/picasso96 workbench, UAE will use all the available bitdepth. That is
! 354: to say that if your workbench is 16bbp, UAE will run trucolor without
! 355: dithering.
1.1 root 356:
357:
1.1.1.2 ! root 358: Q. Can I make a movie with UAE?
1.1 root 359:
1.1.1.2 ! root 360: A. Yes you can. First you must use a native amiga screenmode (because my
! 361: iff-grab routine pokes in the chipram :(). Second, you need to define
! 362: ENV:UAEIFF to a proper filename. Then, UAE will save an IFF file at every
! 363: frame. For example if you: "setenv UAEIFF t:uae.%04d", UAE will create
! 364: t:uae.0000, t:uae.0001, t:uae.0002, ... If you forget the %d format specifier,
! 365: uae will add ".%05d" by default to the format. You can then collect all those
! 366: iff files into a single anim file using an appropriate program (Rend24 by
! 367: Thomas Krehbiel for example).
1.1 root 368:
369:
1.1.1.2 ! root 370: Q. There is no sound, even with the -S2 setting!
1.1 root 371:
1.1.1.2 ! root 372: A. The sound may not work, depending on the internal setup used during the
! 373: compilation for the current executable.
1.1 root 374:
375:
1.1.1.2 ! root 376: Q. Can I use the stereo output?
1.1 root 377:
1.1.1.2 ! root 378: A. Yes, but you'll need AHI to be installed on you system.
1.1 root 379:
380:
1.1.1.2 ! root 381: Q. Why is the sound so ugly?
! 382:
! 383: A. The sound can be emulated in this version. But Amigas are too slow for it
! 384: to be really usefull. On my amiga, UAE produces one second of sound every
! 385: twenty seconds in Sanity's Interference demo. Thus, An amiga which is around
! 386: 20 times faster as an A4000 would be nice. PowerPC Amiga will probably achieve
! 387: this one day.
! 388:
! 389:
! 390: Q. Can I grab the sound with UAE?
! 391:
! 392: A. Yes you can. If you setenv AUDIONAME <format>, then uae will put the
! 393: sound-samples into a file using the <format> specifier. The <format>
! 394: specifier looks like a filename with optionally two "%d". If present, the
! 395: first "%d" will be replaced by the frequency (see the -R flag for UAE) and the
! 396: second one will be replaced by the buffer size (-B option for UAE). This
! 397: is usefull if you want to use the AUD: driver Martin Brenner. Alternatively,
! 398: you can enter the <format> in the GUILauncher.
! 399:
1.1 root 400:
1.1.1.2 ! root 401: Q. What is the "Appwindow started" message that UAE tells me while booting?
1.1 root 402:
1.1.1.2 ! root 403: A. With UAE on the amiga, you can run one of you executable within the
! 404: emulator. To do so, you must mount your system partition (-m sys:sys:) as
! 405: well as other partition you'd like to use (in other word, make UAE boot on
! 406: a clone of your workbench). Then, run the "amiga/uae_cli" executable inside
! 407: UAE. Once this is done, click on a Workbench icon on your real workbench
! 408: and drop it onto UAE's window.. Then *MAGIC*, you'll see the executable
! 409: start in UAE! Alternatively, you can send "uaeexe <command-line>" to the
! 410: ARexx port of UAE and it will execute <command-line> in an emulated cli
! 411: environment.
1.1 root 412:
413:
1.1.1.2 ! root 414: Q. Can UAE be a bit faster using some ASM magic?
1.1 root 415:
1.1.1.2 ! root 416: A. There is already some ASM magic: the CPU emulation is speed up by using
! 417: ASM code to compute flags directly from the 680x0 SR/CCR register.
! 418:
! 419:
! 420: Q. Is there any special setting to make it run a bit faster?
! 421:
! 422: A. Seen next section :)
! 423:
! 424:
! 425: 7. HOW TO SPEED UP UAE?
! 426: =======================
! 427: Here are a few tips to make UAE run faster. Those are for the unix-style of
! 428: command line, but you should be able to interpret them with the GUI or the
! 429: amiga-style.
! 430:
! 431: First you need to know that chunky2planar conversion takes time. In order
! 432: to decrease that time, I encourage you to install NewWPA8 on your system.
! 433: NewWPA8 can be found in Aminet. You can also gain speed by reducing the
! 434: screen depth. Of course uae running on a 3bitplanes screen is ugly, but
! 435: you can increase the output quality by using a grayscale output (-T
! 436: option).
! 437:
! 438: You can gain speed by reducing UAE screen/window size. By default, you can
! 439: use a 320x256 customscreen mode, but a better solution is to make uae run
! 440: on a 640x256 workbench screen and use a 320x128 window. That way, uae will
! 441: skip one line out of two speeding things up a bit. To achieve this you can
! 442: launch UAE with the following commandline:
! 443:
! 444: CLI> UAE -H1 -O320:128:XYlc
! 445:
! 446: You can also skip one frame out of two with the -f2 option, but this
! 447: reduces the smoothness of the display. An other option to gain speed is
! 448: to make UAE emulate a 32bit blitter that terminates his operations
! 449: immediately. This is done with the -n3i option.
! 450:
! 451: An other option is to attribute more CPU power to the customchip
! 452: emulation. The parameter -w<num> permits this. The more <num> is, the more
! 453: time UAE spend in the customchip emulation. Some demos ore games are very
! 454: customchip intensive, but although uae default setup is good for most
! 455: situation, it may be interresting to increase the <num> parameter. The
! 456: default value is 4, but some demos require 8 or 10 to permit all the
! 457: customchip operation to perform better (Enigma demo for example). The
! 458: problem is that with a big <num> value, UAE will have very few time to
! 459: emulate the CPU. The problem is that the CPU has to respond quickly to
! 460: interrupts, and a high value of <num> will prevent it to respond fast
! 461: enough leading to a crash or a dead lock. (Remind that even a real amiga
! 462: with hires and disk-dma and sound-DMA on can have trouble to multitasks
! 463: (cf. Octamed documentation)). So the thing is with the -w<num> parameter to
! 464: find the proper value of <num> to have a fast customchip but still enough
! 465: time for the cpu emulation. The option -w8 can increase the speed of some
! 466: demos while it slows down some other demos. This is dependant of the
! 467: program so that no general rule is available.
! 468:
! 469: The ultimate option to make UAE run faster is to ... (surprise, surprise!)
! 470: buy a faster CPU... If only the 68060 running a 350Mhz was available :-)
! 471: I know is not really an option, so to sum the things up, to run UAE fast,
! 472: you had rather have a fast CPU (68060 at 50Mhz), a 640x256 (16 colors)
! 473: workbench with NewWPA8 installed, and run UAE with
! 474:
! 475: CLI> UAE -H1 -O320:128:XYlc -f2 -n3i -w8
! 476:
! 477: I hope all those tips will help you.
! 478:
! 479:
! 480: 8. AREXX PORT
! 481: =============
! 482: This section is rather for experienced user or programmers that want to
! 483: enhance UAE or to replace MUIRexx GUI.
1.1 root 484:
485: UAE provides an AREXX port through which you can set or retrieve
486: internal parameters or variables such as the state of the joystick
487: emulation or the framerate and so on. Is also implements a "feedback"
488: mecanism so that a GUI piloting UAE through the AREXX port can hear
489: about dynamical modification of UAE variables such as led states and
490: the like. The port name is "UAE". If that port already exists, UAE
491: will disable it's AREXX feature (that is to say if you have 2 copies
492: of UAE running on your system, only one will have an AREXX port. I
493: doubt anyone will try to run 2 UAE in the same time :-).
494:
495: The commands that need a string argument accepts quoted strings. If
496: the string is not quoted then it is the following word that will be
497: used. The quotes can be single (') or double ("). They must match (eg.
498: if you begin with ('),then you must end your string with (') too).
499: Within a string, you can use a backslash (\) to express escape
500: sequences. For example, "This 'is' a \"string\"." represents the
501: string (This 'is' a "string"). I hope you get it :-)
502:
503: Here is a list of the available commands:
504:
505: * BYE
506: * QUIT
507: This make the emulator exit.
508:
509: * RESET
510: This makes a hard-reset of the emulator.
511:
512: * DEBUG
513: This forces the emulator to enter in debugging mode.
514:
515: * EJECT <num>
516: This will eject the disk in drive <num> (from 0 to 3).
517:
518: * INSERT <num> <filename>
519: This will insert the filedisk <filename> in drive unit
520: <num>.
521:
522: * FRAMERATE <num>
523: This sets the framerate to <num> (1 <= <num> <= 20).
524: It is a way to overwrite the -f flag of UAE.
525:
526: * VERSION <arg> (<arg> = NUM | AUTHOR | PORT | STRING)
527: This places in the AREXX 'RESULT' variable some
528: information about UAE's version.
529:
530: NUM returns a numerical value that is to be interpreted
1.1.1.2 ! root 531: as UAEMAJOR*10000 + UAEMINOR*100 + UAESUBREV (ie. uae
! 532: v0.6.4 will return "604").
1.1 root 533:
534: AUTHOR returns the original author of UAE (ie. Bernd
535: Schmidt).
536:
537: PORT returns the name of the port author (that's me!:-)
538:
539: STRINGS returns a summary string made with the above
540: strings.
541:
542: * DISPLAY <arg> (<arg> = ON | OFF | TOGGLE)
543: This will enable or disable the display rendering.
544:
545: * FAKEJOYSTICK <arg> (<arg> = ON | OFF | TOGGLE)
546: This will enable or disable the joystick emulation. It
547: is a way to overwrite the -J flag from the command
548: line.
549:
550: * SOUND <arg> (<arg> = ON | OFF | BEST)
551: This sets the state of the sound emulation (see option
552: '-S' on the command line). BEST is the same as using
553: the -S3 switch on the commandline.
554:
555: * QUERY <var>
556: This asks UAE's for its internal variables. That
557: state is written in the arexx 'RESULT' variable. So
558: don't forget to put 'OPTIONS RESULTS' in your arexx
559: scripts.
560:
561: <var> can be one of the following:
562:
563: * FAKEJOYSTICK => returns "1" if the joystick
564: emulation is ON and "0" if it is OFF.
565:
566: * DISPLAY => returns "1" if the display is not
567: inhibited and "0" otherwise.
568:
569: * FRAMERATE => returns the current framerate (see
570: option -f).
571:
572: * SOUND => returns "0" if the sound is not emulated
573: (ie. uae -S0 was used). "1" is returned when the
574: sound is OFF (think about uae -S1). "2" means the
575: sound emulation is ON and "3" means it is the best
576: sound-emulation that is used (uae -S3).
577:
578: * NAME_DF0
579: * NAME_DF1
580: * NAME_DF2
581: * NAME_DF3 => returns the name of the diskfile used in
582: the indicated unit.
583:
584: * LED_DF0
585: * LED_DF1
586: * LED_DF2
587: * LED_DF3 => returns "1" if the drive led is hilighted
588: and "0" if the led is OFF.
589:
590: * LED_POW => returns "1" if the powerled is ON and "0"
591: otherwise.
592:
1.1.1.2 ! root 593: * UAEEXE [run] <executable> <args>
! 594: This will make UAE lauch the <executable> provided
! 595: you've previouly starded uae_rcli. If <executable> is
! 596: "QUIT", then the "uae_rcli" process will exit(). Note
! 597: that you must use "run" in order to launch the
! 598: executable as an asynchronous command.
1.1 root 599:
600: * FEEDBACK <eventname> PORT|ADDRESS <portname>
601: CMD_ON|CMD|CMD_OFF <cmd>
602: That command needs a special explanation:
603:
604: <eventname> is the name of an internal UAE event. It
605: can be any of:
606: ON_EXIT (UAE is about to quit),
607: LED_POW (the power led has changed),
608: LED_DF0 (led of drive DF0 has changed),
609: LED_DF1 (the same, but for DF1),
610: LED_DF2 (well...),
611: LED_DF3 (guess!),
612: NAME_DF0 (name of filedisk df0 has changed),
613: NAME_DF1 (obvious),
614: NAME_DF2 (ditto),
615: NAME_DF3 (...).
616:
617: <portname> is the name of an AREXX port. It can be
618: "COMMAND" in which case <cmd> is interpreted as DOS
619: command.
620:
621: <cmd> is a string containing a command that UAE will
622: send to <portname> when the event matching <eventname>
623: occur.
624:
625: Each event has 2 available <cmd>s. One is set by the
626: CMD_ON keyword, the other by CMD_OFF. CMD_ON can be
627: abreviated to CMD.
628:
629: When the event is the name of a led (LED_POW, LED_DF0,
630: ...), it is the <cmd> associated to CMD_ON that will be
631: sent to <portname> if the led is hilighted. It is the
632: <cmd> of the CMD_OFF argument that will be used if the
633: led is dimmed. I think you need an example to make it
634: clear (no pun intended :)
635:
636: If you issue the command:
637:
638: address UAE feedback LED_POW PORT COMMAND
639: CMD_ON "list t:" CMD_OFF "list s:"
640:
641: Then UAE will issue "list t:" when the led is set to ON
642: and "list s:" when it set to OFF. Note: this feature
643: was not initially meant to transform UAE as a dir-like
644: programm :-) A more serious example can be found in
645: UAEGUI.rexx where you'll find something like:
646:
647: address UAE feedback LED_DF0 PORT UAEGUI,
648: CMD_ON "switch ID DF0 ATTRS 0x8042654b 1",
649: CMD_OFF "switch ID DF0 ATTRS 0x8042654b 0"
650:
651: That makes the gui led follow any state changements.
652:
653: If <eventname> is not a name of a led (ON_EXIT,
654: NAME_DF0, ...) then UAE will only use the CMD_ON
655: command. For events like NAME_DF0, <cmd> can bear a
656: '%s'. It'll be replaced by the name of the
657: correponding filedisk. For example, the following code:
658:
659: address UAE feedback NAME_DF0 PORT UAEGUI,
660: CMD "popasl ID NDF0 CONTENT %s"
661:
662: Will change the content of the popasl gadged whose ID
663: is NDF0 automatically when the drivename is modified.
664:
665: The event ON_EXIT is used when uae is about to exit.
666: You can use it to automatically close an external GUI
667: when UAE ends:
668:
669: address UAE feedback ON_EXIT PORT UAEGUI,
670: CMD "quit"
671: /* sends "quit" to UAEGUI when UAE exits */
672:
673: Note: I hope my explanation about the ARexx port is not too fuzzy.
674: You can always have a look to UAEGUI.rexx to figure out how to use
1.1.1.2 ! root 675: it. The script UAEGUI.rexx requires MUIRexx v3.0 by Russ Leighton
1.1 root 676: <[email protected]>. MUIRexx can be found on Aminet and
677: allows quick programming of GUIs with MUI and ARexx.
678:
679:
1.1.1.2 ! root 680: 9. HOW TO (RE-)BUILD UAE
! 681: ========================
! 682: This section is rather for programmers that want to build their own
! 683: versions of UAE. You should be familiar with unix word if you intend to do
! 684: so. If you want to compile UAE with SAS/C, you must read the next section.
! 685:
! 686: If you wish to (re-)build uae, you need to have GeekGadget (short: GG) and
! 687: gcc correctly installed (see ftp://ftp.ninemoons.com/pub/gg/). Not all part
! 688: of GG are needed, but be sure to have gcc2.7.2.1, binutils, autoconf, awk,
! 689: etc.
1.1 root 690:
691: The default Makefile provided is for a MC68030 microprocessor. If you
692: wish to have a Makefile tuned for your CPU (and fpu), just type "sh -c
1.1.1.2 ! root 693: configure".
1.1 root 694:
695: If you have deleted the file "configure", you can rebuild it from
1.1.1.2 ! root 696: "configure.in". To do this, use autoconf 2.10.
1.1 root 697:
698: Once your Makefile is generated (if needed), you can modify the file
1.1.1.2 ! root 699: "config.h" to suit your needs. You can also modify "src/od-amiga/ami-win.c"
1.1 root 700: to allow the support of cybergfx modes (you'll need to obtain
701: CGraphX-DevKit.lha from Aminet then). I suggest you to define
702: DONT_WANT_SOUND in "config.h". That will speed up the emulation (sound
1.1.1.2 ! root 703: emulation slows down the speed by roughly 10%).
1.1 root 704:
705: When you'll have configured uae correctly, type "make" in a shell. Then
706: one hour and a half later you'll get the uae executable (it might be less
707: if you have a *real fast* Amiga, but don't expect less that 15 minutes).
708: I know it's slow, but Amigas are slow (even those with 68060 are not that
709: fast, by today's standards ;-).
710:
711: To compile, 10Mb of free memory should be enough (I succeded with 4Mb, but
712: virtual memory helps in that case). The resulting directory size is
713: roughtly 5.7Mb on my harddrive. Be sure to have a stack of at least
714: 300Kb when compiling UAE and at least 32kb when UAE is running.
715:
716: NOTE: I had reports that gcc complains and fail to compile cpu_f?.s.
1.1.1.2 ! root 717: This is caused by a problem with perl and src/md-68k/cpuopti. I don't
1.1 root 718: know where it comes from precisely as I never experienced that problem.
719: Anyway, to avoid this, you should uncomment the lines in the beginning of
1.1.1.2 ! root 720: src/md-68k/cpuopti. Unfortunately, UAE will run slower as the asm files
1.1 root 721: won't have an extra optimisation pass.
722:
723:
1.1.1.2 ! root 724: 10. COMPILING UAE WITH SAS/C
! 725: ============================
! 726: This section is rather for programmers that want to build their own
! 727: versions of UAE using SAS/C. You should be familiar with unix word and
! 728: SAS/C if you intend to do so.
! 729:
! 730: To compile UAE with SAS/C you'll need SAS/C V6.58 and a subset of GG (see
! 731: the previous section). That subset must include ixemul, sh, make and perl
! 732: to do the compilation and at least sh-utils, cpp, perl, sed, autoconf to
! 733: run the configure script. Probably a few other package are needed, so if
! 734: you want to be on the safe side, you had rather had GG completely
! 735: installed. On my machine, the subpart of GG I use (gcc, g++, man, curses,
! 736: termcap, ...) takes only 14Mb on an XFH partition.. that's not much, but
! 737: I've spent time to replace duplicates with symbolic links.
1.1 root 738:
1.1.1.2 ! root 739: Once you have GG properly installed, you must copy the file
1.1 root 740: "src/od-amiga/scc" to somewhere in your path (sc:c for example). You can
741: also do something like:
742: CLI> assign c: src/od-amiga add
1.1.1.2 ! root 743: or any other solution. The purpouse is to enable GG's tools to find scc.
1.1 root 744: The file scc is a perl script that tries to emulate gcc behaviour using
745: SAS/C. [note to amiga-developpers: that script is tuned for UAE, but I
746: think it can be modified for other projects, let me know about it if you
747: intend enhance it]. Then, do:
748: CLI> setenv CC scc
749: to tell the configure script to use scc as the C compiler. Next, run the
750: configure script:
751: CLI> sh -c configure --enable-sound
752: The configure script will probably produce warnings, but they are not
753: important. Then, check src/Makefile to see if it fills your needs (you'll
754: probably have to replace -g with -O3 to have an optimised version of UAE,
755: and modify -m<cputype> with -m68060 if you have a 68060 cpu). Now, as the
756: last operation, type in
1.1.1.2 ! root 757: CLI> make
1.1 root 758: to build UAE and be patient! (it takes a while with optimisations enabled).
759:
760: Last note about SAS/C: Compiling UAE with SAS/C instead of gcc will
761: disable some nice features of UAE (native filesystems mounting,
762: average time per frame computation, ...) because SAS/C is not enough
763: POSIX compliant.
764:
765:
1.1.1.2 ! root 766: 11. COMPILING FOR POWERUP
! 767: =========================
! 768:
! 769: This is tricky! For the moment that section is not yet complete.
! 770: If you intend to compile UAE for powerup you should be sure to know
! 771: what you are doing because it is difficult.
! 772:
! 773: To compile UAE for powerup, you must have a few things installed.
! 774: This is a difficult part! First gcc for mc68k must be installed,
! 775: then find ppc-amigaos-gcc somewhere and install it. It can be found
! 776: on Phase5 CD-ROM or (possibly) on GeekGadget mirrors. Finally, you
! 777: must also install the ixemul-bridge from Holger Jakob in order to
! 778: have a ppc version of libamiga.a, libc.a and libgcc.a and such other
! 779: goodies.
! 780:
! 781: Once everything is installed, you must run "configure" as if you where
! 782: compiling for mc68k. Then "make pup" will give you a (hopfully) working
! 783: uae.elf executable.
! 784:
! 785: If you encounter trouble with missing "#include" files (pccinlines
! 786: or ppcprotos) during the compilation, I'd recommend you to re-generate
! 787: your ppcinlines and ppcprotos using fd2inlines because I've noticed
! 788: that the ppcinlines package comming from the Vendor is not complete
! 789: ( I've told you compiling for powerup was tricky :-( ).
! 790:
! 791:
! 792: 12. REMARKS OR BUG-REPORTS
! 793: ==========================
1.1 root 794:
795: You can send me your remarks and bug-report to:
796:
797: [email protected]
798:
799:
1.1.1.2 ! root 800: 13. LAST NOTE
! 801: =============
1.1 root 802:
803: Why emulate an Amiga on an Amiga ? That can seem to be a foolish
804: behaviour.. Actually it is not !
805:
806: Many old games/demos refuse to work well if you are using a 68030+;
807: even with degrader running (ever tried to make ST4Amiga work on
808: anything greater than a 68000?). In that case, uae might be usefull.
809:
810: UAE might also help graphic-board owners. With UAE, they can view all
811: the demos with copper and blitter effects that fails to run on their
812: graphics board. Or run programs like Deluxe-Paint or Brilliance that
1.1.1.2 ! root 813: poke the hardware directly. That is specialy usefull for DRACO owners.
1.1 root 814:
815: Using uae on a 68040+ Amiga will let you play games or demos on your
816: workbench, in a perfect multitasking. And that is, believe me, quite
817: amazing (even on my poor 68030 :-). Alternatively, UAE makes a
818: wonderfull screen-saver (a bit memory-hungry though).
819:
820: The main advantage of uae, will be when PowerPC Amigas will come out.
821: On these machines, I bet no old programs will run. Those machines will
822: certainly include a 680x0 emulation powerfull enough to run DOS
823: programs, but certainly not sufficient to run old games. Thanks to UAE,
824: backward compatibility will not be a problem anymore. UAE is definitely
825: a great program !
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.