Jump to content
Maynard_G_Krebs

Jstout 'Logic' Modifier

Recommended Posts

...In "NORMAL" mode, the computer checks whether it called a run or pass where 50% of the time will keep the play call and 50% of the time will change the call to the run/pass play the offense has called most during the game.

I'm sure something like that could be tweaked even without the blitzes to give the different computer teams some more skill.

Would this be similarly effective in a CPU-based ROM, Jstout? You dropped this post the other day in the Defense creation thread and it sort of rocked my socks. Are the changes you made effective for customizing individual ROMs? Would it have to be implemented by you? I couldn't be any more pumped and or fascinated right now. Is it code copy text you could put in here?

Share this post


Link to post
Share on other sites
Would this be similarly effective in a CPU-based ROM, Jstout? You dropped this post the other day in the Defense creation thread and it sort of rocked my socks. Are the changes you made effective for customizing individual ROMs? Would it have to be implemented by you? I couldn't be any more pumped and or fascinated right now. Is it code copy text you could put in here?

I believe it can be effective in a CPU-based ROM. In fact, during testing I set "JAILBREAK" numbers for each team and could see a difference in even CPU vs CPU games on your rom.

I attached a zip with an IPS patch (patch a copy of the rom to be safe) for the 32-team ROM (was near impossible to find some usable SRAM but I think I found the only safe area left). If for any reason I need to move the added code I can do that with little problems. Changes are at xFC90-xFE65, x21414-x21418, x21D79-x21DA9, x255FF-x25615, and x25671-x25687.

The "JAILBREAK" mode I mentioned is all set to 0 (xFF is best and x00 is worst) in the patch. Those numbers are located at xFCC0-xFD25 where the first 34 bytes are Overall, next 34 is Run, and last 34 is Pass defense with the normal team order of AFC East to West, NFC East to South, Pro Bowl teams, NFC West.

There is quite a bit of code but I can paste it all if anybody really wants to view it in text.

TSB32_Ultra_Logic.zip

Share this post


Link to post
Share on other sites
Could you explain this in a little more detail?

BTW - I used the patch and it didn't seem to mess anything up besides the year on the menu.

From the other post:

The defensive logic is similar to TSBUltra. Roughly, each team has a rating of how good their overall, run, and pass defense is. The Computer checks a random number and if their overall is better is goes to "JAILBREAK" mode else "NORMAL" mode. "JAILBREAK" mode, the computer checks its Run/Pass defense value (run vs run or pass vs pass) vs a random and if better is given the offensive play call. If not, then heads back to a "NORMAL" mode. In "NORMAL" mode, the computer checks whether it called a run or pass where 50% of the time will keep the play call and 50% of the time will change the call to the run/pass play the offense has called most during the game (run changes to most called run and pass changes to most called pass).

I'll check to make sure my rom copy doesn't have the year messed up but I'd assume there was some code in one of the affected areas changing your year. I can always take a look if you send a copy of the original rom.

Share this post


Link to post
Share on other sites
Roughly, each team has a rating of how good their overall, run, and pass defense is. The Computer checks a random number and if their overall is better is goes to "JAILBREAK" mode else "NORMAL" mode. "JAILBREAK" mode, the computer checks its Run/Pass defense value (run vs run or pass vs pass) vs a random and if better is given the offensive play call.

I believe I have a level grasp on NORMAL mode, but can you elaborate on JAILBREAK? So, each team is assigned a value for PASS and RUN Defense. The CPU checks a random number, and if the overall sum of the PASS and RUN Defense value individually for a single team is LOWER than the random number checked by the CPU, "JAILBREAK" mode is then enacted? Is that correct so far?

..."JAILBREAK" mode, the computer checks its Run/Pass defense value (run vs run or pass vs pass) vs a random and if better is given the offensive play call.

It's here where I fall off the wagon. Let me back-track a second and review. So, this Logic Modifier you made is a new way the CPU can enact its overall play-calling logic. If JAILBREAK and NORMAL mode are both active, then there are two kind of patterns the CPU play-calling logic can follow. Currently, you've set the JAILBREAK mode to '0' in that .IPS, so anyone looking to utilize that functionality would have to enable it, as well as input the individual team ratings for PASS and RUN at the aforementioned HEX locations? However, if I choose not to, than NORMAL mode is already set as the lone standard for CPU play-calling.

Now, does the CPU only walk itself through this logic modifying behavior before every play? Does the JAILBREAK mode check only happen once, and if not utilized, NORMAL mode is then used for the rest of the game--or simply that specific play, and then the process is run again at the start of the next play?

Thanks for your work, JStout, and thank you for your patience in schooling us (me).

Share this post


Link to post
Share on other sites

I have the same questions as MGK (above) - but a couple more.

1. so there is a range of 0-255 for each setting (x00-xFF)?

2. The only way that defense can pick your play is if JAILBREAK is on?...or is there still a chance defense can pick play in NORMAL mode?

3. Do you have any suggestions for settings?

4. is there a way (using this modifier) to "force" a defense to primarily pick run or pass, exclusively?

The way I understand it:

For each play:

If OVERALL beats a random number: goes to JAILBREAK mode, then depending on what offense picked (run or pass), it checks again and will call offense play if defense run or pass beats random number.

If OVERALL is less than random number: depending on defense RUN or PASS value, defense might pick a run or pass based on what play offense has called the most so far.

:wink:

Share this post


Link to post
Share on other sites

Ok. In this example at the play-call screen the offense chooses Pass Play #1 and the CPU Defense chooses Pass Play #3. Every time you select a play at the play-screen the following process will be done.

The Logic code now kicks in to be run and the CPU defense is checked for "JAILBREAK" mode. Each team has 3 numbers (Overall, Run, Pass). For example purposes lets make these x80 (50%), x40 (25%), xC0 (75%). The Overall defense is checked vs a random and if greater moves on else heads to "NORMAL" mode, in this case a 50% chance. If we moved on then the Pass defense is checked vs a random and if greater then the defense would changes its play call to Pass Play #1 else heads to "NORMAL" mode, so a 75% chance of changing to the offensive play call. Using the math odds, this teams chance of changing its play on a run would be .5*.25 = 12.5% and on a pass play .5*.75 = 37.5%. If we got exited back to "NORMAL" mode, the defensive then has a 50% chance of keeping Pass Play #3 and a 50% chance that it changes its play call to the most used Pass Play so far in the game. Now the plays for each team are set and the offensive play call is recorded and the game field is loaded.

Currently, you've set the JAILBREAK mode to '0' in that .IPS, so anyone looking to utilize that functionality would have to enable it, as well as input the individual team ratings for PASS and RUN at the aforementioned HEX locations? However, if I choose not to, than NORMAL mode is already set as the lone standard for CPU play-calling.

Yes, you would need to set the numbers to get "JAILBREAK" mode going. Currently the 0s would always kick the CPU to "NORMAL" mode and would be run in the lone style.

Share this post


Link to post
Share on other sites
I have the same questions as MGK (above) - but a couple more.

1. so there is a range of 0-255 for each setting (x00-xFF)?

2. The only way that defense can pick your play is if JAILBREAK is on?...or is there still a chance defense can pick play in NORMAL mode?

3. Do you have any suggestions for settings?

4. is there a way (using this modifier) to "force" a defense to primarily pick run or pass, exclusively?

1. Yes

2. The CPU still has the standard 1 in 8 chance of picking your play in Normal mode

3. Depends on the style you want and team skill but I found making teams above 50%, 75%, 75% defense to be often be tough on the field on the original.

4. Not currently, but I could add that easy. My CIFL version made the defense choose pass plays more but I could set it with a team variable.

Share this post


Link to post
Share on other sites
Ok.

I laughed out loud at the intro. Well done. 8)

Much thanks for your explanation. I'm on-board now. I'm interested to see how the most picked RUN or PASS play in a game will function in the specific way that my playbooks are constructed. This work of yours is right on top of the next big update for TSC that I've been talking about for a couple of months leading into next season--Offensive Playbook reorganization. If that's a coincidence, awesome. You couldn't have timed that shit any better if you tried. Now when I reorganize the playbook for next season I can take into account this piece of functionality and group the plays in Defense-specific reactions. So, as an example: make sure the majority of my FLY patterns are in the DIME formation slot, or the best strong-side rushes in the S-BLITZ slot. Very, cool. It's like a check against the player to not be lazy MFers and to actually strategize a little bit. I love it.

Buck: 4. Not currently, but I could add that easy. My CIFL version made the defense choose pass plays more but I could set it with a team variable.

Great thought, Buck, as well as awesome answer for us. We could tailor Defenses to play to their strengths! To use a regional slang, Wicked Awesome.

Jstout, you are Wicked Awesome. I will buy you a beer some day and thank you personally for helping me spend nearly two years fucking with TSB. :wink:

Share this post


Link to post
Share on other sites

here's a spreadsheet (UPDATED) I made to help implement this.

JSTOUT COM DEF LOGIC SETTER.xls

there are three "sheets" : 1.overall 2.run 3.pass

it should be self-evident as to how the spreadsheet works - this is similar to all my TSB spreadsheet SET generators.

The main column is labeled by TEAM - in order of appearance.

all you do is enter a HEXADECIMAL number into the colored cells and then copy/paste the SET Commands into TOOL, etc. You know the drill if you know the drill.

I added a chart on the side of each sheet that has a decimal to hex conversion list.

as always, work on a COPY of your ROM; and if you find any problems, please let me know (I will surely let you know if I find any).

Share this post


Link to post
Share on other sites
Yeah, I think it would be useful (used) to be able to weight the COM defense picks (run vs pass). That would be fresh.

I wrote the code up earlier and had the computer doing a weighted run/pass playcalling correctly. Is it enough to make a variable like x80 be 50/50 run/pass or would you need each slot weighted by itself?

Share this post


Link to post
Share on other sites

well, I think the guys that do the "slot-based" defenses would prefer a slot-based implementation...if I understand you correctly.

I would just like run or pass...but it would be cool if it could do BOTH..!?

Yeah, I think it would be useful (used) to be able to weight the COM defense picks (run vs pass). That would be fresh.

I wrote the code up earlier and had the computer doing a weighted run/pass playcalling correctly. Is it enough to make a variable like x80 be 50/50 run/pass or would you need each slot weighted by itself?

Share this post


Link to post
Share on other sites

If by RUN or PASS, you mean a weighted selection of either scenario and from all four plays equally, then I'm all for that. From the looks of everyone who is currently editing ROM Defenses, they've gone with four RUN and four PASS variations in intention, for the most part. So RUN or PASS seems like it makes sense to me.

well, I think the guys that do the "slot-based" defenses would prefer a slot-based implementation...if I understand you correctly. I would just like run or pass...but it would be cool if it could do BOTH..!?

Is it enough to make a variable like x80 be 50/50 run/pass or would you need each slot weighted by itself?

Share this post


Link to post
Share on other sites
If by RUN or PASS, you mean a weighted selection of either scenario and from all four plays equally, then I'm all for that. From the looks of everyone who is currently editing ROM Defenses, they've gone with four RUN and four PASS variations in intention, for the most part. So RUN or PASS seems like it makes sense to me.

Yeah, that is what I meant. Scale of x00-xFF where x00 would have the defense select from the 4 pass play slots, x80 is 50/50, and xFF would have the defense select from the 4 run play slots.

Share this post


Link to post
Share on other sites

I patched a 28 team ROM, setting it to 10-50%, 25-75% and 25-75%, based on defense values from Football Outsiders. It seemed fine.


 


There's a conflict with the COM-pass-to-open-receiver hack, though?


Share this post


Link to post
Share on other sites
On 2/15/2010 at 0:00 PM, jstout said:

If we got exited back to "NORMAL" mode, the defensive then has a 50% chance of keeping Pass Play #3 and a 50% chance that it changes its play call to the most used Pass Play so far in the game.

So, there's a 50% chance that the COM defense changes its play call, but not to the human's most used play OVERALL.  It's run or pass-specific.

Does anyone know how I could change this to simply "the most used play" instead of "the most used Pass play," so that the COM is not restricted to keeping its play call within the same bracket (run or pass) that it originally called?

 

I think another good COM defense play-calling system would be:

25% chance that COM defense calls a random play

75% chance that COM defense calls pass IF the human has passed more than he's run (otherwise, 75% chance that the COM calls a run)

Then, if we enter the 75% scenario . . .

-- 50% chance that a random pass play is chosen

-- 50% chance that the human's most used pass play is chosen

 

...BUT that's just dreaming out loud.

 

It seems like my first idea should be pretty feasible, but I know this is a complex hack, so maybe not.

 

 

Share this post


Link to post
Share on other sites
On 2016-01-26 at 8:03 PM, Tecmonster said:

Does anyone know how I could change this to simply "the most used play" instead of "the most used Pass play," so that the COM is not restricted to keeping its play call within the same bracket (run or pass) that it originally called?

 

This. It would make for more strategy, I think. Trying to establish the run, or set up the run by passing a lot.

 

Btw, no conflict with the COM-pass-to-open-receiver-hack.

Share this post


Link to post
Share on other sites
35 minutes ago, Martin said:

Doesn't work with play-as-p2-when-away-hacks. COM OG-playcalls when p1. Just something worth noting.

 

interesting.  how did you determine that?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×