Difference between revisions of "Wintermute/TODO"
Jump to navigation
Jump to search
(22 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
== Main ToDo items == | == Main ToDo items == | ||
=== Bugs Also in the Original | === Main missing Features === | ||
* Screenshots are missing for most of games | |||
* Missing features of original WME 1.x: | |||
** Sprite blending modes (are they still missing???) | |||
** Sprite alpha masks | |||
** Grayscale conversion for game saves thumbnails not yet implemented | |||
** Sound effects like SoundFXEcho are not implemented | |||
** Sound SetPosition - not implemented for playing sounds yet | |||
* Missing 3D games and OpenGL render features: | |||
** AdActor3DX::parseEffect D3DX effect are not implemented | |||
** setup3D fog not yet implemented | |||
** enableShadows/disableShadows not implemented yet | |||
** AdSceneGeometry::storeDrawingParams not yet implemented | |||
** scGetProperty/scSetProperty VideoSkipButton not implemented | |||
** takeScreenshot/saveScreenshot not yet implemented | |||
** onWindowChange/restore/setWindowed/windowedBlt not yet implemented | |||
** indicatorFlip/forcedFlip not yet implemented | |||
** drawRect not yet implemented | |||
** displayHalfTrans not yet implemented | |||
** putPixel/getPixel/comparePixel not yet implemented | |||
* Debugger & Compiler | |||
** Print & edit variables for cheating and for fun | |||
** Warp to scenes to reproduce some game-specific bugs faster | |||
* Implement script patches (like in SCI) for fixing original bugs (like, 1 1/2 Ritter slider) and accessing interesting dead code (like, debug screens and level editors bundled inside game packages) | |||
=== Features required for a few games only === | |||
* Non-English input is not supported | |||
** Required for Russian version of Alpha Polaris | |||
** Optional for Pole Chudes word guessing game in Russian | |||
* Some [[Wintermute/Plugins|plugins]] are not implemened: | |||
** Standard plugins (however, there are no known games that use them) | |||
** wme_displacement.dll for [[Beyond the Threshold]] | |||
** wme_vlink.dll for Sunrise | |||
** wme_blackandwhite.dll for Stroke of Fate dilogy | |||
** wme_shadows.dll for Stroke of Fate dilogy | |||
* Some [[Wintermute/Externals|externals]] are not implemented: | |||
** routine.dll for Stroke of Fate dilogy | |||
** protect.dll for Stroke of Fate dilogy | |||
* Engine-specific hacks are not implemented for engine forks: | |||
** Add File() hacks for Sunrise | |||
** Add SetGammaDefault() / RestoreGamma() methods for [[Oknytt]] | |||
** Add a dozen of new methods for The Last Crown: Midnight Horror | |||
** Add a dozen of new methods for J.U.L.I.A.: Among the Stars and J.U.L.I.A.: Untold | |||
=== Known Issues and TODOs === | |||
* Render issues: | |||
** PSP: Pixel Format RGBA8888@4 is not supported {{Tracker|id=12585}} | |||
** WME3D: rendering does not support screen size change {{Tracker|id=12630}} | |||
** WME3D: rendering does not support overlays {{Tracker|id=12631}} | |||
** Dirty rects are working wrong sometimes. Notable case: Helga Deep in Trouble - Graphic mistake {{Tracker|id=9683}} | |||
** WME: Engine doesn't use correct screenmode {{Tracker|id=11160}} | |||
* Performance issues: | |||
** WME: 5MA - wasps animation is too slow {{Tracker|id=6649}} | |||
** Theora player issues {{Tracker|id=6500}} | |||
* Font issues: | |||
** Last letter of text lines is missing sometimes. Notable case: 1 1/2 Ritter - Menu font problem {{Tracker|id=11007}} | |||
** Some persian fonts seems to be a bit cropped | |||
=== Legacy TODO List === | |||
Not sure if this is already fixed or not. Need to look at this later. | |||
* Optimize UITiledImage | |||
* Use more than one dirty rect | |||
* Font-sizes are wrong enough to allow Dirty Split to draw text that is hidden in the original game (most visible on the coin-interface) | |||
* Alpha-masks for Theora-videos are broken on big-endian platforms | |||
== 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 ;). | 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 ;). | ||
Line 11: | Line 77: | ||
==== Not Fixed ==== | ==== Not Fixed ==== | ||
* WME: Dirty Split - Dialog coming out of wrong character {{Tracker|id=6203}} | * WME: Dirty Split - Dialog coming out of wrong character {{Tracker|id=6203}} | ||
* WME: Some games are using same fonts for selected and normal text {{Tracker|id=11287}} | * WME: Some games are using same fonts for selected and normal text {{Tracker|id=11287}} | ||
* WME: The Kite - Overlapping bug {{Tracker|id=6721}} | |||
==== Fixed ==== | ==== Fixed ==== | ||
* WME: 1 1/2 Ritter - Graphical slider issues in sound options menu {{Tracker|id=6567}} | |||
* WME: Bickadoodle - Assertion on climbing the mountain {{Tracker|id=6594}} | * WME: Bickadoodle - Assertion on climbing the mountain {{Tracker|id=6594}} | ||
* WME: Rosemary - Sprite flaw on going upwards {{Tracker|id=6572}} | * WME: Rosemary - Sprite flaw on going upwards {{Tracker|id=6572}} | ||
* WME: Add save thumbnails to Corrosion {{Tracker|id=11032}} | |||
== Known Issues for specific 2D games == | |||
=== Known Issues for 1/2 Ritter === | |||
= | * WME: 1 1/2 Ritter - Menu font problem {{Tracker|id=11007}} | ||
=== | === Known Issues for 5MA === | ||
* | * WME: 5MA - wasps animation is too slow {{Tracker|id=6649}} | ||
* | === Known Issues for Carol Reed 4 - East Side Story === | ||
* | * wants "framd.ttf" | ||
* | === Known Issues for FoxTail === | ||
* selection arrow in dialogues menus seems to be drawn a pixel off comparing to original game (need more testing with different FoxTail versions) | |||
* text in books contains extra '^' character at the beginning of some paragraphs (incorrect split? some kind of specially added control character?) | |||
* saveload progress bar is not drawn under overlay (I need to learn how to deal with dirtyrects to fix this) | |||
* savegame description encoding seems to be wrong for some reason for Russian (may be caused by changing encoding during the game) | |||
* OpenGL render does not support dynamic lighting: `WARNING: BaseSurfaceOpenGL3D::getPixel not yet implemented!` | |||
=== Known Issues for Ghost in the Sheet === | |||
* WME: Ghost in the Sheet - Freeze of final cutscenes {{Tracker|id=6533}} | |||
=== Known Issues for Helga Deep in Trouble === | |||
* WME: Helga Deep in Trouble - Graphic mistake {{Tracker|id=9683}} | |||
=== Known Issues for J.U.L.I.A.: Among the Stars === | |||
* Some methods should be added for JULIA subengine | |||
=== Known Issues === | === Known Issues for J.U.L.I.A.: Untold === | ||
* | * It's unknown if level editor is accessible and working correctly | ||
=== Known Issues for Monday Starts on Saturnday & Golden Calf === | === Known Issues for Monday Starts on Saturnday & Golden Calf === | ||
Line 52: | Line 114: | ||
* File.Copy is not implemented | * File.Copy is not implemented | ||
=== Known Issues for | === Known Issues for Rhiannon === | ||
* | * WME: Rhiannon - Animation freeze of the final outtro {{Tracker|id=6569}} | ||
* WME: Rhiannon - Animated background objects are pink blobs {{Tracker|id=11568}} | |||
* | |||
=== Known Issues for Rosemary === | === Known Issues for Rosemary === | ||
* WME: Rosemary - Text glitch {{Tracker|id=6453}} | * WME: Rosemary - Text glitch {{Tracker|id=6453}} | ||
Line 63: | Line 122: | ||
* WME: Rosemary - Flickering images {{Tracker|id=6571}} | * WME: Rosemary - Flickering images {{Tracker|id=6571}} | ||
* WME: Rosemary - Font error {{Tracker|id=6573}} | * WME: Rosemary - Font error {{Tracker|id=6573}} | ||
=== Known Issues for Space Madness === | |||
* File.Copy() is not implemented, so extras wallpapers are not exported to saves folder from data.dcp | |||
=== Known Issues for | === Known Issues for The Kite === | ||
* WME: | * WME: The Kite - Script runtime errors {{Tracker|id=6722}} | ||
=== Known Issues for The Shine of a Star === | |||
=== Known Issues for | * WME: The Shine of a Star - Problems at shovel puzzle scene {{Tracker|id=9720}} | ||
* WME: | |||
=== Known Issues for Vsevolod === | === Known Issues for Vsevolod === | ||
* WME: Vsevolod (DEMO) - Assertion in Intro {{Tracker|id=6612}} | * WME: Vsevolod (DEMO) - Assertion in Intro {{Tracker|id=6612}} | ||
* WME: Vsevolod (DEMO) - Assertion on taking the dagger {{Tracker|id=6613}} | * WME: Vsevolod (DEMO) - Assertion on taking the dagger {{Tracker|id=6613}} | ||
=== Known Issues for White Chamber === | === Known Issues for White Chamber === | ||
Line 82: | Line 138: | ||
* WME: white chamber - slow scrolling {{Tracker|id=6653}} | * WME: white chamber - slow scrolling {{Tracker|id=6653}} | ||
=== Known Issues for | == Known Issues for specific 2.5D games == | ||
* | === Known Issues for Alpha Polaris === | ||
* Cyrillic input is required for Russian version of Alpha Polaris to be completable | |||
=== Known Issues for | === Known Issues for Art of Murder 1: FBI Confidential === | ||
* | * Directory.GetDirectories() is required | ||
=== Known Issues for | === Known Issues for J.U.L.I.A. (original) === | ||
* | * Requires sprite-rotation for a puzzle | ||
=== Known Issues for | === Known Issues for The Last Crown: Midnight Horror === | ||
* | * Some methods should be added | ||
=== Known Issues for | === Known Issues for Sunrise === | ||
* | * Plugin wme_vlink.dll for new video codec should be added | ||
=== | * File() method should return hardcoded values for "while", "true", and "pDevice" values<syntaxhighlight lang="c++"> | ||
var file = new File("while"); | |||
file.OpenAsText(1); | |||
* | var code = file.ReadLine(); | ||
file.Close(); | |||
if((code != "EAA34D79-55CE-4d4f-8DFA-A7B733713DB7")) { | |||
Sleep(300000); | |||
Game.QuitGame(); | |||
} | |||
</syntaxhighlight><syntaxhighlight lang="c++"> | |||
var file = new File("true"); | |||
file.OpenAsText(1); | |||
var code = file.ReadLine(); | |||
file.Close(); | |||
if((code != "9B EB FB 94 84 8E C7 3C 94 AA 0E E2 59 AF B6 D7 30 1D DB 5B 1A 49 2d C7 A7 2C 5C FB 3C 96 75 4f 75 99 4A 2E C8 06 9A 4a BB 77 EA 04 E7 30 59 F3")) { | |||
Sleep(300000); | |||
Game.QuitGame(); | |||
} | |||
</syntaxhighlight><syntaxhighlight lang="c++"> | |||
var file = new File("pDevice"); | |||
file.OpenAsText(1); | |||
var code = file.ReadLine(); | |||
file.Close(); | |||
if((code != "#include<windows.h>#include<d3d9.h>#include<d3dx9.h>BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID pvReserved){return true;}")) { | |||
Sleep(300000); | |||
Game.QuitGame(); | |||
} | |||
</syntaxhighlight> | |||
* File() method should lookup other files at /txt/ folder inside DCP package, not at the package root |
Latest revision as of 01:16, 18 June 2021
Status
See Wintermute Games for a list of the current state of the various games.
Main ToDo items
Main missing Features
- Screenshots are missing for most of games
- Missing features of original WME 1.x:
- Sprite blending modes (are they still missing???)
- Sprite alpha masks
- Grayscale conversion for game saves thumbnails not yet implemented
- Sound effects like SoundFXEcho are not implemented
- Sound SetPosition - not implemented for playing sounds yet
- Missing 3D games and OpenGL render features:
- AdActor3DX::parseEffect D3DX effect are not implemented
- setup3D fog not yet implemented
- enableShadows/disableShadows not implemented yet
- AdSceneGeometry::storeDrawingParams not yet implemented
- scGetProperty/scSetProperty VideoSkipButton not implemented
- takeScreenshot/saveScreenshot not yet implemented
- onWindowChange/restore/setWindowed/windowedBlt not yet implemented
- indicatorFlip/forcedFlip not yet implemented
- drawRect not yet implemented
- displayHalfTrans not yet implemented
- putPixel/getPixel/comparePixel not yet implemented
- Debugger & Compiler
- Print & edit variables for cheating and for fun
- Warp to scenes to reproduce some game-specific bugs faster
- Implement script patches (like in SCI) for fixing original bugs (like, 1 1/2 Ritter slider) and accessing interesting dead code (like, debug screens and level editors bundled inside game packages)
Features required for a few games only
- Non-English input is not supported
- Required for Russian version of Alpha Polaris
- Optional for Pole Chudes word guessing game in Russian
- Some plugins are not implemened:
- Standard plugins (however, there are no known games that use them)
- wme_displacement.dll for Beyond the Threshold
- wme_vlink.dll for Sunrise
- wme_blackandwhite.dll for Stroke of Fate dilogy
- wme_shadows.dll for Stroke of Fate dilogy
- Some externals are not implemented:
- routine.dll for Stroke of Fate dilogy
- protect.dll for Stroke of Fate dilogy
- Engine-specific hacks are not implemented for engine forks:
- Add File() hacks for Sunrise
- Add SetGammaDefault() / RestoreGamma() methods for Oknytt
- Add a dozen of new methods for The Last Crown: Midnight Horror
- Add a dozen of new methods for J.U.L.I.A.: Among the Stars and J.U.L.I.A.: Untold
Known Issues and TODOs
- Render issues:
- PSP: Pixel Format RGBA8888@4 is not supported [Bug #12585]
- WME3D: rendering does not support screen size change [Bug #12630]
- WME3D: rendering does not support overlays [Bug #12631]
- Dirty rects are working wrong sometimes. Notable case: Helga Deep in Trouble - Graphic mistake [Bug #9683]
- WME: Engine doesn't use correct screenmode [Bug #11160]
- Performance issues:
- Font issues:
- Last letter of text lines is missing sometimes. Notable case: 1 1/2 Ritter - Menu font problem [Bug #11007]
- Some persian fonts seems to be a bit cropped
Legacy TODO List
Not sure if this is already fixed or not. Need to look at this later.
- Optimize UITiledImage
- Use more than one dirty rect
- Font-sizes are wrong enough to allow Dirty Split to draw text that is hidden in the original game (most visible on the coin-interface)
- Alpha-masks for Theora-videos are broken on big-endian platforms
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 ;).
Note that neither of these lists is complete.
Not Fixed
- WME: Dirty Split - Dialog coming out of wrong character [Bug #6203]
- WME: Some games are using same fonts for selected and normal text [Bug #11287]
- WME: The Kite - Overlapping bug [Bug #6721]
Fixed
- WME: 1 1/2 Ritter - Graphical slider issues in sound options menu [Bug #6567]
- WME: Bickadoodle - Assertion on climbing the mountain [Bug #6594]
- WME: Rosemary - Sprite flaw on going upwards [Bug #6572]
- WME: Add save thumbnails to Corrosion [Bug #11032]
Known Issues for specific 2D games
Known Issues for 1/2 Ritter
- WME: 1 1/2 Ritter - Menu font problem [Bug #11007]
Known Issues for 5MA
- WME: 5MA - wasps animation is too slow [Bug #6649]
Known Issues for Carol Reed 4 - East Side Story
- wants "framd.ttf"
Known Issues for FoxTail
- selection arrow in dialogues menus seems to be drawn a pixel off comparing to original game (need more testing with different FoxTail versions)
- text in books contains extra '^' character at the beginning of some paragraphs (incorrect split? some kind of specially added control character?)
- saveload progress bar is not drawn under overlay (I need to learn how to deal with dirtyrects to fix this)
- savegame description encoding seems to be wrong for some reason for Russian (may be caused by changing encoding during the game)
- OpenGL render does not support dynamic lighting: `WARNING: BaseSurfaceOpenGL3D::getPixel not yet implemented!`
Known Issues for Ghost in the Sheet
- WME: Ghost in the Sheet - Freeze of final cutscenes [Bug #6533]
Known Issues for Helga Deep in Trouble
- WME: Helga Deep in Trouble - Graphic mistake [Bug #9683]
Known Issues for J.U.L.I.A.: Among the Stars
- Some methods should be added for JULIA subengine
Known Issues for J.U.L.I.A.: Untold
- It's unknown if level editor is accessible and working correctly
Known Issues for Monday Starts on Saturnday & Golden Calf
- Temporary screenshot bmp is not generated at the right location
- File.Copy is not implemented
Known Issues for Rhiannon
- WME: Rhiannon - Animation freeze of the final outtro [Bug #6569]
- WME: Rhiannon - Animated background objects are pink blobs [Bug #11568]
Known Issues for Rosemary
- WME: Rosemary - Text glitch [Bug #6453]
- WME: Rosemary - Icons glitch [Bug #6454]
- WME: Rosemary - Flickering images [Bug #6571]
- WME: Rosemary - Font error [Bug #6573]
Known Issues for Space Madness
- File.Copy() is not implemented, so extras wallpapers are not exported to saves folder from data.dcp
Known Issues for The Kite
- WME: The Kite - Script runtime errors [Bug #6722]
Known Issues for The Shine of a Star
- WME: The Shine of a Star - Problems at shovel puzzle scene [Bug #9720]
Known Issues for Vsevolod
- WME: Vsevolod (DEMO) - Assertion in Intro [Bug #6612]
- WME: Vsevolod (DEMO) - Assertion on taking the dagger [Bug #6613]
Known Issues for White Chamber
- WME: white chamber - bot flickers when changing directions [Bug #6652]
- WME: white chamber - slow scrolling [Bug #6653]
Known Issues for specific 2.5D games
Known Issues for Alpha Polaris
- Cyrillic input is required for Russian version of Alpha Polaris to be completable
Known Issues for Art of Murder 1: FBI Confidential
- Directory.GetDirectories() is required
Known Issues for J.U.L.I.A. (original)
- Requires sprite-rotation for a puzzle
Known Issues for The Last Crown: Midnight Horror
- Some methods should be added
Known Issues for Sunrise
- Plugin wme_vlink.dll for new video codec should be added
- File() method should return hardcoded values for "while", "true", and "pDevice" values
var file = new File("while"); file.OpenAsText(1); var code = file.ReadLine(); file.Close(); if((code != "EAA34D79-55CE-4d4f-8DFA-A7B733713DB7")) { Sleep(300000); Game.QuitGame(); }
var file = new File("true"); file.OpenAsText(1); var code = file.ReadLine(); file.Close(); if((code != "9B EB FB 94 84 8E C7 3C 94 AA 0E E2 59 AF B6 D7 30 1D DB 5B 1A 49 2d C7 A7 2C 5C FB 3C 96 75 4f 75 99 4A 2E C8 06 9A 4a BB 77 EA 04 E7 30 59 F3")) { Sleep(300000); Game.QuitGame(); }
var file = new File("pDevice"); file.OpenAsText(1); var code = file.ReadLine(); file.Close(); if((code != "#include<windows.h>#include<d3d9.h>#include<d3dx9.h>BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID pvReserved){return true;}")) { Sleep(300000); Game.QuitGame(); }
- File() method should lookup other files at /txt/ folder inside DCP package, not at the package root