Difference between revisions of "Wintermute/TODO"

From ScummVM :: Wiki
Jump to navigation Jump to search
 
(9 intermediate revisions by the same user not shown)
Line 4: Line 4:
== Main ToDo items ==
== Main ToDo items ==


=== Missing Features ===
=== Main missing Features ===
* Screenshots are missing for most of games
* Screenshots are missing for most of games
* Non-English input
* 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
** Required for Russian version of Alpha Polaris
** Optional for Pole Chudes word guessing game
** Optional for Pole Chudes word guessing game in Russian
* Some [[Wintermute/Plugins|plugins]] are not implemened:
* Some [[Wintermute/Plugins|plugins]] are not implemened:
** Standard plugins (however, there are no known games that use them)
** Standard plugins (however, there are no known games that use them)
Line 18: Line 43:
** routine.dll for Stroke of Fate dilogy
** routine.dll for Stroke of Fate dilogy
** protect.dll for Stroke of Fate dilogy
** protect.dll for Stroke of Fate dilogy
* Sound effects like SoundFXEcho and not implemented
* 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


=== Various ToDo ===
=== Known Issues and TODOs ===
* Render issues:
* Render issues:
** PSP: Pixel Format RGBA8888@4 is not supported [[https://bugs.scummvm.org/ticket/12585 Bug #12585]]
** PSP: Pixel Format RGBA8888@4 is not supported {{Tracker|id=12585}}
** WME3D: rendering does not support screen size change [[https://bugs.scummvm.org/ticket/12630 Bug #12630]]
** WME3D: rendering does not support screen size change {{Tracker|id=12630}}
** WME3D: rendering does not support overlays [[https://bugs.scummvm.org/ticket/12631 Bug #12631]]
** WME3D: rendering does not support overlays {{Tracker|id=12631}}
* Nice to have:
** Dirty rects are working wrong sometimes. Notable case: Helga Deep in Trouble - Graphic mistake {{Tracker|id=9683}}
** Debugger & Compiler
** WME: Engine doesn't use correct screenmode {{Tracker|id=11160}}
** Debugger: Implement a way to warp to desired scenes without completing the game to reproduce some game-specific bugs
* Performance issues:
** 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)
** 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


=== Known Issues ===
=== Legacy TODO List ===
* Last letter of text lines is missing sometimes. Notable case: 1 1/2 Ritter - Menu font problem {{Tracker|id=11007}}
* 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}}
* WME: Theora player issues {{Tracker|id=6500}}
 
=== Legacy ToDo List ===
Not sure if this is already fixed or not. Need to look at this later.
Not sure if this is already fixed or not. Need to look at this later.
* Optimize UITiledImage
* Optimize UITiledImage
Line 50: 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: 1 1/2 Ritter - Graphical slider issues in sound options menu {{Tracker|id=6567}}
* 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: The Kite - Overlapping bug {{Tracker|id=6721}}
* 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}}
* WME: Add save thumbnails to Corrosion {{Tracker|id=11032}}
== Known Issues for specific 2D games ==
== Known Issues for specific 2D games ==
=== Known Issues for Monday Starts on Saturnday & Golden Calf ===
=== Known Issues for 1/2 Ritter ===
* Temporary screenshot bmp is not generated at the right location
 
* File.Copy is not implemented
* 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 ===
=== 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)
* selection arrow in dialogues menus seems to be drawn a pixel off comparing to original game (need more testing with different FoxTail versions)
Line 68: Line 99:
* saveload progress bar is not drawn under overlay (I need to learn how to deal with dirtyrects to fix this)
* 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)
* 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 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 {{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 74: 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 Ghost in the Sheet ===
=== Known Issues for The Kite ===
* WME: Ghost in the Sheet - Freeze of final cutscenes {{Tracker|id=6533}}
* WME: The Kite - Script runtime errors {{Tracker|id=6722}}
 
=== Known Issues for The Shine of a Star ===
=== Known Issues for Rhiannon ===
* WME: The Shine of a Star - Problems at shovel puzzle scene {{Tracker|id=9720}}
* WME: Rhiannon - Animation freeze of the final outtro {{Tracker|id=6569}}


=== 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}}
* WME: Vsevolod (DEMO) - Font too big(?) {{Tracker|id=6634}}
=== Known Issues for 5MA ===
* WME: 5MA - wasps animation is too slow  {{Tracker|id=6649}}


=== Known Issues for White Chamber ===
=== Known Issues for White Chamber ===
* WME: white chamber - bot flickers when changing directions {{Tracker|id=6652}}
* WME: white chamber - bot flickers when changing directions {{Tracker|id=6652}}
* WME: white chamber - slow scrolling {{Tracker|id=6653}}
* WME: white chamber - slow scrolling {{Tracker|id=6653}}
=== Known Issues for The Kite ===
* WME: The Kite - Script runtime errors {{Tracker|id=6722}}
=== Known Issues for Helga Deep in Trouble ===
* WME: Helga Deep in Trouble - Graphic mistake {{Tracker|id=9683}}
=== Known Issues for The Shine of a Star ===
* WME: The Shine of a Star - Problems at shovel puzzle scene {{Tracker|id=9720}}
=== 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 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 J.U.L.I.A. (original) ===
* Requires sprite-rotation for a puzzle
=== Known Issues for East Side Story ===
* wants "framd.ttf"


== Known Issues for specific 2.5D games ==
== Known Issues for specific 2.5D games ==
Line 123: Line 144:
=== Known Issues for Art of Murder 1: FBI Confidential ===
=== Known Issues for Art of Murder 1: FBI Confidential ===
* Directory.GetDirectories() is required
* 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 ===
=== Known Issues for The Last Crown: Midnight Horror ===
Line 130: Line 154:
* Plugin wme_vlink.dll for new video codec should be added
* Plugin wme_vlink.dll for new video codec should be added


* File() method should return hardcoded values
* 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

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