buck Posted May 25, 2009 Share Posted May 25, 2009 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 progressesI'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. Quote Link to comment Share on other sites More sharing options...
TomTupa Posted May 25, 2009 Share Posted May 25, 2009 yeah the run and pass coverages increase just like the juice, but nobody has ever told why Quote Link to comment Share on other sites More sharing options...
buck Posted May 25, 2009 Author Share Posted May 25, 2009 It's like an overall COM "aggressiveness" factor. It would be nice to turn this up sooner in a season. Quote Link to comment Share on other sites More sharing options...
TecmoTurd Posted May 26, 2009 Share Posted May 26, 2009 Agreed...this would make things a lot better for single player play... Quote Link to comment Share on other sites More sharing options...
buck Posted May 27, 2009 Author Share Posted May 27, 2009 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"! Quote Link to comment Share on other sites More sharing options...
buck Posted May 27, 2009 Author Share Posted May 27, 2009 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. Quote Link to comment Share on other sites More sharing options...
buck Posted August 25, 2009 Author Share Posted August 25, 2009 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? Quote Link to comment Share on other sites More sharing options...
TecmoTurd Posted August 26, 2009 Share Posted August 26, 2009 If I knew the answer to this, I'd be super happy. I did some searching myself, but I couldn't find it either...Specifically, I'd like this for the SNES, although I assume once we find it in the NES, it'd be easy to port. Quote Link to comment Share on other sites More sharing options...
cxrom Posted August 26, 2009 Share Posted August 26, 2009 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 differenceWhen 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 aiBy 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). Quote Link to comment Share on other sites More sharing options...
buck Posted August 26, 2009 Author Share Posted August 26, 2009 I think I may have found it:kick......ass Quote Link to comment Share on other sites More sharing options...
buck Posted August 26, 2009 Author Share Posted August 26, 2009 yeah, in preseason mode -> setting 0x28b44 and 0x28b45 to EA seems to give the cpu late-season AI - even in RUN defense...hot damn. Quote Link to comment Share on other sites More sharing options...
TecmoTurd Posted August 26, 2009 Share Posted August 26, 2009 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 Quote Link to comment Share on other sites More sharing options...
buck Posted August 27, 2009 Author Share Posted August 27, 2009 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 C5why don't you search for "C5 DE 90 03 4C" I searched for it and can't find it Quote Link to comment Share on other sites More sharing options...
TecmoTurd Posted August 27, 2009 Share Posted August 27, 2009 I think I found it (SNES)...x19519 should be xEAEA...more testing needed... Quote Link to comment Share on other sites More sharing options...
TecmoTurd Posted August 27, 2009 Share Posted August 27, 2009 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.If this does work, I think the juice code for interceptions should be altered, as it might be near impossible to pass. Quote Link to comment Share on other sites More sharing options...
buck Posted August 27, 2009 Author Share Posted August 27, 2009 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. Quote Link to comment Share on other sites More sharing options...
cxrom Posted August 27, 2009 Share Posted August 27, 2009 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. Quote Link to comment Share on other sites More sharing options...
buck Posted August 27, 2009 Author Share Posted August 27, 2009 so that 4C C5 97 jump - how do I calculate where in the rom that is jumping to ($97C5)? Quote Link to comment Share on other sites More sharing options...
cxrom Posted August 27, 2009 Share Posted August 27, 2009 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. Quote Link to comment Share on other sites More sharing options...
TecmoTurd Posted August 27, 2009 Share Posted August 27, 2009 Buck, that random thing is intriguing. Let me k ow what you find. cxrom, thanks for the response. Once I looked at the code, I realized the DE was a me address. If my tests don't pan out, I might have to consult with you. Thanks much. Quote Link to comment Share on other sites More sharing options...
TecmoTurd Posted August 27, 2009 Share Posted August 27, 2009 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... Quote Link to comment Share on other sites More sharing options...
TomTupa Posted August 27, 2009 Share Posted August 27, 2009 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. Quote Link to comment Share on other sites More sharing options...
jstout Posted August 27, 2009 Share Posted August 27, 2009 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 aiInteresting, 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 LevelThis 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. Quote Link to comment Share on other sites More sharing options...
cxrom Posted August 27, 2009 Share Posted August 27, 2009 I thought there might be more to it since the code was called multiple times before the play, with different values each time. Quote Link to comment Share on other sites More sharing options...
buck Posted August 27, 2009 Author Share Posted August 27, 2009 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 LevelThis 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? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.