Guide: AM2R (Another Metroid 2 Remake) on RPi 4
-
@mitu said in Guide: AM2R (Another Metroid 2 Remake) on Pi 4:
@sleve_mcdichael said in Guide: AM2R (Another Metroid 2 Remake) on Pi 4:
I don't think it's needed.Sure, less is more, right? I think it's ready to go live, then. Please test:
wget https://raw.githubusercontent.com/s1eve-mcdichae1/GMLoader-RPi/main/gmloader.sh -P $HOME/RetroPie-Setup/scriptmodules/ports/
If for some reason the debug module is desired, then just edit the file, find the "build" function and change
-DCMAKE_BUILD_TYPE=Release
to-DCMAKE_BUILD_TYPE=Debug
, then re-install. This will log verbose output toruncommand.log
. -
@sleve_mcdichael works great.
I will be linking your script on my post. if you dont mind.Now we need a list of the games that will work. lol
-
@exarkuniv said in Guide: AM2R (Another Metroid 2 Remake) on Pi 4:
Now we need a list of the games that will work. lol
I don't know how to get any of the rest of these or how to get them in APK format, but there's a partial list here:
www.reddit.com/r/AM2R/comments/pgp2x7/am2r_raspberry_pi_take_4/hbh8vgr
- Minit (Android, linux w/ wrapper)
- Downwell (linux w/ wrapper, game crashes on death, still haven't investigated why)
- Maldita Castilla (ouya)
- Retro Highway (Android)
- Underswap Demo (Android)
- Nuclear Throne (Linux build converted to gms1.4.1804 + wrapper)
- AM2R 1.5.2 and 1.5.5 (Android)
- Psycron Demo (Windows w/ Wrapper)
- Unworthy (Windows w/ Wrapper, runs too slow to be usable even on pi4)
Someone also mentioned Gato Roboto, which looks cool as heck.
-
@sleve_mcdichael its better then nothing.
still very cool
-
Update: refined the "find" command that configured the games. Now uses:
done < <(find "$romdir/ports/droidports" -maxdepth 1 -type f \( -name "*.apk" -o -name "*.APK" \))
1:
-type f
- we don't want to return directories even if they're called*.apk
. This forces it to only return files.2:
-maxdepth 1
- nothing inherently wrong with using subdirs and normally it would work just fine, but if a user has two files with the same name in different dirs (for example, bothFooBar.apk
andsubdir/FooBar.apk
) then their launch scripts and config dirs will conflict. Setting -maxdepth 1 forces it to only return files in the main droidports directory so there can be no filename conflicts. (Edit: FooBar.apk and FooBar.APK would still conflict. Don't do that, I guess. Anyone know a way to safeguard against this that's simple and easy enough for a noob like me to understand?) -
@sleve_mcdichael
find
knows about-iname
, the command can be shortened tofind "$romdir/ports/droidports" -maxdepth 1 -type f -iname \*.apk
-
@mitu said in Guide: AM2R (Another Metroid 2 Remake) on Pi 4:
\*.apk
That's the same as
"*.apk"
? Is one preferred or "more correct" over the other? -
@sleve_mcdichael It's just shorter, you can use which version you prefer.
-
I tried the port and AM2R works without issues on my Pi4. Great work !
-
@sleve_mcdichael said in Guide: AM2R (Another Metroid 2 Remake) on Pi 4:
@mitu said in Guide: AM2R (Another Metroid 2 Remake) on Pi 4:
It would be better if each game would have its own config folder under
$HOME/.config/gmloader
.I agree but I didn't write the software. Is this something that we can config?
Hey guess what. I "wrote" some software:
https://github.com/JohnnyonFlame/droidports/pull/2/files
(Well, I edited one line in one file. Does this do what I think it does, and without breaking anything else? It seems to work on cursory inspection, but I'm gonna wait a bit and see if the author merges my PR, or has any feedback, rather than just link the script to my version.)
-
It's been great playing AM2R. MAJOR kudos!
I've also been able to run .apks of
Sonic SMS Remake 1&2,
Love 2: Kuso,
Undertale aka "Droidtale",
and Spelunky HD Classic.Several of the games have the minor issue of not giving you an option anywhere to quit, but typing the command "pkill gmloader" into the terminal will return you to the ES menu. Spelunky HD Classic crashes when you read a certain signpost in the tutorial level, and has issues if you try to configure your own controls. As for the others, they seem to work fine.
I don't know if any of these will have game-breaking bugs later, but they SEEM to run okay, which is pretty awesome.
-
Will this be heading to a repo anytime soon?
I've read through the thread more times than needed and still don't quite understand how to have the port fully installed.
I have it on Xbox One, but there are some strange lighting issues and also a few hard crashes at times. :/
-
@addison it's on a repo. it's linked above: https://github.com/s1eve-mcdichae1/GMLoader-RPi
-
@addison said in Guide: AM2R (Another Metroid 2 Remake) on Pi 4:
still don't quite understand how to have the port fully installed.
There is a script module linked in the first post and by dankcushions above. Just download the
gmloader.sh
file from that repo and put it in yourscriptmodules/ports
directory on your RPi4. You can do that from the terminal with command:wget https://raw.githubusercontent.com/s1eve-mcdichae1/GMLoader-RPi/main/gmloader.sh -P $HOME/RetroPie-Setup/scriptmodules/ports/
After that you can install the port through RetroPie-Setup > Manage packages > Manage experimental packages
ROM Extensions: .apk .APK
To configure the run-command launch script(s) for EmulationStation, you must first copy at least one APK file to
~/RetroPie/roms/ports/droidports
and then run (or re-run) the installer. -
Such happy joy!
Will be installing this tonight! :D
-
I just tried installing GMLoader with the scriptmodule, and so far of the three games I tested, AM2R, Sonic 1 remake, and Sonic 2 remake, all worked fine. However, I'm having some specific issues with each of them, and I'm not sure what to do about them.
- They seem to only work with Xbox controllers from what I've tested. I tried using my 8bitdo Pro+, but it only recognizes it when it's in Xinput mode. I haven't tried the other input modes though, just Xinput and Dinput.
- AM2R doesn't seem to let me remap controls. When I navigate to the controller menu, I press a button to remap any of the control options, but they always just default to LT no matter what I do. I press the button to start the remap, and a split second later it's set to LT.
- There is no way to quit without actually killing the process. AM2R has a quit option on the main menu, but the Sonic games don't have any way to quit from the main menu, so the only way to stop them is to kill the process. There doesn't seem to be a hotkey combo that will stop GMLoader.
-
@g30ff I can remap AM2R controls on my Logitech F710 wireless; don't have anything else to try with enough buttons. (I suppose if I switch it to 1-button aiming and "classic" morph ball it might fit on a SNES pad? Maybe I'll try that tomorrow.)
XInput is the suggested mode to be using with RetroPie in general, I believe. Is there a particular reason you want to be using DirectInput?
The issue with games lacking an "exit" function is, I suppose, because these are smartphone apps that expect you to just use the phone's "home" button.
To reiterate, the project is still in early alpha, so all features may not be fully functional. I'm not sure if this is something that's on the author's radar or not, you could always post an issue upstream.
-
@sleve_mcdichael Thanks for the feedback. I might just raise an issue on the github regarding the quit functionality. That's fair that the project is in early alpha. It's pretty exciting however, and opens up a whole bunch of new options!
I had just been using the pad in D-input mode normally, and when I booted up AM2R, it didn't recognize the controller as being connected. It seemed unusual to me. I can easily run in X-input mode. It wouldn't be the only port that has issues with some controllers; VVVVVV doesn't work with anything that isn't X-input, for example.
The mapping is unusual to me. I might try with a different controller and see if it helps. Something else odd is that despite Start being mapped as the menu button, pressing Start does nothing, and in fact Right Trigger brings up the map. I guess I was wondering if anyone else is having issues with controller remapping, or whether it's the fault of my specific controller. I did do a full upgrade, and reinstalled the xpad driver just to be sure.
-
@g30ff yeah, I just tried my Amazon generic SNES pad and it didn't work in either of my games (AM2R or Maldita Castilla.) No response at all when mashing all 12 inputs.
I'm gonna look into creating a custom SDL2 map (I think that's what I'm looking for?) for the gamepad and see if that does anything.
-
@sleve_mcdichael said in Guide: AM2R (Another Metroid 2 Remake) on Pi 4:
I'm gonna look into creating a custom SDL2 map (I think that's what I'm looking for?) for the gamepad and see if that does anything.
@G30FF this worked for me:
git clone https://github.com/retropie/sdl --branch retropie-2.0.10 --recursive # I'm not sure if "--recursive" is needed but it doesn't break anything so I left it in cd sdl/test ./configure make controllermap ./controllermap 0 # I ran this command from SSH so I could copy/paste the output string. # replace "0" with the controller you want to configure if you have more than one connected. # run "./controllermap" with no arguments to list attached controllers.
Press the buttons on your controller when indicated on-screen. Use Spacebar (on a connected keyboard, unfortunately this doesn't appear to work over SSH) to skip a button that your controller doesn't have. Use backspace to correct a mistake.
When you are done it will output a string like
030000001f08000001e4000010010000,USB gamepad,platform:Linux,a:b1,b:b0,x:b3,y:b2,back:b8,start:b9,leftshoulder:b4,rightshoulder:b5,dpup:-a1,dpdown:+a1,dpleft:-a0,dpright:+a0,
. Copy this string.Edit
$HOME/.profile
and add the line:export SDL_GAMECONTROLLERCONFIG="<string>"
...where
<string>
is the string output by the controllermap tool.Relog or reboot.
After this, I was able to use the generic SNES pad in both my GMLoader games. Also works in Hurrican (non-GMLoader) which was not reading "Start" correctly on the generic pad.
EDIT: this only worked when launching the games from terminal. To make it work when launching them from ES I had to add the same line to
autostart.sh
(before "emulationstation #auto
".) To have it work by both methods, I need it in both places. Currently looking into that.
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.