[Scummvm-git-logs] scummvm master -> 69ab00368192585898e0942d1743c6c68c8f7b82
sev-
noreply at scummvm.org
Tue Jul 14 22:47:50 UTC 2026
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
69ab003681 DIRECTOR: LINGO: Map D5+ objcall bytecodes to cb_call
Commit: 69ab00368192585898e0942d1743c6c68c8f7b82
https://github.com/scummvm/scummvm/commit/69ab00368192585898e0942d1743c6c68c8f7b82
Author: Gianluca Boiano (morf3089 at gmail.com)
Date: 2026-07-15T00:47:46+02:00
Commit Message:
DIRECTOR: LINGO: Map D5+ objcall bytecodes to cb_call
Opcodes 0x67/0xa7 (kOpObjCall in ProjectorRays) had no table entry, so
obj.method() calls compiled to cb_unk stubs that pushed nothing and
corrupted the stack. LC::call() already dispatches method calls with
the object as first argument, same as ExtCall.
Fixes early self-exit in Bioscopia (D8), whose list accesses
(getAt/setAt) and BuddyAPI calls compile to opcode 0xa7
Changed paths:
engines/director/lingo/lingo-bytecode.cpp
diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index b00735e0c63..71e31176131 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -106,6 +106,7 @@ static const LingoV4Bytecode lingoV4[] = {
{ 0x64, LC::c_stackpeek, "b" },
{ 0x65, LC::c_stackdrop, "b" },
{ 0x66, LC::cb_v4theentitynamepush, "bN" },
+ { 0x67, LC::cb_call, "bN" }, // D5+ objcall
{ 0x81, LC::c_intpush, "W" },
{ 0x82, LC::c_argcnoretpush,"w" },
@@ -141,6 +142,7 @@ static const LingoV4Bytecode lingoV4[] = {
{ 0xa4, LC::c_stackpeek, "w" },
{ 0xa5, LC::c_stackdrop, "w" },
{ 0xa6, LC::cb_v4theentitynamepush, "wN" },
+ { 0xa7, LC::cb_call, "wN" }, // D5+ objcall
{ 0, nullptr, nullptr }
};
More information about the Scummvm-git-logs
mailing list