# NCAA Football 14 Recompiled A native Windows and Linux port of NCAA Football 14 (Xbox 360), made with the [ReXGlue SDK](https://github.com/rexglue/rexglue-sdk). You need your own disc image. No game content is included here or in the releases. ## Screenshots | | | |---|---| | ![First run: select your game files](screenshots/readme/first-run.png) | ![Second step: add College Football Revamped, or skip](screenshots/readme/revamped.png) | | ![The launcher](screenshots/readme/launcher.png) | ![The controls page](screenshots/readme/controls.png) | ## Playing Download from the Releases page. - **Windows:** extract the zip anywhere and run `ncaafootball14.exe`. Windows will say it protected your PC because the build is not signed: More info, then Run anyway. - **Linux:** make the AppImage executable and run it. On first run the launcher asks for your disc image (`.iso`) and extracts it. It then offers College Football Revamped if you have the mod's files: one folder holding its six archives with `DLC.rar` beside them. The launcher unpacks and installs the packages. After that it opens straight to PLAY. Requirements: 64-bit Windows 10 or newer with a Direct3D 12 GPU, or a Linux distribution with glibc 2.35 or newer (Ubuntu 22.04, Debian 12, Fedora 36, SteamOS 3.5 or anything more recent) with a Vulkan GPU; a processor with SSE4.2. Everything the game writes lives in `%LOCALAPPDATA%\ncaafootball14` on Windows and `~/.local/share/ncaafootball14` on Linux. ## Building from source The build needs the SDK from the `ncaa14` branch of [LegendaryDoors/rexglue-sdk](https://github.com/LegendaryDoors/rexglue-sdk), CMake 3.25 or newer, Ninja, Clang 18 or newer, Python 3, and your own disc image. The two checkouts sit side by side. **1. Build and install the SDK.** ```sh git clone -b ncaa14 https://github.com/LegendaryDoors/rexglue-sdk.git cmake -S rexglue-sdk --preset linux-amd64 -DREXGLUE_ENABLE_TRACY=OFF cmake --build rexglue-sdk/out/build/linux-amd64 --config Release --target install --parallel ``` **2. Take the game's executable from your disc.** ```sh cd NCAAFootball14Recomp python3 tools/extract_iso.py "NCAA Football 14 (USA).iso" game mkdir -p assets/game && cp game/default.xex assets/game/ ``` Only `default.xex` goes there, never the title update's `default.xexp`: the update moves every address in the program, and this recompilation, like College Football Revamped on the console, targets the disc's version `0.0.0.2`. The disc's `default.xex` is 31,870,976 bytes, SHA-1 `f2d268ae652c92bb5650a7d9c2d227f325a409c7`. **3. Generate the recompiled code and build the game.** ```sh ../rexglue-sdk/out/install/linux-amd64/bin/rexglue codegen ncaafootball14_manifest.toml cmake --preset linux-amd64-release -DCMAKE_PREFIX_PATH=../rexglue-sdk/out/install/linux-amd64 cmake --build out/build/linux-amd64-release --target ncaafootball14 --parallel ``` On Windows, `tools\win_build_sdk.bat` and `tools\win_build_app.bat` run the same steps with the Windows presets; a release build passes `-DCMAKE_C_FLAGS=-march=x86-64-v2 -DCMAKE_CXX_FLAGS=-march=x86-64-v2` to both, which is where the SSE4.2 requirement comes from. `tools/release_linux.sh` builds the release AppImage inside an Ubuntu 22.04 container, and `tools\release_windows.ps1` builds the Windows zip. ## Licence BSD-3-Clause, in [LICENSE](LICENSE), together with the notices for the ReXGlue SDK, Xenia and the Montserrat font. ## Acknowledgements - The [ReXGlue](https://github.com/rexglue) project, whose SDK does the recompilation and provides the runtime this port runs on. - [Xenia](https://xenia.jp), the Xbox 360 emulator from which the SDK's runtime and graphics derive. - The [College Football Revamped](https://github.com/cfbrevamped) community, whose mod is the reason this port exists.