Everything new in 2.4
The big one: game logic at high FPS now matches the original PS1 game. For this release we built a test bench that runs the real PS1 game in an emulator (BizHawk/Octoshock) and the recompilation side by side, feeds both the exact same controller inputs tick by tick, and compares Crash's position, direction and the objects around him. At 30 FPS the two are identical. At 60/120/144 FPS we hunted down every difference we could find. The numbers are in the table at the end.
✨ New Features
- Start opens the pause menu (optional, on by default): the Start button now opens our pause menu wherever the original game allows pausing. The menu is fully playable with a controller: Cross to select, Circle to go back, L1/R1 to switch Settings tabs, L2/R2 for volume, Select to exit to the map/title. Turn it off in Settings → Display or in the launcher (Gameplay tab) to get the original pause back.
- Pity Mask (optional, off by default): after 3 deaths at the same checkpoint you respawn with Aku Aku, like in Crash 2 and 3. Not used in boss and hog levels. Available on desktop and Android. (#186)
- Minimal FPS counter: the HUD now shows only the FPS. The old full stats are under Detailed stats. Desktop and Android. (#176)
- No more 30 FPS drops on menus: the bonus-round save screen, the level completion screen and the island map now run at your selected frame rate. The map camera moves at the right speed in both directions.
🛠️ Fixes
High FPS (game logic)
- Crash's steering now matches the PS1: sharp turns, zig-zags and quick left/right taps no longer lag behind or overshoot. Air steering was 2× too strong at 60 FPS and 4× at 120.
- Walk start and stop: Crash no longer moves a few centimetres too far when he starts walking, and no longer stops short. (#127)
- Level start timing: after the intro camera, control is handed to you at the same moment as on PS1 (it was 2 frames early), and Crash no longer snags on the first crate of N. Sanity Beach.
- Sunset Vista rotating drums: Crash no longer walks in place, falls through or dies on the turning columns. (#181)
- Sunset Vista seesaw: the seesaw no longer flips over at high FPS, and it no longer judders at 60 FPS.
- Wumpa pieces no longer keep flying while the game is paused. (#184)
- The warp-in flare no longer appears at Crash's feet for one frame when a level starts. (#158)
- Japanese box drop: the "missed boxes" text stays hidden until the box hits Crash, then shows the full count. (#174)
Widescreen (16:9 / ultrawide)
- Loading screens no longer show level geometry at the sides for one frame. The box counter and gem hints are placed correctly from the first frame. (#82)
- Lost City: the red beams under the first climbing platform are no longer cut at the 4:3 edge. (#178)
- Sunset Vista: the far forest is back behind the red slabs on the left side. (#183)
- Upstream: cleaner filler polygons, no more pieces sliding against the scenery. (#161)
- Hand-made fixes for 14 levels with our new 16:9 scene editor: Cortex Power, Toxic Waste (#175), N. Sanity Beach (#99), Papu Papu (#86), Upstream (#161), Road to Nowhere (#85), Ripper Roo (#95), Jaws of Darkness (#60), Whole Hog (#179), The Lost City (#178), Sunset Vista (#183), The Great Hall (#185) and both Tawna bonus rounds (#177).
Other
- Linux: the game no longer draws into a corner of the window with fractional display scaling (KDE Plasma Wayland, 175% etc.). (#187)
- The FPS toast is no longer off-centre for one frame after switching frame rate. (#182)
- Fixed a possible hang in the CD loader when a read had already finished. (#188, thanks @outusuke)
For contributors
- Wide Editor (
tools/WideEditor,editor.bat): a graphical editor to fix 16:9 scenery by hand. It can move, add and retexture polygons, build bridges between pieces, sculpt terrain, copy lighting and edit sky backdrops. Edits are saved per level inWideEdits/level_NN.jsonand reload live while the game runs.
📊 High FPS accuracy: 2.3 vs 2.4 vs original
Error compared to the original PS1 game, same inputs on both. The original game at 30 FPS is the reference, so its error is always 0. Lower is better.
| Test | FPS | Original (30 FPS) | 2.3 | 2.4 | Improvement |
|---|---|---|---|---|---|
| Steering, zig-zag (avg direction error) | 60 | 0° | 6.8° | 0.00° | −100% |
| 120 | 0° | 4.8° | 0.00° | −100% | |
| 144 | 0° | 4.7° | 0.8° | −83% | |
| Steering, quick left/right taps | 60 | 0° | 11.9° | 0.00° | −100% |
| 120 | 0° | 17.9° | 0.00° | −100% | |
| 144 | 0° | 16.7° | 4.0° | −76% | |
| Crash position, zig-zag (avg) | 60 | 0 cm | 38 cm | 5.4 cm | −86% |
| 120 | 0 cm | 47 cm | 4.0 cm | −91% | |
| 144 | 0 cm | 47 cm | 5.1 cm | −89% | |
| Crash position, 20 s of N. Sanity Beach (avg) | 60 | 0 cm | 47 cm | 17 cm | −63% |
| 120 | 0 cm | 62 cm | 16 cm | −74% | |
| 144 | 0 cm | 63 cm | 16 cm | −75% | |
| Control handed over after level intro | 60 / 120 | on time | 67 ms early | on time | −100% |
| Short walk overshoot (max) | 60 | 0 cm | 4 cm | 1.4 cm | −65% |
| 120 | 0 cm | 6 cm | 1.7 cm | −72% | |
| 144 | 0 cm | 5 cm | 1.8 cm | −64% | |
| Walk stop, stopping short (max) | 60 | 0 cm | 4 cm | 0.6 cm | −85% |
| 120 | 0 cm | 6 cm | 0.4 cm | −93% | |
| 144 | 0 cm | 6.9 cm | 1.3 cm | −81% | |
| Sunset Vista seesaw tilt (avg) | 60 | 0° | 17.2° | 1.4° | −92% |
| 120 | 0° | 10.4° | 0.00° | −100% | |
| 144 | 0° | 9.7° | 0.00° | −100% | |
| Sunset Vista drums, frames stuck walking in place | 60 | 0 | up to 51 | 0 | −100% |
| 120 | 0 | up to 21 | 0 | −100% | |
| 144 | 0 | up to 45 (then death) | 0 | −100% | |
| Jump height | 60 / 120 / 144 | 0% | +0.1…+0.8% | +0.1…+0.8% | already fixed in 2.1 |
| 30 FPS mode vs original | 30 | — | identical | identical | 0 differences, every object byte-for-byte |
In a 20-second run the remaining 16–17 cm comes mostly from the ravine fall and the respawn. Some differences are simply below one PS1 frame: at 144 FPS the game ticks every 7.08 frames, so an event can land one frame earlier or later.