mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-21 09:21:08 +00:00
bfb8f9a070
svn-id: r11124
173 lines
8.7 KiB
Plaintext
173 lines
8.7 KiB
Plaintext
General
|
|
=======
|
|
* Add plugin system (both dynamic & static plugin support)
|
|
[if you want to work on it, ask Fingolfin about this, he already has done
|
|
some planning. Also make sure that your system support 'static' plugins, too]
|
|
* Revise the way "quit" is handled. Maybe add a global variable "g_quit" which
|
|
we set when the application should be quit (e.g. when an EVENT_QUIT is
|
|
received). This is useful if multiple levels of event loops have to be ended
|
|
* Fix the Map<> template, make it more robust; maybe use a red-black tree?
|
|
* Allow for return-to-launcher instead of a normal "quit" ?
|
|
* Make some generic "EventLoop" API/class which all backends and the GUI
|
|
use. Initially this would just call the backend poll_event() etc. methods.
|
|
But eventually the EventLoop object(s) could be made by the backend.
|
|
This may allow for more efficient CPU usage etc.
|
|
The current event handling model essentially is polling: the engines run
|
|
some kind of main loop, which, besides many other things, also polls and
|
|
dispatches events. The idea is to turn this around: the event loop
|
|
frequently gives the engine time to do these "other things".
|
|
* Remove "detectname" from GameSettings struct. On the long run, "midi" and/or
|
|
"features" might be removed, too.
|
|
* Enhance the Makefile-based build system to support VPATH and stuff, so that
|
|
one can compile scummvm in a directory tree seperate from the source tree.
|
|
That would make it possible to build ScummVM with different build options,
|
|
e.g. have one debug build and one optimized build.
|
|
|
|
Documentation
|
|
=============
|
|
* Update/enhance man page
|
|
* Would be nice to have a HTML version of the README on the web page (and I
|
|
don't just mean a big <pre> section; rather I mean "real" HTML with links
|
|
and lists and tables etc.)
|
|
* Ideally, maybe we can convert the README to some meta format, and then from
|
|
that generate the text README, as well as a HTML one (and maybe also PDF?)
|
|
Some candidates:
|
|
- DocBook
|
|
- texinfo
|
|
- nroff/troff + PolyglotMan (http://polyglotman.sourceforge.net/)
|
|
- tbook (http://tbookdtd.sourceforge.net/)
|
|
- xml2doc (http://xml2doc.sourceforge.net/)
|
|
- ...
|
|
* Some parts of the README probably could stand a workover. Right now the
|
|
README is trying to be brief (it's "just" a README after all), but it really
|
|
is the closest thing we have to a proper ScummVM manual. So either we just
|
|
decide to turn it into a full blown manual, or maybe make a even shorter
|
|
README, and a MANUAL with full details, examples, screen shots etc.
|
|
* Add more doxygen comments. However, quality is preferable over quantity
|
|
|
|
GUI
|
|
===
|
|
* LAUNCHER: fix global options dialog to be properly persistent
|
|
* LAUNCHER: add more options to global options dialog
|
|
* LAUNCHER: add more options to game target options dialog
|
|
* Global & game target options dialogs probably could share some "panes"
|
|
-> write code allowing this
|
|
-> also, 'in game' option dialogs (for volume/scaler/etc. settings)
|
|
could potentially reuse these, too
|
|
* Maybe rearrange Launcher dialog, too, to look a bit like the current
|
|
SCUMM in-game menu: instead of two button rows, have a single button
|
|
column at the right side, and the target list on the left side.
|
|
* Remove hardcoded 320x200 assumptions, use game screen size
|
|
* Add ability to scale GUI (ie. to make the GUI less tiny in COMI)
|
|
|
|
Audio
|
|
=====
|
|
* Get the high quality resample code to work
|
|
[Fingolfin has started work on this]
|
|
* Add a command line/config file option for the output sample rate (to allow
|
|
for output sample rates other than 22050 Hz, e.g. 44100). Code should do
|
|
sanity checking (e.g. restrict to rates between 8000 - 65535 Hz)
|
|
|
|
Config
|
|
======
|
|
* Preserve comments in config file somehow
|
|
* Add a 'notification' system. E.g. the SoundMixer could request to be notified
|
|
whenever the value of the "volume" config option changes. In other words,
|
|
instead of a "pull" approach (where each subsystem has to check whether any
|
|
config option relevant to it has been changed) we use a "push" approach.
|
|
Of course the current approach is "push", too: whenever e.g. the volume
|
|
setting is changed, the code doing so has to updated the SoundMixer etc.
|
|
That's cumbersome, and error prone. Would be much nicer if updating the
|
|
volume config value automatically notifies the SoundMixer, iMuse etc.
|
|
* Change backends to directly access the config manager
|
|
|
|
SCUMM
|
|
=====
|
|
* Fix C64 costume code
|
|
* Make it possible to restart games properly
|
|
* Add support for handling Kanji in FM Towns games (foreground is rendered on a
|
|
second plane at 640x480), text uses Shift_JIS encoding
|
|
* Figure out how to extract resources from Apple II and Commodore 64 versions
|
|
* Document and fix AKOS differences in Humongous Entertainment games
|
|
* Support various newer Humongous Entertainment games
|
|
* Implement file related opcode stubs needed for Humongous games
|
|
* Add support for graphics codecs used in 3DO versions of Humongous games
|
|
* Proper handling of .tlk files for Humongous games
|
|
* Merge iMUSE and iMUSE Digital
|
|
* Implement the needed INSANE bits for Full Throttle action sequences
|
|
* iMUSE Digital enhancements/fixes for Full Throttle and COMI
|
|
* Try to remove all use of MAD/Ogg code from scumm/sound.cpp:
|
|
Ideally, only code in sound/ should access these libs. This will
|
|
become important for loadable module support
|
|
* Add support for TFMX music format in Amiga version of Monkey Island 1
|
|
Check http://darkstar.tabu.uni-bonn.de/~neo/audio.html for music format details
|
|
* Add support for sound effects format found in Sega CD version of Monkey Island
|
|
* Rename scummvm.cpp to scumm.cpp for consistency. [Fingolfin is working on
|
|
this, please don't do anything about this before talking to him].
|
|
1) Try to get scummvm.cpp fixed for ViewCVS [in progress!]
|
|
2a) If 1) succeeded, file SF.net CVS file rename request
|
|
2b) If 2) failed, do brute force file rename (cp && cvs add && cvs rm)
|
|
3) Adjust Makefile and project files to use the new name
|
|
* Possible implement a new resource manager, which then also could be shared
|
|
by ScummEX. [Jamieson has some ideas about this and might work on it|
|
|
* Make opening of resource files not depend on target names for the games with
|
|
resource files like targetname.xxx. This is needed for bundled mac games.
|
|
* Support all Mac games without needing rescumm. These games being: dott,
|
|
samnmax, dig & ft. See above point.
|
|
|
|
Broken Sword 2
|
|
==============
|
|
* Replace all uses of std C file I/O (fopen, fread, fwrite, fclose) by
|
|
the File class (excluding that in SWORD2_DEBUG). This is probably mostly
|
|
done. I only find a few such calls in resMan::CacheNewCluster(), and that
|
|
one needs to be rewritten anyway.
|
|
* Enforce ScummVM code formatting guidelines.
|
|
* Encapsulate the code into sensible objects.
|
|
* Enable the CD swapping code.
|
|
* Support cutscenes in some kind of open video format.
|
|
|
|
SIMON
|
|
=====
|
|
* Add support for Protracker music format used in Amiga versions
|
|
* Add support for decoding main graphics correctly in Amiga versions
|
|
|
|
Descumm
|
|
=======
|
|
* Turn it into a library, to be used by a command line frontend (like now),
|
|
ScummVM debugger, and ScummEX. Basically, the API could consist of a single
|
|
function, which takes a pointer to a memory buffer, its length, the Scumm
|
|
version and optionally a game id. Also, it would get a pointer to a print
|
|
function (in the case of the CLI tool, print to stdout; for ScummVM, print
|
|
to our GUI console; for ScummEX, append to some window/widget)
|
|
* Rewrite code to use 2 passes; first pass builds an intermediate graph, the
|
|
second pass then tries to detect loops, break/continue statements etc.
|
|
|
|
Backends
|
|
========
|
|
* Several of the backend factory functions take config parameters. It should
|
|
be possible to get rid of those once the config system rewrite (see above)
|
|
has been done. In that case, the backends simply can query the config
|
|
manager for these parameters (or any others they might like :-).
|
|
* Add API to query backend for a list of available music engines
|
|
Useful for Options dialog
|
|
* Add API to query backend for a list of available scalers/screenmodes
|
|
(that is, a list of user presentable names, and corresponding PROP_SET_GFX_MODE
|
|
values). This is useful for the options dialog
|
|
* Add PROP_GET_GFX_MODE (mirroring PROP_SET_GFX_MODE)
|
|
* Consider replacing the PROP_TOGGLE_* properties with GET/SET ones ->
|
|
this allows more control over these properties (like, it allows the GUI to
|
|
display checkboxes for these in the options dialog)
|
|
|
|
SDL backend
|
|
===========
|
|
* Fix the "auto dirty rect" computing code - in particular, use a proper checksum
|
|
algorithm, this should solve many of the problems with some luck
|
|
* OpenGL code: either fix it (see open bug tracker items and various hacks in the code),
|
|
or remove it. Does anybody really need this???
|
|
|
|
X11 backend
|
|
===========
|
|
* Verify that it still actually works
|
|
* Make it work with multiple bitdepths
|
|
* Add frills used by SDL backend like graphic filters usage and CD audio
|