This repository contains a (WIP) matching decompilation of the 2001 Playstation 2 game "Twisted Metal: Black".
- WARNING! -
This repository is a work in progress, and while it can be used to make certain changes, it's
still constantly evolving. If you wish to use it for modding purposes in its current state,
please be aware that the codebase could drastically change at any time.- WARNING! -
The project maintainer sincerely requests that others do not attempt to port this
repository's code to other platforms until the project nears completion.
Upon the project's completion, if a source port to other platforms is desired, a
unified, non-profit effort to create an open-source engine replacement should be
started to avoid any community fragmentation.This repository currently assumes that the user is running a Debian/Ubuntu-based Linux distribution. If you are a Windows user, you should use Windows Subsystem for Linux with Ubuntu.
This repository requires several system packages which can be found in the
tools/requirements-debian.txt file. To install all required system packages,
run the following command from the root of the repository:
sudo apt update
sudo apt install -y $(cat ./tools/requirements-debian.txt)This repository requires several Python dependencies with a Python virtual environment.
A script in the repository, tools/setup_dev.sh, will automatically perform first-time
setup for all Python dependencies and set up your Python virtual environment.
./tools/setup_dev.shNOTE: You will need to manually activate your Python virtual environment every time you
open a new terminal in the repository. Once setup_dev.sh has been run once, you can
activate your virtual environment with the following command:
source .venv/bin/activateTo build the repository, you will need a digital copy of the Playstation 2 game
Twisted Metal: Black (NTSC) (SCUS-97101).
- Setup your environment as defined by the Requirements section.
- Extract the executable binary ELF file
SCUS_971.01from the Playstation 2 ISO file.
- In the future, this repository will be able to perform this extraction for you. Currently, however, you will need to somehow extract this yourself.
- Place the
SCUS_971.01file into thedisks/directory of the repository. - Run
./configure.py generateat the root of the repository.
- This will split the binary into parts and generate a
build.ninjafile in the root of the repository.
- Run
ninjaat the root of the repository.
- If building is successful, the resulting binary will appear at
build/SCUS_971.01.
To learn how to contribute to this decompilation project, please read CONTRIBUTING.
This project may fall under a legal grey zone of copyright law in some locations.
This project does not and will never reference or incorporate any leaked Sony implementation source code, and contributions which do so will not be accepted. The authors of this project make no claim of copyright on any Sony proprietary APIs or structures.
This project exists primarily for educational and research purposes. The authors of this project have no desire to use this project for monetary gain.