Jump to content
bruddog

Hack to load in starters, playbook, conditions at game start.

Recommended Posts

NOTE: HACK IS NOT CURRENTLY ABLE TO BE USED ON 32 TEAM ROM. Currently on the 32 team rom there is something to do with player swapping there. 


 


This a better alternative to my conditions injection program. This hack lets a league place conditions at a place in the rom so that they will be loaded at game startup. Obviously this hack is for online league play or for someone with a power pak. The downside of this hack the way it stands now is you would have to set up your starters and playbook before the game started and load them in along with the conditions. If you tried to set your guys in the team data screen they would get reset to the values below at the coin toss and you'd have to change them in game. I'm pretty sure this works as intended with no side effects but I'm sure maybe someone can find something. 


 


 


 


@ 21DAA


Set 0x A000E065900CB9E7BF99FD65C8C01390F560B9D4BF99F864C8C01390F560EAEA


 


Player 1   PlayBook,Starter plus Conditions


@23FE4  01 04 60 20 02 36 7A 59 00 00 00 FF FF FF FF FF FF FF FF  (sample everyone in excellent)


 


Player 2   PlayBook,Starter plus Conditions


@23FF7  01 04 60 20 02 36 7A 59 00 00 00 FF FF FF FF FF FF FF FF  (sample everyone in excellent)


 


A0 00                    // set Y index to 0


E0 65                   // compare x to #65 This is checking to see which routine we came from to know which players to load


90 0C                   // if x less than 65 branch to player 1 loop


 


PLAYER 2 LOOP:


B9 E7 BF             // load value at x23FF7 + Y 


99 FD 65             // store value in SRAM  at 65FD +Y 


C8                       // increase Y


C0 13                  // compare Y with 0x13


90  F5                 // if less than 13 branch back to player 2 LOOP start 


60                       // return


 


PLAYER 1 LOOP


B9 D4 BF         // load value at x23FE4 + Y 


99 F8 64          // store value in SRAM at 64F8


C8                   //increase Y


C0 13              // compare Y with 0x13


90 F5              // if less than 13 branch back to player 1 LOOP start 


60                   // return 


 


EA EA            // no op filler bytes


Share this post


Link to post
Share on other sites

With the playbook hack, that shouldn't be much of an issue. People can just edit their playbook when they first get the ball. Good stuff sir.

I'm assuming the FF FF etc represent the conditions of each player. What are the values for the conditions that aren't excellent?

Edited by Kweh

Share this post


Link to post
Share on other sites

I had to read through a couple of times to understand what you're trying to do here.


############  TSB TOOL COMMANDS ##############

 

******** Initial Game Logic Function ***********

@ 21DAA

Set 0x A000E065900DB9E7BF99FD65C8C01390F560B9D4BF99F864C8C01390F560EAEA

 

********** Player 1 and Player 2 Initial Game Conditions ***************

Player 1   PlayBook,Starter plus Conditions

@23FE4  01 04 60 20 02 36 7A 59 00 00 00 FF FF FF FF FF FF FF FF  (sample everyone in excellent)

 

Player 2   PlayBook,Starter plus Conditions

@23FF7  01 04 60 20 02 36 7A 59 00 00 00 FF FF FF FF FF FF FF FF  (sample everyone in excellent)

 

 

############  Explanation of Initial Game Logic Function ##############

 

A0 00                    // set Y index to 0

E0 65                   // compare x to #65 This is checking to see which routine we came from to know which players to load

90 0D                   // if x less than 65 branch to player 1 loop

 

PLAYER 2 LOOP:

B9 E7 BF             // load value at x23FF7 + Y 

99 FD 65             // store value in SRAM  at 65FD +Y 

C8                       // increase Y

C0 13                  // compare Y with 0x13

90  F5                 // if less than 13 branch back to player 2 LOOP start 

60                       // return

 

PLAYER 1 LOOP

B9 D4 BF         // load value at x23FE4 + Y 

99 F8 64          // store value in SRAM at 64F8

C8                   //increase Y

C0 13              // compare Y with 0x13

90 F5              // if less than 13 branch back to player 1 LOOP start 

60                   // return 

 

EA EA            // no op filler bytes

Share this post


Link to post
Share on other sites

Those are the same things. TSBTOOL command(s) is/are simply the hex offset(s) followed by the byte(s) to paste in. 


 




ah, so are the tsbtool commands locations not the actual hex offsets i'd find in a rom using a regular hex editor?



Share this post


Link to post
Share on other sites

ok, so my next question is do the p1 and p2 have to be specific to those locations or can any empty space be used?


 


i'm assuming those are the locations that you're referring to when you say our rom can't fit this hack.


Share this post


Link to post
Share on other sites

just so it's known to passers by that this also inserts injuries and as a reference for me in the future.


 


@ 23FE4 and @23FF7 the first 4 bytes are playbook entries.  straight forward each digit represents a particular play.  8 plays in each slot to choose from (0-7).


 


the next 3 bytes are the starters line.  12 starters correspond to hex digits 0-D.  qb1 = 0, qb2 = 1, rb1 = 2, etc.  the next byte assigns KR and PR based on starter position (0-D)


 


the next 3 bytes are injuries.  this isn't as straight forward (for someone like me), but that's where they are.


 


then of course, the final 8 bytes are conditions.


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.

×