I must be an idiot or something. I have the Jar file. Tried to open it, it was saved as a 7zip file. I kept getting the support error, so I figured it must be the 7zip format that was the problem. I downloaded a new file archive app, Files and Folders Lite from the app store. Now it's in that format and I put the file in the game program folder and clicked on it, and it opens the .jar file just like it was an archive. gives me 4 folders (com, org, and a couple others) that I can view and open, but it doesn't start the program.......I'm really sorry I'm not getting this because it's gotta be obvious that I'm doing something wrong, obviously many people use this program all the time......what am I doing wrong?
Near Infinity doesn't use the 7zip file format. Did you download the tool from there?
It could be that your Java Runtime hasn't been installed correctly, or another tool (like 7-Zip) has overridden the .jar file association. In that case you should remove the file association (from 7-Zip or whatever tool is executed when you double-click on NearInfinity.jar). If that doesn't help, try re-installing the Java Runtime.
You could also bypass the file association completely and try to execute Near Infinity directly with the following command from the Command Prompt: javaw -jar NearInfinity.jar
Having that problem where NearInfinity is microscopic due to me having a modern 4k monitor. Tried to fix it by setting dpiaware to false on my java apps. Didn't change anything. It is not useable in this state and I would 1000x prefer being able to use the app without changing my desktop's resolution if that is possible. PC is top of the line modern gaming pc running windows 10 pro.
I remember fixing this somehow in the past but haven't been able to figure it out so far this time, any help is appreciated, unless that "help" is you explaining why my problem is not a problem, in that case please do not respond.
Well, Near Infinity uses Java's Swing Library for implementing GUI stuff, which isn't DPI-aware and will probably never be. This issue has been discussed before (e.g. here).
A few months back I have tried out a work-around, by implementing an option that will globally increase font size for all UI controls. You can change them via Options > Change Global Font Size for UI controls, menus, etc. and Options > Text Font for fonts in resource tables and text windows. However, I didn't get any feedback yet about whether it worked correctly (and I don't have the means to test it myself).
Apart from that, there are several hacks described on various platforms to enforce DPI-awareness for Java apps. I'm posting one for Windows 10. Maybe it helps in your case: 1. Find java.exe (or javaw.exe) you installed. 2. Right click -> Properties 3. Go to Compatibility tab 4. Check "Override high DPI scaling behavior" 5. Choose "System" for "Scaling performed by:"
This release provides a greatly overhauled BAM Converter and BAM decoder. See more details in the changlog below. Because of the great number of changes, it is possible to encounter a bug or two. Please report any unusual behavior you might find in that regard.
Changes:
Greatly overhauled BAM Converter:
Added alpha palette support. Enabled for games that support BAM with alpha palette (i.e. Enhanced Edition games).
Improved visualization of palette in BAM palette dialog.
Added a global palette sorting option.
Fixed various color filters to work correctly with alpha-blended BAM frames.
Improved GIF import function. It should now correctly handle more advanced structures in animated GIFs. (There is still a chance that some animations can't be imported because of poor native GIF decoding support by Java.)
Improved alpha palette support in BAM decoder.
Overhauled color reduction functionality: Improves visual quality of converted palette-based BAM, MOS and TIS files.
Added a button to ARE > Actor > Animation field for opening creature animation definition files of selected type, if available.
Added missing field "First letter of CRE resref" to ARE > Actor structure (only relevant in saved areas).
Removed fields from GAM NPC substructures that are not used by the games.
I mapped these bytes a while back; maybe they can be of some use here.
IWD2 CRE (v2.2) offset 0x2f2: The first six bytes here are used to keep track of the summoner-summon relationship. One of these six bytes is set (on the summoner) when a creature is summoned by a PC; the corresponding byte is unset when the summon is killed / unsummoned. The bytes can be described like so:
byte at offset (0x2f2 + n) is 00 if the nth summon was not summoned by this PC. byte at offset (0x2f2 + n) is 01 if the nth summon was summoned by this PC.
0x2f2 => Summon 1 summoned by this PC (00 => No ; 01 => Yes) 0x2f3 => Summon 2 summoned by this PC (00 => No ; 01 => Yes) 0x2f4 => Summon 3 summoned by this PC (00 => No ; 01 => Yes) 0x2f5 => Summon 4 summoned by this PC (00 => No ; 01 => Yes) 0x2f6 => Summon 5 summoned by this PC (00 => No ; 01 => Yes) 0x2f7 => Summon 6 summoned by this PC (00 => No ; 01 => Yes)
These bytes also control the summon limit; if these (set) bytes are unset using Near Infinity the summoning cap can be exceeded.
Parameter2 values 18 - 43 now occupy values 19 - 44. Unknown what effect current value 18 has. Previous value 44 (DO_NOT_DRAW) has unknown (if any) current value.
I double-checked with v2.3 to make sure these weren't just an error from my previous post about this opcode: In v2.3, 18 is preventspellprotectioneffects. In v2.5, 19 is preventspellprotectioneffects. ... In v2.3, 42 is golemstoneskin. In v2.5, 43 is golemstoneskin.
Hmm, that's a rather unusual change and causes the opcode to be out of sync with STATS.IDS. It might be a regression from the latest patch. I would suggest to create a bug report on redmine, if only to find out whether this issue is indeed a bug or a deliberate change.
Found a small issue I believe. Using StringRef Lookup and search for 27505 (bgee string) it will find 6 hits. However, opening any one of these hits will open up the first hit only - In this case being state 1.
Found a small issue I believe. Using StringRef Lookup and search for 27505 (bgee string) it will find 6 hits. However, opening any one of these hits will open up the first hit only - In this case being state 1.
I can confirm this behavior. However, from what I can see, it was always like this even back at NI v1.36. I'll see what I can do to improve the situation.
Not sure how practical it would be to map these in string fields (or if any of them are even used in an unmodded game), but the dialog.tlk references listed in ENGINEST.2da can be referenced as (row# + 0xf00000). Row# starts at 0, excluding the header rows.
For example, if I set offset 0x8 (unid name) for an item to 0xf00008, in-game it will display:
Auto-Paused: Scripted
which is tlk reference 24545 (BGEE), row#8 in ENGINEST.2da: STRREF_AUTOPAUSE_SCRIPTED 24545
Adding this functionality would be quite a lot of work, since strrefs are used by several different parts of NI (e.g. string fields, strref lookups or string editor). Chances are rather slim that it will be implemented. I haven't seen it used in the game yet.
Parameter2 values 18 - 43 now occupy values 19 - 44. Unknown what effect current value 18 has. Previous value 44 (DO_NOT_DRAW) has unknown (if any) current value.
I double-checked with v2.3 to make sure these weren't just an error from my previous post about this opcode: In v2.3, 18 is preventspellprotectioneffects. In v2.5, 19 is preventspellprotectioneffects. ... In v2.3, 42 is golemstoneskin. In v2.5, 43 is golemstoneskin.
Based on this info I have decided to leave the state list unchanged, but add an "undocumented" remark to states > 10 in NI. With luck this issue will be resolved in a future game patch.
@argent77: I had a quick question regarding strings in BCS scripts; I seem to recall that you worked on overhauling NI's script parser (or something like that) semi-recently, so I think you would be the best person to ask this...
Would it be possible to allow multi-line strings in BCS scripts? I don't believe the BCS format can encode multi-line strings correctly, but for my instance that doesn't matter. Basically, all I want the newlines for is sanity in my arguments, the newlines can be converted to spaces in the compiling process...
This is all for a custom trigger I'm working on btw; I understand its an odd request. I don't expect you to act on this or anything, I just wanted to know if it's theoretically possible. Thanks!
I'm pretty certain this is not possible without changing the syntax definition of the BAF script. The syntax definition is the very core of the script compiler. I don't want to touch it unless there is no other way, as it could easily break compatibility with current syntax or introduce unexpected side effects.
It would also be necessary to make changes to the syntax highlighter and possibly various search routines (since script code in dialogs is stored in human-readable format). Sounds like a tremendously complicated task for a simple change.
To save your sanity you could simply write the code somewhere in a text editor and use a find-and-replace operation on line breaks to turn them into spaces before pasting the whole block into the script editor.
Well, here's another oddball: Opcode 233 (Modify Proficiency): Parameter2 = (any prof) + (Increment) Special = (non-zero)
Only applies the effect if the creature does not currently have any active-class Longsword proficiency. As far as I've checked it doesn't matter what proficiency your adding, it always checks Longsword proficiency.
Currently used by Black Blade of Disaster, with less than optimal results. At this point I think they should just remove the proficiency from it entirely and simulate it with opcodes 1/73/190/278.
More v2.5 changes: The Frequency Multiplier used by Opcode 25 (Poison) has been moved to "Parameter4". The "Special" field now dictates the portrait Icon displayed.
Opcodes 78(Disease), 98(Regeneration), and 272(Use EFF on Condition) also now use their "Special" field for Portrait Icons.
More v2.5 changes: The Frequency Multiplier used by Opcode 25 (Poison) has been moved to "Parameter4". The "Special" field now dictates the portrait Icon displayed.
Opcodes 78(Disease), 98(Regeneration), and 272(Use EFF on Condition) also now use their "Special" field for Portrait Icons.
Thanks. This change may cause compatibility issues with mods, but at the very least it's more consistent with other opcodes now.
Is it possible to build the NearInfinity source using a JDK version higher than 8? I just updated my Java version to JDK 10.0.2, and attempting to compile NI (with the latest version of Apache Ant) yields these errors:
compile:
[mkdir] Created dir: C:\NearInfinity-devel\build\src
[javac] Compiling 516 source files to C:\NearInfinity-devel\build\src
[javac] warning: [options] bootstrap class path not set in conjunction with -source 8
[javac] C:\NearInfinity-devel\src\org\infinity\gui\OpenResourceDialog.java:444: error: method accept in interface Action cannot be applied to given types;
[javac] accept();
[javac] ^
[javac] required: Object
[javac] found: no arguments
[javac] reason: actual and formal argument lists differ in length
[javac] C:\NearInfinity-devel\src\org\infinity\gui\converter\ConvertToBam.java:5799: error: method accept in interface Action cannot be applied to given types;
[javac] accept();
[javac] ^
[javac] required: Object
[javac] found: no arguments
[javac] reason: actual and formal argument lists differ in length
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] 2 errors
[javac] 1 warning
I attempted to search for a solution to the error, and the only one I've found says to use an older JDK. I just wanted to confirm here that compiling NI does indeed require JDK 8, and that I need to keep that on my machine.
@Bubb It appears Java 10 introduces some incompatibilities (on source level). I don't think NI can be built successfully without a good number of code changes.
I would suggest to install JDK 8. It is still officially available from Oracle (download). It can be installed side by side with newer versions. You'll probably have to update PATH and the JAVA_HOME environment variable to point to the right JDK installation.
I'll keep Java 8 compatibility for a while, since not all platforms have been updated to Java 10 yet.
I'm not sure if this is the right thread to ask, but this should be relevant, I hope.
I use NearInfinity to convert the BAM files of monsters to animated GIFs in order to put them on the wiki. Generally, all I have to do is go to Edit BAM --> Post-processing tab --> Add filters Transform: Center BAM Frames and Output: GIF Output and that does it all very well.
Examples:
However, in case of very large monsters like Firkraag and Demogorgon, their animations appear to be cut into four squares (as if a set of coordinate axes passed through the center of their bodies) and placed in many separate BAM files part by part. (Demogorgon has 52 such BAM files all prefixed MDEMG and then having various numbers suffixed.) As a result, the method which I mentioned above does not work for them. Is there any way to assimilate those BAM files and make a complete GIF animation of these monsters? I'd appreciate any help provided.
I don't think that's possible with Near Infinity. You can do the reverse process, splitting very large creature animations into multiple segments to make them work in the game engine.
You can create animations out of the individual segments, but combining these segments will require some other tools. I don't know how difficult it will be though. Never done it before.
@Gwendolyne Thanks, but I would actually like to know the method of doing it (so that I can do it anytime I want ). How did you reassemble them? What tools did you use?
I used a home made dev tool a Diablo II modder wrote for me when I decided to port Diablo II animations into BG2. Unfortunately, the guy retired from modding five or six years ago. I remember having reassembled dragons (maybe demogorgon?, not sure). But I need to check in my old HD to find them. As for the tool, I am not sure it survived my computer failures...
Hello @argent77, I was trying to open a few areas in BGEE using the area viewer in NearInfinity. However, the following error shows up:
I cannot understand why this happens. My laptop has a 4 GB RAM and a 1 TB HDD in it, and I don't think any area is so large as to not fit within. What might be the problem? Can you please help me with this?
Comments
It could be that your Java Runtime hasn't been installed correctly, or another tool (like 7-Zip) has overridden the .jar file association. In that case you should remove the file association (from 7-Zip or whatever tool is executed when you double-click on NearInfinity.jar). If that doesn't help, try re-installing the Java Runtime.
You could also bypass the file association completely and try to execute Near Infinity directly with the following command from the Command Prompt:
javaw -jar NearInfinity.jar
I remember fixing this somehow in the past but haven't been able to figure it out so far this time, any help is appreciated, unless that "help" is you explaining why my problem is not a problem, in that case please do not respond.
A few months back I have tried out a work-around, by implementing an option that will globally increase font size for all UI controls. You can change them via Options > Change Global Font Size for UI controls, menus, etc. and Options > Text Font for fonts in resource tables and text windows. However, I didn't get any feedback yet about whether it worked correctly (and I don't have the means to test it myself).
Apart from that, there are several hacks described on various platforms to enforce DPI-awareness for Java apps. I'm posting one for Windows 10. Maybe it helps in your case:
1. Find java.exe (or javaw.exe) you installed.
2. Right click -> Properties
3. Go to Compatibility tab
4. Check "Override high DPI scaling behavior"
5. Choose "System" for "Scaling performed by:"
Update: NearInfinity v2.1-20180615
This release provides a greatly overhauled BAM Converter and BAM decoder. See more details in the changlog below. Because of the great number of changes, it is possible to encounter a bug or two. Please report any unusual behavior you might find in that regard.Changes:
IWD2 CRE (v2.2) offset 0x2f2: The first six bytes here are used to keep track of the summoner-summon relationship. One of these six bytes is set (on the summoner) when a creature is summoned by a PC; the corresponding byte is unset when the summon is killed / unsummoned. The bytes can be described like so:
byte at offset (0x2f2 + n) is 00 if the nth summon was not summoned by this PC.
byte at offset (0x2f2 + n) is 01 if the nth summon was summoned by this PC.
0x2f2 => Summon 1 summoned by this PC (00 => No ; 01 => Yes)
0x2f3 => Summon 2 summoned by this PC (00 => No ; 01 => Yes)
0x2f4 => Summon 3 summoned by this PC (00 => No ; 01 => Yes)
0x2f5 => Summon 4 summoned by this PC (00 => No ; 01 => Yes)
0x2f6 => Summon 5 summoned by this PC (00 => No ; 01 => Yes)
0x2f7 => Summon 6 summoned by this PC (00 => No ; 01 => Yes)
These bytes also control the summon limit; if these (set) bytes are unset using Near Infinity the summoning cap can be exceeded.
Parameter2 values 18 - 43 now occupy values 19 - 44.
Unknown what effect current value 18 has.
Previous value 44 (DO_NOT_DRAW) has unknown (if any) current value.
I double-checked with v2.3 to make sure these weren't just an error from my previous post about this opcode:
In v2.3, 18 is preventspellprotectioneffects.
In v2.5, 19 is preventspellprotectioneffects.
...
In v2.3, 42 is golemstoneskin.
In v2.5, 43 is golemstoneskin.
For example, if I set offset 0x8 (unid name) for an item to 0xf00008, in-game it will display:
STRREF_AUTOPAUSE_SCRIPTED 24545
Would it be possible to allow multi-line strings in BCS scripts? I don't believe the BCS format can encode multi-line strings correctly, but for my instance that doesn't matter. Basically, all I want the newlines for is sanity in my arguments, the newlines can be converted to spaces in the compiling process...
This is all for a custom trigger I'm working on btw; I understand its an odd request. I don't expect you to act on this or anything, I just wanted to know if it's theoretically possible. Thanks!
It would also be necessary to make changes to the syntax highlighter and possibly various search routines (since script code in dialogs is stored in human-readable format). Sounds like a tremendously complicated task for a simple change.
To save your sanity you could simply write the code somewhere in a text editor and use a find-and-replace operation on line breaks to turn them into spaces before pasting the whole block into the script editor.
Opcode 233 (Modify Proficiency):
Parameter2 = (any prof) + (Increment)
Special = (non-zero)
Only applies the effect if the creature does not currently have any active-class Longsword proficiency. As far as I've checked it doesn't matter what proficiency your adding, it always checks Longsword proficiency.
Currently used by Black Blade of Disaster, with less than optimal results. At this point I think they should just remove the proficiency from it entirely and simulate it with opcodes 1/73/190/278.
The Frequency Multiplier used by Opcode 25 (Poison) has been moved to "Parameter4".
The "Special" field now dictates the portrait Icon displayed.
Opcodes 78(Disease), 98(Regeneration), and 272(Use EFF on Condition) also now use their "Special" field for Portrait Icons.
compile: [mkdir] Created dir: C:\NearInfinity-devel\build\src [javac] Compiling 516 source files to C:\NearInfinity-devel\build\src [javac] warning: [options] bootstrap class path not set in conjunction with -source 8 [javac] C:\NearInfinity-devel\src\org\infinity\gui\OpenResourceDialog.java:444: error: method accept in interface Action cannot be applied to given types; [javac] accept(); [javac] ^ [javac] required: Object [javac] found: no arguments [javac] reason: actual and formal argument lists differ in length [javac] C:\NearInfinity-devel\src\org\infinity\gui\converter\ConvertToBam.java:5799: error: method accept in interface Action cannot be applied to given types; [javac] accept(); [javac] ^ [javac] required: Object [javac] found: no arguments [javac] reason: actual and formal argument lists differ in length [javac] Note: Some input files use or override a deprecated API. [javac] Note: Recompile with -Xlint:deprecation for details. [javac] 2 errors [javac] 1 warning
I attempted to search for a solution to the error, and the only one I've found says to use an older JDK. I just wanted to confirm here that compiling NI does indeed require JDK 8, and that I need to keep that on my machine.
Undead level -> Turn undead level
The offset as it is written gives the idea that it is the level that a creature would present when affected by turn undead.
Well, happened to me but I can be quite stupid.
I would suggest to install JDK 8. It is still officially available from Oracle (download). It can be installed side by side with newer versions. You'll probably have to update PATH and the JAVA_HOME environment variable to point to the right JDK installation.
I'll keep Java 8 compatibility for a while, since not all platforms have been updated to Java 10 yet.
@Raduziel Will be fixed.
I use NearInfinity to convert the BAM files of monsters to animated GIFs in order to put them on the wiki. Generally, all I have to do is go to Edit BAM --> Post-processing tab --> Add filters Transform: Center BAM Frames and Output: GIF Output and that does it all very well.
However, in case of very large monsters like Firkraag and Demogorgon, their animations appear to be cut into four squares (as if a set of coordinate axes passed through the center of their bodies) and placed in many separate BAM files part by part. (Demogorgon has 52 such BAM files all prefixed MDEMG and then having various numbers suffixed.) As a result, the method which I mentioned above does not work for them. Is there any way to assimilate those BAM files and make a complete GIF animation of these monsters? I'd appreciate any help provided.
You can create animations out of the individual segments, but combining these segments will require some other tools. I don't know how difficult it will be though. Never done it before.
I cannot understand why this happens. My laptop has a 4 GB RAM and a 1 TB HDD in it, and I don't think any area is so large as to not fit within. What might be the problem? Can you please help me with this?