The FFED3DAJ Thread

Cheers Steve for the earlier feedback & many thanks for catching the FPS & video play issues.
Both the issues are from the new cfg/variables code - The FPS was because I hadn't linked a little function against the variable, so FFE's own internal value wasn't updated, the video repeat setting being ignored was a simple typo in the variable name. I was hoping a few more pair of eyes would help find anything I'd missed! (there are >300 variables!)

I was a bit busy at the weekend and already part way through a change for the next incremental build - so wasn't able to promise a quick fix build until that was a bit closer to completion... the week has flown by, so apologies for not coming back to you sooner...
I'm not sure if I'll get time to wrap up & test a beta 2 tonight, but hopefully tomorrow...

I've also noticed during tests that the fuel scoops weren't working correctly when flying close to suns, which seems to be a long standing FFE bug...
Took a quick look into it and there's a time-out counter that JJFFE's source had included within a name buffer, so it perhaps went unnoticed. (it's an int value hiding at location 0x1e8)
The FFE code was only ever setting this counter value to a fixed value and then comparing that against the number of elapsed ticks since it was last checked.
It should have been decreasing the counter by the elapsed ticks and checking for when it reached zero...
This is why fuel scooping didn't happen at normal and low-time acceleration, fewer ticks happened between each check. But you could force a tonne to scoop by clicking a high time acceleration setting, in that case the number of skipped game ticks are always greater than the value of the time-out counter and it triggers the scooping code.

There's also another legacy bug around suns I noticed that confused me at first. I think when there are binary pairs of suns, the frame of reference (FOR) will often be incorrect and your distance/altitude is calculated relative to the wrong sun! This means it's possible to fly right up to some suns without any increase in cabin temperature or fuel scooping being triggered, but even worse is that the collision checks aren't triggered either, so you can fly straight through or sit in the center of it!
We've mentioned a FOR bug in this thread before with planet surface missions being affected. It looks like JJ had a working routine to calculate the correct one (shown in the debugging/FPS text) so I guess I'll have to add it to the list to take a look at & see if it can be made use of... but that's definitely one for another build, another time!
 
Last edited:
Both the issues are from the new cfg/variables code - The FPS was because I hadn't linked a little function against the variable, so FFE's own internal value wasn't updated, the video repeat setting being ignored was a simple typo in the variable name. I was hoping a few more pair of eyes would help find anything I'd missed! (there are >300 variables!)
Yeah, there are a lot! I haven't found any more issues with settings in the config program not being applied in-game, but I haven't got the Aniso or HellMod variations installed so they haven't been checked.

Andy, is there any chance of adding a check to the config program so that if the user tries to close it without saving their changes it flags this up? Asking for a friend 😝

Also, have you looked at a "sell all" option for items in the screen where an ad on the bulletin board offers twice the market price?
 
..bit much to be making feature requests when not even updated to latest version yet (can't wait!), but an issue that keeps cropping up for me:

• We need something like 'cold gas' thrusters!

• (Really just normal thrust, but greatly reduced!)

For just about everything, more G's are better. More thrust = more fun. Except when you need really small, precise corrections, such as when landing or whatever..

You can fudge this already by pausing then editing your thruster powers.. maybe just an assignable modifier key would suffice, set it to 5% or whatev in the cfg..

..or else, for a more ergonomic feel, how about modifying the 'attack' from thruster keys just to soften its onset? Then you could gently tap for small thrusts, or hold for full thrust.. maybe with adjustable gamma curves in the cfg?

As ever, not a priority, just throwin' it out there..
 
Yeah, there are a lot! I haven't found any more issues with settings in the config program not being applied in-game, but I haven't got the Aniso or HellMod variations installed so they haven't been checked.

Andy, is there any chance of adding a check to the config program so that if the user tries to close it without saving their changes it flags this up? Asking for a friend 😝

Also, have you looked at a "sell all" option for items in the screen where an ad on the bulletin board offers twice the market price?
Your "friend" can be reassured that the configuration app has been updated to query its closure if it thinks a value was changed.
I did want to have this in the first release, but tbh it was already running so much later than I'd intended and wanted to get it 'out there'...

As for the "sell all"... sigh... you had to remind me ... :eek:
I took a look into the Anisotropic implementation and worked through it, realising it wouldn't be a simple cut+paste job.
In Aniso, the adverts are created with limited quantities requested and they remove themselves once fully supplied. I didn't want to change FFE's missions to this level, just add the 'sell all' button... so have ended up figuring out how the UI functions are related to the game texts. Adding a button sounded simple, but turned out it required creating an alternative advert screen, buttons & response function. (meh!)
I've added a FFE specific patch setting that'll controls whether to call to the original screen or the new version... just in case there are any issues.

Making this change meant there needed to be new strings in the relevant translation data file for each language, and also highlighted there were a couple of missing texts for those recent Aniso-style combat patches that needed to be added to the FFE build.
I've updated the FFE data with the extra strings of Aniso/Hellmod so that they're all synchronised and I've also added the relevant translation files for hellmod/anisotropic - I realised without these they couldn't support the "urgently required" adverts correctly with the requested stock quantities.
The Hellmod/Anisotropic builds now have their alternate BBS/Ship/Weapons/Equipment texts across all languages too.

The missing combat messages were for military assassins when they attack the player, telling them that they'll regret working for the opposing military. In FFE they used a random npc name instead, something that's always been a pet hate of mine. I've tweaked the message slightly so that now it says you'll regret working against their faction (which is always correct) and extended its use across all versions for every attack by a military ship.

The latest patch extends the developer console/script to be able to dump out values from other -named- areas of game data and also to create strings. Output to named log files and formatting of numeric values has been added, use of cached jumps for IF/ELSE/GOTO lines once parsed, and also the addition of a GOSUB command to call sub-routines & return afterwards. I've included a couple of scripts as examples (scripts\data) that I'll be starting to use to look at the data as the Hand-Coded Missions progress. (big thanks for the set of saves for each of these)

I also decided to include the model/shader changes that I've made. Current installations may want to have the existing folders renamed/removed before adding the beta files as for the ships there are changes to how skins are used:
The Asp (40) has a shader that adds a little detail via bump-mapping as well as random recolouring of areas of the ship to give variation.

The Skeet (45 & 208) uses a single skin file with recolouring to replace the multiple skins that were included the original core-files archive. It also has white stripes that can appear, controlled by the tx_masks.png

The Viper MK2 (34) builds on this, also having a recoloured main skin, as well as a military version. The shader uses the tx_masks.png file for recolouring non-military/police ships and will enable a skull & crossbones decal on pirate ships. I'm not going to win any art prizes with it, but it might give other people ideas of how to extend other models. (The model is Gernot's enhanced version with the cockpit & corrected normals)

There is also a recoloured cargo container (153) that changes colour depending upon its contents.

The other model folders added since the last beta are for fixes: Model 49/209 folder contains a new tris.ini for the Thargoid "Piston" ship (the one in the intro) which wasn't scaled correctly in-game. 271 is the start station - I've squared off the end of the landing pads so that they meet up with the adjacent city area and prevents the gap that otherwise appears to the left of the screen showing a band sky where there should be ground.
The beta patch file has grown to 10mb now with these additions, and it can be found here: FFED3DAJ v1.16 beta 2..

I do have to include a warning unfortunately. VirusTotal has a dislike to beta 2 and for a couple of weeks now & various interim builds has been flagging up the executables as containing Malware. This seems to be the inclusion of BitDefender in the automated test and 5/6 others that perhaps share the same detection algorithms, but today's scan of a repack with an updated versions.txt has included 'microsoft', sigh. I've made multiple builds the last few weeks hoping to clear whatever is triggering this, and just ran a full scan on my system with Norton and I'm as sure as I can be it's a False-Postive - an issue that's cropped before with this site. Many wasted hours, Frustrated isn't the word. So, I have to ask that anyone downloading satisfies themselves with their own scan or sits it out until the next build/clean bill of health. Here's the report.

Changes
Code:
2019-11-14 - Version 1.16 beta 2:
+ FFE bug fix: Fuel scooping now works correctly and doesn't require the player to use time acceleration.
+ Option to force all Thargoid laser beams to render in green. (Doesn't affect their real type/strength)
  Set "forceGreenThargoidLasers=1" in the common [PATCHES] section to enable, set to 0 to disable.
+ Option in FFE build to enhance the 'urgently required' BBS message screens with a 'sell all' button that
  will sell all items in cargo at once. "AddSellAllButtonBBS=1" in the [PATCHES_FFE] section of the config
  file enables this.
+ Military ships now issue a more relevant threat message before attacking instead of the randomly named
  "You'll regret dealing with Richard Grant!" threat. The Aniso/Hellmod message that was already used by
  military assassin ships is reworded to be a more generic threat and added to standard JJFFE based build.
+ Added/updated translation data files strings_5299.dat for all languages to ensure new messages and
  dialogues appear. Hellmod and Anisotropic builds now display their version of the "urgently require"
  BBS advert correctly.
+ New sun shader (sun.fx) to separate their rendition from the other planets.
+ Bug fix: Script parser was tripping over ELSE statements and flagging them as an error.
+ Bug fix: Max FPS config value not being applied and it is now marked as 'read-only' in the dev console
  as changing it has no effect once the game is running.
+ Bug fix: SinglePlayAllServicesVideos setting not being applied in game or read by config application.
+ Bug fix: Added missing message in FFE build for when starport is under military lockdown because optional
  patch has been enabled to restrict access in systems that have an active mission.
+ Multiple ship scale fixes for their rendition in cabin sceens. (zoom values in shipdata text files)
+ Added tris.ini files for Thargoid Piston ship .X models which weres 3-times too small in game encounters,
  intro sequence version has its scale reduced 3x to account for this.

+ Developer Console/Script enhancements:
  + Bind and Auto scripts are now executed with initialised val & str variable values. They do not inherit
    or update the current val & str variable values so that they cannot clash with the dev console or
    affect other long-running scripts. Other scripts called from the dev console or from within a parent
    script continue to have shared access to the variables.
  + Console indicates when a script command is running and it does not accept input until completion. 
  + Extended Peek/Poke console commands so that they can examine additional memory locations or start at
    a named block, e.g. MISSIONS for the player's military missions data.
    There's a whole area before the fairly well documented 'GMSTRUCT' data which contains variables for
    the hand-coded missions, Journal stories & subscriptions.
  + String variables now support the '+=' operator to allow strings to be appended to them without needing
    to use the Print command and formatting.
  + Added value 'gameBuild' to identify the game type being run: 0 = Standard FFE, 1 = Anisotropic mod,
    2 = Hellmod build.
  + Added GOSUB command so that scripts can call a sub-routine and return from it.
  + GOTO/GOSUB commands and label jumps, ELSE/ENDIF of IF statements are 'compiled' to byte codes to
    improve repeated calls.
  + Added console command to generate a random number.
  + Added console commands for outputting information to a named text file.
  + New variables to expose path and filename of loaded save game so they can be used in logs.
  + Added console command to format current system (computer) date/time into a string for logs/filenames.
  + Added console commands to convert date, system id and time data values into readable strings.
  + Added console command to generate FFE names for npcs, ship ids, cities, merchants etc.
  + Added console command to grab a text string at a given memory offset. (not many known)
  + Added console command to turn on/off the limit of script commands executed when it is known that it
    will run a long time and is not due to an infinite loop.
  + Added console commands for string manipulation: strLen, strToVal, leftStr, midStr, rightStr, subStr,
    uppercase, lowercase.
  + Changed formatting of values with 'b' option so that they are output as standard binary values and
    not reversed. A new 'f' option implements the reversed order to represent the value as as string of
    flags in bit-order.
  + A length value can now be specified for the 'b','f' and'x' formatting options to represent them with
    a fixed width. e.g. "print %val1:b8". New format option 'd' to support fixed lengths on decimals.
  + Changing the value of 'language' is now supported whilst the game is running. Please note that not
    all screens will automatically repaint themselves entirely (e.g. journal stories) and any existing
    messages in the ship's console cannot be converted into the new language and may therefore display
    strange characters.
    Switching language, or toggling the 'enabletranslations' value from 1 to 0, then back to 1 again will
    reload the special characters mappings and data files.

+ Configuration application "FFED3DAJ_Config.exe" will now ask for confirmation when the user attempts to
  close the window and there might be unsaved changes to the settings.
 
Last edited:
Many thanks Andy. I haven't had much time to look at all the additions and improvements you've made, but the FPS and no repeat video bugs are sorted :)

As for the "sell all"... sigh... you had to remind me ... :eek:
I took a look into the Anisotropic implementation and worked through it, realising it wouldn't be a simple cut+paste job.
In Aniso, the adverts are created with limited quantities requested and they remove themselves once fully supplied. I didn't want to change FFE's missions to this level, just add the 'sell all' button... so have ended up figuring out how the UI functions are related to the game texts. Adding a button sounded simple, but turned out it required creating an alternative advert screen, buttons & response function. (meh!)
I've added a FFE specific patch setting that'll controls whether to call to the original screen or the new version... just in case there are any issues.
This is working quite nicely, testing it by adding commodities using BUFFET. The only slight issue is that if I select the "sell all" option, it doesn't update the quantity shown in the "sell 1 tonne" option above it, although the "sell all" option disappears.
In other words...

screen_191118_214207.jpg


but after I click on the second option...

screen_191118_214213.jpg


although I can't sell any more because there's none left in my cargo hold. Exiting the advert and going back in draws it correctly as [0 tonnes in cargo bay].

I'll keep plugging away at other things, as well as playing the game itself(!) but Real Life™ is stupidly busy at the moment 😟
 
I do have to include a warning unfortunately. VirusTotal has a dislike to beta 2 and for a couple of weeks now & various interim builds has been flagging up the executables as containing Malware. This seems to be the inclusion of BitDefender in the automated test and 5/6 others that perhaps share the same detection algorithms, but today's scan of a repack with an updated versions.txt has included 'microsoft', sigh. I've made multiple builds the last few weeks hoping to clear whatever is triggering this, and just ran a full scan on my system with Norton and I'm as sure as I can be it's a False-Postive - an issue that's cropped before with this site. Many wasted hours, Frustrated isn't the word. So, I have to ask that anyone downloading satisfies themselves with their own scan or sits it out until the next build/clean bill of health. Here's the report.
I submitted ffed3daj.exe to Microsoft Security Intelligence and they agree that it's an incorrect detection. Apparently they've updated their malware definitions so it shouldn't get flagged up any more 😃
 
Last edited:
Thanks for doing that Steve.
I downloaded AdAware and ran a scan - it pretty much flags up every single build since 2013 as malware! (n)
They buy-in definitions from BitDefender by looks of it so probably why a load of less well known scanners also flag up the same thing. No submissions of issues either which is pretty poor, so I had a look at submitting issues to BD via their web-page. Seems I need to provide a screenshot too apparently (unnecessarily awkward IMO) so looked at installing, but can't without removing Norton first - a hoop I'm not jumping through just to discover if it has an built-in submit feature.
(If anyone actually uses BitDefender - if you are able to scan and submit any versions of the FFED3DAJ game .exe files, that'd be very helpful!)

I've fixed the bbs advert issue too & slightly improved it so it uses the standard layout with the 'available options:' heading, removes buttons once they're not relevant and it'll say thanks once you've sold all of your cargo. Just need to update the readme for some new script hooks and string commands, haven't had a chance over the weekend - hopefully will get to it tomorrow.
Cheers!
 
Something which has cropped up today; I'm not sure if it's a bug or not...

In the FFED3DAJ_config program, under the Graphics & Effects tab, there's a checkbox for "External Camera Limit on Surface". Does this refer to the external view which is centered on your ship and which can be zoomed in and out with the + and - keys? If it is, then disabling the limit doesn't seem to have any effect in-game 😔
 
Top Bottom