Sammi-Husky / Sm4sh-Tools

Miscellaneous tools for dealing with smash 4 files.
40 stars 26 forks source link

FITD Exceptions #63

Closed nbness2 closed 7 years ago

nbness2 commented 7 years ago

When decompiling with FITD, I get OutOfRange for 4 fighters and KeyNotFound for D3

The output is the exact same for each fighter on each decompile

Bayonetta:

Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   at SALT.Scripting.AnimCMD.ACMDScript.DeserializeLoop(Int32 startIndex, List`1& lines)
   at SALT.Scripting.AnimCMD.ACMDScript.DeserializeCommand(Int32 index, UInt32 ident, List`1& lines)
   at SALT.Scripting.AnimCMD.ACMDScript.Deserialize()
   at FITD.Program.write_movedef(ACMDScript game, ACMDScript effect, ACMDScript sound, ACMDScript expression, String animname, Boolean unlisted, String outdir)
   at FITD.Program.decompile_acmd(String mtable, String motionFolder, String output)
   at FITD.Program.Main(String[] args)

D3:

Unhandled Exception: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at SALT.Scripting.AnimCMD.ACMDCommand.get_ParamSpecifiers()
   at SALT.Scripting.AnimCMD.ACMDFile.ParseEventList(UInt32 cRC, Int32 offset)
   at SALT.Scripting.AnimCMD.ACMDFile..ctor(DataSource source)
   at FITD.Program.decompile_acmd(String mtable, String motionFolder, String output)
   at FITD.Program.Main(String[] args)

G&W

Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   at SALT.Scripting.AnimCMD.ACMDScript.DeserializeLoop(Int32 startIndex, List`1& lines)
   at SALT.Scripting.AnimCMD.ACMDScript.DeserializeCommand(Int32 index, UInt32 ident, List`1& lines)
   at SALT.Scripting.AnimCMD.ACMDScript.Deserialize()
   at FITD.Program.write_movedef(ACMDScript game, ACMDScript effect, ACMDScript sound, ACMDScript expression, String animname, Boolean unlisted, String outdir)
   at FITD.Program.decompile_acmd(String mtable, String motionFolder, String output)
   at FITD.Program.Main(String[] args)

Palutena

Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   at SALT.Scripting.AnimCMD.ACMDScript.DeserializeLoop(Int32 startIndex, List`1& lines)
   at SALT.Scripting.AnimCMD.ACMDScript.DeserializeCommand(Int32 index, UInt32 ident, List`1& lines)
   at SALT.Scripting.AnimCMD.ACMDScript.Deserialize()
   at FITD.Program.write_movedef(ACMDScript game, ACMDScript effect, ACMDScript sound, ACMDScript expression, String animname, Boolean unlisted, String outdir)
   at FITD.Program.decompile_acmd(String mtable, String motionFolder, String output)
   at FITD.Program.Main(String[] args)

Robin(reflet)

Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   at SALT.Scripting.AnimCMD.ACMDScript.DeserializeConditional(Int32 startIndex, List`1& lines)
   at SALT.Scripting.AnimCMD.ACMDScript.DeserializeCommand(Int32 index, UInt32 ident, List`1& lines)
   at SALT.Scripting.AnimCMD.ACMDScript.DeserializeConditional(Int32 startIndex, List`1& lines)
   at SALT.Scripting.AnimCMD.ACMDScript.DeserializeCommand(Int32 index, UInt32 ident, List`1& lines)
   at SALT.Scripting.AnimCMD.ACMDScript.DeserializeLoop(Int32 startIndex, List`1& lines)
   at SALT.Scripting.AnimCMD.ACMDScript.DeserializeCommand(Int32 index, UInt32 ident, List`1& lines)
   at SALT.Scripting.AnimCMD.ACMDScript.Deserialize()
   at FITD.Program.write_movedef(ACMDScript game, ACMDScript effect, ACMDScript sound, ACMDScript expression, String animname, Boolean unlisted, String outdir)
   at FITD.Program.decompile_acmd(String mtable, String motionFolder, String output)
   at FITD.Program.Main(String[] args)
Sammi-Husky commented 7 years ago

Was this on the very latest commit build? Changes i made not too long ago fixed DDD decompiling for me and other testers so maybe double check with a redownload of the latest build?

jugeeya commented 7 years ago

These characters are actually fixed for me (I did have this exact problem on a much older version of FITX) but I still have this issue with the following characters: Bowser Jr., Robin, and Sonic. I am on the very latest commit (bda1f49). I have included the pictures to display the moves that are likely causing the problems. (the ones in parentheses are because I don't know if it successfully decompiled the move and breaks on the next one, or breaks on the one it says it's decompiling)

Bowser Jr.: SpecialSSpin.acm (or SpecialSSpin_C2.acm) image Robin: SpecialLwStart.acm (or SpecialLwStart_C2.acm) image Sonic: 0x6AD985ED.acm (or 0x06679C9C.acm) image

Sammi-Husky commented 7 years ago

This new information is confirmed, and i do know what is causing the issue. It's gonna take a bit of time before i can fix it due to my schedule, but hopefully within a week or so.

Sammi-Husky commented 7 years ago

should be fixed in a48e35e, though recompilation of Bowser Jr. is not. I'll be opening a separate issue for that however.