Installation of the Atari800 Emulator -------------------------------------- Irrespective of whether you are going to compile the emulator yourself or install a pre-compiled binary version you must obtain a copy of the Operating System ROMs. The ROM images are distributed within the PC Xformer 2.5 package (other versions of this program do not contain the ROMs in a suitable format) which can be downloaded from:- http://prdownloads.sf.net/atari800/xf25.zip If you are creating the ROM images yourself they should be copied from the following locations:- 1. Atari BASIC (8192 bytes between $a000 and $bfff) Note: On a 400/800/1200XL system a BASIC cartridge must be inserted, and on other systems the built-in BASIC must be enabled by setting bit 1 of PORTB to 0. 2. Atari 400/800 OS (10240 bytes between $d800 and $ffff) 3. Atari XL/XE OS (16384 bytes between $c000 and $ffff) Note: If you are extracting the XL/XE OS you will find that the ROM area under the custom chip ($d000 to $d7ff) is mapped between $5000 and $57ff when bit 7 of PORTB is set to 1. I.e. you should set bit 7 of PORTB and then dump the memory out in the following order:- $c000 to $cfff, $5000 to $57ff and finally $d800 to $ffff. 4. Atari XEGS built-in game (8192 bytes between $a000 and $bfff) Note: the built-in game must be enabled by setting bit 1 of PORTB to 1 and bit 6 to 0. 5. Atari 5200 BIOS (2048 bytes between $f800 and $ffff) The first time you run the emulator you will be prompted for the location of the ROMs and various other defaults. If you want to change any of these in the future simply start the emulator with the "-configure" command line option. Compiling the Emulator ---------------------- The emulator can be compiled for the following systems (and probably many others with a little work):- 1. X Window Version (including SUN OpenWindows) on a Unix Platform (prefer the SDL version) 2. CURSES version 3. Graphical Version for the Amiga (not maintained) 4. Graphical version for the Atari TT/Falcon and compatible computers 5. "simple" version (no graphics). Should be straightforward to configure for any 32-bit environment supporting ANSI C. 6. VGA Version for DOS 7. DirectX Version for Microsoft Windows (also try the SDL version) 8. SDL (Linux/Unix, Windows, BeOS) 9. WinCE 10. Java (various platforms) Installed zlib (compression library) enables building the emulator with compressed statesave images support. Additionally installed libpng makes the emulator capable of generating screenshots in the PNG format. Building the Emulator on most platforms --------------------------------------- 1. Change your working dir to the atari800/src path 2. Check if "configure" script is there. If it is skip to step 4. 3. Run "./autogen.sh" (make sure you have autoconf >= 2.5x installed). 4. Type "./configure". 5. Type "make". 6. Install the emulator by typing "make install". By default, the "configure" script attempts to auto-detect the best interfaces available to use for emulating video and sound. It is also possible to override autodetection and select a specific interface by appending the "--with-video=" and "--with-sound=" options to the command in step 4. Below is the list of available values for these options: a) Video interfaces (--with-video): - dosvga: use direct access to VGA card, only under DOS/DJGPP - sdl: use the Simple DirectMedia Library - curses: use the curses library - ncurses: use the ncurses library - pdcurses: use the pdcurses library - no: use only stdin/stdout for input/output. Supported on all platforms b) Sound interfaces (--with-sound): - win: use the WinMM library, only under Windows - falcon: use Atari Falcon native sound - dossb: use direct access to a Sound Blaster-compatible card, only under DOS/DJGPP - sdl: use the Simple DirectMedia Library - oss: use Open Sound System - no: disable sound altogether. Supported on all platforms Only the video and sound interfaces listed above are autodetected, but the emulator also supports other ones. To build for a platform that is not automatically detected, replace step 4 of the above instructions with: 4a. Type "./configure --target=help" for a list of supported platforms. 4b. Type "./configure --target=" (choose from the list above) Building the Emulator for Curses -------------------------------- Follow the instruction above but note that you must be using the System V Curses Library. BSD Curses is lacking a few functions and will not work (nodelay, attron, attroff, keypad and curs_set). Building the Emulator for DOS ----------------------------- To compile, use DJGPP the DOS port of gcc, which can be got from http://www.delorie.com/djgpp/. You will need complete environment in order to configure and build the executables. You may need zlib (compression library) to use compressed statesave images and libpng for PNG screenshots. To build curses (text mode) version install curses-compatible library (e.g. PDCurses) and add "--with-video=pdcurses" when invoking "./configure". Since the source code contains files with long file names, you must unpack and compile the source on a filesystem supporting long file names (for example VFAT of Windows95). An additional change of DJGPP setting is required: open the DJGPP.ENV file in editor and change the LFN= line to LFN=y 1. Run "configure_dos.bat". 2. Run "make" and "make joycfg". 3. If everything went good you should have atari800.exe and joycfg.exe - copy them to destination directory. Building the Emulator for Windows using Cygwin ---------------------------------------------- Atari800 for Windows can be built using Cygwin environment: http://cygwin.com/ 1. Get and install at least one of SDL or DirectX for MinGW. 2. For SDL, get the file SDL_win32_main.c from the SDL source that matches your version and copy it into the Atari800 src directory. 3. Type "./configure --target=windx" for DirectX or "./configure --with-video=sdl --with-sound=sdl" for SDL. 4. Type "make". 5. Copy atari800.exe to destination directory. 6. Copy the needed DLLs: /bin/mgwz.dll and (for SDL) sdl.dll Building the Emulator for Windows using Microsoft 32-bit C/C++ Compiler ----------------------------------------------------------------------- Atari800 for Windows can be built using command-line tools from Microsoft Visual C++ 2005. Avoid older compilers such as VC++ 6 because they are buggy (even with service packs) and unsupported. In addition to the compiler suite you need Windows Platform SDK (included in Visual C++ 2008 or newer) and DirectX SDK (not newer than the August 2007 version, as it is the last one to contain the now-deprecated DirectInput libraries.) Set "Path", "INCLUDE" and "LIB" environment variables to point to the correct locations in VC++, PSDK and DXSDK. 1. Install the ZLIB library: a. Download the source code from http://www.zlib.org b. Remove -MD from CFLAGS in win32\Makefile.msc c. Compile with "nmake /f win32\Makefile.msc zlib.lib". d. Copy zlib.h and zconf.h to the Include directory of VC++. e. Copy zlib.lib to the Lib directory of VC++. 2. Install the LIBPNG library: a. Download the source code from http://www.libpng.org b. Remove -MD from CFLAGS in scripts\makefile.vcwin32 c. Compile with "nmake /f scripts\makefile.vcwin32". d. Copy png.h and pngconf.h to the Include directory of VC++. e. Copy libpng.lib to the Lib directory of VC++. OR 1&2. #undef HAVE_LIBPNG and HAVE_LIBZ in Atari800's src\win32\msc\config.h. The compiled emulator won't handle zlib-compressed disk images and state files and won't produce PNG screenshots. 3. Navigate to the src directory of Atari800 sources. 4. Type "nmake /f win32\msc\Makefile". 5. If you are getting linking errors saying something about MSVCRT then you probably ignored step 1b or 2b. 6. Copy atari800.exe to destination directory. Building the Emulator for Falcon -------------------------------- You need a recent GCC, for example 2.7.2, running on a filesystem with long file names (either minix-fs of MiNT, or VFAT of MagiC). 1. Type "./configure --target=falcon". 2. Type "make". 3. Copy atari800 to destination directory or try "make install". You also can build the default target (by omitting the "--target" option) with optional support for curses or SDL - see "Building the Emulator on most platforms". Building the Emulator for SDL ----------------------------- 1. Please install (and configure) SDL library (http://www.libsdl.org). 2. If you are using MinGW or Cygwin, get the file SDL_win32_main.c from the SDL source (in src/main/win32) and copy it to the atari800 src directory. 3. If you want to build an OpenGL-capable version, you'll need OpenGL headers installed. They should support OpenGL version 2.1 (support for the Pixel Buffer Object extension). The result binary however will only need OpenGL version 1.1 (PBOs simply won't be used). The same binary will work on machines without OpenGL support - only software modes will be available. For MinGW, get the OpenGL headers at http://www.libsdl.org/extras/win32/common/opengl-devel.tar.gz See also http://www.libsdl.org/extras/win32/mingw32/README.txt 4. Follow the instructions in the "Building the Emulator on most platforms" section above. NOTE: If required, force using SDL by adding "--with-video-input=sdl --with-sound=sdl" when calling "./configure". When building using MinGW, you might also need to add "--with-sdl-prefix=/mingw". Building the Emulator for Java using NestedVM --------------------------------------------- 1. Get and build NestedVM (nestedvm.ibex.org). make env.sh and unix_runtime.jar 2. source env.sh in the NestedVM directory. 3. Follow steps 1-5 of the "Building the Emulator on most platforms" section above, but when calling ./configure, add these two parameters: --host=mips-unknown-elf --disable-ide ie. ./configure --host=mips-unknown-elf --disable-ide You might want to add --enable-veryslow --disable-monitorbreak to the above. This should result in creation of the file named atari800.jar. 4. atari800.jar requires unix_runtime.jar in the same directory. Copy it from the NestedVM directory where you made it using "make unix_runtime.jar" as stated above. 5. To run use: java -jar atari800.jar Add -o UnixRuntime to the NestedVM compiler options to enable directory browsing. This requires changing Windows paths to the form: /c:/file in all configuration files and on the command line. It will look for .atari800.cfg in your Windows home directory. Applet version: You must compile with -o UnixRuntime Apply UnixRuntime.patch to NestedVM. To use: All files should have /resource/http:// in front of their names. Edit atari800_applet.cfg and add /resource/http:// to all rom files, even those you are not providing. Legal distribution of Atari800 as an applet cannot include the OS and BASIC ROM Files. You can run without BASIC by using -basic_rom none and Thomas Richter's Os++.