[scummvm-devel] Multi-disc support
Marcus Comstedt
marcus at mc.pp.se
Sun Feb 7 12:02:16 UTC 2021
Hi all.
I was thinking a bit about disc swapping and multi-disc support in the
context of the Dreamcast port, and so wanted to look at how it worked
on Linux for reference.
It turns out, it does not work on Linux...
What I did was to pop in CD 1 of CoMI, detect the game, start it, and
then try to load a savegame that's just after leaving Plunder Island.
A requester appeared:
Cannot find file: 'comi.la2'
Insert disc 2 into drive /var/run/media/marcus/MONKEY3_1
Press OK to retry, Quit to exit
So far so good. Let's ignore the fact that it would probably be more
logical to look for disc 2 at /var/run/media/marcus/MONKEY3_2; if I
just hotswap the discs without unmounting then the mountpoint remains
the same and some people use /mnt/cdrom or whatnot...
Anyway, after swapping discs and pressing OK, it does not work. The
engine still does not find 'comi.la2'. The reason turns out to be
the cache in FSDirectory. FSDirectory has cached the directory
structure of disc 1, and now refuses to belive that a file 'comi.la2'
exists even though it does.
For ScummEngine::askForDisk() to work as intended, it appears that it
is necessary for it to clear the cache. But I can't seem to find an
API to do so. I guess this would have to be added to
Common::SearchManager? Should it allow to clear a specific path, or
just KiSS and clear everything?
// Marcus
More information about the scummvm-devel
mailing list