• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

[Modset4.2] Open BrawlBox/Lib Development Thread [PW's SSS support(PAT0 editing)]

pokelover980

Smash Ace
Joined
Oct 4, 2007
Messages
905
Well, BLOC most certainly has to do with bosses. I went through the hex file for MiscData[7] for the first SSE Stage and changed everything that was 3F800000 to 42480000 (or, in floating point, I changed 1 to 50) and Kirby became huge.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
@Dantarion
You said that you have quit OpenSA project,didn't you?
Well, can I truly use your source? If I use your source, I may bother you...

@Mr.Chuy
OK,I see. Please keep seeing this thread even if you don't learn C#.

@pokelover980
Boss
L?
O?
C?
 

pokelover980

Smash Ace
Joined
Oct 4, 2007
Messages
905
I'm guessing C stands for Collection.

And running more tests, turning it to 0.1 made him super tiny. Now I'm taking a look to see what defines data blocks in the file.

EDIT: New data blocks start with 000100FF and each data block is 0x54 bytes long (including the 000100FF header). It seems that BLOC determines enemy/boss size.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
pokelover, you should define BlOC in BrawlLib.SSBBTypes first.
Understanding its meanings can be done later(also, if you make wrapper,and add support to BrawlBox, many people can work on it and may let you know its meanings).
 

Mr.Chuy

Chuy
Joined
Dec 29, 2009
Messages
1,817
Location
Somewhere in Texas
@Bero I'll always look at this thread due to it being epic :p

@pokelover Interesting
Add it to brawlbox and make i editable and i'll help you figure out BLOC data when i get a chance
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
@pokelover980
Please tell me your google account. I'll add you to the list of project comitters.
 

pokelover980

Smash Ace
Joined
Oct 4, 2007
Messages
905
PM'ed you with it. It may take a few days for me to get the editor done, I'm redoing the nodes to make it easier to do.

But, in the mean time, I'll post a small documentation of BLOC files.
Code:
BLOC FILES
-BLOC File Header: BLOC, or 424C4F43 in hex.
-New BLOC Entries start with 000100FF
-BLOC Entries are 0x54 bytes big
-BLOC Entry Data Block Header is 0x24 bytes long
-At 0x24 of entry data block is first float value. After that is two more. They are, respectively, X, Y and Z scales.
-Rest of values in data are Unknown Values, presumably footer.
-Larger BLOC Files that include enemy entries and not just boss entries also seem to contain Linking definitions throughout the file.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
Well, I've finished making TextBox with IntelliSense(I call it IntelliBox. I haven't debugged it though).
I start looking into movedef files.
 

pokelover980

Smash Ace
Joined
Oct 4, 2007
Messages
905
It seems completely rewriting the nodes is going to take a while, I just tested what I've got so far and wow is it buggy 0_o

EDIT: And it won't have it's own editor, I've decided against that. You'll just be able to edit it from the side panel.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
@leafbarret
I'm always nervous when I see your bug report.

I'm not sure if I have touched brsar files, so I'm going to take a look at its source.

@pokelover980
It isn't so hard to make nodes. The things you have to do is write properties, fields that hold property value, OnIntialize,OnRebuild,TryParse. I think OnRebuild is the hardest part.
 

pokelover980

Smash Ace
Joined
Oct 4, 2007
Messages
905
Yeah, OnRebuild keeps getting me, but I think I've gotten it now. I'll probably be on to testing again in a few hours, and I'm hoping to get it done by tomorrow, but there's a chance I'll get it done tonight.

EDIT: I need a bit of help. It works pretty good so far, but the only issue I'm having now is that in BLOC files the first entry is always a different ways away from the header, so it makes it hard to get every entry correctly and sometimes it only reads the first one. Is there a way I can access the VoidPtr Address of another unsafe struct so I can use that to determine where the first entry should be? Once that's done it's a matter of making it read every entry in the BLOC file and I'm done.

EDIT2: Well, I actually won't be done. I'll be done part of BLOC files. There are three (I think only three, I'll check every Subspace stage later but from checking about half of them there are only three) types, GFG1, GEG1 and GET1.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
"Be done" means "I gave up"?

@to edit1
You can access address of another struct by using public properties.

By the way,Dantarion's OpenSA2 source code is far better than PSA source code.
 

pokelover980

Smash Ace
Joined
Oct 4, 2007
Messages
905
What TSON sayed. It'll be mostly completed.

Ah, I see. I would just have to change the Address from private to public, I assume? In any case, I've gotten it partly figured out, and I should have it done tomorrow, but it's possible it could take a little while longer.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
I don't know what you are doing, there may be better way to do that.
As you know, accessibility have to be private,generally.
 

pokelover980

Smash Ace
Joined
Oct 4, 2007
Messages
905
Yeah, I did it wrong, but I found another way because my brain popped back into action and remembered the correct way to do it.

EDIT: Also, should I commit the changes once I get GFG1 (this is the type I mainly looked into) support done, or should I commit it once I get support for more BLOC types done?
 

pokelover980

Smash Ace
Joined
Oct 4, 2007
Messages
905
I know the structure of GFG1 files, but I don't know what the values of each data block is for. I was actually just about to test that so I could find out what controls what, but I do know that GFG1 BLOC files control enemy fighter size/strength. I progressively made the values in each data block smaller (started with 5 in the first data block, ended with 0.1 in the last data block) and then in another test made them larger, and in the first test Kirby became large and weak, and in the second small but strong.

EDIT: I misworded that. His attacks didn't become weak, they became slightly stronger, but he became much lighter and one hit killed him. The second test was the opposite, he became very small and his attacks were a little weaker but he became much more resistant to knockback. So GFG1 control the fighters attributes, and they're stored in groups of three as a range for different difficulty settings (and size is only stored for certain levels where enemies become bigger, such as the giant Diddy (was it giant Diddy? Whatever, it's not important, it was a giant fighter) boss). The first block, I believe, is size.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
@Dantarion
I'm going to write codes from now. I've studied moveset by reading your code, but I'm not sure OSA can load all of moveset file.
Have you entirely analyzed and written code for that?
If so, I can work with relief.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
I see.
I was trying to make nodes for that, but I have to find another way.
This file is chaos.
 

Dantarion

Smash Champion
Joined
May 21, 2007
Messages
2,492
Location
Santa Barbara, CA
Bero, you need to check out OpenSA3.
Like, ASAP.
Check out the code from SVN and try it out, its gonna help in terms of figuring out what is going on in the files.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
Oh, OpenSA3Lib is BrawlLib-like.
I'm sure this will help me a lot.

What makes me confused is that there seem to be many blocks filled with 0, and not used.
...pokelover, I hope you can finish your work soon. If Dantarion writes code for BrawlLib, things will go better, but you won't do that because I think you'll write code for OSA rather than BrawlLib.

EDIT
Ah, both of you don't have to read my words. I just said this to myself.
 

pokelover980

Smash Ace
Joined
Oct 4, 2007
Messages
905
Nice. Is this all commited to SVN and such? Ill take a look at some filetypes here and there.
Not yet, but it should be soon. I've got a few errors to pick out to make it work fully, because there is a case or two where BrawlBox doesn't like the GFG1 file :dizzy:
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
Dantarion's OpenSA3 is so cleat that I can't write better code than that...

By the way, I found icon in BrawlVault. I'm going to use it.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
I finished making nodes that are defined in OpenSA. I'm going to make rebuild code next.

And how's your work going, pokelover?
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
I've been working on moveset(I call it movedef).
Dantarion has started OpenSA3, and I'm studying movedef through it.
Main feature I'm planning is
1 Fighter.pac editing
2 Article editing
3 C# like PSA language and text editing using it
 

Dantarion

Smash Champion
Joined
May 21, 2007
Messages
2,492
Location
Santa Barbara, CA
Bero, in that case we are just both doing the same thing.

The problem is that we can't rebuild the files, because 40% of the files is unknown.
If you want to work on rebuilding them, that's cool.

If you want to start doing something so we dont tread the same ground so badly, take a look at fighter.pac.
There a LOT more than action s0-112 in there. Theres also a lot of unknown stuff with item movesets as well.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
Yes,I can't make rebuild code directly.
So I found a sly trick.:chuckle:"RawDataNode"
 

pokelover980

Smash Ace
Joined
Oct 4, 2007
Messages
905
Well, all the BLOC types should be done within a week and I should have it committed. I'm working on a simple program right now that will help me understand the different BLOC formats better (it's basically a simple hex editor that highlights patterns within the file to help me determine data blocks).
 
Top Bottom