Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Stinkee2

Pages: 1 ... 4 5 [6]
51
Turok Evolution Modding / Re: Turok level viewer/exporter
« on: August 30, 2015, 03:08:49 PM »
I don't have any screenshots yet, but I've made quite a bit of progress.

I've deconstructed the .ATI files almost completely by analyzing the patterns in the data and I now understand the rules necessary for loading and saving data into the format. This is a big step for modding and level creation.

As a bonus, I think the other formats are very similar, if not exactly the same. If they are the same, then that means that I can create a single library for loading/saving the one type of file and just send it the necessary data. This won't make much of an impact on a final product, it just means that things might be a little easier on any programmers working with this code.

Here's a brief summary of how the format works:
-In the beginning of the file, there are 4 bytes of data that are used for identifying the file format. This is nothing new, a lot of different types of files have something like this. In this particular format, the 4 bytes are 0x01 0x61 0x74 0x69, that translates to ati, which makes sense (the 0x01 is not an alphanumeric character).

After this, there is a hierarchy of data blocks. At the start of each block there is some information about the block, the "header". These block headers stumped me for a while because they weren't always the same size, and sometimes the block size was one byte and sometimes it was two bytes.. After a while I figured out that in those special cases, before the block header there was one byte that describes the header type. A header header... Anyway, I identified which bytes corresponded to which types of block headers and got that sorted out.

I'm not sure what all of the data in the block headers mean but here's an overview of the types of block headers I found

-Block header type 0 (Normal block header, no "header header")
--Byte 0: Unknown
--Byte 1: Unknown
--Byte 2: Size of block (in bytes)
--Byte 3: Length of block ID string

-Block header type 1 (header header byte: 0x82 or 0x81)
--Byte 0: Unknown
--Byte 1&2: (16-bit integer): Size of block (in bytes)
--Byte 3: Length of block ID string

-Block header type 2 (header header byte: 0x61)
--Byte 0: Unknown
--Byte 1: Size of block (in bytes)
--Byte 2: Unknown
--Byte 3: Unknown
--Byte 4: Length of block ID string

-Block header type 3 (header header byte: 0xA1)
--Byte 0: Unknown
--Byte 1&2: (16-bit integer): Size of block (in bytes)
--Byte 3: Unknown
--Byte 4: Unknown
--Byte 5: Length of block ID string

Immediately following this information is the block ID string ("ACTOR", "NAVNODE", "ACTOR_VARIABLES", ...), followed by 0x00, or "null".
Immediately following the 0x00 is a block of data with the size stated in the block header.
This block of data can contain more blocks of data like I just described, or a value or values. It could be anything really.

Here's a small example of what an ATI file contains:
+data/levels/u_jcowlishaw/screens/Attract/attract.ati
|+ACTOR Y:\Data\Actors\Widgets\Widget.atr.
| |-ID: 1
| |+Name
| | |-PressStartWidget
| |
| |+POS (x,y,z) (12 bytes, 3 floats)
| | |- 0.0, -15.1498, 0.0
| |
| |+ROT (Euler angles probably) (12 bytes, 3 floats)
| | |- 0.000061, 0.0, 0.0
| |
| |+Scale (x,y,z) (12 bytes, 3 floats)
| | |- 16.0, 2.0, 1.0
| |
| |+ACTOR_VARIABLES
| | |+W_FC
| | | |-0xFF (255)
| | |
| | |+W_TMN
| | | |-0x01 (1)
| | |
| | |+W_YLAY
| | | |-0x01 (1)
| | |
| | |+W_XLAY
| | | |-0x01 (1)
| |
| |+ etc,etc

You get the picture, it's a hierarchy of data.
If you want to see more, here's a partial deconstruction of a couple files:
attract.atr: http://pastebin.com/rwg9CdK9
pod01_03_ttjungle.atr: http://codepad.org/cinaicfZ


If you don't get turned on by information such as this, then just wait for some screenshots to emerge once I integrate my rendering engine and have whole levels to explore. Just a few more days.

52
Turok Evolution Modding / Re: Turok level viewer/exporter
« on: August 28, 2015, 07:08:15 PM »
This is some really promising work you've got here, Stinkee2! I agree with Adon; some people, including myself, would love to see a possible level editor in the future. I've been hoping for the day that we would be able to mod Turok Evolution! Please keep us informed of your progress with your program. :D

When I was but a young naive 13 year old playing this game, it was a big driving factor for me to learn programming just so that I could modify this game. Of course after a while I realized the world that I had opened up and my interest for Turok did not stand up to the excitement of learning new things and building my own engines and things. But I totally understand the desire for more content for Turok.

Welcome I did not know you were the one I tried to get a hold of at the assembler forums pretty cool that you found here before checking your assembler to. True Turok fan then.

I actually went back to those forums earlier today to look for a post I remembered involving Turok 2 when I noticed the PM. I tend to float around until I find a place that feels like home, and Assembler just wasn't doing it for me. Perhaps I didn't give it a long enough chance and perhaps I didn't put enough work into integrating myself into the community. Oh well, I'm here and working on this now.

I imagine the hardest part of this whole process is going to be learning exactly what the different file types contain.

I'll post another update when I get some models loaded and on screen.

53
Turok Evolution Modding / Turok Level Editor
« on: August 28, 2015, 09:30:11 AM »

    ^Above image created by Duke64^


    Summary
    The Turok: Evolution ATR editor project aims to create an interface for modding existing levels and (maybe eventually) creating new ones.

    Source Code: Github
    Screenshots: Imgur

    Downloads
    Revision A (t4viewer)
    Revision B (t4viewer)
    Revision B Details
    Revision C (t4editor)


    [/list]

    54
    Info/Help / Greetings.
    « on: August 26, 2015, 03:35:35 AM »
    Hello, I'm a long time Turok 4 fan. I just signed up to ask if there was any use for a programmer around here. I just stumbled onto this site and I saw some recent activity in this forum. I'd like to start a new programming project and if there are any tools I could work on that people could use then I'd gladly do that.

    I have programming experience and I have written a Turok: Evolution model loader in the past. I don't have the source code anymore unfortunately but I see that there is another one floating around here. I bugged one of the game's programmers to give me information on the model format.

    I can write cross-platform code for 3D applications if a level viewer/exporter is something anyone would find useful or fun.

    Where do I go or who do I ask to find out what is known about the various game file formats?

    Pages: 1 ... 4 5 [6]
    SimplePortal 2.3.6 © 2008-2014, SimplePortal