Jump to content
IGNORED

Gamestation Pro


Dr Karnov

Recommended Posts

On 2/28/2024 at 9:26 PM, fluxit said:

Have you tried @GB_Baker's RetroArch builds?  They do still need some work, but as it is- the first build they released worked with every controller I threw at it, so long as it is compatible with the GsP's Linux kernel, which doesn't exclude many controllers.  And if you don't want to use the RetroArch menu, it's entirely possible to substitute a new RA build, but continue to use the GsP's built in menu.  You'd just have to use RetroArch to configure your controller(s) first, assuming the defaults were not to your liking(or if the defaults are unusable, as the case may be with some controllers.)

Here is my current build for Retroarch 1.17.0.  It is a bit lighter than my orginal build.  It does include both SDL2 and UDEV.  SDL2 does not work that well for Joystick recognition, but I have figured out how to deconflict the GSP joysticks.  I set input_driver = "sdl2" and input_joypad_driver = "udev".  The GSP joysticks send keyboard directions and that is always seen as player 1 when both are set to udev.  Since I prefer to mostly run from the Retroarch menu, I also kill the gsp /usr/bin/game process in the runme.sh script to save memory.  I think that also helps with button issues.  I did find when I compiled too many unnecessary features there wouldn't be enough memory for some MAME games to run.  Still working on understanding the dial on the gsp controllers.  Also included my gsp and xbox controller config files.

retroarch_1.17.7z runme.sh

  • Like 2
Link to comment
Share on other sites

These are the switches I flipped in my latest retroarch 1.17 build.  Pay no mind to bluetooth being enabled.

 

CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++  ./configure --prefix=/opt --disable-vg --disable-ffmpeg --disable-x11 --disable-xvideo --enable-kms --disable-xdelta --enable-udev --disable-pulse --enable-alsa --disable-wayland --disable-mali_fbdev --disable-opengl1 --enable-opengl --disable-opengl_core --enable-opengles --enable-threads --enable-zlib --disable-hid --disable-libusb --enable-sdl2 --enable-freetype --disable-oss --enable-egl --disable-vulkan --enable-floathard --disable-libshake --disable-parport --disable-sdl --disable-cheevos --disable-glslang --disable-spirv_cross --enable-bluetooth

 

  • Thanks 1
Link to comment
Share on other sites

32 minutes ago, GB_Baker said:

Here is my current build for Retroarch 1.17.0.  It is a bit lighter than my orginal build.  It does include both SDL2 and UDEV.  SDL2 does not work that well for Joystick recognition, but I have figured out how to deconflict the GSP joysticks.  I set input_driver = "sdl2" and input_joypad_driver = "udev".  The GSP joysticks send keyboard directions and that is always seen as player 1 when both are set to udev.  Since I prefer to mostly run from the Retroarch menu, I also kill the gsp /usr/bin/game process in the runme.sh script to save memory.  I think that also helps with button issues.  I did find when I compiled too many unnecessary features there wouldn't be enough memory for some MAME games to run.  Still working on understanding the dial on the gsp controllers.  Also included my gsp and xbox controller config files.

retroarch_1.17.7z 2.49 MB · 1 download runme.sh 152 B · 1 download

Are you sure that "game" has been successfully killed?  In my testing, I wasn't able to eliminate the game process, as init would always immediately restart it.  This wasn't necessarily obvious unless you waited and checked for it again, as init wouldn't bring the new "game" to the foreground.  The script  that starts game also doesn't properly respond to "stop."  The game process can be successfully "paused" and made unresponsive, however.  Of course this doesn't help WRT memory usage.

Link to comment
Share on other sites

7 hours ago, fluxit said:

Are you sure that "game" has been successfully killed?  In my testing, I wasn't able to eliminate the game process, as init would always immediately restart it.  This wasn't necessarily obvious unless you waited and checked for it again, as init wouldn't bring the new "game" to the foreground.  The script  that starts game also doesn't properly respond to "stop."  The game process can be successfully "paused" and made unresponsive, however.  Of course this doesn't help WRT memory usage.

Funny.  I was noticing this last night.  Seems like it only stays dead when I have interrupted the boot sequence to enter the UART debug console and test commands there.  The game process uses about 50mb of the 240mb available.  So when you start my Retroarch it will be about 110mb total with the GSP game process running in the background. 

Link to comment
Share on other sites

On 3/1/2024 at 1:28 AM, GB_Baker said:

I set input_driver = "sdl2" and input_joypad_driver = "udev". 

It's weird, under this newer build you made, I cannot get my keyboard to work at all (I tried many times, replug, etc.). 

If I go back to your original build, the keyboard works fine [using the same cfg file in both cases], works every time.

 

With SDL2 as input driver, the old build still duplicated GSP stick actions [but I see it reports sdl2 could not be found, so must revert to udev], but the new build must have some other type of mapping, since I can't get the sticks to respond when using the same cfg on the command line that worked with the previous build.

Edited by big_guitar
Link to comment
Share on other sites

On 3/1/2024 at 1:28 AM, GB_Baker said:

SDL2 does not work that well for Joystick recognition

By that, do you think the controller cfg is not recognized at all?  As the joypad setting still points to udev, it should look in the udev folder I would think.

Even though the keyboard does not work for me currently with your latest build, it does offer benefits with the SDL2 setting. 

I had to remove my up/down/left/right settings in my passed retroarch cfg file (which worked fine under your original build), stick seems ok now after setting to nul.

 

I think the original MyArcade RA build, although it does generally recognize remap files, it does NOT recognize the "mapped port" remap values properly, such as having 2 physical controllers pointing to the same game controller (i.e., input_remap_port_p1 and p2 both set to '0').  This was frustrating, but with the SDL2 setting on your latest build, it seems to be handling that properly so far in my testing.

Link to comment
Share on other sites

On 3/2/2024 at 10:14 AM, big_guitar said:

It's weird, under this newer build you made, I cannot get my keyboard to work at all (I tried many times, replug, etc.). 

If I go back to your original build, the keyboard works fine [using the same cfg file in both cases], works every time.

 

With SDL2 as input driver, the old build still duplicated GSP stick actions [but I see it reports sdl2 could not be found, so must revert to udev], but the new build must have some other type of mapping, since I can't get the sticks to respond when using the same cfg on the command line that worked with the previous build.

I have all of the autoconfig/sdl2 cfg files from the latest assets download. 

Link to comment
Share on other sites

7 hours ago, big_guitar said:

By that, do you think the controller cfg is not recognized at all?  As the joypad setting still points to udev, it should look in the udev folder I would think.

Even though the keyboard does not work for me currently with your latest build, it does offer benefits with the SDL2 setting. 

I had to remove my up/down/left/right settings in my passed retroarch cfg file (which worked fine under your original build), stick seems ok now after setting to nul.

 

I think the original MyArcade RA build, although it does generally recognize remap files, it does NOT recognize the "mapped port" remap values properly, such as having 2 physical controllers pointing to the same game controller (i.e., input_remap_port_p1 and p2 both set to '0').  This was frustrating, but with the SDL2 setting on your latest build, it seems to be handling that properly so far in my testing.

I just found that setting input_joypad_driver = “sdl2" led to unrecognized buttons.   If you look at my GSP joystick udev autoconfig file, the directions are no longer in the 100's.

Link to comment
Share on other sites

6 hours ago, GB_Baker said:

I just found that setting input_joypad_driver = “sdl2" led to unrecognized buttons.   If you look at my GSP joystick udev autoconfig file, the directions are no longer in the 100's.

In your sample RA config file you have the following, which works for me so far.    

input_driver = "sdl2"     and    input_joypad_driver = "udev"

 

Yes, I saw your files and got the sticks to work, and saw that if I modified the Shanwan controller file, it had an impact, so it is being recognized.  

 

I suppose some keyboards such as what I'm using with the GSP won't work with SDL2 input driver? 

If I set the input_driver back to "udev", then the keyboard works fine again.

 

For the Shanwan file, I can't really get "21" or "16" (menu/home) to take any default action, although I can re-assign them to do things in a remap file. I'm not sure what reassignment values would invoke the menu or home function.

Edited by big_guitar
Link to comment
Share on other sites

3 hours ago, big_guitar said:

I wonder if a newer build of libudev.so.1 would improve things for UDEV settings,

but then I'm not sure about proper handling of the library path, had issues working with LD_LIBRARY_PATH to some sdcard location... 

Interesting thought.  When I build Retroarch, I have to downgrade my SDL2 version to 2.0.7 because that is the library that is on the GSP.  If we could add an SD card path with LD_LIBRARY_PATH and ldconfig that might open things up.  Would likely need to duplicate everything including sym links in /usr/lib. 

Link to comment
Share on other sites

1 hour ago, GB_Baker said:

Interesting thought.  When I build Retroarch, I have to downgrade my SDL2 version to 2.0.7 because that is the library that is on the GSP.  If we could add an SD card path with LD_LIBRARY_PATH and ldconfig that might open things up.  Would likely need to duplicate everything including sym links in /usr/lib. 

Yes, I was trying that with other builds, but I didn't really know what I was doing, was cheating a bit trying to bypass symlinks by renaming the main files, which got me to a point.. I probably should have been using WSL and mounted the sdcard to transfer all the related files from what I downloaded, since Windows won't handle the symlink files properly.  Most of what I obtained was from https://archlinuxarm.org/  and  https://rpmfind.net/linux/rpm2html

Link to comment
Share on other sites

On 2/28/2024 at 3:08 PM, clyde said:

oh ok, thanks for confirming that.

 

If anyone can get xinput working for other controllers on the GSP, please let us know!

I just tried it again to see if the 1.3 firmware made any difference...it still doesn't work. One or two buttons register but it's unplayable. With the XBOX ONE controller, everything is mapped perfectly by default. I haven't tried a custom firmware yet.

  • Thanks 1
Link to comment
Share on other sites

21 hours ago, big_guitar said:

Yes, I was trying that with other builds, but I didn't really know what I was doing, was cheating a bit trying to bypass symlinks by renaming the main files, which got me to a point.. I probably should have been using WSL and mounted the sdcard to transfer all the related files from what I downloaded, since Windows won't handle the symlink files properly.  Most of what I obtained was from https://archlinuxarm.org/  and  https://rpmfind.net/linux/rpm2html

Moving the lib and usr/lib folders to sdcard works with LD_LIBRARY_PATH as long as you maintain all of the sym links.  I started with trying a newer build of SDL2.  Turns out the default SDL2 build has a bunch of dependencies we don't.have like X11.  Now I am working on a custom SDL2 build.  We'll see how it goes. 

Link to comment
Share on other sites

1 hour ago, GB_Baker said:

Moving the lib and usr/lib folders to sdcard works with LD_LIBRARY_PATH as long as you maintain all of the sym links.

Having that properly established without having access to another linux environment might be a concern for someone like myself, unless there's a way to invoke a command from the GSP that will copy/establish/unzip the related symlink files to the sdcard.  The non-symlink files can be copied without issues using a windows system (command prompt or explorer) for example.

Link to comment
Share on other sites

2 hours ago, big_guitar said:

Having that properly established without having access to another linux environment might be a concern for someone like myself, unless there's a way to invoke a command from the GSP that will copy/establish/unzip the related symlink files to the sdcard.  The non-symlink files can be copied without issues using a windows system (command prompt or explorer) for example.

I am making my copy of the lib directories from within the GSP using the UART usb serial interface.  It could be done with the runme.sh script too.  Something like this. 

cp - R /usr/lib /sdcard/usr

All sym links will be preserved copying like this. New libraries need their sym links created manually with ln - s

 

LD_LIBRARY_PATH=/sdcard/lib:/sdcard/usr/lib

export

Link to comment
Share on other sites

On 3/5/2024 at 8:35 AM, big_guitar said:

Having that properly established without having access to another linux environment might be a concern for someone like myself, unless there's a way to invoke a command from the GSP that will copy/establish/unzip the related symlink files to the sdcard.  The non-symlink files can be copied without issues using a windows system (command prompt or explorer) for example.

I have had success being able to compile newer libraries for the GSP.  I was able to compile SDL2 2.0.3100.0 without X11 video and run it from /sdcard/usr/lib.  As a test it was interesting, but didn't really result in any improvement in joystick behavior for my 8bitdo Pro 2 in xbox mode using the SDL2 driver.  SDL2 wouldn't recognize my start button or L3/R3 thumb buttons.  UDEV for joystick driver still works best.  I still set input driver to SDL2.  I also make sure to not let gpio.keys attach to any of the controller ports in the retrobinds setting.  I set port 1 to my xbox controller.  Port 2 to GSP controller 1 and Port 3 to GSP controller 2 and port 4 and higher has no device.

 

We can use libraries not baked into the GSP.  Not sure if there are any desired libraries anyone wants to use with retroarch.  I could build a version of retroarch with support for PulseAudio or OSS audio and then include those libraries.  Not sure the benefit though of adding extra fat to my current retroarch build.  Memory is kind of precious on the GSP.  If I include too much stuff games wont play.

  • Thanks 1
Link to comment
Share on other sites

5 hours ago, GB_Baker said:

I have had success being able to compile newer libraries for the GSP.  I was able to compile SDL2 2.0.3100.0 without X11 video and run it from /sdcard/usr/lib.  As a test it was interesting, but didn't really result in any improvement in joystick behavior for my 8bitdo Pro 2 in xbox mode using the SDL2 driver.  SDL2 wouldn't recognize my start button or L3/R3 thumb buttons.  UDEV for joystick driver still works best.  I still set input driver to SDL2.  I also make sure to not let gpio.keys attach to any of the controller ports in the retrobinds setting.  I set port 1 to my xbox controller.  Port 2 to GSP controller 1 and Port 3 to GSP controller 2 and port 4 and higher has no device.

 

We can use libraries not baked into the GSP.  Not sure if there are any desired libraries anyone wants to use with retroarch.  I could build a version of retroarch with support for PulseAudio or OSS audio and then include those libraries.  Not sure the benefit though of adding extra fat to my current retroarch build.  Memory is kind of precious on the GSP.  If I include too much stuff games wont play.

Minimally,, it would at least be good to see if your newer sdl2 library works with my keyboard! Since as it is now, it doesn't work for me. Although I also wonder if we wouldn't benefit from newer udev specific libraries.

Link to comment
Share on other sites

3 hours ago, big_guitar said:

Minimally,, it would at least be good to see if your newer sdl2 library works with my keyboard! Since as it is now, it doesn't work for me. Although I also wonder if we wouldn't benefit from newer udev specific libraries.

I think updating udev would be very hard since it is more than just a library and root is on a readonly squashfs.  What I would really like is to be able to unsquash the root file system and boot from SD.  Then I could install drivers for networking and Bluetooth.  I just don't know how to do that. 

Link to comment
Share on other sites

9 minutes ago, GB_Baker said:

I think updating udev would be very hard since it is more than just a library and root is on a readonly squashfs.  What I would really like is to be able to unsquash the root file system and boot from SD.  Then I could install drivers for networking and Bluetooth.  I just don't know how to do that. 

There are definitely methods for doing that.  Not that I can think of them off-hand though.  If the SD card is bootable... could just rsync the data over :)

Link to comment
Share on other sites

On 3/7/2024 at 9:37 AM, GB_Baker said:

I think updating udev would be very hard since it is more than just a library and root is on a readonly squashfs.  What I would really like is to be able to unsquash the root file system and boot from SD.  Then I could install drivers for networking and Bluetooth.  I just don't know how to do that. 

Understandable. 

I would like to try your build with the updated SDL2 if you are willing to share, just to see if I can get my keyboard to work with it, as that's all based off the input driver.

As mentioned, I'd copy the default lib files and then invoke the symlink command for your updated SDL2 file in a runme command, and then use the 'export LD_LIBRARY_PATH' statement in the runme.

Link to comment
Share on other sites

10 hours ago, big_guitar said:

Understandable. 

I would like to try your build with the updated SDL2 if you are willing to share, just to see if I can get my keyboard to work with it, as that's all based off the input driver.

As mentioned, I'd copy the default lib files and then invoke the symlink command for your updated SDL2 file in a runme command, and then use the 'export LD_LIBRARY_PATH' statement in the runme.

Okay give this a go.  Copy the libSDL2-2.0.so.0.3100.0 to the root of your sdcard.  Also see the attached runme.sh.  First 9 lines only need to be run once.  This copies the library folders to the sdcard, deletes the symlinks to the old sdl2 library, and recreates them to the new SDL2 library.   Also included the retroarch binary that was compiled to SDL2 > 2.0.10.  Last one was set to 2.0.7.  Each time you reboot you will need to recreate and export the LD_LIBRARY_PATH.  Let me know how it goes.

retroarch117_and_SDL2-3100.7z

  • Thanks 1
Link to comment
Share on other sites

16 hours ago, GB_Baker said:

Okay give this a go.  Copy the libSDL2-2.0.so.0.3100.0 to the root of your sdcard.  Also see the attached runme.sh.  First 9 lines only need to be run once.  This copies the library folders to the sdcard, deletes the symlinks to the old sdl2 library, and recreates them to the new SDL2 library.   Also included the retroarch binary that was compiled to SDL2 > 2.0.10.  Last one was set to 2.0.7.  Each time you reboot you will need to recreate and export the LD_LIBRARY_PATH.  Let me know how it goes.

retroarch117_and_SDL2-3100.7z 4.61 MB · 0 downloads

I think I need to change directory to /sdcard/usr/lib  prior to issuing those "ln" commands?  I can't see the link files so far, I will see if changing directory prior works... 

UPDATE: ok after I added a change directory command, the link files display... I will test the RA next with the lib path updates next.

 

I appreciate all of your effort on this, for some reason it's still not happy with the Lenovo keyboard I'm trying to use, but when input driver is 'udev' it's fine.  I suppose I'll have to try some other keyboards to see what I can get to work.

Edited by big_guitar
Link to comment
Share on other sites

2 hours ago, big_guitar said:

I think I need to change directory to /sdcard/usr/lib  prior to issuing those "ln" commands?  I can't see the link files so far, I will see if changing directory prior works... 

UPDATE: ok after I added a change directory command, the link files display... I will test the RA next with the lib path updates next.

 

I appreciate all of your effort on this, for some reason it's still not happy with the Lenovo keyboard I'm trying to use, but when input driver is 'udev' it's fine.  I suppose I'll have to try some other keyboards to see what I can get to work.

Do you have all of the autoconfig/sdl2 cfg files?  My old Acer usb keyboard works fine in sdl2 mode. 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...