Open-PS2-Loader icon indicating copy to clipboard operation
Open-PS2-Loader copied to clipboard

Retroachievements

Open cardoso836 opened this issue 2 years ago • 6 comments

Checks

Describe the FR

Hello, i'm typing This to ask if possible, IF POSSIBLE, on some way to add retroachievements to the project...

Describe the solution you'd like

I think it would be a huge and great enhacement to OPL... And would bring a huge motivation to play PS2 and his games... Thank you very much for the work done so dar.... Take care and God Bless...

Describe alternatives you've considered

No response

Additional context

No response

cardoso836 avatar Jan 15 '23 17:01 cardoso836

There is almost no way to get this working on real hardware. The system is already very strapped for resources while running most games, adding extra code or resource usage tends to destabilize things, and the ps2 has a fledgling notion of what the internet is at best, let alone connecting to a remote server every time a condition changes

Masamune3210 avatar Jan 15 '23 23:01 Masamune3210

People don't realize achievements exists because codebreaker and gameshark doesn't. The video gaming industry always hated 3 specific things: the used gaming industry, the rental gaming industry, and the cheating industry. They never saw a profit or a cut from either used games being sold or games being rented, so when they localized them from Japan, they made them harder in order to prevent them being beaten in a weekend BlockBuster rental, which only poured kerosene on the cheating device/game enhancer industry which was mostly underground at the time. In a very short window and snapshot of time, we saw Game Genie, Gameshark, Codebreaker, Exploder, and Pro Action Replay jockey for position. So in their narcissism and grandiosity, the industry pushed for online gaming for consoles to justify shipping shit code on coasters, fixing them with patches, constant surveillance and phoning home, and ultimately ridding itself -- using the DCMA -- of cheat devices. Then they cobbled together Achievements as a means sanctioning THEIR version of cheating; but it only distracts us from realizing these devices are gone, never to return unless through homebrew projects like Artemis, and that just allows the developers and publishers to permanently foist their "vision" on us going forward - even if that vision is shitty as their practices. The result? Blockbuster is gone. GameFly is hollowed out. Used gaming industry is glued together by GameSpot and eBay, and PSN is loaded to the gills with trophy farming shovel ware that'll give you a Platinum faster than a stiff breeze can make you sweat or shiver. And don't get me started on the games whose achievements are so broken that they can't be achieved. Ever. Rendering the Platinum trophy as hollow and useless as ten tits on a fixed bitch ...

I'm glad as fuck that the PS2 doesn't have them and never will ... Hardware Limitations Achievement EARNED! 😁

BatRastard avatar Jan 16 '23 15:01 BatRastard

holy shit that ending analogy got me good

zamnoid avatar Jan 16 '23 20:01 zamnoid

I thought about this before. Obviously the PS2 doesn't have the overhead to do any of this in the background... however, I believe ps2rd does have capabilities for remote debugging connection, including the memory read access required for RA logic.

So this would have to be an external app running on the same network, running all the RA code. OPL/ps2rd would then have to handshake with it on boot, do a game hash check oh the game files (or physical disc), and if valid for RA, establish the remote debugging session.

Sounds like a fun project, if anyone is up for it :)

retroNUC avatar May 23 '23 11:05 retroNUC

As this idea still lives rent-free in the back of my head...

  • From OPL or any other launcher, establish the connection to ps2rd / ps2client
  • Identify the game on the PS2 side before we boot (hash of the ELF and other things, not time sensitive), sent it over to PC client
  • On the PC side, get the appropriate RA ruleset for the matching game, analyse the subset of memory addresses it needs to constantly check (don't think we could dump all 32MB every frame without overhead)
  • Boot the game with an additional IRX module that could maintain the link to ps2rd / ps2client
  • PC link sends the list of addresses to be monitored/updates every frame to the module
  • Hook into something on a per-frame timer (vblank interrupt?)
  • When we hit the per-frame hook, read the list of memory addresses, pack it and fire across the network as fast as possible
  • Back on the PC, process any packets on the queue as if it was per-frame on an emulator, do all the usual rcheevos library stuff
  • Fine if the playback of frame packets is slower or goes out of sync on PC side due to network lag, we just can't allow any waiting or overhead on the PS2

All theoretical, but as I'm not experienced with the hardware yet, someone feel free to shoot down my dreams and let me know that there wouldn't be enough overhead for an IRX module to read a few dozen memory addresses and fire off a network packet every frame.

retroNUC avatar Apr 18 '24 02:04 retroNUC

The "Loading a new IRX into the game and having it run without affecting the game" part is a big issue, a lot of games would either have bugs due to it or just outright not work.

Masamune3210 avatar Apr 19 '24 02:04 Masamune3210