It's now one of the most prominent cases of Abandonware ever. First published by Virgin Interactive, which was acquired by Titus Software, which then became Avalon Interactive. Both Titus and Avalon no longer exist. So who owns the rights to the game (and more importantly who has the source code) is a mystery.
The other day I decided to take a look at the files that come with Ignition, I wondered if there was anything salvageable for an indie game developer. Perhaps I could knock together a level viewer or mod the game. The first thing I noticed is that Ignition uses a lot of different file formats.
There is one TGA image, but that's just of the Virgin Interactive logo, some of the sounds are WAV, but others are another mystery format. However, some of the extensions give away what they are. There are .PIC files and .MSH which I assume are images and mesh files respectively. There is also a .TEX, some other image file perhaps?
I fired up a hex editor and began work reverse engineering the .PIC file. The first thing I tried to do was to render the latter part of the data as RGB bytes. I assumed (wrongly) that it would be a 24 bit image. All I got out of it was a garbled mess, except for a couple of rows near the top of the image which were all different colours. It then occurred to me; this is a palette based image and those two rows of colour are the palette.
Now that I knew what I was looking for, things got easier. I looked at the beginning of the header and found a couple of familiar numbers; 640 and 480. Those bytes were obviously the dimensions of the image. With that in mind I could read backwards from the end of the file for 640 * 480 bytes and assume that that would be where the end of the header (and probably the palette data) was.
Finally, with a bit more experimentation, I found the start and end of the palette and some other numbers the use of which still eludes me.
To sum up, here is the header structure of the PIC image file that Ignition uses:
typedef struct PICHeader {
INT file_size;
SHORT magic; //Always 38144 (or 0, 149 in separate bytes)
SHORT width;
SHORT height;
SHORT unknown1;
SHORT unknown2;
BYTE unknown3[50];
SHORT palette_size; //I thought this was palette size - but it's not, it's always 776
BYTE unknown4[6]; //Always zeros, probably reserved
BYTE palette[256*3];
SHORT unknown5; //In one file this was the number of bytes after and including this one, but not in others (??)
BYTE unknown6[4]; //Seen (0, 0, 1, 0), (4, 0, 1, 0) - probably orientation (e.g flipped image)
} PICHeader;
INT file_size;
SHORT magic; //Always 38144 (or 0, 149 in separate bytes)
SHORT width;
SHORT height;
SHORT unknown1;
SHORT unknown2;
BYTE unknown3[50];
SHORT palette_size; //I thought this was palette size - but it's not, it's always 776
BYTE unknown4[6]; //Always zeros, probably reserved
BYTE palette[256*3];
SHORT unknown5; //In one file this was the number of bytes after and including this one, but not in others (??)
BYTE unknown6[4]; //Seen (0, 0, 1, 0), (4, 0, 1, 0) - probably orientation (e.g flipped image)
} PICHeader;
Every byte beyond the header is an index into the palette for the pixel colour. I now have a simple little program that converts from PIC to TGA. If anyone has any clue what any of the other numbers means then let me know.
Now onto the other... probably more complicated... formats.
Hello there, sir!
ReplyDeleteI'd love to know if you ever came back to this topic or if you plan to. I love this game sice 1997 and I'm interested in getting every single bit of information about it I can get.
I'm not a programmer, though. Just a occasional modeler and texture artist. Therefore I'm obviously most interested in *.msh and *.tex files. Have you tried to research them?
Do you plan to publish the converter you created?
Thanks in advance!
Cáno
The best solution so far would be to run Ignition in the DOSBox Debugger to see the Assembly code and understand how to open the .msh files.
ReplyDelete@Jędrzej My enthusiasm kinda tailed off when I took a look at the MSH format. I'll probably get back to it some day.
ReplyDeleteI can't think where I put the converter but it shouldn't take me long to create another one (the hard part was working out the format). I'll post back here if I find time to do that.
This comment has been removed by the author.
ReplyDeleteI ripped the textures using 3D ripper DX. It rips all the textures in ram, so If you enter a track, you get all textures in dds format (I oppened them in blender 3d). This program should also rip 3d models, but there is a transparent plane in front of the camera, and it just rips a plane.
ReplyDeleteI tried using 3DRipperDX and GLXtractor on both 3DFX and Windows verions but nothing worked at all. I'm using Windows 7 (so I used dgVoodoo and a patch to run the game). Could you please tell me how you did it?
DeleteIt worked with nGlide but the effects were, as you said, a bunch of 0kb *.obj files.
DeleteI got my hopes high with another OpenGL wrapper (OpenGLide_009rc7), because it made GLXtractor work. It also ripped the textures well (in *.png format). It even produced some kind of models but they were just a complete mess of flat triangles. So close.
In fact it resembles the opening scene (top letf viewport):
Deletehttp://s17.postimage.org/kjk97xq7h/Bez_tytu_u.png
But it's completely flat and as a result useless. :(
Heartbreaking.
I tried fiddling with settings but to no avail.
This comment has been removed by the author.
DeleteThis comment has been removed by the author.
DeleteI tried glxtractor, I could not scale the flat object resulting from the capture... there was another opengl extractor, I'll try to find it.
DeleteIt has something to do with "z buffer", the objects are flat because the buffer is not activated.. Dgvodoo has a "w buffer" option, but it runs on directx...
DeleteIf anyone is interested, I've set up a GitHub repo for tools here: https://github.com/Kazade/Ignition-Tools
ReplyDeleteThis comment has been removed by the author.
DeleteThis comment has been removed by the author.
DeleteHow can I contact you? I'm interested in ripping ignition 3d models to make a PSP homebrew version of the game. Thanks!
ReplyDeleteThis comment has been removed by the author.
DeleteI want to contribute to this aswell . Time has passed but I could model 3D tracks , cars and create textures . I tried to build your converter but with no success .
ReplyDeleteAfter installing the game, i noticed that there were more than significant improvements in the game. There were way more factions that we were able to choose. All those factions had many different, special powers and functions. Such as Teutons with excellent heavy infantry and Mongols with nice light cavalry. locker codes
ReplyDeleteKids these days invest the greater part of their energy in playing electronic diversions on the PCs. The ubiquity of these recreations lies in their best amusement play. Children can appreciate every one of the offices that grown-ups have in these recreations they can drive autos furthermore they can get some of them for them self's. http://pokegogpshack.com
ReplyDeleteSpot on with this write-up, I truly feel this amazing site needs a lot more attention. I’ll probably be back again to read through more, thanks for the information, find more info
ReplyDeleteSoftware engineering is one of the lucrative careers these days and it can be seen that almost every field of work today demands for software engineering qualifications in its candidates for certain particular professions.cheap Revit 2016
ReplyDeleteGeographically, North America is estimated to lead the market during the forecast period, with its share in the global market already exceeding 30%, which is due to increased use of cloud-based software.buy SolidWorks 2012
ReplyDeletesolidworks-2017-premium-crack/
ReplyDeletefreesoftsfiles.com
SolidWorks 2017 Crack and Keygen included is yet another new form that has been discharged as of in the not so distant future. There are numerous other comparative programming projects that take the necessary steps simply like solidworks. In any case, there is not a
solidworks-2017-premium-crack/
ReplyDeletefreesoftsfiles.com
Apparently an information driven design is the thing that separates a diversion motor from a bit of programming that is an amusement however not a motor.http://www.hack4clashroyale.com
ReplyDeleteIt was nice unblock game . Very informative and expressive .things are easily play online at
ReplyDeleteunblocked game
Mau menang banyak dengan modal sedikit..
ReplyDeleteAyo gabung di Agen Domino CROWNQQ.
=>Bonus Refferal 20%
=>Bonus Turn Over 0,5%
=>Min Deposit Rp20.000
=>1 User ID 8 Games
Situs yang bisa memberikan kemenangan BANDAR POKER ONLINE
raih kemenangan anda segera...
WHATSAPP : +855967646513
PIN BB : 2B382398
aaa
ReplyDeletePERMAINAN ONLINE TERBESAR DI INDONESIA
ReplyDeleteWebsite paling ternama dan paling terpercaya di Asia ^^
Sistem pelayanan 24 Jam Non-Stop bersama dengan CS Berpengalaman respon tercepat :)
Memiliki 8 Jenis game yang sangat digemari oleh seluruh peminat poker / domino
- Adu Q
- Bandar Q
- Bandar Sakong
- Bandar Poker
- Poker
- Domino 99
- Capsa Susun
- BANDAR66 / ADU BALAK ( GAME TERBARU )
Permainan Judi online yang menggunakan uang asli dan mendapatkan uang asli ^^
* Minimal Deposit : 20.000
* Minimal Withdraw : 20.000
* Deposit dan Withdraw 24 jam Non stop ( Kecuali Bank offline / gangguan )
* Bonus REFFERAL 15 % Seumur hidup tanpa syarat
* Bonus ROLLINGAN 0.3 % Dibagikan 5 hari 1 kali
* Proses Deposit & Withdraw PALING CEPAT
* Sistem keamanan Terbaru & Terjamin
* Poker Online Terpercaya
* Live chat yang Responsive
* Support lebih banyak bank LOKAL
Contact Us
Website SahabatQQ
WA 1 : +85515769793
WA 2 : +855972076840
Telegram 1 :+85515769793
Telegram 2 : +855972076840
LINE : SAHABATQQ
TWITTER : SahabatQQ
Kami Siap Melayani anda 24 jam Nonstop
daftar sahabatqq
Kontak SahabatQQ : Kontak SahabatQQ
Hey what a brilliant post I have come across and believe me I have been searching out for this similar kind of post for past a week and hardly came across this. Thank you very much and will look for more postings from you. agen judi online
ReplyDeleteThere are various plays of nourishment appear. This show is the more prominent digital broadcast that can be viewed at YouTube moreover. You might likewise want to tune in about the Company where I do work which gives best imaginative author India which can make your show progressively prevalent. 로투스바카라
ReplyDeleteIf you have a very basic circuit, your PCB manufacturer will likely recommend the use of a single-sided PCB. PCB reverse engineering services Moreover, for low-quantity or prototype PCBs commonly needed by design engineers, the cost for producing a handful of PCBs was extremely prohibitive with traditional assembly techniques.
ReplyDeleteThankful to you for peopling get the information they require. Remarkable stuff obviously. Keep up the titanic work!!! 토토사이트
ReplyDeleteI favor the entire group of products, Considered truly loved, I want more information. about this, thinking about that it's fairly good., Many thanks a great deal with regards to displaying. windows activator
ReplyDeleteGreat job for publishing such a beneficial web site. Your web log isn’t only useful but it is additionally really creative too. There tend to be not many people who can certainly write not so simple posts that artistically. Continue the nice writing 해외배팅사이트
ReplyDeleteI wanted to thank you for this excellent read!! I definitely loved every little bit of it. I have you bookmarked your site to check out the new stuff you post. sexy gaming
ReplyDeletegame reviews
ReplyDeletegames
gaming
online video games
pc games
game reviews
games
gaming
online video games
pc games
game reviews
games
gaming
online video games
pc games
game reviews
games
gaming
online video games
pc games
game reviews
games
gaming
online video games
pc games
game reviews
games
gaming
online video games
pc games
สล็อต
ReplyDeletepussy888
ReplyDeleteYou have given such wonderful information through this blog. Thanks for giving such great information. Keep posting. pcb copy.
ReplyDeleteToday, the most popular PCB assembly technique is surface mount technology (SMT), which is a vast improvement over earlier assembly techniques such as through-hole assembly. FastPCBunion.com You do not want to learn about surcharges once the prototype PCB production begins.
ReplyDeleteGood Working.. keep it up! SolidWorks Crack
ReplyDelete