Jump to content

location of code for kickoffs


Recommended Posts

So I figured a possibly very easy way to hack kickoffs to make them longer, but I have no idea where the computer accesses the code for kickoffs.  My thought is that the computer must have a minimum time and maximum time allowed before it "hits the button" to kickoff, probably expressed in just a couple different bytes. 


 


I timed how long it takes the kick meter to move from completely empty to completely full -- 0.65 seconds, or something very close to that.  So, if we set the "minimum time" byte to something that equals about 0.40 seconds in hex, and the "maximum time" byte to 0.65 seconds, that should work, right?


 


Does anyone know where the computer accesses the code that directs its kickoffs?


Link to comment
Share on other sites

Here is something you can use...I 'm not sure if this  will break the computer ever attempting an onside but I'll let you test that. 


 


SET(0x029281,0x0718692620CBDAA5732904D0164C9DA4)


 


This will make the possible computer bar more humanish. The range will be from the back of the endzone to 2 yards in front. If you change the 07 to 0F and the 26 to 1E the range will be from the back of the endzone to the ~15


Link to comment
Share on other sites

Well, with my very limited skill with FCEUX, the computer's punt meter instructions SEEM to start at x3cb6b, where the next 16 bytes are 8a 18 69 05 aa e0 2a 90 f1 b0 e8 38 66 2a 86 00. 


 


IF I'm on the right track, can anyone help me figure out what I might need to do next?  My goal is edit the code so that the computer will only punt when the kick meter is at least 50% full.


Link to comment
Share on other sites

Well, with my very limited skill with FCEUX, the computer's punt meter instructions SEEM to start at x3cb6b, where the next 16 bytes are 8a 18 69 05 aa e0 2a 90 f1 b0 e8 38 66 2a 86 00. 

 

IF I'm on the right track, can anyone help me figure out what I might need to do next?  My goal is edit the code so that the computer will only punt when the kick meter is at least 50% full.

 

I thought about doing this, but after running 2 season of a COM vs COM league I found that the CPU logic knows more then just how much power it needs to kick at. I've seen some low power punts, but they would fall 5-10 yards from the endzone wich is a really good punt in Tecmo. And since Punt Returns are risky because of fumble it work out quite well.

 

My bigger problem with punts is that they are very hard to return, esp when watching a COM game. So what I've done for the 2015 TFO Season (as per http://tecmobowl.org/topic/4162-shorter-punts-rom-hack/) was change the boost the kicking team receives to their speed. I halved the speed boost instead of fully removing it and find it makes punts a little more interesting:

 

0x8164: Change E2 06 E3 04 to E2 03 E3 02 (This boosts the punter himself)

0x8170: Change E2 06 E3 04 to E2 03 E3 02 (This boosts the rest of the punt defense team, aside from the punter)

 

Note that the code shown above is slightly different then the code given in the Shorter Punts link I provided and that is because I didnt want to fully remove the speed boost of the kicking team. If you want to fully remove it (or change the speed higher or lower) you would change the 2 fields that I modified (0x8165 and 0x8167; 0x8171 and 0x8173).

 

So you might want to try this and see if you like it or not. Just a suggestion as I  too was looking to improve punts and found this to be an interesting alternative.

 

TFO COMMISH

THERAJ

http://tfofootball.weebly.com

Link to comment
Share on other sites

Just donated a little cash through your paypal button.  Can you point me to the code that controls computer punts?

 

You were not in the right spot....

 

L_21_9313= 0x29323

 

L_21_9313: ; start of COM punt timing logic

JSR L_D8F7 ; make random # more random number save into A register

AND #$1F ; make random 0 to 1F

CLC

ADC #$0A ; make random 0x0A to 0x29

JSR L_21_9387 ; ?

LDA $3B      ; load random number

CMP #$BF ;

BCS L_21_9336 ; random > 0xBF jump to other random loop

L_21_9324:

LDA $3C             ; load random number

AND #$0F ; make random 0x00 to 0x0F

JSR L_21_9387 ; ?

LDY #$1D

LDA ($AE),Y ; load something from player ram

CMP #$30

BCC L_21_9324 ; < less 30 loop back to 9324

JMP L_21_933D ; jump to punt sequence

L_21_9336:

LDA $3C             ; load random number

AND #$1F ; make random 0 to 0x1F

JSR L_21_9387 ; ?

L_21_933D: ; start of punt

JSR L_21_B11A ; change player to COM control and defense

Don't have time to go through how to change it at the moment so either wait until I do or see if you can figure it out until then. 

Link to comment
Share on other sites

OK, so I experimented quite a bit with a few different bytes, sometimes with combinations, and I think I finally stumbled upon a good setup (dumb luck).  Simply by changing the byte at x2932a to 28, only about 5% of the punts will be kicked at less than 50% power.  I punted roughly 60 times using a save state file in coach mode, and only four of those punts were kicked below the 50% level.  The rest ranged from 50-100%.


 


Thanks for the help bruddog.


 


I have no idea why that edit works the way it does, but I love the result.


Link to comment
Share on other sites

By the way, very heavily based on bruddog's code above, here are the command lines so that the computer's kickoff ranges from the 8 yard line to 3 yards deep in the endzone.


 


SET(0x02a538,0xB8)


SET(0x029281,0x0718692520CBDAA5732904D0164C9DA4)


 


Accordingly, the deepest a human will be able to kick the ball is 3 yards deep in the endzone.


Link to comment
Share on other sites

  • 6 years later...
On 6/21/2014 at 11:07 AM, Tecmonster said:

By the way, very heavily based on bruddog's code above, here are the command lines so that the computer's kickoff ranges from the 8 yard line to 3 yards deep in the endzone.

 

 

 

 

SET(0x02a538,0xB8)

 

 

SET(0x029281,0x0718692520CBDAA5732904D0164C9DA4)

 

 

 

 

 

Accordingly, the deepest a human will be able to kick the ball is 3 yards deep in the endzone.

 

This code is perfect, I just replaced the code I had for this one on the update I am cleaning up. I'll be posting it up later. Thanks @Tecmonster!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...