Open main menu

Difference between revisions of "OpenTasks"

845 bytes added ,  23:01, 4 March 2007
Add Tech Contact entry to most of the tasks
(Add Tech Contact entry to most of the tasks)
Line 4: Line 4:


== Improved plugins code ==
== Improved plugins code ==
''Technical Contact'': [[User:Fingolfin|Max Horn]]
ScummVM contains by now over a dozen different engines for different adventure game systems. Each of these engines forms a "plugin", and it is possible to compile these plugins as loadable modules separate from the core of ScummVM itself. This makes it possible to (un)load engine code at will, ideal for systems with tight memory constraints; if you want to play a game, you only need to load the engine for that specific game, and can unload the others.
ScummVM contains by now over a dozen different engines for different adventure game systems. Each of these engines forms a "plugin", and it is possible to compile these plugins as loadable modules separate from the core of ScummVM itself. This makes it possible to (un)load engine code at will, ideal for systems with tight memory constraints; if you want to play a game, you only need to load the engine for that specific game, and can unload the others.


Line 14: Line 16:


== Small devices backend  ==
== Small devices backend  ==
''Technical Contact'': [[User:Sev|Eugene Sandulenko]], [[User:Fingolfin|Max Horn]]
ScummVM has been ported to many platforms, often by simply re-using the SDL backend (which is based on [http://www.libsdl.org SDL], which by itself has been ported to many platforms, making it fairly easy to port ScummVM to any of these platforms, too).  
ScummVM has been ported to many platforms, often by simply re-using the SDL backend (which is based on [http://www.libsdl.org SDL], which by itself has been ported to many platforms, making it fairly easy to port ScummVM to any of these platforms, too).  


Line 23: Line 27:


== Revise FilesystemNode system ==
== Revise FilesystemNode system ==
''Technical Contact'': [[User:Fingolfin|Max Horn]]
<font color="magenta">TODO</font>
<font color="magenta">TODO</font>


Line 31: Line 37:


== GUI ==
== GUI ==
''Technical Contact'': [[User:Sev|Eugene Sandulenko]], [[User:LordHoto|Johannes Schickel]]
ScummVM implements its own GUI code. We can't use any of the portable GUI kits out there, as they are mostly not portable enough, use too many resources, or simply are not flexible enough to work atop our backend system. Also, our GUI must look equally good with 8bit, 16bit or 32bit graphics, at 320x200, 320x240 or 640x480 resolutions -- and ideally also at 240x200 or at 1280x1024.  
ScummVM implements its own GUI code. We can't use any of the portable GUI kits out there, as they are mostly not portable enough, use too many resources, or simply are not flexible enough to work atop our backend system. Also, our GUI must look equally good with 8bit, 16bit or 32bit graphics, at 320x200, 320x240 or 640x480 resolutions -- and ideally also at 240x200 or at 1280x1024.  


Line 91: Line 99:


== Residual ==
== Residual ==
''Technical Contact'': [[User:Aquadran|Pawel Kolodziejski]]
=== Light-weight software renderer ===
=== Light-weight software renderer ===
Residual currently offers two different renderers: OpenGL and TinyGL. Neither offers an ideal solution. Not all OpenGL drivers accelerate the operations needed by Grim Fandango, and the TinyGL renderer, apart from being somewhat glitchy, doesn't run well on low-end hardware. It would be nice to have a more light-weight cross-platform renderer. Since Grim Fandango uses mostly static backgrounds, we could probably gain a lot just from more intelligent screen redrawing.
Residual currently offers two different renderers: OpenGL and TinyGL. Neither offers an ideal solution. Not all OpenGL drivers accelerate the operations needed by Grim Fandango, and the TinyGL renderer, apart from being somewhat glitchy, doesn't run well on low-end hardware. It would be nice to have a more light-weight cross-platform renderer. Since Grim Fandango uses mostly static backgrounds, we could probably gain a lot just from more intelligent screen redrawing.
Line 100: Line 110:


== Objectify CinE engine ==
== Objectify CinE engine ==
''Technical Contact'': [[User:Sev|Eugene Sandulenko]], [[User:Aquadran|Pawel Kolodziejski]]
The cinE engine started out as an external project started by [[User:Yazoo|Yaz0r]]. Originally it was written in plain C.
The cinE engine started out as an external project started by [[User:Yazoo|Yaz0r]]. Originally it was written in plain C.
ScummVM is a C++ project, so we need to objectify this engine without changing/breaking its behavior.
ScummVM is a C++ project, so we need to objectify this engine without changing/breaking its behavior.
Line 111: Line 123:


== Add 16bit graphics support to SCUMM engine ==
== Add 16bit graphics support to SCUMM engine ==
''Technical Contact'': [[User:Kirben|Travis Howell]], [[User:Sev|Eugene Sandulenko]]
SCUMM engine starting v5 originally was developed for 8bit graphics. At version 6 it got forked by Humongous Entertainment which extended it significantly. Later games even started to use 16bits graphics for backgrounds graphics and actors. See [[Humongous Entertainment/Progress/16bits Support|here]] for more detailed information.
SCUMM engine starting v5 originally was developed for 8bit graphics. At version 6 it got forked by Humongous Entertainment which extended it significantly. Later games even started to use 16bits graphics for backgrounds graphics and actors. See [[Humongous Entertainment/Progress/16bits Support|here]] for more detailed information.


Line 119: Line 133:


== Implement "return to launcher" feature ==
== Implement "return to launcher" feature ==
''Technical Contact'': [[User:Fingolfin|Max Horn]]
Presently we have to exit ScummVM application completely when users exits a game because most
Presently we have to exit ScummVM application completely when users exits a game because most
engines do not clean up memory properly on their exit.
engines do not clean up memory properly on their exit.
Line 129: Line 145:


== Mixer improvements ==
== Mixer improvements ==
''Technical Contact'': [[User:Fingolfin|Max Horn]]
<font color="magenta">TODO</font>
<font color="magenta">TODO</font>


Line 135: Line 153:


== Add support for TFMX, and more Amiga MOD formats ==
== Add support for TFMX, and more Amiga MOD formats ==
''Technical Contact'': [[User:Sev|Eugene Sandulenko]], [[User:DrMcCoy|Sven Hesse]]
Since we're adding (and have added so far) support for different Amiga game versions, we need support for the sound files too.
Since we're adding (and have added so far) support for different Amiga game versions, we need support for the sound files too.
Currently we need support for following formats:
Currently we need support for following formats:
Line 145: Line 165:


== Rewrite FMOPL emulator ==
== Rewrite FMOPL emulator ==
''Technical Contact'': [[User:Sev|Eugene Sandulenko]]
Many games supported by ScummVM contain sound data intended for the [http://en.wikipedia.org/wiki/AdLib AdLib] Music Synthesizer Card, or other AdLib-compatible hardware like the SoundBlaster. These sound cards used the Yamaha YM3812 sound chip (also known as OPL2) to produce sound via FM synthesis. For more information about how this is done, see Jeffrey S. Lee's web page on [http://www.shipbrook.com/jeff/sb.html Programming the AdLib/Sound Blaster FM Music Chips].
Many games supported by ScummVM contain sound data intended for the [http://en.wikipedia.org/wiki/AdLib AdLib] Music Synthesizer Card, or other AdLib-compatible hardware like the SoundBlaster. These sound cards used the Yamaha YM3812 sound chip (also known as OPL2) to produce sound via FM synthesis. For more information about how this is done, see Jeffrey S. Lee's web page on [http://www.shipbrook.com/jeff/sb.html Programming the AdLib/Sound Blaster FM Music Chips].


Line 170: Line 192:


== Many tasks with AGI engine ==
== Many tasks with AGI engine ==
''Technical Contact'': [[User:Sev|Eugene Sandulenko]], [[User:df|Stuart George]]
Several tasks in [[AGI]] engine do not require to own original [[Sierra]] games. Generally,
Several tasks in [[AGI]] engine do not require to own original [[Sierra]] games. Generally,
Sierra games work better than [[AGI/Fan Games|fan made]] ones.
Sierra games work better than [[AGI/Fan Games|fan made]] ones.
Line 180: Line 204:
* Hercules mode
* Hercules mode


Some of above mentioned tasks will require engine knowledge, but the engine itself
Some of above mentioned tasks will require engine knowledge, but the engine itself is tiny and well documented, so it should be doable. Additionally NAGI and DAGII could be used as a reference. Particularly, NAGI is known to be more compatible with fan made games
is tiny and well documented, so it should be doable. Additionally NAGI and DAGII
could be used as a reference. Particularly, NAGI is known to be more compatible
with fan made games