dethrace/docker
Dethrace Engineering Department 65bc16a129
Support for compiling with MSVC 4.20 for binary matching (#465)
* fix some global vars

* make sound support optional

* removes LOG_TRACE calls

* now compiles under msvc 4.2

* removes unused functions, adds ignored functions to report

* bump BRender dependency

* adds docker container for running msvc 4.2

---------

Co-authored-by: Jeff Harris <jeff@1amstudios.com>
2025-07-30 13:27:18 +12:00
..
Dockerfile Support for compiling with MSVC 4.20 for binary matching (#465) 2025-07-30 13:27:18 +12:00
README.md Support for compiling with MSVC 4.20 for binary matching (#465) 2025-07-30 13:27:18 +12:00
entrypoint.sh Support for compiling with MSVC 4.20 for binary matching (#465) 2025-07-30 13:27:18 +12:00
set-env.reg Support for compiling with MSVC 4.20 for binary matching (#465) 2025-07-30 13:27:18 +12:00

README.md

Docker container for running cross-platform MSVC 4.20

To run MSVC 4.20 outside of a non-Windows environment, you can use a Docker image and Wine

Original binary

We are targetting being accurate to CARM95.EXE.

  • Created date: "16 October 1997"
  • SHA256 hash: c6040203856b71e6a22d2a29053a1eadd1a2ab41bce97b6031d745079bc07bdf

Build container image

docker buildx build --platform linux/amd64 -t msvc420-wine .

Running the container

When running this container, you must define:

Name Example value Description
CMAKE_FLAGS -G Ninja -DCMAKE_BUILD_TYPE=Debug -DMSVC_42_FOR_RECCMP=on Environment variable
/source /code/dethrace Volume mount. Path to the top-level dethrace directory
/build /code/dethrace/build-msvc420 Volume mount. This directory must exist but can start off empty. Note that this build directory cannot be the same as your "regular" build directory.
/original /games/carma Volume mount. Path to a directory with a copy of the original CARM95.EXE file

Generating an HTML diff

This is the primary flow for making a change to the code and viewing the comparison to the original executable.

docker run --platform linux/amd64 \
    -e CMAKE_FLAGS="-G Ninja -DCMAKE_BUILD_TYPE=Debug -DMSVC_42_FOR_RECCMP=on" \
    -v <PATH_TO_DETHRACE_DIR>:/source \
    -v <PATH_TO_DETHRACE_BUILD_DIR>:/build \
    -v <PATH_TO_CARMA_DIR>:/orginal:ro \
    msvc420-wine -- \
    reccmp-reccmp --target CARM95 --silent --html diff.html

After running, a diff.html file will be created in the build-msvc420 directory.