aspose.info
AZ

REL - Köçürülə bilən Modul Faylı

Yeniləndi

REL faylı nədir?

.rel uzantılı fayl bir neçə növ məqsəd üçün istifadə edilə bilər. Buna görə də, oyun təsnifatı baxımından o, Brawl, Super Smash Bros və Mario Kart Wii kimi bəzi Nintendo Wii oyunları tərəfindən istifadə edilən dəyişdirilə bilən modul faylı kimi tanınır. O, xarakter modelləri və mərhələləri daxil olmaqla oyun məlumatlarını ehtiva edir. REL faylları Microsoft Windows tərəfindən istifadə edilən .DLL faylları ilə eyni şəkildə işləyir.

REL fayl formatı

REL fayl formatında fayl bir neçə bölməyə bölünür, giriş kimi qruplaşdırılır, məsələn, bir bölmədə yalnız oxunan məlumatlar, bütün icra edilə bilən kodlar digərində yerləşdirilir və s. Fayl başlıq bölməsi ilə başlayır, ardınca:

  • Bölmə məlumatını ehtiva edən cədvəl.
  • Bölmə məlumatları.
  • Köçürmə məlumatları.

Fayl başlığı

Fayl 0x4C bayta qədər başlıq ilə başlayır:

OfsetÖlçüSahənin adıTəsvir
0x004idArbitrary identification number. Must be unique amongst all RELs used by a game. Must not be 0.
0x044növbətiİş vaxtında doldurulmuş növbəti modula göstərici.
0x084əvvəlkiİş vaxtında doldurulmuş əvvəlki modulun göstəricisi.
0x0c4numSectionsFayldakı bölmələrin sayı.
0x104bölməInfoOffsetBölmə cədvəlinin başlanğıcına ofset.
0x144nameOffsetModulun adını ehtiva edən ASCII sətrinə ofset. NULL ola bilər. REL faylının başlanğıcına nisbətən.
0x184adBoyutModul adının baytla ölçüsü.
0x1c4versiyaREL fayl formatının versiya nömrəsi.
0x204bssSize‘.bss’ bölməsinin ölçüsü.
0x244relOffsetKöçürmə cədvəlinə uyğun olaraq.
0x284impOffsetİmplant cədvəlinə ofset.
0x2c4impSizeİm cədvəlinin baytla ölçüsü.
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.
0x331bssSectionBSS-in nisbi olduğu bölmə cədvəlinə indeksləşdirin. İş vaxtında dolduruldu!
0x344prolog_prolog funksiyasının müəyyən hissəsinə ofset.
0x384epiloq_epilog funksiyasının müəyyən hissəsinə ofset.
0x3c4həll olunmamış_həll edilməmiş funksiyanın müəyyən hissəsinə ofset.
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.
0x484fixSizeYalnız versiya ≥ 3. REL OSLinkFixed ilə əlaqələndirilirsə (OSLink əvəzinə), bu ünvandan sonrakı boşluq digər məqsədlər üçün istifadə edilə bilər (məsələn, BSS).

Bölmə Məlumat Cədvəli

Bölmə məlumat cədvəlində hər 0x8 bayt uzunluğunda numSections daxilolmaları var:

OfsetÖlçüTəsvir
0x030 bitREL-in əvvəlindən bölməyə qədər ofset. Bu sıfırdırsa, bölmə açılmamış bölmədir (yəni .bss).
0x3.61 bitNaməlum.
0x3.71 bitİcra olunan bayraq; bu 1 olarsa bölmə icra edilə biləndir.
0x44Bölmənin bayt uzunluğu. Bu sıfırdırsa, bu giriş atlanır.
0x8Növbəti girişNövbəti giriş

Köçürmə Məlumatı

Köçürülmə məlumatları 0x8 baytlıq strukturların bir və ya bir neçə siyahısıdır. Hər bir siyahının sonu xüsusi tipli 203 kodu ilə qeyd olunur:

OfsetAdıÖlçüTəsvir
0x0ofset2Əvvəlki yerdəyişmədən bu yerə baytlarla ofset. Bu bölmədə ilk yerdəyişmədirsə, bu bölmənin başlanğıcına nisbətəndir.
0x2növü1Köçürmə növü. Aşağıda təsvir edilmişdir.
0x3bölmə1Simvolun yerini dəyişdirmək üçün bölməsi. Xüsusi yerdəyişmə növü üçün 202, əvəzinə bu faylda aşağıdakı köçürmə qeydlərinin tətbiq olunduğu bölmənin nömrəsidir.
0x4əlavə et4Bölmənin başlanğıcına nisbətən yerini dəyişdirmək üçün simvolun baytları ilə ofset. Bu, main.dol-a qarşı yerdəyişmələr üçün mütləq ünvandır.
0x8Növbəti girişNövbəti girişNövbəti giriş

İstinadlar

Həmçinin bax