Jump to content

khelban12

Members
  • Posts

    162
  • Joined

  • Last visited

Posts posted by khelban12

  1. 3 hours ago, grodrigues said:

    As far as b) as the current SR maintainer, I am a bit wary of making such corrections in SR, because they would have to be systematic, as opposed to some one-off fix.

    The fix of adding the required spell.ids entries for the wild mage spells is simple and can easily be made into a mod installable before SR -- it is *not* a good idea to fold them into your copy of SR. If you need help doing it, just holler.

    It's out of SR's scope to do it. I understand. Thank your again for your time.

  2. 1 hour ago, grodrigues said:

    Hello again and thank you for the quick replies.

    a) I incorporated the fixes in your pull requests. At first, it didn't work and i got "unhandled case" once again. I had to change (FILE_EXISTS "tobexcore.ini") to (FILE_EXISTS "tobex_ini/tobexcore.ini") and then it works fine.

    b) I did a new installation and it seems i hadn't messed up anything. The spell.ids file simply does not contain the necessary entries. I know i said that bg2fixpack has code for them but I had hastily browsed the code. It seems that the code is only called from the modder.tpa file which is deprecated for some time now.

    The first mod (at least in my install order) that inserts the entries is Wheels of Prophecy which is installed way later than Spell Revisions.

    I don't know what is the proper fix (re-enable modder.tpa in bg2fixpack ?) so i locally did the following workaround which seems to work.

    --- /home/git/repos/spellrevisions/spell_rev/setup-spell_rev.tp2	2023-06-16 21:45:47.126083785 +0300
    +++ spell_rev/setup-spell_rev.tp2	2023-07-27 14:28:33.879636737 +0300
    @@ -10,7 +10,11 @@
       OUTER_PATCH ~~ BEGIN
         PATCH_INCLUDE ~spell_rev/settings.ini~
       END
    -  
    +
    +  APPEND ~spell.ids~ ~2124 WIZARD_NAHALS_RECKLESS_DWEOMER~ UNLESS ~WIZARD_NAHALS_RECKLESS_DWEOMER~
    +  APPEND ~spell.ids~ ~2222 WIZARD_CHAOS_SHIELD~ UNLESS ~WIZARD_CHAOS_SHIELD~
    +  APPEND ~spell.ids~ ~2723 WIZARD_IMPROVED_CHAOS_SHIELD~ UNLESS ~WIZARD_IMPROVED_CHAOS_SHIELD~
    +
       // On EE games, convert tra files to utf-8 so that games don't crash for non-English
       ACTION_IF NOT VARIABLE_IS_SET cd_always THEN BEGIN
         OUTER_SET cd_always = 1

    Thank you again for your time. I hope i didn't confuse you this time.

  3. 20 hours ago, grodrigues said:

    Ah, that is a difference that makes a difference.

    your b) is more baffling, since the code is telling that the wild mage spells have different symbolic names. I am pretty sure that is not supposed to be happening... The fact that the chaos spells have "no symbol" is doubly alarming -- are they simply not in spell.ids or they literally have "no symbol" as an entry? At any rate, what I need are those symbolic names.

    For now, disregard what i said about b). I will do another test installation (this time from scratch from install cds) to test this again. I had the idea to insert code in spell_rev.tp2 that appends the entries to spell.ids, as so many other mods do, and i noticed that bg2fixpack already has entries for the chaos shields spells. So, the only explanation for them to not be there is that i probably did something wrong in my test installation. Sorry for confusing you. I will be back with further news.

    So the only real problem is the test for tobex.

  4. 10 hours ago, grodrigues said:

    @khelban12

    With the most recent rc4, I pre-generated a Sorc in BG2 and cannot reproduce any of the two bugs -- yes, the behavior you are witnessing should not happen -- you relate, specifically: availability of wild mage spells and two dispel magics. So, I will need some more info to diagnose this.

    The most recent rc4 did re-implement the hidespl,2da stuff but it was already present and working.

    I may have done something wrong in my installation. I have been known to be an idiot :)

    When you tried to reproduce it, did you do it on tobex or EE ?

    I have tried a new installation with just tobex v28 -> tobex afterlife -> bg2fixpack v13 -> spell_rev v4.19 (my repo shows commit d5ad2b28215de from Jul 25 as latest) and i get the same problems.

    I noticed that during installation i got a message that there is no rule to identify tobex and that it is an unhandled case and no patching will be done. I searched for this string and it resides in hidespl_patching.tph.

    diff -urw /home/git/repos/spellrevisions/spell_rev/lib/hidespl_patching.tph spell_rev/lib/hidespl_patching.tph
    --- /home/git/repos/spellrevisions/spell_rev/lib/hidespl_patching.tph	2023-06-17 19:07:31.288328202 +0300
    +++ spell_rev/lib/hidespl_patching.tph	2023-07-26 10:36:29.215926381 +0300
    @@ -98,7 +98,7 @@
             ACTION_IF GAME_IS "iwdee" BEGIN
                 OUTER_TEXT_SPRINT engine "iwdee"
             END ELSE BEGIN
    -            ACTION_IF GAME_IS "tobex" BEGIN
    +            ACTION_IF FILE_EXISTS ~tobex_ini/tobexcore.ini~ BEGIN
                     OUTER_TEXT_SPRINT engine "tobex"
                 END ELSE BEGIN
                     WARN "hide_spells: unhandled case; no patching will be done."

    This is the relevant code. As you see it uses "game_is tobex" which isn't a known value if i am not mistaken. I changed it as shown above (i don't know which is the proper way to identify tobex. some mods check for tobexloader.exe and others for tobexcore.ini) and now patching works. So my revised list of problems are the following:

    a) I now correctly get only one Dispel Magic spell but i do not get Remove Magic at all. Is this how it is supposed to be ? Does Spell Revisions remove Remove Magic alltogether ?

    b) I still can choose all the wild magic spells because their patching doesn't work so they are not hidden.

    hide_spells_from_array: resource name for spell 'WIZARD_NAHALS_RECKLESS_DWEOMER' not found.
    
    hide_spells_from_array: resource name for spell 'WIZARD_CHAOS_SHIELD' not found.
    
    hide_spells_from_array: resource name for spell 'WIZARD_IMPROVED_CHAOS_SHIELD' not found.

    I get the above message and indeed if i check spell.ids these identifiers do not exist in spell.ids. Opening the spell files in NI, i get "Wizard_Alarm" for Nahal and "no symbol" for the two chaos shield spells.

    If this a problem on my side and only in my installation please forgive me for wasting your time.

  5. Greetings.

    I was reading my notes today and i want to report some potential bugs.

    a) When you generate a spellcaster (i always run sorcerer but i suppose the same happens with mage too), you can choose Nahal's Reckless Dweomer and Chaos Shield. I checked the spells in NI and the spell-rev files in spwi1## and spwi2## have no exclusion flags where the backed files have exlusion for "Abj, Con, Div, Ench, Ill, Inv, Nec, Trans, Generalist". Is this wanted behavior ? Should all spellcasters be able to choose these spells.

    b) Again in character generation i get two "Dispel Magics". I chose both spells and opened the save file in eekeeper and the spells are spwi302, spwi326 respectively so they are supposed to be Remove and Dispel Magic. Recently there was a re-implementation of hidespl.2da so i thought that it was to blame but it was not. I checked the git repository and got the following:

    commit 09348fba01d85d4f0a7cefd60dcd87d2cb344812
    Author:     Mike <mike1072@gmail.com>
    AuthorDate: Wed Dec 30 20:07:40 2015 -0800
    Commit:     Mike <mike1072@gmail.com>
    CommitDate: Wed Dec 30 20:07:40 2015 -0800
    
        V4 Beta 11
    
    diff --git a/spell_rev/languages/english/arcane.tra b/spell_rev/languages/english/arcane.tra
    index a1bd6b7..24b56e7 100644
    --- a/spell_rev/languages/english/arcane.tra
    +++ b/spell_rev/languages/english/arcane.tra
    @@ -606,19 +606,19 @@ Saving Throw: None
     
     This spell grants an unnatural perception of things to come. Once Clairvoyance is cast, the caster receives instantaneous warnings of impending danger or harm. He becomes impossible to surprise and cannot be backstabbed. In addition, the spell gives a general idea of what action might be taken to best protect oneself, granting a +2 insight bonus to AC and saves vs. breath. The effects last for the duration of the spell, and cannot be dispelled.~
     
    -@503=~Remove Magic~
    -@504=~Remove Magic
    +@503=~Dispel Magic~
    +@504=~Dispel Magic

    Is this supposed to be ? Should both spells be named Dispel Magic ? If yes, should both be available in character generation or one should be hidden ?

  6. 33 minutes ago, lynx said:

    The shipped item_use.2da has more columns, but no actual extra data from gemrb's point of view. It would require some work to make tobex fully happy, but since the two problematic lines are not used in bg2, there's no point in trying.

    The other one I've made a fix, it's just not submitted yet.

    Thank you again for your swift respone.

    Implementing it will not solve the problem with oBG2 so if it doesn't benefit gemrb then of course no point burdening yourself with needless work. I put a note on my mod-instructions-document to remember and delete gemrb_path.txt before installation.

  7. 1 hour ago, lynx said:

    Well, then we have a problem. The mechanism was added to weidu so mods could easily override our unhardcoded files. In this case one could say that it's not really a problem, since you can't use tobex with gemrb, but that's a bit cheap. If you installed tobex first, perhaps gemrb would have problems then, if the tables are sufficiently different.

    Are they from tobex or tobexal? I can look at unifying them, so then nobody will care about the order or mixed installs.

    Won't this put unecessary extra burden on you ? These two files come from tobex but maybe another mod comes with a file which happens to have same name as one in unhardcoded/bg2 and this problem will happen again.

    Is it common for users to run both oBG2 (in wine or windows) and gemrb from the same tree ? If it was just an oversight of mine, i can remember to delete gemrb_path.txt before each re-installation.

  8. 53 minutes ago, lynx said:

    Also GemRB provides them, so if you have gemrb_path.txt, it can pull those. Which would explain why NI and other tools know nothing about them.

    Once again, lynx, your help was invaluable. That was the culprit.

    I know gemrb creates several files in the tree but they do not cause any problems (my gem-baldur.ini hasn't changed since 2017) so it didn't occur to me that the problem would be due to germb_path.txt. I guess the last time i changed my mod order i used a weidu < 247 and it didn't support gemrb_path so it didn't cause any problems (or most likely i didn't reinstall tobex because i usually change mods after tobex and fixpack).

  9. On 6/11/2023 at 9:50 AM, Guest Eryk said:

    Hi, big thanks to modders for this marvelous idea. yet i cant make it work. I especially got back to my save before escaping the dungeon (before the in promenade) and after speaking to galean and then brus (he heads me to the gov discrit to speak with dalon as i'm a ranger) nothing is happening unfortunately. can you please help? i'm tired of doing dirty jobs for shadow thieves @jastey❤️

    You mention Gaelan, so did you only talk to brus once ? If yes, then that is why nothing happens. After you amass a certain amount of money (i think 15K in the vanilla game), you will have a visit from a certain lady. Right after her, you will get a second visit from Brus. It is after that meeting with Brus that you need to visit Government district (i may misremember and it is Temple District like jastey said) and the cutscene will trigger. After that, walk around and continue doing stuff and you will get a messenger directing you to meet with Aster.

  10. Greetings. I am not very familiar with BG2 internals so i have a stupid question about where do game files reside. I thought that the normal residence is in bif files and those files get overriden by files residing in the override/ folder. Is there any other case ?

    Long description of why i am asking:

    I use original BG2:Tob on linux using wine / gemrb. On sunday a new wine version was released and i compiled it and upgraded to it. I guess the wine team implemented some new functionality because, alongside the normal window with the game, i now also got a "console window" too with tobex afterlife messages. In this window i got the message that clssplab.2da does not exist.

    I searched my tree and clssplab.2da is supposed to be copied by tobex but it is not. Every file is correctly copied except clssplab.2da and item_use.2da.

    DEFINE_ACTION_FUNCTION tobex_copy STR_VAR file = "nul" BEGIN
      ACTION_IF NOT FILE_EXISTS_IN_GAME "%file%" BEGIN
        COPY "%TOBEX_MOD_DIRECTORY%/TobEx_redist/override/%file%" "override/%file%"
      END
    END

    This is the code that does the copying. A simple check for the existence of the file. This code works correctly for every file except for clssplab.2da and item_use.2da. The "FILE_EXISTS_IN_GAME" clause returns that these two files exist. However, neither DLTCEP, nor NearInfinity can find these files. I also opened chitin.key in a hex editor and i couldn't find the resource names there either. I tested a fully patched BG2:TOB tree clean from any mods.

    I thought that there must be a bug in the FILE_EXISTS_IN_GAME clause in my weidu (249 version) because i had some other weidu problems lately that appeared suddenly out of nowhere but i ran the following code

    ACTION_IF FILE_EXISTS_IN_GAME "clssplab.2da" BEGIN
        PRINT ~HELLO~
        COPY_EXISTING ~clssplab.2da~ ~override/tmp.2da~
        COPY_EXISTING ~item_use.2da~ ~override/tmp2.2da~
    END

    and lo and behold, the two files get copied correctly to override and have sensible contents (almost same as the ones in tobex but with less columns).

    So, my questions are:

    a) Where do these two files reside, if not in the override folder or in bif files ?

    b) Why does only FILE_EXISTS_IN_GAME find them and not tobex / dltcep / nearinfinity ?

    Thank you for your time.

  11. Greetings.

    In my latest playthrough i had a weird crash each time i tried to rest at an inn. It took me long to debug because a) the assertion message printed was misleading, b) it only occured in inns (or so i thought). So, the assertion message made me think infinity animations related trouble and the crash at inns only made me think about the movie that plays during resting at an inn. Further testing showed that it also crashed in certain dungeons. So i tried uninstalling mod after mod to see which mod causes it and the crashes stopped after uninstalling d5_random_tweaks (i am not 100% sure but i think it was the stinking cloud or web tweak). It would never occur to me that a crash during resting would be due to a spell (which had not been casted any time in that area).

    Anyway, to make a long story short, the problem is that d5_random_tweaks use opcodes (for example 335) that are not implemented on oBG2 (dltcep shows them correctly but Near Infinity shows every opcode > 318 as unknown) and that is causing crashes.

    I had of course read the readme that says "Note: most or all of these use EE 2.0 engine features. One or two may work on the pre-EE game (e.g. adding saving throws to level drain attacks), but most will not". However, further down in the readme, in the individual spell descriptions, only a few components contain the label "EE-only". This, combined with the fact that i had read the tp2 file and many components had game_is guards to prevent installation on oBG2, gave me the impression that i can safely install the components that do not have guards.

    This, of course, is not a jab at Subtledoctor. I thank you for your hard work giving us great mods. I just mention it here so that it doesn't catch any other oBG2 users off-guard.

    I have locally commented all the lines that use opcodes > 318 and the game works perfectly without crashing any more but i haven't done any testing to see if the tweaked spells behave as expected.

  12. Hello.

    Does anyone use the "Faster Cutscenes" component (non-silly version, number 3141) on oBG2 ? Does it work for you ? To be more precise, does the first cutscene with Irenicus (the "the child of bhall has awaken" one) get shortened ? All the others work correctly.

    I was reviewing my notes for local modifications today and noticed that for a long time i have been changing faster_start.tpa tp make the component work but forgot to report it here.

    commit b7c0b77a6dace66fa7904767d55b957dce429885
    Commit:     CamDawg <pcamagna@yahoo.com>
    CommitDate: Thu Mar 12 10:22:32 2020 -0700
    
        Faster Chapter 1&2 Cut-Scenes & Dreams fix for BG2EE/EET
        
        The compatibility-friendly, but decidedly more finicky, text matches for this
        component was falling down when modifying the BG2 opening cutscene and the dream
        scripting. The matches have been adjusted accordingly.
      
    diff --git a/cdtweaks/lib/faster_start.tpa b/cdtweaks/lib/faster_start.tpa
    index 1184aa7..b9d9364 100644
    --- a/cdtweaks/lib/faster_start.tpa
    +++ b/cdtweaks/lib/faster_start.tpa
    @@ -243,15 +243,17 @@ COPY_EXISTING ~movie02c.bcs~ ~override~
    
     COPY_EXISTING ~newgame.bcs~ ~override~
       DECOMPILE_BCS_TO_BAF
    +    REPLACE_TEXTUALLY ~//.+$~ ~~
    +    REPLACE_TEXTUALLY ~[ %TAB%%LNL%%MNL%%WNL%]+~ ~ ~
         REPLACE_TEXTUALLY
    -      ~DisplayStringHead(Myself,5388)[ %TAB%%LNL%%MNL%%WNL%] blah blah very long code
    +      ~DisplayStringWait(Myself,5388).+PlaySound("EFF_P18") Wait(3)~
           ~%newgame_sub%~
       COMPILE_BAF_TO_BCS
       BUT_ONLY

    The above commit improved the code to use a regular expression instead of searching for a huge string but, as you see,  it also changed "Head" to "Wait". My version of the game (fully patched but old TOB version that installs to BGII - SoA directory) has DisplayStringHead, so, as you understand, the code doesn't replace anything.

    Does the newgame.bcs in EE or GOG versions of the game contain DisplayStringWait ?

     

  13. On 10/17/2020 at 6:17 PM, Fouinto said:

    I wish a component (cheat) that allows to win 100% against Aesgareth when playing the card game.

    I'm fed up with reloading :

    On my mobile*, about 50 reloads, i can only draw :
     - Plague, then Aesgareth draws Construct, he wins
     - Strife, then Aesgareth draws Triumph, he wins

    * on my computer, I can (sometimes) win, but never on my mobile.

    Maybe cdtweaks devs can contact flamewing and ask him to incorporate the tweak inside of cdtweaks, but until then you can install m7tweaks which has the following components (and also proper uncharming of Glaicas but i think it is already fixed by fixpack and is not needed)

    Spoiler
    Quote

    Section 3: Components

    1. Convenient Deck of Many Things: Always win against Aesgareth. As the name implies, Aesgareth is changed so that he always loses against you in the 3 draws. This results in him attacking at the end when he loses the gem, so be warned.

    2. Convenient/Cheesy/Cheating Deck of Many Things. This is aimed at reducing the number of reloads until you get what you want from the deck. This component is subdivided into four subcomponents; all of these subcomponents have one modification in common: they make the 'Star' card more convenient and flexible. By this I mean: you get an expanded stat selection, which takes into account all of a classes 'prime requisite' attributes (Paladins can increase Charisma, for example) from 2nd edition AD&D, as well as allowing you to chose which stat bonus you get -- a multiclass Fighter/Mage/Thief can elect to gain a Strength bonus, for example, instead of gaining a Dexterity increase as in vanilla. This component has the following subcomponents with the specified additional effect:

      2a. Convenient: Select from normal available choices in each draw. You can select which card you will receive in this draw. The only difference from the original game is that you no longer have to reload until you get the card you want 🙂

      2b. Convenient Plus: As above, but ignore 'Bad Card' restrictions. Normally, the second and third draws have different selections if you draw a 'bad' card (e.g., Donjon) in an earlier draw. This component works as 2a, but it lifts this restriction.

      2c. Cheesy: All cards can be selected in any of the 3 draws. This component combines all cards you could possibly get from the deck into a single list shown in each of the 3 draws you get. For example, you could select 'Star' 3 times for the stat bonuses.

      2d. Cheating: As the cheesy version, but with infinite draws. 'Balance' card is added as a choice for when you get tired of ruining the game 🙂

    3. Convenient/Cheating Machine of Lum the Mad. This component eliminates the need to remember and select the combinations for the Machine of Lum the Mad. This component is subdivided into two subcomponents, both of which have the side-effect of disabling random combinations. The subcomponents have the following additional effects:

      3a. Convenient: You can simply select the desired result. Pick from the descriptive list and you are done. This obeys all of the standard restrictions -- that is, each combination can be selected only once.

      3b. Cheating: As above, but with infinite stat bonuses. As 3a, but you can select the stat bonuses and magic resistance bonus until you suck all the fun from the game.

     

    .

     

  14. 4 hours ago, Bartimaeus said:

    I had tracked it down to SR's version being the one that's crapping out, it removed an entry that polytweak uses for no apparent reason (specifically, entry 115 EXTRAPROFICIENCY1, which normally gets appended with...uh...I think it was PROFICIENCYCLUB? When installing SR after, it strips the original EXTRAPROFICIENCY1 entry and only leaves the PROFICIENCYCLUB entry, causing errors for mods like polytweak that evaluate via the original entry). I repaired it for my install, but for anyone using both MIH_EQ and SR, the same would happen, so I'd like to fix it.

    Thanks for the info, will do.

    @Angel Don't think there are any conceptual incompatibilities between any of the components of MIH_EQ and SR/IR from what I saw anyways, but you might know better!

     

    3 hours ago, DavidW said:

    That makes sense. DS sorts stats.ids after appending all the new entries, but the sort used by DS 3.9x (the one in SR) is destructive, and ends up deleting duplicates. The version in SCS 33 (let's call it v.4.0) sorts nondestructively (iirc).

    Due to some problems i had in the past with DS and mods, i keep locally all the versions i find :)and there are (at least) the following versions:

    • v3.95 which is the "updated" version of the older DS code and comes with the majority of mods (atweaks, questpack, rr, etc). It removes all duplicate entries except 156-161 (SCRIPTINGSTATE1-6).
    • v3.95_dw (found in ascension commit 092ac9d24c55). It correctly keeps all the duplicates but does not sort (the sort_ids function is disabled due to missing the function return_first_entry).
    • v3.96 (found in ascension commit c24fe75c92f7. i haven't saved the SCS commit but in most cases ascension DS is copied from SCS of that time) and v3.97 (commit a1d4ec4cef29). These correctly keep all the duplicates and sort correctly. They also need AUTO_EVAL_STRINGS on the main tp2 in order to be used. The only difference with v3.97 is that it removes DMWW entries where all older versions keep them.
    • v3.9X (found in ascension v2.0.4 commit 2fb5d79073e1). Vastly difference code than v3.97. It correctly keeps all duplicates and sorts correctly. It contains some extra duplicate entries that miss the WIZARD_ prefix (for exaple 178 RESIST_FEAR). This clears the IDS map very frequently and runs quite slower than the older versions.
    • Newer SCS versions. I do not remember correctly but i think they behave exactly like v3.9X but also need some sfo libs in order to run.

    Everything after v3.97 runs quite slower (i did a test run now and v3.97 ran in 3.5secs while v3.9x ran in 4.58secs. In a fully modded installation i think there was a big difference in time).

  15. 2 hours ago, Jarno Mikkola said:

    Thing is, the mod was already refered in the previous post I replied to, by khelban12. I ingored it at that time. I have never even played it. So... it wasn't that good of a joke. And khelban12 is actually wrong in the statement from what I imagine, as the rules in that mod is that the creatures need to be taken down in the given order or the player is cheathing... that I already have talked about. Ironic.

    It doesn't change anything in my points or yours but just for clarity,  Improved Anvil never occured to my mind. I have heard of its reputation but i have never played it. The mods i wrote about, were Tactics (some cheesy battles of it) and a mod that it's name escapes my mind now and it introduces a new encounter in Spellhold with a hostile party which include a husband and wife that you need to kill in certain order because otherwise the remaining spouse goes into a rage and kills you.

    I re-read my post now and i do not find it insulting, but i apologize if you thought my post made fun of you by pointing to Improved Anvil or something and also to Caedwyr for "paying the price" for my post.

  16. 1 hour ago, Jarno Mikkola said:

    Well, thing is, you have build the enemies so that the player has no chance against them... the spells have counters, but the fact is, the player has to counter ALL of them, and to that, they have no answer... unless they somehow pop up themselves to be 4 level 20 mages. Aka, the problem you create is that they have too many defenses and those have no single counter... unless we use the 9th level spell that gets rid of very many of them.

    I find it odd that a long-time user like yourself with so much knowledge about the game would say something like that.

    Isn't this "chess" game of using the correct step to countering X defense so that you then can counter Y defense the point of a tactical mod ? And "the player has to counter ALL of them" usually translates to using a sequence of just 2-3 spells (of course if you know which spells). For example, if you watch mivsan's playthrough, he plays with a full party (so we are not talking about people leveling fast) and uses his F/M PC and 1 other mage if i remember correctly (and at some point he removed edwin for imoen or some other "lesser" mage to make the game more challenging), so you definitely don't need a lot of mages or high-leveled ones to cope with enemies's defences. Also, one is not obligated to install the prebuffed components.

    There are of course mods that you can only beat encounters by reading the enemies' scripts and deduce what tactic you need to use or in which order you need to kill the enemies (because if you kill enemy X before enemy Y, you immediately die) but SCS plays fair. How is it that the player has no chance ? Unless we are talking about a first time player who doesn't know much about the game and shouldn't install a tactical mod.

    The only things i can recall disliking about SCS are a) the long install time and b) the script lag; and both are the engine's problems and not SCS's. The second is made worse, in my case,  by the fact that i play the game through wine on linux and sometimes when enemies appear and their scripts fire, everything lags to a crawl. Other than that, SCS (and IR) is the greatest thing that happened to BG.

  17. Greetings.

    The talk about going to brynnlaw in the Rhynn Lanthorn thread reminded me of something that i wanted to mention for a long time but i never did. Is it possible for the "Higher cost to Spellhold" component to account for the Alternatives mod too ?

    When the component is installed, Gaelan asks for the correct amount but Aster still asks for 15K. I have changed locally gameplay/spellhold_cost.tpa#L26 as follows

    LAF swap_text INT_VAR allow_missing=1 STR_VAR files=~bodhi.dlg gaelan.dlg b!aster.dlg ar0800.bcs baldur.bcs~ swaps= ~

    that is i added b!aster.dlg which is the only file that mentions the amount of gold (there is also b!ar1000.baf but the code is commented and not used) and also added INT_VAR allow_missing=1 so that it doesn't error out when someone doesn't use Alternatives. It seems to work but i don't know if it is the optimal way to do it.

    Thank you for your time.

  18. Greetings.

    [Intro]

    Lately when i ran gemrb it segfaulted in OpenALAudio:cpp:222 "context = alcCreateContext(device, NULL)";

    I tried different OpenAL versions and it always segfaulted. If i modify gemrb.cfg and disable sound then it works fine. It only segfaults with OpenAL. I thought it is an openal fault so i tried to make a minimal C program that reproduces the issue. No matter what i did, i couldn't make it segfault so i came back to gemrb. I did the first thing i do when something segfaults. Recompiling it without LTO and see if it works. And of course it works fine. I could leave it at that and enjoy gemrb but i couldn't :p I needed to find why it does that. Anyway, after isolating compilation parameters to see what is the fault i found that its not LTO but the combination of LTO and as-needed linker option.

    I use LTO and as-needed for a long time (at least since Feb 2017) and gemrb always worked. Something else that has changed in the mean time must trigger the problem. I used gemrb on Tumbleweed for some time now so while i compiled it on Gentoo, i didn't ran it and missed the problem. I tried Gcc 8.something, 9.2, 9.3 and all produce the segfault (hm now that i think of it, i haven't tried different linker versions). However, all programs are built with the same *FLAGS (this is Gentoo) and only gemrb segfaults.

    [/Intro]

    Whether OpenAL is compiled with or without LTO doesn't make any difference at all. The problem seems to be with gemrb and pthread. OpenALAudio.so is the same in all cases and correctly links with pthread. The gemrb binary however

    • With as-needed but without LTO, it is linked with pthread and works.
    • Without as-needed but with LTO, it is linked with pthread and works
    • With as-needed and with LTO, it is _not_ linked with pthread and segfaults.

    With a quick search, i haven't found any calls of threading functions in the source code for the gemrb binary (so maybe that is why the linker thinks it doesn't need pthread), but it seems that libpthread is needed.

    Anybody cares to try compiling germb (the latest git for example) with LTO and as-needed enabled and inform us if it works or if my findings are coincidental and something else is at foot ?

    export CFLAGS="-O2 -pipe -flto"
    export CXXFLAGS="${CFLAGS}"
    export LDFLAGS="-Wl,--as-needed -flto"

    Setting the above flags (before running cmake) should be enough to reproduce the issue i think.

    Thank you for your time.

  19. Greetings.

    If there is someone that hasn't finished the game yet, my post contains Post-Underdark spoilers.

    One thing that annoys me is that when i leave underdark and i have Viconia with me (almost everytime), she is forced by Elhan to accept a geas spell without me being able to say anything (i don't like in general when a game railroads you without giving you a choice). He interrogates me pestering me with stupid questions, he needs my help to get the lanthorn because he can't travel to human lands and he has the audacity to mess with my teammates.

    One course of action could be that Viconia leaves your party and meets you at another point (i think Yasraena does that). Some other courses i thought are a) Adalon informing Viconia that the surface elves will be very suspicious towards her and offering her to disguise her as surface elf (with viconia being able to refuse leading to the original behavior), b) even better giving the player the option to strenuously object to Elhan's behavior, even threatening him or something.

    I would try to implement it myself and open a pull request but i don't know anything about dialog scripting so i leave the idea here in case some of the devs like my proposal.

    A pet peeve of mine is that sometimes i get stuck on insignificant little details like this one. Or the guy in Adventurer's mart that warns you not to steal.  Oh how i hate that guy :) My current playthrough is with a Cavalier Paladin with amazing reputation and still the guy warns me not to steal.

    Thank you for your time.

  20. Can you try this https://pastebin.com/DE71jzpV

    It a bit old too but i think it is better than the one in the gentoo tree. I wrote it because gentoo didn't have a SDL2 gemrb ebuild and i wanted to get rid of SDL1. I haven't tried all options but i have tried sdl, sdl2+opengl, sdl2-opengl scenarios and all worked. At that time, opengl gave me some problems (i can't remember what, maybe flickering or rendering issues) so i  personally settled for sdl2 - opengl.

    I haven't tried the subviews branch with it but i use it as gemrb-9999 and recompile the git version every now and then and it compiles fine with the git tree.

  21. 15 hours ago, lynx said:

    khelban12, is that all for IA or are there any vanilla fixes in between?

    I can't remember for sure what i did in 2016. Maybe some of the changes exposed bugs in vanilla (like the purple magic golems and the planetars) but i think it was only changes for IA.

  22. On 10/1/2019 at 6:49 PM, Gwendolyne said:

    So, let's say I want to install a IA component (or install a mod) using 0x1002 FIEND_BLUE (4AB) animation in a GemRB install. How would I proceed? I guess you use avatars.2da file as a database and the engine handles the animation type to display it correctly in game?

    If it is correct, IA main component might append avatars.2da  with all new animations compatible with GemRB engine, then sort it the way you need it.

    I use IA in gemrb for a long time now and the only thing i did is modify the avatars.2da. You don't need a patch like the original engine. I ended up also modifying the bgmain patch and the file prefixes but only because i use linux and the μ and other prefixes wouldn't work.

    The only problem that remains is that gemrb uses the frame count as speed for the animations (which works for some of the original animations) but i suppose the IA animations have more frames and so many creatures have lightning speed :) I modified the gemrb code to read the speed from a 2da file (in the fashion of EE) but i couldn't get the speed of the animations. The plan was to use scripting in the original engine to measure how long it takes for a creature to travel between two specific points but i couldn't get it.

    Do you know how fast each animation should go or do you have any way to find out ? If yes, then IA will be able to run fine in GemRB.

    Edit: Here is a diff of the changes i made. Disregard the prefixes as they correspond only for my filenames. I set the type / space / size by trial and error to make the animations be the same as the originals. I think that i made an area with all the changed creatures and verified that they appear the same between original engine and gemrb but i may remember wrong.

  23. Wasn't there a debate a long time ago about which is the correct value for grandmastery ? Something that it shouldn't give +1.5Apr but only +1 Apr (or +0.5 from specialization like greenhorn said). The readme said +1 and the implementation gave +1.5. I don't think a consensus about which is the correct value was reached and in the end the readme changed to reflect the implementation.

    I may misremember though.

×
×
  • Create New...