You will need to have installed Visual C++. Run the Visual Studio Installer to install C++ if you did not install it initially. Select More>Modify and install the C++ Workload.
Download the code [link] and unzip the files. Note this is not the final Tomb Raider 3 code but an earlier version and is not the original leaked code but a modified version that can be built with modern Visual C++.
Start Visual Studio, click “Open a project or solution”, navigate to the folder you unzipped and select the TOMBRAID.sln file.
The solution file was made with an earlier version of Visual Studio so you will be asked to upgrade the project.
I accepted the default values and clicked OK. Note you should have installed a Windows SDK with the Visual C++ workload. If not use the Visual Studio Installer to install the Windows SDK component.
If you have earlier versions of Visual Studio installed you can choose older Platform Toolset and SDK versions. These can also be changed in the project’s Property Pages under the General section.
Now try and build the code by clicking Build>Build Solution or Build>Build TOMBRAID.
The build fails but only with one error.
A missing file required for building the Playstation (PSX) version of TR3 so we do not need it for our PC build. The PSX version is not able to be built using this code.
Double click on the error to have the line of code open in the code editor and comment out the line by typing two forward slashes at the start of the line.
Build the solution again.
Check the output window for success. The output also shows the location of the executable we built.
By default we built a Debug version of TOMBRAID.exe therefore we can debug the program.
Before we run it we need to copy some files from the retail game.
Go to Project>TOMBRAID Properties to open the Property Pages for the project.
Select Debugging and see that the Working Directory is $(ProjectDir) which is the directory where the project file is saved (TR3_ok) and is different to where the executable is saved (TR3_ok\Debug).
We need to create a folder in the working directory and name it “data”. Inside the “data” folder we copy at least the following files from the retail game’s data folder.
- JUNGLE.TR2
- MAIN.SFX
- TITLE.TR2
- TOMBPC.DAT
If you run Tomb Raider III by double clicking TOMBRAID.exe you will need to copy the “data” folder to the same directory as the exe.
Now we can debug TOMBRAID.exe by by clicking the “Local Windows Debugger” button (green arrow).
The Tomb Raider Setup dialog appears. Note this is a very limited version. I usually change the resolution to match my default monitor resolution so my desktop does not reset. Tomb Raider III runs fullscreen.
Before I click “OK” I create a second desktop (Windows 10) and drag the Tomb Raider III and Tomb Raider III Setup windows to the new desktop.
This is because if I set a breakpoint in the debugger, when it is hit, the Tomb Raider screen goes black and I am unable to access Visual Studio. I have found by having Visual Studio in a separate desktop I can switch desktops to access it.
Select Desktop 2.
Click OK on the setup to run Tomb Raider III.
When I exit the game normally sometimes I get a DirectX exception. I tried building with older SDKs and Platform Toolsets (as old as VS2013 and SDK 8.1) but was unable to eliminate this error.
This error should not interfere with debugging however. Note that after you return to the game after hitting a breakpoint that the game no longer responds to any input which is annoying.
These posts document my studies of the code.
- https://sappersblog.blogspot.com/2018/03/tomb-raider-source-code-notes.html
- https://sappersblog.blogspot.com/2019/04/2-tomb-raider-3-source-code-notes.html
- https://sappersblog.blogspot.com/2020/05/3-tomb-raider-3-source-code-notes.html
Great job!
ReplyDeleteHey sapper,
ReplyDeleteI stumbled upon your blog by searching for the TR3 source code.
Now I try to get TR5 to work the source code was released this year.
I don't know if it's possible to get it working I got so far that the game is starting and loading screen showing up and getting the dblog (debugging tool) tool to work.
https://www.mediafire.com/file/brqsly585rbn5jy/TOMB5_Src.7z/file