3DS:Rehid: Difference between revisions
More actions
add manual remapping |
even more manual documentation |
||
| Line 67: | Line 67: | ||
# Go to [https://mikahjc.github.io/3dsRemapBuilder/config 3DS Remap Builder] to generate your remappings | # Go to [https://mikahjc.github.io/3dsRemapBuilder/config 3DS Remap Builder] to generate your remappings | ||
# When finished click on '''Show as QR code''' | # 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 a <code>rehid</code> folder on the root of your SD card, or <code>rehid/(title ID)/</code> 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 | # Power on your console and launch rehidHelper | ||
# Select Scan QR Code and scan the generated QR code from the website | # Select Scan QR Code and scan the generated QR code from the website | ||
| Line 77: | Line 78: | ||
<span> | <span> | ||
<ol> | <ol> | ||
<li> Create a <code>rehid.json</code> file with the remappings you want. | <li><p>Create a <code>rehid.json</code> file with the remappings you want. possible options include:</p> | ||
<syntaxhighlight lang="json">{ | <p><code>"keys":</code> which maps a key press to another key press.<br>Possible Keys are: <code>A</code>, <code>B</code>, <code>X</code>, <code>Y</code>, <code>SELECT</code>, <code>START</code>, <code>ZL</code>, <code>ZR</code>, <code>L</code>, <code>R</code>, <code>LEFT</code>, <code>RIGHT</code>, <code>UP</code>, <code>DOWN</code>, <code>CLEFT</code>(CPAD), <code>CRIGHT</code>(CPAD), <code>CUP</code>(CPAD), <code>CDOWN</code>(C-PAD), <code>CSLEFT</code>(C-STICK), <code>CSRIGHT</code>(C-STICK), <code>CSUP</code>(C-STICK), <code>CSDOWN</code>(C-STICK)</p> | ||
<syntaxhighlight lang="json">{"keys":[{"press":"ZR","get":"R"},{"press":"ZL","get":"L"}]}</syntaxhighlight> | |||
}</syntaxhighlight> | |||
<p>With the above, any time you press the {{B|ZR}} key, {{B|R}} key would be triggered, and any time you press the {{B|ZL}} key, {{B|L}} key would be triggered.</p> | <p>With the above, any time you press the {{B|ZR}} key, {{B|R}} key would be triggered, and any time you press the {{B|ZL}} key, {{B|L}} key would be triggered.</p> | ||
<p>You can also do custom key combos | <p>You can also do custom key combos;</p> | ||
<syntaxhighlight lang="json">{ | <syntaxhighlight lang="json">{"keys":[{"press":"X+Y","get":"R"},{"press":"SELECT","get":"L+R"}]}</syntaxhighlight> | ||
}</syntaxhighlight> | |||
<p>With this any time you press {{B|X+Y}}, {{B|R}} key would be triggered, and any time you press the {{B|SELECT}} button, both {{B|L}} and {{B|R}} would be triggered.</p> | <p>With this any time you press {{B|X+Y}}, {{B|R}} key would be triggered, and any time you press the {{B|SELECT}} button, both {{B|L}} and {{B|R}} would be triggered.</p> | ||
<p> | <p><code>"cpad":</code>, which maps a key press to a circle pad x and y coordinate from -190 to 190;</p> | ||
<syntaxhighlight lang="json">{"cpad":[{"press":"CUP","get":[0,190]},{"press":"CDOWN","get":[0,-190]},{"press":"CLEFT","get":[-190,0]},{"press":"CRIGHT","get":[190,0]}]}</syntaxhighlight> | |||
<p><code>"touch":</code>, which maps a key press to a touchscreen x and y coordinate from 0,0 top left to 320,240 bottom right;</p> | |||
<syntaxhighlight lang="json">{"touch":[{"press":"LEFT+UP","get":[0,0]},{"press":"RIGHT+DOWN","get":[320,240]}]}</syntaxhighlight> | |||
<p><code>"touchtokeys":</code> which maps two coordinate pairs to make a box on the touch screen that when tapped will output a key press;</p> | |||
<syntaxhighlight lang="json">{"touchtokeys":[{"press":[0,0,50,50],"get":"A"}]}</syntaxhighlight> | |||
<p>For this example, tapping anywhere in a 50x50 pixel box in the top left will press A.</p> | |||
<p>Other options include:<br> | |||
<code>"cpadtodpad":true</code> maps the C-pad to the D-pad<br> | |||
<code>"dpadtocpad":true</code> maps the D-pad to the C-pad<br> | |||
<code>"overidecpadpro":true</code> makes it so games don't recognize the circle pad pro<br> | |||
<code>"homebutton":</code> maps the HOME button to a key press</p> | |||
<p>These Options can be strung together into a single line, for example:</p> | |||
<syntaxhighlight lang="json">{"keys":[{"press":"ZR","get":"R"},{"press":"ZL","get":"L"}],"cpad":[{"press":"CUP","get":[0,190]},{"press":"CDOWN","get":[0,-190]}],"touch":[{"press":"LEFT+UP","get":[0,0]},{"press":"RIGHT+DOWN","get":[320,240]}],"touchtokeys":[{"press":[0,0,50,50],"get":"A"}],"cpadtodpad":true,"dpadtocpad":true,"overridecpadpro":true,"homebutton":"ZR+ZL"}</syntaxhighlight> | |||
</li> | |||
<li>Copy <code>rehid.json</code> to a <code>rehid</code> folder on the root of your SD card | <li>Copy <code>rehid.json</code> to a <code>rehid</code> folder on the root of your SD card | ||
<ul> | <ul> | ||
Revision as of 19:47, 27 March 2024
![]() | |
| Developer(s) | hax0kartik |
|---|---|
| Console | Nintendo 3DS |
| Version | 4.0 (July 20, 2023) |
| Links | |
| GitHub | hax0kartik/rehid |
| Download | |
rehid is a rewrite of the 3DS' hid module, to allow for the remapping of buttons or the touch screen.
Installation
what you need
- A working internet connection
- Universal Updater installed on your console
- Luma3DS updated to 13.0+
instructions
- Power on the console
- Launch Universal-Updater
- Tap the magnifying glass on the bottom screen, then search for rehid
- Press A while hovering over rehid from the list of homebrew
- Choose
rehidhelper.cia - Wait until the app installs
- Close Universal-Updater
- Launch rehidHelper and select
Download Rehid - Wait for it to download and reboot, then press B to exit the app
- Power off your Console
- While holding SELECT, power on your console to enter Luma3DS configuration
- Ensure that "Enable loading external FIRMs and modules" is selected
- Press START to save and exit
what you need
- the latest release of rehid (the
0004013000001D02.cxiandrehidhelper.ciafiles) - FBI installed on your console
- Luma3DS updated to 13.0+
Instructions
- Copy
0004013000001D02.cxitosd:/luma/sysmodules/- Create the folder
sysmodulesif it doesn't exist
- Create the folder
- Copy
rehidhelper.ciato the root of your SD card - Reinsert your SD card into your console
- Launch FBI and select
SD->rehidhelper.cia->Install and delete CIA - Press A and wait for the CIA to install, then exit FBI
- Power off your Console
- While holding SELECT, power on your console to enter Luma3DS configuration
- Ensure that "Enable loading external FIRMs and modules" is selected
- Press START to save and exit
Remapping buttons
- Go to 3DS Remap Builder to generate your remappings
- 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
rehid.jsoninto arehidfolder on the root of your SD card, orrehid/(title ID)/to remap a specific game. You can find the title ID of your game using 3dsdb
- If you are unable to scan QR codes on your console, instead click Build this remap and place the downloaded
- 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 for all titles
- Press start to exit
Create a
rehid.jsonfile with the remappings you want. possible options include:"keys":which maps a key press to another key press.
Possible Keys 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){"keys":[{"press":"ZR","get":"R"},{"press":"ZL","get":"L"}]}
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.
You can also do custom key combos;
{"keys":[{"press":"X+Y","get":"R"},{"press":"SELECT","get":"L+R"}]}
With this any time you press X+Y, R key would be triggered, and any time you press the SELECT button, both L and R would be triggered.
"cpad":, which maps a key press to a circle pad x and y coordinate from -190 to 190;{"cpad":[{"press":"CUP","get":[0,190]},{"press":"CDOWN","get":[0,-190]},{"press":"CLEFT","get":[-190,0]},{"press":"CRIGHT","get":[190,0]}]}
"touch":, which maps a key press to a touchscreen x and y coordinate from 0,0 top left to 320,240 bottom right;{"touch":[{"press":"LEFT+UP","get":[0,0]},{"press":"RIGHT+DOWN","get":[320,240]}]}
"touchtokeys":which maps two coordinate pairs to make a box on the touch screen that when tapped will output a key press;{"touchtokeys":[{"press":[0,0,50,50],"get":"A"}]}
For this example, tapping anywhere in a 50x50 pixel box in the top left will press A.
Other options include:
"cpadtodpad":truemaps the C-pad to the D-pad
"dpadtocpad":truemaps the D-pad to the C-pad
"overidecpadpro":truemakes it so games don't recognize the circle pad pro
"homebutton":maps the HOME button to a key pressThese Options can be strung together into a single line, for example:
{"keys":[{"press":"ZR","get":"R"},{"press":"ZL","get":"L"}],"cpad":[{"press":"CUP","get":[0,190]},{"press":"CDOWN","get":[0,-190]}],"touch":[{"press":"LEFT+UP","get":[0,0]},{"press":"RIGHT+DOWN","get":[320,240]}],"touchtokeys":[{"press":[0,0,50,50],"get":"A"}],"cpadtodpad":true,"dpadtocpad":true,"overridecpadpro":true,"homebutton":"ZR+ZL"}
- Copy
rehid.jsonto arehidfolder on the root of your SD card- If you want to the remapping to be used for a specific title, copy
rehid.jsontorihid/(title ID)/instead. You can find the title ID of your game using 3dsdb
- If you want to the remapping to be used for a specific title, copy
Troubleshooting
An exception occurred
If your console crashes while booting with "an exception occurred" and the "current proccess:" is hid, you may have an old version of rehid thats causing issues. Look for and delete /luma/titles/0004013000001D02 and /luma/titles/0004013000003302. If these don't exist, you may have a more serious hardware issue, join the Nintendo Homebrew Discord and ask, in English, for help.
