Outpost 2 file format · bei.pm

Dis wanpela tok em i bin makim long OpenAI GPT-4o Mini.

Na dispela sait, ol deitformats i stap long teknikal analis bilong ol samting bilong Dynamix, Inc. na Sierra Entertainment.
Samting bilong tingting i stap long Activision Publishing, Inc.- / Activision Blizzard, Inc. na i stap long han bilong Microsoft Corp..

Ol infomesen i bin gat long Reverse Engineering na Datenanalyse bilong ol samting long arkiiving na interoparabelity wantaim ol istorikal data.
Ol i no yusim eni proprieta o konfidenchal spesifikesen.

Dispela geim i stap long gog.com long pekim olsem download.

Artwork bilong game

Dispela artikl i raitim ol inforamshen bilong mi long data format bilong real-time strategy game "Outpost 2: Divided Destiny", we i bin publish long 1997 bilong Sierra na i bin develop long Dynamix.

Mi bin spende taim long 01 November 2015 go long 14 November 2015 long analisis bilong data bilong dispela game - na wanem samting i stap long en.

Ol inforamshen we mi bin kisim so far, i tok olsem Dynamix - olsem planti komershal kampani - i no bin mekim ol data format spesifik long Outpost 2, tasol i bin yusim ol long narapela developmen olsem Mechwarrior series (wanpela kain).
Na tu, i ken lukim olsem ol innovashon bilong data format i no tumas na i save wok long ol long taim i stap olsem JFIF na RIFF.

Long interpretim ol tabel na data format, ol narapela inforamshen i stap long Oro igo?.
Ol data we i stap hia i mas kisim olsem Little Endian.

Finis, mi ken tok olsem reverse engineering i bin mekim mi hamamas, maski i no pinis.
Olsem na, mi tok long yu long playim dispela game, long wanem i gat ol interesting game mekanik.

Oroka

Outpost 2 iusim data format i olsem JFIF / PNG - ol data blok i gat 8 Byte header. Olsem na mi no save raitim ol header long spesifik ples, mi raitim tasol ol difrens.

Format i olsem; ol gutpela data i stap insait:

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Magi Paita

Emi in forma hevi, bihain blo nait data blo em i go kam.

Ol save olsem:

  • 0x204C4F56 ('VOL '):
    Volume
  • 0x686C6F76 ('VOLH'):
    Volume-Header
  • 0x736C6F76 ('VOLS'):
    Volume-Strings
  • 0x696C6F76 ('VOLI'):
    Volume-Information
  • 0x4B4C4256 ('BLCK'):
    Volume-Block
  • 0x504D4250 ('PBMP'):
    Grafikdata
  • 0x4C415050 ('PPAL'):
    Kolor paleti
  • 0x4C415043 ('CPAL'):
    Kolor paleti container
  • 0x64616568 ('head'):
    Header
  • 0x61746164 ('data'):
    Usim data
0x0004 uint(24) Block-Longa

Emi moa informason long olsem wanem bikpela (long Byte) dispela data blok i bikpela.

Olsem na, ol genuin usim data i stap - 8 header-byte i no stap insait.

0x0007 uint(8) Flae?

Em i no save, wanem displa block i wokim.

Long ol Volumes, dispela value i planti taim 0x80, long narapla file i planti taim 0x00. Dispela i soim, olsem em i wanpela flag-set.

Volumes

Volumes em wan data container bilong game, olsem wan archive format olsem Tarball. Olsem na, long Outpost 2, format i save long ol files tasol - nogat ol folders. Ol i save likim ol dispela long ol file nem.

Wan volume i kam long volume-header na ol several volume blocks, we i bilong ol spesifik files.

"Volumes" em ol files we i gat end olsem 'vol' long game directory.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 56 4f 4c 20 -- -- -- -- -- -- -- -- -- -- -- -- V O L . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Magic Bytes
0x0004 uint(24) Block-lenait.
0x0007 uint(8) Pela

Volume Hed

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 76 6f 6c 68 -- -- -- -- -- -- -- -- -- -- -- -- v o l h . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Magic Bytes
0x0004 uint(24) Block-lenait.
0x0007 uint(8) Pela

Volume Header no gat nogat data bilong yus.
Em i olsem container tasol.

Numba wan data long Volume Header em i mas gat Volume Strings; bihain long dispela i kamap Volume-information.

Volume Strin

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Magic Bytes
0x0004 uint(24) Block-lenait.
0x0007 uint(8) Pela
Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 76 6f 6c 73 -- -- -- -- -- -- -- -- -- -- -- -- v o l s . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Magic Bytes
0x0004 uint(24) Block-lenait.
0x0007 uint(8) Pela
0x0008 uint(32) Payload-lenght

Givim olsem, hamas bytes bilong dispela data tru em i ol samting we i wok long en.

Ol narapela data we i stap long volum-strings-list i luk olsem i mas likim olsem garbage.

Long ol faile we i gat leta bihain, ol 'remaining data' i 0x00, we i ken soim ol hevi long toolchain taim ol i wokim game, i olsem, ol developa i lukim olsem i no gat hevi long game sapos data i no i stap gut, olsem, ol i no bin lukautim ol buffer long stret wei.

0x000c uint(8)[] Nam bilong faile

Dis em 0-byte terminat list bilong file nem, we - long dis data we i stap nau - em i lukim olsem i no gut long expectim ol ASCII liks.

Em i no nid long lukim dispela data block moa gut long parsing, bikos long ol volume information, ol offsets bilong file nem i stap direct referens.

Volume Strings iwanua na lista bilong ol file nem, we i stap long volume.

Voluma in forma

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Magic Bytes
0x0004 uint(24) Block-lenait.
0x0007 uint(8) Pela

Volume information i gat moa detel inforamshon long di files. Dis i olsem wan kain FAT directory entry (FAT = File Allocation Table)

Di namba blong files i kam long block size divaidim long di length blong directory entries - 14 Byte.

Di evri directory entries i gat di following structure:

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Filenem offset

Oro iana, na offset (!) i go pasin long list bilong file nem (Volume-Strings) we file nem bilong file i stap.

I tok long stat bilong data blok.

0x0004 uint(32) Faita ofset

Emi tokim, long wanem ofset insait long olgeta volium faile we displa i stap.

0x0008 uint(32) Faili siza

Oskai long, olsem wanem, disfala faile i gat samting olsem byte.

0x000c uint(16) Flaiga?

Oka i go longim moa information long file encoding.

  • 0x03 i setim, sapos file i kompres. Oka i go longim Huffmann tree.
  • 0x80 i lukim olsem i setim oltaim.

Volume Blok

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 56 42 4c 48 -- -- -- -- -- -- -- -- -- -- -- -- V B L H . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Magic Bytes
0x0004 uint(24) Block-lenait.
0x0007 uint(8) Pela

Volume-Block emi wan container, hem kisim ol faile. Hem i gat wanpela moa - bikpela bilong block format - redundant de faile size na na em i go stret long ol user data.

Taira

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 50 42 4d 50 -- -- -- -- -- -- -- -- -- -- -- -- P B M P . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Magi Byts
0x0004 uint(24) Block-lenght
0x0007 uint(8) Sikim

Ol tiles em iwanan Outpost-2 spesifik Bitmap grafiks format. Ol i go long 13 tilesets, "wells" em i kolim (well0000.bmp go long well0012.bmp), wea ol i stap insait long volyum maps.vol.

Ol tilesets / wells i gat dispela:

File Name Content
well0000.bmp Em 32x32px, blua grafik - gut long test, if yu image-loader i wok
well0001.bmp Em contain lait rock, mountain lines long lait rock an plenti variations bilong impact craters long lait rock
well0002.bmp Em contain lait-rock 'Doodads' - olsem elements we i save putim long lait rock long mekem i no mas tight (o long putim olsem structure, olsem walls), i gat vegetation tu
well0003.bmp Em contain wan crust-like structure long lait rock
well0004.bmp Em contain dark rock, mountain lines long dark rock an plenti variations bilong impact craters long dark rock
well0005.bmp Em contain dark-rock 'Doodads' - olsem elements we i save putim long dark rock long mekem i no mas tight (o long putim olsem structure, olsem walls)
well0006.bmp Em contain wan crust-like structure long dark rock, na transition long lait an dark rock
well0007.bmp Em contain lava we i gat 4-5 frames animation
well0008.bmp Em contain sand an plenti variations bilong impact craters long sand
well0009.bmp Em contain sand 'Doodads' - olsem elements we i save putim long sand long mekem i no mas tight (o long putim olsem structure, olsem walls)
well0010.bmp Em contain 48 transitions long sand long lait an dark rock
well0011.bmp Em contain polar caps bilong map, we i gat dark rock olsem ground
well0012.bmp Em contain polar caps bilong map, we i gat lait rock olsem ground

Em i gutpela samting long mekim stret, no renderim Tiles bipo long wanem, long lukim ol i save cache, bikos ol data bilong de/nait saik i mas wokim yet - na plenti tru ol data bai kamap.

Ol Tiles i 8bpp piksa bilong indexed palette, long 32x32 piksel resolusen, na ol i stap wantaim. Long wanpela olsem Tileset, i gat planti moa.

The main container i gat 2 sekshen: head na data.

Tiles Header

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 68 65 61 64 -- -- -- -- -- -- -- -- -- -- -- -- h e a d . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Magi Byts
0x0004 uint(24) Block-lenght
0x0007 uint(8) Sikim
0x0008 uint(32) Version / Flag?

Dispela i ken i olsem wanpela version bilong file format; long olgeta file mi gat, em i gat value 0x02

0x000c uint(32) Bai (Horisontal Reselesen)

Oro iana, olsem wanem gutpela bilong piksa faile i gat (long piksel).

Long olgeta Wells bilong Outpost 2, yu mas lukim dispela balens 0x20 o 32.

0x0010 uint(32) Taim (Vertikal resoluson)

Emi toktok, olsem wanem i likim long piak na i go (long pixel).

Long olgeta Wells bilong Outpost 2, yu mas ekspektim dispela valu 0x20 o 32.

0x0014 uint(32) Kolori dep!

Dispela samting i no klia.

Orait, em i gat valu 8 long olgeta faile i bin luksave, em i ken olsem wanpela kolok bilong dep.

0x0018 uint(32) Kolor deip 2?

Dispela samting i no save.

Em inap long wanpela 'aim' kol dip.

Ol man bilong dispela, wanpela paleti faile i stap long RIFF format. Ol samting i gat long dispela i lukim - sapos ol paleti i kamap long narapela ples - long Paleti.

Tiles Data

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 64 61 74 61 -- -- -- -- -- -- -- -- -- -- -- -- d a t a . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Magi Byts
0x0004 uint(24) Block-lenght
0x0007 uint(8) Sikim

Na iua, na piksel data i go i soso, i kam long left-top na i go long right-bottom.
Na data value long ol piksel we i mas i olsem 8bpp-bitmaps i kam long index bilong kolok long kolok palate.

Piksel data i stat long top left na i stop long bottom right.

Dispela play-engine i nogat ol tiles *liklik* long taem yu laikim.
Dispela i luk olsem i gat bikpela rison long dei-nait sikil, we i gat 32 narakain ol tiles. Olsem na, i luk olsem ol brighness value i no moa likim. I no yet inap long kisim ol stret value, mi wok long ol calculation

v *= (daylight / 48) + 0.25;

wanem i gat long ol HSV data bilong ol pixel, we daylight i gat value bilong 0-31 na v i gat value bilong 0-1. Sapos yu lukim, i gat wanpela rand long map, we i gat 16 tiles long left na right (dispela i helpim long no lukim unit i spawn).

Mo yet, i luk olsem dei-nait sikil i resem wanpela kolim bilong map long olgeta gamecycle.
Wanem i kirap long faster dei-nait sikil em i luk olsem:

Visualisation bilong dei-nait sikil

PRT

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 43 50 41 4c -- -- -- -- -- -- -- -- -- -- -- -- C P A L . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Magic Bytes
0x0004 uint(24) Paleti long

Giv, nogat long ol normal blok format, di namba bilong ol palet we i stap long displa faile - no di lent bilong blok long bait.

0x0007 uint(8) Nai flag

Likely, olsem usu, Flags.

Mi no save long any flags; olsem ol values mi save, ol i 0x00 so, em i posibol tu, palet i no save long ol samting, em i wan uint(32).

Olsem wanem PRT i mean, mi no save; wanem samting olsem 'Palette and Ressource Table' - bikos dispela fael - yu ken lukim olsem op2_art.prt long maps.vol - em i olsem, o dispela i gutpela tokim ol wok bilong en.

Dispela fael i gat wanpela liste bilong paletten, wanpela tebel long olgeta bitmap we i yusim, olgeta definisen bilong animasiyon, na moa yet planti samting we mi no save. Em i no stret long container format we i bin stap bipo, bikos no olgeta data i kam long dispela skema.

CPAL sekshen (i likim olsem paletten-container) i soim tasol paletten data, na i tokim hao planti 8-bit paletten i gat 1052 byte i stap.

Dispela 1052-byte tok i no olsem raitim, bikos paletten format i ken gat plante narapela paletten size. Em i soim tasol long data we Outpost 2 i kam wantaim.

Afte paletten liste, i kam nau olgeta bitmap liste; na klostu i kam yet animasiyon liste.
Both i stat long wanpela uint(32) (o gen uint24 + uint8 flags?) we i soim namba bilong data.

Paleti

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 50 50 41 4c -- -- -- -- -- -- -- -- -- -- -- -- P P A L . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Magic Bytes
0x0004 uint(24) Paleti-lenght

Givim, longim nogut block format, namba bilong ol pallet we i stap long dis file - no longth bilong block long byte.

0x0007 uint(8) Pela

Likely, olsem usul, Flags.

Mi no save long any flags; bikos ol values mi save long 0x00 so, em i ken be olsem, paletten- namba i no moa wanpela uint(32).

Ol palete infromesen i isi long raitim.
Em i gat wan header na wan data-segment.

Paleti-Header

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 68 65 61 64 -- -- -- -- -- -- -- -- -- -- -- -- h e a d . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Magic Bytes
0x0004 uint(24) Paleti-lenght

Givim, longim nogut block format, namba bilong ol pallet we i stap long dis file - no longth bilong block long byte.

0x0007 uint(8) Pela

Likely, olsem usul, Flags.

Mi no save long any flags; bikos ol values mi save long 0x00 so, em i ken be olsem, paletten- namba i no moa wanpela uint(32).

0x0008 uint(32) Palet fomet version?

Likely define, which palette format version the palette follows.

All Outpost2 palettes seem to have version 0x01.

Paleti data

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 64 61 74 61 -- -- -- -- -- -- -- -- -- -- -- -- d a t a . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Magic Bytes
0x0004 uint(24) Blok-lenght
0x0007 uint(8) Pela

Das sekson bilong data i kisim olgeta palet entri. Ol namba bilong palet entri i kam long blok leng / 4.

Olgeta entri i gat dispela, simpul straktua;

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 -- -- -- 04 -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(8) Rot komponent

Tokim red i namba bilong kol

0x0001 uint(8) Grin komponen

Oro i aiba ian greeni bilong kolora

0x0002 uint(8) Blu komponente

Tokim iuma bilong blua kolora

0x0003 uint(8) Bikpela - Flak?

Emi no klar, wanem disfala valu i stori, bikos em i luk olsem hem i 0x04.

Ol i paleti, ol i no moa tokim, na long ol paleti bilong animason, ol dispela ruls i wok long:

  • Ol fasa bilong nambawan i BAMU transparen, nogat wanem val i stap long dispela.
  • Ol paleti entri 1-24 i mas lukim olsem ol kol bilong pleya long paleti 1-8.
    Ol kol i kam long ol pleya 1 i no klia long mi.
    Mi ting, ol narapela kol i hardcoded.

Paleti Referens

Bitmaps

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Wikiliu longu

Givim wid na pixel data lain long byte - bikos ol i stap long 4-byte border.

Ol i mekem olsem, i wasi long jekim wanpela spesifik piksa lain.

Olsem wanem, dispela value i stap separet, na em i no stret long kalkuleit, i no klia.
Belong mipela, i olsem wanpela optimizim long render code.

0x0004 uint(32) Offset

Em givim offset bilong fes lain long bitmap

0x0008 uint(32) Höhe

Tokim height bilong piksa long pixel

0x000c uint(32) Wideness

Sayim bilong piksa long piksel

0x0010 uint(16) Typ

Oro iumi ka na pum paita. Hia, em iumi ka bitmaske:

  • 0x04 em iumi ka set, sapos em iumi ka 1bpp-grafik.
  • 0x40 em iumi ka set, sapos em iumi ka grafik, we iumi ka masim windowing.
0x0012 uint(16) Pallet

Em i definim, wanem palaet bilong PRT faile i mas yusim

Dis data structure bilong PRT file i tokim olsem wanem bitmaps we i yusim bilong sprites i stap. Dis bitmaps i wok olsem wanpela komponen, we planti i join wantaim long wanpela animasyon frame bilong sprite.

Ol konkretn data bilong piksa i stap long op2_art.BMP long game directory.
Olsem wanem dispela bitmap file i gat wan (we i mostly stret) RIFF-bitmap header, i no klia. Liklik liklik, Outpost 2 i yusim system-APIs long load grafik, bai dispela header i tekim temparari na ol samting i save, i go long dispela samting i no same.

Ol pixel data i stap long BMP file long Position Offset + uint32-Offset, we i stap long BMP file long address 0x000A (RIFF-bitmap-data offset), i save long - na ol i yet i go long lain bilong ol piksa, i stat long hap up i go long hap daun.

Monochrome 1bpp grafik i ken soim olsem wanem, we kala 0 i wanpela transparensi, na kala 1 i wanpela halftam black/grey, olsem monochrome grafik i kasem olgeta long vehicle na building shadow long animasyon.

Olsem na yu ken wokim planti grafik wantaim.

Protectid housing module (Plymouth)

Animashon

Na, yumi kamap long king klas bilong displin insait long Outpost 2 data format:
Ani mas.

Ani mas list i stat wantaim wanpela global header, we i wok long veri data. Olsem na, i kamap ol konkreti ani mas definision, we i split long 3 step:

  1. Ani mas
    Wanpela ani mas em i hap bilong antap; em i soim ani mas bilong wanpela unit, wanpela bilding o wanpela 'partikel-ani mas' (komet hit, weatha, eksploson) long wanpela spesifik ples.
  2. Frame
    Wanpela frame em i wanpela piksa insait long wanpela ani mas. Wanpela ani mas i ken gat wan o plenti frame.
  3. Subframe
    Wanpela subframe em i informasion long ol samting we wanpela bitmap i mas painim olsem ol kriteriya i kam long wanpela spesifik ples bilong wanpela frame. Wanpela frame i ken gat wan o plenti subframe.

Na, ol ani mas definision i kamap klostu.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Namba animasone

Hamamas animasoin data set i stap

0x0004 uint(32) Namba fram

Orait, olsem wanem frames i mas stap long olgeta

0x0008 uint(32) Namba subframe

Hamamas subframes i go kasem

0x000c uint(32) Namba bilong ol optional entry

Hamamas "optionale entri" i go.

Animasi

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0020 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(32) Unbekannt 1

Oro i no save

0x0004 uint(32) Bounding Box: Lain

Givim left start (long pixel) bilong Bounding Box.

0x0008 uint(32) Bounding Box: Abovet

Givim the top start (long pixels) blong Bounding Box.

0x000c uint(32) Bounding Box: Wara

Givim width (long pixel) bilong Bounding Box.

0x0010 uint(32) Bounding Box: Height

Oro i bin givim hap (long Pixel) bilong Bounding Box.

0x0014 uint(32) Offset: X

Ona weka horizontal mipot bilong animason

0x0018 uint(32) Offset: Y

Em tasol long hap we animetion i stap long miripela

0x001c uint(32) Unkown 2

Ingo na inforamason

0x0020 uint(32) Namba fram

Oro eai, na animasion frames i gat long disim animasion

0x0024 uint(32) Namba Windows

Oro i tokim, hau long wanem pletim i mas yusim long draivim

Dei data bilong hap bikpela, bilong animetion, em i olsem ol data bilong administrasion - Boundingbox em i makim ol koordinet bilong mak bilong vehikel/ohaus, samting em i pilai na i tokim tu, wanem hap em i ken kliki.

Offset em i makim "nullpoint"; dispela point, em i mas i go long ol internal koordinet bilong plei o i mas i rausim. Yu ken tok matematik: offset em i makim hap koordinet bilong stat.

Ol Windows em i olsem, olsem offset, i gat 4 uint(32) values long wanpela Windows, em i makim wanpela hap we i ken yusim long ol subframes. Long outsait bilong Windows, samting em i no olsem bitmap, i no ken draim.

Fram

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(8) Subframe namba na toggle bilong optional 1, 2

Dispela valyu i gat:

  • 0x7F (Bitmask): Plenti subframes, we i stap long displa frame
  • 0x80: Information long wanem, sapos Optional 1 na 2 i stap
0x0001 uint(8) Unbekannt 1 na Toggle bilong Optional 3, 4

Dis value i gat:

  • 0x7F (Bitmask): Noken save - Mi strong suspicion, em i nambawan o gameticks we i pas, kapok em i go long next frame
  • 0x80: Ol informasion long whether Optional 3 na 4 i stap
0x0002 uint(8) Optional 1

Inap

0x0003 uint(8) Optional 2

Inap

0x0004 uint(8) Optional 3

Inap

0x0005 uint(8) Optional 4

Inap

Subfrem

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Pasa Taitai data Nama Tok Pisin
0x0000 uint(16) Bitmap-Id

Em i tokim wanem Bitmap bilong dispela Subframe bilong yusim

0x0002 uint(8) Unbekannt 1

Em i no save - mi tingim strong, olsem em i wanpela Render-Prioriti (Z-Layer).

0x0003 uint(8) Subframe-Id

Tokim se, moa we subframe mipla stap

0x0004 sint(16) Offset - Horizontal

Oro, we laim long wanem ples insait long frame, subframe bai stap, o olsem wanem planti pixel bitmap bai go long horizontal.

0x0006 sint(16) Offset - Votok

Gives information where inside the frame the subframe should be placed, or how many pixels the bitmap should be moved vertically.

Nau, mipela inap nau putim wan wan frame, na tupla animetion olsem, mi laik soim long wan bikpela animetion, animetion wantaim index 500, bilong soim.

Animation 500

Animation 500 emonisi, olsem wanem wanpela Plymouth-transporta, wanem i karim ol narakain ore, i ken raus. Dispela em i wanpela long ol feisal anima we i yusim windowing-funktionalit.

Na olsem wanem yumi ken putim olgeta anima i go wanpela.
Sori, i gat wanpela problem yet wantaim long apinun lida, bikos long dispela hap, bit i no setim long grafik type infomesen.

Here i gat sampela moa, bel isi animet sprite long dispela game:

Rendering long Animation 500 i lukim

Animation 500 i pinis putim wanpela

Plymouth Haus-Fabrik

Eden Spacestation

Eden Siki Medisin

SCAT

Plymouth Spacestation

Easteregg:
Christmas Man

Easteregg:
Dans Dog

Ol ius.

Na, em i no gat wan User-Interface bilong dispela game, we i stap long brushed metal luk.

Na tu, em i klia olsem Dynamix i no nidim long mekim nupela roud; dispela i no luksave long ol simpli we ol i yusim ol User32 na GDI32-APIs we i kam long Windows - ol i yusim tu ol resources management bilong User32.

Ol i ken kisim ol samting olsem long program olsem we Angus Johnson i mekim free software, Resource Hacker, o sapos yu no laik yusim Wine long Linux / Mac OS, yu ken yusim wrestool we i stap long icoutils long kisim ol.

File Name Content
Outpost2.exe Emi na ikon bilong game, em i soim spacestation long New Terra
op2shres.dll Emi gotim piksa bilong control likim olsem border, button, radio button na checkbox, tu em i gotim dialog background, ol piksa bilong story mission text na background graphic bilong main menu
out2res.dll Emi gotim in-game window decoration, ikon bilong ordinary na special metal, loading screen, grafiks bilong dialog na narapla cursor graphics, inap long animated wan long game directory