Jump to content
IGNORED

Custom firmware for Atari Gamestation Pro


Recommended Posts

Use at your own risk.  There's no real help built-in to speak of at this point.

  • You can easily just make a copy of the games.db and update the copy, but either way you should back up the db.
  • I haven't made an installer for this at this time.  Create folder to unzip to, you should be fine for example extracting to a custom folder off the root for example, and run gspgames.exe
  • You could get a warning from anti-virus at first, but if it scans it should end up as 'safe' (I use Avast for example)
  • You may be prompted to install .net 6.0 desktop runtime. x86 is the one you'll want just since I compiled it to support 32-bit.  It's not a problem if you have 64-bit installed as well, but will want the 32-bit one, you can certainly install both.  If you only have 64-bit, it will want to use a different SQLite DLL.  Re-run gspgames.exe after installing.
  • Type in the path or use the tiny folder icon to select the db, then click 'connect'
  • Then first select the 'verify schema' button and it will prompt to update the db (which will change the 'players' datatype to 'text').  Select Yes. 
    If it thinks everything's fine, it will just display 'db ok!' over the 'Results' (some popup messages may not have captions, but will get the point across).

    image.png.7316431425b6a8f9931de61b0745d324.png
  • At this point you can either search using 'Find' or 'load all games'.  For searching, just use 'like' syntax, so if you want to search all games with 'ball' in the name, you'd type '%ball%' without quotes in the search box, press enter or click Find.  There's no raw select statement option, although there is a drop-down for which field to search on, such as to find all Vertical games, select 'Vertical' and type 1 in the search box.  Then you can navigate through the results with the <> buttons.  The edit box to the right of '>' will allow you to type a result number to navigate to directly based off the last query.  It is not based off the gameid, although it could match but that would be a coincidence, or just because you loaded all games and they fit in exact sequence.
    image.png.6e5fae4c369d678df23f4daf6220298c.png
  • For the 'about' and 'controls' fields, the windows interface converts LF into CR-LF for display purposes while using the app, but upon saving, it will convert the CR-LF back into just LF to store in the db.
  • If you are curious about if an update truly worked, you can perform another find or 'load all' again to verify, which will load the records from from the db.
  • If you save an entry to be used as a 'template' it will store that as a json file in the same folder where you unzipped the game to. It won't store display name or rom prefix in the template.
  • If you click on '+ NEW GAME' a different set of buttons will show, one will be 'load Template' which will load that json data to the edit screen.
    The gameid value will not be editable, it will auto-fill to the next highest available ID number.  At this time, none of the action buttons are available unless some data is displayed on the screen, just the way I grouped some together for show/hide commands, but I could expose '+ new game' without obviously, but you will likely have some data in the db, so it shouldn't be an issue.
  • Although the textboxes are editable navigating through the entries, your edits won't be saved automatically, you'd have to click 'update record' to store the change on the record that is displayed.  Simply navigating back and forth, you'll see your changes disappear (unless you use 'update record' before changing records of course). I may not be checking that all the key fields have values for the updates, I should add that.  I do think for adding new records, I validate that all the key fields have values.  The about/controls fields do not have to have values.
  • If you click on the 'class type' or 'game type' labels, it will display some info for quick reference... I made those quickly, but I think it should be accurate info if not all that detailed.
  • If you delete a lot of entries from the db, you might want to use the 'sort and renumber games' option, which will reset all the gameid numbers from 1 to whatever based on sorted display names.
  • If you have other errors or questions, let me know.  

 

gspgames-001.zip

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

7 hours ago, big_guitar said:

Use at your own risk.  There's no real help built-in to speak of at this point.

  • You can easily just make a copy of the games.db and update the copy, but either way you should back up the db.
  • I haven't made an installer for this at this time.  Create folder to unzip to, you should be fine for example extracting to a custom folder off the root for example, and run gspgames.exe
  • You could get a warning from anti-virus at first, but if it scans it should end up as 'safe' (I use Avast for example)
  • You may be prompted to install .net 6.0 desktop runtime. x86 is the one you'll want just since I compiled it to support 32-bit.  It's not a problem if you have 64-bit installed as well, but will want the 32-bit one, you can certainly install both.  If you only have 64-bit, it will want to use a different SQLite DLL.  Re-run gspgames.exe after installing.
  • Type in the path or use the tiny folder icon to select the db, then click 'connect'
  • Then first select the 'verify schema' button and it will prompt to update the db (which will change the 'players' datatype to 'text').  Select Yes. 
    If it thinks everything's fine, it will just display 'db ok!' over the 'Results' (some popup messages may not have captions, but will get the point across).

    image.png.7316431425b6a8f9931de61b0745d324.png
  • At this point you can either search using 'Find' or 'load all games'.  For searching, just use 'like' syntax, so if you want to search all games with 'ball' in the name, you'd type '%ball%' without quotes in the search box, press enter or click Find.  There's no raw select statement option, although there is a drop-down for which field to search on, such as to find all Vertical games, select 'Vertical' and type 1 in the search box.  Then you can navigate through the results with the <> buttons.  The edit box to the right of '>' will allow you to type a result number to navigate to directly based off the last query.  It is not based off the gameid, although it could match but that would be a coincidence, or just because you loaded all games and they fit in exact sequence.
    image.png.6e5fae4c369d678df23f4daf6220298c.png
  • For the 'about' and 'controls' fields, the windows interface converts LF into CR-LF for display purposes while using the app, but upon saving, it will convert the CR-LF back into just LF to store in the db.
  • If you are curious about if an update truly worked, you can perform another find or 'load all' again to verify, which will load the records from from the db.
  • If you save an entry to be used as a 'template' it will store that as a json file in the same folder where you unzipped the game to. It won't store display name or rom prefix in the template.
  • If you click on '+ NEW GAME' a different set of buttons will show, one will be 'load Template' which will load that json data to the edit screen.
    The gameid value will not be editable, it will auto-fill to the next highest available ID number.  At this time, none of the action buttons are available unless some data is displayed on the screen, just the way I grouped some together for show/hide commands, but I could expose '+ new game' without obviously, but you will likely have some data in the db, so it shouldn't be an issue.
  • Although the textboxes are editable navigating through the entries, your edits won't be saved automatically, you'd have to click 'update record' to store the change on the record that is displayed.  Simply navigating back and forth, you'll see your changes disappear (unless you use 'update record' before changing records of course). I may not be checking that all the key fields have values for the updates, I should add that.  I do think for adding new records, I validate that all the key fields have values.  The about/controls fields do not have to have values.
  • If you click on the 'class type' or 'game type' labels, it will display some info for quick reference... I made those quickly, but I think it should be accurate info if not all that detailed.
  • If you delete a lot of entries from the db, you might want to use the 'sort and renumber games' option, which will reset all the gameid numbers from 1 to whatever based on sorted display names.
  • If you have other errors or questions, let me know.  

 

gspgames-001.zip 3.18 MB · 2 downloads

Amazing, I end up with mine editing the ini but I completely wiped it clean and started to build my own dataset and games, so will give this a whirl when I get home later 

  • Like 1
Link to comment
Share on other sites

29 minutes ago, rain2591 said:

Amazing, I end up with mine editing the ini but I completely wiped it clean and started to build my own dataset and games, so will give this a whirl when I get home later 

I thought about adding a delete all, but currently you'd want at least one record in there, which you could change as needed. It only provides for single deletions at a time and requires confirmation. I should perhaps add a delete all based on the last query performed. But sounds like you already have something in progress anyway...

  • Like 1
Link to comment
Share on other sites

Here is my games.ini and artwork files I've done so far (no ROM files included).

 

Now the 2600 games

 

Elevator Agent

Gorf Arcade

Qyx

Turbo Arcade

 

do not work yet, I left them in hoping someone compiles a newer version of stella for this that does work with them.  Also, the other Champ Games may not be working at full speed, but they ARE loading.

 

Jim's Games 1.00.zip

  • Thanks 1
Link to comment
Share on other sites

For the windows editor, tidied up a bit, and added 'Other Tools' to the upper-right, moved the 'Sort and Renumber' under that as well as Defrag, Bulk Delete

image.png.15b9ee235c42e153c46b590865e9c1c4.png

 

Defrag/Vacuum option... (database worked fine after resizing in the UI !) ... likely should run this first before other db update actions (if you intend to run it). It seems to complain in the same session if performed after other updates.

image.png.44d52df4b7f9806a99a7c86866b68533.png

Some extra deletion options... 

image.png.df78b6ada5d4eb312b5b8d3916ffdfcd.png

 

 

gspgames-002.zip

Edited by big_guitar
  • Like 5
Link to comment
Share on other sites

22 hours ago, big_guitar said:

I thought about adding a delete all, but currently you'd want at least one record in there, which you could change as needed. It only provides for single deletions at a time and requires confirmation. I should perhaps add a delete all based on the last query performed. But sounds like you already have something in progress anyway...

I have downloaded this update but when i run it i dont see any new options. Added attachment

 

 

Clipboard_03-10-2024_02.jpg

Link to comment
Share on other sites

1 hour ago, rain2591 said:

I have downloaded this update but when i run it i dont see any new options. Added attachment

Interesting, what version of Windows are you running?   I'll see if I can duplicate on another system. Could be changing some compatibility tab settings such as for high dpi will work.

Looks like the fonts and/or object sizes are not aligning properly with the app on your system. I have not tested on Windows 7 for example, and I know there can be some oddities with fonts/dpi in general for some apps.  I've run it on a couple win10 systems without issues, but I'll try to see what else could contribute to the issue.

 

update: try this, in win explorer, right-click on exe, properties, compatibility tab, set High DPI to system enhanced...

That worked for my 'surface go' computer to adjust fonts and scaling to be as designed.

I'll see about making a wpf version to see if scaling and dpi is still a problem, but I think adjusting high dpi should work

 

settings1.jpg

Edited by big_guitar
Link to comment
Share on other sites

2 hours ago, big_guitar said:

Interesting, what version of Windows are you running?   I'll see if I can duplicate on another system. Could be changing some compatibility tab settings such as for high dpi will work.

Looks like the fonts and/or object sizes are not aligning properly with the app on your system. I have not tested on Windows 7 for example, and I know there can be some oddities with fonts/dpi in general for some apps.  I've run it on a couple win10 systems without issues, but I'll try to see what else could contribute to the issue.

 

update: try this, in win explorer, right-click on exe, properties, compatibility tab, set High DPI to system enhanced...

That worked for my 'surface go' computer to adjust fonts and scaling to be as designed.

I'll see about making a wpf version to see if scaling and dpi is still a problem, but I think adjusting high dpi should work

 

settings1.jpg

Give it a try when I get home, it's latest update to Windows 11 my OS

Link to comment
Share on other sites

46 minutes ago, rain2591 said:

Is there any other way you could implement the updates without having users change DPI settings. 

Funny you should ask, try this version... it worked for my surface go not having to change DPI settings... 

 

Also made a slight change to remember the selected db file path

 

gspgames-003b.zip

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

1 hour ago, big_guitar said:

Funny you should ask, try this version... it worked for my surface go not having to change DPI settings... 

 

Also made a slight change to remember the selected db file path

 

gspgames-003b.zip 3.18 MB · 1 download

Yeah, downloaded above version and extracted it over my old version and changed DPI settings again to default and it runs without the need for changing DPI.

 

Brilliant stuff

Edited by rain2591
Link to comment
Share on other sites

10 hours ago, big_guitar said:

Also made a slight change to remember the selected db file path

 

I think there is a small glitch with some filename or display name searches. Knowing there might be more than one game system with same name (Frogger, Tapper, Dig Dug), maybe the 8-bit or 16-bit version is named [Frogger (Japan).nes] *no brackets* __ [Tapper (hack).sms] __ that search doesn't include any games with (this) in name.

Also names with special characters makes an error. Like _ Rob 'n' Banks \\ Q-bert's Qubes.

Edited by Boots01
Link to comment
Share on other sites

8 hours ago, Boots01 said:

I think there is a small glitch with some filename or display name searches. Knowing there might be more than one game system with same name (Frogger, Tapper, Dig Dug), maybe the 8-bit or 16-bit version is named [Frogger (Japan).nes] *no brackets* __ [Tapper (hack).sms] __ that search doesn't include any games with (this) in name.

Also names with special characters makes an error. Like _ Rob 'n' Banks \\ Q-bert's Qubes.

I'm currently not overriding the basic search string sqlite like syntax.  If you are searching with single quotes you have use 2 in a row for now, for example to include %''%  will retrieve all entries with single quotes. Underscore is a special wildcard character in 'like' syntax, I will have to use an escape clause, or I think I can use the like function instead. It seems to match on parentheses fine. I thought about adding exact search, could add that. As far as similarly named games, you can navigate the results and act on the one you need to delete or change. If I search  Frogger (Japan) that matched fine.

 

Edited by big_guitar
Link to comment
Share on other sites

For now, here's a quick change that allows for using backslash as an escape character... later I'll see about replacing special characters by default and use a drop down for starts with, ends with, etc.

 

Example, this query searches where display names starts with "some_" ... The percent of course is standard sql wildcard.

image.png.89e46f28be8da9c5e803be9f37ee608b.png

 

gspgames-003c.zip

 

Also note, this doesn't do searches against the full rom name, you have to select the 'prefix' or the 'suffix', as that's the way the data is stored in the db, plus the query is currently only targeting one field.

 

An underscore (without an escape character before it) is a single character wildcard, so if you search for %b__l%  (2 underscores in a row) it will find all "ball" entries as well as "bowl" .  So there is a little more flexibility in allowing for standard sql-like statements, for those familiar with the syntax.  Then it's just the question of use case, how complex do we really need to be to retrieve what we need to act on, etc.. 

 

Underscore wildcard example (2 in a row)

image.png.e71afe19e09f44ef50ecdcf5b2603ba6.png

 

This example below will find all entries with '%' in the display name... 

 

image.png.b9f9c043552180c4de127ba768a7c1be.png

Edited by big_guitar
  • Like 4
Link to comment
Share on other sites

gspgames-004 - simplified search (only search changes here, if you prefer not to have to type special characters.... )

  • converts single quotes for queries [all types]
  • replaces special characters with escapes [%, _, \]
  • no need to define special search characters [except in DIY mode]
  • added more fields to search by
    [the related 'Search By' column values stand alone and are not related to other data provided in the same row] 
     
Search By   Search Types Case Sensitive Search Type Explanation Examples
display name   contains no [1] [display name] [contains] 'battle' (3 default results)
rom prefix   starts with no [1] [display name] [starts with] 'b' (11 results)
suffix   ends with no [1] [display name] [ends with] 'y' (7 results)
class type   ! contain no [1] "does not contain" [rom folder] [! contain] 'atari' (64 results)
game type   equals YES [1] exact match [display name] [equals] 'beast ball' (0 results; case sensitive)
vertical   DIY like no will convert single quotes for you, but you must add special characters yourself as needed [display name] [DIY like] 'b%battle%' (1 result)
result: Brave Battle Saga
players          
rom folder         single quotes in examples above are just for isolating parts for explanation

 

*1 - do not use special chars in your search string unless you are looking for the actual chars

 

 

gspgames-004.zip

Edited by big_guitar
  • Like 2
Link to comment
Share on other sites

With the GUI, you can actually use any file extension you want if you place it in your games.db file.  If you have a libretro core or linux emulator that supports the extension, it will work fine.

I don't believe I was aware of this originally, I thought it would behave like folder navigation.  I've even tested using ".zzz" and the entry displayed and was passed to retroarch, but that of course is a bogus extension I tested with, so nothing ran in that case.

 

For a legit example, you can have "/sdcard/Games/BLUE/Front Line (NA).col" fed into the blueMSX core [using the '.col' extension], it will present and run fine if you configure your script files accordingly.

Of course, this will NOT work for manual folder navigation, but you can still trick the system into using any possible extension supported by a core/emu that will run on the GSP within folders as well with some scripting.

image.png.fa09ebdd66a1f6b88a92d7028794826a.png

Link to comment
Share on other sites

Has anyone noticed if you add paddle games to the UI using this custom firmware whether the paddle sensitivity settings save or not? These settings for paddle games don't save if the games are added to the microsd card and placed in the Atari 2600 Paddle folder with the current stock firmware version 1.3.

Edited by xboxiso
Link to comment
Share on other sites

12 hours ago, xboxiso said:

Has anyone noticed if you add paddle games to the UI using this custom firmware whether the paddle sensitivity settings save or not? These settings for paddle games don't save if the games are added to the microsd card and placed in the Atari 2600 Paddle folder with the current stock firmware version 1.3.

I havent tried it but wouldn't this be the same for firmware paddle games? i.e. if you change sensitivity in a session they would likely reset to what is in the firmware if you power off

Link to comment
Share on other sites

1 hour ago, Vic20Ian said:

I havent tried it but wouldn't this be the same for firmware paddle games? i.e. if you change sensitivity in a session they would likely reset to what is in the firmware if you power off

The stock firmware saves paddle sensitivity settings. I’m on the official 1.3 firmware currently. 

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