Strike Commander with Oculus Rift (Virtual Reality Headset) project.

I am still horribly stuck on the maps and animation. So in order to cheer myself up, I rebuilt the Object Viewer, DogFight and MainMenu:

screen-shot-2014-01-03-at-7-08-01-pm-png.6848

Ok, I have to ask, did you build a viewer that puts the layers together or did you just extract the layers and Photoshop them together? I've had fun doing the latter but if you have figured out how to do the former then I'm sure delMar will be vary grateful to find out how you did that.
 
Last edited by a moderator:
@Shades2585 I am not using photoshop. The program I wrote opens the TRE from Strike Commander and then makes sense of the IFF and PAK in order to extract the ressources (object list, distance from object, objects, textures, background). The objects are viewed exactly in the order they were in the original Strike Commander.

Then it renders them on the screen:

Note that I don't have the buttons functional yet.

It is not reverse engineering of the code yet: Only the assets for now since I believe understanding the assets will make understand the assembly easier.

The code can be found here: https://github.com/fabiensanglard/libRealSpace (of course you will have to use your own purchased copy of SC assets to use it).
 
Last edited by a moderator:
Working on Unix is great but XCode crashes a lot unfortunately. I haven't taken the time to create a VS project and a Makefile for Windows and Linux but I will soon. The important thing is that I am not using anything that is not portable and use SDL so recompiling should take just a few minutes.
 
Spent an other day on trying to make sense of the 3D maps to no avail. I wonder if Chris Robert or Jason Templeman could remember the basic idea of how that worked.....
 
I tried to estimate the total effort to reverse engineer a game as massive as Strike Commander. Based on previous experience, a man working with IDA one hour each day and 4 hours/weekend can reverse engineer ASM to C/C++ at a rate of 10KB / month.

So for all of Strike Commander that gives us an estimate of:

Code:
INSTALL.EXE       7,793 bytes : RETE  2 weeks
MKTERR.EXE      203,744 bytes : RETE  1.5 years
SC.EXE           20,000 bytes : RETE  1 month
MKGAME.EXE      131,696 bytes : RETE  1 year
OPTTEST.EXE     870,528 bytes : RETE  7 years
STRIKE.EXE      746,304 bytes : RETE  6 years
=============================================
15 years, 7 months and 2 weeks.

Hm.
 
OMG, I reverse engineered the maps !!!!!

screen-shot-2014-01-07-at-2-54-16-am-png.6861


screen-shot-2014-01-07-at-2-54-39-am-png.6862


Only missing the colors and textures :) !

And a slightly photoshopped version with motion blur and desaturation :

bdzsiw0cmaalr8z-png.6865
 

Attachments

  • Screen Shot 2014-01-07 at 2.54.16 AM.png
    Screen Shot 2014-01-07 at 2.54.16 AM.png
    64.4 KB · Views: 408
  • Screen Shot 2014-01-07 at 2.54.39 AM.png
    Screen Shot 2014-01-07 at 2.54.39 AM.png
    65.8 KB · Views: 421
  • BdZsIW0CMAALR8z.png
    BdZsIW0CMAALR8z.png
    577 KB · Views: 401
Last edited by a moderator:
The in-flight palette :

screen-shot-2014-01-07-at-3-53-12-pm-png.6863


I love how colors are arranged:

Pick a color from [0-15] then get a gradient of it by adding gradient*256 (gradient is also within [0-15] ). So clever.
Notice how the palette has a lot of space for green, blue and brown in order to perform nice gouraud shading....and unfortunatley the infamous HAZE/FOG !
 

Attachments

  • Screen Shot 2014-01-07 at 3.53.12 PM.png
    Screen Shot 2014-01-07 at 3.53.12 PM.png
    12.9 KB · Views: 424
Last edited by a moderator:
An other cool palette trick:

In Strike Commander, if you pull too much and take too much G, your vision goes grey and then dark. That is why the IFF containing the color palette also features a Black and White palette:

strike_co_bw_palette-png.6864


Rendering is done as usual but the palette is recalculated with interpolation between the color and bw palette.

When the vision goes dark, the color palette values are interpolated with RGB(0,0,0) instead.
 

Attachments

  • strike_co_bw_palette.png
    strike_co_bw_palette.png
    14 KB · Views: 419
Last edited by a moderator:
It will always be a miracle to me, how one could be able to extract information like this from just zeroes and ones :)
Amazing, looking forward to getting to know more about that
 
I made some good progress this evening. I am now able to parse the map terrain type and shade level:

ARENA with its cool deep canyons that could be followed up to the mountains. I haven't managed to understand how to draw the city yet :/ !
screen-shot-2014-01-09-at-12-40-22-am-png.6873



SANFRANCISCO
screen-shot-2014-01-09-at-12-38-34-am-png.6871


ANDMAL1
screen-shot-2014-01-09-at-12-39-03-am-png.6872


Even without gouraud shading they look pretty neat :) !!!

I still have to figure out the textures. It seems there are two kind in a map:
- Those used for transition between terrain type (beach for SEA -> GROUND or port for SEA->CITY).
- Those that are used randomly anywhere on the map (this is how the city in ARENA is done).

I have also managed to parse the .OBJ file which describe the objects for each block on a map !
 

Attachments

  • Screen Shot 2014-01-09 at 12.38.07 AM.png
    Screen Shot 2014-01-09 at 12.38.07 AM.png
    975.1 KB · Views: 111
  • Screen Shot 2014-01-09 at 12.38.34 AM.png
    Screen Shot 2014-01-09 at 12.38.34 AM.png
    826.5 KB · Views: 394
  • Screen Shot 2014-01-09 at 12.39.03 AM.png
    Screen Shot 2014-01-09 at 12.39.03 AM.png
    930.7 KB · Views: 404
  • Screen Shot 2014-01-09 at 12.40.22 AM.png
    Screen Shot 2014-01-09 at 12.40.22 AM.png
    876.9 KB · Views: 367
Last edited by a moderator:
One more evening of work and i now have the texture for transitions, city, fields and everything:

sc_city-png.6877


I have also fully reverse engineered the OBJECT. After I add them and also add gouraud shading for the map, I will have 100% jets and 100% map.

I think I am on evening away from taking the Oculus Rift and being able to fly in Strike Commander environment....I wonder if I can find where the crop circles are :p !
 

Attachments

  • sc_city.png
    sc_city.png
    951.3 KB · Views: 394
Last edited by a moderator:
An other one with a quick gradient for the sky, before I get started on shading the ground with beautiful modern 888 colors:
sc_crater-png.6879
 

Attachments

  • SC_crater.png
    SC_crater.png
    860 KB · Views: 370
Last edited by a moderator:
this is really cool.
do you think creating terrains would be easy for modders or is it quite complicated?
 
@delMar Creating new terrains would be very easy. There is nothing hard-coded in the EXE, everything comes from the terrain.PAK and the texture PAK (TXMS.PAK). The terrain could be created via any tool/editor and then transformed into SC format since we now understand it. We could totally import a map from Flight Simulator or Skyrim.

I wonder who will do that though: Posting here it seems Strike Commander is a forgotten game contrary to the Wing Commander serie.
 
I wonder who will do that though: Posting here it seems Strike Commander is a forgotten game contrary to the Wing Commander serie.
Above all, I think Strike Commander is just difficult to enjoy. For me personally, Strike Commander is a game I really want to play again, especially because somehow I never got around to finishing it. I also want to give Wings of Glory a proper go, and I'd love to replay Pacific Strike. But I can't do these things, because these games seem to have very poorly stood the test of time. The terrain graphics are terribly dated, lacking in detail and difficult to make out (they do actually look a lot nicer in your screenshots than in the actual game engine), the steering is poor and unresponsive (my fault: I'm not a joystick gamer, and even if I were, I simply do not have a joystick here I could play with).
 
I wonder who will do that though: Posting here it seems Strike Commander is a forgotten game contrary to the Wing Commander serie.
I just asked out of curiosity, because I know next to nothing about displaying or persisting 3D data.

Maybe your research about terrain data could be relevant for those Wing Commander games with planet-side missions?
 
Back
Top