Attached is a rom stripped down to only display the TSB Game Field with the source code. I'm only posting this since it might make it easier for someone to edit the game field.
Controller: Pressing left and right will make the field scroll and pressing up and down will change the crowd animations. Animations are 0 = cheerleaders and no crowd movement, 1 = cheerleader celebration and crowd movement, 2 and 3 = cheerleaders and crowd movement then the next animation cycles back to 0.
The game field data is located at x2010-x2B38 and needs to be pasted to x2C419-x2CF41 in an actual TSB rom. The graphics would need to be copied over as well.
**Note the rom does absolutely nothing but display the game field using code from the actual game.
x33F70: ($9F60) A6 6E LDX $006E ; GET TEAM NUMBER BD AE 9F LDA $9FAE,X ; GET TEAM DEFENSE F0 07 BEQ :+ ; 43 DEFENSE A9 1D LDA #$1D ; POINTER LOCATION A2 2F LDX #$2F ; BANK NUMBER 4C 06 84 JMP $8406 ; 34 DEFENSE A9 1D : LDA #$1D ; POINTER LOCATION A2 0F LDX #$0F ; BANK NUMBER 4C 06 84 JMP $8406
x32425: ; GOTO DRAW NUMBERS ON FORMATION 4C 20 9F JMP $9F20 EA NOP
x33F30: ($9F20) A6 6E LDX $006E ; GET TEAM NUMBER BD AE 9F LDA $9FAE,X ; GET TEAM DEFENSE F0 2F BEQ :++ ; 43 DEFENSE A0 00 LDY #$00 A2 00 LDX #$00 B9 E6 9F : LDA $9FE6,Y ; NUMBER LOCATION Y 9D 10 02 STA $0210,X 9D 14 02 STA $0214,X B9 E7 9F LDA $9FE6+1,Y ; NUMBER LOCATION X 9D 13 02 STA $0213,X 18 CLC 69 08 ADC #$08 9D 17 02 STA $0217,X A9 00 LDA #$00 9D 12 02 STA $0212,X 9D 16 02 STA $0216,X C8 INY C8 INY 8A TXA 18 CLC 69 08 ADC #$08 AA TAX E0 58 CPX #$58 90 D8 BCC :- 4C 41 84 JMP $8441 ; 34 DEFENSE A0 00 : LDY #$00 A2 00 LDX #$00 4C 19 84 JMP $8419
x3246D: ; GOTO DRAW NAMES 4C 80 9F JMP $9F80 EA NOP EA NOP EA NOP EA NOP EA NOP EA NOP EA NOP EA NOP
x33F90: ($9F80) A6 6E LDX $006E ; GET TEAM NUMBER BD AE 9F LDA $9FAE,X ; GET TEAM DEFENSE F0 0E BEQ :+ ; 43 DEFENSE A5 8E LDA $008E 0A ASL AA TAX BC D0 9F LDY $9FD0,X ; NAME LOCATION LO BD D1 9F LDA $9FD0+1,X ; NAME LOCATION HI AA TAX 4C 68 84 JMP $8468 ; 34 DEFENSE A5 8E : LDA $008E 0A ASL AA TAX BC EF 84 LDY $84EF,X ; NAME LOCATION LO BD F0 84 LDA $84EF+1,X ; NAME LOCATION HI AA TAX 4C 68 84 JMP $8468
x33FBE: ($9FAE) .BYTE 01,01,00,00,01,00,00,00,00,01,01,00,00,01,01,00 ; AFC EAST-WEST .BYTE 01,01,01,00,01,01,01,01,01,01,01,01 ; NFC EAST-CENTRAL .BYTE 01,01 ; PRO BOWL .BYTE 00,01,01,01 ; NFC WEST
; VALUES USED TO PUT BLANK SPACES ON SCREEN x324B8,x324BA, x324BC,x324C0 ; LOCATION LO,LOCATION HI, Y LENGTH,X LENGTH x324C7,x324C9, x324CB,x324CF ; LOCATION LO,LOCATION HI, Y LENGTH,X LENGTH x324D6,x324D8, x324DA,x324DE ; LOCATION LO,LOCATION HI, Y LENGTH,X LENGTH
; IN EXPANDED AREA FOR 43 DEFENSE x5E04A: .BYTE 29,AA ; POINTER TO SCREEN TEXT and GRAPHICS x5EA39-x5EB16 ; SCREEN TEXT and GRAPHICS (copied and edited from x1EA39-x1EB16)
On the original rom: For the defensive starters page: x33FC0-x33FDD where x00 = 34 and x01 = 43 For the game field: x400E0-x400FD where x02 = 34 and x22 = 43
Team order is BUF-ATL, AFC PRO BOWL, NFC PRO BOWL
On the 32 team rom: For the defensive starters page: x33FBE-x33FDF where x00 = 34 and x01 = 43 For the game field: x400DE-x400FF where x02 = 34 and x22 = 43
Team order is BUF-CAR, AFC PRO BOWL, NFC PRO BOWL, SF-ARZ
The game has code that checks positioning for the players and the ball.
From my field notes: Top of Field (Movement): x3DB0E Bottom of Field (Movement): x3DB05 Top Sideline (Out of Bounds): x25118 Bottom Sideline (Out of Bounds): x2511C Back of the Endzone (Movement): Player 1: x3DB33/x3DB37 Player 2: x3DB48/x3DB4C Back of the Endzone (Pass): Player 1: x2A88F/x2A88C and x2A89E/x2A898 Player 2: x2A8CB/x2A8C8 and x2A8DA/x2A8D4 Back of Endzone (Fumble): Player 1: x2DC6E/x2DC6A Player 2: x2DC78/x2DC74
I'm satisfied with the code and believe everything should work right. It is fairly adjustable so if slight modifications need to be done it won't be that hard. Let me know what you guys think. Formation_Adjust.zip
On the original rom: For the defensive starters page: x33FC0-x33FDD where x00 = 34 and x01 = 43 For the game field: x400E0-x400FD where x02 = 34 and x22 = 43
Team order is BUF-ATL, AFC PRO BOWL, NFC PRO BOWL
On the 32 team rom: For the defensive starters page: x33FBE-x33FDF where x00 = 34 and x01 = 43 For the game field: x400DE-x400FF where x02 = 34 and x22 = 43
Team order is BUF-CAR, AFC PRO BOWL, NFC PRO BOWL, SF-ARZ
Yes, the code would look nearly the same with just RAM locations changed and ability to use 16-bit numbers. I'll see about writing it up when I get the chance.
BTW, I do have a ROM with the Radial code but need to find it on my hard drive (or recompile) and then I'll post it.
Patching the rom won't work right. The simplest method is with a hex editor doing below.
First make a copy of the 28_2D rom.
COPY from YOUR ROM: x0 to x4000F PASTE to COPY OF 2D ROM: x0 to x4000F and SAVE
COPY from YOUR ROM: x3C010 to x6000F PASTE to COPY OF 2D ROM: x7C010 to xA000F and SAVE
CHANGE on COPY OF 2D ROM the following to be the same as the 28_2D rom then SAVE: x4 to x4 (1 bytes) x256E3 to x25709 (39 bytes) x25723 to x25736 (20 bytes) x25784 to x2578E (11 bytes) x257C4 to x257CE (11 bytes) x2802B to x28036 (12 bytes) x2889C to x288AD (18 bytes) x32412 to x32415 (4 bytes) x32425 to x32428 (4 bytes) x3246D to x32477 (11 bytes) x324B8 to x324B8 (1 bytes) x324BC to x324BC (1 bytes) x324C7 to x324C7 (1 bytes) x324CB to x324CB (1 bytes) x324D6 to x324D6 (1 bytes) x324DA to x324DA (1 bytes) x328BA to x328BA (1 bytes) x33F30 to x33F6C (61 bytes) x33F70 to x33F84 (21 bytes) x33F90 to x33FB2 (35 bytes) x33FC0 to x33FDD (30 bytes) x33FE0 to x3400B (44 bytes)
I don't remember all the changes but finding them should be extremely simple.
Set breakpoints for offense of reads to:
Special Teams/Formation Pointers (11 Pointers): $A000-$A1E3
Play Pointers (11 Pointers): $A400-$ABE7
Extra Pointers (12 Pointers): $AE00-$AF7F
Set breakpoints for defense of reads to:
Play Pointers (11 Pointers): $A000-$B5E9
Extra Pointers (12 Pointers): $B600-$B77F
After a fast check: (remember your extra pointers need 8 pointers for the 7 players like my CIFL rom had)
The pointers needs the X index changed from x0B to x07 at x2573B and at x25810. Could be it or even a few more spots but you should be able to figure it out with breakpoints.
sav file location listed (during game must add x6000 to value)
During a game (Stats Format is different from below, I'll detail later): x406 to x50A = Player 1 Stats, Injuries, and Conditions x50B to x60F = Player 2 Stats, Injuries, and Conditions
x69B to x6B6 = Team player type (Season) x00 = MAN x01 = COA x02 = COM x03 = SKP
x6BE = SAV File Checksum
x758 = Current Game Week (Season) x759 = Current Game # (Season) x75A to x775 = Current Week Matchups (Team #s in hex)
Team Start Locations: BUF = x7AE IND = x87E MIA = x94E NE = xA1E JETS = xAEE CIN = xBBE CLE = xC8E HOU = xD5E PIT =xE2E DEN = x1002 KC = x10D2 RAI = x11A2 SD = x1272 SEA = x1342 WAS = x1412 GIA = x14E2 PHI = x15B2 PHX = x1682 DAL = x1752 CHI = x1822 DET = x18F2 GB = x19C2 MIN = x1A92 TB = x1B62 SF = x1C32 RAMS = x1D02 NO = x1DD2 ATL = x1EA2
Buffalo Bills Info: QB1: x7AE = Passing Attempts (x00 to xFF) (Passing Attempts + Modifier displayed) x7AF = Passing Completions (x00 to xFF) (Passing Completions + Modifier displayed) x7B0 = Passing TDs and Passing Attempts Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... x7B1 = Passing INTs and Passing Completions Modifier (x00 to xFF) x00 = 0 INTs and Modifier 256 * 0 x01 = 0 INTs and Modifier 256 * 1 x02 = 0 INTs and Modifier 256 * 2 x03 = 0 INTs and Modifier 256 * 3 x04 = 1 INTs and Modifier 256 * 0 ... x7B2 = Passing Yards (x00 to xFF) (Passing Yards + Modifier displayed) x7B3 = Rushing Attempts (x00 to xFF) x7B4 = Rushing Yards (x00 to xFF) (Rushing Yards + Modifier displayed) x7B5 = Passing Yards Modifier and Rushing Yards Modifier (x00 to xFF) x00 = Passing Modifier 256 * 0 and Rushing Modifier 256 * 0 x01 = Passing Modifier 256 * 0 and Rushing Modifier 256 * 1 x02 = Passing Modifier 256 * 0 and Rushing Modifier 256 * 2 x03 = Passing Modifier 256 * 0 and Rushing Modifier 256 * 3 x04 = Passing Modifier 256 * 0 and Rushing Modifier 256 * 4 x05 = Passing Modifier 256 * 0 and Rushing Modifier 256 * 5 x06 = Passing Modifier 256 * 0 and Rushing Modifier 256 * 6 x07 = Passing Modifier 256 * 0 and Rushing Modifier 256 * 7 x08 = Passing Modifier 256 * 1 and Rushing Modifier 256 * 0 ... x7B6 = Rushing TDs (x00 to xFF where x00 to x03 = 0, x04 to x07 = 1, ...) QB2: x7B7 = Passing Attempts (x00 to xFF) (Passing Attempts + Modifier displayed) x7B8 = Passing Completions (x00 to xFF) (Passing Completions + Modifier displayed) x7B9 = Passing TDs and Passing Attempts Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... x7BA = Passing INTs and Passing Completions Modifier (x00 to xFF) x00 = 0 INTs and Modifier 256 * 0 x01 = 0 INTs and Modifier 256 * 1 x02 = 0 INTs and Modifier 256 * 2 x03 = 0 INTs and Modifier 256 * 3 x04 = 1 INTs and Modifier 256 * 0 ... x7BB = Passing Yards (x00 to xFF) (Passing Yards + Modifier displayed) x7BC = Rushing Attempts (x00 to xFF) x7BD = Rushing Yards (x00 to xFF) (Rushing Yards + Modifier displayed) x7BE = Passing Yards Modifier and Rushing Yards Modifier (x00 to xFF) x00 = Passing Modifier 256 * 0 and Rushing Modifier 256 * 0 x01 = Passing Modifier 256 * 0 and Rushing Modifier 256 * 1 x02 = Passing Modifier 256 * 0 and Rushing Modifier 256 * 2 x03 = Passing Modifier 256 * 0 and Rushing Modifier 256 * 3 x04 = Passing Modifier 256 * 0 and Rushing Modifier 256 * 4 x05 = Passing Modifier 256 * 0 and Rushing Modifier 256 * 5 x06 = Passing Modifier 256 * 0 and Rushing Modifier 256 * 6 x07 = Passing Modifier 256 * 0 and Rushing Modifier 256 * 7 x08 = Passing Modifier 256 * 1 and Rushing Modifier 256 * 0 ... x7BF = Rushing TDs (x00 to xFF where x00 to x03 = 0, x04 to x07 = 1, ...) RB1: x7C0 = Receptions (x00 to xFF) x7C1 = Receiving Yards (x00 to xFF) (Receiving Yards + Modifier displayed) x7C2 = Receiving TDs and Punt Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... x7C3 = Kick Returns (x00 to xFF) x00 = 0 Returns x01 = 0 Returns x02 = 1 Returns ... x7C4 = Kick Return Yards (x00 to xFF) (Kick Return Yards + Modifier displayed) x7C5 = Kick Return TDs and Kick Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 1 TDs and Modifier 256 * 0 ... x7C6 = Punt Returns and Rushing Yards Modifier (x00 to xFF) x00 = 0 Punt Returns and Modifier 256 * 0 x01 = 0 Punt Returns and Modifier 256 * 1 x02 = 0 Punt Returns and Modifier 256 * 2 x03 = 0 Punt Returns and Modifier 256 * 3 x04 = 1 Punt Returns and Modifier 256 * 0 ... x7C7 = Punt Return Yards (x00 to xFF) (Punt Return Yards + Modifier displayed) x7C8 = Punt Return TDs and Receiving Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 0 TDs and Modifier 256 * 8 x09 = 0 TDs and Modifier 256 * 9 x0A = 0 TDs and Modifier 256 * 10 x0B = 0 TDs and Modifier 256 * 11 x0C = 0 TDs and Modifier 256 * 12 x0D = 0 TDs and Modifier 256 * 13 x0E = 0 TDs and Modifier 256 * 14 x0F = 0 TDs and Modifier 256 * 15 x10 = 1 TDs and Modifier 256 * 0 ... x7C9 = Rush Attempts (x00 to xFF) x7CA = Rushing Yards (x00 to xFF) (Rushing Yards + Modifier is displayed) x7CB = Rushing TDs and Rushing Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... RB2: x7CC = Receptions (x00 to xFF) x7CD = Receiving Yards (x00 to xFF) (Receiving Yards + Modifier displayed) x7CE = Receiving TDs and Punt Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... x7CF = Kick Returns (x00 to xFF) x00 = 0 Returns x01 = 0 Returns x02 = 1 Returns ... x7D0 = Kick Return Yards (x00 to xFF) (Kick Return Yards + Modifier displayed) x7D1 = Kick Return TDs and Kick Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 1 TDs and Modifier 256 * 0 ... x7D2 = Punt Returns and Rushing Yards Modifier (x00 to xFF) x00 = 0 Punt Returns and Modifier 256 * 0 x01 = 0 Punt Returns and Modifier 256 * 1 x02 = 0 Punt Returns and Modifier 256 * 2 x03 = 0 Punt Returns and Modifier 256 * 3 x04 = 1 Punt Returns and Modifier 256 * 0 ... x7D3 = Punt Return Yards (x00 to xFF) (Punt Return Yards + Modifier displayed) x7D4 = Punt Return TDs and Receiving Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 0 TDs and Modifier 256 * 8 x09 = 0 TDs and Modifier 256 * 9 x0A = 0 TDs and Modifier 256 * 10 x0B = 0 TDs and Modifier 256 * 11 x0C = 0 TDs and Modifier 256 * 12 x0D = 0 TDs and Modifier 256 * 13 x0E = 0 TDs and Modifier 256 * 14 x0F = 0 TDs and Modifier 256 * 15 x10 = 1 TDs and Modifier 256 * 0 ... x7D5 = Rush Attempts (x00 to xFF) x7D6 = Rushing Yards (x00 to xFF) (Rushing Yards + Modifier is displayed) x7D7 = Rushing TDs and Rushing Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... RB3: x7D8 = Receptions (x00 to xFF) x7D9 = Receiving Yards (x00 to xFF) (Receiving Yards + Modifier displayed) x7DA = Receiving TDs and Punt Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... x7DB = Kick Returns (x00 to xFF) x00 = 0 Returns x01 = 0 Returns x02 = 1 Returns ... x7DC = Kick Return Yards (x00 to xFF) (Kick Return Yards + Modifier displayed) x7DD = Kick Return TDs and Kick Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 1 TDs and Modifier 256 * 0 ... x7DE = Punt Returns and Rushing Yards Modifier (x00 to xFF) x00 = 0 Punt Returns and Modifier 256 * 0 x01 = 0 Punt Returns and Modifier 256 * 1 x02 = 0 Punt Returns and Modifier 256 * 2 x03 = 0 Punt Returns and Modifier 256 * 3 x04 = 1 Punt Returns and Modifier 256 * 0 ... x7DF = Punt Return Yards (x00 to xFF) (Punt Return Yards + Modifier displayed) x7E0 = Punt Return TDs and Receiving Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 0 TDs and Modifier 256 * 8 x09 = 0 TDs and Modifier 256 * 9 x0A = 0 TDs and Modifier 256 * 10 x0B = 0 TDs and Modifier 256 * 11 x0C = 0 TDs and Modifier 256 * 12 x0D = 0 TDs and Modifier 256 * 13 x0E = 0 TDs and Modifier 256 * 14 x0F = 0 TDs and Modifier 256 * 15 x10 = 1 TDs and Modifier 256 * 0 ... x7E1 = Rush Attempts (x00 to xFF) x7E2 = Rushing Yards (x00 to xFF) (Rushing Yards + Modifier is displayed) x7E3 = Rushing TDs and Rushing Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... RB4: x7E4 = Receptions (x00 to xFF) x7E5 = Receiving Yards (x00 to xFF) (Receiving Yards + Modifier displayed) x7E6 = Receiving TDs and Punt Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... x7E7 = Kick Returns (x00 to xFF) x00 = 0 Returns x01 = 0 Returns x02 = 1 Returns ... x7E8 = Kick Return Yards (x00 to xFF) (Kick Return Yards + Modifier displayed) x7E9 = Kick Return TDs and Kick Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 1 TDs and Modifier 256 * 0 ... x7EA = Punt Returns and Rushing Yards Modifier (x00 to xFF) x00 = 0 Punt Returns and Modifier 256 * 0 x01 = 0 Punt Returns and Modifier 256 * 1 x02 = 0 Punt Returns and Modifier 256 * 2 x03 = 0 Punt Returns and Modifier 256 * 3 x04 = 1 Punt Returns and Modifier 256 * 0 ... x7EB = Punt Return Yards (x00 to xFF) (Punt Return Yards + Modifier displayed) x7EC = Punt Return TDs and Receiving Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 0 TDs and Modifier 256 * 8 x09 = 0 TDs and Modifier 256 * 9 x0A = 0 TDs and Modifier 256 * 10 x0B = 0 TDs and Modifier 256 * 11 x0C = 0 TDs and Modifier 256 * 12 x0D = 0 TDs and Modifier 256 * 13 x0E = 0 TDs and Modifier 256 * 14 x0F = 0 TDs and Modifier 256 * 15 x10 = 1 TDs and Modifier 256 * 0 ... x7ED = Rush Attempts (x00 to xFF) x7EE = Rushing Yards (x00 to xFF) (Rushing Yards + Modifier is displayed) x7EF = Rushing TDs and Rushing Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... WR1: x7F0 = Receptions (x00 to xFF) x7F1 = Receiving Yards (x00 to xFF) (Receiving Yards + Modifier displayed) x7F2 = Receiving TDs and Punt Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... x7F3 = Kick Returns (x00 to xFF) x00 = 0 Returns x01 = 0 Returns x02 = 1 Returns ... x7F4 = Kick Return Yards (x00 to xFF) (Kick Return Yards + Modifier displayed) x7F5 = Kick Return TDs and Kick Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 1 TDs and Modifier 256 * 0 ... x7F6 = Punt Returns and Rushing Yards Modifier (x00 to xFF) x00 = 0 Punt Returns and Modifier 256 * 0 x01 = 0 Punt Returns and Modifier 256 * 1 x02 = 0 Punt Returns and Modifier 256 * 2 x03 = 0 Punt Returns and Modifier 256 * 3 x04 = 1 Punt Returns and Modifier 256 * 0 ... x7F7 = Punt Return Yards (x00 to xFF) (Punt Return Yards + Modifier displayed) x7F8 = Punt Return TDs and Receiving Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 0 TDs and Modifier 256 * 8 x09 = 0 TDs and Modifier 256 * 9 x0A = 0 TDs and Modifier 256 * 10 x0B = 0 TDs and Modifier 256 * 11 x0C = 0 TDs and Modifier 256 * 12 x0D = 0 TDs and Modifier 256 * 13 x0E = 0 TDs and Modifier 256 * 14 x0F = 0 TDs and Modifier 256 * 15 x10 = 1 TDs and Modifier 256 * 0 ... x7F9 = Rush Attempts (x00 to xFF) x7FA = Rushing Yards (x00 to xFF) (Rushing Yards + Modifier is displayed) x7FB = Rushing TDs and Rushing Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... WR2: x7FC = Receptions (x00 to xFF) x7FD = Receiving Yards (x00 to xFF) (Receiving Yards + Modifier displayed) x7FE = Receiving TDs and Punt Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... x7FF = Kick Returns (x00 to xFF) x00 = 0 Returns x01 = 0 Returns x02 = 1 Returns ... x800 = Kick Return Yards (x00 to xFF) (Kick Return Yards + Modifier displayed) x801 = Kick Return TDs and Kick Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 1 TDs and Modifier 256 * 0 ... x802 = Punt Returns and Rushing Yards Modifier (x00 to xFF) x00 = 0 Punt Returns and Modifier 256 * 0 x01 = 0 Punt Returns and Modifier 256 * 1 x02 = 0 Punt Returns and Modifier 256 * 2 x03 = 0 Punt Returns and Modifier 256 * 3 x04 = 1 Punt Returns and Modifier 256 * 0 ... x803 = Punt Return Yards (x00 to xFF) (Punt Return Yards + Modifier displayed) x804 = Punt Return TDs and Receiving Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 0 TDs and Modifier 256 * 8 x09 = 0 TDs and Modifier 256 * 9 x0A = 0 TDs and Modifier 256 * 10 x0B = 0 TDs and Modifier 256 * 11 x0C = 0 TDs and Modifier 256 * 12 x0D = 0 TDs and Modifier 256 * 13 x0E = 0 TDs and Modifier 256 * 14 x0F = 0 TDs and Modifier 256 * 15 x10 = 1 TDs and Modifier 256 * 0 ... x805 = Rush Attempts (x00 to xFF) x806 = Rushing Yards (x00 to xFF) (Rushing Yards + Modifier is displayed) x807 = Rushing TDs and Rushing Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... WR3: x808 = Receptions (x00 to xFF) x809 = Receiving Yards (x00 to xFF) (Receiving Yards + Modifier displayed) x80A = Receiving TDs and Punt Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... x80B = Kick Returns (x00 to xFF) x00 = 0 Returns x01 = 0 Returns x02 = 1 Returns ... x80C = Kick Return Yards (x00 to xFF) (Kick Return Yards + Modifier displayed) x80D = Kick Return TDs and Kick Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 1 TDs and Modifier 256 * 0 ... x80E = Punt Returns and Rushing Yards Modifier (x00 to xFF) x00 = 0 Punt Returns and Modifier 256 * 0 x01 = 0 Punt Returns and Modifier 256 * 1 x02 = 0 Punt Returns and Modifier 256 * 2 x03 = 0 Punt Returns and Modifier 256 * 3 x04 = 1 Punt Returns and Modifier 256 * 0 ... x80F = Punt Return Yards (x00 to xFF) (Punt Return Yards + Modifier displayed) x810 = Punt Return TDs and Receiving Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 0 TDs and Modifier 256 * 8 x09 = 0 TDs and Modifier 256 * 9 x0A = 0 TDs and Modifier 256 * 10 x0B = 0 TDs and Modifier 256 * 11 x0C = 0 TDs and Modifier 256 * 12 x0D = 0 TDs and Modifier 256 * 13 x0E = 0 TDs and Modifier 256 * 14 x0F = 0 TDs and Modifier 256 * 15 x10 = 1 TDs and Modifier 256 * 0 ... x811 = Rush Attempts (x00 to xFF) x812 = Rushing Yards (x00 to xFF) (Rushing Yards + Modifier is displayed) x813 = Rushing TDs and Rushing Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... WR4: x814 = Receptions (x00 to xFF) x815 = Receiving Yards (x00 to xFF) (Receiving Yards + Modifier displayed) x816 = Receiving TDs and Punt Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... x817 = Kick Returns (x00 to xFF) x00 = 0 Returns x01 = 0 Returns x02 = 1 Returns ... x818 = Kick Return Yards (x00 to xFF) (Kick Return Yards + Modifier displayed) x819 = Kick Return TDs and Kick Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 1 TDs and Modifier 256 * 0 ... x81A = Punt Returns and Rushing Yards Modifier (x00 to xFF) x00 = 0 Punt Returns and Modifier 256 * 0 x01 = 0 Punt Returns and Modifier 256 * 1 x02 = 0 Punt Returns and Modifier 256 * 2 x03 = 0 Punt Returns and Modifier 256 * 3 x04 = 1 Punt Returns and Modifier 256 * 0 ... x81B = Punt Return Yards (x00 to xFF) (Punt Return Yards + Modifier displayed) x81C = Punt Return TDs and Receiving Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 0 TDs and Modifier 256 * 8 x09 = 0 TDs and Modifier 256 * 9 x0A = 0 TDs and Modifier 256 * 10 x0B = 0 TDs and Modifier 256 * 11 x0C = 0 TDs and Modifier 256 * 12 x0D = 0 TDs and Modifier 256 * 13 x0E = 0 TDs and Modifier 256 * 14 x0F = 0 TDs and Modifier 256 * 15 x10 = 1 TDs and Modifier 256 * 0 ... x81D = Rush Attempts (x00 to xFF) x81E = Rushing Yards (x00 to xFF) (Rushing Yards + Modifier is displayed) x81F = Rushing TDs and Rushing Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... TE1: x820 = Receptions (x00 to xFF) x821 = Receiving Yards (x00 to xFF) (Receiving Yards + Modifier displayed) x822 = Receiving TDs and Punt Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... x823 = Kick Returns (x00 to xFF) x00 = 0 Returns x01 = 0 Returns x02 = 1 Returns ... x824 = Kick Return Yards (x00 to xFF) (Kick Return Yards + Modifier displayed) x825 = Kick Return TDs and Kick Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 1 TDs and Modifier 256 * 0 ... x826 = Punt Returns and Rushing Yards Modifier (x00 to xFF) x00 = 0 Punt Returns and Modifier 256 * 0 x01 = 0 Punt Returns and Modifier 256 * 1 x02 = 0 Punt Returns and Modifier 256 * 2 x03 = 0 Punt Returns and Modifier 256 * 3 x04 = 1 Punt Returns and Modifier 256 * 0 ... x827 = Punt Return Yards (x00 to xFF) (Punt Return Yards + Modifier displayed) x828 = Punt Return TDs and Receiving Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 0 TDs and Modifier 256 * 8 x09 = 0 TDs and Modifier 256 * 9 x0A = 0 TDs and Modifier 256 * 10 x0B = 0 TDs and Modifier 256 * 11 x0C = 0 TDs and Modifier 256 * 12 x0D = 0 TDs and Modifier 256 * 13 x0E = 0 TDs and Modifier 256 * 14 x0F = 0 TDs and Modifier 256 * 15 x10 = 1 TDs and Modifier 256 * 0 ... x829 = Rush Attempts (x00 to xFF) x82A = Rushing Yards (x00 to xFF) (Rushing Yards + Modifier is displayed) x82B = Rushing TDs and Rushing Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... TE2: x82C = Receptions (x00 to xFF) x82D = Receiving Yards (x00 to xFF) (Receiving Yards + Modifier displayed) x82E = Receiving TDs and Punt Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... x82F = Kick Returns (x00 to xFF) x00 = 0 Returns x01 = 0 Returns x02 = 1 Returns ... x830 = Kick Return Yards (x00 to xFF) (Kick Return Yards + Modifier displayed) x831 = Kick Return TDs and Kick Return Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 1 TDs and Modifier 256 * 0 ... x832 = Punt Returns and Rushing Yards Modifier (x00 to xFF) x00 = 0 Punt Returns and Modifier 256 * 0 x01 = 0 Punt Returns and Modifier 256 * 1 x02 = 0 Punt Returns and Modifier 256 * 2 x03 = 0 Punt Returns and Modifier 256 * 3 x04 = 1 Punt Returns and Modifier 256 * 0 ... x833 = Punt Return Yards (x00 to xFF) (Punt Return Yards + Modifier displayed) x834 = Punt Return TDs and Receiving Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 0 TDs and Modifier 256 * 4 x05 = 0 TDs and Modifier 256 * 5 x06 = 0 TDs and Modifier 256 * 6 x07 = 0 TDs and Modifier 256 * 7 x08 = 0 TDs and Modifier 256 * 8 x09 = 0 TDs and Modifier 256 * 9 x0A = 0 TDs and Modifier 256 * 10 x0B = 0 TDs and Modifier 256 * 11 x0C = 0 TDs and Modifier 256 * 12 x0D = 0 TDs and Modifier 256 * 13 x0E = 0 TDs and Modifier 256 * 14 x0F = 0 TDs and Modifier 256 * 15 x10 = 1 TDs and Modifier 256 * 0 ... x835 = Rush Attempts (x00 to xFF) x836 = Rushing Yards (x00 to xFF) (Rushing Yards + Modifier is displayed) x837 = Rushing TDs and Rushing Yards Modifier (x00 to xFF) x00 = 0 TDs and Modifier 256 * 0 x01 = 0 TDs and Modifier 256 * 1 x02 = 0 TDs and Modifier 256 * 2 x03 = 0 TDs and Modifier 256 * 3 x04 = 1 TDs and Modifier 256 * 0 ... RE: x838 = Sacks and INT Modifier (x00 to xFF) x00 = 0 Sacks and Modifier 16 * 0 x01 = 0 Sacks and Modifier 16 * 1 x02 = 1 Sacks and Modifier 16 * 0 ... x839 = INTs, INT TDs, and INT Yards Modifier (x00 to xFF) (INTs + Modifier is displayed) x00 = 0 INTs, 0 TDs, and Modifier 256 * 0 x01 = 0 INTs, 0 TDs, and Modifier 256 * 1 x02 = 0 INTs, 1 TDs, and Modifier 256 * 0 x03 = 0 INTs, 1 TDs, and Modifier 256 * 1 x04 = 0 INTs, 2 TDs, and Modifier 256 * 0 x05 = 0 INTs, 2 TDs, and Modifier 256 * 1 x06 = 0 INTs, 3 TDs, and Modifier 256 * 0 x07 = 0 INTs, 3 TDs, and Modifier 256 * 1 x08 = 0 INTs, 4 TDs, and Modifier 256 * 0 x09 = 0 INTs, 4 TDs, and Modifier 256 * 1 x0A = 0 INTs, 5 TDs, and Modifier 256 * 0 x0B = 0 INTs, 5 TDs, and Modifier 256 * 1 x0C = 0 INTs, 6 TDs, and Modifier 256 * 0 x0D = 0 INTs, 6 TDs, and Modifier 256 * 1 x0E = 0 INTs, 7 TDs, and Modifier 256 * 0 x0F = 0 INTs, 7 TDs, and Modifier 256 * 1 x10 = 1 INTs, 0 TDs, and Modifier 256 * 0 ... x83A = INT Yards (x00 to xFF) (INT Yards + Modifier is displayed) NT: x83B = Sacks and INT Modifier (x00 to xFF) x00 = 0 Sacks and Modifier 16 * 0 x01 = 0 Sacks and Modifier 16 * 1 x02 = 1 Sacks and Modifier 16 * 0 ... x83C = INTs, INT TDs, and INT Yards Modifier (x00 to xFF) (INTs + Modifier is displayed) x00 = 0 INTs, 0 TDs, and Modifier 256 * 0 x01 = 0 INTs, 0 TDs, and Modifier 256 * 1 x02 = 0 INTs, 1 TDs, and Modifier 256 * 0 x03 = 0 INTs, 1 TDs, and Modifier 256 * 1 x04 = 0 INTs, 2 TDs, and Modifier 256 * 0 x05 = 0 INTs, 2 TDs, and Modifier 256 * 1 x06 = 0 INTs, 3 TDs, and Modifier 256 * 0 x07 = 0 INTs, 3 TDs, and Modifier 256 * 1 x08 = 0 INTs, 4 TDs, and Modifier 256 * 0 x09 = 0 INTs, 4 TDs, and Modifier 256 * 1 x0A = 0 INTs, 5 TDs, and Modifier 256 * 0 x0B = 0 INTs, 5 TDs, and Modifier 256 * 1 x0C = 0 INTs, 6 TDs, and Modifier 256 * 0 x0D = 0 INTs, 6 TDs, and Modifier 256 * 1 x0E = 0 INTs, 7 TDs, and Modifier 256 * 0 x0F = 0 INTs, 7 TDs, and Modifier 256 * 1 x10 = 1 INTs, 0 TDs, and Modifier 256 * 0 ... x83D = INT Yards (x00 to xFF) (INT Yards + Modifier is displayed) LE: x83E = Sacks and INT Modifier (x00 to xFF) x00 = 0 Sacks and Modifier 16 * 0 x01 = 0 Sacks and Modifier 16 * 1 x02 = 1 Sacks and Modifier 16 * 0 ... x83F = INTs, INT TDs, and INT Yards Modifier (x00 to xFF) (INTs + Modifier is displayed) x00 = 0 INTs, 0 TDs, and Modifier 256 * 0 x01 = 0 INTs, 0 TDs, and Modifier 256 * 1 x02 = 0 INTs, 1 TDs, and Modifier 256 * 0 x03 = 0 INTs, 1 TDs, and Modifier 256 * 1 x04 = 0 INTs, 2 TDs, and Modifier 256 * 0 x05 = 0 INTs, 2 TDs, and Modifier 256 * 1 x06 = 0 INTs, 3 TDs, and Modifier 256 * 0 x07 = 0 INTs, 3 TDs, and Modifier 256 * 1 x08 = 0 INTs, 4 TDs, and Modifier 256 * 0 x09 = 0 INTs, 4 TDs, and Modifier 256 * 1 x0A = 0 INTs, 5 TDs, and Modifier 256 * 0 x0B = 0 INTs, 5 TDs, and Modifier 256 * 1 x0C = 0 INTs, 6 TDs, and Modifier 256 * 0 x0D = 0 INTs, 6 TDs, and Modifier 256 * 1 x0E = 0 INTs, 7 TDs, and Modifier 256 * 0 x0F = 0 INTs, 7 TDs, and Modifier 256 * 1 x10 = 1 INTs, 0 TDs, and Modifier 256 * 0 ... x840 = INT Yards (x00 to xFF) (INT Yards + Modifier is displayed) ROLB: x841 = Sacks and INT Modifier (x00 to xFF) x00 = 0 Sacks and Modifier 16 * 0 x01 = 0 Sacks and Modifier 16 * 1 x02 = 1 Sacks and Modifier 16 * 0 ... x842 = INTs, INT TDs, and INT Yards Modifier (x00 to xFF) (INTs + Modifier is displayed) x00 = 0 INTs, 0 TDs, and Modifier 256 * 0 x01 = 0 INTs, 0 TDs, and Modifier 256 * 1 x02 = 0 INTs, 1 TDs, and Modifier 256 * 0 x03 = 0 INTs, 1 TDs, and Modifier 256 * 1 x04 = 0 INTs, 2 TDs, and Modifier 256 * 0 x05 = 0 INTs, 2 TDs, and Modifier 256 * 1 x06 = 0 INTs, 3 TDs, and Modifier 256 * 0 x07 = 0 INTs, 3 TDs, and Modifier 256 * 1 x08 = 0 INTs, 4 TDs, and Modifier 256 * 0 x09 = 0 INTs, 4 TDs, and Modifier 256 * 1 x0A = 0 INTs, 5 TDs, and Modifier 256 * 0 x0B = 0 INTs, 5 TDs, and Modifier 256 * 1 x0C = 0 INTs, 6 TDs, and Modifier 256 * 0 x0D = 0 INTs, 6 TDs, and Modifier 256 * 1 x0E = 0 INTs, 7 TDs, and Modifier 256 * 0 x0F = 0 INTs, 7 TDs, and Modifier 256 * 1 x10 = 1 INTs, 0 TDs, and Modifier 256 * 0 ... x843 = INT Yards (x00 to xFF) (INT Yards + Modifier is displayed) RILB: x844 = Sacks and INT Modifier (x00 to xFF) x00 = 0 Sacks and Modifier 16 * 0 x01 = 0 Sacks and Modifier 16 * 1 x02 = 1 Sacks and Modifier 16 * 0 ... x845 = INTs, INT TDs, and INT Yards Modifier (x00 to xFF) (INTs + Modifier is displayed) x00 = 0 INTs, 0 TDs, and Modifier 256 * 0 x01 = 0 INTs, 0 TDs, and Modifier 256 * 1 x02 = 0 INTs, 1 TDs, and Modifier 256 * 0 x03 = 0 INTs, 1 TDs, and Modifier 256 * 1 x04 = 0 INTs, 2 TDs, and Modifier 256 * 0 x05 = 0 INTs, 2 TDs, and Modifier 256 * 1 x06 = 0 INTs, 3 TDs, and Modifier 256 * 0 x07 = 0 INTs, 3 TDs, and Modifier 256 * 1 x08 = 0 INTs, 4 TDs, and Modifier 256 * 0 x09 = 0 INTs, 4 TDs, and Modifier 256 * 1 x0A = 0 INTs, 5 TDs, and Modifier 256 * 0 x0B = 0 INTs, 5 TDs, and Modifier 256 * 1 x0C = 0 INTs, 6 TDs, and Modifier 256 * 0 x0D = 0 INTs, 6 TDs, and Modifier 256 * 1 x0E = 0 INTs, 7 TDs, and Modifier 256 * 0 x0F = 0 INTs, 7 TDs, and Modifier 256 * 1 x10 = 1 INTs, 0 TDs, and Modifier 256 * 0 ... x846 = INT Yards (x00 to xFF) (INT Yards + Modifier is displayed) LILB: x847 = Sacks and INT Modifier (x00 to xFF) x00 = 0 Sacks and Modifier 16 * 0 x01 = 0 Sacks and Modifier 16 * 1 x02 = 1 Sacks and Modifier 16 * 0 ... x848 = INTs, INT TDs, and INT Yards Modifier (x00 to xFF) (INTs + Modifier is displayed) x00 = 0 INTs, 0 TDs, and Modifier 256 * 0 x01 = 0 INTs, 0 TDs, and Modifier 256 * 1 x02 = 0 INTs, 1 TDs, and Modifier 256 * 0 x03 = 0 INTs, 1 TDs, and Modifier 256 * 1 x04 = 0 INTs, 2 TDs, and Modifier 256 * 0 x05 = 0 INTs, 2 TDs, and Modifier 256 * 1 x06 = 0 INTs, 3 TDs, and Modifier 256 * 0 x07 = 0 INTs, 3 TDs, and Modifier 256 * 1 x08 = 0 INTs, 4 TDs, and Modifier 256 * 0 x09 = 0 INTs, 4 TDs, and Modifier 256 * 1 x0A = 0 INTs, 5 TDs, and Modifier 256 * 0 x0B = 0 INTs, 5 TDs, and Modifier 256 * 1 x0C = 0 INTs, 6 TDs, and Modifier 256 * 0 x0D = 0 INTs, 6 TDs, and Modifier 256 * 1 x0E = 0 INTs, 7 TDs, and Modifier 256 * 0 x0F = 0 INTs, 7 TDs, and Modifier 256 * 1 x10 = 1 INTs, 0 TDs, and Modifier 256 * 0 ... x849 = INT Yards (x00 to xFF) (INT Yards + Modifier is displayed) LOLB: x84A = Sacks and INT Modifier (x00 to xFF) x00 = 0 Sacks and Modifier 16 * 0 x01 = 0 Sacks and Modifier 16 * 1 x02 = 1 Sacks and Modifier 16 * 0 ... x84B = INTs, INT TDs, and INT Yards Modifier (x00 to xFF) (INTs + Modifier is displayed) x00 = 0 INTs, 0 TDs, and Modifier 256 * 0 x01 = 0 INTs, 0 TDs, and Modifier 256 * 1 x02 = 0 INTs, 1 TDs, and Modifier 256 * 0 x03 = 0 INTs, 1 TDs, and Modifier 256 * 1 x04 = 0 INTs, 2 TDs, and Modifier 256 * 0 x05 = 0 INTs, 2 TDs, and Modifier 256 * 1 x06 = 0 INTs, 3 TDs, and Modifier 256 * 0 x07 = 0 INTs, 3 TDs, and Modifier 256 * 1 x08 = 0 INTs, 4 TDs, and Modifier 256 * 0 x09 = 0 INTs, 4 TDs, and Modifier 256 * 1 x0A = 0 INTs, 5 TDs, and Modifier 256 * 0 x0B = 0 INTs, 5 TDs, and Modifier 256 * 1 x0C = 0 INTs, 6 TDs, and Modifier 256 * 0 x0D = 0 INTs, 6 TDs, and Modifier 256 * 1 x0E = 0 INTs, 7 TDs, and Modifier 256 * 0 x0F = 0 INTs, 7 TDs, and Modifier 256 * 1 x10 = 1 INTs, 0 TDs, and Modifier 256 * 0 ... x84C = INT Yards (x00 to xFF) (INT Yards + Modifier is displayed) RCB: x84D = Sacks and INT Modifier (x00 to xFF) x00 = 0 Sacks and Modifier 16 * 0 x01 = 0 Sacks and Modifier 16 * 1 x02 = 1 Sacks and Modifier 16 * 0 ... x84E = INTs, INT TDs, and INT Yards Modifier (x00 to xFF) (INTs + Modifier is displayed) x00 = 0 INTs, 0 TDs, and Modifier 256 * 0 x01 = 0 INTs, 0 TDs, and Modifier 256 * 1 x02 = 0 INTs, 1 TDs, and Modifier 256 * 0 x03 = 0 INTs, 1 TDs, and Modifier 256 * 1 x04 = 0 INTs, 2 TDs, and Modifier 256 * 0 x05 = 0 INTs, 2 TDs, and Modifier 256 * 1 x06 = 0 INTs, 3 TDs, and Modifier 256 * 0 x07 = 0 INTs, 3 TDs, and Modifier 256 * 1 x08 = 0 INTs, 4 TDs, and Modifier 256 * 0 x09 = 0 INTs, 4 TDs, and Modifier 256 * 1 x0A = 0 INTs, 5 TDs, and Modifier 256 * 0 x0B = 0 INTs, 5 TDs, and Modifier 256 * 1 x0C = 0 INTs, 6 TDs, and Modifier 256 * 0 x0D = 0 INTs, 6 TDs, and Modifier 256 * 1 x0E = 0 INTs, 7 TDs, and Modifier 256 * 0 x0F = 0 INTs, 7 TDs, and Modifier 256 * 1 x10 = 1 INTs, 0 TDs, and Modifier 256 * 0 ... x84F = INT Yards (x00 to xFF) (INT Yards + Modifier is displayed) LCB: x850 = Sacks and INT Modifier (x00 to xFF) x00 = 0 Sacks and Modifier 16 * 0 x01 = 0 Sacks and Modifier 16 * 1 x02 = 1 Sacks and Modifier 16 * 0 ... x851 = INTs, INT TDs, and INT Yards Modifier (x00 to xFF) (INTs + Modifier is displayed) x00 = 0 INTs, 0 TDs, and Modifier 256 * 0 x01 = 0 INTs, 0 TDs, and Modifier 256 * 1 x02 = 0 INTs, 1 TDs, and Modifier 256 * 0 x03 = 0 INTs, 1 TDs, and Modifier 256 * 1 x04 = 0 INTs, 2 TDs, and Modifier 256 * 0 x05 = 0 INTs, 2 TDs, and Modifier 256 * 1 x06 = 0 INTs, 3 TDs, and Modifier 256 * 0 x07 = 0 INTs, 3 TDs, and Modifier 256 * 1 x08 = 0 INTs, 4 TDs, and Modifier 256 * 0 x09 = 0 INTs, 4 TDs, and Modifier 256 * 1 x0A = 0 INTs, 5 TDs, and Modifier 256 * 0 x0B = 0 INTs, 5 TDs, and Modifier 256 * 1 x0C = 0 INTs, 6 TDs, and Modifier 256 * 0 x0D = 0 INTs, 6 TDs, and Modifier 256 * 1 x0E = 0 INTs, 7 TDs, and Modifier 256 * 0 x0F = 0 INTs, 7 TDs, and Modifier 256 * 1 x10 = 1 INTs, 0 TDs, and Modifier 256 * 0 ... x852 = INT Yards (x00 to xFF) (INT Yards + Modifier is displayed) FS: x853 = Sacks and INT Modifier (x00 to xFF) x00 = 0 Sacks and Modifier 16 * 0 x01 = 0 Sacks and Modifier 16 * 1 x02 = 1 Sacks and Modifier 16 * 0 ... x854 = INTs, INT TDs, and INT Yards Modifier (x00 to xFF) (INTs + Modifier is displayed) x00 = 0 INTs, 0 TDs, and Modifier 256 * 0 x01 = 0 INTs, 0 TDs, and Modifier 256 * 1 x02 = 0 INTs, 1 TDs, and Modifier 256 * 0 x03 = 0 INTs, 1 TDs, and Modifier 256 * 1 x04 = 0 INTs, 2 TDs, and Modifier 256 * 0 x05 = 0 INTs, 2 TDs, and Modifier 256 * 1 x06 = 0 INTs, 3 TDs, and Modifier 256 * 0 x07 = 0 INTs, 3 TDs, and Modifier 256 * 1 x08 = 0 INTs, 4 TDs, and Modifier 256 * 0 x09 = 0 INTs, 4 TDs, and Modifier 256 * 1 x0A = 0 INTs, 5 TDs, and Modifier 256 * 0 x0B = 0 INTs, 5 TDs, and Modifier 256 * 1 x0C = 0 INTs, 6 TDs, and Modifier 256 * 0 x0D = 0 INTs, 6 TDs, and Modifier 256 * 1 x0E = 0 INTs, 7 TDs, and Modifier 256 * 0 x0F = 0 INTs, 7 TDs, and Modifier 256 * 1 x10 = 1 INTs, 0 TDs, and Modifier 256 * 0 ... x855 = INT Yards (x00 to xFF) (INT Yards + Modifier is displayed) SS: x856 = Sacks and INT Modifier (x00 to xFF) x00 = 0 Sacks and Modifier 16 * 0 x01 = 0 Sacks and Modifier 16 * 1 x02 = 1 Sacks and Modifier 16 * 0 ... x857 = INTs, INT TDs, and INT Yards Modifier (x00 to xFF) (INTs + Modifier is displayed) x00 = 0 INTs, 0 TDs, and Modifier 256 * 0 x01 = 0 INTs, 0 TDs, and Modifier 256 * 1 x02 = 0 INTs, 1 TDs, and Modifier 256 * 0 x03 = 0 INTs, 1 TDs, and Modifier 256 * 1 x04 = 0 INTs, 2 TDs, and Modifier 256 * 0 x05 = 0 INTs, 2 TDs, and Modifier 256 * 1 x06 = 0 INTs, 3 TDs, and Modifier 256 * 0 x07 = 0 INTs, 3 TDs, and Modifier 256 * 1 x08 = 0 INTs, 4 TDs, and Modifier 256 * 0 x09 = 0 INTs, 4 TDs, and Modifier 256 * 1 x0A = 0 INTs, 5 TDs, and Modifier 256 * 0 x0B = 0 INTs, 5 TDs, and Modifier 256 * 1 x0C = 0 INTs, 6 TDs, and Modifier 256 * 0 x0D = 0 INTs, 6 TDs, and Modifier 256 * 1 x0E = 0 INTs, 7 TDs, and Modifier 256 * 0 x0F = 0 INTs, 7 TDs, and Modifier 256 * 1 x10 = 1 INTs, 0 TDs, and Modifier 256 * 0 ... x858 = INT Yards (x00 to xFF) (INT Yards + Modifier is displayed) K: x859 = XP Attempts (x00 to xFF) *Repeats over at x64 x85A = XP Made (x00 to xFF) x85B = FG Attempts (x00 to xFF) *Repeats over at x64 x85C = FB Made (x00 to xFF) P: x85D = Punts (x00 to xFF) x85E = Punt Yards (x00 to xFF) (Punt Yards + Modifier is displayed) x85F = Punt Yards Modifier (x00 to xFF) x00 = Modifier 256 * 0 x01 = Modifier 256 * 1 x02 = Modifier 256 * 2 x03 = Modifier 256 * 3 x04 = Modifier 256 * 4 x05 = Modifier 256 * 5 x06 = Modifier 256 * 6 x07 = Modifier 256 * 7 x08 = Modifier 256 * 8 x09 = Modifier 256 * 9 x0A = Modifier 256 * 10 x0B = Modifier 256 * 11 x0C = Modifier 256 * 12 x0D = Modifier 256 * 13 x0E = Modifier 256 * 14 x0F = Modifier 256 * 15 x10 = Modifier 256 * 0 ... Team: x860 = Number of Wins (x00 to xFF) *Repeats over at x64 x861 = Number of Losses (x00 to xFF) *Repeats over at x64 x862 = Number of Ties (x00 to xFF) *Repeats over at x64 x863 = Number of Pts (x00 to xFF) (Pts + Modifier is displayed) x864 = Number of Pts Modifier (x00 to xFF) *After 999 the display messes up x00 = Modifier 256 * 0 x01 = Modifier 256 * 1 x02 = Modifier 256 * 2 x03 = Modifier 256 * 3 ... x865 = Number of Opp Pts (x00 to xFF) (Opp Pts + Modifier is displayed) x866 = Number of Opp Pts Modifier (x00 to xFF) *After 999 the display messes up x00 = Modifier 256 * 0 x01 = Modifier 256 * 1 x02 = Modifier 256 * 2 x03 = Modifier 256 * 3 ... x867 = Defensive Pass Yards Allowed (x00 to xFF) (Pass Yards Allowed + Modifier is displayed) x868 = Defensive Pass Yards Allowed Modifier (x00 to xFF) x00 = Modifier 256 * 0 x01 = Modifier 256 * 1 ... x869 = Defensive Rush Yards Allowed (x00 to xFF) (Rush Yards Allowed + Modifier is displayed) x86A = Defensive Rush Yards Allowed Modifier (x00 to xFF) x00 = Modifier 256 * 0 x01 = Modifier 256 * 1 ...
x85B to x86E is the playbook. Each hex nibble is a play in each play slot. The order is Run1, Run2 // Run3, Run4 // Pass1, Pass2 // Pass3, Pass4.
x86F to x872 are the starters. Each hex nibble is a player where 0 = QB1, 1 = QB2, 2 = RB1, 3 = RB2, 4 = RB3, 5 = RB4, 6 = WR1, 7 = WR2, 8 = WR3, 9 = WR4, A = TE1, and B = TE2. The order goes QB, RB1 // RB2, WR1 // WR2, TE // KR, PR.
x873 to x875 are the injuries. The numbers are broken down into bits where a 00 = Healthy and 11 = Injured. The first hex is QB1, QB2, RB1, RB2. The second hex is RB3, RB4, WR1, WR2. And the third hex is WR3, WR4, TE1, TE2.
x876 to x87D are the conditions. The numbers are again broken down into bits where 00 = Bad, 01 = Average, 10 = Good, and 11 = Excellent. Order goes QB1, QB2, RB1, RB2 // RB3, RB4, WR1, WR2 // WR3, WR4, TE1, TE2 // C, LG, RG, LT // RT, RE, NT, LE // ROLB, RILB, LILB, LOLB // RCB, LCB, FS, SS // K, P. The final nibble always appears to be 5.
Attached is a rom stripped down to only display the TSB Game Field with the source code. I'm only posting this since it might make it easier for someone to edit the game field.
Controller: Pressing left and right will make the field scroll and pressing up and down will change the crowd animations. Animations are 0 = cheerleaders and no crowd movement, 1 = cheerleader celebration and crowd movement, 2 and 3 = cheerleaders and crowd movement then the next animation cycles back to 0.
The game field data is located at x2010-x2B38 and needs to be pasted to x2C419-x2CF41 in an actual TSB rom. The graphics would need to be copied over as well.
**Note the rom does absolutely nothing but display the game field using code from the actual game.
I'm hoping the links work as this would be cleaner than having a few dozen posts thrown all about. This is still a work in progress with more in the future and the below files are still subject to changes/improvements as I'm not happy with all of them. All demos should contain source files for the ca65 assembler and a working rom. For those that read these please let me know of things that are good, bad, and need much more clarification.
I'm hoping the links work as this would be cleaner than having a few dozen posts thrown all about. This is still a work in progress with more in the future and the below files are still subject to changes/improvements as I'm not happy with all of them. All demos should contain source files for the ca65 assembler and a working rom. For those that read these please let me know of things that are good, bad, and need much more clarification.
I've learned more about the code since then. The original code is below: x2869E: LDY #$08 ; PLAYER ID INDEX LDA ($AE),Y ; PLAYER ID TAX LDA $70 AND #$1C CMP #$10 BCS @TACKLED CMP #$08 BCS @KR_PR ; KR/PR TXA EOR $70 BMI @QB_OL_PR TXA AND #$0F ; PLAYER # BEQ @QB_OL_PR ; QB CMP #$06 BCS @QB_OL_PR ; OL TXA JSR L_DD8D JMP @SKILL ; SKILL PLAYER@KR_PR: CMP #$0A BCS @QB_OL_PR ; PR EXIT ORA #$10 ; GET KR ID STA $45 TXA AND #$80 ORA $45 JSR L_DD98@SKILL: LDY #$86 ; GET PLAYER BALL CONTROL JSR L_DDAA TAY LDA $3D ; RANDOM CMP BALL_CONTROL_VALUES,Y ; BALL CONTROL SKILL BCS @TACKLED ; TACKLED? JMP @FUMBLED ; FUMBLED@QB_OL_PR: LDA $3D ; RANDOM CMP #$0C ; 44 SKILL BCS @TACKLED ; TACKLED?@FUMBLED: ; FUMBLE ROUTINE LDY #$01 LDA ($AE),Y AND #$DF STA ($AE),Y JSR L_21_BA47 JMP L_21_85A6@TACKLED: ; TACKLED ROUTINE LDA $71 ORA #$80 STA $71 JMP L_21_85A6BALL_CONTROL_VALUES:.BYTE $12,$11,$10,$0F,$0E,$0D,$0C,$0B,$0A,$09,$08,$07,$06,$05,$04,$03The hack posted here uses the first lines LDY #$08 as the PRs skill index (which was 56 skill) for the CMP BALL_CONTROL_VALUES,Y line. The QB kept the branch listed about for the skill value.
Its quite possible to hack this using tables for a team's QB and PR ball control value. Or even to have the PR use their own ball control skill.
During the Intro Screens, any screen before the Game Start Screen, if you press down exactly 7 times it activates a slow motion debug option. For those using a debugger, RAM $06F6 will need to be #$07. Once activated, to use you have to hold the Select+B buttons for slow motion and hold the Select+A buttons for a full stop. The game will still use the button presses on screens they are used.
I'm not sure how useful this can be but I was entertained for a while playing around with this.
During the Intro Screens, any screen before the Game Start Screen, if you press down exactly 7 times it activates a slow motion debug option. For those using a debugger, RAM $06F6 will need to be #$07. Once activated, to use you have to hold the Select+B buttons for slow motion and hold the Select+A buttons for a full stop. The game will still use the button presses on screens they are used.
I'm not sure how useful this can be but I was entertained for a while playing around with this.
During the Intro Screens, any screen before the Game Start Screen, if you press down exactly 7 times it activates a slow motion debug option. For those using a debugger, RAM $06F6 will need to be #$07. Once activated, to use you have to hold the Select+B buttons for slow motion and hold the Select+A buttons for a full stop. The game will still use the button presses on screens they are used.
I'm not sure how useful this can be but I was entertained for a while playing around with this.
During the Intro Screens, any screen before the Game Start Screen, if you press down exactly 7 times it activates a slow motion debug option. For those using a debugger, RAM $06F6 will need to be #$07. Once activated, to use you have to hold the Select+B buttons for slow motion and hold the Select+A buttons for a full stop. The game will still use the button presses on screens they are used.
I'm not sure how useful this can be but I was entertained for a while playing around with this.
Yes, the code would look nearly the same with just RAM locations changed and ability to use 16-bit numbers. I'll see about writing it up when I get the chance.
BTW, I do have a ROM with the Radial code but need to find it on my hard drive (or recompile) and then I'll post it.
I'll see what I can do Buck with making some of the demos like TSB. I wanted to try to make the demos flowing so the entire code setup was vastly overhauled with each segment as TSB does a lot of advanced techniques with some that aren't even possible without the MMC3 mapper.