Skip to content

Instantly share code, notes, and snippets.

@Sajidur78
Created April 20, 2022 17:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Sajidur78/8ec42a011ed5d8df3a2ead2eae3007bf to your computer and use it in GitHub Desktop.
Save Sajidur78/8ec42a011ed5d8df3a2ead2eae3007bf to your computer and use it in GitHub Desktop.
Binary template for Lost World's .hhd files
enum<byte> bool { False = 0, True = 1 };
typedef struct { float x; float y; float z; float w<hidden=true>; } vector3;
enum<byte> GIModeTypes {
GIMODE_NORMAL = 0,
GIMODE_ONLY = 1,
GIMODE_NONE = 2,
GIMODE_SHADOW = 3,
GIMODE_SEPARATED = 4,
};
enum<byte> LightFieldModeTypes {
LFMODE_NORMAL = 0,
LFMODE_ONLY = 1,
LFMODE_NONE = 2,
};
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); float gammaTVWiiU;
FSeek(p + 4); float gammaDRCWiiU;
FSeek(p + 8); bool fixedLdr;
FSeek(p + 9); GIModeTypes giMode;
FSeek(p + 10); LightFieldModeTypes lightFieldMode;
FSeek(p + 11); bool drawLightFieldSamplingPoints;
FSeek(p + 12); bool updateLightFieldEachFrame;
FSeek(p + 13); bool drawLightFieldRegion;
FSeek(p + 16); int screenshotLargeScale;
FSeek(p + 20); bool drawFxColGeom;
FSeek(p + 21); bool drawFxColName;
FSeek(p + 22); bool drawLocalLightSphere;
} FxSceneConfig;
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); float rangeDefault;
FSeek(p + 4); float rangeNear;
FSeek(p + 8); float rangeMiddle;
FSeek(p + 12); float rangeFar;
} FxCullingSettings;
enum<byte> PeepingPlayerType {
TYPE_DEFAULT = 0,
TYPE_EDGE = 1,
};
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); float skyIntensityScale;
FSeek(p + 4); float skyFollowupRatioY;
FSeek(p + 8); bool pseudoFogEnable;
FSeek(p + 9); bool pseudoFogWithoutFar;
FSeek(p + 10); bool pseudoDof;
FSeek(p + 11); bool deepBlurEnable;
FSeek(p + 12); bool noBlurEnable;
FSeek(p + 16); float blurScale;
FSeek(p + 20); bool peepingPlayerEnable;
FSeek(p + 24); float occCheckedPlayerTime;
FSeek(p + 28); PeepingPlayerType peepingPlayerType;
FSeek(p + 29); bool clearFirstSurface;
FSeek(p + 30); bool useManualZPrepass;
FSeek(p + 31); bool useCaptureFramebufferColor;
FSeek(p + 32); bool useCaptureFramebufferDepth;
FSeek(p + 33); bool playerDrawOverlay;
} FxSceneSettings;
enum<byte> EyeLightMode {
LIGHTMODE_DIR = 0,
LIGHTMODE_POINT = 1,
};
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); bool globalLightEnable;
FSeek(p + 1); bool ambLightEnable;
FSeek(p + 2); bool allLocalLightEnable;
FSeek(p + 3); bool eyeLightEnable;
FSeek(p + 4); EyeLightMode eyeLightMode;
FSeek(p + 16); vector3 eyeLightDiffuse;
FSeek(p + 32); vector3 eyeLightSpecular;
FSeek(p + 48); float eyeLightRangeStart;
FSeek(p + 52); float eyeLightRangeEnd;
} FxLightSettings;
enum<byte> SaturationScalingType {
SATURATION_KEEPING_LUMINANCE = 0,
SATURATION_KEEPING_BRIGHTNESS = 1,
SATURATION_NONE = 2,
};
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); bool ignoreData;
FSeek(p + 1); byte defaultUpdateInterval;
FSeek(p + 16); vector3 offsetColorUp;
FSeek(p + 32); vector3 offsetColorDown;
FSeek(p + 48); SaturationScalingType saturationScalingType;
FSeek(p + 52); float saturationScalingRate;
FSeek(p + 56); float luminanceScalingRate;
FSeek(p + 60); bool disableFinalAdjustColor;
FSeek(p + 64); float luminanceMin;
FSeek(p + 68); float luminanceMax;
FSeek(p + 72); float luminanceMidium;
FSeek(p + 76); float intensityThreshold;
FSeek(p + 80); float intensityBias;
FSeek(p + 84); float defaultInterruption;
FSeek(p + 96); vector3 defaultColorUp;
FSeek(p + 112); vector3 defaultColorDown;
} FxLightFieldSettings;
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); bool enable;
FSeek(p + 16); vector3 color;
FSeek(p + 32); float depthScale;
FSeek(p + 36); float inScatteringScale;
FSeek(p + 40); float rayleigh;
FSeek(p + 44); float mie;
FSeek(p + 48); float g;
FSeek(p + 52); float znear;
FSeek(p + 56); float zfar;
} FxLightScatteringSettings;
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); bool enable;
FSeek(p + 1); bool adaptationEnable;
FSeek(p + 4); float adaptationRatio;
FSeek(p + 8); float middleGray;
FSeek(p + 12); float luminanceLow;
FSeek(p + 16); float luminanceHigh;
} FxHdrSettings;
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); bool enable;
FSeek(p + 4); float brightPassThreshold;
FSeek(p + 8); float brightPassInvScale;
FSeek(p + 12); float persistent;
FSeek(p + 16); float bloomScale;
} FxGlareSettings;
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); bool enable;
FSeek(p + 1); bool ignoreSky;
FSeek(p + 4); float focus;
FSeek(p + 8); float znear;
FSeek(p + 12); float zfar;
FSeek(p + 16); float focusRange;
} FxDofSettings;
enum<byte> TimeType {
TIME_NONE = 0,
TIME_MORNING = 1,
TIME_DAY = 2,
TIME_EVENING = 3,
TIME_NIGHT = 4,
};
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); float middleGray;
FSeek(p + 16); vector3 baseColor;
FSeek(p + 32); vector3 light;
FSeek(p + 48); float skyIntensity;
FSeek(p + 64); vector3 sky;
FSeek(p + 80); vector3 ambient;
FSeek(p + 96); vector3 lightScattering;
} FxHourSettings;
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); bool enable;
FSeek(p + 1); bool ignoreSky;
FSeek(p + 2); TimeType timeDebugIndex;
FSeek(p + 4); float morning;
FSeek(p + 8); float day;
FSeek(p + 12); float evening;
FSeek(p + 16); float night;
FSeek(p + 32); FxHourSettings hourParams[4]<optimize=false>;
} FxTimeChangeSettings;
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); float shadowScaleX;
FSeek(p + 4); float shadowScaleY;
FSeek(p + 8); float shadowScaleLightFieldY;
} FxInShadowShadowScaleSettings;
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); float shadowScaleZ;
FSeek(p + 4); float shadowScaleW;
FSeek(p + 8); float shadowScaleLightFieldW;
} FxOnSceneShadowScaleSettings;
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); FxInShadowShadowScaleSettings shadowScaleInShadow;
FSeek(p + 12); FxOnSceneShadowScaleSettings shadowScaleOnScene;
} FxShadowScale;
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); bool grassIsHide;
FSeek(p + 4); float grassHeightMin;
FSeek(p + 8); float grassHeight;
FSeek(p + 12); float grassWidth;
FSeek(p + 16); float grassFar;
FSeek(p + 20); float grassFarEnd;
FSeek(p + 24); float grassWindAxis;
FSeek(p + 28); float grassWindSpeed;
FSeek(p + 32); float grassWindCycle;
FSeek(p + 36); float grassWindStrength;
FSeek(p + 40); uint grassDupCount;
FSeek(p + 44); float grassDupRange;
} FxGrassSettings;
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); bool distortionIsUse;
FSeek(p + 4); float distortionSpeed;
FSeek(p + 8); float distortionPower;
FSeek(p + 12); float distortionDensity;
FSeek(p + 16); float distortionDepthDensity;
FSeek(p + 20); float distortionPowerBloom;
FSeek(p + 24); float distortionPowerDepth;
FSeek(p + 28); float distortionPowerFront;
FSeek(p + 32); float distortionDensityFront;
} FxStageDistortion;
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); bool enable;
FSeek(p + 16); vector3 shadowColor;
FSeek(p + 32); float shadowAlpha;
} FxStencilShadow;
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); float lightScale;
FSeek(p + 4); float shadowScale;
} FxEffectSettings;
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); bool isUseCasinoLight;
FSeek(p + 16); vector3 casinoLightAABBMin;
FSeek(p + 32); vector3 casinoLightAABBMax;
FSeek(p + 48); float casinoLightMoveRatio;
FSeek(p + 52); float casinoLightStrengthMax;
FSeek(p + 56); float casinoLightRadMin;
FSeek(p + 60); float casinoLightRadMax;
} FxSceneCasinoLight;
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); FxCullingSettings culling;
FSeek(p + 16); FxSceneSettings scene;
FSeek(p + 64); FxLightSettings light;
FSeek(p + 128); FxLightFieldSettings lightField;
FSeek(p + 256); FxLightScatteringSettings olsNear;
FSeek(p + 320); bool separateOlsLayer;
FSeek(p + 336); FxLightScatteringSettings olsFar;
FSeek(p + 400); FxHdrSettings hdr;
FSeek(p + 420); FxGlareSettings glare;
FSeek(p + 440); FxDofSettings dof;
FSeek(p + 464); FxTimeChangeSettings timeChange;
FSeek(p + 944); FxShadowScale shadowScale;
FSeek(p + 968); FxGrassSettings grassSetting;
FSeek(p + 1016); FxStageDistortion stageDistortion;
FSeek(p + 1056); FxStencilShadow stencilShadow;
FSeek(p + 1104); FxEffectSettings effect;
FSeek(p + 1120); FxSceneCasinoLight casinoLight;
} FxParameter;
typedef struct {
local uint64 p<hidden=true> = FTell();
FSeek(p + 0); FxSceneConfig config;
FSeek(p + 32); FxParameter items[4]<optimize=false>;
} FxSceneData;
FxSceneData data;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment