Homebrew [WIP] rehid:- Button remapping for 3ds

Kartik

Well-Known Member
OP
Member
Joined
Jun 6, 2015
Messages
653
Trophies
0
Location
github
XP
2,747
Country
India
Good news is that rehid is in the process list. Can you explain what we need to do for the release posted in gbatemp to create rehid.json?

For example, my rehid.json states the following:
{
"keys":[
{"get":"CRIGHT", "press":"RIGHT"}
]
}
Hmm RIGHT>CRIGHT might be the problem. Change this to something like

{
"keys":[
{"get":"Y", "press":"X"}
]
}

and check. Y should be triggered when you press X.
 
Last edited by Kartik,
  • Like
Reactions: Nutez

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
596
Trophies
0
XP
2,319
Country
Algeria
I think this is working exactly as you intended and the mistakes were my own. My first issue was using an outdated .json format that references "remappings" rather than "keys". Once I got that sorted the rest fell into place. At that point the only issues were self-inflicted. I assumed CLEFT referred to the C-Stick (the nub).
Is there a key command for the C-Nub?
 
  • Like
Reactions: Nutez

Kartik

Well-Known Member
OP
Member
Joined
Jun 6, 2015
Messages
653
Trophies
0
Location
github
XP
2,747
Country
India
I think this is working exactly as you intended and the mistakes were my own. My first issue was using an outdated .json format that references "remappings" rather than "keys". Once I got that sorted the rest fell into place. At that point the only issues were self-inflicted. I assumed CLEFT referred to the C-Stick (the nub).
Is there a key command for the C-Nub?
You could try this release along with this json might or might not work.

{
"keys":
[
{"get":"LEFT", "press":"CSLEFT"},
{"get":"RIGHT", "press":"CSRIGHT"},
{"get":"UP", "press":"CSUP"},
{"get":"DOWN", "press":"CSDOWN"}
]
}
 

Attachments

  • 0004013000001D02.zip
    46 KB · Views: 436
Last edited by Kartik,

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
596
Trophies
0
XP
2,319
Country
Algeria
That works! Wow. This is amazing. The camera controls in Super Mario 3D Land are finally useful for the first time ever. Luigi's Mansion 2 benefits from mapping touch screen to Select (why they didn't set it up that way be default is a mystery). This is really, really exciting stuff. Thank you so much.
 
  • Like
Reactions: Kartik

Kartik

Well-Known Member
OP
Member
Joined
Jun 6, 2015
Messages
653
Trophies
0
Location
github
XP
2,747
Country
India
Wow. In Ocarina of Time, we can finally use ZR, ZL and Select to remap the ridiculous "Button I", "Button II" and "Items" from the Touch Screen to actual controls. We can also map NAVI and the Ocarina to the DPAD or the C-Nub. This is huge!
Nice to know! :) Others who wanted to map cnub, please use the release and json from my last post and test. You can modify the json as per your needs. Let me know if it works for you all well.
 

Kartik

Well-Known Member
OP
Member
Joined
Jun 6, 2015
Messages
653
Trophies
0
Location
github
XP
2,747
Country
India
Can you swap the circlepad with the nub? I would like to use it for some games to reduce wear-and-tear of the circlepad
Depending on the game, this might work:-
{
"keys":
[
{"get":"CLEFT", "press":"CSLEFT"},
{"get":"CRIGHT", "press":"CSRIGHT"},
{"get":"CUP", "press":"CSUP"},
{"get":"CDOWN", "press":"CSDOWN"}
]
}
 

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
596
Trophies
0
XP
2,319
Country
Algeria
In case it is helpful, here is an image I created to help map Touch Screens to physical controls (yes, I'm aware that it's a 320x240 screen. But personally I found a visual aide helpful when setting up controls for the more densely populated touch screens (like Ocarina of Time and Metroid 2):
rehid grid.png
 
Last edited by MarioKartFan,

NanashiFinal13

Well-Known Member
Member
Joined
May 1, 2017
Messages
409
Trophies
0
Age
30
XP
2,666
Country
Argentina
You could try this release along with this json might or might not work.

{
"keys":
[
{"get":"LEFT", "press":"CSLEFT"},
{"get":"RIGHT", "press":"CSRIGHT"},
{"get":"UP", "press":"CSUP"},
{"get":"DOWN", "press":"CSDOWN"}
]
}
Remapping games that use ZL-ZR like Xenoblade still freeze the console after the 3DS logo. Aside from that, the C-Nub remapping works great, its great to use it as the camera controlling button, instead L-R or D-Pad. (This is very useful on games that relies on the C-Pad to move the character and D-Pad to controlling the camera)
 

Kartik

Well-Known Member
OP
Member
Joined
Jun 6, 2015
Messages
653
Trophies
0
Location
github
XP
2,747
Country
India
Remapping games that use ZL-ZR like Xenoblade still freeze the console after the 3DS logo. Aside from that, the C-Nub remapping works great, its great to use it as the camera controlling button, instead L-R or D-Pad. (This is very useful on games that relies on the C-Pad to move the character and D-Pad to controlling the camera)
Xenoblade still freezes? That is strange. Could you try the release version form github and check if it qorks?
 

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
596
Trophies
0
XP
2,319
Country
Algeria
I really cannot express enough thanks for this. This is easily one of the most significant developments for 3DS homebrew perhaps ever. I just remapped the Up and Down controls to the C-Nub for Luigi's Mansion. It's a marvel that Nintendo didn't add this to the firmware when they released the N3DS.
 
  • Like
Reactions: Kartik and Nutez

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
596
Trophies
0
XP
2,319
Country
Algeria
@Kartik I notice a possible bug with rehid. The home key no longer works properly when running a home brew application. It just turns the screen black. It’s possible to enter Rosalina and reboot from there. The home key seems to work fine for official games (just not home brew).
 
  • Like
Reactions: Nutez

Stefano_Lassandro

Well-Known Member
Newcomer
Joined
Dec 26, 2020
Messages
47
Trophies
0
XP
192
Country
Italy
I've dowloaded the version of rehid you've posted up in the forum (the one with the c-stick example) and I tried remapping the input like so:

{
"keys":
[
{"get":"CSLEFT", "press":"Y"},
{"get":"CSRIGHT", "press":"A"},
{"get":"CSUP", "press":"X"},
{"get":"CSDOWN", "press":"B"}
]
}

I saved it as a game-specific remapping (The game in question is Resident Evil: The Mercenaries, ID: 0004000000038B00). The file is located at path: F:\rehid\0004000000038B00\rehid.json
When I launch the software, the A, B, X and Y buttons stop working, and pressing directions on the c-stick doesn't count as the pressure of any of the ABXY buttons. I'm pretty sure I'm doing something wrong, any help is widely appreciated! Thanks in advance.
(PS: The game doesn't include the use of the c-stick or the ZL and ZR buttons, but from what I've read in the forum it should work anyways).
 

Stefano_Lassandro

Well-Known Member
Newcomer
Joined
Dec 26, 2020
Messages
47
Trophies
0
XP
192
Country
Italy
@Kartik I notice a possible bug with rehid. The home key no longer works properly when running a home brew application. It just turns the screen black. It’s possible to enter Rosalina and reboot from there. The home key seems to work fine for official games (just not home brew).
I'm also experiencing this bug, already described above. But my console (New3DS) just freezes, doesn't go to any black screen. So yeah, it's probably a common problem.
 
Last edited by Stefano_Lassandro,

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
596
Trophies
0
XP
2,319
Country
Algeria
I did that on purpose. Let me explain: the game uses ABXY to control the camera, and I wanted to use the c-stick intead.
I know what you are trying to do. You have the order flipped. You are mapping the c-stick to ABXY instead of ABXY to the c-stick. You need to flip your .json file

{
"keys":
[
{"get":"Y", "press":"CSLEFT"},
{"get":"A", "press":"CSRIGHT"},
{"get":"X", "press":"CSUP"},
{"get":"B", "press":"CSDOWN"}
]
}
 
Last edited by MarioKartFan,
  • Like
Reactions: Stefano_Lassandro

Nutez

Assimilator of Lumas
Member
Joined
Jan 2, 2018
Messages
175
Trophies
0
Location
The other side of paradise.
XP
1,814
Country
United Kingdom
To show my appreciation for Kartik's excellent work, I thought I'd share a few of the biggest control/gameplay improvements I've found while experimenting (edit: and some other, more minor remaps).

{
"keys":
[
{"get":"UP", "press":"ZL"},
{"get":"DOWN", "press":"ZR"}
]
}
This lets you manually scroll through the Command Deck while still being able to move freely.

{
"keys":
[
{"get":"LEFT", "press":"CSLEFT"},
{"get":"RIGHT", "press":"CSRIGHT"},
{"get":"UP", "press":"CSUP"},
{"get":"DOWN", "press":"CSDOWN"},
{"get":"CSLEFT", "press":"LEFT"},
{"get":"CSRIGHT", "press":"RIGHT"},
{"get":"CSUP", "press":"UP"},
{"get":"CSDOWN", "press":"DOWN"},
{"get":"ZR", "press":"START"},
{"get":"Y", "press":"ZR"}
]
}
The D-Pad to C-Stick doesn't seem to work for now but it's the C-Stick to D-Pad part that matters most. With a little practice you can mine on the move and fight while running backwards (without touch screen).

{
"keys":
[
{"get":"L", "press":"CSLEFT"},
{"get":"R", "press":"CSRIGHT"}
],
"touch":
[
{"get":[80, 60], "press":"ZL"},
{"get":[240, 60], "press":"ZR"}
]
}
Controlling the overworld camera with C-Stick feels nice and mapping ZL&ZR to the touch screen makes for easier combos.

{
"keys":
[
{"get":"A+B+Y+START", "press":"SELECT"},
{"get":"A+B", "press":"X"}
]
}
A game that really benefits from the button-combo mapping. Gives you painless access to the save menu and allows for easier bomb-arrows or the sword-shield combo.

{
"touch":
[
{"get":[300, 20], "press":"ZL"},
{"get":[300, 220], "press":"ZR"},
{"get":[20, 220], "press":"START"}
]
}
Probably one of the most obvious games to benefit from remapping and it has many options. I went with Start for the Ocarina and ZL/ZR for Item I/II respectively. I left the C-Stick unused though, as hopefully it will be possible to map it to the C-Pad in future for aiming similar to Majora's Mask.

{
"keys":
[
{"get":"LEFT", "press":"CSLEFT"},
{"get":"RIGHT", "press":"CSRIGHT"},
{"get":"UP", "press":"CSUP"},
{"get":"DOWN", "press":"CSDOWN"},
{"get":"B", "press":"ZR"},
{"get":"Y", "press":"ZL"}
]
}
This allows you to adjust the camera for greater forward sight while moving and still attack.

{
"keys":
[
{"get":"SELECT", "press":"Y"},
{"get":"LEFT", "press":"L"},
{"get":"RIGHT", "press":"R"}
]
}
Pseudo-imitates the menu controls of newer Pokemon games.

{
"keys":
[
{"get":"R", "press":"ZL"},
{"get":"L", "press":"ZR"},
{"get":"ZR", "press":"L"},
{"get":"ZL", "press":"R"}
],
"touch":
[
{"get":[120, 190], "press":"START"}
]
}
Comfort swap of shoulder buttons and easier triggering of pet monster attacks.

{
"keys":
[
{"press":"CSRIGHT","get":"RIGHT"},
{"press":"CSUP","get":"UP"},
{"press":"CSDOWN","get":"DOWN"},
{"press":"CSLEFT","get":"LEFT"}
],
"touch":
[
{"press":"ZL","get":[60,10]},
{"press":"ZR","get":[180,10]}
]
}
Simple C-Stick to D-Pad and quick access to other menus.

{
"keys": [
{
"press": "ZL",
"get": "LEFT"
},
{
"press": "ZR",
"get": "RIGHT"
},
{
"press": "CSRIGHT",
"get": "R"
},
{
"press": "CSLEFT",
"get": "L"
}
],
"touch": [
{
"press": "START",
"get": [
35,
205
]
}
]
}
C-Stick camera controls, disguise switching on the move and button activated radar.

Any other recommended remappings out there to share? :)
 
Last edited by Nutez,

NanashiFinal13

Well-Known Member
Member
Joined
May 1, 2017
Messages
409
Trophies
0
Age
30
XP
2,666
Country
Argentina
@Nutez i was just about to make a thread to share rehid configs :D
But instead of that, i just post it here like you did.

{
"touch":
[
{"get":[231, 193], "press":"ZL"},
{"get":[306, 193], "press":"ZR"},
{"get":[156, 197], "press":"START"}
]
}

This let you search and choose the any item you want when you'r flying with the ODM or even when you are attacking a titan. ZL and ZR works as the arrows on the touchscreen to search trough your bag and you select the item with START

{
"keys":
[
{"get":"LEFT", "press":"CSLEFT"},
{"get":"RIGHT", "press":"CSRIGHT"},
{"get":"UP", "press":"CSUP"},
{"get":"DOWN", "press":"CSDOWN"}
],
"touch":
[
{"get":[68, 112], "press":"ZL"},
{"get":[258, 112], "press":"ZR"},
{"get":[160, 211], "press":"START"}
]
}

With it, you can control the camera with the C-Stick instead on the D-Pad, so now you can freely web swing without having to stop to move the camera. Also, the Retreat and Dodge touch buttons were remapped to ZL and ZR, and the Take Photo touch button its remapped to START button.

{
"keys":
[
{"get":"LEFT", "press":"CSLEFT"},
{"get":"RIGHT", "press":"CSRIGHT"},
{"get":"UP", "press":"CSUP"},
{"get":"DOWN", "press":"CSDOWN"}
],
"touch":
[
{"get":[296, 25], "press":"ZL"},
{"get":[150, 130], "press":"ZR"}
]
}

Same camera config as Amazing Spider-Man, Time Paradox and Spider-sense touch buttons remapped to ZL and ZR.

{
"keys":
[
{"get":"Y", "press":"CSLEFT"},
{"get":"A", "press":"CSRIGHT"},
{"get":"X", "press":"CSUP"},
{"get":"B", "press":"CSDOWN"}
],
"touch":
[
{"get":[32, 215], "press":"ZL"},
{"get":[75, 215], "press":"ZR"}
]
}

If you choose to control the retina/camera with Y,A,B and X (you can change this on options menu), this buttons are remapped to the C-Stick. ZL and ZR now trigger the Aerial Powers , ZR also trigger any power you choose on Land battles.

{
"keys":
[
{"get":"RIGHT", "press":"CRIGHT"},
{"get":"LEFT", "press":"CLEFT"},
{"get":"UP", "press":"CUP"},
{"get":"DOWN", "press":"CDOWN"}
]
}

The game try to emulate old games like PSOne horror games, and you can only move the character using the D-Pad. With this config, you can use the C- Pad for movement.

{
"keys":
[
{"get":"LEFT", "press":"CSLEFT"},
{"get":"RIGHT", "press":"CSRIGHT"}
],
"touch":
[
{"get":[261, 151], "press":"START"}
]
}

C-Stick now controls the camera instead of D-Pad, Start triggers the Upgrade Power touch button.

{
"keys":
[
{"get":"L", "press":"CSLEFT"},
{"get":"R", "press":"CSRIGHT"},
{"get":"X", "press":"CSUP"},
{"get":"B", "press":"CSDOWN"}
]
}

Another remap to control the camera with the C-Stick.

{
"touch":
[
{"get":[40, 5], "press":"ZL"},
{"get":[286, 8], "press":"ZR"},
{"get":[35, 215], "press":"START"}
]
}

Notepad, Map and Items touch buttons remapped to ZL, ZR and START.

{
"keys":
[
{"get":"LEFT", "press":"CSLEFT"},
{"get":"RIGHT", "press":"CSRIGHT"},
{"get":"UP", "press":"CSUP"},
{"get":"DOWN", "press":"CSDOWN"}
]
}

Yet another remap to control the camera with the C-Stick.

{
"touch":
[
{"get":[236, 209], "press":"ZL"},
{"get":[289, 163], "press":"ZR"},
{"get":[160, 126], "press":"START"}
]
}

Control the Arrow touch buttons with ZL and ZR, use your stored power with START.

{
"keys":
[
{"get":"L", "press":"CSRIGHT"},
{"get":"R", "press":"CSLEFT"}
],
"touch":
[
{"get":[31, 222], "press":"START"},
{"get":[100, 226], "press":"ZL"},
{"get":[164, 226], "press":"ZR"}
]
}

Camera control with C-Stick, Bicycle, Radar and Map touch buttons remapped to ZL, ZR and Start.


{
"keys":
[
{"get":"Y", "press":"CSLEFT"},
{"get":"A", "press":"CSRIGHT"},
{"get":"X", "press":"CSUP"},
{"get":"B", "press":"CSDOWN"}
],
"touch":
[
{"get":[12, 22], "press":"ZL"},
{"get":[310, 16], "press":"ZR"},
{"get":[10, 99], "press":"Y"},
{"get":[177, 88], "press":"B"},
{"get":[290, 85], "press":"A"},
{"get":[104, 43], "press":"X"},
{"get":[158, 44], "press":"START"}
]
}

The camera buttons (Y,X,A,B) were remapped to the C-Stick, the EEV Hacking touch button its remapped to ZL, Thermal Vision touch button to ZR, Map touch button to X, Whistle touch button to START, and the 3 main weapon to Y, B and A (Y is the regular pistol, B is the Assault Rifle, you can press B twice to use the 1.5 reflex sight, and A is the grenades).

Here's an alternative remap that, on this remap the weapons are remapped to X,Y and B, the Map touch button is remapped to START button, there's no Whistle remap and the A button its free (to access Rosalina menu and that kind of stuff). I think this is one of the 3DS games that benefits the most of rehid. In my honest opinion, the worst thing about Chaos Theory port on 3DS is not the graphics or the loading times (you can mitigate that using the New 3DS clock speed), its the horrible control scheme.
{
"keys":
[
{"get":"Y", "press":"CSLEFT"},
{"get":"A", "press":"CSRIGHT"},
{"get":"X", "press":"CSUP"},
{"get":"B", "press":"CSDOWN"}
],
"touch":
[
{"get":[12, 22], "press":"ZL"},
{"get":[310, 16], "press":"ZR"},
{"get":[10, 99], "press":"X"},
{"get":[177, 88], "press":"Y"},
{"get":[290, 85], "press":"B"},
{"get":[104, 43], "press":"START"}
]
}

{
"keys":
[
{"get":"L", "press":"CSLEFT"},
{"get":"R", "press":"CSRIGHT"}
]
}

Simple camera remap. (L/R remapped to C-Nub)

{
"touch":
[
{"get":[52, 186], "press":"ZL"},
{"get":[270, 190], "press":"ZR"}
]
}

Remap touch buttons to ZL and ZR.

{
"keys":
[
{"get":"L", "press":"CSLEFT"},
{"get":"R", "press":"CSRIGHT"}
],
"touch":
[
{"get":[221, 109], "press":"START"}
]
}

Simple camera remap (L/R remapped to C-Nub) plus Clairvoyance touch button remapped to START.

{
"keys":
[
{"get":"LEFT", "press":"CSLEFT"},
{"get":"RIGHT", "press":"CSRIGHT"},
{"get":"UP", "press":"CSUP"},
{"get":"DOWN", "press":"CSDOWN"}
]
}

Simple camera remap. (D-Pad to C-Nub)

{
"keys":
[
{"get":"Y", "press":"CSLEFT"},
{"get":"A", "press":"CSRIGHT"},
{"get":"X", "press":"CSUP"},
{"get":"B", "press":"CSDOWN"}
],
"touch":
[
{"get":[10, 128], "press":"ZL"},
{"get":[290, 10], "press":"ZR"},
{"get":[28, 222], "press":"START"}
]
}

Camera (L/R) remapped to remapped to C-Nub, Map touch button to ZL, Bunny mount touch button to ZR and Telegraph touch button to START

{
"keys":
[
{"get":"L+X", "press":"ZL"},
{"get":"L+A", "press":"ZR"}
]
}

Remap 2 button combo attacks to ZL and ZR.

{
"keys":
[
{"get":"L", "press":"CSLEFT"},
{"get":"R", "press":"CSRIGHT"}
]
}

Simple camera remap. (L/R remapped to C-Nub)

{
"keys":
[
{"get":"L", "press":"CSLEFT"},
{"get":"R", "press":"CSRIGHT"}
]
}

Simple camera remap. (L/R remapped to C-Nub)

{
"touch":
[
{"get":[250, 58], "press":"START"}
]
}

Senin Mode touch button remapped to START.

{
"keys":
[
{"get":"X", "press":"CSUP"},
{"get":"B", "press":"CSDOWN"}
]
}

Simple camera remap. (X/B remapped to C-Nub)

{
"keys":
[
{"get":"L", "press":"CSLEFT"},
{"get":"R", "press":"CSRIGHT"}
]
}

Simple camera remap. (L/R remapped to C-Nub)

{
"keys":
[
{"get":"L+X", "press":"ZL"},
{"get":"L+R", "press":"ZR"}
]
}

Remap 2 hammer button combo attacks to ZL and ZR.

{
"keys":
[
{"get":"L", "press":"CSLEFT"},
{"get":"R", "press":"CSRIGHT"}
]
}

Simple camera remap. (L/R remapped to C-Nub)

{
"keys":
[
{"get":"LEFT", "press":"CSLEFT"},
{"get":"RIGHT", "press":"CSRIGHT"}
]
}

Simple camera remap. (Left/Right remapped to C-Nub)

{
"keys":
[
{"get":"LEFT", "press":"CSLEFT"},
{"get":"RIGHT", "press":"CSRIGHT"}
]
}

Simple camera remap. (Left/Right remapped to C-Nub)

{
"keys":
[
{"get":"LEFT", "press":"CSLEFT"},
{"get":"RIGHT", "press":"CSRIGHT"}
],
"touch":
[
{"get":[23, 215], "press":"ZL"},
{"get":[285, 219], "press":"ZR"},
{"get":[194, 135], "press":"START"}
]
}

Camera (Left/Right) remapped to remapped to C-Nub, Bento touch button to ZL, Map touch button to ZR and Gesture touch button to START

{ "keys":
[
{"get":"CRIGHT", "press":"RIGHT"},
{"get":"CLEFT", "press":"LEFT"},
{"get":"CUP", "press":"UP"},
{"get":"CDOWN", "press":"DOWN"}
],
"dpadtocpad":true
}

You can now control the character movement with D-Pad. (and also the C-Pad as default)
In some of game areas you need tighter controls and (in my opinion ) the D-Pad does a better job than the C-Pad (but still i like to use the C-Pad). The downside is that now you can only use the bag items with the touchscreen. (normally, you can use the touchscreen or the D-Pad)
 
Last edited by NanashiFinal13,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Least they got head in the end