[Scummvm-tracker] [ScummVM :: Bugs] #14905: 3DS: RIVEN: "Could not find any engine capable of running the selected game"
ScummVM :: Bugs
trac at scummvm.org
Wed Jan 31 06:16:55 UTC 2024
#14905: 3DS: RIVEN: "Could not find any engine capable of running the selected
game"
----------------------------------+-----------------------------
Reporter: BallM4788 | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine: Mohawk
Version: | Resolution:
Keywords: mohawk riven 3ds n3ds | Game: Riven
----------------------------------+-----------------------------
Comment (by BallM4788):
Replying to [comment:7 tag2015]:
> Thanks for looking into this, could you check if this commit is also the
culprit of bug #14837? Any AGS game will do (it seems the engine is
disabled/can't be loaded)
Just got finished checking it out. Yeah, it seems to be the same thing
happening there, and the same commit causing it as well. ''Here's the
thing, though'':
* Full build with all engines - Riven and AGS (and maybe other engines)
trigger the bug
* Build with just the Riven engine - Riven triggers the bug
* Build with just the AGS engine - AGS triggers the bug
* Build with just the Riven **AND** AGS engines - **Riven and AGS both
work perfectly**
Now I don't know much at all about how plugins and linking work, but
here's what I'm thinking:
There was a
[https://github.com/scummvm/scummvm/commit/55db1210eb578bc5cbdd66edc2c054e26f2d9464
hack fix] for ticket:11555 where ''"Setting the base address for the
plugin elf files high in memory forces the linker to generate veneers to
turn relative jumps to the main binary into absolute jumps."'' A side
benefit of this was that ''"This also removes the need to handle the
R_ARM_CALL and R_ARM_JUMP24 relocation types."'' Based on the GDB output
in comment:5, I'm guessing that something about changing the
{{{Graphics::PixelFormat}}} constructors into {{{constexpr}}}s is
interfering with the hack fix, causing plugin linking to fail for certain
engines based on what engines are being included.
Like I said, I don't know jack about how plugins and linking and so on
work. But if someone who knows more about it than me says I'm right, the
options are probably to either revert the 6522c6e commit or figure out how
to implement proper relocation.
Discarding the speculation and going off what we actually know for sure
right now, I'd say the simplest option is to just revert the 6522c6e
commit if doing so won't break anything else.
--
Ticket URL: <https://bugs.scummvm.org/ticket/14905#comment:8>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list