Repository navigation
An unofficial homebrew port of the PS2 version of Need for Speed: Hot Pursuit 2 to the New Nintendo 3DS: the PS2 game's code, reverse-engineered from the retail disc and reimplemented in C. It plays from your own disc's files. No game data comes with it.
What's new in 1.0.3
A fix for a race that freezes. A player's game froze three times at the same roadblock in a level 3 chase. The most likely cause is a car whose position became an invalid number (a NaN, which the PS2's processor can never make). The game sorts its car list at the end of every physics step, and that sort never finished.
- The physics step now rounds the way the PS2 does. A number too big for a float stops at the largest one, as on the PS2, instead of becoming infinity and then a NaN.
- The car-list sort can no longer get stuck on a NaN.
- If a car's position or speed still goes bad, the car is put back where it last was, at the speed it had, and the race goes on.
- With
DebugLog 1, the log says which car and which part of the step it happened in. If the game stalls, the log says where the step was.
1.0.3 has the same title ID as 1.0.2, so the CIA installs over it. If you still have 1.0.0 or 1.0.1 installed, delete it in FBI (Titles) after installing this one. Those used an older title ID. Your saves and the game files on the SD card are not touched.
What you need
- A New 3DS, New 3DS XL or New 2DS XL with custom firmware (Luma3DS) and FBI. An Old 3DS or 2DS shows a message at boot and stops.
- Your own PS2 disc of Need for Speed: Hot Pursuit 2. It was made and tested with SLES-50731, the PAL version. Other discs should extract correctly, but the game hasn't been tested with their files.
- About 2.9 GB free on the SD card, and a computer with Python 3.8 or newer.
The README explains how to put the disc's files on the SD card.
Files
| File | For | SHA-256 |
|---|---|---|
NFSHP2-3DS.cia |
install with FBI, start from the HOME Menu | d494b03583adea3a6806ecdee63e33a52c7e7e3fb315e80d31c38c1e617cc5e2 |
NFSHP2-3DS.3dsx |
the Homebrew Launcher | f8105aa72022803bee8fb37e42aa6d3eee6bb1808d035da1a7c62cdef8e0dead |
Tested in the Azahar emulator only. The build boots and the frontend works. A test build forced bad numbers into an AI car and a traffic car; both cars were put back and the race kept running at 30 FPS. The freeze itself never happened in Azahar, so the fix hasn't been checked against it, and this CIA hasn't been installed on a real 3DS yet. If a race still freezes for you, add DebugLog 1 to sdmc:/nfshp2_config.txt, play until it happens, and attach sdmc:/nfshp2_debug.txt to an issue.
Known issues
- On Ancient Ruins, at the curb turn by the cones, the road can vanish for a frame or two.
- The frame rate drops below 30 in the heaviest places: the fire on Coastal Parklands, the end of Desert Heat, and by some roadblocks.
- On Coastal Parklands, the low stone wall before the tunnel can look blocky and flicker when seen side-on.
- Attract mode doesn't play the disc's demo replays: on the 3DS they leave the PS2's path after one frame, so it plays its AI race demo instead.
DemoReplays 1in the config file turns them back on. - In Local Wireless, the consoles can fall out of step just after a player finishes (two races in eight in testing): that car, driven by the CPU from the finish on, can end up in a different place on each console.
- In French, the LOADING screen and the Need for Speed logo keep their English art.
- The language screen at boot appears at once, without the PS2's slide-in.
A fan project, not made, endorsed or supported by Electronic Arts. Need for Speed Hot Pursuit 2 and Need for Speed are Electronic Arts' trademarks. The port's own code is under the GPL-3.0.