Suggestions for ports
-
@tpo1990
Sure i will love a guide , not sure if will make it right :)
but i will try and sure will love to get it work and share it :)) -
@shavecat Great I will make sure to give an example of a game we easily can compile in the guide and also a more difficult one.
-
@tpo1990
make an example of captain claw ;)) <3 -
@TappedOut said in Suggestions for ports:
Ikemen GO Plus
Uses Golang to interpret M.U.G.E.N files and characters
Repo: https://github.com/Windblade-GR01/Ikemen_GOI decided to try getting this to compile, and I'd like to document my findings.
Checking the compilation instructions for Linux I noticed that it requires you to install no less than six dependencies. After installing them (which costed about 180MB of disk space by the way), I got up to the part where it asks you to run a shell script named
get.sh
before I ran into an error:Package gtk+-3.0 was not found in the pkg-config search path.
A quick Google search lead me to find that I needed to install the
apt-get
packagelibgtk-3-dev
... which costs an additional 141MB due to a ton of additional packages. Not a problem, I've got a 64GB SD card with plenty of space.So I installed that, and then proceeded with the IKEMEN compilation process from there: running
get.sh
and thenbuild.sh
. I did recieve an error when running build.sh, but it simply said that it wasn't able to copy a folder to thebin
folder (which is where the compiled IKEMEN binary would be created). Checking thebuild.sh
file, the copy folder command that failed was after the commands that actually compiled IKEMEN, so I simply ignored this error and tried to run the game, only to be greeted with yet another error:Gtk-WARNING **: cannot open display:
A telltale sign that an executable requires X. You can probably guess what this means: another dependency install, this time for the package
xinit
. I already messed withxinit
before for running Flash and Java games on a Pi, so I wasn't too bothered by this, but that's still yet another dependency to install.Once it was done, I booted up
xinit
and ran this command to start IKEMEN:root@retropie:pi/home/pi/RetroPie-Setup/tmp/build/Ikemen_GO/build $ sudo ./Ikemen_GO_linux
And after all of that effort, I was met with another error message, about the worst possible error you could possibly get if you aren't a programmer yourself:
panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x14 pc=0x206894]
A segmentation violation. Now, I'm not the first person to try to compile IKEMEN GO on a Pi, there's even an issue on the Github where someone got a SIGBUS error instead. It was upon reading this issue that I noticed an interesting reply from one of the repo maintainers:
danielporto commented on Apr 23, 2019:
Good. I have built one
please download it here: https://github.com/danielporto/Ikemen_GO/releases/tag/19.04.2019>They had compiled a binary for the Pi! Granted, it was back in April of 2019, but it was still an IKEMEN GO binary for the Pi! I quickly downloaded the binary, and after waiting an agonizingly long time for WinSCP to copy the binary over to my Pi, I gave it a run. It gave me a new error, but this time it was something tangible:
panic: open script/main.lua: no such file or directory
Aha! It's looking for that script folder that it didn't copy from earlier. Thankfully, that folder was just sitting outside of the
bin
folder, so I copied it into the bin folder and ran the binary again. Another error:panic: script/main.lua:14: attempt to call a non-functional object
Checking line 14 of
script/main.lua
, we can see this:--One-time load of the json routines json = (loadfile 'external/script/dkjson.lua')()
Okay, so it's trying to check for the dkjson.lua file in the
script
folder (which we already copied to the bin directory), but it's expecting that script folder to be contained within anexternal
folder (which it was in the repo). In other words, IKEMEN wants bothexternal/script/*.lua
andscript/*.lua
to exist in order to run.So alright, I'll just copy over all of
external
, folder and all, tobin
. Wasteful, but if it's what the IKEMEN orders, it's what the IKEMEN gets. One copy later, I run the binary again:panic: script/main.lua:256: attempt to index a non-table object(nil)
Checking line 256, we can see this (
--motif
is the 256th line):--motif main.motifDef = config.Motif if main.flags['-r'] ~= nil or main.flags['-rubric'] ~= nil then local case = main.flags['-r']:lower() or main.flags['-rubric']:lower() if case:match('^data[/\\]') and main.f_fileExists(main.flags['-r']) then main.motifDef = main.flags['-r'] or main.flags['-rubric'] elseif case:match('%.def$') and main.f_fileExists('data/' .. main.flags['-r']) then main.motifDef = 'data/' .. (main.flags['-r'] or main.flags['-rubric']) elseif main.f_fileExists('data/' .. main.flags['-r'] .. '/system.def') then main.motifDef = 'data/' .. (main.flags['-r'] or main.flags['-rubric']) .. '/system.def' end end
As you can probably infer by the way this post is written, I was pretty much completely exasperated by the time I got to this error, and seeing that wall of regex-heavy text was my breaking point. I'm sure that someone out there could go through the paces and debug every single little error that gets thrown their way, but this is where I throw in the towel for this particular port.
As an aside: I should mention that IKEMEN GO is actually a rewrite of the original IKEMEN, which might be worth looking into. Unfortunately, I was completely unable to find any instructions on how to compile it,
and the files in the repository don't really give any clues.It appears to require Visual Studio to compile IKEMEN, so that's an immediate "no" for that.There's also a possiblity that you might be able to run the game through Box86, but I haven't tried this yet.
TL;DR: This probably could work, but I couldn't get it to, and it would probably be experimental at best due to the sheer number of dependencies it needs. Still, I would love to be able to play some form of MUGEN on the Pi someday.
Addendum (9/24/2020)
I attempted to compile Ikemen-GO on both a regular install of Raspbian and the 64-bit version released fairly recently, and ended up getting the same SIGSEGV error. I've opened up an issue on the Ikemen-GO Github about this error and all of my reproduction steps, so hopefully in due time I can figure out how to fix it and (hopefully) get the game running.
I also found out that I was missing an additional package,
libasound2-dev
, which wasn't specified by Ikemen's build instructions but throws up an error if you try to compile without it.Addendum (9/28/2020)
I was browsing around Github and found this fork of Ikemen GO that mentions it was "For Raspberry Pi 3". Despite the fact that the repository was quite old (last commit was on July of last year, and it was about 500 commits behind Ikemen GO's repo) and the fact that it specified needing another package (
freeglut3-dev
, thankfully this one isn't all that large), I still figured it would be worth a shot to try and compile for the Pi 4. This time, I was able to get an executable that actually started!Unfortunately, this build ended up having some rather severe graphical issues. The repo does state
For Got b'X11: RandR gamma ramp support seems broken
, so I'm assuming that this is something on Go's end and not IKEMEN's. Here's a few comparisons between the Pi running this IKEMEN GO fork and my main machine running IKEMEN GO's "canon" builds.
The title screen has some mild graphical issues, mostly on the left side of the M and the right side of the N. You might also notice that the menu options are different between the two, which makes sense as this build is quite outdated compared to the current build of IKEMEN GO.
The options menu lacks a darkbox, making it harder to read the options. (This is made even worse as a screenshot, it's slightly easier to read when the background is constantly moving.) The Audio. Gameplay, and Engine settings also don't exist in this build.
More graphical glitches! It appears that, at the least, the second color of a given palette gets broken to either black or transparent. (for those who aren't technically savvy about how MUGEN palettes work: the first color of a palette will be treated as transparent, and the rest should all be treated as opaque.)Despite what all of these graphical glitches might have you think, the rest of the game functions just fine. No audio issues, no characters glitching out (well, glitching out because of a broken IKEMEN engine anyways), and no crashes that I was able to get in my (rather meager) testing. It does run a little bit slow when there's a lot of stuff happening on screen, but depending on exactly what characters you have this might or might not be an issue.
Next time I need to update this post, I'll just split it off into it's own thread.
ADDENDUM: 10/6/2020
A bit late on saying this, but I've split off my IKEMEN stuff into it's own thread.
-
I have now started building my guide in a new topic. Take note that it is not finished yet as it will require a great part of my limited spare time, however i do believe it will help you as it will help me with sharing the work of getting more source ports in to working games for the Raspberry Pi.
https://retropie.org.uk/forum/topic/27939/guide-beginners-guide-to-compile-from-source
-
@SuperFromND said in [Suggestions for ports]
Unfortunately, this build ended up having some rather severe graphical issues. The repo does state
For Got b'X11: RandR gamma ramp support seems broken
...https://github.com/kitao/pyxel/issues/40
Might have a fix here or some additional info.
-
Any chance pi4 can run
Oni
https://en.wikipedia.org/wiki/Oni_(video_game)
Or
Enter the Matrix
https://en.wikipedia.org/wiki/Enter_the_Matrix
used too love this games :)) -
@shavecat if someone makes a port for it so it can work with retropie, maybe on the pi4.
otherwise you would have to try it with the Win10 very for the Pi and even then its a maybe.
-
So I was messing around trying to compile Falltergeist, https://github.com/falltergeist/falltergeist
I installed the dependancies, cloned the github, built it, added my critter.dat and master.dat files and booted it...
And it loads surprisingly:- The intro video plays nicely, the menus are all quick, you come into the game and it's basically a debug mode they have setup.
I'm not sure, but based on the github it doesn't look like it's being worked on significantly which is a shame. But who knows maybe someone will take up the reigns on it someday and finish it... Or maybe not.
Also it's listed on their proper website as a fallout1 & 2 engine. But I could only get it to load the fallout2 .dat files.
-
@ExarKunIv shame
-
So has anyone messed around with box86 and tried out games using that? I've got Shovel Knight installed and working but box86 doesn't seem to have gamepad support as far as I can tell. Just wondering if anyone has figured it out? I know I can use xboxdrv but considering if there's an option to load the program with I'm missing.
Edit:- nevermind, Shovel Knight has native support for xbox360 controllers so I just switched my 8bitdo receiver to Xbox mode. Have to say the game runs very well, no slowdowns and plays perfectly. Definitely would recommend people try it
-
@retropieuser555
Hey
how do i install it too ?
plz -
@retropieuser555 Apparently the folks over at Pi Labs have been going to town with Box86 on the Pi, getting all kinds of stuff to run.
I have no clue exactly how to use Box86 (there doesnt seem to be much of anything in the way of documentation), but if this video is any indication it could open up TONS of new games for the Pi 4.
-
@SuperFromND Yeah they seem to have gotten tons of stuff working. So far I've only been able to get World of Goo & Shovel Knight working. Lots of other stuff I've tried are hitting or crashing etc. But I donno if there's specific to my setup perhaps.
Like one of their videos has Freedom Planet working, for me it takes around 2-3mins to load, gets the music playing and that's it.
@shavecat I'll write up something maybe but it's honestly all I did was follow the installation for box86 on github, reset my pi, put the linux x86 version of shovel knight into ports and run it. It didn't require anything else.
-
@retropieuser555
will love a link to them :)) -
@shavecat well for box86 https://github.com/ptitSeb/box86/blob/master/COMPILE.md you just follow the pi instructions on terminal & then reboot. That bit is easy, so now anytime I'm running a x86 program instead of getting an error messaging saying it's an x86 program, the pi attempts to boot it.
So for shovel knight, https://www.gog.com/game/shovel_knight buy or aquire the linux version however you want. Then when you try and run the files for it in terminal, it leads you into an installation page & puts the game where you specify in the directory. Then it left me with a start.sh file which I moved into ports and I'm just running from emulationstation and it leads me to the game.
-
@retropieuser555
Got the first part install it.
now trying to run with with sh file .like here..
https://www.reddit.com/r/PiBoy/comments/jjcyrx/howto_box86_with_onboard_controls_from_retropie/but im getting this
Error: file not found (check rox86_PATH)
any chance to see your sh file ?
-
@shavecat so my code is just:-
#!/bin/bash cd /home/pi/RetroPie/roms/ports/Shovel/game/32 box86 ShovelKnight
-
@retropieuser555
Thanks a lot
got it working
and postal 1 ! working too !
but in a small screen on the side... -
@shavecat Yeah BabaIsYou for me loads up if I boot from Pixel and the controller works too. But from emulationstation it gives me a quarter-ish of the window and the rest of the window cut off.
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.