Skip to content
LuigiBlood edited this page Aug 13, 2021 · 10 revisions

F-Zero X is a rebooter game. It loads a portion of code from disk, disables N64 OS and executes it.

Technical Details

  • The game checks for the following 64DD units:
    • Japanese Retail Unit (Japan)
    • American Retail Unit (USA)
    • Development Unit (All)
  • The game checks for the following Disk Game Codes:
    • Checks if the Company Code is 01 (Nintendo).
    • Checks if the last 3 letters of the Game Code are FZJ (Japan) or FZE (USA).
    • Checks if the first letter of the Game Code is between E to Z.
  • The game performs the following when a F-Zero X Expansion Disk is detected (function 800FC300 in JP version):
    • Load LBA 833 to 80600000.
      The format is the following:
      00: IIIIIIII SSSSSSSS EEEEEEEE RRRRRRRR
      10: ???????? ???????? ???????? ????????
      20: ???????? ???????? ???????? ????????
      
      IIIIIIII = Loading Method?
      SSSSSSSS = LBA Start
      EEEEEEEE = LBA End
      RRRRRRRR = RAM Load Address & Entrypoint
      
    • Load from <LBA Start> to <LBA End> at RAM Load Address.
    • If 800FC5C0 is 0 then other things may happen with IIIIIIII (however it is always 1..?)
    • Decrypt and boot the loaded code at described entrypoint address via LeoBootGame function (800BB540 in JP version).
      • The first 0x100 bytes of the loaded code are encrypted. See 64ddutils' bootcodecrypto.c for the crypto process.