{"id":21981358,"url":"https://github.com/zaps166/NFSIISE","last_synced_at":"2025-07-22T20:32:02.235Z","repository":{"id":21368090,"uuid":"24685377","full_name":"zaps166/NFSIISE","owner":"zaps166","description":"Need For Speed™ II SE - Cross-platform wrapper with 3D acceleration and TCP protocol!","archived":false,"fork":false,"pushed_at":"2024-04-21T13:06:50.000Z","size":1424,"stargazers_count":577,"open_issues_count":6,"forks_count":46,"subscribers_count":27,"default_branch":"master","last_synced_at":"2024-11-20T19:39:16.281Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zaps166.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-10-01T16:16:03.000Z","updated_at":"2024-11-19T22:08:59.000Z","dependencies_parsed_at":"2024-10-30T19:03:01.132Z","dependency_job_id":"9695b2d2-e989-4f24-becb-edd8bec6154f","html_url":"https://github.com/zaps166/NFSIISE","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaps166%2FNFSIISE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaps166%2FNFSIISE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaps166%2FNFSIISE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaps166%2FNFSIISE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zaps166","download_url":"https://codeload.github.com/zaps166/NFSIISE/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227174006,"owners_count":17742401,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-29T17:17:23.325Z","updated_at":"2024-11-29T17:17:33.565Z","avatar_url":"https://github.com/zaps166.png","language":"C","readme":"NFSIISE\n=======\n\n![Screenshot](https://raw.githubusercontent.com/zaps166/GitHubCommonContents/master/Screenshots/NFSIISE.png)\n\nCross-platform wrapper for the Need For Speed™ II SE game with 3D acceleration and TCP protocol!\n\n## GIT clone:\n\nDon't forget to update submodules:\n```sh\ngit submodule update --init --recursive\n```\n\n## OpenGL\n\n* By default OpenGL 2 is used (except Android - it always uses GLES2).\n* To use OpenGL 1, add `gl1` argument to compilation script.\n* To use OpenGL|ES 2, add `gles2` argument to compilation script.\n\n## Compile for x86:\n\n* To compile the game, you must have:\n  * GCC or Clang compiler which can generate **32-bit** code for x86 (set by `$CC` environment variable),\n  * **32-bit** OpenGL devel and drivers,\n  * **32-bit** SDL2 devel.\n  * Yasm assembler,\n* On **Debian** you should add 32-bit architecture and install 32-bit dependencies (run as `root`):\n```sh\ndpkg --add-architecture i386\napt-get update\napt-get install libsdl2-dev:i386 gcc-multilib yasm\n```\n* Edit the `compile_nfs` script, modify what do you want. Compile the game by executing the script - it will automatically generate executable file inside `Need For Speed II SE` directory:\n  * `./compile_nfs` - native compilation for Unix-like systems (Linux, macOS up to Mojave, ...),\n  * `./compile_nfs win32` - cross compilation for Windows (on Arch Linux install: `mingw-w64-gcc` and `mingw-w64-sdl2` from AUR).\n\n## Notes About Windows Build using WSL:\n* One way is to use WSL (Windows Subsystem for Linux) and install `mingw-w64` which cross-compiles to Windows\n```sh\nsudo apt install mingw-w64\n```\nalso `gcc-multilib` might be needed to be installed using\n```sh\nsudo apt install gcc-multilib\n```\n\n* Don't install SDL using apt-get, instead take it from their [official repo packages page](https://github.com/libsdl-org/SDL/releases/), get the package with **mingw** suffix\n\n* Inside the package folder you should use the one called *`i686-w64-mingw32`*\n* Either copy the `include, bin, lib, share` to your system files (not recommended) or you can modify the following lines in the file `compile_nfs`:\n\n  - On line 27 with:\n      ```sh\n      C_FLAGS=\"$COMMON_FLAGS -O2 $CPU_FLAGS\"\n      ```\n      add before the last quotation mark `-I/path/to/include/folder` so that it becomes:\n      ```sh\n      C_FLAGS=\"$COMMON_FLAGS -O2 $CPU_FLAGS -I/path/to/include/folder\"\n      ```\n\n  - On line 23 add the same include directory paramter before the quote\n\n  - On line 39 which has:\n      ```sh\n      i686-w64-mingw32-ld --enable-stdcall-fixup -o \"../Need For Speed II SE/nfs2se.exe\" *.o --stack=0x7D00,0x7D00 --heap=0x2000,0x1000 -lws2_32 -lwinmm -lmingwex -lmsvcrt -lkernel32 -lopengl32 -lSDL2 -lSDL2main -lSDL2_test -subsystem=$WIN_SUBSYSTEM $STRIP -e _start \u0026\u0026\n      ```\n      After the `-lSDL2_test` add `-L/path/to/lib/folder/`\n  - Now the command `./compile_nfs win32` should work fine\n  - If you try to run the exe, windows will say the dll is missing so you should get it from the `same SDL packages link` but this time the package for `win32-x86`\n  - Copy the dll you get from decompressing the zip file and put it in the same directory as the game's exe file\n  - Now if you follow the other steps (of copying game data and dealing with possible errors explained futher), it should work fine\n\n## Compile for non-x86 CPUs:\n\n### Information:\n* This game can run on ARM devices, also on Android. Only **32-bit little-endian** CPUs are supported.\n* The performance is a bit lower than the original assembly code.\n* May be less stable than assembly code due to possible translation bugs.\n\n### Requirements:\n* SDL2 (32-bit) and OpenGL (32-bit).\n* Clang compiler and lld linker (must generate 32-bit output).\n\n### Compilation:\n\n#### Linux:\n* run `./compile_nfs cpp`\n\n#### Android:\n* install SDK and NDK for chosen SDL2 version,\n* set environment variables: `ANDROID_HOME` and `ANDROID_NDK_HOME`,\n* download SDL2 source code and unpack it,\n* create symlink to unpacked `SDL2-*` directory into `src/Android/app/jni/SDL`,\n* run `./compile_nfs android` or `./compile_nfs android install`.\n\n## Run:\n\n* Copy `fedata` and `gamedata` directories from the Need For Speed™ II SE original CD-ROM into `Need For Speed II SE` directory.\n* This game **needs** data from Need For Speed 2 **Special Edition**, otherwise you'll see a 'MOVIE FILE NOT FOUND' message!\n* You can delete unnecessary files, e.g. `fedata/pc/text/text.*`, because TCP version uses new files in root directory.\n* All files and directories copied from CD-ROM **must** have *small letters* on Unix-like systems!!!\n  * Please use the `Need For Speed II SE/convert_to_lowercase` script if you have UPPERCASE names.\n* If you want to change the language, edit `install.win` file (with text editor which doesn't modify last line or line edings!) and change the first line. Leave `4nn` as is and modify only language name. Possible languages are:\n  * english,\n  * french,\n  * german,\n  * italian,\n  * spanish,\n  * swedish.\n* Run the game.\n* The game settings files are located in `~/.nfs2se` (`%AppData%\\.nfs2se` on Windows). At the first run, the `nfs2se.conf.template` will be copied there. You can modify the file if you want to configure the game. On Windows, you can use `open_config.bat` to open the config file in notepad.\n* On Android devices, copy `gamedata`, `fedata`, `install.win`, `text.*`, `nfs2se.conf` (rename `nfs2se.conf.template` to `nfs2se.conf`) into `/sdcard/NFSIISE` or `/storage/emulated/0/NFSIISE` (create `NFSIISE` directory first).\n* For Batocera Linux devices (an open-source and completely free retro-gaming distribution), tested with version 39:\n  * take Windows version (e.g `nfs2se-win32-v1.4.0.zip` under Releases), unpack it,\n  * copy original `fedata` and `gamedata` directories into `Need For Speed II SE` directory,\n  * in `Need For Speed II SE` directory create new file `autorun.cmd` with content `CMD=nfs2se.exe`,\n  * rename directory `Need For Speed II SE` to `Need For Speed II SE.pc`,\n  * place directory `Need For Speed II SE.pc` into your Batocera Linux directory `/userdata/roms/windows/`,\n  * to update the game list in Batocera using your controller, press `START` and go to `GAME SETTINGS` → `UPDATE GAMELISTS`, the game is listed under `Windows` section and will be successfully emulated via Wine\n\n## What works:\n\n* Game controllers (reconnected game controllers should be the same),\n* Force Feedback (tested on Linux),\n* TCP and UDP connection,\n* Serial port connection,\n* Brightness,\n* Sound.\n\n## What does not work:\n\n* Modem connection (it will never work again, this feature has been removed from assembly code),\n\n## Function keys in-game\n\n* F1  - toggle rain\n* F2  - car detail\n* F3  - view distance\n* F4  - toggle horizon\n* F5  - toggle HUD (player 1)\n* F6  - toggle HUD (player 2)\n* F7  - toggle mirror\n* F8  - toggle music\n* F9  - toggle sound effects\n* F10 - brightness\n* F11 - reset car (player 1)\n* F12 - reset car (player 2)\n\n## Additional information:\n\n* Arch Linux package is available in AUR as `nfs2se-git`.\n* Compilation on *BSD systems probably needs changes in compilation script (not tested).\n* Cockpit view and night driving are unavailable (original 3D-accelerated version doesn't have this), see [NFSIISEN](https://github.com/zaps166/NFSIISEN) repository.\n* OpenGL 1.x only: if the game crashes it might not restore the gamma properly. In this case run: `xgamma -gamma 1.0`.\n* There is Docker based build environment available on [GitHub](https://github.com/thomas-mc-work/nfsiise-build-env).\n* LICENSE is only for wrapper source code.\n","funding_links":[],"categories":["Need for Speed Games"],"sub_categories":["Starfield"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzaps166%2FNFSIISE","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzaps166%2FNFSIISE","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzaps166%2FNFSIISE/lists"}