Hello Arcane, nice to see another face here.

1)

gmon.out is the default output file for the GNU profiling tool

gprof. The g c c compiler adds profiling code when run with the option: -pg. I can't find any documentation on Bloodshed related to profiling, so I'm afraid you will have to hunt that down where that option is set yourself. See also:

gprof manual.

2) I suspect the 600KB size will dramatically decrease once the profiling code discussed in (1) is removed.

3) Applying matrices is easy but you have to be careful that you get the order right. When you multiply two matrices together you multiply the row elements from the first by the column elements of the other and add. So multiplying a normal vector by a transformation matrix (which is likely what you are dealing with) is:

**Code:**

A[3x3] * B[3x1] = |A11, A12, A13| * |B1|

|A21, A22, A23| |B2|

|A31, A32, A33| |B3|

= |A11*B1 + A12*B2 + A13*B3|

|A21*B1 + A22*B2 + A23*B3|

|A31*B1 + A32*B2 + A33*B3|

Fortunately, you don't have to work out how to write the code to do this properly as the Homeworld source code has its own routines for doing this: src/Game/Matrix.*. "All" you have to do is work out which vectors/matrices get multiplied together.

4) On this point I will have to cite ignorance - my knowledge of PEOs, textures et al is rather limited. Hopefully someone else here can help you out with this.