RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    NES controller not working with New ControlBlock2 build

    Scheduled Pinned Locked Moved ControlBlock, PowerBlock & Co.
    nescontrolblock2newbie question
    25 Posts 6 Posters 4.1k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Hravnkel @petrockblog
      last edited by

      @petrockblog Thank you! I will check that out tonight. Awesome support!

      1 Reply Last reply Reply Quote 0
      • H
        Hravnkel
        last edited by

        Unfortunately it seems to be another error in the code right now, I am unable to compile the source:

        [ 74%] Building CXX object src/controlblock/gamepads/CMakeFiles/controlblock-gamepads.dir/SNESGamepad.cpp.o
        /home/pi/ControlBlockService2/src/controlblock/gamepads/SNESGamepad.cpp: In member function ‘virtual void SNESGamepad::update()’:
        /home/pi/ControlBlockService2/src/controlblock/gamepads/SNESGamepad.cpp:79:33: error: redeclaration of ‘IDigitalIO::DIO_Level_e resetLevel’
        IDigitalIO::DIO_Level_e resetLevel = digitalIO.getLevel(IDigitalIO::DIO_CHANNEL_P1_A);
        ^~~~~~~~~~
        /home/pi/ControlBlockService2/src/controlblock/gamepads/SNESGamepad.cpp:66:33: note: ‘IDigitalIO::DIO_Level_e resetLevel’ previously declared here
        IDigitalIO::DIO_Level_e resetLevel = digitalIO.getLevel(IDigitalIO::DIO_CHANNEL_P1_B);
        ^~~~~~~~~~
        src/controlblock/gamepads/CMakeFiles/controlblock-gamepads.dir/build.make:134: recipe for target 'src/controlblock/gamepads/CMakeFiles/controlblock-gamepads.dir/SNESGamepad.cpp.o' failed
        make[2]: *** [src/controlblock/gamepads/CMakeFiles/controlblock-gamepads.dir/SNESGamepad.cpp.o] Error 1
        CMakeFiles/Makefile2:739: recipe for target 'src/controlblock/gamepads/CMakeFiles/controlblock-gamepads.dir/all' failed
        make[1]: *** [src/controlblock/gamepads/CMakeFiles/controlblock-gamepads.dir/all] Error 2
        Makefile:127: recipe for target 'all' failed
        make: *** [all] Error 2

        1 Reply Last reply Reply Quote 0
        • P
          petrockblog Global Moderator
          last edited by petrockblog

          Thanks for the hint. That is fixed now.

          You can call wget -O - https://raw.githubusercontent.com/petrockblog/ControlBlockService2/master/install.sh | sudo bashto reinstall the driver.

          1 Reply Last reply Reply Quote 0
          • S
            Sledrunner21
            last edited by

            Hi, I'm still having the same problem w/ the jstest showing all the controller buttons on all the time. I don't think I'm installing the updated driver properly. I'm sure this is real basic but I struggle when I don't have a line-by-line example to follow.
            alt text

            There is a vertical line towards the end of the following command:
            wget -O - https://raw.githubusercontent.com/petrockblog/ControlBlockService2/master/install.sh | sudo bash

            I get a ~ instead of the | when typing into raspberrypi. I then get the following:
            wget -O - https://raw.githubusercontent.com/petrockblog/ControlBlockService2/master/install.sh ~ sudo bash
            alt text

            I also tried it as two separate commands:
            wget -O - https://raw.githubusercontent.com/petrockblog/ControlBlockService2/master/install.sh
            sudo bash -------this changed the directory, otherwise looked similar to the other attempt

            I checked my config again:
            alt text

            Thanks for the help!

            1 Reply Last reply Reply Quote 0
            • H
              Hravnkel
              last edited by

              I am now able to compile and install the driver, however I do not get all buttons functionable anymore. I tried this on two different units that has been functioning with the exact same wiring before, so I am confident it's not a problem with wiring.

              pi@retropie:~ $ jstest /dev/input/js0
              Driver version is 2.1.0.
              Joystick (ControlBlock SNES Gamepad) has 2 axes (X, Y)
              and 8 buttons (BtnA, BtnB, BtnX, BtnY, BtnTL, BtnTR, BtnSelect, BtnStart).
              Testing ... (interrupt to exit)
              Axes: 0: 0 1: 0 Buttons: 0:on 1:on 2:on 3:off 4:on 5:on 6:on 7:off

              This is the output I get from jstest, and as seen here only button 3 (B on a NES controller) and 7 (Start on a NES controller) as well as the axes are responsive. The rest is in a constant "on"-mode.

              The /etc/controlblockconfig.cfg is edited to interpret the controllers as SNES-controllers and both units worked before trying to upgrade.

              It seems like the unit is also very slow in reaction but that could be the jstest command not registering very fast. I haven't moved forward to installing any games before the control-issues are solved. :)

              S 1 Reply Last reply Reply Quote 0
              • S
                SuperPitendo @Hravnkel
                last edited by

                @hravnkel said in NES controller not working with New ControlBlock2 build:

                I am now able to compile and install the driver, however I do not get all buttons functionable anymore. I tried this on two different units that has been functioning with the exact same wiring before, so I am confident it's not a problem with wiring.

                pi@retropie:~ $ jstest /dev/input/js0
                Driver version is 2.1.0.
                Joystick (ControlBlock SNES Gamepad) has 2 axes (X, Y)
                and 8 buttons (BtnA, BtnB, BtnX, BtnY, BtnTL, BtnTR, BtnSelect, BtnStart).
                Testing ... (interrupt to exit)
                Axes: 0: 0 1: 0 Buttons: 0:on 1:on 2:on 3:off 4:on 5:on 6:on 7:off

                This is the output I get from jstest, and as seen here only button 3 (B on a NES controller) and 7 (Start on a NES controller) as well as the axes are responsive. The rest is in a constant "on"-mode.

                The /etc/controlblockconfig.cfg is edited to interpret the controllers as SNES-controllers and both units worked before trying to upgrade.

                It seems like the unit is also very slow in reaction but that could be the jstest command not registering very fast. I haven't moved forward to installing any games before the control-issues are solved. :)

                Hi, I have exactly the same issue. The Controlblock worked perfectly until I upgraded my build with a Pi 3b+ and used the 4.4 Image (Previously Pi 3b & 4.3).

                1 Reply Last reply Reply Quote 0
                • P
                  petrockblog Global Moderator
                  last edited by

                  Strange, I will test this on my side with a complete hardware setup and fresh RetroPie 4.4!

                  1 Reply Last reply Reply Quote 0
                  • H
                    Herzog Leto
                    last edited by

                    Hi,
                    Im using a old SNES case with Pi3 and Controlblock version 2.1 some time without any Problems.
                    Now i also has a similar problem after updating Retropie from 4.3 to 4.4.

                    After setting the controblock config to "SNES" Button 1 and 6 on controler port one (js0) are always "on". Controler port two (js1), Power switch and reset button works fine.

                    Im made a few tests:

                    • I've also testet it with a new Retropie 4.4 Image without update. Exact the same issue.
                    • I'm also getting exact this signals without any wires on the controlblock beside the power switch.
                    • I'm set the controlbock config to "arcade" according to the Tutorial to check all pins seperat - with success. The Hardware seems fine.

                    I'm also noticed that the default controlblock.cfg has no "genesis" entry like the readme on github.

                    I hope you can fix this problem.
                    Thanks for all the great work.

                    1 Reply Last reply Reply Quote 0
                    • NeoKnuxN
                      NeoKnux
                      last edited by

                      I am having the EXACT same issue as Herzog.
                      I actually performed the exact same tests as well before checking this thread, and had the exact same results.

                      1 Reply Last reply Reply Quote 0
                      • P
                        petrockblog Global Moderator
                        last edited by

                        There was a bug with a recently added additional virtual keyboard button, which is fixed now (finally). Sorry for this bug!

                        You can attach any momentary buttons on Player 1 A or B. Pressing the buttons will lead to a simulated press of the ESC or the F1 key.

                        1 Reply Last reply Reply Quote 0
                        • H
                          Herzog Leto
                          last edited by Herzog Leto

                          Thanks for your fast response! I will test it the next few days.

                          1 Reply Last reply Reply Quote 0
                          • NeoKnuxN
                            NeoKnux
                            last edited by

                            Thank you for the amazing turn around time! I reinstalled the driver, and everything is working perfect again.

                            1 Reply Last reply Reply Quote 0
                            • S
                              SuperPitendo
                              last edited by

                              Nope...
                              After reinstallation of the driver I still have the same problem like Hravnkel.
                              Setting: RPI 3b+, 4.4 Image, Controlblock2, SNES Controller.
                              Gamepadtype is configured as "snes".
                              The powerswitch function works well but if I want to configure the input just the "B" button is recognized...

                              1 Reply Last reply Reply Quote 0
                              • P
                                petrockblog Global Moderator
                                last edited by

                                Ok, I was able to reproduce your observation with NES controllers. I have fixed it a few minutes ago.

                                There is now a dedicated NES gamepad type in the configuration: Use "nes" as gamepad type in /etc/controlblockconfig.cfg.

                                1 Reply Last reply Reply Quote 0
                                • H
                                  Herzog Leto
                                  last edited by

                                  My problems are also gone. Thanks a lot!
                                  By the way, this time I used the Retropie-setup script to install the driver. Works fine.

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    Sledrunner21
                                    last edited by

                                    Original poster here.

                                    I was able to install the latest driver using:
                                    wget -O - https://raw.githubusercontent.com/petrockblog/ControlBlockService2/master/install.sh | sudo bash

                                    I took me a while to understand the difference between US & UK keyboards to make the "|" (pipe) symbol. For those w/ US keyboards, use the lower right ALT + "~" (next to #1).

                                    I am struggling again w/ having and empty /ect/controlblockconfig.cfg file which is preventing me from setting the controller as NES or SNES.
                                    cd ControlBlockService2
                                    sudo nano /ect/controlblockconfig.cfg

                                    I can run jstest /dev/input/js0 and it shows driver 2.1.0 (same as before) and being set as arcade (I had switched it to SNES w/ the old driver back when I could open the config file).

                                    How do I get the /ect/controlblockconfig.cfg file to open again so I can edit it to NES now?

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      petrockblog Global Moderator
                                      last edited by

                                      You can restore the original configuration file by running the install script again, e.g., by running sudo ./install.sh from within the ControlBlockService2 directory.

                                      1 Reply Last reply Reply Quote 0
                                      • P
                                        petrockblog Global Moderator
                                        last edited by

                                        Also, the config file is located in the folder supplementary within the driver folder ControlBlockService2.

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post

                                        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.