[Task 4] Import TS1 content into FreeSO and fix any broken BHAVs.

Discussion in 'Evaluation' started by RHY3756547, Feb 26, 2016.

  1. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    Summary:
    This task is a little more difficult than the others, since it requires some indepth understanding of SimAntics. The main idea here is that objects from TS1 are roughly compatible with The Sims Online; the only problems preventing them from running are differences in the environments, such as what functions have what ID in the global resources, and what the object GUIDs are.

    You should use a combination of Volcanic, Codex and The Sims Transmogrifier to restore the functionality of one such object. If it works out of the box, it doesn't count!

    Prerequisites
    To do this task, you may need the following programs (depending on the object)
    With some guesswork, you could fix an object without any of these things, but it's a bit harder.
    Process:
    Let's take an example object already in the game, but crashes due to not being converted for The Sims Online. "bunnyrabbit.iff" seems like a good candidate.
    When you attempt to spawn this object, there is very clearly something wrong. The rabbit never moves and it is forever hopping on the spot...
    [​IMG]
    From this, we can gather that there is something wrong with the function in which the rabbit moves. Tracing through "main - duck" to see how the self movement works, we find that the rabbit first calls "Sub - Setup for Move" before it starts moving. Within this tree, we should look for anything wrong with the references, that is, Object GUIDs which are invalid and "Global:" or "SemiGlobal:" calls which are invalid or incorrect.

    We quickly find that something isn't quite right here. When something expecting an Object Type is displaying the GUID in hex, it means that it could not find the object. This "Create New Object Instance" block will always fail and return false!
    upload_2016-2-26_16-11-37.png
    The next step is to find out what the interaction is meant to look like. For this we should use The Sims Complete collection in combination with Codex & The Sims Transmogrifier, available from the pre-requisites section above.

    Since codex does not show names for Create New Object Instance, we have to do a little guessing. Open up Transmogrifier, and find the "bunnyrabbit" iff file.
    upload_2016-2-26_16-19-29.png
    We see that this object uses a secondary part. Could this be the object the BHAV was trying to create? Click "View Object", then "Edit Definition..." then find the GUID:
    upload_2016-2-26_16-20-30.png
    Bingo, it's a match! The BHAV is definitely trying to create the Rabbit - Reserve Tile. We just need to fix this reference.

    Switch back to Volcanic, and click "Edit" on "Object Type". Search for the object, and select it. If you cannot find the object, you likely cannot fix it without importing more objects!
    upload_2016-2-26_16-22-35.png

    upload_2016-2-26_16-22-57.png
    Go back to the game, spawn your object again, and look for more problems. In the case of the rabbit, we're all done!
    [​IMG]
    For other objects, you will likely have to fix more bugs, remove references to Global methods such as this intended to reference "Is Downtown Lot", or use the information printed out in the SimAntics Exception dialog box to find where the problems are happening.
    [​IMG]
    For example, in the above dialog we can see that the error occured in "Trash: Create Trash Pile By Size" when attempting to run a "Create Object Instance" primitive, which was called by "Drink Soda", which was called by "Interaction - Have a Snack". We would need to go to that primitive to see what went wrong.

    Submitting Feedback:
    [​IMG]

    After translating your object, go open up the main window, go to the Resources tab, and click "Save All".
    If your object is an original game object, this will save your changes to "Content/User/objectname.str.piff" and "Content/User/objectname.piff" relative to the FreeSO folder, where objectname is name of the object file you modified.

    If your object is completely custom, it will be saved back to the .iff file in the "Content/Objects" folder. It will be permanently modified, so watch out!

    Upload all files like these to the internet somehow, and create a post like below showing screenshots of it in action and linking to the files. You should also include some feedback on how it went - this is the most important part!!!
    Last edited: Feb 26, 2016
    Absentee, Simhrique0990 and zc456 like this.
  2. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    Summary:
    [​IMG]
    I fixed the Bunny Rabbit object by fixing a reference to the "Rabbit - Reserve Tile" object in it's move routine. It now works rather nicely!
    https://dl.dropboxusercontent.com/u/12239448/bunnyrabbit.piff

    Problems:
    No apparent issues.
    Things I liked:
    The object browser made it very easy to find and select the Reserve Tile object as part of the repalcement. Tracing through the main function was rather easy thanks to being able to double click called subroutines to open them in the editor.
    Last edited: Feb 26, 2016
    Simhrique0990 and zc456 like this.
  3. Simhrique0990

    Simhrique0990 Active Member

    "You should also include some feedback on how it went - this is the most important part!!!"
    In case, if you have to post, the way that the object has been converted or fixed?
  4. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    Yes, but also personal opinions on how you felt about using the program to do this. The example post should demonstrate the kind of thing you're going for.
  5. Simhrique0990

    Simhrique0990 Active Member

    Explanation:
    I I used for this task the object "Arcade Machine", because when you clicked "Play" it did nothing, however showed, sequences of drawings on the screen
    Fixed it took a little time .. because I had trouble figuring out what caused it,But I soon found that it was problems that the object sought animations that do not exist in FreeSO
    The most consistent form was changing its animations for some more like, such as those you will see in gif.

    OBS:If the developer, thinks it does not count, anyway I try again.

    Images:

    (Before)
    [​IMG]
    (After)
    [​IMG]

    ss4.png ss3.png

    Archives:
    (The Piff,and Iff) https://mega.nz/#!SVZBxA7Q!t8eG24P_WCM0lNms7CR9Wf_FKrBNDLCb393jMliUIGg

    Good and Bad points:

    Good Point:
    The form in which the interactions and animations are organized for change,and modified

    Bad Point:
    The Interface of "edit tree", extremely complicated for beginners.
    Last edited: Mar 7, 2016
    RHY3756547 likes this.
  6. francot514

    francot514 Well-Known Member

    I used the garden plot from TS1, because some way TSO version had broken graphics, fixed the main and init BHAV Trees.

    -Problems.
    Unused, not implemented primivites.

    Things i liked.
    Saved fixe to the iff file instead of patch iff, that way i can also use it for fixing any issue and test object in TS1.

    Attached Files:

    Last edited: Mar 13, 2016
    RHY3756547 likes this.
  7. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    Glad to see you noticed I fixed that! Nice work.

Share This Page