Portable device version

From OpenTTD
Revision as of 19:10, 5 July 2019 by Telk5093 (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

OpenTTD is currently available for a number of portable devices with small screens. Unfortunately most of those ports were forked from the SVN trunk. Thus they are hard to maintain and specific code, e.g. for small screens, is not being shared among those versions. The goal should be to merge the best of those versions into trunk in order to make them more similar and easier to update.

To accomplish this I'll start with listing all the ports in questions and I hope that some of the maintainers of the ports will contribute to this task.






Special information

Latest version




  • Touchscreen
  • Directional pad (If exists)
  • Analog stick (If exists)
  • Screen / connected keyboard



Works like normal version of the game.


Google Play GitHub

Kindle Fire


  • Touchscreen
  • Directional pad (If exists)
  • Analog stick (If exists)
  • Screen / connected keyboard






320 x 240

  • Touchscreen
  • Eight buttons
  • Directional pad
  • 2-way volume button

64 MB

200 MHz


gp2x wiki

iPhone / iPod Touch

480 x 320
(640 x 340)

Touchscreen (needs stylus, barely useable with fingers)

128 MB

620 MHz

Banned from the iTunes App Store due to the GPL license.

Mutilated "1.0.0"


Maemo (Nokia n800,n810 etc)

800 x 480

  • Touchscreen
  • Directional pad
  • 2-way volume button
  • Home, back, fullscreen and menu buttons

128 MB

400 MHz



Nintendo DS

256 x 384

  • Touchscreen on lower screen
  • Eight buttons
  • Analog directional pad

4 MB

66 MHz


Wiki page

Palm OS

320 x 320

  • 4/5-way directional pad
  • 4 buttons

min. 4 MB dynamic heap

400 MHz

The port emulates a virtual 640x480 screen


eSoft Interactive website

Palm Pre

480 x 320

  • Palm Query Keyboard
  • Touchscreen
  • Gesture area

256 MB

600 MHz



Playstation Portable

480 x 272

  • Eight buttons
  • Digital directional pad
  • Analog 'nub'

32 MB (PSP Fat), 64 MB (PSP Slim & Lite)

222-333 MHz



Pocket PC

320 x 240
640 x 480

  • Touch screen
  • 5 Way directional pad

15 MB

200 MHz


eSoft Interactive website

Symbian S60v3

240 x 320

  • Joystick/directional pad (4 or 8 directions)
  • 3 soft keys (fixed position)
  • 12 main keys (fixed position)
  • "C" and "pen" keys (variable position)
  • 2 volume keys (on the side)

< 20MB

220 MHz




240 x 320

mySymbian forums

Zaurus SL-C760 PDA

640 x 480

Zaurus Software Index

Note: Only the minimum system specifications are listed if there are several devices with e.g. different resolutions.


The minimum system specifications where the portable device version should be running on are the following:

  • Width: 240 pixels
    • equals a 16 pixel high toolbar with 15 icons
  • Height: 240 pixels
    • with 16 pixels for the toolbar and 12 pixels for the status bar this only leaves a 212 pixel high screen area.
  • Memory: 4 MB
    • on some systems (e.g. NDS) the game binary goes into RAM as well which only leaves a bit more than 2 MB of RAM
    • for comparison: a 512x512 map alone is 2.25 MB big
  • CPU: 66 MHz
  • Input: touchscreen only

Features required for portable devices

Feature Assigned to Status Remarks
Smaller and more flexible toolbar Dominik (Nintendo DS port) Finished
  • r12398 separated the toolbar code, paving the road to more toolbar patches.
  • A patch for splitting the toolbar NDS style (here) has been included. When playing OpenTTD at less than 440 px horizontal resolution (assuming standard size icons), the toolbar will be split, with a button to switch between the two widget lists.
  • Screenshot: 16px-toolbar on the lower screen of a Nintendo DS
Touch-scrolling Illogict (Maemo port) In progress
  • already included in the Maemo port tt-forums
Better scalable windows / small gui versions Unclaimed
  • some windows have already been resized in the DS port (upcoming Alpha 6)
On screen keyboard Dominik (Nintendo DS port) Finished
  • In trunk since r12425
  • The OSK has 50 character keys, one backspace key, one shift key, one caps lock key, a space bar, two arrow buttons and a special key which can be mapped to device-specific functions.
  • The keyboard layout is determined by the selected language; additionally users can specify custom key layouts in the config file
  • A total of 100 different characters per language can be entered with the Osk
Text recognition Unclaimed
Draw railroads Unclaimed
Better responsiveness Partly finished
  • There are some actions that are blocking the game (exiting from newgrf window, loading a game, taking a giant screenshot...) for a prolonged period of time. It would be nice to put these actions to a separate thread, or at least change the mouse cursor to "Zzzz".
  • Game startup time can be very long, especially if newgrfs are used. User should see that the game is loading. Ideal would be a "progress bar". (Now implemented.)
Change data directory in config file Unclaimed
  • Sometimes it is not possible to compile the path to the data files into the binary. Then it should be possible to change the data path through the config file. Currently this is not possible because the config file is parsed after some game data was already loaded.
  • The Nintendo DS port has a workaround for this. It checks the config file first it a data path was specified and later parses it.
Redefinable controls Partly finished
  • Hotkeys are configurable via hotkeys.cfg, but there's no GUI.
  • Smartphones and tablets support landscape and portrait orientations. Different keybindings should be possible for the two modes.
Personal tools