• 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!

Brawl Game Script (REL) Editor (development)

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
well...

seeing as dant won't be helping me out from now on...
I guess all I can do is get help from PW...

so lets get something started shall we
first off:
I need the src for your viewer
or you could just info on how the 32bit hex structures work...

and that was the other thing I wanted to ask for...
what does the rel header consist of, and what do the bytes do??

I've haulted on learning asm because I can do the same things in hex... somewhat...
it's simpler to do the math, then output the result in 32bit hex
instead of having to write down the math the processor has to do...

once I can decipher the byte structures, I'll have a good idea of how to build an editor...

but there's just one last thing I don't know yet...
(kinof a bunch of things that leads to a main portion)

would I need to include the hex data (between the strings) when editing the strings??
(since they're just offsets)
or would that just be delt with by the editor??

I believe the hex above the strings is set to relocate to specific parts in brawl based on the class structure that's called from the logic or module action...
the relocation table (I believe) just links the hex with the strings...

am I wrong about anything on my thoughts PW??
(doing some needed back-checks)
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
kk...
nvm on the src >:3

I'm looking at it and I figured out the header...
I'll start taking notes on it...

I'll be posting what I find here, so jsyk

(I may end up with like 50 posts or so)
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
here's what is known so far:
0×00 – file ID
0×04 – function constructor
0×08 – function destructor
0x0C – func get src
0×10 – in constructor List
0×11 – in destructor List
0×12 – in src List
0×13 – in Last
0×14 – memory List Count
0×18 – memory List offset
0x1C – Next Entry
0×20 – Prev Entry
0×24 – rel data
0×28 – rel data self
0x2C – rel List Offset
0×30 – rel List Size
0×34 – rnd Check 1
0×38 – rnd Check 2
0×40 – tag ’00 00 00 20′
0×44 – Unk1 ’00 00 00 08′
0×48 – Unk2
0x4C – Unk3

nothing new yet...
but I'm on it :p
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
Just to make this clear, this is pretty much copypasta'd from module editor source code
yea and...
_________________
on the other side:

sry I havn't found anything yet,
I've been working on the mdl0 end and just skimming across this a few times...


@Dant:
is there any info you know of that you could just tell me and make my job easier?? :/

I mean:
why waste the time just looking when the info that's found out can just be passed on so people can make new discoveries until a job's complete...
(I hope you get what I mean by that)
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
KK
I will

btw,
what prog was used to get the dat files out of that rel??
soraMenuEvent or something like that

and 1 last thing (regarding strings):
what does the 'so' stand for in 'soKineticEnergyHolder'??

I know 'ft' = fighter, and 'wn' = weapon
I have those posted on my old site >_>
 

ds22

Smash Lord
Joined
Aug 30, 2009
Messages
1,662
Location
Rotterdam, The Netherlands
Anyway, I have theory about how articles are loaded by the modules.

One theory is that it loads along with the moveset, which should mean that it could be patched to work (the articles probably having different ID's than the movesets).

Another theory is that it loads only when a specific module is loaded.
Examples: Lucario's Aura sphere only loading when ft_lucario.rel is loaded or Ike Aether sword only loading when ft_ike.rel is loaded.

The first theory would be easy, the second most likely not.
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
Code:
ftClassInfo
ftCaptainExtendParamAccesser
ftExtendParamAccesserEx<3999, 36, 23999, 1>
ftExtendParamAccesser
ftFighterBuilder<ftCaptainBuildConfig>
soArticleMediatorImpl<
    soTypeList<
        soInstancePoolInfo<
            wnCaptainBlueFalcon, 1, wnInstanceHolder, soIntToType<0>
        >, 
        soTypeList<
            soInstancePoolInfo<
                wnCaptainFinalBg, 1, wnInstanceHolder, soIntToType<1>
            >,
            soTypeListNullType
        >
    >, 
    soTypeList<
        soArticleMediatorAssignmentInfo<
            ftCaptain, soArticleMediatorAssignmentNull
        >,
        soTypeList<
            soArticleMediatorAssignmentInfo<
                ftCaptain, soArticleMediatorAssignmentNull
            >, 
            soTypeListNullType
        >
    >, 
    soKindInfoGeneric<0, 9>,
    soTypeListNullType
>
soLineHierarchy<
    soTypeList<
        soInstancePoolInfo<
            wnCaptainBlueFalcon, 1, wnInstanceHolder, soIntToType<0>
        >, 
        soTypeList<
            soInstancePoolInfo<
                wnCaptainFinalBg, 1, wnInstanceHolder, soIntToType<1>
            >, 
            soTypeListNullType
        >
    >, 
    soInstancePool, soInstancePoolRoot, soKindInfoGeneric<0, 9>, 
    0
>
soInstancePool<
    soInstancePoolInfo<
        wnCaptainBlueFalcon, 1, wnInstanceHolder, soIntToType<0>
    >, 
    soLineHierarchy<
        soTypeList<
            soInstancePoolInfo<
                wnCaptainFinalBg, 1, wnInstanceHolder, soIntToType<1>
            >, soTypeListNullType
        >, 
        soInstancePool, soInstancePoolRoot, soKindInfoGeneric<0, 9>, 
        1
    >, 
    soKindInfoGeneric<0, 9>, 
    0
>
soInstancePoolSub<
    soInstancePoolInfo<
        wnCaptainBlueFalcon, 1, wnInstanceHolder, soIntToType<0>
    >, 
    soKindInfoGeneric<0, 9>
>
wnInstanceHolder<
    wnCaptainBlueFalcon, soKindInfoGeneric<0, 9>, 
    soIntToType<0>
>
soLineHierarchy<
    soTypeList<
        soInstancePoolInfo<
            wnCaptainFinalBg, 1, wnInstanceHolder, soIntToType<1>
        >, soTypeListNullType
    >, 
    soInstancePool, soInstancePoolRoot, soKindInfoGeneric<0, 9>, 
    1
>
soInstancePool<
    soInstancePoolInfo<
        wnCaptainFinalBg, 1, wnInstanceHolder, soIntToType<1>
    >, 
    soInstancePoolRoot, soKindInfoGeneric<0, 9>, 
    1
>
soInstancePoolSub<
    soInstancePoolInfo<
        wnCaptainFinalBg, 1, wnInstanceHolder, soIntToType<1>
    >, 
    soKindInfoGeneric<0, 9>
>
wnInstanceHolder<
    wnCaptainFinalBg, soKindInfoGeneric<0, 9>, 
    soIntToType<1>
>
ftSound3dGeneratorAccesserImpl
ftVirtualNodeMatrixPoolImpl
ftVirtualNodeMatrixPool
ftStatusGimmickUniqProcessPoolImpl
ftStatusGimmickUniqProcessPool
ftAreaModuleImpl
soAreaModuleImpl
gfAreaEventReciver
soAreaModule
soSound3dGeneratorAccesser
Weapon
soParamAccesser
soKineticEnergy
soSuspendable
soInstancePoolRoot
soGeneralWorkSimple
soGeneralWorkAbstract
Fighter
soTurnEventObserver
soEventObserver<soTurnEventObserver>
soEnable
soMotionEventObserver
soEventObserver<soMotionEventObserver>
soKineticMediator
soItemManageEventObserver
soEventObserver<soItemManageEventObserver>
soArticle
soEventPresenter<soArticleEventObserver>
soArticleMediator
soArticleOperator
soArticleGenerator
soAnimCmdAddressPackArraySeparate
soArrayFixed<soAnimCmdAddressPackConv>
soStatusEventObserver
soEventObserver<soStatusEventObserver>
soCollisionSearchEventObserver
soEventObserver<soCollisionSearchEventObserver>
soCollisionAbsorberEventObserver
soEventObserver<soCollisionAbsorberEventObserver>
soCollisionReflectorEventObserver
soEventObserver<soCollisionReflectorEventObserver>
soCollisionShieldEventObserver
soEventObserver<soCollisionShieldEventObserver>
soCollisionHitEventObserver
soEventObserver<soCollisionHitEventObserver>
soCollisionAttackEventObserver
soEventObserver<soCollisionAttackEventObserver>
soCaptureEventObserver
soEventObserver<soCaptureEventObserver>
soSituationEventObserver
soEventObserver<soSituationEventObserver>
ftEntryEventObserver
soEventObserver<ftEntryEventObserver>
soDamageEventObserver
soEventObserver<soDamageEventObserver>
ftResourceIdAccesserImpl
soResourceIdAccesser
soEventUnitWrapper<soAnimCmdEventObserver>
soEventPresenter<soAnimCmdEventObserver>
soEventUnit
StageObject
soLinkEventObserver
soEventObserver<soLinkEventObserver>
soAnimCmdEventObserver
soEventObserver<soAnimCmdEventObserver>
soNullable
soNullableInterface
gfTask
soKineticMediatorImpl<
    soTypeList<
        soInstancePoolInfo<
            ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
        >, 
        soTypeList<
            soInstancePoolInfo<
                ftKineticEnergyGravity, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<1, 1>
            >, 
            soTypeList<
                soInstancePoolInfo<
                    ftKineticEnergyController, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<2, 1>
                >, 
                soTypeList<
                    soInstancePoolInfo<
                        ftKineticEnergyStop, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<3, 1>
                    >, 
                    soTypeList<
                        soInstancePoolInfo<
                            ftKineticEnergyDamage, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<4, 2>
                        >, 
                        soTypeList<
                            soInstancePoolInfo<
                                soKineticEnergyWindNormal, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<5, 4>
                            >, 
                            soTypeList<
                                soInstancePoolInfo<
                                    soKineticEnergyGroundMovement, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<6, 8>
                                >, 
                                soTypeList<
                                    soInstancePoolInfo<
                                        soKineticEnergyJostle, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<7, 4>
                                    >, 
                                    soTypeListNullType
                                >
                            >
                        >
                    >
                >
            >
        >
    >, 
    soKineticTransactorInfo<
        ftCaptainKineticTransactor, ftCaptainKineticTransactor, ftKineticTransactor, ftKineticTransactHelper
    >
>
soLineInvertHierarchy<
    soTypeList<
        soInstancePoolInfo<
            ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
        >, 
        soTypeList<
            soInstancePoolInfo<
                ftKineticEnergyGravity, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<1, 1>
            >, 
            soTypeList<
                soInstancePoolInfo<
                    ftKineticEnergyController, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<2, 1>
                >, 
                soTypeList<
                    soInstancePoolInfo<
                        ftKineticEnergyStop, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<3, 1>
                    >, 
                    soTypeList<
                        soInstancePoolInfo<
                            ftKineticEnergyDamage, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<4, 2>
                        >, 
                        soTypeList<
                            soInstancePoolInfo<
                                soKineticEnergyWindNormal, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<5, 4>
                            >, 
                            soTypeList<
                                soInstancePoolInfo<
                                    soKineticEnergyGroundMovement, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<6, 8>
                                >, 
                                soTypeList<
                                    soInstancePoolInfo<
                                        soKineticEnergyJostle, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<7, 4>
                                    >, 
                                    soTypeListNullType
                                >
                            >
                        >
                    >
                >
            >
        >
    >, 
    soInstancePool, soInstancePoolRoot, soTypeListNullType, 7
>
soInstancePool< 
    soInstancePoolInfo<
        soKineticEnergyJostle, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<7, 4>
    >, 
    soLineInvertHierarchy<
        soTypeList<
            soInstancePoolInfo<
                ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
            >, 
            soTypeList<
                soInstancePoolInfo<
                    ftKineticEnergyGravity, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<1, 1>
                >, 
                soTypeList<
                    soInstancePoolInfo<
                        ftKineticEnergyController, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<2, 1>
                    >, 
                    soTypeList<
                        soInstancePoolInfo<
                            ftKineticEnergyStop, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<3, 1>
                        >, 
                        soTypeList<
                            soInstancePoolInfo<
                                ftKineticEnergyDamage, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<4, 2>
                            >, 
                            soTypeList<
                                soInstancePoolInfo<
                                    soKineticEnergyWindNormal, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<5, 4>
                                >, 
                                soTypeList<
                                    soInstancePoolInfo<
                                        soKineticEnergyGroundMovement, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<6, 8>
                                    >, 
                                    soTypeListNullType
                                >
                            >
                        >
                    >
                >
            >
        >, 
        soInstancePool, soInstancePoolRoot, soTypeListNullType, 6
    >, 
    soTypeListNullType, 7
>
soInstancePoolSub<
    soInstancePoolInfo<
        soKineticEnergyJostle, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<7, 4>
    >, 
    soTypeListNullType
>
soKineticEnergyHolder<
    soKineticEnergyJostle, soTypeListNullType, soKineticEnergyInitInfo<7, 4>
>
soLineInvertHierarchy<
    soTypeList<
        soInstancePoolInfo<
            ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
        >, 
        soTypeList<
            soInstancePoolInfo<
                ftKineticEnergyGravity, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<1, 1>
            >, 
            soTypeList<
                soInstancePoolInfo<
                    ftKineticEnergyController, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<2, 1>
                >, 
                soTypeList<
                    soInstancePoolInfo<
                        ftKineticEnergyStop, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<3, 1>
                    >, 
                    soTypeList<
                        soInstancePoolInfo<
                            ftKineticEnergyDamage, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<4, 2>
                        >, 
                        soTypeList<
                            soInstancePoolInfo<
                                soKineticEnergyWindNormal, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<5, 4>
                            >, 
                            soTypeList<
                                soInstancePoolInfo<
                                    soKineticEnergyGroundMovement, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<6, 8>
                                >, 
                                soTypeListNullType
                            >
                        >
                    >
                >
            >
        >
    >, 
    soInstancePool, soInstancePoolRoot, soTypeListNullType, 6
>
soInstancePool<
    soInstancePoolInfo<
        soKineticEnergyGroundMovement, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<6, 8>
    >, 
    soLineInvertHierarchy<
        soTypeList<
            soInstancePoolInfo<
                ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
            >, 
            soTypeList<
                soInstancePoolInfo<
                    ftKineticEnergyGravity, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<1, 1>
                >, 
                soTypeList<
                    soInstancePoolInfo<
                        ftKineticEnergyController, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<2, 1>
                    >, 
                    soTypeList<
                        soInstancePoolInfo<
                            ftKineticEnergyStop, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<3, 1>
                        >, 
                        soTypeList<
                            soInstancePoolInfo<
                                ftKineticEnergyDamage, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<4, 2>
                            >, 
                            soTypeList<
                                soInstancePoolInfo<
                                    soKineticEnergyWindNormal, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<5, 4>
                                >, 
                                soTypeListNullType
                            >
                        >
                    >
                >
            >
        >, 
        soInstancePool, soInstancePoolRoot, soTypeListNullType, 5
    >, 
    soTypeListNullType, 6
>
soInstancePoolSub< 
    soInstancePoolInfo<
        soKineticEnergyGroundMovement, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<6, 8>
    >, 
    soTypeListNullType
>
soKineticEnergyHolder<
    soKineticEnergyGroundMovement, soTypeListNullType, soKineticEnergyInitInfo<6, 8>
>
soLineInvertHierarchy<
    soTypeList<
        soInstancePoolInfo<
            ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
        >, 
        soTypeList<
            soInstancePoolInfo<
                ftKineticEnergyGravity, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<1, 1>
            >, 
            soTypeList<
                soInstancePoolInfo<
                    ftKineticEnergyController, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<2, 1>
                >, 
                soTypeList<
                    soInstancePoolInfo<
                        ftKineticEnergyStop, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<3, 1>
                    >, 
                    soTypeList<
                        soInstancePoolInfo<
                            ftKineticEnergyDamage, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<4, 2>
                        >, 
                        soTypeList<
                            soInstancePoolInfo<
                                soKineticEnergyWindNormal, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<5, 4>
                            >,
                            soTypeListNullType
                        >
                    >
                >
            >
        >
    >, 
    soInstancePool, soInstancePoolRoot, soTypeListNullType, 5
>
soInstancePool<
    soInstancePoolInfo<
        soKineticEnergyWindNormal, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<5, 4>
    >, 
    soLineInvertHierarchy<
        soTypeList<
            soInstancePoolInfo<
                ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
            >, 
            soTypeList<
                soInstancePoolInfo<
                    ftKineticEnergyGravity, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<1, 1>
                >, 
                soTypeList<
                    soInstancePoolInfo<
                        ftKineticEnergyController, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<2, 1>
                    >, 
                    soTypeList<
                        soInstancePoolInfo<
                            ftKineticEnergyStop, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<3, 1>
                        >, 
                        soTypeList<
                            soInstancePoolInfo<
                                ftKineticEnergyDamage, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<4, 2>
                            >, 
                            soTypeListNullType
                        >
                    >
                >
            >
        >, 
        soInstancePool, soInstancePoolRoot, soTypeListNullType, 4
    >, 
    soTypeListNullType, 5
>
soInstancePoolSub<
    soInstancePoolInfo<
        soKineticEnergyWindNormal, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<5, 4>
    >, 
    soTypeListNullType
>
soKineticEnergyHolder<
    soKineticEnergyWindNormal, soTypeListNullType, soKineticEnergyInitInfo<5, 4>
>
soLineInvertHierarchy<
    soTypeList<
        soInstancePoolInfo<
            ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
        >, 
        soTypeList<
            soInstancePoolInfo<
                ftKineticEnergyGravity, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<1, 1>
            >, 
            soTypeList<
                soInstancePoolInfo<
                    ftKineticEnergyController, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<2, 1>
                >, 
                soTypeList<
                    soInstancePoolInfo<
                        ftKineticEnergyStop, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<3, 1>
                    >, 
                    soTypeList<
                        soInstancePoolInfo<
                            ftKineticEnergyDamage, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<4, 2>
                        >, 
                        soTypeListNullType
                    >
                >
            >
        >
    >, 
    soInstancePool, soInstancePoolRoot, soTypeListNullType, 4
>
soInstancePool<
    soInstancePoolInfo<
        ftKineticEnergyDamage, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<4, 2>
    >, 
    soLineInvertHierarchy<
        soTypeList<
            soInstancePoolInfo<
                ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
            >, 
            soTypeList<
                soInstancePoolInfo<
                    ftKineticEnergyGravity, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<1, 1>
                >, 
                soTypeList<
                    soInstancePoolInfo<
                        ftKineticEnergyController, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<2, 1>
                    >, 
                    soTypeList<
                        soInstancePoolInfo<
                            ftKineticEnergyStop, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<3, 1>
                        >, 
                        soTypeListNullType
                    >
                >
            >
        >, 
        soInstancePool, soInstancePoolRoot, soTypeListNullType, 3
    >, 
    soTypeListNullType, 4
>
soInstancePoolSub<
    soInstancePoolInfo<
        ftKineticEnergyDamage, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<4, 2>
    >, 
    soTypeListNullType
>
soKineticEnergyHolder<
    ftKineticEnergyDamage, soTypeListNullType, soKineticEnergyInitInfo<4, 2>
>
soLineInvertHierarchy<
    soTypeList<
        soInstancePoolInfo<
            ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
        >, 
        soTypeList<
            soInstancePoolInfo<
                ftKineticEnergyGravity, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<1, 1>
            >, 
            soTypeList<
                soInstancePoolInfo<
                    ftKineticEnergyController, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<2, 1>
                >, 
                soTypeList<
                    soInstancePoolInfo<
                        ftKineticEnergyStop, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<3, 1>
                    >, 
                    soTypeListNullType
                >
            >
        >
    >, 
    soInstancePool, soInstancePoolRoot, soTypeListNullType, 3
>
soInstancePool<
    soInstancePoolInfo<
        ftKineticEnergyStop, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<3, 1>
    >, 
    soLineInvertHierarchy<
        soTypeList<
            soInstancePoolInfo<
                ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
            >, 
            soTypeList<
                soInstancePoolInfo<
                    ftKineticEnergyGravity, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<1, 1>
                >, 
                soTypeList<
                    soInstancePoolInfo<
                        ftKineticEnergyController, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<2, 1>
                    >, 
                    soTypeListNullType
                >
            >
        >, 
        soInstancePool, soInstancePoolRoot, soTypeListNullType, 2
    >, 
    soTypeListNullType, 3
>
soInstancePoolSub<
    soInstancePoolInfo<
        ftKineticEnergyStop, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<3, 1>
    >, 
    soTypeListNullType
>
soKineticEnergyHolder<
    ftKineticEnergyStop, soTypeListNullType, soKineticEnergyInitInfo<3, 1>
>
soLineInvertHierarchy<
    soTypeList<
        soInstancePoolInfo<
            ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
        >, 
        soTypeList<
            soInstancePoolInfo<
                ftKineticEnergyGravity, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<1, 1>
            >, 
            soTypeList<
                soInstancePoolInfo<
                    ftKineticEnergyController, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<2, 1>
                >, 
                soTypeListNullType
            >
        >
    >, 
    soInstancePool, soInstancePoolRoot, soTypeListNullType, 2
>
soInstancePool<
    soInstancePoolInfo<
        ftKineticEnergyController, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<2, 1>
    >, 
    soLineInvertHierarchy<
        soTypeList<
            soInstancePoolInfo<
                ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
            >, 
            soTypeList<
                soInstancePoolInfo<
                    ftKineticEnergyGravity, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<1, 1>
                >, 
                soTypeListNullType
            >
        >, 
        soInstancePool, soInstancePoolRoot, soTypeListNullType, 1
    >, 
    soTypeListNullType, 2
>
soInstancePoolSub<
    soInstancePoolInfo<
        ftKineticEnergyController, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<2, 1>
    >, 
    soTypeListNullType
>
soKineticEnergyHolder<
    ftKineticEnergyController, soTypeListNullType, soKineticEnergyInitInfo<2, 1>
>
soLineInvertHierarchy<
    soTypeList<
        soInstancePoolInfo<
            ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
        >, 
        soTypeList<
            soInstancePoolInfo<
                ftKineticEnergyGravity, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<1, 1>
            >, 
            soTypeListNullType
        >
    >, 
    soInstancePool, soInstancePoolRoot, soTypeListNullType, 1
>
soInstancePool<
    soInstancePoolInfo<
        ftKineticEnergyGravity, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<1, 1>
    >, 
    soLineInvertHierarchy<
        soTypeList<
            soInstancePoolInfo<
                ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
            >, 
            soTypeListNullType
        >, 
        soInstancePool, soInstancePoolRoot, soTypeListNullType, 0
    >, 
    soTypeListNullType, 1
>
soInstancePoolSub<
    soInstancePoolInfo<
        ftKineticEnergyGravity, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<1, 1>
    >, 
    soTypeListNullType
>
soKineticEnergyHolder<
    ftKineticEnergyGravity, soTypeListNullType, soKineticEnergyInitInfo<1, 1>
>
soLineInvertHierarchy<
    soTypeList<
        soInstancePoolInfo<
            ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
        >, 
        soTypeListNullType
    >, 
    soInstancePool, soInstancePoolRoot, soTypeListNullType, 0
>
soInstancePool<
    soInstancePoolInfo<
        ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
    >, 
    soInstancePoolRoot, soTypeListNullType, 0
>
soInstancePoolSub<
    soInstancePoolInfo<
        ftKineticEnergyMotion, 1, soKineticEnergyHolder, soKineticEnergyInitInfo<0, 1>
    >, 
    soTypeListNullType
>
soKineticEnergyHolder<
    ftKineticEnergyMotion, soTypeListNullType, soKineticEnergyInitInfo<0, 1>
>
wnCaptainFinalBg
wnWeaponBuilder<wnCaptainFinalBgModuleAccesserBuildConfig>
wnCaptainBlueFalcon
wnWeaponBuilder<wnCaptainBlueFalconModuleAccesserBuildConfig>
ftKineticEnergyDamage
ftKineticEnergyStop
soKineticEnergyNormal
ftClassInfoImpl<9, ftCaptain>
ftKineticEnergyController
ftKineticEnergyGravity
ftCaptainStatusUniqProcessFalconKnuckle
soStatusUniqProcess
ftCaptainStatusUniqProcessFalconKickEnd
ftCaptainStatusUniqProcessFalconKick
ftKineticEnergyMotion
ftCaptainStatusUniqProcessSpecialHi
ftCaptainStatusUniqProcessSpecialHiCling
ftCaptainStatusUniqProcessSpecialHiThrow
HipN
ftCaptainStatusUniqProcessFinalMessageHandler
ftCaptainStatusUniqProcessFinalEnd
ftCaptainStatusUniqProcessFinalScene03
ftCaptainStatusUniqProcessFinalScene02
ftCaptainStatusUniqProcessFinalScene01
ftCaptainStatusUniqProcessFinalRide
ftCaptainStatusUniqProcessFinalStart
stOperatorDropItemMelee
StOperatorDropItemEvent
CaptainBlueFalcon
wnCaptainBlueFalconParamAccesser
wnExtendParamAccesser<3999, 1, 23999, 0, 0, 0>
soParamCustomizeModuleImpl
soParamCustomizeModule
soArticleMediatorNull
soKineticMediatorNull
soTeamImpl
soResourceIdAccesserImpl
soTeam
IpNull
Input
CaptainFinalBg
wnCaptainFinalBgParamAccesser
mo_fighter.cpp
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
Anyway, I have theory about how articles are loaded by the modules.

One theory is that it loads along with the moveset, which should mean that it could be patched to work (the articles probably having different ID's than the movesets).

Another theory is that it loads only when a specific module is loaded.
Examples: Lucario's Aura sphere only loading when ft_lucario.rel is loaded or Ike Aether sword only loading when ft_ike.rel is loaded.

The first theory would be easy, the second most likely not.
actually...
I've just gotton an idea...

I've seperated the script in C-Falcon's rel
I noticed there were differant types (as the script below shows)
I think the types listed in the script also play along with the logic...

can you check the logic in PSA and see if you can't match anything with the script below??
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
Do what now in PSA?
sry... :p
mind spiraling out of control...

umm...
compair the numbers in PSA with the numbers in the script.
(see if it matches)

note: that's CF btw

EDIT:
I'd do it myself,
but I've nvr used PSA...

IDK what anything is, let alone how it works...

and before you direct me to the documentation thread,
I've already saved it.

I still don't fully understand the concept of it...
maybe I just need practise :/
 

ds22

Smash Lord
Joined
Aug 30, 2009
Messages
1,662
Location
Rotterdam, The Netherlands
No idea how I would be able to check that...
EDIT: Captain Falcon has 3 articles, which are his Blue Falcon in his entry, his Final Smash Blue Falcon plus scene and a dummy article.
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
No idea how I would be able to check that...
well I know the #'s in PSA relate to the certain attack instances in the logic...

I think the script I posted references those #'s...

I mean:
soTypeList<0, 1>
soTypeList<0, 2>
soTypeList<1, 3>
soTypeList<2, 4>
etc...
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
*facepalm*
are you reading the code at all??
can you understand the code?? :/

I gave you pretty much what to do...
the numbers in soTypeList<> are attack articles, I believe...

you'd (I assume) know the differant attack types and such...
but yea...

all I'm asking is to see where those numbers match in the script (if there are any)
 

ds22

Smash Lord
Joined
Aug 30, 2009
Messages
1,662
Location
Rotterdam, The Netherlands
Do you even know PSA?
There aren't any numbers who look like the numbers in the code.
And in Tabuu, there are ParamNodes, but that's not what is looked for.
What I ask is in what for way articles are loaded in modules and how to patch that.
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
Do you even know PSA?
There aren't any numbers who look like the numbers in the code.
And in Tabuu, there are ParamNodes, but that's not what is looked for.
What I ask is in what for way articles are loaded in modules and how to patch that.
1: I did mention I've never used PSA (otherwise I'd've done the comparison)

2: I'm not that far in rel files yet, and am very limited on the use of my cpu )X<
but that is something I'd like to get to.

and KK
now I'm just left back at being stumped at the nums agan...
but I'll figure them out...
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
at this moment, no...
I'm having a hard time trying to read the code in C#...

maybe I'll export it in Delphi and try that...

C++ isn't an option sadly :(
but Delphi is similar from what I know :/

also...
I'd be better off using my cpu on the weekends...
I can't really use it on weekdays... for now :/
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
KK, I will

I'm deciphering the strings, so why not :/

^what I mean by that is:
how do you think the scripts were made??

I think they were just typed out in a script editor,
but compiled to a specific format when saved...
(similar to how C++ code gets compiled to exe files)

however,
exe's don't normally include so much string data,
unless it's referenced by the app.

I think it's a way to re-edit the file. :/

what's your idea on this??
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
that's what I'm going for :p

but really though, that's how I'm gonna make Melee-Brawl...

I NEED to figure these out :/
and I will if I have to...
(which I do)

I wanna get the src in Delphi, but I can't use my cpu until this weekend...
of if she leaves or goes to sleep >_>

my mommy has an addiction to taking away my cpu for doing something rediculously small >_>
it's outrageous >X(

EDIT:
WOOT ^_^

she's in bed :D

getting the src now >:3
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
So you can get back to work now.
And with setting, I mean something similar to this:
http://opensa.dantarion.com/wiki/Patching_Character_Modules

That supposed setting should be in between the middle to the end of the module.
yes, I'll get to work on it tonight

I'm gonna be seperating the strings while using that page you posted...

seeing if anything matches,
and if so, seeing what I can do to change it :)

I'll be looking at that page quite alot
thanx :D

nice work btw Dant :)
 

ds22

Smash Lord
Joined
Aug 30, 2009
Messages
1,662
Location
Rotterdam, The Netherlands
Ok then.

Anyway, I found something out.
Those patched module crashes occur when the patched character enter the stage, which could indicate that either articles are loaded very late or that there may be something else which causes these crashes.
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
that's another thing I wanted to ask about...

how do you know what leads to where exactly??

I have an idea, but I'm not really sure about it :/
could you clue me in a little??

eg: how did you know that particular hex was when the char entered the stage??
I guess maybe I just need to look into brawl a little more
to completely know about what leads where...
 

ds22

Smash Lord
Joined
Aug 30, 2009
Messages
1,662
Location
Rotterdam, The Netherlands
I know how to patch character modules over one another.
And seeing I can test that out, I see that when a patched character enters the stage in VS mode WITHOUT the origin character, the game crashes when the camera goes to the patched character even before it has the change to load the battle portrait and name.
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
I think I get what you're saying below...
even though it's not what I asked :p

anyways...
so you're basically saying that the patch is the replacment code for the particular files??

where the origin char is the char from the disk,
and the patched char is the one from the SD??

EDIT: (before posting)
now that I re-think myself...

I guess I (or someone else willing) would have to develope a code to change files from locations NOT reletive to the brawl locations,
but more to the location specified in the file offset...
(creating a map and such)

I've lost control of my mind again :p

I could ramble on for hours about ideas on how it works <:D
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
WOAH!!!
YES!!!
THANK YOU SO MUCH!

this file 'sora_melee.rel' is the one I've been looking for for god knows how long :D

thank you so much ds22 <3

just read the strings
they tell you what the file does :)

btw, this file contains the main directories for everthing else.

I might as well say this is the mother file...
even though it's not...

in any game that's made, there's usually a small accessor script that directs the main loop to the "mother" script.
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
oh btw...
I forget who it was that wanted to know what I knew about other files...

but yea, I've updated SBF with the Brawl and Melee info...
(I updated everything)

anyways here's the link:
http://tcll5850.webfreehosting.net/sbf.htm

let me know if you have trouble viewing the page...
it works best in IE8
(ActivX, DirectX, JS, and Compatibility view must be active or present)

EDIT:
I wrote the page for dummy's, so there's alot that's well known...
but there are a few file types I'd like to know about (posted there)
 
Top Bottom