PC Achievements for Old Games
Posted: 12 Aug, 2017 08:03
Last Edit: 14 Aug, 2017 05:53
I was playing some old PC games and thought it would be really cool if they had achievements. Many aren't even available on Steam, and of the ones that are few had been given achievements and probably never will. Is there any interest in adding achievements for old PC games?
I made a proof of concept achievement detector for one of the games I'd played, Star Wars: Episode I Racer. It watches for when you start the game, and then watches for you to earn achievements.
Here's a sample achievement that unlocks when you finish a race.
Link to the source code: https://gist.github.com/odie5533/f638611e6fda0d846b0969b4dfcb11b7
To run, you need Python 3.x, PyQt5, and pywin32. To install the libraries, use:
pip install pyqt5 pypiwin32
Posted: 14 Aug, 2017 05:56
I added an achievement unlocked popup. It only works for windowed or borderless fullscreen games.
Posted: 14 Aug, 2017 10:27
I think this would be a great idea and I too thought about it for a long time.
Great work on your proof of concept. I guess to integrate this to RA, it would be necessary to develop a toolset of memory inspector and achievements editor specific to pc games.
Posted: 14 Aug, 2017 12:07
Last Edit: 14 Aug, 2017 12:09
Thank you for the kind words.
There already exists a complete and functional toolset for memory inspection: Cheat Engine, and many ASM debuggers like IDA or x264dbg. I know I personally could not improve on these.
To be bare-bones but user-ready, I think it would need:
* Support from RA staff to add achievements to the database
* Improvements to the base code and UI or even a full rewrite
* Connectivity to the RetroAchievements website
To really shine it would need:
* Tool for creating and editing achievements
* Tutorials and documentation for doing so
I'm wanting to gauge interest and support before I put more work into it.
Posted: 22 Aug, 2017 17:26
Any staff care to comment on the possibility of adding PC achievements to RetroAchievements?
Posted: 22 Aug, 2017 21:56
Well, only Scott, GameDragon, and maybe a few others fully understand that stuff and are in a position to change some of the things. In general we mostly only work with what is possible to apply the already-existing support-code into the target, and since that's made in Visual Studio, it has to be an open-source Visual Studio project. They don't usually like outside-source things interacting with a separate program, such as how trainers and CE work. It's definitely a neat idea, but my guess would be that they wouldn't like the 'separateness' of that kind of system. If I'm understanding what you said correctly anyway, I'm not sure.
Posted: 23 Aug, 2017 05:03
It would be possible to create the same program in Visual Studio as I've done in Python, and hook it into the existing RA suite or parts of it. I chose Python because I'm more familiar with it. The program I wrote is open source.
If the achievements are written in general terms with a consistent structure then it won't matter what the program is written in. I've made the achievements as JSON data structure.
Posted: 23 Aug, 2017 14:22
I absolutely love this idea! It being in Python would be better than Visual Studio though right? Since Python isn't OS specific like Visual Studio compiling Windows only code.
Posted: 16 Nov, 2017 01:47
Lex, is it possible that with the use of Python, you create achievements for Linux games?
To this day I expect a port of these emulators for linux but no one ever did, and as I do not know enough to venture into it yet, I think it would be good to use python in native linux games. This is just a question.
login to RetroAchievements:
or create a new account
or create a new account