This game will run great under Proton after some simple tweaks.
I have tested this using Pop!_os 18.04 using a Steam Controller but it should work with any Debian-based distribution (such as Ubuntu or Steam OS) as well. Setting it up in Steam OS requires a few more steps. That guide is coming soon.
Firstly, you will need two DLL files the game relies upon to run.
D3DCompiler_43.dll and D3DX9_43.dll
Make sure to select the 32 bit versions.
Copy those files into the game’s directory in ~/.steam/steam/steamapps/common/Sonic CD/
The game should run now, however if like me you have a monitor with a high refresh rate, you will need to setup libstrangle to limit the game to 60.
To do this you will need to install libstrangle by folllowing the instrctions from the GitLab page. I will reproduce them here for your convenience.
First you will need to install the necessary dependencies if you don’t already have them.
You can do this by opening a terminal window and running the following commands:
sudo apt install libc6-dev-i386 gcc-multilib ia32-libs
this is done, you will need to create a folder to put the libstrangle
files when you’re setting them up. Do this using the following command.
Now you will need to navigate to that location and checkout the libstrangle sources from the GitLab page. Do that using the following commands.
git clone https://gitlab.com/torkel104/libstrangle.git
Now you will need to compile and install libstrangle. Do this by using the following commands.
sudo make install
Once this finishes, you have libstrangle installed and you will not need the folder you created anymore. You can remove it with the following command.
rm libstrangle -R
Now you will need to set the launch options for the game in Steam so it will limit the game’s framerate. Do this by right-clicking the game in steam, selecting properties and choosing set launch options. Copy the following lines into the box and select OK.
strangle 60 %command%
Once you have followed these steps, the game should run fine, though the video setup will not run; you do not need it. It will default to the best possible resolution.