aspose.info
LV

REL — pārvietojams moduļa fails

Atjaunināts

Kas ir REL fails?

Failu ar paplašinājumu .rel var izmantot vairākiem mērķiem. Tāpēc spēļu klasifikācijas ziņā tas ir pazīstams kā pārvietojams moduļa fails, ko izmanto dažas Nintendo Wii spēles, piemēram, Brawl, Super Smash Bros un Mario Kart Wii. Tas ietver spēles datus, tostarp rakstzīmju modeļus un posmus. REL faili darbojas līdzīgi kā .DLL faili, ko izmanto Microsoft Windows.

REL faila formāts

REL faila formātā fails ir sadalīts vairākās sadaļās, kas sagrupētas pēc līdzīgas piekļuves, piemēram, vienā sadaļā tiek lasīti tikai dati, viss izpildāmais kods tiek ievietots citā utt. Fails sākas ar galvenes sadaļu, kam seko:

  • Tabula ar sadaļas informāciju.
  • sadaļas dati.
  • Informācija par pārvietošanu.

Faila galvene

Fails sākas ar galveni līdz 0x4C baitiem:

OfsetaIzmērsLauka nosaukumsApraksts
0x004idArbitrary identification number. Must be unique amongst all RELs used by a game. Must not be 0.
0x044nākamaisRādītājs uz nākamo moduli, kas aizpildīts izpildlaikā.
0x084iepriekšējāRādītājs uz iepriekšējo moduli, kas aizpildīts izpildlaikā.
0x0c4numSectionsSadaļu skaits failā.
0x104sadaļaInfoNobīdeNobīde līdz sadaļas tabulas sākumam.
0x144nameOffsetNobīde uz ASCII virkni, kas satur moduļa nosaukumu. Var būt NULL. Relatīvi pret REL faila sākumu.
0x184nosaukumsIzmērsModuļa nosaukuma lielums baitos.
0x1c4versijaREL faila formāta versijas numurs.
0x204bssIzmērsSadaļas .bss lielums.
0x244relOffsetNobīde uz pārvietošanas tabulu.
0x284impOffsetNobīde uz imp tabulu.
0x2c4impSizeimp tabulas lielums baitos.
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.
0x331bssSectionIndeksējiet sadaļu tabulā, ar kuru bss ir relatīvs. Aizpildīts izpildlaikā!
0x344prologNobīde norādītajā funkcijas _prolog sadaļā.
0x384epilogsNobīde norādītajā funkcijas _epilog sadaļā.
0x3c4neatrisinātsNobīde norādītajā funkcijas _unresolved sadaļā.
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.
0x484fixSizeTikai versija ≥ 3. Ja REL ir saistīts ar OSLinkFixed (nevis OSLink), atstarpi aiz šīs adreses var izmantot citiem mērķiem (piemēram, BSS).

Sadaļas informācijas tabula

Sadaļas informācijas tabulā ir numSections ieraksti, katrs 0 x 8 baitus garš:

OfsetaIzmērsApraksts
0x030 bitiNobīde no REL sākuma līdz sadaļai. Ja tā ir nulle, sadaļa ir neinicializēta sadaļa (ti, .bss).
0x3,61 bitsNezināms.
0x3,71 bitsIzpildāmais karogs; ja tas ir 1, sadaļa ir izpildāma.
0x44Sadaļas garums baitos. Ja tas ir nulle, šis ieraksts tiek izlaists.
0x8Nākamais ierakstsNākamais ieraksts

Pārvietošanas dati

Pārvietošanas dati ir viens vai vairāki 0x8 baitu struktūru saraksti. Katra saraksta beigas ir apzīmētas ar speciālo tipa kodu 203:

OfsetaVārdsIzmērsApraksts
0x0kompensēt2Nobīde baitos no iepriekšējās pārvietošanas uz šo. Ja šī ir pirmā pārvietošana sadaļā, tas attiecas uz sadaļas sākumu.
0x2tips1Pārvietošanas veids. Aprakstīts zemāk.
0x3sadaļa1Simbola sadaļa, pret kuru pārvietoties. Īpašajam pārvietošanas veidam 202 šis ir tās sadaļas numurs šajā failā, uz kuru attiecas šādi pārvietošanas ieraksti.
0x4pievienot4Simbola nobīde baitos, pret kuru pārvietot, attiecībā pret tā sadaļas sākumu. Tā vietā tā ir absolūta adrese pārvietošanai vietnē main.dol.
0x8Nākamais ierakstsNākamais ierakstsNākamais ieraksts

Atsauces

Skatīt arī