This Is A Fork Of The Subnautica Data Framework Mod Made By Limo, Mostly For Testing Purposes.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
- Clone The Repo
git clone https://github.com/LabrynthKing/SDF
cd SDF- Pull Submodules (Need Access To Unreal Engine Repo To Succeed)
git submodule update --init --recursive- Build Using Your Preferred Method
After Trying To Build This Repo On Linux, I Encountered A Few Issues Due To How The SDK & UE4SS Are Setup. This Is Just What I Did To Fix These Issues, This May Or May Not Work For You.
Some Info About My Linux Installation:-
- Distro: CachyOS (Arch Based)
- Shell: Fish
- Using Hyprland (Don't Think This Is Important But Oh Well)
- Enums From The SDK Do Not Compile Due To
clang-clEnforcing Some Type Validation During Casting. - Windows Header Macro Pollution =>
InterlockedCompareExchangePointer&MemoryBarrierClash With UE4SS'FWindowsPlatformAtomics - Const Qualifier Drop Errors In The SDK Files =>
*DrumComponent = Parms.DrumComponent; - MASM Assembler Emulation
- Use
/clang:-Wno-c++11-narrowingTo Ignore The Enum Errors - PRE-APPLIED - In
UnrealDef.hpp, Add This
#pragma once
// Undefine Windows Macros
#undef InterlockedCompareExchangePointer
#undef MemoryBarrier- Explicitly Cast Qualifiers
// *DrumComponent = Parms.DrumComponent;
// *DrumComponent_0 = Parms.DrumComponent_0;
*DrumComponent = (class UPrimitiveComponent*)Parms.DrumComponent;
*DrumComponent_0 = (class UPrimitiveComponent*)Parms.DrumComponent_0;- For The MASM, I Used
JWasm, Then I Used A Script To Filter Out Clang Flags & Link JWasm Asml64
yay -S jwasmecho '#!/bin/bash
args=()
for arg in "$@"; do
if [[ "$arg" != /clang:* && "$arg" != -w ]]; then
args+=("$arg")
fi
done
exec /usr/bin/jwasm -win64 "${args[@]}"' | sudo tee /usr/local/bin/ml64 > /dev/null
sudo chmod +x /usr/local/bin/ml64This Repo Is Just A Fork For Testing Purposes So Sure Go Ahead If You Have Something Great To Add