Hi-Octane (1995) Level Inspector and Editor

Remember Hi-Octane by Bullfrog. Yes! It was the year 1995.

Find all the details about this project on github.


Related Topics:

Code | Port | Remake | Tool

11 thoughts on “Hi-Octane (1995) Level Inspector and Editor

  1. Wolf Alexander

    Thank you very much for your response, I will gladly keep you updated 🙂 I am very sorry but I have to correct my information already, I should have not only tested the idea with the texture tile IDs in the first level where it worked well. In the second level already I saw that at the shield charger place the green shield charger tiles are not present. Therefore please forget my idea. It must be something else, I hope I will find out in the near future. I am happy that other people also share my interest in this specific game.

    Reply
    1. movAX13h

      Post author

      Ah right, I see, haha 🙂
      I think it's possible that they hard-coded the locations in the code for each level, but I have no proof of this.

      Reply
      1. Wolf Alexander

        Some time ago I already spent quite some time trying to disassemble the game exe file in IDA Pro. I know I have good valid assembly code, and together with DosBox in Debugging mode and by setting breakpoints and stepping I was able to identify some routines in the assembly, for example I know where the Sky is drawn, the Rendering of Triangles occurs, where the HUD is drawn etc. But I almost gave up because for the time invested I almost got no return. Its just a big pointer mess, jumps where the final address depends on other variables, switch case jump tables with 57 different jump options, ... But maybe with a lot of patience one day I can figure it out. It just feels its easier and more rewarding to just try to reproduce it kind of with own source code and ideas. I would really like to know how it was possible for you to figure out the file formats. I tried to figure out how I can read the game supplied 3D Model files, but I still did not succeed.

        Reply
        1. movAX13h

          Post author

          Besides IDA you can try the reko decompiler (https://github.com/uxmal/reko) which produces C code and supports DOS executables - makes it a little easier.
          For this project we almost exclusively just looked at the hex values of the data files and tried to make sense of everything step by step. The binary file formats back then were all very simple and from previous reverse engineering projects we've learned a lot in that regard. I don't remember the details of the 3D model file format right now but I remember that the 3 component vectors for vertices are in there just as you would expect.
          I've developed a little tool to inspect binary files, much like a hex editor but with formatting and comment features (https://blog.thrill-project.com/binmap/) that I used extensively on this project - but srtuss did most of the work on these files.

          Reply
  2. Wolf Alexander

    Thank you very much for your great work on the reverse engineering and documentation of one of my most favorite game of all times. I still remember when I first saw Hi-Octane running on a 80486 from someone else during a visit. The graphics blew my mind back in the day 🙂 I always hoped I can understand the game better, and try to recreate it, but I was lacking the reverse engineering skills. Thanks to your work I am finally able to understand the game mechanics and data formats good enough so that I am able to try to recreate it myself. Its a slow process, but also a lot of fun. One note: You wrote you are not sure where the positions of the fuel, ammo and shield chargers are in the level file. Same goes with the player start locations. I believe the game simply looks at the Terrain tile Texture ID values, and then searches/knows where all of the stuff is. At least thats what I implemented for the charging stations, and it works well. Keep up the great work!

    Reply
    1. movAX13h

      Post author

      Thank you for your comment and for sharing your idea about the different locations - sounds very coherent to me and if it works as you said, we can close this chapter 🙂
      Have fun and keep me updated on your remake!

      Reply
    2. Akos

      Hi Alexander,

      did you managed to progress with the recreation of the game?
      I'm only asking, because I also started working on it.

      I managed to create a basic level exporter in python which extracts the selected level into Collada format - currently it is missing the level animations and the buildings, but at least it generates the rest of the basic map properly with textures.
      I choose Collada, because I'm recreating the game in CryEngine and it is a format which CryEngine can handle. I also choose CryEngine because it doesn't crash when you want to import a whole level in Collada 😀

      Of course after the recreation of the base game I want to extend it with more modern maps and more vehicle models - like the ones from the original intro video.

      If you want to help in my progress let me know.

      Reply
        1. Wolf Alexander

          @movAX13h: Thank you very much for your response and the link to the repo. I really appreciate it. Without your work (and the work of srtuss and others) everything I did the last 2 years would not have been remotely possible.
          I believe (and hope) with all the combined effort of all of the great different people that like this game as much as I do we will help to preserve this great original game for the future, and maybe even have a great remake at the end.

          Reply
      1. Wolf Alexander

        Hi Akos,
        I am very sorry for my late response, but I just saw your question here. I spent now > 2 years with the project and tried to implement everything just by observation. The result was kind of playable, but it does not feel right. Especially the vehicle control does not feel like the original. And the computer players I implemented were a big challenge. Of course I am no (was no) professional game developer, and I guess my code shows this. So maybe my first attempt was not the best choice, but I still learned a lot.

        Some months ago I received unexpected help (which I am very thankful for), and now I can dissect the playstation 1 version of the game.
        Routine by routine. My plan is now to take the things that matter out of the original game, and reimplement them in my current project. So that the project gets more true to the original where it matters. And that the project at the end overall makes hopefully more fun. Vehicle control is already partly implemented and working ok. For computer players and pathfinding I did the first steps. I will not give up, even if it takes more time now 🙂

        Reply

Leave a Reply

Your email address will not be published. Required fields are marked *