aspose.info
FI

REL - Siirrettävä moduulitiedosto

Päivitetty

Mikä on REL-tiedosto?

Tiedostoa, jonka pääte on .rel, voidaan käyttää monenlaisiin tarkoituksiin. Siksi pelien luokittelussa se tunnetaan siirrettävänä moduulitiedostona, jota käyttävät jotkut Nintendo Wii -pelit, kuten Brawl, Super Smash Bros ja Mario Kart Wii. Se sisältää pelidatan, mukaan lukien hahmomallit ja vaiheet. REL-tiedostot toimivat samalla tavalla kuin Microsoft Windowsin käyttämät .DLL-tiedostot.

REL-tiedostomuoto

REL-tiedostomuodossa tiedosto on jaettu useisiin osiin, jotka on ryhmitelty samanlaisilla käyttöoikeuksilla, esim. vain luku -tiedot yhdessä osiossa, kaikki suoritettava koodi sijoitetaan toiseen jne. Tiedosto alkaa otsikko-osalla, jota seuraa:

  • Taulukko, joka sisältää osion tiedot.
  • Osion tiedot.
  • Muuttotiedot.

Tiedoston otsikko

Tiedosto alkaa otsikolla, jonka koko on enintään 0x4C tavua:

OffsetKokoKentän nimiKuvaus
0x004idArbitrary identification number. Must be unique amongst all RELs used by a game. Must not be 0.
0x044seuraavaOsoitin seuraavaan moduuliin, täytetty ajon aikana.
0x084edellinenOsoitin edelliseen moduuliin, täytetty ajon aikana.
0x0c4numSectionsTiedoston osioiden lukumäärä.
0x104osioInfoOffsetSiirtymä osiotaulukon alkuun.
0x144nameOffsetSiirtymä ASCII-merkkijonoon, joka sisältää moduulin nimen. Voi olla NULL. Suhteellinen REL-tiedoston alkuun.
0x184nimiKokoModuulin nimen koko tavuina.
0x1c4versioREL-tiedostomuodon versionumero.
0x204bssSize.bss-osan koko.
0x244relOffsetSiirretty siirtotaulukkoon.
0x284impOffsetOffset imp-taulukkoon.
0x2c4impSizeImp-taulukon koko tavuina.
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.
0x331bssSectionIndeksoi osataulukkoon, johon bss on suhteellinen. Täytetty ajon aikana!
0x344prologSiirto _prolog-funktion määritettyyn osaan.
0x384epilogSiirto _epilog-funktion määritettyyn osaan.
0x3c4ratkaisemattaSiirto _unresolved-funktion määritettyyn osioon.
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.
0x484fixSizeVain versio ≥ 3. Jos REL on linkitetty OSLinkFixediin (OSLinkin sijaan), tämän osoitteen jälkeistä tilaa voidaan käyttää muihin tarkoituksiin (kuten BSS).

Osion tietotaulukko

Osion tietotaulukko sisältää numSections -merkintää, jokainen 0x8 tavua pitkä:

OffsetKokoKuvaus
0x030 bittiäSiirto REL:n alusta jaksoon. Jos tämä on nolla, osa on alustamaton osa (eli .bss).
0x3,61 bittiTuntematon.
0x3,71 bittiSuoritettava lippu; jos tämä on 1, osa on suoritettava.
0x44Osion pituus tavuina. Jos tämä on nolla, tämä merkintä ohitetaan.
0x8Seuraava merkintäSeuraava merkintä

Siirtotiedot

Siirtotiedot ovat yksi tai useampia 0x8-tavuisten rakenteiden luetteloita. Kunkin luettelon loppu on merkitty erityisellä tyyppikoodilla 203:

OffsetNimiKokoKuvaus
0x0offset2Poikkeama tavuina edellisestä siirrosta tähän. Jos tämä on osion ensimmäinen siirto, tämä on suhteessa osan alkuun.
0x2tyyppi1Siirron tyyppi. Kuvailtu alla.
0x3jakso1Symbolin osa, jota vastaan siirretään. Erikoissiirtotyypille 202 tämä on sen sijaan tämän tiedoston sen osan numero, jota seuraavat siirtomerkinnät koskevat.
0x4lisää4Siirrettävä symboli tavuina suhteessa sen osan alkuun. Tämä on sen sijaan ehdoton osoite main.dol-sivuston siirroille.
0x8Seuraava merkintäSeuraava merkintäSeuraava merkintä

Viitteet

Katso myös