Search the Community
Showing results for tags 'firmware hacking'.
-
Greetings Atarians! For those who have been asking, here is my customized firmware image for the Atari Gamestation Pro. This is along the same lines as the custom firmwares I have produced for Atari Flashback devices. It allows you to add games and box art from the SD card to the Gamestation Pro menu and perform other customizations. The filename is Firmware-c.img and you install it using the same method for the official 1.30 firmware. On successful install it will update your version number to 1.30c To use the new firmware features your SD card should be formatted as exFAT. The custom firmware will not function correctly with FAT32 currently. The firmware is activated by detecting a "mount_sd.ini" file on the sd card in the /agsp directory. Extract /agsp folder from the attached agsp.zip archive to your sd card. When the firmware sees the mount_sd.ini file inside this folder it will dump the internal /data partition to the sd card and remount it there. The data folder will contain all of the system's game roms and boxart as well as the games.db file for the menu. Dumping data takes about 40s with my sd card, a Sandisk Extreme UHS-I card that can write up to 90MB/s. You will see the Loading screen while it is busy writing. If you are using an old/slow SD card then the operation may take longer for you. Give it up to 5-10 minutes in the extreme. After dumping the /data partition (if it is not already present on the sd card), the firmware will run the startup.sh script in the agsp folder on the card. This script will detect if a games.ini file needs to be generated (ie /data/games.ini doesn't exist). It will run a simple SQL command piped to an awk script to spit out the .ini file. If the games.ini file does exist, the script will read the first value in the file, "update_db". If this value is set to 1 then the script will run a couple of SQL statements to truncate the db tables and execute a small binary utility, ini2gamedb, to import the ini file contents back into games.db. It will then clear the update_db flag back to 0 in the games.ini file. Finally there is a dump_retro flag in mount_sd.ini. Set it and the script will extract retroarch binary and cores to a folder on the sd_card. This does not really activate them from the sd card, but will enable the community to play around with using or modifying them as they see fit. This is more a proof-of-concept of what can be done. You can modify the startup.sh script as needed, but you'll need to test what works correctly with the busybox variant of ash shell. Similarly the game launch script "start_local_sd.sh" will now be located under /data on the sd card. The support for sourcing runme.sh from /agsp from the earlier patched firmware is still present, but you can modify it however you wish. Of course if you break this script then your games won't launch. -------------------------------------------------------------------------------- Adding games should be fairly straightforward. For each game to display in the menu add a new ini section to /data/games.ini file. The section name should match the rom file name exactly. Fill in the rest of the ini sections, copying values from similar existing games where necessary. For the "about" and "controls" sections, these are text bodies for display in the UI game description screen. For larger entries that span multiple lines or have line breaks for formatting you need to be sure to start and end the content with a double quote ("). The ini converter generally should ignore entries it does not understand, but if anything goes wrong it should write a small log file under /data. Here is a sample of a new game entry added to the new games.ini file: [Pac-Man] display_name=Pac-Man suffix=.a26 release_date=1981 players=1 OR 2 class_type=1 game_type=5 hard=0 save=1 timer=/data/Games/Atari_Games/Atari 2600 about="We know that millions of people all over the world just love the PAC-MAN arcade game. PAC-MAN has won the hearts of men, women, and children everywhere. We also know that PAC-MAN has traditionally been an arcade game. Well, we at ATARI know all about arcade games. After all, we make some of the greatest arcade games in the world, and we know how to bring the same dynamite game play into your home." controls=Press A, then use the Joystick. vertical=0 Some of the fields are pretty obvious. The section name must match the rom file name, although it can contain spaces. The display name can be prettier. The path to the rom location for some weird reason is called "timer". The game_type should correspond to what has been documented in the discussion threads already, and as found in the game launch script. The class_type and hard fields are a little more obscure. We have attached some information (thanks @Vic20Ian ), but the community may have to experiment with those. Generally just try to copy values from similar types of games. I am also providing a .csv dump of the original tbl_game table from games.db. Remember to set the games.ini "update_db" value to 1 (first line of file) any time you want to import new custom entries into the games.db file on startup. Place the matching rom file in the appropriate folder under /data/Games. Co-located with the game are the menu images. They each share the same file name as the rom. There is a .png image for the box art, a .jpg image for the screen shot, and a <GameName>_title.png image for the title banner text/graphic. Any new games added to the system should have corresponding image files of the same/matching size. -------------------------------------------------------------------------------- I have tried to make my implementation reasonably resilient and recoverable, but issues may still occur. If you somehow create a really bad ini file or corrupt the games.db file (not likely but possible) there are different things you can do. Delete the /data/games.ini file and the startup script will generate a new one from games.db. Delete the /data/games.db and the system will copy the default one back to the sd card /data folder on startup. Delete or rename the entire /data folder and the system will regenerate it on startup so long as it sees the /agsp/mount_sd.ini file. Delete or rename the /agsp folder or mount_sd.ini file, or remove the sd card, and the system will just run off of the default internal /data partition and stock configuration. The functionality related to using a /Games folder on the sd card should remain unaffected. Also it is not known how many games you can add to the UI before it starts to encounter any loading or performance issues. No promises, no warranties. Use this firmware at your own risk. But I hope the community gets some utility out of it for enhancing their Atari Gamestation Pros. Firmware-c.img agsp.zip game_type.txt class_type.txt tbl_game_202401280228.csv
- 176 replies
-
- 21
-
- firmware
- firmware hacking
-
(and 2 more)
Tagged with:
-
People have been asking me for a version of my CFW for the Atari Flashback 12, which is fundamentally similar/same as the AFB 50th but technically a different sku with some minor software differences. I do not own one of these units and have no way to test a custom firmware or provide full support. However, since people have asked I have made a version of my cfw for AFB12 and attached here for any brave soul who wants to try it out. I would refer you to prior threads about the AFB X and 50, since the procedure is fundamentally the same. Please apply the official AFB12 (AR3080B) 1.1.1 firmware to your device first (https://firmwareupdate.atgames.net/). The CFW will install on top of it. Extract the atari_update.img file to your USB flash device, attach to the AFB12 via OTG cable, boot up and follow the update procedure. After reboot, power off and delete the update image file. IF I did this correctly then you should have the same custom behavior as provided by firmwares for earlier Flashback versions. The rom dumping behavior is still triggered by the presence of an empty mount_sd.ini file on your USB drive, and you can also still deploy custom startup.sh scripts, or try out the Nexus packages. No warranties, guarantees, use at your own risk, yadda yadda. Good luck! AFB12_AR3080B_CFW_1.1.1.zip
- 5 replies
-
- 2
-
- firmware
- custom firmware
-
(and 1 more)
Tagged with:
-
For anyone who wants to hack on the #ESP32 Firmware: The code in lib/libssh2 no longer works correctly, due to a combination of used deprecated protocol KEX algorithms, and changes to ESP-IDF, so, it should be replaced with libssh, and connected to the lib/network-protocol/SSH.cpp protocol adapter. * Fold in libssh: https://github.com/tnn2/esp-idf-libssh and make compile. * Modify lib/network-protocol/SSH.cpp/h and make it use libssh * Should be able to connect to an SSH host using netcat, with appropriate login/password credentials. pubkey can be added later. Ticket here: https://github.com/FujiNetWIFI/fujinet-platformio/issues/481