Skip to content

Releases: jajdp/ctr-xbox

ctr-xbox 1.0.1

Choose a tag to compare

@jajdp jajdp released this 21 Oct 00:59

What changed in 1.0.1: this repository now says which console it was tested on.

An Xbox Series X, in Developer Mode — both of the consoles this was built and measured on are
Series X, so that is the only hardware anything here covers. A Series S has never been tried, not
once: nothing in this repository has been measured on one, and none of its numbers are a promise about
that console. The wording used to say "Xbox Series", which reads as if it covered both, and it does not.

Nothing else changed. The recipe, the patches and the tools are the same as in 1.0.0.


Español

Lo que cambia en la 1.0.1: este repositorio ya dice en qué consola se probó.

En una Xbox Series X, en modo desarrollador: las dos consolas en las que se construyó y se midió
esto son Series X, así que es el único hardware al que se refiere lo que dice. En una Series S no se
ha probado nunca
, ni una vez: nada de aquí se ha medido en una, y ninguna de sus cifras es una promesa
sobre esa consola. Antes decía «Xbox Series», que se lee como si cubriera las dos, y no las cubre.

No cambia nada más: la receta, los parches y las herramientas son los mismos de la 1.0.0.

ctr-xbox 1.0.0 — the UWP port for Xbox Developer Mode

Choose a tag to compare

@jajdp jajdp released this 16 Oct 22:13

This is a recipe, not a game. There is no executable in here, no .msix and no disc — this zip
is the repository itself, which you apply to your own checkout of
CTRPad. If you came looking for something to install on
a console, there isn't one, and there can't be: see NOTICE.md.

The UWP port of Crash Team Racing for Xbox Series in Developer Mode. CTRPad takes CTR Native to
real 64-bit, which is what makes a console possible at all; this is the fourth link in that
chain. It plays: the Sony presentation with its voice line, the Nitros Oxide intro, the attract
cycle and the menus, with a controller, at 32.9 FPS — the original game's rate — in
full-screen 16:9, in Spanish, and at 60 FPS if you ask for it. Installed and tested on
two consoles.

What's in the zip

Everything the v1.0.0 tag contains — 24 files, about 347 KB uncompressed:

  • patches/ctr-uwp-port.patch — 90 files against CTRPad 76ad5fe: the port, plus widescreen,
    60 FPS and the language, each behind a CMake option
  • patches/sdl3-uwp-audio-wasapi.patch — the SDL3 audio deadlock on WinRT. Useful to any UWP
    port that uses SDL3
  • src/uwp/ctr_uwp_main.cpp — the WinRT entry point
  • tools/ — the orchestrator, the build/package/sign script and the disc splitter
  • docs/ — how to build it and get it onto a console, and why every piece is there, each in English
    and Spanish

It is the same content as GitHub's own "Source code" asset. It is attached separately so that the
SHA-256 below pins exactly what this release was tested with.

ctr-xbox-1.0.0.zip
SHA-256  033bcf7782ce477e70d804a1d351dda206b4a019471b4638be16c8ef5c66175d

What you still need

Your own legally dumped NTSC-U disc of SCUS-94426, a git clone of CTRPad building on your PC,
Visual Studio 2022 with the C++ and UWP components, the UWP dependency bundle
(worleydl/uwp-dep: Mesa and libuwp), an
SDL3-uwp you build yourself — the DLL from its
release will not do — and a certificate to sign with. docs/INSTALL.md walks
through all of it, including which terminal every command goes in. PowerShell 7 is not needed.

What it had to solve

Symptom Cause
1 Stuck on the presentation screen, process alive, CPU at 0% Not the disc: that screen waits for a voice line to finish, and SDL3's WASAPI backend deadlocked — WASAPI_ActivateDevice calls WASAPI_PrepDevice from WASAPI's own management thread, and the guard did not recognise it
2 Activation failed with 0x8027025B The VCLibs dependency missing from the manifest. The DLLs inside the package do not replace it
3 No button did anything Controllers on WinRT only come through Windows.Gaming.Input, and SDL3's driver switches itself off unless the app sets SDL_HINT_JOYSTICK_WGI
4 The process died on the first draw, no dump, no message Mesa's version. The one that already worked on that console draws; a newer one vanishes inside BeginScene
5 HTTP 500 uploading the disc Portal uploads go through D:\DevelopmentFiles. Split into 150 MiB parts, joined by the game at startup
6 Nine build errors nobody warns you about The static CRT, NOUSER, far/near, C++ vs C entry point, /ZW, /sdl, and MinVersion
7 4:3 with bars, 30 FPS, English Three CMake options: widescreen ported by hand from CTR: High Octane (no frame cost), 60 FPS (401 changes across 60 files, 59.8 measured), and Spanish, which was already on the disc

How the recipe was verified

Applied to a clean clone of CTRPad, it leaves 91 of 91 files with the same content as the tree
the installed, tested package was built from: 90 byte for byte — including the 196 KB patch's worth
of changes — and main.c differing only in line endings, which the reference tree happens to keep
as CRLF.

License

GPL-3.0-or-later, as CTRPad, CTR Native and the ModSDK decompilation are. Widescreen and
60 FPS are ported from CTR: High Octane
(GPL-3.0); the SDL3 patch is against zlib-licensed code. All of it is accounted for by origin in
NOTICE.md.

Not affiliated with Sony Interactive Entertainment, Naughty Dog, Activision, Microsoft, or the
authors of the decompilation, CTR Native, CTRPad or High Octane. Rights holders:
jajdpmail@gmail.com.