November 21, 2024, 09:53:28 AM

Author Topic: Tackle animation hack: Executing specific tackles on command  (Read 12242 times)

blitzmaster5000

  • Full Member
  • ***
  • Posts: 150
    • View Profile
Tackle animation hack: Executing specific tackles on command
« on: February 04, 2016, 05:53:17 PM »
I'm currently working on a hack to allow the player to do specific tackle animations. I will be posting here what I find as a log, or if anyone else is interested. The ideal end product would be similar to fighting games where short button combinations results in a specific tackle to be done on the opponent.

I also would like the game to display text when a certain tackle combo is done. It is possible to display text as seen in this video: https://www.youtube.com/watch?v=DnFxpRwT0Gc

blitzmaster5000

  • Full Member
  • ***
  • Posts: 150
    • View Profile
Re: Tackle animation hack: Executing specific tackles on command
« Reply #1 on: February 04, 2016, 06:51:05 PM »
I think I found the address setting the tackle animation. If I freeze it, it only does 1 tackle depending on the orientation that the opponent gets hit from: Hit from the front, tackle is the "slam down"; hit from the back, it's the "choke and slam down". Here's the info for it:

8005BAF0 written from 80026B30 SW V1, 0xBAF0 (AT)

If you freeze 8005BAF0 at value E1D6A050, it will only do this "slam" animation. granted I'm in a saved state with the timer frozen after TD was scored, so I'm not sure how universal locking the value is with other tacklers.

blitzmaster5000

  • Full Member
  • ***
  • Posts: 150
    • View Profile
Re: Tackle animation hack: Executing specific tackles on command
« Reply #2 on: February 06, 2016, 12:14:39 PM »
For tackling, I'm pretty sure the tackle animation will be set based on the direction the opponent is tackled. Tackling from the front yields different animations than the side or back, so there are 3 possible directions that each have different tackles. If I freeze 8005BAF0, it will only do 1 specific tackle per direction (although each direction are different).

I was also playing around with the function that writes to 8005BAF0 today and it had some pretty funny results. The following is the code writing to that address:

Code: [Select]
80026B18 LUI V1, $41C6
80026B1C ORI V1, V1, $4E6D
80026B20 MULT V0, V1
80026B24 MFLO V0
80026B28 NOP
80026B2C LUI AT 0x8006
80026B30 SW V1, 0xBAF0 (AT)

If I NOP out 80026B18 - 80026B20, it did indeed force only 1 type of tackle (per direction of hitting), but the strange part was it also affected other parts of the gameplay. Anytime I tackled the computer, they would fumble. I also fumbled much more, but only once the computer had fumbled it away and I recovered. The other thing it did was have the computer always do onside kicks.

So I went back and looked at some stuff Zoinkity had mentioned in the past... well go figure, this is the "dice-rolling" function he had mentioned, which explains why modifying this will change the rate of random fumbling and what not.

jaker3

  • Administrator
  • Sr. Member
  • *****
  • Posts: 334
    • View Profile
Re: Tackle animation hack: Executing specific tackles on command
« Reply #3 on: February 09, 2016, 11:57:40 AM »
I've heard its possible to add new functions into the game if there is space. I wonder if you'd be able to create a new one to handle tackles. Would also be nice to adjust fumbles, interceptions, ect... based on teams.

blitzmaster5000

  • Full Member
  • ***
  • Posts: 150
    • View Profile
Re: Tackle animation hack: Executing specific tackles on command
« Reply #4 on: February 09, 2016, 01:55:06 PM »
Yup, that is indeed true. I have seen people suggest looking at the end of the rom for empty space and adding new functions there, and then jumping to it when necessary. This is most likely what will need to be done for doing tackles on-command. I also wanted text to show up when a player gets "dump-trucked" as a proof-of-concept at adding text when a certain action is performed. There are examples of new text being added in SM64, so it should be possible.

And yea, if we could somehow have the stats for the teams actually make a difference that would be cool. Then we could have Ted Gin Jr. fumble/drop the ball after every other throw like in real life!