Jump to content

COM defensive coverage late in season


buck

Recommended Posts

Is there code in TSB (besides "JUICE") that makes COM defense cover more WRs as the season progresses/MAN gets more wins?

It seems to me that either:

1. there is some "extra code" that makes COM cover more WR as season goes on,

2. or COM is picking the best possible pass play to get max coverage as the season progresses

I've tried setting a high "INT Juice" for every week and that doesn't do it. Even with all the same "INT Juice" the coverage still increases as I get more wins...[And I don't want to hack the defensive play bytes because I don't want to interfere with MAN side of the ball.]

I want to make only COM cover more WRs all the time and it seems to me that there is something happening to make them cover more later in a season. But I don't understand how it works.

Link to comment
Share on other sites

I did a little searching last night but couldn't find it. I was looking for code that loaded up at the start of the game - similar to "juice" code - it's loaded at the beginning of the game. I wasn't able to find any values that loaded in a similar pattern, except stuff around xE07C.

Does anybody know what is going on around xE07C to xE0AB?

I'm going to look for code that's loaded when COM defense gets on the field, hopefully I can find a pattern...we've got to find this COM "mojo"!

Link to comment
Share on other sites

Does anybody know what is going on around xE07C to xE0AB?

that has something to do with the "week 1-17" text that displays at the intro to a season game.

Link to comment
Share on other sites

  • 2 months later...

just a bump here, but I'm still pretty darn sure that there is some other kind of cpu mojo goin' on as the season progresses...I'm not sure how to find it, though.

any ideas on how to use fceuxdsp or something?

Link to comment
Share on other sites

I think I may have found it:

This code is ran at the start of the game...I think it also sets the juice.


; 0x034106
$80F6:A0 B2 LDY #$B2 ;
$80F8:B1 3E LDA ($3E), Y ; wins
$80FA:A0 B3 LDY #$B3 ;
$80FC:38 SEC ;
$80FD:F1 3E SBC ($3E), Y ; losses
$80FF:B0 10 BCS $8111 ; if (wins - losses >= 0) goto $8111
$8101:4C 0F 81 JMP $810F
$8104:20 58 81 JSR $8158
$8107:C9 30 CMP #$30
$8109:F0 04 BEQ $810F
$810B:C9 03 CMP #$03
$810D:D0 2D BNE $813C
$810F:A9 00 LDA #$00 ; else, set difference to zero
$8111:8D 7D 66 STA $667D ; save difference

When the ball is snapped this code is ran:


; 0x028B3F
$8B2F:AD 7D 66 LDA $667D ;
$8B32:C5 DE CMP $DE
$8B34:90 03 BCC $8B39
$8B36:4C C5 97 JMP $97C5 ; <---harder ai
$8B39:4C 1B 80 JMP $801B ; <---softer ai

By NOP'ing the BCC $8B39 out, the CBs almost always covered the receivers, the ILBs either double covered/ran back and forth between 2 receivers/rushed the qb. When I NOP'ed the JMP $97C5 too, the defense usually just stood there.

I need to test it out a bit more (I only tried season, MAN vs COM, MIN vs DET).

Link to comment
Share on other sites

any chance you could find the SNES location, cx? I looked for a similar string and couldn't find one...

I wonder how this works...does it use the value that's there until your record gets to a certain point, and then it flips this flag to no operation? Basically...if the game detects nop in this location, it's good coverage, otherwise it's preseason style coverage?

Now that I started teaching myself 6502, I understand a bit more what's going on...so the reason I couldn't find the string is because the CMP and the JMPs are pointing to memory locations, and those are likely different in the SNES. I was able to find 90 03 4C in about a million spots, now I just need to find one near a C5

Link to comment
Share on other sites

any chance you could find the SNES location, cx? I looked for a similar string and couldn't find one...

Now that I started teaching myself 6502, I understand a bit more what's going on...so the reason I couldn't find the string is because the CMP and the JMPs are pointing to memory locations, and those are likely different in the SNES. I was able to find 90 03 4C in about a million spots, now I just need to find one near a C5

why don't you search for "C5 DE 90 03 4C"

I searched for it and can't find it

Link to comment
Share on other sites

If this does work, I think the juice code for interceptions should be altered, as it might be near impossible to pass.

Yeah, I'm playing thru a season right now with this MOJO hack...get your JJs and timed-Dive catches in order!

I'm gonna look into a random branch...so at least there's a chance that you can get somebody besides a HB or TE open.

Link to comment
Share on other sites

I think the DE is is not in the snes. I think I found it as I said in the last post, XVI32 has a wildcard character search. I will test tonight.

The $DE is a ram address, so it probably won't be the same on the snes. If it doesn't turn up, I can take a look tonight when I get home.

Link to comment
Share on other sites

What I usually do is set a breakpoint in the debugger on the address I'm trying to find. When it snaps, right click on the left side of the debugger window and some text should pop up that says "go here in rom" or something like that.

Link to comment
Share on other sites

Unless my eyes deceive me, that is definitely it for SNES. Everyone was covered a helluva lot more often and I had to get lucky enough to have a guy wide open or hope for a diving CC...very cool.

Now if we could come up with some way to make it a little more randomized so it wasn't so derned difficult...running was effin' impossible with this turned on...

Link to comment
Share on other sites

Well... You could have juice turned off and just have the normal players but with the improved AI which would make the attributes actually matter instead of playing against a team of madmen.

But anyways... great find!! I've always wondered where that boost came from I'm glad it's finally been found.

Now if only someone could figure out how to have the cpu randomly pick a player and then give the guy with the # over his head a boost I'd have my wishlist just about complete.

Link to comment
Share on other sites

When the ball is snapped this code is ran:


; 0x028B3F
$8B2F:AD 7D 66 LDA $667D ;
$8B32:C5 DE CMP $DE
$8B34:90 03 BCC $8B39
$8B36:4C C5 97 JMP $97C5 ; <---harder ai
$8B39:4C 1B 80 JMP $801B ; <---softer ai

Interesting, I never looked hard for this since I didn't think it existed. But I wanted to know what $DE was and I had a pretty good idea from doing the play coding.

From my play design post:

xC8 = COM Jump To (Pointer, Random). $DE = Random in the C8 command while $667D = Juice Level

This code isn't exactly doing harder AI and softer AI. It is deciding whether to jump to the Pointer ($97C5) or skip the Pointer ($801B). Just in the original game the C8 commands are better for obvious reasons now explained.

Link to comment
Share on other sites

Interesting, I never looked hard for this since I didn't think it existed. But I wanted to know what $DE was and I had a pretty good idea from doing the play coding.

From my play design post:

xC8 = COM Jump To (Pointer, Random). $DE = Random in the C8 command while $667D = Juice Level

This code isn't exactly doing harder AI and softer AI. It is deciding whether to jump to the Pointer ($97C5) or skip the Pointer ($801B). Just in the original game the C8 commands are better for obvious reasons now explained.

So is this just a binary situation, either C8 or no C8? Is there a way to "soften" this or make it randomly occur on a play-by-play basis?

...maybe jump to a created subroutine which basically flips a coin and either jumps to $97C5 or doesn't?

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...