Certain Limbo Boss Maps Give System.AggregateException
When attempting to load Limbo Phase 2 maps, an error appears. (Map ID 410009300, 410009400, and 410009500)
[2024-07-11 12:41:28][Error][MapRender] Coroutine Error: System.AggregateException: One or more errors occurred. ---> SharpDX.SharpDXException: HRESULT: [0x80070057], Module: [General], ApiCode: [E_INVALIDARG/Invalid Arguments], Message: The parameter is incorrect.
at SharpDX.Result.CheckError()
at SharpDX.Direct3D11.Device.CreateTexture2D(Texture2DDescription& descRef, DataBox[] initialDataRef, Texture2D texture2DOut)
at Microsoft.Xna.Framework.Graphics.Texture2D.CreateTexture()
at Microsoft.Xna.Framework.Graphics.Texture2D.PlatformSetData[T](Int32 level, Int32 arraySlice, Rectangle rect, T[] data, Int32 startIndex, Int32 elementCount)
at WzComparerR2.Rendering.MonogameUtils.ToTexture(Bitmap bitmap, Texture2D texture, Point origin)
at WzComparerR2.Rendering.WzLibExtension.ToTexture(Wz_Png png, Texture2D texture, Point origin)
at WzComparerR2.Rendering.WzLibExtension.ToTexture(Wz_Png png, GraphicsDevice graphicsDevice)
at WzComparerR2.MapRender.ResourceLoader.InnerLoad(Wz_Node node, Type assetType)
at WzComparerR2.MapRender.ResourceLoader.Load[T](Wz_Node node, String assetName)
at WzComparerR2.MapRender.ResourceLoader.Load[T](Wz_Node node)
at WzComparerR2.MapRender.ResourceLoader.SpineTextureLoader.TryLoadTexture(String path, Texture2D& texture)
at WzComparerR2.MapRender.ResourceLoader.SpineTextureLoader.Load(AtlasPage page, String path)
at Spine.Atlas..ctor(TextReader reader, String imagesDir, TextureLoader textureLoader)
at WzComparerR2.Common.SpineLoader.LoadSkeletonV4(SpineDetectionResult detectionResult, TextureLoader textureLoader)
at WzComparerR2.Animation.SpineAnimationDataV4.Create(SpineDetectionResult detectionResult, TextureLoader textureLoader)
at WzComparerR2.MapRender.ResourceLoader.LoadSpineAnimationData(SpineDetectionResult detectionResult)
at WzComparerR2.MapRender.ResourceLoader.InnerLoadAnimationData(Wz_Node node)
at WzComparerR2.MapRender.ResourceLoader.LoadAnimationData(Wz_Node node)
at WzComparerR2.MapRender.MapData.PreloadResource(ResourceLoader resLoader, BackItem back)
at WzComparerR2.MapRender.MapData.<>c__DisplayClass84_0.<PreloadResource>b__0(SceneNode node)
at WzComparerR2.MapRender.MapData.<>c__DisplayClass84_0.<PreloadResource>b__0(SceneNode node)
at WzComparerR2.MapRender.MapData.PreloadResource(ResourceLoader resLoader)
at WzComparerR2.MapRender.FrmMapRender2.<LoadMap>d__74.MoveNext()
--- End of inner exception stack trace ---
---> (Inner Exception #0) SharpDX.SharpDXException: HRESULT: [0x80070057], Module: [General], ApiCode: [E_INVALIDARG/Invalid Arguments], Message: The parameter is incorrect.
at SharpDX.Result.CheckError()
at SharpDX.Direct3D11.Device.CreateTexture2D(Texture2DDescription& descRef, DataBox[] initialDataRef, Texture2D texture2DOut)
at Microsoft.Xna.Framework.Graphics.Texture2D.CreateTexture()
at Microsoft.Xna.Framework.Graphics.Texture2D.PlatformSetData[T](Int32 level, Int32 arraySlice, Rectangle rect, T[] data, Int32 startIndex, Int32 elementCount)
at WzComparerR2.Rendering.MonogameUtils.ToTexture(Bitmap bitmap, Texture2D texture, Point origin)
at WzComparerR2.Rendering.WzLibExtension.ToTexture(Wz_Png png, Texture2D texture, Point origin)
at WzComparerR2.Rendering.WzLibExtension.ToTexture(Wz_Png png, GraphicsDevice graphicsDevice)
at WzComparerR2.MapRender.ResourceLoader.InnerLoad(Wz_Node node, Type assetType)
at WzComparerR2.MapRender.ResourceLoader.Load[T](Wz_Node node, String assetName)
at WzComparerR2.MapRender.ResourceLoader.Load[T](Wz_Node node)
at WzComparerR2.MapRender.ResourceLoader.SpineTextureLoader.TryLoadTexture(String path, Texture2D& texture)
at WzComparerR2.MapRender.ResourceLoader.SpineTextureLoader.Load(AtlasPage page, String path)
at Spine.Atlas..ctor(TextReader reader, String imagesDir, TextureLoader textureLoader)
at WzComparerR2.Common.SpineLoader.LoadSkeletonV4(SpineDetectionResult detectionResult, TextureLoader textureLoader)
at WzComparerR2.Animation.SpineAnimationDataV4.Create(SpineDetectionResult detectionResult, TextureLoader textureLoader)
at WzComparerR2.MapRender.ResourceLoader.LoadSpineAnimationData(SpineDetectionResult detectionResult)
at WzComparerR2.MapRender.ResourceLoader.InnerLoadAnimationData(Wz_Node node)
at WzComparerR2.MapRender.ResourceLoader.LoadAnimationData(Wz_Node node)
at WzComparerR2.MapRender.MapData.PreloadResource(ResourceLoader resLoader, BackItem back)
at WzComparerR2.MapRender.MapData.<>c__DisplayClass84_0.<PreloadResource>b__0(SceneNode node)
at WzComparerR2.MapRender.MapData.<>c__DisplayClass84_0.<PreloadResource>b__0(SceneNode node)
at WzComparerR2.MapRender.MapData.PreloadResource(ResourceLoader resLoader)
at WzComparerR2.MapRender.FrmMapRender2.<LoadMap>d__74.MoveNext()<---
It seems like another Spine issue, since the background objects don't load at all:
Not as high of a priority as the .ms file issue though.
known issue, we also find some textures missing from the new added spine skeleton. Curious how the game itself handles the resource missing error.
So far it seems the game doesn't have any obvious issues. Phase 2 (all 3 maps above) appear from 6:20:09 - 6:27:00 in this livestream: https://youtu.be/qnTFMxsJGn8?t=22809
Boss maps from the new GMS v255 exclusive Ride or Die event also experience similar problems.
Map IDs:
867171000/050/100: Zakum
867171150/200/250: Papulatus
867171300/350/400: Vellum
867171450/500/550: Horntail
867171600/650/700: Darknell
867171750/800/850: Slime
[2024-11-21 20:47:05][Error][MapRender] Coroutine Error: System.AggregateException: One or more errors occurred. ---> SharpDX.SharpDXException: HRESULT: [0x80070057], Module: [General], ApiCode: [E_INVALIDARG/Invalid Arguments], Message: The parameter is incorrect.
at SharpDX.Result.CheckError()
at SharpDX.Direct3D11.Device.CreateTexture2D(Texture2DDescription& descRef, DataBox[] initialDataRef, Texture2D texture2DOut)
at Microsoft.Xna.Framework.Graphics.Texture2D.CreateTexture()
at Microsoft.Xna.Framework.Graphics.Texture2D.PlatformSetData[T](Int32 level, Int32 arraySlice, Rectangle rect, T[] data, Int32 startIndex, Int32 elementCount)
at WzComparerR2.Rendering.WzLibExtension.ToTexture(Wz_Png png, Texture2D texture, Point origin)
at WzComparerR2.Rendering.WzLibExtension.ToTexture(Wz_Png png, GraphicsDevice graphicsDevice)
at WzComparerR2.MapRender.ResourceLoader.InnerLoad(Wz_Node node, Type assetType)
at WzComparerR2.MapRender.ResourceLoader.Load[T](Wz_Node node, String assetName)
at WzComparerR2.MapRender.ResourceLoader.LoadFrame(Wz_Node node)
at WzComparerR2.MapRender.ResourceLoader.InnerLoadAnimationData(Wz_Node node)
at WzComparerR2.MapRender.ResourceLoader.LoadAnimationData(Wz_Node node)
at WzComparerR2.MapRender.MapData.PreloadResource(ResourceLoader resLoader, BackItem back)
at WzComparerR2.MapRender.MapData.<>c__DisplayClass84_0.<PreloadResource>b__0(SceneNode node)
at WzComparerR2.MapRender.MapData.<>c__DisplayClass84_0.<PreloadResource>b__0(SceneNode node)
at WzComparerR2.MapRender.FrmMapRender2.<LoadMap>d__74.MoveNext()
--- End of inner exception stack trace ---
---> (Inner Exception #0) SharpDX.SharpDXException: HRESULT: [0x80070057], Module: [General], ApiCode: [E_INVALIDARG/Invalid Arguments], Message: The parameter is incorrect.
at SharpDX.Result.CheckError()
at SharpDX.Direct3D11.Device.CreateTexture2D(Texture2DDescription& descRef, DataBox[] initialDataRef, Texture2D texture2DOut)
at Microsoft.Xna.Framework.Graphics.Texture2D.CreateTexture()
at Microsoft.Xna.Framework.Graphics.Texture2D.PlatformSetData[T](Int32 level, Int32 arraySlice, Rectangle rect, T[] data, Int32 startIndex, Int32 elementCount)
at WzComparerR2.Rendering.WzLibExtension.ToTexture(Wz_Png png, Texture2D texture, Point origin)
at WzComparerR2.Rendering.WzLibExtension.ToTexture(Wz_Png png, GraphicsDevice graphicsDevice)
at WzComparerR2.MapRender.ResourceLoader.InnerLoad(Wz_Node node, Type assetType)
at WzComparerR2.MapRender.ResourceLoader.Load[T](Wz_Node node, String assetName)
at WzComparerR2.MapRender.ResourceLoader.LoadFrame(Wz_Node node)
at WzComparerR2.MapRender.ResourceLoader.InnerLoadAnimationData(Wz_Node node)
at WzComparerR2.MapRender.ResourceLoader.LoadAnimationData(Wz_Node node)
at WzComparerR2.MapRender.MapData.PreloadResource(ResourceLoader resLoader, BackItem back)
at WzComparerR2.MapRender.MapData.<>c__DisplayClass84_0.<PreloadResource>b__0(SceneNode node)
at WzComparerR2.MapRender.MapData.<>c__DisplayClass84_0.<PreloadResource>b__0(SceneNode node)
at WzComparerR2.MapRender.FrmMapRender2.<LoadMap>d__74.MoveNext()<---
Map\Back\bossLimbo.img\spine\3\02_Passage_01_BgColor.atlas missing 02_Passage_01_BgColor_2.png
Root cause analysis:
- Texture too large (height>6k) and exceeded the DirectX limit.
By default Monogame uses GraphicsProfile.Reach as default profile, which corresponds to DirectX feature level 9.3. In this fix, we explicitly specify
HiDef, which detects the graphics card's capabilities to find the highest feature level (usually 11.0), thus liberating the higher texture size limit. - Spine atlas page missing Create an empty texture to workaround the issue.
The Map border of 410009400 is not correctly applied, which cause the screenshot size is 10000x10000.
@HikariCalyx