Jump to content
IGNORED

Gamestation Pro


Dr Karnov

Recommended Posts

9 hours ago, Atari8264 said:

Can you make a robotron.cfg file for player 1 to use 2 joysticks? Currently the arcade game uses stick one like this:

GSP stick #1 P1:
up = move
down = move
left = move 
right = move
A = fire down
B = fire left
C = fire up

 

To use both sticks:

up = P1 move up
down = P1 move down
left = P1 move left
right = P1 move right
A = P2 down, fire down
B = P2 left, fire left
C = P2 up, fire up
D = P2 right, fire right

where D would probably be the next button after the C button.

I just wanted to verify something... Are you wanting me to map both Gamestation Pro joysticks? (Player 1 for moving around, Player 2 stick for firing like the arcade game), Or are you just wanting me to map a 4th button in like the NeoGeo and other stuff where it's on one controller? (Like my PlayStation Classic controler. Closest I could map the last direction would be to the R2 button. Right bumper button on Xbox controllers) If that's the case it can be done easy enough but would probably be quite akward to play that way. I can't map the Square button on the PS controller. Y on the Xbox controller. I highly suspect it is value 70 (80 on the player 2 controller). It's the only value missing from the range of working controls I found. (69 thru 72). It's reserved for that menu button for game saves and stuff. I can't change that one.

Link to comment
Share on other sites

1 hour ago, Domeshtan said:

I just wanted to verify something... Are you wanting me to map both Gamestation Pro joysticks? (Player 1 for moving around, Player 2 stick for firing like the arcade game), Or are you just wanting me to map a 4th button in like the NeoGeo and other stuff where it's on one controller? (Like my PlayStation Classic controler. Closest I could map the last direction would be to the R2 button. Right bumper button on Xbox controllers) If that's the case it can be done easy enough but would probably be quite akward to play that way. I can't map the Square button on the PS controller. Y on the Xbox controller. I highly suspect it is value 70 (80 on the player 2 controller). It's the only value missing from the range of working controls I found. (69 thru 72). It's reserved for that menu button for game saves and stuff. I can't change that one.

Map both GSP joysticks to player 1 so stick #2 is used for firing the four directions.  The GSP recognizes a fourth button that I called button D.  You can put a prefix on the file name so we know it is for 2 GSP joysticks used by player 1. Thanks!

Edited by Atari8264
Link to comment
Share on other sites

8 hours ago, just_lou said:

AFAIK, it's only Costco, and maybe just that 1 store right now.

 

I checked my local store today and it's still $79.99.  I asked an employee if the whole "price ending in a 7 is a clearance" is correct and he said no.   Sales have their end date written on the price and the only tell that something is going away is a big asterisk next to the price to mark it as discontinued by the manufacturer.  That said... my local store only got the gamestation about 6-8 weeks *AFTER* it was first posted here so my region/store may be on a delay in regard to the price drop.  

  • Like 1
Link to comment
Share on other sites

16 hours ago, Atari8264 said:

Map both GSP joysticks to player 1 so stick #2 is used for firing the four directions. 

Fresh from the oven. Games use both GSP joysticks. Left stick moves, right fires. I remapped Robotron, Total Carnage, Smash TV,  Black Widow, Vindicators Part II (for 2 sticks), Battle Zone (for 2 sticks) and Wacko (trackball and stick but it plays fine this way). Smash TV and Total Carnage ran too slow for my taste but it's mapped now. I didn't mess with the player 1 start on Total Carnage in case it's some "reserved" type button like that square button on my controller. Used for dropping bombs I think. For some reason Cloak & Dagger kept setting the .cfg file back to the screwed up default layout. Not sure why but I tried twice. 

I only emulate what I own so no Crazy Climber, Space Dungeon or Assault.

DualGSPSticks.zip

Edited by Domeshtan
  • Like 1
  • Thanks 3
Link to comment
Share on other sites

4 hours ago, Domeshtan said:

Fresh from the oven. Games use both GSP joysticks. Left stick moves, right fires. I remapped Robotron, Total Carnage, Smash TV,  Black Widow, Vindicators Part II (for 2 sticks), Battle Zone (for 2 sticks) and Wacko (trackball and stick but it plays fine this way). Smash TV and Total Carnage ran too slow for my taste but it's mapped now. I didn't mess with the player 1 start on Total Carnage in case it's some "reserved" type button like that square button on my controller. Used for dropping bombs I think. For some reason Cloak & Dagger kept setting the .cfg file back to the screwed up default layout. Not sure why but I tried twice. 

I only emulate what I own so no Crazy Climber, Space Dungeon or Assault.

DualGSPSticks.zip 3.71 kB · 2 downloads

The robotron file works great. Thanks! 

Link to comment
Share on other sites

My little hack worked.  After the overwhelming show of support😋 for this endeavor, I decided to simply make it possible for the GsP to run scripts from its SD card, rather than trying to test my more extended edits while having to reflash the firmware after each little change.  Here is the tested working, edited script fragment:


 

if [ -f /mnt/sdcard/agsp/runme.sh ]; then
 source /mnt/sdcard/agsp/runme.sh
else
if [ "$2" == 15 ]; then
#/usr/bin/stella "$3"
/usr/bin/stella $3 "$4"

else
/usr/bin/retroarch -y "12"\
    -k "$1"\
    -c "$3"\
    -L /usr/lib/libretro/$GAME_LIB "$4"
    
#/usr/lib/libretro/$GAME_LIB "$3"
fi
fi

 

The patched firmware will allow any commands that you wish, to be executed by placing a file named runme.sh in a directory named agsp at the SD card's root directory.  If the file runme.sh doesn't exist, the Gamestation Pro goes on its merry way as though it had not been modified.

 

So far, this has allowed me to answer a couple of our questions about "start_local_sd.sh".  The first is that yes, the GsP uses this script for games played from the SD card, as well as games played from the main menu of included games. 

 

The second, is that "/usr/bin/stella" is not used for 2600 games that are played from the SD card.  At least not 2600 games that have simply been placed within the "Games" directory.  The performance of /usr/bin/stella is not very good, relative to the libretro core of the GsP.

 

--------------------------

 

Here is the xdelta3 patch to be applied to the 1.30 update Firmware.img if anyone wants to try it.

 

Use at your own risk.  Any time the firmware is rewritten there is a possibility, however small, that it will fail, potentially bricking the device.  In addition, it may be possible to do damage to the GsP via unrestricted use of runme.sh(using it to delete or add files to the GsP's internal file systems, for example,) as well, though the supplied patch should not be capable of causing any damage on its own.

 

Unzip and apply the patch to the 1.30 firmware before flashing.  Instructions for applying the patch are in readme-patch.txt.

 

A Windows version of xdelta3 is available here.

 

A Windows version of md5sum is available here.

shell-patch-v2.zip

Edited by fluxit
typo
  • Like 1
  • Thanks 2
Link to comment
Share on other sites

Using the patched firmware, we will now be able to fully reconfigure(non-destructively) the buttons for all supported systems.  It may even be possible to get previously unsupported controllers working, with a bit of investigation.  Fixing the SNES misconfiguration should be a breeze, though improving its performance is another matter.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Here are a couple of example runme.sh files and the results of an info dump(info-runme.sh).  Omitted txts contained no data.

 

The runme's have been renamed so someone doesn't just plop them into their agsp directory, thinking that they will improve their games, only to find that they have reduced(or no) game playing functionality with their SD card inserted.

example-runme.zip

Edited by fluxit
forgot the file
Link to comment
Share on other sites

Wow.. well this creates A LOT of possibilities now.  Might be good to create a "backup" script at some point to backup all of a persons GSP like is usually done.  Luckily this stuff can be done in a non destructive way with the mirror command.

 

Anywho.. it should now be possible to swap out the retroarch cores with better or more current ones.. as well as adding new ones for other systems.  Which opens up a whole world of emu goodness.  :D  Just hop over to the buildbot site and grab some ARM cores.  Should also be able to run standalone emulator compiles.  Although that one may take some more work.

 

I would also suggest considering going with just one retroarch.cfg file and just remap the retroarch folders so that the controller remap folder points to the SD card.  Then remaps can be created specific to each game the proper way.  Also a global emu "remap" for each emu could be made that way to accommodate the extra unassigned buttons.  Now a way needs to be figured out to bypass the menu button interfering.. or possibly a way to remap that as well ( as a combo maybe? ).

 

I'm just curious.  Which stella core does it call if you pick an internal paddle game or a game in the "paddle game" directory?

 

Edited by Shannon
Link to comment
Share on other sites

8 hours ago, Shannon said:

Wow.. well this creates A LOT of possibilities now.  Might be good to create a "backup" script at some point to backup all of a persons GSP like is usually done.  Luckily this stuff can be done in a non destructive way with the mirror command.

 

Anywho.. it should now be possible to swap out the retroarch cores with better or more current ones.. as well as adding new ones for other systems.  Which opens up a whole world of emu goodness.  :D  Just hop over to the buildbot site and grab some ARM cores.  Should also be able to run standalone emulator compiles.  Although that one may take some more work.

 

I would also suggest considering going with just one retroarch.cfg file and just remap the retroarch folders so that the controller remap folder points to the SD card.  Then remaps can be created specific to each game the proper way.  Also a global emu "remap" for each emu could be made that way to accommodate the extra unassigned buttons.  Now a way needs to be figured out to bypass the menu button interfering.. or possibly a way to remap that as well ( as a combo maybe? ).

 

I'm just curious.  Which stella core does it call if you pick an internal paddle game or a game in the "paddle game" directory?

 

It actually uses /usr/bin/stella for those.  This explains why they are playable, but feel just slightly sluggish.   It isn't the paddle, or the HDMI lag.

 

I can also confirm what I expected to be the case when browsing the binaries for the retroarch cores- .bin(unzipped) extension files are loaded by the Megadrive core.  I haven't tested to see if any of the included systems actually work as .bin after the 1.30 update.

 

Backups shouldn't be a problem, as you can just reflash the update.  Unless someone goes whole-hog on replacing the included stuff, and that would likely require a more extensive modification. 

 

I like the base software and games, so I'm not really into that at this point.

 

Here's a complete list of all included games, the config that they use, and the selected core(the numbers in the second column.)

The result of about 12 minutes of pressing the button, then stick-right.😁

allgames.zip

Edited by fluxit
  • Like 1
Link to comment
Share on other sites

3 hours ago, fluxit said:

It actually uses /usr/bin/stella for those.  This explains why they are playable, but feel just slightly sluggish.   It isn't the paddle, or the HDMI lag.

 

I can also confirm what I expected to be the case when browsing the binaries for the retroarch cores- .bin(unzipped) extension files are loaded by the Megadrive core.  I haven't tested to see if any of the included systems actually work as .bin after the 1.30 update.

 

Backups shouldn't be a problem, as you can just reflash the update.  Unless someone goes whole-hog on replacing the included stuff, and that would likely require a more extensive modification. 

 

I like the base software and games, so I'm not really into that at this point.

 

Here's a complete list of all included games, the config that they use, and the selected core(the numbers in the second column.)

The result of about 12 minutes of pressing the button, then stick-right.😁

allgames.zip 2.15 kB · 1 download

 

 

It would probably be simpler to modify runme.sh so it just looks at the file extension and then calls whichever retroarch or standalone emu you want.  Rather than relying on the binaries to determine which core to run.  Even more important if we are running cores not included with the official gamestation pro.

Link to comment
Share on other sites

1 hour ago, Shannon said:

 

 

It would probably be simpler to modify runme.sh so it just looks at the file extension and then calls whichever retroarch or standalone emu you want.  Rather than relying on the binaries to determine which core to run.  Even more important if we are running cores not included with the official gamestation pro.

Agreed.  I largely posted that list for those who were interested in what is running on what.  As you say, we really need to replace the game discriminator functionality of "game" in our script in order to easily use external .cfgs and cores.

Link to comment
Share on other sites

25 minutes ago, big_guitar said:

Nice, so your xd3 patch file is the editing of the start_local_sd.sh file with the wrapped if-then-else, is that right?  And that edit was primarily for targeting the included games? 

 

His edit was to allow the running of a script called runme.sh if said script is located on the SD card.  Thus reducing the number of times that the partition that contains start_local_sd.sh has to be written to the Gamestation Pro's internal SRAM ( or whatever it is.. ). 

Link to comment
Share on other sites

12 minutes ago, fluxit said:

Agreed.  I largely posted that list for those who were interested in what is running on what.  As you say, we really need to replace the game discriminator functionality of "game" in our script in order to easily use external .cfgs and cores.

 

 

Well your efforts have shown that what I thought was possible is.  Probably easier than I initially suspected cause I figured there was some sort of hash check on the img files.  But I guess not. This method is the best as far as I'm concerned cause it is non intrusive for the most part.  :D

 

I almost regret telling my sister to return the thing when she picked it up for me back in November.  :lol:

Edited by Shannon
  • Like 1
Link to comment
Share on other sites

37 minutes ago, big_guitar said:

Nice, so your xd3 patch file is the editing of the start_local_sd.sh file with the wrapped if-then-else, is that right?  And that edit was primarily for targeting the included games? 

Correct.  As for the why, well- the sky's the limit.  We have what is essentially a root shell for our script.  The hurdle I had to jump was the fact that by default, Linux doesn't want to run anything natively from fat32 or exfat, because they don't support the e(x)ecute file attribute.  That's why I used "source."  The system basically treats runme.sh as if it was actually a part of /data/start_local_sd.sh, so it doesn't care that it really shouldn't be allowed to run it. 

 

I'm not sure if the same issue will cause a problem with retroarch cores or not, some flavors of Linux need libraries to be marked as 'binaries,' and some don't.  This is something I've not yet tested.  Without further firmware modifications, it's very doubtful that stand alone programs will run from the SD card.  They could, however be copied to the ext2 partition. Sadly, that doesn't have much free space, without deleting some games.

Link to comment
Share on other sites

10 hours ago, fluxit said:

Correct.  As for the why, well- the sky's the limit. 

Guess I'll have to read up more on the xd3 stuff.

My MD5 tools all have the original 1.30 firmware as 5d1fde2fedbf0eab2e41f3f01b76cdeb.  (also with certutil in Windows)

-- under wsl:
# md5sum Firmware.img
5d1fde2fedbf0eab2e41f3f01b76cdeb  Firmware.img
--

 

Link to comment
Share on other sites

Just want to report (in case it hasn't been already, IDK, trying to keep up but  31 pages is a LOT lol!)...

The 8bitdo Arcade Stick for Switch / PC DOES work, and fantastically, for 2600 and 7800 games, you just need the USB - C adapter which is like $5 online.

It's...amazing honestly.  Set the dial to X-input and you're good to go.

Having an absolute blast playing Subterranea, Commando, PMP's Galaxian...all looking amazing in HD on an OLED.  Just LOVE it.  :)

  • Like 4
Link to comment
Share on other sites

I love how I figure this stuff out after making about 25 .cfg files the hard way with a hex editor. I tested out a few controllers on Mame078b this morning and got some interesting results. It should be possible to remap MAME controls much quicker using an XBox or PS style controller. I think at first I was trying to use a newer version of MAME. I'm pretty sure it uses a different type of .cfg now. XML? Well, even with the old Mame078b trying out a generic XBox controller that doesn't work on the GSP, the results looked "somewhat" right for values. The directions were wrong for the values the GSP needed. I later tried with the left thumb stick and the values looked right! (I was using the D-Pad. 4 directions digital on the GSP stick? I thought it made sense.) The PS Classic looked "mostly" right. On my laptop the X and Triangle buttons were swapped from how the GSP reads them. The GSP stick itself gave wrong values on Mame078b but you could map stuff to play on the laptop. The A button was coming out 06 06. It should be 00 6D. Down was 03 00. Should be 00 6C. Up was 02 00. Should be 00 6B. From what I could tell it was reading the GSP stick like the "D-Pad" on the XBox controller. on the GSP it reads like the XBox thumb stick. That A button... I I don't know how it comes out 06 06 but the GSP don't like it. I was playing around with the Stargate .cfg file. So, if you use the right controller or know about the swapped PS buttons it should be possible to crank out custom .cfgs for a given game on the GSP with Mame078b. Oh well, I converted all my stuff already. 

 

Latest batch of .cfgs if you want. Stargate, Defender, Sprint 2 (sprint2a), Heavy Barrel, Kozmik Kroozr, Chack 'N Pop, Victory, Victory Banana, Xybots, Gunsmoke, Side Arms and Timber.

PSClassic.zip

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

5 hours ago, big_guitar said:

Guess I'll have to read up more on the xd3 stuff.

My MD5 tools all have the original 1.30 firmware as 5d1fde2fedbf0eab2e41f3f01b76cdeb.  (also with certutil in Windows)

-- under wsl:
# md5sum Firmware.img
5d1fde2fedbf0eab2e41f3f01b76cdeb  Firmware.img
--

 

Running "certutil -hashfile .\Firmware.img MD5" in the "3. Firmware" directory of my Windows 10 stick computer, I get the result "4de3c6da30ef2b63db0d87a5dcf3d992" the same as recorded with my patch.

 

Firmware.img has a size of 225968128, and the creation date is Dec  7 21:57.

 

I redownloaded the firmware update linked to on https://www.myarcadegaming.com/pages/atari-gamestation-firmware-upgrade-to-v-1-3-only

today, and it is identical to the copy that I downloaded on the 9th, upon which the patch is based.

 

You might want to try downloading the firmware update again.

 

Edited by fluxit
Link to comment
Share on other sites

19 minutes ago, Domeshtan said:

I love how I figure this stuff out after making about 25 .cfg files the hard way with a hex editor. I tested out a few controllers on Mame078b this morning and got some interesting results. It should be possible to remap MAME controls much quicker using an XBox or PS style controller. I think at first I was trying to use a newer version of MAME. I'm pretty sure it uses a different type of .cfg now. XML? Well, even with the old Mame078b trying out a generic XBox controller that doesn't work on the GSP, the results looked "somewhat" right for values. The directions were wrong for the values the GSP needed. I later tried with the left thumb stick and the values looked right! (I was using the D-Pad. 4 directions digital on the GSP stick? I thought it made sense.) The PS Classic looked "mostly" right. On my laptop the X and Triangle buttons were swapped from how the GSP reads them. The GSP stick itself gave wrong values on Mame078b but you could map stuff to play on the laptop. The A button was coming out 06 06. It should be 00 6D. Down was 03 00. Should be 00 6C. Up was 02 00. Should be 00 6B. From what I could tell it was reading the GSP stick like the "D-Pad" on the XBox controller. on the GSP it reads like the XBox thumb stick. That A button... I I don't know how it comes out 06 06 but the GSP don't like it. I was playing around with the Stargate .cfg file. So, if you use the right controller or know about the swapped PS buttons it should be possible to crank out custom .cfgs for a given game on the GSP with Mame078b. Oh well, I converted all my stuff already. 

 

Latest batch of .cfgs if you want. Stargate, Defender, Sprint 2 (sprint2a), Heavy Barrel, Kozmik Kroozr, Chack 'N Pop, Victory, Victory Banana, Xybots, Gunsmoke, Side Arms and Timber.

PSClassic.zip 5.88 kB · 0 downloads

That makes sense.  IIRC,  when plugged into my computer, the GsP 'stick" is identified as an analog 2 axis "hat," returning the values 1, 0, and -1.

Link to comment
Share on other sites

Hey Domeshtan or anyone else who knows how to map cfg files, here's a challenge for you!

 

Can you map the button configs for the arcade version of Toobin' so that they actually work? Right now nothing works, and this game is notorious for being a pain to configure, even for other Mame emulators!  This is because the D-pad isn't used.

 

Have the config work for both players as it can be a 2 player game.

 

The game is mainly 5 buttons. 2 for paddle forward, 2 for paddle backward, and 1 for Start/Throw can.

I'm thinking the following button configs:

 

Playstation controller:

X = Paddle forward left

O = Paddle forward right

Top left button = Paddle backward left

Top right button = Paddle backward right

Square button = Throw

 

This would be the equivalent for the Xbox controller, which I have and would be willing to test:

A = Paddle forward left

B = Paddle forward right

Top left bumper = Paddle backward left

Top right bumper = Paddle backward right

X = Throw

 

Image below of the arcade buttons.

Toobin.jpg

Link to comment
Share on other sites

23 minutes ago, Mocotechprfl said:

Hey Domeshtan or anyone else who knows how to map cfg files, here's a challenge for you!

 

Can you map the button configs for the arcade version of Toobin' so that they actually work? Right now nothing works, and this game is notorious for being a pain to configure, even for other Mame emulators!  This is because the D-pad isn't used.

 

Have the config work for both players as it can be a 2 player game.

 

The game is mainly 5 buttons. 2 for paddle forward, 2 for paddle backward, and 1 for Start/Throw can.

I'm thinking the following button configs:

 

Playstation controller:

X = Paddle forward left

O = Paddle forward right

Top left button = Paddle backward left

Top right button = Paddle backward right

Square button = Throw

 

This would be the equivalent for the Xbox controller, which I have and would be willing to test:

A = Paddle forward left

B = Paddle forward right

Top left bumper = Paddle backward left

Top right bumper = Paddle backward right

X = Throw

 

Image below of the arcade buttons.

Toobin.jpg

Not a proper answer to your question, but have you tried this control scheme, controller rotated 45° clockwise?:

 

Screenshot from 2023-12-20 12-24-18.jpg

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