Skeleton Files

For those of us who are curious and like to poke around in the game's data files and scripts as well as glitching. Caters to anything from unit/building stats to level data to telling how to glitch and stories of game errors.
Ormu
Turantul 1 (Veteran)
Turantul 1 (Veteran)
Posts: 840
Joined: Fri Dec 26, 2008 4:59 pm
Location: Finland

Re: Skeleton Files

Post by Ormu » Fri Jun 14, 2013 9:03 pm

I found out something related to the SEN2 section: if it exists, the length of it seems to be 96 bytes. I auto-checked every file in SET.bas of set 1 and the wireless folder and there were no exceptions. The data doesn't look very complicated either. There are only a few different values repeating themselves and the value size seems to be 4 bytes.

I also made a working SKLT editor which I will post here later... :ninja:
Image
Matthew Lever wrote:Take out Ormus as soon as you see them.
UA community Discord channel: https://discord.gg/7H4dFQH
Not all Ormus are mine. When in doubt, please ask...

Ormu
Turantul 1 (Veteran)
Turantul 1 (Veteran)
Posts: 840
Joined: Fri Dec 26, 2008 4:59 pm
Location: Finland

Re: Skeleton Files

Post by Ormu » Wed Sep 11, 2013 3:07 pm

Ormu wrote:I also made a working SKLT editor which I will post here later... :ninja:
Forget this. :P I have created a plugin for Blender that allows importing and exporting SKLT files. Now you can finally create new wireframes with a real 3D model editor.

Textures aren't supported yet but research goes on...


Download:
http://metropolisdawn.com/files/persona ... 9.2013.zip

Requirements:
Blender (v. 2.5 or newer)
http://www.blender.org/


Installation:

After installing Blender, locate the addons directory:
http://wiki.blender.org/index.php/Doc:2 ... on/Add-Ons

Unpack the plugin and copy the folder ("io_mesh_sklt") into the addons directory.
Start Blender, go to File -> User preferences -> Addons -> Import-export -> enable SKLT plugin.
Now there should be entry for Skeleton(.sklt) in File -> Import/Export menus.


Import options:

Filename filter: Choose which files (by extension) to show.

Import SEN2: Whether to process SEN2 section data when importing (see notes).


Export options:

File extension: Which extension to use for the new file. .sklt = most models inside BAS files, .skl = HUD models (\data\wireless\).

Filename filter: Same as above

Primitive mode: How to process 3D primitives
>>Polygon mode: Save polygons as polygons. This is recommended for most models.
>>Edge mode: Save edges (lines from vertex to another). Use this only when there are lines that do not belong to any polygon (mostly HUD models) as polygon mode ignores them. Polygons that consist of separate edges can't (probably?) be textured!

SEN2 mode: How to save SEN2 data (see notes).
>>Ignore: Do not save anything.
>>Save: Save existing SEN2 data if it exists.
>>Auto-generate: Automatically generate the "SEN2 box" around the model and save it.


Notes:

-Y and Z coordinates are flipped in UA, i.e. Y is negative above ground and Z is negative from north to south.

-Switch from edit mode to object mode before exporting to make sure that all chages are applied to the objects.

-Only mesh objects are supported at the moment.

-You may want to delete the cube which is created by default when Blender starts.

-Duplicate vertices and invalid primitives ("0" and "1-gons") are ignored when importing.

-The function of SEN2 section is currently unknown. It might be related to model scaling, or it might not have any function.

-The SEN2 data is imported as a separate object named "SEN2_BOX". The name is hard-coded so do not change it (see below).

-You can import multiple files but new SEN2 objects will be renamed if they are imported. The export plugin will export them as ordinary meshes (see above) so they should be deleted.

-SEN2 section should have 8 vertices if it exists. Otherwise glitches may occur.

-This is highly experimental! Backup your works and report all problems!


I have very little experience on 3D modeling or Blender itself so feel free to request for any feature that should be added.
Last edited by GoldStar611 on Sun Jan 10, 2016 1:34 am, edited 1 time in total.
Reason: fixed broken links
Image
Matthew Lever wrote:Take out Ormus as soon as you see them.
UA community Discord channel: https://discord.gg/7H4dFQH
Not all Ormus are mine. When in doubt, please ask...

Ormu
Turantul 1 (Veteran)
Turantul 1 (Veteran)
Posts: 840
Joined: Fri Dec 26, 2008 4:59 pm
Location: Finland

Re: Skeleton Files

Post by Ormu » Sun Nov 10, 2013 7:18 pm

Xyneline wrote:Oh lordy! It's been a while since I've been here, but wow! That's really great work!! I really wish I could play with this and Blender again to try it out!

Do you know how certain animations are handled? Like, the Zepplin's tiny spinning propellers?
I have decoded the animation file format (VANM chunks) but I've been too lazy to document it. :P However, it's not completely known how the animations and textures are mapped onto the wireframes.

I have a slight problem as most of my project files are written for Python 2 but Blender uses Python 3. Some rewriting on the to-do list...
Image
Matthew Lever wrote:Take out Ormus as soon as you see them.
UA community Discord channel: https://discord.gg/7H4dFQH
Not all Ormus are mine. When in doubt, please ask...

User avatar
Zidane
Turantul 1 (Veteran)
Turantul 1 (Veteran)
Posts: 166
Joined: Mon Nov 22, 2010 8:38 pm
Location: Novosibirsk, Russia

Re: Skeleton Files

Post by Zidane » Tue Feb 03, 2015 8:09 am

"Simple" read procedure for sklt file entry in set.bas:
UA- SET.BAS--EMBED--SKLT.png
UA- SET.BAS--EMBED--SKLT.png (62.91 KiB) Viewed 1579 times
合体! ライオカイザー

Ormu
Turantul 1 (Veteran)
Turantul 1 (Veteran)
Posts: 840
Joined: Fri Dec 26, 2008 4:59 pm
Location: Finland

Re: Skeleton Files

Post by Ormu » Thu Feb 19, 2015 9:17 pm

Zidane wrote:"Simple" read procedure for sklt file entry in set.bas:
Interesting. Looks like SEN2 actually has a purpose of some sort. "SENS" -> sense...?

You found this by disassembly?
Image
Matthew Lever wrote:Take out Ormus as soon as you see them.
UA community Discord channel: https://discord.gg/7H4dFQH
Not all Ormus are mine. When in doubt, please ask...

User avatar
CharlotteLabyrinth
Turantul 1 (Veteran)
Turantul 1 (Veteran)
Posts: 357
Joined: Thu Mar 01, 2012 3:00 pm
Location: Schloss Charlottenburg..?

Re: Skeleton Files

Post by CharlotteLabyrinth » Fri Feb 20, 2015 2:20 pm

Nice discovery, Zidane! :D
After looking through the set of algorithm structure, now I could assume which part caused a problem (vertex section, I presume.) when rendering the inverted square format in my previous work. Perhaps at this opportunity I may attempt to deliberately allocate some bogus values that will distort or even nullify the skeleton mesh and see if the procedure for an output still functions in the same order as described above. But then first I need to relocate the old modified UA.exe and SET.bas files that I used for some random hex-editing...

Currently engaged in my major science project and some other micsellaneous schoolworks... wish I have more free time to put into disassembling or hexing the UA.exe in a proper manner.
;----------------------------------------------------------
;
; Vielleicht der niedlichste Hubi, Knuddel.
;
;----------------------------------------------------------

Personal Declaration: I always use different usernames across different websites. Hence if you ever see my username is being used outside of Stoudson Corporation, I absolutely have no affiliation whatsoever with that!

User avatar
Zidane
Turantul 1 (Veteran)
Turantul 1 (Veteran)
Posts: 166
Joined: Mon Nov 22, 2010 8:38 pm
Location: Novosibirsk, Russia

Re: Skeleton Files

Post by Zidane » Sun Feb 22, 2015 6:38 am

Ormu wrote:You found this by disassembly?
Yes, and my first goal is in creating all internal structures and data types of original UA. This is main problem of RE and creators of UA additionaly helps with it by using many hacky self-invented things like OOP on pure C.
Second goal is create prototypes in C++/irrLicht and loaders
Third - write game logic, but it's very-very-very far, like in the far-far galaxy :lol:

P.S. For fun - classes hierarchy:
ua_classes.png
ua_classes.png (89.53 KiB) Viewed 1404 times
合体! ライオカイザー

Ormu
Turantul 1 (Veteran)
Turantul 1 (Veteran)
Posts: 840
Joined: Fri Dec 26, 2008 4:59 pm
Location: Finland

Re: Skeleton Files

Post by Ormu » Tue Feb 24, 2015 10:25 pm

Zidane wrote:
Ormu wrote:You found this by disassembly?
Yes, and my first goal is in creating all internal structures and data types of original UA. This is main problem of RE and creators of UA additionaly helps with it by using many hacky self-invented things like OOP on pure C.
UA was written in C? :-? Maybe that explains why it runs with so little memory...?
Image
Matthew Lever wrote:Take out Ormus as soon as you see them.
UA community Discord channel: https://discord.gg/7H4dFQH
Not all Ormus are mine. When in doubt, please ask...

User avatar
Zidane
Turantul 1 (Veteran)
Turantul 1 (Veteran)
Posts: 166
Joined: Mon Nov 22, 2010 8:38 pm
Location: Novosibirsk, Russia

Re: Skeleton Files

Post by Zidane » Wed Feb 25, 2015 3:19 am

Ormu wrote:UA was written in C?
In the game credits (really I see it in disasm) last line is " GoldEd - dPaint - SAS/C" and I think originally UA was written in SAS/C (Amiga C compiller) for Amiga but in the end was ported for PC and compiled in Watcom C/C++
合体! ライオカイザー

GoldStar611
BlackSect Creator
BlackSect Creator
Posts: 861
Joined: Sun Dec 02, 2007 1:16 am
Location: USA
Contact:

Re: Skeleton Files

Post by GoldStar611 » Thu Nov 24, 2016 7:54 pm

I've uploaded POO2 and POL2 python classes to first post. I also promoted Ormu's Blender Import/Export plugins for SKL/SKLT files.
viewtopic.php?f=23&t=464#p4704

These classes will eventually be used in BASEdit Beta program (SET.BAS Compiler) but I want to make sure I don't lose them.
Image
Image

Post Reply