-
Posts
3 -
Joined
-
Last visited
Nexus Mods Profile
About doublesnark
doublesnark's Achievements
Newbie (1/14)
0
Reputation
-
Hello Friends, I'm doing some development at the moment with Scaleform in Fallout 4. It appears to me that Bethesda used either Scaleform 4.2 or Scaleform 4.4 which I was able to obtain the partial source code for. As people familiar with this topic will know, Bethesda used 2 different interfaces to communicate between the game engine(seems to be Havok?) and Scaleform itself. These two interfaces are: BGSExternalInterface.call(<function name here>, <arguments here) and a direct use of what Scaleform referes to as "Function Objects", which are essentially the Scaleform Actionscript VM exposing the external program(in this case the game engine) directly. I believe the well-known BGSCodeObj is a use of this technique to expose internal engine calls. My question is for people who have done the reversing and mod development for Scaleform apps in Fallout 4: Other than simply decompiling the interfaces and looking examples of how BGSCodeObj functions are used, how are you able to determine the number and type of arguments for each call? I have done some reversing and see a large number of functions available. This screenshot is only a fraction: If I can figure out the type and number of arguments to call these functions from, I believe we may be able to greatly enhance our abilities as modders. I can simply continue reverse engineering fallout 4 and figure it out myself, but this will take time and I'm wondering if anybody already has answers to this question. Thank you, Snark
-
Hello Friends, I'm doing some development at the moment with Scaleform in Fallout 4. It appears to me that Bethesda used either Scaleform 4.2 or Scaleform 4.4 which I was able to obtain the partial source code for. As people familiar with this topic will know, Bethesda used 2 different interfaces to communicate between the game engine(seems to be Havok?) and Scaleform itself. These two interfaces are: BGSExternalInterface.call(<function name here>, <arguments here) and a direct use of what Scaleform referes to as "Function Objects", which are essentially the Scaleform Actionscript VM exposing the external program(in this case the game engine) directly. I believe the well-known BGSCodeObj is a use of this technique to expose internal engine calls. My question is for people who have done the reversing and mod development for Scaleform apps in Fallout 4: Other than simply decompiling the interfaces and looking examples of how BGSCodeObj functions are used, how are you able to determine the number and type of arguments for each call? I have done some reversing and see a large number of functions available. This screenshot is only a fraction: If I can figure out the type and number of arguments to call these functions from, I believe we may be able to greatly enhance our abilities as modders. I can simply continue reverse engineering fallout 4 and figure it out myself, but this will take time and I'm wondering if anybody already has answers to this question. Thank you, Snark