Jump to content

JBI Hacks


Recommended Posts

I love hacks that improve gameplay without adding complexity for the human player (to keep the simplistic Tecmo feel, vs. Madden), like:

 

Defensive pursuit angles based on Quickness---will be much harder to juke defenders with high quickness ratings (though I would prefer pursuit angles be tied to HP instead of Quickness)

 

Dive animation timing based on Quickness---defenders with a high quickness rating will dive faster (again, I would prefer HP instead of Quickness there)

 

Single Defender JJ Ints based on Quickness and Coverage (INT is now labeled COV)---If defender is not quick enough, he will whiff more often. If defender is quickness enough, his coverage rating gets checked. If his coverage is not high enough, he will deflect the pass, otherwise he will intercept the pass.

 

Defensive Jump/Dive for passes based on coverage rating---determines if defender is able to do either on a given play

 

Offensive Jump/Dive for passes based on receptions rating---determines if skill player is able to do either on a given play

 

COM dive tackling like SNES TSB I---COM will not make as many silly dive attempts while chasing in open field

 

AKB is now Kicking Power---controls distance of punts and FGs (AKB is hardcoded to 50 rating)

 

KA is now Kick Accuracy---controls accuracy of FGs (does nothing for punts)

 

xplozv, can your hacks fit into the 32-team rom?

Link to comment
Share on other sites

Yes they can. It depends on which hacks you have in the 32 team rom already. Some of jumps and branches would have to be changed. Which hacks would everyone most likely have in their 32 team rom? If we could poll everyone I could work around those and post all the necessary code. I am working on some other big hacks that definitely won't fit though unless their isn't any other hacks in place.

Edited by xplozv
Link to comment
Share on other sites

Awesome!  Here are the substantial hacks w/locations in my rom, and I used this site's "base 32-team rom" to as my base (I'm excluding hacks that didn't use blank space . . . for instance, hacks where just a couple bytes were changed, formation XY location changes, etc.):


 


x29e54 (3 bytes), x2a007 (5 bytes) = PA affects completion/int probability


x29d8f (4 bytes), x29da2 (4 bytes), x29db7 (4 bytes), x2bfca (16 bytes), x2bfda (16 bytes), x2bfea (19 bytes), x2bffd (19 bytes) = Quickness is now Coverage


x08100 (9 bytes) = kick returners use their actual speed


xaadd (8 bytes) = punt returners use their actual speed


x28360  (37 bytes) = bruddog's dynamic COM vs. COM grappling


x2851b (3 bytes), x2bfa5 (35 bytes) = jstout's MAN ballcarrier vs. MAN tackler popcorning allowed


xFC90-xFE65, x21414-x21418, x21D79-x21DA9, x255FF-x25615, and x25671-x25687 = jstout's Ultra Logic


x1DA20-x1DAF9 and the code to jump to it is x288BE-x288D6 = jstout's COM find open receiver


I also added bruddog's "moving grapples" hack, but I can't find the locations or sizes for that in my notes.


 


I also used up some blank space when I created my zone read plays, but I seriously doubt those would interfere with any of your hacks above since I think the relevant changes would be in completely different sections.


 


So, what do you think xplozv, any conflicts with your hacks I listed above?


 


Thanks for your help.


 


Tecmonster

Link to comment
Share on other sites

I also added bruddog's "moving grapples" hack, but I can't find the locations or sizes for that in my notes.

I have those locations already so if these are all of them, then your rom has the necessary room. I'll post all the code this evening when I get off work.

Link to comment
Share on other sites

Here you go. Just paste all the code below into your rom.

 

 

Defensive Pursuit Based on Quickness

x28ddd=20 30 E3 EA EA
x28de5=20 64 E3 EA EA
x28ea3=20 30 E3 EA EA
x28eab=20 64 E3 EA EA

x3e340=A0 08 B1 AE AA 8A 45 70 30 08 A9 1E 18 69 20 CB DA 60 8A 20 8D DD A0 87 20 AA DD B9 54 E3 18 69 20 CB DA 60 24 22 20 1E 1C 19 16 13 10 0D 0A 07 05 03 02 01

x3e374=A0 08 B1 AE AA 8A 45 70 30 08 A9 05 18 69 20 CB DA 60 8A 20 8D DD A0 87 20 AA DD B9 88 E3 18 69 20 CB DA 60 08 08 07 07 06 06 05 05 04 04 03 03 02 02 01 01

Dive Animation Timing Based on Quickness

x2aaa8=20 50 E4
x3e460=A0 08 B1 AE AA 8A 45 70 30 06 A9 07 18 69 20 CB DA 60 8A 20 8D DD A0 87 20 AA DD B9 74 E4 18 69 20 CB DA 60 0B 0B 0A 0A 08 08 07 07 05 05 04 04 02 02 01 01

COM Dive Tackling like SNES TSB I

x28dd7=30
x28e9d=30

Single Defender JJ Ints based on Quickness and Int

x29c99=4C 90 E4 EA 4C C0 E4 EA

x3e4a0=A0 08 B1 AE 20 8D DD A0 87 20 AA DD A8 D9 A8 E4 B0 03 4C 8D 9C 4C 9D 9C 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17

x3e4d0=A0 08 B1 AE 20 8D DD A0 86 20 AA DD A8 D9 D8 E4 B0 03 4C 8D 9C 4C 9D 9C 01 01 01 02 02 02 03 03 04 06 08 0A 0C 0E 10 11

Defensive Jump/Dive for passes based on INT rating

x29be5=4C 70 E5
x29bf6=4C A0 E5 EA

x3e580=A0 08 B1 AE 20 8D DD A0 86 20 AA DD A8 A5 3D D9 8A E5 90 03 4C F9 9B 4C 43 9C 0F 21 31 40 4F 61 71 80 8F A1 B1 C0 CF E1 F1 FF

x3e5b0=A0 08 B1 AE 20 8D DD A0 86 20 AA DD A8 A5 3D D9 BE E5 90 03 4C F9 9B A5 AE 85 3E 4C EA 9B 0F 21 31 40 4F 61 71 80 8F A1 B1 C0 CF E1 F1 FF

Offensive Jump/Dive for passes based on REC rating

x299d7=4C D0 E5
x299f2=4C D0 E6 EA

x3e5e0=A0 08 B1 AE 20 8D DD A0 87 20 AA DD A8 A5 3D D9 EA E5 90 03 4C F8 99 4C FC 9A 0F 21 31 40 4F 61 71 80 8F A1 B1 C0 CF E1 F1 FF

x3e6e0=A0 08 B1 AE 20 8D DD A0 87 20 AA DD A8 A5 3D D9 EE E6 90 03 4C F8 99 A5 AE 85 3E 4C E6 99 0F 21 31 40 4F 61 71 80 8F A1 B1 C0 CF E1 F1 FF

AKB is now Kicking Power & KA is now Kick Accuracy (AKB Hardcoded to 50 Rating)

x1eea5=20 B1 20 8B 02 4B 49 43 4B 20 41 43 43 55 52 41 43 59 20 8B 42 4B 49 43 4B 49 4E 47 20 50 4F 57 45 52

x294a3=62
x29351=87

x2948a=A5 3D C9 26 EA

Edited by xplozv
Link to comment
Share on other sites

Many thanks, xplozv.  I know that takes a long time to post.  Would it be relatively easy to change the "diving pursuit" and "dive animation timing" attribute tie-in from Quickness to Hit Power (maybe just switching out two or three bytes)?  Also, how did you calibrate that?  For instance, my rom's dive timing for all defensive players is 05 (from the default of 07).  Does yours give ratings of 81-88 an 04, then 69-75 an 05, then 56-63 an 06, and so on?


 


Also, for the Kicking Power hack: I experimented with a 75 kick power guy and a 31 KP guy and found that both of them have the same max range (62 yards), so something obviously seems wrong there.


Link to comment
Share on other sites

Many thanks, xplozv. I know that takes a long time to post. Would it be relatively easy to change the "diving pursuit" and "dive animation timing" attribute tie-in from Quickness to Hit Power (maybe just switching out two or three bytes)? Also, how did you calibrate that? For instance, my rom's dive timing for all defensive players is 05 (from the default of 07). Does yours give ratings of 81-88 an 04, then 69-75 an 05, then 56-63 an 06, and so on?

Also, for the Kicking Power hack: I experimented with a 75 kick power guy and a 31 KP guy and found that both of them have the same max range (62 yards), so something obviously seems wrong there.

Defensive Pursuit Based on Quickness

24 22 20 1E 1C 19 16 13 10 0D 0A 07 05 03 02 01

08 08 07 07 06 06 05 05 04 04 03 03 02 02 01 01

Dive Animation Timing Based on Quickness

0B 0B 0A 0A 08 08 07 07 05 05 04 04 02 02 01 01

The values for each go 6, 13, 19, 25, 31, .etc. A poorly rated defender can be worse than the original values. However, if I would've started the values at their original ones, it would make nearly all defenders too good without a noticeable difference. Now you could rate great defenders as great as they really are while still having the team defense suck. I will try to use HP and see if I can fit it in the same space for you.

As far the kicking hack, I will check it out cuz that shouldn't be happening. Thanks for catching that.

Edited by xplozv
Link to comment
Share on other sites

Yeah, I totally agree with your methodology on that dive timing, effectively assigning the OG's default value of 07 to player's that have the league average rating of 50.  It makes complete sense that players rated better will dive faster than the OG, and players rated worse will dive slower.


 


For the kick power, you noted that the AKB was hardcoded to be 50, but maybe the "switch" was never made for that attribute and KP has been hardcoded to 50?  The only other possible problem I can think of is that I do have a kickoff hack installed that makes the max kickoff sail about only 3 yards deep in the endzone. That hack is at x29281 (byte changed to 07), x29284 (changed to 25), x2928e (changed to 4c 9d a4), and x2a538 (changed to b8).  It doesn't seem to me that kickoff code would affect FG code, but you would know for sure.


Link to comment
Share on other sites

  • 2 weeks later...
  • 8 months later...
On 4/8/2015 at 11:24 PM, xplozv said:

AKB is now Kicking Power & KA is now Kick Accuracy (AKB Hardcoded to 50 Rating)

x1eea5=20 B1 20 8B 02 4B 49 43 4B 20 41 43 43 55 52 41 43 59 20 8B 42 4B 49 43 4B 49 4E 47 20 50 4F 57 45 52

x294a3=62
x29351=87

x2948a=A5 3D C9 26 EA

 

This may be a dumb question,  but what do you mean by akb being hard coded at 50?

 

Is this related to the bug where akb was actually 6 for everyone?  (So now it's 50?)

 

If so, would bruddog's fix then override that? 

 

Also, using quickness for pursuit is way better than using it for coverage.   I also like it better than the better com tackling w/o diving hack.  However, messing with the 16 bytes that seem correlate to the attribute level doesn't seem to do anything.  I even set them all to ff and com still has crazy good reactions.  I used to tone that down a bit with the other hack because com yards/carry were absolute crap.

 

I want to set my scale so that the default values (1e and 05? i forget) equate to a value of 44 or 50 and work from there.  Is there something else to change with that then?  Or do those last 16 bytes have nothing to do with the player attributes? 

Edited by adscl84
Link to comment
Share on other sites

  • 5 months later...
Quote

Single Defender JJ Ints based on Quickness and Int

x29c99=4C 90 E4 EA 4C C0 E4 EA

x3e4a0=A0 08 B1 AE 20 8D DD A0 87 20 AA DD A8 D9 A8 E4 B0 03 4C 8D 9C 4C 9D 9C 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17

x3e4d0=A0 08 B1 AE 20 8D DD A0 86 20 AA DD A8 D9 D8 E4 B0 03 4C 8D 9C 4C 9D 9C 01 01 01 02 02 02 03 03 04 06 08 0A 0C 0E 10 11

 

 

I like the idea of this hack...

 

but, what are the thresholds here?  I mean, what combination of Quickness and Interception is needed, for a Jump INT?  Or does anybody have an idea of what bytes to tweak to adjust the thresholds?  I

Link to comment
Share on other sites

I actually rewrote the hack I posted here because it didn't affect the JJ Ints/deflections with a cutscene. I will post the updated code as soon as I get a chance to and explain the thresholds. After testing you'll be able to fine tune them to your liking.

Edited by xplozv
Link to comment
Share on other sites

12 hours ago, xplozv said:

I actually rewrote the hack I posted here because it didn't affect the JJ Ints/deflections with a cutscene. I will post the updated code as soon as I get a chance to and explain the thresholds. After testing you'll be able to fine tune them to your liking.

 

cool, looking forward to it.  good to hear from you.

Link to comment
Share on other sites

This looks broken to me....

 

 

0x29c99
JUMP WHIFF_CHECK
NOP

0x29C9D
JUMP INT_CHECK

 

0x3E4A0

LDY #$08      ;  get player roster ID
LDA ($AE),Y    ;
JSR $DD8D    ;
LDY #$87       ; get defender quickness skill index
JSR $DDAA    ;
TAY                  ;  put skill index in y register
CMP WHIFF TABLE,Y   ; comprae skill index vs table value
BCS WHIFF      ; skill index > table value?  YES-> branch to WHIFF 
JMP $9C8D      ; do TIP CHECK  

 

WHIFF:

JMP $9C9D

 


0x3E4D0
INT_CHECK
LDY #$08        ; get actual player roster ID
LDA ($AE),Y    ;
JSR $DD8D    ;
LDY #$86       ; get player interception skill index
JSR $DDAA     ;
TAY                   ;
CMP INT_TABLE,Y    ; IS skill index > whiff table value
BCS WHIFF    ;
JMP $9C8D    ;JUMP INT CHECK

 

WHIFF:

JMP $9C9D    ;

 


Here are the ISSUES unless there is another hack that goes with this. The whiff check  will always PASS  the way its coded. A player with 06 int = skill index 0. So 0 will be in the accumulator. Then it will load 08 from the table. 0 will always be < 8. So it will never whiff.  A player with 50 int = skill index 7.  7 will ALWAYS be < 0F . This is true for all defender skill indexes so the player will never whiff. 

 

The int check has the possibility of looping endlessly. A 06 int player has a skill index = 0. 0 <1 = player whiffs.    A 13 int player has a skill index = 1. 01>=1  player should int but it jumps to 9C8D which is  0x29C9D and thus we are back at square on and this will loop endlessly.

 

 

 

WHIFF TABLE: 

08 = skill index 0 

09 = skill index 1

0A = skill index 2

0B = skill index 3

0C = skill index 4

0D = skill index 5

0E = skill index 6

0F = skill index 7

10 = skill index 8

11 = skill index 9

12 = skill index 10

13 = skill index 11

14 = skill index 12

15 = skill index 13

16 = skill index 14

17= skill index 15

 

INT_TABLE: 

01 = skill index 0 

01 = skill index 1

01 = skill index 2

02 = skill index 3

02 = skill index 4

02 = skill index 5

03 = skill index 6

03 = skill index 7

04 = skill index 8

06 = skill index 9

08 = skill index 10

0A = skill index 11

0C = skill index 12

0E = skill index 13

10 = skill index 14

11= skill index 15

 

 

 

 

Link to comment
Share on other sites

  • 2 weeks later...
  • 8 months later...
On 4/7/2015 at 9:24 PM, xplozv said:

Here you go. Just paste all the code below into your rom.

 

 

Defensive Pursuit Based on Quickness

x28ddd=20 30 E3 EA EA
x28de5=20 64 E3 EA EA
x28ea3=20 30 E3 EA EA
x28eab=20 64 E3 EA EA

x3e340=A0 08 B1 AE AA 8A 45 70 30 08 A9 1E 18 69 20 CB DA 60 8A 20 8D DD A0 87 20 AA DD B9 54 E3 18 69 20 CB DA 60 24 22 20 1E 1C 19 16 13 10 0D 0A 07 05 03 02 01

x3e374=A0 08 B1 AE AA 8A 45 70 30 08 A9 05 18 69 20 CB DA 60 8A 20 8D DD A0 87 20 AA DD B9 88 E3 18 69 20 CB DA 60 08 08 07 07 06 06 05 05 04 04 03 03 02 02 01 01

Dive Animation Timing Based on Quickness

x2aaa8=20 50 E4
x3e460=A0 08 B1 AE AA 8A 45 70 30 06 A9 07 18 69 20 CB DA 60 8A 20 8D DD A0 87 20 AA DD B9 74 E4 18 69 20 CB DA 60 0B 0B 0A 0A 08 08 07 07 05 05 04 04 02 02 01 01

COM Dive Tackling like SNES TSB I

x28dd7=30
x28e9d=30

Single Defender JJ Ints based on Quickness and Int

x29c99=4C 90 E4 EA 4C C0 E4 EA

x3e4a0=A0 08 B1 AE 20 8D DD A0 87 20 AA DD A8 D9 A8 E4 B0 03 4C 8D 9C 4C 9D 9C 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17

x3e4d0=A0 08 B1 AE 20 8D DD A0 86 20 AA DD A8 D9 D8 E4 B0 03 4C 8D 9C 4C 9D 9C 01 01 01 02 02 02 03 03 04 06 08 0A 0C 0E 10 11

Defensive Jump/Dive for passes based on INT rating

x29be5=4C 70 E5
x29bf6=4C A0 E5 EA

x3e580=A0 08 B1 AE 20 8D DD A0 86 20 AA DD A8 A5 3D D9 8A E5 90 03 4C F9 9B 4C 43 9C 0F 21 31 40 4F 61 71 80 8F A1 B1 C0 CF E1 F1 FF

x3e5b0=A0 08 B1 AE 20 8D DD A0 86 20 AA DD A8 A5 3D D9 BE E5 90 03 4C F9 9B A5 AE 85 3E 4C EA 9B 0F 21 31 40 4F 61 71 80 8F A1 B1 C0 CF E1 F1 FF

Offensive Jump/Dive for passes based on REC rating

x299d7=4C D0 E5
x299f2=4C D0 E6 EA

x3e5e0=A0 08 B1 AE 20 8D DD A0 87 20 AA DD A8 A5 3D D9 EA E5 90 03 4C F8 99 4C FC 9A 0F 21 31 40 4F 61 71 80 8F A1 B1 C0 CF E1 F1 FF

x3e6e0=A0 08 B1 AE 20 8D DD A0 87 20 AA DD A8 A5 3D D9 EE E6 90 03 4C F8 99 A5 AE 85 3E 4C E6 99 0F 21 31 40 4F 61 71 80 8F A1 B1 C0 CF E1 F1 FF

AKB is now Kicking Power & KA is now Kick Accuracy (AKB Hardcoded to 50 Rating)

x1eea5=20 B1 20 8B 02 4B 49 43 4B 20 41 43 43 55 52 41 43 59 20 8B 42 4B 49 43 4B 49 4E 47 20 50 4F 57 45 52

x294a3=62
x29351=87

x2948a=A5 3D C9 26 EA

@xplozv, will these codes only work with @Tecmonster's game? If not, will these codes work with 28 and 32 team games?

Link to comment
Share on other sites

  • 5 months later...
  • 1 year later...
20 hours ago, SBlueman said:

Anyone have any ideas on how to fix this code?

 

I would like to know as well.  I knew there was a reason I had note for myself to not use this hack, but I couldn't remember why.  @bruddog must know since he recognized there was bad code.  Is this hack even viable?  I remember seeing one that causes any up/down movement to reset running speed, and I know there's one that gives the defense better pursuit regardless of any attribute, so I assume it is.

 

I don't know much, but I'll see if I can make heads or tails of any of it because there isn't a ton of code to look at.

Edited by adscl84
Link to comment
Share on other sites

Right off the bat, I'm pretty sure the error has to be in the bold portion because the other four addresses just tell the rom to go these addresses (or do they?), and the unbolded parts are meant to correlate to the attribute value for the defender.  I don't remember much of the 6502 stuff I read about, but I see some x20 and x60, which I think is taking us to another place and coming back ( i put these in red), but then I see some x20 without an x60 so I'm not totally sure.

 

One question I have is that the initial commands are at x28ddd, but then the other code is in the x30000's.  I thought you had to stay within the same area as the first number, so now I'm wondering if those parts should start at x38ddd or if we're telling the hack to jump to x2e340 and x2e374.

 

x3e340=A0 08 B1 AE AA 8A 45 70 30 08 A9 1E 18 69 20 CB DA 60 8A 20 8D DD A0 87 20 AA DD B9 54 E3 18 69 20 CB DA 60 24 22 20 1E 1C 19 16 13 10 0D 0A 07 05 03 02 01

x3e374=A0 08 B1 AE AA 8A 45 70 30 08 A9 05 18 69 20 CB DA 60 8A 20 8D DD A0 87 20 AA DD B9 88 E3 18 69 20 CB DA 60 08 08 07 07 06 06 05 05 04 04 03 03 02 02 01 01

Edited by adscl84
Link to comment
Share on other sites

  • 2 weeks later...

I ran the code logger in fceux while running a few plays to see which code is/isn't being used:

 

image.thumb.png.ff1125e8984fa4cf33f54f254be67203.png

 

So it seems that the hack may be jumping to the right area, but not all of the code there is being used for some reason.  I don't know how to find this using the debugger, so I can't confirm, but I think the first piece of hex in black "A9" is an LDA command...and for some reason this isn't happening.  Also, though the hack initially says to jump to x3e340 and x3e374, it is not jumping to x3e374 for some reason.  What I find most interesting is that the code that I think is meant to set the reaction speed of the defenders (the stuff in blue) is being accessed, but the stuff meant to change the dive animation time (the descending numbers starting with 080807...) is not.  So maybe the hack at least does something, even if it doesn't do everything it set out to do.  I also noticed that if you apply the standalone defense dive animation based on quickness hack...


Dive Animation Timing Based on Quickness

x2aaa8=20 50 E4
x3e460=A0 08 B1 AE AA 8A 45 70 30 06 A9 07 18 69 20 CB DA 60 8A 20 8D DD A0 87 20 AA DD B9 74 E4 18 69 20 CB DA 60 0B 0B 0A 0A 08 08 07 07 05 05 04 04 02 02 01 01

 

...it will at least begin to access some of the code at x3e460, but not all of it; and, it doesn't seem to utilize the code meant to correlate to the quickness attributes.  I tried putting the code from this hack in place of the stuff that goes at x3e374 to no effect.

 

  @bruddog: am I looking at the right stuff here?  I really want this hack to work as intended.

Edited by adscl84
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...