[Scummvm-tracker] [ScummVM :: Bugs] #17250: DIRECTOR: ROBINSON: Fatal "Builtin 'count' did not return value!" when loading chap0.Dxr (FileXtra DirectoryToList returns VOID)
ScummVM :: Bugs
trac at scummvm.org
Wed Sep 30 16:05:37 UTC 2026
#17250: DIRECTOR: ROBINSON: Fatal "Builtin 'count' did not return value!" when
loading chap0.Dxr (FileXtra DirectoryToList returns VOID)
---------------------+------------------------------
Reporter: philmeth | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine: Director
Version: gsoc | Keywords:
Game: |
---------------------+------------------------------
Robinson Crusoe (Tivola, Director 5, German Windows CD, target `robinson-
win-de`) can't be played: right after
start-up ScummVM switches to `chap0.Dxr` (the book, i.e. the actual game)
and immediately stops with a
fatal Lingo error. The game never becomes playable.
Reproduced with:
* ScummVM 2026.2.0 (release)
* ScummVM 2026.3.0 (release)
* ScummVM 2026.3.1git31949-gabd1ca3e317 (daily build, Sep 30 2026), with
a clean config
== Steps to reproduce ==
1. Add the game (detected as "Robinson Crusoe (Standard
Version/Windows/German)", engine director, gameid robinson).
2. Start it.
3. After ~5 seconds the debugger opens with:
{{{
ERROR: Builtin 'count' did not return value!
}}}
== Cause (from a --debugflags=lingoexec --debuglevel=5 trace) ==
In the `new` handler of the parent script `prefFileObj` (script 233), the
game builds a preferences
folder path, creates the folder, lists its contents and calls `count()` on
the result:
{{{
cb_call "getOSDirectory"
STUB: FileIO::m_getOSDirectory() -> ""
c_stringpush "\rcpref\" / c_ampersand -> "\rcpref\"
cb_theassign "ppreffolderpath"
cb_list / cb_theassign "pusedbookmark" -> []
cb_call "DirectoryToList" ("\rcpref\")
WARNING: FileXtra::m_DirectoryToList(): directory not found: \rcpref\!
-> <Void>
cb_varassign "myfiles"
cb_call "count" (<Void>)
WARNING: BUILDBOT: b_count: list arg should be of type ARRAY, PARRAY, or
OBJECT, not VOID!
ERROR: Builtin 'count' did not return value!
}}}
Earlier in the same run:
{{{
STUB: FileXtra::m_CreateDirectory("\rcpref")
}}}
So:
* `FileIO::getOSDirectory()` is a stub and returns "".
* `FileXtra::CreateDirectory("\rcpref")` is a stub, so the folder is
never created.
* `FileXtra::DirectoryToList("\rcpref\")` therefore finds no directory
and returns VOID instead of a list.
* `count(VOID)` is fatal.
On a real Windows machine the folder exists (created a moment earlier), so
`DirectoryToList` returns a list
(empty on first start) and `count` returns 0. The folder is used to store
bookmarks (`pusedbookmark`).
== Possible fixes ==
* Make `FileXtra::m_DirectoryToList()` return an empty list instead of
VOID when the directory doesn't exist, and/or
* implement `FileXtra::m_CreateDirectory()` (e.g. as a virtual folder in
the save path), so the bookmark
files can also be saved later.
== Other observations (possibly separate issues) ==
* `intro.Dxr` is loaded but left again almost at once (a few trace lines
later `chap0.dir` is set as the
next movie). No intro is visible. The intro probably uses QuickTime
video.
* CD check: `STUB: FileXtra::m_FileExists(":\data\gyoza.dxr")`.
* Unimplemented xlibs: `qtvrw.qtc`, `qtvrw`, `qtvrw32.qtc` (QTVR, only
used by the Deluxe version's panoramas).
* On a native Windows 11 machine the original projector doesn't run
either (crash in winmmbase.dll with
Win95/98 compatibility mode), so ScummVM is the only way to play it on
modern systems.
== Game files ==
Game folder: Crusoe8.exe + icon.Cxt + xtras\ (fileio.x32, fileio16.x16,
filextra.x16, filextra.x32,
qtvrw.qtc, qtvrw.x16, qtvrw32.qtc, qtvrw32.x32) + data\ from the CD (190
files).
As reported by ScummVM on start-up:
{{{
CHAP0.DXR: aadcec84ebb2745dfeb90af3af517b12, 1111380 bytes
CRUSOE8.EXE: c1db9e4179da862f253fc3c757cacd83, 1398787 bytes
}}}
Full-file MD5s:
{{{
Crusoe8.exe 1398787 2895f89a920bab024665139df372bce4
icon.Cxt 7410602 9586a9e4deb177884cd379d7cb7208e0
intro.Dxr 288856 894b94412909d0b4ae860d4b6a014412
chap0.Dxr 1111380 1a5146952114aef6f3e704e8d06403e1
pages0.Cxt 5834800 e0ec77e66ae270ea5389ed2d69f393cb
}}}
I can provide the full Lingo trace or test builds if that helps.
--
Ticket URL: <https://bugs.scummvm.org/ticket/17250>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list