Jump to content

DiscCheckEmu (DCE) - A tool to emulate disc checks, apply hacks/fixes/patches and cheats


Recommended Posts

Hello mates,

first of all I want to state the obvious (I know that this is obvious, but better to specify this for users that don't properly read before pointing their fingers against others): THIS IS NOT A PIRACY FOCUSED TOOL (at all). YOU NEED YOUR ORIGINAL GAME DISC TO INSTALL THE GAME. THIS WILL NOT MAGICALLY GIVE YOU ACCESS TO GAMES, NOR YOU CAN OBTAIN GAME FILES IN ANY WAY USING THIS TOOL!.

That said, if mods still want to delete this topic, please do so! Or just contact me with your questions and I'll do my best to reply ASAP.

Okay, back on the cool stuff: DiscCheckEmu, is a tool designed to emulate disc checks found in many disc-based games and software without the need for physical media. By intercepting API calls and modifying their behavior on the fly, DiscCheckEmu provides a seamless experience for users looking to enjoy their favorite legacy software without the hassle of keeping CDs or ISOs mounted. As computers increasingly lack CD-ROM drives, accessing old disc-based games and software has become impractical. DiscCheckEmu addresses this issue by allowing users to emulate disc checks, enabling them to run their favorite titles directly from their hard drives, without physically patching the game executable (OR WORST YET: use pre-patched executables from shady places!).

As I like playing old games but I hate to live with my desk full of cdroms, I created this tool. Ofcouse you still need original game disc to install the game, then you can keep it in a safe place.

While developing this tool, I decided to add support for cheats and hacks/fixes: I prefer to keep the original game executable untouched and instead apply these fixes in-memory during the game startup.

Here is a full list of DCE features:

  • Intercept API calls and modify their behavior without patching the executable.
  • File redirection.
  • Directory redirection.
  • Virtual Drive definition.
  • In-Memory Patcher.
  • Cheats support.
  • API Logger (only available in Debug builds).
  • Utilize a generic API hooking engine configurable through YAML files.
  • Easy to use injector for automatically creating the target process and injecting the DLL.
  • Fully open-source and customizable to suit individual needs. 

So, how to use DCE? It is quite simple:

  1. Download the latest release from the download section on github and extract the archive.
  2. Copy DCELoader.exe, DCEAPIHook.dll and DCEConfig.yaml to your game/software installation directory.
  3. Edit DCEConfig.yaml writing a configuration for your target, then run DCELoader.exe and enjoy. Or you can download a pre-made DCEConfig for your game from the community repository.

 

Remember: DCE is an opensource project and YOU are invited to take part in the development! Feel free to open a PR on the GitHub repository :)

 

Latest release is v0.6.0, grab it here!

 

Please enjoy and share your feedbacks :D 

 

 

Link to comment
Share on other sites

1 hour ago, vrubayka said:

What is the difference between this and mounting a virtual disc in a virtual drive using WinCdEmu or DaemonTools?

Hi @vrubaykathank you for your question! 

Using this tool you only need a DCEConfig file properly configured for your game (or you can grab a pre-made one from the community repository). You don't anything else: no real drive, no virtual drive, no disc image etc (and you can put your original disc in a safe place).

Plus using this tool you don't need to patch the executable to add hacks/fixed (like widescreen etc): you just need to specify the addresses in the DCEConfig file and you are ready to go! The same logic applies with cheats.

Feel free to ask more questions :)

Link to comment
Share on other sites

Interesting..

As Windows continues to get updated, trying to use old tools like DT Lite (from 2012) has become more and more of a problem, to the point of potentially bricking the OS with BSOD's or unbootable device drivers.

Next time I go to play an old game I'll definitely be trying this out.

Link to comment
Share on other sites

  • 3 weeks later...

Hello,

now that DCE supports many games, I’d like to ask to mods if it is ok to add a section on these games pages on the wiki, stating that DCE is supported for that title and a link to the relevant config (text only) with a small guide (just a couple of lines).

I’m asking this because my free time is somewhat limited and adding all these entries requires some time and work, so I’d like to be sure that this is a welcome contribution. 
 

thanks as always :)

Link to comment
Share on other sites

Curious, what about games that stream music off of a CD like a bin/cue format. (Track01 is game data, Track02-TrackXX are the audio tracks). Would this tool then basically run the games without music If I'm correct?

Link to comment
Share on other sites

On 7/3/2024 at 12:56 PM, arhumSearcher said:

Curious, what about games that stream music off of a CD like a bin/cue format. (Track01 is game data, Track02-TrackXX are the audio tracks). Would this tool then basically run the games without music If I'm correct?

I haven't tested this by myself yet, but it should be possible to use DCE in combo with _inmm.dll to handle this scenario.

Let me know if you have any game on a disc with audio tracks and if you want to give it a try ;)

Link to comment
Share on other sites

  • 1 month later...
12 hours ago, masonicon said:

Can I use this on Steam Deck?

Yes you can use this tool on Steam Deck.

I don’t own a Steam Deck, but many people are using DCE in Wine and they reported that it is working fine.

If you will create some DCEConfig files, please consider sharing them on the GitHub repo, thanks.

Link to comment
Share on other sites

  • 2 weeks later...

@Luca91
Hello.
I just found out about this Tool and wanted to try it.
I have an old Game called "Die Rache der Sumphühner".
Now i still have the original Disc (also converted to an so i can load it in WinCDEmu).
But i wanted to avoid to always load the ISO in WinCDEmu beforehand so i tried your tool here.

So first i copied DCELoader.exe, DCEAPIHook.dll and DCEConfig.yaml to my Game Directory.
Then i got the Label of the CD which is "SH_CD1". The Process of the Game is "HT.exe".
In the end i configured the "DCEConfig.yaml" to look like this:
 

loader:
  target: "HT.exe"

virtual_drives: ['L']

hooks:
  - api: "GetDriveTypeA"
    arg1: "L:\\"
    return: 5 # DRIVE_CDROM
  - api: "GetVolumeInformationA"
    arg1: "L:\\"
    arg2: "SH_CD1"
    return: true

Yet, after launching the "DCELoader.exe", it simply gives me the same error (Screenshot in the attachment) as if i don´t have any ISO mounted.
Did i do anything wrong here?
Looking at the example configurations the Config File should be correct.
 

Z6.png

Link to comment
Share on other sites

Hello @gufesaret

I don't own this game so I can't help you in writing a DCEConfig without additional info.

Please take in mind that games often read files from the original disc, so you have to redirect such read requests too.

If don't want to use a debugger or an api logger (as suggested in the documentation), you could record file access using ProcMon and include the log there so I can give it a look.

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Found PCGamingWiki useful? Please consider making a Donation or visiting our Patreon.
  • Who's Online   2 Members, 0 Anonymous, 357 Guests (See full list)

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Forum Statistics

    1.8k
    Total Topics
    9.2k
    Total Posts
×
×
  • Create New...