{"id":21981365,"url":"https://github.com/xan1242/NFS-XtendedInput","last_synced_at":"2025-07-22T20:32:07.223Z","repository":{"id":40454887,"uuid":"484252177","full_name":"xan1242/NFS-XtendedInput","owner":"xan1242","description":"NFS (Black Box, MW \u0026 newer) - XInput Plugin","archived":false,"fork":false,"pushed_at":"2024-07-14T16:59:13.000Z","size":893,"stargazers_count":111,"open_issues_count":39,"forks_count":7,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-11-20T18:26:56.927Z","etag":null,"topics":["game-controller","game-input","game-mod","need-for-speed","nfs-carbon","nfs-most-wanted","nfs-pro-street","nfs-prostreet","nfs-undercover","nfs-world","xinput"],"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/xan1242.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}},"created_at":"2022-04-22T01:06:46.000Z","updated_at":"2024-11-18T21:43:59.000Z","dependencies_parsed_at":"2023-02-18T02:15:44.510Z","dependency_job_id":"63ea8e50-54bb-4fd2-b35d-45ca358f4a63","html_url":"https://github.com/xan1242/NFS-XtendedInput","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xan1242%2FNFS-XtendedInput","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xan1242%2FNFS-XtendedInput/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xan1242%2FNFS-XtendedInput/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xan1242%2FNFS-XtendedInput/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xan1242","download_url":"https://codeload.github.com/xan1242/NFS-XtendedInput/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":["game-controller","game-input","game-mod","need-for-speed","nfs-carbon","nfs-most-wanted","nfs-pro-street","nfs-prostreet","nfs-undercover","nfs-world","xinput"],"created_at":"2024-11-29T17:17:23.545Z","updated_at":"2025-07-22T20:32:07.212Z","avatar_url":"https://github.com/xan1242.png","language":"C++","funding_links":[],"categories":["Need for Speed Games"],"sub_categories":["Starfield"],"readme":"# PROJECT UPDATE\n\nThis project is currently undergoing a major rewrite. Any and all issues that curently exist **will not be addressed** (they will be addressed in the new project instead).\n\nIt will take a while before it gets published, so please be patient.\n\n\n# ORIGINAL README\n\n# Need for Speed (MW \u0026 newer) - Xtended Input\n\nThis is a plugin for NFS games by Black Box (MW and newer only) which brings XInput support to the games!\n\nCurrently a work in progress, but fully usable and playable!\n\n(NFS World currently at ALPHA stage!)\n\n[Also available for Underground and Underground 2 here](https://github.com/xan1242/NFSU-XtendedInput)\n\n## Features\n\n- Automatic UI and text swapping for button icons - dynamically detects when you use either a keyboard or a controller\n\n- Choice between Xbox (One and 360), PS4/PS3 and Switch icons (made by [AeroWidescreen (Aero_)](https://github.com/AeroWidescreen) )\n\n- Console control feature parity (except rumble): restored debug camera analog control\n\n- Re-done keyboard input code - not using DInput8 anymore. Now talks directly over Win32 (GetAsyncKeyState or GetKeyboardState)\n\n- Re-done mouse input - also using Win32 for mouse input (with auto hiding after 5 seconds)\n\n- Mouse look for debug camera\n\n- Optional - Win32 / OS mouse rendering with a custom cursor\n\n- All game actions are now rebindable\n\n## Button mappings \u0026 configuration\n\nNOTE: If the remaps don't have any effect, either disable UAC virtualization or run the game as Administrator! \n\nYou may remap the buttons in the `NFS_XtendedInput.usermap.ini` file found inside the `scripts\\XtendedInputMaps\\\u003cyour save name\u003e` folder.\n\nFor secondary maps, use the sections `[Events_Secondary]` for gamepads and `[EventsKB_Secondary]` for keyboards.\n\nRefer to the EventReference.txt file to see what's available.\n\n(PROSTREET ONLY) You may also freely remap inside the game's settings menu. This feature will become available in other games soon.\n\nYou can configure other settings (such as deadzones, omni mode, etc.) in the `NFS_XtendedInput.ini` file found inside the `scripts` folder.\n\n`NFS_XtendedInput.default.ini` contains default mappings for when a new profile is created or settings reset to default in the remap menu.\n\n(MW ONLY) You cannot enter the \"Controls\" settings menu as it currently crashes the game, therefore it has been disabled. If you need to access it, disable this plugin.\n\nThe button remaps will change the textures as well according to what you set it to (only for gamepads).\n\nDefault mapping follows the Xbox 360 version of the games.\n\nDefault controller button mappings are:\n\n### Ingame\n\n- Throttle: Right Trigger\n\n- Brake: Left Trigger\n\n- Steering: Left Stick X axis\n\n- E-Brake: A button\n\n- NOS: B button\n\n- Speedbreaker: X button\n\n- Look back: Left shoulder (Pro Street: Y)\n\n- Change camera: Right shoulder (Pro Street: X)\n\n- Shift up/down: Right Stick Y axis up/down\n\n- Car reset: View/Back\n\n- Pause/Unpause: Menu/Start\n\n- SMS/Map/Status/Engage Event: D-Pad\n\n(Carbon only)\n\n- Activate crew member: Y\n\n(Pro Street only)\n\n- Clutch: Left shoulder\n\n- Toggle arrow indicators: D-Pad Up\n\n- Toggle best line indicators: D-Pad Down\n\n- Toggle Leaderboards: D-Pad Left\n\n- Toggle minimap: D-Pad Right\n\nOne note about the World Map screen: during this screen and only then, you can control the mouse cursor with the right analog stick (and click with the Left shoulder button). If you're using the OS mouse, it **will ** take control of it (and subequently confine the mouse wihin the game window).\n\n### FrontEnd\n\nPlease note that some menus may not advertise their functions properly, but they should be fully functional and controllable like in the console versions.\n\n- Navigation: D-Pad \u0026 Left Analog Stick\n\n- Accept: A button\n\n- Back: B button\n\n- L1: Left Trigger\n\n- R1: Right Trigger\n\n- Car orbit: Right Stick\n\n- Button 0: Right shoulder\n\n- Button 1: Light shoulder\n\n- Button 2: Left Thumbstick (L3)\n\n- Button 3: Right Thumbstick (R3)\n\n- Button 4: X\n\n- Button 5: Y\n\n- Start: Start\n\n- Quit game: View/Back button\n\n### Debug camera\n\nYou must use a controller on the second port to use it. Invoke it with a debug camera plugin like Extra Options.\n\n- Debug camera trigger: View/Back\n\n- Move forward: A button\n\n- Move backward: Y button\n\n- Move left: X button\n\n- Move right: B button\n\n- Move up: Left Shoulder\n\n- Move down: Right Shoulder\n\n- Look up/down/left/right: D-Pad\n\n- Turbo: Left Trigger\n\n- Super Turbo: Right Trigger\n\n- Movement (analog): Left Stick X/Y\n\n- Look (analog): Right stick X/Y\n\n- Drop car: Start\n\n## Keyboard controls\n\nThey're slightly changed from default.\n\nBy default it'll use GetAsyncKeyState (unbuffered) to read keys which might cause some issues with other hooks to the WndProc of this game, but will deliver the most optimal performance. A key's status is being read as it's being scanned in this mode.\n\nSecond mode is GetKeyboardState (buffered). This will store all keys in a buffer and read them during `InputDevice::PollDevice()` (which starts right before eDisplayFrame). Use this if you have some issues.\n\n### Ingame\n\n- Throttle: Up\n\n- Brake: Down\n\n- Steering: Left/Right\n\n- E-Brake: Space (Pro Street: Right Control)\n\n- NOS: Left Alt\n\n- Speedbreaker: X\n\n- Look back: L\n\n- Change camera: C\n\n- Pull camera back: P\n\n- Shift up/down: Left Shift / Left Control\n\n- Pause: Escape\n\n- Quit game: Q\n\n- SMS: Tab\n\n- Map: M\n\n- Blacklist menu: B\n\n- Engage event: Enter (Undercover: Tab)\n\n(Carbon only)\n\n- Activate crew member: Right Control\n\n(Pro Street only)\n\n- Clutch: Space\n\n### FrontEnd\n\nThey should be identical to the default game, with one exception: the navigation keys do not control the camera anymore. They were moved to their own buttons.\n\n- Navigation: Navigation keys (U/D/L/R)\n\n- Accept: Enter\n\n- Back: Escape\n\n- Left shoulder \u0026 Right shoulder buttons: 9 \u0026 0\n\n- Car orbit: WASD\n\n- Button 0: Most Wanted: 3, Carbon: 5, Pro Street: 3\n\n- Button 1: Most Wanted: 5, Carbon: 3, Pro Street: 4\n\n- Button 2: Most Wanted: T, Pro Street: 5\n\n- Button 3: Most Wanted: R, Pro Street: M\n\n- Button 4: 2\n\n- Button 5: 1\n\n- Start: Most Wanted: 4, Carbon \u0026 newer: Space\n\n- Quit game: Q\n\n### Debug camera\n\n- Debug camera trigger: Subtract (minus key on numpad)\n\n- Move forward: W\n\n- Move backward: S\n\n- Move left: A\n\n- Move right: D\n\n- Move up: Space\n\n- Move down: Left Control\n\n- Look up: I\n\n- Look down: K\n\n- Look left: J\n\n- Look right: L\n\n- Turbo: Right Shift\n\n- Super Turbo: F\n\n- Drop car: 5\n\n## Windows 7 compatibility\n\nTo use in Windows 7 (and maybe Vista \u0026 XP), you need to use the \"Win7\" builds.\n\nRequirements are:\n\n- [Xbox 360 Controller Driver](https://archive.org/details/xbox-360-64-engwin-7)\n\n- [DirectX Runtime](https://www.microsoft.com/en-us/download/details.aspx?id=8109) (for XInput 9.1.0)\n\n- [Visual C++ Redistributable](https://aka.ms/vs/17/release/vc_redist.x86.exe) (2019 are used by ASI Loader and XtendedInput, both are included in the installation package)\n\nThis was tested on a Pentium 3 machine running Windows 7 and it is fully working.\n\nThese builds are made with SSE instructions enabled (and other extensions disabled), so it should also work on Athlon XP as well.\n\nThe release package comes with a special build of ASI loader which is made without any CPU extensions required. It is also patched to work in Windows XP.\n\nThese builds may or may not work in Windows XP with some hacks, YMMV as it wasn't tested. Follow the instructions found [here](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170) to find out more. TLDR: \"The last version of the Visual C++ Redistributable that works on Windows XP shipped in Visual Studio 2019 version 16.7 (file versions starting with **14.27**).\"\n\n## TODO list:\n\n- Check the top of the source file\n\n- Currently KILLS Direct Input, beware\n\n# Credits\n\n- AeroWidescreen - for the amazing button icons!\n\n- LINK/2012 - injector\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxan1242%2FNFS-XtendedInput","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxan1242%2FNFS-XtendedInput","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxan1242%2FNFS-XtendedInput/lists"}