• 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!

New Horizons on JLB Maelstrom 2.8.2 engine

So the first comment must admiration for the fact that @ChezJfrey got it to work at all. The original creators had no thoughts of backwards capability when they upgraded the engine through the storm series. Add to that he fixed many of their errors and moved it forward to dx9 etc. Then consider the amount of original functionality that he has breathed into its "raw" state without any real knowledge of the complexities that have grown into NH across its many years and individuals modding. A few changes in the later engine he has used in place of removed features still need a wider view on how best to present them but they work. With his troubleshooting a few more missing bits got added/fixed along my playthrough, a nember remain.

It is no coincidence I chose to work through TOSH. It is the original plot and ignoring added side quests probably has the least modded content. So I successfully went through the base game without visiting the extra islands not in the original. There are a number of rough edges but got from one end to the other so basic stuff mostly works. Amazing achievement @ChezJfrey

Thanks for the kind words. I will add that @pedrwyth is a real trooper, going through the machinations and weeding out the anomalies.

Though I already PMed, here's the latest, adding some of the private message tidbits:

I got the crash after a couple ransackings. It's the Ship_OnDead call, sending MSG_SHIP_DELETE to SeaFoam. It has to do with somewhere, the ship entity for a character is already removed somewhere, or that even is being called multiple times per already dead ship.

Like I suspected, it is a SendMessage call and looking at the particular one causing the problem, for SeaFoam entity, the back-end is attempting a virtual call on something that has already been flagged as deleted. Since it was inconsequential, in terms that the entity in question is already gone, it was trivial to test and skip the rest of that message processing in that event; it was far quicker to do that in the engine, rather than try sifting for how/why it may have already been done in the script. I think that fixes the ransack problem, obviating trying to find where the char ship entity goes away 'out of order' of that event call. I no longer got a crash after that and I sent pedrwyth the link for the changed executables.

1) I have got the Pchar pistol to fire but the blue charge icon doesn't seem to change - even when you un-equip the weapon. In the base version the bullet changes colour until loaded and the blue icon shows a time to reload growth. (and goes with no pistol equipped) I guess in manicon version it should be no bullet and a growing amount of blue whilst loading- I think the code shows coding for the steps of blue to full but it's not triggered.

The new interface for COAS is different. You see a little star for each weapon charge you have (e.g. a single barrel shows 1, a double-barrel shows 2). When you shoot, the star turns red and when it's recharged per the 'chargespeed' attribute, it turns yellow again. It appears to work as intended when I shoot and wait; I see it red, then yellow.

The blue is character energy. In COAS, as you fight, different sword attacks deplete your energy at different rates, and when it is gone, your character's replenish stats determine how fast it recharges. Since there is no such thing as char energy in NH that I could see, it remains static at 100%.

Also, unrelated, I fixed the worldmap encounters because while looking for a ship, I never saw them at sea when the worldmap encounter popped up.

2) Another thing I am looking at is missing textures for the building kit. The models themselves seem to be in a subdirectory in ammo sub directory but I presume the problem is linked to moving files around for your version. You can easily see on starting TOSH the knoll overlooking the harbour has an added bastion and cannon. the cannon is textured but the keep is not. Meanwhile the building added in front of the gate is ok

I see that fence and cannon. The fence is ammo\buildingset\b_fence.gm. When I open it without giving the proper texture folder, I see the same shape. It also tells me the texture is wood_all.tga. When I point gmviewer at the textures\ammo folder, where that file sits. The image in the viewer goes blank.

Then, I used TXConverter.exe to view textures\ammo\wood_all.tga.tx and it is blank; I see nothing. There is something up with the texture file itself...maybe corrupted? Which is further supported by the fact that the other 'items masquerading as buildings' look fine.

3) Something wipes sail levels to 50% pretty much straight after fixing them.

This one is tricky. The engine receives the char.ship.sp and the actual ship.sp in the BI_IN_CREATE_SHIP message. When that is first sent, a trace statement: trace("chRef ship.sp = " + chref.id + ", " + chRef.ship.sp); just before the call shows correct. However, when I go from port to sea, those trace statement sets show up 3 groups for 3 repeated calls on each ship. The first set shows correct values, but the next 2 sets show a percentage of the original values. Since the character's ship is 200, the percentage at full strength was 100, and that's why you see 50% in the sail health bar. I tried the same trace message in ERAS/COAS and when I go to sea, that function only gets called once per ship, with the correct values. I suspect, similar to our Ship_OnDead problem, the multiple calls are causing problems and should be removed in the scripts, but I'm not yet sure where NH is calling it so many times in the single launch to sea, but it really shouldn't have been set up to repeatedly call like that.

4) A further problem I have not got far into is adding icons to the battleinterface sub command menu that shows when you try to use an ability. At the moment I don't think they are being added so you can't use the added abilities (if you have any) but I have only "fake" acquired them rather than through the game. From memory this is how you use the "artefact" at the end of TOSH to remove the invunerability from the Black Pearl (I had to resort to a console command). Anyway the artefact icon should either be at top battleinterface .c command level or under the abilities sub list and it wasn't.

5) I frequently get overlap of sound systems the previous one continuing into the next scenario (and not stopping). Saving quitting and restart clears the situation.

Looking at the sound problem you describe, I note that COAS changed most of their ResetSoundScheme calls, to ResetSound() and they also changed that function in sound.c

So, will likely have to do similarly for NH. Although not all the ResetSoundScheme calls were changed, like one in LAi_boarding.c: LAi_EnableReload() did not change. But most of them were changed over. I went ahead and made the change for ResetSound to all the files that looked similar to intent to the places where that change was made in COAS. We'll see how that fares.

So why would someone bother?

There are reputedly many improvements that come with the new engine, look at the later games to decide yourself if having the NH content presented like that is worth the candle.

Heh, it's a mystery. It was once a big deal, desired. Now, it appears not so much. Oh well.

I will say, Caribbean Tales is already done and appears much more solid than the original from what I can tell from @Modder01. COAS, GOF, ERAS are nearly rock solid, going on a couple years in this new configuration...especially the GOF-derived flavors, considering they were pretty shaky and unstable against the original Storm 2.8.

Granted, NH has posed several unexpected problems, but I would think if more than just pedrwyth were digging into it, would have been done much sooner.
 
3) Something wipes sail levels to 50% pretty much straight after fixing them.

This is now fixed. I was slightly wrong about my guess as to why. Turned out to be a missing attribute in procGetSailTextureData; undoubtedly a new one for the later engine version.
 
@ChezJfrey: Id cut off my right ear in a heartbeat if I thought thatd help :p srsly tho, Ive been trying out @Modder01's CT and ERAS and they seem real solid so far and itd be hella cool to get NH running in maelstrom too, its awesome that you and @pedrwyth are working on it. just the possibility to fix engine bugs and limitations, like the char poly limit frex, makes it worth it imo. got a char in the pipeline that Ill never in hell get below 6000 polys, so she ll be for maelstrom only (if I ever get done fixing the mesh, I dunno why I always pick the most broken models)
if you decide to upload the NH version again Id def be stoked to help testing :type1 even if I do more modding than playing atm tbh.. :pgot a bit less time rn than I had before the holidays sadly. anyway Im rambling again. thanks for your work:beer:
 
@ChezJfrey: ...limitations, like the char poly limit frex, makes it worth it imo. got a char in the pipeline that Ill never in hell get below 6000 polys, so she ll be for maelstrom only (if I ever get done fixing the mesh, I dunno why I always pick the most broken models)

I have a little bit of sad news about that higher poly-count character models. I want to be the first to offer that for this sector of 'Storm Engine' games, and since there are a handful of other mods using this engine (Modder01, Myth, and perhaps another that is working on it), it remains deliberately governed to the original specs for the time-being (even the latest ERAS), until we finish a new player-character for the model you supplied. So, it's coming, but not until we get your model in our game, first. Sorry about your luck, everyone else...we come first! LOL
 
I have a little bit of sad news about that higher poly-count character models. I want to be the first to offer that for this sector of 'Storm Engine' games, and since there are a handful of other mods using this engine (Modder01, Myth, and perhaps another that is working on it), it remains deliberately governed to the original specs for the time-being (even the latest ERAS), until we finish a new player-character for the model you supplied. So, it's coming, but not until we get your model in our game, first. Sorry about your luck, everyone else...we come first! LOL
no worries, Im just glad the work isnt going to waste :beer:
 
Not really done much with this recently, I have been busy elsewhere in life. To be honest I feel a bit awkward continuing to post none working elements compared with the original whilst not actually managing to fix any myself! In that vein I have started several times to start a comparison of available 2.8 engine particle effects and NH modded INI ones to try for the best match (if any available) where there are currently missing effects but quickly lose motivation. Perhaps I should set a target of a couple of effects a day.

I have started "Hoist the Colours" to look for any further "broken" elements but have never played the original for comparison.

Anyway in free play mode after TOSH main plot I have seen that, somewhat weirdly, Cartagena doesn't appear set up correctly as compared with the base version. The port with its added terrain and ground under San Felipe fort is visually missing, but your ship won't sail into the apparently vacant areas so perhaps the seabed is right? I attach some screen shots.

The music overlap/run on still occurs for the moment.
 

Attachments

  • cfortnew.jpg
    cfortnew.jpg
    236.3 KB · Views: 601
  • cfort.jpg
    cfort.jpg
    234.1 KB · Views: 654
Something with the model definitions. You can see the mesh of some geometry that prevents sailing through what appears to be water, but that mesh is transparent. Also, the fort floats in the air, again, because looking at the mesh, there is nothing supporting it. Probably some sort of scaling deal of whatever was merged together to create this 'addition'.
 

Attachments

  • Buccaneer's_0000.jpg
    Buccaneer's_0000.jpg
    429 KB · Views: 461
  • Buccaneer's_0002.jpg
    Buccaneer's_0002.jpg
    484.4 KB · Views: 502
  • Buccaneer's_0003.jpg
    Buccaneer's_0003.jpg
    1.1 MB · Views: 411
  • Buccaneer's_0004.jpg
    Buccaneer's_0004.jpg
    1.1 MB · Views: 425
  • Buccaneer's_0006.jpg
    Buccaneer's_0006.jpg
    1.1 MB · Views: 384
I have replied here because it seems a more appropriate thread (although camera height is another fix for the Maelstrom engine it seems)

You, @pedrwyth, were gracious enough to take that, and work through some play, offering help and troubleshooting, that allowed further resolutions. Your participation was quite helpful. As of this date, I believe all the problems were resolved
. I too think that, given the one below, they were.

The last you mentioned, was the fort/island at Cartagena, which I found was simply a missing Island.ImmersionDepth attribute that needed addition in the script code; the default in the engine, if not provided, was 25.0, so setting Island.ImmersionDepth = 0.0, like is found in COAS scripts, solved that problem.
That's good news then since that looked like a modded problem which I wouldn't get into. Which script is best to put the addition?

Right now, @pedrwyth has proven that much, if not most, of the game can already be played with an upgraded and fixed engine As I've also shown, if there is interest, troubleshooting and feedback, I attend to them quite quickly. I've resolved everything that's been thrown my way in a fairly quick turnaround.
I agree without a doubt but as I said previously my moving from a modder (even if low level) to just noting problems makes me feel like a moaner rather than a contributer.


But I'm not working on it now, because I've already taken care of everything pedrwyth informed about, so I am finished. The only harm is to those that have an interest in making New Horizons better; I don't have such an interest, myself, I just thought others here might have such interest and thought I'd help where I could. Turned out to be a waste of my time, but I learned a lot and even uncovered some further engine bugs I was unaware of, due to unused features in the newer versions.
. I do hope to migrate the script code to the latest MODDB version that recently became available to gain from the many improvements and bug removals that are in the newest offering. However given I'm hoping to emigrate across the next six months I'm not sure how it may progress.

I think you had to make some changes to the mod's PROGRAM code for it to run in Maelstrom, right?
If you didn't already do so (maybe you did and I didn't notice...), perhaps you could release the best files you've got?
Of course there are never any guarantees, but we can always hope somebody will be inspired to pick it up where you left off and take the next steps.
The changes were pretty much all fixes by @ChezJfrey , where I tinkered at all he got the updated code I think. I don't know if his MEGA posting has the latest required files (given he has continued to upgrade the Maelstrom engine for other game variants issues), particularly since there seemed little enthusiasm for NH. However if I (or that may be we if I'm lucky to get his support since I'm likely to run into problems) manage to get the best version on JLB Maelstrom migrated for latest moddb NH that would be a good moment to assess where and how access to the requisite files could be made.
 
The changes were pretty much all fixes by @ChezJfrey , where I tinkered at all he got the updated code I think. I don't know if his MEGA posting has the latest required files (given he has continued to upgrade the Maelstrom engine for other game variants issues), particularly since there seemed little enthusiasm for NH. However if I (or that may be we if I'm lucky to get his support since I'm likely to run into problems) manage to get the best version on JLB Maelstrom migrated for latest moddb NH that would be a good moment to assess where and how access to the requisite files could be made.
Thanks!
I hope that when the adapted files are available somewhere, there will eventually be an increase in interest.
Never any guarantees, but when the conditions are right, miracles can and do happen! :cheers

Laugh it up, fuzzball.
I like Star Wars! :cheeky

You explicitly write you were talking about possibly exchanging your code bases. Yes, you declined, but the fact you are on a familiar enough basis to be having this conversation is close enough for me to be wary. You also have their decoded scripts; most people would be unable to pull off such a feat without familiarity; familiarity that was too much for my comfort. Just because you and BlackMark put on some sort of a show of animosity here on the forums means nothing to me; it's quite likely feigned and I'm not stupid enough to fall for it. I give you my code, I'm sure I would be utterly shocked to find that BlackMark probably gets it within hours and is selling it on Steam within days. "Oh my, how did this happen?!" I may be wrong, but I won't be taken a fool.
I don't think @kb31 put on "any kind of show" on our forum. He was banned on the Steam forums and I'm pretty sure nobody here has any control over that.
A person from BlackMark studios decided to inform us of it here, but since we are not involved, it doesn't matter to us.
@LarryHookins could probably give more details. I never managed to keep up with anything TEHO myself.

And KK's was unstable, rife with errors and crashes
@konradk did the best he could. And what he could do was a great step in the right direction.
He has had real life to deal with for quite a while now, but he's a really good guy and he deserves to be appreciated for all the good that he did and still does.

While I'm not familiar with the inner workings of the Storm/Maelstrom engine source code, I am very familiar with @konradk's work on New Horizons.
Regardless of the level of perfection in his coding, his work was always EXTREMELY promising and he managed to do things that many people thought impossible.
A lot of the most amazing features in New Horizons are originally based on work by @konradk and I am forever grateful to him for that! :bow

Could not resist and answer. I communicate @ChezJfrey without the forum, several times I asked for his help, and a couple of times I asked him to add new functions to the kernel. Problems are solved quickly, with a very pleasant work.
As far as I can tell, @ChezJfrey is a good guy who can do great things. But I also think @kb31 is right that he can be paranoid.

I fear something has happened in the past to make @ChezJfrey distrustful of TEHO. This is something I can understand, because I have that myself as well.
After all, there is a reason why TEHO is mentioned in our Forum Rules as a potential subject for troll posts.
I imagine @ChezJfrey sees "@kb31+TEHO" and becomes suspicious of something shady going on behind the scenes.

This is both very understandable, but also unfortunate. I wished something could be done to fix all of this.
After all, if we all can appreciate each other, forgive each other and accept each other as flawed, but ultimately good human beings,
then there is almost no limit to what could be accomplished together! :cheers

By the way, I discovered this web page last week: The Evolution of Trust
I found it really insightful! If you guys have a moment to spare, I can strongly recommend playing around with that a bit. :doff
 
Paranoia in this matter is even a plus: as my experience has shown. The game is worse tolerated by a huge bunch of small errors than a big one mistake. Therefore, the purer the code, the better. The more all the additional conditions and checks are spelled out the better.
 
Paranoia in this matter is even a plus: as my experience has shown. The game is worse tolerated by a huge bunch of small errors than a big one mistake. Therefore, the purer the code, the better. The more all the additional conditions and checks are spelled out the better.
Hehe; that's a fair point, actually! Paranoia probably makes for EXCELLENT code. :woot
 
I'm locking this thread for a couple days to let everyone cool off. When it is reopened, I expect the discussion to get back on topic and for folks to let bygones be bygones.
 
This is brilliant
Yes, it is! And the other stuff on ncase.me is equally awesome too.
So far I checked a fair few, but it's got so much to say, I should return to it some day.
This Nicky Case really made something worthwhile there. :woot
 
Right, let's try and get this thread back on topic.

I am in process of re-acquainting myself with where I was up to. @ChezJfrey and I also need to get back to a shared code base which we are in the middle of attempting to resolve.

In the meantime I have delved into the particle effects dilemma. Bear in mind I'm starting from a base zero knowledge of particle effects here.

First I used (JRH?) console code to view most of the effects in POTC NH (or at least the ones already in the console code) and then re-wrote that to do the same with all the available XPS effects in the JLB engine (but now in XML code as kindly provided by ChezJfrey). I also looked where the majority of the additional INI particles are used in NH. There are some in enhanced cannon effects and other weapons, which presumably already have reasonably acceptable AOP2/TEHO equivalents. There are then a host of creative effects in @JackRackam 's storylines (WR and Goldbug). I appreciate that years of effort are represented there and I don't think there is any way to quickly re-create the intended effects. Just looking at the plantation fireworks code fills me anew with admiration for the attention to detail that these story lines engender. Then there are also the more generally available additional effects for the dutchman, kracken, steamers etc which I have never seen in action but presume could be recreated if desired given my assumption that editing the the effects is accessible in the new engine (see below). So for now it will only be a subset of NH storylines that will be effective in the new engine and my feeling is that only those that are generally functional should be enabled.


So as a test I wanted to address the explosion which occurs with a booby trapped chest (the call is in CCCFuntions.c). Unfortunately in XPS/XML the fort_fire used is a looping effect that lasts until you quit the scene. I altered the base program code to always explode the booby trap chest and always reset it, so I had a perfect lab to look at any effect over and over by placing it in the call in CCCFunction.c (but unlike the console you (PChar) are at 0,0,0 but for many effects yoy need to be at a distance so for those console is better since you can shift viewpoint before actioning). Changing the "looping" parameter in the XML from 1 to 0 means an amended copy can be made acting as a one-off effect. I did this - but it's still not really the explosion required. But please note there are many lasting effects that can be turned to single events to work on in this way.

Next I considered all the XML files. Most have a single emitter type and a single particle type within which you can adjust all sorts of parameters (emitter position relative to location, no of particles, lifetime,colour, field gravity etc) and watch the effect. Yes folks it's trial and error learning here.

However some more complex effects use multiple different emitters some of which loop and some don't and some which seem to be attached as emitters to particles as emitted from another emitter if I read the code headers correctly. Very fancy it would seem.

Anyway to continue my trial I split out the emitter code for the muzzle flash effect from a cannon effect and top and tailed the code to make it stand alone, I repositioned the emitter at 0,0,0 since it had been set with a displacement for the muzzle position and got a reasonably effective flash for a chest explosion. So yes the XML is reasonably easy to use and edit to produce new effects - if you're willing to spend the time experimenting. So hats off to @ChezJfrey again. You can use the console case6 adapted to display your efforts.


There are some 30 effectively pre-programmed emitter types and slightly fewer existing particle types. I have not yet found a decent XML editor to easily split them up and haven't (YET) been able to easily compare how the sub-parameters vary within similar emitter/particle combination XML effects because the non-specialist editors I have tried have the code with no line breaks/carriage returns.

As mentioned previously, once synced with ChezJfrey I now hope to move on to starting to change to the latest moddb NH code (May 2018) before further trials. I wouldn't hold your breath though.
 
This is a silly issue, but it took me a little while to figure out. In the latest build of New Horizons for Maelstrom on ChezJeff, I could not save a game. Quick save would display "FAILED" in the upper left, and the slow save would fail silently. Figured it was something small, so I created an empty "SAVE" folder in the New Horizons directory and my problem was fixed.
 
This is a silly issue, but it took me a little while to figure out. In the latest build of New Horizons for Maelstrom on ChezJeff, I could not save a game. Quick save would display "FAILED" in the upper left, and the slow save would fail silently. Figured it was something small, so I created an empty "SAVE" folder in the New Horizons directory and my problem was fixed.

You bring up an interesting point, because COAS and related mods always seemed to generate a SAVE directory if none exists, so I suppose I presumed this sort of thing was already accounted for. But now that you present this problem, some investigation explains the issue.

I found that COAS and successors, interrogate and create the SAVE directory in the program scripts/modded portion of the game in a function called CreateProfileFolders. POTC and New Horizons do not seem to have this feature. However, considering that the start.ini configuration properties specify the save_directory path, it seems more appropriate to make the engine responsible for ensuring that directory exists.

So I have now changed the engine to read that path property from start.ini, check for existence, and if not there, create that directory for you.

Slightly unrelated, but since it's been awhile, there are some further engine developments that in some cases have already been released, others pending in testing, but forthcoming soon:

Supports "direct aim" cannon fire, rather than aiming toward the sky, in the proper arc to account for parabolic flight:

Square/trapezoid sails that had a sail0 point to indicate a permanent billow, always faced the convex in one direction, despite wind direction. There is now a sail type to allow the billow to switch to the appropriate side, depending on wind force:

Crabs are now animals that can crawl the seashores

Language can now be selected in the Config.exe and doesn't require all languages to reside in a "russian" script directory like COAS used to require; the script paths merely need to contain a $language preprocessor variable and don't need scripts to replace with a language string anymore as the engine will do it automatically based on the selected language in the Config.exe dropdown (drawn from language.ini).

Ship lights used to stay on or off in the same state you first boarded your ship, regardless of day/night transitions while at sea for a lengthy time. This is now fixed to have the lights change at the appropriate day/night switchover.

In testing right now, and soon to be released is support for playing with an XBox compatible controller on PC; keyboard and mouse are still relevant and workable in conjunction with the controller.
 
After playing New Horizons on Maelstrom for a while, I'm going to say that it is best as a proof of concept rather than a game. Despite a ton of errors in the logs, it was working pretty reliably through Speightown on land and looked great in the new engine. But as soon as I hit the sea it began crashing and there are a litany of errors about missing resources for islands. I don't know enough to fix anything, so I have to leave it there. Buccaneers of the Caribe for Maelstrom is a much more basic version of the PotC story line and has a glitchy interface and far fewer features and quests, but it isn't crashing on me and the error and system logs look very clean by comparison.

This isn't meant to be critical of anyone's efforts, and I understand that there really isn't anyone to develop this mod on Maelstrom-- Jeff has been very clear on the download page that there are known problems and there isn't anyone to support it. But for those peeps looking to play the PotC story, you may have problems with New Horizons on Maelstrom. YMMV, and I don't know anything about New Horizons on PotC.

Edit: Well, I just ran into a problem even on BoC build that prevents me from reaching Falaise de Fleur. None of the islands are marked on the world sailing map, but when you get close most of the quick trip options show up-- except for Falaise de Fleur. I sail around and around the island and can never get a quick trip option. Too glitchy, but it has been helpful in figuring out the basic mechanics of the game. So, on to Gentlemen of Fortune!
 
Last edited:
The missing island labels and related features are due to a change in how the newer engine requires world map setup in scripts and area definitions. None of that was done for BoC or New Horizons. The hope was that these last, minor facets would be worked out by some people here, that are devoted to this earlier part of the franchise. Save pedrwyth, who helped navigate some of these things and together we corrected them, that didn't happen. Same problem with weather/sun/moon definitions.

Since this no longer looks like something will ever be embraced, despite the apparent excitement for this changeover years ago on this forum, you may have convinced me of another approach; perhaps I will just take it upon myself to swap out all the non-working elements in favor of the proven solutions and fix this up myself. Maybe call it New Horizons; ERAS

Stay tuned.

BTW, your experience in COAS, GOF 1.2 and ERAS will be much better, as I have devoted much more time in ensuring they work well; those 3 specifically. CT Supermod was also developed/tested by a 3rd party input and is probably good to go as well.
 
Back
Top