User:Hishutup/Unofficial Enderal Port: Difference between revisions

From Step Mods | Change The Game
Line 249: Line 249:
=== [https://steamcommunity.com/login/home/?goto=%2Fdev%2Fapikey Steam API] ===
=== [https://steamcommunity.com/login/home/?goto=%2Fdev%2Fapikey Steam API] ===
You'll have to agree to the Steam API terms, if you don't then you'll be unable to compile a file or two for achievements. As of this time, I haven't really figured this part out achievements.
You'll have to agree to the Steam API terms, if you don't then you'll be unable to compile a file or two for achievements. As of this time, I haven't really figured this part out achievements.
I would recommend placing this into your VS projects folder as it will be used later.
I would recommend placing this into your VS projects folder as it will be used later.<br />
In the redistributable_bin folder copy steam_api64.dll to SKyrimSE.exe directory, not sure if this step is required.


=== [https://skse.silverlock.org/ skse64] ===
=== [https://skse.silverlock.org/ skse64] ===

Revision as of 02:32, February 25, 2019

Unofficial Enderal Port[edit | edit source]

This is going to be a collection of step or a process in order to port Enderal into SSE. There are a few files that are required that cannot be provided and will have to be done manually. This process is fairly straight forward but I'm not all that concerned about pretty-ing up things. If someone want to take on that responsibility, feel free.
Also, do not be that person that asks the SureAI group for any help. You are the one that will ruin the fun.

Keep in mind there are several issues and I would definitely recommend to not use it in a play through as things will break for sure.

Download and configure MO2[edit | edit source]

Basically, the way I have things configured, I am using my vanilla install of SSE and then using some configuration in MO to facilitate the installation of Enderal from the Steam release.

Enderal[edit | edit source]

Download Enderal from the steam page and install it somewhere. We only need this to copy the assets from. Someone can probably put together some sort of symlink system, maybe later.

MO2[edit | edit source]

  1. Do the necessary setup as you would for any SSE modding setup.
  2. Create a mod folder in MO and call it something like "Enderal Base Files".
  3. Copy the Data folder from the Steam install into this folder.

Edit Inis[edit | edit source]

I don't know what all needs to be configured but glancing through the inis and doing a visual comparison there are very few modifications.

Skyrim.ini
[General]
sTestFile1=
sTestFile2=
sTestFile3=
sIntroSequence=1
SLocalSavePath=..\Enderal\Saves\
[MapMenu]
uLockedObjectMapLOD=32
uLockedTerrainLOD=32
sWorldMapOverlayNormalSnowTexture
sWorldMapOverlayNormalTexture
fWorldMapDepthBlurScale=0.0000
fMapWorldMaxPanSpeed=80000.0000
fMapWorldCursorMoveArea=0.4000
fMapWorldYawRange=20.0000
fMapWorldMinPitch=90.0000
fMapWorldMaxPitch=90.3000

Remove Extra SSE Files[edit | edit source]

  1. Create, or find an empty plugin, like that of the HD-DLC or by creating an override then deleting the record in xEdit.
  2. In xEdit flag the file as an ESM. Doing so keeps MO happy.
  3. Copy the file two more time and rename the empty esm to the dlc
    • Dawnguard.esm
    • HearthFires.esm
    • Dragonborn.esm
  4. Next create an empty BSA (or use the one from the archive above)
    • I was able to do this by extracting one of the default textures from the BSA and then packing the BSA with the official archive tool.
  5. Create two more copies of the empty BSA.
    • Skyrim - Voices.bsa
    • Skyrim - Voices_en0.bsa
    • Skyrim - VoicesExtra.bsa
  6. Create a new mod folder in MO called "SSE File Remover" or the like.
  7. Move all the created files into that mod.

Activate Enderal BSAs[edit | edit source]

I don't really care to add the inis as I don't really want to deal with it.

  1. Create an empty plugin file, like that of the empty masters.
  2. Don't flag it as an esm
  3. Create eight more copies
    • E - Meshes.esp
    • E - Music.esp
    • E - Scripts.esp
    • E - Textures1.esp
    • E - Textures2.esp
    • E - Textures3.esp
    • L - Textures.esp
    • L - Voice.esp

Porting Assets[edit | edit source]

Packed Files[edit | edit source]

  1. Download SSE Assets Optimizer.
  2. Create a folder somewhere and grab one of the BSAs from the Enderal Base Files folder
  3. Startup the program and tick all the boxes and point the directory to the folder you just created.
  4. Run the application and wait till it finishes.
  5. Return to the folder that the BSA was copied to and where the application was pointed to and rename the new "Dummy" file back to the original name of the BSA.
  6. Move this file into a new mod folder for MO called "Converted BSAs"
  7. Do this for all the BSAs

Loose Files[edit | edit source]

  1. Copy the meshes folder from Enderal Base Files to the temporary folder
  2. Start the SSE Assets Optimizer and untick Optimize BSA
  3. Start and let finish
  4. Copy files to the Converted BSAs folder

Replacing SKSE DLLs[edit | edit source]

~~ DLL SECTION UNDER CONSTRUCTION ~~


The dlls included with Enderal are not only not compatible with the x64 executable but it has to be for a specific version of skyrim.

I have no idea what assets are required from the replacements. I assume Enderal is perfect and the replacements for the DLLs are compatible with the old scripts.

Deleting or Hiding Originals[edit | edit source]

While you follow this section, be sure to remove or delete the old plugin's files as you install the replacement.


AHZmoreHUDPlugin.dll (moreHud)[edit | edit source]

Replacement: moreHud SE

Adds additional information to the HUD, including if a book is read, value by weight, enchantments and if you've already learned them, and more.

Installation[edit | edit source]

- Only install the SKSE\Plugins\AHZmoreHUDPlugin.dll file, replacing the one that came with Enderal.


CrashFixPlugin.dll (Crash Fixes)[edit | edit source]

Replacement: SSE Engine Fixes

There are so many things this plugin does for Oldrim, but where we're going it won't help us, so grab the equivalent for SSE.

Installation[edit | edit source]
  1. Remove the following files:
    • \Data\SKSE\Plugins\CrashFixPlugin.dll
    • \Data\SKSE\Plugins\CrashFixPlugin.ini
    • \Data\SKSE\Plugins\CrashFixPlugin_preload.txt
  2. Install SSE Engine Fixes Part 1
  3. Open SKSE\Plugins\EngineFixes64.ini
    • Edit the following:
INI changes will be added when settings are examined.
For now, leave EngineFixes64.ini at default.
    • Open SKSE\Plugins\EngineFixes64_SNCT.ini
    • Edit the following:
INI changes will be added when settings are examined.
For now, leave EngineFixes64_SNCT.ini at default.
  1. Install SSE Engine Fixes Part 2.
    • Part 2 is installed to SSE's root folder, where SkyrimSE.exe, SkyrimSELauncher.exe, and skse64_loader.exe are.


flat_map_markers.dll (Flat Map Markers)[edit | edit source]

Replacement: Flat Map Markers SSE

This moves all of the map markers onto the same plane, preventing them from moving around based on perspective as you look around the map.

Installation[edit | edit source]
  1. Install entire package
  2. Open SKSE\Plugins\FlatMapMarkersSSE.json
  3. Replace contents with the following:
{
	"whiteListedWorldSpaces": [
		{
			"name": "Vyn, Enderal",
			"editorID": "Vyn",
			"markerHeight": 100000.0,
			"enabled": true
		}
	]
}


fs.dll[edit | edit source]

This is a dll specific to Enderal. The source is included with Enderal. You will need this and sadly, I cant provide the file. I have a tentative guide further down. It is by all means totally not recommended.


InsertAttackData.dll[edit | edit source]

Not sure, there is an equivalent. Only install the SKSE\Plugins\InsertAttackData.dll file.


JContainers.dll[edit | edit source]

I'm going to guess this is for JSON, there is a replacer for SSE.


LipSyncFix.dll[edit | edit source]

This file was specific for oldrim, it adjusted the lip sync. Again, not needed.


MDX_NoPoisonDialogs.dll[edit | edit source]

Removed the poison dialogue box, there is a replacer


MfgConsole.dll[edit | edit source]

I believe this enhances the console. I don't know if there is a replacer, I don't really care though.


OneTweak.dll[edit | edit source]

I was never a fan. There is a replacement but I don't care.


SkyrimRedirector.dll[edit | edit source]

This plugin redirects the ini location, not needed as we have mo.


StorageUtil.dll[edit | edit source]

I have no idea, there is a replacer though. Only install the SKSE\Plugins\StorageUtil.dll file.


tkplugin.dll[edit | edit source]

Not sure, but there is a replacer. Only install the SKSE\Plugins\tkplugin.dll file.


WIP Recompiling an skse dll as skse 64[edit | edit source]

This is a generic guide to compile very basic plugins to x64.
Honestly, I have some idea of what I am doing, but I am quite literally figuring it out as I go.
I'll work on something a bit later to verify the functionality of the plugin.

Visual Studio 2017 Community[edit | edit source]

As far as I know, it doesn't really matter which version of VS(Visual Studio) you use.
I barely know how to use this very powerful tool and all I can recommend is install it and attempt to follow the guide.

Steam API[edit | edit source]

You'll have to agree to the Steam API terms, if you don't then you'll be unable to compile a file or two for achievements. As of this time, I haven't really figured this part out achievements. I would recommend placing this into your VS projects folder as it will be used later.
In the redistributable_bin folder copy steam_api64.dll to SKyrimSE.exe directory, not sure if this step is required.

skse64[edit | edit source]

Grab this and install it for the base game if you haven't already, you only need the exe and dlls. You'll need the src folder, rather what is inside of it.

Recompiling from src in x64 from win32 - Needs lots of work[edit | edit source]

This will not apply for all skse plugins. It just happens that the one we require doesn't have any offsets that are build specific, thankfully.

  1. Create a temporary folder somewhere, if it is in a protected directory, you may need to launch VS as admin. I had this struggle with a couple files not being written.
  2. Copy the dll's source from the necessary folder which may be inside the skse folder and place the files in the temporary directory a way that the .sln file is in the root.
  3. Delete the common and skse folders from the temporary directory. Yes this will break stuff.
  4. Copy the files from skse64's src folder into the root of the temporary directory to replace the folders we just deleted.
  5. Open the plugin's solution file.
  6. You may receive a couple dialogues about required files, just install everything. I don't know what in particular is required.
  7. When you get a dialogue about source control, just click yes to remove all source control. I don't know VS enough to really know how to properly use this. Plus this is a one off compile, we don't really need to worry about source control.
  8. If you get a dialogue about updating or installing the version of libraries, accept or install.
  9. Remove the skse and common projects from the solution, don't save any changes to those projects.
  10. Add existing projects to the solution from the temporary folder, in this order:
    • common\common_vc14.vcxproj
    • skse64\skse64_common\skse64_common.vcxproj
    • skse64\skse64\skse64.vcxproj
  11. In Build\Configuration Manager
    • Set to Release, x64
    • add the x64 platform for the solution, by creating it the first time
    • Set the platform of all projects to x64 and release
    • Verify that all the build checkboxes are ticked.
  12. Select the current project and then add references
  13. Tick all the projects that we added earlier
  14. Open the properties window for the steps below.
    • common_vc14
      1. C/C++\General\Additional #using Directories, add a new directory
        • $(SolutionDir)common
    • skse64
      1. General\Configuration Type, set to static
      2. C/C++\General\Additional #using Directories, add a new directory
        • $(SolutionDir)common
        • $(SolutionDir)skse64
      3. Build Events\Post-Build Event\Command Line: delete this.
    • skse64_common
      1. C/C++\General\Additional #using Directories, add a new directory
        • $(SolutionDir)common
        • $(SolutionDir)skse64
    • Current project
      1. C/C++\General\Additional #using Directories, set the directories to the following
        • $(SolutionDir)
        • $(SolutionDir)\..
        • $(SolutionDir)common
        • $(SolutionDir)skse64
      2. Linker\Additional Library Directories, add a new directory which points to the steam SDK's redistributable bin folder for win64
      3. Linker\Input\Additional Dependencies, change the steam_api.lib to steam_api64.lib
  15. In the current project change all the "skse/" references to "skse64/".
  16. In one or more files there may still be red in the includes try pointing the files to "skse64_common/" directory instead
  17. Typically in main.cpp of the current project there is a reference to skyrim version, change it to the version of skse, as of writing this change RUNTIME_VERSION_1_9_32_0 to RUNTIME_VERSION_1_5_62
  18. Depending on the project there may be some data structure changes, for this project change the following errors to:
    • FormHeap_Free()
      Heap_Free()
    • effectItems.arr.entries
      effectItems.entries
    • ExtraContainerChanges::EntryData
      InventoryEntryData
    • ExtraContainerChanges::EntryDataList
      EntryDataList
    • RUNTIME_VERSION_1_9_32_0
      RUNTIME_VERSION_1_5_62
  19. Check to make sure you are set to build in x64 and for Release
  20. I would highly recommend building files in this order and verify that there are no errors, warnings seem ok and that things are building in x64
    1. common
    2. skse64_common
    3. skse64
    4. current project


Extra Mods[edit | edit source]

I guess this is where mods will be added to alleviate some of the issues that SSE has.

Caliente's Beautiful Bodies Enhancer -CBBE-[edit | edit source]

There is an issue with female feet glitching out horrifically, this solves and doesn't leave a horrible seam. Manually install the following files from the Core folder

meshes\actors\character\character assets\femalefeet_*

SkyUI[edit | edit source]

The system menu crashes when it is accessed. The skyui file alleviates the crash but leaves two unsightly missing translations. Toggle "BSA Extractor" in mo and then install, confirming to extract. Delete all files except

interface\quest_journal.swf

SSE Character Specular Lighting Fix[edit | edit source]

Install this, Ignore on the box for mo. I think this is relevant...

Realistic Water Two[edit | edit source]

If you look at the waterfalls in enderal you can see a green glowing mesh, this kind of helps, by eliminating it. Use the default options on the installer. Only install the meshes and textures folder, no plugins.

Issues with SSE and Enderal[edit | edit source]

Critical[edit | edit source]

Things that actually impact gameplay.

Required binary file[edit | edit source]

You need fs.dll to play actually play enderal. Without there are a few things that will break.


Objects have distorted texture mapping[edit | edit source]

Not sure how to fix this. The texture appears to be corrupt in some manner. One object that has this is

meshes\enderal\clutter\miscellaneous\cart.nif

Meshes glitching out all over the screen[edit | edit source]

Only affect the game when looking in the direction but can case shadows with the glitching parts. Some objects are fixed by using the Nif Optimizer and ticking the Smooth Normals box.

Objects that have this issue and can be resolved

meshes\enderal\armor\wanderer\

Minor[edit | edit source]

Can live with, but annoying

Extra options without translations on system page[edit | edit source]

The skyui file for sse was required to workaround a crash, but leaves two unsightly options that are missing translation strings.

Shadows and reflections flicker on water[edit | edit source]

Some shadows or maybe invalid reflections flicker on the water. Kind of distracting.

Weathers have too much bloom[edit | edit source]

Not sure if its normal or a side effect of the differences between Enderal an SSE. Should be possible to have a weather replacer that addresses minor issues and add SSE features.