Jump to content
IGNORED

Custom firmware for Atari Gamestation Pro


Recommended Posts

I got it working with a atr of Pac-Man but you can only play it with THEGamepad, the AGSP Joystick does not work with it.
I need to understand what the RA.cfg does and what its keycodes are, RA has never uses keycodes before...?

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

33 minutes ago, big_guitar said:

[Windows Update] - gspgames-061 additional image deployment/preview; bug fixes;

 

Extract on top of gspgames-057d (replace files when extracting 061 zip file). Let me know if you encounter any bugs.

 

Video example of usage.. 

 

 

 

gspgames-061.zip 205.72 kB · 0 downloads

 

image.png

All I can say is WOW... :)

  • Like 1
Link to comment
Share on other sites

4 hours ago, Spanner said:

I got it working with a atr of Pac-Man

Having weird issues even on Windows with A800 (although I got the ROM to work on GSP), but the Infocom text games work as ATR (Zork,etc.), but keyboard is disabled with default GSP retroarch.

 

Otherwise I had to disable "Autodetect Atari Cartridge Type (Restart)" (core options) just to get the following Happy Computer message at the top of the screen (when using ATR files). 

 

It seems that Happy Computer was a German magazine that also provided some software discs at times?   As if the core is actually using some software associated with Happy Computer, strange.

 

 

my system:

image.png.e5918a82a50b368d6a9d5e38fe7ad01b.png

 

1986 magazine

image.png.4b8e3df4673ddd73d7446b5029fdf47c.png

 

Edited by big_guitar
Link to comment
Share on other sites

19 minutes ago, big_guitar said:

Having weird issues even on Windows with A800 (although I got the ROM to work on GSP), but the Infocom text games work as ATR (Zork,etc.), but keyboard is disabled with default GSP retroarch.

 

Otherwise I had to disable "Autodetect Atari Cartridge Type (Restart)" (core options) just to get the following Happy Computer message at the top of the screen. 

 

It seems that Happy Computer was a German magazine that also provided some software discs at times?   As if the core is actually using some software associated with Happy Computer, strange.

 

 

my system:

image.png.e5918a82a50b368d6a9d5e38fe7ad01b.png

 

1986 magazine

image.png.4b8e3df4673ddd73d7446b5029fdf47c.png

 

Yes its weird, The atari800libretro.so core works fine on the Atari2600 Plus, its the same core it uses when you load Atari 8bit Mode, do you want to try its Retroarch v1.9.4, AGSP runs it, its from its firmware v1.1x-r2, I can shear it...?

Edited by Spanner
Link to comment
Share on other sites

1 hour ago, big_guitar said:

[Windows Update] - gspgames-061 additional image deployment/preview; bug fixes;

 

Extract on top of gspgames-057d (replace files when extracting 061 zip file). Let me know if you encounter any bugs.

 

Video example of usage.. 

 

 

 

gspgames-061.zip 205.72 kB · 1 download

 

image.png

How about renaming the app `AGSP Games Manager` now, well that what it does... :) sorry to ask this but what's your real name, I need it for GSP Games app installer in PCUAE, if you do not want to post it here then send me a PM instead or do you want me to use just `Copyright 2024 Big Guitar`...?

Edited by Spanner
Link to comment
Share on other sites

5 hours ago, Spanner said:

Yes its weird, The atari800libretro.so core works fine on the Atari2600 Plus, its the same core it uses when you load Atari 8bit Mode, do you want to try its Retroarch v1.9.4, AGSP runs it, its from its firmware v1.1 rev2, I can shear it...?

The issue seems to have been mostly about which ATR file I was using... When I used one specifically marked as Datasoft, that works similar to the ROM file.

The core seems to be quite sensitive depending on various settings and what files you are using.  I came across some other versions of pacman that had worse graphics. 

 

I remember playing "Fortune Hunter" or something like it on an A400 system a friend had during the time of release (the game is kind of like 'Venture'). Got that game working as a zip on GSP with the built-in retroarch (the atr file inside would likely work on its own as well).  I used an xbox controller though, might have to tweak things for gsp controller on that one, haven't messed with it enough.  Still, multiple versions of that same game are out there, not all work. 

Edited by big_guitar
Link to comment
Share on other sites

7 hours ago, big_guitar said:

[Windows Update] - gspgames-061 additional image deployment/preview; bug fixes;

 

Extract on top of gspgames-057d (replace files when extracting 061 zip file). Let me know if you encounter any bugs.

 

Video example of usage.. 

 

 

 

gspgames-061.zip 205.72 kB · 7 downloads

 

image.png

 

That's really nice.. I like how you show the button assignments for the coleco pad assignments.  :D

 

  • Thanks 1
Link to comment
Share on other sites

Another idea: Could the app make the retroarch.cfg files say(its just a text file with a .cfg extension) so the app can change the buttons on the AGSP Joystick its using or is that not possible...?

What you think...?

Link to comment
Share on other sites

19 hours ago, Spanner said:

Another idea: Could the app make the retroarch.cfg files say(its just a text file with a .cfg extension) so the app can change the buttons on the AGSP Joystick its using or is that not possible...?

What you think...?

I thought about this previously. 

I can think about it more, but there's a lot in play with different controller types and different keycodes, as most people will be using the built-in retroarch.  I think a decent amount of understanding will still be required from the user perspective. I don't think all axis values report the same for each controller, etc. 

 

That's why with the trigger records I provided a means to select from existing CFG files to choose whichever CFG you want to use (or you can add your own CFG files to the table and select from there). The user can experiment with different available CFG files.  So if I did establish a tool for this, it would be for creating a FILE that you would want to SAVE and recall for other usage, and then associate the game trigger with the CFG file.  You can give the config reference a name and description already in the table I provided.  I think to design it for a separate CFG for each game would be overkill, really unnecessary overall, although you could still do that the way I have it set up. 

 

[ALTHOUGH] I haven't really experimented enough with the "--appendconfig" option.  That might be a way to allow for adding unique settings ON TOP of the primary CFG file.

 

Especially for the alternative cores, you have to use something other than the GSP controllers, so not all the key codes will necessarily be the same for each controller.  Not all the descriptions with evtest match what they actually do either, a couple of mine are reversed from what's reported.  If I had a couple more controllers to experiment with, I might be more comfortable trying this, as I'd want to verify that it would work well for at least a handful of controller types.

 

I have been thinking more about:

  • establishing the option for a folder-specific trigger for cases where all the games therein (such as for a specific core) would use the same CFG file, and would be processed in the same manner, so only one record entry would be required to handle all games in that folder.  A manual trigger-record entry could override the folder settings for particular games perhaps.
  • A wizard-type tool, or questionnaire, or updated FAQ, to determine how to proceed with configurating settings depending on what the user's expectations are 
Edited by big_guitar
Link to comment
Share on other sites

I think I just found a error in the S49launcher code where it copies the /data partition, AFAIK after you copy files to a SD card or a USB Drive you have put after it a `sync` and it does not have one on any of the code in the custom firmware S49launcher and none in the startup.sh script too, if you do not add `sync `the files can get corrupted, it happened to me loads of times when I have forgot the `sync` command after I used the `cp` command.

S49launcher.. see no `sync` after the line... ` cp -r /data/* /mnt/sdcard/data`

 

#!/bin/sh
#
# Start ui
#

#hdmi on
echo on > /sys/class/drm/card0-HDMI-A-1/status

#hdmi Add
#/usr/bin/drm-hotplug.sh

:'
aplay /usr/bin/open.wav
sleep 0.5

#export XDG_CONFIG_HOME=/data
export XDG_RUNTIME_DIR=/data
/usr/bin/gbx75_spk-init.sh 
sync
echo "1-1" > /sys/bus/usb/drivers/usb/unbind
sleep 1
#/usr/bin/gameui.sh start &
#/usr/bin/ffplay -x 1366 -y 768 -hide_banner -nostats -fs -vcodec h264 -autoexit /usr/local/share/minigui/res/images/logo.mp4
#echo "1-1" > /sys/bus/usb/drivers/usb/bind
#while  [ "1" = "1" ]
#	do
#	if [ `ps -ef |grep /usr/bin/game |grep -v "grep" |wc -l` == 0 ] && [ `ps -ef |grep start.sh |grep -v "grep" |wc -l` == 0 ]; then
#		echo "game status"
#		/usr/bin/game &
#	fi
#done
/usr/bin/game &
'
#=====================================
#:'
printf "Starting ui: =========add lv 49launcher\n"
MINIGUI=1  # minigui-gbx107

case "$1" in
  start)
    printf "Starting ui: \n"
    export XDG_CONFIG_HOME=/userdata/
    #start ui
    export MG_CFG_PATH=/etc
   #/usr/bin/spk-init.sh &
#:'
    if [ `cat sys/devices/platform/gpio-keys/test_mode` == 1 ]; then
        /usr/bin/aplay -q /usr/local/share/minigui/res/music/select_ding_low.wav
	sleep 2
        /usr/bin/PCBA_TEST &
     elif [  -e "/sdcard/game/GBX107_test.txt" ]; then
	/usr/bin/game_test&
    else
    
    # cd /data/Games/ && ./PacMan

    	if [ -f /mnt/sdcard/agsp/mount_sd.ini ]; then
	    if [ ! -d /mnt/sdcard/data ]; then
		    mkdir /mnt/sdcard/data
		    cp -r /data/* /mnt/sdcard/data
	    elif [ ! -f /mnt/sdcard/data/games.db ]; then
		    cp /data/games.db /mnt/sdcard/data
	    fi
	    umount /data
	    mount /mnt/sdcard/data /data
	    if [ -f /mnt/sdcard/agsp/startup.sh ]; then
		    /bin/sh /mnt/sdcard/agsp/startup.sh
	    fi
    	fi

	    /usr/bin/ffplay -x 1280 -y 720 -hide_banner -nostats -fs -vcodec h264 -autoexit /usr/local/share/minigui/res/images/logo.mp4 && dd if="/dev/zero" of="/dev/fb0"

      /usr/bin/game &
	#usr/bin/retroarch -k 0 -y 12 -c /usr/lib/libretro/retroarch/zip_16_9.cfg -L /data/Games/fbalpha2012_libretro.so /data/Games/kof97.zip &

    fi
#'
#        /usr/bin/PCBA_TEST &
    ;;
  stop)
    #killall ui
    killall game &
    printf "ui stop finished"
    ;;
  *)
    echo "Usage: $0 {start|stop}"
    exit 1
    ;;
esac
#'

 

Edited by Spanner
Link to comment
Share on other sites

1 hour ago, Spanner said:

Maybe we could use Autoconfig with other controllers but not sure...?

You can, but the Linux autoconfig files can be different sometimes from Windows I think, just need to make sure it matches the recognized device name, and perhaps manufacturer code and model id code may need to be in the file, I think after I put those in it was recognized, but I've since avoided that path mostly.

 

I did test the append option today, and that works well even with the built-in Retroarch, the benefit there would be changing limited parameters associated with the controller, easier to rewrite the entire append file without the need of an ini dll.

 

The real problem with built-in RA is the North X/Y button which invokes the GSP menu, so I normally assign the associated event code elsewhere, and if the core permits, assign more rare commands to one of the thumb stick's directional actions, but it all depends on what the core allows for.

Link to comment
Share on other sites

7 hours ago, Spanner said:

S49launcher.. see no `sync` after the line...

That is Brad's version. 

Would have been ideal to try to copy the game  executable to sdcard as well and run it from there, depending on how it looks for the image resources. Probably could try patching that file to make a new firmware image, but I haven't found ideal docs on how to go about that, and don't have a separate Linux system to experiment with.

Link to comment
Share on other sites

3 hours ago, big_guitar said:

That is Brad's version. 

Would have been ideal to try to copy the game  executable to sdcard as well and run it from there, depending on how it looks for the image resources. Probably could try patching that file to make a new firmware image, but I haven't found ideal docs on how to go about that, and don't have a separate Linux system to experiment with.

If you are on Windows, try the Windows Subsystem for Linux, it is very good now. It can install command line Ubuntu and others that sit on Windows and you can use file explorer to copy to and from the filesystem. I have X running on it too. Very quick and no Linux partitions or multi-boot stuff to wrangle when you want it gone.

Edited by Vic20Ian
Link to comment
Share on other sites

5 hours ago, Vic20Ian said:

If you are on Windows, try the Windows Subsystem for Linux, it is very good now. It can install command line Ubuntu and others that sit on Windows and you can use file explorer to copy to and from the filesystem. I have X running on it too. Very quick and no Linux partitions or multi-boot stuff to wrangle when you want it gone.

Thanks, I have used wsl some for script testing, don't think I've run X on it.  Not sure it's ideal for GSP firmware patching, but there's a lot of territory there I have no experience with, although I've poked around with it some.

Edited by big_guitar
Link to comment
Share on other sites

I have added a `sync` at the top of the startup.sh script so it does it straight after copying /data folder because it run the startup.sh script after it copies /data so should fix it and others to just in case, the sd card messes up on my friends sd card so got corrupted so this should fix it now and I was getting shadow files on my sd card where you see at the top of the sd card a folder with no name and it had the same folders in it.

And not all sdcards are the same as each other because they are made by different companies, Kingston, SanDisk so can act differently to another and it can be a fake without you knowing, thats why USB Drives are better but the real cheap ones are not, just do not get them from AliExpress.
 

#!/bin/sh
sync
if [ ! -f /data/games.ini ]; then
    echo -e "update_db=0\n" > /data/games.ini
    sqlite3 /data/games.db "select g.*, e.en_title, 'END' from tbl_game g, tbl_en e where g.gameid = e.en_id" | awk -F\| -f /sdcard/agsp/readgames.awk >> /data/games.ini 2>&1
	sync
else
    # read ini flag to update db
    upd=$( sed -n -e 's/^\s*update_db\s*=\s*//p' /data/games.ini )
    if [ "$upd" = '1' ]; then
        # truncate the games.db tables
        sqlite3 /data/games.db "delete from tbl_game" > /data/sqllog.txt 2>&1
        sqlite3 /data/games.db "delete from tbl_en" >> /data/sqllog.txt 2>&1
        # execute utility to load the ini file entries into games.db
        /data/ini2gamedb /data/games.ini /data/games.db > /data/ini2gamedb.log 2>&1
        # reset ini setting
        sed -i 's/^\(update_db=\).*/\10/' /data/games.ini
		sync
    fi
fi

# Optionally dump retroarch binaries to SD card
radump=$( sed -n -e 's/^\s*dump_retro\s*=\s*//p' /sdcard/agsp/mount_sd.ini )
if [ "$radump" = '1' ]; then
    if [ ! -d /sdcard/retroarch ]; then
        mkdir /sdcard/retroarch
        cp /usr/bin/retroarch* /sdcard/retroarch
        cp -R /usr/lib/libretro /sdcard/retroarch
		sync
    fi
fi

 

Edited by Spanner
Link to comment
Share on other sites

9 hours ago, big_guitar said:

That is Brad's version. 

Would have been ideal to try to copy the game  executable to sdcard as well and run it from there, depending on how it looks for the image resources. Probably could try patching that file to make a new firmware image, but I haven't found ideal docs on how to go about that, and don't have a separate Linux system to experiment with.

It is it in PCUAE and in the folder `.options\agsp_files\bin`... :) if you want to edit it you do it with HxD(Hex editor) but need to know what your looking for because its compiled.

Edited by Spanner
Link to comment
Share on other sites

The next thing I want to do is try to see if the game binary will run on other machines too if so then could use it to add games say on THEA500/THE400 Mini so its has a GUI for games you can add to it like Amiga Games or Atari400/800/XL/XE games.

Link to comment
Share on other sites

1 hour ago, Spanner said:

The next thing I want to do is try to see if the game binary will run on other machines too if so then could use it to add games say on THEA500/THE400 Mini so its has a GUI for games you can add to it like Amiga Games or Atari400/800/XL/XE games.

Don't you already allow for customizations using the default GUI already available for that platform?  Or does it not allow for custom game launching? 

 

I haven't tried puae2021 core on GSP, but that would be easy to test, I imagine it should work. 

Link to comment
Share on other sites

7 hours ago, big_guitar said:

Thanks, I have used wsl some for script testing, don't think I've run X on it.  Not sure it's ideal for GSP firmware patching, but there's a lot of territory there I have no experience with, although I've poked around with it some.

I ran GCC on it last week and tested some software compiling and installed the X apps then a desktop. It should cope with a bit of firmware. 

Link to comment
Share on other sites

3 hours ago, Vic20Ian said:

I ran GCC on it last week and tested some software compiling and installed the X apps then a desktop. It should cope with a bit of firmware. 

I just know there are system-specific sensitivities, which is why you see particular apps compiled for specific linux distributions, not so much of a one-size-fits-all... 

Edited by big_guitar
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...
×
×
  • Create New...