Jump to content

Unofficial Enderal Port to SSE


hishutup

Recommended Posts

"Guide" Link

This is a small "guide" for Enderal on SSE.

There are a number of issues and it is far from perfect, but what I currently know is on that page, hopefully.

 

If there is anything that I am missing feel free to add, edit or post here.

If there is a better way to do something that has the same outcome, change it.

 

And, no I do not recommend doing a playthrough on SSE yet.

Too many critical bugs today.

Link to comment
Share on other sites

I am aware of this, I went with the other route because it was easier at the time, I'll probably change this.

 

Edit: Scratch that, there are so many Texture bsas that I am worried about char count. I didn't actually do the math but looking at it, I am concerned.

Link to comment
Share on other sites

Very interesting.

I love Enderal and have played and modded it a lot since it was released.

I have now also put a few hours in the Steam release and i am impressed.

Enderal is more polished, stable and bug free than Skyrim.

What could we expect in terms of improvement with an SE version?

Will it ever be worth the hazard of porting (from a gameplay point of wiev)?

Link to comment
Share on other sites

  • 2 weeks later...

At some point in time I'll add the ini string to load the BSAs but today its just fs.dll nonsense.
I was able to get the plugin compiled, but for some reason the steam api that SkyrimSE was built with will not work with the lib file that I retrieved from the sdk. Its probably best to just comment out the achievements function in the main.cpp and then remove the achievements from the project.

 

After all that the game will load the plugin fine or rather I was was at least able to build a version that worked. I made a small test framework and I know the functions are running code but I am not seeing any "real" values though that is probably because I am using the new functions incorrectly as they are incredibly complex looking through how these functions are implemented into papyrus.

Most errors with the compiler are related to the include paths.

 

After that dll all that is really left is just finding all the problematice meshes. The issues are usually some sort of visual glitch. I havent had one crash yet.
The performance difference is very notable, oldrim fs is about 35fps near Ark, SSE Im able to reach the cap of my monitor at 100fps.
 

Link to comment
Share on other sites

I'm not certain and haven't tested SSE as to whether it even has trouble too high character count. Original Skyrim needed to be 255 characters or less, but the default sResourceArchiveList2 that everynody uses makes use of 259 characters. So unless nobody is actually receiving the contents of Skyrim - Patch.bsa, I think the character limit has been increased.

 

According to Mator from this post: https://www.afkmods.com/index.php?/topic/5132-bsa-load-from-plugin-ini-files/

 

New limit is closer to ~512.

Link to comment
Share on other sites

  • 2 weeks later...

I think Steam achievements might be possible.

  1. Download the Steamworks SDK (not the Steam Web API) from https://partner.steamgames.com/ and unpack it somewhere.
  2. Copy the steam folder from sdk\public and paste it in the solution folder.
  3. Copy the two files from sdk\redistributable_bin\win64 and paste them in the solution folder.
  4. In Visual Studio, select the FS project, open Properties -> Linker -> Input -> Additional Dependencies, and add $(SolutionDir)steam_api64.lib.
  5. Edit Achievements.cpp as follows.
    • Before:
      #include "GameMenus.h"
      #include "GameEvents.h"
    • After:
      #include "skse64\GameMenus.h"
      #include "skse64\GameEvents.h"

Also, in addition to the other updates your guide currently notes, I had to edit common.cpp as follows.

  • Before: #include "skse64/skse_version.h"
  • After: #include "skse64_common/skse_version.h"

I was able to build successfully.  Haven't actually tested the resulting dll to see if it works, though.  Need to call it a night for now.

Link to comment
Share on other sites

Yeah, I have the steam api, but then fs.dll throws an error about not being able to find some entry point.
Swapping the skyrim's steam_api64.lib with the one provided in the sdk causes skyrim to not find the entry point.

It shouldn't be necessary to edit any of skse's project files.
As for main.cpp, the skse_version header is the only one that needs the skse64_common path.

Link to comment
Share on other sites

Whoops, I meant main.cpp.  I don't think common.cpp even exists in any of the projects.

 

In any case, I tried to run the game tonight and encountered the same entry point errors that you encountered.  I was almost about to give up when I found that old versions of the Steam SDK are available here: https://partner.steamgames.com/downloads/list

 

The correct SDK version appears to be 1.34.  It has the same version of steam_api64.dll that Skyrim SE uses: v2.89.45.4. 

 

I tried recompiling with this version.  Now I don't get entry point errors, but the game just crashes silently at the same stage as before.  Hmm.  I'll keep poking at it.  I haven't converted assets yet (animations, etc.), so I should probably take care of those details.

Link to comment
Share on other sites

I changed some of the asset porting instructions.
Running sse nif optimizer on all assets causes the game to crash.

At this point run sse asset optimizer and just have it do everything which is nice because its basically a one-click solution that is mostly accurate.

Thanks for the heads up about the version.
Ill add the necessary information.

If you want to change stuff feel free.

EDIT: Apparently there was a pretty big bug with SAO that caused it to not run NifOpt on the majority of the meshes.
Let see what happens with the newly ported BSAs and dll.
It works pretty good actually, most things resolved themselves.
Map still doesnt work like it should.

Link to comment
Share on other sites

  • 1 year later...

I have an issue with setting up the source files with Visual Studio.

It spits out a lot of errors but I did everything like you have written in the guide multiple times.

 

What about the Steamworks API? How should I get an old version from that? I only can download the latest.

Can I compile the DLL without the achievements? So if I delete the Achivements files from the project and comment out/remove the include then it should work?

 

 

It seems it can't load a ton of header files. The SKSE source files have so many errors. The Enderal source files not so many.

 

"Forced Include File" is set to "common/IPrefix.h" but the output window says that it can't be loaded.

 

There are over 2000+ errors.

 

 

Also in the file CreatePotion.h there is a warning for "createPotion" Function definition for 'createPotion' not found.

 

In the PhasmalistInventoryFunctions.cpp I changed it to "ExtraContainerChanges* ecc = DYNAMIC_CAST" like you said in the guide but then on the "return ecc->data->objList;" it throws an error at me with "return value type does not match the function type"

 

This source file have a lot of semicolon and bracket errors.

 

Would be cool to get some help.

Edited by overdev
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.