The VG Resource

Full Version: [Program] FSYS Opener
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5
I've started a project for a Application that will open FSYS files in their raw format, allow editing, and have them be able to put back into the game they came from. (PBR, PC, XD) This could turn out to be very useful, as Nintendo might continue using this file format in later colosseum Pokémon games.
How it would work:
Models would be displayed here, would allow exports and imports, would also allow previewing of the models with the textures attached. (Like BB)
Textures would be right under them, would allow importing and exporting.
Possible animations would go here. (I don't know how the Pokémon are animated yet, either it's in the FSYS file or it's contained in another external file.
Sample of PBR (This is the Female D/P Trainer)
This is so amazing it deserves a thread at this state of development.

If I made a thread for every "project I started", this board'd be flooded with them.

So, no offense, but some more content is required to qualify for a topic. Visible progress in the actual application. This thread here is useless for us without that thing and thus, totaly needless. Didn't even tell us what exacly your app will be able to do and what kinds of edits will be possible et cetera.

Also, to spice it up, you could give some information on the file format in question: What do they store, why would one want to edit them and how do we do this with your app?
Sorry, I'll do that right now.
Out of curiosity, what language are you making this in? I'm assuming Visual C++ or Visual Basic.

Anyway, looks like a good start. Good luck with it!
I'm making it in C++ Language, because that seems to be one of the quicker ones.
*chuckles heartily*

As far as I know it's actually one of the most complex languages. It is very versatile and flexible though, and you can write just about anything with it. It's certainly one of the best choices for file conversion anyway.
And I guess it'll be quicker with Visual Studio, if you're using that, since it does a lot of the initialization.
(05-17-2012, 01:49 PM)puggsoy Wrote: [ -> ]As far as I know it's actually one of the most complex languages.

This is pretty much totally wrong.

C++ is one of the most complicated of about the top 10 most used languages, but certainly not even NEARLY the most complex language.

The reason for it's complexity is that it's very slightly lower level than the other most-used languages, dealing with memory addresses and such directly by way of pointers.

However, C++ is still a high-level language, and there are a lot of languages at a much lower level than it.

Sorry, just thought that needed to be said. My point really is that there's nothing wrong with C++, and it's not much more complicated than most other languages. In fact, because it's slightly lower level, if you program well, it's possible to make it faster than most others, too.
Well, wasn't trying to say that's it's a bad choice or anything. It's just that, in my experience, it's the most complex language I've considered/looked at. I'm talking in comparison to stuff like ActionScript 3.0, Python, Visual Basic, etc. But I'm sure there are way more complicated languages out there.
(05-17-2012, 03:40 PM)puggsoy Wrote: [ -> ]Well, wasn't trying to say that's it's a bad choice or anything. It's just that, in my experience, it's the most complex language I've considered/looked at. I'm talking in comparison to stuff like ActionScript 3.0, Python, Visual Basic, etc. But I'm sure there are way more complicated languages out there.

Yes. In comparison to most of the other commonly used languages, C++ is among the more complex, but there are also some benefits that arise because of that.
Okay, so I made a good choice?
It probably would have been easier to do it in another language, but I'll go as far as to say you didn't make a bad choice.
That's good enough for me.
I think you've made a good choice. As I said above, it's not that I don't think C++ is a good language to use, just that it's a one of the more complex of the popular choices, at least for me. But I suggested it, so I can't really say anything Tongue

And, as I said in the other thread, with C++ you can implement gcfsysd's extraction code directly, which will be extremely handy for sure.
Wait a second, LZSS? I just remembered something about that file extension! Skyward Sword uses LZ files for compression, which can be decompressed with U8 Tools usually, I'll go and test my theory. I hope this works.
Edit: This is the quote that jogged my memory.
(05-07-2012, 09:29 PM)Roxas358 Wrote: [ -> ]
(05-07-2012, 09:17 PM)TheAmazingSnivy Wrote: [ -> ]Ok, so in a hex editor in one of the bin files I have, there are files called CHARACTERNAME_lz, but I don't know how to open them? Are there any LZ file openers? Because I think that these are all of the model files...

Hm, LZ is a format in Skyward Sword. Maybe this will work.
U8Tools

By the way, what's the game?
Edit: Sadly, this didn't seem to work, I'll try different things...
Edit2: I found something very interesting about the FSYS format, IT SEEMS TO CHANGE WITH THE GAME!! Here's an example;

This is two files from different games, the top is Bulbasaur, (PBR) the bottom is Absol (Pokemon Colosseum). There are a few differences you can see just at the beginning, first of all, PBR starts with a letter "Q" in this case, while PC starts with plain dots. I decided to compare two files from a like game, so I chose Torchic and Absol (Mostly because they are the first Pokemon files you see,) as a test, and I found another interesting thing.

These files show that my guess was right, the games use different FSYS files. PC seems to name the Pokemon, as seen offset 70 of my picture, while PBR seems not to, instead putting (null).(null). This is very interesting things you might say, but what does it mean? It must also me that XD uses it's own version of the FSYS file.

And this shows that once again, my suspicions were correct, PC is shown on the top, while XD is shown on the bottom. If you notice in offset E0, the second to last one on the top, it shows "LZSS." In XD however, it shows nothing, putting "00" for that entire line. "LZSS" is a type of file compression, meaning this could probably be extracted by using a decompressor, such as Puyo or U8. But I'm getting ahead of myself, what I should figure out first is how the game engine opens these files and animates them. That being said, and please don't judge me for asking this, what is the file for the game engine used in GameCube games? I'm pretty sure in Wii games it's "main.dol," but I'm not quite sure about that one either.
...I was not expecting this! If you figure all this out, will we be able to export the Pokémon with their rigging as .DAEs (as well as .OBJ of course)? That would be a major breakthrough for the Colosseum project. We wouldn't have to use printscreen rippers!
Will it also export all the textures as .PNG (unlike BRRES Viewer that only auto-exports as .TGA)?
Sorry for all the questions, I'm just really excited to see a potential new FSYS Viewer. Big Grin
I genuinely hope you can crack the format and complete this program, so best of luck to you!
Pages: 1 2 3 4 5