Jump to content

NES PC and PA


jstout

Recommended Posts

I'm trying to test the 3rd byte here right now by making 50 and 56 (hacked PC = accuracy) the same and changing the relevant byte.  It looks like the smaller the byte the more "manageable" the ball.


 


When 78 is the value, there's more diving and leaping passes (the PA is 94 for both QBs here), whereas 00 (for an extreme) seems to produce a lot of short passes, where it's reasonably on target / "accurate," but the receiver often stops just briefly to be able to catch the ball.  Even with a very wide range, however, the difference is barely noticeable though.  I'll edit this when I see some more.


 


Edit 1:  There also seem to be (only a bit) more errant (out of bounds) tosses for the higher value.


 


Edit 2:  The byte seems to tighten the window within which the QB is accurate at the extreme I'm looking at now (00), but not generally allowing the WR to run through the ball (only rarely).  The extreme does not eliminate errant throws, however.


 


Edit 3:  I think the note about the frequency of errant passes should be my error, since the code breakdown suggests that it should have nothing to do with this byte.  There may be only a minor difference, but I'm not sure.


 


Edit 4:  The difference between a fictious extreme (00) and 06 skill (78 in hex) is not great and editing these values may need to take that into account if you're going to edit the hex to control the accuracy of QBs.


 


Edit 5 (April 2):  These are some notes I have for retesting.  I'm posting them because of my own confusion and wondering if anyone either has A- tested anything or B- looked at the code:


  • testing FF (inaccurate) FF (underthrow) FF 00 against FF FF 00 00:  the 3rd byte has no apparent effect on underthrows
  • testing FF (inaccurate) FF (underthrow) FF (wide window) FF (??) against FF FF 00 FF: 3rd byte appears to have no effect on underthrows.
  • testing FF (inaccurate) 00 (overthrow) FF FF against FF 00 FF 00:  no definitive conclusion; both QBs seemed to behave about the same; the FF 00 (overthrow) FF (wide window) 00 (no overthrow??) QB can still over throw balls by a wide margin; lots of short (i.e., not in stride), but reasonably accurate passes for both
  • testing FF (inaccurate) 00 (overthrow) 00 (tight window) FF (??) against FF 00 00 00:  long throws still overly long for FF 00 00 00 QB and lots of jump balls for both
  • testing 00 (accurate) 00 (overthrow) 00 (tight window) FF (??) against 00 00 00 00:  3rd byte maybe overriding the 4th byte, as all throws seem to be exactly on target
  • testing 00 (accurate) 00 (overthrow) FF (wide window) FF (??) against 00 00 FF 00:  everything still on target
  • testing FF (inaccurate) FF (underthrow) 00 (tight window) FF (??) against FF FF 00 00:  4th byte has no apparent effect on underthrows
  • testing FF (inaccurate) FF (underthrow) FF (wide window) FF (??) against FF FF FF 00:  4th byte has no effect on underthrows

Additional editing (4/4/2013):


  • testing FF (inaccurate) 00 (overthrow) 90 (wide window) 00 (??) against FF 00 00 FF:  first QB's throws left the WR stretching to make catches (as expected); Note:  the computer only seems to respond to a certain range for the 3rd byte (FF entries had no appreciable effect); couldn't discern anything.concerning the 4th byte
  • testing 00 (accurate) 00 (overthrow) 90 (wide window) FF (??) against 00 00 00 FF:  both QBs extremely on target (in stride throws); even when the 2nd byte was changed to FF (for underthrows)
  • testing FF (inaccurate) 00 (overthrow) 90 (wide window) FF (??) against FF 00 90 00:  4th byte has no apparent effect at all
  • testing FF (inaccurate) 00 (overthrow) 90 (wide window) 80 (??) against FF 00 00 00:  this was done with the aim of following the observation made (in blue) about the 3rd byte; however, no difference was apparent

At present I'm completely stuck with regards to the 4th byte.  Any "observation" I make for one QB shows back up with the other QB's performance later one.  (I've been dilligent about reseting the game so that both QB's are in AVERAGE condition throughout testing).  I'm wondering if the 4th byte simply wasn't implemented.


 


@Bruddog:  What I want to know is how you came to the conclusion that the 3rd byte was for underthrows and the 4th was for overthrows.  That's completely not been my observation.  Was this done using code entirely?  I'm using FCEUX, but don't know how to interpret this area, so I didn't try to fetch anything.


 


@Buck:  What's the rest of your spreadsheet doing?  I can make the 'accurate/non' calculations independently, but I'm curious if there is anything additional that you'd found.


Edited by quince3800
Link to comment
Share on other sites

  • 2 weeks later...

Pass Control = Ability to throw on target

Pass Accuracy = Ability to complete a pass

At x29E54:20 F7 9F   JSR $9FF7 ; Go to new PA readAt x2A007:A0 88      LDY #$88 ; Read PA4C DD 9F   JMP $9FDD ; Go to Normal Code

 

Please excuse my complete Noob Hex editing skills.  I don't know what I am doing.  Can someone explain in engrish what exactly to do here to make this work?

 

Am I supposed to replace "x29E54" with "20F79F"?

And then replace "x2A007" with "a0884CDD9F"?

 

I can't locate either one of those locations?  Any tips?

Edited by philleyOphish
Link to comment
Share on other sites

 

I'm trying to test the 3rd byte here right now by making 50 and 56 (hacked PC = accuracy) the same and changing the relevant byte.  It looks like the smaller the byte the more "manageable" the ball.

 

When 78 is the value, there's more diving and leaping passes (the PA is 94 for both QBs here), whereas 00 (for an extreme) seems to produce a lot of short passes, where it's reasonably on target / "accurate," but the receiver often stops just briefly to be able to catch the ball.  Even with a very wide range, however, the difference is barely noticeable though.  I'll edit this when I see some more.

 

Edit 1:  There also seem to be (only a bit) more errant (out of bounds) tosses for the higher value.

 

Edit 2:  The byte seems to tighten the window within which the QB is accurate at the extreme I'm looking at now (00), but not generally allowing the WR to run through the ball (only rarely).  The extreme does not eliminate errant throws, however.

 

Edit 3:  I think the note about the frequency of errant passes should be my error, since the code breakdown suggests that it should have nothing to do with this byte.  There may be only a minor difference, but I'm not sure.

 

Edit 4:  The difference between a fictious extreme (00) and 06 skill (78 in hex) is not great and editing these values may need to take that into account if you're going to edit the hex to control the accuracy of QBs.

 

Edit 5 (April 2):  These are some notes I have for retesting.  I'm posting them because of my own confusion and wondering if anyone either has A- tested anything or B- looked at the code:

  • testing FF (inaccurate) FF (underthrow) FF 00 against FF FF 00 00:  the 3rd byte has no apparent effect on underthrows
  • testing FF (inaccurate) FF (underthrow) FF (wide window) FF (??) against FF FF 00 FF: 3rd byte appears to have no effect on underthrows.

  • testing FF (inaccurate) 00 (overthrow) FF FF against FF 00 FF 00:  no definitive conclusion; both QBs seemed to behave about the same; the FF 00 (overthrow) FF (wide window) 00 (no overthrow??) QB can still over throw balls by a wide margin; lots of short (i.e., not in stride), but reasonably accurate passes for both
  • testing FF (inaccurate) 00 (overthrow) 00 (tight window) FF (??) against FF 00 00 00:  long throws still overly long for FF 00 00 00 QB and lots of jump balls for both

  • testing 00 (accurate) 00 (overthrow) 00 (tight window) FF (??) against 00 00 00 00:  3rd byte maybe overriding the 4th byte, as all throws seem to be exactly on target
  • testing 00 (accurate) 00 (overthrow) FF (wide window) FF (??) against 00 00 FF 00:  everything still on target

  • testing FF (inaccurate) FF (underthrow) 00 (tight window) FF (??) against FF FF 00 00:  4th byte has no apparent effect on underthrows
  • testing FF (inaccurate) FF (underthrow) FF (wide window) FF (??) against FF FF FF 00:  4th byte has no effect on underthrows

 

yes, I have looked into this a lot, but it's been a while.  keep up the good work.  

would you be interested in this spreadsheet?  it breaks down 4 four bytes of PC for each skill (6-100).  it has SET commands, but I usually just copy and paste by hand.

 

post-5602-0-13995500-1364998421_thumb.pn

Link to comment
Share on other sites

  • 2 months later...

ok, love this thread and the PA hack is the best.


 


But, after looking at the attributes of the starting QBs of NES TSB - I'm thinking that PC should have been "completion/int" and PA should be "target ability".


 


(I understand that PC is more complicated, because of the "stuff" at x2BE14 (as noted above in the last few posts); and PA is just 16 values that get used in a calculation.)


 


Is there a simple way to re-assign the player PA attribute so that it points to the "PC table" at x2BE14 and is used for "on target"? And likewise, have the player PC attribute point to the "PA values" and be used as the "completion/int" variable?


 


yes - from jstout:



 


 


Change x29FEC from x87 to x88 and change the x88 to x87 in the PC/PA hack to reverse the values. 

 


(ps - this is a reference to the thread I started: http://tecmobowl.org/topic/55328-possible-to-swap-pc-and-pa-nes-tsb/?hl=%2Battributes , but I realized maybe this here thread would be better place to raise the question instead)


 


 


EDIT - added jstout solution!


Edited by buck
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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...