emoose / OutRun2006Tweaks

Turning and spinning and spinning and turning, woah!
MIT License
331 stars 0 forks source link

[Feature Request]: Achievements #111

Open DiscoPorridge opened 2 months ago

DiscoPorridge commented 2 months ago

Describe the feature you'd like to see added

Request: Implement achievements like the Xbox 360 and Playstation 3 version of Outrun Online Arcade has since this version of the game lacks them entirely.

Something similar to the overlay below could be a template for the implementation, at least for the UI perspective (pictured below).

Screenshot 2024-08-08 164921

A user presses the shift+tab hotkey and it brings up the overlay where they can show/hide the achievements window to see what achievements they've unlocked overall and what's left to be unlocked.

When a user unlocks an achievement a pop-up appears on screen just like you would expect on any other platform that has achievements/trophies.

Achievement progress would be written to either the default OutRun2006Tweaks.inior ideally a seperate .json file that could, in the future could be useful for any web based stats tracking service(s) etc. for the game

k0pp0 commented 2 months ago

Perhaps start here - retroachievements

https://retroachievements.org/viewtopic.php?t=22917&c=224942

Tenome commented 1 month ago

Doing this would require making memory address checks for each achievement, which would be a big time sink. I don't think this will ever get done, more important things to fix.

ChibiDreamweaver commented 1 month ago

you would also need to run this in an additional program that runs games (Ex: Dolphin for running Gamecube and Wii games). Unfortunately, this cannot happen for the PC version of OutRun 2006 Coast 2 Coast since it is not a game being emulated but a game run on actual hardware. if you want achievements, you have to make them for the PS2, PSP or Xbox emulators that support Retroachievements and considering that the PS2 and PSP versions of OutRun 2006 do not have analog triggers, those versions of the game will not be worth anyone's trouble, even for achievements

DiscoPorridge commented 1 month ago

you would also need to run this in an additional program that runs games (Ex: Dolphin for running Gamecube and Wii games). Unfortunately, this cannot happen for the PC version of OutRun 2006 Coast 2 Coast since it is not a game being emulated but a game run on actual hardware.

Really not sure where you got that idea from. It's more than possible for the game to be retrofitted with user created achievements without any additional programs having to be run etc.

Example: Find the addresses that corresponds with what you want your achievement to do e.g reach 300km/h, add it to an achievement list file that the OR2006Tweaks dll hooker would check, then you'd check for the current speed address in memory and once it's equal to or more than 300km/h, create a pop up showing you've obtained said achievement and write it to a file.

Again, I'm really not sure why you'd think that or why you'd need anything else running other than OR2006Tweaks when the dll the project uses already hooks into the games memory.

k0pp0 commented 1 month ago

you would also need to run this in an additional program that runs games (Ex: Dolphin for running Gamecube and Wii games). Unfortunately, this cannot happen for the PC version of OutRun 2006 Coast 2 Coast since it is not a game being emulated but a game run on actual hardware.

Really not sure where you got that idea from. It's more than possible for the game to be retrofitted with user created achievements without any additional programs having to be run etc.

Example: Find the addresses that corresponds with what you want your achievement to do e.g reach 300km/h, add it to an achievement list file that the OR2006Tweaks dll hooker would check, then you'd check for the current speed address in memory and once it's equal to or more than 300km/h, create a pop up showing you've obtained said achievement and write it to a file.

Again, I'm really not sure why you'd think that or why you'd need anything else running other than OR2006Tweaks when the dll the project uses already hooks into the games memory.

Yep, that was my understanding too, however it's all the work to go in to the hooker that emoose has already written. A lot of the memory addresses have been mapped to the PS2 version - https://github.com/Souzooka/RAScripts/blob/main/PS2/20859%20(OutRun%202006%20Coast%202%20Coast)/OutRun%202006%20Coast%202%20Coast.rascript

k0pp0 commented 1 month ago

I'll never understand the need for achievements, i consider them a disincentive to restart games from scratch, especially in the era of modern, online-enabled gaming.

Purely personal preference. I happen to love them for offline single player. Don't like online MP based ones.