[Feature Request] RetroRumble – Rule-Based Rumble System (RetroAchievements-Style)
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Feature Request: RetroRumble – Rule-Based Rumble System (RetroAchievements-Style)
Description
This feature request proposes RetroRumble, an optional, rule-based rumble system for RetroArch, inspired by the existing RetroAchievements memory evaluation technology.
RetroRumble triggers controller rumble when defined RumbleRules are fulfilled, such as:
- Player HP decreases
- Player takes damage
- Earthquake / screen shake events
- Other in-game state changes detectable via RAM
The system is fully data-driven and does not require per-core or per-game hardcoded rumble support.
Core Idea
- Reuse the RetroAchievements-style memory watching and condition evaluation
- When a RumbleRule evaluates to true → trigger a rumble event
- Rumble parameters are configurable per rule:
- Weak / strong motor
- Duration
- Intensity
- Decay curve
- Cooldown / debounce
- Feature is optional and disabled by default
Example:
If memory address
0xC123(player HP) decreases → trigger strong rumble for 120 ms
RumbleRules as User-Created Content
- RumbleRules are user-created content, similar to:
- Cheats
- RetroAchievements
- Rules are loaded per game (or per core)
- Shareable, versioned, and community-maintained
- Allows adding meaningful rumble feedback to systems that never had native rumble (e.g. Game Boy, NES, SNES)
Technical Overview (High-Level)
- Leverage existing RetroAchievements memory evaluation pipeline
- Add a new evaluation output:
- Instead of unlocking achievements → trigger rumble events
- Possible rule parameters:
- Memory address
- Comparison type (equals, delta, greater/less than)
- Thresholds
- Cooldown / minimum retrigger time
- Rumble motor selection
- Duration and decay behavior
Why This Fits RetroArch
- Builds on existing, proven infrastructure
- No impact on emulation accuracy or determinism
- Fully optional and non-invasive
- Strong community-driven extensibility
- Improves immersion, especially on handheld devices and controllers
Summary
RetroRumble would enable:
- Modern haptic feedback for retro games
- A flexible, rule-based rumble system instead of hardcoded solutions
- Community-created enhancements without modifying original game logic
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by studying RetroArch’s existing RetroAchievements memory evaluation pipeline, which the request identifies as the intended foundation. Define how RumbleRules are represented and evaluated, how matching rules produce rumble events, and how optional loading and cooldown behavior should be tested; the feature is done when those design points have an agreed implementation path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- game-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100