WRC 7
APC900 Jun 18, 2023 @ 9:09am
No controller support for MOZA
It is horrible that this title has no controller support for one of the most liked wheels on the market...the MOZA R9.
On startup it says no controller detected.
I can't take the chance of purchasing any other titles from this developer, since I don't know if any of the others are supported.
< >
Showing 1-5 of 5 comments
MadDog-IC Jul 8, 2023 @ 1:03am 
If you could find the GUID for your Wheel setup from the Windows Device Manager, I could make a config file to get it working, I have already done my Fanatec DD1 and F1 wheel.

Fanatec Direct Drive example:

Windows - > Device Manager -> Human Interface Devices -> HID-compliant game controller -> Details -> Property = Device Instance Path.

ie: HID\VID_0EB7&PID_0006&COL01\6&3024352B&2&0000

1) GUID = 00060EB7 (Product ID=0006 and Vendor ID=0EB7), this is in Hexadecimal, but WRC needs it in decimal so you use a converter on the internet to get GUID=396983.

2) WRC 7 location of config files for FFB Steering wheels / devices, that you need to add your wheel and button layout to:

3) d:\Games\Steam\steamapps\common\WRC 7\Common\Settings\InputBindings.lua

--Fanatec ClubSport v2, Fanatec ClubSport v2.5, Fanatec CSL Elite WheelBase, Podium DD1 WheelBase, Podium DD2 WheelBase
--00010EB7, 00040EB7, 0E030EB7, 00050EB7, 00060EB7, 00070EB7
{
Device = EnumDeviceFamily.I_ICF_STEERING_WHEEL,
Index = 5,
GUID = { 69303, 265911, 235081399, 331447, 396983, 462519, },

--Menus
{
Actions = { InputAction.I_POP_MENU_JUST_PRESSED, },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON10,
},

{
Actions = { InputAction.I_SKIP_MOVIE, InputAction.I_MENU_VALIDATE, },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON2,
},

{
Actions = { InputAction.I_MENU_CANCEL, InputAction.I_MENU_EXIT, },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON3,
},

{
Actions = { InputAction.I_MENU_SECONDARY, InputAction.I_X_JUST },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON1,
},

{
Actions = { InputAction.I_STICK_LEFT_JUST, },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON12,
},

{
Actions = { InputAction.I_STICK_RIGHT_JUST, },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON11,
},

{
Actions = { InputAction.I_LT_PRESSED, },
Trigger = TriggerType.TriggerButtonDown,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON8,
},

{
Actions = { InputAction.I_RT_PRESSED, },
Trigger = TriggerType.TriggerButtonDown,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON7,
},

{
Actions = { InputAction.I_MENU_UP, InputAction.I_MENU_ARROW_UP },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_POV_UP,
},

{
Actions = { InputAction.I_MENU_DOWN, InputAction.I_MENU_ARROW_DOWN },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_POV_DOWN,
},

{
Actions = { InputAction.I_MENU_LEFT, InputAction.I_MENU_ARROW_LEFT },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_POV_LEFT,
},

{
Actions = { InputAction.I_MENU_RIGHT, InputAction.I_MENU_ARROW_RIGHT },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_POV_RIGHT,
},

{
Actions = { InputAction.I_Y_JUST, },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON4,
},

--Ranking screen
{
Actions = { InputAction.I_MENU_PREVIOUS, InputAction.I_LB_JUST, },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON6,
},

{
Actions = { InputAction.I_MENU_NEXT, InputAction.I_RB_JUST, },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON5,
},

{
Actions = { InputAction.I_MENU_PREVIOUS_PAGE, InputAction.I_LT_JUST, },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON8,
},

{
Actions = { InputAction.I_MENU_NEXT_PAGE, InputAction.I_RT_JUST, },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON7,
},

--Gameplay
{
--Accelerate
Actions = { Rc2Inputs.ACTION_RACE_ACCELERATE },
Trigger = TriggerType.TriggerStickMove,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_AXIS2_X,
Context = InputActionContext.eContextGameplay,
},

{
--Brake
Actions = { Rc2Inputs.ACTION_RACE_BRAKE },
Trigger = TriggerType.TriggerStickMove,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_AXIS2_Y,
Context = InputActionContext.eContextGameplay,
},

{
--Lean
Actions = { Rc2Inputs.ACTION_RACE_LEAN },
Trigger = TriggerType.TriggerStickMove,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_AXIS1_X,
Context = InputActionContext.eContextGameplay,
},

{
--Handbrake
Actions = { Rc2Inputs.ACTION_RACE_HAND_BRAKE },
Trigger = TriggerType.TriggerButtonDown,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON3,
Context = InputActionContext.eContextGameplay,
},

{
--GearUp
Actions = { Rc2Inputs.ACTION_RACE_GEAR_SHIFT_UP },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON5,
Context = InputActionContext.eContextGameplay,
},

{
--GearDown
Actions = { Rc2Inputs.ACTION_RACE_GEAR_SHIFT_DOWN },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON6,
Context = InputActionContext.eContextGameplay,
},

{
--Respawn
Actions = { Rc2Inputs.ACTION_RACE_RESPAWN },
Trigger = TriggerType.TriggerButtonDown,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON1,
Context = InputActionContext.eContextGameplay,
},

{
--NextView
Actions = { Rc2Inputs.ACTION_RACE_NEXT_VIEW },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_POV_LEFT,
Context = InputActionContext.eContextGameplay,
},

{
--PrevView
Actions = { Rc2Inputs.ACTION_RACE_PREV_VIEW },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_POV_RIGHT,
Context = InputActionContext.eContextGameplay,
},

{
--DisplayDamage
Actions = { WrcInputActions.ACTION_RACE_TOGGLE_DAMAGES },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_POV_DOWN,
Context = InputActionContext.eContextGameplay,
},

{
--DisplayGhost
Actions = { Rc2Inputs.ACTION_RACE_TOGGLE_GHOST_VIEW },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_POV_UP,
Context = InputActionContext.eContextGameplay,
},

{
--Whipers
Actions = { Rc2Inputs.ACTION_RACE_TOGGLE_WIPERS },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON7,
Context = InputActionContext.eContextGameplay,
},

{
--Headlights
Actions = { Rc2Inputs.ACTION_RACE_TOGGLE_HEADLIGHTS },
Trigger = TriggerType.TriggerButtonPress,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON8,
Context = InputActionContext.eContextGameplay,
},

{
--SKIP
Actions = { WrcInputActions.ACTION_RACE_SKIP },
Trigger = TriggerType.TriggerButtonDown,
Control = GenericDeviceControlId.I_ICI_GENERICDEVICE_BUTTON4,
Context = InputActionContext.eContextGameplay,
},
},

4) d:\Games\Steam\steamapps\common\WRC 7\Common\Settings\InputDeviceConfig.lua

--Fanatec ClubSport, Fanatec CSL Elite WheelBase, Podium DD1 WheelBase, Podium DD2 WheelBase
--00010EB7, 0E030EB7, 00050EB7, 00060EB7, 00070EB7
{
GUID ={ 69303, 235081399, 331447, 396983, 462519, },
Axis =
{
--Steering
{
ControlId = GenericDeviceControlId.I_ICI_GENERICDEVICE_AXIS1_X,
DIAxis = DirectInputState.AxislX,
Filter = FilterType.Stick,
},

--Acceleration
{
ControlId = GenericDeviceControlId.I_ICI_GENERICDEVICE_AXIS2_X,
DIAxis = DirectInputState.AxislY,
Filter = FilterType.InvertStick,
},

--Brake
{
ControlId = GenericDeviceControlId.I_ICI_GENERICDEVICE_AXIS2_Y,
DIAxis = DirectInputState.AxislRz,
Filter = FilterType.InvertStick,
},

--Clutch
{
ControlId = GenericDeviceControlId.I_ICI_GENERICDEVICE_AXIS3_X,
DIAxis = DirectInputState.rglSlider0,
Filter = FilterType.InvertStick,
},

--Handbrake
{
ControlId = GenericDeviceControlId.I_ICI_GENERICDEVICE_AXIS3_Y,
DIAxis = DirectInputState.rglSlider1,
Filter = FilterType.InvertStick,
},
},
},
5) Run game after editing the two config files and press the required START button on the Steering Wheel when asked for it (Actions = { InputAction.I_SKIP_MOVIE, ) part of you button layout, if it accepts the input and moves on into the game, you should be good to go, but just check the controller settings that is all correct.

Regards, Ian.
Last edited by MadDog-IC; Jul 8, 2023 @ 1:27am
APC900 Dec 9, 2023 @ 6:43am 
Here's the MOZA R9 GUID.
HID\VID_346E&PID_0002&MI_02\8&69EFF0A&0&0000
Can you adapt it?
Thanks.
APC900 Mar 18, 2024 @ 8:25pm 
Tried it...does not work for me.
Thanks for the effort.
Kristioll Apr 24, 2024 @ 9:12am 
Originally posted by MadDog-IC:
If you could find the GUID for your Wheel setup from the Windows Device Manager, I could make a config file to get it working, I have already done my Fanatec DD1 and F1 wheel.

Fanatec Direct Drive example:

Windows - > Device Manager -> Human Interface Devices -> HID-compliant game controller -> Details -> Property = Device Instance Path.

Hello. I found your answer in the thread asking about the health of Moza R5. I downloaded the image from your link. I haven't tried it yet, but I've roughly figured out what needs to be done. I plan to try it this weekend. But I can't imagine how to identify the buttons and their indicator, and without this it makes no sense to register a base. I would also like to register a handbrake, but here I do not even know how to find it in the devices. If you can help me with some advice, then we could add Moza R9 to the file that you have already made and share it.

My need your help on how to determine the ID of the button on the steering wheel?
i have a moza 12 base ,do you think it is possible to get working if i provide info. be nice to get working. if wrc 9 and 10 work on moza can we not use some sort copy of config file?
< >
Showing 1-5 of 5 comments
Per page: 1530 50