[Scummvm-tracker] [ScummVM :: Bugs] #16454: GOB: WEEN - unimplemented opcodeGob
ScummVM :: Bugs
trac at scummvm.org
Thu Jan 15 18:48:46 UTC 2026
#16454: GOB: WEEN - unimplemented opcodeGob
-------------------+-------------------------
Reporter: joshas | Owner: (none)
Type: defect | Status: new
Priority: low | Component: Engine: Gob
Version: | Keywords: opcode
Game: Ween |
-------------------+-------------------------
Start the game, from "CONTROL PANEL" select "QUIT" and click "I CONFIRM".
After confirmation two warnings appear in console:
{{{
Running Ween: The Prophecy (DOS/English (US))
intro.stk: de92e5c6a8c163007ffceebef6e67f7d, 7117568 bytes.
WARNING: unimplemented opcodeGob: 3 [0x3]!
WARNING: unimplemented opcodeGob: 13 [0xD]!
}}}
While this is not a game breaking bug, I am curious, how to approach
figuring out what opcodes are missing and what are they supposed to be
doing exactly? As they run on quit command, it could be something very
insignificant, related to freeing memory or something.
It would be great to document all opcodes, so game could run without any
warnings. Even if that means adding stubs instead of any functions for
them.
I tried using debug mode, and found on which lines in the script
unimplemented opcodes are:
{{{
MENU.tot:00007917: opcodeFunc 0.9 [0x0.0x9] (o2_assign)
var parse = 23
oper = 277
MENU.tot:00007924: opcodeFunc 2.7 [0x2.0x7] (o1_freeSprite)
MENU.tot:00007927: opcodeFunc 2.5 [0x2.0x5] (o2_goblinFunc)
opcodeGoblin 2 [0x2] (o2_stopInfogrames)
MENU.tot:00007934: opcodeFunc 2.5 [0x2.0x5] (o2_goblinFunc)
opcodeGoblin 3 [0x3] ()
WARNING: unimplemented opcodeGob: 3 [0x3]!
MENU.tot:00007941: opcodeFunc 2.5 [0x2.0x5] (o2_goblinFunc)
opcodeGoblin 13 [0xD] ()
WARNING: unimplemented opcodeGob: 13 [0xD]!
MENU.tot:00007948: opcodeFunc 3.9 [0x3.0x9] (o2_stopSound)
}}}
But after decompiling MENU.TOT with `degob` from scummvm-tools, I cannot
find the lines 7934 and 7941 in script.
{{{
00007917: var32_240 = 1;
00007924: o1_freeSprite(0);
00007927: o2_stopInfogrames(0);
00007948: o2_stopSound(-1);
00007952: o1_freeSoundSlot(19);
00007956: o1_loadTot(END.tot);
}}}
Does this mean, that `degob` skips unknown opcodes?
ScummVM version: 2.9.1 and latest version from git.
Game language: US
Game version: floppy
Platform and Compiler: Linux
--
Ticket URL: <https://bugs.scummvm.org/ticket/16454>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list