ROM Hack [Release] Sm4shCommand

daniel26150

Well-Known Member
Member
Joined
Jan 31, 2008
Messages
222
Trophies
0
XP
306
Country
Mexico
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
 

Tenwarrior

Member
Newcomer
Joined
Nov 26, 2014
Messages
18
Trophies
0
XP
486
Country
United States
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?
 

Red9419

Well-Known Member
Member
Joined
Apr 17, 2014
Messages
526
Trophies
0
XP
795
Country
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

shinyquagsire23

SALT/Sm4sh Leak Guy
Member
Joined
Nov 18, 2012
Messages
1,977
Trophies
2
Age
26
Location
Las Vegas
XP
3,765
Country
United States
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.
 

KnightMario

Well-Known Member
Newcomer
Joined
Mar 25, 2014
Messages
72
Trophies
0
XP
106
Country
United States
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.
 

HeartBound

Well-Known Member
Member
Joined
Feb 11, 2016
Messages
159
Trophies
0
Age
33
XP
105
Country
Canada
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,

Trinitro21

Well-Known Member
Member
Joined
Oct 14, 2015
Messages
133
Trophies
0
Location
Userland
XP
206
Country
United States
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.
 

Sammi Husky

Well-Known Member
OP
Member
Joined
Jul 6, 2014
Messages
312
Trophies
0
Age
29
XP
498
Country
United States
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!

HeartBound

Well-Known Member
Member
Joined
Feb 11, 2016
Messages
159
Trophies
0
Age
33
XP
105
Country
Canada
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!
 

WarioTails358

Well-Known Member
Member
Joined
Oct 2, 2015
Messages
345
Trophies
0
Age
24
XP
168
Country
United States
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)
 

Raxxel

New Member
Newbie
Joined
Feb 21, 2016
Messages
2
Trophies
0
Age
34
XP
47
Country
United States
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

General chit-chat
Help Users
  • No one is chatting at the moment.
    Psionic Roshambo @ Psionic Roshambo: I think Switch 2 will launch about Christmas this year lol