VOGONS


First post, by MrFlibble

User metadata
Rank Oldbie
Rank
Oldbie

So I found this really nice retro-looking Adventure Game Studio (AGS) game called Keptosh, and it turns out this is one of the rarer instances where the author actually released the source code as well (link here but I had to use the Wayback Machine to actually get the file).

What is more, as the game is from 2003, I was able to compile it with AGS 2.62 -- the latest version that supports DOS as a platform. However, the catch is that this particular game makes use of a third-party plug-in called CCS (Character Control System) in the form of a DLL file, which the game uses to control the randomly roaming NPCs. So while AGSEDIT does produce a DOS binary, it seemingly cannot make any use of the DLL itself when running in DOSBox.

The first obstacle is the long file name (ags_CCS102.dll), which I fixed by hex-editing the sole reference to the file within the DOS binary that AGSEDIT produces (shortening it to just CCS102.dll). But this DLL just does not want to work in DOS -- when I open it in the hex editor it looks like a Win EXE complete with the "This program cannot be run in DOS mode" message.

I wonder if there is any way at all to make this work in a pure DOS environment? I can comment out anything CCS related from the global script, and the DOS version runs fine this way, but predictably there are no roaming NPCs anymore.

I also thought that maybe using HX DOS extender, which may run certain Windows apps in pure DOS could help, and even tried to inject a DPMILD32 stub using the PESTUB utility, but it looks like this did not work -- and perhaps wouldn't, considering the no-multitasking nature of the DOS environment.

I found a page where the latest version of the CCS plug-in can be downloaded, which includes some further information on the actual functions enabled by the plugin, but seemingly not even the author's page or anything. The plug-in is closed source, and it appears that some AGS games are unsupported by ScummVM because of it.

I wonder if there is a way for me, with my lacking programming knowledge, to, I don't know, recompile or otherwise change this into a workable state that would run in DOS as intended? Or would that require to actually add the functions provided by the plug-in into the main programme (which is also impossible since old AGS versions remain closed source as well)? I don't have many hopes but I'd like to hear out what you guys with better understanding of how all this works think about it. Thanks.

DOS Games Archive | Free open source games | RGB Classic Games

Reply 1 of 1, by ratfink

User metadata
Rank Oldbie
Rank
Oldbie

There is a CCS "module" which it seems can replace the DLL, though it is version 0.84.

"Modules are amazing, they can add a lot of functionality to a game and they are easy to include, Plus they are compatible with Mac and Linux unlike plugin's which only run on windows. Most plugin functions have been re-created into modules. Also you don't have to include the module with the compiled game unlike plugins."

Not clear it would work in DOS but maybe something to investigate.