Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
emulators:wheel_games [2024/08/06 09:22] – good practices atariemulators:wheel_games [2026/03/07 17:53] (current) – [Table] added steering wheel support for triforce (V43) tovarichtch
Line 8: Line 8:
  
 ===== Supported wheels ===== ===== Supported wheels =====
-                                                          ^  Max range  ^  FFB  ^  Gear shifter  ^  Notes                                                                           ^ +                                                             ^  Max range  ^  FFB  ^  Gear shifter  ^  Notes                                                                           ^ 
-| HORI Racing Wheel APEX                                    |  270°        ✘    |  ✘             | Mapping is incomplete                                                            | +| HORI Racing Wheel APEX                                       |  270°        ✘    |  ✘             | Mapping is incomplete                                                            | 
-| HORI Racing Wheel Overdrive                               |  270°        ✘    |  ✘             | (v40) Must be on mode 2 to work                                                  | +| HORI Racing Wheel Overdrive                                  |  270°        ✘    |  ✘             | (v40) Must be on mode 2 to work                                                  | 
-| Logitech Driving Force                                    |  200°        ✔    |  ✘                                                                                              | +| HORI Mario Kart Racing Wheel Pro Deluxe for Nintendo Switch  |  270°        ✘    |  ✘             | (v42) Must be on DP switch mode                                                  | 
-| Logitech Driving Force GT                                 |  900°        ✔    |  ✔                                                                                              | +| Logitech Driving Force                                       |  200°        ✔    |  ✘                                                                                              | 
-| Logitech Driving Force Pro                                |  900°        ✔    |  ✔             | (v40)                                                                            | +| Logitech Driving Force GT                                    |  900°        ✔    |  ✔                                                                                              | 
-| Logitech G25 Racing Wheel                                 |  900°        ✔    |  ✔                                                                                              | +| Logitech Driving Force Pro                                   |  900°        ✔    |  ✔             | (v40)                                                                            | 
-| Logitech G27 Racing Wheel                                 |  900°        ✔    |  ✔                                                                                              | +| Logitech Formula Vibration Feedback                          |  180°        ✘    |  ✘             | (v43)                                                                            | 
-| Logitech G29 Driving Force                                |  900°        ✔    |  ✔             | Must be on PS3 mode to work                                                      +| Logitech G PRO Racing Wheel                                  |  None        ✔    |  ✘             | (v42)                                                                            | 
-| Logitech G920 Driving Force                               |  900°        ✔    |  ✔                                                                                              | +| Logitech G25 Racing Wheel                                    |  900°        ✔    |  ✔                                                                                              | 
-| Logitech G923 Driving Force                               |  900°        ✔    |  ✔                                                                                              | +| Logitech G27 Racing Wheel                                    |  900°        ✔    |  ✔                                                                                              | 
-| Logitech Momo Racing                                      |  240°        ✔    |  ✔                                                                                              | +| Logitech G29 Driving Force                                   |  900°        ✔    |  ✔             | Must be on PS3/PC mode to work                                                   
-| Microsoft SideWinder Force Feedback Wheel                 |  220°        ✔    |  ✘                                                                                              | +| Logitech G920 Driving Force (PlayStation model)              |  900°        ✔    |  ✔                                                                                              
-| MOZA Racing R9                                            |  None        ✔    |  ✔             | Mapping is incomplete                                                            | +| Logitech G920 Driving Force (Xbox model)                      900°        ✔    |  ✔             | (v41)                                                                            
-| ThrustMaster Ferrari 458 Spider                           |  240°        ✘    |  ✘             | FFB unsupported yet                                                              | +| Logitech G923 Driving Force (PlayStation model)              |  900°        ✔    |  ✔                                                                                              
-| Thrustmaster Ferrari Wireless F430 Cockpit                |  270°        ✘    |  ✘                                                                                              | +| Logitech G923 Driving Force (Xbox model)                      900°        ✔    |  ✔             | (v42)                                                                            
-| Thrustmaster Ferrari F430 Force Feedback                  |  270°        ✔    |  ✘                                                                                              | +| Logitech Momo Racing                                         |  240°        ✔    |  ✔                                                                                              | 
-| Thrustmaster Ferrari SF1000 (Advance Racer)               |  ?          |  ?    |  ?                                                                                              | +| Microsoft SideWinder Force Feedback Wheel                    |  220°        ✔    |  ✘                                                                                              
-| Thrustmaster Ferrari GT 2 in 1 Rumble Force Racing Wheel  |  240°        ✘    |  ✘             | (v40) Must be on 3-axis mode (default)                                           | +| Microsoft SideWinder Precision Racing Wheel                  |  270°        ✘    |  ✘             | (v41)                                                                            
-| Thrustmaster T300 RS                                      |  1080°      |  ✔    |  ✘                                                                                              | +| MOZA Racing R9                                               |  None        ✔    |  ✔             | Mapping is incomplete                                                            
-| Thrustmaster T150 RS                                      |  1080°      |  ✔    |  ✔             | (v40) Must be on PS3 mode to work                                                | +| MOZA R12 V2 (Direct Drive)                                    None        ✔    |  ✔             | (v43)                                                                            | 
-| Thrustmaster T80                                          |  240°        ✘    |  ✘             | (v40) Must be on gamepad mode to work                                            | +| Speedlink 4in1 Leather Power Feedback Wheel (SL-6698)        |  250°        :!:  |  ✘             | (v42) FFB unsupported yet                                                        
-| PXN-V10                                                   |  900°        ✔    |  ✔             | (v40) Must be on x-input mode, switch to 270° and FFB disabled in PXN phone app  |+| ThrustMaster Ferrari 458 Spider                              |  240°        ✘    |  ✘             | FFB unsupported yet                                                              | 
 +| Thrustmaster Ferrari Wireless F430 Cockpit                   |  270°        ✘    |  ✘                                                                                              | 
 +| Thrustmaster Ferrari F430 Force Feedback                     |  270°        ✔    |  ✘                                                                                              | 
 +| Thrustmaster Ferrari SF1000 (Advance Racer)                  |  ?          |  ?    |  ?                                                                                              | 
 +| Thrustmaster Ferrari GT 2 in 1 Rumble Force Racing Wheel     |  240°        ✘    |  ✘             | (v40) Must be on 3-axis mode (default)                                           | 
 +| Thrustmaster T300 RS                                         |  1080°      |  ✔    |  ✘                                                                                              
 +| Thrustmaster T248                                            |  900°        ✔    |  ✘             | (v42) Must update firmware to gain FFB. PC MODE only.                            
 +| Thrustmaster T150 RS                                         |  1080°      |  ✔    |  ✔             | (v40) Must be on PS3 mode to work                                                | 
 +| Thrustmaster T80                                             |  240°        ✘    |  ✘             | (v40) Must be on gamepad mode to work                                            | 
 +| PXN-V10                                                      |  900°        ✔    |  ✔             | (v40) Must be on x-input mode, switch to 270° and FFB disabled in PXN phone app  |
  
 ===== Unsupported wheels ===== ===== Unsupported wheels =====
 ^ Wheel                                        ^ Notes                                                   ^ ^ Wheel                                        ^ Notes                                                   ^
-| Thrustmaster T128                            | No compatible linux drivers as of today                 +| Thrustmaster T128                            | Need testers, linux drivers are compatible (v41)        
-| Thrustmaster TMX                             No compatible linux drivers as of today                 |+| Thrustmaster TMX                             Need testers, linux drivers are compatible (v41)        |
 | Mad Catz Wireless Racing Wheel for XBox 360  | Unfortunately, seen as a plain XBox360 controller only  | | Mad Catz Wireless Racing Wheel for XBox 360  | Unfortunately, seen as a plain XBox360 controller only  |
  
 ===== Supported systems (WIP) ===== ===== Supported systems (WIP) =====
-^ System         ^ Emulator                ^  Out of the box ^  Native Wheel support   Working FFB ^ Notes                      +^ System         ^ Emulator                ^  Working out of the box  ^  Has FFB feature   Working FFB in Batocera  ^ Notes                              
-| 3DO            | libretro:opera          |  ✘                |  ✔                     |  —                                        +| 3DO            | libretro:opera          |  ✘                       |  ✘                |  —                        3DO had one driving game with FFB  
-| Atari 2600     | libretro:stella          ✘                |  ✘                     |  —                                        +| Atari 2600     | libretro:stella          ✘                       |  ✘                |  —                                                           
-| Atari 5200     | libretro:atari800        ✘                |  ✘                     |  —                                        +| Atari 5200     | libretro:atari800        ✘                       |  ✘                |  —                                                           
-| Atomiswave     | libretro:flycast        |  ✔                |  ✔                     |  ✘                                        +| Atomiswave     | libretro:flycast        |  ✔                       |  ✔                |  ✘                                                           
-| ColecoVision   | libretro:bluemsx        |  ✘                |  ✘                     |  —             | No support in blueMSX yet  +| ColecoVision   | libretro:bluemsx        |  ✘                       |  ✘                |  —                        | No support in blueMSX yet          
-| Dreamcast      | libretro:flycast        |  ✔                |  ✔                     |  —                                        +| Dreamcast      | libretro:flycast        |  ✔                       |  ✘                |  —                                                           
-| FBNeo          | libretro:fbneo          |  ✘                |  ✔                     |  ✘             | Not optimized              +| FBNeo          | libretro:fbneo          |  ✘                       |  ✘                |  ✘                        | Not optimized                      
-| GameCube       | Dolphin                  ✔                |  ✔                     |  ✔                                        +| GameCube       | Dolphin                 |  ✔                       |  ✔                |  ✔                                                           | 
-| MAME           | MAME                    |  :!:              |  ✔                     |  ✘             | Not optimized              +| Lindbergh      | Lindbergh               |  ✔                        ✔                |  ✘                        | No FFB support yet                 
-| Model 2        | model2emu                ✘                |  ✔                     |  ✔             | Not optimized              +| MAME           | MAME                    |  :!:                     |  ✔                |  ✘                        | Not optimized                      
-| Model 3        | Supermodel              |  ✘                |  ✔                     |  ✔             | Not optimized              +| Model 2        | model2emu                ✘                       |  ✔                |  ✔                        | Not optimized                      
-| Naomi          | libretro:flycast        |  ✔                |  ✔                     |  ✘                                        +| Model 3        | Supermodel              |  ✘                       |  ✔                |  ✔                        | Not optimized                      
-| Naomi 2        | libretro:flycast        |  ✔                |  ✔                     |  ✘                                        +| Naomi          | libretro:flycast        |  ✔                       |  ✔                |  ✘                                                           
-| Namco 2x6      | Play!                    ✘                |  ✔                     |  :?:           | Not optimized              +| Naomi 2        | libretro:flycast        |  ✔                       |  ✔                |  ✘                                                           
-| Nintendo 64    | Mupen64                  ✔                |  ✘                     |  —                                        +| Namco 2x6      | Play!                    ✘                       |  ✔                |  :?:                      | Not optimized                      
-| Playstation    | libretro:pcsx_rearmed    :!:              |  ✘                     |  —             | Not optimized              +| Nintendo 64    | Mupen64                  ✔                       |  ✘                |  —                                                           
-| Playstation 2  | PCSX2                    ✔                |  ✔                     |  ✔                                        +| Playstation    | libretro:pcsx_rearmed    :!:                     |  ✘                |  —                        | Not optimized                      
-| Playstation 3  | RPCS3                    ✘                |  ✔                     |  ✘             | Not optimized              +| Playstation 2  | PCSX2                    ✔                       |  ✔                |  ✔                                                           
-| Sega Saturn    | libretro:beetle-saturn  |  ✔                |  ✔                     |  —                                        +| Playstation 3  | RPCS3                    ✘                       |  ✔                |  ✘                        | Not optimized                      
-| Triforce       | Dolphin                 |  ✘                |  ✘                     |  —                                        +| Sega Saturn    | libretro:beetle-saturn  |  ✔                       |  ✘                |  —                                                           
-| Wii            | Dolphin                  :!:              |  ✘                     |  —             | Not optimized              +| Triforce       | Dolphin                 |  ✔                       |  ✔                |  —                        No FFB support yet                 
-| Wiiu           | cemu                    |  ✘                |  :?:                   |  —             | Not optimized              +| Wii            | Dolphin                  :!:                     |  ✘                |  —                        | Not optimized                      
-| Xbox           | xemu                    |  :!:              |  :?:                   |  —             | Not optimized              +| Wiiu           | cemu                    |  ✘                       |  :?:              |  —                        | Not optimized                      
-| Xbox 360       | xenia                    ✘                |  :?:                   |  —             | Not optimized              |+| Xbox           | xemu                    |  :!:                     |  :?:              |  —                        | Not optimized                      
 +| Xbox 360       | xenia                    ✘                       |  :?:              |  —                        | Not optimized                      |
  
 Force feedback is supported with the PCSX2 and Dolphin (GameCube) emulators. Force feedback is supported with the PCSX2 and Dolphin (GameCube) emulators.
Line 77: Line 87:
 </WRAP> </WRAP>
  
-To test a new steering wheel controller in Batocera:+To initiate support for a new steering wheel controller in Batocera (view image below):
   - Configure the wheel as a normal pad in EmulationStation with the following convention:   - Configure the wheel as a normal pad in EmulationStation with the following convention:
     * **LEFT ANALOG LEFT** to the rotation of the steering wheel (skip **LEFT ANALOG UP** by holding any button)     * **LEFT ANALOG LEFT** to the rotation of the steering wheel (skip **LEFT ANALOG UP** by holding any button)
     * If possible, **LEFT SHOULDER** and **RIGHT SHOULDER** to gear down and up respectively     * If possible, **LEFT SHOULDER** and **RIGHT SHOULDER** to gear down and up respectively
-    * **LEFT TRIGGER** to the brake pedal, and ''RIGHT TRIGGER'' to the acceleration/gas pedal+    * **LEFT TRIGGER** to the brake pedal, and **RIGHT TRIGGER** to the acceleration/gas pedal
     * **START** as a button (required)     * **START** as a button (required)
-    * Additional buttons if possible, the more that can be assigned the more compatibility. For example: ''D-PAD'' and {{:wiki:north.png?20&nolink}}, {{:wiki:south.png?20&nolink}}, {{:wiki:east.png?20&nolink}}, {{:wiki:west.png?20&nolink}} (FIXME could probably follow a guideline similar to [[:configure_a_controller]]) +    * Additional buttons if possible, the more that can be assigned the more compatibility. For example: **D-PAD** and {{:wiki:north.png?20&nolink}}, {{:wiki:south.png?20&nolink}}, {{:wiki:east.png?20&nolink}}, {{:wiki:west.png?20&nolink}} (FIXME could probably follow a guideline similar to [[:configure_a_controller]]) 
-  - Create a file in ''/userdata/system/udev/rules.d/'' called ''99-wheels.rules'' (or any other name if you already have one) with the content below, replacing ''my wheel name'' by the actual wheel name, reported by the ''evtest'' command. <file - 99-wheels.rules>+{{ :emulators:wheel.png?direct&700 |}} 
 +  - Create a file in ''/userdata/system/udev/rules.d/'' called ''99-wheels.rules'' (or any other name if you already have one) with the content below, replacing ''my wheel name'' by the actual wheel name, reported by the ''evtest'' command. Further more, you need to add the right rotation angle. If you have a direct drive model, you can skip the rotation angle value. <file - 99-wheels.rules>
 SUBSYSTEM=="input", ATTRS{name}=="my wheel name", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1", ENV{ID_INPUT_WHEEL}="1", ENV{WHEEL_ROTATION_ANGLE}="270" SUBSYSTEM=="input", ATTRS{name}=="my wheel name", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1", ENV{ID_INPUT_WHEEL}="1", ENV{WHEEL_ROTATION_ANGLE}="270"
 </file> </file>
Line 96: Line 107:
  
 === Rotation angle === === Rotation angle ===
-This will multiply the sent value by a factor to match the specified angle. This is the maximum rotation angle in degrees for which the wheel will answer (in red on the picture). Most games would label this setting as "sensitivity". It helps to convert a 900° rotation wheel to a 180° rotation wheel for example. Some games like Mario Kart 64 intended to play with a joystick need to switch very quickly from full left to full right which can be difficult to do on a 900° wheel without changing this setting.+This will multiply the sent value by a factor to match the specified angle. This is the maximum rotation angle in degrees the wheel will respond to (in red on the picture). Most games would label this setting as "sensitivity". If set to a value lower than the wheel's physical limits, it allows you to more easily reach the maximum input before turning the wheel all the way. It helps to convert a 900° rotation wheel to a 180° rotation wheel for example. Some games like Mario Kart 64 intended to play with a joystick need to switch very quickly from full left to full right which can be difficult to do on a 900° wheel without changing this setting
 + 
 +If set to value higher than the wheel's physical limits, it will allow for more precise adjustment, however it will become physically impossible to reach the maximum input.
  
 A common value is 180°. The value on the picture is around 225°. A common value is 180°. The value on the picture is around 225°.
  
 === Midzone === === Midzone ===
-<WRAP center round todo> 
-Should this be renamed to deadzone and "deadzone" below renamed to "in-game deazone"? 
-</WRAP> 
  
 When the wheel is not being touched, it rests in the neutral position. While in this position, no input values should be being sent to the game. However, the wheel's sensor may become misaligned and start sending a turning signal even when in neutral position; the midzone is a small section near the middle where inputs will be ignored (hopefully meaning only actual turning actions are responded to). When the wheel is not being touched, it rests in the neutral position. While in this position, no input values should be being sent to the game. However, the wheel's sensor may become misaligned and start sending a turning signal even when in neutral position; the midzone is a small section near the middle where inputs will be ignored (hopefully meaning only actual turning actions are responded to).
Line 109: Line 119:
 A common value is 5°. A common value is 5°.
  
-=== Deadzone ===+=== Reverse deadzone ===
  
-On real hardware, games made for consumer hardware would sometimes have a built-in deadzone in the game itself, meaning if small turning values are sent they will be ignored. This is common on home consoles such as the Nintendo 64. Unfortunately, this means the wheel (which is usually more accurate than a standard joystick) will feel very unresponsive. We can defeat the game's built-in deadzone by instantly snapping to a higher value after reaching the wheel's hardware deadzone (midzone above) instead.+On real hardware, games made for consumer hardware would sometimes have a built-in deadzone in the game itself, meaning if small turning values are sent they will be ignored. This is common on home consoles such as the Nintendo 64. Unfortunately, this means the wheel (which is usually more accurate than a standard joystick) will feel very unresponsive as even after leaving its midzone, it will still be in the deadzone of the game itself. We can defeat the game's built-in deadzone by instantly snapping to a higher value after leaving the midzone instead; this is the "reverse deadzone".
  
 A common value is 45°. A common value is 45°.
Line 117: Line 127:
 === Demonstration === === Demonstration ===
 On the following animated image, you can see: On the following animated image, you can see:
-  * on top, the real 270° wheel movement, from center, to maximum left, then to maximum right +  * On the top, the real 270° wheel movement, from center, to maximum left, then to maximum right 
-  * on bottom, the wheel in game behavior +  * On the bottom, the wheel in game behavior. 
-    * the real wheel movement doesn't have impact on extremities (from 180° to 270°) +    * In the midzone, the input sent is dramatically reduced. 
-    * at center there is a jump for deadzone except for the midzone +    * When entering or exiting the midzone there is a jump caused by the reverse deadzone so the game properly reacts to the input. 
-    * configuration is: 180° maximum movement, 5° midzone and 25° deadzone.+    * The real wheel movement doesn't have impact on extremities (from 180° to 270°). 
 +    * Configuration is: 180° maximum movement, 5° midzone and 25° deadzone.
  
 {{:emulators:wheel_zones.gif}} {{:emulators:wheel_zones.gif}}
  • emulators/wheel_games.1722936129.txt.gz
  • Last modified: 21 months ago
  • by atari