Password explained: F-1 Spirit and A-1 Spirit
This page explains about the F-1 Spirit and A-1 Spirit password system. The password system starts out with a null-based password. This null-password is 38 characters long. For the most common F-1 Spirit version the null-password looks like NBBNDCDECNMAAFKIBGCEFAPCAKKBCNIMCMANBB and the first character used depends on the first character of the password. This first letter is determined at random to somewhat cloak the password system.

For A the null-password would look like ANBBNDCDECNMAAFKIBGCEFxx.
For B the null-password would look like BBBNDCDECNMAAFKIBGCEFAxx.
For C the null-password would look like CBNDCDECNMAAFKIBGCEFAPxx.
etc.
For P the null-password would look like PIBGCEFAPCAKKBCNIMCMANxx.

The xx are checksum characters. These are encoded using the null-based string as well. We'll get to calculating this checksum later.

For A-1 Spirit the following null-password applies: AABBJOCGGOCDDAKDDNADNGDNGDNACDOLBOAAAC.

In the password each race has a specific position which is numbered S1-S21. It's like this table:

X S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16 S17 S18 S19 S20 S21 Checksum1 Checksum2

The following table displays which position in the password corresponds with which race track:

No.Race type
S1Rally
S2Stock Race
S3Endurance Race
S4F3 Race
S5F3000 Race
S6F1: Brazil
S7F1: San Marino
S8F1: Belgium
S9F1: Monaco
S10F1: USA
S11F1: France
No.Race type
S12F1: Great Britain
S13F1: West Germany
S14F1: Hungary
S15F1: Austria
S16F1: Italy
S17F1: Portugal
S18F1: Spain
S19F1: Mexico
S20F1: Japan
S21F1: Australia
 

Once we know the positions of each race in the password we can change the score to our desired one. For this, you need to get the null-password letter on that position and look in the table below for the new letter that corresponds with the score for that race. So, if you want to set 9 points for the endurance race, then you look for the 3 score letter in the password. For the A based password, the letter in the null-password is the second B. Now we look in the table for B where the score is 0 and we look for the letter that corresponds with 9. Looking at the table this is I. The green part in the table is for the checksum only.

0123456789101112131415
ABCDEFGHIJKLMNOP
BADCFEHGJILKNMPO
CDABGHEFKLIJOPMN
DCBAHGFELKJIPONM
EFGHABCDMNOPIJKL
FEHGBADCNMPOJILK
GHEFCDABOPMNKLIJ
HGFEDCBAPONMLKJI
IJKLMNOPABCDEFGH
JILKNMPOBADCFEHG
KLIJOPMNCDABGHEF
LKJIPONMDCBAHGFE
MNOPIJKLEFGHABCD
NMPOJILKFEHGBADC
OPMNKLIJGHEFCDAB
PONMLKJIHGFEDCBA

Once all scores are determined it's time to complete the password with the required checksum. Every score is used for the checksum. The base value for the checksum is taken from the randomized letter. This letter can be converted to its value using the following table. The result will be called Base.

ABCDEFGH IJKLMNOP
01234567 89101112131415

Checksum1 = (Base XOR S1 XOR S2 XOR S3 XOR S4 XOR S5 XOR S6 XOR S7 XOR S8 XOR S9 XOR S10 XOR S11 XOR S12 XOR S13 XOR S14 XOR S15 XOR S16 XOR S17 XOR S18 XOR S19 XOR S20 XOR S21) AND 15
Checksum2 = (Base + S1 + S2 + S3 + S4 + S5 + S6 + S7 + S8 + S9 + S10 + S11 + S12 + S13 + S14 + S15 + S16 + S17 + S18 + S19 + S20 + S21) AND 15

Finally, the two checksum values are converted using the table based on the null-password. The same table is used to encrypt the checksums. To clear up how these null-based encryption is determined, the first examples are done again for the checksum only. Used string: NBBNDCDECNMAAFKIBGCEFAPCAKKBCNIMCMANBB

For A the checksum letters would be: AP.
For B the checksum letters would be: PC.
For C the checksum letters would be: CA.
etc.
For P the checksum letters would be: BB.

Remember: these letters are still to be converted to the correct letter using the table.

The password generator can be downloaded here.

This new version of the password generator is completely rewritten. The F1 races are listed now and allow multiple races to change scores. Also the passwords for the different versins are simulatneously displayed. And finally it's possible to enter your password to quickly convert it to a different version.