Annotation of hatari/doc/manual.html, revision 1.1.1.4

1.1       root        1: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
                      2: <html>
                      3: <head>
                      4:   <title>Hatari User's Manual</title>
1.1.1.3   root        5:   <meta name="description"
                      6:  content="User's manual for the Atari ST emulator Hatari">
                      7:   <meta name="author" content="Matthias Arndt &lt;[email protected]&gt;">
1.1       root        8:   <meta name="keywords" content="hatari, documentation, manual, linux">
                      9:   <meta name="resource-type" content="document">
                     10:   <meta name="distribution" content="global">
1.1.1.3   root       11:   <meta http-equiv="Content-Type"
                     12:  content="text/html; charset=iso-8859-15">
1.1.1.2   root       13:   <meta name="Generator" content="Quanta Plus 3.2.1  SuSE Linux 9.1">
1.1       root       14:   <meta http-equiv="Content-Style-Type" content="text/css">
                     15:   <style type="text/css">
                     16:   <!--
1.1.1.2   root       17:        body {  background-color:#FFFFFF;
                     18:                color:#000000;
                     19:                margin-left:10px;
                     20:                margin-right:10px;
                     21:                font-family:Verdana,Arial,Helvetica,sans-serif; font-size:12pt;
                     22:                }
1.1       root       23: 
                     24:        h1 { font-size:28pt; }
                     25:        h2 { font-size:22pt; border-bottom:solid thin black;}
                     26:        h3 { font-size:16pt; }
                     27:        h4 { font-size:13pt; }
                     28: 
                     29:        td { font-family:Verdana,Arial,Helvetica,sans-serif; font-size:12pt; }
                     30: 
                     31:        a:link { color:#000099; background-color:#ffffff; text-decoration:none; }
                     32:        a:visited { color:#cc0000; background-color:#ffffff; text-decoration:none;}
1.1.1.3   root       33:        a:hover { color:#0000ff; background-color:#ffffff; text-decoration:none; }
                     34:        a:active { color:#993399; background-color:#ffffff; text-decoration:none; }
1.1       root       35: 
                     36:        *.commandline { font-family:Fixed,Courier,monospace; font-size:10pt; }
1.1.1.2   root       37:        *.file { color: #000088;}
                     38:        *.button { color: #468E64;}
1.1       root       39:        *.key { color:#550000; font-family:Fixed,Courier,monospace; font-size:10pt; }
                     40:        *.backdropped { background-color:#ffffee; }
                     41:        *.image {border-width:2px; border-style:solid; border-color:#eeeeff; padding:1cm; text-align:justify; }
                     42: 
                     43:   -->
                     44:   </style>
                     45: </head>
1.1.1.3   root       46: <body link="#000099" alink="#993399" bgcolor="#ffffff" text="#000000"
                     47:  vlink="#cc0000">
1.1       root       48: <h1 align="center">Hatari User's Manual</h1>
1.1.1.2   root       49: <p align="center">
1.1.1.4 ! root       50: Version 0.70
1.1.1.3   root       51: </p>
                     52: <p align="center">
                     53: <strong>project initiator and main developer of Hatari: Thomas Huth &lt;<a
                     54:  href="mailto:[email protected]">[email protected]</a>&gt;</strong><br>
                     55: <strong>manual by Matthias Arndt &lt;<a
                     56:  href="mailto:[email protected]">[email protected]</a>&gt;</strong>
1.1.1.2   root       57: </p>
                     58: <p align="center">
1.1.1.3   root       59: <strong>Hatari on the WWW: <a href="http://hatari.sourceforge.net/"
                     60:  target="_blank">http://hatari.sourceforge.net/</a> </strong>
1.1.1.2   root       61: </p>
1.1       root       62: <br>
                     63: 
                     64: <h2>Introduction</h2>
                     65: 
                     66: <h3>General description</h3>
                     67: <p>
1.1.1.3   root       68: Hatari is an Atari ST emulator for Linux, FreeBSD, BeOS and other
                     69: Systems which are supported by the SDL library.
1.1.1.4 ! root       70: The emulator is open source software and is distributed under the terms of the
        !            71: GNU General Public License (GPL).
        !            72: </p>
        !            73: <p>
1.1.1.3   root       74: The Atari ST was a 16/32 bit computer system which was first released by Atari
1.1.1.4 ! root       75: in 1985. Using the Motorola 68000 CPU, it was a very popular computer having
        !            76: quite a lot of CPU power at that time. See Appendix B for details on emulation
        !            77: in general.
1.1.1.3   root       78: </p>
                     79: <p>
1.1.1.4 ! root       80: Unlike many other Atari ST emulators which try to give you a good
        !            81: environment for running GEM applications, Hatari tries to emulate the hardware
        !            82: of a ST as close as possible so that it is able to run most of the old ST games
        !            83: and demos. Of course you can run normal GEM applications with Hatari, too.
1.1       root       84: </p>
                     85: 
                     86: <h3>Features</h3>
                     87: <ul>
1.1.1.2   root       88:   <li>complete m68k emulation via UAE's CPU core</li>
1.1.1.4 ! root       89:   <li>support for TOS 1.00, 1.02, 1.04, 1.06, 1.62, 2.05, 2.06 and EmuTOS</li>
1.1.1.2   root       90:   <li>ST RAM size variable (512k, 1MB, 2MB and 4MB possible)</li>
1.1.1.3   root       91:   <li>optional cartridge images for the ST ROM port</li>
1.1.1.2   root       92:   <li>most of the ST specific hardware</li>
1.1       root       93:   <li>ST Shifter with ST-High, ST-Medium and ST-Low resolutions,
1.1.1.3   root       94: overscan effects for lower border and partially in the upper, left and
                     95: right border too</li>
1.1.1.2   root       96:   <li>512 colour ST palette</li>
                     97:   <li>Blitter chip emulation</li>
                     98:   <li>PSG YM2149 emulation (soundchip) including STFM samples</li>
                     99:   <li>Printer emulation on GEMDOS and Hardware level (print to file)</li>
                    100:   <li>experimental support for RS232</li>
                    101:   <li>extremely experimental MIDI support</li>
1.1       root      102:   <li>Mega ST real time clock</li>
                    103:   <li>many (but not all) raster effects </li>
1.1.1.3   root      104:   <li>IKBD emulation (keyboard, mouse and joystick) with custom
                    105: keyboard mapping</li>
1.1       root      106:   <li>joystick emulation via cursor keys and joystick emulation via a
1.1.1.2   root      107: connected PC joystick</li>
1.1.1.3   root      108:   <li>FDC emulation using floppy disk images in standard formats (*.ST,
                    109: *.MSA
1.1.1.2   root      110: and *.DIM)</li>
1.1.1.4 ! root      111:   <li>optional writeprotection for disk images</li>
1.1.1.2   root      112:   <li>support for zipped disk images (both PkZip and Gzip)</li>
                    113:   <li>partial ACSI emulation for harddisk support</li>
                    114:   <li>GEMDOS interface driver to mount a directory as a harddrive</li>
                    115:   <li>experimental support for memory snapshots</li>
                    116:   <li>driver for extended VDI resolutions</li>
                    117:   <li>recording of sound as .WAV and .YM files</li>
                    118:   <li>screenshots in .BMP format</li>
                    119:   <li>animation capturing</li>
1.1       root      120:   <li>interlaced rendering of ST-Low and ST-Medium resolutions </li>
                    121:   <li>scaling of ST-Low and ST-Medium to 800x600 resolution </li>
                    122: </ul>
                    123: <p>
                    124: At the time of this writing there is neither a complete MMU emulation
                    125: nor support for STE specific features.
                    126: </p>
                    127: <h3>System requirements</h3>
                    128: <p> Hatari currently has the following system requirements: </p>
                    129: <ul>
                    130:   <li>a fast PC (&gt;200MHz) </li>
1.1.1.3   root      131:   <li>some sort of Unix (preferable <a href="http://www.linux.org/">GNU/Linux</a>)
                    132:   </li>
1.1       root      133:   <li>the SDL library (<a href="http://www.libsdl.org/">http://www.libsdl.org/</a>)</li>
1.1.1.3   root      134:   <li>the zLib (<a href="http://www.gzip.org/zlib/">http://www.gzip.org/zlib/</a>)
                    135: for support of gzipped disk images</li>
1.1       root      136: </ul>
                    137: Hatari has been succesfully tested on the following machines:
                    138: <ul>
1.1.1.2   root      139:   <li>Linux/i86 with Kernel 2.6.6, AMD Athlon 600MHz</li>
                    140:   <li>Linux/i86 with Kernel 2.4.x, AMD Athlon 600MHz </li>
1.1       root      141:   <li>Linux/i86 with Kernel 2.2.18, Pentium MMX 200MHz </li>
1.1.1.2   root      142:   <li>Linux/PPC with Kernel 2.4.x </li>
                    143:   <li>BeOS/i86 </li>
1.1       root      144:   <li>Apple PowerMac with Mac OS X </li>
                    145:   <li>NetBSD 1.6 </li>
1.1.1.4 ! root      146:   <li>NetBSD on a Digital Alpha</li>
1.1.1.3   root      147:   <li>FreeBSD 4.1 on an i486 computer, FreeBSD 4.8 on a Pentium 4 and
                    148: FreeBSD 5.1 </li>
1.1.1.2   root      149:   <li>OpenBSD 3.5 </li>
1.1.1.4 ! root      150:   <li>Solaris 8 on a SUN UltraSparc 1</li>
1.1.1.2   root      151:   <li>Zaurus SL-C760 PDA </li>
1.1       root      152: </ul>
                    153: <h2>Compiling and running</h2>
                    154: <h3>Compiling Hatari</h3>
                    155: <p> First, you need the SDL library, you can get it at:
1.1.1.3   root      156: <a href="http://www.libsdl.org/">http://www.libsdl.org/</a>. Most
                    157: distributions already ship a suitable version.
                    158: Make sure to install the appropriate header files as well often called
                    159: "libsdl-dev" or the like.
                    160: </p>
                    161: <p> Second, you need the zLib compression library. You can get it from <a
                    162:  href="http://www.gzip.org/zlib/">http://www.gzip.org/zlib/</a>
                    163: but the version shipped with your distribution will be sufficient in
                    164: most cases. Make sure to have the header files
1.1       root      165: for it installed as well.
                    166: </p>
                    167: <p>
                    168: Of course, you need the GNU C compiler and (GNU) Make, too!
                    169: </p>
1.1.1.2   root      170: <p> Change to the hatari/ directory and adapt the configuration file
                    171: <span class="file">Makefile.cnf</span> to suite your system.
                    172: Alternatively, you can use the supplied configure script to auto-detect
1.1.1.3   root      173: all parameters (type " <span class="commandline">./configure --help</span>"
                    174: to see the options of the script).
                    175: Don't forget to use some good CFLAGS for the compiler optimizations, e.g.
                    176: run <span class="commandline">configure</span> in the following way:
                    177: </p>
                    178: <p>
                    179:  <kbd> CFLAGS="-O3 -fomit-frame-pointer" ./configure</kbd>
                    180: </p>
                    181: <p>
                    182: Then compile Hatari by typing <span class="commandline">make</span>.
                    183: If all
                    184: works fine, you'll get the executable <span class="commandline">hatari</span>
                    185: in the src/ subdirectory.
1.1.1.2   root      186: </p>
1.1       root      187: <h3>Installation of a TOS ROM</h3>
1.1.1.3   root      188: <p> Then you'll have to copy a TOS ROM to the data directory (the data
                    189: directory is specified
                    190: in the configuration file <span class="file">Makefile.cnf</span>) and
                    191: rename it to <span class="commandline">tos.img</span>, or use the
                    192: <span class="commandline">--tos</span> command line option to tell
                    193: Hatari where to find a TOS ROM.
1.1       root      194: Hatari needs a TOS ROM image because this contains the operating system
                    195: of the emulated Atari. Sorry, it is not possible to ship an image with
1.1.1.3   root      196: the Hatari package since these images are still copyrighted. But you
                    197: can
1.1       root      198: easily create an image with a real ST and one of those various
1.1.1.3   root      199: ROM-image programs for the ST. Or search the internet, but don't ask
                    200: the Hatari team
1.1       root      201: where to find one.
                    202: </p>
                    203: <p> Another solution is EmuTOS, which is an open-source
1.1.1.3   root      204: TOS clone. You can find EmuTOS at: <a
                    205:  href="http://emutos.sourceforge.net/">http://emutos.sourceforge.net/</a>.
                    206: It's
1.1       root      207: not the best solution for playing games or running other old software
1.1.1.3   root      208: due to compatibility issues, but it's free and officially compatible
                    209: with Hatari! </p>
1.1       root      210: <p>If you do not specify a TOS image on the commandline nor can Hatari
                    211: find a suitable TOS image in the default dir, you'll get the chance to
                    212: select a TOS image file from the GUI. </p>
                    213: <h3>Installation of the binary</h3>
1.1.1.3   root      214: <p> Type <span class="commandline">make install</span> as root to do a
                    215: systemwide installation. In this case it is recommended
                    216: to set the DATADIR variable in Makefile.cnf to a proper value. <tt>/usr/local/share/hatari</tt>
                    217: is a good value in that case.</p>
                    218: <p>The Hatari executable should now be in your PATH and accessible from
                    219: anywhere.</p>
1.1       root      220: <p> When you finally have got a TOS image, try starting Hatari with the
1.1.1.3   root      221: option <span class="commandline">--help</span> to find out more about
                    222: its command line parameters. </p>
1.1       root      223: <h3>Running Hatari for the first time</h3>
1.1.1.3   root      224: <p> Now type <span class="commandline">hatari</span> to run the
                    225: emulator for the first time. If all goes
                    226: well, you should now be presented with a window showing you the
                    227: familiar
                    228: little green desktop of the Atari ST. Press <span class="key">F12</span>
                    229: to turn on the GUI to
                    230: configure Hatari to suit your needs, press <span class="key">F11</span>
                    231: to toggle windowed and fullscreen mode. </p>
1.1       root      232: <h2>Command line options</h2>
                    233: <p> Hatari ofcourse understands several command line options. </p>
1.1.1.3   root      234: <p> Type <span class="commandline">hatari --help</span> to list them
                    235: all. </p>
1.1       root      236: <p> The command line options in detail are as follows (in brackets the
                    237: long version): </p>
1.1.1.3   root      238: <table border="1" cellpadding="3">
1.1       root      239:   <tbody>
                    240:     <tr class="backdropped">
                    241:       <td align="center">Option</td>
                    242:       <td align="center">Purpose</td>
                    243:     </tr>
                    244:     <tr>
                    245:       <td align="center">-h (--help)</td>
                    246:       <td align="center">prints command line options and terminates</td>
                    247:     </tr>
                    248:     <tr>
                    249:       <td align="center">-v (--version)</td>
                    250:       <td align="center">prints version information and terminates</td>
                    251:     </tr>
                    252:     <tr>
                    253:       <td align="center">-m (--mono)</td>
                    254:       <td align="center">starts the emulated Atari ST in monochrome
                    255: resolution</td>
                    256:     </tr>
                    257:     <tr>
                    258:       <td align="center">-f (--fullscreen)</td>
                    259:       <td align="center">tries to use a fullscreen mode</td>
                    260:     </tr>
                    261:     <tr>
1.1.1.3   root      262:       <td align="center">--window</td>
                    263:       <td align="center">forces Hatari to use a windowed mode</td>
                    264:     </tr>
                    265:     <tr>
1.1       root      266:       <td align="center">-j (--joystick)</td>
                    267:       <td align="center">activates joystick emulation via cursor keys</td>
                    268:     </tr>
                    269:     <tr>
                    270:       <td align="center">--nosound</td>
                    271:       <td align="center">disables sound (makes emulation faster)</td>
                    272:     </tr>
                    273:     <tr>
                    274:       <td align="center">--frameskip</td>
                    275:       <td align="center">drops every second frame (accelerates
                    276: emulation)</td>
                    277:     </tr>
                    278:     <tr>
                    279:       <td align="center">-D (--debug)</td>
                    280:       <td align="center">activates the simple builtin debugger</td>
                    281:     </tr>
                    282:     <tr>
1.1.1.3   root      283:       <td align="center">--slowfdc</td>
                    284:       <td align="center">slows down FDC emulation (needed to make some
                    285: games and demos work)</td>
1.1.1.2   root      286:     </tr>
                    287:     <tr>
1.1       root      288:       <td align="center">-d &lt;dir&gt; (--harddrive &lt;dir&gt;)</td>
                    289:       <td align="center">emulates &lt;dir&gt; as a hard disk</td>
                    290:     </tr>
                    291:     <tr>
                    292:       <td align="center">--hdimage &lt;imagefile&gt;</td>
1.1.1.3   root      293:       <td align="center">emulate hard disk with an image file<br>
                    294:       </td>
                    295:     </tr>
                    296:     <tr>
                    297:       <td style="text-align: center;">--cartridge &lt;imagefile&gt;<br>
                    298:       </td>
                    299:       <td style="text-align: center;">sets imagefile as the cartridge
                    300: on the ROM port<br>
                    301: This currently does not work together with GEMDOS harddisc emulation!<br>
                    302:       </td>
1.1       root      303:     </tr>
                    304:     <tr>
                    305:       <td align="center">--tos &lt;imagefile&gt;</td>
                    306:       <td align="center">specify TOS ROM image to use</td>
                    307:     </tr>
1.1.1.3   root      308:     <tr>
                    309:       <td align="center">--memsize x</td>
1.1       root      310:       <td align="center">set amount of emulated RAM<br>
1.1.1.3   root      311: x=0 for 512K, x=1,x=2 or x=4 for 1,2 or 4 MB</td>
1.1       root      312:     </tr>
                    313:     <tr>
                    314:       <td align="center">--cpulevel x</td>
                    315:       <td align="center">specify CPU (680x0) to use (TOS 2.06 only!!)</td>
                    316:     </tr>
                    317:     <tr>
                    318:       <td align="center">--compatible</td>
                    319:       <td align="center">use a more compatible but slower 68000 CPU mode</td>
                    320:     </tr>
                    321:     <tr>
                    322:       <td align="center">--blitter</td>
                    323:       <td align="center">enable blitter emulation</td>
                    324:     </tr>
                    325:     <tr>
                    326:       <td align="center">--vdi</td>
                    327:       <td align="center">use extended VDI resolution</td>
                    328:     </tr>
1.1.1.3   root      329:     <tr>
1.1.1.2   root      330:       <td align="center">--printer</td>
                    331:       <td align="center">enable experimental printer support</td>
                    332:     </tr>
                    333:     <tr>
                    334:       <td align="center">--midi &lt;filename&gt;</td>
1.1.1.3   root      335:       <td align="center">enable experimental MIDI output to the
                    336: mentioned file</td>
1.1.1.2   root      337:     </tr>
                    338:     <tr>
                    339:       <td align="center">--rs232 &lt;filename&gt;</td>
1.1.1.3   root      340:       <td align="center">enable experimental RS232 communication via
                    341: the mentioned file</td>
1.1.1.2   root      342:     </tr>
                    343:     <tr>
                    344:       <td align="center">-c &lt;filename&gt; (--configfile)</td>
1.1.1.3   root      345:       <td align="center">Use the mentioned file as configuration file
                    346: instead of ~/.hatari.cfg</td>
1.1.1.2   root      347:     </tr>
1.1       root      348:   </tbody>
                    349: </table>
                    350: <h2>Using the emulated system</h2>
                    351: <p> Once you've started Hatari succesfully, you can use the emulator as
                    352: an allmost complete Atari ST computer system. </p>
                    353: <h3>The GUI</h3>
                    354: <h4>General usage</h4>
1.1.1.3   root      355: <p>Press <span class="key">F12</span> to enter the GUI. Navigate it
                    356: with the mouse.
1.1       root      357: The GUI is rather self explanatory.</p>
1.1.1.3   root      358: <p>Click <span class="button">Okay</span> to go back to the emulated
                    359: ST. All checked options will be applied.</p>
                    360: <p>Check the <span class="button">Reset ST</span> option if you want
                    361: the emulated ST to perform a soft reset. This should be equal to
                    362: pressing the reset button on your ST.
                    363: </p>
                    364: <p>Click <span class="button">Quit</span> to terminate Hatari and
                    365: return to the host OS.</p>
                    366: <p>Click <span class="button">Cancel</span> to abandon any changes
                    367: made.</p>
1.1       root      368: <h4>The System Dialog</h4>
1.1.1.4 ! root      369: <p>Check the CPU type to use here. For best Atari ST compatibility choose plain 68000 here.</p>
        !           370: <p>Select whether you want to emulate an STFM or an STE. <em>Note:</em> STE emulation is very incomplete. In may not work at all.</p>
        !           371: <p>Select the CPU clock you want to use. 8Mhz is ST standard and the most compatible, 16MHz is for Mega STE emulation.</p>
        !           372: <p>Toggle Blitter and RTC emulation. Both have to be off for plain STFM emulation.</p>
1.1.1.3   root      373: <p>The Timer-D patch changes the Timer-D initialization from TOS. TOS
                    374: uses Timer-D as a baudrate generator for RS232.
                    375: The TOS default slows the emulation down so the patch gives you a
                    376: faster emulation.
                    377: </p>
                    378: <p>You can disable the Timer-D patch if games or demos require the
                    379: original TOS setting.</p>
1.1.1.4 ! root      380: <p>Select if you want to use slow FDC emulation. Slow is more compatible esp. with games and demos that use custom loaders.</p>
1.1.1.3   root      381: <p><em>NOTE:</em> These parameters are very sensitive to the emulated
                    382: ST and it is strongly recommended to
1.1       root      383: reset the emulated ST after changing these options.</p>
1.1.1.2   root      384: <h4>The Discs Dialog</h4>
1.1.1.3   root      385: <p>Use the upper dialog to choose which floppy disks should be emulated
                    386: in the disk drives.</p>
                    387: <p>You can use most standard Atari ST disk image files. See the chapter
                    388: "Floppy disk images"
1.1       root      389: for details.</p>
1.1.1.3   root      390: <p>Click on the button <span class="button">Browse</span> next to the
                    391: A: and B: option to go to the fileselector.
1.1.1.2   root      392: You may select and browse zipped disk images as well.</p>
1.1.1.3   root      393: <p>Click on <span class="button">Eject</span> to eject a disk image
                    394: from the emulated drive. The emulated ST will act as if had no floppy
                    395: disk in its drive.</p>
                    396: <p>You can specify a default directory where Hatari will start to
                    397: browse the filesystem.</p>
                    398: <p>Check the "Auto insert B" option if you want Hatari to be smart and
                    399: insert the second disk
                    400: of a two disk game automatically. This option will insert the second
                    401: disk in drive B and some
                    402: games may not be able to find the disks there. In that rare case you
                    403: will need to insert the
1.1       root      404: second disk manually when prompted.</p>
1.1.1.2   root      405: <p>
                    406: <em>NOTE:</em> This option does not always work properly.
                    407: </p>
1.1.1.3   root      408: <p>If you need to create a new blank disk image, click on <span
                    409:  class="button">Create disk image</span>.
                    410: Parameters for the new image can be set in the following dialog. Click
                    411: on <span class="create">create</span> to create the image or on <span
                    412:  class="button">back</span> to get back to the
1.1.1.2   root      413: disk dialog.
                    414: </p>
                    415: <p>
1.1.1.3   root      416: After clicking <span class="button">create</span>, a fileselector
                    417: appears. You can browse the filesystem now. Select the target
                    418: directory, click beside File:
                    419: and type in a name for the new disk image. The name should terminate
                    420: with .st or .msa.
1.1.1.2   root      421: </p>
1.1.1.3   root      422: <p>Hatari can currently create plain .ST and .MSA disk images
                    423: exclusively.</p>
1.1.1.4 ! root      424: <p>You can choose if you want Hatari to writeprotect your disks. Atari ST virii can spread on disk images too so it is ok to
        !           425: enable the write protection option. However you can't save highscores or games to your disk images then.</p>
1.1.1.2   root      426: <p>Use the lower dialog to change the harddisk settings.</p>
1.1.1.3   root      427: <p>You can select a harddrive image for harddrive emulation via image
                    428: file here or you may select
                    429: a directory of your local filesystem to be emulated as the ST's
                    430: harddrive.</p>
                    431: <p>Check "Boot from HD" if you want Hatari to execute the AUTO folder
                    432: on the harddrive.
                    433: This option is checked by default if you specify a harddrive image or a
                    434: directory via the command line.</p>
1.1       root      435: <h4>The Memory Dialog</h4>
1.1.1.3   root      436: <p>You can select the amount of RAM for the emulated ST here. Only
                    437: amounts that were valid on a real unmodified STFM can be selected.</p>
                    438: <p><em>Note:</em> This option is critical and you are strongly advised
                    439: to reset the emulated ST
1.1       root      440: when changing this option.</p>
1.1.1.2   root      441: <p>Here you will find the options to save memory snapshots as well.</p>
1.1.1.3   root      442: <p>Click on <span class="button">Save</span> to save a memory snapshot
                    443: to file. You can select a new filename here.</p>
                    444: <p>Click on <span class="button">Restore</span> to restore a memory
                    445: snapshot from a file. Use the fileselector to select the snapshot to be
                    446: restored.</p>
                    447: <p><em>NOTE:</em> Memory snapshots are not interchangeable between
                    448: different versions of Hatari. E.q. if you compile a newer Hatari, you
                    449: cannot load your old memory snapshots back.</p>
                    450: 
                    451: <h4>The ROM Dialog</h4>
                    452: <p>Here you can select the TOS image to use. Click on <span
                    453:  class="button">Browse</span> to select it via the fileselector.</p>
                    454: You can also select an optional cartridge image to use. Click on <span
1.1.1.4 ! root      455:  class="button">Browse</span> to select one via the fileselector. Click on <span
        !           456:  class="button">Eject</span> to disconnect the custom cartridge image.</p>
        !           457: <p>Keep in mind that any custom cartridge image will not work together with
1.1.1.3   root      458: GEMDOS harddisc emulation or the VDI extended resolution emulation
                    459: since some additional driver code will be used in the cartridge memory
                    460: space for these emulations.<br>
                    461: <p><em>Note:</em> These options are critical and you are strongly
                    462: advised to reset the emulated ST
1.1       root      463: when changing one of these option.</p>
                    464: <h4>The Joystick Dialog</h4>
1.1.1.3   root      465: <p>Here you can select which joystick you want to emulate via the
                    466: cursor keys.</p>
                    467: <p>Joystick 1 is the normal ST joystick port and 99.9% of all ST games
                    468: use this port, Joystick 0
                    469: emulates a joystick plugged into the ST mouse port allowing you to play
                    470: 2 player games.</p>
                    471: <p>If no joystick is checked here, joystick emulation is done via a
                    472: connected PC joystick.</p>
1.1       root      473: <p>See the chapter "Emulated Joystick" for details.</p>
                    474: 
                    475: <h4>The Screen Dialog</h4>
                    476: <p>Here you control the video output of the emulated ST.</p>
                    477: <p>Check "Fullscreen" to run Hatari fullscreen, default is windowed.</p>
1.1.1.3   root      478: <p>Check "Interleaved mode" if you wish to have that old TV feeling in
                    479: Hatari. Every second line will be black.
1.1       root      480: This will only work in ST-MEDIUM or ST-LOW in scaled up resolutions.</p>
1.1.1.3   root      481: <p>Check "Frame Skip" to speed Hatari up if emulation is too slow. This
                    482: will only draw every second ST frame
                    483: instead of the default of drawing every ST frame. Uncheck if you have a
                    484: fast PC.</p>
                    485: <p>Check "Use Borders" if you wish to have the borders around the ST
                    486: screen.</p>
                    487: <p>"Force 8Bpp" will force SDL to use an 8bit video mode. You don't
                    488: need this for modern video cards.</p>
                    489: <p>You can select which sort of monitor to use. Check "Color" for games
                    490: and demos. If you check "Mono" here,
                    491: Hatari will emulate the good old SM124 and will not allow you to switch
                    492: to color modes from the running ST.
                    493: This toggle acts like a monitor switch with a color and monochrome
                    494: monitor connected.</p>
                    495: <p>"Zoom ST-Low res." will control if Hatari renders ST-LOW to a
                    496: 320x200 or 640x400 PC display (with borders turned off) or 384x267 or
                    497: 768x534.
1.1       root      498: Basically select this to toggle between a small or a large window.</p>
1.1.1.3   root      499: Extended GEM resolutions will emulate some sort of extended graphics
                    500: card in the emulated ST giving you larger resolutions and a higher
                    501: colordepth in GEM. Select a resolution and color depth. Check to
                    502: activate. It will disable all other video options mentioned above.
                    503: Uncheck to get back to a normal ST behaviour.<br>
                    504: <em>Note:</em> Using an extended resolution will only work with GEM
                    505: conformant applications. 99% of all games and demos will not run if you
                    506: activate any extended resolution here.<br>
                    507: <p>Click <span class="button">Capture Screen</span> to create a
                    508: screenshot in .BMP format to the current working directory or click <span
                    509:  class="button">Record Animation</span> to record a sequence of single
                    510: screenshots. You can opt to only record new movie frames when the
                    511: screen content really changed.
1.1       root      512: </p>
                    513: <h4>The Keyboard Dialog</h4>
                    514: <p>Here you can select the keyboard mapping to use.</p>
1.1.1.3   root      515: <p>Two different mappings called "Symbolic" and "Scancode" are
                    516: predefined.</p>
                    517: <p>You can also load a custom keymapping file here if you wish. Please
                    518: note that selecting to use a custom keyboard mapping will
                    519: use the "symbolic" mapping for all keys not defined by your map file.
                    520: See the supplied example mapfile on how to build your
1.1       root      521: own keyboard mapping.</p>
                    522: <h4>The Sound Dialog</h4>
1.1.1.2   root      523: <p>Here you can control the sound subsystem.</p>
1.1.1.3   root      524: <p>Check if you want emulated sound at all. Emulation is faster if
                    525: sound emulation is turned off.</p>
                    526: <p>3 frequencies from low to high quality are available. Experiment a
                    527: little bit to find out which fits best for your setup.
1.1       root      528: Medium quality will work ok in most cases.</p>
1.1.1.3   root      529: <p>You can select to record a piece of sound here. Check which format
                    530: to use and click the button. It is a toggle button so
1.1       root      531: you will need to return to the GUI to switch sound recording off again.</p>
1.1.1.2   root      532: <h4>The Devices Dialog</h4>
1.1.1.3   root      533: <p>Check here if you want to enable experimental printer support. See
                    534: the chapter "Emulated printer" for details.</p>
                    535: <p>As Hatari currently only supports printing to file, click on <span
                    536:  class="button">Select</span> to select the file to print to. You can
                    537: enter a new filename as well.</p>
                    538: <p><em>NOTE:</em> As the printer emulation is not perfect yet,
                    539: activated printer support may interfere with the emulated sound.
                    540: This is due to the fact that the Atari ST uses some general I/O ports
                    541: of the soundchip for the printer port. The Hatari team suggests to
1.1.1.2   root      542: disable printing while using games and demos.
                    543: </p>
1.1.1.3   root      544: <p>Check the second checkmark if you want to enable experimental RS232
                    545: support. The RS232 device is configured according to the settings of
                    546: the emulated RS232 of the Atari ST. This means Hatari will
                    547: automatically use baudrate and handshaking as configured for the
                    548: emulated ST.</p>
                    549: <p>Select a suitable device file for input and output. Click on <span
                    550:  class="button">Browse</span> to select.
1.1.1.2   root      551: A good choice is /dev/ttyS0 or /dev/ttyS1.
                    552: </p>
1.1.1.3   root      553: <p>You can enable MIDI as well. This currently works for outputting
                    554: MIDI data only. A good choice is /dev/midi00.</p>
                    555: <p>Click on <span class="button">Browse</span> to select a suitable
                    556: MIDI device file for output.</p>
1.1.1.2   root      557: <p>Your sound driver must support MIDI to make this work.</p>
                    558: <p><em>NOTE:</em> RS232 and MIDI emulation are very experimental, too.
                    559: Don't enable them unless you really need them!
                    560: </p>
1.1       root      561: <h3>Keyboard shortcuts</h3>
                    562: <p> While the emulator is running, you can activate or toggle various
                    563: features via the following keyboard shortcuts. </p>
1.1.1.3   root      564: <table border="1" cellpadding="3">
1.1       root      565:   <tbody>
                    566:     <tr class="backdropped">
                    567:       <td align="center">Shortcut</td>
                    568:       <td align="center">Purpose</td>
                    569:     </tr>
                    570:     <tr>
1.1.1.2   root      571:       <td align="center"><span class="key">ALTGR+a</span></td>
                    572:       <td align="center">record animation</td>
                    573:     </tr>
                    574:     <tr>
1.1       root      575:       <td align="center"><span class="key">ALTGR+g</span></td>
                    576:       <td align="center">grabs a screenshot</td>
                    577:     </tr>
                    578:     <tr>
1.1.1.2   root      579:       <td align="center"><span class="key">ALTGR+i</span></td>
1.1.1.3   root      580:       <td align="center">boss key: leave full screen mode and iconify
                    581: window</td>
1.1.1.2   root      582:     </tr>
                    583:     <tr>
1.1       root      584:       <td align="center"><span class="key">ALTGR+j</span></td>
                    585:       <td align="center">activates joystick emulation via cursor keys</td>
                    586:     </tr>
                    587:     <tr>
                    588:       <td align="center"><span class="key">ALTGR+m</span></td>
                    589:       <td align="center">(un-)locks the mouse into the window</td>
                    590:     </tr>
                    591:     <tr>
                    592:       <td align="center"><span class="key">ALTGR+r</span></td>
1.1.1.2   root      593:       <td align="center">(warm) reset the ST</td>
1.1       root      594:     </tr>
                    595:     <tr>
                    596:       <td align="center"><span class="key">ALTGR+c</span></td>
1.1.1.3   root      597:       <td align="center">coldreset the ST (same as the original power
                    598: switch)</td>
1.1       root      599:     </tr>
                    600:     <tr>
1.1.1.2   root      601:       <td align="center"><span class="key">ALTGR+s</span></td>
                    602:       <td align="center">enable/disable sound</td>
                    603:     </tr>
                    604:     <tr>
1.1       root      605:       <td align="center"><span class="key">ALTGR+q</span></td>
                    606:       <td align="center">quit the emulator</td>
                    607:     </tr>
                    608:     <tr>
1.1.1.2   root      609:       <td align="center"><span class="key">ALTGR+x</span></td>
                    610:       <td align="center">toggle normal/max speed</td>
                    611:     </tr>
                    612:     <tr>
                    613:       <td align="center"><span class="key">ALTGR+y</span></td>
                    614:       <td align="center">enable/disable sound recording</td>
                    615:     </tr>
                    616:     <tr>
1.1       root      617:       <td align="center"><span class="key">F11</span></td>
                    618:       <td align="center">toggles fullscreen and windowed mode</td>
                    619:     </tr>
                    620:     <tr>
                    621:       <td align="center"><span class="key">F12</span></td>
1.1.1.3   root      622:       <td align="center">
                    623:       <p>activate the GUI</p>
                    624:       <p>You may need to hold <span class="key">SHIFT</span> down
                    625: while in windowed mode.</p>
                    626:       </td>
1.1       root      627:     </tr>
                    628:     <tr>
                    629:       <td align="center"><span class="key">PAUSE</span></td>
1.1.1.3   root      630:       <td align="center">will go to the debugger if it was activated at
                    631: compile time</td>
1.1       root      632:     </tr>
                    633:   </tbody>
                    634: </table>
                    635: <h3>Emulated Atari ST keyboard</h3>
                    636: <p> All other keys on the keyboard act as the normal Atari ST keys so
                    637: pressing SPACE on your PC will result in an emulated press of the SPACE
                    638: key on the ST. The following keys have special meanings: </p>
1.1.1.3   root      639: <table border="1" cellpadding="3">
1.1       root      640:   <tbody>
                    641:     <tr class="backdropped">
                    642:       <td align="center">Key</td>
                    643:       <td align="center">Meaning</td>
                    644:     </tr>
                    645:     <tr>
                    646:       <td align="center"><span class="key">Alt</span></td>
                    647:       <td align="center">will act as the ST's ALTERNATE key</td>
                    648:     </tr>
                    649:     <tr>
                    650:       <td align="center"><span class="key">left CTRL</span></td>
                    651:       <td align="center">will act as the ST's CONTROL key</td>
                    652:     </tr>
                    653:     <tr>
1.1.1.2   root      654:       <td align="center"><span class="key">Print Screen</span></td>
1.1       root      655:       <td align="center">will emulate the ST's HELP key</td>
                    656:     </tr>
                    657:     <tr>
1.1.1.2   root      658:       <td align="center"><span class="key">Scroll Lock</span></td>
1.1       root      659:       <td align="center">will emulate the ST's UNDO key</td>
                    660:     </tr>
1.1.1.2   root      661:     <tr>
                    662:       <td align="center"><span class="key">Page Up</span></td>
                    663:       <td align="center">will emulate the ST's ( key in the keypad</td>
                    664:     </tr>
                    665:     <tr>
                    666:       <td align="center"><span class="key">Page Down</span></td>
                    667:       <td align="center">will emulate the ST's ) in the keypad</td>
                    668:     </tr>
1.1       root      669:   </tbody>
                    670: </table>
1.1.1.3   root      671: <p> <span class="key">ALTGR</span> will act as ALTERNATE as well as
                    672: long as you do not press it
1.1       root      673: together with a Hatari hotkey combination. </p>
1.1.1.3   root      674: <p> The <span class="key">right CTRL</span> key is used as the fire
                    675: button of the emulated
1.1       root      676: joystick when you turn on joystick emulation via keyboard. </p>
1.1.1.3   root      677: <p> The cursor keys will act as the cursor keys on the Atari ST as long
                    678: as joystick emulation
1.1       root      679: via keyboard has been turned off.</p>
                    680: <h3>Emulated mouse</h3>
                    681: <p>For obvious reasons your PC mouse will act as the emulated Atari ST
                    682: mouse. In fullscreen mode it will act as expected, directly controlling
                    683: the ST mouse pointer. </p>
                    684: <p>However it is a little bit different in windowed mode. To make the
                    685: mouse work there as expected you need to grab it first or lock it into
1.1.1.3   root      686: the Hatari window. Do this by pressing the <span class="key">ALTGR+m</span>
                    687: hotkey combination.
1.1       root      688: Press it again to go back to normal mouse behaviour which allows you to
                    689: work in other X11 windows while Hatari is up and running. </p>
                    690: <h3>Emulated joystick</h3>
                    691: <p>The Atari ST joysticks are emulated ofcourse allowing you to play
                    692: your favourite games with Hatari. </p>
                    693: <p>The default mode is to use a connected PC joystick. You can use any
                    694: joystick that is supported by your kernel. If your joystick works with
                    695: other applications, it will likely work with Hatari as well. Make sure
                    696: it is calibrated and then off you go. Move the stick to point into the
                    697: desired direction. Please note that Hatari will not detect analogue
                    698: movement as the Atari ST only had digital joysticks. The first
1.1.1.3   root      699: firebutton will act as the normal firebutton on the Atari ST while the
                    700: second
                    701: firebutton will emulate a keypress of the <span class="key">SPACE</span>
                    702: key on the ST as many ST
                    703: games utilitze the SPACE bar for secondary game functions. (Xenon for
                    704: example)</p>
1.1       root      705: <p>If you do not have a PC joystick or joypad, then you do not need to
                    706: desperate. You can emulate one of the two Atari ST joysticks via the
                    707: cursor keys. Just activate it in the GUI. Then the cursor keys will act
                    708: as the joystick directions, the right CTRL key will act as the
                    709: firebutton. You can still use the cursor keys as the ST's
1.1.1.3   root      710: cursorkeys in this mode as long as you press <span class="key">SHIFT</span>
                    711: along with the cursorkeys. </p>
1.1.1.2   root      712: <h3>Emulated video</h3>
                    713: <p>Hatari by default only handles ST modes, ST-LOW, ST-MED and ST-HIGH.</p>
                    714: <p>Overscan effects and socalled "Border Removal" are possible too.</p>
1.1.1.3   root      715: <p>Due to the fact that these effects are achieved by using quirks and
                    716: glitches in the original chips to do things beyond their specification
                    717: emulation is a bit tricky for these and not all ST applications
                    718: utilizing these techniques will work properly in Hatari.
                    719: Especially socalled "Sync Scrolling", a special technique to emulate
                    720: the low byte of the video address, currently does not work properly in
                    721: Hatari.
                    722: </p>
                    723: <p>Beside that you can setup extended VDI modes. These only work with
                    724: GEM-compliant applications and they are equal to fitting a videocard
                    725: into your Mega ST.</p>
                    726: <p>Make sure to disable extended VDI modes for playing games as 99% of
                    727: all ST games will not be able to make use of higher resolutions.</p>
1.1.1.2   root      728: <h3>Emulated printer</h3>
1.1.1.3   root      729: <p>Due to the fact that printer handling is very different between Unix
                    730: style machines and the Atari ST, emulation
1.1.1.2   root      731: of the printer is achieved by writing all printer output to a file.</p>
1.1.1.3   root      732: <p>The file will contain a sequence of data, the same that would appear
                    733: on the data pins of the Atari ST printer port.
                    734: That would include control characters and commands for graphic
                    735: printing. Clicking "Print desktop" on the GEM desktop would result
1.1.1.2   root      736: in a messy data dump in the printer output.</p>
1.1.1.3   root      737: <p>Printer emulation works best for plain text files or programs that
                    738: do not format the output for a specific printer.
                    739: The file contents can be used with your favourite text editor for
                    740: further processing and printing to a real printer.</p>
                    741: <p>To get real direct printing out of Hatari on a PostScript printer,
                    742: you may set up a GDOS printer with a PostScript driver on the emulated
                    743: Atari and set your printer device file as Hatari's printer output.<br>
                    744: <em>NOTE:</em> This has not been tested yet and the Hatari team cannot
                    745: guarantee that it will work.</p>
1.1.1.2   root      746: <h3>Emulated RS232</h3>
1.1.1.3   root      747: <p>Serial communications in Hatari is designed to directly use a serial
                    748: port on your PC.</p>
                    749: <p>Communications parameters are set automatically upon the settings of
                    750: the emulated ST. This means all you do is to set
                    751: the communication parameters like baudrate from your ST communications
                    752: software. Hatari will do the rest and handle
1.1.1.2   root      753: the serial input and output for you.</p>
1.1       root      754: <h2>Floppy disk images</h2>
                    755: <p>Hatari does not use floppy disks directly but disk images due to
                    756: differences between the floppy disk controllers of the ST and the PC.
1.1.1.3   root      757: Three types of disk images are currently supported: The raw "ST" type,
                    758: the similar "DIM" type and
1.1.1.2   root      759: the compressed "MSA" (Magic-Shadow-Archiver) type. </p>
1.1       root      760: <p> The raw type (file suffix should be "*.st") is simply a sector by
                    761: sector image of a real floppy disk. You can easily create such an image
1.1.1.3   root      762: with the <span class="commandline">dd</span> program which should
                    763: normally be pre-installed on every
                    764: Unix-like system. Simply type something like <span class="commandline">dd
                    765: if=/dev/fd0 of=myimage.st</span> to create a disk image. Of course you
                    766: need access to
1.1       root      767: /dev/fd0, and depending on your system and the type of floppy disk you
                    768: might have to use another device name here (for example I use
1.1.1.3   root      769: /dev/fd0u720 for 720kB disks). However, if the disk is copy-protected
                    770: or
1.1       root      771: doesn't use a MSDOS compatible file system, this might fail. So be very
                    772: careful if you're not sure about the disk format. </p>
1.1.1.3   root      773: <p> The other possibility is to image the disk on a real Atari ST.
                    774: There
1.1       root      775: are programs like the Magic Shadow Archiver for this task. Hatari
1.1.1.3   root      776: supports this slightly compressed MSA disk images, too. Note that
                    777: Hatari
                    778: only supports the "old" MSA format, there are some Magic Shadow
                    779: Archiver
1.1       root      780: clones (like Jay-MSA) that create better compressed but
1.1.1.2   root      781: Hatari-incompatible disk images. However, if you have got such a MSA
1.1.1.3   root      782: disk and want to use it with Hatari, you can still run the
                    783: corresponding
1.1.1.2   root      784: MSA program within Hatari to extract the incompatible disk image to a
                    785: normal floppy disk image. </p>
1.1       root      786: <p> While *.ST and *.MSA are more or less the "standard" types of Atari
1.1.1.2   root      787: disk images, you might sometimes also find STT or ADF images on the
1.1.1.3   root      788: internet. These currently do not work with Hatari. </p>
                    789: <p>Hatari can now also utilize *.DIM images just as *.ST ones without
                    790: any problems.
1.1.1.2   root      791: Note that DIM images are nearly the same as the raw ST images
1.1.1.3   root      792: (they only have an additional 32 bytes header), so you can easily
                    793: transform
1.1.1.2   root      794: the DIM images into ST images by stripping the header from the files.
                    795: For example try something like:
                    796: <span class="commandline">dd if=input.dim of=output.st bs=32 skip=1</span>
                    797: </p>
1.1       root      798: <p> If you've got a disk image that has been created with the old ST
                    799: emulator PaCifiST (for DOS) or with early versions of the program
                    800: Makedisk, and the disk image does not work with Hatari, then the disk
1.1.1.3   root      801: probably suffers from the "PaCifiST bootsector bug" (Hatari will
                    802: display a
1.1       root      803: warning message then). In this case, the bootsector of the disk
                    804: contains some illegal data, so that the disk even does not work on a
                    805: real ST any more. However, if it is a .ST and not a .MSA disk, you can
1.1.1.3   root      806: easily fix it by using a hex-editor to change the byte at offset $D
                    807: (13)
1.1       root      808: from 0 to 1 (don't forget to backup your disk image first, since you
                    809: can also easily destroy your disk image when changing a wrong byte
                    810: there). If the disk contains a bootsector program, you probably have to
                    811: adjust the boot sector check sum, too (it can be found at offset $1FE +
                    812: $1FF). </p>
1.1.1.2   root      813: <p>Hatari supports disk images that are compressed with (Pk-)ZIP
                    814: (file suffix must be ".zip") or GZip (file suffix must be ".st.gz" or
1.1.1.3   root      815: ".msa.gz"), so you can archive your disk images into zip archives.
1.1.1.2   root      816: You can also directly run the zip archives you may download from the
                    817: net as long as the archive contains a disk image in .ST or .MSA format.</p>
1.1.1.3   root      818: <p><em>Note:</em> Hatari does not save disk images back to *.ZIP files
                    819: so
1.1.1.2   root      820: your highscores and savegames are lost if you load the game from such
                    821: a zipped disk image.</p>
1.1       root      822: <h2>Hard disk support</h2>
                    823: <p>Hatari supports two ways of emulating a ST hard drive: The low-level
                    824: ACSI hard disk emulation and a GEMDOS based drive emulation. </p>
                    825: <p>To use the ACSI hard disk emulation, you need a hard disk image file
1.1.1.3   root      826: with a pre-installed HD driver in it. So either try to image your old
                    827: ST
1.1       root      828: hard disk or grab one from the internet. There is a HD image on the
                    829: Hatari web page for download. Perhaps we'll also provide a tool for
                    830: creating HD images one day. </p>
                    831: <p>With the GEMDOS based drive emulation, you can easily "mount" a
                    832: folder from the host file system to a drive of the emulated Atari. To
                    833: use the GEMDOS based drive emulation, you should use a folder on your
1.1.1.3   root      834: hard disk that only contains files and folders with valid TOS
                    835: filenames.
1.1       root      836: That means that all files/folders should be written in capital letters
                    837: and their length mustn't exceed the 8+3 file name length limit. If you
                    838: don't want to rename all files to get capital letters, it is also
                    839: possible to store that folder on a FAT filesystem since those
                    840: filesystems are case-insensitive. </p>
                    841: <p>GEMDOS drive emulation is an easy way to share files between the
1.1.1.3   root      842: host system and the emulated Atari, but it is known to be incomplete
                    843: and
1.1       root      844: a little bit unstable, especially if you use it together with the ACSI
                    845: hard disk emulation. So if your programs complain that they could not
                    846: find/read/write files on the GEMDOS HD drive, you should try to copy
1.1.1.3   root      847: them to a floppy disk image or a real hard disk image!</p>
                    848: <p>Due to the way the GEMDOS drive emulation is implemented at the
                    849: moment, it is not possible to use a cartridge image together with
                    850: GEMDOS drive emulation. </p>
1.1       root      851: <p> Note that changing the HD-image or the GEMDOS HD-folder will reset
                    852: the emulated Atari since it is not possible to switch the hard disk
                    853: while the emulator is running. </p>
                    854: <p> May the fun without the price to be with you ;-) ! </p>
1.1.1.4 ! root      855: 
1.1       root      856: <h2>Appendix</h2>
1.1.1.4 ! root      857: 
1.1       root      858: <h3>Copying</h3>
                    859: <div class="backdropped">
                    860: <p>This program is free software; you can redistribute it and/or modify
1.1.1.3   root      861: it under the terms of the GNU General Public License as published by
                    862: the
1.1       root      863: Free Software Foundation; either version 2 of the License, or (at your
                    864: option) any later version. </p>
                    865: <p>This program is distributed in the hope that it will be useful, but <em>WITHOUT
                    866: ANY WARRANTY</em>; without even the implied warranty of <em>MERCHANTABILITY</em>
1.1.1.3   root      867: or <em>FITNESS FOR A PARTICULAR PURPOSE</em>. See the GNU General
1.1.1.4 ! root      868: Public License for more details. </p>
        !           869: <p>
        !           870: You should have received a copy of the GNU General Public License
        !           871: along with this program; if not, write to the Free Software Foundation,
        !           872: Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
        !           873: </p>
1.1       root      874: </div>
1.1.1.3   root      875: <p><a href="http://www.gnu.org/">The GNU Project and the Free Software
                    876: Foundation</a> | <a href="http://www.fsf.org/licenses/gpl.html">The
                    877: GNU General Public License</a></p>
1.1.1.4 ! root      878: 
1.1       root      879: <h3>Introduction to Emulation</h3>
                    880: <p>Emulation via software is an art and Hatari is an example of this.</p>
1.1.1.3   root      881: <p>Emulation is to make a computer behave like a (probably) completely
                    882: different machine on the lowest possible niveau.
                    883: This includes CPU and custom chip emulation allowing software written
                    884: for the emulated machine to be run without notice.
                    885: A good emulator will run most of the software intended for the emulated
                    886: platform without trouble.
1.1       root      887: </p>
                    888: <p>
1.1.1.3   root      889: The key to emulation is to simply do those things with a software
                    890: program, the emulator, that normally chips would perform.
                    891: So you have an CPU emulator that basically consists of a large loop
                    892: that does exactly what the real thing would do:
1.1       root      893: </p>
                    894: <ul>
1.1.1.3   root      895:   <li>fetch an instruction from virtual memory</li>
                    896:   <li>interpret this instruction</li>
                    897:   <li>fetch operands from the emulated registers and memory</li>
                    898:   <li>perform the operation like addition or changing the program
                    899: counter on a jump instruction</li>
                    900:   <li>writes results back into the intended registers or memory
                    901: locations</li>
                    902:   <li>increment of the program counter and loop</li>
1.1       root      903: </ul>
                    904: <p>
1.1.1.3   root      905: The typical von-Neumann CPU can be emulated very fast, stable and
                    906: error-free using such a simple loop system.
1.1       root      907: </p>
                    908: <p>
1.1.1.3   root      909: But in most cases the CPU emulation is the simplest part. Correct
                    910: emulation of the various custom chips and hardware
1.1       root      911: parts of the emulated system is much trickier.
                    912: </p>
                    913: 
                    914: <h3>Software compatibility list</h3>
1.1.1.3   root      915: <p>This is a little compilation of what Atari software does work in
                    916: Hatari. It is by no means finished.</p>
1.1       root      917: 
1.1.1.3   root      918: <table border="1" cellpadding="3">
                    919:   <caption align="bottom">tested games</caption> <tbody>
1.1       root      920:     <tr class="backdropped">
                    921:       <td align="center">Game</td>
                    922:       <td align="center">Working</td>
1.1.1.3   root      923:       <td align="center">Sound</td>
                    924:       <td align="center">Comment</td>
                    925:     </tr>
                    926:     <tr>
                    927:       <td>Eliminator</td>
                    928:       <td>yes</td>
                    929:       <td>perfect</td>
                    930:       <td>&nbsp;</td>
                    931:     </tr>
                    932:     <tr>
                    933:       <td>Speedball</td>
                    934:       <td>yes</td>
                    935:       <td>perfect</td>
                    936:       <td>&nbsp;</td>
                    937:     </tr>
                    938:     <tr>
                    939:       <td>Xenon</td>
                    940:       <td>yes</td>
                    941:       <td>music ok - fx dodgy</td>
                    942:       <td>bullets and explosions sound weired</td>
                    943:     </tr>
                    944:     <tr>
                    945:       <td>Bubble Bobble</td>
                    946:       <td>yes</td>
                    947:       <td>&nbsp;</td>
                    948:       <td>&nbsp;</td>
                    949:     </tr>
                    950:     <tr>
                    951:       <td>F15 Strike Eagle 2</td>
                    952:       <td>yes</td>
                    953:       <td>ok</td>
                    954:       <td>keyboard emulation seems to be dodgy</td>
1.1       root      955:     </tr>
1.1.1.3   root      956:     <tr>
                    957:       <td>Rick Dangerous</td>
                    958:       <td>yes</td>
                    959:       <td>perfect</td>
                    960:       <td>&nbsp;</td>
                    961:     </tr>
                    962:     <tr>
                    963:       <td>Slayer</td>
                    964:       <td>yes</td>
                    965:       <td>ok</td>
                    966:       <td>raster fx at highscore entry dodgy</td>
                    967:     </tr>
                    968:     <tr>
                    969:       <td>Lethal Xcess</td>
                    970:       <td>no</td>
                    971:       <td>&nbsp;</td>
                    972:       <td>crashes while loading, sync scrolling will not work properly</td>
                    973:     </tr>
                    974:     <tr>
                    975:       <td>Star Goose</td>
                    976:       <td>yes</td>
                    977:       <td>music ok - bullet sound dodgy</td>
                    978:       <td>&nbsp;</td>
                    979:     </tr>
                    980:     <tr>
                    981:       <td>Xenon 2 - Megablast</td>
                    982:       <td>yes</td>
                    983:       <td>nearly perfect (including sampled intro)</td>
                    984:       <td>&nbsp;</td>
                    985:     </tr>
                    986:     <tr>
                    987:       <td>Metal Mutant</td>
                    988:       <td>yes</td>
                    989:       <td>seems ok</td>
                    990:       <td>some color effects in the lower screen seem buggy</td>
                    991:     </tr>
                    992:     <tr>
                    993:       <td>Defenders Of The Earth</td>
                    994:       <td>yes</td>
                    995:       <td>&nbsp;</td>
                    996:       <td>&nbsp;</td>
                    997:     </tr>
                    998:     <tr>
                    999:       <td>Nebulus</td>
                   1000:       <td>yes</td>
                   1001:       <td>music ok; snowball, balls and trapdoors dodgy</td>
                   1002:       <td>otherwise working to a playable extend</td>
                   1003:     </tr>
                   1004:     <tr>
                   1005:       <td>Leander</td>
                   1006:       <td>yes</td>
                   1007:       <td>&nbsp;</td>
                   1008:       <td>&nbsp;</td>
                   1009:     </tr>
                   1010:     <tr>
                   1011:       <td>Navy Seals</td>
                   1012:       <td>yes</td>
                   1013:       <td>&nbsp;</td>
                   1014:       <td>&nbsp;</td>
                   1015:     </tr>
                   1016:     <tr>
                   1017:       <td>Armalyte</td>
                   1018:       <td>yes</td>
                   1019:       <td>&nbsp;</td>
                   1020:       <td>&nbsp;</td>
                   1021:     </tr>
                   1022:     <tr>
                   1023:       <td>Wings Of Death</td>
                   1024:       <td>yes</td>
                   1025:       <td>&nbsp;</td>
                   1026:       <td>&nbsp;</td>
                   1027:     </tr>
                   1028:     <tr>
                   1029:       <td>Toki</td>
                   1030:       <td>yes</td>
                   1031:       <td>&nbsp;</td>
                   1032:       <td>&nbsp;</td>
                   1033:     </tr>
                   1034:     <tr>
                   1035:       <td>Alien World</td>
                   1036:       <td>yes</td>
                   1037:       <td>&nbsp;</td>
                   1038:       <td>Only works with "--slowfdc"</td>
                   1039:     </tr>
                   1040:     <tr>
                   1041:       <td>Skweek</td>
                   1042:       <td>yes</td>
                   1043:       <td>&nbsp;</td>
                   1044:       <td>Does not work with cartridge / HD emulation</td>
                   1045:     </tr>
                   1046:   </tbody>
                   1047: </table>
                   1048: 
                   1049: <br>
1.1.1.2   root     1050: 
1.1.1.3   root     1051: <table border="1" cellpadding="3">
                   1052:   <caption align="bottom">tested demos</caption> <tbody>
                   1053:     <tr class="backdropped">
                   1054:       <td align="center">Demo</td>
                   1055:       <td align="center">Working</td>
                   1056:       <td align="center">Sound</td>
                   1057:       <td align="center">Comment</td>
                   1058:     </tr>
                   1059:     <tr>
                   1060:       <td>Fantasia (by Dune)</td>
                   1061:       <td>yes</td>
                   1062:       <td>&nbsp;</td>
                   1063:       <td>Only works with "--slowfdc"</td>
                   1064:     </tr>
                   1065:     <tr>
                   1066:       <td>Oddstuff (by Dune/SectorOne)</td>
                   1067:       <td>yes</td>
                   1068:       <td>&nbsp;</td>
                   1069:       <td>Only works with "--slowfdc".
                   1070:           Enable "frameskip" to avoid the flicker.</td>
                   1071:     </tr>
                   1072:     <tr>
                   1073:       <td>If pigs could fly (by Syndicate)</td>
                   1074:       <td>yes</td>
                   1075:       <td>&nbsp;</td>
                   1076:       <td>Only works with "--slowfdc"</td>
                   1077:     </tr>
                   1078:     <tr>
                   1079:       <td>LongScreen (by X-Troll)</td>
                   1080:       <td>yes</td>
                   1081:       <td>&nbsp;</td>
                   1082:       <td>Only works with "--slowfdc"</td>
                   1083:     </tr>
                   1084:     <tr>
                   1085:       <td>Overdose (by Aggression)</td>
                   1086:       <td>yes</td>
                   1087:       <td>&nbsp;</td>
                   1088:       <td>Does not work with cartridge / HD emulation</td>
                   1089:     </tr>
1.1       root     1090:   </tbody>
                   1091: </table>
                   1092: 
1.1.1.3   root     1093: <br>
                   1094: 
                   1095: <table border="1" cellpadding="3">
                   1096:   <caption align="bottom">tested applications</caption> <tbody>
1.1       root     1097:     <tr class="backdropped">
                   1098:       <td align="center">Application</td>
                   1099:       <td align="center">Working</td>
1.1.1.3   root     1100:       <td align="center">Comment</td>
                   1101:     </tr>
                   1102:     <tr>
                   1103:       <td>DevPac 2.2</td>
                   1104:       <td>yes</td>
                   1105:       <td>MonST crashy</td>
                   1106:     </tr>
                   1107:     <tr>
                   1108:       <td>Turbo Assembler</td>
                   1109:       <td>yes</td>
1.1.1.4 ! root     1110:       <td>Due to a bug you need to have a proper disk image inserted into drive A. Works otherwise!</td>
1.1.1.3   root     1111:     </tr>
                   1112:     <tr>
                   1113:       <td>GFABASIC 3.6TT</td>
                   1114:       <td>yes</td>
                   1115:       <td>MENU.PRG does not like harddisks. Use diskimages for
                   1116: compiling.</td>
                   1117:     </tr>
                   1118:     <tr>
                   1119:       <td>ST Basic</td>
                   1120:       <td>yes</td>
                   1121:       <td>&nbsp;</td>
                   1122:     </tr>
                   1123:     <tr>
                   1124:       <td>Neochrome</td>
                   1125:       <td>yes</td>
                   1126:       <td>rasters sometimes unstable</td>
                   1127:     </tr>
                   1128:     <tr>
                   1129:       <td>Crackart</td>
                   1130:       <td>yes</td>
                   1131:       <td>Harddisk access does not work with GEMDOS emulation - fine
                   1132: with disk images</td>
                   1133:     </tr>
                   1134:     <tr>
                   1135:       <td>Tempus</td>
                   1136:       <td>yes</td>
                   1137:       <td>&nbsp;</td>
                   1138:     </tr>
                   1139:     <tr>
                   1140:       <td>Sagrotan</td>
                   1141:       <td>yes</td>
                   1142:       <td>&nbsp;</td>
                   1143:     </tr>
                   1144:     <tr>
                   1145:       <td>SidSound Designer</td>
                   1146:       <td>yes</td>
                   1147:       <td>&nbsp;</td>
                   1148:     </tr>
                   1149:     <tr>
                   1150:       <td>MusicMon 2</td>
                   1151:       <td>yes</td>
                   1152:       <td>&nbsp;</td>
                   1153:     </tr>
                   1154:     <tr>
                   1155:       <td>Protracker</td>
                   1156:       <td>yes</td>
                   1157:       <td>&nbsp;</td>
                   1158:     </tr>
                   1159:     <tr>
                   1160:       <td>Teradesk</td>
                   1161:       <td>yes</td>
                   1162:       <td>&nbsp;</td>
                   1163:     </tr>
                   1164:     <tr>
                   1165:       <td>Qed</td>
                   1166:       <td>yes</td>
                   1167:       <td>&nbsp;</td>
                   1168:     </tr>
                   1169:     <tr>
                   1170:       <td>Everest</td>
                   1171:       <td>yes</td>
                   1172:       <td>&nbsp;</td>
                   1173:     </tr>
                   1174:     <tr>
                   1175:       <td>Speed Of Light</td>
                   1176:       <td>yes</td>
                   1177:       <td>&nbsp;</td>
1.1       root     1178:     </tr>
                   1179:   </tbody>
                   1180: </table>
                   1181: 
1.1.1.3   root     1182: <br>
1.1       root     1183: 
1.1.1.3   root     1184: <hr style="width: 100%; height: 2px;">
1.1       root     1185: <table border="0" width="100%">
1.1.1.3   root     1186:   <tbody>
1.1       root     1187:     <tr>
1.1.1.3   root     1188:       <td align="left"><a href="http://validator.w3.org/check/referer"><img
                   1189:  src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"
                   1190:  border="0" height="31" width="88"></a></td>
                   1191:       <td align="right">
                   1192:       <address><a href="mailto:[email protected]">Matthias Arndt</a>
1.1.1.4 ! root     1193: February 28 2005</address>
1.1.1.3   root     1194:       </td>
1.1       root     1195:     </tr>
1.1.1.3   root     1196:   </tbody>
1.1       root     1197: </table>
                   1198: </body>
                   1199: </html>

unix.superglobalmegacorp.com

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