Simulated rumble

Hello all!

A million years ago I read about someone improving emulated games by adding a rumble function to games that didn’t support rumble. (Unfortunately, I didn’t find the original article.) It worked by monitoring when data at a specific address was decreased corresponding to when a character in the game took damage. I’m writing to you guys to hear if you think this is a good idea to add support for in some libretro cores. If you guys like the idea, I might start working on it.

Anyway, the way I imagined it working is that I modify some of the existing cheat file formats to include a feature to activate rumble. I don’t know if this is a very good idea, though, since the cheat formats vary between systems so it seems very hackish. On the other hand, the alternative would be to create a completely new format that is the same between systems, but that also creates additional bloat. A third alternative would be to extend the libretro API to include a simulated rumble feature. I haven’t investigated the feasibility of this, but I saw some functionality for describing the memory maps in libretro.h with the purpose of creating core-agnostic cheats. Maybe this is the way to go? Maybe there is even no need for API changes? If there is, I am more hesitant about this latter approach due because of the bloat it creates.

So, what do you guys think? Is this a good idea at all? And if it is, what is the best way to implement it?

I think you could use the same RAM-peeking functionality that underpins the cheevos(?) retro achievements that leiradel’s been working on. It’s pretty much the same idea, only instead of triggering an achievement, you trigger the rumble.

Okay! Thank you! I will look into that!