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

    I.K.E.M.E.N GO on Raspberry Pi 4 [Now with an Install Guide!]

    Scheduled Pinned Locked Moved Ideas and Development
    golangikemenikemen gomugentutorial
    153 Posts 20 Posters 53.6k 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.
    • M
      MrRussellgro @SuperFromND
      last edited by

      @superfromnd I will have to look into the roms folder and tell you if I have it installed there.

      1 Reply Last reply Reply Quote 0
      • SuperFromNDS
        SuperFromND
        last edited by

        Status update: one of the dependencies for IKEMEN GO, specifically this one, was updated and now explicitly requires Golang version 1.14 or newer. Problem: Best I can tell, Raspbian Buster has no native package for any Go version above 1.11. For the time being this effectively breaks the scriptmodule, but the upcoming Raspbian Bullseye should fix this, as it updates the Golang package to v1.15. Still out of date, but well within the range that can compile IKEMEN GO.

        There's also the option of manually compiling the latest version of Golang to use in the scriptmodule, but I don't think any modules in RetroPie do anything like this yet, so I have no idea how to go about doing that. (If any veteran scriptmodule devs are reading this and I happen to be wrong, let me know!)

        ▲▼▲▼▲▼▲▼▲▼
        IKEMEN Go
        SRB2Kart
        ▼▲▼▲▼▲▼▲▼▲

        1 Reply Last reply Reply Quote 0
        • SuperFromNDS
          SuperFromND
          last edited by

          Update again! Turns out there actually is precedence for manually installing non-package dependencies in RetroPie (thank you @mitu for pointing this out), and it happens to be a version of Golang too!

          I wasn't sure if there was any particular reason the script installs v1.8, so to be safe, I made a duplicate of the golang.sh module that installs Golang v1.17 and then updated the IKEMEN GO scriptmodule to use it. Unfortunately, I'm running into a little problem with this setup: when trying to compile, I'm getting an error:

          # Excerpt of scriptmodule code
          function build_ikemen-go() {
              local goroot="$(_get_goroot_golang-1.17)" # Resolves to /opt/retropie/supplementary/golang-1.17
              export GOPATH="$md_build"
              export GOROOT="$goroot"
          
              "$goroot/bin/go" clean -modcache
              make TAGS='-tags al_cmpt' linux
              # (etc.)
          }
          
          # Result when ran
          $GOPATH/go.mod exists but should not
          

          Apparently, you can't have GOPATH set to a location with a Go module file contained within it. I went with that path because the module that used Golang in RetroPie, scraper, also uses $md_build as GOPATH. "But no problem", I thought, "I'll just remove the GOPATH variable declaration and let Go figure it out". So I tried that, but it also resulted in a failed compile:

          # Excerpt of scriptmodule code
          function build_ikemen-go() {
              local goroot="$(_get_goroot_golang-1.17)" # Resolves to /opt/retropie/supplementary/golang-1.17
              export GOROOT="$goroot"
          
              "$goroot/bin/go" clean -modcache
              make TAGS='-tags al_cmpt' linux
              # (etc.)
          }
          
          # Result when ran
          ...
          go: downloading github.com/hajimehoshi/go-mp3 v0.3.0
          go: downloading github.com/hajimehoshi/oto v0.7.1
          go: downloading github.com/pkg/errors v0.9.1
          go: downloading github.com/jfreymuth/vorbis v1.0.0
          /opt/retropie/supplementary/golang-1.17/src/net/dnsclient.go:11:2: non-standard import "golang.org/x/net/dns/dnsmessage" in standard package "net"
          make: *** [Makefile:32: Ikemen_GO] Error 1
          

          So I looked up the non-standard import error, and according to Stackoverflow, the solution to this error is setting GOPATH to $HOME/go. Sounds good, except for one small problem: $HOME/go is the default path that Go uses when no GOPATH is specified. In other words, we're already using $HOME/go as GOPATH here!

          I'm sure I'm probably missing something; any Go-savvy folks who can help out here?

          ▲▼▲▼▲▼▲▼▲▼
          IKEMEN Go
          SRB2Kart
          ▼▲▼▲▼▲▼▲▼▲

          1 Reply Last reply Reply Quote 0
          • SuperFromNDS
            SuperFromND
            last edited by SuperFromND

            Alright, I figured out how to make it work after some trial and error. I ended up abandoning the Makefiles that IKEMEN GO's source code supplies in order to get it to always use Go 1.17, and that seems to have fixed the problem.

            If you want to give this scriptmodule a try, here's the updated instructions on how to do so (I'll assume you have some level of savviness with RetroPie already):

            • Step 0: Make sure you've updated RetroPie-Setup, and possibly also made a backup if you want to be safe.
            • Step 1: Download ikemen_go.sh and place it in /home/pi/RetroPie-Setup/scriptmodules/ports.
            • Step 2: Download golang-1.17.sh and place it in /home/pi/RetroPie-Setup/scriptmodules/supplementary.
            • Step 3: Start RetroPie-Setup, navigate to Manage Packages, then Experimental packages, then scroll down to ikemen-go. From there, install it. Give it about 20-40 minutes to install.
            • Step 4: Exit RetroPie-Setup and restart EmulationStation. If done correctly, IKEMEN GO should be available via the Ports screen, ready to launch.

            ▲▼▲▼▲▼▲▼▲▼
            IKEMEN Go
            SRB2Kart
            ▼▲▼▲▼▲▼▲▼▲

            1 Reply Last reply Reply Quote 0
            • M
              MrRussellgro
              last edited by

              So I dragged my from from the game on the PC version, but the screenpack is still stuck on the default one. I even changed the config file.

              SuperFromNDS 1 Reply Last reply Reply Quote 0
              • SuperFromNDS
                SuperFromND @MrRussellgro
                last edited by

                @mrrussellgro At a wild guess, it might be that either save/config.json or the screenpack itself is pointing to files using non-case-sensitive filenames. Works well enough on Windows which is case insensitive, but not so much on Linux.

                ▲▼▲▼▲▼▲▼▲▼
                IKEMEN Go
                SRB2Kart
                ▼▲▼▲▼▲▼▲▼▲

                M 2 Replies Last reply Reply Quote 0
                • M
                  MrRussellgro @SuperFromND
                  last edited by

                  @superfromnd Like I've said, I've changed my screenpack. I am wanting to use a bigger roster size to extend the character select screen. This is a screenpack I want to use: https://mugenguild.com/forum/PHPSESSID.7bb5383t2ah28a5jjp5iaded8q/topics/simplemugen-simplistic-mugen-battle-2021-193231.0.html

                  SuperFromNDS 1 Reply Last reply Reply Quote 0
                  • SuperFromNDS
                    SuperFromND @MrRussellgro
                    last edited by

                    @mrrussellgro I was able to get this screenpack to load by just copying the files into the data folder (albeit this overrides the default screenpack). The only issue was this weird issue where a flashing white line/triangle shows up on the character select screen (a known bug with displaying TTF fonts; apparently this was fixed on AMD but I don't know if the fix was merged upstream yet)

                    IMG_0409.JPG
                    IMG_0410.JPG
                    IMG_0412.JPG

                    I did notice that the "more-slots" version of the .def file was in a folder that used a space in its folder name. I wonder if that's the cause? (I just copied the system.def in that folder and overwrote the regular one with it)

                    ▲▼▲▼▲▼▲▼▲▼
                    IKEMEN Go
                    SRB2Kart
                    ▼▲▼▲▼▲▼▲▼▲

                    M 2 Replies Last reply Reply Quote 0
                    • M
                      MrRussellgro @SuperFromND
                      last edited by

                      @superfromnd That's pretty odd how it's acting up.

                      1 Reply Last reply Reply Quote 0
                      • M
                        MrRussellgro @SuperFromND
                        last edited by

                        @superfromnd BTW, when I tried to overwrite or change the path for the screenpack it gives me an error.

                        1 Reply Last reply Reply Quote 0
                        • T
                          TheSnackist
                          last edited by

                          good news: got it running on Pi3b

                          bad news: OMG it chuuuuuugs so bad

                          I had some success with changing the resolution to lowest it has a preset for: 320 x 240

                          I am also running into a Fullscreen issue. shouldn't the Fullscreen option resize the game, not just leave it at the low resolution in the corner?

                          T 1 Reply Last reply Reply Quote 1
                          • T
                            TheSnackist @TheSnackist
                            last edited by

                            @thesnackist said in I.K.E.M.E.N GO on Raspberry Pi 4:

                            good news: got it running on Pi3b

                            bad news: OMG it chuuuuuugs so bad

                            I had some success with changing the resolution to lowest it has a preset for: 320 x 240

                            I am also running into a Fullscreen issue. shouldn't the Fullscreen option resize the game, not just leave it at the low resolution in the corner?

                            okay using runcommand I got it into... somewhat working shape

                            if anyone else wants to try this on a pi 3b - the key was charging the resolution in IKEMEN to as low as it would allow (320x240) and then use runcommand to adjust on the framebuffer res to match... once you have done that picking a video mode on the same aspect radio will result in something semi-decent

                            now to do all the regular MUGEN config stuff!!

                            1 Reply Last reply Reply Quote 1
                            • M
                              MrRussellgro @SuperFromND
                              last edited by MrRussellgro

                              @superfromnd So yeah, remember when I said my screenpack wasn't working? Apparently I was just an idiot and forgot the stage wasn't working as the game launched with a error message before I could proceed to the title menu. It's working now.

                              1 Reply Last reply Reply Quote 1
                              • T
                                TheSnackist
                                last edited by

                                a new IKEMEN GO version, 0.98 was just released - will we be able to update using the same script we use to install?

                                SuperFromNDS 1 Reply Last reply Reply Quote 0
                                • SuperFromNDS
                                  SuperFromND @TheSnackist
                                  last edited by

                                  @thesnackist The script compiles from source, so it should be able to update just fine. I haven't tested the script with the new release yet, though.

                                  ▲▼▲▼▲▼▲▼▲▼
                                  IKEMEN Go
                                  SRB2Kart
                                  ▼▲▼▲▼▲▼▲▼▲

                                  R 1 Reply Last reply Reply Quote 0
                                  • T
                                    TheSnackist
                                    last edited by

                                    happy to report the update seems to work without a hitch!!

                                    (though I did learn the importance of making a separate folder for any tinkering you are doing with system.def, select.def etc., DOH)

                                    didn't se any immediate improvements in the lag/chugging but will have to do more testing

                                    1 Reply Last reply Reply Quote 1
                                    • R
                                      retro-devil2 @SuperFromND
                                      last edited by

                                      @superfromnd Great to see such progress. Last time I tryed this install failed that was 6 months ago . Will try again tomorrow.
                                      A few questions :
                                      -how are you guys handling controller input ?
                                      -how well does it play ?
                                      -got online pvp working?

                                      Thanks for what you do .

                                      SuperFromNDS 1 Reply Last reply Reply Quote 0
                                      • SuperFromNDS
                                        SuperFromND @retro-devil2
                                        last edited by SuperFromND

                                        @retro-devil2 said in I.K.E.M.E.N GO on Raspberry Pi 4:

                                        A few questions :
                                        -how are you guys handling controller input ?
                                        -how well does it play ?
                                        -got online pvp working?

                                        • Right now, we're just relying on the native controller support IKEMEN GO gives us. Depending on exactly what controller you have, that might be a problem, but I can at the very least say it works well with wired X360 controllers.
                                        • Depends a ton on what exactly you have as your content; in my experience some traditional characters and stages (e.g. your Street Fighter 2s and KOFs and SVC2s and content along those sorts of lines) pretty well, with only the occasional mild stutter. Definetly a bit of a RAM hog though; I'd recommend a 2-gig or 4-gig Pi 4 if you plan on having a massive roster.
                                        • Nobody's tested it yet on the Pis to my knowledge; apparently according to Gacel cross-architecture netplay isnt possible due to floating-point stuff. (AKA you can't play a PC player against a Pi player).

                                        ▲▼▲▼▲▼▲▼▲▼
                                        IKEMEN Go
                                        SRB2Kart
                                        ▼▲▼▲▼▲▼▲▼▲

                                        R 2 Replies Last reply Reply Quote 0
                                        • R
                                          retro-devil2 @SuperFromND
                                          last edited by

                                          @superfromnd
                                          Awesome
                                          -so seen the mugen installer? We use qjoypad in bash scripts to map keyboard to mugen . In v3 it autoloads a layout with same name as exe .
                                          -cool on performance good to know.
                                          I will try and test pvp with another Devil soon

                                          1 Reply Last reply Reply Quote 0
                                          • R
                                            retro-devil2 @SuperFromND
                                            last edited by retro-devil2

                                            @superfromnd
                                            Hello again I installed everything went fine.
                                            But I don't understand how you guys are adding/launching screenpacks .
                                            I tried
                                            /home/pi........ikemen go.sh -r big
                                            this loads ikemen fine but not the big motif . As expected
                                            And
                                            ./Ikemen_GO path/to/motif/select.def
                                            This gives me "no such file etc " error .

                                            I am not familiar with adding screenpacks and stuff to ikemen only mugen .
                                            Thier instructions are ./Ikemen_GO -r motif/path/select.def

                                            I also tried my Xbox one and off brand ps3 controllers neither worked in Ikemen .
                                            This could be solved using qjoypad before ikemen or autoloading qjoypad with same as ikemen game/motif. Thats what mugen installer on pi does layout same name as exe.
                                            I just unaware of ikemen gos launch command. I feel thats the issue with motifs and using qjoypad .

                                            I am also curious how we will launch more than one ikemen motif/game from a retropie .

                                            SuperFromNDS 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.