Difference between revisions of "OpenTasks/Generic/Small Devices Backend"

From ScummVM :: Wiki
Jump to navigation Jump to search
(Move OpenTasks onto unique pages with an Infobox and Category so we can collect them all up onto a summary page.)
 
(No difference)

Latest revision as of 18:47, 4 March 2011

Open Task
Task Name Small Devices Backend
Technical Contact(s) John Willis, Joost Peters
Subsystem Generic

Background:

ScummVM has been ported to many platforms, often by simply re-using the SDL backend (which is based on SDL, which by itself has been ported to many platforms, making it fairly easy to port ScummVM to any of these platforms).

But for some platforms, dedicated backends are required, either because SDL doesn't support them, or because we can't achieve all our needs by using the SDL port (e.g. because we need more speed, more control, etc.). These backends are typically made for what we call "small systems" -- systems like PDAs, SmartPhones, Internet Tablets (PalmOS, SymbianOS, Windows CE, Maemo), or game consoles (Dreamcast, GP2X, Nintendo DS, PlayStation 2, PlayStation Portable).

These systems share many features. In particular they often have no (full) keyboard and quite limited resources: Little RAM, little permanent storage space, not that much CPU power, or a limited screen resolution.

This makes it often necessary to (re)implement certain functionality, like virtual keyboards (see above task), or graphic downscalers and the like.

The Task:

Since the same needs occur again and again, it would be nice to implement such functionality only once in a sufficiently portable and flexible way, making it possible for backends to pick and use whatever they need.

Details, scope and further suggestions as to how to achieve this can be found on the Small Devices Backend page.

Besides this, optimizing code for speed and memory usage benefits all our targets. In particular these "small devices". Hence doing this is a worthy goal on its own.

Required Skills:

  • Reasonable C++ skills.
  • Refactoring skills.
  • Knowledge of one or more ScummVM platform backends is desirable.