aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/n64/osys_n64_base.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/platform/n64/osys_n64_base.cpp')
-rw-r--r--backends/platform/n64/osys_n64_base.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/backends/platform/n64/osys_n64_base.cpp b/backends/platform/n64/osys_n64_base.cpp
index 6625607ba8..9479081897 100644
--- a/backends/platform/n64/osys_n64_base.cpp
+++ b/backends/platform/n64/osys_n64_base.cpp
@@ -135,6 +135,7 @@ OSystem_N64::OSystem_N64() {
_dirtyOffscreen = false;
_ctrlData = (controller_data_buttons*)memalign(8, sizeof(controller_data_buttons));
+ _controllerHasRumble = (identifyPak(0) == 2);
_fsFactory = new N64FilesystemFactory();
@@ -602,6 +603,11 @@ void OSystem_N64::unlockScreen() {
}
void OSystem_N64::setShakePos(int shakeOffset) {
+
+ // If a rumble pak is plugged in and screen shakes, rumble!
+ if(shakeOffset && _controllerHasRumble) rumblePakEnable(1, 0);
+ else if(!shakeOffset && _controllerHasRumble) rumblePakEnable(0, 0);
+
_shakeOffset = shakeOffset;
_dirtyOffscreen = true;