ControlBlock settings not recognized by emultors
-
So I have finished gutting a SNES and wiring the control block to the original ports. I then installed the latest RetroPie (4.yesterday's version) and ran it. Connected SNES gamepad and it was recognized straight away and configured it just fine. In Emulation Station the buttons all map properly. In the command line thing (at work, can't recall command) all the buttons responded just fine. The problem is when I launch a SNES or NES game the buttons completely fail, regardless of the ROM used. The B button is Start, and only the d-pad works other than that. I am looking for ideas on where to look to fix the emulators to work with ControlBlock. Worst part is the controlblock text pops up at the bottom of the screen when the emulator launches. I am at a loss here, any help is much appreciated.
-
Can you post the content of the ControlBlock configuration file /etc/controlblockconfig.cfg? You can show the content of that file, e.g., via the command
cat /etc/controlblockconfig.cfg
. -
@petrockblog Good news is I am very comfortable with the CLI. Bad news is I tried to reinstall retropie today and the problem persists.
pi@retropie:~ $ cat /etc/controlblockconfig.cfg
{
"input" : {
// "gamepadtype" : "arcade"
// "gamepadtype" : "mame"
"gamepadtype" : "snes"
// "gamepadtype" : "none"
},
"powerswitch" : {
"activated" : true
// "activated" : false
}
} -
I received my controlblock last week and I am having the exact same problem. I've verified that driver is installed as per the instructions on petrockblog and my controlblock.cfg is identical to OP's.
My SNES controller is being detected by emulationstation and I can configure it to where all the buttons function perfectly but when I load an emulator only the D-Pad functions normally. A button is working as the Select button and B works as start.
I've checked that my controller profile is being generated in the retroarch-joypads folder and it is listed as a udev device. I thought that it might need to use the "linuxraw" driver but that didn't correct the issue.
I have tested with a USB SNES controller and that functions fine with no issues, which is why I don't think the problem is in retroarch/retropie.
Problem exists on every emulator I try.
I am running current retropie version 4. I also tested with version 3.8 and the problem exists there too.
-
Bummer to hear that downgrading didn't do the issue. That was my next step. I spent a few hours the other night messing with it to no avail. I'm going to try again tonight, I read there is a way to enter the setup from within the emulators to change the settings. I'm hoping that I can get this fixed as the whole appeal is the SNES controllers working stock. Also why I purchased the control block.
-
So I spent some time digging through the git commit history with a friend trying to find out why it wasn't working. I knew a ton of other people were successful in getting their SNES controllers working so there must be something not quite right.
After spending some time bisecting the commits we found a version that worked from march. That let us find the commit that was causing the errors from occurring.
Running a diff let us find the exact lines of code that were changed between working and nonworking versions in SNESGamepad.cpp
I forked the repo and made the changes necessary to fix the problem.
If you follow the original instruction but substitute “git clone git://github.com/firesetter/ControlBlockService2.git”
It should work.I also submitted a pull request to hopefully get this added into the master repo for petrockblock. You can track that at:
https://github.com/petrockblog/ControlBlockService2/pull/10Hopefully that helps.
-
Thanks a lot for the pull-request! I have just merged it into master.
-
@petrockblog @fireraisr so, I just reinstalled retropie for the umpteen-millionth time, and control block is no longer recognizing my d-pad with the latest config. I am about to go the USB route, but it would muck up the presentation of the SNES game pads from the SNES itself. Any ideas?
Edited to add: just ran justest /dev/input/js1 (where it recognizes the SNES controller) and the only button it recognizes is the B button. I know this is wired correctly and that all the wiring is still properly connected (just tested with multimeter to be sure). SPI is enabled, I have updated, and rebooted multiple times.
Final edit- I am an idiot- forgot to edit /etc/controlblock.cfg to uncomment sees. ::face palm:: Everything is back in order. Mahalo!
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.