SMGCommunity / Whitehole-Neo

A Modern editor for Super Mario Galaxy 1 & 2
12 stars 3 forks source link

Black screen when opening a galaxy #42

Closed Humming-2wl closed 3 months ago

Humming-2wl commented 4 months ago

When I try to open a galaxy of SMG1 or SMG2 on Beta 5 the rendering screen always stays black. Like in the picture below. 2024-05-09-202731_1918x1078_scrot

I am using the following JRE (Ubuntu):

openjdk version "17.0.4" 2022-07-19
OpenJDK Runtime Environment (build 17.0.4+8-Ubuntu-118.04)
OpenJDK 64-Bit Server VM (build 17.0.4+8-Ubuntu-118.04, mixed mode, sharing)

And get these terminal outputs when either running Whitehole Neo without the BAT file command:

Loading "IslandFleetGalaxy"
Loading "BarrelColonyZone"
Loading "LargeActionPlanetBZone"
Loading "SorajimaBossZone"
Loading "DrumActionPlanetZone"
Loading "EasySmallPlanetZone"
Loading "HoleSphere3Zone"
Loading "CylinderPlanetZone"
Loading "EarthenPipeRoomEZone"
Loading "PetitPorterAZone"
Loading "ManekuriAZone"
Caught AppContextInfo(Bug 1004) InaccessibleObjectException: Unable to make public static sun.awt.AppContext sun.awt.AppContext.getAppContext() accessible: module java.desktop does not "exports sun.awt" to unnamed module @4cfaf581 on thread Thread-1
    [0]: java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
    [1]: java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
    [2]: java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
    [3]: java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
    [4]: com.jogamp.nativewindow.awt.AppContextInfo$1$1.run(AppContextInfo.java:40)
    [5]: com.jogamp.common.util.UnsafeUtil.doWithoutIllegalAccessLogger(UnsafeUtil.java:219)
    [6]: com.jogamp.nativewindow.awt.AppContextInfo$1.run(AppContextInfo.java:34)
    [7]: java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    [8]: com.jogamp.nativewindow.awt.AppContextInfo.<clinit>(AppContextInfo.java:31)
    [9]: com.jogamp.nativewindow.awt.JAWTWindow.<init>(JAWTWindow.java:128)
    [10]: jogamp.nativewindow.jawt.x11.X11JAWTWindow.<init>(X11JAWTWindow.java:60)
    [11]: java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    [12]: java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
    [13]: java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    [14]: java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    [15]: java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    [16]: jogamp.nativewindow.NativeWindowFactoryImpl.getAWTNativeWindow(NativeWindowFactoryImpl.java:105)
    [17]: jogamp.nativewindow.NativeWindowFactoryImpl.getNativeWindowImpl(NativeWindowFactoryImpl.java:66)
    [18]: com.jogamp.nativewindow.NativeWindowFactory.getNativeWindow(NativeWindowFactory.java:654)
    [19]: com.jogamp.opengl.awt.GLCanvas.createJAWTDrawableAndContext(GLCanvas.java:716)
    [20]: com.jogamp.opengl.awt.GLCanvas.addNotify(GLCanvas.java:621)
    [21]: java.desktop/java.awt.Container.addImpl(Container.java:1150)
    [22]: java.desktop/java.awt.Container.add(Container.java:1001)
    [23]: whitehole.editor.GalaxyEditorForm.initGUI(GalaxyEditorForm.java:284)
    [24]: whitehole.editor.GalaxyEditorForm$AsyncLevelLoader.loadFullGalaxy(GalaxyEditorForm.java:861)
    [25]: whitehole.editor.GalaxyEditorForm$AsyncLevelLoader.run(GalaxyEditorForm.java:770)
    [26]: java.base/java.lang.Thread.run(Thread.java:833)
Caught AppContextInfo(Bug 1004) IllegalAccessException: class com.jogamp.nativewindow.awt.AppContextInfo cannot access class sun.awt.AppContext (in module java.desktop) because module java.desktop does not export sun.awt to unnamed module @4cfaf581 on thread Thread-1
    [0]: java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:392)
    [1]: java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:674)
    [2]: java.base/java.lang.reflect.Method.invoke(Method.java:560)
    [3]: com.jogamp.nativewindow.awt.AppContextInfo.fetchAppContext(AppContextInfo.java:191)
    [4]: com.jogamp.nativewindow.awt.AppContextInfo.update(AppContextInfo.java:135)
    [5]: com.jogamp.nativewindow.awt.AppContextInfo.<init>(AppContextInfo.java:50)
    [6]: com.jogamp.nativewindow.awt.JAWTWindow.<init>(JAWTWindow.java:128)
    [7]: jogamp.nativewindow.jawt.x11.X11JAWTWindow.<init>(X11JAWTWindow.java:60)
    [8]: java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    [9]: java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
    [10]: java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    [11]: java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    [12]: java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    [13]: jogamp.nativewindow.NativeWindowFactoryImpl.getAWTNativeWindow(NativeWindowFactoryImpl.java:105)
    [14]: jogamp.nativewindow.NativeWindowFactoryImpl.getNativeWindowImpl(NativeWindowFactoryImpl.java:66)
    [15]: com.jogamp.nativewindow.NativeWindowFactory.getNativeWindow(NativeWindowFactory.java:654)
    [16]: com.jogamp.opengl.awt.GLCanvas.createJAWTDrawableAndContext(GLCanvas.java:716)
    [17]: com.jogamp.opengl.awt.GLCanvas.addNotify(GLCanvas.java:621)
    [18]: java.desktop/java.awt.Container.addImpl(Container.java:1150)
    [19]: java.desktop/java.awt.Container.add(Container.java:1001)
    [20]: whitehole.editor.GalaxyEditorForm.initGUI(GalaxyEditorForm.java:284)
    [21]: whitehole.editor.GalaxyEditorForm$AsyncLevelLoader.loadFullGalaxy(GalaxyEditorForm.java:861)
    [22]: whitehole.editor.GalaxyEditorForm$AsyncLevelLoader.run(GalaxyEditorForm.java:770)
    [23]: java.base/java.lang.Thread.run(Thread.java:833)
Exception in thread "AWT-EventQueue-0" com.jogamp.opengl.GLException: Caught NullPointerException: Cannot invoke "whitehole.smg.Bcsv$Entry.getInt(String, int)" because "this.curScenario" is null on thread AWT-EventQueue-0
    at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327)
    at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
    at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1442)
    at com.jogamp.opengl.Threading.invoke(Threading.java:223)
    at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:503)
    at com.jogamp.opengl.awt.GLCanvas.paint(GLCanvas.java:557)
    at java.desktop/sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
    at java.desktop/sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:66)
    at java.desktop/sun.awt.RepaintArea.paint(RepaintArea.java:240)
    at java.desktop/sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:555)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5062)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.NullPointerException: Cannot invoke "whitehole.smg.Bcsv$Entry.getInt(String, int)" because "this.curScenario" is null
    at whitehole.editor.GalaxyEditorForm.getScenarioStart(GalaxyEditorForm.java:716)
    at whitehole.editor.GalaxyEditorForm$GalaxyRenderer.init(GalaxyEditorForm.java:3458)
    at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:644)
    at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:667)
    at com.jogamp.opengl.awt.GLCanvas$10.run(GLCanvas.java:1411)
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1291)
    ... 28 more

And with the BAT file command:

Loading "IslandFleetGalaxy"
Loading "BarrelColonyZone"
Loading "LargeActionPlanetBZone"
Loading "SorajimaBossZone"
Loading "DrumActionPlanetZone"
Loading "EasySmallPlanetZone"
Loading "HoleSphere3Zone"
Loading "CylinderPlanetZone"
Loading "EarthenPipeRoomEZone"
Loading "PetitPorterAZone"
Loading "ManekuriAZone"
Exception in thread "AWT-EventQueue-0" com.jogamp.opengl.GLException: Caught NullPointerException: Cannot invoke "whitehole.smg.Bcsv$Entry.getInt(String, int)" because "this.curScenario" is null on thread AWT-EventQueue-0
    at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327)
    at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
    at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1442)
    at com.jogamp.opengl.Threading.invoke(Threading.java:223)
    at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:503)
    at com.jogamp.opengl.awt.GLCanvas.paint(GLCanvas.java:557)
    at java.desktop/sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
    at java.desktop/sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:66)
    at java.desktop/sun.awt.RepaintArea.paint(RepaintArea.java:240)
    at java.desktop/sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:555)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5062)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.NullPointerException: Cannot invoke "whitehole.smg.Bcsv$Entry.getInt(String, int)" because "this.curScenario" is null
    at whitehole.editor.GalaxyEditorForm.getScenarioStart(GalaxyEditorForm.java:716)
    at whitehole.editor.GalaxyEditorForm$GalaxyRenderer.init(GalaxyEditorForm.java:3458)
    at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:644)
    at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:667)
    at com.jogamp.opengl.awt.GLCanvas$10.run(GLCanvas.java:1411)
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1291)
    ... 28 more

What could be the issue?

btw, check this: https://github.com/SMGCommunity/Whitehole-Neo/blob/8f07feccf3e5bbfd06e628a1851741a75802386b/src/whitehole/editor/GalaxyEditorForm.java#L868