Atari High Scoring System
The most fun ever on your Atari system- compete now with the entire global user base of FujiNets and track your high scores on a bunch of games modified by TCH.
What is going on here?
- Thomas CherryHolmes hacked up the ATR (Atari Disk Image format) header to support persistent High Score Leaderboards for anyone that uses those games via FujiNet (and is good enough to score high enough!)
- He has hacked a bunch of games to support this and people are playing them and having fun.
Creating your own Party Server for High Scores
TCH has written a guide going over all the steps necessary to create your own AHSS system with blank scores for all the games that only need you and your friends to fill up with your own fun and scores!
https://github.com/FujiNetWIFI/fujinet-platformio/wiki/Installing-a-High-Score-Party-Server
How Does this work?
- Mark three bytes of four unused ATR header bytes as so:
- first byte is the # of sectors that are legally read/write
- next two bytes are starting sector for that legal range
- Pick a current game to patch – it should already have High Score support
- If there already is a high score that writes to disk: find the high score table, mark it in the header.
- If there is a high score, but no write to disk, then patch code to write it to disk.
- In the case of PAC-MAN, literally write a high score routine. (source code was available)
- Use FujiNet to find, mount (read only) and then boot this game ATR. Game will start. The High Score table will be whatever is loaded from the image.
- If you are good enough to score on the board the game will attempt to write the high score to the disk in the drive…
- But FujiNet is the disk drive. When it loaded the ATR image it noticed those three bytes in the ATR header and it started watching for the Atari to write to a sector in that range…
- It notices the write, switches that ATR image to read/write, writes the new high score back to the ATR disk image on the server that was loaded, then switches the ATR back to Read only for the rest of the gaming session (or until you create another high score)
- As others mount and run that image, your high score is already encoded in the image waiting to be bested.
- As a bonus there is a web-based High Score leaderboard which amazingly shows all the current high scores for all the modified game images…
- This works by using a small c program to run at a given frequency (every 15 min?) and the c program knows where the ATR images are (they are on the same Linux server)
- The program reads the ATR image, finds the High Score sector on the disk (in the file to UNIX) decodes the ATASCII and presents the scores on a web page for you to view.
Links for further reading:
- http://scores.irata.online/ – see all the supported games and their High Scores
- https://github.com/FujiNetWIFI/fujinet-platformio/wiki/High-Score-storage-for-Legacy-Games – how this all works for a programmer to hack new games
- https://forums.atariage.com/topic/342166-storing-game-high-scores-for-legacy-games-on-tnfs-servers