mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-16 14:50:17 +00:00
10f83ea0b4
svn-id: r10553
141 lines
7.0 KiB
Plaintext
141 lines
7.0 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
|
|
* 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)
|
|
* gameDetector.cpp is quite messy. Also, it makes providing native GUI front
|
|
ends for ScummVM unnecessarily cumbersome (think of systems which don't
|
|
even have a command line, like classic MacOS). It would be nice to better
|
|
separate the command line parsing from any GUI and also from the storage
|
|
for the user settings (this ties into my proposed config system changes;
|
|
ideally, we should be able to drop almost all of the member variables
|
|
in the game detector, in favor of getting all these directly from the
|
|
config system).
|
|
* fix the Map<> template, make it more robust; maybe use a red-black tree?
|
|
* add iterators to List<> template and make use of them
|
|
* allow for return-to-launcher instead of a normal "quit" ?
|
|
|
|
GUI
|
|
===
|
|
* implement "tabs" for multi-pane prefs dialog
|
|
-> could also be used by the Scumm help dialog in scumm/help.cpp
|
|
* 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
|
|
|
|
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
|
|
======
|
|
* The config system could stand an overhaul
|
|
* Preserve comments in config file somehow
|
|
* Add two virtual domains (for command line settings and user overrides);
|
|
while we currently do something like this already, our implementation is
|
|
a big ugly hack (no offense meant) and has some cumbersome problems. For
|
|
example, currently to query a config value, one would have to search up to
|
|
four domains manually (user override, command line, game specific, global
|
|
application domain, in that order). Ideally all this should be hidden
|
|
inside the config system. If you are interested in this, I can elaborate
|
|
* Add a way to distinguish if a given key is present at all. That is, it
|
|
would be nice if one could distinguish between an explicit "fullscreen=false"
|
|
and the absence of any fullscreen config.
|
|
|
|
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)
|
|
* 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
|
|
* Add support for FM Euphony sounds used in FM Towns games
|
|
* 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 Mac0 music format used in Monkey Island Mac
|
|
See https://sourceforge.net/tracker/index.php?func=detail&aid=781797&group_id=37116&atid=418823
|
|
|
|
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 Amiga decompressor and music
|
|
|
|
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.
|
|
|
|
Backend
|
|
=======
|
|
* 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 :-).
|
|
|
|
SDL backend
|
|
===========
|
|
* Maybe change the shortcuts? One idea (add ctrl-alt in all cases):
|
|
1-3: select scale factor
|
|
2-4: normal, advmame, hq filters (all available as 2x and 3x)
|
|
5-9,0: the other scalers
|
|
Justification: We have so many scalers now, we are running out of keys
|
|
for them - and this way, we need a few less. Of course, the question remains
|
|
what happens if you press ctrl-alt-3 while 2xSai is scaler, what happens?
|
|
So maybe (again add ctrl-alt):
|
|
'+' / '-':
|
|
increase/decrease scale factor, cycling over the possible range.
|
|
So for a 2x-only scaler, it does nothing; for a scaler supporting
|
|
all scales from 1x to 4x, it works as usual (and pressing '+' in
|
|
4x mode goes to 1x)
|
|
1-9: switch between the "base" scalers: normal (point) scaler, advmame,
|
|
hq (high quality), 2xsai, super2xsai, supereagle, tv2x, dotmatrix, ...
|
|
* 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???
|