Jump to content

NES Play Design Info


jstout

Recommended Posts

Ok guys. I am taking a dive at this. I understand most of what you guys are talking about, however, for the first play in the playbook 04 for the formation. How does the computer pick which play # to use when you press UP and A. There are 8 different ones to use. The defense the same way, can someone break this down for me, I am wanting to learn how to do this but right now its complexing my brain too much, and I am wanting to make my own plays into my roms. Thank you for helping.

Link to comment
Share on other sites

Play: T FAKE SWEEP R

Slot: Run 1

Formation: 04

Play #: 10, 10, 50, 10, 10, 50, 10, 10

Defense: 5B, 5A, 5A, 58, 58, 59, 59, 59

Play = original play name

slot = up+A run play (for run 1 slot, in this example)

Play # = the play the offense runs, depending on what the play the defense picks (UP,LEFT,RIGHT,DOWN+A or UP,LEFT,RIGHT,DOWN+:)

Defense: the play the defense runs, depending on what the offense picks (UP,LEFT,RIGHT,DOWN+A or UP,LEFT,RIGHT,DOWN+:)

Ok. I guess I shoud have read this last post before replying. This is where I am confused. Defense: the play the defense runs, depending on what the offense picks ...... if the offense picked up and B wouldnt the Defense be ran on the bytes that are for that play? If i am wrong someone please help me out, or break it down for me. Thank you again.

Link to comment
Share on other sites

I think you are overthinking this by a lot.

The offense has 8 plays (4 slots for run and 4 slots for pass). Each play has an offensive byte for each slot and a defensive byte for each slot.

Play: T FAKE SWEEP R

Slot: Run 1

Formation: 04

Play #: 10, 10, 50, 10, 10, 50, 10, 10 <- Slot 1 to 8

Defense: 5B, 5A, 5A, 58, 58, 59, 59, 59 <- Slot 1 to 8

Using the example play, the offense chooses T FAKE SWEEP R and the defense chooses Pass 2 (Slot #6). The offensive play loaded is Slot 6: #50 and the defensive play loaded is Slot 6: #59.

Link to comment
Share on other sites

  • 2 years later...

OK, I've been reading this thread because I want to improve the defensive reaction to the Run & Sweep R play:

Play: R AND S SWEEP R
Slot: Run 3
Formation: 0C
Play #: 05, 05, 05, 05, 22, 22, 22, 22
Defense: 88, 87, 5F, 88, 87, 87, 86, 86

 

I'm working on a hypothesis that simply increasing the second digit of each byte in the defensive reaction will accomplish this (since the lower #'s are for pass play selections).  According to my hex calculator, I can find the command codes for defensive reaction 88 at x6BC0, and the command codes for defensive reaction 89 (my hypothetical "better defense") at x6B06.

 

The 22 bytes for 88 are: 46 A5 0A A6 17 A6 48 BD 5D A8 67 A8 2F A6 69 B0 71 A8 53 A8 7E A8

The 22 bytes for 89 are: 10 A1 43 A2 BC A5 A1 A5 4B A4 B9 A5 E1 A2 93 AB BE BD 8A A3 9B A3

 

I've read jstout's command interpretations, but I still don't know what these bytes mean.

 

Can anyone explain, or is there a "Defensive Reaction" index that summarizes what each byte means?  I've tested the R&S Sweep R vs. 89 reaction defense and the defense does seem to play a little better but it's not easy to confirm without some info about these codes.

 

Thanks.

Edited by Tecmonster
Link to comment
Share on other sites

OK, I've been reading this thread because I want to improve the defensive reaction to the Run & Sweep R play:

Play: R AND S SWEEP R

Slot: Run 3

Formation: 0C

Play #: 05, 05, 05, 05, 22, 22, 22, 22

Defense: 88, 87, 5F, 88, 87, 87, 86, 86

 

I'm working on a hypothesis that simply increasing the second digit of each byte in the defensive reaction will accomplish this (since the lower #'s are for pass play selections).  According to my hex calculator, I can find the command codes for defensive reaction 88 at x6BC0, and the command codes for defensive reaction 89 (my hypothetical "better defense") at x6B06.

 

The 22 bytes for 88 are: 46 A5 0A A6 17 A6 48 BD 5D A8 67 A8 2F A6 69 B0 71 A8 53 A8 7E A8

The 22 bytes for 89 are: 10 A1 43 A2 BC A5 A1 A5 4B A4 B9 A5 E1 A2 93 AB BE BD 8A A3 9B A3

 

I've read jstout's command interpretations, but I still don't know what these bytes mean.

 

Can anyone explain, or is there a "Defensive Reaction" index that summarizes what each byte means?  I've tested the R&S Sweep R vs. 89 reaction defense and the defense does seem to play a little better but it's not easy to confirm without some info about these codes.

 

Thanks.

 

totally off,dog.  I mean, totally off.

 

1. each "reaction" is basically a unique "defensive play".  the "reaction" numbers are nothing more than numbers that point to a set of 11 commands.  

 

2. these "11 commands" (or "22 bytes" as you say) are POINTERS that point to each defenders CODE.  starting at RE and ending at SS.  2 bytes each = 22 bytes.

 

3. the only reason that the numbers "increase" as you say is because they are pointing to a location beyond (after the locations of the previous defensive play, USUALLY, but not always) in the rom.  

Edited by buck
Link to comment
Share on other sites

totally off,dog.  I mean, totally off.

 

1. each "reaction" is basically a unique "defensive play".  the "reaction" numbers are nothing more than numbers that point to a set of 11 commands.  

 

2. these "11 commands" (or "22 bytes" as you say) are POINTERS that point to each defenders CODE.  starting at RE and ending at SS.  2 bytes each = 22 bytes.

 

3. the only reason that the numbers "increase" as you say is because they are pointing to a location beyond (after the locations of the previous defensive play, USUALLY, but not always) in the rom.  

So how am I off?  I understand that those bytes point to code.  I'm just asking what that means.  In other words, has anyone built a glossary of sorts that summarizes what an "88" defense does? 

 

I also obviously understand that 89 is found beyond 88, because I found it and displayed the info.  Logic would suggest -- merely suggest, granted -- that if 88 is more effective than 87, then 89 might be more effective than 88.  I mean, that's assuming that if you pick a run play on offense and the defense picks a different run play, that the defense will play better vs. that run than if it had picked any pass play.  That's the assumption I've always played under -- your defensive drones play better vs. the run if you picked a run, and better vs. the pass if you picked a pass.

 

For example, I see that on an 88 defensive reaction, the RE will perform a "46" on an "A5" route.  On an 89 defensive reaction though, he'll perform a "10" on an "A1" route.  Has anyone decoded what a defensive player actually does with a 46 A5 command?

Edited by Tecmonster
Link to comment
Share on other sites

So how am I off?  I understand that those bytes point to code.  I'm just asking what that means.  In other words, has anyone built a glossary of sorts that summarizes what an "88" defense does? 

 

I also obviously understand that 89 is found beyond 88, because I found it and displayed the info.  Logic would suggest -- merely suggest, granted -- that if 88 is more effective than 87, then 89 might be more effective than 88.  I mean, that's assuming that if you pick a run play on offense and the defense picks a different run play, that the defense will play better vs. that run than if it had picked any pass play.  That's the assumption I've always played under -- your defensive drones play better vs. the run if you picked a run, and better vs. the pass if you picked a pass.

 

For example, I see that on an 88 defensive reaction, the RE will perform a "46" on an "A5" route.  On an 89 defensive reaction though, he'll perform a "10" on an "A1" route.  Has anyone decoded what a defensive player actually does with a 46 A5 command?

 

 

yes, "88 defense" points to the particular set of 11 PLAYER POINTERS that make up that particular defensive reaction.  

 

defense is coded just like offense, with the exception that there are no defensive formation, each players "reaction" code must be preceded by code to locate the player on the field, for every play.

 

one way you are OFF is because you are thinking of QUOTE ""46" on "A5" route".  that is totally OFF.  46A5 is a POINTER to a chunk of code.  the RE happens to use that in this case.

 

and yes, people (like me, for instance) have decoded what the code does and have even made totally different/new reaction code (including different defensive formations, etc)!

 

in summary,

your hypothesis that 89 is "better" than 88 is purely COINCIDENTAL.

 

ps-

 

it's very hard to "teach" this stuff!  you have to dig in and try things out!!!

 

one more thing - I know that I've read where someone pointed you to BAD AL's TSB PLAYMAKER - please download and use it.  even if it's not a very good/complete "playmaker" - it's a very useful LEARNING TOOL.  I learned most of what I know from examining it.

Edited by buck
Link to comment
Share on other sites

I do have and use TSB PlayMaker on a daily basis now.  It's how I changed the defensive reactions to 89 and tested.


 


I completely and totally understand that 46 is a pointer to a chunk of code, but am I wrong in assuming that a "46" command means the same thing regardless of the player?  If it means the same for every player, then I think it's within the realm of possibility that someone out there has a plain English decipher for these codes.  Like, 46=engage nearest OL; boost HP by two notches (because 46 points to code that tells him to do that) . . . you know, something like that.


 


I think that you think I want to change the code pointed at by 46, for instance, but I don't.  I'm just interested in knowing, in plain English, what it ultimately means for the player so that I can determine if 89 really IS a better defensive reaction against R&S Sweep R than 88. 


 


I think you answered my question though, that there is no such reference guide.  True?


Link to comment
Share on other sites

I think that you think I want to change the code pointed at by 46, for instance, but I don't.  I'm just interested in knowing, in plain English, what it ultimately means for the player so that I can determine if 89 really IS a better defensive reaction against R&S Sweep R than 88. 

 

MGK might have this documented somewhere as I know this was a pet project of his in the past.

Link to comment
Share on other sites

Tecmonster have you read xplosv's defensive creation guide. It's very good if you haven't.

There isnt a plain english guide for each defensive byte. One problem is that because there are random actions built into some of the player actions in most defenses you cant describe it in a simple word.

I can post the jstout de-composition of each defensive byte into its play command pointers and the commands but the move statements along with other things might confuse you more because they are in hex and not yards or direction.

My biggest warning with using tecmo playmaker is there is no error checking if you use two routes with the same route priority. Also the random percentages are wrong if there is more than 1 percentage listed.

Link to comment
Share on other sites

Also 46 is not a command 46A5 is a pointer to location A556 in the rom. At A556 you will see the command string sequence for the RE for that defensive byte.

In these command sequences THEN the bytes mean the same thing provided you decode their order properly.

Link to comment
Share on other sites

OK, don't worry about sending the jstout decomposition because I think I can read the same thing in the Defense tab of Playmaker, and I really can't make heads or tails of that at this point in my TSB.org career.  Thanks for offering though.


 


I have read xplosv's defense creation guide and, in fact, that's what inspired me to create the X,Y coordinates graphic I posted a while back (posted again in case anyone is interested).


post-10763-0-48496900-1375909008_thumb.j

Link to comment
Share on other sites

I have read xplosv's defense creation guide and, in fact, that's what inspired me to create the X,Y coordinates graphic I posted a while back (posted again in case anyone is interested).

 

in this case, you have all the tools to decipher the code.  and all the tools (and more) that I had when I figured this stuff out.

 

like I said before, the "46A5" is a pointer to code.  

Using that pointer, you can go find that code in the rom.

Use xplozv's defensive guide (along with jstouts nes play design info) and you can tell EXACTLY what each string of code will do.  The rest is up to you to determine what is "better" for any given situation.  

 

I think I just wrote pretty much the same thing that I did before...good luck with the READING COMPREHENSION.

Edited by buck
Link to comment
Share on other sites

Well, maybe we should both take a reading comprehension course because I've already stated that I know that 46A5 points to more code.  You obviously don't understand my narrative.


 


I did use the wrong semantics when I referred to it as a "command" in an earlier post.  Using the transitive property though, if 46 = a bunch of code elsewhere = command for a player's actions, then 46 does determine a player's actions.  Like I said, I'm not interested in changing that "bunch of code elsewhere," so I'm not interested in changing the command sequence.  The goal was to find a summarized, plain English account of that entire command sequence or, in other words, what 46 means.


 


According to bruddog, that goal is a little too simplistic since randomness changes a player's actions anyway.

Link to comment
Share on other sites

Four-Six or "46" or Fourtey-Six doesn't particularly mean anything!!!  It's a pointer to a location, and at that location is a string of instructions.  It is like telling someone "go to 1046 N. Main street and see what you find".  If code for a guy to lineup at RE spot happens to live there, then that's what you're going to get when you go to 1046 N Main.  


 


Again, because the defense player code has to begin with PLAYER LOCATION CODE (unlike offense), you can't just swap RE "pointer" with ROLB, for example, because the ROLB would line up in the RE spot.  Furthermore, a lot of defender movements are RELATIVE to their position on the field at lineup, so it's also unpractical to just swap the "post-lineup" code.


 


you CAN (and PlayMaker program does this) swap RE "pointer" for another RE pointer,etc.


 


Not trying to be a dick, but based on your replies, it appears that you're not reading.


Edited by buck
Link to comment
Share on other sites

I'm going to repeat this because I'm not 100% sure you understand this:  46A5  IS NOT  "do 46 on an A5 route". That is a pointer to the ENTIRE SET OF PLAYER COMMANDS which you can see in the play maker if you click on the defense tab with currently editing reaction #88 and then hover over the RE box you get this sequence  broken down into half English.


 


RE A546:SetPosFromHike(D8 08); 3pt; D8-MoveAbsolute(D8 20); JumpTo AAAD:FC(FF E0); DA-PassRush; LoopBack FC// 


 


 


So you can see this command sequence tells the player where to line up.Then pPuts him in a 3pt stance. Gives him one movement after the snap. Then tells him to go after the ball carrier with the DA pass rush byte(more aggressive) until he dies. 


 


So you could say that 46A5 is a pointer to  a generic pass rush sequence for a player that lines up at the Right End position.


 


The defenses beg for a visual representation which I started to work on at one point but got stuck on how to display things like a CB who may have 4 different possibilities. For example the CB may do one of the following depending on the "random dice rolls" for that play. 


 


1. Run forward and pause.


2.Run backward until  endzone


3. Man to man cover WR1


4. MAn to man RB1  


Link to comment
Share on other sites

Yeah, I understand that now and within your narrative you gave a hint of the type of thing I've been looking for when you said that the DA pass rush byte is a "more aggressive" byte, and that the player command set pointed to by 46A5 is a "generic pass rush" sequence.  That's cool, and I don't know where it's written (pretty sure it's not in xplosv's guide) that the DA type of pass rush, for example, is a more aggressive style.  Even though the defense commands in PlayMaker are in half English, they're still difficult to understand.  I was hoping for a full plain English guide, but I realize now that it's never been done and might never be.


Link to comment
Share on other sites

Yeah, I understand that now and within your narrative you gave a hint of the type of thing I've been looking for when you said that the DA pass rush byte is a "more aggressive" byte, and that the player command set pointed to by 46A5 is a "generic pass rush" sequence.  That's cool, and I don't know where it's written (pretty sure it's not in xplosv's guide) that the DA type of pass rush, for example, is a more aggressive style.  Even though the defense commands in PlayMaker are in half English, they're still difficult to understand.  I was hoping for a full plain English guide, but I realize now that it's never been done and might never be.

 

see "post snap" instructions...

 

Field Placement, Pre-snap Movement, & Post-snap Instructions

by Xplozv (based on Jstout's great guide "NES Play Design Info")

 

Jstout's guide can be found here: http://knobbe.org/forum/viewtopic.php?f=22&t=11941

 

Formats:

 

No Pre-snap movement ---        Placement, Y coordinate, X coordinate, Stance

 

With Pre-snap movement ---     Placement, Y coordinate, X coordinate, Shift, Time, Move, Y coordinate, X coordinate, Stance

                                                (only one exception that we will get to later)

 

 

Placement

 

D0 Command (Absolute)

 

This command can place you anywhere on the field. You only use it once per player and only to start the instructions. There is only one CON with this command. If you are not careful your player will line up out of bounds depending upon which hashmark the ball is placed on. This is where the D1 command comes in.

 

D1 Command (Relative)

 

This command is only used in the original for WRs & CBs. That is because they line up close to the sideline all the time. The D1 command keeps them in bounds regardless of where the ball is placed. It is relative to the middle of the field instead of the ball like D0 is. If you use D1 for more than CBs, most of your defense will not line up with the offense if the offense is on the opposite hash, making your new creation useless.

 

*** Next, we will talk about coordinates. Remember 1yd is x08(hex), 1/2yd is x04(hex), 1/4yd is x02(hex) and so forth. ***

 

Y Coordinates

 

Imagine a vertical line from sideline to sideline. The ball is considered the center, or midpoint, of that line. The ball's "Y" is always "F0", which is where the Center & QB is always going to line up. If you're planning to match up your DL to the OL, Here are the Y coordinates of the OL on the original TSB1(nes, snes, & genesis) :

 

LT= "D8"           LG="E4"           C="F0"              RG="FC"           RT="08"

 

They line up exactly 1 1/2yds away from each other. Here's how we know that:

 

Add in hex:  D8 + 08 = E0 + 04 = E4;

Add in hex:  E4 + 08 = EC + 04 = F0;

Add in hex:  F0 + 08 = F8 + 04 = FC;

Add in hex:  FC + 08 = 04 + 04 = 08;

 

*** D0 & D1 differ in Y coordinates!!!!!! ****

 

D0 command is as follows:

 

Top of the screen sideline is about "B8", Bottom of the screen sideline is about "38", with the ball always being the middle at "F0". Remember what I mention about the D0 command earlier. When the ball is on top hash, B8 will line your player up out of bounds, and when the ball is on the bottom hash, 38 will line up your player out of bounds. I usually go no further up than about "C0 to C8" which will put your player covering the slot area just inside the CB at the top. To give you an even better idea of how high that is on the field, the FS has a default Y coordinate of C8.

 

D1 command is as follows:

 

Top of screen sideline is about "40", Bottom of screen sideline is about "C8". The only Y coordinate for the D1 command that you really need to use are "36" which is for the CB at the top of the screen(RCB) and "C0" which is for the CB at the bottom of the screen(LCB) these are their default values.

 

X Coordinates

 

*** You have to really pay attention to these when we get to movements & shiftts(pre-snap & post-snap). ***

 

Imagine a horizontal line from endzone to endzone. The ball is the center of this line, however, the ball is now "00" instead of "F0". "00" is the neutral zone for all players not to cross. By default all players are lined up 1yd off of the ball (08), with the center being the only exception, he's 3/4yd off of the ball (06). By default, the farthest players are the safeties at 10yds (50). X coordinates use what I like to call "Scale 1" and "Scale 2" measurements. Here are the scales in 1yd increments away from the ball (15yds in length).

 

                         1     2     3    4     5     6    7     8     9    10   11   12   13   14   15

Scale 1:            08   10   18   20   28   30   38   40   48   50   58   60   68   70   78

 

 

                         1     2     3     4     5     6      7     8     9     10   11    12   13   14   15

Scale 2:            F8   F0   E8   E0   D8   D0   C8   C0   B8   B0   A8   A0   98   90   88

 

 

*** Scale 1 only affects the placements commands D0, D1, and the move command D7 ***

 

*** Scale 2 affects the move commands D7, D8, & D9 ***

 

Stance

 

The stance is always the ending of field placement. Either you're down, which is "EA" or you're standing, which is "EC". Simple as that.

 

 

How to Apply? Practice!!!

 

Let's have fun with a couple of default instructions and see what we can come up with.

 

Reading Field Placement Instructions

 

Default for FS is "D0 C8 50 EC". This means place(D0) 5yds above ball(C8) 10yds off the ball(50) standing(EC)

Default for LC is "D1 C0 28 EC". This means place(D1) at bottom sideline(C0) 5yds off the ball(28) standing(EC)

Default for NT is "D0 F0 08 EA". This means place(D0) even with ball(F0) 1yd off the ball(08) down(EA)

 

Easy, huh? That is basic field placement without pre-snap movement. My advice and what has been a huge help to me is to find defensive playbook you like and/or draw your defensive formation on paper and then mark off the yards of where you want the players to line up.

 

 

Pre-snap Movement (EB, ED, 80-8A are the shift commands)

 

The Shift commands must come after the X coordinate and before the stance. The Shift commands are always followed by Time in secs(in hex), x14 is 1 second. This tells the player when exactly to begin shifting. The timing of the shift is very important because it is the difference in the defense looking professional or like a fire broke out. The is snapped by COM & COA in about 6-8 secs just to give you an idea.

 

80 - 8A Command (only exception to the pre-snap format above)

 

On offense, this is the Motion command. On defense is the is Follow command. The defender will follow the offensive player that you choose, everywhere that he goes. If that offensive player does not move, the defender will go line up even with him (just Y coordinate; X coordinate is not affected--- if 5yds back, will stay 5yds back). Time then Stance immediately follows this command. "8" is followed by the player chosen. Here are the players:

 

QB=0,   HB=1,   FB=2,   WR1=3,   WR2=4,    TE=5,    C=6,    LG=7,    RG=8,     LT=9,    RT=A

 

For example, our FS, "D0 C8 50 83 28 EC" means place(D0) 5yds above ball(C8) 10yds off of the ball(50) follow WR1(83) in 2 secs(28) standing(EC).

 

*** With this shift command, the player will start in the down position and finish in the down position regardless of what stance you choose. ***

 

EB & ED Commands

 

These shift commands are also followed by time and stance but differently. Unlike the 80-8A command, YOU must tell the player exactly where to go. We do that with the move commands D7, D8, & D9. You must do this after time and before the stance. Here is a couple of examples of the EB & ED commands with the FS again:

 

"D0 C8 50 EB 3C" & "D0 C8 50 ED 3C" both mean the same thing: place(D0) 5yds above ball(C8) 10yds off the ball(50) shift(EB, ED) in secs(3C)

 

So, what's the difference? With "EB", player starts in down position and finishes in whichever stance you choose. With "ED", player starts in standing position and finishes in whichever stance you choose. Use "ED" for LBs and DBs and use "EB" for the DL to give the best look.

 

D8 Command (Absolute ---Exact spot on field)

 

D8 move command along with the D7 command is what you're probably going to use most often. D8 command uses D0's Y coordinates and Scale 2 X coordinates. Let's use our same FS as an example:

 

"D0 C8 50 ED 3C D8 C8 D8 EC" now means place(D0) 5yds above ball(C8) 10yds off of the ball(50) shift from standing(ED) in 3 secs(3C) move to exactly(D8) 5yds above ball(C8) 5yds off the ball(D8) standing(EC)

 

Our first pre-snap movement!!! We moved our FS 5yds closer to the Line of Scrimmage, while keeping him 5yds above the ball. Now let's move him again:

 

"D0 C8 50 ED 3C D8 F0 D8 EC" now means place(D0) 5yds above ball(C8) 10yds off of the ball(50) shift from standing(ED) in 3 secs(3C) move to exactly(D8) even with the ball(C8) 5yds off the ball(D8) standing(EC)

 

Now we moved our FS even with the ball and 5yds closer to the Line of Scrimmage from his default position.

 

D9 Command (Relative to middle of field)

 

D9 uses D1's Y coordinates and Scale 2 X coordinates. Use of the D9 command will be a rarity as the D7 & D8 command can pretty much make it obsolete. I personally don't use it at all. Mainly use it for CBs. Here is our LCB as an example:

 

"D1 C0 28 ED 3C D9 C0 F8 EC" means place(D1) at bottom sideline(C0) 5yds off of the ball(28) shift from standing(ED) in 3 secs(3C) move relative(D9) to bottom sideline(C0) 1yd off of the ball "press coverage"(F8) standing(EC)

 

D7 Command (Relative to player's position)

 

D7 move command offers the most options. D7 is relative to your player's position. Where your player is already located is "00" for both Y & X coordinates. D7 also uses Scales 1 & 2 as both Y & X coordinates.

 

*** When you want to move your player down or forward, use Scale 1. When you want to move your player up or back off the ball, use Scale 2. ***

 

*** If you are only going to adjust the Y coordinate, the X coordinate will be "00".  If you are only going to adjust the X coordinate, the Y coordinate will be "00". ***

 

Here is a few of the many possibilities:

 

Remember our FS that we lined up even with the ball and 5yds back? "D0 C8 50 ED 3C D8 F0 D8 EC"  Now we can do that same thing with the D7 command.

 

Here goes:  "D0 C8 50 ED 3C D7 28 28 EC" place(D0) 5yds above ball(C8) 10yds off the ball(50) shift from standing(ED) in 3 secs(3C) move from current position(D7) move down 5yds(28) move forward 5yds(28) standing(EC)

 

Now let's keep him 5yds above the ball and move him back 5yds so that he will be 15yds off of the ball.

 

Here goes:  "D0 C8 50 ED 3C D7 00 D8 EC" place(D0) 5yds above ball(C8) 10yds off the ball(50) shift from standing(ED) in 3 secs(3C) move from current position(D7) don't adjust Y coordinate(00) move back 5yds(D8) standing(EC)

 

Finally let's move him down even with the ball and keep him 10yds back.

 

Here goes:  "D0 C8 50 ED 3C D7 28 00 EC" place(D0) 5yds above ball(C8) 10yds off the ball(50) shift from standing(ED) in 3 secs(3C) move from current position(D7) move down 5yds(28) don't adjust X coordinate(00) standing(EC)

 

Folks, that is Field Placement & Pre-snap Movement in a nutshell. On to the Post-snap Instructions.

 

 

Post-snap Instructions

 

Now that you have gotten the hang of the move commands D7, D8, & D9, it's time to use them. Immediately after choosing your stance you must put postsnap instructions because defense doesn't have formation pointers like the offense. So set your player to move where you want them to with the move commands then you can give them roles or assignments. Let's use zone defense as an example. To stop in a zone coverage, the instruction is "FF EC BD".

 

Here goes, using the RILB, who from his default position(without pre-snap movement) will drop into a 5yd zone in the middle of the field:

 

"D0 E0 18 EC D8 F0 D8 FF EC BD"  place(D0) 2yds above ball(E0) 3yds off the ball(18) standing(EC) move to exactly(D8) even with snap of ball(F0) 5yds off the ball(D8) stop and face QB or ball "zone"(FF EC BD)

 

 & 

 

"D0 E0 18 EC D7 10 F0 FF EC BD" place(D0) 2yds above ball(E0) 3yds off the ball(18) standing(EC) move from current position(D7) move down 2yds(10) move back 2yds(F0) stop and face QB or ball "zone"(FF EC BD)

 

will both give you that same result.

 

Now I will give you a list of instructions(nes, snes, & genesis) you can use once you get your players where you want them.

 

 

MAN TO MAN               NES                             SNES                           GENESIS

 

HB                            FF 04 BE                       FF 93 FC                       FF 00 03 96 9C

FB                            FF 08 BE                       FF 97 FC                       FF 00 03 96 A4

WR1                         FF 0C BE                      FF 9B FC                       FF 00 03 96 AC

WR2                         FF 10 BE                      FF 9F FC                       FF 00 03 96 B4

TE                            FF 14 BE                      FF A3 FC                       FF 00 03 96 BC

 

 

OTHER ROLES                                   NES                               SNES                           GENESIS

 

RUSH STRAIGHT                            FF AD AA                        FF 3C E9                       FF 00 03 6F EC

RUSH FOLLOW                              FF BC AA                        FF 4B E9                       FF 00 03 70 06

MIRROR BALL CARRIER                 FF C2 AA                        FF 51 E9                       FF 00 03 70 10

ZONE COVERAGE                         FF EC BD                        FF 7B FC                       FF 00 03 96 6C

DEEP COVERAGE                         FF 18 BE                         FF A7 FC                       FF 00 03 96 C4

 

*** When it comes to Man to Man codes, please move you defender back 3 to 7 yards back before putting in the Man to Man instructions. Because the player sits still for about 3 tecmo seconds before they move from their presnap position. So if you use right away after the stance, that player will be wide open for a good gain before the defender even makes a move. This is the reason that by default the CBs lined up 5yds off of the ball to compensate for this. ***

 

Now it is time to place all these instructions somewhere to see your new defensive plays.

 

The defense instructions start at xA010(NES), x165E8F w/o header(SNES) x16608F w/header(SNES), x35AA2(GENESIS). They all start with special teams. So it is safe to start overwriting the original instructions starting at xA606(NES), x16602A w/o header(SNES) x1661AC w/header(SNES), x36172(GENESIS). I personally suggest you start with the nes version first, then go to the other two. Save the GENESIS for last because putting in its instruction is nothing like the NES or the SNES. I will have section on the GENESIS all its own. I also FF out a section of the original instructions so that I can see my own clearly not to make any mistakes.

 

When open a hex editor and go to these address given for a particular system, make note of the address you start at for each of those players' instructions. We will need to convert those addresses to pointers so the game knows where to look for instructions. A word to the wise, type in your instructions in this order, RE, NT, LE, ROLB, RILB, LILB, LOLB, RCB, LCB, FS, SS.  This is to make things less confusing because when you go to type in your pointers, they will need to be in that order, otherwise a DL maybe lining up against a WR instead of the CB.

 

Example, Nes: your first instruction goes in at xA606.  Subtract x10(in hex) to get "A5F6", now swap the bytes around to get "F6A5". F6A5 is your pointer for that player's instructions. Make note of your pointers for each of the 11 players on defense for that play.

 

Example, Snes: your first instruction goes in at x16602A w/o header(nearly all roms on the site will not have headers)  Subtract x200(in hex) to get "165E2A", now drop first two digits(1 byte) to get "5E2A", now add x8000(in hex) to get "DE2A", now swap them to get "2ADE". 2ADE is your pointer for that player's instructions. Make note of your pointers for each of the 11 players on defense for that play.

 

Example, Genesis: your first instruction goes in at x36172. Add three zeros to the beginning to get "00036172". 00036172 is your pointer. The Genesis is by far the easiest when it comes to pointers because is uses absolute addressing. Your address or offset is the pointer. You just convert it to long word by add 3 zeros to the beginnig. And that is all that is easy on the Genesis.

 

Once you have all your pointers, it is time to type them where they go, but first, we must set our rom to have 8 set defenses(it is easier that way). I normally use play#s 04, 05, 06, 07, 08, 09, 0A, & 0B(in order: up a, left a, right a, down a, up b, left b, right b, down B)(remember Genesis top plays are b and bottom plays are a). Plays 00, 01, 02, & 03 are for special teams. So you need to copy and paste the following code(the spaces included) using a hex editor in the following addresses:

 

1DC10x (NES), x161A5F w/o header(SNES), x161C5F w/header(SNES), x3C8D0(GENESIS)

 

Set Def Plays

 

04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B 04 05 06 07 08 09 0A 0B

 

 

Now let's type our pointers for each play. Let's calculate Up + A(play 04) :

 

NES= play # * 16(in hex) + 6010 = address where to type in pointers (RE, NT, LE, ROLB, RILB, LILB, LOLB, RCB, LCB, FS, SS)

 

so: 04 * 16 = 58.    58 + 6010 = 6068.  "6068" is the address where you type your pointers for play# 04. Repeat for each play.

 

SNES(w/o header)= play# * 16(in hex) + 164725 = address where to type in pointers (RE, NT, LE, ROLB, RILB, LILB, LOLB, RCB, LCB, FS, SS)

 

so: 04 * 16 = 58.    58 + 164725 = 16477D.  "16477D" is the address where you type your pointers for play# 04. Repeat for each play.

 

SNES(w/ header)= play# * 16(in hex) + 164925 = address where to type in pointers (RE, NT, LE, ROLB, RILB, LILB, LOLB, RCB, LCB, FS, SS)

 

so: 04 * 16 = 58.    58 + 164925 = 16497D.  "16497D" is the address where you type your pointers for play# 04. Repeat for each play.

 

GENESIS= play# * 2C(in hex) + 399FC = address where to type in pointers (RE, NT, LE, ROLB, RILB, LILB, LOLB, RCB, LCB, FS, SS)

 

so: 04 * 2C = B0.   B0 + 399FC = 39AAC.   "39AAC" is the address where you type your pointers for play# 04. Repeat for each play.

 

 

Genesis Mini Extra Guide

 

If you want to edit the Genesis plays, be prepared to be bold. When you make NES defenses or offenses, it is easy to convert them to SNES plays just by changing the appropriate instruction I gave in the list. The placements, shifts, move commands, x & y coordinates will be exactly the same as the NES. The same goes for the Genesis as all 3 systems use the exact same ones except for what I listed. Then, you just have to make your pointers for each system. With that said, here is the difference when it comes to the GENESIS for typing in those instructions. Remember our FS again? I will show you instructions for the SS this time instead, in all 3 systems.

 

NES:                D0 18 50 ED 3C D7 28 28 EC FF 18 BE

 

SNES:              D0 18 50 ED 3C D7 28 28 EC FF A7 FC

 

GENESIS:         00 D0 00 18 00 50 00 ED 00 3C 00 D7 00 28 00 28 00 EC 00 FF 00 03 96 C4

 

 

The Genesis instructions must start with "00". There is also "00" between each byte of instruction you are going to type in. The exceptions to that is the instructions in the list above in the guide, the placement command D0, & move commands D7, D8. The instructions in the list above can just be typed in as is. However, when it comes to D0, D7, & D8 commands, sometimes a "FF" byte is used instead of "00". D1 & D9 commands are not affected by this and will use "00" like everything else that does.

 

*** Here are those circumstances:  If your Y coordinate or X coordinate begins with a letter like "C8", you must us "FF" in front of it instead of "00". If you don't do this, your player will now show up on the field, and the game will play with only the players you typed in correctly. ***

 

Example using our FS:

 

"D0 C8 50 ED 3C D7 00 D8 EC FF EC BD"

 

would be this in Genesis:

 

"00 D0 FF C8 00 50 00 ED 00 3C 00 D7 00 00 FF D8 00 EC 00 FF 00 03 96 6C"

 

 

Closing

 

That covers the basics of everything for each system. I will be writing an advanced guide for those who want to dig even deeper into making pro style defenses. I will be covering my defenses which are usually much more complicated than all I just explained. It will deal with randomizing if a player shifts or not for a given play or how often he does. Giving a defensive player 3 to four different roles on one particular play so the offense will never know what each player is going to do regardless of the formation the opponent sees.  Randomize whether a defender will break their pass coverage responsibility to help in run support. I'll even throw in a few offensive things like, shifting a QB from under center into the shotgun. All this and more will be in my next guide. Feel free to PM me if you have any questions.

 

 

Much Thanks goes to Jstout for his guide NES Play Design Info

 

which is here: http://knobbe.org/forum/viewtopic.php?f=22&t=11941

 

I studied that for many many hours doing a lot of testing.

Edited by buck
Link to comment
Share on other sites

Tecmonster,


 


Try this post:  tecmobowl.org/forum/topic/5841-defensive-reactions/page__hl__+defense +byte#entry94149.


 


Edit:


 


You need the data files from this link also: http://tecmobowl.org/topic/8231-tsb-playmaker-beta-nes-playbook-hacking-program/.


 


The process to extremely tedious keeping track of everything and going back and forth.  Also, there's some errors in the offensive patterns information (at least for the QBs, which I've looked at in a bit of detail).


 


For offense, if you're already at a location that you're editing, it's the last 4 digits of the location (example:  9fd0) + 1FF0 (= bfc0), then you reverse the bytes to CREATE a pointer (c0bf).


 


To follow a pointer, it's the inverse of the pointer itself (c0bf becomes bfc0) - 1ff0 (= 9fd0, i.e., where you started).


 


You're at a list of pointers right now.  You're not yet looking at any command code.  You'll have to follow the pointers (second example) to get to the code, from where you'll see the location commands first (if defense) and then the actual commands.  Notice that most everyone responding to you has a computer background.  It takes a couple of months to get part way into the swing of things (just to edit some defensive commands) and even for that you have to read A LOT.  It's extremely confusing at first.  Good luck.


 


Also, you can keep a hex editor open at the same time that you have the playbook maker program open, but the changes made on the playbook maker will overwrite (i.e. erase) anything you've done using the hex editor.  Thus, if you want to edit bytes (that you're assigning to a particular play), either 1) do it by hand or 2) save and close in the hex editor, then change them in the playbook maker and then reopen the hex editor to continue working.


Edited by quince3800
Link to comment
Share on other sites

There is no plain English way to speak Hex... you have to learn Hex, thats really the only way to do it. You can only dumb down the explanations so much. We all learned by reading and experimentation. Play coding is really complicated at first. But with experimentation youll learn a lot. Good luck!

Link to comment
Share on other sites

  • 4 months later...

I apologize if these are already somewhere on the boards - I couldn't find the answers when searching.


 


1. What is the difference between these two commands?


xC7 - COM Jump To (Pointer)

xCA - COA/COM Jump To (Pointer)

 

2. For xE4 = Player Takes Control, is it appropriate to assume the following bytes are in fact executed as instructions when in COA/COM mode?

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