SNES gamepad rumble/analog support proposal

Discussion of hardware and software development for Super NES and Super Famicom. See the SNESdev wiki for more information.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
retrorumble
Posts: 2
Joined: Fri Jun 02, 2023 9:46 am

Re: SNES gamepad rumble/analog support proposal

Post by retrorumble »

Instead of patching each individual rom, is it possible to use original unpatched roms and have the emulator be smart enough to know when the player gets damaged to rumble?

Failing that, how about a patching tool built into or bundled with the emulator to create, save, and use a patched version of the rom that adds rumble support?
User avatar
Memblers
Site Admin
Posts: 4044
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Re: SNES gamepad rumble/analog support proposal

Post by Memblers »

retrorumble wrote: Fri Jun 02, 2023 9:59 am Instead of patching each individual rom, is it possible to use original unpatched roms and have the emulator be smart enough to know when the player gets damaged to rumble?

Failing that, how about a patching tool built into or bundled with the emulator to create, save, and use a patched version of the rom that adds rumble support?
First option, doubtful.

Second option, yeah, I can imagine it would be nearly identical to setting a breakpoint in the debugger. Instead of stopping the CPU, it would start the rumble motor. The difference is you would need to also specify (or somehow derive) the intensity and duration. If only one generic intensity/duration was allowed it would be simpler, but also kinda meh.
creaothceann
Posts: 611
Joined: Mon Jan 23, 2006 7:47 am
Location: Germany
Contact:

Re: SNES gamepad rumble/analog support proposal

Post by creaothceann »

retrorumble wrote: Fri Jun 02, 2023 9:59 am Instead of patching each individual rom, is it possible to use original unpatched roms and have the emulator be smart enough to know when the player gets damaged to rumble?
I'm sure you could do something like that with a script, e.g. a Lua script in BizHawk. You need to find the RAM address where the player's health is stored (unless they die when hit), and hope that it never changes its location.

Don't hold your breath for emulators to support it natively. Supporting thousands of SNES titles is only doable in a few months/years because you just have to perfectly emulate a few components. IIRC back when bsnes/higan was developed, even testing if every single title reached the title screen took several hours/days.
My current setup:
Super Famicom ("2/1/3" SNS-CPU-GPM-02) → SCART → OSSC → StarTech USB3HDCAP → AmaRecTV 3.10
Post Reply