Here's a description of how to set this up in linux with the Logitech G29, which is a force feedback wheel with 3 pedals and optional gearstick. The force feedback is used here only to centre the wheel. Gearchange is via either the gearstick or the steering wheel paddles.
Quick explanation - The wheel and pedals are connected to the emulated analogue interface, and the buttons/paddles on the wheel and gearshift are connected to a separate emulated joystick interface, and mapped to keyboard keys. This is even better than the setup described in the manual (which still relied on the keyboard for changing gear).
Wheel setup
- Set the wheel to PS3 mode via the PS3/PS4 mode switch, and plug it in to a USB port.
- In linux the wheel defaults to "compatibility" mode, but this is no good, we want "native" mode. Download and compile ltwheelconf (you may need libusb-1.0-0-dev for this).
- Use ltwheelconf to set the wheel in native mode, then perform a reset (wait for the wheel to calibrate itself between commands):
Code: Select all
sudo ltwheelconf --wheel G27 -n sudo ltwheelconf --wheel G27 -x
- If this was successful, the wheel will now self-centre (whereas by default when plugged in, it just turns freely). If you like, you can set a udev rule to do this configuration automatically whenever you plug it in.
- The wheel appears (in native mode) as a single joystick with 4 axes, 1 hat and 23 buttons. The 4 axes will be assigned to the 4 analogue channels of the AKA10 podule in Arculator. The buttons will be mapped to appropriate keys, using one of the supported joystick interfaces.
- The axes are: 0 wheel, 1 clutch, 2 accel, 3 brake
- The most useful buttons are: 4 shift up, 5 shift down, 10 Enter/R3, 11 L3, 20 plus, 21 minus, 12-17 gear 1-6, 22 reverse
- Arculator v2.1 supports the gamespad joystick interface, which can read a lot of buttons, but I couldn't get it to work - I probably haven't got the right RISC OS drivers. However the emulated Serial Port/VT joystick interface worked fine for me, with these drivers.
- The Serial Port/VT joystick interface supports 10 buttons, which is good. Arculator maps 8 of these "buttons" to 4 analogue axes of the host joysticks, which is not what we want here - we want all the emulated buttons to be mapped to the relevant G29 buttons. So I added another joystick interface to Arculator, which is the same as the Serial Port one, but only maps buttons from the host joystick, and ignores the analogue axes. The updated source files are joystick.h, joystick.c and printer.c, plus a minor change to wx-sdl2-joystick.c to allow all the buttons to be shown in the menus (there are no changes to the code for the existing joystick interfaces).
- Compile Arculator for linux, using the modified joystick sources (some hints here).
- Run Arculator and create a new machine configuration - I would suggest an A5000 with RISC OS 3.1.
- In the joystick configuration tab, select the new interface "TSP / VT interface buttons only".
- Configure joystick 1: Device=Logitech G29, Up=4, Down=5, Left=10, Right=11, Fire=20, Stir=21
- Configure joystick 2: Device=Logitech G29, Up=12, Down=13, Left=14, Right=15, Fire=16, Stir=22
- Configure podule 2 as AKA10/15 IO/MIDI Podule (the real podule is full size and goes in slot 2)
- Configure podule joystick 1: Device=Logitech G29, X=axis 0, Y=axis 2, Fire=button 0 (not actually used)
- Configure podule joystick 2: Device=Logitech G29, X=axis 3, Y=axis 1, Fire=button 1 (not actually used)
- Start the emulated machine and check that the podule is loaded (you need to put the aka10 ROM in podules/aka10)
Code: Select all
*podules Podule 2: Midi and BBC I/O podule
- Check that the analogue inputs are working by entering the following in BASIC and moving the wheel and pedals - you should be able to see values between 0 and 65535 for the full range of movement:
Code: Select all
*basic REPEAT:FOR i% = 1 TO 4:PRINTTAB(0,i%);ADVAL(i%);SPC(5):NEXT:UNTIL0
- Copy the Serial Port/VT joystick drivers into hostfs, make sure that RISC OS has seen them, and then double-click on the attached SCars_G29 key mapping file (filetype &C8B) to activate it.
- Run the !Key_Test application to check that the G29 buttons are pressing the correct keys.
- Up arrow - shift up paddle
- Down arrow - shift down paddle
- n (neutral) - both paddles together
- b (horn) - Enter/R3
- m (fix mirror/call mechanic) - L3
- s (start engine) - plus
- a (stop engine) - both paddles and plus
- h (handbrake) - minus
- q-f12 (exit session) - both paddles and Enter/R3
- keypad 1-5 (manual gears) - gearshift
- r (reverse) - gearshift
Saloon Cars setup
- Copy Saloon Cars into hostfs (or your emulated hard disc). The "Risc PC compatible" version from the APDL Racing Collection is good because it doesn't need a protection disc and runs fine from hostfs. But if you use this version, open up !SaloonCar.Protect.Object and comment out the first line that loads rpcpatch, because this patch stops the game from running in Arculator.
- In the Saloon Cars control menu, select custom controls, and change the steering and pedals to analogue. Leave the others unchanged (if you change them, there seems to be a bug where there are two options called "keyboard", but only one of them works).
- For manual gearbox, use the shifter or the paddles. For automatic, use the paddles to select between D, N, R. I'm not sure how kickdown is supposed to work with the analogue pedals - logically the game would just use the full throttle position, but it doesn't. I haven't looked at this because I'm too busy trying to improve my lap times with the manual gearbox.