[Scummvm-tracker] [ScummVM :: Bugs] #9682: GOB: Goblins Quest 3 - graphic issue on first level

ScummVM :: Bugs trac at scummvm.org
Wed Jan 3 19:01:18 UTC 2024


#9682: GOB: Goblins Quest 3 - graphic issue on first level
-------------------+--------------------------
Reporter:  joshas  |       Owner:  (none)
    Type:  defect  |      Status:  new
Priority:  low     |   Component:  Engine: Gob
 Version:          |  Resolution:
Keywords:          |        Game:  Goblins 3
-------------------+--------------------------
Comment (by antoniou79):

 Looking into this since this morning, the cause of the issue for Goblin's
 3 (DOS) is that our rendering loops in Scenery::updateStatic() and
 Scenery::renderStatic() allow drawing "order" up to 99 (order < 100) for a
 static sprite, while the original only goes up to 39 ( order < 40 ).

 The awry sprite's position and dimensions are in the game's resource files
 (EXT.STK) but its drawing order is "59". My assumption here is that this
 is a remnant of testing from the developers that was then set to "59"
 (instead of deleting it) and the engine would not draw it anymore. (This
 room also loads another sprite that is not drawn (...), which also seems
 to be from some testing attempts -- this one is in scenery 0 layer 1 and
 as far as I can tell is a duplicate of the valid railing sprite to the
 right in scenery 1 but positioned at X: 0, ie. left edge of the screen).

 I have only checked the disassembly of GOB3CD, though.

 The culprit commit according to `git blame` is this one, which explicitly
 mentions fixing something for GOB3's drawing order:
 https://github.com/scummvm/scummvm/commit/5681ae1e82ba2c125928ecbfbd937cb187c06aa4

 Was the "100" loop value chosen because it's in some other GOB engine
 variation or was it set as a more relaxed limit?

 If anyone can test running the original CD game via DOSBOX or such, they
 could try changing the drawing order of the awry sprite to a value less
 than 40 (eg. 0x27 hex) in the EXT.STK file at offset 0xC4FCD (original hex
 value is: 0x3B), and the original game should start rendering the glitch.
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/9682#comment:7>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list