[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