Skip to content

New versions of NearInfinity available

1363739414244

Comments

  • argent77argent77 Member Posts: 3,439
    Baptor wrote: »
    argent77 wrote: »
    @Baptor Difficult to say what's wrong. Does the debug console show any message (menu Tools > Show debug console)?

    It could be that the special protection of the "C:\Program Files (x86)" folder enforced by Windows prevents access to the DLC. Can you temporarily move the whole game folder to a safer location (e.g. C:\Games, or preferably to another disk drive if available) and try NI again?

    1. Debug console showed nothing.
    2. Moved the whole game folder to C:\Games and it still doesn't locate DLC content
    3. I don't have any separate drives

    That's odd. Are you sure you're running a recent version of NI (from May 2016 or later)?

    I can't think of anything else that could interfere with DLC detection, except maybe some local peculiarities.

    The file size of the DLC seems to differ somewhat from my own copy. Is the DLC undamaged and in the right format? If you open sod-dlc.zip with a zip manager (e.g. 7-zip) can you see a file called "mod.key" and a couple of folders?

    I've noticed that your home folder is located on OneDrive. It could be that it somehow interferes with DLC detection.

    If nothing else helps you can always merge the DLC with DLC Merger.
  • BaptorBaptor Member Posts: 341
    edited August 2021
    argent77 wrote: »
    Baptor wrote: »
    argent77 wrote: »
    @Baptor Difficult to say what's wrong. Does the debug console show any message (menu Tools > Show debug console)?

    It could be that the special protection of the "C:\Program Files (x86)" folder enforced by Windows prevents access to the DLC. Can you temporarily move the whole game folder to a safer location (e.g. C:\Games, or preferably to another disk drive if available) and try NI again?

    1. Debug console showed nothing.
    2. Moved the whole game folder to C:\Games and it still doesn't locate DLC content
    3. I don't have any separate drives

    That's odd. Are you sure you're running a recent version of NI (from May 2016 or later)?

    I can't think of anything else that could interfere with DLC detection, except maybe some local peculiarities.

    The file size of the DLC seems to differ somewhat from my own copy. Is the DLC undamaged and in the right format? If you open sod-dlc.zip with a zip manager (e.g. 7-zip) can you see a file called "mod.key" and a couple of folders?

    I've noticed that your home folder is located on OneDrive. It could be that it somehow interferes with DLC detection.

    If nothing else helps you can always merge the DLC with DLC Merger.

    1. I downloaded the latest version from this thread that you have on the 1st post.
    2. That is straight from Steam, fresh install with nothing else.
    3. My "home" folder? I don't use One Drive either, so I have no idea what you're talking about.
    4. I may try that, honestly I just wanted to steal some of the BAM files for my bg2 project but I can live without them.

    I appreciate all your help on this one. If I ever decide to play SOD again I will do the merger. I doubt that will happen, though. Otherwise, thanks for the new version of NI! Much more stable and easier to use!
  • CahirCahir Member, Moderator, Translator (NDA) Posts: 2,819
    @argent77 would it be possible to add an option to search some word/phrase/character within the dialogue tree? Let's say I have expanded the dialogue tree, and I want to find a specific word, phrase or character, but only within this dialogue? I don't need NI to search the whole game, just this one dialogue tree.
  • argent77argent77 Member Posts: 3,439
    Cahir wrote: »
    would it be possible to add an option to search some word/phrase/character within the dialogue tree? Let's say I have expanded the dialogue tree, and I want to find a specific word, phrase or character, but only within this dialogue? I don't need NI to search the whole game, just this one dialogue tree.

    That's already possible (but probably not very intuitive to find out on your own).
    1. Switch to the View tab and select Find... > in this file only.
    2. Enter your search text and perform the search.
    3. Select the entry from the search results (if any) and click the "Open" button.
    4. For states and responses you'll see a couple of small icons in the top-left corner of the respective panel in the View tab. Click on the second icon which looks like a stylized tree view to switch to the selected node in the Tree tab.
  • EndarireEndarire Member Posts: 1,512
    A request for a near-term release feature from someone generally unfamiliar with Near Infinity:

    -Add an option for automatic updating of a BG1/BG2 mod to add EE compatibility. (BG to BGEE and BG2 to BG2EE.) This tutorial by CamDawg explains the general process, but there's the question of how best to automate it.

    -Add an option for automatic updating of a BGEE/BG2EE mod to add EET compatibility. k4thos explains the methodology in this post, but there's the question of how best to automated it. (There's already some sort of automated mod converter to add EET compatibility, but I've rarely heard it discussed and I'm unsure how well it works for modern games and systems.)

    Having these abilities would answer one of my most famous Infinity Engine-related questions of, "Is this mod EET compatible?" and may help me to contribute more technical updates to the Infinity Engine community. (Maybe these features already exist in NI, but I've just heard not them discussed.)

    Thankee!
  • CahirCahir Member, Moderator, Translator (NDA) Posts: 2,819
    argent77 wrote: »
    Cahir wrote: »
    would it be possible to add an option to search some word/phrase/character within the dialogue tree? Let's say I have expanded the dialogue tree, and I want to find a specific word, phrase or character, but only within this dialogue? I don't need NI to search the whole game, just this one dialogue tree.

    That's already possible (but probably not very intuitive to find out on your own).
    1. Switch to the View tab and select Find... > in this file only.
    2. Enter your search text and perform the search.
    3. Select the entry from the search results (if any) and click the "Open" button.
    4. For states and responses you'll see a couple of small icons in the top-left corner of the respective panel in the View tab. Click on the second icon which looks like a stylized tree view to switch to the selected node in the Tree tab.

    Thanks @argent77. It is indeed not necessarily intuitive to find. I see two downsides of this solution: 1) Too many clicks to get the result; 2) It will jump only to only one position selected in the "Result" window. If you want to jump to another, you need to go back to "Result" window and click another hit (entry).

    What I was thinking is to add a single search Field that would work more or less like a Search function in Notepad++, but working only in the opened file. It will just jump to the first appearance of the searched text and after hitting "Enter" it will jump to the next, and so on. Of course, I have no clue how much work this would require to implement, so if it's too much of a hassle for you, it's OK. Would be neat to have it, though ;)

    tRSF8y5.jpg
  • argent77argent77 Member Posts: 3,439
    @Endarire Near Infinity and WeiDU are separate tools for different fields of application. Your requests should be more aimed at WeiDU or mod managers.

    @Cahir I'll see if I can add the toolbar buttons from the View tab to the Tree tab as well. That should save you a click or two. Your suggestion for a quick search sounds like an interesting idea, but would probably require a lot of coding effort. I'll add it to the to-do list though. Maybe I can come up with something.
  • EndarireEndarire Member Posts: 1,512
    Thankee!
  • _Luke__Luke_ Member, Mobile Tester Posts: 1,535
    Every time you mess with "SPLPROT.2DA" (f.i. add a new entry), you're forced to quit NI and reopen it, otherwise NI cannot handle/recognize the new entry. Apparently, refreshing NI via pressing "F5" is useless in this case.

    Intended or bug...?
  • argent77argent77 Member Posts: 3,439
    _Luke_ wrote: »
    Every time you mess with "SPLPROT.2DA" (f.i. add a new entry), you're forced to quit NI and reopen it, otherwise NI cannot handle/recognize the new entry. Apparently, refreshing NI via pressing "F5" is useless in this case.

    Intended or bug...?

    It's an oversight. It'll be fixed in the next release.
  • Dan_PDan_P Member Posts: 125
    edited October 2021
    @argent77, this is really minor, but I just wanted to note things with 2 of the opcode effects in NI (how some fields are labeled)

    EEs - op184 (No collision detection in NI, aka Graphics: Passwall (Don't Jump) in IESDP)

    I was messing around with this effect, together with wing buffet. Unfortunately, they cause various issues when used together, but the reason I'm mentioning this is because I found the info in NI slightly confusing, until testing it out myself.

    If you look at the image, the highlighted field is labeled Pass Walls? (or Jump in IESDP). When used with Wing Buffet, if this field is set to 0, the target will be blocked or bumped by objects or impassable areas (basically same as not having the effect at all). When set to 1, wing buffet will pull/push the target through creatures/objects/areas. So the "No" setting for "Pass Walls?" is what removes collision detection.

    The IESDP description, Jump or don't Jump (from impassable area), is probably more accurate, though it doesn't specifically mention removal of collision. The effect is described as having the purpose of placing creatures in impassable areas.

    c128b9kubjay.png


    IWD2 - op135 (Polymorph)

    For this one, I'm just noting that the only relevant field for shapeshifting is the Resource. The current version of NI has fields labeled Animation and Polymorph type, which do nothing (IESDP lists these fields as "Irrelevant"). Whatever's in the resource field, the character will change into, including Str/Dex/Con of the new form. Animation change, without changing stats, is still possible with op53.
    Post edited by Dan_P on
  • argent77argent77 Member Posts: 3,439
    dp85 wrote: »
    EEs - op184 (No collision detection in NI, aka Graphics: Passwall (Don't Jump) in IESDP)

    I was messing around with this effect, together with wing buffet. Unfortunately, they cause various issues when used together, but the reason I'm mentioning this is because I found the info in NI slightly confusing, until testing it out myself.

    If you look at the image, the highlighted field is labeled Pass Walls? (or Jump in IESDP). When used with Wing Buffet, if this field is set to 0, the target will be blocked or bumped by objects or impassable areas (basically same as not having the effect at all). When set to 1, wing buffet will pull/push the target through creatures/objects/areas. So the "No" setting for "Pass Walls?" is what removes collision detection.

    The IESDP description, Jump or don't Jump (from impassable area), is probably more accurate, though it doesn't specifically mention removal of collision. The effect is described as having the purpose of placing creatures in impassable areas.

    Field names are certainly open to interpretation. NI usually prefers to describe field names by the effect that is noticeable in-game, while IESDP tends to use more technical names based on how the effect is implemented by the engine.

    The current field name "Pass walls?" can certainly be improved, since the interpretation of the value is currently opposed to the usual interpretation of boolean values (0=yes, 1=no instead of 0=no, 1=yes). So I'm open for a better name in this case.

    IWD2 - op135 (Polymorph)

    For this one, I'm just noting that the only relevant field for shapeshifting is the Resource. The current version of NI has fields labeled Animation and Polymorph type, which do nothing (IESDP lists these fields as "Irrelevant"). Whatever's in the resource field, the character will change into, including Str/Dex/Con of the new form. Animation change, without changing stats, is still possible with op53.

    The "Polymorph type" field is currently shown unconditionally for all games. I'll add an exception for IWD2. The animation field appears to be irrelevant in all games. It'll be removed in the next release. Thanks.
  • argent77argent77 Member Posts: 3,439
    Update: NearInfinity v2.2-20211218

    Starting with this release I'll include macOS-specific packages for Near Infinity which should provide better integration into the system. It was formerly maintained by @AstroBryGuy but hasn't been updated for some time.

    Full Changelog:
    • Added wildcard support to the "Find resource" feature (magnifier icon above the resource tree):
      • Question mark characters (?) are treated as "match any single character"
    • Added new Check option: Check for string encoding errors (menu Tools > Check):
      • EE games: checks for malformed UTF-8 encoding
      • Original games: checks for unintended UTF-8 byte sequences
    • Added dialog tree viewer option "Sort states by weight"
    • BAM Converter:
      • Added basic file/folder drag&drop support to the frames list
      • "Delete" key shortcut can be used to remove selected entries from frame or cycle lists
    • Item ability flags are now presented based on ITM version
    • Redesigned credits section in "About Near Infinity" dialog
    • Improved loading time for games with large override folders
    • Improved symbolic names detection in decompiled scripts
    • Removed link to original Near Infinity website (which became unavailable recently) in "About Near Infinity" dialog
    • Removed unused "Times per day" field from SPL V1 ability structure
    • Removed useless timing mode 4096 from EFF V1 structures
    • Updated CRE flags
    • Updated SPL V1 flags
    • Updated EFF V2 "Dispel/Resist" and "Parent resource flags"
    • Updated VVC flags
    • Updated opcode 1: Add support for negative modifiers in EE games
    • Updated parameters of opcodes 135, 184 and 232
    • EEex-specific opcodes are properly handled on non-EEex game installations
    • Fixed case-sensitivity issues with file paths on Linux systems
    • Fixed (sometimes) choosing an incorrect script action when decompiling scripts if multiple definitions are specified in ACTION.IDS
    • Fixed sound references associated with string entries not being available if sound file is located in special override folders (e.g. "sounds")
    • Fixed deriving INI actor resource name in Area Viewer
    • Fixed issues with inline editing data in table view of structured resources
    • Fixed issue with exporting string table as TRA file when dialog.tlk path was located on a different (physical or virtual) filesystem as the game root path
    • Fixed ARE Entrance orientation field size
    • Fixed ARE search names not properly updated when loading a new game
    • Fixed data types referencing symbolic names not properly updated when loading or refreshing the game
    • Fixed selected string entry not being shown when String Editor is opened for the first time
    • Fixed incorrect BAM cycle check in creature animation decoder > "character_old" type
    • Several more minor bugfixes and improvements
  • BaptorBaptor Member Posts: 341
    argent77 wrote: »
    [*]BAM Converter:
    • Added basic file/folder drag&drop support to the frames list
    • "Delete" key shortcut can be used to remove selected entries from frame or cycle lists

    Ever since you showed me how to use this, @argent77 , I've been going crazy making BAMs. Once I'm happy with my work I'll share them with the community. This change is so welcome as it will make my work much easier, thank you!
  • argent77argent77 Member Posts: 3,439
    Update: NearInfinity v2.2-20220408

    In addition to the usual fixes and features, NI underwent a thorough internal restructuring of the whole code base which resulted in a slight increase of performance and stability, but may have also introduced a bug or two.

    Full Changelog:
    • Reactivated BIFF editor (menu Edit > BIFF)
    • Added experimental "Export animation sequence" as APNG file to the Creature Animation Browser
    • Added search options (case-sensitive, regular expression, invert match) to the "Find CRE/ITM/SPL/STO" feature
    • Added system information summary when NI starts up (can be toggled via menu Options > Display system information at startup)
      • May also show warning messages if memory settings are too low for NI to work properly
    • Added native macOS menu bar integration (it is still recommended to use the macOS-specific NI package instead)
    • Added check for invalid STO V1.1 sale triggers to "Check for corrupted files" feature
    • Fixed audio playback blocking the whole application when an error occurred
    • Fixed using incorrect string table on BGEE with unmerged SoD DLC
    • Fixed creature name display for CHR resources in the View panel
    • Fixed false positives in "Check dialogues" feature
    • Fixed issue when sorting results by strref in the "Check for Illegal Strrefs" feature
    • Reduced false positives in "Check for Illegal Strrefs" feature
    • Improved 2DA file parsing in "Check for Illegal Strrefs" feature
    • Updated ITM V1 field for PSTEE: "Description image" -> "Pick up sound"
    • Updated parameters of opcode 232
    • Updated fields in GAM resources
    • Updated area type flags for PSTEE
    • Internal restructuring of the code design
      • modernized code structure
      • cleaned up unused code
      • removed unused libraries
    • Various internal fixes and optimizations
  • _Luke__Luke_ Member, Mobile Tester Posts: 1,535
    @argent77

    Apparently, the new version cannot property handle "splprot.2da"...

    On an unmodded game, when using op318/324/326, it displays entry #104 as "RACE=HUMAN" instead of "RACE = specified value"...
  • argent77argent77 Member Posts: 3,439
    _Luke_ wrote: »
    @argent77

    Apparently, the new version cannot property handle "splprot.2da"...

    On an unmodded game, when using op318/324/326, it displays entry #104 as "RACE=HUMAN" instead of "RACE = specified value"...

    I'll look into it.
  • argent77argent77 Member Posts: 3,439
    edited April 2022
    Update: NearInfinity v2.2-20220408-1

    This is a quick bugfix release for v2.2-20220408. It fixes a parsing error in the 2DA table reader which resulted in an erroneous splprot table and incomplete results in search or check operations.
  • BubbBubb Member Posts: 1,001
    edited May 2022
    @argent77

    It seems I'm having trouble with NI's script compiler. Adding these entries to ACTION.IDS:
    473 EEex_MatchObject(S:Chunk*)
    473 EEex_MatchObjectEx(S:Chunk*,I:nNearest,I:range*,I:Flags*X-MATOBJ)
    
    And attempting to compile a script with EEex_MatchObjectEx() where:
    • I:nNearest is not 0
    • I:range is 0
    • I:Flags is 0
    results in NI emitting EEex_MatchObject() with the extra parameters stripped away. Example:
    IF
        True()
    THEN
        RESPONSE #100
            EEex_MatchObjectEx("return B3Filter()",1,0,0)
            DisplayStringHead(EEex_MatchObject,1)  // No, I'm sorry, none of them sound familiar.
    END
    
    is turned into:
    IF
        True()
    THEN
        RESPONSE #100
            EEex_MatchObject("return B3Filter()")
            DisplayStringHead(EEex_MatchObject,1)  // No, I'm sorry, none of them sound familiar.
    END
    

    It looks like the first integer parameter isn't being considered when deciding which form to compile as.
    EEex_MatchObjectEx("return B3Filter()",0,0,1) - compiles
    EEex_MatchObjectEx("return B3Filter()",0,1,0) - compiles
    EEex_MatchObjectEx("return B3Filter()",0,1,1) - compiles
    EEex_MatchObjectEx("return B3Filter()",1,0,0) - fails
    EEex_MatchObjectEx("return B3Filter()",1,0,1) - compiles
    EEex_MatchObjectEx("return B3Filter()",1,1,0) - compiles
    EEex_MatchObjectEx("return B3Filter()",1,1,1) - compiles

    The trigger form of EEex_MatchObject() / EEex_MatchObjectEx() is even weirder:
    EEex_MatchObjectEx("return B3Filter()",0,0,1) - fails
    EEex_MatchObjectEx("return B3Filter()",0,1,0) - fails
    EEex_MatchObjectEx("return B3Filter()",0,1,1) - compiles
    EEex_MatchObjectEx("return B3Filter()",1,0,0) - fails
    EEex_MatchObjectEx("return B3Filter()",1,0,1) - compiles
    EEex_MatchObjectEx("return B3Filter()",1,1,0) - compiles
    EEex_MatchObjectEx("return B3Filter()",1,1,1) - compiles

    Two of the integer parameters have to be filled for the trigger to compile as EEex_MatchObjectEx()?



    Also, the final parameter uses flags from X-MATOBJ.IDS. That file looks like this:
    *
    0x00000001 RANGE_MANUAL
    0x00000002 RANGE_IGNORE
    0x00000004 CHECKLOS_FALSE
    0x00000008 ONLYSPRITES_FALSE
    0x00000010 SEEINVISIBLE_FALSE
    0x00000020 SEEINVISIBLE_TRUE
    0x00000040 IGNORESLEEPING_FALSE
    0x00000080 IGNOREDEAD_FALSE
    

    NI refuses to compile when specifying a flag, such as:
    EEex_MatchObjectEx("return B3Filter()",1,0,ONLYSPRITES_FALSE)
    
    with the following error: "Resource not found: X.IDS". Seems it doesn't like the dash in the filename?



    And, finally, a minor bug -- new objects added to OBJECT.IDS compile correctly, but don't get highlighted their orange color in the script editor. See the following with EEex_MatchObject:
    1aad8i21oxor.png

    Edit: I forgot to mention I'm using the latest release, though devel has the same problems.
  • argent77argent77 Member Posts: 3,439
    Bubb wrote: »
    It seems I'm having trouble with NI's script compiler.
    I'll look into it.

    And, finally, a minor bug -- new objects added to OBJECT.IDS compile correctly, but don't get highlighted their orange color in the script editor. See the following with EEex_MatchObject:
    1aad8i21oxor.png
    That's a limitation of the syntax highlighter. Color is overridden if the object identifier is identical with a script action. I'll see if I can improve the situation somehow.
  • MordekaieMordekaie Member Posts: 269
    Is there a guide to sart using Near Infinity (or even a tutorial video) ?
  • argent77argent77 Member Posts: 3,439
    Mordekaie wrote: »
    Is there a guide to sart using Near Infinity (or even a tutorial video) ?

    There's the Near Infinity Wiki which helps you getting started and explains most of the functionality. Apart from that, there are dedicated forum topics (here and over at Spellhold Studios) where you can ask for help if you're stuck.

    Just note that NI was primarily made for modders, so it requires a bit of knowing the internals of the Infinity Engine to find your way around. This topic contains several more links and suggestions that can help you better understand the game engine.
  • jmerryjmerry Member Posts: 3,835
    I just updated to a new computer (Mac, from a 2015 model to a 2022 model) and NI has acquired a troublesome new issue. Specifically, every time I open up the program or a game profile, I get this error: "Error parsing baldur.lua. Using language defaults". Checking the game properties, the underlying problem is that the Home Folder is set wrong. It can't parse baldur.lua because it can't find it. Or any of the saves, for that matter.

    So I tried to change the home folder. Nope. Can't edit that field. How do I fix this so that Near Infinity looks in the right place to find what's actually there?
  • argent77argent77 Member Posts: 3,439
    edited August 2022
    jmerry wrote: »
    I just updated to a new computer (Mac, from a 2015 model to a 2022 model) and NI has acquired a troublesome new issue. Specifically, every time I open up the program or a game profile, I get this error: "Error parsing baldur.lua. Using language defaults". Checking the game properties, the underlying problem is that the Home Folder is set wrong. It can't parse baldur.lua because it can't find it. Or any of the saves, for that matter.

    So I tried to change the home folder. Nope. Can't edit that field. How do I fix this so that Near Infinity looks in the right place to find what's actually there?

    By default NI uses "/Users/<username>/Documents/<game name>" as home path on macOS.

    What path is detected by NI and what should be the right path on your side?

  • jmerryjmerry Member Posts: 3,835
    On closer examination ... neither the path shown in NI nor the actual location of the files has changed in my system upgrade. Which means that whatever broke is more subtle than that. The files are in Documents, and NI is using its default, but Documents isn't actually in the user folder. Instead, there's a hidden alias for it there. The actual Documents folder is on the iCloud drive (path "iCloud Drive/Documents/<game name>").
    So on my old system (OS version 10.14.6), NI could follow that alias to find baldur.lua and the saves just fine. On the new system (OS version 12.4), it doesn't. Or at least, there's some reason it can't open the files. (I've checked the two other obvious potential culprits. NI is running on my account which has read/write permissions for everything, and none of the files in question have the "not downloaded" icon. The games can find their saves just fine.)
  • GraionDilachGraionDilach Member Posts: 581
    edited August 2022
    Did Apple really mounted an "iCloud Drive" folder under /? They were following UNIX principles so far AFAIK, so that is probably an abstraction. What does pwd in a console opened within the folder report?
  • jmerryjmerry Member Posts: 3,835
    I'm not command-line savvy enough to even know what pwd is, but from what I can tell iCloud Drive is a separate top-level volume. It's not available under / at all, except through aliases.

    Another check ... if I run an "open something" command in NI, it can see the "Documents" alias in the user folder, but thinks that there's nothing inside.
  • argent77argent77 Member Posts: 3,439
    @jmerry Did you start NI directly (via NearInfinity.jar) or use the macOS-specific app package? It's possible that using the app package enables additional macOS functionality that can help NI access iCloud drives.

    Alternatively, you could disable the iCloud service. But that might not viable if you want to synchronize your data across multiple devices.
  • AstroBryGuyAstroBryGuy Member Posts: 3,437
    Did Apple really mounted an "iCloud Drive" folder under /? They were following UNIX principles so far AFAIK, so that is probably an abstraction. What does pwd in a console opened within the folder report?

    No, iCloud Drive folder should be mounted as "/Users/USERNAME/Library/Mobile Documents/"

    Of course, "Library" is normally a hidden folder in the user's home folder. :wink:
  • jmerryjmerry Member Posts: 3,835
    I'm using the Mac-specific app package. Which is still a Java app under the hood, so it really just looks better in the Dock.

    OK, NI can find that path. Sort of. /Users/<username>/Library/Mobile Documents/com~Apple~CloudDocs/Documents. And then it thinks that folder is empty, just like the shorter /Users/<username>/Documents alias.

    Meanwhile, if I try the same in an "Open" command in TextEdit, the path goes straight from Mobile Documents to Documents with no intermediate step. And sees all the stuff there, just like if it used one of the other paths.

    Right. The path weirdness and the many aliases involved seem to be red herrings. The problem is that somehow NI specifically thinks that "Documents" is empty. I'll try disabling iCloud ... keep a copy, NI now sees that archived copy in an Open command, and doesn't throw an error starting up. But the "home folder" is now the app folder, so the saves still aren't visible by default. Re-enable the drive, and now Documents really is empty - until things get re-synced. I speed that up by restoring things from the local copy. And ... NI still thinks there's nothing there. Enough of that nonsense for now.
Sign In or Register to comment.