argent77 Posted August 16, 2022 Share Posted August 16, 2022 2 hours ago, Oloriniel said: Unfortunately, I can't open Baldur.gam in the save folder (any save folder, I've tried several not just the most recent) I know I've done this at least once before, when were trying to diagnose why mages suddenly couldn't use mage scrolls on transitioning to SoD. But it's not working now. I get the error message "Error reading BALDUR.GAM null" Could you post the error log after attempting to open the baldur.gam (menu Tools > Show Debug Console)? Or attach/upload your BALDUR.GAM, so that I could take a look at it myself. Quote Link to comment
Oloriniel Posted August 18, 2022 Share Posted August 18, 2022 Spoiler Error reading BALDUR.GAM java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.infinity.resource.ResourceFactory.getResource(Unknown Source) at org.infinity.resource.ResourceFactory.getResource(Unknown Source) at org.infinity.gui.ResourceTree.valueChanged(Unknown Source) at javax.swing.JTree.fireValueChanged(Unknown Source) at javax.swing.JTree$TreeSelectionRedirector.valueChanged(Unknown Source) at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(Unknown Source) at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(Unknown Source) at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(Unknown Source) at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(Unknown Source) at javax.swing.JTree.setSelectionPath(Unknown Source) at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(Unknown Source) at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(Unknown Source) at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(Unknown Source) at java.awt.AWTEventMulticaster.mousePressed(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded at java.util.ArrayDeque.<init>(Unknown Source) at org.infinity.util.IdsMapEntry.<init>(Unknown Source) at org.infinity.datatype.IdsBitmap.createResourceList(Unknown Source) at org.infinity.datatype.IdsBitmap.<init>(Unknown Source) at org.infinity.datatype.IdsBitmap.<init>(Unknown Source) at org.infinity.resource.Effect2.readCommon(Unknown Source) at org.infinity.resource.Effect2.read(Unknown Source) at org.infinity.resource.AbstractStruct.<init>(Unknown Source) at org.infinity.resource.AbstractStruct.<init>(Unknown Source) at org.infinity.resource.Effect2.<init>(Unknown Source) at org.infinity.resource.cre.CreResource.readOther(Unknown Source) at org.infinity.resource.cre.CreResource.read(Unknown Source) at org.infinity.resource.AbstractStruct.<init>(Unknown Source) at org.infinity.resource.AbstractStruct.<init>(Unknown Source) at org.infinity.resource.cre.CreResource.<init>(Unknown Source) at org.infinity.resource.gam.PartyNPC.read(Unknown Source) at org.infinity.resource.AbstractStruct.<init>(Unknown Source) at org.infinity.resource.AbstractStruct.<init>(Unknown Source) at org.infinity.resource.gam.PartyNPC.<init>(Unknown Source) at org.infinity.resource.gam.NonPartyNPC.<init>(Unknown Source) at org.infinity.resource.gam.GamResource.read(Unknown Source) at org.infinity.resource.AbstractStruct.<init>(Unknown Source) at org.infinity.resource.gam.GamResource.<init>(Unknown Source) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.infinity.resource.ResourceFactory.getResource(Unknown Source) at org.infinity.resource.ResourceFactory.getResource(Unknown Source) at org.infinity.gui.ResourceTree.valueChanged(Unknown Source) at javax.swing.JTree.fireValueChanged(Unknown Source) at javax.swing.JTree$TreeSelectionRedirector.valueChanged(Unknown Source) Error reading BALDUR.GAM java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.infinity.resource.ResourceFactory.getResource(Unknown Source) at org.infinity.resource.ResourceFactory.getResource(Unknown Source) at org.infinity.gui.ResourceTree.valueChanged(Unknown Source) at javax.swing.JTree.fireValueChanged(Unknown Source) at javax.swing.JTree$TreeSelectionRedirector.valueChanged(Unknown Source) at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(Unknown Source) at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(Unknown Source) at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(Unknown Source) at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(Unknown Source) at javax.swing.JTree.setSelectionPath(Unknown Source) at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(Unknown Source) at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(Unknown Source) at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(Unknown Source) at java.awt.AWTEventMulticaster.mousePressed(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded at java.util.ArrayDeque.<init>(Unknown Source) at org.infinity.util.IdsMapEntry.<init>(Unknown Source) at org.infinity.datatype.IdsBitmap.createResourceList(Unknown Source) at org.infinity.datatype.IdsBitmap.<init>(Unknown Source) at org.infinity.datatype.IdsBitmap.<init>(Unknown Source) at org.infinity.resource.Effect2.readCommon(Unknown Source) at org.infinity.resource.Effect2.read(Unknown Source) at org.infinity.resource.AbstractStruct.<init>(Unknown Source) at org.infinity.resource.AbstractStruct.<init>(Unknown Source) at org.infinity.resource.Effect2.<init>(Unknown Source) at org.infinity.resource.cre.CreResource.readOther(Unknown Source) at org.infinity.resource.cre.CreResource.read(Unknown Source) at org.infinity.resource.AbstractStruct.<init>(Unknown Source) at org.infinity.resource.AbstractStruct.<init>(Unknown Source) at org.infinity.resource.cre.CreResource.<init>(Unknown Source) at org.infinity.resource.gam.PartyNPC.read(Unknown Source) at org.infinity.resource.AbstractStruct.<init>(Unknown Source) at org.infinity.resource.AbstractStruct.<init>(Unknown Source) at org.infinity.resource.gam.PartyNPC.<init>(Unknown Source) at org.infinity.resource.gam.NonPartyNPC.<init>(Unknown Source) at org.infinity.resource.gam.GamResource.read(Unknown Source) at org.infinity.resource.AbstractStruct.<init>(Unknown Source) at org.infinity.resource.gam.GamResource.<init>(Unknown Source) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.infinity.resource.ResourceFactory.getResource(Unknown Source) at org.infinity.resource.ResourceFactory.getResource(Unknown Source) at org.infinity.gui.ResourceTree.valueChanged(Unknown Source) at javax.swing.JTree.fireValueChanged(Unknown Source) at javax.swing.JTree$TreeSelectionRedirector.valueChanged(Unknown Source) Error reading BALDUR.GAM java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.infinity.resource.ResourceFactory.getResource(Unknown Source) at org.infinity.resource.ResourceFactory.getResource(Unknown Source) at org.infinity.gui.ResourceTree.valueChanged(Unknown Source) at javax.swing.JTree.fireValueChanged(Unknown Source) at javax.swing.JTree$TreeSelectionRedirector.valueChanged(Unknown Source) at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(Unknown Source) at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(Unknown Source) at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(Unknown Source) at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(Unknown Source) at javax.swing.JTree.setSelectionPath(Unknown Source) at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(Unknown Source) at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(Unknown Source) at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(Unknown Source) at java.awt.AWTEventMulticaster.mousePressed(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded Quote Link to comment
argent77 Posted August 18, 2022 Share Posted August 18, 2022 7 hours ago, Oloriniel said: Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded That confirms my suspicion. You're most likely using a 32-bit version of the Java Runtime to run NI. That version uses very conservative memory settings by default, which may have worked fine on Windows XP 20 years ago but are now largely outdated. I'd strongly recommend to install a 64-bit version which makes much better use of available memory. You can download the official Oracle version or the Open Source version (choose package type 'JRE'). If you can't run the 64-bit version for some reason then try the "Hide NI DOS" script found somewhere in the first post of this topic. It attempts to run NI with extended memory settings. Quote Link to comment
Oloriniel Posted August 18, 2022 Share Posted August 18, 2022 Thanks very much!! Quote Link to comment
Oloriniel Posted August 19, 2022 Share Posted August 19, 2022 Updated to the official oracle version you linked above; unfortunately, NI still won't open the .sav file. And when Java uninstalled my current version, it said it was a 64 bit 8.21 (vs the current 8.41) So, maybe the Hide NI DOS script will help, if I can figure out how to use it. Quote Link to comment
Sam. Posted August 20, 2022 Share Posted August 20, 2022 Not having read through the debug log, it sounds to me like an antivirus program may be interfering with NI's ability to access/edit files in your Documents folder, including the savegames. Quote Link to comment
Oloriniel Posted August 22, 2022 Share Posted August 22, 2022 My antivirus program is flagging the Hide NI DOS v1.03. I am running a 64 bit version of the most recent Java, but NI is still not willing to open baldur.gam files. Quote Link to comment
argent77 Posted August 23, 2022 Share Posted August 23, 2022 @Oloriniel Could you post a screenshot of the system information that is shown in the main panel when you start up NI? If that's not available then enable menu Options > Display system information at startup, and restart NI. Could you also zip and attach one of your saves, so that I can check it myself? You can use NI for that: Right-click on a savegame folder and choose "Create zip archive". Quote Link to comment
Oloriniel Posted August 23, 2022 Share Posted August 23, 2022 8 hours ago, argent77 said: @Oloriniel Could you post a screenshot of the system information that is shown in the main panel when you start up NI? If that's not available then enable menu Options > Display system information at startup, and restart NI. Could you also zip and attach one of your saves, so that I can check it myself? You can use NI for that: Right-click on a savegame folder and choose "Create zip archive". The zip archive is 3327KB, and my max total size allowed here is 75.82KB. So I can't put it here, but I think I can send it to an email address.I can't even post a screenshot. But I can copy the data: NearInfinity V2.2-20220408-1 Java Runtime Java(TM) SE Runtime Environment Java Version 1.8.0_341 Java VM Java HotSpont(TM) 64-Bit Server VM (25.341-b10, mixed mode) Java VM Architecture amd64 Available Memory 2676 MB Quote Link to comment
argent77 Posted August 23, 2022 Share Posted August 23, 2022 28 minutes ago, Oloriniel said: I can't even post a screenshot. But I can copy the data: NearInfinity V2.2-20220408-1 Java Runtime Java(TM) SE Runtime Environment Java Version 1.8.0_341 Java VM Java HotSpont(TM) 64-Bit Server VM (25.341-b10, mixed mode) Java VM Architecture amd64 Available Memory 2676 MB The amount of available memory should be enough, but I have never tested it on a megamod installation with several hundred mods. I don't think trying out the "Hide NI DOS" script will improve the situation, since 32-bit apps can't reserve more than 2GB memory under normal circumstances. If the whole savegame archive is too big for the size limit, then attach only the zipped BALDUR.GAM file (or use 7-zip for better compression.) Quote Link to comment
Graion Dilach Posted August 24, 2022 Share Posted August 24, 2022 (edited) If this helps, the sole reason I moved to 64 bit Java (for NI) was because I couldn't review my EET megamod worldmap. I never had an issue with baldur.gam in a save. If the issue comes from savegames, I'd moreso blame OneDrive and it's aggressive tendencies of syncing the Documents folder. I've had it preventing other files within that subfolder. Edited August 24, 2022 by Graion Dilach Quote Link to comment
argent77 Posted August 24, 2022 Share Posted August 24, 2022 A closer look at the error message reveals excessive data allocation while reading some kind of resource list. The error doesn't provide enough information, but only two files are read in the indicated data structure: PROJECTL.IDS and SLOTS.IDS. Both files are not known to contain massive amounts of lines though. But could you look up the number of lines in these files anyway? PROJECTL.IDS should have several hundred entries at most. SLOTS.IDS should have only about 40 entries. It is also possible that party members in the BALDUR.GAM contain an excessive amount (thousands?) of spell effects, which could also trigger this error. In that case, uploading/attaching the BALDUR.GAM would be helpful. 4 hours ago, Graion Dilach said: If the issue comes from savegames, I'd moreso blame OneDrive and it's aggressive tendencies of syncing the Documents folder. I've had it preventing other files within that subfolder. I don't use OneDrive, so I can't check. But if read operations on OnDrive files are corrupted for some reason, then that could also be a source for this error. Quote Link to comment
Graion Dilach Posted August 24, 2022 Share Posted August 24, 2022 (edited) I also don't use OneDrive in Documents, but my last install ended up enabling it silently - it only broke down because I have the portraits and the override subfolders in my Documents (and the NWN profile subfolder outright) symlinked to a separate partition and it can't handle symlinks. I've seen systems where OneDrive managed to prevent certain applications to open folders/files under active sync. Edited August 24, 2022 by Graion Dilach Quote Link to comment
subtledoctor Posted September 1, 2022 Author Share Posted September 1, 2022 On 8/24/2022 at 9:36 AM, argent77 said: It is also possible that party members in the BALDUR.GAM contain an excessive amount (thousands?) of spell effects, which could also trigger this error. I have definitely noticed that when opening a savegame in NI in a fairly heavily modded game, with savegames late in BG2, NI takes a long time to open the .GAM file. Like, 10-20 seconds long. Nothing crazy, but definitely indicative that it is working hard. And I tend to have party members with applied effects numbering in the range of 400-700. I've never seen characters with thousands of effects, though. Quote Link to comment
mickabouille Posted September 5, 2022 Share Posted September 5, 2022 On 9/1/2022 at 10:43 PM, subtledoctor said: with savegames late in BG2, NI takes a long time to open the .GAM file. Like, 10-20 seconds long. For me, it takes minutes. For an early BG1 saves (of an EET heavily modded game). So much that it's practically unusable (because just opening NI is also timed in minutes). Quote Link to comment
Recommended Posts
Join the conversation
You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.