MBINCompiler icon indicating copy to clipboard operation
MBINCompiler copied to clipboard

Cleanup & verify all templates so far (volunteers wanted!)

Open emoose opened this issue 8 years ago • 0 comments

Now all 93 main templates are done, the only things left are the global ones, and to cleanup/check all of them :)

What needs to be done:

  • Verify template structures against structures inside the exe (make sure strings are padded to the right offsets, arrays are the proper size, etc..)
  • Change [MarshalAs(SizeConst)] attributes to [NMS(Size)] ones (and remove "using System.Runtime.interopServices" declarations)
  • Convert "xx1, xx2, xx3" fields from pre-array support into arrays (only where the field is an actual array in the exe template though!)
  • Make sure EnumValues attribute is set for arrays that use enums for indexing (a lot of the arrays added early after array support might be missing them)
  • Ensure padding fields have [NMS(Ignore = true)] attributes

Only problem is there's around 468 templates by my last count, checking them all might take a while. It'd be better to delegate groups of them among us.

To that end, I've added a list of the templates below. If you want to volunteer to check some just reply to this issue with the ones you want to check (eg. "GcCreatureABC to GcCreatureXYZ") and I'll edit the list to note they've been reserved for you, once you've checked them reply back again and I'll check the ones you found to be fine off the list. (or just skip the reserving part and let me know which ones you've checked, I don't mind :)

There's no need to fix any broken templates you might find if you don't want to, you can simply let us know which ones you found problems with and we'll do the rest.

I really do hope people will volunteer to help.. unlike most people I actually find reversing the game kinda fun to do, so I'll be checking a few of these daily, maybe some of you feel the same way too :)

(also please only volunteer if you can actually check for the things in the list above.. while anyone can reserve some templates for themselves I'll only keep them reserved for a week, if they're not done by then and I haven't received any word from you I'll reset them, this should hopefully keep out any wannabe trolls :P)

  • [ ] GcActionTrigger
  • [ ] GcActionTriggerState
  • [ ] GcAIShipSpawnData
  • [ ] GcAISpaceshipComponentData
  • [ ] GcAISpaceshipInstanceData
  • [ ] GcAISpaceshipManagerData
  • [ ] GcAISpaceshipMappingData
  • [ ] GcAISpaceshipPreloadCacheData
  • [ ] GcAISpaceshipPreloadCacheDataTable
  • [ ] GcAISpaceshipPreloadList
  • [ ] GcAISpaceshipRoles
  • [ ] GcAISpaceshipTypes
  • [ ] GcAlienPuzzleEntry
  • [ ] GcAlienPuzzleOption
  • [ ] GcAlienPuzzleTable
  • [ ] GcAlienRace
  • [ ] GcAlienSpeechEntry
  • [ ] GcAlienSpeechTable
  • [ ] GcAnimFrameEvent
  • [ ] GcAsteroidGeneratorAssignment
  • [ ] GcAsteroidGeneratorRing
  • [ ] GcAsteroidGeneratorSlab
  • [ ] GcAsteroidGeneratorSurround
  • [x] GcAtlasGlobals
  • [ ] GcAudioAreaTriggerComponentData
  • [ ] GcAudioPulseDemo
  • [ ] GcAudioWwiseEvents
  • [ ] GcBeenShotEvent
  • [ ] GcBiomeData
  • [ ] GcBiomeFileList
  • [ ] GcBiomeList
  • [ ] GcBiomeListPerStarType
  • [ ] GcBiomeType
  • [ ] GcBirdData
  • [ ] GcBootLogoData
  • [ ] GcBuildingClassification
  • [ ] GcBuildingClusterPlacement
  • [ ] GcBuildingDefinitionData
  • [ ] GcBuildingDefinitionTable
  • [ ] GcBuildingDensity
  • [ ] GcBuildingDensityLevels
  • [ ] GcBuildingFilename
  • [ ] GcBuildingFilenameList
  • [ ] GcBuildingSpawnData
  • [ ] GcCameraShakeAction
  • [ ] GcColourModifier
  • [ ] GcColourPaletteData
  • [ ] GcCostHealth
  • [ ] GcCostJourneyMilestone
  • [ ] GcCostJourneyStatLevel
  • [ ] GcCostMoney
  • [ ] GcCostProduct
  • [ ] GcCostStanding
  • [ ] GcCostSubstance
  • [ ] GcCostTable
  • [ ] GcCostTableEntry
  • [ ] GcCreatureAudioTable
  • [ ] GcCreatureBaitComponentData
  • [ ] GcCreatureComponentData
  • [ ] GcCreatureData
  • [ ] GcCreatureDataTable
  • [ ] GcCreatureFilename
  • [ ] GcCreatureFilenameTable
  • [ ] GcCreatureFootParticleData
  • [ ] GcCreatureFootParticleSingleData
  • [ ] GcCreatureFullBodyIKComponentData
  • [ ] GcCreatureHealthData
  • [ ] GcCreatureIkData
  • [ ] GcCreatureIkType
  • [ ] GcCreatureInfo
  • [ ] GcCreatureMoveAnimData
  • [ ] GcCreatureMovementData
  • [ ] GcCreatureRoleData
  • [ ] GcCreatureRoleDataTable
  • [ ] GcCreatureRoleDescription
  • [ ] GcCreatureRoleDescriptionTable
  • [ ] GcCreatureRoleFilename
  • [ ] GcCreatureRoleFilenameList
  • [x] GcCreatureRoleFilenameTable
  • [ ] GcCreatureRoles
  • [ ] GcCreatureSpawnComponentData
  • [ ] GcCreatureSpawnData
  • [ ] GcCreatureStupidName
  • [ ] GcCreatureStupidNameTable
  • [ ] GcCreatureSwarmData
  • [ ] GcCreatureTypes
  • [ ] GcCreatureVocalData
  • [ ] GcCreatureVocalSoundData
  • [ ] GcCustomInventoryComponentData
  • [ ] GcDebrisData
  • [x] GcDebugOptions
  • [ ] GcDefaultSaveData
  • [ ] GcDestroyAction
  • [ ] GcDestructableComponentData
  • [ ] GcDiscoveryTypes
  • [ ] GcDiscoveryWorth
  • [ ] GcDisplayText
  • [ ] GcDistanceScaleComponentData
  • [ ] GcDoShipFlybyClose
  • [ ] GcDoShipFlybyIntercept
  • [ ] GcDoShipFlybyOverhead
  • [ ] GcDroneComponentData
  • [ ] GcEncounterComponentData
  • [ ] GcEncyclopediaComponentData
  • [ ] GcEngineComponentData
  • [ ] GcEntitlementRewardData
  • [ ] GcEntitlementRewardsTable
  • [ ] GcEnvironmentSpawnData
  • [ ] GcExactResource
  • [ ] GcExperienceSpawnTable
  • [ ] GcExplosionData
  • [ ] GcExplosionDataTable
  • [ ] GcExternalObjectFileList
  • [ ] GcExternalObjectList
  • [ ] GcExternalObjectListOptions
  • [ ] GcFogProperties
  • [ ] GcFontData
  • [ ] GcFontTable
  • [ ] GcFontTypesEnum
  • [ ] GcGalacticAddressData
  • [ ] GcGalaxyStarTypes
  • [ ] GcGenericIconTypes
  • [ ] GcGenericRewardTableEntry
  • [ ] GcGlobalMission
  • [ ] GcGoToStateAction
  • [ ] GcHazardValues
  • [ ] GcHeavyAirColourData
  • [ ] GcHeavyAirList
  • [ ] GcHeavyAirSetting
  • [ ] GcHeavyAirSettingValues
  • [ ] GcHUDComponent
  • [ ] GcHUDImageData
  • [ ] GcHUDLayerData
  • [ ] GcHUDManagerData
  • [ ] GcHUDTextData
  • [ ] GcInputActionMapping
  • [ ] GcInteractionActivationCost
  • [ ] GcInteractionBuffer
  • [ ] GcInteractionComponentData
  • [ ] GcInteractionData
  • [ ] GcInteractionType
  • [ ] GcInventoryContainer
  • [ ] GcInventoryElement
  • [ ] GcInventoryIndex
  • [ ] GcInventoryLayout
  • [ ] GcInventoryTable
  • [ ] GcInventoryTableEntry
  • [ ] GcInventoryTechProbability
  • [ ] GcInventoryType
  • [ ] GcItemPriceModifiers
  • [ ] GcJourneyMilestoneData
  • [ ] GcJourneyMilestoneTable
  • [ ] GcLandingHelperComponentData
  • [ ] GcLaserBeamData
  • [ ] GcLegality
  • [ ] GcLeveledStatData
  • [ ] GcLeveledStatTable
  • [ ] GcLootComponentData
  • [ ] GcMarkerComponentData
  • [ ] GcMiningSubstanceData
  • [ ] GcNGuiElementData
  • [ ] GcNGuiFileBrowserRecents
  • [ ] GcNGuiGraphicData
  • [ ] GcNGuiLayerData
  • [ ] GcNGuiLayoutData
  • [ ] GcNGuiPreset
  • [ ] GcNGuiPresetGraphic
  • [ ] GcNGuiPresetText
  • [ ] GcNGuiSpacingData
  • [ ] GcNGuiSpecialTextImageData
  • [ ] GcNGuiSpecialTextImages
  • [ ] GcNGuiSpecialTextStyleData
  • [ ] GcNGuiSpecialTextStyles
  • [ ] GcNGuiStyleAnimationData
  • [ ] GcNGuiStyleAnimationKeyframeData
  • [ ] GcNGuiTextData
  • [ ] GcNodeActivationAction
  • [ ] GcNPCComponentData
  • [ ] GcObjectPlacementComponentData
  • [ ] GcObjectSpawnData
  • [ ] GcOutpostComponentData
  • [ ] GcOutpostLSystemPair
  • [ ] GcPainAction
  • [ ] GcPaletteData
  • [ ] GcPaletteList
  • [ ] GcParticleAction
  • [ ] GcPlanetBuildingData
  • [ ] GcPlanetClass
  • [ ] GcPlanetColourData
  • [ ] GcPlanetData
  • [ ] GcPlanetGenerationInputData
  • [ ] GcPlanetGenerationIntermediateData
  • [ ] GcPlanetHazardData
  • [ ] GcPlanetHeavyAirData
  • [ ] GcPlanetLife
  • [ ] GcPlanetSentinelData
  • [ ] GcPlanetSize
  • [ ] GcPlanetWaterData
  • [ ] GcPlanetWeatherColourData
  • [ ] GcPlanetWeatherData
  • [ ] GcPlayAnimAction
  • [ ] GcPlayAudioAction
  • [ ] GcPlayerDamageData
  • [ ] GcPlayerDamageTable
  • [ ] GcPlayerHazardData
  • [ ] GcPlayerHazardTable
  • [ ] GcPlayerMissionProgress
  • [ ] GcPlayerMissionProgressMapEntry
  • [ ] GcPlayerMissionProgressMapTable
  • [ ] GcPlayerNearbyEvent
  • [ ] GcPlayerSpawnStateData
  • [ ] GcPlayerStat
  • [ ] GcPlayerStateData
  • [ ] GcPlayerStatsGroup
  • [ ] GcPrimaryAxis
  • [ ] GcProductCategory
  • [ ] GcProductData
  • [ ] GcProductTable
  • [ ] GcProductTypes
  • [ ] GcProjectileData
  • [ ] GcProjectileDataTable
  • [ ] GcProjectileImpactData
  • [ ] GcProjectileImpactType
  • [ ] GcRarity
  • [ ] GcRealityCommonFactions
  • [ ] GcRealityIconTable
  • [ ] GcRealityManagerData
  • [ ] GcRealitySubstanceCategory
  • [ ] GcResourceElement
  • [ ] GcRewardAction
  • [ ] GcRewardChangeGlobalMission
  • [ ] GcRewardDamage
  • [ ] GcRewardDamageTech
  • [ ] GcRewardDestructEntry
  • [ ] GcRewardDestructRarities
  • [ ] GcRewardDestructTable
  • [ ] GcRewardEnergy
  • [ ] GcRewardHazard
  • [ ] GcRewardHealth
  • [ ] GcRewardMoney
  • [ ] GcRewardMultiSpecificProducts
  • [ ] GcRewardProduct
  • [ ] GcRewardProductRecipe
  • [ ] GcRewardRepairTech
  • [ ] GcRewardScan
  • [ ] GcRewardShield
  • [ ] GcRewardShowBlackHoles
  • [ ] GcRewardSignalScan
  • [ ] GcRewardSpecificProduct
  • [ ] GcRewardSpecificProductRecipe
  • [ ] GcRewardSpecificShip
  • [ ] GcRewardSpecificTech
  • [ ] GcRewardSpecificTechFromList
  • [ ] GcRewardSpecificWeapon
  • [ ] GcRewardStanding
  • [ ] GcRewardSubstance
  • [ ] GcRewardTable
  • [ ] GcRewardTableCategory
  • [ ] GcRewardTableChoice
  • [ ] GcRewardTableEntry
  • [ ] GcRewardTableItem
  • [ ] GcRewardTableItemList
  • [ ] GcRewardTeachWord
  • [ ] GcRewardTechRecipe
  • [ ] GcRewardTimeWarp
  • [ ] GcRewardWeapon
  • [ ] GcSavedEntitlement
  • [ ] GcSavedInteractionRaceData
  • [ ] GcScanData
  • [x] GcScanEventData
  • [ ] GcScanEventSave
  • [x] GcScanEventTable
  • [ ] GcScannableComponentData
  • [ ] GcScannerIcons
  • [ ] GcScannerIconTypes
  • [ ] GcScanType
  • [ ] GcScareCreaturesAction
  • [ ] GcSceneSettings
  • [ ] GcSeed
  • [ ] GcSelectableObjectData
  • [ ] GcSelectableObjectList
  • [ ] GcSelectableObjectSpawnData
  • [ ] GcSelectableObjectSpawnList
  • [ ] GcSelectableObjectTable
  • [ ] GcShieldComponentData
  • [ ] GcShipAIPerformanceArray
  • [ ] GcShootableComponentData
  • [ ] GcSignalScanType
  • [ ] GcSimpleInteractionComponentData
  • [ ] GcSizeIndicator
  • [ ] GcSolarSystemClass
  • [ ] GcSolarSystemData
  • [ ] GcSolarSystemLocator
  • [ ] GcSolarSystemLocatorChoice
  • [ ] GcSolarSystemLocatorTypes
  • [ ] GcSolarSystemTraderSpawnData
  • [ ] GcSpaceshipClasses
  • [ ] GcSpaceshipComponentData
  • [ ] GcSpaceSkyProperties
  • [ ] GcSpaceStationSpawnData
  • [ ] GcSpawnAction
  • [ ] GcSpawnComponentOption
  • [ ] GcSpawnDensity
  • [ ] GcSpawnDensityList
  • [ ] GcStatDefinition
  • [ ] GcStatDefinitionTable
  • [ ] GcStatDisplayType
  • [ ] GcStateTimeEvent
  • [ ] GcStatGroupData
  • [ ] GcStatGroupTable
  • [ ] GcStatLevelData
  • [ ] GcStats
  • [ ] GcStatsBonus
  • [ ] GcStatsEntry
  • [ ] GcStatsGroup
  • [ ] GcStatsTypes
  • [ ] GcStatTrackType
  • [ ] GcStatType
  • [ ] GcStatValueData
  • [ ] GcStyleProp_Colour
  • [ ] GcStyleProp_Font
  • [ ] GcStyleProp_Size
  • [ ] GcSubstanceAmount
  • [ ] GcSubstanceData
  • [ ] GcSubstanceTable
  • [ ] GcTechnology
  • [ ] GcTechnologyCategory
  • [ ] GcTechnologyRarity
  • [ ] GcTechnologyRequirement
  • [ ] GcTechnologyTable
  • [ ] GcTerrainControls
  • [ ] GcTerrainTileType
  • [x] GcTestMetadata
  • [ ] GcTextPreset
  • [ ] GcTextPresetTable
  • [ ] GcTextStyleOutline
  • [ ] GcTextStylePlain
  • [ ] GcTextStyleShadow
  • [ ] GcTexturePrefetchData
  • [ ] GcTileTypeOptions
  • [ ] GcTradeData
  • [ ] GcTradeSettings
  • [ ] GcTriggerActionComponentData
  • [ ] GcTurretComponentData
  • [ ] GcUniverseAddressData
  • [ ] GcUserSettingsData
  • [ ] GcWarpAction
  • [x] GcWaterGlobals
  • [ ] GcWaypointComponentData
  • [ ] GcWeatherColourModifiers
  • [ ] GcWeatherColourSettingList
  • [ ] GcWeatherOptions
  • [ ] GcWeatherProperties
  • [ ] GcWeatherTable
  • [ ] GcWordKnowledge
  • [ ] TkActionButtonLookup
  • [ ] TkActionButtonMap
  • [ ] TkAnimationComponentData
  • [ ] TkAnimationData
  • [x] TkAnimationDataTable
  • [ ] TkAnimMetadata
  • [ ] TkAnimNodeData
  • [ ] TkAnimNodeFrameData
  • [ ] TkAnimPoseComponentData
  • [ ] TkAnimPoseCorrelationData
  • [ ] TkAnimPoseData
  • [ ] TkAnimPoseExampleData
  • [ ] TkAnimPoseExampleElement
  • [ ] TkAttachmentData
  • [ ] TkAudioAnimTrigger
  • [ ] TkAudioComponentData
  • [ ] TkButtonImageLookup
  • [ ] TkButtonPathMapping
  • [ ] TkCameraWanderData
  • [ ] TkControllerButtonLookup
  • [ ] TkControllerList
  • [ ] TkControllerSpecification
  • [ ] TkCurveType
  • [ ] TkDynamicChainComponentData
  • [ ] TkEngineSettings
  • [ ] TkEngineSettingsMapping
  • [ ] TkEntitlementList
  • [ ] TkGameSettings
  • [ ] TkGeometryData
  • [ ] TkGraphicsSettings
  • [ ] TkHeavyAirData
  • [ ] TkImGuiData
  • [ ] TkImGuiSettings
  • [ ] TkImGuiWindowData
  • [ ] TkInputEnum
  • [x] TkInputFrame
  • [x] TkInputFrameArray
  • [ ] TkJointBindingData
  • [ ] TkJointExtentData
  • [ ] TkJointMirrorAxis
  • [ ] TkLanguageFontTable
  • [ ] TkLanguageFontTableEntry
  • [ ] TkLanguages
  • [ ] TkLanguagesAllowedData
  • [ ] TkLocalisationEntry
  • [ ] TkLocalisationTable
  • [ ] TkLSystemGlobalRestriction
  • [ ] TkLSystemGlobalVariation
  • [ ] TkLSystemInnerRule
  • [ ] TkLSystemLocatorEntry
  • [ ] TkLSystemRestrictionData
  • [ ] TkLSystemRule
  • [ ] TkLSystemRulesData
  • [ ] TkLSystemRuleTemplate
  • [ ] TkMaterialData
  • [ ] TkMaterialFlags
  • [ ] TkMaterialSampler
  • [ ] TkMaterialUniform
  • [ ] TkModelDescriptorList
  • [ ] TkModelRendererCameraData
  • [ ] TkModelRendererData
  • [ ] TkModelResource
  • [ ] TkNGuiAlignment
  • [ ] TkNGuiEditorLayout
  • [ ] TkNGuiEditorStyleData
  • [ ] TkNGuiGraphicStyle
  • [ ] TkNGuiGraphicStyleData
  • [ ] TkNGuiLayoutList
  • [ ] TkNGuiLayoutListData
  • [ ] TkNGuiTextStyle
  • [ ] TkNGuiTextStyleData
  • [ ] TkNGuiWindowLayoutData
  • [ ] TkNoiseCaveData
  • [ ] TkNoiseFeatureData
  • [ ] TkNoiseFlattenOptions
  • [ ] TkNoiseFlattenPoint
  • [ ] TkNoiseGridData
  • [ ] TkNoiseOffsetEnum
  • [ ] TkNoiseSuperFormulaData
  • [ ] TkNoiseUberData
  • [ ] TkNoiseUberLayerData
  • [ ] TkNoiseVoxelTypeEnum
  • [ ] TkPaletteTexture
  • [ ] TkParticleData
  • [ ] TkPhysicsComponentData
  • [ ] TkPhysicsData
  • [ ] TkPlatformButtonPair
  • [ ] TkProceduralModelComponentData
  • [ ] TkProceduralTexture
  • [ ] TkProceduralTextureChosenOption
  • [ ] TkProceduralTextureChosenOptionList
  • [ ] TkProceduralTextureChosenOptionSampler
  • [ ] TkProceduralTextureLayer
  • [ ] TkProceduralTextureList
  • [ ] TkRagdollData
  • [ ] TkReferenceComponentData
  • [ ] TkResourceDescriptorData
  • [ ] TkResourceDescriptorList
  • [ ] TkRotationComponentData
  • [ ] TkSceneNodeAttributeData
  • [ ] TkSceneNodeData
  • [ ] TkSpeedLineData
  • [ ] TkTextureResource
  • [ ] TkTrailData
  • [ ] TkTransformData
  • [ ] TkTrophyData
  • [ ] TkTrophyEntry
  • [ ] TkVertexElement
  • [ ] TkVertexLayout
  • [ ] TkVoxelGeneratorData
  • [ ] TkVoxelGeneratorRegionData
  • [ ] TkVoxelGeneratorSettingsArray
  • [ ] TkVoxelGeneratorSettingsElement

emoose avatar Aug 30 '16 00:08 emoose

You're meant to just be able to drag+drop a sym file to it, but looks like that doesn't work... If you make an ida and a ghidra folder in the same folder as the re4sym.exe it should work fine though hopefully.

emoose avatar Jul 17 '22 23:07 emoose

I fixed the tools, I will post them later with the tools for OpenMT(ツ)

cnexabyte avatar Jul 18 '22 00:07 cnexabyte