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

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
#1
Open BrawlBox/Lib Development Thread



Summary
BrawlBox has become an essential tool for Brawl hacking. Kryal, the creator of BrawlBox, is taking a break and he won't be updating it until he returns. However, he left us its source. I decided I want to work together with other coders to improve BrawlBox and BrawlLib. Hopefully we will be able to help each other and learn from each other.


Purpose of this thread
  • Improving BrawlBox/Lib
  • Training of C# developers(including me)
  • (Making a reference of BrawlLib)

Rule
  • If you are interested in helping and are planning on learning C#, tell me and I'll add you to the list of programmers as a C# learner.
  • Inform me of when you post codes for the first time.
  • Leave comments in you code so that others can understand it more easily.

Download
BrawlBox Modset4.2
[collapse="Change Log"]
Change Log of Modset4.2
  • Fixed bugs in PAT0 editing again.
  • "Save" command now works fine.

Change Log of Modset4.1
  • Fixed a bug of PAT0 rebuilding
  • Changed function of Paste only Trans

Change Log of Modset4.0
  • Added a button "Paste only Trans" to Animation editor
  • PAT0 editing function(test)
  • Drag-And-Drop Animating(THANKS,KRYAL!)

Change Log of Modset3.3

  • Fixed bug of opening Hanenbow.

Change Log of Modset3.2

  • Fixed issue of gray out "Replace" menuitem on ARC.
  • Default value in STDT editor source is optional now.
  • Added checkbox on animation panel. You can copy/paste animation state except for translations.

Change Log of Modset3.1

  • Fixed typo "Dafault"
  • Added STDT editor "Switch Source" button(aka multiple STDT support)
  • Added value type support to STDT editor
Change Log of Modset3

  • Added AIPD support.
  • Added AIEditor(You can edit )
  • Added STDT support
Change Log of Modset2

  • Added minor support for Offensive AI(I may change this name) node.You can export, replace, import them.
  • Various bugfixes (property grid error,collision previewer error,etc).
  • ATKD editing added.
Change Log of Modset1

  • Export All for chr0s
  • When you press up key on animation input box, value will increase 0.1, and the model will immediately reflects your input. Also, when you press up key+shift key, value will increase 1.0.
  • Export/Import srt0 entries. Import menu will appear when you right click on srt0 node.
  • All data in Scene node is editable now.
  • Minor ATKD support.
[/collapse]Developers/C# learners
Developers
  • Kryal
  • Bero
  • Hagelt18
  • Dantarion
  • pokelover980
  • VILE
C# learners
  • Black Star
  • Bionic
  • AMKalmar
  • NO@H
  • TheSilenceOfNoOne
  • JediKnightTemplar
  • tehshyguy
  • Super-Sonic

Links
C# reference


Advice
Most of it was just analyzing the formats in a hex editor.

  • First, find lengths and offsets. Then you can determine the size/parts of each data block.
  • Write out the data blocks in your code and understand how they link.
  • Determine the data type and length of each field. This part is usually easy, just keep an eye out for patterns and take note of similarities/differences between each record.
  • Use logic to determine field meanings. If the function of your data is understood this should be fairly easy.
  • Anything left can be manually hexed for SD/Gecko. With BBox you can even begin editing these fields without hexing (just build the wrapper).

You can get at least 50% of your data formats complete without hexing a single value. When I was working on this, I was using the SD/Gecko method to test field changes. I believe Dolphin Emu works with Brawl, which may be faster/easier.

When reverse engineering, there are three rules:
1. Patterns
2. Patterns
3. Cake! Wait... Patterns!


Information
I'm looking for a person who develops this in place of me.
 

Hozu

Smash Journeyman
Joined
Dec 11, 2009
Messages
347
#3
I just found out about this yesterday, but I'm glad you made another topic so other people can find out about this too. Excellent work with this.
 

Black Star

Smash Cadet
Joined
Jun 13, 2010
Messages
67
#4
Great work on the thread!
Kinda embarrassed but i haven't gotten to C# yet in my college classes. ^_^; And what is this about "TortoiseSVN"? I'm not really familiar with it. Is it required to download the code to modify it?
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
#5
Great work on the thread!
Kinda embarrassed but i haven't gotten to C# yet in my college classes. ^_^; And what is this about "TortoiseSVN"? I'm not really familiar with it. Is it required to download the code to modify it?
Yes, it is. You have to use it to download/upload codes.
use this URL to check out https://brawldev.googlecode.com/svn/trunk/ brawldev

By the way, may I add you to the list on first post?
 
Joined
Dec 29, 2009
Messages
1,817
Location
Somewhere in Texas
#9
Making programs like stage switcher is good.
Yeah but i need to learn C and such i have literally no experience when it comes to coding
The only things i know is XML
You should probably links to good programs to use and tutorials so people like me who want to learn have good places to start
 
Joined
Feb 6, 2009
Messages
803
Location
Kansas
#13
If I may make a suggestion (if this is even the thread for that), I think we need to figure out how to rig new (dummy) bones to the models, as it would increase hacking options immensely, one example being Toad, who has no finger bones, but can have them added as dummies, which do us no good until we can rig it to the model...

-or I could google it.

EDIT; Couldn't we somehow use 3DSMAX to rig the bones to a character, or is there a program we can use to rig them to the model?
 

thanyou

Smash Journeyman
Joined
Mar 8, 2009
Messages
371
Location
CA
#14
Don't forget to add Bionic to that list, he said that he'd be learning it in the brawlbox thread iirc.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
#15
If I may make a suggestion (if this is even the thread for that), I think we need to figure out how to rig new (dummy) bones to the models, as it would increase hacking options immensely, one example being Toad, who has no finger bones, but can have them added as dummies, which do us no good until we can rig it to the model...

-or I could google it.

EDIT; Couldn't we somehow use 3DSMAX to rig the bones to a character, or is there a program we can use to rig them to the model?
umm.. I don't know models so much that I can't edit them:(
I hope that another coder who knows model will appear. (I'm interested in AI now, so I will study it later even if I decide to do it.)
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
#17
Ill take a look at what you guys do now and then, and help a little every now and then :p
I heard that you thought Kryal's code was confusing.
Is it helpful to explain his codes here? I think you can understand his codes without my help though.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
#19
Would you tell error details?
That's strange because if there isn't that method, compiler will show errors about it.
 

ds22

Smash Lord
Joined
Aug 30, 2009
Messages
1,661
Location
Rotterdam, The Netherlands
#20
When I select any of the options of Import of a BRRES file (for example in the Common5.pac), it gives an error and won't continue.
For example, this:
Code:
System.MissingMethodException: Methode niet gevonden: BrawlLib.SSBB.ResourceNodes.BRESGroupNode BrawlLib.SSBB.ResourceNodes.BRESNode.GetOrCreateFolder().
   bij BrawlBox.BRESWrapper.ImportTexture()
   bij BrawlBox.BRESWrapper.ImportTextureAction(Object sender, EventArgs e)
   bij System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   bij System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   bij System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   bij System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   bij System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   bij System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   bij System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   bij System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   bij System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   bij System.Windows.Forms.Control.WndProc(Message& m)
   bij System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   bij System.Windows.Forms.ToolStrip.WndProc(Message& m)
   bij System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   bij System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bij System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bij System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
 

NO@H

Smash Journeyman
Joined
Jul 11, 2009
Messages
279
#21
I also want to report an error. I get an error saying that the memory is corrupt in the brawlbox modset when I preview some models in a stage I'm working on. I can't post a link to the stage though until friday when its finished, but its in smashville. Has anyone else had any troubles like this?
 

Hozu

Smash Journeyman
Joined
Dec 11, 2009
Messages
347
#22
I also want to report an error. I get an error saying that the memory is corrupt in the brawlbox modset when I preview some models in a stage I'm working on. I can't post a link to the stage though until friday when its finished, but its in smashville. Has anyone else had any troubles like this?
This has also happened to me when previewing the collision data in Smashville. I haven't tried with the original stage though.
 
Joined
Mar 10, 2009
Messages
887
Location
Hamilton ON CA
#25
More concise OP with better grammar as requested:
Open BrawlBox/Lib Development Thread

Official BrawlBox Thread

BrawlBox has become an essential tool for Brawl hacking. Kryal, the creator of BrawlBox, is taking a break and he won't be updating it until he returns. However, he left us its source. I decided I want to work together with other coders to improve BrawlBox and BrawlLib. Hopefully we will be able to help each other and learn from each other.

If you are interested in helping and are planning on learning C#, tell me and I'll add you to the list of programmers as a C# learner. Inform me of when you post codes for the first time. Leave comments in you code so that others can understand it more easily.

Downloads
(list of downloads)

Developers and C# learners
(list of users)

Links
Google Code-brawldev-
Post your codes here.
TortoiseSVN downloads | TortoiseSVN
You must use this to upload or download codes. More information on the site.
Visual C#
C# programming software.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
#26
OK, I realized the issue. You are using BrawlBox0.64 right?
I haven't made "BRESNode.GetOrCreateFolder" function. But there is a calling of function in BrawlBox0.64's source. Would you try BrawlBox0.63d instead of one that you are using now?

@AMKalmar
Thanks. Updated OP.
 
Joined
Oct 4, 2007
Messages
905
#30
I want to go through these tutorials. But I can't even get through the first one. How do I use csc.exe to compile .cs files in to .exe's? I'm running Windows XP through Parallels on a mac.
If you can't find/figure out how to use csc.exe I recommend you download an IDE with a built in compiler, specifically Microsoft Visual C# 2010.

Anyways, to use csc.exe, this page should help.
 
Joined
Mar 10, 2009
Messages
887
Location
Hamilton ON CA
#31
I have downloaded MS Visual C# 2010 Express, I have found csc.exe, and I found that site already. The Visual Studio Command Prompt that site mentions does not exist for me, and when I try to use command prompt, the directory with the cs file doesn't exist. I think the problem is that I'm using parallels... maybe.
 
Joined
Oct 4, 2007
Messages
905
#32
I have downloaded MS Visual C# 2010 Express, I have found csc.exe, and I found that site already. The Visual Studio Command Prompt that site mentions does not exist for me, and when I try to use command prompt, the directory with the cs file doesn't exist. I think the problem is that I'm using parallels... maybe.
If you have C# Express then you don't need to use the csc.exe compiler, it has a built in one you can use.
 

Hozu

Smash Journeyman
Joined
Dec 11, 2009
Messages
347
#33
I'm glad to hear that:bee:
Was model previewing bug fixed, NO@H, Hozu?
Wait, when did you fix that?

I'm getting errors when I edit lighting data. It may be because I don't know anything about it, but when I change some of the unknown values it says that The key is not found in the dictionary or something like that. Also, you can't export individual items in the SceneData because it says they the original file has been altered.
 
Joined
Oct 4, 2007
Messages
905
#36
Oh, that deceitful tutorial. It led me to believe I need to compile exe files manually.
That's what I thought at first, but then I thought, "Hey, wait, if this is anything like Visual Basic it has a built in compiler!" Lo and behold, I checked, and there it was :D
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
#37
Wait, when did you fix that?

I'm getting errors when I edit lighting data. It may be because I don't know anything about it, but when I change some of the unknown values it says that The key is not found in the dictionary or something like that. Also, you can't export individual items in the SceneData because it says they the original file has been altered.
http://www.mediafire.com/download.php?mqitmzzoydi

Because I couldn't find any bugs in the program, I disabled srt0 importing method.
If you don't mind, it's good to give me the file that BrawlBox returned error.
Sorry for inconvenient.
I have to say there are some exceptions that I can't fix.
They don't follow rules that is unique in each filetype. But it may be possible to fix that issue if you give me the file.
 
Top