Tutorial  Updated

How to use a Keyboard/Controller on your 3DS using kit-kat

If you get an error on kit-kat, post the error on kit-kat's thread not here.

Video Tutorial


Controller Files
Credit: @KanterZ

Text Tutorial

  1. Boot up your 3DS,
  2. Install this CIA (with FBI) if you haven't already,
  3. Open the application just installed,
  4. THEN open Boot NTR Selector,
  5. Open kit-kat, give it a few seconds to try find your IP, If it has found your IP, Skip step 6,
  6. Haven't found the IP? Checkout this tutorial on manually obtaining the IP,
  7. Go to Tab 3 and mess around using a Controller or Keyboard. (F2 = Keyboard Controls, F3 = Gamepad Controls)

Confirmed Supported Controllers

  • PS4 (Using DS4Windows)
  • PS3 (Using SCPToolkit)
  • Xbox One (Using USB Charging Cable - No Software Needed)
  • Logitech Gamepad F710 (No Software Needed)
Confirmed support for a controller not listed here?
Let me know below!
 
Last edited by PRAGMA,

Neytz

Member
Newcomer
Joined
Dec 11, 2011
Messages
10
Trophies
0
XP
204
Country
Slovenia
I got my F710 (xinput) to work, but I can't find an option to set the right circle pad that you mention in the 1.4.3 update. Can I get it to work somehow?

Oh and I get a crash if I don't send the temporary patch that disables online services and try to use the controller. This shows up:

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.NetworkStream'.
at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at ntrbase.NTR.sendWriteMemPacket(UInt32 addr, UInt32 pid, Byte[] buf)
at InputRedirection.Game1.SendInput()
at InputRedirection.Game1.ReadMain()
at InputRedirection.Game1.Update(GameTime gameTime)
at Microsoft.Xna.Framework.Game.DoUpdate(GameTime gameTime)
at Microsoft.Xna.Framework.Game.Tick()
at MonoGame.Framework.WinFormsGameWindow.RunLoop()
at MonoGame.Framework.WinFormsGamePlatform.RunLoop()
at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior)
at Microsoft.Xna.Framework.Game.Run()
at kit_kat.MainForm.customTabControl1_SelectedIndexChanged(Object sender, EventArgs e)
at System.Windows.Forms.TabControl.OnSelectedIndexChanged(EventArgs e)
at System.Windows.Forms.TabControl.WmSelChange()
at System.Windows.Forms.TabControl.WndProc(Message& m)
at kit_kat.cTabControl.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
kit-kat
Assembly Version: 1.4.4.0
Win32 Version: 1.4.4.0
CodeBase: file:///C:/Users/Jerkci/Desktop/kitkat/kit-kat-1.4.4.0.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Microsoft.CSharp
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.CSharp/v4.0_4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll
----------------------------------------
System.Dynamic
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Dynamic/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.dll
----------------------------------------
Anonymously Hosted DynamicMethods Assembly
Assembly Version: 0.0.0.0
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Since you don't mention applying this patch in your instructions do you think I can fix this?
 
Last edited by Neytz,

mikefor20

Well-Known Member
Member
Joined
Jan 12, 2009
Messages
1,920
Trophies
2
Location
Mushroom Kingdom ( o Y o )
XP
3,778
Country
United States
What .NET Framework version is best for this? I keep getting an unhandled exception error in WIN 10. I can stream, I can use the redirection on its own but if I do both it throws a error at me and the input redirect stops functioning. Streaming still works at that point. I am using a wireless xbox 360 controller and a MS USB Receiver. Seems to function fine without the video stream though...
 

Lotoonlink

Probably doesn't know what he's talking about
Member
Joined
Aug 15, 2016
Messages
241
Trophies
0
XP
1,240
Country
United States
Maybe specify which steps you do on the 3ds and which steps you do on the computer? Other than that, great work! Just what I was looking for.
 

sora10pls

Well-Known Member
Member
Joined
Oct 25, 2015
Messages
190
Trophies
0
XP
715
Country
Canada
Really hopeful that the Wii U GC Adapter will soon be compatible with something like GCNUSBFeeder and vJoy. Great work with kit-kat by the way!
 
  • Like
Reactions: PRAGMA

PRAGMA

Well-Known Member
OP
Member
Joined
Dec 29, 2015
Messages
2,258
Trophies
1
Location
Ireland
Website
github.com
XP
5,035
Country
Ireland
I got my F710 (xinput) to work, but I can't find an option to set the right circle pad that you mention in the 1.4.3 update. Can I get it to work somehow?

Oh and I get a crash if I don't send the temporary patch that disables online services and try to use the controller. This shows up:

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.NetworkStream'.
at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at ntrbase.NTR.sendWriteMemPacket(UInt32 addr, UInt32 pid, Byte[] buf)
at InputRedirection.Game1.SendInput()
at InputRedirection.Game1.ReadMain()
at InputRedirection.Game1.Update(GameTime gameTime)
at Microsoft.Xna.Framework.Game.DoUpdate(GameTime gameTime)
at Microsoft.Xna.Framework.Game.Tick()
at MonoGame.Framework.WinFormsGameWindow.RunLoop()
at MonoGame.Framework.WinFormsGamePlatform.RunLoop()
at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior)
at Microsoft.Xna.Framework.Game.Run()
at kit_kat.MainForm.customTabControl1_SelectedIndexChanged(Object sender, EventArgs e)
at System.Windows.Forms.TabControl.OnSelectedIndexChanged(EventArgs e)
at System.Windows.Forms.TabControl.WmSelChange()
at System.Windows.Forms.TabControl.WndProc(Message& m)
at kit_kat.cTabControl.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
kit-kat
Assembly Version: 1.4.4.0
Win32 Version: 1.4.4.0
CodeBase: file:///C:/Users/Jerkci/Desktop/kitkat/kit-kat-1.4.4.0.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Microsoft.CSharp
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.CSharp/v4.0_4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll
----------------------------------------
System.Dynamic
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1586.0
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Dynamic/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.dll
----------------------------------------
Anonymously Hosted DynamicMethods Assembly
Assembly Version: 0.0.0.0
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Since you don't mention applying this patch in your instructions do you think I can fix this?
That happens when using NTRViewer at the same time

--------------------- MERGED ---------------------------

What .NET Framework version is best for this? I keep getting an unhandled exception error in WIN 10. I can stream, I can use the redirection on its own but if I do both it throws a error at me and the input redirect stops functioning. Streaming still works at that point. I am using a wireless xbox 360 controller and a MS USB Receiver. Seems to function fine without the video stream though...
Yeah you cant use 2 at the same time. (Trying to find out why it keeps erroring)
 

TMM12

New Member
Newbie
Joined
Jan 2, 2017
Messages
1
Trophies
0
Age
23
XP
41
Country
United States
I found out that if you use Nitrostream and kit-kat side by side, you can have NTRViewer and Input Redirection at the same time. I followed the same steps that you would to set up input redirection but I connected Nitrostream first before connecting kit-kat.
 

Molina

My title? It's gone,... like the last fuck I gave.
Member
Joined
May 14, 2016
Messages
230
Trophies
0
Age
29
XP
209
Country
France
Cabled XboxOne controller works.
Is that possible to configure R stick as pro stick 3ds accesories (or natif n3ds)?

Yeah you cant use 2 at the same time. (Trying to find out why it keeps erroring)

I tried to spam multiple way (input then stream; stream then input). Only one time it didn't gave me an error (input then stream), but it was unstable, input was not done even the program sayin' "connected", and I had 2~5 fps (I have around 35fps usually).
 
Last edited by Molina,

PRAGMA

Well-Known Member
OP
Member
Joined
Dec 29, 2015
Messages
2,258
Trophies
1
Location
Ireland
Website
github.com
XP
5,035
Country
Ireland
Cabled XboxOne controller works.
Is that possible to configure R stick as pro stick 3ds accesories (or natif n3ds)?



I tried to spam multiple way (input then stream; stream then input). Only one time it didn't gave me an error (input then stream), but it was unstable, input was not done even the program sayin' "connected", and I had 2~5 fps (I have around 35fps usually).
Yeah im trying to work on a fix.
Anyway no you cant use the CPad Pro, it just isnt supported the way its used.
 
  • Like
Reactions: Molina

Hundredears

Active Member
Newcomer
Joined
Dec 14, 2016
Messages
38
Trophies
0
Age
34
XP
257
Country
United States
I'm having problems with kitkat recogniziing my PS4 controller. Can u someone help me?

Kitkat doesn't detect my controller when I go to F3. even when I press the buttons on my ps4 controller
 
Last edited by Hundredears,

Molina

My title? It's gone,... like the last fuck I gave.
Member
Joined
May 14, 2016
Messages
230
Trophies
0
Age
29
XP
209
Country
France
I'm having problems with kitkat recogniziing my PS4 controller. Can u someone help me?

Kitkat doesn't detect my controller when I go to F3. even when I press the buttons on my ps4 controller

Do you use DS4windows?
KitKat doesn't recognize PS4 controllers natively, nor do the computer.
You need a tier program to make it work. In this case: DS4windows.
 

Hundredears

Active Member
Newcomer
Joined
Dec 14, 2016
Messages
38
Trophies
0
Age
34
XP
257
Country
United States
Do you use DS4windows?
KitKat doesn't recognize PS4 controllers natively, nor do the computer.
You need a tier program to make it work. In this case: DS4windows.

Ya I have Ds4. I actually got it working now. Right now I just don't noe how to reset F3 gamecontroller keys. Which button to make it default again? I have keys at none.
 

Molina

My title? It's gone,... like the last fuck I gave.
Member
Joined
May 14, 2016
Messages
230
Trophies
0
Age
29
XP
209
Country
France
Ya I have Ds4. I actually got it working now. Right now I just don't noe how to reset F3 gamecontroller keys. Which button to make it default again? I have keys at none.

Control rebind is kinda strange, you must use the keyboard to change controller settings.
example: I have a XboxOne controller, lets say the "X" was assign on my A button.
1. press "F3". It open controller setting (you already knew that).
2. I press "X" on my keyboard. On kitkat, "X" become "none".
3. I press "A" on my keyboard to assign "A" to my A controller's button.
4. Press "Esc" to accept the configuration.

Do not press multiple keyboard letters in same time as you will be stuck with "none" somewhere.

Assign settings are in "%appdata%" I believe. Find them and delete to reset the configuration.

Be careful you can't have the same value assigned to multiple buttons.
 
Last edited by Molina,

Hundredears

Active Member
Newcomer
Joined
Dec 14, 2016
Messages
38
Trophies
0
Age
34
XP
257
Country
United States
Control rebind is kinda strange, you must use the keyboard to change controller settings.
example: I have a XboxOne controller, lets say the "X" was assign on my A button.
1. press "F3". It open controller setting (you already knew that).
2. I press "X" on my keyboard. On kitkat, X become "none".
3. I press "A" on my keyboard to assign "A" to my A controller's button.
4. Press "Esc" to accept the configuration.

Do not press multiple keyboard letters in same time as you will be stuck with "none" somewhere.

Assign settings are in "%appdata%" I believe. Delete to reset the configuration.

Be careful you can't have the same value assigned to multiple buttons.

It worked! Thank you so so much for the quick reply n detailed instructions! :D

--------------------- MERGED ---------------------------

Control rebind is kinda strange, you must use the keyboard to change controller settings.
example: I have a XboxOne controller, lets say the "X" was assign on my A button.
1. press "F3". It open controller setting (you already knew that).
2. I press "X" on my keyboard. On kitkat, X become "none".
3. I press "A" on my keyboard to assign "A" to my A controller's button.
4. Press "Esc" to accept the configuration.

Do not press multiple keyboard letters in same time as you will be stuck with "none" somewhere.

Assign settings are in "%appdata%" I believe. Find them and delete to reset the configuration.

Be careful you can't have the same value assigned to multiple buttons.

For some reason, I can't use capture card and ps4 controller together or at the same time. Is this odd or that's how it works?
 
  • Like
Reactions: Molina

yachting

Member
Newcomer
Joined
Jan 4, 2017
Messages
14
Trophies
0
Age
34
XP
59
Country
Gambia, The
Hello,

I can't use my xbox one controller with it. it's plugged in with USB cable but kit kat doesn't recognize it. Kit-Kat always says Gamepad:True even if I have nothing plugged in into my laptop.
 
Last edited by yachting,

LinkBlaBla

This is Perfect!
Member
Joined
Jun 7, 2013
Messages
445
Trophies
0
Age
32
Location
On a space rock floating in space!
XP
228
Country
Canada
Yeah im trying to work on a fix.
Anyway no you cant use the CPad Pro, it just isnt supported the way its used.

do you plan to add it as the 2 shoulder button we got? bcause c stick and more button would be nice thanks!

Oh and a way to add nes 30 pro as controller i can make it work with xpadder if i configure the same keyboard key but i get lag !
 
Last edited by LinkBlaBla,

yachting

Member
Newcomer
Joined
Jan 4, 2017
Messages
14
Trophies
0
Age
34
XP
59
Country
Gambia, The
It looks like it doesn't support the XBOX ONE Elite controller... Idk why. But it doesn't work with it. Or did it work for someone with the elite controller?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • Veho @ Veho:
    The fuuuuu---
  • Veho @ Veho:
    I thought it was an actual xBox at that price.
  • Sicklyboy @ Sicklyboy:
    I wanna grab a 360 Slim and a 360 E one of these days. Missed the boat of getting them at their lowest though, once they were discontinued. Could've got them for cheap back when I was a broke 20 something working at Target, but then again, I was a broke 20 something working at Target
  • Veho @ Veho:
    Being broke is no fun.
  • K3Nv2 @ K3Nv2:
    @Sicklyboy, $150 isn't that bad for a jtag slim on ebay
  • Veho @ Veho:
    I only wish it was actually playable.
  • Veho @ Veho:
    There's a guy on the Tube of You that makes playable mechanical arcade games out of Lego. This could work on the same principle.
  • Veho @ Veho:
    Just a couple of guys taking their manatee out for some fresh air, why you have to molest them?
  • Veho @ Veho:
    Stupid Chinese shop switched their shipping company and this one is slooooooow.
  • LeoTCK @ LeoTCK:
    STOP BUYING CHINESE CRAP THEN
  • LeoTCK @ LeoTCK:
    SUPPORT LOCAL PRODUCTS, MAKE REVOLUTION
  • LeoTCK @ LeoTCK:
    THEY KEEP REMOVING LOCAL SHIt AND REPLACING WItH INFERIOR CHINESE CRAP
  • LeoTCK @ LeoTCK:
    THATS WHY MY PARTNER CANT GET A GOOTWEAR HIS SIZE ANYMORE
  • LeoTCK @ LeoTCK:
    HE HAS BIG FOOT AND BIG DUCK
  • LeoTCK @ LeoTCK:
    d*ck i mean*
  • LeoTCK @ LeoTCK:
    lol
  • Veho @ Veho:
    Mkay.
  • Veho @ Veho:
    I just ordered another package from China just to spite you.
  • SylverReZ @ SylverReZ:
    Communism lol
  • SylverReZ @ SylverReZ:
    OUR products
  • The Real Jdbye @ The Real Jdbye:
    @LeoTCK actually good quality products are dying out because they can't compete with dropshipped chinese crap
    +1
    The Real Jdbye @ The Real Jdbye: @LeoTCK actually good quality products are dying out because they can't compete with dropshipped... +1