Opened 15 months ago

Closed 7 days ago

#15575 closed defect (fixed)

FREESCAPE: Flat objects on the floor flicker in Total Eclipse (DOS)

Reported by: NigeNigeNige Owned by: neuromancer
Priority: normal Component: Engine: Freescape
Version: Keywords:
Cc: Game: Total Eclipse

Description

In the room HORAKHTY-H (and possibly others), there are some flat footsteps that should be at the same level as the floor. These flicker when the mouse is moved and show as shaded polygons when they should be stable and solid black.

Attachments (2)

Screenshot 2024-12-08 210724.png (11.1 KB ) - added by NigeNigeNige 15 months ago.
Example of problem
image-20241211-003952.png (7.4 KB ) - added by NigeNigeNige 15 months ago.

Download all attachments as: .zip

Change History (10)

by NigeNigeNige, 15 months ago

Example of problem

comment:1 by neuromancer, 15 months ago

Good catch!, I can confirm this issue. Please let me know any other objects that have a similar glitch while I investigate this one.

comment:2 by neuromancer, 15 months ago

It seems that certain size information used by the renderer (but not in the original implementation) is missing in the game data (!). This is a simple workaround:

diff --git a/engines/freescape/games/eclipse/dos.cpp b/engines/freescape/games/eclipse/dos.cpp
index f9aefea0fa0..24d70ba87da 100644
--- a/engines/freescape/games/eclipse/dos.cpp
+++ b/engines/freescape/games/eclipse/dos.cpp
@@ -141,6 +141,19 @@ void EclipseEngine::loadAssetsDOSFullGame() {
                swapPalette(_startArea);
        } else
                error("Invalid or unsupported render mode %s for Total Eclipse", Common::getRenderModeDescription(_renderMode));
+
+       Object *obj = nullptr;
+       obj = _areaMap[9]->objectWithID(7);
+       assert(obj);
+       obj->_size = Math::Vector3d(3, 0, 2);
+
+       obj = _areaMap[9]->objectWithID(8);
+       assert(obj);
+       obj->_size = Math::Vector3d(3, 0, 2);
+
+       obj = _areaMap[9]->objectWithID(9);
+       assert(obj);
+       obj->_size = Math::Vector3d(3, 0, 2);
 }
 
 void EclipseEngine::drawDOSUI(Graphics::Surface *surface) {

I will investigate if the same is happening in other releases.

comment:3 by neuromancer, 15 months ago

Fixed here: https://github.com/scummvm/scummvm/commit/b7ddba286018ca726c012d6b83882a637ba07937

Please test using daily builds (or compile it on your own) if possible.

comment:4 by NigeNigeNige, 15 months ago

Testing with build fa0bb2d3 - same issue with the mummy's eye in HORAKHTY-G. Also thanks for responding quickly!

Last edited 15 months ago by NigeNigeNige (previous) (diff)

comment:5 by neuromancer, 15 months ago

I think this commit should improve it: https://github.com/scummvm/scummvm/commit/136886c4fe810d506f9c7ecd7ed13008336bba23

Please test it, if possible. Thanks!

by NigeNigeNige, 15 months ago

Attachment: image-20241211-003952.png added

comment:6 by NigeNigeNige, 15 months ago

Testing with 6ec64ff3, the footsteps are fixed. The mummy now has a very small pixel-width? dot for the eye, which is barely visible. The original was also a pixel wide but the pixels were bigger back then.

comment:7 by tag2015, 15 months ago

Summary: Flat objects on the floor flicker in Total Eclipse (DOS)FREESCAPE: Flat objects on the floor flicker in Total Eclipse (DOS)

comment:8 by neuromancer, 7 days ago

Resolution: fixed
Status: newclosed

This was already fixed

Note: See TracTickets for help on using tickets.