Outpost 2 Mallattoo Faayilaa · bei.pm
Formatota faayilii irratti ibsame kun, qorannaa tekinikaatiin kan hundaa'e gurguddaa Dynamix, Inc. fi Sierra Entertainment irratti hundaa'e.
Qabeenyi yaadaa har'a Activision Publishing, Inc. / Activision Blizzard, Inc. keessatti argama fi amma Microsoft Corp. tiin qabamee jira.
Informationni kun Reverse Engineering fi Datenanalyse fayyadamuudhaan, kuusaa fi waliigaltee seenaa waliin taasisuuf qophaa’e.
Specifikeshinota eenyummaa ykn dhoksaa hin fayyadaman.
Game'n amma gog.com irraa buufachuuf gurgurtaa irratti argamuu danda’a.
Qabiyyeen armaan gadii odeeffannoo qubee ta'aan gosa dataa irratti kan xiyyeeffatu, "Outpost 2: Divided Destiny" jedhamuuf, 1997 Sierra dhaan maxxanfamee fi Dynamix dhaan hojjetame irratti.
Kiisaa 01 Caamsaa 2015 hanga 14 Caamsaa 2015tti odeeffannoo dataa game kanaa fi akkamitti itti fayyadamuu danda'an irratti xiyyeeffannaa kenname.
Odeeffannoo ammaa argachuun kootti, Dynamix - akka dhaabbilee kaan hedduu - gosa dataa muraasa "Outpost 2" qofaaf hin qophaa'in, garuu hojiilee biroo akka Mechwarrior keessatti (ni jijjiirama) fayyadamuun himama.
Haa ta’u malee, guddina gosa dataa irratti haala addaa ta'een xiqqoo mul'ata, akkasumas gosa formaata duraan jiru kan akka JFIF fi RIFF irraa qindaa'uu irratti hundaa'a.
Qabiyyee fi gosa dataa hubachuuf odeeffannoo dabalataa armaan gadii irratti argachuu dandeessu Maaltu maaltu?.
Odeeffannoo as irratti kenname kan Little Endian akka hubatamuuf.
Xumura irratti, injifannoo marsaa deebi'uu (Reverse Engineering) baay'ee gammachiisaa ture, yommuu guutummaatti hin ta’in.
Haa ta'u malee, game kana ofumaan taphachuun akkasumas raawwatamuu akka dandeessu nan gorsa, sababni isaas taphni kun mala taphannaa garii qaba.
Seensa
Daatota Outpost 2'n fayyadaman akka JFIF / PNG tiin kan yaadatamu ijaarsa qaba - boloogota daataa tokko tokkoon isaanii yeroo hunda 8 Byte header qaba. Dhaabbatni kanaaf, header tokko tokkoon iddoowwan sirrii irratti barreessuu keessaa fagaadhe, bakka sanatti garuu gargarummaa qofa barreessa.
Formaati yeroo hunda kan armaan gadii; daataa dhugaa ittiin fayyadamu sunis achi keessatti kuufameera:
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Baatota Ajaayinaa | Oduu kan agarsiisu maaliif data block itti aanutti eeggamuu qabu. Gatii beekamoo:
|
0x0004 | uint(24) | Bakka-Dheerina | Oduu odeeffannoo kan ibsu, akkamitti (Baay'ee) bittaa odeeffannoo armaan gadii bal'inaan ta'ee jira. Kunis odeeffannoo hojii qofa ka'aa - byte 8 kan header ta'an keessatti hin jiru. |
0x0007 | uint(8) | Bara? | Waan kanaan dura bu'uurri isaa maal akka ta'e hin beekamu. Gara voluumii keessatti, gatii kun yeroo baay'ee 0x80 dha, faayiloota biroo keessatti immoo yeroo baay'ee 0x00 dha. Kunis akka agarsiisutti, kun flag-set ta'uu mala. |
Kutaalee
Volumiiwwan kunniin saanduqa odeeffannoo ta'ee taphichaaf kan oolu, akkasumas faayilaalee akka tarball fakkaatan. Yeroo tokko tokko Outpost 2 keessatti foormaatin kun faayilaalee qofa beekama - folderootas hin beekne. Waliigalatti, faayiloota sirrii maqaa faayilaaleen simaluun danda'ama.
Volume tokko header volume irraa fi blockota volume hedduu irraa kan ijaarame, kanneen faayilaalee dhugaa ta'an.
"Volumes" faayilaalee xumurawwan 'vol'
qabaniidha kan taphichatti argaman.
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 56 | 4f | 4c | 20 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | V | O | L | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Maqaa Majiikii | |
0x0004 | uint(24) | Bakka-Dheerinaa | |
0x0007 | uint(8) | Bandeeraa |
Gulaala Guddinaa
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 68 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | h | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Maqaa Majiikii | |
0x0004 | uint(24) | Bakka-Dheerinaa | |
0x0007 | uint(8) | Bandeeraa |
Haala Qindaa'aa Volume keessatti odeeffannoo fayyadamu hin qabu.
Isaan kun qofa iddoo kuusaa dha.
Odeeffannoo jalqabaa Volume keessatti Strings Volume argamuu qabu; itti aansee odeeffannoo Volume ni dhufaa.
Qindaa'ina Guddinaa
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 69 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | i | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Maqaa Majiikii | |
0x0004 | uint(24) | Bakka-Dheerinaa | |
0x0007 | uint(8) | Bandeeraa |
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 73 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | s | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Maqaa Majiikii | |
0x0004 | uint(24) | Bakka-Dheerinaa | |
0x0007 | uint(8) | Bandeeraa | |
0x0008 | uint(32) | Fayidaa Dheeraa | Maaliin ibsaa, akkamitti bayyaan %s fayyadamtoota odeeffannoo armaan gadii hagam ta'uu isaa. Odeeffannoon hafaa, bakka galmee string-Volume keessatti argamu, akka garbage ilaalamuun mul'ata. Faayiloota yeroo booda ta'anii 'odeeffannoo hafaa' 0x00 ta'uu, kun immoo rakkoo toolchain keessaatti mul'achuun mul'ata, kanas, kan agarsiisu, hojjattoonni sirna buufata qunnamtii sirrii irratti yeroo dheeraaf akka yaadaan hin hojjetne, sababiin isaas, odeeffannoon buufatame sirriitti hojjechuu isaati kan hin barbaachifne, gameen itti hin dhiyaatu, odeeffannoon buufatame yookin hin buufatamne. |
0x000c | uint(8)[] | Galmee Maqaa Faayiloota | Kun lakkofsa maqaa faayiloota 0-Byte-tiin xumureedha, kan - akkasumas kutaa odeeffannoo armaan dura - mallattoo ASCII qofaan eegama. Yoo odeeffannoo kana hiikuuf yaaluu ta'e, odeeffannoo gosa kana bal'inaan hubachuun barbaachisaa miti, sababiin isaas odeeffannoo voluumiin faayiloota maqaa isaanii qindaa'uu ni mul'ata. |
Volume Strings jechuun tarree maqaa faayiloota keessatti argamaniidha.
Oduu Walitti Fufiinsa
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 69 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | i | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Maqaa Majiikii | |
0x0004 | uint(24) | Bakka-Dheerinaa | |
0x0007 | uint(8) | Bandeeraa |
Informationoonni voluumiin odeeffannoo bal'aa fayiloota irratti qabu. Kuni garaagarummaa akkuma FAT galmee galmeewwan (FAT = File Allocation Table) itti fufee jira.
Baay'ina fayiloota isa argamuun, bloqqii gatii guutuu hirmaachuudhaan galmeewwan dheerina - 14 Byte.
Galmee galmeewwan tokko tokkoon akkana haan haala qabu:
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Maqaa Faayilii-Offset | Jalqaba maqaaf tokkoffaa (Volume-Strings) keessatti faayilii maqaaf iddoo (Offset !) itti argamu agarsiisa. Kun immoo bita qabeentaa fayyadamaa irratti xiyyeeffata. |
0x0004 | uint(32) | Faayilii-Offestii | Yoo ta'e, bakka offset kamii keessatti faayilni voluumiin guutuu argamu ibsa. |
0x0008 | uint(32) | Gatii Faayilii | Fakkii faayilii baay'ee akkamitti guddaa ta'ee ibsa. |
0x000c | uint(16) | Bakkawwan? | Osoo mul'ataa, odeeffannoo dabalataa kan fayyadamuu irratti ibsa kenna.
|
Walakkaa Qabeentaa
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 56 | 42 | 4c | 48 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | V | B | L | H | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Maqaa Majiikii | |
0x0004 | uint(24) | Bakka-Dheerinaa | |
0x0007 | uint(8) | Bandeeraa |
Volume-Block jechuun kontaayina tokkoo dha, kan faayiloota qabatu. Kun faayiloota gatii isaanii - akka foormaatin block-tti - yeroo lamaa of keessatti qabata akkasumas itti aansuun odeeffannoo fayyadamtootaa ni dhufa.
Tilaawwan
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 50 | 42 | 4d | 50 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | P | B | M | P | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Maqaa Jaalalaa | |
0x0004 | uint(24) | Dheerina-Blooqii | |
0x0007 | uint(8) | Baraaroota |
Taayilaaleen kun faayidaa Outpost-2'tti
kan dhiyoo ta'eedha,
hin caccabsine
"well" jedhuun kan waamamu (well0000.bmp
hanga well0012.bmp
),
kana keessaa maps.vol jiru.
Taayilaaleen/Wells kan armaan gadii qabu:
Maqaa Faayila | Wanti Keessaa |
---|---|
well0000.bmp | Giraafikii 32x32px gurguddaa, diimaa - qajeelcha ta'uu isaa mirkaneessuuf |
well0001.bmp | Dhagaa ifaa, daandii daandii dhagaa ifaa irratti fi bifa jijjiirama hedduu qabdu kan dhagaa ifaa irratti mul'atu |
well0002.bmp | Dhagaa ifaa irratti qindaa'oo 'Doodads' - kunis wantoota dhagaa ifaa irratti bifa jijjiiramaa (yookiin qindaa'aa, fakkeenyaaf, teessoo) ta'aniidha, kanneen keessaa biqiltuu dabalata |
well0003.bmp | Dhagaa ifaa irratti ijaarsa lafee kan qabu |
well0004.bmp | Dhagaa dimaa, daandii daandii dhagaa dimmaa irratti fi bifa jijjiirama hedduu qabdu kan dhagaa dimmaa irratti mul'atu |
well0005.bmp | Dhagaa dimmaa irratti qindaa'oo 'Doodads' - kunis wantoota dhagaa dimmaa irratti bifa jijjiiramaa (yookiin qindaa'aa, fakkeenyaaf, teessoo) ta'aniidha |
well0006.bmp | Dhagaa dimmaa irratti ijaarsa lafee kan qabu, akkasumas geengoo giddugala dhagaa ifaa fi dimmaa gidduutti |
well0007.bmp | Laava of keessaa qabdu, fakkeenyaaf 4-5 frames hojiiwwan isaatu jira |
well0008.bmp | Qamadi fi bifa jijjiirama hedduu qabdu kan dhagaa keessatti mul'atu |
well0009.bmp | Qamadi irratti qindaa'oo 'Doodads' - kunis wantoota dhagaa qamadi irratti bifa jijjiiramaa (yookiin qindaa'aa, fakkeenyaaf, teessoo) ta'aniidha |
well0010.bmp | Dhagaa qamadi irraa gara dhagaa ifaa fi dimmaa geengoo 48 qabdu |
well0011.bmp | Qarqara Polaarkaa map kana irratti, dhagaa dimmaa gubbaa |
well0012.bmp | Qarqara Polaarkaa map kana irratti, dhagaa ifaa gubbaa |
Mirga baay’ee barbaachisaa ta'uu isaa, Tiles dursee hin agarsiifneefuu kan cacha'uu danda'u, sababiin isaas data guyyaa/haaraa gahuuf akka hojjetamuu qabu - akkasumas data baay'ee waliin dhufuu danda'a.
Tileen 8bpp-giraafikota paletii indexeedha, 32x32 pixel saffisaan walitti fufanii jiru. Tileset kana keessatti garuu baay'inaan
Kaontiinaa ijoo keessatti kutaa 2 qaba: head
fi data
.
Gadaa Qubee
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 68 | 65 | 61 | 64 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | h | e | a | d | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Maqaa Jaalalaa | |
0x0004 | uint(24) | Dheerina-Blooqii | |
0x0007 | uint(8) | Baraaroota | |
0x0008 | uint(32) | Bara / Falaasama? | Kun gosa versionii faayilii agarsiisuu danda'a; faayiloota hunda ani qabuu keessatti, gatii |
0x000c | uint(32) | Bal'ina (Fayyadama Horiizontaal) | Bal'ina suuraa faayilii agarsiisa (piksiliin). Wells hundaa Outpost 2 keessatti, gatii |
0x0010 | uint(32) | Ulfa (Dhiibbaa Giddugaleessaa) | Akkaataa suuraa ol ka'aa (pixeleen). Wells hundaa Outpost 2 keessatti, gatii |
0x0014 | uint(32) | Halluu dachaasaa? | Maanguddoon qabeenya kanaa hin beekamu. Sababni isaas faayiloota hundumaa kan qoraman keessaa qabeenyi |
0x0018 | uint(32) | Faayila midhaan 2? | Maaliin gatii kun hin beekamu. Yoo ta'e, kun 'kaayyoo' - booree dhedheeraa ta'uu mala. |
Odeeffannoo kana booda, faayilii paaletaa kan RIFF sadarkaa tokkotti dhiyaate ni jira. Qajeelfamni sirrii - sababiin isaas paaletoonni bakka biroo mul'atan - Paaleetota jalatti argama.
Daataa Tayiilaa
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 64 | 61 | 74 | 61 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | d | a | t | a | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Maqaa Jaalalaa | |
0x0004 | uint(24) | Dheerina-Blooqii | |
0x0007 | uint(8) | Baraaroota |
Xumura irratti, odeeffannoon pixeliin ifaa dhufaa jira, bita-gubbaa gara mirga-jalaa tarreeffamanii.
Qu'annoon odeeffannoo gosa suuraalee 8bpp-Bitmaps jedhamee beekaman keessatti, bakka halluu paletii keessatti argamu.
Engine'n tapha'n tiles'n *dhiheessaa* yeroo barbaachisaa irratti mul'ata.
Kunis, ganna fi winter gidduutti gahuudhaan, 32 gosa tiles adda addaa irratti kan hundaa'eedha. Itti fufinsaa ifa'a jechuu 'xiqqoo' irraa hir'ifama. Gatii sirrii ta'an hanga ammaa hin argamne, ani immoo bu'aa qabeessa irratti hojjedha
v *= (daylight / 48) + 0.25;
HVV data'n pixel'ota waliin, daylight'n gatii 0-31 qaba, v'n immoo gatii 0-1 gidduu qaba. Amma, map'n bakka 16 tiles waliin mirga fi bitaa (kun unit'ota mul'achuu dhoksaaf oola) qabaachuu isaa hubachuun barbaachisaa dha.
Akkasumas, ganna fi winter gidduutti cycle'n game cycle tokko tokko map'n karaa tokko qofa haala haaromsuu mul'ata.
Cycle'n ganna fi winter saffisaan akkana fakkaata:
PRT
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 43 | 50 | 41 | 4c | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | C | P | A | L | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Magiik Baayitii | |
0x0004 | uint(24) | Dheerina Paalettii | Gara caasaa walakkaa duraanii, lakkoofsa paletoota faayilii kana keessa argaman ibsa - dheerina blookii baay'ee miti. |
0x0007 | uint(8) | Bandeeraa | Yeroo baay'ee, akkasuma, faallaa. An garuu faallaa beekuu hin dandeenye; sababiin isaas gatiiwwan ani beekuu |
Maaliif PRT
akka dhugaa ta'ee hinbeekamu; fakkeenyaaf 'Palette and Ressource Table' ta'uu danda'a - sababni isaas faayiliin kun - akka op2_art.prt jedhamutti argamu - faayila akkasii dha, yookiin hojii isaa gaariidha jechuun ni danda'ama.
Faayiliin kun tarree paletootaa, teessuma bitmap hunda fayyadamaniin, hiika animeshinii fi odeeffannoo hinbeekamne hedduu of keessaa qaba. Kunis format kanneen duraanii kan bakka bu'aan sirrii hin taaneen hordofaa jira, sababiin isaas galmeewwan hundi sirna kana hin hordofne.
Seekshinii CPAL
(paletootaa kanneen qabatanii dha) odeeffannoo paletootaa qofa of keessaa qaba, akkamitti paletoota 8-Bit kanneen 1052 Byte guddatanii akka jiran ibsa.
Beeksisni 1052-Byte kun dirqama ta'uu hin qabu, sababiin isaas format paletootaa garaagaraa ta'uu danda'a. Kunis odeeffannoo Outpost 2 waliin kennamuuf qofa ta'a.
Tarree paletootaa booda, tarree bitmap ni dhufa; akkasuma tarree animeshinii ni dhufa.
Kanumaan walqabatee, lamaan isaanii uint(32) (yookiin uint24+uint8 mallattoolee?) jalqabaa, kan lakkoofsa galmeewwan of keessaa qaba.
Paaleetota
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 50 | 50 | 41 | 4c | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | P | P | A | L | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Magaala Biyyaa | |
0x0004 | uint(24) | Dheerina Palaateen | Fakkeenya, haala caasaa idileetti, lakkoofsa paletii faayilii kana keessatti argaman agarsiisa - dheerina blokii baay'ee osoo hin taane. |
0x0007 | uint(8) | Bakkawwan | Waanuma fakkaatu, akka aadaa, alaa. Garuu alaa hin beeku; sababiin isaas gatiiwwan naaf beekaman hundi |
Maaltota paletii akka salphatti dubbifamuu danda'u.
Isaan hundi kaffaltii fi kutaa data irraa ijaaraman.
Gulaala Paletii
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 68 | 65 | 61 | 64 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | h | e | a | d | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Magaala Biyyaa | |
0x0004 | uint(24) | Dheerina Palaateen | Fakkeenya, haala caasaa idileetti, lakkoofsa paletii faayilii kana keessatti argaman agarsiisa - dheerina blokii baay'ee osoo hin taane. |
0x0007 | uint(8) | Bakkawwan | Waanuma fakkaatu, akka aadaa, alaa. Garuu alaa hin beeku; sababiin isaas gatiiwwan naaf beekaman hundi |
0x0008 | uint(32) | Palettenformat-fooyya'iinsa? | Waa'ee gosa paletii kamiyyuu paletii sun hordofaa jiru ni ibsa. Paletoonni Outpost2 hundi gabaasa |
Data Paletaa
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 64 | 61 | 74 | 61 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | d | a | t | a | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Magaala Biyyaa | |
0x0004 | uint(24) | Dheerina Blookii | |
0x0007 | uint(8) | Bakkawwan |
Seektara dataa keessaa galmee paletii tokkoon tokkoon ni qabata. Lakkoofsi galmee paletii qulqullina kutaalee / 4 irraa ka'aa.
Galmeewwan tokkoon tokkoon isaanii akkana, sirna salphaa qabu;
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | 04 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(8) | Koompoona diimaa | Faayidaa diimaa halluutiin ibsa |
0x0001 | uint(8) | Garaara Madaa | Faayidaa midhaan green kan naqa irratti agarsiisa |
0x0002 | uint(8) | Bulaa-Kompoontii | Furdina balaa halluu agarsiisa |
0x0003 | uint(8) | Haqa hin beekamne - Falaasama? | Wanti kun maaliif akka ta'e ifa hin taane, sababiin isaas |
Paletootaa irratti, paletootni animation itti fayyadamuuf heera armaan gadii ni hojjatu:
- Colour jalqabaa YEROO MARAA ifa dha, akkaataa gatii kamiyyuu keessatti kaa’ameen.
-
Paletootni 1-24 paletootni 1-8 keessatti
colori taphataa akka ilaalamu.
Coloroonni taphataa 1n alatti eessaa akka dhufan naaf hin ifa.
Coloroonni hafan hardcoded ta'uu yaada qaba.
Bitoomaa
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Biqiltuu qajeelfama | Bal'ina sarara daataa pikselii baay'ee kan ibsu - sababiinsaa 4-Byte daangaa irratti qindaa'uu dha. Akka kanaan, sarara suuraa tokko saffisaan argachuu ni danda'ama. Sababni gatii kun addaan kuusamuun isaa, yommuu inni herregamuu danda'u, ifa hin taane. |
0x0004 | uint(32) | Karaa ofsetii | Oofsetii xayyaaraa jalqabaa bitmap keessatti ibsa |
0x0008 | uint(32) | Jijjiirama | Suuraa irratti dheerina pikselii agarsiisa |
0x000c | uint(32) | Bal'ina | Suuraa bal'ina isaa pixeliin ibsa |
0x0010 | uint(16) | Typ | Faayidaa suuraa ibsa. Kunis bitmask ta'uu danda'a:
|
0x0012 | uint(16) | Paalletii | Gulaala, paletii PRT-faayilii keessaa kan fayyadamuu qabu murteessu |
Bu data sirna PRT-faayilii akkamitti bitmaps kan sirna anaati spritesf keessatti itti fayyadaman agarsiisa. Bitmaps kana idhatti walitti qindaa'uun kanneen hedduu gara frame animashinii sprite bu'uura godhachuuf.
Deetaa suuraa mirkaneeffamaa op2_art.BMP
yeroo ta'u, dirree taphichaa keessa argama.
Maaliif faayilii bitmap kun RIFF-bitmap header sirna (hedduu sirrii) qabu,
himaa miti. Gariin ni yaada Outpost 2 System-API tajaajilaa
graafikoota fe'achuuf, header kun yeroo
heeruma keessa fudhatama argachuuf fi qaree isaaniif
akkasumas haala xinxala godhuuf.
Deetaa pixel BMP-faayilii keessa irra deebi'ee, Offset + uint32-offset, kan BMP-faayilii irratti iddoo 0x000A irratti argamu (RIFF-bitmap-data offset), argamuu - akkaataa marsaa fuula gaditti irra deebi'ee.
Graafikoota monochrome 1bpp akkana fakkaatuun akkamitti kan qaban, lafa 0 guutuu transparency fi lafa 1 halkaana transparent gurraacha/keelaa ta'uu, sababa graafikoota monochrome baay'ee fayyadamaa ijaarsa fi hanga gubbaa gubbaa dhangala'uu animashinoota keessatti.
Kanaaf, graafikoota hedduu walitti qindaa'uu ni dandeessa.
Guddina fi sirna agarsiiftuu
Amma gara kutaa olaanaa tiikniikota Outpost 2 faayiloota dataa keessatti dhufu:
Animashiinoota.
Teessoon animashiinoota mata duree waliigalaa, kan mirkaneessuu dataaaf oolu, waliin jalqabama. Ergasi, hiika animashiinoota kanneen gara sadarkaa sadiitti qoodamu.
-
Animashiin
Animashiin sadarkaa ol’aanaa dha; kuni animashiin uumamaa, ijaarsa yookiin 'animashiin paartikilii' (kaammii, haala qilleensaa, qarqara) keessaatti haala tokko keessatti agarsiisa. -
Frame
Frame tokko suuraa tokkoo animashiin keessa jiru. Animashiin frame tokko yookiin hedduu qabaachuu danda'a. -
Subframe
Subframe jechuun odeeffannoo agarsiisa, bitmap tokko haala addaa jalatti frame tokko keessatti bakka addaa irratti tarreeffamuu qaba. Frame tokko subframe tokko yookiin hedduu qabaachuu danda'a.
Ergasi, hiika animashiinoota adda addaa ni dhufa.
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Baay'ina Animaashinoota | Animashiniiwwan qabatanii jiru meeqa |
0x0004 | uint(32) | Lakkoofsa Framee | Framoonni hedduu akkamitti qabamuu qabu? |
0x0008 | uint(32) | Lakkoofsa Subframes | Subframes hedduu maaliif jiraachuu qabu |
0x000c | uint(32) | Baay'ina galmee filatamaa | Mee "galmeewwan filatamaa" meeqa jiru. |
Hir'ina
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0020 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(32) | Beekamaa 1 | Odeeffannoo hin beekamne |
0x0004 | uint(32) | Bokkaan Daangaa: Kibbaan | Gara bitaatti jalqaba (pixeliin) Bounding Box agarsiisa. |
0x0008 | uint(32) | Bokkaan Itti Fufee: Ol | Ulaagaalee ol’aanaa (piiksil) Bounding Box ibsa. |
0x000c | uint(32) | Baayyina Kaawunsaa: Bal'ina | Bal'ina (pixeliin) Bounding Box ibsa. |
0x0010 | uint(32) | Bokku Aanaa: Ol'aantummaa | Olka'aa (pixeleen) Bounding Box ibsa. |
0x0014 | uint(32) | Offset: X | Walqunnaa giddugaleessaa saxaxa kanaa ibsa |
0x0018 | uint(32) | Y'n fageenya. | Jechoota gidduu mirgaa fi bitaa kutaalee animashinii agarsiisa |
0x001c | uint(32) | Beekamaa 2 | Odeeffannoo hin beekamne |
0x0020 | uint(32) | Lakkoofsa Framee | Waa'ee baay'inaa tarreewwan animashinii kana keessatti argaman ibsa |
0x0024 | uint(32) | Lakkofsa Windows | Mul'ata, akkamitti dirreewwan draw'uu irratti fayyadamuu akka qabdan ibsa |
Daataan bakka ol'aanaa, kan hojiirra ooluu, gatiiwwan bulchiinsaa - Boundingbox gatiiwwan bakka bu'aa gaariin geejjiba/konkolataa, yeroo sanatti filatameera, akkasumas bakka kamtu tuqamuun malu ibsa.
Offset'n "bakka jalqabaa" murteessa; bakka gatiiwwan taphni keessa jiru irratti hiriira ykn baasiin murta'aa dha. Akka herregaa jedhamee, offset'n asitti bakka gatiiwwan jalqabaa ibsa.
Windows'n, offset'n akkasuma, gatiiwwan 4 uint(32) ta'an irratti hundaaye, kanaaf bakka tokkoo kan subframes tokkoon tokkoon tajaajiluuf kan gargaare ibsa. Windows'n alatti, bitmap'n yaada akkasumas qindaa'uu baannaan, hin tuqamu.
Furama
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(8) | Lakkoofsa subframe fi toggle dhaabbataa 1, 2 | Gatii kun kan of keessaa qabu:
|
0x0001 | uint(8) | Beekamuu 1 fi Toggle filannoo 3, 4f. | Qabeenya kun hammate:
|
0x0002 | uint(8) | Filannoo 1 | Beekkamtii hin qaban |
0x0003 | uint(8) | Filannoo 2 | Beekkamtii hin qaban |
0x0004 | uint(8) | Filannoo 3 | Beekkamtii hin qaban |
0x0005 | uint(8) | Filannoo 4 | Beekkamtii hin qaban |
Subframe
Akkatti | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | char | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fageenya | Gosa Odeeffannoo | Maqaa | Ibsa |
---|---|---|---|
0x0000 | uint(16) | Bitmap-Id | Bitmap kamshaa kanaaf fayyadamuun beeksisa |
0x0002 | uint(8) | Beekamaa 1 | Beekkamuu miti - garuu ani akkaan shakkadha, kunis rakkoo hanga tokko (Z-Layer) ta'uu mala. |
0x0003 | uint(8) | Subframe-Id | Gara subframe kamiitti argamnu ibsa |
0x0004 | sint(16) | Dhaabbata - Horiizontaalii | Iddoo frame keessa subframe eessa itti fe'amu akka ta'e ibsa, akkasumas bitmap harkisuu pixel hedduu akkamiin akka ta'e ibsa. |
0x0006 | sint(16) | Offset - Dhidha | Iddoo kamii keessatti faayila xiqqaa (Subframe) kuusamuun qabdu, yookiin akkamitti pixel yeroo dheeraaf (vertically) suuraa (Bitmap) olka'uu qabdu ibsa. |
Amma as irratti, footoo tokko tokkoo fi animeshinoota guutuu walitti qabuu dandeenya, kunis animeshinoota ulfaataa tokko keessatti, indeksii 500 qabuun agarsiifameera.
Hojii Ijaarsa 500
Animation 500 agarsiisa akkamitti Plymouth-Transporter, kan balaqqee qabeenya caasaa waliin guutame, baafamuu danda'u. Kunis animashinoota muraasa keessaa isa tokko, kan hojii Windowing fayyadamuu danda'u.
Akkasumas animashinoota guutuu walitti fiduuf ni danda'ama.
Haa ta'u malee, rakkoo tokko mul'ata ol'aanaa lafa baafamaa
irratti jiru, sababni isaas bitii dhimmoota suuraa keessatti bakka bu'aa hin qabne.
Asitti, suuraalee biroo, kanneen bareedaa fi animashinoota gaariidha, gameen keessaa argamu:
Garaagarummaa Fayyadamaa
Nun User-Interface taphni, kan meetaala buruusaa-kootiin qophaa'e, ni hafu.
Haa ta'u malee, as keessatti Dynamix raadiyoof haaraa hin uume; as keessatti User32 fi GDI32-APIs kan Windows irraa kennaman qofa otoo hin taane - akkasumas qajeelfama bittaa User32 irraa fayyadamuu.
Kana jechuun, fakkeenyaaf, sagantaa Angus Johnson irraa free-ware ta'een qophaa'ee Resource Hacker fayyadamuun, yookiin - yommuu Linux / Mac OS keessatti Wine fayyadamuu hin barbaadne - icoutils keessatti argamu wrestool fayyadamuun baasu dandeessu.
Maqaa Faayila | Qabeenya |
---|---|
Outpost2.exe | Faayilli kun maqaa taphaati, kan agarsiisu suuraa iddoo buufata hawaa New Terra irratti |
op2shres.dll | Faayilli kun suuraalee meeshaalee akka daandii, buttoota, radio-button fi checkbox dabalatee, bakka-dubbii fi suuraa walfakkaataa qabeenya gochaan, akkasumas suuraa bakka-dubbii menu guddaa of keessaa qaba |
out2res.dll | Faayilli kun dekoreeshinii foon tapha keessaa, suuraa metala caasaa fi addaa, suuraa fe'umsaa, suuraalee dubbii fi kanneen biroo suuraa baay'ee qabeenya, akkasumas suuraa yeroo tapha keessatti argamu dabalata |