• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Fix in Progress CTD on Low End XP PC

DAT66

Sailor Apprentice
Hello altogether,

I want to start this thread to find out what causes the latest build 4.1: 31st August 2017 to crash on OS WinXP or older hardware like mine. The goal is to find out is it WinXP or system requirements, and maybe add a low end option to your install.exe of this amazing mod "NEW HORIZONS"

I must admit though, my knowledge about hard & software is from installing and playing modded games over 10 years now, so NOT educated in any way for this. I guess my XML based modding for FS13 has no relevance and will not help me here.

Since last winter I play with the 3.4 and have no serious complains, it works well.

2 weeks ago I continued playing this again ( I change games after my mood, pirate, dragon slayer, Emporer of a space empire…), noticed the update and installed it.

Since then I have CTD's everywhere, this version does not work for me.

Now I have a fresh install, only main files & 16:9 textures, default settings (except my screen res: 1600x900, too high?), and started with Vanilla (urgh) "Tales of a Seahawk". During the tutorial I had a lil sword crossing with Malcolm at Deck and from there I wanted to land, but there was the first crash. Copied the files and noticed - no error.log!?!? In engine.ini its activated. Loaded save from deck, and crashed again!

At this point I would need some help from anyone. I can work with some hints and test play, as long I have the spare time.
Here the scrap if have rearranged to a working PC! Phenom X4, 3Ghz, 4Gb Ram, Radeon 5700, 1Gb Vram, Sata HD 1TB, and a proper cooling of course.

Thank's for your attention, ...and your help?
 

Attachments

  • -=DAT1=- Barbados.zip
    595.8 KB · Views: 203
  • compile.log
    7.5 KB · Views: 245
  • engine.ini
    35.2 KB · Views: 216
  • system.log
    474 bytes · Views: 264
  • Leveling.c
    59.1 KB · Views: 284
Last edited:
So the game does work, as long as you're in the tutorial.
But it crashes as soon as you go into a larger location.
That supports my suspicion.

Can you find your Leveling.c file and upload that? I expect that is a good place to start investigating.
 
So the game does work, as long as you're in the tutorial.
But it crashes as soon as you go into a larger location.
That supports my suspicion.

Can you find your Leveling.c file and upload that? I expect that is a good place to start investigating.

I attached it to the upper post.

Yes, the game works. Last week i could enter Nevis and maybe the store, but then i couldnt leave. This time i cant even land.
BTW: just came out of my other game, still fine!
 
attached it to the upper post.
Thanks!

First things to do would be to set all these #defines to 2:
Code:
#define DEBUG_EXPERIENCE 0     //(int) on 0 no messages are given. on 1 only error, on 2 everything is given.
#define DEBUG_POSTINIT  0     //(int) on 0 no messages are given. on 1 only error, on 2 everything is given.
#define DEBUG_NOAUTOLEVEL 0     //(int) on 0 no messages are given. on 1 only error, on 2 everything is given.
#define DEBUG_PERKSELECT 0     //(int) on 0 no messages are given. on 1 only error, on 2 everything is given.
#define DEBUG_OFFICERPRICE 0     //(int) on 0 no messages are given. on 1 only error, on 2 everything is given.
That enables a lot of extra debug stuff that will hopefully confirm or deny my suspicion.

And if my suspicion is indeed right, these would be the performance-related settings to tweak:
Code:
#define POSTINIT_AMOUNT_PIECES   3  // INT - Divide the XP given to a character on a post init run by this. Make this higher to increase amount of FPS at load, but longer post init
#define POSTINIT_AMOUNT_LEVELS   1  // INT - Amount of levels done simultaniously on post init. Higher is lower post init time but also lower FPS on load
#define POSTINIT_MAX_ALLOW_LEVEL_POST 20  // INT - Characters higher then this level wont be going trough post init, lower this to get shorter post init but longer loading times
If I read the comments correctly:
- Increase POSTINIT_AMOUNT_PIECES
- Keep POSTINIT_AMOUNT_LEVELS the same (sounds like increasing it would make things worse, but I don't think it should be lower than 1)
- Decrease POSTINIT_MAX_ALLOW_LEVEL_POST

I would recommend changing one or the other, see what happens, then try the other. Try to keep your modified numbers close to the original ones if you can.
You'll probably have to find a balance between in-game performance (just after a location has been loaded) and the loading time prior to the location being loaded.
 
Thanks!

I would recommend changing one or the other, see what happens, then try the other. Try to keep your modified numbers close to the original ones if you can.
You'll probably have to find a balance between in-game performance (just after a location has been loaded) and the loading time prior to the location being loaded.


Great, this is something I can do. Starting this evening (have some work today). Noticed the loading time is longer than befor, could already confirm youre suspicion.

See you later
 
Noticed the loading time is longer than befor, could already confirm youre suspicion.
Did you already change some numbers then?

Anyway, good luck with testing! Hopefully this will lead somewhere useful. :onya
 
Did you already change some numbers then?

Anyway, good luck with testing! Hopefully this will lead somewhere useful. :onya


Hi, or is ahoy right here?:unsure

First no, I did not change yet. That was about loading 4.1, my 3.4 is faster creating a new game.:type1

Now, I have done some changes and tested them. Unsure what if discovered but I hope I could collect some useful info for you. Have zipped all system and compile.log's with a few saves together. And of course I have made a test.log (inkl.), the folders are the single steps, easy to follow.

Noticed one value does affect the FPS - frames per second? Why increase that? Would locking the frames not make it more stable? Could stutter yes.

During that my trouble shooting for Fallout NV lead my thoughts to something else, the core use. This was designed for 1 core today we have multicore, that caused FO to CTD at world space change, setting a bound to 1 or 2 cores fixed that. Must admit - my FO install is deleted. An idea for a scripter?

Hope we find something, but that would require a new game for me and I have to find my Marauder again (Corsair Frigate)! Hmm, don’t know why, but for pirating.. I like it.:ship:guns::duel:
 

Attachments

  • DAT_NH4.1Test1.zip
    1.8 MB · Views: 260
  • DAT_NH4.1Test2.zip
    1.8 MB · Views: 265
Last edited:
:ahoy

Works for me! :cheers

Capping the frame rate is a good idea. On my system the max it can handle is 150fps and then it actually goes into slow motion mode. If you prefer 60fps, then put it there.
 
:ahoy

Works for me! :cheers

Capping the frame rate is a good idea. On my system the max it can handle is 150fps and then it actually goes into slow motion mode. If you prefer 60fps, then put it there.

:ahoyNice, if i knew where.
I meant this line in Leveling.c
#define POSTINIT_AMOUNT_PIECES 7 // INT - Divide the XP given to a character on a post init run by this. Make this higher to increase amount of FPS at load, but longer post init
I have no clue where to set basic things like in other games .ini! Give me a hint and i'll try it tomorrow. In games like Skyrim with lots of 2k textures and two 4K armors for my Companions right beside me all the time, i have between 50-60. GT-Legends with ENB update to dx9 - 50. :oops:
 
Would locking the frames not make it more stable?
How would you lock it?
If the framerate increases, it is because the stress on the computer is reduced.
So if the game crashes because it has to do too much at the same time, giving it less to do should help.
 
If the framerate increases, it is because the stress on the computer is reduced.
giving it less to do should help.

That the thought behind, read in mod forums somewhere, locking framerate would prevent some crashes. Im already searching but.. so much games... and much more mods...! These are just ideas from modders of other games. No clue about technical background, ask me about cars.. (no new ones, please)

At least i can attache one of my Skyrim ini's. This is from the ENB-injector version.
In line 44 you have the limiter, mine is unlocked, but this can help.

Another reason why i like ENB, the block above Line 35 "engine".

You see, ENB is more than just graphic effect booster. It could help reduce the "stress".

I guess scripters have better understanding of that and may know a better way to do such things. On the other hand, not all need this and if to complicated....
 

Attachments

  • enblocal.ini
    1.6 KB · Views: 228
That the thought behind, read in mod forums somewhere, locking framerate would prevent some crashes. Im already searching but.. so much games... and much more mods...! These are just ideas from modders of other games. No clue about technical background, ask me about cars.. (no new ones, please)
There are several PotC-compatible methods of locking the framerate suggested in this thread: Solved - Windows 10: Low Frame Rates Despite (BECAUSE OF!) Good Hardware
Normally that is necessary for the reverse problem though, where the framerate is too high.
In this case, I think the framerate is too low because there is a performance problem.
But if you want to investigate it anyway, that is where I'd recommend you start. :doff

At least i can attache one of my Skyrim ini's. This is from the ENB-injector version.
In line 44 you have the limiter, mine is unlocked, but this can help.
If you can make that work using the PotC version of ENB, I'm sure a lot of people would be very grateful to you! :bow

Hope we find something
Thanks for the log files. It is rather a lot though and I'm not entirely clear at the moment what is the status of the problem.
When you go from Deck to Port, does the game crash? If so, does it always crash or only sometimes?
Could you give me a single set of log files where you:
1. Started a new game with the tutorial
2. Went to port
3. Experienced a crash
 
There are several PotC-compatible methods of locking the framerate suggested in this thread: Solved - Windows 10: Low Frame Rates Despite (BECAUSE OF!) Good Hardware
Normally that is necessary for the reverse problem though, where the framerate is too high.
In this case, I think the framerate is too low because there is a performance problem.
But if you want to investigate it anyway, that is where I'd recommend you start. :doff

Will try, :checklist


If you can make that work using the PotC version of ENB, I'm sure a lot of people would be very grateful to you! :bow

Will.. try? :shrug That would be cool, not the grateful thing, the "get it to work"!

When you go from Deck to Port, does the game crash? If so, does it always crash or only sometimes?
Could you give me a single set of log files where you:
1. Started a new game with the tutorial
2. Went to port
3. Experienced a crash

It crashes always! I have not managed to get to the habor. All files are either load game or start new game, tut and from deck to habor. Have not got any further, so pick a folder that ends with see 4: and you have it.:onya

Ups, customer, see you later.
 
Will.. try? :shrug That would be cool, not the grateful thing, the "get it to work"!
Fair point! :rofl

It crashes always! I have not managed to get to the habor. All files are either load game or start new game, tut and from deck to habor. Have not got any further, so pick a folder that ends with see 4: and you have it.:onya
Thanks for confirming.

As I suspected, the seems to be related to the Levelling system. But unlike what I suspected, it is surprisingly consistent!
It seems that inevitably when the game crashes, these are the last lines that were written to compile.log:
Code:
XP LOG: Start InitAutoSkillsSystem for Malcolm Hatcher id: Malcolm Hatcher
XP ERROR: ZERO XP CALL

That would correspond to this line here:
Code:
//=====================================================
//  Adding XP functions
//=====================================================

//This function is always called. it determins who should get the XP etc
bool AddXP(ref chref, string expName, int _exp, string group)
{
 ref chr, capt;
 int cn,i;
 bool LevelUp = false;
 //First catch some weird cases which shouldn't happen in the first place. let log if they do happen.
 if(!CheckAttribute(chref,"index")) { if(DEBUG_EXPERIENCE>0) Trace("XP ERROR: Character "+GetMySimpleName(chref)+" has no index"); return false;}
 if(sti(chref.index)<0) { if(DEBUG_EXPERIENCE>0){ Trace("XP ERROR: Character "+GetMySimpleName(chref)+" has index smaller than 0")}; return false; }
 if(_exp < 0) 
 { 
  _exp = -(_exp); 
  if(DEBUG_EXPERIENCE>0) Trace("XP ERROR: NEGATIVE XP CALL");
 }
 if(_exp == 0)
 {
  if(DEBUG_EXPERIENCE>0) Trace("XP ERROR: ZERO XP CALL");
  return false;
 }

To compare with the usual situation, we need the help of someone else.
@Grey Roger or @ANSEL, could you enable the debug lines as mentioned in post #4 above?
Then do the following:
1. Started a new game with the tutorial
2. Go to port and wait there for a few minutes or so
3. Close the game and post the resulting compile.log file here

That way, we can compare the logs for the crashing and functional cases.
 
@Pieter Boelen Alright! Here it comes.
Thanks! That's certainly very interesting.
Here's the log from when it works like it should:
Code:
XP LOG: Start InitAutoSkillsSystem for Malcolm Hatcher id: Malcolm Hatcher
POSTINIT: state is 0
Here's the one from when the game crashes:
Code:
XP LOG: Start InitAutoSkillsSystem for Malcolm Hatcher id: Malcolm Hatcher
XP ERROR: ZERO XP CALL
So @DAT66 gets an error that does not occur for @ANSEL at all.
It also happens at/after the LAST time that "Start InitAutoSkillsSystem" is called.

Three options then:
1. Start InitAutoSkillsSystem fails to complete
2. Whatever should start afterwards fails to do so
3. The processes all do work, but it happens too slow

I definitely recommend playing around with those three performance-related settings that I suggested.
Maybe some numbers can be found that allow this problem to resolve itself.

In the meantime, clearly this is quite a complex one, so I'm going to see if I can convince the original coder who made the system to give any feedback.
 
Ahoy matey!

Could you do the following for me.
could you set these values:
Code:
#define DEBUG_EXPERIENCE 1     //(int) on 0 no messages are given. on 1 only error, on 2 everything is given.
#define DEBUG_POSTINIT  1     //(int) on 0 no messages are given. on 1 only error, on 2 everything is given.
#define DEBUG_NOAUTOLEVEL 0     //(int) on 0 no messages are given. on 1 only error, on 2 everything is given.
#define DEBUG_PERKSELECT 0     //(int) on 0 no messages are given. on 1 only error, on 2 everything is given.
#define DEBUG_OFFICERPRICE 0     //(int) on 0 no messages are given. on 1 only error, on 2 everything is given.

Now please start a new game and see how for you get. Please upload all avaible logs after the game crashes.

Now try to set
Code:
#define POSTINIT_MAX_ALLOW_LEVEL_POST 20
to
Code:
#define POSTINIT_MAX_ALLOW_LEVEL_POST 0
This will make sure you have a really long loading time but it will filter the causes of the problems.
And keep the other values (the debug ones) the same and try to start a new game again (preferbly with the same settings) and collect all logs again after it crashes.

Please upload both logs (and make sure I know which one is from which scenario).
 
Ahoy matey!

Could you do the following for me.
Please upload both logs (and make sure I know which one is from which scenario).


Hello everybody, late sorry.
I'm quite surprised about so much support, pirates are the better people?!?!

Thanks for looking at this @Levis. Have made the required files and zipped all with the txt what I've done.


Now something completely different:

@Pieter Boelen, I could get an ENB injector recognising the exe, It writes, like supposed, the correct ini's. Sadly it does not yet affect anything. Had a chat with a friend who's studied this but didn’t work in that for years, we will look at it until weekend.

Also, have remembered New Vegas Stutter Remover, that does basically what I've described at the other thread. It is though a part of the Script Extender - that is not required here.
MemBlockLog for SKSE is also an extension that’s useful for performance.

Yes, these are all other engines and I don’t know enough to say if any of this could help your Mod. Cant hurt to upload them too, if someone is curios to see what I mean.


AND again, Thank you all for your help.
 

Attachments

  • Levis Test.zip
    602.1 KB · Views: 253
  • NVSR.zip
    281.2 KB · Views: 233
  • skse.zip
    58.7 KB · Views: 192
The error isn't happening at the same time each time but it's happening in a ram/cpu intensive part. This made me wonder if this might have something to do with the maximum allowed RAM.
I believe we changed something in the exe from 3.4 to allow for more ram in other versions of windows but it might not work in XP.
Are you running on 32 or 64 bit (I hope you say 64 because else you have 2 gig of ram in your pc which are useless :p).

Could you maybe check how much ram engine.exe is using just before it crashes?
 
The error isn't happening at the same time each time but it's happening in a ram/cpu intensive part. This made me wonder if this might have something to do with the maximum allowed RAM.
I believe we changed something in the exe from 3.4 to allow for more ram in other versions of windows but it might not work in XP.
Are you running on 32 or 64 bit (I hope you say 64 because else you have 2 gig of ram in your pc which are useless :p).

Could you maybe check how much ram engine.exe is using just before it crashes?

OK, thats new. Why should i have useless Ram? 32bit Win XP3 works with 3.25, i have 4 because thats the size you buy - 2x2gb.
Unsure how to gather the ram use, i have tune up, the mem optimizer says 2.2 free ram????
 

Attachments

  • DxDiag.txt
    42.6 KB · Views: 237
Last edited:
Back
Top