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

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>
                      5:   <meta name="description" content="User's manual for the Atari ST emulator Hatari">
                      6:   <meta name="author" content="Matthias Arndt <[email protected]>">
                      7:   <meta name="keywords" content="hatari, documentation, manual, linux">
                      8:   <meta name="resource-type" content="document">
                      9:   <meta name="distribution" content="global">
                     10:   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
                     11:   <meta name="Generator" content="Quanta Plus 3.1.2 Debian GNU/Linux 3.0 Woody">
                     12:   <meta http-equiv="Content-Style-Type" content="text/css">
                     13:   <style type="text/css">
                     14:   <!--
                     15:        body { background-color:#FFFFFF;
                     16:                   color:#000000;
                     17:            margin-left:10px;
                     18:                   margin-right:10px;
                     19:                   font-family:Verdana,Arial,Helvetica,sans-serif; font-size:12pt;
                     20:                 }
                     21: 
                     22:        h1 { font-size:28pt; }
                     23:        h2 { font-size:22pt; border-bottom:solid thin black;}
                     24:        h3 { font-size:16pt; }
                     25:        h4 { font-size:13pt; }
                     26: 
                     27:        td { font-family:Verdana,Arial,Helvetica,sans-serif; font-size:12pt; }
                     28: 
                     29:        a:link { color:#000099; background-color:#ffffff; text-decoration:none; }
                     30:        a:visited { color:#cc0000; background-color:#ffffff; text-decoration:none;}
                     31:        a:hover { color:#000099; background-color:#ffffff; text-decoration:none; font-weight:bold; }
                     32:        a:active { color:#993399; background-color:#ffffff; text-decoration:none; font-weight:bold; }
                     33: 
                     34:        *.commandline { font-family:Fixed,Courier,monospace; font-size:10pt; }
                     35:        *.key { color:#550000; font-family:Fixed,Courier,monospace; font-size:10pt; }
                     36:        *.backdropped { background-color:#ffffee; }
                     37:        *.image {border-width:2px; border-style:solid; border-color:#eeeeff; padding:1cm; text-align:justify; }
                     38: 
                     39:   -->
                     40:   </style>
                     41: 
                     42: </head>
                     43: <body bgcolor="#ffffff" text="#000000" link="#000099" vlink="#cc0000" alink="#993399">
                     44: <h1 align="center">Hatari User's Manual</h1>
                     45: <p align="center"><strong>manual by Matthias Arndt &lt;<a href="mailto:[email protected]">[email protected]</a>&gt;</strong></p>
                     46: <br>
                     47: 
                     48: <h2>Introduction</h2>
                     49: 
                     50: <h3>General description</h3>
                     51: <p>Hatari is an Atari ST emulator for Linux, FreeBSD, BeOS and other
                     52: Systems which are supported by the SDL library. See Appendix B
                     53: for details on emulation in general. </p>
                     54: <p>Hatari is based on two main sources: </p>
                     55: 
                     56: <ul>
                     57:   <li>The WinSTon sourcecode written by Paul Bates. You can get it
                     58: from: <a href="http://www.sourceforge.net/projects/winston/">http://www.sourceforge.net/projects/winston/</a> </li>
                     59:   <li>The UAE's CPU core, you can download UAE
                     60: at: <a href="http://www.freiburg.linux.de/uae/">http://www.freiburg.linux.de/uae/</a> </li>
                     61: </ul>
                     62: <p>
                     63: Hatari started as an adaption of the free WinSTon source code to Linux.
                     64: (WinSTon is a ST emulator for Windows). But since WinSTon's CPU core was
                     65: written in i86 assembler, it was not possible to use it for Hatari as
                     66: Hatari is intended to be platform independent. So the UAE's CPU core was
                     67: used for Hatari instead, because this CPU core has been written in
                     68: portable C and also has some nice features like 68040 and FPU support.
                     69: </p>
                     70: 
                     71: <h3>Features</h3>
                     72: <ul>
                     73:   <li>complete m68k emulation via UAE's CPU core </li>
                     74:   <li>support for EmuTOS, TOS 1.00, 1.02, 1.04, 2.05 and 2.06 </li>
                     75:   <li>ST RAM size variable (512k, 1MB, 2MB and 4MB possible) </li>
                     76:   <li>most of the ST specific hardware </li>
                     77:   <li>ST Shifter with ST-High, ST-Medium and ST-Low resolutions,
                     78: overscan effects for lower border and partially in the upper border too</li>
                     79:   <li>512 colour ST palette </li>
                     80:   <li>Blitter chip emulation </li>
                     81:   <li>AY-3-8910 emulation (soundchip)</li>
                     82:   <li>Mega ST real time clock</li>
                     83:   <li>many (but not all) raster effects </li>
                     84:   <li>IKBD emulation (keyboard, mouse and joystick) with custom keyboard mapping</li>
                     85:   <li>joystick emulation via cursor keys and joystick emulation via a
                     86: connected PC joystick </li>
                     87:   <li>FDC emulation using floppy disk images in standard formats (*.ST
                     88: and *.MSA) </li>
                     89:   <li>support for zipped disk images</li>
                     90:   <li>partial ACSI emulation for harddisk support </li>
                     91:   <li>GEMDOS interface driver to mount a directory as a harddrive </li>
                     92:   <li>driver for extended VDI resolutions </li>
                     93:   <li>recording of sound as .WAV and .YM files </li>
                     94:   <li>screenshots in .BMP format </li>
                     95:   <li>animation capturing </li>
                     96:   <li>interlaced rendering of ST-Low and ST-Medium resolutions </li>
                     97:   <li>scaling of ST-Low and ST-Medium to 800x600 resolution </li>
                     98: </ul>
                     99: <p>
                    100: At the time of this writing there is neither a complete MMU emulation
                    101: nor support for STE specific features.
                    102: </p>
                    103: 
                    104: <h3>System requirements</h3>
                    105: <p> Hatari currently has the following system requirements: </p>
                    106: <ul>
                    107:   <li>a fast PC (&gt;200MHz) </li>
                    108:   <li>some sort of Unix (preferable <a href="http://www.linux.org/">GNU/Linux</a>) </li>
                    109:   <li>the SDL library (<a href="http://www.libsdl.org/">http://www.libsdl.org/</a>)</li>
                    110:   <li>the zLib (<a href="http://www.gzip.org/zlib/">http://www.gzip.org/zlib/</a>) for support of gzipped disk images</li>
                    111: </ul>
                    112: Hatari has been succesfully tested on the following machines:
                    113: <p> </p>
                    114: <ul>
                    115:   <li>Linux/i86 with Kernel 2.4.20, AMD Athlon 600MHz </li>
                    116:   <li>Linux/i86 with Kernel 2.2.18, Pentium MMX 200MHz </li>
                    117:   <li>Linux/PPC with Kernel 2.4.x BeOS/i86 </li>
                    118:   <li>Apple PowerMac with Mac OS X </li>
                    119:   <li>NetBSD 1.6 </li>
                    120:   <li>FreeBSD 4.1 on a 33MHz i486 computer (very slow, but it worked!) </li>
                    121:   <li>FreeBSD 4.8 on a Pentium 4</li>
                    122: </ul>
                    123: <p>
                    124: It has also been tested on Linux/Sparc and it should work by now with the latest CVS version.
                    125: </p>
                    126: 
                    127: <h2>Compiling and running</h2>
                    128: 
                    129: <h3>Compiling Hatari</h3>
                    130: <p> First, you need the SDL library, you can get it at:
                    131: <a href="http://www.libsdl.org/">http://www.libsdl.org/</a>. Most distributions already ship a suitable version.
                    132: Make sure to install the appropriate header files as well often called "libsdl-dev" or the like.
                    133: </p>
                    134: <p> Second, you need the zLib compression library. You can get it from <a href="http://www.gzip.org/zlib/">http://www.gzip.org/zlib/</a>
                    135: but the version shipped with your distribution will be sufficient in most cases. Make sure to have the header files
                    136: for it installed as well.
                    137: </p>
                    138: 
                    139: <p>
                    140: Of course, you need the GNU C compiler and (GNU) Make, too!
                    141: </p>
                    142: 
                    143: <p> Change to the src/ directory and adapt the Makefile to suite your
                    144: mood (and system of course). Then compile it by typing <span class="commandline">make</span>. If all
                    145: works fine, you'll get the executable <span class="commandline">hatari</span>. </p>
                    146: 
                    147: <h3>Installation of a TOS ROM</h3>
                    148: <p> Then you'll have to copy a TOS ROM to the data directory (the data directory is specified
                    149: in the Makefile) and rename it to <span class="commandline">tos.img</span>, or use the
                    150: <span class="commandline">--tos</span> command line option to tell Hatari where to find a TOS ROM.
                    151: Hatari needs a TOS ROM image because this contains the operating system
                    152: of the emulated Atari. Sorry, it is not possible to ship an image with
                    153: the Hatari package since these images are still copyrighted. But you can
                    154: easily create an image with a real ST and one of those various
                    155: ROM-image programs for the ST. Or search the internet, but don't ask the Hatari team
                    156: where to find one.
                    157: </p>
                    158: <p> Another solution is EmuTOS, which is an open-source
                    159: TOS clone. You can find EmuTOS at: <a href="http://emutos.sourceforge.net/">http://emutos.sourceforge.net/</a>. It's
                    160: not the best solution for playing games or running other old software
                    161: due to compatibility issues, but it's free! </p>
                    162: <p>If you do not specify a TOS image on the commandline nor can Hatari
                    163: find a suitable TOS image in the default dir, you'll get the chance to
                    164: select a TOS image file from the GUI. </p>
                    165: 
                    166: <h3>Installation of the binary</h3>
                    167: <p> Simply copy the hatari binary somewhere in your path where you can
                    168: access it easily by typing <span class="commandline">hatari</span> in your shell. </p>
                    169: <p> When you finally have got a TOS image, try starting Hatari with the
                    170: option <span class="commandline">--help</span> to find out more about its command line parameters. </p>
                    171: 
                    172: <h3>Running Hatari for the first time</h3>
                    173: <p> Now type <span class="commandline">hatari</span> to run the emulator for the first time. If all goes
                    174: well, you should now be presented with a window showing you the familiar
                    175: little green desktop of the Atari ST. Press <span class="key">F12</span> to turn on the GUI to
                    176: configure Hatari to suit your needs, press <span class="key">F11</span> to toggle windowed and fullscreen mode. </p>
                    177: 
                    178: <h2>Command line options</h2>
                    179: <p> Hatari ofcourse understands several command line options. </p>
                    180: <p> Type <span class="commandline">hatari --help</span> to list them all. </p>
                    181: <p> The command line options in detail are as follows (in brackets the
                    182: long version): </p>
                    183: 
                    184: <table cellpadding="3" border="1">
                    185:   <tbody>
                    186:     <tr class="backdropped">
                    187:       <td align="center">Option</td>
                    188:       <td align="center">Purpose</td>
                    189:     </tr>
                    190:     <tr>
                    191:       <td align="center">-h (--help)</td>
                    192:       <td align="center">prints command line options and terminates</td>
                    193:     </tr>
                    194:     <tr>
                    195:       <td align="center">-v (--version)</td>
                    196:       <td align="center">prints version information and terminates</td>
                    197:     </tr>
                    198:     <tr>
                    199:       <td align="center">-m (--mono)</td>
                    200:       <td align="center">starts the emulated Atari ST in monochrome
                    201: resolution</td>
                    202:     </tr>
                    203:     <tr>
                    204:       <td align="center">-f (--fullscreen)</td>
                    205:       <td align="center">tries to use a fullscreen mode</td>
                    206:     </tr>
                    207:     <tr>
                    208:       <td align="center">-j (--joystick)</td>
                    209:       <td align="center">activates joystick emulation via cursor keys</td>
                    210:     </tr>
                    211:     <tr>
                    212:       <td align="center">--nosound</td>
                    213:       <td align="center">disables sound (makes emulation faster)</td>
                    214:     </tr>
                    215:     <tr>
                    216:       <td align="center">--frameskip</td>
                    217:       <td align="center">drops every second frame (accelerates
                    218: emulation)</td>
                    219:     </tr>
                    220:     <tr>
                    221:       <td align="center">-D (--debug)</td>
                    222:       <td align="center">activates the simple builtin debugger</td>
                    223:     </tr>
                    224:     <tr>
                    225:       <td align="center">-d &lt;dir&gt; (--harddrive &lt;dir&gt;)</td>
                    226:       <td align="center">emulates &lt;dir&gt; as a hard disk</td>
                    227:     </tr>
                    228:     <tr>
                    229:       <td align="center">--hdimage &lt;imagefile&gt;</td>
                    230:       <td align="center">emulate hard disk with an image file</td>
                    231:     </tr>
                    232:     <tr>
                    233:       <td align="center">--tos &lt;imagefile&gt;</td>
                    234:       <td align="center">specify TOS ROM image to use</td>
                    235:     </tr>
                    236:        <tr>
                    237:       <td align="center">--memsize  x</td>
                    238:       <td align="center">set amount of emulated RAM<br>
                    239:           x=0 for 512K, x=1,x=2 or x=4 for 1,2 or 4 MB</td>
                    240:     </tr>
                    241:     <tr>
                    242:       <td align="center">--cpulevel x</td>
                    243:       <td align="center">specify CPU (680x0) to use (TOS 2.06 only!!)</td>
                    244:     </tr>
                    245:     <tr>
                    246:       <td align="center">--compatible</td>
                    247:       <td align="center">use a more compatible but slower 68000 CPU mode</td>
                    248:     </tr>
                    249:     <tr>
                    250:       <td align="center">--blitter</td>
                    251:       <td align="center">enable blitter emulation</td>
                    252:     </tr>
                    253:     <tr>
                    254:       <td align="center">--vdi</td>
                    255:       <td align="center">use extended VDI resolution</td>
                    256:     </tr>
                    257:   </tbody>
                    258: </table>
                    259: 
                    260: <h2>Using the emulated system</h2>
                    261: <p> Once you've started Hatari succesfully, you can use the emulator as
                    262: an allmost complete Atari ST computer system. </p>
                    263: 
                    264: <h3>The GUI</h3>
                    265: 
                    266: <h4>General usage</h4>
                    267: <p>Press <span class="key">F12</span> to enter the GUI. Navigate it with the mouse.
                    268: The GUI is rather self explanatory.</p>
                    269: <p>Click "Okay" to go back to the emulated ST. All checked options will be applied.</p>
                    270: <p>Check the "Reset ST" option if you want the emulated ST to perform a soft reset.</p>
                    271: <p>Click "Quit" to terminate Hatari and return to the host OS.</p>
                    272: <p>Click "Cancel" to abandon any changes made.</p>
                    273: 
                    274: <h4>The System Dialog</h4>
                    275: <p>Check the CPU type to use here, enable prefetch mode and if the Blitter should be active.</p>
                    276: <p>For best Atari ST compatibility choose plain 68000 here.</p>
                    277: <p><em>NOTE:</em> These parameters are sensitive to the emulated ST and it is strongly recommended to
                    278: reset the emulated ST after changing these options.</p>
                    279: 
                    280: <h4>The Floppy Disk Dialog</h4>
                    281: <p>Use this dialog to choose which disks should be emulated in the disk drives.</p>
                    282: <p>You can use most standard Atari ST disk image files. See the chapter "Floppy disk images"
                    283: for details.</p>
                    284: <p>Click on the button "Browse" next to the A: and B: option to go to the fileselector.</p>
                    285: <p>You can specify a default directory where Hatari will start to browse the filesystem.</p>
                    286: <p>Check the "Auto insert B" option if you want Hatari to be smart and insert the second disk
                    287: of a two disk game automatically. This option will insert the second disk in drive B and some
                    288: games may not be able to find the disks there. In that rare case you will need to insert the
                    289: second disk manually when prompted.</p>
                    290: <p>You can select a harddrive image for harddrive emulation via image file here or you may select
                    291: a directory of your local filesystem to be emulated as the ST's harddrive.</p>
                    292: <p>Check "Boot from HD" if you want Hatari to execute the AUTO folder on the harddrive.
                    293: This option is checked by default if you specify a harddrive image or a directory via the command line.</p>
                    294: 
                    295: <h4>The Memory Dialog</h4>
                    296: <p>You can select the amount of RAM for the emulated ST here.</p>
                    297: <p><em>Note:</em> This option is critical and you are strongly advised to reset the emulated ST
                    298: when changing this option.</p>
                    299: 
                    300: <h4>The TOS/GEM Dialog</h4>
                    301: <p>Here you can select the TOS image to use. Click on "Browse" to select it via the fileselector.</p>
                    302: <p>In the GEM setup you can select a larger resolution for GEM conformant apps. Select resolution
                    303: and colour depth. Almost all games and demos will not work in one of these resolutions.</p>
                    304: <p><em>Note:</em> These options are critical and you are strongly advised to reset the emulated ST
                    305: when changing one of these option.</p>
                    306: 
                    307: <h4>The Joystick Dialog</h4>
                    308: <p>Here you can select which joystick you want to emulate via the cursor keys.</p>
                    309: <p>Joystick 1 is the normal ST joystick port and 99.9% of all ST games use this port, Joystick 0
                    310: emulates a joystick plugged into the ST mouse port allowing you to play 2 player games.</p>
                    311: <p>If no joystick is checked here, joystick emulation is done via a connected PC joystick.</p>
                    312: <p>See the chapter "Emulated Joystick" for details.</p>
                    313: 
                    314: <h4>The Screen Dialog</h4>
                    315: <p>Here you control the video output of the emulated ST.</p>
                    316: <p>Check "Fullscreen" to run Hatari fullscreen, default is windowed.</p>
                    317: <p>Check "Interlace" if you wish to have that old TV feeling in Hatari. Every second line will be black.
                    318: This will only work in ST-MEDIUM or ST-LOW in scaled up resolutions.</p>
                    319: <p>Check "Frame Skip" to speed Hatari up if emulation is too slow. This will only draw every second ST frame
                    320: instead of the default of drawing every ST frame. Uncheck if you have a fast PC.</p>
                    321: <p>Check "Use Borders" if you wish to have the borders around the ST screen.</p>
                    322: <p>"Force 8Bpp" will force SDL to use an 8bit video mode. You don't need this for modern video cards.</p>
                    323: <p>You can select which sort of monitor to use. Check "Color" for games and demos. If you check "Mono" here,
                    324: Hatari will emulate the good old SM124 and will not allow you to switch to color modes from the running ST.
                    325: This toggle acts like a monitor switch with a color and monochrome monitor connected.</p>
                    326: <p>"ST-Low mode" will control if Hatari renders ST-LOW to a 320x200 or 640x400 PC display (with borders turned off) or 384x267 or 768x534.
                    327: Basically select this to toggle between a small or a large window.</p>
                    328: <p>Click "Capture Screen" to create a screenshot in .BMP format to the current working directory or click "Record Animation"
                    329: to record a little movie.
                    330: </p>
                    331: 
                    332: <h4>The Keyboard Dialog</h4>
                    333: <p>Here you can select the keyboard mapping to use.</p>
                    334: <p>Two different mappings called "Symbolic" and "Scancode" are predefined.</p>
                    335: <p>You can also load a custom keymapping file here if you wish. Please note that selecting to use a custom keyboard mapping will
                    336: use the "symbolic" mapping for all keys not defined by your map file. See the supplied example mapfile on how to build your
                    337: own keyboard mapping.</p>
                    338: 
                    339: <h4>The Sound Dialog</h4>
                    340: <p>Here you control the sound subsystem.</p>
                    341: <p>Check if you want emulated sound at all. Emulation is faster if sound emulation is turned off.</p>
                    342: <p>3 frequencies from low to high quality are available. Experiment a little bit to find out which fits best for your setup.
                    343: Medium quality will work ok in most cases.</p>
                    344: <p>You can select to record a piece of sound here. Check which format to use and click the button. It is a toggle button so
                    345: you will need to return to the GUI to switch sound recording off again.</p>
                    346: 
                    347: 
                    348: <h3>Keyboard shortcuts</h3>
                    349: <p> While the emulator is running, you can activate or toggle various
                    350: features via the following keyboard shortcuts. </p>
                    351: 
                    352: <table cellpadding="3" border="1">
                    353:   <tbody>
                    354:     <tr class="backdropped">
                    355:       <td align="center">Shortcut</td>
                    356:       <td align="center">Purpose</td>
                    357:     </tr>
                    358:     <tr>
                    359:       <td align="center"><span class="key">ALTGR+g</span></td>
                    360:       <td align="center">grabs a screenshot</td>
                    361:     </tr>
                    362:     <tr>
                    363:       <td align="center"><span class="key">ALTGR+j</span></td>
                    364:       <td align="center">activates joystick emulation via cursor keys</td>
                    365:     </tr>
                    366:     <tr>
                    367:       <td align="center"><span class="key">ALTGR+m</span></td>
                    368:       <td align="center">(un-)locks the mouse into the window</td>
                    369:     </tr>
                    370:     <tr>
                    371:       <td align="center"><span class="key">ALTGR+r</span></td>
                    372:       <td align="center">reset the ST</td>
                    373:     </tr>
                    374:     <tr>
                    375:       <td align="center"><span class="key">ALTGR+c</span></td>
                    376:       <td align="center">coldreset the ST (same as the original power switch)</td>
                    377:     </tr>
                    378:     <tr>
                    379:       <td align="center"><span class="key">ALTGR+q</span></td>
                    380:       <td align="center">quit the emulator</td>
                    381:     </tr>
                    382:     <tr>
                    383:       <td align="center"><span class="key">F11</span></td>
                    384:       <td align="center">toggles fullscreen and windowed mode</td>
                    385:     </tr>
                    386:     <tr>
                    387:       <td align="center"><span class="key">F12</span></td>
                    388:       <td align="center">activate the GUI</td>
                    389:     </tr>
                    390:     <tr>
                    391:       <td align="center"><span class="key">PAUSE</span></td>
                    392:       <td align="center">will go to the debugger if it was activated at compile time</td>
                    393:     </tr>
                    394:   </tbody>
                    395: </table>
                    396: 
                    397: <h3>Emulated Atari ST keyboard</h3>
                    398: <p> All other keys on the keyboard act as the normal Atari ST keys so
                    399: pressing SPACE on your PC will result in an emulated press of the SPACE
                    400: key on the ST. The following keys have special meanings: </p>
                    401: 
                    402: <table cellpadding="3" border="1">
                    403:   <tbody>
                    404:     <tr class="backdropped">
                    405:       <td align="center">Key</td>
                    406:       <td align="center">Meaning</td>
                    407:     </tr>
                    408:     <tr>
                    409:       <td align="center"><span class="key">Alt</span></td>
                    410:       <td align="center">will act as the ST's ALTERNATE key</td>
                    411:     </tr>
                    412:     <tr>
                    413:       <td align="center"><span class="key">left CTRL</span></td>
                    414:       <td align="center">will act as the ST's CONTROL key</td>
                    415:     </tr>
                    416:     <tr>
                    417:       <td align="center"><span class="key">Page Up</span></td>
                    418:       <td align="center">will emulate the ST's HELP key</td>
                    419:     </tr>
                    420:     <tr>
                    421:       <td align="center"><span class="key">Page Down</span></td>
                    422:       <td align="center">will emulate the ST's UNDO key</td>
                    423:     </tr>
                    424:   </tbody>
                    425: </table>
                    426: 
                    427: <p> <span class="key">ALTGR</span> will act as ALTERNATE as well as long as you do not press it
                    428: together with a Hatari hotkey combination. </p>
                    429: <p> The <span class="key">right CTRL</span> key is used as the fire button of the emulated
                    430: joystick when you turn on joystick emulation via keyboard. </p>
                    431: <p> The cursor keys will act as the cursor keys on the Atari ST as long as joystick emulation
                    432: via keyboard has been turned off.</p>
                    433: 
                    434: <h3>Emulated mouse</h3>
                    435: <p>For obvious reasons your PC mouse will act as the emulated Atari ST
                    436: mouse. In fullscreen mode it will act as expected, directly controlling
                    437: the ST mouse pointer. </p>
                    438: <p>However it is a little bit different in windowed mode. To make the
                    439: mouse work there as expected you need to grab it first or lock it into
                    440: the Hatari window. Do this by pressing the <span class="key">ALTGR+m</span> hotkey combination.
                    441: Press it again to go back to normal mouse behaviour which allows you to
                    442: work in other X11 windows while Hatari is up and running. </p>
                    443: 
                    444: <h3>Emulated joystick</h3>
                    445: <p>The Atari ST joysticks are emulated ofcourse allowing you to play
                    446: your favourite games with Hatari. </p>
                    447: <p>The default mode is to use a connected PC joystick. You can use any
                    448: joystick that is supported by your kernel. If your joystick works with
                    449: other applications, it will likely work with Hatari as well. Make sure
                    450: it is calibrated and then off you go. Move the stick to point into the
                    451: desired direction. Please note that Hatari will not detect analogue
                    452: movement as the Atari ST only had digital joysticks. The first
                    453: firebutton will act as the normal firebutton on the Atari ST while the second
                    454: firebutton will emulate a keypress of the <span class="key">SPACE</span> key on the ST as many ST
                    455: games utilitze the SPACE bar for secondary game functions. (Xenon for example)</p>
                    456: <p>If you do not have a PC joystick or joypad, then you do not need to
                    457: desperate. You can emulate one of the two Atari ST joysticks via the
                    458: cursor keys. Just activate it in the GUI. Then the cursor keys will act
                    459: as the joystick directions, the right CTRL key will act as the
                    460: firebutton. You can still use the cursor keys as the ST's
                    461: cursorkeys in this mode as long as you press <span class="key">SHIFT</span> along with the cursorkeys. </p>
                    462: 
                    463: <h2>Floppy disk images</h2>
                    464: <p>Hatari does not use floppy disks directly but disk images due to
                    465: differences between the floppy disk controllers of the ST and the PC.
                    466: Two types of disk images are currently supported: The raw "ST" type and
                    467: the "MSA" (Magic-Shadow-Archiver) type. </p>
                    468: <p> The raw type (file suffix should be "*.st") is simply a sector by
                    469: sector image of a real floppy disk. You can easily create such an image
                    470: with the <span class="commandline">dd</span> program which should normally be pre-installed on every
                    471: Unix-like system. Simply type something like <span class="commandline">dd if=/dev/fd0 of=myimage.st</span> to create a disk image. Of course you need access to
                    472: /dev/fd0, and depending on your system and the type of floppy disk you
                    473: might have to use another device name here (for example I use
                    474: /dev/fd0u720 for 720kB disks). However, if the disk is copy-protected or
                    475: doesn't use a MSDOS compatible file system, this might fail. So be very
                    476: careful if you're not sure about the disk format. </p>
                    477: <p> The other possibility is to image the disk on a real Atari ST. There
                    478: are programs like the Magic Shadow Archiver for this task. Hatari
                    479: supports this slightly compressed MSA disk images, too. Note that Hatari
                    480: only supports the "old" MSA format, there are some Magic Shadow Archiver
                    481: clones (like Jay-MSA) that create better compressed but
                    482: Hatari-incompatible disk images. </p>
                    483: <p> While *.ST and *.MSA are more or less the "standard" types of Atari
                    484: disk images, you might sometimes also find DIM or ADF images on the
                    485: internet. These currently do not work with Hatari. But since DIM images
                    486: are nearly the same as the raw ST images (they only have an additional
                    487: 32 byte header) you can easily transform the DIM images into ST images
                    488: by stripping the header from the files. For example try something like:
                    489: <span class="commandline">dd if=input.dim of=output.st bs=32 skip=1</span> </p>
                    490: <p> If you've got a disk image that has been created with the old ST
                    491: emulator PaCifiST (for DOS) or with early versions of the program
                    492: Makedisk, and the disk image does not work with Hatari, then the disk
                    493: probably suffers from the "PaCifiST bootsector bug" (Hatari will print a
                    494: warning message then). In this case, the bootsector of the disk
                    495: contains some illegal data, so that the disk even does not work on a
                    496: real ST any more. However, if it is a .ST and not a .MSA disk, you can
                    497: easily fix it by using a hex-editor to change the byte at offset $D (13)
                    498: from 0 to 1 (don't forget to backup your disk image first, since you
                    499: can also easily destroy your disk image when changing a wrong byte
                    500: there). If the disk contains a bootsector program, you probably have to
                    501: adjust the boot sector check sum, too (it can be found at offset $1FE +
                    502: $1FF). </p>
                    503: <p>Hatari supports zipped disk images so you can archive your disk images into zip archives.
                    504: You can also directly run the zip archives you may download from the net as long as the archive contains a
                    505: disk image in .ST or .MSA format.</p>
                    506: <p><em>Note:</em> Hatari does not save disk images back to zipfiles so your highscores and savegames are lost if you
                    507: loaded the game from a zipped disk image.</p>
                    508: 
                    509: <h2>Hard disk support</h2>
                    510: <p>Hatari supports two ways of emulating a ST hard drive: The low-level
                    511: ACSI hard disk emulation and a GEMDOS based drive emulation. </p>
                    512: <p>To use the ACSI hard disk emulation, you need a hard disk image file
                    513: with a pre-installed HD driver in it. So either try to image your old ST
                    514: hard disk or grab one from the internet. There is a HD image on the
                    515: Hatari web page for download. Perhaps we'll also provide a tool for
                    516: creating HD images one day. </p>
                    517: <p>With the GEMDOS based drive emulation, you can easily "mount" a
                    518: folder from the host file system to a drive of the emulated Atari. To
                    519: use the GEMDOS based drive emulation, you should use a folder on your
                    520: hard disk that only contains files and folders with valid TOS filenames.
                    521: That means that all files/folders should be written in capital letters
                    522: and their length mustn't exceed the 8+3 file name length limit. If you
                    523: don't want to rename all files to get capital letters, it is also
                    524: possible to store that folder on a FAT filesystem since those
                    525: filesystems are case-insensitive. </p>
                    526: <p>GEMDOS drive emulation is an easy way to share files between the
                    527: host system and the emulated Atari, but it is known to be incomplete and
                    528: a little bit unstable, especially if you use it together with the ACSI
                    529: hard disk emulation. So if your programs complain that they could not
                    530: find/read/write files on the GEMDOS HD drive, you should try to copy
                    531: them to a floppy disk image or a real hard disk image! </p>
                    532: <p> Note that changing the HD-image or the GEMDOS HD-folder will reset
                    533: the emulated Atari since it is not possible to switch the hard disk
                    534: while the emulator is running. </p>
                    535: <p> May the fun without the price to be with you ;-) ! </p>
                    536: 
                    537: <h2>Appendix</h2>
                    538: 
                    539: <h3>Copying</h3>
                    540: <div class="backdropped">
                    541: <p>This program is free software; you can redistribute it and/or modify
                    542: it under the terms of the GNU General Public License as published by the
                    543: Free Software Foundation; either version 2 of the License, or (at your
                    544: option) any later version. </p>
                    545: <p>This program is distributed in the hope that it will be useful, but <em>WITHOUT
                    546: ANY WARRANTY</em>; without even the implied warranty of <em>MERCHANTABILITY</em>
                    547: or <em>FITNESS FOR A PARTICULAR PURPOSE</em>. See the GNU General Public
                    548: License for more details. </p>
                    549: <p>You should have received a copy of the GNU General Public License
                    550: along with this program; if not, write to Free Software Foundation,
                    551: Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA </p>
                    552: </div>
                    553: 
                    554: <p><a href="http://www.gnu.org/">The GNU Project and the Free Software Foundation</a> | <a href="http://www.fsf.org/licenses/gpl.html">The GNU General Public License</a></p>
                    555: 
                    556: <h3>Introduction to Emulation</h3>
                    557: <p>Emulation via software is an art and Hatari is an example of this.</p>
                    558: <p>Emulation is to make a computer behave like a (probably) completely different machine on the lowest possible niveau.
                    559: This includes CPU and custom chip emulation allowing software written for the emulated machine to be run without notice.
                    560: A good emulator will run most of the software intended for the emulated platform without trouble.
                    561: </p>
                    562: <p>
                    563: The key to emulation is to simply do those things with a software program, the emulator, that normally chips would perform.
                    564: So you have an CPU emulator that basically consists of a large loop that does exactly what the real thing would do:
                    565: </p>
                    566: <ul>
                    567: <li>fetch an instruction from virtual memory</li>
                    568: <li>interpret this instruction</li>
                    569: <li>fetch operands from the emulated registers and memory</li>
                    570: <li>perform the operation like addition or changing the program counter on a jump instruction</li>
                    571: <li>writes results back into the intended registers or memory locations</li>
                    572: <li>increment of the program counter and loop</li>
                    573: </ul>
                    574: <p>
                    575: The typical von-Neumann CPU can be emulated very fast, stable and error-free using such a simple loop system.
                    576: </p>
                    577: <p>
                    578: But in most cases the CPU emulation is the simplest part. Correct emulation of the various cutom chips and hardware
                    579: parts of the emulated system is much trickier.
                    580: </p>
                    581: 
                    582: 
                    583: <h3>Software compatibility list</h3>
                    584: <p>This is a little compilation of what software does work in Hatari. It is by no means finished.</p>
                    585: 
                    586: <table cellpadding="3" border="1">
                    587:   <caption align="bottom">tested games</caption>
                    588:   <tbody>
                    589:     <tr class="backdropped">
                    590:       <td align="center">Game</td>
                    591:       <td align="center">Working</td>
                    592:          <td align="center">Sound</td>
                    593:          <td align="center">Comment</td>
                    594:     </tr>
                    595:        <tr>
                    596:          <td>Eliminator</td>
                    597:          <td>yes</td>
                    598:          <td>perfect</td>
                    599:          <td>&nbsp;</td>
                    600:        </tr>
                    601:        <tr>
                    602:          <td>Speedball</td>
                    603:          <td>yes</td>
                    604:          <td>perfect</td>
                    605:          <td>&nbsp;</td>
                    606:        </tr>
                    607:        <tr>
                    608:          <td>Xenon</td>
                    609:          <td>yes</td>
                    610:          <td>music ok - fx dodgy</td>
                    611:          <td>bullets and explosions sound weired</td>
                    612:        </tr>
                    613:        <tr>
                    614:          <td>F15 Strike Eagle 2</td>
                    615:          <td>yes</td>
                    616:          <td>ok</td>
                    617:          <td>keyboard emulation seems to be dodgy</td>
                    618:        </tr>
                    619:        <tr>
                    620:          <td>Rick Dangerous</td>
                    621:          <td>yes</td>
                    622:          <td>perfect</td>
                    623:          <td>&nbsp;</td>
                    624:        </tr>
                    625:        <tr>
                    626:          <td>Slayer</td>
                    627:          <td>yes</td>
                    628:          <td>ok</td>
                    629:          <td>raster fx at highscore entry dodgy</td>
                    630:        </tr>
                    631:        <tr>
                    632:          <td>Lethal Xcess</td>
                    633:          <td>no</td>
                    634:          <td>&nbsp;</td>
                    635:          <td>crashes while loading</td>
                    636:        </tr>
                    637:        <tr>
                    638:          <td>Star Goose</td>
                    639:          <td>yes</td>
                    640:          <td>music ok - bullet sound dodgy</td>
                    641:          <td>&nbsp;</td>
                    642:        </tr>
                    643:        <tr>
                    644:          <td>Xenon 2 - Megablast</td>
                    645:          <td>yes</td>
                    646:          <td>perfect (including sampled intro)</td>
                    647:          <td>&nbsp;</td>
                    648:        </tr>
                    649:        <tr>
                    650:          <td>Metal Mutant</td>
                    651:          <td>yes</td>
                    652:          <td>seems ok</td>
                    653:          <td>some color effects in the lower screen seem buggy</td>
                    654:        </tr>
                    655:        <tr>
                    656:          <td>Defenders Of The Earth</td>
                    657:          <td>yes</td>
                    658:          <td>&nbsp;</td>
                    659:          <td>&nbsp;</td>
                    660:        </tr>
                    661:        <tr>
                    662:          <td>Nebulus</td>
                    663:          <td>yes</td>
                    664:          <td>music ok; snowball, balls and trapdoors dodgy</td>
                    665:          <td>otherwise working to a playable extend</td>
                    666:        </tr>
                    667:   </tbody>
                    668: </table>
                    669: 
                    670: <table cellpadding="3" border="1">
                    671:   <caption align="bottom">tested applications</caption>
                    672:   <tbody>
                    673:     <tr class="backdropped">
                    674:       <td align="center">Application</td>
                    675:       <td align="center">Working</td>
                    676:          <td align="center">Comment</td>
                    677:     </tr>
                    678:        <tr>
                    679:          <td>DevPac 2.2</td>
                    680:          <td>yes</td>
                    681:          <td>MonST crashy</td>
                    682:        </tr>
                    683:        <tr>
                    684:          <td>Turbo Assembler</td>
                    685:          <td>yes</td>
                    686:          <td>&nbsp;</td>
                    687:        </tr>
                    688:        <tr>
                    689:          <td>GFABASIC 3.6TT</td>
                    690:          <td>yes</td>
                    691:          <td>&nbsp;</td>
                    692:        </tr>
                    693:        <tr>
                    694:          <td>ST Basic</td>
                    695:          <td>yes</td>
                    696:          <td>&nbsp;</td>
                    697:        </tr>
                    698:        <tr>
                    699:          <td>Neochrome</td>
                    700:          <td>yes</td>
                    701:          <td>rasters sometimes unstable</td>
                    702:        </tr>
                    703:        <tr>
                    704:          <td>Tempus</td>
                    705:          <td>yes</td>
                    706:          <td>&nbsp;</td>
                    707:        </tr>
                    708:     <tr>
                    709:          <td>Sagrotan</td>
                    710:          <td>yes</td>
                    711:          <td>&nbsp;</td>
                    712:        </tr>
                    713:        <tr>
                    714:          <td>MusicMon 2</td>
                    715:          <td>yes</td>
                    716:          <td>&nbsp;</td>
                    717:        </tr>
                    718:        <tr>
                    719:          <td>Protracker</td>
                    720:          <td>yes</td>
                    721:          <td>&nbsp;</td>
                    722:        </tr>
                    723:   </tbody>
                    724: </table>
                    725: 
                    726: <hr style="width: 100%; height: 2px;">
                    727: 
                    728: <table border="0" width="100%">
                    729:        <tbody>
                    730:     <tr>
                    731:       <td align="left"><a href="http://validator.w3.org/check/referer"><img border="0" src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" height="31" width="88"></a></td>
                    732:       <td align="right"><address><a href="mailto:[email protected]">Matthias Arndt</a> July 08 2003</address></td>
                    733:     </tr>
                    734:        </tbody>
                    735: </table>
                    736: 
                    737: </body>
                    738: </html>
                    739: 

unix.superglobalmegacorp.com

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