Jiri Svoboda Homepage
Navigation
Root page
    Personals
        My computer history
        My articles
    Flight Simulators
    CGS (paper computer)
    Atari (8-bit)
    x86
        Text games
        Rally
    iPAQ (Linuxed)
        Atari 800
        iMessage
    Java
        DK Mapa
    RC Models
    Links
    Tečkovací hra

Hosted on
vpsfree.cz

Powered by
Java

Associated with
hacker emblem

Censored?
cenzuruje váš poskytovatel připojení?

kinderporno.cz
...je to jen záminka.



Links
abclinuxu.cz

root.cz



Atari800 On iPAQ
Note: This page is now marked as obsolete and is here for historical reasons only.

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.
After a lot of poking in X11 and X11-shm sourcecode I found, that X11 version is out of place. X11-shm is much better (speed improvements), but still too much problematic for real use (screen size, keyboard, ...). I tried to implement few improvements into X11-shm version, but without real success. Finally I decided to make new, iPAQ specific, framebuffer version. My first steps was very promising (BTW, it runs on Sharp Zaurus too!), so I continued, and now I have first really usable version. :-)


X11 and X11-shm versions

I'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
original:
  if( invisible || !draw_display ) goto after_screen_update; /* mmm */
fixed:
  if( invisible ) goto after_screen_update; /* mmm */


iPAQ framebuffer version

This 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 :-)
WARNING: In current version, DON'T RUN it from terminal on iPAQ screen if you are not ready for reboot/reset. It looks, that there is some race condition issue, emulator usually exits immediately without correct cleanup and you are LOST. Emulator switches to new virtual terminal and takes control over framebuffer, touchscreen and all buttons. No way to go back to X! Only reboot (yes, it can be done by reboot command in remote session)! Invoking from remote session or menu is ok.


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 sources

Both 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...


Binary

Crosscompiled iPAQ binary (framebuffer version) is here.


Screenshots

Here 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

... and here some old photos of my first steps with x11 version (sorry for quality, but it is little tricky to make good shots of LCD screen, even with my digital camera). I included this photos just for Atari fans to make them drool. :-) (All of this photos are little obsolete now. After my iPAQ Window Manager tour (BlackBox -> IceWM -> Ion) I'm finally running Matchbox WM (da best for PDA). Both virtual keyboard and character recognizer are now different and much better too.)

Links

Atari 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

Design based on VERSION 1.0 from oswd.org
Copyright ©1996-2010 Jiří Svoboda
e-mail address