F.E.A.R. (Xbox 360)
F.E.A.R.
OrigenXbox 360
TecnologíaRecompilación Estática (C/C++ nativo)
Disponible paraWindows
Ver proyecto oficialSobre el proyecto
F.E.A.R. es un videojuego de disparos publicado por Vivendi Universal Games para Xbox 360, lanzado en 2006.
Información oficial del proyecto
F.E.A.R. 360 Recompiled
The Xbox 360 F.E.A.R., running natively on Windows, Linux and the Steam Deck. Up to 120 fps (and up to 4K on Windows), keyboard and mouse or a controller, and the PC version's textures if you own it. F.E.A.R. Files comes in a later release.
Unofficial. No game data included. Bring your own Xbox 360 disc.
▶ Video: running natively on the Steam Deck
Latest release: v1.6.0, ready to play on Windows and Linux / the Steam Deck: download the zip for your system, unpack your own F.E.A.R. disc into it and play (docs/RELEASE-1.6.md). 1.6 adds an optional automatic shotgun, fixes the sights at a wide field of view and makes setup harder to get wrong. 1.5 added the Windows build with keyboard and mouse, 4K, the PC texture pack with sharper text, and John Wick mode. Next: F.E.A.R. Files (After 1.0).
Why
The 360 version came out about a year after the PC original and is the more complete one: Instant Action mode, a dual-wieldable machine pistol and an extra bonus level that the PC never got. It has been stuck on the console ever since, at 720p and 30 fps. This project frees it, and F.E.A.R. Files (Extraction Point + Perseus Mandate, 360) follows in a later release, so the whole F.E.A.R. 1 package lives in one place.
What it is
A static recompilation: the game's PowerPC code is translated to native x86-64 C++ ahead of time (ReXGlue), and a game-specific runtime stands in for the Xbox. It is not an emulator and not a decompilation.
- CPU: the 360's
default.xex, recompiled. All game logic, AI and physics are the console's own. - GPU: a native renderer: the game's own Direct3D calls are drawn on your GPU through Vulkan, once per draw, instead of replaying the 360 GPU's command stream tile by tile. Ported from GRAW 360 Recompiled, after pgr4-native; fear-nx's graphics system still keeps the GPU's timing and the display pacing. (Up to 0.1.1 the game drew with fear-nx's Vulkan renderer.)
- Your data: the game files come from your own disc; nothing proprietary is in this repo.
Status
| ✅ Boots, menus, intro videos, campaign, Instant Action | port-nx, with the Direct3D 12 renderer (port-nx/src/d3d12/, docs/NATIVE_RENDERER.md) |
| ✅ No flicker on the briefing TVs, no black bands, bullet sparks show | fixed by the Direct3D 12 renderer (#66) |
| ✅ Up to 4K (Windows) | Recompilation Settings → Resolution: 1280×720, 2560×1440 or 3840×2160 (Match display picks the smallest at least as tall as your screen). Linux and the Steam Deck draw at 1280×720, scaled to the screen; FSR 1 upscaling in #72 |
| ✅ The game's own 2×/4× MSAA (or off), up to 16× anisotropic filtering, sharper textures | Recompilation Settings |
| ✅ Frame pacing locked to the display, up to 120 fps | the game's vblank follows the display's real one (DXGI, any GPU vendor), each frame held to the fewest refreshes that keep it at or under 120 fps (120 on 240 Hz, 72 on 144 Hz, 60 on 60 Hz); -FrameRate <n> sets the limit (PROGRESS) |
| ✅ The console code's high-frame-rate bugs fixed so far | enemies update every frame above 100 fps (#3); EchoPatch's fixes for sliding on slopes, the jump kick, speed on landing and out of water, water waves and splashes, and the slow-mo meter (#5, #6, #8, #9, #11-#13); bullet tracers no longer stick in mid-air (#27); animations at exactly the time that passed |
| ✅ Logic, gunplay, physics intact | play-tests so far; the full play-through is the 1.0 smoke test (#56, #57) |
| ✅ Impact smoke and bullet holes at 80 fps | the dust thins out as it should, and model animations run at exactly the time that passed (the engine dropped a fraction of a millisecond every frame); the big "rock" craters are the game's own bullet-hole decals, the same size at 30 fps (PROGRESS) |
| ✅ No haze near bright lights | it was the 360 version's screen bloom, which the PC version doesn't have: off by default, Recompilation Settings → Bloom turns it back on (#38) |
| ✅ Right stick without the 360's turn ramp (default) | "feels significantly better": the 360's stick tuning patched on the fly from your own data; -LookRamp console restores it (PROGRESS) |
| ✅ Saving and Continue game | checkpoints save and Continue game picks them up: "was able to jump into a saved game no issues"; every controller drives player 1, the local profile that saves (a second XInput device used to make the pad player 2, who can't save) |
| ⏳ Movement may feel bouncier than PC | compare game-database tuning and 30 vs 120 fps |
| ✅ PC textures and sharper text in place of the 360's low-res ones | a local pack built from your PC copy (4,710 textures at 4× the pixels, and the game's fonts redrawn; docs/TEXTURES.md), used by both renderers |
| ✅ Recompilation Settings and Quit to Desktop in the main menu | "looks awesome": entries added to the game's own menu (in their own column, with help lines like the game's, #80) open a settings panel (window, frame rate, anti-aliasing, texture filtering and sharpness, field of view, right stick, aim assist, enemy AI, EchoPatch's options, the interval select, animation timing, bloom; saved in your user folder) and a quit confirmation (PROGRESS) |
| ✅ Shaders built before play | every start builds the pipelines earlier runs stored before the game's first frame, on all cores ("PREPARING SHADERS" when it takes a moment), so a scene seen before doesn't stutter (port-nx/src/pipeline_warmup.h) |
| ✅ One collection: F.E.A.R. and F.E.A.R. Files from one menu | "switcher works with controller and switch is fine between games": a menu in the game's style before either game loads (#43), Switch Game in both games' main menus, Recompilation Settings and Quit in Files' too (tools/launch.ps1 -Collection -WithFiles; -Collection alone lists Files as coming later) (FILES) |
| ⏳ F.E.A.R. Files (Extraction Point + Perseus Mandate) | plays on the same Direct3D 12 renderer (its Direct3D mapped on its own) with F.E.A.R.'s fixes; still to do: the smoke plumes, its own effects (#51), an optimisation pass and the full play-through (#57). The collection: docs/FILES.md |
| ✅ Steam Deck, native Linux (0.9) | no Proton: Vulkan straight on the Deck's driver, ThinLTO and optional PGO. With the 360's settings at 90 Hz, under 1% of frames below 60 fps in the heaviest fights (F.E.A.R. Files' Sprint, F.E.A.R.'s Rooftop); tools/steamdeck/README-SteamDeck-Linux.txt, docs/LINUX_NATIVE.md |
| ✅ Linux | the same native build (tools/build-linux.sh), Vulkan 1.3 (docs/SETUP.md) |
| ⏳ Windows on ARM64 | scoped, not started (#73) |
| ⏳ Android (ARM64) | scoped, not started; needs a renderer path, since the games are Direct3D 12 only (#44) |
What's next
1.6 is F.E.A.R. on Windows, Linux and the Steam Deck (what's in it: docs/RELEASE-1.6.md; the 1.0 smoke test on the Deck: docs/SMOKE-1.0.md). Next:
| ⏳ Bugs reported against 1.6 | a sweep of the issue board |
| ⏳ F.E.A.R. Files #57 | both campaigns (37 levels) and Instant Action (8 maps), each to the end; its menu entry says "coming later" until then |
| ⏳ More performance | the water's screen copies in the biggest water fights (#103) |
Known issues in 1.6: the release notes.
Other open work: performance (the Steam Deck #40, the renderer's GPU cost #37, lower-end PCs #58); PC parity with EchoPatch (#2); keyboard and mouse (#59); rumble and gyro aiming (#26); Instant Action extras (#60, #61); visual checks against the 360 (#45 to #52); upscaling (#72); Windows on ARM64, Linux and Android (#73, #74, #44). All open issues.
Full debrief and play-test notes: docs/PROGRESS.md. Agent handoff: docs/HANDOFF.md. How it all fits together, where the time goes, and how to help: docs/ARCHITECTURE.md.
Build and run
Linux and the Steam Deck (1.0): docs/SETUP.md, Linux and Steam Deck: your F.E.A.R. disc in port-nx/assets, build in the Deck container, package, then add fear-linux.sh to Steam (or run it on any Linux PC):
tools/build-deck.sh # F.E.A.R.
python3 -I tools/steamdeck/make_package.py --linux # private/steamdeck/FEAR360-SteamDeck-linux.zip
Windows (supported from 1.5): the latest release has a ready-built zip; to build it yourself instead, step by step: docs/SETUP.md. In short, with the toolchain in .tools/ and your discs extracted:
pwsh -NoProfile -File tools/setup-sdk.ps1 # the patched ReXGlue SDK
pwsh -NoProfile -File tools/build-nx.ps1 # F.E.A.R.
pwsh -NoProfile -File tools/build-nx.ps1 -Project port-files # F.E.A.R. Files
pwsh -NoProfile -File tools/launch.ps1 -Collection # the collection menu
Launcher defaults: fullscreen, -FrameRate auto (locked to your display's refresh, at most 120 fps). Options: -FrameRate auto|<20-240> (the limit), -Anisotropic 1..5 (2× to 16×), -Timer (the old software vblank timer instead), -LookRamp console|nodelay|instant|off, -NoSoftLock, -Windowed, -Invulnerable (for testing), -Extra '<more flags>'. Most of these are in Recompilation Settings too.
PC textures and sharper text (needs the PC version): build the pack from your own PC copy (docs/TEXTURES.md); both renderers use it.
Your own default.xex and Game/ folder go in port-nx/assets/ (F.E.A.R., title 565507D9) and port-files/assets/ (F.E.A.R. Files, 565507E8); docs/SETUP.md has the supported hashes and the ISO extraction step.
Layout
port-nx/ F.E.A.R.: app glue (src/), the Direct3D 12 renderer (src/d3d12/), fear-nx's GPU ring (src/native/), manifest
port-files/ F.E.A.R. Files: its own manifest and translation, port-nx's host code
port/ stock-SDK build, kept for A/B (menus corrupt)
patches/ the ReXGlue SDK patches (fear-nx's, then ours; tools/setup-sdk.ps1 applies them)
tools/ build, launch, smoke/autoplay tests, window capture, ISO extractor, texture pack builder
docs/ progress, handoff, findings, plan, ripping
Legal
- Changes reach
masteronly through reviewed pull requests: CONTRIBUTING.md. - No game data is distributed, and none is in this repository. From 1.5 on, releases attach the built program (
make_package.py --release), never game files or the private test packages the script's other modes make; players bring their own disc (CONTRIBUTING.md). The source of every release is its tag here. Before pushing, runpython -I tools/audit_repo.py(CI runs it too). - Three sets of terms, file by file in NOTICE, full texts in LICENSES/:
- MIT (LICENSE): our own tools, docs and glue.
- GPL-3.0-or-later (LICENSES/GPL-3.0.txt):
port-nx/src/native/(what's left of fear-nx ← Project8Recomp ← nfsmw-nx: the GPU ring and display pacing), the manifests and SDK patch 0000. Builds that link it are GPL. - MIT, pgr4-native (port-nx/src/d3d12/LICENSE.pgr4-native):
port-nx/src/d3d12/, the renderer (Direct3D 12 and Vulkan), and SDK patches 0016-0017. - BSD-3-Clause: ReXGlue (with Xenia's notices), its
rexglue initscaffolding and our SDK patches 0001 on.
- F.E.A.R. is a trademark of Warner Bros. Entertainment / Monolith Productions. Not affiliated with Monolith, Day 1 Studios, Warner Bros., Vivendi/Sierra, Activision or Microsoft.
Credits
- Monolith Productions and Day 1 Studios: F.E.A.R. and its Xbox 360 port
- shaunsingh: pgr4-native, the Direct3D 12 renderer this one is ported from (by way of GRAW 360 Recompiled)
- infriker: fear-nx, the function hints, the GPU ring the renderer runs on, and the Vulkan renderer that made the menus work up to 0.1.1; R-drg (Project8 SW) and StevensND (nfsmw-nx) before them
- Tom Clay and contributors: ReXGlue; the Xenia team
- Inspiration: UnleashedRecomp, Lost Odyssey Recomp, OpenCE, EchoPatch
- Built with Claude Code. Play-tested by a human.
