True Crime: New York City - Xbox Recomp

True Crime: New York City Xbox Recomp is a native Windows and Linux port of the Xbox game with modern graphics and input options.

README

True Crime: New York City — Xbox Recomp

A native Windows and Linux recompilation port of the original Xbox game, with modern graphics and input options.

Latest release Windows and Linux MIT license Beta

Download · Linux / SteamOS guide · Build from source · Report an issue

Important

No game assets are included. You must provide the files from your own legally acquired copy of the Xbox game. The port checks that the game files match the release it was built from. This is an unofficial fan project, not affiliated with or endorsed by Activision or the original developers.

What is this?

True Crime: New York City (US NTSC VERSION ONLY FOR NOW) — Xbox Recomp is an unofficial native PC port of the original Xbox release. The game is statically recompiled to C++ and runs directly on Windows (Direct3D 12) and Linux (Vulkan) — no emulator and no Proton.

The port adds a modern graphics menu, widescreen support, controller and raw mouse input, texture replacement, save durability fixes, and a native Linux/SteamOS build. It was created with Xbox XBE Recomp.

Quick start

WindowsLinux / SteamOS
DownloadTrueCrimeNYC.zipTrueCrimeNYC-linux-x86_64.tar.gz
InstallExtract, then put your game files in assets/Extract, then put your game files in assets/
RunTrueCrimeNYC.exe./TrueCrimeNYC
RendererDirect3D 12Vulkan (leave Proton off in Steam)
  • Windows launcher: you can select your .iso instead of extracting it. The launcher copies the ISO into assets/, so allow space for one copy. If the files are already in assets/, click Launch without browsing.
  • Linux: --assets <folder> and --iso <image> also work. See the Linux / SteamOS guide for SteamOS handheld steps and paths.
  • First launch compiles the game code and can take a while. Later launches reuse the cache.

Highlights

  • Native renderers — Direct3D 12 on Windows, Vulkan on Linux; no emulator and no Proton.
  • Almost no loading screens — the game reads its data straight from your drive instead of a DVD, so loading screens are gone or flash past in a moment. How fast depends on your hardware, mainly the drive the game is installed on.
  • Modern graphics — render scale, aspect ratio, field of view, object detail, MSAA, SMAA, bloom, depth of field and GTAO ambient occlusion on both platforms, plus sharper and softer shadows.
  • TAA and upscaling — temporal anti-aliasing with per-object motion, AMD FSR 1 and FSR 3.1 on both platforms, FSR 4.1 on Windows with a supported AMD GPU, and RCAS sharpening.
  • Steam Deck and handhelds — a native SteamOS build with Deck button prompts, tested on a Radeon 890M handheld. See the Linux / SteamOS guide for setup on SteamOS.
  • Fewer stutters — compiled pipelines are kept between runs and pre-built in the background at start, so effects the game has used before do not hitch the first time they appear.
  • HDR output — optional HDR on Windows (scRGB or HDR10) and Linux (HDR10 or extended sRGB), with paper white, peak brightness and highlight strength settings.
  • Widescreen — up to 32:9 for the 3D view, with the HUD and menus kept in the middle and the intro movies stretched to fill the screen.
  • Controller and mouse — Xbox, PlayStation and Switch controllers with hot-plug, rumble and matching button prompts, including Steam Deck glyphs and Xbox prompts for the ROG Ally and Legion Go under Steam Input. Raw mouse aim works in precision aim and snaps onto a lock-on target; keyboard prompts switch to the pedal keys in a car.
  • Texture tools — dump textures and load PNG/DDS replacement packs shared between Windows and Linux.
  • Graphics menus — the F10 overlay (keyboard, mouse or controller) and the game's own Options > Display tab, where display changes are applied and confirmed before they are saved. An Exit Game option in the main and pause menus closes the game and saves your settings.
  • Copland traffic fix — restores normal civilian traffic after scripted and random-crime vehicle passes, without reducing police or wanted-level spawns.
  • Car-scrape damage cap — a passing car can no longer deal thousands of impact damage per second (most noticeable while you enter or exit a vehicle); impact damage to the player is limited to 15% of max health per second.
  • Voice-volume 0 phone-call fix — phone calls still start (silently) when voice volume is 0, so informant missions and precinct-cleanup messages are not lost.
  • Human Cargo fix — the button prompt to push the boss off the cargo container no longer has game-breaking timing, so the mission can be finished reliably.
  • Keyboard driving — full steering stays available while accelerating.
  • Visual fixes — no ghost copy or dark band from the glow along the frame's edges, building windows show their lit interiors as on the Xbox, and no white flashes in the intro cutscene.
  • Quality of life — 30/60 FPS limiter, saves written safely at shutdown, Unicode and long-path support, and controllers that can be unplugged and plugged back in at any time.

Graphics menu

Press F10, or Back + Start on controller 1, at any time. Use the arrow keys or D-pad to move and change values, Enter or A to select, and Esc or B to close. The mouse works too.

The game receives no controller input while the menu is open, so pause the game first during play. Settings are saved when the menu closes. On a small screen the list scrolls and keeps the highlighted row in view.

MSAA is off by default because it is the most demanding option; depth of field works with or without it.

Full graphics options
OptionValues and notes
Display modeFullscreen, Borderless or Windowed.
ResolutionDesktop or any mode the monitor lists.
Apply display changesApplies the display mode and resolution. A change that fails puts the previous mode back.
Aspect ratioAuto, 4:3, 16:10, 16:9, 21:9 or 32:9. The 3D view widens; HUD and menus stay 16:9 in the middle, and the intro movies stretch to fill the screen. 4:3 and the wide shapes take effect after a restart.
Render scale25% to 200% of the output height.
TAATemporal anti-aliasing in place of SMAA on the 3D scene, with per-object motion for cars and people. Available on D3D12 and on Vulkan devices with independent blending. Selecting a temporal upscaler replaces TAA. Off by default.
UpscalerBilinear or AMD FSR 1 below 100% render scale. FSR 3.1 on Windows and Linux, FSR 4.1 on Windows, and optional experimental DLSS use 50% (Performance), 58% (Balanced), 67% (Quality) and 100% (Native AA). Windows FSR uses the AMD SDK loader and upscaler DLLs. DLSS requires an NVIDIA RTX adapter and the platform's NVIDIA runtime.
SharpeningOff to 100%: AMD FidelityFX RCAS sharpening of the 3D frame, at any render scale. The HUD is not sharpened. Off by default.
Field of view80% to 150% of the game's view, gameplay camera only; aiming still zooms.
Object detailOriginal, High, Very high or Maximum: how far buildings and props keep their detailed models. Vehicles keep the game's own detail level. Maximum is much slower.
Anisotropic filteringGame default, 2x, 4x, 8x or 16x.
MSAAOff, 2x, 4x or 8x. Off by default: it is the most demanding option.
SMAASMAA 1x anti-aliasing on the finished frame. On by default.
BloomOptional bright-pass bloom over the game's lighting. On by default.
Bloom strength50% to 400% of the original bloom, which is very subtle at 100% (the default).
Shadow qualityOriginal (follows render scale), High (1024x1024) or Ultra (2048x2048) shadow image. Original by default.
Shadow softnessOff, Soft or Softer shadow edges. Off by default.
Depth of fieldDistance blur for 3D scenes. On by default.
Ambient occlusionGTAO contact shadows in corners and under objects, applied to world geometry only so lights, fog and effects keep their brightness. Off, Half or Full resolution. Off by default. Windows (D3D12) and Linux (Vulkan).
Building seam fixExperimental: gives detailed buildings priority over simplified city meshes. On by default.
PC contrastSofter shadow roll-off inspired by the PC version. On by default.
HDRExpands the finished frame's highlights for an HDR display. Off by default, and identical to normal output when off. On Windows it follows the system HDR switch without a restart.
HDR paper white / peak / highlightsBrightness of normal white (nits), the brightest highlights (the display's reported peak, or 1000 nits), and how far lamps, neon and headlights are pushed above white.
V-Sync / Frame limitV-Sync on/off; 30 or 60 FPS. The game's timing is built for at most 60.
Low latencyWindows: one frame waits for the display instead of three, so the controls respond sooner. Can lower the frame rate on a slow GPU. Off by default.
FPS counterOn or off.
Texture replacement / dumpingEnable replacement packs; dump to PNG or DDS.
Defaults / CloseDefaults resets every option (display changes still need Apply); Close saves and closes the menu.

Most of these also appear in the game's own Options > Display tab, with HDR on its own HDR SETTINGS page. Back cancels and A confirms there, as with the game's options; a display change is saved only once it has been applied.

The 3D scene renders in higher-precision (FP16) colour on D3D12 and Vulkan when the GPU supports it. Set TCNYC_SCENE_FP16=0 before launch to use the original 8-bit scene targets. Guest surfaces retain their original formats.

Customization
  • Boot splash: place splash.png or splash.bmp beside the executable.
  • Texture replacement: see the Linux guide for the shared folder and naming scheme. Windows uses the same layout.
  • Keys: use, climb, reload and the optional heavy-attack key can be changed in settings.toml (see Settings file).

Controls

ActionDefault keyboard / mouse
MoveWASD
FireLeft mouse
Precision aimRight or middle mouse
Reload / blockR
Use / actionE
Jump / climbSpace or G
CrouchC
Target lockShift
Badge / sirenQ
Light attackLeft Ctrl or mouse side button 1
Heavy attackLeft Alt or mouse side button 2
Frisk / grapple / arrestV
Weapon / cameraMouse wheel
Pause / mapEsc

Vehicles: W accelerates, S brakes/reverses and A/D steer when the active camera is in vehicle mode.

Controller and input details
  • Xbox, PlayStation and Switch controllers are supported with hot-plugging and rumble.
  • On-screen glyphs switch automatically between the active controller and keyboard/mouse.
  • Mouse look uses raw input and applies the PC version's camera scale on foot and in vehicles.
  • Mouse sensitivity and a separate vertical sensitivity are set in settings.toml (see Settings file).
  • Enter confirms menus and Backspace cancels.
  • The cursor is confined to the game while focused and released for the F10 menu.
  • Button prompts follow the controller in use. If they guess wrong (for example an Xbox pad through Steam Input on a Steam Deck), set prompt_style in settings.toml.

Settings file

Everything in the F10 menu is saved to settings.toml: beside the executable on Windows, and in ~/.config/TrueCrimeNYC/settings.toml on Linux. A few options are only in the file:

SettingDefaultMeaning
mouse_sensitivity_percent100Mouse look speed, 10 to 400.
mouse_vertical_sensitivity_percent100Vertical speed relative to horizontal, 10 to 400.
direct_mouse_aimtrueThe mouse turns the camera directly; false feeds it to the right stick instead.
prompt_style0Button prompts: 0 automatic, 1 original Xbox, 2 Xbox, 3 PlayStation, 4 Steam Deck.
use_key, climb_key, reload_keyE, G, RLetter keys for use, climb and reload.
heavy_attack_key0An extra heavy-attack letter key; 0 keeps only Left Alt / mouse side button 2.

Delete the file to return to the defaults.

System requirements

WindowsLinux
OSWindows 10 or 11, 64-bit64-bit Linux with glibc 2.38+ (SteamOS 3.6+, Ubuntu 24.04+)
GraphicsDirect3D 12 GPUVulkan 1.1 GPU/driver. MSAA requires Vulkan 1.2; without it MSAA falls back to one sample.
HDR (optional)An HDR display with Windows HDR onAn HDR display and an HDR-capable session (for example gamescope with HDR enabled)
Audio—SDL3 + PulseAudio
Game filesYour own matching Xbox release, as an ISO or extracted filesSame
StorageSpace for the game and its assetsSame

The extracted game files are used when both an ISO and extracted files are present. A different Xbox release is refused, because it would run its own data under this recompiled code.

Building from source

Windows
  1. Clone the repository with Git.
  2. Put your game files in assets/: default.xbe with the game's folders beside it.
  3. Install Visual Studio 2022 or later (or its Build Tools) with Desktop development with C++, C++ Clang tools for Windows and C++ CMake tools for Windows. build.bat offers to add the last two.
  4. Run build.bat. The first build recompiles the game and takes a while. The executable is written to out\build\release.

The presets use clang, clang++ and llvm-rc from PATH. Release builds need the MSVC-target clang (Visual Studio's or C:\Program Files\LLVM\bin); a MinGW-target clang such as llvm-mingw first on PATH stops the Release configure. For a local MinGW build anyway, configure with -DTCNYC_ALLOW_MINGW_RELEASE=ON; release packages still refuse it.

  • Release package: release.bat builds TrueCrimeNYC.zip from out\build\release, with the Visual C++ runtime and the bundled compiler.
  • Developer build and experimental DLSS: build-dev.bat (optionally with an NVIDIA DLSS SDK path) builds into out\build\dev; it is never used for releases. See DEVELOPER.md for the dev build with the F9 debug menu, building DLSS with NVIDIA's SDK on Windows or Linux, and the switches that help with testing.
Linux

The prebuilt package is recommended. A source build needs the generated game code from the recompiler and a matching assets/default.xbe. Run the Windows build once to generate generated/game, or invoke the recompiler directly.

Install CMake 3.25+, Ninja, a C++20 compiler, SDL3, Vulkan and shaderc development packages, then:

cmake -S platform/linux -B build/linux -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build/linux --parallel

On Ubuntu 24.04 the packages are:

sudo apt-get install build-essential cmake ninja-build pkg-config libvulkan-dev libshaderc-dev \
  libasound2-dev libpulse-dev libudev-dev libx11-dev libxext-dev libxrandr-dev libxi-dev \
  libxcursor-dev libxfixes-dev libxss-dev libxkbcommon-dev libdrm-dev libwayland-dev \
  wayland-protocols libdecor-0-dev libegl1-mesa-dev

Ubuntu 24.04 has no libsdl3-dev; build SDL 3.4.16 (release-3.4.16) from source with -DSDL_SHARED=OFF -DSDL_STATIC=ON and install it first. scripts/package-linux.sh build/linux dist then makes the release tarball.

Beta notes

  • This is beta software. Back up saves before trying new settings or builds.
  • The first launch compiles game code; later launches reuse the shader cache.
  • If the game reports missing assets, check that assets/default.xbe and its data folders are present and match this build.
  • Logs are written to logs/ beside the executable. Windows settings are in settings.toml beside the executable; Linux paths are in the Linux guide.
  • DEVELOPER.md lists what to include in a report and switches for more detailed logs.
  • When reporting a visual problem on Linux, the Linux troubleshooting section explains the F3 trace files to include.

Credits

  • Xbox XBE Recomp — the recompiler and runtime this port is built on.
  • XenonRecomp — overridable function layout and instruction hooks.
  • Zydis — x86 instruction decoding.
  • toml++, Dear ImGui, SDL and SMAA — configuration, overlay, window/input and anti-aliasing.
  • AMD FidelityFX FSR 1 (MIT) — upscaling and sharpening.
  • AMD FidelityFX SDK 2.4 — optional FSR 3.1 and FSR 4.1 on D3D12. Windows packages built with the AMD SDK inputs carry both signed DLLs and the SDK licence. For a manual install, place the signed loader and upscaler DLLs beside TrueCrimeNYC.exe. The older combined amd_fidelityfx_dx12.dll also supports FSR 3.1.
  • NVIDIA DLSS (NVIDIA proprietary) — optional experimental DLSS in developer builds made with NVIDIA's SDK. Release packages do not include it.
  • LLVM / Clang — the compiler bundled with the Windows release to build the game code on first launch.
  • shaderc / glslang and stb — run-time shader compilation and texture image loading on Linux.
  • Ambient occlusion follows GTAO (Jimenez et al., "Practical Real-Time Strategies for Accurate Indirect Occlusion", 2016) and Intel's XeGTAO.

See sdk/THIRD_PARTY.txt, sdk/LICENSE and the LICENSES/ folder in the release package for the full notices.

License and disclaimer

The port's source is MIT-licensed; see LICENSE. Game assets, characters and trademarks belong to their respective owners. No game files are included or distributed. This is an unofficial fan project and is not affiliated with or endorsed by Activision or the original developers.