“Need For Speed III: Hot Pursuit” is the first 3D game of my life. When I've seen the game first time, I was extremely amazed because I'd never seen 3D games before. It was in 2000. I can't count hours which I've spent in the Split Screen mode with my cousin. And the music... it's so awesome, so I'd recorded it on an audio cassette, and listened it hundreds of times.

And now, years later, I had tried to play this game. But the game refused to run on modern hardware. So, I had tried to investigate how to fix it. I had a little carried away by this. As the result I've created an impressive patch. 25000+ lines of assembly code, 150+ days of reverse-engineering and coding, 40 sheets of A4 paper were covered with writing during development, a huge list of changes...

Hometown in widescreen resolution

Key Features

Full widescreen and HD resolutions support. You can easily use resolutions like 1920×1200. Now the game supports all aspect ratios from the 5:4 to 16:9, inclusive 4:3 and 16:10. HUD will be adopted automatically for every aspect ratio.

Improved graphics. No more cars with non-rotating wheels, better textures and models for other's cars (original game reduces size of textures even on maximum graphics settings), better graphics in the rear view, etc.

Fog effect and light beams support in DirectX 6/7 (they were exclusive effects for the 3dfx Voodoo).

Portability. All system settings are loaded from the ini file. No more registry!

Compatibility. Most problems with modern Windows were fixed. Full support of multi-core processors. Original game can work properly only on one core. This change dramatically improves performance of the nGlide and the dgVoodoo.

Alt+Tab support. You can safely minimize the game when nGlide or dgVoodoo driver is used.

Built-in screenshoter. Just press Print Screen key, and a screenshot will be saved into the screenshots subdirectory in the JPG/PNG/BMP format.

Improved keyboard support in the menu. Now it is much more consistent. You can also use the Tab and Shift+Tab to switch between elements.

Better modding abilities. The game doesn't crash when high-poly cars are used. Also it possible to use huge textures up to 2048×2048 (original limit was 256×256).

Optimizations. 10 times faster gameplay loading on modern systems. To skip loading animation just press any key.

Bugfixes. More than 200 changes at all!

Screenshots

Before and after: cars have better textures, side mirrors don't disappear

How to install

Copy FEDATA and GAMEDATA directories from the NFS3 CD to a new empty directory.

Download a full game bundle

The game is abandonware and you can't buy it anymore. So, I created a full bundle which includes all original cars, all official supported languages, and preinstalled Modern Patch v1.5.3. You can download it using this torrent file. If you wish to update it to the latest Modern Patch, just extract contents of the nfs3_modern_patch.7z into the game directory with replacement of files.

Find other NFS3 fans for the network games in our Telegram group chat!

If you are a server, ports 1030 and 9803 have to be accessible from the network, so you have to add the appropriate permit rule in your firewall for the nfs3.exe and configure a port forwarding properly. If you're a client, port forwarding isn't required. If you wish to find someone who wants to play NFS3 with you, join this Telegram group chat.

Rewriting of the code which uses the mouse cursor in the exclusive mode. The game will use the default system behavior of the mouse cursor. It will solve many small problems with the mouse cursor in this game. For example, your cursor will be able to leave the window of the game (when it works in a window) without pressing any keys. Also it will solve problems with mouse lagging on some computers.

Solving of the problems with loading of ghost and replay files from other players (when the other player has a little bit different set of cars in his game).

An optional ability to change structure of the game directories using the ini file. It may be useful for modding. It will be more flexible than the install.win from the original versions. For example, you will be able to move all save files to some separate directory (e.g. "savedata").

An optional ability to load a thrash driver from the root directory, as it was in the original version of the game.

These features are planned for the v1.6.1, v1.6.2 and v1.6.3. A beta version is here.

499 Comments

Hello, I am (was very fond of nfs3 and was happy to stumble upon your great effort!
I have immediately tried, but no matter what "trashdriver" I set in nfs3.ini, intereaction with menus is perfect all resolution seem to be available, but when I try to start a race, the red bar shown in the bottom of the race loading screen goes from left to right almost fully, but just when it is close to finishing and the interactive game environment should be displayed, the bar and the loading screen freeze totally, and I have to close the application with the task manager. Where am I wrong????
I am trying on a windows 10 modern PC, and I have tried to run the game as is and in compatibility modes (win98, vista, etc), but the problem is always there. Before loosing all hopes, do you have any hint or suggestion?
Thanks again

What I think is that the aspect ratio (proportions of cars) are not correct. The Diablo SV looks too compressed. Not stretched, compressed. When you scale a native 4:3 image to 16:9 it's stretched. But here it looks like a native 16:10 image scaled to 4:3 causing too Short and compressed cars. This has nothing to do with nGlide graphics settings or so. It's the wise the game (or the patch) render objects.

Lolita, if the Diablo looks like on this screenshot, it is rendered properly. Models of the Diablo SV are a bit different in NFS3 and NFS4. For some reason, the developers squeezed it a bit, as the result the taillights look oval, but they should be round, like in the NFS3. So, if the taillights are not oval in the NFS3, the model is rendered properly.

And for me it also looks like the lights aren't even round in the game. They are minimal squeezed and this makes the difference in the whole wide of the car. 1 mm lights squeeze = 1 cm car squeeze. It's simple mathematik :-)

Okay, you say it's the way how the 3D model is created. But why not improve that? We know the original 3D model is not perfect, so let's make it perfect with this patch. This is very important and a major thing to improve for me, because I'm always looking at the car's rear when I drive and it doesn't feel like a real car. Look, I stretched the original screenshot from 1280x720 to 1440x720 and now the back lights are round and the proportions are more like a real Diablo SV. This is how it should look like on 1280x720 or any other resolution.

This patch is not about changing geometry of tracks or cars. It is about patching its code. There are a lot of other projects which modify cars and tracks, but this project is about preserving this part as is.

Patching means to correct things. And this is something that needs a correction. I'm now playing with thrash driver "dgvoodoo" and set a custom resolution 3240x2160 which is a 1:1,5 aspect ratio. Closer on 4:3 than on 16:9, but:
+ Anti-Aliasing
+ Full cockpit view (no cuts on the bottom)
+ High res cars in main menu
+ Wider cars, but not too wide

All that is not available in "nglide". The only benefit of nglide is corrected widescreen FOV Hor+
For both I disabled fog (it makes Hometown too bright) and I set the nglide gamma from 5 to 3 (this was also too bright).

I started also a project of making all cars more acuarate, started with both lambos, because those had the worse proportioned models. I have the three main class B, the Diablo, and to be honest I abandoned the project till yesterday. I had a brand new Warrior PTO E/2 from original TNFS finishing details.

By the way, veg, is there any chance that you could get a version of the patch that loads directories from an .ini file? I know that you suspended your work on this thing, but perhaps just the directories stuff wouldn't be too much of a hassle to get working (speaking from total ignorance).

I been trying for 3 hours to run game at 1920x1080p and nothing worked, installed all of the paches as you provide them, tryed to change nfs3.ini, changing ingame resolution doesn't do anything... any other ideas? PLZ HELP

Mato556, try my setupMP here http://xcx.4fan.cz/setup-for-modern-packs/ set nglide as thrash driver and then set desktop resolution in nglide tab... with nglide ingame resolution setting set to its defaults... I would recommend using clean install of the patch. Also we can help you on https://www.needforspeed3.racing discord, over there is also pinned clean unpack-n-play patched game ;)

Mato556, it is not clear what is your issue. Do you mean that the menus don't work at 1920×1080? 1920×1080 will work during gameplay only. All the menus are hardcoded to be 640×480. If 1920×1080 does not work during gameplay, how it looks like? Can you choose this resolution in the game settings? Have you tried to select different thrash drivers in the nfs3.ini?

Walter, unfortunately, some other significant changes in my life are happening now, so no time for the project. It is in backlog. One day I'll definitely do it, the question is "when" =)

I found an issue in the dgVoodoo thrash driver. You added the Napalm Glide3.dll and this one will cause light flickering at night. So I replaced it with the standard Glide3.dll from the latest version and it works. So for the next release you should fix the Napalm dll or revert the standard dll back.

For dgVoodoo you should set in game resolution to 640x480 and use the dgVoodoo config tool to set the resolution you want to play.
For nGlide you have to set resolution in game.

@beterhans
Thanks, the Diablo model of your patch is more accurate, but has less visual quality than the original from the game. And I don't want to have all cars and tracks unlocked by default - this is for what I want to play the career mode. Your mod is nice to have as a mod, but I would not have it as a default feature.

Here, you can have my better Diablo to try it too. It uses the default texture, it just has higher detail and corrected shape (it's modeled to match forza's diablo, and those cars were 3D scanned so you can't get more accuarate than that). Police version comes with multiple skins selectable from VIV file (so you have to open it with any VIV manager), including a stealth/template, redrock ridge and PSX interceptor.

Medium and Low qualities were taken from original High and Medium, respectively, and the shapes were also modified to match better the proportions of the car.

If y'all want to play NFS3 on the latest version of nGlide, you can just install nGlide and start NFS3 with the "glide3x" driver instead. The system-installed version of nGlide will pick that up and run with it.

It will show this error if you didn't extract the drivers directory from the modern patch archive into your game directory, or if you changed the ThrashDriver setting in the nfs3.ini to an invalid value.

First of all thanks for your great work!! I have to question if you have changed the difficulty of the game, in tournament mode, even in beginner I feel like the oponents are very tough, or maybe im just a little bit rusty hahaha, Greetings from Chile ;)

First thing I wanna say is VEG, what you've done here is absolutely incredible. This was the first need for speed game my parents got me when I was just 6 years old (I'm 26 now). And being able to play it today on Windows 10 and optimized to a point that it can run smooth as butter with a full grid of high poly cars brings me such an overload of nostalgia. What you've done gave me the inspiration to design my own car and put it into this game without worry of going overboard on the amount of polygons I use in my design. I do have a question though. EA provided 4 sound files within each car's CAR.VIV file. CAR.BNK, SCAR.BNK, OCAR.BNK, and OCARD.BNK. This is what I know about these files:

CAR.BNK = The user's car sound in single player mode
SCAR.BNK = The user's car sound in split screen mode
OCAR.BNK = The opponent's car sound in single player and split screen mode

Do you know what OCARD.BNK is used for? I've done all sorts of testing by providing unique sounds for each of these files for my car and I've never heard the OCARD.BNK sound in any scenario. I'm at my wits end. I've pretty much looked over every forum from every need for speed modding website and cannot find any mention of what OCARD.BNK is used for.

As far as I remember, the files with "d" at the end are not used in normal audio mode. They are used when EAX mode was enabled (on audio cards from Creative). Unfortunately, this mode is not available on modern OS at all. But you can use some wrappers to enable it (Creative ALchemy or IndirectSound).

Like many others, I have to give my big thanks to you. Being able to fire up NFS3 in Wine after those ~20 years is amazing.
I can hardly imagine all the time and effort that went into this, really, thank you mister!

Software, and fully updated nGlide, dgVoodoo2 renderers are all working just fine in Wine. nGlide is probalby the most logical one as it also has direct Vulkan support in its backend (although the DirectX one works just fine and is actually faster in Wine), but I still incline to use the software renderer. It works wonderfully and the atmosphere of that one is still like I remember it.
Regarding the software renderer, is there a possibility that it runs the game directly in the desired resolution, so that it uses that resolution in menu as well? It seems to apply it only for the race. It's not a biggie, I use virtual desktop settings in Wine so that the race matches my deskop res (1920x1200) in an emulated fullscreen and it only goes to the small 640x480 window in menu. Ironically enough, I guess it can be a bit more of a concern for Windows users where it will really swap the monitor resolution between menu and races.

Anyway, again big thanks and I hope you're doing fine in all this Corona situation.

Unfortunately, menu can use 640x480 only. This resolution is hardcoded and can't be changed. A wrapper (like dgVoodoo) can stretch it. You can try to mix software renderer and dgVoodoo, just use the ddraw.dll wrapper for the software renderer.

I have some interesting find I think.
When testing some additional cars, I created the folder named 'P959'. Well, nothing strange about that right. Note the capital 'P'. I use Linux and MC sorts capitals with higher priority so I can locate them quickly. Wine doesn't care, so no problem. Well, after running the game, that car wasn't in the list. No serial # issue, it would complain if that was the case.
So I exited the game and to my a bit of a shock tat folder was gone. I thought, alright, maybe I created it somewhere else or something. Although that's unlikely. So I did the same and created that folder again. Well, same thing - no car in the list of available cars. Mystery! So I created new folder, now named 'p959' No capital P in this case. Fsck me, but car is there!
Right, that is fun. After testing a bit more I found out, that if any folder in the carmodel folder begins with caipal P followed by at least 3 numbers, game will silently delete it..
If the folder name is e.g. P95g, no problem. if it is P123, it will get erased. Same for P1234.
I tried other capitals, but no all of them. E.g. F959 is not a problem, this folder will not be deleted by the game.
Yeah, it's fun. ;)

So I wonder if you encountered that problem and if so, if you know what is the cause? I tested it in Win 8.1 on that MB oldie I have and it happens there too, so it's not a Wine issue. It's also not related to any specific viv in that folder, I tried different ones to put there and the folder gets reliably deleted by the game anyway.

CallmeBK, no, the game doesn't provide any APIs. But why would you use it?

MaraST78, oh, interesting finding. Thank you! I even found the code which does it. Unfortunately, there is nothing to add to what you have already discovered. The code just searches for directories with names like P123 and removes them with all contents. It removes such directories before building car list. I have no any idea why it does it, but it must have some story behind it.

UPD. I've investigated it a bit more. It seems that it is cleanup code. I found the code which creates cars with such directory names, and it is called from the network game code. It is somehow related to the ./fedata/plac/car.viv. Probably, it was planned as a placeholder car for network games when some players use non-standard cars. Didn't investigate it further. I guess it is some unfinished part of the game.

That was quick VEG, thx for investigating. I will make another note about NFS3 so when I run it 20 years from now I'm not surprised about what happens. :D

It's perhaps a rhetorical question, but I'm sure EA knows about your patch and I wonder if they would one day just release the source of NFS3. Commercial potential equals zero I guess these days anyway. Unless they don't plan on some GOG re-release or anything.
There would be a lot of interest I think and running it natively on *nixes on SDL5 in 2038 would be awesome!
Yeah, it's just a small wish, but what would we be w/o them. ;)

VEG, I am trying to get my car to appear as though it is front wheel drive. I've basically proven all my other ideas to be impossible and this was my last attempt. It might sound a little wild, but here was my thought:

In high/medium car detail, nfs 3 v1.6.1 shows the high body and high wheel models. In low car detail, the game shows the medium body and medium wheel models. I was thinking of designing my car so that when in high/medium car detail mode, the front wheels are in the back and the rear wheels are in the front. When in low detail mode, the car model would be proper (front wheels in front, rear wheels in back). I would make an autohotkey script to listen for inputs on my keyboard/controller. When the autohotkey script would see that I am turning my car, it would change the detail level of the game so that the game would show the wheels turning properly.

My one concern was how smoothly this would actually work in the game. When running the game and switching the car detail level while in a race (after pausing), there is no delay and everything happens so smoothly. This made me think that my idea wouldn't cause any problems.

To me it looks like most EA cars are a bit faster then they should be. Of course, they are insanely fast in cornering situations as that is just the way NFS3 is designed, but acceleration and sometimes top speed wise, they are a bit fast too, mostly. Falcon is good for shopping though. :D
I tried many cars out there, but frankly, only very few are ones I kept. OOB only the R33 from giulliano L, that's awesome.
Then there are many of those high-poly ones. They may be often quite accurate, but just don't fit the NFS3 engine at all I think. They seem like they don't belong. Then many have totally wrong carp, or Ferrari having dash from Viper and sound from something like a vacuum cleaner :)
But NFS wizard still works fine and combining various elements plus proper carp can lead to some awesome car afterwards.
E.g. Eric Arroyo's F50 model is not accurate, but in some sense it's almost sexy really. Put proper F50 sound, carp based on NFS4's F50 plus necessary changes to torque curve and some other elements and replace the model's rims too, as they were just too big and a beauty is born.
I can't help it, but his Viper is the same - not accurate, but very elegant proportions. If I compare his model to all those high poly ones, it's a winner for me.
So I only wonder, what is your favorite among those addon cars VEG? If you want to share it of course. ;)

Hehe, I try not tcompete in full pack races much, as CPU opponnents seem to be made of a rock. Otoh, they just touch me and I go to the nearest wall. ;)
I enjoy having the small on on one, especially in HP mode where I mkde the CPU to be the one cops want first, then I help them get him :D