ReCarbonby RetroNativealpha

Garage ยท Controls

Tune your controls

ReCarbon turns the keyboard into an Xbox 360 controller. Pick a device, a mode and a keyboard preset (WASD, Arrows); hover, tap or tab through the list to light up each control. The Garage shows ReCarbon's built-in presets only: your own profiles are made in game.

escF1F2F3F4F5F6F7F8F9F10F11F12del โŒฆ`1234567890-=delete โŒซhometabQWERTYUIOP[]\pg upcapsASDFGHJKL;'returnpg dnshift โ‡งZXCVBNM,./shiftโ†‘endfnโŒƒ ctrlโŒฅ optโŒ˜ cmdspaceโŒ˜โŒฅโ†โ†“โ†’
LTL2RTR2LBL1RBR1LSRSโ–ฒโ–ผโ—€โ–ถYโ–ณXโ–กBโ—‹Aโœ•ViewCreateMenuOptionsโŒ‚REARP1P2
  • LTL2Brake / Reverse
  • LBL1Look Back
  • LSLSSteering Left / Rightโ†‘ โ†“: to verify ยท press: to verify
  • โœ›โœ›to verify
  • โง‰โง‰to verify
  • โ‰กโ‰กPause
  • RTR2Throttle
  • RBR1Change Camera
  • Aโœ•to verify
  • Bโ—‹to verify
  • Xโ–กto verify
  • Yโ–ณto verify
  • RSRSGear Up / Downto verify ยท press: to verify
  • LSLSNavigate
  • โœ›โœ›Navigate
  • โง‰โง‰Back
  • โ‰กโ‰กStart / Done
  • Aโœ•Confirm
  • Bโ—‹Back
  • LBL1Previous Tab
  • LSLSNavigate
  • โœ›โœ›Navigate
  • โง‰โง‰Hold Both
  • โ‰กโ‰กSettings
  • RBR1Next Tab
  • Aโœ•Set Key
  • Bโ—‹Close / Back
  • Xโ–กReset Control
  • Yโ–ณClear Key Slot

Not yet tested on a physical controllerMapping unit-testedPaddles not mappedNotes

Hover, tap or focus a control to see its keys, its settings.toml name and how it was verified.

Drive In a race or free-roam.

Known actions

Bound, action to verifyTo verify

These keys and buttons are bound to Xbox controls (that part is tested), but what each does in a race isn't known yet. Nitrous, Handbrake, Speedbreaker, gear shifts, Change Camera and Look Back aren't tied to any of them yet: that waits for a hand test.

Menu The game's own menus.

Known actions

Settings ReCarbon's Settings overlay (F1).

ReCarbon's Settings keys

Text table: every mode

Drive: In a race or free-roam.

ControlKeyboard: WASDKeyboard: ArrowsControllerDoesStatus
Right triggerright_triggerWโ†‘RT (right trigger)ThrottleHand-verified
Left triggerleft_triggerSโ†“LT (left trigger)Brake / ReverseHand-verified
Left stick โ† โ†’left_stick_leftleft_stick_rightA, โ†, D, โ†’โ†, โ†’Left stickSteering Left / RightHand-verified
Left stick โ†‘ โ†“left_stick_upleft_stick_downโ†‘, โ†“No keyLeft stickAction to verifyTo verify
A (South)aspacespaceA (South)Action to verifyTo verify
B (East)bdelete โŒซdelete โŒซB (East)Action to verifyTo verify
X (West)xshift โ‡งshift โ‡งX (West)Action to verifyTo verify
Y (North)yโŒƒ ctrlโŒƒ ctrlY (North)Action to verifyTo verify
Left bumperlbQQLB (left bumper)Look BackAutomated
Right bumperrbEERB (right bumper)Change CameraAutomated
D-paddpad_updpad_downdpad_leftdpad_rightโ†‘, โ†“, โ†, โ†’W, S, A, DD-pad up, D-pad down, D-pad left, D-pad rightAction to verifyTo verify
Menu (Start)startreturnreturnMenu (Start)PauseAutomated
View (Back)backescescView (Back)Action to verifyTo verify
Right stick โ†‘ โ†“right_stick_upright_stick_downO, LO, LRight stickGear Up / DownAutomated
Right stick โ† โ†’right_stick_leftright_stick_rightK, ;K, ;Right stickAction to verifyTo verify
Left stick clickleft_stick_clickZZLeft stickAction to verifyTo verify
Right stick clickright_stick_clickCCRight stickAction to verifyTo verify

Menu: The game's own menus.

ControlKeyboard: WASDKeyboard: ArrowsControllerDoesStatus
Left stick โ†‘ โ†“left_stick_upleft_stick_downโ†‘, โ†“No keyLeft stickNavigateFrom source
A (South)aspacespaceA (South)ConfirmHand-verified
B (East)bdelete โŒซdelete โŒซB (East)BackHand-verified
D-paddpad_updpad_downdpad_leftdpad_rightโ†‘, โ†“, โ†, โ†’W, S, A, DD-pad up, D-pad down, D-pad left, D-pad rightNavigateHand-verified
Menu (Start)startreturnreturnMenu (Start)Start / DoneAutomated
View (Back)backescescView (Back)BackFrom source

Settings: ReCarbon's Settings overlay (F1).

ControlKeyboard: WASDKeyboard: ArrowsControllerDoesStatus
Open / Close SettingsF1, โŒ˜ cmd + ,View (Back) + Menu (Start)Any time, in game or in menus. On a Mac keyboard F1 is the brightness key: press Fn+F1, or Cmd+,.From source
Previous / Next TabQ, ELB (left bumper), RB (right bumper)The tabs, in order: Display, Graphics, Audio, Input, Controls, Controller, Advanced.From source
Navigate / Change Valueโ†‘, โ†“, โ†, โ†’D-pad up, D-pad down, D-pad left, D-pad right, Left stickChoose a row and change its value. On the Controls page, left and right pick the key slot (first or second key).From source
Activate / Set KeyspaceA (South)Dear ImGui's keyboard navigation: Space activates. On the Controls page it waits for the new key.From source
Clear Key Slotdelete โŒซY (North)On the Controls page: sets the chosen slot to none.From source
Reset Controldel โŒฆX (West)On the Controls page: both slots go back to their defaults.From source
Close / BackescB (East)Also cancels the Quit Game confirmation.From source
Presets and your own profiles

ReCarbon has two built-in keyboard presets. WASD, what a new player starts with, is the original layout: it drives with W A S D, and the arrow keys work the left stick (Left and Right steer too) and the D-pad at once. Arrows drives with the arrows and leaves W A S D to the D-pad; in it no key does two things. The built-ins can't be changed.

Custom profiles are configured in game, not on this site. Open Settings (F1,Fn+F1 or โŒ˜+,) and go to Controls with Q /E: the Keyboard Profile row switches profiles at once. Rebinding a key of a built-in preset makes a copy of it, such as โ€œWASD (custom)โ€. Controller buttons are rebound on theController tab, which has its own Controller Profile row.

Profiles live in ~/Library/Application Support/ReCarbon/profiles/ (keyboard.toml andcontroller.toml). The active keyboard profile's keys are also written to the [keys]table of settings.toml, so an older ReCarbon still finds them.More on profiles

Controller notes
  • Tested The default mapping below is pinned by unit tests.
  • Automated SDL's virtual controller drives the menus, survives unplugging, and rebinds buttons in Settings > Controller. That is automated evidence, not a hardware test.
  • Pending No physical controller has been hand-tested with ReCarbon yet, and controller rebinding hasn't been tried on hardware. What each button does in a race is still to verify.

Default controller profile

Pads are read through SDL3 by button position. The Xbox / PlayStation switch above changes the names shown, not this mapping. Triggers, sticks and their deadzones are fixed; only the buttons can be rebound, in game.

Xbox 360 controlPad button (position)PlayStation-style label
AA (South)Cross (South)
BB (East)Circle (East)
XX (West)Square (West)
YY (North)Triangle (North)
BackView (Back)Create (Back)
StartMenu (Start)Options (Start)
Left Stick ClickLeft stick pressLeft stick press (L3)
Right Stick ClickRight stick pressRight stick press (R3)
LBLB (left bumper)L1 (left bumper)
RBRB (right bumper)R1 (right bumper)
D-pad UpD-pad upD-pad up
D-pad DownD-pad downD-pad down
D-pad LeftD-pad leftD-pad left
D-pad RightD-pad rightD-pad right
  • Not mapped Back paddles, extra buttons and the Guide button aren't read by ReCarbon. If a pad's own firmware or software remaps a paddle to another button, it acts as that button: ReCarbon only sees the result.

Tested controllers

None yet: the physical controller test is deferred. A controller model is listed here only after it passes a physical hand test with ReCarbon; virtual-controller runs don't count. A listing records a test result; it is not an endorsement or a recommendation.

Status legend

  • Tested Pinned by ReCarbon's unit tests.
  • Automated Seen in scripted or virtual-controller runs, not yet by hand.
  • Hand-verified Checked by a person in a hand test.
  • From source Read from ReCarbon's code or option text; not yet hand-tested.
  • Pending Expected from the option text; waiting for its hand test.
  • To verify The control is bound, but what it does in the game is not known yet.
  • Not mapped ReCarbon does not read this input (yet).

Generated from ReCarbon's source:runtime/user/settings.cpp, runtime/hid/key_map.h, runtime/hid/pad_map.h, runtime/hid/input.cpp, runtime/user/key_names.h, runtime/ui/ui.cpp, runtime/ui/settings_menu.cpp, tests/pad_map_test.cpp, runtime/hid/profiles.h, tests/profiles_test.cpp.