emoose/MBINCompiler

List of primary templates still unmapped

emoose opened this issue · 10 comments

(TL;DR: the current unmapped templates are TkAnimationDataTable, TkInputFrameArray and GcCreatureRoleFilenameTable)

(Global templates have been moved to #62.)

Here's a list of the primary templates used in the games MBIN files (from 1.0 GoG), ordered by how many MBINs use them. Checked indicates the template has been mapped. I'll update this over time as more are added.

Note that this doesn't include any child templates these might include.

If anyone is interested in trying to map out these templates, the ones at the bottom with fewer usages usually are much simpler than the ones at the top, they'd probably be easiest for anyone who wants to give template mapping a try.

  • TkMaterialData : 7787
  • TkSceneNodeData : 2392
  • TkGeometryData : 2204 (needs some work on exml -> mbin)
  • TkAnimMetadata : 938
  • TkModelDescriptorList : 875
  • TkProceduralTextureList : 767
  • TkAttachmentData : 752
  • TkParticleData : 279
  • GcNGuiLayerData : 201
  • TkLSystemRulesData : 70
  • GcExternalObjectList : 68
  • TkHeavyAirData : 44
  • GcPlanetData : 39
  • GcCreatureRoleDescriptionTable : 26
  • GcSceneSettings : 26
  • TkTrailData : 19
  • TkLocalisationTable : 17
  • GcSolarSystemData : 16
  • GcHUDLayerData : 13
  • GcAISpaceshipPreloadList : 12
  • GcDefaultSaveData : 8
  • GcWeatherProperties : 8
  • GcBiomeData : 8
  • GcPaletteList : 7
  • TkLanguagesAllowedData : 6
  • TkProceduralTextureChosenOptionList : 6
  • TkControllerSpecification : 5
  • TkSpeedLineData : 5
  • GcExplosionDataTable : 4
  • GcScanEventTable : 4
  • GcWeatherColourSettingList : 3
  • TkNGuiEditorLayout : 3
  • GcBootLogoData : 2
  • GcCreatureStupidNameTable : 2
  • TkLanguageFontTable : 2
  • TkAnimationDataTable : 2
  • GcBiomeFileList : 2
  • GcCreatureDataTable : 2
  • TkEntitlementList : 2
  • GcEntitlementRewardsTable : 2
  • TkGraphicsSettings : 2
  • GcAlienSpeechTable : 2
  • GcFontTable : 1
  • GcAudioPulseDemo : 1
  • TkEngineSettings : 1
  • GcTestMetadata : 1
  • TkInputFrameArray : 1 (only used by INPUTTEST.MBIN which seems to be using an older MBIN format not used by the game, can probably be ignored but would be best to get this in for completeness)
  • TkGameSettings : 1
  • GcUserSettingsData : 1
  • TkEngineSettingsMapping : 1
  • TkNGuiEditorStyleData : 1
  • GcTextPresetTable : 1
  • GcInventoryTable : 1
  • GcPlayerMissionProgressMapTable : 1
  • GcBuildingDefinitionTable : 1
  • GcExperienceSpawnTable : 1
  • TkVoxelGeneratorSettingsArray : 1
  • GcHeavyAirList : 1
  • GcBiomeListPerStarType : 1
  • GcSpawnDensityList : 1
  • GcWeatherTable : 1
  • GcAISpaceshipManagerData : 1
  • TkTrophyData : 1
  • GcNGuiFileBrowserRecents : 1
  • GcTexturePrefetchData : 1
  • TkImGuiData : 1
  • TkNGuiLayoutList : 1
  • GcNGuiPreset : 1
  • GcNGuiSpecialTextStyles : 1
  • GcNGuiSpecialTextImages : 1
  • GcHUDManagerData : 1
  • GcScannerIcons : 1
  • GcSelectableObjectTable : 1
  • GcPlayerHazardTable : 1
  • GcJourneyMilestoneTable : 1
  • GcCreatureRoleFilenameTable : 1
  • GcLeveledStatTable : 1
  • GcStatDefinitionTable : 1
  • GcStatGroupTable : 1
  • TkActionButtonLookup : 1
  • TkControllerList : 1
  • GcProjectileDataTable : 1
  • GcRealityManagerData : 1
  • GcCostTable : 1
  • GcPlayerDamageTable : 1
  • GcAlienPuzzleTable : 1
  • GcProductTable : 1
  • GcSubstanceTable : 1
  • GcTechnologyTable : 1
  • GcRewardDestructTable : 1
  • GcRewardTable : 1
  • GcCreatureAudioTable : 1
  • GcCreatureFilenameTable : 1
jmdjr commented

I would like to help with this templating deal, but I am new to reverse engineering... I am however really good with UI and C#.

I'd like to help as well, had a look at your tutorial on template mapping, noob question but what software do I need? And what is IDA?

Cheers

brcly commented

You need IDA, it's the reverse engineering software.

Ouch its expensive :( can I do anything with the evaluation version?

Implemented GcProductTable and relating structures, check PR #21

BTW I think some people are still using xrefs to xml_startTemplate to try and find templates, that works but it's laborious since there's hundreds of templates and most of them aren't on this list (most are either child templates or ones used for networking or something)

So I've done a little guide/video on how to search for templates by name here: http://pastebin.com/nQ4urVr8

brcly commented

Pottymouth is a mad man and made a database. @emoose

http://i.imgur.com/WuVvDuh.png

Oh yeah I forgot about that, using that would be easier.

Link for anyone interested: http://nomansskymods.com/mods/ida-named-templates-i64/

jmdjr commented

wow... this is some next level stuff... I wouldn't know where to start... I
am better at the higher level programming...

On Sun, Aug 21, 2016 at 9:17 PM, emoose notifications@github.com wrote:

Oh yeah I forgot about that, using that would be easier.

Link for anyone interested: http://nomansskymods.com/mods/
ida-named-templates-i64/


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#13 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAzD0YmXg2twD958Mh342ABsV0PS7E-4ks5qiSLBgaJpZM4JoxE1
.

John M. Davis Jr.

All templates complete 💯 Thanks to everyone involved!

Now there's only these ****** global templates left...