GTA: Chinatown Wars · CTW-Native
Grand Theft Auto: Chinatown Wars
OriginAndroid
TechnologyNative C/C++ port (engine reimplementation)
Available forWindows
View official projectAbout the project
Port Windows reconstruido en C++ desde los archivos de GTA: Chinatown Wars Android 4.4.243. Incluye porter y soporte para mods; requiere APK propio. El README da instrucciones de juego, sin comprobación independiente de campaña completa.
Official project information
CTW-Native
GTA: Chinatown Wars as a native Windows and Linux game, rebuilt in C++ with SDL2 and OpenGL. It runs from the game files of your own Android 4.4.243 copy; none are included here. A fan project, not affiliated with Rockstar Games or Take-Two. STATUS.md says what works.
Status
<sub>Share of the original Android game's code, by size, whose routines the port names as ported. Green is the ported part of each class. Updated on every push to main; see how it is measured.</sub>
Play it
- Download CTW-Native-Porter.exe from Releases.
- Start it, drop your GTA: Chinatown Wars APK (Android 4.4.243) on it and press Port it.
- Press Play, or use the shortcut on your desktop.
The Porter writes a folder with the game in it:
GTA Chinatown Wars PC/
GTACTW.exe the game
data/ the game files from your APK
mods/ the mod menu (F4) and the example mods
The folder can be moved anywhere. Windows 10 or 11, 64-bit. Saves go into saves/ in the same folder.
On Linux (x86-64), download CTW-Native-Linux-x86_64.tar.gz instead, unpack it and run
./port-apk.sh path/to/your.apk (it needs Python 3.10+ with venv), then ./GTACTW.
See CONTROLS.md for the keys.
Mods
Press F4 in the game for the mod menu. A mod can contain texture changes, a C or C++ DLL, or both in one folder. The bundled Enhancements mod adds a third-person camera (V, then the mouse) and PSP-style lighting. See the modding guide.
Play together: the bundled Multiplayer mod supports configurable rooms of 2–32 players (16 by default), with shared cars, NPCs and explosions, passenger seats and lettered minimap markers. Press Esc and MULTIPLAYER: host a game, or join one from the online list, your network or an address. Online games go through CTW Online, so nobody has to open ports. T chats. See playing together. You can also run your own list and relay on a free Cloudflare account in a few minutes: see online/.
Build from source
Windows
Windows x64 with Python 3.10+, Git, CMake 3.20+, Ninja and a MinGW-w64 toolchain (GCC or LLVM-MinGW) on your PATH. MSVC is not supported because of the game's fixed-point arithmetic.
python -m pip install -r requirements-setup.txt
python scripts/setup_game.py # your APK from input/ into port/data
cmake -S . -B port/build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build port/build
port/build/GTACTW.exe --data port/data
The build also makes ctw_showcase.exe (an asset and world viewer) and the mod kit in port/build/mods/.
For optional 3D people in third person, place your own LCS Android 2.4.379 APK at
input/lcs/GTA-LCS-2.4.379.apk before configuring. Those same CMake commands prepare its character assets for
Enhancements; press V in the game. Incremental builds reuse the import and repair missing files.
-DCTW_LCS_APK=PATH selects another local donor; -DCTW_IMPORT_LCS=OFF stops automatic import.
This development step is disabled for CTW_RELEASE=ON; standalone exports and the Porter use explicit imports.
Linux
Any recent x86-64 or arm64 distribution with GCC 11+ (or Clang 14+), CMake 3.20+, Ninja, Python 3.10+ and the development packages SDL2 builds against. On Debian or Ubuntu:
sudo apt install build-essential cmake ninja-build python3-pip libx11-dev libxext-dev libxrandr-dev libxcursor-dev \
libxfixes-dev libxi-dev libxss-dev libxkbcommon-dev libwayland-dev wayland-protocols libgl1-mesa-dev \
libegl1-mesa-dev libasound2-dev libpulse-dev libudev-dev libdbus-1-dev
python3 -m pip install -r requirements-setup.txt
python3 scripts/setup_game.py
cmake -S . -B port/build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build port/build
port/build/GTACTW --data port/data --mods port/build/mods
The mod menu and the example mods build as .so files; a mod's mod.ini keeps naming x.dll, and the menu loads
x.so in its place. CI builds and tests every push on Ubuntu as well as on Windows.
Building needs no game files; running does. python scripts/export_pc.py writes the same standalone folder as the
Porter from a local build (--with-modkit adds the mod menu and the examples). The Porter itself is in
porter/.
Tests
ctest --test-dir port/build --output-on-failure
python -m unittest discover -s tests -v
License
Project code is licensed under GPL-3.0-only, see LICENSE; GTACTW.exe --license prints the notice.
Third-party components keep their own licenses, see THIRD_PARTY.md. The license does not cover
the original game's code, assets or trademarks.
Contributing | Mod kit | Porter | Discord
