dethrace/reccmp
Dethrace Engineering Department f00ff0c266
Fixes AdvanceChunkPtr decomp (#468)
* fixes AdvanceChunkPtr

* update workflow
2025-08-21 13:18:52 -07:00
..
Dockerfile update reccmp instructions and initial report 2025-08-10 13:48:02 +12:00
README.md Fixes AdvanceChunkPtr decomp (#468) 2025-08-21 13:18:52 -07:00
entrypoint.sh update reccmp instructions and initial report 2025-08-10 13:48:02 +12:00
set-env.reg update reccmp instructions and initial report 2025-08-10 13:48:02 +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>:/original:ro \
    msvc420-wine -- \
    reccmp-reccmp --target CARM95 --silent --html report.html

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

Make a pull request change

reccmp will run against the code in the PR branch. If any functions decrease in accuracy the PR validation will fail.

When the PR is merged, the updated report is stored in https://github.com/dethrace-labs/reccmp-report, and this is used to compare the next PR