|
|
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 <<a href="mailto:[email protected]">[email protected]</a>></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 (>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 <dir> (--harddrive <dir>)</td>
226: <td align="center">emulates <dir> as a hard disk</td>
227: </tr>
228: <tr>
229: <td align="center">--hdimage <imagefile></td>
230: <td align="center">emulate hard disk with an image file</td>
231: </tr>
232: <tr>
233: <td align="center">--tos <imagefile></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> </td>
600: </tr>
601: <tr>
602: <td>Speedball</td>
603: <td>yes</td>
604: <td>perfect</td>
605: <td> </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> </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> </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> </td>
642: </tr>
643: <tr>
644: <td>Xenon 2 - Megablast</td>
645: <td>yes</td>
646: <td>perfect (including sampled intro)</td>
647: <td> </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> </td>
659: <td> </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> </td>
687: </tr>
688: <tr>
689: <td>GFABASIC 3.6TT</td>
690: <td>yes</td>
691: <td> </td>
692: </tr>
693: <tr>
694: <td>ST Basic</td>
695: <td>yes</td>
696: <td> </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> </td>
707: </tr>
708: <tr>
709: <td>Sagrotan</td>
710: <td>yes</td>
711: <td> </td>
712: </tr>
713: <tr>
714: <td>MusicMon 2</td>
715: <td>yes</td>
716: <td> </td>
717: </tr>
718: <tr>
719: <td>Protracker</td>
720: <td>yes</td>
721: <td> </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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.