1. Dismiss Notice
  2. GOG.com logo

    Thanks to YOUR votes, GOG.com now sells:
    - Sea Dogs - Sea Dogs: Caribbean Tales
    - Sea Dogs: City of Abandoned Ships

    Vote now to add Pirates of the Caribbean to the list!

    Dismiss Notice
  3. Under the Crossbones Podcast

    A Pirate Podcast with Interviews
    Music, Comedy and all things Pirate!

    - Episode Guide - About - Subscribe -
    - Twitter - Facebook - iTunes - Android -
    - Youtube - Fill the Coffers -

    Dismiss Notice
  4. New Horizons logo

    Quick links for PotC: New Horizons
    - Download latest version
    - Wiki - FAQ - Report bugs here
    - ModDB profile

  5. GOF logo

    Quick links for AoP2: Gentlemen of Fortune 2
    - Downloads and info
    - Historical Immersion Supermod
    - ModDB Profile

Dismiss Notice
New to the forum?
Please take a moment to read our Welcome Message and Forum Rules.

Fix in Progress CTD on Low End XP PC

Discussion in 'Build Mod Bug Tracker' started by DAT66, Sep 19, 2017.

  1. DAT66

    DAT66 Sailor Apprentice

    Joined:
    Sep 8, 2017
    Messages:
    67
    Gender:
    Male
    Location:
    Germany
    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?
     

    Attached Files:

    Last edited: Sep 19, 2017
  2. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,563
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    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.
     
  3. DAT66

    DAT66 Sailor Apprentice

    Joined:
    Sep 8, 2017
    Messages:
    67
    Gender:
    Male
    Location:
    Germany
    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!
     
  4. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,563
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    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.
     
  5. DAT66

    DAT66 Sailor Apprentice

    Joined:
    Sep 8, 2017
    Messages:
    67
    Gender:
    Male
    Location:
    Germany

    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
     
  6. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,563
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    Did you already change some numbers then?

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

    DAT66 Sailor Apprentice

    Joined:
    Sep 8, 2017
    Messages:
    67
    Gender:
    Male
    Location:
    Germany

    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:
     

    Attached Files:

    Last edited: Sep 20, 2017
  8. Hylie Pistof

    Hylie Pistof Curmudgeon Staff Member QA Tester Storm Modder

    Joined:
    Jan 15, 2010
    Messages:
    13,748
    Gender:
    Male
    :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.
     
    DAT66 likes this.
  9. DAT66

    DAT66 Sailor Apprentice

    Joined:
    Sep 8, 2017
    Messages:
    67
    Gender:
    Male
    Location:
    Germany
    :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:
     
  10. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,563
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    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.
     
  11. DAT66

    DAT66 Sailor Apprentice

    Joined:
    Sep 8, 2017
    Messages:
    67
    Gender:
    Male
    Location:
    Germany
    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....
     

    Attached Files:

  12. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,563
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    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

    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

    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
     
  13. DAT66

    DAT66 Sailor Apprentice

    Joined:
    Sep 8, 2017
    Messages:
    67
    Gender:
    Male
    Location:
    Germany
    Will try, :checklist


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

    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.
     
  14. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,563
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    Fair point! :rofl

    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.
     
  15. ANSEL

    ANSEL Corsair Storm Modder Hearts of Oak Donator

    Joined:
    Aug 18, 2013
    Messages:
    1,767
    Gender:
    Male
    Occupation:
    Artist,Painter
    Location:
    Viborg.Denmark

    Attached Files:

  16. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,563
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    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.
     
  17. Levis

    Levis Find(Rum) = false; Staff Member Programmer Creative Support Storm Modder

    Joined:
    Oct 6, 2013
    Messages:
    6,656
    Gender:
    Male
    Occupation:
    ICT
    Location:
    University Twente (Netherlands)
    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).
     
    DAT66 and Pieter Boelen like this.
  18. DAT66

    DAT66 Sailor Apprentice

    Joined:
    Sep 8, 2017
    Messages:
    67
    Gender:
    Male
    Location:
    Germany

    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.
     

    Attached Files:

  19. Levis

    Levis Find(Rum) = false; Staff Member Programmer Creative Support Storm Modder

    Joined:
    Oct 6, 2013
    Messages:
    6,656
    Gender:
    Male
    Occupation:
    ICT
    Location:
    University Twente (Netherlands)
    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?
     
  20. DAT66

    DAT66 Sailor Apprentice

    Joined:
    Sep 8, 2017
    Messages:
    67
    Gender:
    Male
    Location:
    Germany
    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????
     

    Attached Files:

    Last edited: Sep 22, 2017

Share This Page