3DSController: Difference between revisions

From GameBrew
No edit summary
No edit summary
Line 3: Line 3:
| image = https://dlhb.gamebrew.org/3dshomebrew/3DSController.jpeg|250px
| image = https://dlhb.gamebrew.org/3dshomebrew/3DSController.jpeg|250px
| type = Utilities
| type = Utilities
| version = 0.6
| version = 0.6 (9 Sept 2015)
| licence = Mixed
| licence = Mixed
| author = CTurt
| author = CTurt
Line 10: Line 10:
| source = https://dlhb.gamebrew.org/3dshomebrew/3DSController-3DS.rar
| source = https://dlhb.gamebrew.org/3dshomebrew/3DSController-3DS.rar
}}
}}
3DSController is a 3DS homebrew application which allows you to use your 3DS as a wireless controller for Windows.
==Installation==
'''Note:''' If you are updating to 0.6 from an older version, you will need to make sure you update vJoy to the recommended version.
Firstly, if you want to be able to register the circle pad or touch screen as a joystick you will need to install [http://sourceforge.net/projects/vjoystick/files/Beta%202.x/2.0.5-120515/vJoy_205_050515.exe/download vJoy (version 2.0.5-120515 is preferable)]. However, if you just want to use keyboard buttons, this is not necessary.
Extract the archive and copy the executable in the <code>3DS</code> directory with the extension that applies to your loader into your 3DS's SD card or flashcard's micro SD card:
* <code>3DSController.3dsx</code> and <code>3DSController.smdh</code> for Ninjhax.
* <code>3DSController.3ds</code> for flashcards.
* <code>3DSController.cia</code> for CFWs.
Copy the file <code>3DS/3DSController.ini</code> to the root of your 3DS's SD card, and change the line that says <code>IP: 192.168.0.4</code> to match your computer's local IP.
To check your local IP address, run <code>3DSController.exe</code> and it will tell you.
==User guide==
===Setup (Window)===
Run <code>3DSController.exe</code> on your computer. If you are prompted, make sure to allow it through your firewall.
Start the application on your 3DS, there is no GUI, it will automatically try to connect to the IP address you put in <code>3DSController.ini</code>.
* If it wasn't able to read the IP from <code>3DSController.ini</code>, it will notify you and quit.
* Otherwise, you should just see a black screen, this is a good sign.
* To see if it works, open Notepad and press some buttons on the 3DS, they should show up.
You can also test if the joystick works by going to Configure USB Game Controllers in Control Panel, it shows up as vJoy.
* If using version 0.4 or above you can press L, R and X to bring up the keyboard. Press L, R and X again to close it.
* If using version 0.6 or above, up to 16 joystick buttons are available. If you wish to use more than 8, you need to configure vJoy.
* Search in your start menu for vJoyConfig and set buttons to 16. If using Ninjhax press Start and Select to return to the Homebrew Loader, otherwise you can just exit with the Home button.
===Setup (Linux)===
For keyboard emulation, follow the Windows instructions, but use <code>3DSController.py</code> instead of the EXE.
For Joystick emulation, first, install [https://github.com/tuomasjjrasanen/python-uinput python-uinput].
* Beware the latest release of this library as of the writing of this tutorial is 0.10.2 which is broken for most updated systems. Download the master branch directly.
* Make sure that uinput module is running. You can do it from cosole like so: <code>#!sudo modprobe uinput</code>
* Then, follow the Windows instructions, but use <code>3DSController_gamepad.py</code> instead of the EXE.
May work on OS X too, but this is not tested.
===Configuration (Windows)===
Find the line <code>Port: 8889</code> and change it to your desired port, do this for both the 3DS's <code>3DSController.ini</code> and the PC's <code>3DSController.ini</code>.
To use custom key bindings, just change the PC's <code>3DSController.ini</code> file, it should be straight forward.
===Configuration (Linux)===
The configuration for the keyboard emulation is in <code>3DSController.py</code>, not the INI.
The configuration for the joystick emulation is in <code>3DSController_gamepad.py</code>, not the INI.
===Troubleshooting===
* Make sure that you are using the 3DS and PC application from the same release.
* Make sure your 3DS has internet access (turn on the switch on the side of the 3DS so that an orange light shows) and is on the same network as your PC.
* Make sure that the <code>3DSController.ini</code> is in the root of your 3DS's SD card (not flashcard micro SD).
* Make sure that the <code>3DSController.ini</code> has the local IP of your computer, not your public IP.
* Make sure your firewall isn't blocking the application.
* Try using a different port (change the port for both the 3DS and PC's .ini file).
==Controls==
L/R/X - Toggle keyboard (vJoy 0.4 or above)
==Media==
<youtube>Poa5xWOvVrY</youtube>
<youtube>Poa5xWOvVrY</youtube>


= 3DSController =
==Changelog==
A 3DS homebrew application which allows you to use your 3DS as a wireless controller for Windows.
'''0.6 9 Sep 2015'''
=== Download ===
 
The latest release will always be downloadable from [https://github.com/CTurt/3DSController/releases/ here]. If you are updating to 0.6 from an older version, you will need to make sure you update vJoy to the recommended version.
3DS Client:
=== Setup and Usage ===
* Backlight disabled when not in use (less battery consumption).
Firstly, if you want to be able to register the circle pad or touch screen as a joystick you will need to install [http://sourceforge.net/projects/vjoystick/files/Beta%202.x/2.0.5-120515/vJoy_205_050515.exe/download vJoy (version 2.0.5-120515 is preferable)]. However, if you just want to use keyboard buttons, this is not necessary. Extract the archive and copy the executable in the <code>3DS</code> directory with the extension that applies to your loader: <code>3DSController.3dsx</code> and <code>3DSController.smdh</code> for Ninjhax, <code>3DSController.3ds</code> for flashcards, or <code>3DSController.cia</code> for CFWs, into your 3DS's SD card or flashcard's micro SD card.
* New 3DS buttons and C Stick support.
 
PC Server:
* DLL errors fixed.
* Updated vJoy to latest version (fixes Windows 10 compatibility).
* Screenshot code scrapped.
* 2 separate JoySticks can be configured.
* 8 additional JoyStick buttons supported.
 
'''0.5 21 Mar 2015'''
* Updated for latest ctrulib compatibility.
* Updated README to link to a compatible version of vJoy.
* Fixed the "Tap" control to only fire when the keyboard is not active.
* Added support for mapping buttons to the vJoy joypad as well as to keyboard keys (fixes support for programs like Dolphin), use by mapping a key to "JOY1", "JOY2", "JOY3", up to "JOY8".
 
'''0.4 12 Dec 2014'''
* Keyboard support. Press L, R, and X to toggle it.
* Warn you if your Wireless is turned off when you boot the application.
* Improved threshold calculation when using circle pad to move mouse.
* Setting Mouse Speed to 0 when using touch screen to move mouse sets mouse to absolute position, rather than relative to last position.
* The Tap event is fired when the touch screen is released, rather than when it is first press.
* Other misc bug fixes.
 
'''0.3 10 Dec 2014'''
* Default port changed to 8889 to avoid conflict.
* "Throttle" option in PC's 3DSController.ini, greatly reduces CPU used by application, default setting of 20 reduces CPU usage by over 6 times in my experience.
* Can bind a key to NONE in PC's 3DSController.ini.
* Format of the 3DS's 3DSController.ini file changed to match that of PC's.
* Threshold for circle pad when moving mouse.
* New setting of "Mouse Speed" in PC's 3DSController.ini.
* Corrected Y axis when using touch screen as joystick.
* Fixed support for CLICK and RIGHT CLICK key bindings.
 
'''0.2 7 Dec 2014'''
* More graceful error handling towards systems without vJoy.
* More graceful error handling when 3DS can't read 3DSController.ini.
* Z axis on vJoy controller is now in the middle value rather than 0.
* PC application lists your IP addresses to help those unsure of how to find it.
* Custom key bindings support.
* Custom port support.
* Other misc bug fixes.
 
'''0.1 6 Dec 2014'''
* Initial release.
* Supports:
** All of the standard buttons on the 3DS.
** The circle pad as a joystick.
** The touch screen to move the mouse.


Copy the file <code>3DS/3DSController.ini</code> to the root of your 3DS's SD card, and change the line that says <code>IP: 192.168.0.4</code> to match your computer's local IP. If you are unsure of your local IP address, run <code>3DSController.exe</code> and it will tell you. Run <code>3DSController.exe</code> on your computer. If you are prompted, make sure to allow it through your firewall. Start the application on your 3DS, there is no GUI, it will automatically try to connect to the IP address you put in <code>3DSController.ini</code>. If it wasn't able to read the IP from <code>3DSController.ini</code>, it will notify you and quit. Otherwise, you should just see a black screen, this is a good sign. To see if it works, open Notepad and press some buttons on the 3DS, they should show up.
==External links==
* GitHub - https://github.com/CTurt/3DSController
* GBAtemp - https://gbatemp.net/threads/3ds-controller.375443


You can also test if the joystick works by going to Configure USB Game Controllers in Control Panel, it shows up as vJoy. If using version 0.4 or above you can press L, R and X to bring up the keyboard. Press L, R and X again to close it. If using version 0.6 or above, up to 16 joystick buttons are available. If you wish to use more than 8, you need to configure vJoy. Search in your start menu for vJoyConfig and set buttons to 16. If using Ninjhax press Start and Select to return to the Homebrew Loader, otherwise you can just exit with the Home button.
[[Category:3DS homebrew applications]]
=== Setup and Usage (Linux) ===
[[Category:Homebrew utility applications on 3DS]]
-For keyboard emulation Follow the Windows instructions, but use <code>3DSController.py</code> instead of the EXE. -For Joystick emulation, first, install [https://github.com/tuomasjjrasanen/python-uinput python-uinput]. BEWARE: The latest release of this library as of the writing of this tutorial is 0.10.2 which is broken for most updated systems. Download the master branch directly. Make sure that uinput module is running. You can do it from cosole like so: <code>#!sudo modprobe uinput</code> Then, follow the Windows instructions, but use <code>3DSController_gamepad.py</code> instead of the EXE. May work on OS X too, but this is not tested.
=== Configuration ===
Find the line <code>Port: 8889</code> and change it to your desired port, do this for both the 3DS's <code>3DSController.ini</code> and the PC's <code>3DSController.ini</code>. To use custom key bindings, just change the PC's <code>3DSController.ini</code> file, it should be straight forward.
=== Configuration (Linux) ===
The configuration for the keyboard emulation is in <code>3DSController.py</code>, not the INI. The configuration for the joystick emulation is in <code>3DSController_gamepad.py</code>, not the INI.
=== Troubleshooting ===
* Make sure that you are using the 3DS and PC application from the same release,
* Make sure your 3DS has internet access (turn on the switch on the side of the 3DS so that an orange light shows) and is on the same network as your PC,
* Make sure that the <code>3DSController.ini</code> is in the root of your 3DS's SD card (not flashcard micro SD),
* Make sure that the <code>3DSController.ini</code> has the local IP of your computer, not your public IP,
* Make sure your firewall isn't blocking the application,
* Try using a different port (change the port for both the 3DS and PC's .ini file),

Revision as of 03:03, 9 July 2021

Template:Infobox 3DS homebrew

3DSController is a 3DS homebrew application which allows you to use your 3DS as a wireless controller for Windows.

Installation

Note: If you are updating to 0.6 from an older version, you will need to make sure you update vJoy to the recommended version.

Firstly, if you want to be able to register the circle pad or touch screen as a joystick you will need to install vJoy (version 2.0.5-120515 is preferable). However, if you just want to use keyboard buttons, this is not necessary.

Extract the archive and copy the executable in the 3DS directory with the extension that applies to your loader into your 3DS's SD card or flashcard's micro SD card:

  • 3DSController.3dsx and 3DSController.smdh for Ninjhax.
  • 3DSController.3ds for flashcards.
  • 3DSController.cia for CFWs.

Copy the file 3DS/3DSController.ini to the root of your 3DS's SD card, and change the line that says IP: 192.168.0.4 to match your computer's local IP.

To check your local IP address, run 3DSController.exe and it will tell you.

User guide

Setup (Window)

Run 3DSController.exe on your computer. If you are prompted, make sure to allow it through your firewall.

Start the application on your 3DS, there is no GUI, it will automatically try to connect to the IP address you put in 3DSController.ini.

  • If it wasn't able to read the IP from 3DSController.ini, it will notify you and quit.
  • Otherwise, you should just see a black screen, this is a good sign.
  • To see if it works, open Notepad and press some buttons on the 3DS, they should show up.

You can also test if the joystick works by going to Configure USB Game Controllers in Control Panel, it shows up as vJoy.

  • If using version 0.4 or above you can press L, R and X to bring up the keyboard. Press L, R and X again to close it.
  • If using version 0.6 or above, up to 16 joystick buttons are available. If you wish to use more than 8, you need to configure vJoy.
  • Search in your start menu for vJoyConfig and set buttons to 16. If using Ninjhax press Start and Select to return to the Homebrew Loader, otherwise you can just exit with the Home button.

Setup (Linux)

For keyboard emulation, follow the Windows instructions, but use 3DSController.py instead of the EXE.

For Joystick emulation, first, install python-uinput.

  • Beware the latest release of this library as of the writing of this tutorial is 0.10.2 which is broken for most updated systems. Download the master branch directly.
  • Make sure that uinput module is running. You can do it from cosole like so: #!sudo modprobe uinput
  • Then, follow the Windows instructions, but use 3DSController_gamepad.py instead of the EXE.

May work on OS X too, but this is not tested.

Configuration (Windows)

Find the line Port: 8889 and change it to your desired port, do this for both the 3DS's 3DSController.ini and the PC's 3DSController.ini.

To use custom key bindings, just change the PC's 3DSController.ini file, it should be straight forward.

Configuration (Linux)

The configuration for the keyboard emulation is in 3DSController.py, not the INI.

The configuration for the joystick emulation is in 3DSController_gamepad.py, not the INI.

Troubleshooting

  • Make sure that you are using the 3DS and PC application from the same release.
  • Make sure your 3DS has internet access (turn on the switch on the side of the 3DS so that an orange light shows) and is on the same network as your PC.
  • Make sure that the 3DSController.ini is in the root of your 3DS's SD card (not flashcard micro SD).
  • Make sure that the 3DSController.ini has the local IP of your computer, not your public IP.
  • Make sure your firewall isn't blocking the application.
  • Try using a different port (change the port for both the 3DS and PC's .ini file).

Controls

L/R/X - Toggle keyboard (vJoy 0.4 or above)

Media

Changelog

0.6 9 Sep 2015

3DS Client:

  • Backlight disabled when not in use (less battery consumption).
  • New 3DS buttons and C Stick support.

PC Server:

  • DLL errors fixed.
  • Updated vJoy to latest version (fixes Windows 10 compatibility).
  • Screenshot code scrapped.
  • 2 separate JoySticks can be configured.
  • 8 additional JoyStick buttons supported.

0.5 21 Mar 2015

  • Updated for latest ctrulib compatibility.
  • Updated README to link to a compatible version of vJoy.
  • Fixed the "Tap" control to only fire when the keyboard is not active.
  • Added support for mapping buttons to the vJoy joypad as well as to keyboard keys (fixes support for programs like Dolphin), use by mapping a key to "JOY1", "JOY2", "JOY3", up to "JOY8".

0.4 12 Dec 2014

  • Keyboard support. Press L, R, and X to toggle it.
  • Warn you if your Wireless is turned off when you boot the application.
  • Improved threshold calculation when using circle pad to move mouse.
  • Setting Mouse Speed to 0 when using touch screen to move mouse sets mouse to absolute position, rather than relative to last position.
  • The Tap event is fired when the touch screen is released, rather than when it is first press.
  • Other misc bug fixes.

0.3 10 Dec 2014

  • Default port changed to 8889 to avoid conflict.
  • "Throttle" option in PC's 3DSController.ini, greatly reduces CPU used by application, default setting of 20 reduces CPU usage by over 6 times in my experience.
  • Can bind a key to NONE in PC's 3DSController.ini.
  • Format of the 3DS's 3DSController.ini file changed to match that of PC's.
  • Threshold for circle pad when moving mouse.
  • New setting of "Mouse Speed" in PC's 3DSController.ini.
  • Corrected Y axis when using touch screen as joystick.
  • Fixed support for CLICK and RIGHT CLICK key bindings.

0.2 7 Dec 2014

  • More graceful error handling towards systems without vJoy.
  • More graceful error handling when 3DS can't read 3DSController.ini.
  • Z axis on vJoy controller is now in the middle value rather than 0.
  • PC application lists your IP addresses to help those unsure of how to find it.
  • Custom key bindings support.
  • Custom port support.
  • Other misc bug fixes.

0.1 6 Dec 2014

  • Initial release.
  • Supports:
    • All of the standard buttons on the 3DS.
    • The circle pad as a joystick.
    • The touch screen to move the mouse.

External links

Advertising: