ROM Hack [RELEASE] Smash-Selector

  • Thread starter Thread starter Cydget
  • Start date Start date
  • Views Views 230,389
  • Replies Replies 711
  • Likes Likes 18

Did this work for you?


  • Total voters
    257
Is it actually more stable on commit 61684ecb? I've been using the latest commit downloaded by Star Updater, which is e4ed713f. I've noticed some weird in-game things that have cost me to restart my 3ds or force-quit an endless load which get's me a Disconnection penalty. not sure if that's due to luma or SaltySD.
Not sure, Id assume the most resent commit should work the best. The only reason I put that commit number is because thats the only one I have used so far, and I wasnt sure if the newer versions worked or not.
 
Not sure, Id assume the most resent commit should work the best. The only reason I put that commit number is because thats the only one I have used so far, and I wasnt sure if the newer versions worked or not.

I think it's safe to assume that code redirection will be implemented in every unstable update, and the next stable update. I don't really think Aurora would put it in as a one-time thing.
 
I think it's safe to assume that code redirection will be implemented in every unstable update, and the next stable update. I don't really think Aurora would put it in as a one-time thing.
It was more of a "what if it was broken in the non stable update" kind of thing
 
If you dont have a9lh installed, you could try downloading and installing the latest released luma3ds using these instructions https://github.com/AuroraWright/Luma3DS/wiki/Installation-and-Upgrade and then you could copy over the files from the non official release on top of those.
The non official release leaves out some of the files necessary for menuhax I think. So just install the non official one over the official one.
EDIT: sniped
Does Smash Selector require Luma3DS with A9LH connected to it? And is there a way you don't have to install A9LH?
 
Sorry for the double post, but with corbenik supporting code sections (although they are separated code.bins), I was wondering if it would be possible to have a build that uses corbenik/skeith paths instead of luma paths. I want freedom from luma. The only issues I see with doing this is that corbenik splits the code sections up into 3 blocks (data/ro/text) Afaik, saltysd has all of its code in the "text" block, but I didn't test much (the game booted with my smash folder, so I considered it successful).
 
Sorry for the double post, but with corbenik supporting code sections (although they are separated code.bins), I was wondering if it would be possible to have a build that uses corbenik/skeith paths instead of luma paths. I want freedom from luma. The only issues I see with doing this is that corbenik splits the code sections up into 3 blocks (data/ro/text) Afaik, saltysd has all of its code in the "text" block, but I didn't test much (the game booted with my smash folder, so I considered it successful).
Im not familiar with corbenik. What are the paths that it loads the code.bin from also, did you have to separate the code.bin into the text block for it to work?
 
Im not familiar with corbenik. What are the paths that it loads the code.bin from also, did you have to separate the code.bin into the text block for it to work?
corbenik paths are in /corbenik/exe/ (for stable builds) and /skeith/lib/exefs/ (for nightly builds). Upon more testing though, I think you need all 3 sections for saltysd to work completely. Hitboxes weren't appearing when I had used the hittest code.bin.

Offsets:
text: 0x000000-0x00A61FFF
ro: 0x00A62000-0x00B12FFF
data: 0x00B13000-0x00B6EFFF
 
corbenik paths are in /corbenik/exe/ (for stable builds) and /skeith/lib/exefs/ (for nightly builds). Upon more testing though, I think you need all 3 sections for saltysd to work completely. Hitboxes weren't appearing when I had used the hittest code.bin.

Offsets:
text: 0x000000-0x00A61FFF
ro: 0x00A62000-0x00B12FFF
data: 0x00B13000-0x00B6EFFF
So, would I just spit each of the code.bin files into those three parts? If I split them what should I call each sections? Does it still load based on the game card id for example 00040000000EDF00?
 
So, would I just spit each of the code.bin files into those three parts? If I split them what should I call each sections? Does it still load based on the game card id for example 00040000000EDF00?
The names of each are just the tid with no extensions (so just 00040000000EDF00)
 
The names of each are just the tid with no extensions (so just 00040000000EDF00)
That seems doable, but when you say Offsets, do you mean extract the code.bin into those three sections then make a files where I place each of the parts at those offsets? If so what tool can I use to extract the code.bin?
 
That seems doable, but when you say Offsets, do you mean extract the code.bin into those three sections then make a files where I place each of the parts at those offsets? If so what tool can I use to extract the code.bin?
Take the decompressed code.bin (which is what is already downloaded) and make files out of each of those offsets. (so like /text/00040000000EDF00 will be 10,887,168 bytes(A62000); /ro/00040000000EDF00 will be 724,992 bytes(B1000); /data/00040000000EDF00 will be 376,832 bytes(5C000))
 
Take the decompressed code.bin (which is what is already downloaded) and make files out of each of those offsets. (so like /text/00040000000EDF00 will be 10,887,168 bytes(A62000); /ro/00040000000EDF00 will be 724,992 bytes(B1000); /data/00040000000EDF00 will be 376,832 bytes(5C000))
I think I can work with that, but due to how I have it currently set up to read the entire file to check its hash splitting the file would break a bit of that. I think Ill just keep the paths the same for downloading and stuff, but Ill make it so if you press the L and R button it will take the already downloaded files then split and move them to their corresponding folder locations. Ill make sure to not forget about adding the ability to toggle it on and off from both paths. This way there will still only be one version of Smash-Selector. I was planing on redoing a part of smash selector where it saves all of its data and lets you decide where you want it save the saltysd.bin files in a json file, but im lazy and I dont think that anybody really cares about it that much. I might have it ready in a day or two depending on how busy I am.
 
  • Like
Reactions: ih8ih8sn0w
Just released SaltySD v1.1! As requested by smb123w64gb, this release allows files to be removed from the game. To do this, you create a revoke*.txt file in sd:/saltysd/smash/.

Just as an example, if I wanted to revoke the files ui/replace/chr/chr_00/chr_00_Luigi_01.tex and ui/replace/chr/chr_00/chr_00_Luigi_02.tex, I would create a file sd:/saltysd/smash/revoke-luigis.txt with the following contents:
Code:
ui/replace/chr/chr_00/chr_00_Luigi_01.tex
ui/replace/chr/chr_00/chr_00_Luigi_02.tex

This was requested for the use of removing stage models, but it may have other uses.

EDIT: I also designed it so that multiple .txts can coexist, so if a user wants multiple mods which happen to revoke files, mod A could have revoke-moda.txt and mod B could have revoke-modb.txt
 
Last edited by shinyquagsire23,
Quick hotfix for last night's update at https://github.com/shinyquagsire23/SaltySD/commit/9435735c6ced2c6ad7d92a036bae5e61f9fe85df, fixes Windows newlines and also adds support for revoking folders.

Just as an example, if you wanted to revoke all character portraits, you could add a revoke-portraits.txt with the contents
Code:
ui/replace/chr/chr_00/
and all CSS portraits would be removed. It should be noted though that revoking behavior gets a bit funky once you start adding files in folders that have been revoked (or if you override existing files which are in a revoked folder). I believe at the moment the behavior that will happen is the files which would normally override will be interpreted as new files, and the revoked folder will be created as if it never existed. I've also noticed that revoking ui/replace/chr/chr_10/ slows load speeds to a crawl, not 100% sure what is going on there.
 
Hey @ih8ih8sn0w, do you think you could test this for me? It should now support that cfw you wanted both nightlies and full releases just press L and R at the same time. However, I just found out that my domain expired so it appears that nobody can download (the latest)saltysd using Smash-Selector.
EDIT: Renewed the domain. People should be able to download the latest SaltySD once again.
 

Attachments

Last edited by Cydget,
Hey @ih8ih8sn0w, do you think you could test this for me? It should now support that cfw you wanted both nightlies and full releases just press L and R at the same time. However, I just found out that my domain expired so it appears that nobody can download (the latest)saltysd using Smash-Selector.
EDIT: Renewed the domain. People should be able to download the latest SaltySD once again.
App crashes after it lists the corbenik file paths. Folders were made in /corbenik/, but there isn't anything inside of them.
 

Site & Scene News

Popular threads in this forum