Brawlbox Resources & History

Started by BlackJax96, December 14, 2010, 03:39:11 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Quote from: Tcll on June 09, 2011, 01:49:25 AM
IK what you mean...
I'm so freakin close to finishing it though DX

the farthest I've gotten it is to set the var to the value of the last button
(the button command initiates as the button is drawn)

I could prbly get away with using Radio buttons though >_>

meh...
I'm not worried about that now anyways...
everything else works:
0-reference and single-reference conversion
fixed the bug that required you to type the extension of the export file

up next is handling multiple files...

I'm more focused on the plugins atm
mainly GlobalTMP.py which is the heart of the conversion (the bottleneck)
^it contains functions that send and return formatted data the TMP ;)

Well, do me a favor and PM me some info on python programming. Like for first time beginners. If i can understand how to work with python commands and whatnot, MAYBE ill try and help out with yours. I figure, yea im 14, almost 15. However, if i can alrready understand half of the types of wii hacking and creating hacks, it shouldn't be too too much harder to learn python.
By the way, I think every active hacker in this forum could use less distractions.

Sorry but you are not allowed to view spoiler contents.


Join my website, Brawl Imports, a gathering place for importers!
http://brawlimports.proboards.com/index.cgi

Support Project Darkrai? Put the official Project Darkrai banner in your siggy!
[PICTURE REMOVED. Reason: Total signature pic size exceeds 695x200.]


currently working on the setTransform and getTransform functions...
these do almost the same exact thing as the Vector functions

but I'm also working on the Primitive functions as well :)

after this, I'm going to restructure my MDL0 and OBJ plugins... so yeh... I've got some work to do... :P





___________________________________________________________________________________________

Quote from: xxmasal22xx on June 09, 2011, 01:22:26 PM
Well, do me a favor and PM me some info on python programming. Like for first time beginners. If i can understand how to work with python commands and whatnot, MAYBE ill try and help out with yours. I figure, yea im 14, almost 15. However, if i can alrready understand half of the types of wii hacking and creating hacks, it shouldn't be too too much harder to learn python.
will do ;)

just gimme some time to find all of my resources (there's alot)


and BJ...
what you/Kryal call 'Shaders' are really 'Material Nodes'
stop confusing the freakin community dangit >:O

sometimes I feel like I'm the only one of the entire community that knows the 3D terms... T.T
is anyone else here a game developer that knows their crap?? ;_;


I have the Nodes documented here btw: :)
http://wiki.tockdom.de/index.php?title=MDL0_(File_Format)
^there's a resource for ya XX :)
BJ... you already know XD

EDIT:
don't use the link above...
use eternal's edit above this post :)

[spoiler]Quote: Friedslick6
you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
But the coolest part was that you didn't stop working on it despite that.

Quote: Internet Explorer
you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

quote: Greg
You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

Sadly we are not, though I am willing to take notes.

http://wiki.tockdom.de/index.php?title=MDL0_%28File_Format%29

Watch the URL please, or you will get complaints of the link being broken.

thanx eternal

I see that now XD
and I copied that directly from the URL

apparently the auto-parse didn't do it's job...
w/e... thanx again :)

[spoiler]Quote: Friedslick6
you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
But the coolest part was that you didn't stop working on it despite that.

Quote: Internet Explorer
you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

quote: Greg
You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

Alright, i will save EY's provided link for the future, provided i make it that far in order to use the info :laugh:


****EDIT****

If i use those values in a hex editor, and make all the layers, will i essentially create a blank MDL0 file? Jus wondering.
By the way, I think every active hacker in this forum could use less distractions.

Sorry but you are not allowed to view spoiler contents.


Join my website, Brawl Imports, a gathering place for importers!
http://brawlimports.proboards.com/index.cgi

Support Project Darkrai? Put the official Project Darkrai banner in your siggy!
[PICTURE REMOVED. Reason: Total signature pic size exceeds 695x200.]


completed a full transforms session 8)

>>> setWrite()
tmp set to write
>>> setTransform([[1.0,1.0,1.0],[1.0,1.0,1.0],[1.0,1.0,1.0]], 0,1,0)
Transforms logged successfully
>>> closeWrite()
tmp sucessfully closed
>>> setRead()
tmp set to read
>>> getTransform(0,1,0)
'vertices' Transform returned sucessfully
[['1.0', '1.0', '1.0'], ['1.0', '1.0', '1.0'], ['1.0', '1.0', '1.0']]

>>> closeRead()
tmp sucessfully closed
>>>







_______________________________________________________________________________________

Quote from: xxmasal22xx on June 09, 2011, 06:45:28 PM
Alright, i will save EY's provided link for the future, provided i make it that far in order to use the info :laugh:


****EDIT****

If i use those values in a hex editor, and make all the layers, will i essentially create a blank MDL0 file? Jus wondering.
meh... somewhat...

keep in mind there's still quite alot that isn't figured out about the MDL0...

small values that make the largest difference... heh

[spoiler]Quote: Friedslick6
you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
But the coolest part was that you didn't stop working on it despite that.

Quote: Internet Explorer
you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

quote: Greg
You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.


perfect test is perfect >D

>>>
>>> setRead()
tmp set to read
>>> applyTransforms( getVector(0,0,0,0) , getVector(0,1,0,0) )
'vertices' Vectors for object 0 returned sucessfully
'vertices' Transform vectors for object 0 returned sucessfully
[[3.0, 3.0, 3.0], [3.0, 3.0, 3.0]]

>>> closeRead()
tmp sucessfully closed
>>>


using the data from below,
I've built a simple function that does the work of applying the vectors and transforms for you :)

I'll later add functions that allow you to scale or flip a model, or scale parts of a model...
all kinds of nice helpful functions to better the methods of building plugins,
as well as give you more options directed toward converting files.

as always... the functions are documented twice ;)






_______________________________________________________________________________________

well, the function works, but only just...
it doesn't test the data it's reading to make sure it's the right data...
it only just reads the data assuming it's correct >_>
that would most likely only be about 70% accurate compaired to other things it may run across that would cause it to return an error even though the data is correct...

here's a session in it's current state:

>>>
>>> setWrite()
tmp set to write
>>> setVector([[1,1,1],[1,1,1]],0,0,0,0)
'vertices ' Vectors for object 0 logged successfully
>>> setVector([[2,2,2],[2,2,2]],0,1,0,0)
'vertices ' Transform vectors for object 0 logged successfully
>>> closeWrite()
tmp sucessfully closed
>>> setRead()
tmp set to read
>>> getVector(0,0,0,0)
'vertices' Vectors for object 0 returned sucessfully
[['1.0', '1.0', '1.0'], ['1.0', '1.0', '1.0']]

>>> getVector(0,1,0,0)
'vertices' Transform vectors for object 0 returned sucessfully
[['2.0', '2.0', '2.0'], ['2.0', '2.0', '2.0']]

>>> closeRead()
tmp sucessfully closed
>>>


again... this only just works...
there's no garuntee you won't get an error... :-\

EDIT:
this is the data as it looks in the TMP:
< vertices 0 1.0|1.0|1.0/1.0|1.0|1.0
< transform vertices 0 2.0|2.0|2.0/2.0|2.0|2.0

just so you get a better view of things ;)






_______________________________________________________________________________________

Quote from: dark sonic 19 on June 10, 2011, 01:14:45 AM
this may or may not help but i found this if you already have this im sorry
http://code.google.com/p/brawltools/source/browse/trunk/BrawlLib/SSBB/Types/MDL0.cs
yur ok :)
lotza people make that mistake XD
yes I do have it already :D



btw...
the transform functions I put in my last post...
they're useless now...

the vector functions control the transforms.
setVector( VectorList, VectorType, Transform, ObjectID, Channel )

the function will log 2 values as such:
setVector( [[1,1,1],[1,1,1]], 0, 0, 0, 0)
setVector( [[1,1,1],[1,1,1]], 0, 1, 0, 0)

the only difference between them is:
< vertices 0 1|1|1/1|1|1
< transform vertices 0 1|1|1/1|1|1

the values between the 2 are added to each other:
vert + trans = value

so now the vectors and transforms are all controlled by a single function 8)

[spoiler]Quote: Friedslick6
you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
But the coolest part was that you didn't stop working on it despite that.

Quote: Internet Explorer
you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

quote: Greg
You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

Quote from: Tcll on June 10, 2011, 04:33:08 AM
perfect test is perfect >D

>>>
>>> setRead()
tmp set to read
>>> applyTransforms( getVector(0,0,0,0) , getVector(0,1,0,0) )
'vertices' Vectors for object 0 returned sucessfully
'vertices' Transform vectors for object 0 returned sucessfully
[[3.0, 3.0, 3.0], [3.0, 3.0, 3.0]]

>>> closeRead()
tmp sucessfully closed
>>>


Sooo, if im learning anything from python, you just posted a function that would.....

Set itself up to read a file
Let you know if it is/isnt successful
Apply Trans values to the vectior(s)
Let you know if vector 1 was successful
Let you know if vector 2 was successful
Tell you the new vectors
close the file
Let you know if it closed successfully

Masal do Good?
By the way, I think every active hacker in this forum could use less distractions.

Sorry but you are not allowed to view spoiler contents.


Join my website, Brawl Imports, a gathering place for importers!
http://brawlimports.proboards.com/index.cgi

Support Project Darkrai? Put the official Project Darkrai banner in your siggy!
[PICTURE REMOVED. Reason: Total signature pic size exceeds 695x200.]


Quote from: xxmasal22xx on June 10, 2011, 09:59:23 AM
Masal do Good?
indeed you did :3

but 1 thing...
setTransform( Vector, Transform )
tells you the transformed vector

my getVector function does alot for a small function >_>
(0,0,0,0) is a vert vector applied to object 0 (channel 0 does not apply)
(0,1,0,0) is a vert transform applied to object 0
the last value is the channel, and is only applied to UV's
(2,0,1,0) would be a UV vector applied to object 1 on channel 0

although this is documented twice, I'm still telling you anyways :P


on another note, primitives are done:

session:
setPrimitives([[4,['1:1:1:::::::','1:1:1:::::::','1:1:1:::::::','1:1:1:::::::']],[2,['1:1:1:::::::','1:1:1:::::::','1:1:1:::::::']]],0)

TMP:
< faces 0 4;1:1:1:::::::|1:1:1:::::::|1:1:1:::::::|1:1:1:::::::/2;1:1:1:::::::|1:1:1:::::::|1:1:1:::::::

that's only the set function though...
now to build the get function

1Q...
should I merge the get and set functions for each object??

eg, instead of having to do:
setWrite()
setVector(list,0,0,0,0)
closeWrite()
setRead()
getVector(0,0,0,0)
closeRead()

simplify the function a bit and put:
setWrite()
Vector(1,list,0,0,0,0)
closeWrite()
setRead()
Vector(0,0,0,0,0)
closeRead()

where Vector(1,...) would be set and Vector(0,...)would be get...

should I do that??
or just leave it as it is?? :-\

[spoiler]Quote: Friedslick6
you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
But the coolest part was that you didn't stop working on it despite that.

Quote: Internet Explorer
you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

quote: Greg
You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

Quote from: Tcll on June 10, 2011, 01:37:31 PM
indeed you did :3

but 1 thing...
setTransform( Vector, Transform )
tells you the transformed vector

my getVector function does alot for a small function >_>
(0,0,0,0) is a vert vector applied to object 0 (channel 0 does not apply)
(0,1,0,0) is a vert transform applied to object 0
the last value is the channel, and is only applied to UV's
(2,0,1,0) would be a UV vector applied to object 1 on channel 0

although this is documented twice, I'm still telling you anyways :P


on another note, primitives are done:

session:
setPrimitives([[4,['1:1:1:::::::','1:1:1:::::::','1:1:1:::::::','1:1:1:::::::']],[2,['1:1:1:::::::','1:1:1:::::::','1:1:1:::::::']]],0)

TMP:
< faces 0 4;1:1:1:::::::|1:1:1:::::::|1:1:1:::::::|1:1:1:::::::/2;1:1:1:::::::|1:1:1:::::::|1:1:1:::::::

that's only the set function though...
now to build the get function

1Q...
should I merge the get and set functions for each object??

eg, instead of having to do:
setWrite()
setVector(list,0,0,0,0)
closeWrite()
setRead()
getVector(0,0,0,0)
closeRead()

simplify the function a bit and put:
setWrite()
Vector(1,list,0,0,0,0)
closeWrite()
setRead()
Vector(0,0,0,0,0)
closeRead()

where Vector(1,...) would be set and Vector(0,...)would be get...

should I do that??
or just leave it as it is?? :-\

What's with all of the :'s here? --> ['1:1:1:::::::','1:1:1:::::::','1:1:1:::::::']]],0)


As for your question, what difference would it make in the final program?
By the way, I think every active hacker in this forum could use less distractions.

Sorry but you are not allowed to view spoiler contents.


Join my website, Brawl Imports, a gathering place for importers!
http://brawlimports.proboards.com/index.cgi

Support Project Darkrai? Put the official Project Darkrai banner in your siggy!
[PICTURE REMOVED. Reason: Total signature pic size exceeds 695x200.]


Vertex, Normal, UV0, UV1, UV2, UV3, UV4, UV5, UV6, UV7 = getFacepoint('1:1:1:::::::')
('1', '1', '1', '', '', '', '', '', '', '')

anyways... the only difference would be a single function doing the work instead of 2 functions...
but meh... either way, they're kinda the same...

that's why I ask for your opinions :)

[spoiler]Quote: Friedslick6
you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
But the coolest part was that you didn't stop working on it despite that.

Quote: Internet Explorer
you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

quote: Greg
You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

Quote from: Tcll on June 10, 2011, 07:50:05 PM
Vertex, Normal, UV0, UV1, UV2, UV3, UV4, UV5, UV6, UV7 = getFacepoint('1:1:1:::::::')
('1', '1', '1', '', '', '', '', '', '', '')

anyways... the only difference would be a single function doing the work instead of 2 functions...
but meh... either way, they're kinda the same...

that's why I ask for your opinions :)

Ah, i c.

IMO, make it single-function. That way there's less of a chance for it to get caught up on itself.
By the way, I think every active hacker in this forum could use less distractions.

Sorry but you are not allowed to view spoiler contents.


Join my website, Brawl Imports, a gathering place for importers!
http://brawlimports.proboards.com/index.cgi

Support Project Darkrai? Put the official Project Darkrai banner in your siggy!
[PICTURE REMOVED. Reason: Total signature pic size exceeds 695x200.]


hey guys...

first off I've got so many ideas going through my head, it ain't funny :|

you guys arn't gonna use the setVector,setPrivitive, and all those functions...
I'm defining functions to handle those for you...
(allowing you do do alot while only providing minimal data)

a simple modification to my vector code will allow me to apply the UV channels using a list...
^instead of having to set the channels manually ;)
the only problem is you'll have to decipher a long list...
but I'm gonna work on functions that will do the hard stuff for you ;)

actually, I just had a moment of re-thought... heh
it'll be seperate lists for an object that will be returned...

meaning you won't have to decipher a long list ;)

yes I'm talking about objects and the vectors/primitives applied to them
handling those will be alot easier :D

EDIT:
just rethought as to why I had the channel listed...
it's so you could return the individual vector for modifications... heh

guess I'll have top do what I need in the setObject function :P







_______________________________________________________________________________________

haw:

>>> setPrimitives([[4, [['1', '1', '1', '', '', '', '', '', '', ''], ['1', '1', '1', '', '', '', '', '', '', ''], ['1', '1', '1', '', '', '', '', '', '', ''], ['1', '1', '1', '', '', '', '', '', '', '']]], [2, [['1', '1', '1', '', '', '', '', '', '', ''], ['1', '1', '1', '', '', '', '', '', '', ''], ['1', '1', '1', '', '', '', '', '', '', '']]]],1)
Primitives for object 1 logged successfully
>>> closeWrite()
tmp sucessfully closed
>>> setRead()
tmp set to read
>>> getPrimitives(1)
[[4, [['1', '1', '1', '', '', '', '', '', '', ''], ['1', '1', '1', '', '', '', '', '', '', ''], ['1', '1', '1', '', '', '', '', '', '', ''], ['1', '1', '1', '', '', '', '', '', '', '']]], [2, [['1', '1', '1', '', '', '', '', '', '', ''], ['1', '1', '1', '', '', '', '', '', '', ''], ['1', '1', '1', '', '', '', '', '', '', '']]]]
>>>

got the same list I submitted >:)
over time, I may get rid of the need for the setRead, SetWrite, closeRead, and closeWrite functions

just only set the use of the direct functions for ya ;)

tbh... the list was harder to decipher than it was to build >_>
(in my plugin)

luckily you won't have to worry about that ;)
I'm talking about deciphering from this data:
< faces 1 4;1:1:1:::::::|1:1:1:::::::|1:1:1:::::::|1:1:1:::::::/2;1:1:1:::::::|1:1:1:::::::|1:1:1:::::::

so yea...
it's easier to handle in list form... heh






_______________________________________________________________________________________

well, here's a test before implementing the function:

>>> getFacepoint('1:1:1:::::::')
['1', '1', '1', '', '', '', '', '', '', '']
>>> setFacepoint( [1, 1, 1, '','','','','','',''] )
'1:1:1:::::::'
>>> setFacepoint( ['1', '1', '1', '','','','','','',''] )
'1:1:1:::::::'

I was having a problem getting setFacepoint to be that flexable...
but that function will be useless in a bit ;)

I'll give an example showing how to submit the data in a bit :)
(long list will be long)

EDIT:
here's the example:

>>> getPrimitives(0)
[[4, [['1', '1', '1', '', '', '', '', '', '', ''], ['1', '1', '1', '', '', '', '', '', '', ''], ['1', '1', '1', '', '', '', '', '', '', ''], ['1', '1', '1', '', '', '', '', '', '', '']]], [2, [['1', '1', '1', '', '', '', '', '', '', ''], ['1', '1', '1', '', '', '', '', '', '', ''], ['1', '1', '1', '', '', '', '', '', '', '']]]]

so getPrimitives is now done...
now I just need to get setPrimitives working properly...
(shouldn't be too hard ;)

EDIT2:
here's that same list... just made easier to read is all:
[
[4, [ ['1','1','1','','','','','','',''],['1','1','1','','','','','','',''],['1','1','1','','','','','','',''],['1','1','1','','','','','','',''] ]]
,
[2, [ ['1','1','1','','','','','','',''],['1','1','1','','','','','','',''],['1','1','1','','','','','','',''] ]]
]






_______________________________________________________________________________________

well, I'm tired and don't feel like stating too much...
I'll just let you guess and I'll look at it tomorrow -.-

anyways:

>>> getPrimitives(0)
[[4, ['1:1:1:::::::', '1:1:1:::::::', '1:1:1:::::::', '1:1:1:::::::']], [2, ['1:1:1:::::::', '1:1:1:::::::', '1:1:1:::::::']]]
>>>

the blue is what the function returns btw...

I'll prbly implement the facepoint function later on...
just so you don't have to deal with all that :::::: crap...
that's just TMP formatting

actually, I will implement that... tomorrow though -.-*






_______________________________________________________________________________________

Quote from: xxmasal22xx on June 10, 2011, 07:54:07 PM
Ah, i c.

IMO, make it single-function. That way there's less of a chance for it to get caught up on itself.
actually...
I just noticed... there's something I overlooked
2 functions is really as good as it gets...

one for writing the data
the other for reading...

what I overlooked:

Vector(1,list,0,0,0,0)
Vector(0,      0,0,0,0)

notice anything missing... heh

I could apply a useless value for the list when reading and use the function as that...

[spoiler]Quote: Friedslick6
you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
But the coolest part was that you didn't stop working on it despite that.

Quote: Internet Explorer
you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

quote: Greg
You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

Wow, that's a lot of edits. I should bump the thread so you can make another post. :P

You look like you've made a lot of progress though. Keep up the good work!