Fable: The Lost Chapters Mod Scene
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Fable TLC » Discussion » Requests » Fable SDK - Volunteers Needed
Fable SDK - Volunteers Needed [message #66820] Mon, 11 June 2012 22:55 Go to next message
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 #66823 is a reply to message #66820] Tue, 12 June 2012 04:52 Go to previous messageGo to next message
morerunes is currently offline  morerunes
Messages: 2154
Registered: June 2007
Location: My desk

Administrator

How do we use the SDK to do what you are asking? Can you provide a 'quick start' guide for us?

"All of the work, and none of the play, will surely provide for a speedy decay"

[Updated on: Tue, 12 June 2012 04:53]

Report message to a moderator

Re: Fable SDK - Volunteers Needed [message #66824 is a reply to message #66820] Tue, 12 June 2012 06:17 Go to previous messageGo to next message
Keshire is currently offline  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


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


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 Go to previous messageGo to next message
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 Go to previous message
Keshire is currently offline  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. Razz

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.
Previous Topic: Minion dual bladed weapons?
Next Topic: Experience counter/show
Goto Forum:
  


Current Time: Thu Dec 12 05:26:04 PST 2019

Total time taken to generate the page: 0.01116 seconds