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 6, 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.

Reply 2 of 6, by MrFlibble

User metadata
Rank Oldbie
Rank
Oldbie
ratfink wrote on 2026-08-25, 13:30:

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

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

Interesting, thanks for the tip!

Unfortunately it looks like it may not work with AGS 2.62, I don't see the option to import modules. The CCS module documentation itself suggests that it's compatible with v2.71/2.72 and possibly above.

Still, an interesting find.

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

Reply 3 of 6, by zyzzle

User metadata
Rank Oldbie
Rank
Oldbie

Damn, so close. I'll never understand why the DOS version was suddenly axed. The toolkit itself is a Windows program. Keeping the DOS compilation option above v 2.62 would not have hurt anything. Instead, programmers just throw it away like so much garbage. Sad.

Reply 4 of 6, by ratfink

User metadata
Rank Oldbie
Rank
Oldbie

I wonder whether the following quote from the author of the CCS plugin (scorpiorus) gives a clue about getting your game working (the plugin was converted to a module by strazer but the files for 2.71 suggest it's the same as 0.84? though i may be confused on that, looking at files on an ipad is... weird):

"It's cool to see this as a script module since the CCS plugin doesn't really use any of AGS plugin API specific functions. And it infact was made as an AGS script that was eventually converted into C. But that's because I just didn't want people to mess with "installing" it by copy and pasting portions of script code around the main global script. It's cool we have the module feature, indeed."

https://www.adventuregamestudio.co.uk/forums/ … 6590/#msg226590

strazer seems to still be active there so maybe ask them if it's not in the downloads?

Anyway point is, if you can get the CCS module script then you might be able to splice it into the game script you already have? Sounds like it might be relatively straightforward code by nature?

Reply 5 of 6, by leileilol

User metadata
Rank l33t++
Rank
l33t++
zyzzle wrote on Yesterday, 20:22:

Damn, so close. I'll never understand why the DOS version was suddenly axed. The toolkit itself is a Windows program. Keeping the DOS compilation option above v 2.62 would not have hurt anything. Instead, programmers just throw it away like so much garbage. Sad.

NTVDM couldn't do a stable DJGPP build chain for anything dos allegro related then. Continuing to maintain DOS AGS would've either meant keeping an Win9x system aroudn or VirtualPC 2004/2007 with a 9x guest, and slim hopes your plugin friends will support it.

apsosig.png
long live PCem
FUCK "AI". It is a tool of fascism. We do not need it. We do not use it.
Debian's fucked

Reply 6 of 6, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

Wild idea..

Find out what functions it calls and hack bits off an old version of Wine until it only does that, and make it into a wrapper of sorts. Might help if there was already an ELKS target version, but I doubt it, still gotta figure some 32bit environment to persuade it to work in.

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.