|
|
(4 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| {{Infobox homebrew | | {{Infobox homebrew |
| | title = rehid | | | title = Rehid |
| | image = rehid-Helper-banner.png | | | image = rehid-Helper-banner.png |
| | imagealt = rehidHelper banner as used on the HOME Menu | | | imagealt = RehidHelper banner as used on the HOME Menu |
| | for3ds = 1 | | | for3ds = 1 |
| | developers = hax0kartik | | | developers = hax0kartik |
Line 11: |
Line 11: |
| | universaldb = 3ds/rehid | | | universaldb = 3ds/rehid |
| }} | | }} |
| '''rehid''' is a rewrite of the 3DS' hid module, to allow for the remapping of buttons or the touch screen. | | '''Rehid''' is a rewrite of the 3DS' hid module, that allow for the remapping of buttons or the touch screen in 3DS titles. |
|
| |
|
| =Installation= | | =Installation= |
Line 31: |
Line 31: |
| # Wait until the app installs | | # Wait until the app installs |
| # Close '''Universal-Updater''' | | # Close '''Universal-Updater''' |
| # Launch '''rehidHelper''' and select <code>Download Rehid</code> | | # Launch '''RehidHelper''' and select <code>Download Rehid</code> |
| # Wait for it to download and reboot, then press {{B|B}} to exit the app | | # Wait for it to download and reboot, then press {{B|B}} to exit the app |
| # Power off your Console | | # Power off your Console |
Line 42: |
Line 42: |
| <span> | | <span> |
| ===what you need=== | | ===what you need=== |
| * the latest release of [https://github.com/hax0kartik/rehid/releases/latest rehid] (the <code>0004013000001D02.cxi</code> and <code>rehidhelper.cia</code> files) | | * the latest release of [https://github.com/hax0kartik/rehid/releases/latest Rehid] (the <code>0004013000001D02.cxi</code> and <code>rehidhelper.cia</code> files) |
| * [[3DS:FBI|FBI]] installed on your console | | * [[3DS:FBI|FBI]] installed on your console |
| * [[3DS:luma3DS|Luma3DS]] updated to 13.0+ | | * [[3DS:luma3DS|Luma3DS]] updated to 13.0+ |
Line 65: |
Line 65: |
| |-|Generated= | | |-|Generated= |
| <span> | | <span> |
| # 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 configure your key mappings |
| # 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 |
| # Press {{B|A}} to proceed | | # Press {{B|A}} to proceed |
| # Select a title from the list for the remap to be applied to, or select global for all titles | | # Select a title from the list for the remap to be applied to, or select global for all titles |
| # Press {{B|start}} to exit | | # Press {{B|start}} to exit |
| | </span> |
| | |
| | |-|Generated(broken camera)= |
| | <span> |
| | <ol> |
| | <li>Go to [https://mikahjc.github.io/3dsRemapBuilder/config 3DS Remap Builder] to configure your key mappings</li> |
| | <li>When finished click on '''Build this remap''' and download <code>rehid.json</code></li> |
| | <li>Copy <code>rehid.json</code> to a <code>rehid</code> folder on the root of your SD card |
| | <ul> |
| | <li>If you want the remap to be used for a specific title, copy <code>rehid.json</code> to <code>rihid/(title ID)/</code> instead. You can find the title ID of your game using [https://3dsdb.com/ 3dsdb]</li></ul> |
| | </li> |
| | </ol> |
| </span> | | </span> |
|
| |
|
Line 78: |
Line 89: |
| <span> | | <span> |
| <ol> | | <ol> |
| <li><p>Create a <code>rehid.json</code> file with the remappings you want. possible options include:</p> | | <li><p>Create a <code>rehid.json</code> file with the key mappings you want. possible options include:</p> |
| <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> | | <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 lang="json">{"keys":[{"press":"ZR","get":"R"},{"press":"ZL","get":"L"}]}</syntaxhighlight> |
Line 87: |
Line 98: |
| <p><code>"cpad":</code>, which maps a key press to a circle pad x and y coordinate from -190 to 190;</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> | | <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> | | <p><code>"touch":</code>, which maps a key press to a given x,y coordinate on the touchscreen 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> | | <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> | | <p><code>"touchtokeys":</code> which maps a box starting at a given x,y coordinate, with a given height and width, that when tapped will output a key press;</p> |
| <syntaxhighlight lang="json">{"touchtokeys":[{"press":[0,0,50,50],"get":"A"}]}</syntaxhighlight> | | <syntaxhighlight lang="json">{"touchtokeys":[{"press":[10,20,50,100],"get":"A"}]}</syntaxhighlight> |
| <p>For this example, tapping anywhere in a 50x50 pixel box in the top left will press A.</p> | | <p>For this example, it creates a box starting at x=10 y=20, with a height of 50 and a width of 100.</p> |
| <p>Other options include:<br> | | <p>Other options include:<br> |
| <code>"cpadtodpad":true</code> maps the C-pad to the D-pad<br> | | <code>"cpadtodpad":true</code> maps the C-pad with D-pad key presses<br> |
| <code>"dpadtocpad":true</code> maps the D-pad to the C-pad<br> | | <code>"dpadtocpad":true</code> maps the D-pad with C-pad key presses<br> |
| <code>"overidecpadpro":true</code> makes it so games don't recognize the circle pad pro<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> | | <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> | | <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> | | <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":[10,20,50,100],"get":"A"}],"cpadtodpad":true,"dpadtocpad":true,"overridecpadpro":true,"homebutton":"ZR+ZL"}</syntaxhighlight> |
| </li> | | </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> |
| <li>If you want to the remapping to be used for a specific title, copy <code>rehid.json</code> to <code>rihid/(title ID)/</code> instead. You can find the title ID of your game using [https://3dsdb.com/ 3dsdb]</li></ul> | | <li>If you want the remap to be used for a specific title, copy <code>rehid.json</code> to <code>rihid/(title ID)/</code> instead. You can find the title ID of your game using [https://3dsdb.com/ 3dsdb]</li></ul> |
| </li> | | </li> |
| </ol> | | </ol> |
Line 111: |
Line 122: |
|
| |
|
| ===An exception occurred=== | | ===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 <code>/luma/titles/0004013000001D02</code> and <code>/luma/titles/0004013000003302</code>. If these don't exist, you may have a more serious hardware issue, join the [https://discord.gg/C29hYvh Nintendo Homebrew Discord] and ask, in English, for help. | | 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 <code>/luma/titles/0004013000001D02</code> and <code>/luma/titles/0004013000003302</code>. If these don't exist, you may have a more serious hardware issue, join the [https://discord.gg/C29hYvh Nintendo Homebrew Discord] and ask, in English, for help. |
|
| |
|
|
| |
|
| [[Category:Nintendo 3DS guides]] | | [[Category:Nintendo 3DS guides]] |
| [[Category:Nintendo 3DS homebrew]] | | [[Category:Nintendo 3DS homebrew]] |