View system RAM?

Looking through the libretro source I ran across this line:

// System ram lets a frontend peek into a game systems main RAM.
#define RETRO_MEMORY_SYSTEM_RAM 2

I have a project in which would benefit to be able to view the current memory as the rom is played. Is this currently possible or would I need to build a custom package?

I don’t know that any frontends currently implement that feature, so, if not, you would need to implement the feature in the frontend (presumably RetroArch) first.

It’s implemented in SNES9x/SNES9x Next IIRC and it was used in conjunction with game-aware shaders in order to read memory values from the game and then do fancy shader splash effects based upon that - like having Mario jump in water and having it apply a LUT texture onscreen.

I could search for that cgp file again - it should still be somewhere. Game aware shaders is really something I am intending to dust off at some point - it’s a killer feature in need of a great usecase.

What I am looking for is the ability to find a change to an address in the current ram by any core (similar to memory watch: http://www.fceux.com/web/help/fceux.htm … Watch.html) to see certain item progress in some games by monitoring the changes.

I could get by with viewing save states taken at a reasonable interval. Would, in theory, this be possible by creating a client that connects in spectate mode, then monitoring the traffic? Does RetroArch’s netplay not send save state info over the sockets at a certain rate? If it does not, doesn’t RA save the memory to files at an interval that i could peek into?

You can use the SYSTEM_RAM and VIDEO_RAM stuff to poke directly at the guts. libretro is not a debugger interface, so that’s what you get. Netplay does not send savestates, as that would be far, far, far too slow (only input state is sent).