Crash Bandicoot 2 Recompiled — v0.9.5
Windows x64 · 60 FPS at the right speed, a Saves page, controller remapping,
rebindable hotkeys and post-processing
Work in progress. The game is playable from start to finish. There are
still minor sound and graphical issues.
This is Crash Bandicoot 2: Cortex Strikes Back translated into native code
and run directly, rather than emulated.
Before you start
You need your own disc image. This package contains no game data: no game
code, artwork, audio or disc content. You supply a .cue with its .bin, or a
.chd, and the game is built on your machine from it. Nothing is uploaded and
your disc is only ever read.
The build targets the North American release, serial SCUS-94154.
Nothing to install. The compiler is included. You do not need Visual
Studio, CMake, Python or anything else.
| Windows | 64-bit, 10 or later |
| Disk space | About 3 GB free while building |
| First build | Five to twenty minutes, once |
Where to unpack. A folder with spaces in its name now works; that used to
break the build. Two Windows limits still apply, and the launcher checks both
before it starts:
- A folder path with non-English characters will not build. If your Windows
username has an accent or a non-Latin character, do not unpack into your
Desktop, Documents or Downloads. - A very deeply nested folder goes over the Windows path limit during the
build.
C:\Games\Crash2 is ideal.
Updating from an earlier version? Copy your userdata\ folder into the new
one, then press Build the game once on the Setup page. Your saves and
settings come with you.
Getting started
- Run
Crash2Launcher\Crash2Launcher.exe - Setup → choose your disc image → Build the game
- Play
While playing
| Key | |
|---|---|
| Home | Home menu: restart, display options, quick save and load, the assists. Guide, or Start+Select, on a controller. |
| F5 / F9 | Quick save / quick load |
| F7 | Save state slots |
| F8 | Rewind |
| Tab | Fast-forward |
| F | FPS counter |
| Alt+Enter or Ctrl+F | Fullscreen |
| Keypad + / − | Volume |
These are the defaults. All of them can now be changed (see Hotkeys below).
What's new
60 FPS that plays at the right speed
Settings → Performance → 60 FPS game updates. The game's own loop runs 60
times a second instead of 30. This is not a smoothing filter on the picture:
Crash moves, jumps and lands at 60, and the camera follows at 60.
- Animations, moving platforms and timers keep their speed. In 0.9.4
everything the game's scripts drive ran twice as fast with 60 FPS on. Scripts
now step at the game's own rate, while movement, physics and the camera
update every frame. - Smoother. Rewind's snapshots used to make the game wait for the graphics
card four times a second, which showed up as small, regular hitches. That
wait is gone. The game also runs at a higher priority now, so other programs
interrupt it less. - Busy scenes get the full extra time. 60 FPS gives the emulated
PlayStation twice the processing time per frame. Before, part of that was
lost to memory and geometry waits that did not speed up with it. - Save states keep it. Loading a state saved with 60 FPS on no longer
leaves the game stuck at 30. - The Play page tells you how it is going. While the game runs it shows
whether 60 is holding and, if not, what is limiting it.
If a busy scene dips below 60, lower Settings → Video → Internal
resolution first. At 5× the renderer draws twenty-five times the pixels of
the original, and 60 FPS doubles that again, so resolution is usually what runs
out. 2× is a good place to start.
A Saves page
A new Saves page, next to Play:
- all twelve save-state slots, each with a picture of where you saved and when;
- Play from here starts the game straight into that slot;
- Delete clears slots you no longer need;
- Back up your memory cards (the game's own saves) in one click, and
Restore a backup later. A restore backs up the cards it replaces first.
Remap your controller
Settings → Input → Controller configuration. Click a PlayStation button,
then press the button you want on your pad. Each PlayStation button can have
two. Xbox-compatible controllers are picked up directly. Other pads, like a
PlayStation controller without Steam Input, are assigned from a list and work
the same in game. The stick deadzone is set there too.
Hotkeys
Settings → Input → Hotkeys. Every key you use while playing can be
rebound: the Home menu, quick save and load, save slots, rewind, fast-forward,
the FPS counter, fullscreen and volume. A hotkey can use Ctrl, Alt or Shift,
and the page warns you when one is also a game button. The key list on the Play
page follows your choices.
Fast-forward, your way
Settings → Input → While playing. Pick the speed: 2×, 3×, 4× (the default),
8× or unlimited. You can also choose whether fast-forward runs while you hold
the key or switches on and off with each press.
Post-processing
Settings → Video → Post-processing.
| Edge smoothing | SMAA or FXAA |
| Sharpening | Crisper detail after scaling |
| Colour | Brightness, contrast, saturation, gamma and colour temperature |
| Bloom, vignette, film grain | For a softer, more cinematic look |
| Smooth dithered textures | Softens the checkerboard dithering painted into many of the game's textures |
The Enhanced preset turns on SMAA and light sharpening; Authentic leaves
everything off. POST FX in the Home menu switches it on and off while you
play, so you can compare.
Direct3D 12
Settings → Video → Renderer → Direct3D 12. It draws the same picture as
OpenGL, because it is the same renderer built for Direct3D 12. Use it if your
graphics driver misbehaves with OpenGL. If it cannot start, the game runs on
OpenGL and the Log page says why.
The Home menu remembers
What you change in the Home menu is kept for the next launch, and the
launcher's settings show it: aspect, image fit, window mode, POST FX, the FPS
counter, the assists, and volume changed with the volume keys.
Image fit in the Home menu also works properly now. On the Enhanced preset
three of its four options used to look the same.
The FPS counter can also be turned on from the launcher: Settings →
Performance → FPS counter in the game window.
Pause when you switch windows
Switch to another window and the game pauses behind the Home menu. A controller
you are using in another program cannot unpause it. You can turn this off under
Settings → Input → While playing.
Builds that failed on some PCs now work
- A space in the folder path (like
D:\Crash Bandicoot 2) stopped the
build at "Recompiling BIOS". Fixed. - A PC with the Vulkan SDK installed (common among developers and some
modding tools) failed the build at its last step. The game does not use
Vulkan, and the build now ignores the SDK.
If your build failed with either of these, unpack this version and build again.
Other fixes
- Restart in the Home menu now restarts through the launcher, so the Play
page no longer says "Ready to play" while the game is running. - Choosing a preset now updates every control on the settings page. Zoom,
Stretch, Vertical pan and Screen shape used to keep showing their old values. - Ctrl+C no longer ejects the virtual disc.
Known issues
- Minor sound and graphical glitches remain.
- Busy scenes can dip below 60 with 60 FPS on. Lower Internal resolution
before anything else. - A wider Gameplay aspect shows pop-in at the sides. The levels were made
for a 4:3 television, so a wider view can show objects and scenery appear at
the left and right edges. The default 14:9 reaches only half as far as 16:9. - A folder path with non-English characters will not build, and neither
will a very deeply nested one. The launcher detects both and tells you to
move the folder. - Windows will warn on first run. "Windows protected your PC" appears
because the package is not code-signed. Click More info, then Run
anyway. Your antivirus may also object to the bundled C compiler; if it
quarantines anything undertoolchain\, allow it or the build will fail
partway through. - "No damage" holds an invincible state permanently. A scripted sequence
that expects Crash to be interruptible could in principle get stuck. If you
meet one, switch to Keep 2 masks. - Only the North American disc is tested. Other regions may work; nothing
is promised.
Legal
An unofficial, non-commercial fan project. Not affiliated with, authorised or
endorsed by Activision, Naughty Dog or Sony Interactive Entertainment. Crash
Bandicoot is a trademark of Activision Publishing, Inc.
No game code, artwork, audio or disc data is distributed. You provide your own
disc image and the game is built locally from it.
Licences are in LICENSES\:
- psxrecomp, the recompiler and runtime — PolyForm Noncommercial 1.0.0.
Free to use and share for any non-commercial purpose. Selling it, or
bundling it with anything commercial, is not permitted. - OpenBIOS (PCSX-Redux) — MIT. Included, so no PlayStation BIOS is needed.
- SDL3 — zlib.
- Qt / PySide6 — LGPL v3, shipped as replaceable files.
- The bundled toolchain — LLVM/clang under Apache 2.0 with LLVM exceptions,
plus MinGW-w64, CMake, Ninja and Python. Notices inLICENSES\toolchain\.
Dumping a disc you own for personal use is permitted in some countries and not
in others. Check where you live.