Opened 8 months ago
Closed 8 months ago
Last modified 8 months ago
#13883 closed defect (fixed)
Excavation of Hob's Barrow will never load without dll loading
|Reported by:||i30817||Owned by:||i30817|
Apparently scummvm does not load dlls in the AGS engine, which loads them from the game dir, then tries the 'inbuilt ones'. Scummvm reports it's loading windows dlls in linux (!), then crashes but it also reports a 'TODO' on a dir change to the game dir so it's probably a false log.
Anyway this game in particular changed the name of a dll, so the inbuilt agsspritefont dll/so can't take over.
Either because they actually changed the implementation or because they're 'forcing' a configuration that's more unusual; because it's possible to make it run by building the dll from the AGS sources and forcing the 'clifftop mode' then renaming the .so/.dll and placing it in the game dir to replace the one distributed by GOG.
There are no apparent font errors this way (at least to me).
Since this is sufficient, and it doesn't crash with more functions required (and also the font looks good) i think they didn't really change anything, just forced 'clifftop mode' and renamed the dll.
Since scummvm does not load game dir dlls, this will never work, and until it does it probably should be marked unstable/not scan.
For the record here is the (closed) upstream issue which rejected a hack to make it work with the built-in plugins, which also shows how to edit the code to force clifftop mode and rename the dll:
So basically, either fix the engine to be able to load game directory dlls/so or remove the game from the scanner.
Change History (6)
comment:1 by , 8 months ago
comment:2 by , 8 months ago
|Status:||new → closed|
Eh never mind, i posted the info myself, so this is out of topic now.
comment:3 by , 8 months ago
Here are some notes:
Scummvm reports it's loading windows dlls in linux (!)
ScummVM actually never loads external plugins, not even on Windows. For portability reasons it only uses internal plugins. But indeed the printed message could be clearer and currently make it looks like it is loading the dll when actually loading the builtin plugin.
That was a bug in our implementation of the AGSSpriteFont plugin when *not* using the Clifftop Games variant. It is now fixed.
scummvm is a bit more relaxed than upstream
The two projects have a different goal. ScummVM is about portability and playing games made with older versions of the engine as well as the current one. AGS instead is looking at improving the engine to make new games. So they are looking forward while we are looking back.
comment:4 by , 8 months ago
Yes, this is fixed on both places now, i was just panicking for no good reason when i realized scummvm doesn't load any extra dlls (was thinking it would never 'be' fixed if the workaround downstream wasn't adopted). Fortunately both places went for the 'inbuilt dll' alternate name solution.
comment:5 by , 8 months ago
BTW, speaking of this plugin, i think you might have old code in scummvm - in ags upstream whispers of a machine has the font, resolution and the offset of the 'augmentations' text fixed, while on the scummvm it does not (scummvm recognizes the game, it's not a 'generic ags' game scanned, so it should be loading the clifftop variant).
comment:6 by , 8 months ago
Specifically, if you use the 'smart scan' in the intro of this game first screen on the blood on the corpse/body, you get text that is offset (the blood of the hands of the person that discovered the body is correct), while upstream has this fixed.
And a bunch of other things, like the custom resolution of the game that is (probably) squishing the load menu, and the dialog font lower part 'fading out'.
Opps, scummvm is a bit more relaxed than upstream and already had a hack about this for kathy rain where some versions had the same dll name. So it works now in here but upstream requires building the dll.
I'll leave it open for you to close if you want to do anything else upstream so you at least know about it.