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

Rhys

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...
54ed4b7d8fd32fb7250a846334a16aad.gif

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!
01fccac148b92271c81354d95d430454.gif

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.
objectCrash.png

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:
upload_2016-2-26_15-18-21-png.1327

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:
Summary:
01fccac148b92271c81354d95d430454.gif

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:
"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?
 
"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?
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.
 
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)
54e58f3619d7a5b474dc28cc2201a526.gif

(After)
06d5371a7a6a6ce4ebe09c326cba8395.gif


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:
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.
 

Attachments

  • fsogardenplot.png
    fsogardenplot.png
    182.4 KB · Views: 31
Last edited:
Back
Top