Difference between revisions of "Small Devices Backend"

From ScummVM :: Wiki
Jump to navigation Jump to search
(added Variable upscaler)
(added headings, fixed typo)
Line 1: Line 1:
A backend used for smaller devices with limited functionality. I.e. small screen, no keyboard, low memory, low processor etc.
A backend used for smaller devices with limited functionality. I.e. small screen, no keyboard, low memory, low processor etc.


Targets are:
=== Possible Targets ===


* WinCE -- small screen, no keyboard
* WinCE -- small screen, no keyboard
Line 11: Line 11:
* GP32 -- small screen, no keyboard, low resources, low memory
* GP32 -- small screen, no keyboard, low resources, low memory


=== Structure ===
All above devices will subclass this backend and possibliy override system-specific methods, i.e.:
All above devices will subclass this backend and possibliy override system-specific methods, i.e.:


Line 22: Line 23:
* It should add another level of abstraction and should let lowest level functions like input and screen blitting to be overriden. For example, PalmOS and GP32 backends do not use SDL. That shouldn't be really hard, as most functionality is in place and current SDL backend performs blitting only from 2 functions.
* It should add another level of abstraction and should let lowest level functions like input and screen blitting to be overriden. For example, PalmOS and GP32 backends do not use SDL. That shouldn't be really hard, as most functionality is in place and current SDL backend performs blitting only from 2 functions.


* It should be written with extensive use of #ifdefs, so if I, say, don't need a virtual keyboard or downscalers for paltform Foo, I don't bloat my code.
* It should be written with extensive use of #ifdefs, so if I, say, don't need a virtual keyboard or downscalers for platform Foo, I don't bloat my code.


List of common subsystems:
=== Common Subsystems ===


* Virtual keyboard
* Virtual keyboard

Revision as of 22:19, 10 December 2005

A backend used for smaller devices with limited functionality. I.e. small screen, no keyboard, low memory, low processor etc.

Possible Targets

  • WinCE -- small screen, no keyboard
  • PalmOS -- small screen, no keyboard, low resources, low memory
  • SymbianOS -- small screen, no keyboard, low resources, low memory
  • PSP -- no keyboard
  • PS2 -- no keyboard
  • DC (?)
  • GP32 -- small screen, no keyboard, low resources, low memory

Structure

All above devices will subclass this backend and possibliy override system-specific methods, i.e.:

 SDL --> SmallDevices --> WinCE
                      --> PalmOS
                      --> PSP
                      --> SymbianOS

Small Devices backend should be based on SDL backend, but should have most functions as virtual, so functionality could be overriden. An example is PSP which has hardware scalers, and PS2 where Lavos wants to implement 3D virtual keyboard.

  • It should add another level of abstraction and should let lowest level functions like input and screen blitting to be overriden. For example, PalmOS and GP32 backends do not use SDL. That shouldn't be really hard, as most functionality is in place and current SDL backend performs blitting only from 2 functions.
  • It should be written with extensive use of #ifdefs, so if I, say, don't need a virtual keyboard or downscalers for platform Foo, I don't bloat my code.

Common Subsystems

  • Virtual keyboard
  • Splash screen (most of ports have it, so it could be unified)
  • Downscalers, used for <320x200 screens
  • Variable upscaler for weird resolutions (instead of 1000 separate ones)
  • No scalers, but that should be under #ifdef as PSP and PS2 have enough power
  • Low-res sound
  • Zoning, like used in WinCE and SymbianOS
  • It should hide unneeded options from GUI like MT-32, MIDI device, i.e. those which either don't make sense or too fat for small devices