Pi in a Super Famicom Build
-
@lorc34 cough buy a screwdriver cough
Seriously though, while you're waiting for your screwdriver to arrive in the mail, you can probably get the pen out with some sort of a pick, or even if you need to use a slightly undersized drill bit.
-
You know what happens when you assume? You get to see the rainbow square in the top right corner of your screenβ¦
Due to space constraints a straight USB cable wouldn't fit in the back of my Super Famicom without a sharp bend so I bought a right-angle USB cable. Today it showed up and I proceeded to cut it in half and join it to a straight USB cable. (I couldn't find a right angle male-to-male cable). Everything looked good until I plugged in a controller. The Pi threw up the rainbow square and rebooted.
Something had to be crossed.
I took all the heat shrink off and checked the solder joints. Everything looked fine. Then I thought, "I wonder if these two cables are using different colored wiresβ¦" Just because there's a "standard" doesn't mean every manufacturer is using it, and really, most people don't unsheath their USB cables so in most cases it wouldn't be a problem.
Sure enough, the straight USB cable I bought was using the "standard" and the other cable was, well, not. I translated the wire colors from one cable to the other, rejoined everything, and now I'm good.
It's a good thing I learned to test for this BEFORE hooking up my Raphnet adapter.
-
@obsidianspider it is common for cheap chinese cables to have the wires crossed.
-
Today I decided to tackle the Raphnet adapter. I traced the pins on the SFC controller panel to the connector that I desoldered from the original main board. I soldered up a short USB cable and a ribbon cable to the SFC connector socket and it turned out pretty well. To keep the pins from touching each other I put some hot glue on the pins.
I plugged in the adapter and turned on the Pi and four controllers were detected (The Raphnet adapter is for up to four controllers.). I set up controller one and then after I hit OK I was into EmulationStation. That threw me off a bit. I thought EmulationStation would just cycle through all the controllers automatically, but when I was in EmulationStation I just hit Start and then went into "Configure Input" and set up controller 2.
The Raphnet adapter seems to work well, but after exiting a game I did notice the "pointing northwest" issue that Raphnet mentioned, so right now I'm trying to do the kernel patch that was mentioned to see if it will correct the problem. Apparently that takes around two hours to run on a Pi 2.
-
It took about two hours for the kernel to compile and install, but Raphnet's patch seems to have fixed the "pointing northwest" issue.
-
@obsidianspider just so you know you dont have to set up more than one identical controller. Set up the first then reboot emulationstation for the second to work in emulationstation. Or just skip that because it will work in the emulators as soon as you set up the first one.
-
@edmaul69 said in Pi in a Super Famicom Build:
@obsidianspider just so you know you dont have to set up more than one identical controller. Set up the first then reboot emulationstation for the second to work in emulationstation. Or just skip that because it will work in the emulators as soon as you set up the first one.
So it'll just "know" that it's the same for player 2? Good to know.
-
@obsidianspider yup.
-
Since my friend is going to help me with my back panel today I wanted to try to get things a little closer to "done" before going to his house. When I put the top of the Super Famicom on I found that the cartridge slot area was hitting the GPIO area of the Pi. I could have cut the cartridge slot, but I'm really trying to keep the case intact, so I decided to take everything apart, remove the standoffs and relocate the Pi forward.
Now that the top fit I realized that since the eject mechanism wont be used there was nothing to keep the button up.
I looked at the button and there's a little bit of room on the bottom between the case and the button, so I took some black craft foam (I'm not sure of the real name for it, but it comes in sheets and is a few millimeters thick) and cut it into strips to fit between the bottom of the button and the case.
It worked out well. The button is snug and I didn't need to use any glue.
Things are looking good. Hopefully my friend and I will be able to make progress on the 3D printed back plate today.I'm REALLY liking using real Nintendo controllers. With the Raphnet adapter they seem much more responsive than the old Gravis Gamepad Pro that I had been using. The 2m extension cables I bought for the controllers work without any issues. With things working this well I may abandon my idea of also using Bluetooth controllers, or maybe I'll just use the Retro Receiver that 8bitdo makes.
-
@obsidianspider that's looking sweet man! I like the way your keeping everything looking factory made! I was thinking, if you got some slightly milky looking plastic to cover the tft, then had your label have the window to match the screen, it would look really good. And help to keep the screen more subtle and less distracting while your playing
-
@moosepr said in Pi in a Super Famicom Build:
@obsidianspider that's looking sweet man! I like the way your keeping everything looking factory made! I was thinking, if you got some slightly milky looking plastic to cover the tft, then had your label have the window to match the screen, it would look really good. And help to keep the screen more subtle and less distracting while your playing
Thanks! I think it's turning out really well.
After spending the afternoon at my friend's house I think I need to look at 3D printers. That stuff is really cool. We made progress today, but there are still quite a few tweaks that need to be done, so I left the SFC shell at my friend's house so he can test fit things. The next thing for me to work on is figuring out how I want to cut out for the screen in the cartridge. I want to do some tests with plastic light switch plates and such to figure out how I want the bezel to work.
I do plan on making a label with a cut-out in it for the screen. I'm not sure what you mean by milky plastic, but I'm thinking even if the screen is inset by the thickness of the cartridge plastic it won't be too bad. Since the cartridge is rounded that adds a challenge.
While my friend works on the power plate I'll be messing with my reset button screen scripts with the weight-reduced version of my SFC Pi build.
-
@obsidianspider great progress! Your eject button sagging fix is a good idea but I was thinking it would be cool if you could add an actual button there and when pressed, it will exit the game you're in and go back to EmulationStation. If you're not in a game it does nothing or some other function. I'm assuming your Reset button will either reset EmulationStation or reset the RPi and the Power button will either turn on the RPi or gracefully shutdown.
You could set the Eject button to run something like "sudo killall retroarch" which would be helpful if a Libretro emulator crashes or freezes and you could use it to get out. I sometimes have to SSH in and run that commend to exit a game that froze. If someone was a really good script writer, they could have it check to see which emulator is running and just kill that one. Or it could just gracefully exit the Libretro emulator like what happens when you press Start+Select on your gamepad.
-
@backstander i think the eject button would be best if it exited out of the game too as that best simulates what you are doing on a real system
-
@backstander said in Pi in a Super Famicom Build:
@obsidianspider I was thinking it would be cool if you could add an actual button there and when pressed, it will exit the game you're in and go back to EmulationStation. If you're not in a game it does nothing or some other function.
The only reason I don't have the actual eject mechanism/lever in place is because of things hitting the Pi. I'm not sure an actual button would fit well in there, especially after I upgrade to a Pi 3 with a decent heatsink. Finding a way to mount another button there is something to think about if I want to add more functionality in the future, but I'm not sure what I'd want that to be right now. Exiting an emulator isn't something I'm worried about since
Start+Select
works really well for that.I'm assuming your Reset button will either reset EmulationStation or reset the RPi and the Power button will either turn on the RPi or gracefully shutdown.
The Reset button is connected to the GPIO and is toggling a script that is enabling or disabling the backlight of the secondary screen. Eventually it will cycle between the game art, system info (temps, disk usage, etc.), and if I can figure out how to parse XML with Python, game info from the approriate game list. I have to consider a lot of cases for when things need to kick off and/or refresh, but for now, turning the light on and off was cool because it means the switch detection is working.
-
@edmaul69 said in Pi in a Super Famicom Build:
@backstander i think the eject button would be best if it exited out of the game too as that best simulates what you are doing on a real system
Right now it does what a real SNES/SFC does if you press the eject button and it's turned on, nothing. ;)
The power switch activates a lever that locks the game cartridge in place so you can't eject the cartridge while the system is powered on.
-
@obsidianspider yes. It is how you change games. Just like if it exited back to the menu to, you know, change games. :D
-
@obsidianspider my 'milky plastic' idea didn't work :( I was basically thinking of you were to get something like this
which you cant see through from a distance, but once its close to something you can, Then I thought if you put that over the screen, it would be all nice and hidden until it was on. However the pixels being as small as they are on the little tft screen, you actually loose a bit of quality
so scrap that!! I was just thinking out loud
-
@backstander said in Pi in a Super Famicom Build:
check to see which emulator is running and just kill that one.
I think the best way to achiev it is looking for the command line used to launch the emulator. It's usually the 4th line in
/dev/shm/runcommand.info
. ;-) -
@meleu said in Pi in a Super Famicom Build:
It's usually the 4th line in
/dev/shm/runcommand.info
. ;-)Wow! I didn't know that
runcommand.info
existed! That will help so I don't have to create a temp file with what's going on with a given game while I'm playing it.From github
/dev/shm/runcommand.info
now contains
system
emulator
rom
full commandline
-
@obsidianspider This thread is very informative and it's a pleasure to see your progress in your SNES build. Keep up the good work
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.