Skip to content

0x665770 Rumble Byte

robotanarchy edited this page Jan 3, 2015 · 7 revisions

0x665770

The byte at this address loosely increases, when explosions and shots are displayed and decreases again afterwards. We want to use this as rumble effect for the gamecontrollers and the required code is functional already, except that we don't exactly know what the byte does and therefore we can't calculate good rumble parameters yet.

Observations

All numbers that don't start with 0x are decimal.

  • Default value is 12, but sometimes it does NOT go back to this value!
  • The game only adds and substracts values - when we write a 0 there for example, it becomes -1, -2, ... to 5, 6, ... etc.
  • Firing a handgun: increases to 13, then back to 12
  • Firing a rocket launcher at a target that is directly in front of the player: increases up to 30!
  • value doesn't increase when running other players over with cars (but we should be able to detect this via "is user in car" + score delta)
  • value also increases when other players (bots or opponents in splitscren!) are shooting! This isn't good when the opponents are somewhere else on the screen, but you 'feel' their shots.
  • value always increases when dragging someone out of a car
  • value doesn't increase when getting wasted (this would be nice!)
  • value doesn't increase when running enemies over (would also be nice)
  • in multiplayer, this byte also increases when other players fire guns off-screen! I guess that this was actually the (unfinished?) rumble code for GTA2 on consoles, because there was no multiplayer mode anyway.

Idea for rumble implementation

  • perform edge detection on the address in the proxy_dll
  • when the value changes, write 0x00 there (-> circumvent the issue that it doesn't always go back to 12)
  • we'll need to put a sane timeout on each new rumble effect, in case the game doesn't clean it up by itself

Additional rumble

Events that this byte does not cover, but would be great to have force feedback for:

  • Game starts
  • When you get wasted
  • Always rumble when you hold down the attack button, got enough ammo and fire the machine gun (rumble byte only rumbles at the start)
  • When you run opponents over