Difference between revisions of "SCUMM/TODO"

From ScummVM :: Wiki
Jump to navigation Jump to search
(Mention v7/v8 still having old memory-related issues on Dreamcast (backend related? engine related?))
 
(8 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{Infobox_TODO|
taskname=SCUMM Engine TODO|
techcontact=[[SCUMM]] Engine Team|
subsystem=Engine|
}}
== General TODO ==
== General TODO ==
* Make it possible to restart games properly
* Make it possible to restart games properly
* Possibly implement a new resource manager, which then also could be shared by ScummEX. [Jamieson has some ideas about this].
* Possibly implement a new resource manager, which then also could be shared by ScummEX. [Jamieson has some ideas about this].
* Add support for music and sound effects in the Apple II version of Maniac Mansion
* Add support for music and sound effects in the Macintosh version of Loom
* Add support for handling Kanji in FM-Towns games (foreground is rendered on a second plane at 640x480), text uses Shift_JIS encoding [implementation now that currently depends on font rom, not needing the rom would be preferable]
* Clean up class Gdi. This class right now mostly is about decoding various graphic formats. However some other functionality has crept into it, too. It would be nice if class Gdi would only contain the GFX decoding code, and nothing else (assuming that is feasible w/o too much trouble). OTOH, the code which is responsible for managing virtual screens, rendering virtual screens to the real display etc. could be grouped into a new class (e.g. VSManager or so).
* Clean up class Gdi. This class right now mostly is about decoding various graphic formats. However some other functionality has crept into it, too. It would be nice if class Gdi would only contain the GFX decoding code, and nothing else (assuming that is feasible w/o too much trouble). OTOH, the code which is responsible for managing virtual screens, rendering virtual screens to the real display etc. could be grouped into a new class (e.g. VSManager or so).
* Reduce kMD5FileSizeLimit from 1MB to e.g. 80 kb (this will force us to recompute the MD5 for the mac bundles, but hopefully nothing else)
* Reduce kMD5FileSizeLimit from 1MB to e.g. 80 kb (this will force us to recompute the MD5 for the mac bundles, but hopefully nothing else)
** The main motivation for that is to improve detection speed: If a file has the right name but is big, we waste a lot of time reading 1MB of data and computing its MD5, when it should suffice to look at a few kilobytes at most.
** The main motivation for that is to improve detection speed: If a file has the right name but is big, we waste a lot of time reading 1MB of data and computing its MD5, when it should suffice to look at a few kilobytes at most.
** Alternatively, change it to 5000 bytes to match the AdvancedDetector. This will affect far more games, so we'd end up with many obsolete MD5 ideas. But since we are pretty good at detecting SCUMM games correctly even without MD5, this shouldn't be so bad. However, some files might not be easily distinguishable with only the first 5000 bytes, need to check on that.
** Alternatively, change it to 5000 bytes to match the AdvancedDetector. This will affect far more games, so we'd end up with many obsolete MD5 ideas. But since we are pretty good at detecting SCUMM games correctly even without MD5, this shouldn't be so bad. However, some files might not be easily distinguishable with only the first 5000 bytes, need to check on that.
* AdLib: There seems to be some loop/repeat mechanism in old AdLib sound effects that we do not handle. [http://vogons.zetafleet.com/viewtopic.php?t=8644 This thread] has some discussion, and recordings. Two good examples are the door opening sound in Indy 3 and Monkey Island 1 (floppy), and the typewriter sound in Indy 3. See {{BugTrack|num=2027877}}.
* AdLib: There seems to be some loop/repeat mechanism in old AdLib sound effects that we do not handle. [http://vogons.zetafleet.com/viewtopic.php?t=8644 This thread] has some discussion, and recordings. Two good examples are the door opening sound in Indy 3 and Monkey Island 1 (floppy), and the typewriter sound in Indy 3. See {{Tracker|id=3830}}.
* AdLib: We don't handle (global) music volume changes for AdLib sounds in older SCUMM games. See {{BugTrack|num=1159581}}.
* AdLib: We don't handle (global) music volume changes for AdLib sounds in older SCUMM games. See {{Tracker|id=1946}}.
* Add support for non-interactive demo of Monkey Island 2. This can be done either by hacking the SCUMM loop and adding code to parse the existing 'demo.rec' file and re-injecting events in the event loop. Another possible approach would be to "specialize" the (future) events recording/playback code to deal with the original SPUTM .rec files.
* Add support for non-interactive demo of Monkey Island 2. This can be done either by hacking the SCUMM loop and adding code to parse the existing 'demo.rec' file and re-injecting events in the event loop. Another possible approach would be to "specialize" the (future) events recording/playback code to deal with the original SPUTM .rec files.
* Work around actor (re)color bugs in Indy3 FM-TOWNS / VGA. See http://home.comcast.net/~ervind/ij3misc.html
* Work around actor (re)color bugs in Indy3 FM-TOWNS / VGA. See http://home.comcast.net/~ervind/ij3misc.html
* Might also be nice to use the trick they used in AGI/Sarien to add custom recoloring to costumes at least for the EGA games. E.g. in MM, an actor with blue trousers working on a blue ground looks... stealthy :)
* Might also be nice to use the trick they used in AGI/Sarien to add custom recoloring to costumes at least for the EGA games. E.g. in MM, an actor with blue trousers working on a blue ground looks... stealthy :)
* Add support for the original instrument samples for Indy4 Amiga and MI2 Amiga versions to make sound as per original interpreter. See [http://forums.scummvm.org/viewtopic.php?p=79201&sid=4eb7cfe67921a2e97e9b338225fbea40 here].
* Add support for the high resolution interface used in the Mac version of Indiana Jones and the Last Crusade. See [http://web.archive.org/web/20140126034048/http://home.comcast.net/~ervind/ij3mac.html Indiana Jones and the Last Crusade]


== SCUMM V0 ==
== SCUMM V0 ==
Line 20: Line 25:
== SCUMM NES ==
== SCUMM NES ==
* see [[SCUMM/NES|SCUMM NES TODO list]]
* see [[SCUMM/NES|SCUMM NES TODO list]]
== SCUMM v7+ ==
* Optimize the v7/v8 engine for memory-limited platforms such as Dreamcast; see Trac#6008 and Github PR#4693 for more context.


== HE games ==
== HE games ==
* see [[Humongous Entertainment/Progress|HE Progress status]]
* see [[Humongous Entertainment/Progress|HE Progress status]]
* see [[Humongous Entertainment/Progress/16bits Support|HE 16bits Support]]


== Bugs Also in the Original ==
== Bugs Also in the Original ==
* see [[SCUMM/Bugs|SCUMM Original Bugs list]]
* see [[SCUMM/Bugs|SCUMM Original Bugs list]]

Latest revision as of 13:14, 10 February 2023

TODO List
Name SCUMM Engine TODO
Technical Contact(s) SCUMM Engine Team
Subsystem Engine

General TODO

  • Make it possible to restart games properly
  • Possibly implement a new resource manager, which then also could be shared by ScummEX. [Jamieson has some ideas about this].
  • Clean up class Gdi. This class right now mostly is about decoding various graphic formats. However some other functionality has crept into it, too. It would be nice if class Gdi would only contain the GFX decoding code, and nothing else (assuming that is feasible w/o too much trouble). OTOH, the code which is responsible for managing virtual screens, rendering virtual screens to the real display etc. could be grouped into a new class (e.g. VSManager or so).
  • Reduce kMD5FileSizeLimit from 1MB to e.g. 80 kb (this will force us to recompute the MD5 for the mac bundles, but hopefully nothing else)
    • The main motivation for that is to improve detection speed: If a file has the right name but is big, we waste a lot of time reading 1MB of data and computing its MD5, when it should suffice to look at a few kilobytes at most.
    • Alternatively, change it to 5000 bytes to match the AdvancedDetector. This will affect far more games, so we'd end up with many obsolete MD5 ideas. But since we are pretty good at detecting SCUMM games correctly even without MD5, this shouldn't be so bad. However, some files might not be easily distinguishable with only the first 5000 bytes, need to check on that.
  • AdLib: There seems to be some loop/repeat mechanism in old AdLib sound effects that we do not handle. This thread has some discussion, and recordings. Two good examples are the door opening sound in Indy 3 and Monkey Island 1 (floppy), and the typewriter sound in Indy 3. See [Bug #3830].
  • AdLib: We don't handle (global) music volume changes for AdLib sounds in older SCUMM games. See [Bug #1946].
  • Add support for non-interactive demo of Monkey Island 2. This can be done either by hacking the SCUMM loop and adding code to parse the existing 'demo.rec' file and re-injecting events in the event loop. Another possible approach would be to "specialize" the (future) events recording/playback code to deal with the original SPUTM .rec files.
  • Work around actor (re)color bugs in Indy3 FM-TOWNS / VGA. See http://home.comcast.net/~ervind/ij3misc.html
  • Might also be nice to use the trick they used in AGI/Sarien to add custom recoloring to costumes at least for the EGA games. E.g. in MM, an actor with blue trousers working on a blue ground looks... stealthy :)
  • Add support for the original instrument samples for Indy4 Amiga and MI2 Amiga versions to make sound as per original interpreter. See here.
  • Add support for the high resolution interface used in the Mac version of Indiana Jones and the Last Crusade. See Indiana Jones and the Last Crusade

SCUMM V0

SCUMM NES

SCUMM v7+

  • Optimize the v7/v8 engine for memory-limited platforms such as Dreamcast; see Trac#6008 and Github PR#4693 for more context.

HE games

Bugs Also in the Original