Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

3DS Storefront: Difference between revisions

From GameBrew
No edit summary
0.6?
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Infobox 3DS Homebrews
{{Infobox 3DS Homebrews
|title=3DS Storefront
|title=3DS Storefront
|image=Main.png
|image=Main1.png
|description=A storefront system for 3DS.
|description=A storefront system for 3DS.
|author=Cave Johnson
|author=Cave Johnson
|lastupdated=2025/12/29
|lastupdated=2026/01/12
|type=Utilities
|type=Utilities
|version=V0.5
|version=0.6
|license=MIT
|license=MIT
|download=https://github.com/Drake-Rochelle/3DS-Storefront/releases
|download=https://github.com/Drake-Rochelle/3DS-Storefront/releases
Line 13: Line 13:
}}
}}
<!--3DSStorefront.7z-->
<!--3DSStorefront.7z-->
3DS Storefront is a homebrew app that allows you to host virtual storefronts and download files from them straight onto your 3DS!
'''3DS Storefront''' is a Nintendo 3DS homebrew application that allows users to host virtual storefronts and download files directly to their console.
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.
A default storefront is included, maintained by the developer, which hosts selected content and examples.


In V0.3, the internal files were changed from .url to .3sf to prevent conflicts with .url files. A desktop app called [https://www.gamebrew.org/wiki/3DS_Storefront_Tool 3DS Storefront Tool] was also created. It automates the storefront creation process, as nested storefronts can become very complicated to make by hand.
== Features ==
* Download files directly to the SD card
* Supports multiple storefronts
* Meta-storefront support (storefronts that link to other storefronts)
* Hardware-compatible direct download links
* Optional desktop tool for automated storefront creation


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.
== Installation ==


In V0.5 - there's a better vignette. This is the result of a lot of work to get image rendering working. This will lead to icons for files and storefronts.
Extract the archive to the root of your SD card
You must delete the sdmc:/3ds/3DS-Storefront/settings.json file the first time you open this version!
Launch the app using the Homebrew Launcher


==== INSTALL ====
== Usage ==
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 ====
=== Changing 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 [https://discord.com/users/756198884233183262 discord] with the new store ID and the dev will add it to the default storefront selection.


==== HOW TO MAKE CUSTOM STOREFRONT ====
Press '''X''' and enter a new storefront ID
To make a custom storefront, simply create a folder on your pc with your storefront's files/folders. Then, download the [https://www.gamebrew.org/wiki/3DS_Storefront_Tool 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 ======
Alternatively:
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:
Edit <code>/3ds/3DS-Storefront/store.url</code> on the SD card


<pre>
You may also contact the developer on Discord to request inclusion in the default storefront:
{
"name":["link","file name","/directory"],
"name":["link","file name","/directory"],
"name":["link","file name","/directory"]
...
}
</pre>


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!'''
https://discord.com/users/756198884233183262


'''EXAMPLE:'''
== Creating a Storefront ==
<pre>
=== Using 3DS Storefront Tool (Recommended) ===
{
Create a folder containing your storefront files
"Super Anthem 3D - Redmond":["https://drive.google.com/uc?export=download&id=1IrBWvuzu9lG0NqaTOKKsHVch2JJCFxTt","Redmond.mp3","/DCIM"],
Download and extract '''[[3DS Storefront Tool]]'''
"Super Anthem 3D - Washington":["https://drive.google.com/uc?export=download&id=15o5vDlao0ZqPsmNjQnqlJ1ADaidO8x72","Washington.mp3","/DCIM"],
Run <code>storefront.bat</code>
"Portal 2 for 3DS":["https://drive.google.com/uc?export=download&id=1zr99VsVybvAacDvqwz2ij4B2fhassxrp","Portal 2.cia","/cias"]
Log in with a Google account
}
When prompted, select:
</pre>


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.
#* ''Advanced → Go to 3DS Storefront Tool (unsafe) → Continue''


====== LINKS ======
Create a storefront:
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 [https://sites.google.com/site/gdocs2direct/ this] site. The link you get back is the one you must use in the storefront.json
<pre> storefront create "C:/Path/To/Storefront/Folder" </pre>


====== META-STOREFRONTS ======
To update:
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:


<pre>
<pre> storefront push "C:/Path/To/Storefront/Folder" </pre>
{
"name":["link","storefront"],
"name":["link","storefront"],
"name":["link","storefront"]
...
}
</pre>


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:
Add files only (no deletions):


<pre>
<pre> storefront push "C:/Path/To/Storefront/Folder" --add-only </pre>
{
"name":["link","storefront"],
"name":["link","file name","/directory"],
"name":["link","storefront"]
...
}
</pre>


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.
=== Manual Storefront Creation ===


== CREDITS ==
Create a folder on Google Drive
Thanks to Niels Lohmann for json.hpp.
Set sharing to '''Anyone with the link'''
Upload your files
Create <code>storefront.json</code> with the following format:
<pre> { "name":["link","file name","/directory"] } </pre>


Thanks to Dwad for their Visual Studio Code devkitPro template.
'''link''' – Direct download link


== EXTERNAL LINKS ==
'''file name''' – Output filename (with extension)
GitHub - https://github.com/Drake-Rochelle/3DS-Storefront
 
'''/directory''' – Destination directory on SD card
 
'''Important:''' No trailing comma on the last entry.
 
==== Example ====
 
<pre> { "Portal 2 for 3DS":["https://drive.google.com/uc?export=download&id=1zr99VsVybvAacDvqwz2ij4B2fhassxrp","Portal 2.cia","/cias"] } </pre>
 
Upload <code>storefront.json</code> to Google Drive and extract the file ID from its direct download link.
Replace the ID in:
 
<pre> SD:/3ds/3DS-Storefront/store.url </pre>
 
== Getting Direct Download Links ==
Google Drive share links will not work directly.
 
Use:
 
https://sites.google.com/site/gdocs2direct/
 
Paste the generated link into <code>storefront.json</code>.
 
== Meta-Storefronts ==
Meta-storefronts list other storefronts instead of files.
 
<pre> { "name":["link","storefront"] } </pre>
 
The second value must be exactly <code>"storefront"</code>
 
No directory value is used
 
Files and storefronts can be mixed:
 
<pre> { "name":["link","storefront"], "name":["link","file name","/directory"] } </pre>
 
Users can choose whether to enter a sub-storefront or access files directly.
 
== Changelog ==
; V0.1
 
Functional on Citra
 
Not compatible with real hardware due to TinyURL usage
 
; V0.2
 
Switched to direct download links for hardware compatibility
 
Added support for meta-storefronts
 
; V0.3
 
Changed internal file extension from <code>.url</code> to <code>.3sf</code>
 
Introduced '''[[3DS Storefront Tool]]''' for automated storefront creation
 
; V0.4
 
Filenames generated by the tool now include file extensions
 
Fixed issues with truncated filenames (e.g. <code>file.tar.gz</code>)
 
Added a prototype GUI and settings menu
 
; V0.5
 
Improved vignette rendering
 
Groundwork added for icons (files and storefronts)
 
'''Note:''' Delete <code>sdmc:/3ds/3DS-Storefront/settings.json</code> before first launch
 
; V0.6
 
A few bug fixes and the ability to view images you download were added
 
== Credits ==
* Niels Lohmann – json.hpp
* Dwad – devkitPro VS Code template
 
== External Links ==
 
GitHub: https://github.com/Drake-Rochelle/3DS-Storefront

Latest revision as of 11:50, 16 January 2026

3DS Storefront
General
AuthorCave Johnson
TypeUtilities
Version0.6
LicenseMIT License
Last Updated2026/01/12
Links
Download
Website
Source

3DS Storefront is a Nintendo 3DS homebrew application that allows users to host virtual storefronts and download files directly to their console.

A default storefront is included, maintained by the developer, which hosts selected content and examples.

Features

  • Download files directly to the SD card
  • Supports multiple storefronts
  • Meta-storefront support (storefronts that link to other storefronts)
  • Hardware-compatible direct download links
  • Optional desktop tool for automated storefront creation

Installation

Extract the archive to the root of your SD card Launch the app using the Homebrew Launcher

Usage

Changing Storefront

Press X and enter a new storefront ID

Alternatively:

Edit /3ds/3DS-Storefront/store.url on the SD card

You may also contact the developer on Discord to request inclusion in the default storefront:

https://discord.com/users/756198884233183262

Creating a Storefront

Using 3DS Storefront Tool (Recommended)

Create a folder containing your storefront files Download and extract 3DS Storefront Tool Run storefront.bat Log in with a Google account When prompted, select:

    • Advanced → Go to 3DS Storefront Tool (unsafe) → Continue

Create a storefront:

 storefront create "C:/Path/To/Storefront/Folder" 

To update:

 storefront push "C:/Path/To/Storefront/Folder" 

Add files only (no deletions):

 storefront push "C:/Path/To/Storefront/Folder" --add-only 

Manual Storefront Creation

Create a folder on Google Drive Set sharing to Anyone with the link Upload your files Create storefront.json with the following format:

 { "name":["link","file name","/directory"] } 

link – Direct download link

file name – Output filename (with extension)

/directory – Destination directory on SD card

Important: No trailing comma on the last entry.

Example

 { "Portal 2 for 3DS":["https://drive.google.com/uc?export=download&id=1zr99VsVybvAacDvqwz2ij4B2fhassxrp","Portal 2.cia","/cias"] } 

Upload storefront.json to Google Drive and extract the file ID from its direct download link. Replace the ID in:

 SD:/3ds/3DS-Storefront/store.url 

Getting Direct Download Links

Google Drive share links will not work directly.

Use:

https://sites.google.com/site/gdocs2direct/

Paste the generated link into storefront.json.

Meta-Storefronts

Meta-storefronts list other storefronts instead of files.

 { "name":["link","storefront"] } 

The second value must be exactly "storefront"

No directory value is used

Files and storefronts can be mixed:

 { "name":["link","storefront"], "name":["link","file name","/directory"] } 

Users can choose whether to enter a sub-storefront or access files directly.

Changelog

V0.1

Functional on Citra

Not compatible with real hardware due to TinyURL usage

V0.2

Switched to direct download links for hardware compatibility

Added support for meta-storefronts

V0.3

Changed internal file extension from .url to .3sf

Introduced 3DS Storefront Tool for automated storefront creation

V0.4

Filenames generated by the tool now include file extensions

Fixed issues with truncated filenames (e.g. file.tar.gz)

Added a prototype GUI and settings menu

V0.5

Improved vignette rendering

Groundwork added for icons (files and storefronts)

Note: Delete sdmc:/3ds/3DS-Storefront/settings.json before first launch

V0.6

A few bug fixes and the ability to view images you download were added

Credits

  • Niels Lohmann – json.hpp
  • Dwad – devkitPro VS Code template

External Links

GitHub: https://github.com/Drake-Rochelle/3DS-Storefront

Advertising: