WIP NR2003 on Linux testing

Mystical

Test Rank
Staff member
Admin
Joined
May 28, 2022
Posts
818
Reaction score
562
Points
93
Website
adracingdesigns.com
Originally I made this post in the Tip GIthub I found, but decided I should probabaly seperate my posts from that thread so the focus is not lost on his tutorial and use my own in general discussion area since I'm just playing around. Original thread: https://www.adrd-forums.net/index/threads/anthonymendezs-guide-to-running-nr2003-on-linux.1376/

So I got around to trying NR2003 on Linux, specifically Fedora 43 KDE Plasma as I think this will be the OS I switch to if I ultimately decide to ditch Windows for good. I've been using my older pc that I built back in 2015 and upgraded a bit more in 2017 to run Linux tests on:

(ignore that the NR2003.exe desktop is a weird icon, I didn't bother adding manual one to match the game's exe)

Screenshot_20251116_042114.png



The first thing I did was just try to install the base game + the two offical 1.2.0.1 patches and well ... the game not only ran but it ran well out of the box with all settings on max. I noticed slight black shadow shading in the distance but otherwise nothing egregious. I used the base Wine and compatibility settings in Lutris not playing around with any config stuff:

Screenshot_20251116_031331.png

Screenshot_20251116_031925.png

Screenshot_20251116_032257.png


Of course the real question is if I really LOAD the game back with all my mods and graphics enhancements does the game still work? and well .... yes 😊

Screenshot_20251116_040521.png

Screenshot_20251116_041641.png


I legit just copied over my windows pc version of the game I installed and copied all the folders over then overwrote the config + papy_ai.ini files. In my understanding I didn't need to patch the original NOCD exe to 4GB OR include the d38 to d39 dll becasue Lutris/Bottles/Wine ect does this emulation and can run 4GB on 32bit environments right out of the box.

Also if you notice in the screenshots I'm not capped at the 60fps like anthonymendez's tutorial said he was. I'm guessing as the years passed emulation got better or my pc had the display drivers settings correct so its not capped at a monitor being 60hz which i heard Linux could do.

One final test I did is if I use a modified exe such as Melon's which i cannot part which which allows a lot of cool features does the game still run? ... yes

Screenshot_20251116_050133.png

I kept it in titlebar mode just to show this is no trick and I did run this on a Linux machine, Melon's exe's which allows 46 AI + you in a field does infact work still on Linux 😊




This is just the start before I make my own guide for the forum though. I have a LOT of testing to do, for example:

  • Can you run the game and also have better cautions.exe, camhack.exe, EnhancedAI.exe etc also running and hooking into the game. I know you can run multiple exe's in the same prefix but not tried it yet. I did try running camhack, EnhancedAI.exe and 3do.exe on a different distro separately earlier last week and they DID run so I don't think it will be an issue having them from to NR2003 from my research
  • Test peripherals like a controller or racing wheel with a hotkey manager ... I bet this will work but you never know
  • Play around with Lutris' configuration settings for graphics and the multiple other game runners that exist that may allow even better FPS and graphical fixes

If I finish all my testing for the 'root' game then I plan to move onto all of NR2003's dev tools like can I use sandbox, all the other cool programs editors people made ... could I even get dosbox working to run the n2003lyt.exe to edit UI etc. I think if the main game works and since sandbox runs a similar exe architecture it shouldn't be an issue but going to test it anyways.


One thing I have to remind myself is I did this test on my older machine too which its an older i7 core. My current pc has a i9 and the single core clock speed is faster so I can imagine NR2003 would run slightly better fps wise on a new cpu that has good single core speeds which NR2003 relies on ... especially since Linux is such a lightweight OS compared to Windows less resources used on that single core which NR2003 can use.
 
Last edited:
The Linux quest continues and with really good news. I was able to hook every possible EXE to the NR2003.exe I know of (except for one, we'll get to that later):

For those that know, this first screen I'm looking back using one of my favorite hook tools, Camhack, it works :)

Screenshot_20251118_194821.png


and for the big one, as you can see here every possible EXE running and hooked into NR2003:

Screenshot_20251118_195214.png

I even threw a caution after green using better cautions to confirm it really was hooked. Also better cautions automatically closes if I could not find the NR2003.exe so this is great to see. With the AI Enhanced tool as well you can see I kept the popup confirming it loaded Talladega's LP's. I didn't spend extra time adjusting the LP line to see but I trust at this point it works if all of them launch and Camhack and better cautions responds to the game just as I would expect playing it on windows.

The ONLY tool I did get working (yet) was Tyler's FreeCam. I can actually get it running outside of the wine prefix so I suspect since I made this wine prefix for the game 32 bit instead of 64 bit thats why it cannot launch becasue I believe freecam uses a form of command prompt windows and it probably needs the 64 bit binaries.

Since we all know NR2003 runs in 64 bit ok I'll duplicate later for a future test this prefix to 64 bit environment and see if FreeCam then hooks into the game. I don't doubt I can find a way at this point after everything else worked so seamlessly lol

One other cool thing that will make life easier is you can indeed create a bat file with a delay to launch all these EXE hooks after you launch NR2003 so you won't have to launch each one at a time every time you start the game up. This is something I will definitely document in my future Linux tutorial as well.

Still some more things to confirm:

  • Can I fix the weird black rendering in the distance and the edges of the mirror outside the bounding box frame, they are not deal breakers for me but I'm sure with some extra config changes as Lutris has so many options I can get the graphical errors fixed
  • Test peripherals like a controller or racing wheel with a hotkey manager ... I bet this will work but you never know
  • Run more of the external NR2003 tools like sandbox, so far I've only tested wimip2 opening mips and 3dxed to preview a 3do model. I ultimately will make a simple model on linux and see if I can create it fully in Linux environment, the big one can I compile with make3do.

Lastly I haven't talked about it but even on this older machine performance is fine, Lutris and running all the NR2003 stuff was using about 1GB ram and the CPU was like 5% or less. Same bottleneck as on windows where NR2003 can crash if you have too high res stuff up close in replay mode as the game can only utilize a single CPU core but thats not Linux' fault, just an expected game limitation easily fixed by lowering car quality in replay mode or editing the cam file to be a bit less zoomed in.



If anyone has any other things I should test let me know. I know I'm not the first to run NR2003 in Linux but not sure if other used things like the exe hooks or actually tried doing any mod creation. I really want the whole thing to be just as it is on windows really before I an conclude my tests lol
 
I have run it a couple of different times under various Linux distros just using x64 Wine. It ran fine and in some ways better with less errors. I could also run tester~05.exe to change the exe.

It has been a couple of years though since I done it.

Interestingly I could also run the "old" 5 MB 1.2.0.1 nr2003.exe, like what came with Nr2007 fan edition fine.
 
I have run it a couple of different times under various Linux distros just using x64 Wine. It ran fine and in some ways better with less errors. I could also run tester~05.exe to change the exe.

It has been a couple of years though since I done it.

Interestingly I could also run the "old" 5 MB 1.2.0.1 nr2003.exe, like what came with Nr2007 fan edition fine.

Thats cool, yeah I wanted to see if I could hook the game up to the GNL TV telemetry to have the standings in a web browser in real time as well.

I figured the NR game and it components would work. I don't know if anyone has done actual NR2003 modding on Linux so I want to try all the tools like sandbox as well. I assume sandbox should work as it runs off a similar engine of NR2003.exe but you never know.

It definitely seems Linux has progressed a lot more with game compatibility and accessibility so its made me more inclined to leave windows for good if my creative tools mostly work as well.

EDIT: I need to post my latest developments but I fixed the black shadow rendering in the distance and the mirror not respecting the mirror portal outline as well. I'll make a post on that soon.
 
Last edited:
Its on my list to try out, I currently was focusing on the game and programs that run alongside it first. Then I plan to test out the dev tools next.
 
More good news on the tooling side for NR2003, Sandbox works:

Screenshot_20251123_025955.png

it actually runs too good compared to the windows version:

Screenshot_20251123_030223.png

Using Lutris I had to cap it to 120fps. While it won't damage a GPU generally you don't want unlimited fps uncapped as it just makes your GPU work harder. On windows even though its my newer machine with more powerful gpu and cpu sandbox doesn't really go beyond 150 fps uncapped but on this older machine Sandbox is killing it haha.

I only ran basic tests like re-saving the ptf, opening all modes, and moving around the 3d view and clicking on a few sections to make sure the editor bar loads the data. It took me a bit of time to configure the Lutris container at first as the graphical 3D view in Sandbox was not rendering correct but now that I've learn more how to configure things it would be very quick to replicate. Since Sandbox has to be installed running it inside the Lutris prefix gives me much more control for the configuration settings and it allowed me to make ti work. I can still create a desktop shortcut and have Lutris minimized is the tray and Sandbox can run just like any other program.

Then I moved onto to some other core NR2003 tools and they all opened just double clicking the exe, a few need some extra DLLs in their folder but generally you can just download the program from the web and run it like you would on windows:


Screenshot_20251123_031800.png

Screenshot_20251123_033718.png

and now a big one, make3do:

Screenshot_20251123_040646.png

I couldn't believe running the command the first time and it spit out the working 3do lol, I thought for sure this would be a huge pain tog et working or I needed to run it in Lutris container but nope. Similar to window I can create a shell script on linux to automate the creation process faster so I wouldn't have to open Linux's Konsole every time and type this long command to generate a 3do over and over again.

I guess I assumed Linux was just drastically different but its compatibility and translations of these exe's is quite impressive.

I still have a bit more to test around but overall I'd say yes, you could generally switch to Linux and do 'NR2003 things' pretty easily once you understand wine, lutris, and how to debug and find out what DLL or components its missing to make it run.

and now the final boss which I am still battling over:

Screenshot_20251123_040748.png

I don't know if I can actually get 3ds Max 8 to work but already the last few days made several strides forward. At first I couldn't get it to install, then I could, then when I got it installing in 64bit environment the installation would fail halfway through. Now I'm past installation in a 32bit environment and hanging on the splash screen.

I don't know if I can truly get 3DS Max 8 to work on linux as I know some windows programs will simply not work but I'm gunna exhaust every debug and config I can to see if I can get it working. This is an older app so hoping since so much has advanced I can find the perfect combo to get it to load yp.

Blender is great for basic 3do creation with Burnout's pas exporter but we still sadly rely on 3ds max for the major mod creation. Worst case I will just run 3ds max in a virtual machine (or just have a dedicated windows pc for the few windows apps I need or if WinBoat gets better use that) but still happy all the NR2003 tools pretty much work.
 
My brother-in-law switched to linux after he lost Windows 10 support and couldn't get Windows 11 without going through a lot. He seems to like it so far but yeah, like this he has cross fingers every time he tries to load up a program he used to run on windows
 
My brother-in-law switched to linux after he lost Windows 10 support and couldn't get Windows 11 without going through a lot. He seems to like it so far but yeah, like this he has cross fingers every time he tries to load up a program he used to run on windows

Yeah I'm really only crossing my fingers the first time since I don't think any of these except for the core NR2003 were ever tested on Linux. But now that I know they work I have no worries at all. Since Wine/Lutris have set versions if you know it works on one of them you won't ever lose that if a future version somehow breaks something. A lot of NR2003's tools are very basic thankfully so majority can translate just double clicking the exe as usual and you wouldn't even know it was a Linux machine lol

I am definitely going to eventually switch to Linux and ditch windows 11 and onward for good.

I tested a lot of my other non-NR2003 programs and the few that didn't work, Linux had something baked in already to replace it or a cool alternative I can use.
 
I wonder if my tools work on Linux. I think defgen and inspect3do will work just fine, but I'm not sure about Sandbox 2.0. Actually, for defgen and inspect3do, I could probably easily make a native Linux build. Don't know how I would do that with Sandbox 2.0.

I've noticed that Sandbox doesn't appear to have the black shading anywhere. It renders using OpenGL. Have you noticed a difference in NR2003 between using the DirectX renderer vs the OpenGL renderer?

Also, have you tested the force feedback in game yet? That's a pretty important component to sim racing.
 
Last edited:
Force Feedback worked for me as soon as i plugged it in with a driving force gt as well as a Logitechg29. Wheel support is right in the kernel. The only issue I had was finding and installing software to manage wheel settings (centering strength/buttons/etc). I had found and used two, one was called Oversteer but I don't remember what the other was called. Once the software was installed it was very straight forward to set the wheel up including wheel buttons. Honestly the Logitech windows software has become so bloated it really was easier and straight forward under Linux.

I've also had nr2003 running on opengl and it worked fine as directx had issues with my setup at the time, again that was 6-7 years ago so I would assume things are better now.

I was using wine by itself with no front end (Lutris/proton)

Heh, I had a raspberry pi 4b running nr2003, Admittedly slow (15 fps out of the box) with box 86/64 and wine. I never tried to optimize as I did not have the time. But it worked and would probably have worked for a nr2003 game server.
 
Blender is great for basic 3do creation with Burnout's pas exporter but we still sadly rely on 3ds max for the major mod creation. Worst case I will just run 3ds max in a virtual machine (or just have a dedicated windows pc for the few windows apps I need or if WinBoat gets better use that) but still happy all the NR2003 tools pretty much work.
What we need is someone who knows how to make blender plugins so that we can export PAS files from Blender.
 
Okay, I just tested my Sandbox 2 builds on Linux (Zorin OS). It did not run.

Does your app rely on any microsoft c++ or .net packages like Papy's Sandbox does? You may need to use winetricks within your Lutris prefix to allow it to run. I have not got to try Sandbox 2 out myself. but will when I have time, its on my list. So far I did all my tests on Fedora 43, I wiped the pc and successfully got NR2003 and the tools back up and running on CachyOS.where I'm continuing testing.

You can also let the app crash when running in Lutris in debug mode to investigate the logs where the stop occurs, its how I isolated some of the NR tools needing certain dll's to work properly. Once I knew what they needed running them on a fresh linux install was much quicker. I plan to make a detailed Linux NR2003 on-boarding setup guide once I complete all the testing I want. That way nobody else will have to waste hours figuring why some of the NR tools don't run as expected when clicking the exe.

I don't think I can get it working as its a more complex program but still seeing if I can get 3ds max 8 launched too.
 
Sandbox 2 uses MFC and Direct3D 11, but no .NET packages. The original Sandbox also doesn't use any .NET packages, but does use MFC. I'm pretty sure Sandbox 2 uses the MSVC++ libraries.

I'm not that familiar with getting Linux programs to run on Linux, so it'll take me some time to figure out what I need. I'm currently trying to run the software under WINE using Bottles and Winetricks. I'm also checking out Lutris for the first time.
 
Yeah when I put the Msvbvm60.dll in the Sandbox folder directory it make Sandbox load so if Sandbox 2 relies on similar dll that will make it load. Usually wine will check for the dll's in the system32 or syswow64 folder it builds but I've found it will prioritize first any dlls in the same folder as the exe if the exe is looking for them and it make loading the program 100% consistent for me.
 
@TChapman500 I got it working, I just used winetricks in my Lutris prefix to make sure the mfcm140.dll was installed in systemwow64/system32:

Screenshot_20251203_174519.png

Proof its working on linux:

Screenshot_20251203_174645.png


I was not able to test further though, I don;t know how to open an existing track, I seemed to only have option to open a sandbox 2.0 project which I don't have any (obviously lol). The program opens with no issues so far through, very responsive.
 
Right now, Sandbox 2 is a bare bones application that I've temporarily set aside for other projects. I think the build I gave you can actually save and load a project file. I'll try out that DLL tip that you shared and see what happens. What other DLLs do you have on your winetricks prefix?
 
Right now, Sandbox 2 is a bare bones application that I've temporarily set aside for other projects. I think the build I gave you can actually save and load a project file. I'll try out that DLL tip that you shared and see what happens. What other DLLs do you have on your winetricks prefix?

Yeah when I try to choose a track ptf it only gives me option for Sandbox 2 project file. Import icon appears greyed out too.

For this wine prefix it was just a default 64bit one and I installed the mfcm140.dll and it loaded properly then when I hit 'play' in Lutris. The program might actually launch without the need for Lutris and just wine but not tried it that way yet.
 
Yeah when I try to choose a track ptf it only gives me option for Sandbox 2 project file. Import icon appears greyed out too.
That'll change soon after I resume work on that project.
For this wine prefix it was just a default 64bit one and I installed the mfcm140.dll and it loaded properly then when I hit 'play' in Lutris. The program might actually launch without the need for Lutris and just wine but not tried it that way yet.
I noticed when I tried to install mfcm140.dll that it wouldn't install on the 32-bit prefix. For some reason, I thought that I wouldn't need a 64-bit prefix because all of the programs I'm trying to run right now are 32-bit. I see now that I'm wrong.

I also did a bit of testing yesterday porting one of my tools to Linux. I learned that Visual Studio might as well have its own version of C++ as my code threw 800+ compile errors. Once I fixed those, I immediately got a segmentation fault when I tried to run the native Linux binary.
 
I haven't posted in here for over a month and not due to lack of giving up Linux or I 'finished' my NR2003 testing on Linux, quite the opposite exactly. During my Christmas vacation built my new pc and fully migrated to Linux. I went with CachyOS and while most distros are the same at the end of the day with the kernel being the same underlying system oh boy did I not realize just how finely tuned CachyOS is and how it makes increasing NR2003's performance unbelievable.

For my first few weeks on Linux and re-installing NR2003 in Lutris I was reaching pretty good fps on my 5120x1440 monitor (same one I played NR2003 o my win11 machine with). The good 100+ on all track with my ICR mod except for the performance killer tracks like modded Daytona and Talladega where at this screen-size a usual 30-40 fps on the frontstretch is expected. In even worse cases with the sun solar effect on a temporary 17-22fps drop if you don't have NR2003 tuned right for this monitor size.

I could just lower the game's resolution and upscale it back to 5120x1440 or just simply have the game in a 1920x1080 window and call it a day but no, I'm greedy and was determined to see if I could achieve even bigger gains with no compromise and well ... tonight I found how to truly unlock NR2003 to levels the base windows version with 4gb patch and the dx8 dll's can't even compare:

Before I show results these are the WORST fps' shown below. On any other track thats not beefed up like a Daytona or Talladega with my ICR mod and all graphics on I peg the game between100-144fps easily (I purposefully peg it to 144 because extra frames above my monitor refresh rate is pointless)

~70 FPS coming to the frontstrech and the solar effects in play with a full field


Screenshot_20260121_213618.png

~90-100 fps on the frontstrech


Screenshot_20260121_213649.png


100+ fps anywhere else in the middle of the pack

Screenshot_20260121_213738.png


How was I able to go from averaging 70 to usual 30-40 in bad spots? Well on CachyOS you can disable this thing called split lock, I don't know the whole technical mumbo jumb but apparently with older games when split lock is enabled it prevents older games like NR2003 from 'cheating' the CPU and taking more that it should. Its apparently a preventative method and you can have split lock only disabled when NR203 is launched and re-enabled once closed.

Then when you combine it with this command 'game-perfromance' you get the FULL boost. This command is special to CachyOS and apparently why the distro is claimed to be so snappy and fast. I didn't realize I can use this for all my apps too as its not really game specific and wow, programs were already quick but now they open even faster and do things even faster. Its literally insane like I said. I even applied game performance mode to Sandbox and have it capping at 144fps even when I look in certain directions on a big track it could tank to 40fps.

Just an example on other tracks if I unlock my framerate, it can easily go above 144 lol
Screenshot_20260122_003512.png
Screenshot_20260122_003930.png

While I have the game, all my NR2003 hooks, and most tools installed like Sandbox I haven't gotten back to 'work' yet. I am still fine tuning stuff and also will be planning to make a NR2003 Linux guide so other can possibly gain as much performance I've been able to. I never thought I'd be able to see NR2003 on really modded tracks with high end mods on a super large monitor run so good with fps but here we are. This is honestly as good as it can get other than we get a 64bit exe where the vert count limit could be increased, that would fix the other annoying bottleneck such as in replay mode and being able to crash the game or having to spend so much time optimizing a mod.
 
I've been testing more thoroughly all NR tools on linux, pretty much 99% of them work just fine thanks to wine. I found I can make some of them, for example the tools that run in the Konsole even better for Linux though. I can bypass having to use WinMip2's windows GUI (except for any .car file editing) which is finicky and make my own GUI using the makemip.exe with a Linux addon YAD (Yet Another Dialog) to build my own front-end apps to run the nr tools. Best part I can do stuff winmip2 won't let me such as batch file run as many TGA's/BMP's at once.


I got a little carried away haha this is like the v3 version where I just kept adding more features and included descriptions for each toggle:

1769310013964.png

Here is what it looked like when I just started, it only allowed 1 image at a time too:

1769310389283.png


Its nothing as revolutionary as @TShirt 's papy blender addon but makes any NR tools that uses a terminal a lot more flexible on Linux. The one thing (even on windows) I was severely lacking was more flexibility in making mips quicker. Winmip2 is so cumbersome having to save 1 mip at a time lol. I plan to make a STP and possibly a layout editor app tool too.

Right now its just personal tools that I can activate from my right click menu but if I can figure it out I can make these portable appimage apps where they can be run on anyone's Linux pc regardless of distro
 
Still at it lol

I made a png to tga converter tool (in all honesty the free program XnConvert is a great tool but I wanted a way to seamless convert my images to the required NR2003 tga settings with as few clicks as possible)

1769934207301.png

then I made a makestp tool where I can just as quickly batch convert mips for NR2003 I can now batch convert my tgas to stp files. Will make any new UI layouts I make even faster instead of manually saving 10+ elements every time, especially if I need to make an edit from something I need to fix.

1769934364745.png


Giving my Make Mip tool the same classic WinMip2 icon colors as a homage:
1769936639008.png
 

Attachments

  • 1769936459870.png
    1769936459870.png
    19.5 KB · Views: 1
Last edited:
One final adjustment in my PNGtoTGA tool. I forgot NR2003 handles transparent textures in two methods:

  • Smooth: antialiased textures with transparency are used for semi-transparent textures like windows on a car, glass, etc.
  • Binary: Everything else should be using the binary alpha channel (hard mask)

This is why many NR2003 creators run into either the 'fuzzy' pink edges (even though they thought they used a hard mask) or their model looks like its partially invisible because the texture is rendering the model with incorrect z-depth value in smooth mode

I updated my PNGtoTGA to be super robust so I can specifically choose if my transparent texture will be used for semi-transparent OR binary hard mask:

1770542814406.png

1770542795951.png


A bonus I included the color key option that winmip2 uses to key out a color and transfer to alpha also making it hard masked. So if I happen to have an image with no transparency but it has build in magenta or another bright color keying color I can convert it super easily too.

The benefit on Linux is imagemagik, this tool allows me to manipulate my exported png's without doing extra work making sure all my edges are hard so no 'pink fuzz' occurs AND if I have an anti-aliased transparent image that I want to be hard masked it will auto-fill any semi-transparent pixels to black/make them 100% transparent so the binary RGB 0 or 255 alpha channel of black and white can be created.


hard masking if I want to 'key out' magenta from an image
Code:
magick input.png -transparent "#ff00ff" output_32bit.tga

hard masking where the image already has a built in alpha channel
Code:
magick input.tga -channel A -threshold 50% +channel output_hardmask.tga


This tool is also available on windows so someone could make a GUI to run image magik commands like I have using YAD GUI on Linux:

For example image on the left I converted the alpha to hard mask with my tool, you can see how it does the work for me and cleans up an semi-transparent pixels:
1770542475436.png

Sure, in my paint program I can create a binary hard mark alpha channel by simply ensuring all my pixels are either 100% opaque or 100 transparent but I then have to flatten and raster the image to clean up the pixel edges. So now I can just bypass a ton of work and even better when I generate multiple resolutions I no longer have to rework the pixels (as you resize or downsize an image those hard pixels you have will become antialiased again). If I am worried the auto hard mask might cut out smaller details like wires I can just manually clean up pixels edges in my paint program before exporting.

For example with my tool I took this 1024x1024 image and using the tool chose hard mask + resize to 64x64 pixels, the edges stay sharp :cool:

1770542659226.png



Now when I import these images to my makemip GUI it will handle any transparent images perfectly with no z-depth issues. Likewise being able to batch convert my png's to various tga sizes while retaining proper hard mask is a huge speed increase for worflow. For example image an animated flag that is 100-200+ images. I can just batch convert all image frames immediately to hard mask, then batch convert them all to mips in a matter of literal seconds.
 
Back
Top