Open main menu

Difference between revisions of "Small Devices Backend"

466 bytes added ,  01:50, 11 December 2005
various clarifications, some typos
(various clarifications, some typos)
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 base backend used by smaller devices with limited functionality. I.e. small screen, no keyboard, low memory, low processor etc.


=== Possible Targets ===
=== Possible Targets ===
Line 6: Line 6:
* PalmOS -- small screen, no keyboard, low resources, low memory
* PalmOS -- small screen, no keyboard, low resources, low memory
* SymbianOS -- 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
* GP32 -- small screen, no keyboard, low resources, low memory
* PSP -- small screen, no keyboard
* PS2 (?) -- no keyboard
* DC (?) -- no keyboard


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


   SDL --> SmallDevices --> WinCE
   SDL --> SmallDevices --> WinCE
                       --> PalmOS
                       --> PalmOS
                      --> SymbianOS
                      --> GP32
                       --> PSP
                       --> 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.
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.
Line 27: Line 28:
=== Common Subsystems ===
=== Common Subsystems ===


* Virtual keyboard
* Virtual keyboard (we need so specify an API, so backends could make their own)
* Splash screen (most of ports have it, so it could be unified)
* Splash screen (most of ports have it, so it could be unified)
* Downscalers, used for <320x200 screens
* Downscalers (used to display on smaller-than-game-content screens)
* Zoning, like used in WinCE and SymbianOS. Zoning means away of switching around between the main area, actions area and inventory area for devices lacking mouse or touchscreen. The position within each zone is stored when switching between them.
* Zoning, like used in WinCE and SymbianOS. It is a way of switching around between the main area, actions area and inventory area for devices lacking mouse or touchscreen. The position within each zone is stored when switching between them. It makes playing with joystick-like controls a lot easier. This can also be used together with showing a part of the game screen 1:1 and needing to scroll the display, instead of downscaling.
* Variable upscaler for weird resolutions (only used for small resolutions, say <=640x480, obviously cannot rely on fast FPU)
* Variable upscaler for non-standard resolutions (only used for making small fullscreen resolutions, say <=640x480, obviously cannot rely on fast FPU)
* No scalers, but that should be under #ifdef as PSP and PS2 have enough power
* Possibility to disable some/all scalers, but that should be under #ifdef as PSP and PS2 have enough power
* Low-res sound
* Low-res sound (8bit, mono, probably partly implemented in main mixer code for speed)
* 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
* 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
152

edits