3DS Storefront
More actions
| 3DS Storefront | |
|---|---|
| General | |
| Author | Cave Johnson |
| Type | Utilities |
| Version | V0.4 |
| License | MIT License |
| Last Updated | 2025/12/25 |
| Links | |
| Download | |
| Website | |
| Source | |
3DS Storefront is a homebrew app that allows you to host virtual storefronts and download files from them straight onto your 3DS! The default storefront is a storefront where the dev puts some of his work.
V0.1 was functional on Citra, but not on hardware due to it's use of tinyurl. This prompted the change to direct download links in V0.2. Since redirects don't work on hardware, the program has to use direct links, which are much longer. Thus, the ability to have meta storefronts (storefronts of storefronts) was also added in V0.2.
In V0.3, the internal files were changed from .url to .3sf to prevent conflicts with .url files. A desktop app called 3DS Storefront Tool was also created. It automates the storefront creation process, as nested storefronts can become very complicated to make by hand.
In V0.4, file extensions were added to the names generated by [3DS Storefront Tool https://www.gamebrew.org/wiki/3DS_Storefront_Tool]. This is more informative and also happened to fix the issue with some file names being cut off (the extensions were removed by taking everything before the first "." in the file name, which breaks if the name contains a "." before the extention [e.g. "file.tar.gz"]). A prototype GUI and a settings menu were also been added in V0.2.
INSTALL
The install process is very easy. Simply extract the .zip onto the root of your SD card. You can launch the app with the hombrew launcher.
HOW TO CHANGE STOREFRONT
To change to a different storefront, simply press x and type in the new storefront ID. Optionally, you can also put your memory card into a computer and open /3ds/3DS-Storefront/store.url in a text editor and replace the storefront id in there if you don't want to type it out by hand. If you don't want to do this, you can DM the dev on discord with the new store ID and the dev will add it to the default storefront selection.
HOW TO MAKE CUSTOM STOREFRONT
To make a custom storefront, simply create a folder on your pc with your storefront's files/folders. Then, download the 3DS Storefront Tool and extract it. Then, run storefront.bat. This will bring you to a google log in page. Log in with whichever account you want the storefront to be under. Then click "Advanced>Go to 3DS Storefront Tool (unsafe)>Continue" (this only showes up because google hasn't published the program). Then, enter in storefront create "C:/Path/To/Your/Storefront/Folder". It will then begin creating your storefront. After creating your storefront, you can add files to your folder on your pc then run storefront.bat and enter storefront push "C:/Path/To/Your/Storefront/Folder". This will update the storefront to match your local folder and will only process the new files to save you time. If you want to only add files and not delete any, you can use storefront push "C:/Path/To/Your/Storefront/Folder" --add-only.
MANUAL STOREFRONT CREATION
To make a custom storefront manually, go to your desired google drive and create a new folder. You can name it whatever you want. Then, right klick on that folder and click "Share>Share". Set the visibility to "Anyone with link" and click done. Then, double click this folder to open it. Now, we'll click "New" and then "File Upload". Now, we'll upload all the files we want for our storefront.
Next, press win+d to go to your desktop (or you can open file explorerer and go to any directory you can easily access). Then, right click and select "New>Text Document". We'll name this "storefront.json". If you can't change the extention, then "storefront.json.txt" is fine. Now, open this file in a text editor or IDE of your choice. In this file, we'll write this:
{
"name":["link","file name","/directory"],
"name":["link","file name","/directory"],
"name":["link","file name","/directory"]
...
}
Each line coresponds to one of the files you uploaded to google drive. Each "link" should be replaced with a link from the instructions below. Each "file name" should be replaced with the name the file should be downloaded as including the extention (e.g. "game.cia"). Each "/directory" should be replaced with the directory you want the file to be downloaded to on the users 3DS (e.g. "/cias"). The directory should always start with a slash and end without a slash. Make sure the last one doesn't have a commma as shown below!
EXAMPLE:
{
"Super Anthem 3D - Redmond":["https://drive.google.com/uc?export=download&id=1IrBWvuzu9lG0NqaTOKKsHVch2JJCFxTt","Redmond.mp3","/DCIM"],
"Super Anthem 3D - Washington":["https://drive.google.com/uc?export=download&id=15o5vDlao0ZqPsmNjQnqlJ1ADaidO8x72","Washington.mp3","/DCIM"],
"Portal 2 for 3DS":["https://drive.google.com/uc?export=download&id=1zr99VsVybvAacDvqwz2ij4B2fhassxrp","Portal 2.cia","/cias"]
}
Once the storefront.json file is filled out, go back to google drive and select "New>File Upload" and upload the storefront.json file. Once it's done uploading, get a link to the file with the instructions below. Next, delete the "https://drive.google.com/uc?export=download&id=" from that link. This will be the ID of your storefront (e.g. "1m99FhKG-zpNd7VoAOjFV11dyJsDbnUv9"). Once you have that, you can put your memory card in your computer and replace the default storefront ID in "SD:/3ds/3DS-Storefront/store.url" with your storefront ID (NOTE: The "3DS-Storefront" folder won't exist if you haven't run the app at least once). Alternatively, you can open 3DS Storefront and enter a storefront. Then, press X. Then, you can type in the name of your new storefront. You can also share name of your storefront name with other poeple and they can use it.
LINKS
To get a link to a file for your storefront.json, right-click on the file in google drive and select "Share>Copy Link". THIS LINK WILL NOT WORK. Instead, put that link into this site. The link you get back is the one you must use in the storefront.json
META-STOREFRONTS
3DS Storefront V0.2 adds the ability to create a storefront that contains additional storefronts. This allows you to put all of your storefronts in one place where they are easy to access. To do this, create a new storefront.json file as above and put in this:
{
"name":["link","storefront"],
"name":["link","storefront"],
"name":["link","storefront"]
...
}
The key difference from before is that we do not specefy a directory (as storefronts are not downloaded) and we must have the second element be "storefront". If it is anything else, it will not work. Once you have this storefront.json file, follow the same process as before to get a storefront ID for it. It is not necessary to uplad any files other than the storefront.json itself. You can also mix in files along with the storefronts:
{
"name":["link","storefront"],
"name":["link","file name","/directory"],
"name":["link","storefront"]
...
}
If you do this, you will need to upload the file's you include as well. Once you open this new storefront, you we be prompted to chose a storefront to enter. You can chose current storefront to access files on the storefront as in the above example.
CREDITS
Thanks to Niels Lohmann for json.hpp.
Thanks to Dwad for their Visual Studio Code devkitPro template.