Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
(pretty-print?)
(collapsible documentation)
 
Line 1: Line 1:
=== 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. Possible options include:
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.
* <code>"keys":</code> Maps one or more keys to press different key(s).
{| class="mw-collapsible mw-collapsed"
** Syntax: <syntaxhighlight lang="json">{
|+ '''Documentation'''
|-
|
: <code>"keys":</code> Maps one or more keys to press different key(s).
:: Syntax: <syntaxhighlight lang="json">{
     "keys":[
     "keys":[
         {"press":"ZR","get":"R"},
         {"press":"ZR","get":"R"},
Line 8: Line 12:
     ]
     ]
}</syntaxhighlight>
}</syntaxhighlight>
*: 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.
:: 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.
*:: The keys you can use for this 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)
::: The keys you can use for this 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)
*: You can use this to do custom key combos, such as the following:
:: You can use this to do custom key combos, such as the following:
*::<syntaxhighlight lang="json">{
::<syntaxhighlight lang="json">{
     "keys":[
     "keys":[
         {"press":"X+Y","get":"R"},
         {"press":"X+Y","get":"R"},
Line 17: Line 21:
     ]
     ]
}</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>"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.
** Syntax: <syntaxhighlight lang="json">{
:: Syntax: <syntaxhighlight lang="json">{
     "cpad":[
     "cpad":[
         {"press":"CUP","get":[0,190]},
         {"press":"CUP","get":[0,190]},
Line 27: Line 31:
     ]
     ]
}</syntaxhighlight>
}</syntaxhighlight>
* <code>"touch":</code> Maps a key press to the given XY coordinates on the touchscreen, from 0,0 (top-left corner) to 320,240 (bottom-right corner).
: <code>"touch":</code> Maps a key press to the given XY coordinates on the touchscreen, from 0,0 (top-left corner) to 320,240 (bottom-right corner).
** Syntax: <syntaxhighlight lang="json">{
:: Syntax: <syntaxhighlight lang="json">{
     "touch":[
     "touch":[
         {"press":"LEFT+UP","get":[0,0]},
         {"press":"LEFT+UP","get":[0,0]},
Line 34: Line 38:
     ]
     ]
}</syntaxhighlight>
}</syntaxhighlight>
* <code>"touchtokeys":</code> Maps the given area on the touch screen at the given XY coordinates to output a key press when tapped.
: <code>"touchtokeys":</code> Maps the given area on the touch screen at the given XY coordinates to output a key press when tapped.
** Syntax: <syntaxhighlight lang="json">{
:: Syntax: <syntaxhighlight lang="json">{
     "touchtokeys":[
     "touchtokeys":[
         {"press":[10,20,50,100],"get":"A"}
         {"press":[10,20,50,100],"get":"A"}
     ]
     ]
}</syntaxhighlight>
}</syntaxhighlight>
*: The above example creates a box starting at x=10 y=20 that has a height of 50 and a width of 100.  
:: The above example creates a box starting at x=10 y=20 that has a height of 50 and a width of 100.  
* Other options include:
: Other options include:
** <code>"cpadtodpad":true</code> Automatically redirects all C-Pad inputs to the D-Pad.<br>
:: <code>"cpadtodpad":true</code> Automatically redirects all C-Pad inputs to the D-Pad.<br>
** <code>"dpadtocpad":true</code> Automatically redirects all D-Pad inputs to the C-Pad.<br>
:: <code>"dpadtocpad":true</code> Automatically redirects all D-Pad inputs to the C-Pad.<br>
** <code>"overidecpadpro":true</code> Stops games from recognizing the Circle Pad Pro.<br>
:: <code>"overidecpadpro":true</code> Stops games from recognizing the Circle Pad Pro.<br>
** <code>"homebutton":</code> Remaps the HOME button to one or more key press(es).
:: <code>"homebutton":</code> Remaps the HOME button to one or more key press(es).
* All of the above options can be used at once in one remapping. For example:
: All of the above options can be used at once in one remapping. For example:
*: <syntaxhighlight lang="json">{
:: <syntaxhighlight lang="json">{
     "keys":[
     "keys":[
         {"press":"ZR","get":"R"},
         {"press":"ZR","get":"R"},
Line 68: Line 72:
     "homebutton":"ZR+ZL"
     "homebutton":"ZR+ZL"
}</syntaxhighlight>
}</syntaxhighlight>
|}

Latest revision as of 09:42, 14 May 2024

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).
Syntax:
{
    "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.
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:
{
    "keys":[
        {"press":"X+Y","get":"R"},
        {"press":"SELECT","get":"L+R"}
    ]
}
With this, pressing X+Y will trigger R instead, and pressing SELECT will trigger both L and R at the same time.
"cpad": Maps a key press to the given XY coordinates on the Circle Pad, between -190 and 190.
Syntax:
{
    "cpad":[
        {"press":"CUP","get":[0,190]},
        {"press":"CDOWN","get":[0,-190]},
        {"press":"CLEFT","get":[-190,0]},
        {"press":"CRIGHT","get":[190,0]}
    ]
}
"touch": Maps a key press to the given XY coordinates on the touchscreen, from 0,0 (top-left corner) to 320,240 (bottom-right corner).
Syntax:
{
    "touch":[
        {"press":"LEFT+UP","get":[0,0]},
        {"press":"RIGHT+DOWN","get":[320,240]}
    ]
}
"touchtokeys": Maps the given area on the touch screen at the given XY coordinates to output a key press when tapped.
Syntax:
{
    "touchtokeys":[
        {"press":[10,20,50,100],"get":"A"}
    ]
}
The above example creates a box starting at x=10 y=20 that has a height of 50 and a width of 100.
Other options include:
"cpadtodpad":true Automatically redirects all C-Pad inputs to the D-Pad.
"dpadtocpad":true Automatically redirects all D-Pad inputs to the C-Pad.
"overidecpadpro":true Stops games from recognizing the Circle Pad Pro.
"homebutton": Remaps the HOME button to one or more key press(es).
All of the above options can be used at once in one remapping. 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":[10,20,50,100],"get":"A"}
    ],
    "cpadtodpad":true,
    "dpadtocpad":true,
    "overridecpadpro":true,
    "homebutton":"ZR+ZL"
}