Skip to content

Fix rumble freezes and clean up rumble #if hell - #945

Open
gheskett wants to merge 2 commits into
HackerN64:develop/2.4.0from
gheskett:develop/2.4.0-rumble-fix-and-ifdef-cleanup
Open

Fix rumble freezes and clean up rumble #if hell#945
gheskett wants to merge 2 commits into
HackerN64:develop/2.4.0from
gheskett:develop/2.4.0-rumble-fix-and-ifdef-cleanup

Conversation

@gheskett

Copy link
Copy Markdown
Collaborator

Rumble was seemingly failing because the rumble thread and game thread were potentially able to request access to the SI at the same time due to missing mutex blocks surrounding calls to osMotorInitEx. This solution has also been tested against ultrasm64's osMotorInit and works.

I have enough confidence in this fix that we could consider re-enabling rumble by default, however I hesitate because I assume adding another thread would add a lot of extra performance overhead by default when (non-Shindou) vanilla SM64 doesn't use rumble anyway.

The rumble and game threads can both attempt to access the SI at the same time, which is no bueno.
@gheskett gheskett added this to the 2.4 milestone Aug 16, 2026
@gheskett gheskett self-assigned this Aug 16, 2026
@gheskett gheskett added bug Something isn't working high priority Important, non-critical issue or feature / high priority cleanup Removal of useless or bloat code/features blocker This MUST be resolved before the feature branch can be merged. labels Aug 16, 2026
@gheskett
gheskett force-pushed the develop/2.4.0-rumble-fix-and-ifdef-cleanup branch 4 times, most recently from be93186 to 2495a8e Compare August 16, 2026 08:11
@gheskett
gheskett force-pushed the develop/2.4.0-rumble-fix-and-ifdef-cleanup branch from 2495a8e to a4d1819 Compare August 16, 2026 08:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blocker This MUST be resolved before the feature branch can be merged. bug Something isn't working cleanup Removal of useless or bloat code/features high priority Important, non-critical issue or feature / high priority

Projects

Status: Needs Review

Development

Successfully merging this pull request may close these issues.

1 participant