SNES USB Controller and Flash Drive: This instructable will detail how I went about modifying an SNES controller into a USB controller with built-in flash drive. This is not a very fancy method, just pulling together bare hardware bits to get the job done. Full credit for the general.
You can now connect a USB flash drive or external hard drive to your SNES Classic and run games from your external drive. This is useful because many consoles like the Playstation 1, N64, MAME, Dreamcast, or NeoGeo have large game files that can fill up the internal memory of the SNES Classic quickly. Now you can add all of the games you want and run them from an external USB drive. Follow our USB-Host tutorial to get started!
In this guide we will show you detailed steps on how to set up your SNES Classic to use a USB drive, how to set up your USB, how to add games, and more. We will be using hakchi2 CE to install the USB-host mod and add games to the external drive.
- Okay, you can now test it out. Connect your USB OTG adapter to the micro-USB power port on the back of your console, then connect the power cable to the micro-USB port on the adapter, and connect the USB drive to the USB port on the adapter. Turn it on and you should now see all of the games from your USB drive on your SNES Classic.
- SNES USB Controller Problems If the controller is activating all buttons when you hit 'B' then its either a cheap knock off controller or there's an issue with the contacts inside the case. Could be a bad bit of soldering is making multiple contacts.
- A wide variety of usb joystick drivers options are available to you, such as led touch control. You can also choose from ce, fcc, and rohs. As well as from 1 year. And whether usb joystick drivers is joystick. There are 174 usb joystick drivers suppliers, mainly located in Asia.
What you will need...
Before we begin, you will need a USB OTG adapter to connect your USB drive and power source to your SNES Classic. You can purchase one on Amazon. Either of these will work:
- USB OTG Adapter (Compact) *this is the one I am using*
This tutorial is the same and works for both the SNES Classic Mini and NES Classic Mini.
We will be using hakchi2 CE build to install the USB-Host mod. Before we begin, this tutorial assumes you are using a fresh, unmodified SNES Classic. If you already have a version of hakchi2 installed, please uninstall following this tutorial here.
Now let's get started.
1. Download hakchi2 CE (hakchi2-CE-#.#.#-release.zip) and extract it to your computer.
2. Run hakchi.exe.
3. Go to Kernel > Install / Repair and hit Yes.
4. If this is your first time, you will be prompted to install drivers. You will only need to do this once. Now follow the steps on the screen - connect your console to your computer, hold the reset button and turn on the power switch, and then release the reset button after a few seconds. While that is installing, we can start formatting the USB drive.
5. Connect your USB drive to the computer, locate the USB drive in the folder, right-click it, and hit Format...
6. Make sure 'NTFS' is selected for File system and hit Start then hit OK.
7. In hakchi2 CE, hit Add more games and add your ROMs.
8.*OPTIONAL* You can now add box arts, edit names, edit the command lines, change folder structures, install hmods, etc.
You can also change the structure of the game selection screen by going to Structure and selecting your option. I like all of my original and added games on the same page so I have disabled page/folders.
9. Hit Export games.
10. Select your USB drive and hit OK.
11. Okay, you can now test it out. Connect your USB OTG adapter to the micro-USB power port on the back of your console, then connect the power cable to the micro-USB port on the adapter, and connect the USB drive to the USB port on the adapter. Turn it on and you should now see all of the games from your USB drive on your SNES Classic.
If you have any questions please leave it in the comments below.
Snes Usb Controllers
Credits: /u/princess_daphie, /u/DanTheMan827, and /u/skogaby of Reddit
I’m starting to pull my hair out on this one! I bought two (let’s face it, knock off) USB SNES controllers off eBay.
They plug in and play beautifully in the menu system for EmulationStation once configured as new controllers. I have run the Joystick setup and they are picked up there without issue also.
Using JStest and the joystick setup I can see the buttons are all working and register on both as the same results:
a = 1
b = 2
y = 3
x = 0
Start = 9
Select = 8
Left Sh = 4
Right Sh = 5
Up = -32767
Down = +32767
Left = -32767
Right = +32767
The confusing part is that once an Emulator loads and picks up the RetroArch configuration file of USBgamepad.cfg, the D-Pad does not work full stop. All the other buttons do, including the special configurations such as emulator quit, save state, load state etc..
I close out of the emulator and the D-pad starts working again.
I’ve tried reconfiguring the cfg file with just +1, -0, +1, -0 etc for the axis and have even added the input buttons for h0up and so on. Still no go.
I should probably tell you that this is a Pi 2 running the latest RetroPie build Version 3 Beta. I have also plugged the controllers in to a PC and they work fine there.
I had the same issue with my controller- exact same as yours. For some reason the autoconfig with retroarch had issues and I had to manually set them in the retroarch.cfg file. I put in my custom controls and changed autoenable from true to false (you’ll know if you did it right by the yellow joypad text not showing up when you start a game)
Yes, I’ve just been looking at this. There does seem to be some questionable settings in the default USB_Gamepad_.cfg
A quick way of updating this to ensure it is specific to your exact controller is to run the setup script for your retroarch controller.
Option 3 – Setup
Option 320 – Configure input devices for RetroArch
You have some squiffy quote marks there. Are they like that in your file, or all standard?
You have a mix of:
“ ″ ”
Autoenable is on by default, if you can keep it on it can make things easier, but if you only ever use one type of controller you could turn it off like herbfargus says.
You can set a specific controller per emulator within retroarch, but lets try getting the auto file working.
Maybe you can your file up here so we can see it?
I’m just wondering about those quotes
Have you tried changing
The only other difference on mine, is that my first line says
input_device = “USB Gamepad ”
input_device = “USB gamepad ”
but then I think thats specific to my controller so I wouldnt worry about that.
If you manually change it to the -1 etc.. above make sure the quotes are just as the other examples in the file (or just dont change them basically).
I’m assuming you havent changed anything in any of the retroarch.cfg files.
[quote=95567]Nothing has changed in the tetrarch.cfg file to my knowledge.
I’ve just realised that the -32767 was put in by me when the -1 etc wasn’t working. I’ve deleted the config file again and recreated it so it now shows 1 rather than 32767.
Still no D-Pad!
And the quote marks look correct? No odd ones?
Which game and emulator are you trying? I’ll try the same.
I’m assuming the yellow text appears at the bottom of the screen when you start a game?
Could you post your retroarch file on pastebin for me to see?
And let me know which emulator and game you are testing against?
Ok, I think its the spacing next to the hashes maybe.
with this contents
I’ve also attached it, renamed as .txt
Here are the main diffs, mine are in green:
Attached to this post.
Rename to .cfg
If any of the above steps didn’t work for anyone, this is what I did to get my dpad to work:
I went into
(I have the Raspberry Pi 2 Model B, with retropie v3.0 beta2 on it and I have these controllers http://www.ebay.com/itm/291352700689 – though that shouldnt matter since they work until I start a game, and I’ve tried a ton)
I have the same problem. My D-Pad doesn’t work “in-game” , but it works in the menu etc. I’ve tried what’s been written above, copy/pasted the files into my current files, but without any success.
Though I have not changed (don’t know if it’s the correct one or even if I’m supposed to change that one) /opt/retropie/emulators/retroarch/retroarch.cfg it just says permission denied.
On the other hand, I have changed the /opt/retropie/configs/all/retroarch.cfg with the text posted above. I have also changed the /opt/retropie/emulators/retroarch/configs/USB_Gamepad_.cfg with the text above.
Nothing seem to be working, the D-Pad still doesn’t work.
To fix it though I deleted all the automatically created config files and let it create a new one. This time it worked perfectly with my SNES controllers working without the need to go near the retroarch.cfg file.
Which files is that exactly? Because I have no idea about this stuff.
If you are using Version 3 Beta 2 I am starting to think there might be a problem with the autoconfig files.
My fix was as follows:
1 – Backup all files under config
2 – Delete them all
3 – Reconfigure each joypad using RetroPie Setup script and Joystick setup
EDIT: Just saw this one. I tried (Im accessing it through filezilla etc, hope thats the correct way to do this?) to delete the files, but I keep getting the ”Permission Denied” error…
EDIT: Found it on the forum:
for mame4all-pi, other emulator edits
sudo chown -R pi:pi /opt/retropie/emulators/
But still doesn’t work. Just reinstalled retropie and doing everything again to see if it helps.
Ok, so I reinstalled the whole thing. Then deleted all the config files /opt/retropie/emulators/retroarch/configs and rebooted – now nothing worked, even after input configure.
Then put the config files back and edited USB_Gamepad_ in the config folder, and the retroarch.cfg file in /opt/retropie/emulators/retroarch and in /opt/retropie/configs/all.
Still… D-Pad doesn’t work.
Hopefully you guys can help me out!
To keep it simple you could remove the existing .cfg files, just to make sure there is no conflict with (I think there *may* be an issue with the gamepad cfg file there by default but I’m just checking that out – by removing it as below it will get rid of the potential issue):
sudo rm /opt/retropie/emulators/retroarch/configs/*.cfg
Then create a new one with the setup script:
And choose 3-Setup, 320-Configure Input for RetroArch
This shouldn’t really be changed though:
I’d make sure this is original and unedited:
I just did what you wrote… T H A N K Y O U!
You have no idea how wonderful it is to finally get it to work after 5-6 hours of failing yesterday! Again – thanks! I can now die happy!
I know this thread has been inactive for a few months but I would really appreciate some assistance if available.
I’m having the issue with the D-Pad not working in game. I’m using a wired Xbox 360 controller and have the latest version of Retropie 3 Beta. I tried Floob’s fix but when I type /opt/retropie/configs/all/retroarch/cfg to fix this issue I get
-bash: /opt/retropie/configs/all/retroarch.cfg: Permission Denied
What do? Is there a definitive fix for this problem?
If you are using RetroPie 3 beta 4, and the config via Emulation Station isnt working for you, try removing the files here
Then you can see whats there with “ls”
You can delete them all
Then recreate by running the retropie-setup script and choosing the register retroarch joypad option.
For now I have configured the left Joystick as the D-Pad in Retropie which has been a functional work-around, however I would still prefer to use the D-Pad in many games, but at least I’m able to play them now.
Is this not correct? Thanks for your help by the way, and for pardoning my noobishness. I’m learning a lot as I go and this is the first problem that I’m seemingly unable to solve on my own.
If I was you I’d be tempted to remove those configs with
Then run the controller registration for retroarch.
You can do this with
Then choose 3 – Setup
Then “Configure input devices for RetroArch”
That will then prompt you to press the buttons on your controller.
This video shows how to set the analogue stick to work as well.
Snes Usb Controller Driver
- The forum ‘Controller Configuration in RetroPie’ is closed to new topics and replies.