UltimateBotWConverter icon indicating copy to clipboard operation
UltimateBotWConverter copied to clipboard

BfresPlatformConverter array lower bound issue during conversion

Open jedinjapan opened this issue 2 years ago • 0 comments

Attempting to convert Linkle 3.0 mod produces the following result. Mod files work in WiiU format and verified as non-corrupt. Assuming the following may be edge conditions of the process. Re-attempted in single-threaded mode, no change.

2022-12-13 01:27:18,422 WARNING root content\Model\Armor_021.Tex1.sbfres could not be converted 2022-12-13 01:27:54,726 WARNING root content\Model\Armor_049.Tex1.sbfres could not be converted 2022-12-13 01:28:12,243 WARNING root content\Model\Armor_141.Tex1.sbfres could not be converted 2022-12-13 01:28:19,783 WARNING root content\Model\Armor_171.Tex1.sbfres could not be converted 2022-12-13 01:28:59,948 WARNING root content\Model\Armor_Default.Tex1.sbfres could not be converted 2022-12-13 01:28:59,953 WARNING root content\Model\Link.Tex1.sbfres could not be converted

Unhandled Exception: System.ArgumentOutOfRangeException: Number was less than the array's lower bound in the first dimension.
Parameter name: srcIndex
   at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
   at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length)
   at Syroot.NintenTools.Bfres.Swizzling.GX2.Decode(GX2Surface tex, Int32 ArrayIndex, Int32 MipIndex, String DebugTextureName)
   at Syroot.NintenTools.Bfres.WiiU.Texture.GetDeswizzledData(Int32 arrayLevel, Int32 mipLevel)
   at Syroot.NintenTools.Bfres.Switch.SwitchTexture.FromWiiU(Texture textureU)
   at Syroot.NintenTools.Bfres.PlatformConverters.TextureConverter.CreateBNTX(List`1 textureList)
   at Syroot.NintenTools.Bfres.ResFile.ConvertTexturesToBntx(List`1 textures)
   at Syroot.NintenTools.Bfres.ResFile.ChangePlatform(Boolean isSwitch, Int32 alignment, Byte versionA, Byte versionB, Byte versionC, Byte versionD, ConverterHandle handle)
   at BfresPlatformConverter.Program.Main(String[] args)

jedinjapan avatar Dec 13 '22 06:12 jedinjapan