Wintermute/TODO

From ScummVM :: Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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