'''rehid''' is a rewrite of the 3DS' hid module that allows you to flexibly remap buttons or the touch screen in 3DS titles.
== Features ==
* '''Remapping Buttons''' - Rehid allows you to remap buttons or combinations of buttons to different buttons or combos.
* '''Remapping Directional Input''' - Rehid also lets you remap the circle pad, remap the C stick, and/or map the circle pad and D-pad to each other.
* '''Remapping Touch''' - You can assign button inputs to points on the touchscreen, or map specific parts of the touchscreen to buttons.
* '''Per-Game Remaps''' - Rehid allows you to choose between applying a remap to only one specific title or applying it to all titles at once.
* '''RehidHelper''' - Rehid features an app to help you download its sysmodules, scan QR codes to install remaps, or disable rehid entirely.
== Installation ==
<tabber>
|-|Universal-Updater=
<span>
=== What you need ===
* A working internet connection
* [[3DS:Universal-Updater|Universal-Updater]] installed on your console
* [[3DS:luma3DS|Luma3DS]] updated to 13.0+
=== Instructions ===
# Power on your console
# Launch '''Universal-Updater'''
# Select the magnifying glass on the bottom screen, then search for '''rehid'''
# Press {{B|A}} while hovering over '''rehid''' from the list of homebrew
# Choose <code>rehidhelper.cia</code>
# Wait until the app finishes installing
# Close '''Universal-Updater'''
# Launch '''RehidHelper''' and select <code>Download Rehid</code>
# Wait for it to download and reboot, then press {{B|B}} to exit the app
# Power off your console
# While holding {{B|SELECT}}, power on your console to enter [[3DS:Luma3DS/Configuration|the Luma3DS configuration menu]]
# Turn on '''Enable loading external FIRMs and modules''' if it is not already enabled
# Press {{B|START}} to save and exit
</span>
|-|Manual=
<span>
=== What you need ===
* The latest release of {{GitHub|hax0kartik/rehid/releases/latest|'''rehid'''}} (the <code>0004013000001D02.cxi</code> and <code>rehidhelper.cia</code> files)
* [[3DS:FBI|FBI]] installed on your console
* A v13.0 or higher version of [[3DS:luma3DS|Luma3DS]]' <code>boot.firm</code> on the root of your SD card
=== Instructions ===
# Copy <code>0004013000001D02.cxi</code> to <code>sd:/luma/sysmodules/</code>
#* Create the folder <code>sysmodules</code> if it doesn't exist
# Copy <code>rehidhelper.cia</code> to the root of your SD card
# Reinsert your SD card into your console
# Launch '''FBI''' and select <code>SD</code> -> <code>rehidhelper.cia</code> -> <code>Install and delete CIA</code>
# Press {{B|A}} and wait for the CIA to install, then exit '''FBI'''
# Power off your console
# While holding {{B|SELECT}}, power on your console to enter [[3DS:Luma3DS/Configuration|the Luma3DS configuration menu]]
# Turn on '''Enable loading external FIRMs and modules''' if it is not already enabled
# Press {{B|START}} to save and exit
</span>
</tabber>
== Usage ==
=== Adding configs ===
# Open the [https://mikahjc.github.io/3dsRemapBuilder/config 3DS Remap Builder] and configure your key mappings
# When finished, click on '''Show as QR code'''
#* If you are unable to scan QR codes on your console, instead click '''Build this remap''' and place the downloaded <code>rehid.json</code> into the folder <code>sd:/rehid</code>, or <code>sd:/rehid/<title ID>/</code> if you only want to remap a specific game. You can find the title ID of your game using [https://3dsdb.com/ 3dsdb]
# Power on your console and launch '''RehidHelper'''
# Select '''Scan QR Code''' and scan the generated QR code from the website
# Press {{B|A}} to proceed
# Select a title from the list for the remap to be applied to, or select global to apply it to the entire console
# Press {{B|START}} to exit
=== Disabling Rehid ===
# Launch '''RehidHelper''' from the HOME Menu
# Select '''Toggle Rehid State'''
# Press {{B|B}} to reboot
=== Removing configs ===
* For global configurations, delete <code>sd:/rehid/rehid.json</code> or, for a configuration set to a title delete <code>sd:/rehid/<title ID>/rehid.json</code>
== Configuration ==
=== Config file ===
=== Config file ===
Rehid stores its key mappings in <code>.json</code> files located either as <code>sd:/rehid/rehid.json</code> for global mappings or in a title ID folder within <code>sd:/rehid/</code> to use with a specific title. You can manually create your own key mappings by creating a <code>rehid.json</code> file with the key mappings you want.
Rehid stores its key mappings in <code>.json</code> files located either as <code>sd:/rehid/rehid.json</code> for global mappings or in a title ID folder within <code>sd:/rehid/</code> to use with a specific title. You can manually create your own key mappings by creating a <code>rehid.json</code> file with the key mappings you want.
Line 5:
Line 101:
|+ '''Documentation'''
|+ '''Documentation'''
|-
|-
|
|
: <code>"keys":</code> Maps one or more keys to press different key(s).
: <code>"keys":</code> Maps one or more keys to press different key(s).
:: Syntax: <syntaxhighlight lang="json">{
:: Syntax: <syntaxhighlight lang="json">{
Line 23:
Line 119:
}</syntaxhighlight>
}</syntaxhighlight>
:: With this, pressing {{B|X+Y}} will trigger {{B|R}} instead, and pressing {{B|SELECT}} will trigger both {{B|L}} and {{B|R}} at the same time.
:: With this, pressing {{B|X+Y}} will trigger {{B|R}} instead, and pressing {{B|SELECT}} will trigger both {{B|L}} and {{B|R}} at the same time.
: <code>"turbo":</code> Maps one or more key(s) to toggle different key(s) to be repeatedly triggered with a given delay.
:: Syntax: <syntaxhighlight lang="json">{
"turbo":[
{"press":"ZL+ZR","get":"A","framedelay":5}
]
}</syntaxhighlight>
:: With the above, any time you press the {{B|ZL+ZR}} key, {{B|A}} key would be repeatedly triggered, with a HID-frame delay of 5. Unlike other options, "turbo" does not prevent the "press" key(s) from triggering.
: <code>"cpad":</code> Maps a key press to the given XY coordinates on the Circle Pad, between -190 and 190.
: <code>"cpad":</code> Maps a key press to the given XY coordinates on the Circle Pad, between -190 and 190.
If you are unable to scan QR codes on your console, instead click Build this remap and place the downloaded rehid.json into the folder sd:/rehid, or sd:/rehid/<title ID>/ if you only want to remap a specific game. You can find the title ID of your game using 3dsdb
Power on your console and launch RehidHelper
Select Scan QR Code and scan the generated QR code from the website
Press A to proceed
Select a title from the list for the remap to be applied to, or select global to apply it to the entire console
Press START to exit
Disabling Rehid
Launch RehidHelper from the HOME Menu
Select Toggle Rehid State
Press B to reboot
Removing configs
For global configurations, delete sd:/rehid/rehid.json or, for a configuration set to a title delete sd:/rehid/<title ID>/rehid.json
Configuration
Config file
Rehid stores its key mappings in .json files located either as sd:/rehid/rehid.json for global mappings or in a title ID folder within sd:/rehid/ to use with a specific title. You can manually create your own key mappings by creating a rehid.json file with the key mappings you want.
Documentation
"keys": Maps one or more keys to press different key(s).
With the above, any time you press the ZR key, R key would be triggered, and any time you press the ZL key, L key would be triggered.
The keys you can use for this are: A, B, X, Y, SELECT, START, ZL, ZR, L, R, LEFT, RIGHT, UP, DOWN, CLEFT(CPAD), CRIGHT(CPAD), CUP(CPAD), CDOWN(C-PAD), CSLEFT(C-STICK), CSRIGHT(C-STICK), CSUP(C-STICK), CSDOWN(C-STICK)
You can use this to do custom key combos, such as the following:
With the above, any time you press the ZL+ZR key, A key would be repeatedly triggered, with a HID-frame delay of 5. Unlike other options, "turbo" does not prevent the "press" key(s) from triggering.
"cpad": Maps a key press to the given XY coordinates on the Circle Pad, between -190 and 190.