ShakirBB wrote on 2018-08-23, 07:06:I got force feedback working with Need for Speed II Special Edition (NFS II SE) using this setup: […]
Show full quote
I got force feedback working with Need for Speed II Special Edition (NFS II SE) using this setup:
Configured "nfs2se.conf" inside the ".nfs2se" directory hidden in my Home directory after first launch.
Changed "#Joystick0AxisValueShift=8448" to "Joystick0AxisValueShift=6336" to narrow the dead zone at the center of the X axis (Axis 0). 8448 was too narrow for me.
Changed "#Joystick0Axes=0,12,13,14:0,1,1,1" to "Joystick0Axes=0,1,2,3:0,-1,1,1".
"#UseSpringForceFeedbackEffect=0" can be changed to "UseSpringForceFeedbackEffect=1" to activate the steering wheel spring effect, but I found it irritating at default settings.
Effect strength is adjustible in the force feedback options menu. You can feel collisions, gear shifts and loss of traction.
Granted, the above post is really really old, but it helped put me on the right path to getting FFB in NFS II SE to work.
Here is my full step by step to getting this to work. Hope it helps someone else
Build the base VM
Using Oracle VMware Workstation 16 pro
install Ubuntu Version 16.04.5 LTS with latest updates, VirtualBox Guest Additions and USB
let VMware do easy setup and set the hard disk space to 20GB (as min for Unbuntu is 10Gb, so this gives room for all the updates that will be needed to make the game work)
for reference, it uses 2 CPUs and 4gb of memory, could probably reduce the memory needs
install Open VMware Tools installed to support Host to Guest USB devices input and other devices, etc...
Requirements of zaps166 Need For Speed™ II SE - Cross-platform wrapper:
32-bit X11 (libX11.so.6, libXext.so.6, libXinerama.so.1, libXrandr.so.2, libXxf86vm.so.1, libXss.so.1),
To check whether Ubuntu is running a 32-bit X11 (X Window System), from terminal window, use commmand
xdpyinfo | grep "bits per pixel"
If the output shows "32 bits per pixel," it means you are running a 32-bit X11 server. If it shows "24 bits per pixel" or another value, it means you are running a different color depth.
I didnt need to do this, but to update X11 and related packages
sudo apt update
sudo apt install tasksel
To change the display resolution to a higher setting in Ubuntu after installing the X11 window system, you can use the "Displays" settings or the xrandr command.
The following worked to fit my 27inch screen
xrandr --output Virtual1 --mode 1920x1440
Requirements of zaps166 Need For Speed™ II SE - Cross-platform wrapper:
game requires at least OpenGL 2 or 1.1 (depends on executable)
To check whether Ubuntu is using a 32-bit version of OpenGL, you can use the glxinfo command, which provides detailed information about the OpenGL configuration on your system.
I just decided to install the latest anyways (which ended up being (mesa-utils is already the newest version (8.3.0-1).)
sudo apt install mesa-utils
use the glxinfo command to gather information about OpenGL
glxinfo | grep "OpenGL version"
To update Git submodules in Ubuntu (or any Linux distribution), you can use the git submodule command. Submodules are typically used to include external Git repositories
for some reason I did this and I ran the following, and it found it was not installed
git submodule update --init --recursive
to install
sudo apt install git
Next we need a GCC or Clang compiler on Unbuntu to compile something. come back and update these notes once I figure it out later in the build screen capture of terminal commands used
Install the GCC compiler along with the necessary build tools by running the following
sudo apt install build-essential
then Install Clang
sudo apt install clang
to check clang version (mine was clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final))
clang --version
Next, we mount the host share to copy over NFS2SE files from the host
to enable mounting of virtual drives
mount | grep vmhgfs
then create the mount source and destination
sudo vmhgfs-fuse -o allow_other -o auto_unmount .host:/DHost /mnt/DHost-shared
Use the files GUI program to copy the files from the computer/mnt/DHost-shared to
Home/Games/needforspeedseii
NFS 2 SE manual install
insert original CD-ROM with "Need For Speed II SE" (or mount/unpack CD image),
copy FEDATA and GAMEDATA including all root files from NFS II SE CD to a Need For Speed II SE folder
iso here if dont have CD https://www.myabandonware.com/game/need-for-speed-ii-se-a4a
may not need to do this, as this is a Unbuntu install, but I would as the wrapper is treating it as a windows program
rename the install.nfs file to install.win in the Need For Speed II SE folder
install zaps166 Need For Speed™ II SE - Cross-platform wrapper with 3D acceleration and TCP protocol.
zaps166 NFSIISE cross-platform wrapper version 1.2.4
zaps166 nfs2se-win32.zip
or
nfs2se-linux.tar.gz
aka, extract it into the root of the game folder
Next, we need to covert all the game file names to lowercase
change directory in terminal to the Home/Games/needforspeedseii folder
then in terminal window
./convert_to_lowercase FEDATA GAMEDATA
say yes to set permissions
I didnt need to do this, but I should have renamed the files in the root of the game to lowercase as well
Next check that libxinerama1, libxrandr2 and libgl1-mesa-glx are on the latest. This shouldnt be needed, as Unbuntu will already have the latest of these, but just incase run
sudo apt install libgl1-mesa-glx:i386 libxinerama1:i386 libxrandr2:i386
the version I saw were
libxinerama1 is already the newest version (2:1.1.3-1).
libxrandr2 is already the newest version (2:1.5.0-1).
libgl1-mesa-glx is already the newest version (18.0.5-0ubuntu0~16.04.1).
Next, install the joystick test program to confirm g27 wheel can be seen by Unbuntu, and to get its axis, buttons, etc.
sudo apt-get install jstest-gtk
Run jstest to see wheel setup
jstest-gtk
or
jstest -event /dev/input/js0
Run jstest calibration if need be
jscal -c /dev/input/js0
fix large dead zone gap in steering
Configured "nfs2se.conf" inside the ".nfs2se" directory hidden in my Home directory after first launch.
modified the nfs2se.conf file that is used to configure how the game works with devices installed on the OS
For my g27 wheel, I modified the Joystick0AxisValueShift to = 8500. This eliminated the large dead zone GAP that the game natively creates.
fix for clutch vs gas pedal
Removed the clutch pedal (was interfering with throttle), as a usable axis by modifying the Joystick0Axes to = 0,2,3:0,0,1. This set axis 0 to wheel, 2 to gas and 3 to brake. And then the last 3 numbers for 0 for normal range, 0 for normal throttle travel, and 1 for half axis travel
using the NFS game menu, I set steering sensitivity to 1/3 range, thereby reducing the 900 degree turning range down to somewhere in the 300 degree range
In the end, while the force feedback does not provide the same level of feedback found in NFS 3, the force feed back that NFS 2 does provide to me, adds a bit more fun when scraping/hitting the edge of the track, being rammed by / or ramming other cars, crashing, or hitting sign posts and other objects.