Users browsing this thread:
How to make a program that can open models?
#1
I, TheAmazingSnivy, have decided to attempt to open a FSYS file. (They're used in PBR, PC, XVery SadGales of Darkness.) I am doing this because I wanted to get a couple of bone structures. Anyone have any notes on the format? I don't think there is a program that can open them currently... Any help is appreciated. I was going to start by making a program that can open DAEs, so you can help me with that....
Edit: I think this is the right place to put this... right?
So, like totally.
Thanked by:
#2
All I could really find was this page, scroll down to gcfsysd. It says that it can extract files from .fsys files from XVery Sad Gale of Darkness. It seems to focus on sound data, although it may extract some kind of models from it, too. (Through pure coincidence, this is from the same site that I quite recently got an audio decoding library from. Funny.)

This thread might also help somewhat, although it's more about ripping .fsys files than opening them.
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Thanked by:
#3
Do you know anyone who is good at programming? I would still like to make the program. My idea is to make modding tools for the games.
Plus, if they make another game with the same file extension, all you would have to do is open them with my program. (In theory, of course.) Right now I want to start small, just a program that can open DAEs.
So, like totally.
Thanked by:
#4
I'd consider myself "good" with programming, but that's only with Flash, which I don't think will be much help here. I'm sure there are lots of other people at here at tSR that are more experienced with languages like C++ though, which would be more suitable for this sort of stuff. You can check in the Game Development section, if you see someone who might be able to help you can PM them and see if they're up for it.
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Thanked by:
#5
Ok. (One question, is tSR The Spriter's Resource?)
So, like totally.
Thanked by:
#6
Yeah it is, sorry if I made that unclear. Even thought it isn't really needed, I've edited my post now so that it's clearer.

By the way, I'd like to test some stuff with gcfsysd. Would you be able to supply me with the file you want to open, or give me a link to a similar file?
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Thanked by:
#7
(05-16-2012, 03:46 PM)puggsoy Wrote: Yeah it is, sorry if I made that unclear. Even thought it isn't really needed, I've edited my post now so that it's clearer.

By the way, I'd like to test some stuff with gcfsysd. Would you be able to supply me with the file you want to open, or give me a link to a similar file?
Allow me one minute.
Edit: Here you go.
(http://www.mediafire.com/download.php?1kgwuyjo2r4tyox) It's Absol.
So, like totally.
Thanked by:
#8
Well, I've checked it out. gcfsysd manages to extract a file named "absol" from it. I assuming this is the model you're looking for, but it has no extension so I don't know what to do with it.

Also, if it means anything, gcfsysd gave me this output information:

Code:
gcfsysd 0.1

Header info:
    file count:    1
    header start:    00000040
    data start:    00000100
    file size:    000405c0 (263616)

    File 00 info:
        name: "absol"
        offset:    00000100
        size:    00040482 (263298)

Hope it helps in any way.
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Thanked by:
#9
Well it is a LZSS compressed file, that much I can tell you.
File headers are a sweet thing.

What LZSS is? Well, I'm sure you heard of LZ77 (Lempel, Ziv, 1977). LZSS is an adaption (Storer, Szymanski, 1982). You'll need a decompressor in order to get to the contents. Further, this means that you'll need to implement LZSS comression/decompression algorithms in your porgram.
Thanked by:
#10
All right, so I'll have to figure out how to do that. That also means that I'll have to include gfsysd in the download of my program.
So, like totally.
Thanked by:
#11
I'm pretty sure you'll be allowed to use gcfsysd in your program, since he gives the source code along with it (hence the .c file). If you're gonna write your program in C/C++, you can also just stick the code in directly instead of accessing the .exe externally.

As for the LZSS algorithms, a quick search produced this page. It hasn't got any code straight-up, but it gives you algorithms for both encoding and decoding, which I'm assuming you can use across multiple languages.
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Thanked by:
#12
Ok then, thank you.
Edit: I've also noticed that LZSS is also seen in the Hex in PC FSYS files, as seen here, PC is on the top;
[Image: gGdan.png]
Maybe, just maybe, this might be the key to opening them.
So, like totally.
Thanked by: puggsoy
#13
You should be able to decompress LZH8/LZSS format models with this script thingy: http://hcs64.com/files/lzh8_cmpdec08.zip
I'm not sure if it'll work for you but when you said LZSS it reminded me of this so I thought I'd link to it if it helps any.
[Image: sweet-capn-cakes-deltarune.gif]
Thanked by: TheAmazingSnivy
#14
(05-19-2012, 02:41 PM)Mighty Jetters Wrote: You should be able to decompress LZH8/LZSS format models with this script thingy: http://hcs64.com/files/lzh8_cmpdec08.zip
I'm not sure if it'll work for you but when you said LZSS it reminded me of this so I thought I'd link to it if it helps any.

Thanks for your help!
So, like totally.
Thanked by: Garamonde
#15
Ah so it works? That's great! I hope you can get at some of those models now! Big Grin
[Image: sweet-capn-cakes-deltarune.gif]
Thanked by:


Forum Jump: