Atari800 emulator GP32 port ---------------------------
Original source: atari800.sourceforge.net See CREDITS for the authors of the
emulator <- _many_ thanks to them Port by: Mark Watson (gp32a800@foft.fsnet.co.uk)
Port version: 0.3 Atari800 version: I have ported version 1.2.5 and 1.3.0!
This is mostly version 1.2.5, but has various bits of 1.3.0 and some of my own
patches! And pokeysnd from 1.2.2 because it works better! Some help was also
given by kind GP32 devrs: gp32_fileio - Taken from GP32 version of devkitadvance
-> so I presume Christian Nowak gpsoundbuf - Thanks to Christian Nowak
(and some kind soul on irc who pointed this code out -> I forget who:-( )
gdb-stub - Thanks to Mithris news - Thanks to Rattboi (posted on gp32emu.com)
tech info - Thanks to Spiv for LCD DMA descriptions and other low level stuff
multifirmware - Thanks to Spiv and individual firmware devs (esp PacMan for PacRom)
deverge@emi.u-bordeaux.fr - For the Debian packaged build environment. Very nice.
LCD regs - Thanks again to Spiv for explaining why my fix in 0.3 worked:-)
Changes GP32: ------------- 0.1 First release in theory -> only
went to a select few on IRC 0.2 Fixed sound bug Added reset/reboot
back to the emu menu 0.3 Added option on R key in default.men Added
option to B menu in default.men Fixed screen drifting problems
0.5
Simple chatboard support (More to come -> can't do control keys yet etc.)
Timing fix Built with GCC 3.4 so may be quicker? Nothing really noticeable
though. 0.6 Merged with atari800 v1.3.2 source Built various speeds
Added builds with cycle exact emulation (slow but good... See picture) Fixed
130XE bank switching Added virtual keyboard (press L+R together) Fixed
ATZ, DCM support Savestates are gzipped (slowish, no option to disable yet)
PCX files are stored in the state dir, rather than root Savestate filename
can be typed Savestate filename can be based on current menu or first disk
Added extra chatboard keys Used proper libc port - wrote (another?) syscall.c
in terms of gp sdk
How to get it running ---------------------
Requirements: GP32 Free Launcher (or alternative firmware that can load
FXE files) The emulator (Atari800.fxe) Menu file (default.men - Explanation
of what this is below...) OS ROMs (atarixl.rom, atariosa.rom, atariosb.rom,
5200.rom, ataribas.rom -> filenames must be as shown here) Some software:
e.g. Disk images .ATR, .XFD (_not+ .ATZ -> no gzip support...) Cassette
images (.CAS) Cartridge images (.BIN) Executable files (.XEX) To install
automatically -> download and install the fpk... To install manually ->
using your favourite SmartMedia access method (gplink, usb card reader etc):
copy gpmm\atari800.fxe into \gpmm create dir \gpmm\a800 create dir \gpmm\a800\os
copy os roms into this dir create dir \gpmm\a800\disk copy atr files
into this dir create dir \gpmm\a800\rom copy cartridge images into this
dir create dir \gpmm\a800\exe copy tape images and executables (xex) into
this dir create dir \gpmm\a800\state This is for state saves -> note
that the saves from other builds are currently incompatible. I may fix that, but
will break current format... create dir \gpmm\a800\menu This is for the
keyboard mapping (see later for how to create custom ones) Copy gpmm/a800/menu/default.men
into here Then restart your GP32 and run Atari800.FXE... Usage -----
On startup you are presented with the emulator "ui" menu. Options should
be self-explanatory, but I'll at least tell you the controls: Joypad ->
up/down A -> select B -> space L shoulder -> escape To
get started select disk management, then select the first entry. From the file
selector choose an ATR file. Then hit escape twice to go to the emulator proper.
You can return to this ui menu at any point by holding start, select, A, B, L
and R for two seconds! There are easier ways, but that one will always work. The
others can be redefined. Keyboard -------- Obviously the GP32 does
not have a keyboard. So each key can be mapped to a special input method.
Fixed (I plan to make these adjustable too later...): Joypad -> joystick
A -> fire By default (using that default.men) the keys work as follows:
B -> menu with most keys -> navigate with joystick -> presses key when
you release Select -> select Start -> start L,R,START,SELECT
held -> reboot L,R,START held -> reset L,R,SELECT held -> reset
L -> ui menu To have a more custom setup you need to write a menu (.men)
file and put it in \gpmm\a800\menu\ There is an example of this for Star Raiders
(starraid.men). This does the following: R -> Toggle through views
B -> Hold and use up/down on joypad to change speed SELECT -> Press
for menu for other, less common, actions Keyboard map files are loaded from
the ui screen. Writing custom keyboard map files