ROM Hack [Release] Sm4shCommand

  • Thread starter Thread starter Sammi Husky
  • Start date Start date
  • Views Views 276,846
  • Replies Replies 1,560
  • Likes Likes 25
Okay, after the latest update I tried everything again and now the extracting and repacking finally works for my european version, but I modifying the game doesn't work. I tried to open Captain Falcon's moveset and parsed the animations, and everything was working fine. Just as a test I opened his forward aerial and modified the knockback a bit, closed it, saved it and then repacked everything. Then I started the game with HANS normally (EUR/DE) and tested if the change worked, but suddenly all of Falcon's moves had no hitbox anymore and his up and down smash froze the game. After that I tried to start the game in USA/EN and all of the moves got their hitboxes back but the knee, with was the only one I changed.
A few things that I noticed were that strangely the patched version had exactly the same file size as the unaltered original file and that patching a data(us_en) folder together with just the data folder didn't seem to change the result in any way.

I would appreciate any help, I have no idea what to do now...
 
I saw this post before and it sadly isn't helping me because I lack most of the basic knowledge about 3DS homebrew.
I suspect, this "secret" cia file is a 3DS program you can install? How do you do that?
Also, another thing I noticed on the Reddit post: "EDIT 3: DOESN'T WORK ON EUR OR JAP. RIP"
Is this false and it does work with european versions?
And one last thing, the post said this tutorial is for 1.1.4. Does it still work on 1.1.5?
 
I saw this post before and it sadly isn't helping me because I lack most of the basic knowledge about 3DS homebrew.
I suspect, this "secret" cia file is a 3DS program you can install? How do you do that?
Also, another thing I noticed on the Reddit post: "EDIT 3: DOESN'T WORK ON EUR OR JAP. RIP"
Is this false and it does work with european versions?
And one last thing, the post said this tutorial is for 1.1.4. Does it still work on 1.1.5?
for 1.1.5 you need to get the cia from another site but I don't know if it works with EU. Can't you just use a USA file? I don't think it matters if your 3ds is hacked
 
I was tired of waiting 10 minutes for a cia to install every time I wanted to switch between saltysd and unhacked smash, and I came up with an idea. Here's my implementation of that idea after about 2 days.
I made a modification of yifan lu's loader replacement that makes saltysd easier to use. Here's what it does:
  • if /saltysd/saltysd.bin is found
    • load that file over the code.bin to run hacked smash
  • else
    • if /saltysd/code.bin is not found
      • dump a code.bin (you can use the dump with the saltysd patcher)
This way you can control whether you play hacked or normal smash by simply renaming a file using a file manager of your choice, shortening the transition between hacked and unhacked smash from around 10 minutes to around 1 minute.
I intended the whole process to only happen when X was pressed so that the button press would determine if hacked smash was loaded, but I couldn't figure out how to get button input. I'm fine with the way it is if button input can't be detected in loader.

Attached is a folder containing the source used and a build of injector.cxi with only that patch. You'll have to add any other patches yourself if you want them.
 

Attachments

Last edited by Trinitro21,
I saw this post before and it sadly isn't helping me because I lack most of the basic knowledge about 3DS homebrew.
I suspect, this "secret" cia file is a 3DS program you can install? How do you do that?
Also, another thing I noticed on the Reddit post: "EDIT 3: DOESN'T WORK ON EUR OR JAP. RIP"
Is this false and it does work with european versions?
And one last thing, the post said this tutorial is for 1.1.4. Does it still work on 1.1.5?
There is no reason for SaltySD to not work on EUR and JAP as far as I know, but I also haven't tested either. I'm curious if @Trinitro21's code.bin loader would help to either prove or disprove this sentiment, because every time I've had someone mention this bug their .cia also didn't repack correctly, so ???
 
I was tired of waiting 10 minutes for a cia to install every time I wanted to switch between saltysd and unhacked smash, and I came up with an idea. Here's my implementation of that idea after about 2 days.
I made a modification of yifan lu's loader replacement that makes saltysd easier to use. Here's what it does:
  • if /saltysd/saltysd.bin is found
    • load that file over the code.bin to run hacked smash
  • else
    • if /saltysd/code.bin is not found
      • dump a code.bin (you can use the dump with the saltysd patcher)
This way you can control whether you play hacked or normal smash by simply renaming a file using a file manager of your choice, shortening the transition between hacked and unhacked smash from around 10 minutes to around 1 minute.
I intended the whole process to only happen when X was pressed so that the button press would determine if hacked smash was loaded, but I couldn't figure out how to get button input. I'm fine with the way it is if button input can't be detected in loader.

Attached is a folder containing the source used and a build of injector.cxi with only that patch. You'll have to add any other patches yourself if you want them.
We just have to build a cia with the build right???
 
Last edited by Ordim3n,
We just have to build a cia with the build right???
You'll have to inject it into your firmware.bin. I can't really help with that; I use mizuki to load my injector.cxi.
There is no reason for SaltySD to not work on EUR and JAP as far as I know, but I also haven't tested either. I'm curious if @Trinitro21's code.bin loader would help to either prove or disprove this sentiment, because every time I've had someone mention this bug their .cia also didn't repack correctly, so ???
That reminds me, I forgot to put the IDs for other regions into the loader. I'll fix that.
 

Attachments

  • Like
Reactions: I pwned U!
Currently testing it; however, I don't think the program and your SaltySD CIA are the only things you'll need; you probably need to do a lot of other repacking in the process. I'm currently trying a set-up that worked when I used the 1.1.4 update and injected custom music into it, but with up-to-date files and .rsf and whatnot, so I'll reply how it goes!

--------------------- MERGED ---------------------------

You'll have to inject it into your firmware.bin.
Wait, you mean the firmware.bin that your CFW comes with?
I've never messed around with that file; are you sure you can't just replace your update's cxi with it?
 
Wait...
Does this CXI replace the existing CXI in the smash update, or does it just modify parts of it?
Or does it modify the CFW itself (which I don't think it does)?
 
Wait, you mean the firmware.bin that your CFW comes with?
I've never messed around with that file; are you sure you can't just replace your update's cxi with it?
Yeah, I mean that file. You can't replace the update's cxi with a system module's cxi.
Wait...
Does this CXI replace the existing CXI in the smash update, or does it just modify parts of it?
Or does it modify the CFW itself (which I don't think it does)?
It modifies the firmware.bin that the cfw loads.
I have yet to figure out completely how to use it in a cfw that doesn't support loading injector.cxi files, but I did notice that Rei appears to be working on that feature.
 
Last edited by Trinitro21,
Yeah, I mean that file. You can't replace the update's cxi with a system module's cxi.

It modifies the firmware.bin that the cfw loads.
I have yet to figure out completely how to use it in a cfw that doesn't support loading injector.cxi files, but I did notice that Rei appears to be working on that feature.
Dang it.
I guess my attempt was a failure then... :/

(Wow, there's no ecomotion for that face? Weird. :P)
 
I finally figured out how to get loader injection working. Here's how you can use my loader on most CFWs:
  • Open up your firmware.bin in a hex editor. If the first four symbols aren't "FIRM" then your firmware.bin is encrypted. Can't help you there. Maybe switch to aureinand or some other cfw that uses decrypted firms.
  • Find the string "loader" and back up 0x200 bytes (on n3DS firms you should end up at 0x26600, on o3DS 0x26400).
  • Open up the attached build of injector.cxi in a hex editor.
  • Copy and overwrite all the contents of injector.cxi into the firmware.bin at the address you found (ctrl+b is paste write on HxD if you use that).
  • Save your firmware.bin.
 

Attachments

Site & Scene News

Popular threads in this forum