Skip to content

[MOD] EEex (v0.10.2-alpha)

1363739414248

Comments

  • UlkeshUlkesh Member Posts: 209
    Bubb, thanks for the support on this mod. I particularly appreciate that this mod, coupled with Spell menu extended, is compatible with SoD-less BG:EE.
    Thanks.
  • cddscdds Member Posts: 46
    edited September 2022
    Is it possible to disable specific timer bars next to the portraits? I would like to configure it so that only the cyan bar (round timer) shows, but not the green and red bars
    Post edited by cdds on
  • BubbBubb Member Posts: 1,000
    cdds wrote: »
    Is it possible to disable specific timer bars next to the portraits? I would like to configure it so that only the cyan bar (round timer) shows, but not the green and red bars

    This is now in master; it is configurable at install time / by changing the relevent option variables in B3Timer.lua.
  • anthraxusanthraxus Member Posts: 3
    Bubb wrote: »
    cdds wrote: »
    Is it possible to disable specific timer bars next to the portraits? I would like to configure it so that only the cyan bar (round timer) shows, but not the green and red bars

    This is now in master; it is configurable at install time / by changing the relevent option variables in B3Timer.lua.

    Is this the most recent master version a few pages back ? (pg 37 2nd post down by you)

    Didn't know if that was outdated or not.

  • BubbBubb Member Posts: 1,000
    edited September 2022
    anthraxus wrote: »
    Is this the most recent master version a few pages back ? (pg 37 2nd post down by you)
    Yes, that link points to master, though I've just published a release that includes the new options.



    v0.9.9-alpha:
    Fixed:
    • Scrollbar thumbs being stuck at the bottom of the trough.
    Added:
    • The timer module's visual indicators are now separately installable.

    v0.9.8-alpha:
    Fixed:
    • A vanilla bug introduced in v2.6.6.0 where op206/318/324 causes some traps to crash the game.
    • A vanilla bug where special abilities fail to update quickspell slots in certain situations.
    • InfinityLoader Console IO causing slow save / load times, freezes when using certain mods, and not redirecting correctly.
    • A crash that occured when UI Edit Mode (F11) attempts to save changes.
    Reimplemented:
    • EEex_HasDispellableEffect()
    • EEex_IsImmuneToOpcode()
    • EEex_MatchObject() / EEex_MatchObjectEx() / EEex_MatchObject
    • EEex_SetTarget() / EEex_Target
    • Object parsing functions
    • Trigger parsing functions
    • Variable (GLOBAL) fetching / setting functions
  • gatperdutgatperdut Member Posts: 15
    Neat, thanks Bubb.

    Is it described somewhere how to go about reinstalling EEEx? I got the version prior to this last fix in my game, and I'd like to update. Just download, extract and overwrite the files, the run the weidu exe?
  • BubbBubb Member Posts: 1,000
    edited September 2022
    gatperdut wrote: »
    Is it described somewhere how to go about reinstalling EEEx? I got the version prior to this last fix in my game, and I'd like to update. Just download, extract and overwrite the files, the run the weidu exe?

    1) Uninstall via setup-EEex.exe.
    2) Delete the "EEex" folder, (that's in your game folder).
    3) Download / extract the new version.
    4) Run setup-EEex.exe and install as normal.

    Edit: The following might handle mod stacks better:
    1) Navigate into the "EEex" folder (that's in your game folder) and delete everything except the "backup" folder.
    2) Download / extract the new version.
    3) Run setup-EEex.exe and choose:

    What should be done with all components that are NOT YET installed?
    [I]nstall them, [S]kip them, [A]sk about each one?
    
    =>
    [S]kip them
    

    What should be done with all components that are ALREADY installed?
    [R]e-install them, [U]ninstall them, [S]kip them, [A]sk about each one?
    
    =>
    [R]e-install them
    

    Make sure you have made a backup of the entire game folder before doing the above, just in case something breaks.
    Post edited by Bubb on
  • gatperdutgatperdut Member Posts: 15
    Bubb wrote: »
    gatperdut wrote: »
    Is it described somewhere how to go about reinstalling EEEx? I got the version prior to this last fix in my game, and I'd like to update. Just download, extract and overwrite the files, the run the weidu exe?

    1) Uninstall via setup-EEex.exe.
    2) Delete the "EEex" folder, (that's in your game folder).
    3) Download / extract the new version.
    4) Run setup-EEex.exe and install as normal.

    Edit: The following might handle mod stacks better:
    1) Navigate into the "EEex" folder (that's in your game folder) and delete everything except the "backup" folder.
    2) Download / extract the new version.
    3) Run setup-EEex.exe and choose:
    What should be done with all components that are NOT YET installed?
    [I]nstall them, [S]kip them, [A]sk about each one?
    
    =>
    [S]kip them
    

    What should be done with all components that are ALREADY installed?
    [R]e-install them, [U]ninstall them, [S]kip them, [A]sk about each one?
    
    =>
    [R]e-install them
    

    Make sure you have made a backup of the entire game folder before doing the above, just in case something breaks.

    Awesome, thanks again. I'll give it a try.
  • FixTesteRFixTesteR Member Posts: 8
    First off, thanks for EEex! I've just discovered it so I've yet to enjoy the full potential it has.
    Could someone describe what these functions do when turned on/off:
    B3EffMen, B3Invis, and B3Scale.
    These are found in orverride/EEex_Modules.lua.
    B3Timer has been explained elsewhere in this thread.
    B3EffMen is supposedly about thieving button for everyone, yet my non-rogue characters don't have it despite me having B3EffMen enabled. So what does it actually do? What if I disable it?
    Thank you in advance!
  • BubbBubb Member Posts: 1,000
    edited September 2022
    FixTesteR wrote: »
    Could someone describe what these functions do when turned on/off:
    B3EffMen, B3Invis, and B3Scale.
    B3EffMen: The effect menu. It shows what spells are affecting a creature on L-Shift + Hover. The WeiDU installer asks if you want to enable this module.

    B3Invis:
    Allows the player to see invisible creatures if one of the currently selected party members has op193 applied, (this is what allows some creatures to see through invisibility).

    B3Invis_RenderAsInvisible determines whether invisible creatures seen in this way render as per improved invisibility, or if just their selection circle appears.

    B3Scale: Allows the player / a modder to change the game's UI scaling target. Run
    B3Scale_SetPercentage(p)
    
    via the game's debug console, p = [0-1], where 0 is minimum scaling and 1 is maximum scaling.
  • anthraxusanthraxus Member Posts: 3
    Playing co-op with someone who has the EXACT same install as I do, but they're not getting the effect menu for some reason. Well. it's there, but it's always blank. I'm thinking it's some other type of file missing on their PC.
  • BubbBubb Member Posts: 1,000
    edited October 2022
    anthraxus wrote: »
    Playing co-op with someone who has the EXACT same install as I do, but they're not getting the effect menu for some reason. Well. it's there, but it's always blank. I'm thinking it's some other type of file missing on their PC.
    Unfortunately, at the moment EEex can only read client-side data, so non-host players see exactly what their game knows about the creature: nothing. This is on the list of things to fix, but it is low on the stack.



    v0.9.10-alpha:
    Fixed:
    • Slow InfinityLoader IO performance on Windows 10, (game slowdowns / freezes with DragonspearUI++).
    For Modders:
    • Reimplemented op400 (SetTemporaryAIScript).
    • Added op326 special BIT1 functionality — flips source and target for SPLPROT.2DA check.
  • MordekaieMordekaie Member Posts: 269
    The latest release v0.9.11-Apha is blocked by Windows Defender (Trojan detected). Probably nothing to worry but i report the information just in case...
  • cddscdds Member Posts: 46
    Mordekaie wrote: »
    The latest release v0.9.11-Apha is blocked by Windows Defender (Trojan detected). Probably nothing to worry but i report the information just in case...

    Same here, didnt have this problem with any release up to 0.9.10
  • cobancoban Member Posts: 9
    edited October 2022
    Bubb wrote: »
    FixTesteR wrote: »
    Could someone describe what these functions do when turned on/off:
    B3EffMen, B3Invis, and B3Scale.
    B3EffMen: The effect menu. It shows what spells are affecting a creature on L-Shift + Hover. The WeiDU installer asks if you want to enable this module.

    B3Invis:
    Allows the player to see invisible creatures if one of the currently selected party members has op193 applied, (this is what allows some creatures to see through invisibility).

    B3Invis_RenderAsInvisible determines whether invisible creatures seen in this way render as per improved invisibility, or if just their selection circle appears.

    B3Scale: Allows the player / a modder to change the game's UI scaling target. Run
    B3Scale_SetPercentage(p)
    
    via the game's debug console, p = [0-1], where 0 is minimum scaling and 1 is maximum scaling.

    This scaling option is essential for me, the UI is too small with default scaling (I am playing on 1440p), while the "Scale User Interface" graphics option makes the UI too large for my taste.
    I have one question on this: I am playing EET, and in the folder Documents\Baldur's Gate - Enhanced Edition Trilogy there is a file Baldur.lua, which I understand records all the setting of the game. In this file I can find the entry ''SetPrivateProfileString('B3Scale','Percentage','0.6')'', but it seems the game does not register it, since it defaults to the original scaling when I start the game. Is the command ''B3Scale_SetPercentage(0.6)'' supposed to be entered each time I start the game? It's no issue at all, I am just wondering if this is how it works.

    I am using all the options in the EEex installer+the scaling, and your spell menu, thank you for these wonderful mods!
  • BubbBubb Member Posts: 1,000
    edited October 2022
    @coban: Hi, glad you like my mods! I have released v0.9.12-alpha that fixes the problem.



    v0.9.12-alpha:
    Fixed:
    • B3Scale_SetPercentage(p) dropping fractional parts of the value when starting the game.

    v0.9.11-alpha:
    Changed:
    • InfinityLoader now caches pattern addresses. Subsequent game launches are now quicker.
    • Converted mod to match Gibberlings3 style.
  • cddscdds Member Posts: 46
    edited October 2022
    @Bubb do you have any idea why Microsoft Defender has started throwing (false) detections since v0.9.11? I know they are false positives, but its still curious that it started happing specifically with the .11 alpha. I had a look at your commits for .11 but i didnt see anything that would explain this
    Post edited by cdds on
  • BubbBubb Member Posts: 1,000
    cdds wrote: »
    @Bubb do you have any idea why Microsoft Defender has started throwing (false) detections since v0.9.11? I know they are false positives, but its still curious that it started happing specifically with the .11 alpha. I had a look at your commits for .11 but i didnt see anything that would explain this
    There's only two behaviors that are different:
    • InfinityLoader caches pattern addresses — as part of this it reads the "last modified" time for the game's exe. This is normal application behavior though, so this shouldn't tip anything off.
    • EEex is now distributed as a self-extracting archive, which antiviruses might not like.

    I've been having Windows Defender detect EEex for a while now, though it seems it has gotten more aggressive recently. Nothing I can do really, EEex does use non-conformant methods, like injecting code into another process space. That's the sort of thing viruses do.
  • v1ldv1ld Member Posts: 22
    edited October 2022
    I've been trying to get InfinityLoader / EEex working with BG2 on Arch Linux & Steam Deck with Proton. Working with the former, but Steam Deck will work if Arch does.

    InfinityLoader by itself works once you force Steam to install the Windows version of the game instead of the default Linux binary. Will record the details of that in the next post in case it turns out to be useful.

    The game will load and run under InfinityLoader on Arch Linux - the console window pops up and you get to see the scrolling output before it spawns the game proper, which runs just as usual.

    However, once EEex is installed (using setup-EEex.exe) the InfinityLoader console pops up as usual, but you then get
    4jicMkV.png

    Looking at the code this is as it says: AttachConsole() is failing with an error code that is decimal 5. I don't code on Windows, so it's not clear which error code that maps to.

    It's curious that this fails only when EEex is installed, from superficial inspection that code is called even without EEex.

    I've tried installing just the EEex component alone and still get the same error. The latest VC++ libs as of today are installed.

    Any ideas on how to move beyond this would be great. I would love to use both EEex and Spell Menu again, they were brilliant in my BG1 run a year ago.

    Thanks!
  • v1ldv1ld Member Posts: 22
    edited November 2022
    EEex works on Arch Linux with Proton but you must force Steam to install the Windows version instead of the native Linux version. This will work for Steam Deck as well. For any future Google searches landing here, here's a more in-depth write up of how to use EEex with Baldur's Gate EE 1, 2 & Siege of Dragonspear and Icewind Dale EE.
    1. Force the Windows version to be installed instead of the Linux version. First uninstall the game if you need to. Then go to Steam Settings, select the Steam Play tab and select both the Enable Steam Play options there (for supported and other titles). Then either click on the gear icon in the BG or BG2 game's Library page or right click the game, then select Properties. Go to the Compatibility tab and enable "Force the use of a specific Steam Play compatibility tool" and select the latest version of Proton from the drop down.
    2. Install the game. You should now have a Baldur.exe file in the root folder - that means you have the Windows version installed. If you instead have a file called BaldursGateII without a .exe extension, you still have the Linux version installed and will have to go back to step 1, uninstall the game and repeat.
    3. Run the game through Steam to where you get to the title screen. Play ahead a bit and verify it's all running if you like, but if you get to the title screen, you're good to go. (This makes Steam create the Proton prefix folder on first run, if you're curious.)
    4. Install EEex like you would any other Weidu mod by copying its files into the root of the BG or BG2 install and running setup-EEex.exe. (You can run it using wine if you like, with "wine setup-EEex.exe".)
    5. Edit the InfinityLoader.ini file and change the ExeNames, ExeSwitchAlias and ProtonCompatibility entries in the General section so they look like the below. Leave all the other entries and comments as they are, change only these entries.
    6. Changes to InfinityLoader.ini
      [General]
      ExeNames=BaldurReal.exe,icewind.exe,SiegeOfDragonspear.exe
      ExeSwitchAlias=BaldurReal.exe:Baldur.exe
      ProtonCompatibility=1
    7. Rename the Baldur.exe file to BaldurReal.exe
    8. Rename the InfinityLoader.exe file to Baldur.exe
    9. Try launching the game through steam. You should see a console window pop up with Infinity Loader's output but it will then launch the game proper.
    10. Enjoy all the cool mods enabled by EEex!
    Post edited by v1ld on
  • BubbBubb Member Posts: 1,000
    With some small alterations to InfinityLoader, it seems EEex works under Proton.

    1) AttachConsole() always returns permission denied, I'll have to add a ProtonCompatibility=1 flag that alters how the console is handled. Also, output is duplicated, which will probably require a custom patch to the exe to fix.

    2) For some reason std::chrono::clock_cast() crashes under Proton, I'll have to find a way around that.

    3) Redirecting based on a renamed exe is a little cumbersome, as ExeSwitchAlias's in the db also need the renamed exe added to their lists. I'll probably add a global ExeSwitchAlias.
  • v1ldv1ld Member Posts: 22
    edited October 2022
    Bubb wrote: »
    With some small alterations to InfinityLoader, it seems EEex works under Proton.

    1) AttachConsole() always returns permission denied, I'll have to add a ProtonCompatibility=1 flag that alters how the console is handled. Also, output is duplicated, which will probably require a custom patch to the exe to fix.

    2) For some reason std::chrono::clock_cast() crashes under Proton, I'll have to find a way around that.

    3) Redirecting based on a renamed exe is a little cumbersome, as ExeSwitchAlias's in the db also need the renamed exe added to their lists. I'll probably add a global ExeSwitchAlias.

    This is awesome news! Appreciate you testing under Proton.

    For 1: duplicate output to the console is bearable, IMO, if it's a problem to work around.

    For 3: That would be great. Keeping Baldur.exe as the executed exe will let Steam's cloud saves continue to work with minimum fuss, allowing seamless PC to Deck hand off if you keep your mods the same on both.

    And thanks, you made my day. I'm about to do a long run of BG2 and ToB for the first time since 2002-3ish and facing SCS mages is a more cumbersome prospect without some of the improvements in your mods.

    Please let me know if I can help test on either Arch or the Deck - though in my experience, there's no difference in compatibility if you're using Proton.
  • BubbBubb Member Posts: 1,000
    edited November 2022
    v0.9.13-alpha:
    Added:
    • Wine / Proton support.
    • Documentation to InfinityLoader.ini.
    Fixed:
    • InfinityLoader.exe not saving a crash .dmp if it encounters an exception during initial start-up.



    @v1ld This version should start up under Proton with no issues. See the documentation in InfinityLoader.ini regarding ProtonCompatibility=1 and how to configure the loader to run a renamed executable, like BaldurReal.exe.
  • v1ldv1ld Member Posts: 22
    edited November 2022
    @Bubb Thanks, this is great. Your rapid release is much appreciated too!

    I'll update the post above to reflect any changes needed once I get to try out the new build later today.

    I didn't realize that EEex comes with a bundled Infinity Loader until today. I'd installed the older version from that repo's older releases. Maybe add something to the readme to say that users should download EEex directly?

    Though nothing lost as EEex's bundled version will overwrite any earlier versions, of course. This also explains where the InfinityLoader.ini file came from - that confused me as I'd created one by hand after looking through the source.
    Post edited by v1ld on
  • v1ldv1ld Member Posts: 22
    edited November 2022
    @Bubb It all works fine! If you got a long message about me not being able to start it from Steam, please ignore. I edited the post to remove that erroneous report.

    The problem was the latest MSVC++ was no longer installed in the game's prefix - I'd blown it away to start clean and forgotten that dependency.

    Can confirm that both EEex and Bubb's Extended Spell Menu work perfectly.

    This is fantastic - thank you so much.

    Cheers.
    Post edited by v1ld on
  • BubbBubb Member Posts: 1,000
    @v1ld Great, glad it is working! I've added some more warnings about manually installing InfinityLoader to the OP and the InfinityLoader repo. I had added some warnings to the GitHub readme, but apparently that never made it over here.
  • v1ldv1ld Member Posts: 22
    @Bubb I've updated the post above with a step by step on getting EEex running under Arch - should work exactly the same on the Dock, which I'll verify later this weekend.
  • GraionDilachGraionDilach Member Posts: 581
    edited November 2022
    @v1ld Little nitpick but you forgot IWDEE from it.
  • v1ldv1ld Member Posts: 22
    @GraionDilach IWDEE is not in the ExeNames by default. All I did was change Baldur.exe -> BaldurReal.exe, the other 2 entries are there already.
  • GraionDilachGraionDilach Member Posts: 581
    The icewind.exe being the second entry is IWDEE.
Sign In or Register to comment.