Home » Fable TLC » Discussion » Requests » Fable SDK - Volunteers Needed
Fable SDK - Volunteers Needed [message #66820] |
Mon, 11 June 2012 22:55 |
|
EternalNoob
Messages: 47 Registered: January 2006 Location: The Pit of Hell
|
|
|
|
I will need your help to make my project a reality.
You can of course, choose not to help, however, you are only hurting the community by not participating.
The task themselves are mundane, things that any experienced modder can do, and will require no hacking skills whatsoever.
1. Game ID's - Items, NPC's, Buildings, Expressions, etc,. (UID's ?)
Here are some I've decoded myself. (I need someone with modding experience to figure out how these relate to the games files, and then document the rest. The modding tools may display these in decimal format, so you may need to convert them from hex to decimal to see a relation. They could even relate to the count, ie, the items index within the files, etc,. Don't know.)
Hotkey Bar Items:
Empty = 0x0000,
Force_Push = 0x0B2A,
Slow_Time = 0x0B2B,
Drain_Life = 0x0B2F,
Berserk = 0x0B31,
Lightning = 0x0B34,
Battle_Charge = 0x0B35,
Assassin_Rush = 0x0B36,
Heal_Life = 0x0B37,
Fireball = 0x0B39,
Multi_Arrow = 0x0B3A,
Infernal_Wrath = 0x0B3C,
Follow = 0x0E25,
Wait = 0x0E26,
Flirt = 0x0E2E,
Apologise = 0x0E2F,
Sneer = 0x0E30,
Scary_Laugh = 0x0E31,
Belch = 0x0E35,
Fart = 0x0E36,
Manly_Arm_Pump = 0x0E37,
Giggle = 0x0E38,
Kiss_My_Ass = 0x0E3D,
Flamenco_Dance = 0x0E3E,
Cossack_Dance = 0x0E3F,
Air_Guitar = 0x0E40,
Tap_Dance = 0x0E43,
Guild_Seal = 0x10D1,
Money_Bag = 0x10D2,
Lamp = 0x10D3,
Fishing_Rod = 0x10D5,
Spade = 0x10D7,
Health_Potion = 0x10C4,
Sapphire = 0x115C,
Jet = 0x115D,
Note: Try to follow this format, these are enums, and will directly plug into my project as shown here. (Hexadecimal is preferred, windows calculator, programmer mode, alternatively, Google can find you a converter as well.)
Note: Try to keep related objects in separate list, NPC's, and items shouldn't be in the same list. (My example list, is an exception, because the hotkey bar accepts items and expressions, etc,.)
I would recommend making a post in this thread documenting your finds, and simply editing it as you make progress.
2. I could also use the file layouts found in Fable Explorer\ShadowNet, in plain text format.
ie,..
Camera_Mode:
CameraMode (int)
Unknown (float)
CageRadius (float)
HeightOffsetZ (float)
LookOffsetZ (float)
FOV (float)
RollAngle (float)
The tool won't run at the same time as the game(on my system at least), which makes mapping this stuff much harder than it needs to be. (The source code for the tool would also suffice, I could then fix the problem. I believe it's opening the files, and never releasing them, thus, Fable can't load because of a file in use error.)
(These layouts likely map 1:1 with the games data in memory, from what I can tell, the game uses binary serialization, so, the files should match the classes exactly, minus some C++ specific stuff, which is of no major consequence.)
In short, this data could really speed up the decoding process, because a lot of it's already been decoded, and even the unknowns help, because they list type(int, float, byte), which will help me identify stuff more quickly.
----
For the moment, this should be all I need.
--
Edit:
If you're curious what I'll be doing, well, I'll be trying to make sense of 16.4mb's of this...
.text:00CE6006 mov ecx, [esi+40h]
.text:00CE6009 mov edx, [ecx]
.text:00CE600B lea eax, [esp+8]
.text:00CE600F push eax
.text:00CE6010 call dword ptr [edx+74h]
.text:00CE6013 test al, al
.text:00CE6015 jnz short loc_CE6061
.text:00CE6017 mov ecx, [esi+40h]
.text:00CE601A mov edx, [ecx]
.text:00CE601C call dword ptr [edx+1Ch]
[Updated on: Tue, 12 June 2012 01:31] Report message to a moderator
|
|
|
|
Re: Fable SDK - Volunteers Needed [message #66824 is a reply to message #66820] |
Tue, 12 June 2012 06:17 |
|
Keshire
Messages: 1266 Registered: July 2005
|
Administrator
|
|
|
This type of stuff:
Quote: |
Camera_Mode:
CameraMode (int)
Unknown (float)
CageRadius (float)
HeightOffsetZ (float)
LookOffsetZ (float)
FOV (float)
RollAngle (float)
|
Should already be listed in the definitions xml for the bin editors.
Toggle Spoiler
<!-- CAMERA_MODE -->
<Control name="CameraMode" id="D23AF158">
<Member name="unknown" type="int" />
</Control>
<Control name="unknown" id="E475FF49">
<Member name="unknown" type="float" />
</Control>
<Control name="CageRadius" id="6B2927B0">
<Member name="unknown" type="float" />
</Control>
<Control name="HeightOffsetZ" id="273B9B0D">
<Member name="unknown" type="float" />
</Control>
<Control name="LookOffsetZ" id="D64F027F">
<Member name="unknown" type="float" />
</Control>
<Control name="unknown" id="7956FE81">
<Member name="unknown" type="float" />
</Control>
<Control name="RollAngle" id="47AF2D61">
<Member name="unknown" type="float" />
</Control>
<Control name="unknown" id="4E76C115">
<Member name="unknown" type="int" />
</Control>
<Control name="unknown" id="F62B072B">
<Member name="unknown" type="float" />
</Control>
<Control name="unknown" id="CD3F7734">
<Member name="unknown" type="byte" />
</Control>
<Control name="unknown" id="2866AAED">
<Member name="unknown" type="byte" />
</Control>
<Control name="unknown" id="B1717FDC">
<Member name="unknown" type="float" />
</Control>
<Control name="unknown" id="D17C723C">
<Member name="unknown" type="float" />
</Control>
<Control name="unknown" id="11EAAD1D">
<Member name="unknown" type="float" />
</Control>
<Control name="unknown" id="748B54E7">
<Member name="unknown" type="float" />
</Control>
<Control name="unknown" id="E9CD688E">
<Member name="unknown" type="byte" />
</Control>
<Control name="unknown" id="61DD934D">
<Member name="unknown" type="int" />
</Control>
<Control name="unknown" id="BC05126E">
<Member name="unknown" type="int" />
</Control>
<Control name="unknown" id="237C0B79">
<Member name="unknown" type="int" />
</Control>
<Control name="unknown" id="29B8817B">
<Member name="unknown" type="int" />
</Control>
<Control name="unknown" id="6F4D18E8">
<Member name="unknown" type="int" />
</Control>
<Control name="unknown" id="FA3E750B">
<Member name="unknown" type="int" />
</Control>
<Control name="unknown" id="E318236E">
<Member name="unknown" type="int" />
</Control>
<Control name="unknown" id="B73B5BE4">
<Member name="unknown" type="int" />
</Control>
<Control name="unknown" id="37366AB7">
<Member name="unknown" type="byte" />
</Control>
<Control name="unknown" id="0DA172F5">
<Member name="unknown" type="byte" />
</Control>
<Control name="MultipliedSightingFrames??" id="B7020979">
<Member name="unknown" type="int" />
</Control>
<Control name="unknown" id="65DF4335">
<Member name="unknown" type="int" />
</Control>
<Control name="unknown" id="FCF20D1E">
<Member name="unknown" type="int" />
</Control>
<Control name="unknown" id="8BC9F7DE">
<Member name="unknown" type="float" />
</Control>
<Control name="unknown" id="CD139FDA">
<Member name="unknown" type="float" />
</Control>
<Control name="DollyLength" id="0B5D8DB5">
<Member name="unknown" type="float" />
</Control>
<Control name="unknown" id="1F3AE2D4">
<Member name="unknown" type="int" />
</Control>
<Control name="unknown" id="E87E3217">
<Member name="unknown" type="float" />
</Control>
<Control name="unknown" id="EFDABCD5">
<Member name="unknown" type="float" />
</Control>
<Control name="unknown" id="8C764B8A">
<Member name="unknown" type="float" />
</Control>
<Control name="SecondsToReset?" id="6A3E6E41">
<Member name="unknown" type="float" />
</Control>
<Control name="unknown" id="5240BBCC">
<Member name="unknown" type="float" />
</Control>
<Control name="unknown" id="E4683F12">
<Member name="unknown" type="float" />
</Control>
<Control name="unknown" id="B6DEE8CE">
<Member name="unknown" type="float" />
</Control>
<Control name="unknown" id="9DD10635">
<Member name="unknown" type="float" />
</Control>
The xml has been kept as clean and organized as possible. There's been some collisions with the IDs because they are CRCs. So you may want to grab your structures from the DefinitionTypes, instead of straight from the control area of the xml.
Toggle Spoiler
<DefinitionType name="CExplosionDef" hasCDefListing="false">
<ControlInstance id="F9F0A6A7" />
<ControlInstance id="721124C6" />
<ControlInstance id="4E4539F3" />
<ControlInstance id="16B2EB41" />
<ControlInstance id="7EA31BDF" />
<ControlInstance id="F7068F84" />
<ControlInstance id="5AC5A1A8" />
<ControlInstance id="F266F91F" />
<ControlInstance id="5FA5D733" />
<ControlInstance id="4F26776F" />
<ControlInstance id="AB2FF5BB" />
<ControlInstance id="06ECDB97" />
<ControlInstance id="CBE50B97" />
<ControlInstance id="B906D9C2" />
<ControlInstance id="06BF6F7F" />
<ControlInstance id="F2BE994C" />
<ControlInstance id="4AFE3948" />
<ControlInstance id="51F060E0" />
</DefinitionType>
I'm assuming that's what your looking for. But hey, if you want the source to fable explorer you can add a unicode datatype so someone can finish the UI definition.
Apathy Cannot Inspire.
Ambivalence cannot lead.
Loved me. Feared me.
Changed me. Killed me.
Anything would be something.
But nothing is worst of all.
[Updated on: Tue, 12 June 2012 08:16] Report message to a moderator
|
|
|
Re: Fable SDK - Volunteers Needed [message #66827 is a reply to message #66823] |
Tue, 12 June 2012 14:30 |
|
EternalNoob
Messages: 47 Registered: January 2006 Location: The Pit of Hell
|
|
|
|
@morerunes, You don't need the SDK, the info is in tools like Fable Explorer, or should be anyways.
Basically, I don't know that much about FE, what all it info has, where it's at, etc, that's why I need an experienced modder to figure out how\if those ID's line up with it's data. (I can't do that, at least not anywhere near as quickly as you guys can, I'd have to learn FE from the ground up.)
Hope that makes sense.
@Keshire, yeah, I saw the XML, but, a lot of info listed in the tool itself seemed to be missing, or something, and frankly, the .xml format made my eyes bleed after having already spent hours debugging, using FE directly would be much more comfortable. (So, source if ya have it.)
As for fixing FE, I'll make it work for my task, but, I'm not sure I'll get around to fixing FE to support all data types too, etc,. (Not quite sure you get how large my job already is.)
GTA IV Script Hook = By Aru
GTA IV Script Hook.Net = By HazardX
Those two separate projects, did the same thing my project does by itself. (Aru made all the hacks, etc, and HazardX exposed them for use in .Net, to make it easier to use.)
Neither project was completed, even though a large portion of the GTA community rallied behind them, and helped them, etc,. (ie, a lot of ppl helped debug, and find game functions, etc,.)
|
|
|
Re: Fable SDK - Volunteers Needed [message #66839 is a reply to message #66827] |
Wed, 13 June 2012 05:38 |
|
Keshire
Messages: 1266 Registered: July 2005
|
Administrator
|
|
|
EternalNoob wrote on Tue, 12 June 2012 16:30 | @Keshire, yeah, I saw the XML, but, a lot of info listed in the tool itself seemed to be missing, or something, and frankly, the .xml format made my eyes bleed after having already spent hours debugging, using FE directly would be much more comfortable. (So, source if ya have it.)
As for fixing FE, I'll make it work for my task, but, I'm not sure I'll get around to fixing FE to support all data types too, etc,. (Not quite sure you get how large my job already is.)
|
Do you have an example of where it's possibly broken or missing data?
Also, ya I wouldn't expect you to step up to add new datatypes.
TodX/Hunter has the source code to FE in a repository I beleive. I don't remember if Silverback still has the source to the shadownet build or not. You'll need to hop on IRC to get ahold of TodX most likely.
Apathy Cannot Inspire.
Ambivalence cannot lead.
Loved me. Feared me.
Changed me. Killed me.
Anything would be something.
But nothing is worst of all.
|
|
|
Goto Forum:
Current Time: Thu Dec 26 18:21:40 PST 2024
Total time taken to generate the page: 0.07825 seconds
|