Jump to content

Editing playoff schedule for TSB NES?


gutter_punk

Recommended Posts

I've stalked these boards for years and people have tried before, so I thought I would just take another crack at it....

Does anybody have any clue how to edit the playoff structure, as in who plays who? I read a post that said jstout figured has at least somewhat narrowed it down as to where this information is located, and I had wanted to fiddle with it. Any help is appreciated, whether it's specific or just a "I think the info is located at x?????? but I'm not sure." If we do this, it could really open up the possibililties for College and pre-1990 roms. Thanks!

Link to comment
Share on other sites

  • 2 years later...
an old post but would you happen to remember what banks these were?

That was a long time ago and not sure I still have all of the information. Are you looking for something in particular?

Here is the storage of the playoff tree in SRAM:


AFC: NFC:
$6786 $678A
$6787 $678B
$6776 $677A
$6777 $677B
$6796 $679A
$679E $679F
$6797 $679B
$677F $6783
$677E $6782
$678F $6792
$678E $6791

After week 17 is played it writes the teams into their slot for the playoffs (using their team number x00 = Buffalo and x1B = Atlanta). After each game is played then it writes the score into the location after the team numbers (the team with the higher score has their icon placed in the next playoff location) and writes the team number into the next playoff spot in SRAM.

Link to comment
Share on other sites

firgured i'd post this here as well. all code is executed after a cmp #$09 at 0x22E4B if the week# > #$09. thanks to jstout for pointing me to the starting point.


$AE64:85 8E STA $008E = #$02
$AE66:0A ASL
$AE67:A8 TAY
$AE68:B9 5D BF LDA $BF5D,Y @ $BF61 = #$08
$AE6B:85 8F STA $008F = #$08
$AE6D:85 90 STA $0090 = #$08
$AE6F:B9 5E BF LDA $BF5E,Y @ $BF62 = #$04
$AE72:85 91 STA $0091 = #$04
$AE74:85 92 STA $0092 = #$00
$AE76:A9 00 LDA #$00
$AE78:85 93 STA $0093 = #$08

this code gets the starting index of the division and the number of teams in that division based on what A is at $AE64.


$AE7A:A5 8F LDA $008F = #$08
$AE7C:20 DE DE JSR $DEDE
$AE7F:A0 B3 LDY #$B3
$AE81:B1 3E LDA ($3E),Y @ $6D62 = #$3F
$AE83:85 44 STA $0044 = #$50
$AE85:A0 B2 LDY #$B2
$AE87:18 CLC
$AE88:71 3E ADC ($3E),Y @ $6D62 = #$3F
$AE8A:A0 B4 LDY #$B4
$AE8C:18 CLC
$AE8D:71 3E ADC ($3E),Y @ $6D62 = #$3F
$AE8F:85 45 STA $0045 = #$00
$AE91:A9 10 LDA #$10
$AE93:38 SEC
$AE94:E5 45 SBC $0045 = #$00
$AE96:A0 B2 LDY #$B2
$AE98:18 CLC
$AE99:71 3E ADC ($3E),Y @ $6D62 = #$3F
$AE9B:85 45 STA $0045 = #$00
$AE9D:20 1B B4 JSR $B41B
$AEA0:A6 93 LDX $0093 = #$08
$AEA2:95 9E STA $9E,X @ $019D = #$00
$AEA4:A5 8F LDA $008F = #$08
$AEA6:95 9F STA $9F,X @ $019E = #$10
$AEA8:E6 93 INC $0093 = #$08
$AEAA:E6 93 INC $0093 = #$08
$AEAC:E6 8F INC $008F = #$08
$AEAE:C6 91 DEC $0091 = #$04
$AEB0:D0 C8 BNE $AE7A

this code calculates a rating based on the highest possible win percentage for each team in the division and stores it to an array starting at $9E that goes .


$AEB2:A5 92 LDA $0092 = #$00
$AEB4:85 91 STA $0091 = #$04
$AEB6:A5 90 LDA $0090 = #$08
$AEB8:20 DE DE JSR $DEDE
$AEBB:A0 B2 LDY #$B2
$AEBD:B1 3E LDA ($3E),Y @ $6D62 = #$3F
$AEBF:85 45 STA $0045 = #$00
$AEC1:A0 B4 LDY #$B4
$AEC3:18 CLC
$AEC4:71 3E ADC ($3E),Y @ $6D62 = #$3F
$AEC6:A0 B3 LDY #$B3
$AEC8:18 CLC
$AEC9:71 3E ADC ($3E),Y @ $6D62 = #$3F
$AECB:85 44 STA $0044 = #$50
$AECD:A9 10 LDA #$10
$AECF:38 SEC
$AED0:E5 44 SBC $0044 = #$50
$AED2:18 CLC
$AED3:71 3E ADC ($3E),Y @ $6D62 = #$3F
$AED5:85 44 STA $0044 = #$50
$AED7:20 1B B4 JSR $B41B

this code calculates the same rating from above, but for the current team (index @ $90). this rating reflects the team if they lose the rest of their games.


$AEDA:85 44 STA $0044 = #$50
$AEDC:A4 91 LDY $0091 = #$04
$AEDE:A2 00 LDX #$00
$AEE0:A5 90 LDA $0090 = #$08
$AEE2:D5 9F CMP $9F,X @ $019E = #$10
$AEE4:F0 06 BEQ $AEEC
$AEE6:B5 9E LDA $9E,X @ $019D = #$00
$AEE8:C5 44 CMP $0044 = #$50
$AEEA:B0 25 BCS $AF11
$AEEC:E8 INX
$AEED:E8 INX
$AEEE:88 DEY
$AEEF:D0 EF BNE $AEE0

this code compares the rating for the current team ($90 from above) to all the "ideal" ratings (array @ $9E) for each team in the division. execution drops to $AEF1 to make the current team their division leader.

Link to comment
Share on other sites

  • 7 months later...

Has anything happened in the playoff modifying realm lately?

I'm playing around with my AFL Rom for 2008, and I've put all the teams into their correct 4 divisions for 2008, but, I'd like to make it so that it uses 2 division and 4 WC teams for each conference in the playoffs, not 3 and 3 (I have 1 empty division now in each conference, so, it would right now I assume pull some random team from that division as a "division winner" that hasn't even played a game).

I tried following the code explanations above but didn't get very far.

From what I gathered though, it seems like the following needs to occur:

* skip including the west division in determining "division champs" for each conference

* given the memory slots jstout found, change it so that it "loops" and stores 4 WC teams instead of 3 (adding the 3rd div winner slot as the 1st WC slot).

Link to comment
Share on other sites

I was working on a game that has 4 divisions with 4 teams in each (1 with 3). I did the playoffs a while back so I don't remember if this is all or not but this should be a good start. I removed my check for the 3 team division for better clarity. The code hasn't been totally optimized yet but oh well. I hope it helps you though.

x22E47:
; Check for Divison Winner
$AE37:AD 58 67 LDA $6758
$AE3A:C9 09 CMP #$09 ; Week to start checking
$AE3C:90 1E BCC $AE5C
$AE3E:A9 00 LDA #$00 ; AFC EAST
$AE40:20 5D AE JSR $AE5D
$AE43:A9 01 LDA #$01 ; AFC CENTRAL
$AE45:20 5D AE JSR $AE5D
$AE48:A9 02 LDA #$02 ; AFC WEST (became NFC conference)
$AE4A:20 5D AE JSR $AE5D
$AE4D:A9 03 LDA #$03 ; NFC EAST
$AE4F:20 5D AE JSR $AE5D
$AE52:EA NOP ; REMOVED NFC CENTRAL
$AE53:EA NOP
$AE54:EA NOP
$AE55:EA NOP
$AE56:EA NOP
$AE57:EA NOP ; REMOVED NFC WEST
$AE58:EA NOP
$AE59:EA NOP
$AE5A:EA NOP
$AE5B:EA NOP
$AE5C:60 RTS

x231EA:
; Force Divison Champs
$B1DA:A9 00 LDA #$00 ; AFC EAST
$B1DC:20 A4 B2 JSR $B2A4
$B1DF:A9 01 LDA #$01 ; AFC CENTRAL
$B1E1:20 A4 B2 JSR $B2A4
$B1E4:A9 02 LDA #$02 ; AFC WEST (became NFC conference)
$B1E6:20 A4 B2 JSR $B2A4
$B1E9:A9 03 LDA #$03 ; NFC EAST
$B1EB:20 A4 B2 JSR $B2A4
$B1EE:EA NOP ; REMOVED NFC CENTRAL
$B1EF:EA NOP
$B1F0:EA NOP
$B1F1:EA NOP
$B1F2:EA NOP
$B1F3:EA NOP ; REMOVED NFC WEST
$B1F4:EA NOP
$B1F5:EA NOP
$B1F6:EA NOP
$B1F7:EA NOP
; Enable WRAM
$B1F8:A9 80 LDA #$80
$B1FA:8D 01 A0 STA $A001
; AFC Division Seeds
$B1FD:AD A2 67 LDA $67A2
$B200:85 97 STA $0097
$B202:20 0C B4 JSR $B40C
$B205:85 96 STA $0096
$B207:AD A3 67 LDA $67A3
$B20A:85 99 STA $0099
$B20C:20 0C B4 JSR $B40C
$B20F:85 98 STA $0098
$B211:AD A4 67 LDA $67A4 ; Forgotten if this is needed
; Sort AFC Divison Winners
$B214:A2 02 LDX #$02 ; Number of AFC conferences
$B216:20 0C B3 JSR $B30C
$B219:A5 97 LDA $0097
$B21B:8D 86 67 STA $6786
$B21E:A5 99 LDA $0099
$B220:8D 8E 67 STA $678E
; NFC Divison Seeds
$B223:AD A4 67 LDA $67A4
$B226:85 97 STA $0097
$B228:20 0C B4 JSR $B40C
$B22B:85 96 STA $0096
$B22D:AD A5 67 LDA $67A5
$B230:85 99 STA $0099
$B232:20 0C B4 JSR $B40C
$B235:85 98 STA $0098
$B237:AD A7 67 LDA $67A7 ; Forgotten if this is needed
; Sort NFC Division Winners
$B23A:A2 02 LDX #$02 ; Number of NFC conferences
$B23C:20 0C B3 JSR $B30C
$B23F:A5 97 LDA $0097
$B241:8D 8A 67 STA $678A
$B244:A5 99 LDA $0099
$B246:8D 92 67 STA $6792
; Move the AFC West and NFC Central to correct SRAM
$B249:20 E0 BF JSR $BFE0
; AFC Wildcard
$B24C:A9 00 LDA #$00 ; Number of First AFC Team
$B24E:20 DF B2 JSR $B2DF
$B251:A5 97 LDA $0097
$B253:8D 7E 67 STA $677E
$B256:8D A4 67 STA $67A4
$B259:A5 99 LDA $0099
$B25B:8D 76 67 STA $6776
$B25E:8D A8 67 STA $67A8
$B261:A5 9B LDA $009B
$B263:8D 77 67 STA $6777
$B266:8D A9 67 STA $67A9
$B269:A5 9D LDA $009D
$B26B:8D 7F 67 STA $677F
$B26E:8D AA 67 STA $67AA
; NFC Wildcard
$B271:A9 08 LDA #$08 ; Number of First NFC Team
$B273:20 DF B2 JSR $B2DF
$B276:A5 97 LDA $0097
$B278:8D 82 67 STA $6782
$B27B:8D A7 67 STA $67A7
$B27E:A5 99 LDA $0099
$B280:8D 7A 67 STA $677A
$B283:8D AB 67 STA $67AB
$B286:A5 9B LDA $009B
$B288:8D 7B 67 STA $677B
$B28B:8D AC 67 STA $67AC
$B28E:A5 9D LDA $009D
$B290:8D 83 67 STA $6783
$B293:8D AD 67 STA $67AD
$B296:20 B3 C4 JSR $C4B3
; Blank out extra bytes
$B299:EA NOP
$B29A:EA NOP
$B29B:EA NOP
$B29C:EA NOP
$B29D:EA NOP
; Disable WRAM
$B29E:A9 C0 LDA #$C0
$B2A0:8D 01 A0 STA $A001
; Exit
$B2A3:60 RTS

x232EF:
; Figure out Wild Cards
$B2DF:85 8E STA $008E
$B2E1:A9 0E LDA #$08 ; Number of teams in division
$B2E3:85 8F STA $008F
$B2E5:A9 00 LDA #$00
$B2E7:85 91 STA $0091
$B2E9:A5 8E LDA $008E
$B2EB:A2 06 LDX #$07 ; Changed but don't remember why
$B2ED:DD A1 67 CMP $67A1,X
$B2F0:F0 12 BEQ $B304
$B2F2:CA DEX
$B2F3:D0 F8 BNE $B2ED
$B2F5:20 0C B4 JSR $B40C
$B2F8:A6 91 LDX $0091
$B2FA:95 96 STA $96,X
$B2FC:A5 8E LDA $008E
$B2FE:95 97 STA $97,X
$B300:E6 91 INC $0091
$B302:E6 91 INC $0091
$B304:E6 8E INC $008E
$B306:C6 8F DEC $008F
$B308:D0 DF BNE $B2E9
$B30A:A2 06 LDX #$06 ; Changed but don't remember why
$B30C:CA DEX
$B30D:86 8F STX $008F
$B30F:A5 8F LDA $008F
$B311:85 8E STA $008E
$B313:A2 00 LDX #$00
$B315:B5 96 LDA $96,X
$B317:D5 98 CMP $98,X
$B319:90 23 BCC $B33E
$B31B:D0 24 BNE $B341
$B31D:20 52 B1 JSR $B152
$B320:D0 1A BNE $B33C
$B322:A0 B5 LDY #$B5
$B324:B1 40 LDA ($40),Y
$B326:D1 3E CMP ($3E),Y
$B328:85 44 STA $0044
$B32A:C8 INY
$B32B:B1 40 LDA ($40),Y
$B32D:F1 3E SBC ($3E),Y
$B32F:05 44 ORA $0044
$B331:D0 09 BNE $B33C
$B333:A5 3D LDA $003D
$B335:29 04 AND #$04
$B337:F0 08 BEQ $B341
$B339:4C 3E B3 JMP $B33E
$B33C:B0 03 BCS $B341
$B33E:20 B8 B1 JSR $B1B8
$B341:E8 INX
$B342:E8 INX
$B343:C6 8E DEC $008E
$B345:D0 CE BNE $B315
$B347:C6 8F DEC $008F
$B349:D0 C4 BNE $B30F
$B34B:60 RTS

x23FF0:
; Move AFC West and NFC East Division Winners
$BFE0:AD A5 67 LDA $67A5
$BFE3:8D A6 67 STA $67A6
$BFE6:AD A4 67 LDA $67A4
$BFE9:8D A5 67 STA $67A5
$BFEC:60 RTS

Link to comment
Share on other sites

I was working on a game that has 4 divisions with 4 teams in each (1 with 3). I did the playoffs a while back so I don't remember if this is all or not but this should be a good start. I removed my check for the 3 team division for better clarity. The code hasn't been totally optimized yet but oh well. I hope it helps you though.

Thanks for that jstout.

I tried putting it in my code, and while it didn't break it, it put the "AFC East" division champ in every bracket slot, so, obviously I need to figure out where to tweak it some. I modified your "check for div winner" part at the top though to skip the western divisions instead of NFC central & west, and that did seem to work.

What do you use to modify sections of the ROM in assembly? I assume you have something to do that, and you just are not modified bits in a hex editor for that programming?

Link to comment
Share on other sites

I tried putting it in my code, and while it didn't break it, it put the "AFC East" division champ in every bracket slot, so, obviously I need to figure out where to tweak it some. I modified your "check for div winner" part at the top though to skip the western divisions instead of NFC central & west, and that did seem to work.

What do you use to modify sections of the ROM in assembly? I assume you have something to do that, and you just are not modified bits in a hex editor for that programming?

Hmm, strange and sounds like something is missing or off. If you send me the rom I can take a look and see if anything obvious is wrong.

For all my work now I basically use FCEUXD and any notes that I have or acquired. I use ca65 now for my wholesale playbook changes. Now and then I use something else but mostly just what is above.

Link to comment
Share on other sites

Does anyone happen to know where the comparable info for this is in TSB3? I'm talking about the code in the TSB3 rom that sets the standings arrays and playoff placements. I already have the TSB3 SRAM playoff tree mapped out.

Thanx.

AM Rush

Link to comment
Share on other sites

  • 2 years later...

i am working on a college football rom and I figured i would check on this again with anyone....

how would one make it so only the division winners qualify for the playoffs. i edited the PPU stuff in fxeucd but i do not know how to get those changes translated into hex to save it in the actual rom.

the eight 4-team conferences i have are an SEC 1&2 (east/west) a big 12 N & S, a Big 10, a Big 10/Big East combo, a Pac 10, and a Pac/wac/mwc combo.

basically am looking for each conference winner to always go to the same spot so the 1st round is like the conference championship games. for instance, SEC 1 plays SEC 2, big 12 N vs Big 12 S, etc...

Any guidance would be greatly appreciated.

Basically i want to figure out how to have the playoffs like the attached image:

post-9975-1341372832895_thumb.jpg

Link to comment
Share on other sites

  • 2 years later...

So I found the playoff information as well as where the program calculates for Divisional Winners; wondering if one of these factors causes the "Cliched Division" cutscene. I'm running a 17 week season but only having 11 games per team. Wondering what I can do to make the Cliched Division cutscene work proplery with only 11 games played (the scene will activate at the end of the regular season regardless). Any help is appreciated. Thanks :)

firgured i'd post this here as well. all code is executed after a cmp #$09 at 0x22E4B if the week# > #$09. thanks to jstout for pointing me to the starting point.


$AE64:85 8E STA $008E = #$02
$AE66:0A ASL
$AE67:A8 TAY
$AE68:B9 5D BF LDA $BF5D,Y @ $BF61 = #$08
$AE6B:85 8F STA $008F = #$08
$AE6D:85 90 STA $0090 = #$08
$AE6F:B9 5E BF LDA $BF5E,Y @ $BF62 = #$04
$AE72:85 91 STA $0091 = #$04
$AE74:85 92 STA $0092 = #$00
$AE76:A9 00 LDA #$00
$AE78:85 93 STA $0093 = #$08

this code gets the starting index of the division and the number of teams in that division based on what A is at $AE64.


$AE7A:A5 8F LDA $008F = #$08
$AE7C:20 DE DE JSR $DEDE
$AE7F:A0 B3 LDY #$B3
$AE81:B1 3E LDA ($3E),Y @ $6D62 = #$3F
$AE83:85 44 STA $0044 = #$50
$AE85:A0 B2 LDY #$B2
$AE87:18 CLC
$AE88:71 3E ADC ($3E),Y @ $6D62 = #$3F
$AE8A:A0 B4 LDY #$B4
$AE8C:18 CLC
$AE8D:71 3E ADC ($3E),Y @ $6D62 = #$3F
$AE8F:85 45 STA $0045 = #$00
$AE91:A9 10 LDA #$10
$AE93:38 SEC
$AE94:E5 45 SBC $0045 = #$00
$AE96:A0 B2 LDY #$B2
$AE98:18 CLC
$AE99:71 3E ADC ($3E),Y @ $6D62 = #$3F
$AE9B:85 45 STA $0045 = #$00
$AE9D:20 1B B4 JSR $B41B
$AEA0:A6 93 LDX $0093 = #$08
$AEA2:95 9E STA $9E,X @ $019D = #$00
$AEA4:A5 8F LDA $008F = #$08
$AEA6:95 9F STA $9F,X @ $019E = #$10
$AEA8:E6 93 INC $0093 = #$08
$AEAA:E6 93 INC $0093 = #$08
$AEAC:E6 8F INC $008F = #$08
$AEAE:C6 91 DEC $0091 = #$04
$AEB0:D0 C8 BNE $AE7A

this code calculates a rating based on the highest possible win percentage for each team in the division and stores it to an array starting at $9E that goes .


$AEB2:A5 92 LDA $0092 = #$00
$AEB4:85 91 STA $0091 = #$04
$AEB6:A5 90 LDA $0090 = #$08
$AEB8:20 DE DE JSR $DEDE
$AEBB:A0 B2 LDY #$B2
$AEBD:B1 3E LDA ($3E),Y @ $6D62 = #$3F
$AEBF:85 45 STA $0045 = #$00
$AEC1:A0 B4 LDY #$B4
$AEC3:18 CLC
$AEC4:71 3E ADC ($3E),Y @ $6D62 = #$3F
$AEC6:A0 B3 LDY #$B3
$AEC8:18 CLC
$AEC9:71 3E ADC ($3E),Y @ $6D62 = #$3F
$AECB:85 44 STA $0044 = #$50
$AECD:A9 10 LDA #$10
$AECF:38 SEC
$AED0:E5 44 SBC $0044 = #$50
$AED2:18 CLC
$AED3:71 3E ADC ($3E),Y @ $6D62 = #$3F
$AED5:85 44 STA $0044 = #$50
$AED7:20 1B B4 JSR $B41B

this code calculates the same rating from above, but for the current team (index @ $90). this rating reflects the team if they lose the rest of their games.


$AEDA:85 44 STA $0044 = #$50
$AEDC:A4 91 LDY $0091 = #$04
$AEDE:A2 00 LDX #$00
$AEE0:A5 90 LDA $0090 = #$08
$AEE2:D5 9F CMP $9F,X @ $019E = #$10
$AEE4:F0 06 BEQ $AEEC
$AEE6:B5 9E LDA $9E,X @ $019D = #$00
$AEE8:C5 44 CMP $0044 = #$50
$AEEA:B0 25 BCS $AF11
$AEEC:E8 INX
$AEED:E8 INX
$AEEE:88 DEY
$AEEF:D0 EF BNE $AEE0

this code compares the rating for the current team ($90 from above) to all the "ideal" ratings (array @ $9E) for each team in the division. execution drops to $AEF1 to make the current team their division leader.

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 years later...

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