I.K.E.M.E.N GO on Raspberry Pi 4 [Now with an Install Guide!]
-
@mrrussellgro A few things might have gone wrong!
- Are you running on a Pi 4?
- Are you using a Buster-based version of RetroPie (4.6 or later)?
- Check the file
/dev/shm/runcommand.log
for any errors or issues.
-
@superfromnd said in I.K.E.M.E.N GO on Raspberry Pi 4:
@mrrussellgro A few things might have gone wrong!
- Are you running on a Pi 4?
- Are you using a Buster-based version of RetroPie (4.6 or later)?
- Check the file
/dev/shm/runcommand.log
for any errors or issues.
- I'm on Raspberry Pi 4.
- I believe I have version 4.7.12 of RetroPie. I might have to look again.
-
@mrrussellgro Hm, is there anything in
/dev/shm/runcommand.log
? What about/opt/retropie/ports/ikemen-go/Ikemen.log
? -
@superfromnd So how can I look into those?
-
@mrrussellgro Assuming SSH is enabled, you should be able to view them just by using an FTP client and navigating to
/dev/shm
; theruncommand.log
file should be there after attempting to run IKEMEN GO from EmulationStation.Since you mentioned using USB transfer, did you by chance place
ikemen-go.sh
directly into a ROM folder instead of your RetroPie-Setup scriptmodules folder by mistake? I don't believe that USB transfer is able to identify and transfer a scriptmodule into the RetroPie-Setup menu (though I could be wrong). -
@superfromnd I take it there is no way this will work on a RPi 3b? with the price of Raspberry Pis I guess I have no excuse not to get a Pi 4
-
@thesnackist I haven't tested on a Pi 3, admittedly! Though I wouldn't be surprised if something is missing on the Pi 3 that was added in the Pi 4's hardware when it switched to the A72 CPU.
-
@superfromnd gonna give it another go tonight, maybe I will have better luck (last time it was having trouble reaching GitHub for some reason...)
-
@superfromnd I will have to look into the roms folder and tell you if I have it installed there.
-
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!)
-
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
asGOPATH
. "But no problem", I thought, "I'll just remove theGOPATH
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?
-
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.
-
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.
-
@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. -
@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
-
@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)
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)
-
@superfromnd That's pretty odd how it's acting up.
-
@superfromnd BTW, when I tried to overwrite or change the path for the screenpack it gives me an error.
-
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?
-
@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!!
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.