ROM Hack Add Rumble Support through a patch?

Sonicjan

Member
OP
Newcomer
Joined
Apr 8, 2016
Messages
9
Trophies
0
Age
24
XP
172
Country
Gambia, The
Hello, is there a way to add support for the DS Rumble Pak for already existing games? There are a lot of different patchs for many games, that change and/or add a few things, so I thought that this might be a possibility aswell.
I really love games that use Rumble and some of the already existing games would benefit from that! Games like Super Mario 64 DS, New Super Mario Bros., Nintendogs or Mario Kart DS are perfect for that.

Would be nice if someone would at least tell me, if that could be even possible and if there is an already existing way.
 

Ryccardo

Penguin accelerator
Member
Joined
Feb 13, 2015
Messages
7,664
Trophies
1
Age
28
Location
Imola
XP
6,867
Country
Italy
In theory, making it vibrate is just a matter of writing alternating (at the desired speed) on/off values to a specific address: https://problemkaputt.de/gbatek.htm#dscartrumblepak

This basically means 2 challenges:

1- having to write said code, assemble, and manually place it somewhere in the game's executable (and there may likely be restrictions about which core may write to the slot-2 at which times)

2- calling your vibration function at the right times, which may or may not be "easy" to identify in the game's machine code, and may or may not have gaps of a size suitable for adding a function call (in which case, add the "fun" of relocating code)
 
  • Like
Reactions: Sonicjan

Sonicjan

Member
OP
Newcomer
Joined
Apr 8, 2016
Messages
9
Trophies
0
Age
24
XP
172
Country
Gambia, The
In theory, making it vibrate is just a matter of writing alternating (at the desired speed) on/off values to a specific address: https://problemkaputt.de/gbatek.htm#dscartrumblepak

This basically means 2 challenges:

1- having to write said code, assemble, and manually place it somewhere in the game's executable (and there may likely be restrictions about which core may write to the slot-2 at which times)

2- calling your vibration function at the right times, which may or may not be "easy" to identify in the game's machine code, and may or may not have gaps of a size suitable for adding a function call (in which case, add the "fun" of relocating code)

So it would make for a lot of work for each individual game to add Rumble-"switches", right?
And I guess there is no one working on something like that?
I would do it myself, if I'd have the knowledge, but I guess many people say/write the same sentence. ^^'

But thanks for the reply, at least now I know what one would have to do, in order to add rumble to a DS-game!
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,282
Country
United Kingdom
What Ryccardo said, though relocating code is not so bad on DS games.

There is a silly way if you are going to want to do it for a lot of games.

Many years ago I had a PC rumble pad for my chair. What it did was take the sound ouput, feed it though a box which in turn sampled the audio (might have been volume, might have been something else), passed on the audio and triggered the rumble in the chair part. You could do the same here if you fancy your skills with a soldering iron.

A quick and dirty audio amplifier circuit is often a first project in electronics and you would essentially be doing the same thing, except rather than feeding a speaker you would be feeding a rumble motor. You could chain it with some kind of high pass/low pass audio filter or something a bit more fancy (we are still within the realms of my first electronics projects). Depending upon what you are doing you might have to either use headphones (or use the amp for real) or maybe pop open the DS to remove its headphone inserted signal. I am not sure how much power you can draw from a GBA slot and never had a rumble pack to test with but it should be possible to have a low rent audio chip or microcontroller be powered as well.


Speaking of sound if you were going to hack something into a game I would look there -- chances are when you are off track, dropping to the floor or being hit then certain sounds will also be being played. The same things that lead to those sounds being played are where I would look to insert rumble code or add an additional hook.
Getting into very silly territory hacking sound is easy enough (might even be something you can do all within a GUI that exists today) so you might combine the two approaches to insert a thing the microcontroller (or filter) will pick up on in the sounds themselves (ideally out of range, think mosquito tone, but I don't think the DS' sound chip is up to it) and trigger the rumble accordingly.
 
  • Like
Reactions: Tarmfot

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Sorry for accidentally bending over