ROM Hack [Release] Sm4shCommand

  • Thread starter Thread starter Sammi Husky
  • Start date Start date
  • Views Views 276,851
  • Replies Replies 1,560
  • Likes Likes 25
SM4SHCommand is a moveset code editor. What your seeing is the moveset programming code. You can reprogram the code to do whatever you want it to. Its the same as Brawl was in that regard. However, the documentation is still in it's infancy. That and the tooling isn't complete either, especially in regards to DTLS.. I've got fixes on the way for these things, and DT rebuilding is like 90% finished.

As a bit of a progress report, I've already fixed most of these issues people are reporting, i'm just making sure the next release will be as stable as i can get it. The features to be added after this next release are going to be major, such as param editing and (hopefully) MSC script editing. That's why setting up a stable infrastructure now is so important.
And don't forget multi-language extraction
 
I have a question I changed some frames in the data of Samus and built the romfs and launched in Hans perfectly, but when I press A to enter in the character select appear a black screen and my game freeze , why happen this?
 
I have a question I changed some frames in the data of Samus and built the romfs and launched in Hans perfectly, but when I press A to enter in the character select appear a black screen and my game freeze , why happen this?
Hans cant load certain models so it will freeze at the CSS just build a CIA or use SaltySD
 
  • Like
Reactions: Tenwarrior
So the loading times should be normal now?
It appears that saltysd was updated again, so I believe we no longer need to run cachegen.py anymore.
Nope, it just automatically scans and patches a code.bin you give it when you run the Makefile. Cachegen.py is still needed for now.
 
Quick question, whenever I try to use this program and open up a fighter folder, it spits out an "Object Reference not set to an instance of an object" Error. Anything I may be missing? I copied a the entire fighter folder to /animcmd/fighter so if that's wrong or something. Any help would be appreciated.
 
I have a few questions. First of all, how would you make the grab's endlag faster given this code :

Throw_Specifier(Unknown=0x0, Unknown=0x0, Unknown=11, Unknown=0x5A, Unknown=0xAA, Unknown=0x0, Unknown=0x0, Unknown=0x0, Unknown=0x0, Unknown=1, Unknown=1, Unknown=0x0, Unknown=0x2, Unknown=0x3, Unknown=0x1, Unknown=0x1, Unknown=0x8)
Throw_Specifier(Unknown=0x1, Unknown=0x0, Unknown=3, Unknown=0x169, Unknown=0x64, Unknown=0x0, Unknown=0x28, Unknown=0x0, Unknown=0x0, Unknown=1, Unknown=1, Unknown=0x0, Unknown=0x2, Unknown=0x3, Unknown=0x1, Unknown=0x1, Unknown=0x8)
Asynchronous_Timer(Frames=9)
Throw_Applier(Unknown=0x0, Unknown=0x1A, Unknown=0x11000005, Unknown=0x11000006, Unknown=0x11000007)
Script_End()​

Secondly, a lot of moves create exceptions so I can't change them. I then downloaded the source code from Sammi's github and ran the project, but when I try to open a game.bin or a fighter folder, I get the error "not a ACMD file". How do I fix this?

And lastly, is there a place I can find how to edit the moves to get some effects or it's just trial and errors? changing damage and knockback/angle etc.. is pretty straigtforward, but other than that I have no idea how to code this.
 
Last edited by HeartBound,
I have a few questions. First of all, how would you make the grab's endlag faster given this code :

Throw_Specifier(Unknown=0x0, Unknown=0x0, Unknown=11, Unknown=0x5A, Unknown=0xAA, Unknown=0x0, Unknown=0x0, Unknown=0x0, Unknown=0x0, Unknown=1, Unknown=1, Unknown=0x0, Unknown=0x2, Unknown=0x3, Unknown=0x1, Unknown=0x1, Unknown=0x8)
Throw_Specifier(Unknown=0x1, Unknown=0x0, Unknown=3, Unknown=0x169, Unknown=0x64, Unknown=0x0, Unknown=0x28, Unknown=0x0, Unknown=0x0, Unknown=1, Unknown=1, Unknown=0x0, Unknown=0x2, Unknown=0x3, Unknown=0x1, Unknown=0x1, Unknown=0x8)
Asynchronous_Timer(Frames=9)
Throw_Applier(Unknown=0x0, Unknown=0x1A, Unknown=0x11000005, Unknown=0x11000006, Unknown=0x11000007)
Script_End()​

Secondly, a lot of moves create exceptions so I can't change them. I then downloaded the source code from Sammi's github and ran the project, but when I try to open a game.bin or a fighter folder, I get the error "not a ACMD file". How do I fix this?

And lastly, is there a place I can find how to edit the moves to get some effects or it's just trial and errors? changing damage and knockback/angle etc.. is pretty straigtforward, but other than that I have no idea how to code this.
For reducing endlag, throwing in a Frame_Speed_Multiplier of some number less than 1 will do the trick. For example, Frame_Speed_Multiplier(0.5) will make the animation go twice as fast.
If you are going to File>Open>Fighter and opening data/animcmd/fighter/charactername/main/ then I don't know what may be causing your errors. If not, then try doing that.
There is a lot of trial and error, but there are a couple of sites that may help you understand what you're doing. The ones I use are this, this and this.
 
Your experiencing known issues with the current master branch. I made the mistake of developing in the master branch a while ago and decided i wasnt going to back track. From the next version onwards, master will be stable. For now, the fix i implemented to stop an infinite loop and memory leak from trying to open a param file is stopping the app from opening any ACMD files on the 3ds. Here's a small changelist

  • Allow parsing all fighter animations by selecting the fighter's "motion" folder (the folder containing the other folders named "body" and such), rather than selecting the main.pac/bch.
  • Restructured the tree view for better usage
  • Renamed Frame_Speed_Multiplier to Set_Frame_Duration to better indicate usage
  • Current tab handle is colored green to easily distinguish from non selected tabs
  • Fix switching / opening tabs causing crashes in release builds
  • Fix Parse Animations throwing errors on certain characters
  • Fix rebuilding ACMD crashing on taunt, crouch, etc
  • Merge new custom codebox branch
  • Add IASA / Allow_Interupt command
  • Add TRUE/FALSE/COMPARE/IS_BIT_SET commands
  • Autocalc TRUE/FALSE/GOTO commands.
  • Autoformat on entering closing bracket '}'.
  • Remove indent level and do indenting based on enclosing brackets.
  • fix save as
  • fix parsing animations in fighter mode
  • fix save in fighter mode
  • add "mode" combo box to file menu to save as either big endian or little endian for wiiu/3ds.
  • display subaction index next to CRC in treeview
  • return to displaying empty event lists in fighter mode to preserve subaction indexes.
  • Update with new 1.1.4 commands
  • parsing animations now preserves subaction index
  • Allow adding commands to empty lists
  • fix infinite loop memory leak when someone mistakenly opens anything other than ACMD

I'm probably missing a few things but i'm fairly certain that's most of the current finished changes :P
 
  • Like
Reactions: I pwned U!
For reducing endlag, throwing in a Frame_Speed_Multiplier of some number less than 1 will do the trick. For example, Frame_Speed_Multiplier(0.5) will make the animation go twice as fast.
If you are going to File>Open>Fighter and opening data/animcmd/fighter/charactername/main/ then I don't know what may be causing your errors. If not, then try doing that.
There is a lot of trial and error, but there are a couple of sites that may help you understand what you're doing. The ones I use are this, this and this.
Thanks for the info about frame speed multiplier! I read it on the website you mentionned but wasn't sur of the syntax.

Your experiencing known issues with the current master branch. I made the mistake of developing in the master branch a while ago and decided i wasnt going to back track. From the next version onwards, master will be stable. For now, the fix i implemented to stop an infinite loop and memory leak from trying to open a param file is stopping the app from opening any ACMD files on the 3ds. Here's a small changelist

  • Allow parsing all fighter animations by selecting the fighter's "motion" folder (the folder containing the other folders named "body" and such), rather than selecting the main.pac/bch.
  • Restructured the tree view for better usage
  • Renamed Frame_Speed_Multiplier to Set_Frame_Duration to better indicate usage
  • Current tab handle is colored green to easily distinguish from non selected tabs
  • Fix switching / opening tabs causing crashes in release builds
  • Fix Parse Animations throwing errors on certain characters
  • Fix rebuilding ACMD crashing on taunt, crouch, etc
  • Merge new custom codebox branch
  • Add IASA / Allow_Interupt command
  • Add TRUE/FALSE/COMPARE/IS_BIT_SET commands
  • Autocalc TRUE/FALSE/GOTO commands.
  • Autoformat on entering closing bracket '}'.
  • Remove indent level and do indenting based on enclosing brackets.
  • fix save as
  • fix parsing animations in fighter mode
  • fix save in fighter mode
  • add "mode" combo box to file menu to save as either big endian or little endian for wiiu/3ds.
  • display subaction index next to CRC in treeview
  • return to displaying empty event lists in fighter mode to preserve subaction indexes.
  • Update with new 1.1.4 commands
  • parsing animations now preserves subaction index
  • Allow adding commands to empty lists
  • fix infinite loop memory leak when someone mistakenly opens anything other than ACMD

I'm probably missing a few things but i'm fairly certain that's most of the current finished changes :P

Ah okay thanks, by commenting this code :

/* if (new String((sbyte*)source.Address) != "ACMD")
{
MessageBox.Show("Not an ACMD file:\n" + Filepath);
return null;
}*/
It works now!
 
So I changed ryu so his Hadoken would be his final smash Hadoken instead but I have one question? Is it natural for a edited character to crash when grabbing a character and what name/file starts ryu's second hadoken (the red one) and his final smash (distant/ Hadoken)
 
Hello! I'm interested in getting into the Sm4sh modding scene. Where would I start off? How would I get the game files themselves onto my computer so that I could modify them?
 

Site & Scene News

Popular threads in this forum