Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for earlier versions of the BCH formats #51

Open
RhythmThief2012 opened this issue Nov 18, 2023 · 2 comments
Open

Support for earlier versions of the BCH formats #51

RhythmThief2012 opened this issue Nov 18, 2023 · 2 comments

Comments

@RhythmThief2012
Copy link

Hi! While attempting to document every model used in Rhythm Thief and the Emperor's Treasure, I came across some files that were unable to be opened. These files do not open in SPICA, Ohana 3DS, or Ohana Rebirth. I was wondering if support would be able to be added. I've attached a link to all the files. The file types in the ZIP are: BCMDL, BCSKLA, BCCAM, BCENV, BCMATA, BCLGT, CRES.
https://drive.google.com/file/d/1OOc51kGKuXCZb_oJnkU_0990ZtN34ha1/view

@RhythmThief2012
Copy link
Author

Just in case the file is inaccessible, I've uploaded a copy here. Hope this helps!
Leftover Debug Files.zip

@RhythmThief2012
Copy link
Author

RhythmThief2012 commented Jun 7, 2024

Here's the errors generated for each file type:

BCMDL:

Object of type 'SPICA.Formats.CtrGfx.Texture.GfxTextureImage' cannot be converted to type 'SPICA.Formats.CtrGfx.Model.GfxModel'.
at System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo culture, Boolean needsSpecialCast)
at System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo culture, BindingFlags invokeAttr)
at System.Reflection.RtFieldInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture)
at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 276
at SPICA.Serialization.BinaryDeserializer.ReadValue(Type Type, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 95
at SPICA.Serialization.BinaryDeserializer.DeserializeT in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 33
at SPICA.Formats.CtrGfx.GfxDictionary1.SPICA.Serialization.ICustomSerialization.Deserialize(BinaryDeserializer Deserializer) in C:\projects\ctr-studio\SPICA\SPICA\Formats\CtrGfx\GfxDictionary.cs:line 48
at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 287
at SPICA.Serialization.BinaryDeserializer.ReadValue(Type Type, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 95
at SPICA.Serialization.BinaryDeserializer.ReadReference(Type Type, FieldInfo Info) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 336
at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 273
at SPICA.Serialization.BinaryDeserializer.ReadValue(Type Type, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 95
at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 262
at SPICA.Serialization.BinaryDeserializer.ReadValue(Type Type, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 95
at SPICA.Serialization.BinaryDeserializer.DeserializeT in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 33
at SPICA.Formats.CtrGfx.Gfx.Open(Stream Input) in C:\projects\ctr-studio\SPICA\SPICA\Formats\CtrGfx\Gfx.cs:line 100
at CtrLibrary.Bcres.BCRES.Load(Stream stream) in C:\projects\ctr-studio\Plugins\CtrLibrary\Files\BCRES\BCRES.cs:line 125
at Toolbox.Core.IO.STFileLoader.SetFileFormat(IFileFormat fileFormat, String FileName, Stream stream, Settings settings) in C:\projects\ctr-studio\Toolbox.Core\src\IO\STFileLoader.cs:line 170
at Toolbox.Core.IO.STFileLoader.OpenFileFormat(String FileName, Settings settings) in C:\projects\ctr-studio\Toolbox.Core\src\IO\STFileLoader.cs:line 85
at MapStudio.UI.Workspace.LoadFileFormat(String filePath, Boolean isProject) in C:\projects\ctr-studio\MapStudio.UI\src\Workspace\Workspace.cs:line 349

BCLGT: `Object of type 'SPICA.Formats.CtrGfx.Light.GfxFragmentLight' cannot be converted to type 'SPICA.Formats.CtrGfx.Camera.GfxCamera'. at System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo culture, Boolean needsSpecialCast) at System.Reflection.RtFieldInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture) at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 276 at SPICA.Serialization.BinaryDeserializer.Deserialize[T]() in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 33 at SPICA.Formats.CtrGfx.GfxDictionary1.SPICA.Serialization.ICustomSerialization.Deserialize(BinaryDeserializer Deserializer) in C:\projects\ctr-studio\SPICA\SPICA\Formats\CtrGfx\GfxDictionary.cs:line 48 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 287 at SPICA.Serialization.BinaryDeserializer.ReadReference(Type Type, FieldInfo Info) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 344 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 273 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 262 at SPICA.Serialization.BinaryDeserializer.Deserialize[T]() in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 33 at SPICA.Formats.CtrGfx.Gfx.Open(Stream Input) in C:\projects\ctr-studio\SPICA\SPICA\Formats\CtrGfx\Gfx.cs:line 100 at CtrLibrary.Bcres.BCRES.Load(Stream stream) in C:\projects\ctr-studio\Plugins\CtrLibrary\Files\BCRES\BCRES.cs:line 125 at Toolbox.Core.IO.STFileLoader.SetFileFormat(IFileFormat fileFormat, String FileName, Stream stream, Settings settings) in C:\projects\ctr-studio\Toolbox.Core\src\IO\STFileLoader.cs:line 170 at Toolbox.Core.IO.STFileLoader.OpenFileFormat(String FileName, Settings settings) in C:\projects\ctr-studio\Toolbox.Core\src\IO\STFileLoader.cs:line 85 at MapStudio.UI.Workspace.LoadFileFormat(String filePath, Boolean isProject) in C:\projects\ctr-studio\MapStudio.UI\src\Workspace\Workspace.cs:line 349`
BVENV: `Object of type 'SPICA.Formats.CtrGfx.Light.GfxFragmentLight' cannot be converted to type 'SPICA.Formats.CtrGfx.Camera.GfxCamera'. at System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo culture, Boolean needsSpecialCast) at System.Reflection.RtFieldInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture) at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 276 at SPICA.Serialization.BinaryDeserializer.Deserialize[T]() in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 33 at SPICA.Formats.CtrGfx.GfxDictionary1.SPICA.Serialization.ICustomSerialization.Deserialize(BinaryDeserializer Deserializer) in C:\projects\ctr-studio\SPICA\SPICA\Formats\CtrGfx\GfxDictionary.cs:line 48 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 287 at SPICA.Serialization.BinaryDeserializer.ReadReference(Type Type, FieldInfo Info) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 344 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 273 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 262 at SPICA.Serialization.BinaryDeserializer.Deserialize[T]() in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 33 at SPICA.Formats.CtrGfx.Gfx.Open(Stream Input) in C:\projects\ctr-studio\SPICA\SPICA\Formats\CtrGfx\Gfx.cs:line 100 at CtrLibrary.Bcres.BCRES.Load(Stream stream) in C:\projects\ctr-studio\Plugins\CtrLibrary\Files\BCRES\BCRES.cs:line 125 at Toolbox.Core.IO.STFileLoader.SetFileFormat(IFileFormat fileFormat, String FileName, Stream stream, Settings settings) in C:\projects\ctr-studio\Toolbox.Core\src\IO\STFileLoader.cs:line 170 at Toolbox.Core.IO.STFileLoader.OpenFileFormat(String FileName, Settings settings) in C:\projects\ctr-studio\Toolbox.Core\src\IO\STFileLoader.cs:line 85 at MapStudio.UI.Workspace.LoadFileFormat(String filePath, Boolean isProject) in C:\projects\ctr-studio\MapStudio.UI\src\Workspace\Workspace.cs:line 349`
BCSKLA: `Unable to read beyond the end of the stream. at System.IO.BinaryReader.InternalRead(Int32 numBytes) at System.IO.BinaryReader.ReadUInt32() at SPICA.Formats.CtrGfx.GfxDictionary1.SPICA.Serialization.ICustomSerialization.Deserialize(BinaryDeserializer Deserializer) in C:\projects\ctr-studio\SPICA\SPICA\Formats\CtrGfx\GfxDictionary.cs:line 40 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 287 at SPICA.Serialization.BinaryDeserializer.ReadReference(Type Type, FieldInfo Info) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 344 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 273 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 262 at SPICA.Serialization.BinaryDeserializer.ReadReference(Type Type, FieldInfo Info) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 344 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 273 at SPICA.Serialization.BinaryDeserializer.Deserialize[T]() in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 33 at SPICA.Formats.CtrGfx.GfxDictionary1.SPICA.Serialization.ICustomSerialization.Deserialize(BinaryDeserializer Deserializer) in C:\projects\ctr-studio\SPICA\SPICA\Formats\CtrGfx\GfxDictionary.cs:line 48 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 287 at SPICA.Serialization.BinaryDeserializer.ReadReference(Type Type, FieldInfo Info) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 344 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 273 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 262 at SPICA.Serialization.BinaryDeserializer.Deserialize[T]() in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 33 at SPICA.Formats.CtrGfx.Gfx.Open(Stream Input) in C:\projects\ctr-studio\SPICA\SPICA\Formats\CtrGfx\Gfx.cs:line 100 at CtrLibrary.Bcres.BCRES.Load(Stream stream) in C:\projects\ctr-studio\Plugins\CtrLibrary\Files\BCRES\BCRES.cs:line 125 at Toolbox.Core.IO.STFileLoader.SetFileFormat(IFileFormat fileFormat, String FileName, Stream stream, Settings settings) in C:\projects\ctr-studio\Toolbox.Core\src\IO\STFileLoader.cs:line 170 at Toolbox.Core.IO.STFileLoader.OpenFileFormat(String FileName, Settings settings) in C:\projects\ctr-studio\Toolbox.Core\src\IO\STFileLoader.cs:line 85 at MapStudio.UI.Workspace.LoadFileFormat(String filePath, Boolean isProject) in C:\projects\ctr-studio\MapStudio.UI\src\Workspace\Workspace.cs:line 349`
BCMATA: `Object of type 'SPICA.Formats.CtrGfx.GfxDictionary1[SPICA.Formats.CtrGfx.Animation.GfxAnimationElement]' cannot be converted to type 'SPICA.Formats.CtrGfx.Animation.GfxAnimation'. at System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo culture, Boolean needsSpecialCast) at System.Reflection.RtFieldInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture) at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 276 at SPICA.Serialization.BinaryDeserializer.Deserialize[T]() in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 33 at SPICA.Formats.CtrGfx.GfxDictionary1.SPICA.Serialization.ICustomSerialization.Deserialize(BinaryDeserializer Deserializer) in C:\projects\ctr-studio\SPICA\SPICA\Formats\CtrGfx\GfxDictionary.cs:line 48 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 287 at SPICA.Serialization.BinaryDeserializer.ReadReference(Type Type, FieldInfo Info) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 344 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 273 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 262 at SPICA.Serialization.BinaryDeserializer.Deserialize[T]() in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 33 at SPICA.Formats.CtrGfx.Gfx.Open(Stream Input) in C:\projects\ctr-studio\SPICA\SPICA\Formats\CtrGfx\Gfx.cs:line 100 at CtrLibrary.Bcres.BCRES.Load(Stream stream) in C:\projects\ctr-studio\Plugins\CtrLibrary\Files\BCRES\BCRES.cs:line 125 at Toolbox.Core.IO.STFileLoader.SetFileFormat(IFileFormat fileFormat, String FileName, Stream stream, Settings settings) in C:\projects\ctr-studio\Toolbox.Core\src\IO\STFileLoader.cs:line 170 at Toolbox.Core.IO.STFileLoader.OpenFileFormat(String FileName, Settings settings) in C:\projects\ctr-studio\Toolbox.Core\src\IO\STFileLoader.cs:line 85 at MapStudio.UI.Workspace.LoadFileFormat(String filePath, Boolean isProject) in C:\projects\ctr-studio\MapStudio.UI\src\Workspace\Workspace.cs:line 349`
BCCAM: `Object of type 'SPICA.Formats.CtrGfx.Camera.GfxCamera' cannot be converted to type 'SPICA.Formats.CtrGfx.Shader.GfxShader'. at System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo culture, Boolean needsSpecialCast) at System.Reflection.RtFieldInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture) at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 276 at SPICA.Serialization.BinaryDeserializer.Deserialize[T]() in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 33 at SPICA.Formats.CtrGfx.GfxDictionary1.SPICA.Serialization.ICustomSerialization.Deserialize(BinaryDeserializer Deserializer) in C:\projects\ctr-studio\SPICA\SPICA\Formats\CtrGfx\GfxDictionary.cs:line 48 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 287 at SPICA.Serialization.BinaryDeserializer.ReadReference(Type Type, FieldInfo Info) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 344 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 273 at SPICA.Serialization.BinaryDeserializer.ReadObject(Type ObjectType, Boolean IsRef) in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 262 at SPICA.Serialization.BinaryDeserializer.Deserialize[T]() in C:\projects\ctr-studio\SPICA\SPICA\Serialization\BinaryDeserializer.cs:line 33 at SPICA.Formats.CtrGfx.Gfx.Open(Stream Input) in C:\projects\ctr-studio\SPICA\SPICA\Formats\CtrGfx\Gfx.cs:line 100 at CtrLibrary.Bcres.BCRES.Load(Stream stream) in C:\projects\ctr-studio\Plugins\CtrLibrary\Files\BCRES\BCRES.cs:line 125 at Toolbox.Core.IO.STFileLoader.SetFileFormat(IFileFormat fileFormat, String FileName, Stream stream, Settings settings) in C:\projects\ctr-studio\Toolbox.Core\src\IO\STFileLoader.cs:line 170 at Toolbox.Core.IO.STFileLoader.OpenFileFormat(String FileName, Settings settings) in C:\projects\ctr-studio\Toolbox.Core\src\IO\STFileLoader.cs:line 85 at MapStudio.UI.Workspace.LoadFileFormat(String filePath, Boolean isProject) in C:\projects\ctr-studio\MapStudio.UI\src\Workspace\Workspace.cs:line 349`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant