The Hottest DCEmu Posters

Username: ebayauctionposter Posts: 323,985
Username: wraggster Posts: 128,619
Username: AppleNews Posts: 36,262
Username: DCemumaniac Posts: 32,845
Username: Metareview Posts: 21,733

Gamepark 32 (GP32) Emulators


Atari 800


Mark Watson


Atari 800 emulator for the GP32





Atari800 emulator GP32 port
Original source:
See CREDITS for the authors of the emulator <- _many_ thanks to them
Port by: Mark Watson (
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
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) - 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:
First release in theory -> only went to a select few on IRC
Fixed sound bug
Added reset/reboot back to the emu menu
Added option on R key in
Added option to B menu in
Fixed screen drifting problems

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.
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
Free Launcher (or alternative firmware that can load FXE files)
The emulator (Atari800.fxe)
Menu file ( - 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/ into here
Then restart your GP32 and run Atari800.FXE...
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.
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 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 ( 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


Part of the DCEmu Network GP32Emu - The Premier GP32 Emulation and Homebrew Site