Jump to content
Sign in to follow this  
quince3800

Defense (play fake and presnap movement) hex question

Recommended Posts

Greetings,

I'm new at this and still trying to figure how to so set up defenses. I have a number of questions:

  1. I want to work code into my ROM where defenders bite on play fakes a set percentage of the time. For example, moving up on playaction (D7 00 10) and then going to the regular assignment (maybe 50% of the time = 28 in hex). However, this preset assignment is to have options itself. I tried setting up the code that I wanted (28 18 BE FF C2 AA FF/FE @fda0) in a blank area and then writing code that incorporated a choice of either A: going directly to the assignment or B: advancing first and then moving to the assignment (D0 C8 50 EC 28 90 FD D7 00 20 FF 90 FD FF @bb2c). The best I got was that the first assignment (18 BE) did what I wanted (either covering deep or moving forward and then covering deep), but the second assignment caused the player to gradually move towards the quarterback as he manipulated the pocket. Also, this only worked for player 1; player 2 would only execute a confused blitz every time. I tried adding multiple FE's and taking them away. I'm not sure what I'm doing wrong here.
  2. How do you create an assignment with 3+ possible commands (example: man on WR1 OR deep coverage OR a D7 command)? Also, how would you apply the percentages / probablities for this?
  3. Is there a way to create more that one random presnap movement? I want to disguise coverages, so a certain percentage of the time I want defenders to move up, another time to move back and another to stay still. I tried: D0 C8 50 EB 2C 28 D7 00 28 D7 10 00 EC FF C2 AA FF; along with the inverse: D0 C8 50 EB 28 2C D7 00 28 D7 10 00 EC FF C2 AA FF. Neither of these worked. Further, I wanted an option where the player would stay in the same place X % of the time. I'm thinking this may be too much.
  4. Also, can players be made to line up across from a particular player AND THEN move forward or backwards from that position.
  5. In this same vein, is there a way to randomize where players initially line up?
  6. How do you enter either variable pauses or variable post snap movements (D7 or D8 commands) into code? As I've been able to work things, you either enter the pause first (ex: EC... F4 14 28 BC AA FF C2 AA) or as the second option in the string (ex: EC... 28 BC AA F4 14 FF C2 AA, meaning that the player would only pause before mirroring). Same for the movements. I'm wondering if this is possible.

I've been working on this for a bit before asking anything, but I'm stuck. I'd appreciated any help. Take care.

Share this post


Link to post
Share on other sites

it is possible to do everything you have mentioned, easy. but it is too hard to explain all of that at once without getting paid for it. so you need to take the tools and discoveries made by others and piece them together to figure out how the game works.

quickly, to set random percentages - use 2X (where X is 0-15/15 percentage random chance) to jump to location. said location can contain whatever code you wish.

A. http://tecmobowl.org...r-own-defenses/

B. the shortcuts (FF XX XX) to "drop deep" "man", "mirror", "etc" referenced in the above article are just shortcuts to the actual code sitting somewhere in the defensive code section. if you are "gutting" the defense code section, you will 1st need to go and copy the code that's actually jumped to by the game and set it up wherever you want....that makes sense? but anyways...study the above document.

C. make sure that the plays (offense and defense - remember that it's possible to have 8 unique offense and defense "plays" for each play) are set up how you want them (see bruddog playhacking guidebook for a good explaination - where is this located these days?)

D. defensive pointers are EASY. just swap the bytes and add (or subtract) x10.

E. http://tecmobowl.org...ay-design-info/

this article will tell you A LOT.

Share this post


Link to post
Share on other sites

28 FD 90 is not a valid command. You cant jump to 90FD. the thing following the random byte "28" has to be a rom location

not an action. you can only jump to somewhere beween A000- and BFFF

Read the documents buck suggested. Especially E

Share this post


Link to post
Share on other sites

28 FD 90 is not a valid command. You cant jump to 90FD. the thing following the random byte "28" has to be a rom location

not an action. you can only jump to somewhere beween A000- and BFFF

Read the documents buck suggested. Especially E

also, again to quickly try to address your issue of 3 options (PSEUDOCODE):

28 AA AA, where AA AA is a location to jump to (option 1)

then, just after 28 AA AA,

28 BB BB, where BB BB is a location to jump to (option 2)

then, just after 28 BB BB,

just code for Option 3 (don't need a 28XXXX, because code will sequentially play out.)

this is kinda like "IF Random Chance 1, else Random Chance 2, ELSE whatever code remains"

*now as far as the "probabilites" go, there are other educational resources to tell you what you get when you take a probability of a probability....but 28 is allegedly 50/50. so there is a 50% chance of doing "option 1" in the above pseudocode. then there is a 50% chance of doing "option 2" from the remaining 50%. thus, there's also a 50% chance of the remaining 50% that the thrid option will play out.

in summary, 50% option 1 is jumped to, 25% option 2 is jumped to, 25% option 3 is finally seen and played out.

I THINK this is the correct way to look at the probabilities, but bruddog seems to have the probability multiplication down, so let him explain that.

Share this post


Link to post
Share on other sites

28 FD 90 is not a valid command. You cant jump to 90FD. the thing following the random byte "28" has to be a rom location

not an action. you can only jump to somewhere beween A000- and BFFF

Read the documents buck suggested. Especially E

I don't understand why. I went to the first area where there were a series of FF FF FF...'s and typed in my own code (28 18 BE FF C2 AA FF/FE). Then I wrote a pointer to this location @fda0 (fda0-10 = fd90... 90fd). Is this a space that's used in the game for something? Also, half of the command worked (the 18 BE part), but the other half didn’t, which is why I’m confused. I think something isn’t looping correctly, which doesn't seem to have to do with the location of the command. I just can’t fix it.

I'd thoroughly read each of the suggested posts/documents and everything I could find on the topic prior to posting. There's not information related to the specific questions I'm asking. I get the most basic things, but I want to string commands together to get where I want to go.

Also, why can’t you have one line of code that requires movement first followed by another with a different movement? (ex: 28 d7 00 10 ff bc aa d7 00 20 ff c2 aa). I've added FE's at the end of this string, but can't get the game to respond. It seems to me that if there's more than one command in a string, then it can't be made into an option. hence, you can't have a player drop back and downwards, pause and then find the TE OR drop back and upwards, and just pause. Am I correct here or am I doing something wrong with the hex?

Lastly, I can get a player to approach the line presnap and then line-up across from X offensive player, but not in reverse order. Is this just not possible?

P.S. thank you on the %s response. I thought there was a more complicated way of manipulating the hex.

Share this post


Link to post
Share on other sites

Did you read my post?? All of the defensive commands are in A000-BFFF. It doesn't work if you try to make commands outside that section and use a jump or random command to get to them. Yes, you are doing something wrong with the hex. It is entirely possible to have multiple possibilities for a defender.

Any new command you make has to be in the A000-BFFF section. That's the tough part about editing the defensive and offensive commands. You have to erase one thing to make something else fit. And you if you erase something well then the game will fuck up if that section is used in a play. It's almost easier to wipe out the whole section and start from scratch for defense as there is basically zero available space.

Also a random byte like 28 must be followed by a location to jump to not a command. You can't have 28 D7 00.That means there is a 56% chance of jumping to location 00 D7 which won't do anything.

FE is a loopback comand. The byte following it tells it how far to loopback using signed notation. So to loopback one byte you would use FE FF. Two bytes FE FE. Etc.

You want something like this. I'm not sure what you are jumping to at aa c2. I think thats one of the pass rush sequences but i forget.

28 xx yy d7 00 20 ff c2 aa

@ YYXX d7 00 10 ff bc aa

YYYX MUST be between A000-BFFF. Technically between A010-C010 because of the 10 byte offset. Thats just the way it is.

You cant se any other location for defensive commands. IT WONT WORK! YOU'RE NOT ALLOWED TO JUMP TO IT!

As to this question "I can get a player to approach the line presnap and then line-up across from X offensive player, but not in reverse order. Is this just not possible?" I think you might be right in that the reverse is not possible.

Share this post


Link to post
Share on other sites

Ok.

Question #1: If you can't have an option with a D7 command following the random 2x notation, then how did you get the variable zone assignments for the 3-4 LB's in the defense_hack ROM (@a76a and a780)? (from: http://tecmobowl.org...it=defense_hack). I don't understand the code there.

#2: You said, "You cant see any other location for defensive commands. IT WONT WORK! YOU'RE NOT ALLOWED TO JUMP TO IT!." I'm not sure what you mean. Are you saying that I can't refer to a line / location where I've already written instructions? I'm curious....

I'm really excited because I just got the following to work:

@bb2c: D0 C8 50 EC 28 E0 BB D7 00 20 FF E0 BB FF FF FF FF FF FF FF FF FF FF FF

@bbf0: 28 18 BE FF C2 AA FE FE FE FE FE FE FF FF FF FF

All four sequences (18 be, d7 00 20 [ff] 18 be, c2 aa [mirror ball] and d7 00 20 [ff] c2 aa) worked. The loop back command (fe) allowed for that--thank you. I'm guessing if I added a pause, there would have to be two more FE's....

#3, etc: How are presnap movements randomized ? How did you do that on your rom? (I can't find the SS code for the 4-4). In addition, can more than one be added in? Further, can you randomize where a player lines up initially? Thank you again for the responses.

Edited by quince3800

Share this post


Link to post
Share on other sites

ffs, read the articles. especially the 1st post of the last article I suggested. IT IS REQUIRED to understand those commands and the locations of code to play hack. there is NO SHORTCUT. no advice, no suggestions, READ and Experiment.

if you understood what "2x (pointer)" really does, you would not be asking OVER AND OVER about the same thing (if you read, you will understand).

2x (location pointer) is a RANDOMIZED CHANCE FOR THE COMPUTER-GUY TO JUMP TO THE LOCATION.

Then, You can put your "movement" or WHATEVER CODE at said location.

I will try ONE MORE TIME:

with a quick/retarded example - let's say I wanted to do 3 possibilities (this could be presnap, too).

(this will do 50% pointer 1, 50% pointer 2, else move the guy and he just sits there)

28 (pointer 1) 28 (pointer 2) D7 00 F0 FF EC BD

at location of pointer 1 (this moves the guy and then he mirrors)

D7 F0 00 FF C2 AA

at location of pointer 2 (this moves the guy and then he drops deep)

D7 F0 F0 FF 18 BE

Share this post


Link to post
Share on other sites

@ Bruddog: I misunderstood your quote... got you.

@ Buck: THAT's what I was arriving at, that you have to write the code to a set location and then write a pointer to it. I get the 2x commands; I'd done what you'd said awhile ago, I just can't decipher tsb's original code.

This said, I still do not understand the random presnap commands if anyone can help:

How are presnap movements randomized ? How did you do that on your rom? (I can't find the SS code for the 4-4). In addition, can more than one be added in? Further, can you randomize where a player lines up initially? Thank you again for the responses.

Excuse me for the confusion. Thank you.

Share this post


Link to post
Share on other sites

Have you read xplosivs defensive doc yet? If you haven't, you should find it. They have all answered your question, you just dont understand the responses. Read that doc from xplosiv, it will educate you! The randomizer works like so... 2(%) pointer (if the game doesnt read this randomizer pointer, it skips to next command) movement (or another randomizer, or whatever you want the guy to do if he doesnt goto the first randomizer pointer) if you want more coding maybe another randomizer, keep doing this as long as you like or have space for. So heres an example code... D0 00 FE EA (the player standing code that allows movement still I believe is EA, EC = player standing final, no movement can be coded after) 27 05 AC D7 00 10 27 05 AD D8 F0 FE EC. (all the end codes in this example move a guy to a random spot and EC ends the code.)

@Loc AC 05 = D8 10 FE EC.

@Loc AD 05 = D8 20 FE EC.

Now these are made up, I dont know what code is actually in those locs. But again if you get xplosivs defensive doc, he has examples of actual defaulted locations with examples of what to look for when you follow his run downs of what each code does and means.

There is no other way to explain it unless you learn the basics. Everything they have told you is basic stuff... Presnap coding is tricky, experiment and take notes of where a guy lines up. Its very tedious at first. Dont worry about looping guys with FE until you learn how to make them move around the screen.

Edited by drunken_honkey

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

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×