Jump to content
IGNORED

Custom firmware for Atari Gamestation Pro


Recommended Posts

This will be my penultimate post for these banners/titles, box/cover-art and screenshots for the AGSP (errors excepted).  This time it is my initial set for the 7800, and follows the model set out in this post.

 

The .INI file entries are setup for a directory called "Atari 7800_c" (the full path is "/data/Games/Atari_Games/Atari 7800_c"), so all the .JPG and .PNG files (and your ROMs) need to go there.

 

This set includes the 7800 files (ROMs excepted) for:

 

Ace of Aces, Ballblazer, Barnyard Blaster, Choplifter!, Commando, Crossbow, Dig Dug, Donkey Kong, Donkey Kong Jr., Galaga, Joust, Karateka, Klax, Ms. Pac-Man, Pac-Man (for the PacManPlus/Pac-Man Collection version), Pole Position II, Rampage, Robotron: 2084, Summer Games, Winter Games and Xevious.

 

-

 

I'm not much of a 7800 fan - so was hard to come up with 20 titles I cared enough about (or that I didn't prefer other versions to), to do for this set.  Barnyard Blaster requires the XG-1 Light Gun, which I don' think can be adapted to work with the AGSP - but I'd created the files before I thought about that ...

 

...

 

Anyway, tomorrow I expect to post all the remaining 2600, 5200, Arcade and (if there are any) 7800 files I'm going to do - which should cover every game I care to have on the AGSP's main menu.  I'll likely post one file for each console, rather than splitting them up into sets of 20 games.  And after that I imagine I'll be spending some time with the 400 Mini.

 

AGSP 7800 Set 1.zip

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

Rather than doing a bunch more files, I decided to write a little tool to grab box/cover-art, and allow its manipulation, so people could add what they wanted, faster, and more smoothly, than having to go through manual downloads and image-editing to create the box/cover and coin-up machine files.

 

It should work well in grabbing (and cropping/sizing) box-cover images that'll work with @tjrtech's "agsp_enhance" tool, also.

 

I'm writing up how to use it now (in between playing with the "400 Mini"), and should have the instructions and code posted early tomorrow.

 

But as a quick teaser ...

 

A command as simple as:

 

abat.py cover “River Raid”

 

Will download a high-resolution, three-sides (back cover, spine, front cover) box art image for "River Raid" on the 2600, extract the front cover, resize it for the AGSP, and save it to "River Raid.png" - ready for use with the custom firmware and Atari games menu.

 

And using:

 

abat.py fetch -a -s 5200 "Pac-Man" 

 

Will get you the main, and all the alternate, three-sides, high-resolution, box art files for the Atari 5200 version of "Pac-Man", ready for you to CROP or RESIZE (both functions of the tool).

 

LOTS of other options (for existing files, grabbing alternate covers, getting back and front artwork, resizing cleanly for the AGSP etc.)

 

  • Like 5
Link to comment
Share on other sites

On 3/26/2024 at 9:39 PM, tjrtech said:

Hey General, I haven't been able to do a lot of testing on Windows, but if you have Python3 (not Python) installed then in the Windows command line you should be able to run:

> python3 -m pip install psutil

That will install the psutil module.  Also the "SyntaxWarning: invalid escape sequence" errors you are getting I am not getting on MacOS.  Not sure if others are getting that.  I was trying to be cute and print out a logo.

 

 

On 3/26/2024 at 9:39 PM, tjrtech said:

Hey General, I haven't been able to do a lot of testing on Windows, but if you have Python3 (not Python) installed then in the Windows command line you should be able to run:

> python3 -m pip install psutil

That will install the psutil module.  Also the "SyntaxWarning: invalid escape sequence" errors you are getting I am not getting on MacOS.  Not sure if others are getting that.  I was trying to be cute and print out a logo.

 

Ok. I have made some progress. Issue now is that when I modify the curated list.xlsx to import new roms, I get the below error output. (I replaced my account folder name with *'s for the purpose of pasting here.) I'm guessing this the script is referencing a font that isn't installed in Windows?

 

Good news - games.ini files found in microSD card path I:\.
Copying games.ini file locally.

Successfully refreshed 'protected list.csv' from 'protected list.xlsx'.

Successfully refreshed 'curated list.csv' from 'curated list.xlsx'.

Examining Atari_Games/Atari 2600/Acid Drop...
         - Creating file Games\Atari_Games\Atari 2600\Acid Drop_title.png title art (text version).
Traceback (most recent call last):
  File "E:\agsp_enhance\agsp_enhance.py", line 1102, in <module>
    main()
  File "E:\agsp_enhance\agsp_enhance.py", line 1087, in main
    retcode = enhance()
              ^^^^^^^^^
  File "E:\agsp_enhance\agsp_enhance.py", line 1024, in enhance
    is_complete = check_for_all_files(game)  # Prints out missing contents or if complete
                  ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\agsp_enhance\agsp_enhance.py", line 635, in check_for_all_files
    create_title_image_from_game_title(f4, game)
  File "E:\agsp_enhance\agsp_enhance.py", line 367, in create_title_image_from_game_title
    font = ImageFont.truetype(os.path.join(FONT_PATH, FONT_NAME), size=initial_font_size)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\*****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\PIL\ImageFont.py", line 819, in truetype
    return freetype(font)
           ^^^^^^^^^^^^^^
  File "C:\Users\*****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\PIL\ImageFont.py", line 816, in freetype
    return FreeTypeFont(font, size, index, encoding, layout_engine)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\*****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\PIL\ImageFont.py", line 245, in __init__
    self.font = core.getfont(
                ^^^^^^^^^^^^^
OSError: cannot open resource

Edited by General Shakewell
Link to comment
Share on other sites

7 hours ago, General Shakewell said:

 

Ok. I have made some progress. Issue now is that when I modify the curated list.xlsx to import new roms, I get the below error output. (I replaced my account folder name with *'s for the purpose of pasting here.) I'm guessing this the script is referencing a font that isn't installed in Windows?

 

Good news - games.ini files found in microSD card path I:\.
Copying games.ini file locally.

Successfully refreshed 'protected list.csv' from 'protected list.xlsx'.

Successfully refreshed 'curated list.csv' from 'curated list.xlsx'.

Examining Atari_Games/Atari 2600/Acid Drop...
         - Creating file Games\Atari_Games\Atari 2600\Acid Drop_title.png title art (text version).
Traceback (most recent call last):
  File "E:\agsp_enhance\agsp_enhance.py", line 1102, in <module>
    main()
  File "E:\agsp_enhance\agsp_enhance.py", line 1087, in main
    retcode = enhance()
              ^^^^^^^^^
  File "E:\agsp_enhance\agsp_enhance.py", line 1024, in enhance
    is_complete = check_for_all_files(game)  # Prints out missing contents or if complete
                  ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\agsp_enhance\agsp_enhance.py", line 635, in check_for_all_files
    create_title_image_from_game_title(f4, game)
  File "E:\agsp_enhance\agsp_enhance.py", line 367, in create_title_image_from_game_title
    font = ImageFont.truetype(os.path.join(FONT_PATH, FONT_NAME), size=initial_font_size)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\*****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\PIL\ImageFont.py", line 819, in truetype
    return freetype(font)
           ^^^^^^^^^^^^^^
  File "C:\Users\*****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\PIL\ImageFont.py", line 816, in freetype
    return FreeTypeFont(font, size, index, encoding, layout_engine)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\*****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\PIL\ImageFont.py", line 245, in __init__
    self.font = core.getfont(
                ^^^^^^^^^^^^^
OSError: cannot open resource

I think that's a bug that you can probably easily fix, or at least if not a bug something that works a bit differently under MacOS than Windows.

There is a font file that should be in the folder public/fonts, and it is in public.  Copy it or move to to public/fonts and re-run.  The file name is HAMMRF.TTF.

Sorry for that one and I hope that is the last issue for you.

image.png.b693408b995f6aea04783d0a07997b63.png

Link to comment
Share on other sites

12 hours ago, Torq said:

Rather than doing a bunch more files, I decided to write a little tool to grab box/cover-art, and allow its manipulation, so people could add what they wanted, faster, and more smoothly, than having to go through manual downloads and image-editing to create the box/cover and coin-up machine files.

 

It should work well in grabbing (and cropping/sizing) box-cover images that'll work with @tjrtech's "agsp_enhance" tool, also.

 

I'm writing up how to use it now (in between playing with the "400 Mini"), and should have the instructions and code posted early tomorrow.

 

But as a quick teaser ...

 

A command as simple as:

 

abat.py cover “River Raid”

 

Will download a high-resolution, three-sides (back cover, spine, front cover) box art image for "River Raid" on the 2600, extract the front cover, resize it for the AGSP, and save it to "River Raid.png" - ready for use with the custom firmware and Atari games menu.

 

And using:

 

abat.py fetch -a -s 5200 "Pac-Man" 

 

Will get you the main, and all the alternate, three-sides, high-resolution, box art files for the Atari 5200 version of "Pac-Man", ready for you to CROP or RESIZE (both functions of the tool).

 

LOTS of other options (for existing files, grabbing alternate covers, getting back and front artwork, resizing cleanly for the AGSP etc.)

 

Cool stuff Torg.  Yeah, I wrote some one-off scripts for downloading and converting box art, etc, but folded most of that code over into agsp_enhance itself (the resize, the image conversion, the transparency support).  I have found that now, once I have most of the kinks worked out for agsp_enhance (for me) the hardest part is getting ROM and image files gathered and "named" commonly.  I actually wrote a script for that as well and its undocumented but is called "name_like.py" and it has a couple of constants, one for the folder, another for the ROM extension, then it looks for all the ROMs and then uses some fuzzy matching to rename found box art and screenshots accordingly (crude but somewhat effective).

Edited by tjrtech
Link to comment
Share on other sites

Here's the cover-art download/resize/crop "tool" I mentioned yesterday.

 

The included "ABAT Read Me.pdf" file should tell you all you need to know.  You'll definitely want to read at least the "Usage" section and the "Details & Additional Considerations" page (especially in regard to "game names").

 

Bear in mind it's a fairly "quick and dirty" affair (though it is commented, generally follows PEP-8, uses "CONSTANTS" instead of magic numbers, etc.), in that it was built in a few hours, while also doing other things, mostly to simplify and speed up the otherwise manual process of downloading, cropping and resizing box art (cover art) files for the AGSP.  A little extra work turned a "for my convenience" tool into something that might be useful to others.  And that's really all this is.

 

If you're not familiar with Python (specifically Python 3), you may run into issues, though there's basic instructions for that in the included PDF file.  Ideally you want to run it in a virtual Python environment.

 

You're free to do whatever you like with the code, without attribution.

abat.zip

  • Thanks 1
Link to comment
Share on other sites

4 hours ago, tjrtech said:

I think that's a bug that you can probably easily fix, or at least if not a bug something that works a bit differently under MacOS than Windows.

There is a font file that should be in the folder public/fonts, and it is in public.  Copy it or move to to public/fonts and re-run.  The file name is HAMMRF.TTF.

Sorry for that one and I hope that is the last issue for you.

image.png.b693408b995f6aea04783d0a07997b63.png

Dude! You are amazing! Thank you so much for the help! 

 

I'd like to add that for any of my other noob python Windows brethren out there, after installing python, I also had to run the following commands for the additional required dependencies.

 

python3 -m pip install psutil
python3 -m pip install pandas
python3 -m pip install pillow
python3 -m pip install openpyxl

 

A QOL recommendation would be to make import/ignore column a simple drop-down box. Easy enough for people to do themselves but just thought I'd throw that out there.

 

Thanks again for the assist!

Edited by General Shakewell
Link to comment
Share on other sites

58 minutes ago, General Shakewell said:

Dude! You are amazing! Thank you so much for the help! 

 

I'd like to add that for any of my other noob python Windows brethren out there, after installing python, I also had to run the following commands for the additional required dependencies.

 

python3 -m pip install psutil
python3 -m pip install pandas
python3 -m pip install pillow
python3 -m pip install openpyxl

 

A QOL recommendation would be to make import/ignore column a simple drop-down box. Easy enough for people to do themselves but just thought I'd throw that out there.

 

Thanks again for the assist!

And please, keep the feedback coming!!!!!

I am glad that worked for you, and a great idea on the drop-downs for the curated list spreadsheet.  I will for sure work on that for the next (which will hopefully be the first, non-beta release now that you have helped work the kinks out).

Edited by tjrtech
Link to comment
Share on other sites

[Windows App - Pending Update]

Close to making available an update to the windows games.db editor I previously shared, almost there...

Ideal if you'd like to roam outside of the built-in GSP library cores.

Items to Note:

  • Makes it easier to use other RA core libraries or even native linux-arm emulators
  • No manual scripting required
  • Allows you to add games for other platforms (within hardware limits) regardless of rom file extensions
  • Choose which Retroarch CFG files you want to run with your games
  • Force the 'Save State' option for games that use the built-in retroarch executable.
  • Quick Start - Deploy your first Intellivision Game (homebrew example) [very few manual tasks required]
  • Optionally add your alternative core games to the GSP GUI
  • Configure game entries to use alternative Retroarch versions (such as provided by @GB_Baker)
  • Manage Cores and CFGs for quick selection in new game-trigger entries

 

 

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

OK for those willing to take a chance [deeper end of the pool perhaps]? 

 

Implement your first Intellivision game.  Still requires Brad's 1.30c firmware. 

Backup your games.db, unzip to folder, run the app from the extraction folder, select games.db from SD, enable enhancements,

then select from the upper-right Expanded DB Options > Enable Features > QUICK START 

If you don't perform the built-in Quick Start actions, you'll have to perform those manually, as there are some directories expected to exist on the sd card.  

There are PDFs in the zip for assistance.  Especially check out #001.

There's not an ideal way [or perhaps at all] to use a 'paddle' with the core + game for the Quick Start, but it's still a decent game.

You can of course use other cores as well, but the Quick Start will help you get your feet wet.

This windows app adds more db changes, but nothing further to the games table itself.  The GSP app doesn't mind the extra tables.

There is a runme file provided, but the quick start in the app will deploy that for you. You'll see a warning before any overwriting occurs.

If you are already using a runme file, you'll have to compare and merge, but if you have questions feel free to ask.

There are tables for Cores and CFGs for quick selection when establishing new Triggers, but you don't have to use them.

 

[General Changes]

-Most windows stretch horizontally for displaying long file paths

-Minor aesthetic changes, cleaned up a few things

 

A slight learning curve perhaps to get used to, but in short time I think it will be straight forward.

Basic flow of how it works is shown below.

 

As usual, use at your own risk.  Let me know about any issues encountered, thank you!

 

image.thumb.png.c1e91e819995976c28cbb050a39934e3.png

 

gspgames-053.zip

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

Although I'm sure no one got to this point, on a deployment screen initiated from the Cores form, if you don't see a drive letter the first time in the destination textbox, close & reopen deployment window and it seems to properly recognize the destination drive letter appropriately, only a one time thing, not an issue after that point.  I don't see the issue on the other deployment forms like the quick start deployment or triggers initiated deployments for example.

A minor one-time thing, but I'll try to clean that up.

Link to comment
Share on other sites

Documentation correction for 002-Explanations and Next Steps

 

Under: How do I add other Intellivision games? 

 

C.g.iii should read:

You can also go back to the trigger reference and use the DEPLOY button next to the trigger file path field to assist with deploying the matching graphics files.

Link to comment
Share on other sites

On 4/3/2024 at 6:13 PM, big_guitar said:

Documentation correction for 002-Explanations and Next Steps

 

Under: How do I add other Intellivision games? 

 

C.g.iii should read:

You can also go back to the trigger reference and use the DEPLOY button next to the trigger file path field to assist with deploying the matching graphics files.

This looks fantastic. Gonna hopefully give this a try tomorrow night. I've been dying to play the Intellivision version of Night Stalker.

  • Like 1
Link to comment
Share on other sites

8 minutes ago, General Shakewell said:

This looks fantastic. Gonna hopefully give this a try tomorrow night. I've been dying to play the Intellivision version of Night Stalker.

What type of controller are you planning to use?  The example cfg I made for the quick start game is probably insufficient for Night Stalker, since the keypad actions should be quicker for NS, and what I provided was setup for a single GSP controller where the gameplay is a bit simpler. But you should still set up the quick start game first, it will help with getting familiar with it all.

 

A different Retroarch cfg will be needed for Stalker. You could use 2 GSP controllers together, one stick for moving and the other for shooting in a direction, or a more modern style controller (90s) with a dpad and one or more analog sticks would be ideal. The former might be easier to provide, I can set one up that should work, but both types are doable. Changing shooting directions with my sample cfg is possible, but would include an extra step each time you need to change direction, and that's too slow for games like Stalker. I just haven't gotten around to covering more configuration setups yet.

 

My non-gsp controller is stellar shift, recognized as a generic Xbox controller. You likely have something different, but other similar controller types are not that far apart. 

Link to comment
Share on other sites

I  found a change I will need for non-Retroarch applications, but I doubt anyone has attempted that anyway. 

Most of the app is focused on retroarch specific things anyway, such as with the Intellivision example, so for those willing, you can test away without concern of something breaking later. 

 

Edited by big_guitar
Link to comment
Share on other sites

[windows gspgames updates] - gspgames-054

  • improved runme [last one had more null returns on sql queries when data was expected]
    can copy over manually from zip or re-deploy the runme file from quick start
  • interface updates (some deploy screens and trigger screen)
  • additional help added [clicking on some labels such as 'app type']
  • added a sample generic xbox retroarch cfg for intellivision (available in zip file)
  • removed quick start record addition of core for stand-alone stella; not reliable for paddle game custom configs at this time.
  • *no db schema changes vs gspgames-053d

 

[Intellivision Notes]

More complex Intellivision games that require frequent keypad actions are just not ideal for the GSP controllers.  A bit more clunky to deal with.  

Explanation of generic xbox configuration file: 

 

xbox_freeintv.cfg (generic)
xbox A = left intellivision action button
xbox B = right intellivision action button
xbox X = assigned keypad option from mini selector (defaults to #1)
xbox Y = GSP save menu
xbox L (bumper) = mini keypad selector (assign keypad action to 'X')
xbox R (bumper) = Intellivision 'top' button actions
L2 = [C]lear keypad action
R2 = [E]nter keypad action
L3 thumb = keypad # 0
R3 thumb = keypad # 5
Left Analog/D-Pad: Intellivision disc (usually player movement)
*Right Analog direction = executes a keypad event # 1-9 (sans 0 or 5)
Such as: up for #2, east for #6, southwest for #7, etc.

 

 

gspgames-054.zip

Edited by big_guitar
Link to comment
Share on other sites

7 hours ago, big_guitar said:

[windows gspgames updates] - gspgames-054

 

minor GSP editor suggestion

(minor addition someday) For added games it might be nice to know what does actually show for the ABOUT description section for each game display, 450 characters.

GSP game edit.jpg

  • Like 1
Link to comment
Share on other sites

7 hours ago, Boots01 said:

For added games it might be nice to know what does actually show for the ABOUT description section for each game display, 450 characters.

Do you mean to display how many characters are in the field, or to LIMIT the input to 450 due to the fact you can't scroll the ABOUT information from the GSP gui interface? 

Link to comment
Share on other sites

3 hours ago, big_guitar said:

Do you mean to display how many characters are in the field, or to LIMIT the input to 450 due to the fact you can't scroll the ABOUT information from the GSP gui interface? 

 

3 hours ago, big_guitar said:

>>  LIMIT the input to 450 due to the fact you can't scroll the ABOUT information from the GSP gui interface? 

To know what the limit is - character 451 & beyond will not be seen during game scrolling/selection, so ABOUT section can be edited the first time to show actual real game display, rather than trial & error between creating the entry first, and then trying the game play to see what it looks like hoping to see all characters expected (as known in 450 edited chars).

[i.e. ..........lines that crawl the (stuff will display) \\ screen. In addition..... (stuff will not display)]

Link to comment
Share on other sites

2 hours ago, Boots01 said:

 

To know what the limit is -

hmmmmm better yet why not make the editor box the same size/shape as the actual game ABOUT display
- 36 or 37 characters wide times X number of lines to use - so you know if longer words fit on a line or need to be more creative and not waste any space [change 'and' to '&', or change 'Your mission is' to 'You must'].

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

Maybe this won't work.... I use a 26" LCD TV, not sure if different displays may not be as wide.

Edited by Boots01
Link to comment
Share on other sites

2 hours ago, Boots01 said:

hmmmmm better yet why not make the editor box the same size/shape as the actual game ABOUT display
- 36 or 37 characters wide times X number of lines to use - so you know if longer words fit on a line or need to be more creative and not waste any space [change 'and' to '&', or change 'Your mission is' to 'You must'].

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

Maybe this won't work.... I use a 26" LCD TV, not sure if different displays may not be as wide.

I have something that will display character count and limit data entry, but also will allow override. If the about is over 450, it will still display all data there, you'd have to truncate on your own, even though it won't let you add more ( unless you enable the override 😛 )

Link to comment
Share on other sites

1 hour ago, big_guitar said:

I have something that will display character count and limit data entry,

OK, maybe the character count isn't the whole thing. IF you have a 8-letter word at the end of a line, but there are actually only 6-spaces available on that line, then that 8-letter word skips down a line - thus cutting-off the last word(s) of the 450 char display in the FIXED WIDTH of game play/select ABOUT box.

 

the game play ABOUT box section is different size/width than editor ABOUT box.

 

..... whatever, i guess I'm the only one adding more games - no big deal, i'm done fretting .

Link to comment
Share on other sites

1 hour ago, Boots01 said:

OK, maybe the character count isn't the whole thing.

Yes, if it's not a momospace font, and then if you add line feeds, that would subtract from available display space. I can minimally display a character count to assist with a guestimate though. 

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