aspose.info
LT

REL – perkeliamo modulio failas

Atnaujinta

Kas yra REL failas?

Failas su plėtiniu .rel gali būti naudojamas įvairiems tikslams. Todėl, kalbant apie žaidimų klasifikaciją, jis žinomas kaip perkeliamas modulio failas, naudojamas kai kuriuose Nintendo Wii žaidimuose, tokiuose kaip Brawl, Super Smash Bros ir Mario Kart Wii. Jį sudaro žaidimo duomenys, įskaitant simbolių modelius ir etapus. REL failai veikia panašiai kaip .DLL failai, naudojami Microsoft Windows.

REL failo formatas

REL failo formatu failas yra padalintas į kelias dalis, sugrupuotas pagal panašią prieigą, pvz., skaitomi tik duomenys viename skyriuje, visas vykdomasis kodas dedamas į kitą ir tt Failas prasideda antraštės skyriumi, po kurio seka:

  • Lentelė su skyriaus informacija.
  • Skyriaus duomenys.
  • Informacija apie persikraustymą.

Failo antraštė

Failas prasideda iki 0x4C baitų antrašte:

OffsetDydisLauko pavadinimasAprašymas
0x004idArbitrary identification number. Must be unique amongst all RELs used by a game. Must not be 0.
0x044kitasRodyklė į kitą modulį, užpildytą vykdymo metu.
0x084ankstesnisRodyklė į ankstesnį modulį, užpildytą vykdymo metu.
0x0c4numSectionsSkilčių skaičius faile.
0x104skyriusInformacijos poslinkisPoslinkis į skyrių lentelės pradžią.
0x144nameOffsetPoslinkis į ASCII eilutę, kurioje yra modulio pavadinimas. Gali būti NULL. Santykinis su REL failo pradžia.
0x184pavadinimasDydisModulio pavadinimo dydis baitais.
0x1c4versijaREL failo formato versijos numeris.
0x204bssSizeSkilties .bss dydis.
0x244relOffsetPerskirstymas į perkėlimo lentelę.
0x284impOffsetasPoslinkis į imp lentelę.
0x2c4impSizeimp lentelės dydis baitais.
0x301prologSectionIndex into section table which prolog is relative to. Skip if this field is 0.
0x311epilogSectionIndex into section table which epilog is relative to. Skip if this field is 0.
0x321unresolvedSectionIndex into section table which unresolved is relative to. Skip if this field is 0.
0x331bssSectionIndeksas į skyrių lentelę, su kuria bss yra santykinis. Užpildyta vykdymo metu!
0x344prologasPoslinkis į nurodytą funkcijos _prolog skyrių.
0x384epilogasPoslinkis į nurodytą funkcijos _epilog skyrių.
0x3c4neišspręstasPoslinkis į nurodytą funkcijos _unresolved skyrių.
0x404alignVersion ≥ 2 only. Alignment constraint on all sections, expressed as power of 2.
0x444bssAlignVersion ≥ 2 only. Alignment constraint on all ‘.bss’ section, expressed as power of 2.
0x484fixSizeTik versija ≥ 3. Jei REL yra susietas su OSLinkFixed (vietoj OSLink), tarpas po šio adreso gali būti naudojamas kitiems tikslams (pvz., BSS).

Skyriaus informacijos lentelė

Skilties informacijos lentelėje yra numSections įrašų, kurių kiekvienas yra 0x8 baitų ilgio:

OffsetDydisAprašymas
0x030 bitųPoslinkis nuo REL pradžios iki atkarpos. Jei šis skaičius lygus nuliui, sekcija yra neinicializuota sekcija (ty .bss).
0x3,61 bitasNežinoma.
0x3,71 bitasVykdomoji vėliava; jei tai yra 1, skyrius yra vykdomas.
0x44Skilties ilgis baitais. Jei tai yra nulis, šis įrašas praleidžiamas.
0x8Kitas įrašasKitas įrašas

Perkėlimo duomenys

Perkėlimo duomenys yra vienas ar keli 0x8 baitų struktūrų sąrašai. Kiekvieno sąrašo pabaiga pažymėta specialiu tipo kodu 203:

OffsetVardasDydisAprašymas
0x0kompensuoti2Poslinkis baitais nuo ankstesnio perkėlimo į šį. Jei tai pirmasis perkėlimas skyriuje, tai susiję su sekcijos pradžia.
0x2tipas1Perkėlimo tipas. Aprašyta žemiau.
0x3skyrius1Simbolio skyrius, prieš kurį reikia perkelti. Naudojant specialų perkėlimo tipą 202, tai yra šio failo skyriaus, kuriam taikomi šie perkėlimo įrašai, numeris.
0x4pridėti4Simbolio poslinkis baitais, prieš kurį reikia perkelti, palyginti su jo sekcijos pradžia. Vietoj to, tai yra absoliutus adresas perkėlimams iš main.dol.
0x8Kitas įrašasKitas įrašasKitas įrašas

Nuorodos

Taip pat žiūrėkite