Skip to navigation

Revs on the BBC Micro

Extra tracks: Track section data (Part 1 of 2)

Name: Track section data (Part 1 of 2) [Show more] Type: Variable Category: Extra tracks Summary: Data for the track sections Deep dive: The track data file format The extra tracks data file format The Nürburgring track Backporting the Nürburgring track
Context: See this variable in context in the source code References: No direct references to this variable in this source file

The Nürburgring consists of the following track sections: 0 || Romer Kurve to Castrol-S (1/2) 1 {} Romer Kurve to Castrol-S (2/2) 2 |->| Castrol-S (1/2) 3 <- Castrol-S (2/2) 4 {} Castrol-S to Ford Kurve (1/4) 5 {} Castrol-S to Ford Kurve (2/4) 6 <- Castrol-S to Ford Kurve (3/4) 7 || Castrol-S to Ford Kurve (4/4) 8 -> Ford Kurve 9 || Ford Kurve top Dunlop Kehre (1/2) 10 |<-| Ford Kurve top Dunlop Kehre (2/2) 11 -> Dunlop Kehre 12 {} Dunlop Kehre to Bit Kurve (1/7) 13 <- Dunlop Kehre to Bit Kurve (2/7) 14 || Dunlop Kehre to Bit Kurve (3/7) 15 -> Dunlop Kehre to Bit Kurve (4/7) 16 {} Dunlop Kehre to Bit Kurve (5/7) 17 <- Dunlop Kehre to Bit Kurve (6/7) 18 || Dunlop Kehre to Bit Kurve (7/7) 19 -> Bit Kurve 20 {} Bit Kurve to Veedol Schikane (1/3) 21 -> Bit Kurve to Veedol Schikane (2/3) 22 {} Bit Kurve to Veedol Schikane (3/3) 23 <- Veedol Schikane (1/2) 24 -> Veedol Schikane (2/2) 25 {} Veedol Schikane to Romer Kurve 26 -> Romer Kurve where each section is one of the following shapes: || is a straight section that doesn't curve to the left or right, and has the same gradient throughout the whole section {} is a straight section in the sense that it doesn't curve to the left or right, but the gradient can differ between sub-sections -> consists of sub-sections that all curve to the right <- consists of sub-sections that all curve to the left |->| consists of sub-sections that are either straight or curve to the right |<-| consists of sub-sections that are either straight or curve to the left |<->| consists of sub-sections that are either straight or curve to the left or right This part defines the following aspects of these track sections: trackSectionData Various data for the track section: * Bits 0-2: Size of the track section list Defines the number of entries that we store in the track section list for this section, which is used to calculate the coordinates of the track verges (higher numbers mean more sections are calculated, so higher numbers are used for more complex parts of the track) This value is given in the bottom nibble of the track section data byte (bit 3 is ignored), i.e. the second digit in the hexadecimal value * Bits 4-7: Sign number The number of the road sign (0 to 15) to show when we enter this section, but only if the sign number is different to the number in the previous section This value is given in the top nibble of the track section data byte, i.e. the first digit in the hexadecimal value xTrackSectionIHi High byte of the x-coordinate of the starting point of the inner verge of each track section yTrackSectionIHi High byte of the y-coordinate of the starting point of the inner verge of each track section zTrackSectionIHi High byte of the z-coordinate of the starting point of the inner verge of each track section xTrackSectionOHi High byte of the x-coordinate of the starting point of the outside verge of each track section trackSectionTurn The number of the segment towards the end of the section where non-player cars should start turning in preparation for the next section zTrackSectionOHi High byte of the z-coordinate of the starting point of the outside verge of each track section trackDriverSpeed The maximum speed for non-player drivers on the next section of the track Some of the trackDriverSpeed values have been scaled down by a factor of 1.44 from the Commodore 64 version. This applies to sections that are followed by sections with bit 7 of trackSectionFlag set. Those sections are 1, 5, 7, 10, 16, 18 and 22, and this scaling is noted in the comments below. See part 2 of the track section data for each section's trackSectionFlag, where Sp=1 denotes sections with bit 7 of trackSectionFlag set (so we scale trackDriverSpeed in the sections that precede these).
\ Track section 0 EQUB &01 \ trackSectionData sign = 0, sectionListSize = 1 EQUB &2E \ xTrackSectionIHi xTrackSectionI = &2EE0 = 12000 EQUB &1F \ yTrackSectionIHi yTrackSectionI = &1F40 = 8000 EQUB &00 \ zTrackSectionIHi zTrackSectionI = &0000 = 0 EQUB &2D \ xTrackSectionOHi xTrackSectionO = &2DBF = 11711 EQUB 255 \ trackSectionTurn EQUB &00 \ zTrackSectionOHi zTrackSectionO = &0000 = 0 EQUB 255 \ trackDriverSpeed \ Track section 1 EQUB &13 \ trackSectionData sign = 1, sectionListSize = 3 EQUB &2E \ xTrackSectionIHi xTrackSectionI = &2EE0 = 12000 EQUB &1D \ yTrackSectionIHi yTrackSectionI = &1D4E = 7502 EQUB &26 \ zTrackSectionIHi zTrackSectionI = &26E8 = 9960 EQUB &2D \ xTrackSectionOHi xTrackSectionO = &2DBF = 11711 EQUB 77 \ trackSectionTurn EQUB &26 \ zTrackSectionOHi zTrackSectionO = &26E8 = 9960 EQUB 101 \ trackDriverSpeed scaled by 1.44 from the C64 \ Track section 2 EQUB &22 \ trackSectionData sign = 2, sectionListSize = 2 EQUB &2E \ xTrackSectionIHi xTrackSectionI = &2EE0 = 12000 EQUB &18 \ yTrackSectionIHi yTrackSectionI = &1875 = 6261 EQUB &4E \ zTrackSectionIHi zTrackSectionI = &4E48 = 20040 EQUB &2D \ xTrackSectionOHi xTrackSectionO = &2DBF = 11711 EQUB 14 \ trackSectionTurn EQUB &4E \ zTrackSectionOHi zTrackSectionO = &4E48 = 20040 EQUB 7 \ trackDriverSpeed \ Track section 3 EQUB &32 \ trackSectionData sign = 3, sectionListSize = 2 EQUB &31 \ xTrackSectionIHi xTrackSectionI = &31E8 = 12776 EQUB &17 \ yTrackSectionIHi yTrackSectionI = &1779 = 6009 EQUB &50 \ zTrackSectionIHi zTrackSectionI = &50AB = 20651 EQUB &31 \ xTrackSectionOHi xTrackSectionO = &31A9 = 12713 EQUB 45 \ trackSectionTurn EQUB &51 \ zTrackSectionOHi zTrackSectionO = &51C4 = 20932 EQUB 34 \ trackDriverSpeed \ Track section 4 EQUB &41 \ trackSectionData sign = 4, sectionListSize = 1 EQUB &35 \ xTrackSectionIHi xTrackSectionI = &3579 = 13689 EQUB &13 \ yTrackSectionIHi yTrackSectionI = &1389 = 5001 EQUB &5F \ zTrackSectionIHi zTrackSectionI = &5F34 = 24372 EQUB &34 \ xTrackSectionOHi xTrackSectionO = &3477 = 13431 EQUB 255 \ trackSectionTurn EQUB &5E \ zTrackSectionOHi zTrackSectionO = &5EB2 = 24242 EQUB 255 \ trackDriverSpeed \ Track section 5 EQUB &53 \ trackSectionData sign = 5, sectionListSize = 3 EQUB &2B \ xTrackSectionIHi xTrackSectionI = &2BFB = 11259 EQUB &11 \ yTrackSectionIHi yTrackSectionI = &1190 = 4496 EQUB &72 \ zTrackSectionIHi zTrackSectionI = &7203 = 29187 EQUB &2A \ xTrackSectionOHi xTrackSectionO = &2AF9 = 11001 EQUB 16 \ trackSectionTurn EQUB &71 \ zTrackSectionOHi zTrackSectionO = &7181 = 29057 EQUB 125 \ trackDriverSpeed scaled by 1.44 from the C64 \ Track section 6 EQUB &55 \ trackSectionData sign = 5, sectionListSize = 5 EQUB &27 \ xTrackSectionIHi xTrackSectionI = &2757 = 10071 EQUB &0F \ yTrackSectionIHi yTrackSectionI = &0FF6 = 4086 EQUB &7B \ zTrackSectionIHi zTrackSectionI = &7B35 = 31541 EQUB &26 \ xTrackSectionOHi xTrackSectionO = &2655 = 9813 EQUB 31 \ trackSectionTurn EQUB &7A \ zTrackSectionOHi zTrackSectionO = &7AB3 = 31411 EQUB 15 \ trackDriverSpeed \ Track section 7 EQUB &55 \ trackSectionData sign = 5, sectionListSize = 5 EQUB &1D \ xTrackSectionIHi xTrackSectionI = &1DAB = 7595 EQUB &0D \ yTrackSectionIHi yTrackSectionI = &0D3E = 3390 EQUB &7E \ zTrackSectionIHi zTrackSectionI = &7EC1 = 32449 EQUB &1E \ xTrackSectionOHi xTrackSectionO = &1E0B = 7691 EQUB 12 \ trackSectionTurn EQUB &7D \ zTrackSectionOHi zTrackSectionO = &7DB1 = 32177 EQUB 84 \ trackDriverSpeed scaled by 1.44 from the C64 \ Track section 8 EQUB &55 \ trackSectionData sign = 5, sectionListSize = 5 EQUB &16 \ xTrackSectionIHi xTrackSectionI = &169B = 5787 EQUB &0B \ yTrackSectionIHi yTrackSectionI = &0B6E = 2926 EQUB &7C \ zTrackSectionIHi zTrackSectionI = &7C41 = 31809 EQUB &16 \ xTrackSectionOHi xTrackSectionO = &16FB = 5883 EQUB 24 \ trackSectionTurn EQUB &7B \ zTrackSectionOHi zTrackSectionO = &7B31 = 31537 EQUB 13 \ trackDriverSpeed \ Track section 9 EQUB &64 \ trackSectionData sign = 6, sectionListSize = 4 EQUB &12 \ xTrackSectionIHi xTrackSectionI = &1285 = 4741 EQUB &09 \ yTrackSectionIHi yTrackSectionI = &099E = 2462 EQUB &80 \ zTrackSectionIHi zTrackSectionI = &80C3 = -32573 EQUB &11 \ xTrackSectionOHi xTrackSectionO = &1170 = 4464 EQUB 255 \ trackSectionTurn EQUB &81 \ zTrackSectionOHi zTrackSectionO = &8117 = -32489 EQUB 255 \ trackDriverSpeed \ Track section 10 EQUB &63 \ trackSectionData sign = 6, sectionListSize = 3 EQUB &15 \ xTrackSectionIHi xTrackSectionI = &151E = 5406 EQUB &07 \ yTrackSectionIHi yTrackSectionI = &0777 = 1911 EQUB &89 \ zTrackSectionIHi zTrackSectionI = &894C = -30388 EQUB &14 \ xTrackSectionOHi xTrackSectionO = &1409 = 5129 EQUB 88 \ trackSectionTurn EQUB &89 \ zTrackSectionOHi zTrackSectionO = &89A0 = -30304 EQUB 77 \ trackDriverSpeed scaled by 1.44 from the C64 \ Track section 11 EQUB &73 \ trackSectionData sign = 7, sectionListSize = 3 EQUB &14 \ xTrackSectionIHi xTrackSectionI = &145D = 5213 EQUB &00 \ yTrackSectionIHi yTrackSectionI = &00F7 = 247 EQUB &B2 \ zTrackSectionIHi zTrackSectionI = &B2D6 = -19754 EQUB &13 \ xTrackSectionOHi xTrackSectionO = &1345 = 4933 EQUB 29 \ trackSectionTurn EQUB &B2 \ zTrackSectionOHi zTrackSectionO = &B289 = -19831 EQUB 14 \ trackDriverSpeed \ Track section 12 EQUB &83 \ trackSectionData sign = 8, sectionListSize = 3 EQUB &1B \ xTrackSectionIHi xTrackSectionI = &1B24 = 6948 EQUB &03 \ yTrackSectionIHi yTrackSectionI = &039A = 922 EQUB &B3 \ zTrackSectionIHi zTrackSectionI = &B341 = -19647 EQUB &1C \ xTrackSectionOHi xTrackSectionO = &1C44 = 7236 EQUB 52 \ trackSectionTurn EQUB &B3 \ zTrackSectionOHi zTrackSectionO = &B33E = -19650 EQUB 255 \ trackDriverSpeed \ Track section 13 EQUB &93 \ trackSectionData sign = 9, sectionListSize = 3 EQUB &1A \ xTrackSectionIHi xTrackSectionI = &1AE7 = 6887 EQUB &0D \ yTrackSectionIHi yTrackSectionI = &0DF9 = 3577 EQUB &96 \ zTrackSectionIHi zTrackSectionI = &96A9 = -26967 EQUB &1C \ xTrackSectionOHi xTrackSectionO = &1C07 = 7175 EQUB 37 \ trackSectionTurn EQUB &96 \ zTrackSectionOHi zTrackSectionO = &96A6 = -26970 EQUB 15 \ trackDriverSpeed \ Track section 14 EQUB &93 \ trackSectionData sign = 9, sectionListSize = 3 EQUB &20 \ xTrackSectionIHi xTrackSectionI = &20D8 = 8408 EQUB &14 \ yTrackSectionIHi yTrackSectionI = &1407 = 5127 EQUB &8D \ zTrackSectionIHi zTrackSectionI = &8D3B = -29381 EQUB &21 \ xTrackSectionOHi xTrackSectionO = &215C = 8540 EQUB 0 \ trackSectionTurn EQUB &8E \ zTrackSectionOHi zTrackSectionO = &8E3C = -29124 EQUB 255 \ trackDriverSpeed \ Track section 15 EQUB &93 \ trackSectionData sign = 9, sectionListSize = 3 EQUB &23 \ xTrackSectionIHi xTrackSectionI = &235A = 9050 EQUB &15 \ yTrackSectionIHi yTrackSectionI = &157B = 5499 EQUB &8B \ zTrackSectionIHi zTrackSectionI = &8BF1 = -29711 EQUB &23 \ xTrackSectionOHi xTrackSectionO = &23DE = 9182 EQUB 33 \ trackSectionTurn EQUB &8C \ zTrackSectionOHi zTrackSectionO = &8CF2 = -29454 EQUB 23 \ trackDriverSpeed \ Track section 16 EQUB &A3 \ trackSectionData sign = 10, sectionListSize = 3 EQUB &28 \ xTrackSectionIHi xTrackSectionI = &281C = 10268 EQUB &18 \ yTrackSectionIHi yTrackSectionI = &18A5 = 6309 EQUB &86 \ zTrackSectionIHi zTrackSectionI = &86EA = -30998 EQUB &29 \ xTrackSectionOHi xTrackSectionO = &291D = 10525 EQUB 75 \ trackSectionTurn EQUB &87 \ zTrackSectionOHi zTrackSectionO = &876B = -30869 EQUB 108 \ trackDriverSpeed scaled by 1.44 from the C64 \ Track section 17 EQUB &B3 \ trackSectionData sign = 11, sectionListSize = 3 EQUB &39 \ xTrackSectionIHi xTrackSectionI = &3932 = 14642 EQUB &21 \ yTrackSectionIHi yTrackSectionI = &2140 = 8512 EQUB &65 \ zTrackSectionIHi zTrackSectionI = &650F = 25871 EQUB &3A \ xTrackSectionOHi xTrackSectionO = &3A33 = 14899 EQUB 27 \ trackSectionTurn EQUB &65 \ zTrackSectionOHi zTrackSectionO = &6590 = 26000 EQUB 15 \ trackDriverSpeed \ Track section 18 EQUB &C5 \ trackSectionData sign = 12, sectionListSize = 5 EQUB &3F \ xTrackSectionIHi xTrackSectionI = &3F4A = 16202 EQUB &20 \ yTrackSectionIHi yTrackSectionI = &2041 = 8257 EQUB &63 \ zTrackSectionIHi zTrackSectionI = &6306 = 25350 EQUB &3E \ xTrackSectionOHi xTrackSectionO = &3EE4 = 16100 EQUB 23 \ trackSectionTurn EQUB &64 \ zTrackSectionOHi zTrackSectionO = &6413 = 25619 EQUB 112 \ trackDriverSpeed scaled by 1.44 from the C64 \ Track section 19 EQUB &C4 \ trackSectionData sign = 12, sectionListSize = 4 EQUB &4B \ xTrackSectionIHi xTrackSectionI = &4B8A = 19338 EQUB &1E \ yTrackSectionIHi yTrackSectionI = &1E65 = 7781 EQUB &67 \ zTrackSectionIHi zTrackSectionI = &679E = 26526 EQUB &4B \ xTrackSectionOHi xTrackSectionO = &4B24 = 19236 EQUB 32 \ trackSectionTurn EQUB &68 \ zTrackSectionOHi zTrackSectionO = &68AB = 26795 EQUB 18 \ trackDriverSpeed \ Track section 20 EQUB &D3 \ trackSectionData sign = 13, sectionListSize = 3 EQUB &52 \ xTrackSectionIHi xTrackSectionI = &52E5 = 21221 EQUB &1B \ yTrackSectionIHi yTrackSectionI = &1BF2 = 7154 EQUB &62 \ zTrackSectionIHi zTrackSectionI = &628F = 25231 EQUB &54 \ xTrackSectionOHi xTrackSectionO = &5405 = 21509 EQUB 54 \ trackSectionTurn EQUB &62 \ zTrackSectionOHi zTrackSectionO = &62A7 = 25255 EQUB 255 \ trackDriverSpeed \ Track section 21 EQUB &E3 \ trackSectionData sign = 14, sectionListSize = 3 EQUB &55 \ xTrackSectionIHi xTrackSectionI = &5597 = 21911 EQUB &11 \ yTrackSectionIHi yTrackSectionI = &115A = 4442 EQUB &42 \ zTrackSectionIHi zTrackSectionI = &4237 = 16951 EQUB &56 \ xTrackSectionOHi xTrackSectionO = &56B7 = 22199 EQUB 50 \ trackSectionTurn EQUB &42 \ zTrackSectionOHi zTrackSectionO = &424F = 16975 EQUB 28 \ trackDriverSpeed \ Track section 22 EQUB &E2 \ trackSectionData sign = 14, sectionListSize = 2 EQUB &53 \ xTrackSectionIHi xTrackSectionI = &536F = 21359 EQUB &10 \ yTrackSectionIHi yTrackSectionI = &10C4 = 4292 EQUB &39 \ zTrackSectionIHi zTrackSectionI = &3941 = 14657 EQUB &54 \ xTrackSectionOHi xTrackSectionO = &5469 = 21609 EQUB 71 \ trackSectionTurn EQUB &38 \ zTrackSectionOHi zTrackSectionO = &38B0 = 14512 EQUB 134 \ trackDriverSpeed scaled by 1.44 from the C64 \ Track section 23 EQUB &F3 \ trackSectionData sign = 15, sectionListSize = 3 EQUB &40 \ xTrackSectionIHi xTrackSectionI = &40AF = 16559 EQUB &18 \ yTrackSectionIHi yTrackSectionI = &1817 = 6167 EQUB &18 \ zTrackSectionIHi zTrackSectionI = &18C1 = 6337 EQUB &41 \ xTrackSectionOHi xTrackSectionO = &41A9 = 16809 EQUB 19 \ trackSectionTurn EQUB &18 \ zTrackSectionOHi zTrackSectionO = &1830 = 6192 EQUB 7 \ trackDriverSpeed \ Track section 24 EQUB &F3 \ trackSectionData sign = 15, sectionListSize = 3 EQUB &40 \ xTrackSectionIHi xTrackSectionI = &40BC = 16572 EQUB &1A \ yTrackSectionIHi yTrackSectionI = &1A7B = 6779 EQUB &13 \ zTrackSectionIHi zTrackSectionI = &135C = 4956 EQUB &41 \ xTrackSectionOHi xTrackSectionO = &41BD = 16829 EQUB 39 \ trackSectionTurn EQUB &13 \ zTrackSectionOHi zTrackSectionO = &13DD = 5085 EQUB 36 \ trackDriverSpeed \ Track section 25 EQUB &F3 \ trackSectionData sign = 15, sectionListSize = 3 EQUB &3E \ xTrackSectionIHi xTrackSectionI = &3E48 = 15944 EQUB &1E \ yTrackSectionIHi yTrackSectionI = &1E17 = 7703 EQUB &08 \ zTrackSectionIHi zTrackSectionI = &08C0 = 2240 EQUB &3F \ xTrackSectionOHi xTrackSectionO = &3F3D = 16189 EQUB 26 \ trackSectionTurn EQUB &08 \ zTrackSectionOHi zTrackSectionO = &0828 = 2088 EQUB 88 \ trackDriverSpeed scaled by 1.44 from the C64 \ Track section 26 EQUB &F3 \ trackSectionData sign = 15, sectionListSize = 3 EQUB &37 \ xTrackSectionIHi xTrackSectionI = &3725 = 14117 EQUB &1F \ yTrackSectionIHi yTrackSectionI = &1F73 = 8051 EQUB &FD \ zTrackSectionIHi zTrackSectionI = &FD32 = -718 EQUB &38 \ xTrackSectionOHi xTrackSectionO = &381A = 14362 EQUB 31 \ trackSectionTurn EQUB &FC \ zTrackSectionOHi zTrackSectionO = &FC9A = -870 EQUB 16 \ trackDriverSpeed EQUB &30, &30 \ These bytes appear to be unused EQUB &0D, &21 EQUB &E8, &FF EQUB &20, &FF