Tuesday, 18 January 2011

Reverse Engineering the Abandonware Game "Ignition"

Ignition has always been one of my favourite racing games. It had a quirky charm that was reminiscent of Micro Machines, but set in beautiful outdoor environments.

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;

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.

87 comments:

  1. Hello there, sir!
    I'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

    ReplyDelete
  2. 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
  3. @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.

    I 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.

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. I 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.

    ReplyDelete
    Replies
    1. I 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?

      Delete
    2. It worked with nGlide but the effects were, as you said, a bunch of 0kb *.obj files.
      I 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.

      Delete
    3. In fact it resembles the opening scene (top letf viewport):
      http://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.

      Delete
    4. This comment has been removed by the author.

      Delete
    5. This comment has been removed by the author.

      Delete
    6. I tried glxtractor, I could not scale the flat object resulting from the capture... there was another opengl extractor, I'll try to find it.

      Delete
    7. It 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...

      Delete
  6. If anyone is interested, I've set up a GitHub repo for tools here: https://github.com/Kazade/Ignition-Tools

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
    2. This comment has been removed by the author.

      Delete
  7. How can I contact you? I'm interested in ripping ignition 3d models to make a PSP homebrew version of the game. Thanks!

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
  8. I 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 .

    ReplyDelete
  9. After 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

    ReplyDelete
  10. Kids 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

    ReplyDelete
  11. Spot 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

    ReplyDelete
  12. Software 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

    ReplyDelete
  13. Geographically, 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

    ReplyDelete
  14. solidworks-2017-premium-crack/
    freesoftsfiles.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

    ReplyDelete
  15. 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

    ReplyDelete
  16. It was nice unblock game . Very informative and expressive .things are easily play online at
    unblocked game

    ReplyDelete
  17. Mau menang banyak dengan modal sedikit..
    Ayo 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

    ReplyDelete
  18. PERMAINAN ONLINE TERBESAR DI INDONESIA

    Website 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

    ReplyDelete
  19. 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

    ReplyDelete
  20. There 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. 로투스바카라

    ReplyDelete
  21. If 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.

    ReplyDelete
  22. Thankful to you for peopling get the information they require. Remarkable stuff obviously. Keep up the titanic work!!! 토토사이트

    ReplyDelete
  23. I 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

    ReplyDelete
  24. Great 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 해외배팅사이트

    ReplyDelete
  25. I 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

    ReplyDelete
  26. You have given such wonderful information through this blog. Thanks for giving such great information. Keep posting. pcb copy.

    ReplyDelete
  27. Today, 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.

    ReplyDelete
  28. printed circuit board assembly, I am impressed. I don't think Ive met anyone who knows as much about this subject as you do. You are truly well informed and very intelligent. You wrote something that people could understand and made the subject intriguing for everyone. Really, great blog you have got here.

    ReplyDelete
  29. Wintrillions has been recognized as the number one website for international trade unions. Players prefer to purchase lottery tickets through Wintrillions as it offers them a greater choice of where to put their money. A valuable WinTrillions Review here.
    Though there are numerous casino games available online to play and make fun, only casino games at William Hill casino allow players to earn money in through various methods. Many casino games available online to play and make fun, read WilliamHill Casino Review to earn money.

    ReplyDelete
  30. I truly appreciate this post. I’ve been looking everywhere for this! Thank goodness I found it on Bing. You’ve made my day! Thanks again!
    Astrology Reading,
    Lord Ganesha Pooja,
    Jai Hanuman Pooja,
    Daily Horoscope,
    Astrologer in California,

    ReplyDelete
  31. Good post! We are linking to this particularly great post on our site. Keep up the great writing. 파워볼게임

    ReplyDelete
  32. Very appreciated post. Thank you for sharing this post with us. 경마

    ReplyDelete
  33. After looking into a few of the blog posts on your site, I seriously appreciate your way of blogging. 슬롯머신

    ReplyDelete
  34. Excellent write-up. I absolutely appreciate this website. 토토

    ReplyDelete
  35. The heart beats due to the electrical activity of the electrical system.
    토토사이트

    ReplyDelete
  36. What’s up everybody, here every one is sharing these knowledge, thus it’s fastidious to read
    this web site, and I used to pay a quick visit this website all
    the time.카지노사이트탑

    ReplyDelete
  37. Thank you for some other informative blog. The place else could I get that kind of info written in such a perfect approach? I’ve a challenge that I’m simply now working on, and I’ve been at the look out for such info.카지노사이트

    ReplyDelete
  38. I truly love your blog.. Great colors & theme.바둑이게임

    ReplyDelete
  39. Independent Escorts in Dubai is the right decision. the top Dubai Escorts at your one Click. Log on to us for entertainment

    ReplyDelete
  40. Very appreciated post. Thank you for sharing this post with us.
    https://www.astrologerrk.com/

    ReplyDelete
  41. This comment has been removed by the author.

    ReplyDelete
  42. I was able to try their new online course as well. It is indeed very convenient and their lessons about brand naming were very insightful! Definitely worth every penny.
    온라인경마

    magosucowep

    ReplyDelete
  43. e rebufvalid, obviously. We regularly base our decisions on instinct rather than hard realities. f individuals brutally when we sp
    토토사이트

    ReplyDelete
  44. Welcome to our Simple site which provides some of the most complete information about. The sdy data that we recap on our blog site is sdy's output which is really accurate because we took it directly from the official, namely the sdy live draw. So that all Sdy lottery masters don't need to worry or doubt the truth of Sdy's expenses on our blog site. Data Sydney Hopefully, with all the information we provide from the Sydney data blog, this simple site can be useful for all Sdy lottery bettors who visit our blog site.

    ReplyDelete
  45. Your blogs are great.Are you also searching for Nursing evidence-based practice writing services ? we are the best solution for you. We are best known for delivering the best nursing writing services to students without having to break the bank.

    ReplyDelete
  46. What an informative post you have here. In search of statistics assignment writing help online, we offer nothing less of top-quality writing help.

    ReplyDelete
  47. The high-definition sports broadcasting site broadcasts sports games live online and provides free overseas soccer broadcasts. Free broadcast categories include baseball broadcasts, basketball broadcasts, Champions broadcasts, and overseas soccer broadcasts, and real-time live scores are also provided. Especially, it provides a great streaming environment to watch EPL European football.
    무료 스포츠중계

    ReplyDelete
  48. Toto Game in Korea is a game in which the winning amount is paid according to the dividend rate after investing in betting money online in sports games. Sports betting is available on Toto sites, focusing on famous sports games such as overseas soccer, MLB, and NBA.
    토토사이트 사이트 방문 안전놀이터

    ReplyDelete
  49. Toto sites, which specialize in Sports Toto Proto, are often old private Toto sites. First-generation Totosites often refer to safety playgrounds that focus on sports betting. 토토사이트 안전놀이터
    mujuru.com

    ReplyDelete
  50. Private Toto is an online company that offers sports betting on the Internet. Various betting items will be provided to Toto users and the winner will be refunded according to the set dividend rate. And among the Toto sites, private Toto sites with excellent capital are called safety playgrounds.
    anjeonnoliteo

    ReplyDelete
  51. Private Toto is an online company that provides Internet sports betting. Various betting items will be provided to Toto users and the winner will be refunded according to the set dividend rate. And among Toto sites, private Toto sites with excellent capital are called safety playgrounds.
    sa000 토토사이트 안전놀이터

    ReplyDelete
  52. Wow, I sympathize. Me too, Ignition has always been one of my favorite racing games. Thank you for sharing good material, and I plan to visit often after bookmarking. I would like to see more good content :) 토토 사이트

    ReplyDelete
  53. Do you need online class help? Tell us to Do My Class Online For Me and we will provide you the best online class takers. Take my online class for me in cheap!

    ReplyDelete
  54. ufabet168 คือเว็บแทงบอลออนไลน์ อันดับ 1 ของประเทศไทย มั่นใจได้ 100% ปลอดภัยด้วยการบริการที่รวดเร็วทันใจ พร้อมบริการตลอด 24 ชั่วโมง ลูกค้าสามารถเลือกเล่นได้หลากหลาย เกมกีฬาจุใจๆ พร้อมทั้งมีระบบเกมคาสิโน และ เกมสล็อตอยู่ภายใน

    ReplyDelete
  55. I think this is one of the most significant info for me. And i am glad reading your article.But wanna remark on some general things, The web site style.is wonderful, the articles is really nice : D. Good job, cheers.I read this paragraph fully about the comparison of latest and previous technologies, 먹튀검증커뮤니티

    ReplyDelete
  56. Lottery SambadLottery Sambad Outcome Right now 11:55 am, four pm pm Nagaland state lottery..After reading your article I was amazed. I know that you explain it very well. And I hope that other readers will also experience how I feel after reading your article 먹튀폴리스

    ReplyDelete
  57. This was really an interesting topic and I kinda agree with what you have mentioned here..Your company has a really wide variety of products. A lot more than most other companies. The quality is top notch. Great Company! Thanks, Eric S..Hi there! Nice stuff, do keep me posted when you post again something like this! 토토핫 먹튀검증

    ReplyDelete
  58. I at last discovered grand post here.I will get back here. I just added your blog to my bookmark districts. thanks.Quality presents is the major on welcome the guests to visit the site page, that is the thing that this site page is giving.I see something fascinating about your website, so I saved to bookmarks. Web webpage: 오션카지노

    ReplyDelete
  59. Awesome and interesting article. Great things you've always shared with us. Thanks. Just continue composing this kind of post..You understand your projects stand out of the crowd. There is something unique about them. It seems to me all of them are brilliant..I think this is an informative post and it is very useful and knowledgeable. therefore, I would like to thank you for the efforts you have made in writing this article. 안전한놀이터

    ReplyDelete
  60. Very interesting blog. Agario is a fun game even if you are just starting out but you are always better off when you know what to expect and how to maneuver your way around so you can survive for as long as possible. Here are just a few tips that can help boost your survival rates as you enjoy the game..Positive site, where did u come up with the information on this posting?I have read a few of the articles on your website now, and I really like your style. Thanks a million and please keep up the effective work 먹튀검증

    ReplyDelete
  61. I am thankful for the article post. Really looking forward to read more. Will read on...Superb brief which write-up solved the problem a lot. Say thank you We searching for your data...A very awesome blog post. We are really grateful for your blog post. You will find a lot of approaches after visiting your post. 토토사이트배너

    ReplyDelete
  62. Im obliged for the blog post. Really thank you! Awesome. ..Nice to be visiting your blog again, it has been months for me. Well this article that i've been waited for so long. I need this article to complete my assignment in the college, and it has same topic with your article. Thanks, grea 토토사이트

    ReplyDelete
  63. Wow, this piece of writing is pleasant, my younger sister is analyzing such things, so I am going to tell her...I really like what you guys are usually up too. This type of clever work and coverage! Keep up the fantastic works guys I've added you guys to my own blogroll. 메이저사이트

    ReplyDelete
  64. Hello! Someone in my Facebook group shared this site with us so I came to give it a look.I'm definitely loving the information. I'm book-marking and will be tweeting this to my followers! Excellent blog and terrific style and design.I've been surfing online more than 4 hours today, yet I never found any interesting article like yours. It's pretty worth enough for me. In my view, if all web owners and bloggers made good content as you did, the net will be a lot more useful than ever before. 토토실시간배팅

    ReplyDelete
  65. The next time I read a blog, I hope that it doesnt disappoint me as much as this one. I mean, I know it was my choice to read, but I actually thought you have something interesting to say. All I hear is a bunch of whining about something that you could fix if you werent too busy looking for attention. Really nice and interesting post. I was looking for this kind of information and enjoyed reading this one. 먹튀폴리스꽁머니

    ReplyDelete
  66. It was extremely helpful for me. I'm cheerful I discovered this blog. Much obliged to you for offering to us, I too dependably gain some new useful knowledge from your post.  Excellent web site. Lots of helpful info here. I am sending it to several buddies ans additionally sharing in delicious. And of course, thank you in your sweat! I’ve learn some excellent stuff here. Definitely value bookmarking for revisiting. I wonder how so much attempt you place to make this sort of great informative site. 룰렛하는법

    ReplyDelete
  67. I just found this blog and have high hopes for it to continue. Keep up the great work, its hard to find good ones. I have added to my favorites. Thank You. I would like to say that this blog really convinced me to do it! Thanks, very good post . What a really awesome post this is. Truly, one of the best posts I've ever witnessed to see in my whole life. Wow, just keep it up. 바카라용어

    ReplyDelete
  68. Excellent article. I absolutely appreciate this website. Keep writing!  Keep up the good piece of work, I read few articles on this site and I believe that your web blog is real interesting and contains bands of good information. You have done a great job. I will definitely digg it and personally suggest to my friends. I’m sure they will be benefited from this site. I truly enjoy studying on this site, it has fantastic blog posts. 온라인카지노불법

    ReplyDelete
  69. I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. Thanks..I will right away take hold of your rss feed as I can’t to find your email subscription link or e-newsletter service. Do you have any? Kindly permit me know so that I may subscribe. Thanks. 메이저토토사이트

    ReplyDelete