Home Gallery Resources The Team Rules chat Login Register
Pages:  1 ... 11 12 13 [14] 15 16 17 ... 28
Author Topic: Let's look into Module Fíles (.rel) - Defensive Collision is now!  (Read 168823 times)
0 Members and 1 Guest are viewing this topic.
pikazz
Heroic Kitten
**
Offline Offline

Posts: 2286


Machinimator!

  • Awards Renowned Hacker Pin Collector Good Citizen Helping Hand

  • View Profile Awards
    « Reply #195 on: January 09, 2013, 01:47:19 AM »


    I see it now! will start to look and test things in there.
    I have a theory about those StatusUniqProgress! I believe some of them are loading attributes from the FitChar.pac like the special attributes "how fast movement in X" or "how many frames before X is done loading"

    also, it's inside Method[0][1]

    this is the link bomb item! Li r3 85
    but I dont know how it's get called to links B-Down Action, perhaps through FitLinkStatusUniqProgressSpecialBomb?

    EDIT: I did look a bit in those, it was quite a mess :/
    some SpecialUniqProgress has actions thats "do this actions first, if the animation is end do this one" while some doesn't have any actions at all (they maybe are wellhidden or using Float/Bit/Random Variables instead)

    I believe that you said about Method[1-3] is true, but it seems that some also using method[7]. jigglypuffs final smash specialuniqprogress used Method[7], when I edited something in that method[7], I got a forever growing jigglypuff without an end on his final smash Im srs here

    also, links Wait SpecialUniqProgress has it's [1] and [3] located at the same hexbyte O.o meaning they do exactly the same.
    haven't looked into the initialieser yet but I will soon

    there is one thing that gets me confused:

    Example:
    soStatusModuleImpl (0x70)
    Method[3] SetAction (r3=this, r4=value, r5=soModuleAccessor)
    Method[16] GetAction (r3=this)

    what exactly did you mean with those methods? O.o inside each objects that's using soStatusModuleImpl or anything else?
    « Last Edit: January 09, 2013, 07:20:58 AM by pikazz » Logged

    Stupid Tinypic :C

    PhantomWings
    Mega Kitten
    *****
    Offline Offline

    Posts: 167

  • Awards Super Saiyan Topic Featured

  • View Profile Awards
    « Reply #196 on: January 09, 2013, 05:18:32 PM »


    The soStatusModuleImpl is an object that is found within the instantiated fighter object at runtime. You can actually see the definition for it in the sora_melee module:

    (I guess I should have mentioned that I've documented known methods using single index values because it's difficult to determine the method offset using two index values.)


    There's not much point in analyzing the declaration itself unless you want to understand what a particular function does. The real power instead lies in being able to know what function is being called by a given chunk of assembly code. Knowing the broader implications of a function call can go a long way in understanding what that particular chunk of code does.



    As for the soArticleMediatorImpl objects, here's what I've found out so far:

    soArticleMediatorImpl:
    Method[0][0] finalizer (r3=this, r4=size)
    Method[0][1] create_article (r3=this, r4=article_id, r5=Fighter.soModuleAccessor)
    Method[1][0] soArticleOperator_Method[0][0]_thunk
    Method[1][1] soArticleOperator_Method[1][8]_thunk
    Method[1][2] clear_article_instances? (r3=this)
    Method[1][3] unk (r3=this, r4=Fighter.soModuleAccessor, r5=article_id)
    Method[1][4] unk (r3=this, r4=Fighter.soModuleAccessor, r5=article_id)
    Method[1][5] unk (r3=this, r4=article_id)
    Method[1][6] get_article_count (r3=this)
    Method[1][7] unk (r3=this, r4=unk)
    Method[1][8] find_article_instances? (r3=this, r4=unk, r5=unk)

    There's a bunch of interesting stuff here.

    Method[0][1] - the create_article method is used when creating an instance of an article. You may have already found this out, but the start of the function simply branches to a different block of the same function according to the article_id value it is being called with. Whenever you use the GenerateArticle PSA command, this function is likely the one that gets called in the end.

    Methods [1][0] and [1][1] are Thunk methods like I discussed in my last post. These methods simply adjust the "this" pointer according to the required type and call a different function.

    Method[1][2], when called iterates over all existing instances of all article types and calls a couple of their functions. For now, I'm going to guess that this is used to clear all currently existing instances.

    Methods [1][3], [1][4] and [1][5] all have similar formats to the create_article method in that the start of the method branches according to the article id passed to it. I'm not sure what these methods are for, but they all seem to iterate over all existing instances of the selected article type.

    Method[1][6] will retrieve the number of available articles for that character (however, the soArticleMediator object always implements enough space for 15 articles).

    The last two methods are unknown, but I think Method[1][8] is used when you want to retrieve an existing instance of an article.



    Not much progress on the ftStatusUniqProcess objects though. They seem to be pretty tough to crack.
    Logged

    pikazz
    Heroic Kitten
    **
    Offline Offline

    Posts: 2286


    Machinimator!

  • Awards Renowned Hacker Pin Collector Good Citizen Helping Hand

  • View Profile Awards
    « Reply #197 on: January 10, 2013, 04:07:02 AM »


    it sounds like adding article isn't impossible no more! I will take more look into inialiazer to soStatusUniq and soArticleMediator.

    do you know when soArticleMediator gets called? I mean, it's needs to be called atleast one time to get load, like the inialiazers or that Method[3][16] gets load inside FitChar object?

    and I have a theory what a article needs inside a module file:

    * soArticleMediator as the "all articles base"
    * soLineHierarchy, it looks like it's also a base but for all "Attacking articles", not entry or static articles! but I might be wrong.

    * soInstancePoolSub
    * wnInstanceHolder

    * wn"Articlename" (example wnLinkBoomerang)

    I am pretty sure everyone of these is need to get one article working, how they are link and their purpose is still unknown.
    but I bet my hat of the "wn"Articlename" is almost the same as soStatusUniq but for articles instead
    Logged

    Stupid Tinypic :C

    Carnage
    God Kitten
    *******
    Offline Offline

    Posts: 7551


    (retired)

  • Awards Constructive Super Saiyan Topic Heart Container Starstormer

  • View Profile Awards
    « Reply #198 on: January 10, 2013, 05:13:51 AM »


    we sure need to be able to add some true projectiles i would love the possibility of adding lucario aura sphere to several psas
    Logged


    DoctorFlux(Mariodk)
    Never Gonna Give You Up
    *
    Offline Offline

    Posts: 9387


  • Awards Infinite Smash Team Heart Container KCMM 2012 Awards Winner >9000

  • View Profile Awards
    « Reply #199 on: January 10, 2013, 07:43:40 AM »


    we sure need to be able to add some true projectiles i would love the possibility of adding lucario aura sphere to several psas
    i know you mainly thinking on make mewtwo over someone then you say:
    "i would love the possibility of adding lucario aura sphere to several psas"
    but yeah i will also love that (or port pikmins article or make something like pikmin articles to over someone else like ike like replace the sword acticle with pikmins)
    Logged

    I Dont Take Requests & Dont Do Brawl Mods anymore Maybe Sm4sh modz later

    Carnage
    God Kitten
    *******
    Offline Offline

    Posts: 7551


    (retired)

  • Awards Constructive Super Saiyan Topic Heart Container Starstormer

  • View Profile Awards
    « Reply #200 on: January 10, 2013, 08:05:14 AM »


    i know you mainly thinking on make mewtwo over someone then you say:
    "i would love the possibility of adding lucario aura sphere to several psas"
    but yeah i will also love that (or port pikmins article or make something like pikmin articles to over someone else like ike like replace the sword acticle with pikmins)
    but pikmins are diferent since they are in the pcs so i bet simple articles located in the fitmotion should be easier module wise but that is just a theory
    Logged


    pikazz
    Heroic Kitten
    **
    Offline Offline

    Posts: 2286


    Machinimator!

  • Awards Renowned Hacker Pin Collector Good Citizen Helping Hand

  • View Profile Awards
    « Reply #201 on: January 10, 2013, 10:33:46 AM »


    to be honest, if we continue to parche Module files at this speed, we may be able to add articles like next months and that's a good sign!
    Logged

    Stupid Tinypic :C

    PhantomWings
    Mega Kitten
    *****
    Offline Offline

    Posts: 167

  • Awards Super Saiyan Topic Featured

  • View Profile Awards
    « Reply #202 on: January 10, 2013, 10:44:16 AM »


    do you know when soArticleMediator gets called? I mean, it's needs to be called atleast one time to get load, like the inialiazers or that Method[3][16] gets load inside FitChar object?


    If you mean when an actual soArticleMediator instance gets created, then it is likely inside the ftClassInfoImpl.Method[0][2]. This object is used when generating the entire character and all of its subclasses, so there's likely a lot more than just that.

    If you're looking for when the soArticleMediator.Method[0][1] gets called, then that has to do with the PSA commands. In particular, when the 10000100 (Generate Article) PSA command is encountered, it sends the command to the soGenerateArticleManageModule instance object. The soGenerateArticleManageModule then calls associated character's soArticleMediator.Method[0][1] with the parameters provided in the original PSA command. Thus, if we call the 10000100 PSA command with a parameter value of 01, then eventually, soArticleMediator.Method[0][1] will be called with r4=1. If we continue down the line, we'll see that soArticleMediator.Method[0][1] uses r4 to branch to the particular part of itself which is responsible for generating article 1 of that character.

    and I have a theory what a article needs inside a module file:

    * soArticleMediator as the "all articles base"
    * soLineHierarchy, it looks like it's also a base but for all "Attacking articles", not entry or static articles! but I might be wrong.

    * soInstancePoolSub
    * wnInstanceHolder

    * wn"Articlename" (example wnLinkBoomerang)

    I am pretty sure everyone of these is need to get one article working, how they are link and their purpose is still unknown.
    but I bet my hat of the "wn"Articlename" is almost the same as soStatusUniq but for articles instead

    While the wnArticleName objects are rather similar to the soStatusUniqProcess objects, they are actually closer associated to the ftFighterName objects in that they represent the actual object onscreen. However, you would be correct to assume that most of the behavior of articles is managed by them.

    On a side note; Link's bombs, Peaches turnips and other articles that you can swap all are instances of wnSimple. Thus, swapping them doesn't make much of an impact on the stability of the code as you aren't actually replacing the object itself.

    Also, the soInstancePoolSub objects are used to contain the actual instances of the article - this is why we are limited with some articles such as Link's arrows (there are 4 soInstancePoolSub objects, so we can only create 4 arrows at once).
    Logged

    DoctorFlux(Mariodk)
    Never Gonna Give You Up
    *
    Offline Offline

    Posts: 9387


  • Awards Infinite Smash Team Heart Container KCMM 2012 Awards Winner >9000

  • View Profile Awards
    « Reply #203 on: January 10, 2013, 10:54:31 AM »


    to be honest, if we continue to parche Module files at this speed, we may be able to add articles like next months and that's a good sign!
    but we needing also a add article button in brawlbox´s PSA for make this possible aswell
    Logged

    I Dont Take Requests & Dont Do Brawl Mods anymore Maybe Sm4sh modz later

    pikazz
    Heroic Kitten
    **
    Offline Offline

    Posts: 2286


    Machinimator!

  • Awards Renowned Hacker Pin Collector Good Citizen Helping Hand

  • View Profile Awards
    « Reply #204 on: January 10, 2013, 01:39:24 PM »


    If you mean when an actual soArticleMediator instance gets created, then it is likely inside the ftClassInfoImpl.Method[0][2]. This object is used when generating the entire character and all of its subclasses, so there's likely a lot more than just that.

    If you're looking for when the soArticleMediator.Method[0][1] gets called, then that has to do with the PSA commands. In particular, when the 10000100 (Generate Article) PSA command is encountered, it sends the command to the soGenerateArticleManageModule instance object. The soGenerateArticleManageModule then calls associated character's soArticleMediator.Method[0][1] with the parameters provided in the original PSA command. Thus, if we call the 10000100 PSA command with a parameter value of 01, then eventually, soArticleMediator.Method[0][1] will be called with r4=1. If we continue down the line, we'll see that soArticleMediator.Method[0][1] uses r4 to branch to the particular part of itself which is responsible for generating article 1 of that character.

    While the wnArticleName objects are rather similar to the soStatusUniqProcess objects, they are actually closer associated to the ftFighterName objects in that they represent the actual object onscreen. However, you would be correct to assume that most of the behavior of articles is managed by them.

    On a side note; Link's bombs, Peaches turnips and other articles that you can swap all are instances of wnSimple. Thus, swapping them doesn't make much of an impact on the stability of the code as you aren't actually replacing the object itself.

    Also, the soInstancePoolSub objects are used to contain the actual instances of the article - this is why we are limited with some articles such as Link's arrows (there are 4 soInstancePoolSub objects, so we can only create 4 arrows at once).
    that's great information!
    I was cursious about the first thing you said about how it gets create but both of the you said was great information :3

    hm, closer to ftFighter huh? that makes me curious, since ftFighter stands for loading what's inside the pacs like ModelData, TextureData. is it any chance the wnArticleName does the same thing? I mean loading it's ModelData, Texturedata, AnimationsData Ect for the article itself?
    or does FtFighterName loads exactly everything in the PACs and PCS?
    I think that the wnArticleName are standing for loading everything it needs cause that sounds most logical to me

    got little confused about you said about the Articles Item Swap, do you mean it's stable or not? o.o

    I will try to test things inside articles and more in soStatusUniq for more information.

    but we needing also a add article button in brawlbox´s PSA for make this possible aswell
    I gave him that request one week ago for articles testing, he said he would do it and I believe his words!



    EDIT: I have looked into more of modules. Marth is the ONLY one that doesn't have an article! thats old news but he doesn't have a soArticleMediator.
    you might say "jiggzlypruff dozn't haf articrul Duuuh" but Jigglypuff has actually ONE article (Jigglypuff Green Sleephat) so its using soArticleMediator.

    PW, I dont think ftClassInfoImpl.Method[0][2] makes the soArticleMediator loads, the only thing I found was the FtChar gets load so I keep looking how soArticleMediator gets created! I believe it is something that you can turn on and off just like we did that to method[3][16]

    more notes, I have found some more instresting things.
    in FtMarth, Method[17][42] its refering to his final smash on his "Dash" action and "Hit" action, meaning that once he hit someone he goes to the "Hit" action (action 286 and 288)
    Haven't test it but it's a therody

    in FitLink, Method[17][52-53] are refering to his final smash on FinalStart! haven't find something more about it, just his finalstart! (Action 278)
    « Last Edit: January 11, 2013, 10:00:27 AM by pikazz » Logged

    Stupid Tinypic :C

    Battleon469
    Extreme Kitten
    *******
    Offline Offline

    Posts: 379


    The Power.

  • Awards Shadow the Pinhog

  • View Profile Awards
    « Reply #205 on: January 11, 2013, 11:43:35 AM »


    I know this sounds noobish but im not understand   Im srs here
    Logged

    [/url]

    pikazz
    Heroic Kitten
    **
    Offline Offline

    Posts: 2286


    Machinimator!

  • Awards Renowned Hacker Pin Collector Good Citizen Helping Hand

  • View Profile Awards
    « Reply #206 on: January 11, 2013, 02:02:47 PM »


    I know this sounds noobish but im not understand   Im srs here

    trust me! it is confusing and I am not the guy who can teach about stuff on a good way :/

    EDIT: Been fooling around



    you can generate ANYTHING as a ITEM like this staryu bomb! but brawl/stage HAS to load it first if it isn't in Common3 or in your FitName/FitNameMotionEct as a Article Item before you can use your own.

    means it needs to have a active staryu on stage before you can use your own! doesn't freeze if it are any staryus however
    « Last Edit: January 11, 2013, 05:03:15 PM by pikazz » Logged

    Stupid Tinypic :C

    Eternal Yoshi
    Heroic Kitten
    **
    Offline Offline

    Posts: 2425


    Boss? Is that you?

  • Awards KCMM Old Timer Super Saiyan Topic Active Contributor Former PMDT

  • View Profile Awards
    « Reply #207 on: January 11, 2013, 05:34:08 PM »


    That looks cool.

    Question: I remember you changing what .brres Final destination reads. Can you show me how I can change where an article is loaded?

    Basically I want a specific article to be read from the costume files(FitSnake00.pac) instead of the motion file(FitSnakeMotionEtc.pac)
    Logged


    Carnage
    God Kitten
    *******
    Offline Offline

    Posts: 7551


    (retired)

  • Awards Constructive Super Saiyan Topic Heart Container Starstormer

  • View Profile Awards
    « Reply #208 on: January 11, 2013, 07:17:06 PM »


    That looks cool.

    Question: I remember you changing what .brres Final destination reads. Can you show me how I can change where an article is loaded?

    Basically I want a specific article to be read from the costume files(FitSnake00.pac) instead of the motion file(FitSnakeMotionEtc.pac)
    that would be very inetresting also so we could have one slot articles gfx like mario psas having a fire ball for mario costumes,green fireball for luigi costumes and a pill for doctor mario costumes  just as an example but not sure if pikazz has found a way to make the that possible yet.
    Logged


    pikazz
    Heroic Kitten
    **
    Offline Offline

    Posts: 2286


    Machinimator!

  • Awards Renowned Hacker Pin Collector Good Citizen Helping Hand

  • View Profile Awards
    « Reply #209 on: January 12, 2013, 03:03:28 AM »


    That looks cool.

    Question: I remember you changing what .brres Final destination reads. Can you show me how I can change where an article is loaded?

    Basically I want a specific article to be read from the costume files(FitSnake00.pac) instead of the motion file(FitSnakeMotionEtc.pac)
    the only problem is I dont know how to change between FitName00 and FitNameMotionEct, I know there are some Articles in FitName00 so it should be possible!
    and I haven't found how its load yet! I dont know if everything loads from REL, I will try another therody of mine.

    If it are possible, we need to first "where" it's loads ingame and how it get load/create
    Logged

    Stupid Tinypic :C

    Pages:  1 ... 11 12 13 [14] 15 16 17 ... 28
    Print
    Jump to: