Atari 800 emulator on iPAQ (Linux)Atari 800XL (later with 320kB of RAM and Q-MEG OS) was my first computer (since Sep 03, 1987). I am trying to run Atari emulator on every platform I have ever met. Now I have a iPAQ H3660 handheld (with Familiar Linux OS installed) and sure I want Atari emulator for it too.
There are four main problems with original Atari 800 emulator:
- Emulator produces 8-bit (AFMT_U8) sound only and iPAQ is 16-bit signed littleendian (AFMT_S16_LE) only.
- Emulator's default resolution 384x240 almost fits on iPAQ's screen in landscape mode (320x240), but there is no room for virtual keyboard. Yup, and some room still takes WM/window widgets.
- Joystick emulation is really ugly in X11 (better with undocumented '-keypad' option).
- Speed. Both X11 and X11-shm versions have not full framerate on iPAQ.
X11 and X11-shm versionsI'm currently not interested in these, but both works almost out-of-the-box (in version 1.2.2). In both cases, you must apply my two sound patches for proper sound. If you want to build X11-shm version (recommended - a lot faster), you must fix this line in sourcecode (already fixed in CVS):
atari_x11.c, line 2608
if( invisible || !draw_display ) goto after_screen_update; /* mmm */
if( invisible ) goto after_screen_update; /* mmm */
iPAQ framebuffer versionThis version is currently (slowly) developed by me. It is in early alpha stage. Main goals are:
- full framerate!
- no screen space wasted
- excellent sound
- on-screen Atari keyboard (overlay is switchable by Calendar button)
- on-screen joystick (iPAQ hardware limitation workaround - no diagonal directions on joypad)
- if overlay is disabled, joystick is "fullscreen"
- joypad is "wired" both to joystick and cursor keys, all other buttons (except Calendar) are joystick fire buttons
- should work on both X11 and Qtopia iPAQs (I didn't test it in Qtopia environment, because I really don't like it and I don't have it installed (flame? :-) ))
- should work without both X11 and Qtopia :-)
Known bugs and TODOs
- HARD EXITS FROM SOME FUNCTIONS IN CASE OF ERROR, THEN NO CORRECT CLEANUP!
- fix the WARNING issue mentioned above
- investigate "WARNING: Couldn't deallocate virtual terminal x." message on exit (it appears, but VT looks deallocated)
- overlay switching is not immediate in UI (it works, but screen is not refreshed)
- improve touchscreen behaviour
- fullscreen joystick is sometimes strange
- joypad is "wired" both to keyboard and joystick, some games hate it (F-15)
- implement SHIFT lock and CONTROL lock
- keyboard routines will will be rewriten when new schema will be introduced in main tree
- only one orientation possible (native framebuffer orientation)
- no support for H31xx iPAQs, on H38xx will be probably reversed joypad (and touchscreen?)
Patches and sourcesBoth my sound patches and iPAQ framebuffer source code are in this tarball. These are for version 1.2.2 of the Atari 800 emulator. Do not enable STEREO or CLIP compile time options! Maybe I should include my Makefile too...
BinaryCrosscompiled iPAQ binary (framebuffer version) is here.
ScreenshotsHere are few screenshots of my framebuffer version...
running DOS 2.5, overlay active
running Draconus, overlay active
running Draconus again, overlay active
running AssKickers demo, overlay inactive
- running DOS 2.5 (landscape mode, '-small' option)
- running Draconus (landscape mode, '-small' option)
- running Draconus again (portrait mode, my experimental '-tiny' option)
LinksAtari 800 emulator Homepage
XFormer 2.5 (one and only legal source of Atari OS ROMs)
handhelds.org (Linux on iPAQ)
Radek Sterba's Atari page (one of my best friends)
Bill Kendrick's Atari 800 for Agenda page
created: July 23, 2001, last modification: April 13, 2002