Difference between revisions of "SCUMM/TODO"

From ScummVM :: Wiki
Jump to navigation Jump to search
m (consistency changes)
(Mention v7/v8 still having old memory-related issues on Dreamcast (backend related? engine related?))
 
(11 intermediate revisions by 9 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)
* 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}}.
** 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.
* AdLib: We don't handle (global) music volume changes for AdLib sounds in older SCUMM games. See {{BugTrack|num=1159581}}.
** 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 {{Tracker|id=3830}}.
* 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
* 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 16: 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 ==
In the following you will find a number of bugs which actually already occur when using the original interpreter / .EXE. That is, those errors are bugs in the games themselves, not in ScummVM. Still, we sometimes are able to implement workarounds, meaning ScummVM at times works better than the original ;).
* see [[SCUMM/Bugs|SCUMM Original Bugs list]]
 
Note that neither of these lists is complete.
 
=== Not Yet Fixed ===
* In Maniac Mansion, the tape player keeps playing the tape. {{BugTrack|num=752874}}
* In Zak McKracken (Amiga), the credits in the intro are too fast. {{BugTrack|num=1690207}}
* In Zak McKracken (V2), Zak walks behind the guard in London, instead of in front of him. {{BugTrack|num=1571747}}
* In Zak McKracken (V2), Zak walks behind the guard in Katmandu, instead of in front of him. {{BugTrack|num=1571707}}
* In Zak McKracken (FM-Towns), switching back from Zak to the bird causes the bird to fly into the screen multiple times. {{BugTrack|num=1528862}}
* In Zak McKracken (FM-Towns), the caponian and Zak appear in wrong positions after retrieving the "glowing item" from the bottom of the sea. {{BugTrack|num=1527640}}
* In Loom (CD), voice goes out of sync when casting fear. {{BugTrack|num=770066}}
* In Loom, Hetchel has two heads in her flight. {{BugTrack|num=770050}}
* In Monkey Island 2, skipping speech with escape at Captain Dread's boat will display weird results. {{BugTrack|num = 995942}}
* In Monkey Island 2, the sound of the waterfall stops after a few seconds. {{BugTrack|num=728417}} {{BugTrack|num=2545447}}
* In Sam and Max, Doug the Moleman temporarily loses his head after giving him the pecan candy. {{BugTrack|num=1496577}}
* In Sam and Max, some animations of Max don't disappear in the second encounter with flambee. {{BugTrack|num=1496566}}
* In Sam and Max, part of Bruno is not cleared off the screen when leaving Bumpusville. {{BugTrack|num=2028711}}
* In Sam and Max (German talkie), voices can be out of sync. {{BugTrack|num=2023466}}
* In Day of the Tentacle, the glow of the Chron-O-John can be drawn in front of the closed door. {{BugTrack|num=1803628}}
* In Day of the Tentacle, the Chron-O-John's rotor and glow can be missing. {{BugTrack|num=1794309}}
* In Indy3, there is an out of place pink line in the room with the tapestry on the second floor while in Castle Brunwald. {{BugTrack|num=1726606}}
* In Day of the Tentacle, there is a layering glitch when standing at a particular spot in the basement. {{BugTrack|num=2845867}}
 
=== Fixed ===
* In Day of the Tentacle, in the lobby, Bernard can use Laverne's voice. {{BugTrack|num=2016521}}
* In Sam & Max, the game can hang when talking to the bigfoot guarding the party. {{BugTrack|num=2826144}}

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