From GameBrew - a wiki dedicated to Video Game Homebrew.




3DShell (pronounced 3D-Shell) - is a multi-purpose file manager for the Nintendo 3DS that aims towards handling media files. Unlike FBI which specializes more in title management, 3DShell leans towards more of the file management features such as opening and managing various files types and includes the basic necessity of a standard file manager. This program's design elements are clearly inspired by CyanogenMod/LineageOS's built in file manager, and so all credits towards the design go to the CyanogenMod/LineageOS contributors.

<img src="pNZ3gPh.png" alt="3DShell Screenshot"/>

Current features:

  • Storage bar (at the very top, just beneath the current working directory).
  • Precise battery percentage using mcu::hwc.
  • Creating new folders and files.
  • Renaming files/folders.
  • File/folder deletion.
  • Copy/Move files and folders.
  • Multi-select items for delete/cut/copy (using Y button).
  • FTP server (Press select or tap the ftp icon to toggle).
  • Image preview (If the image is around 400 * 480 which is the size of both screens, the image will be split in half and displayed. Support for the following image formats -> BMP, GIF - non animated, JPG, PCX, PNG, PGM, PPM and TGA)
  • Extract various archives such as ZIP, RAR, 7Z, ISO 9660, AR, XAR and others supported by libarchive.
  • Searching for directories (allows you to quickly visit a directory by clicking the search icon on the top right (bottom screen).)
  • File properties - lets you view info on current file/folder, such as size, modified time, parent folder etc.
  • Screenshots - Press (L + R) -> (/screenshots/Screenshot_YearMonthDay-Num.bmp)
  • Fast scroll - Use analog stick.
  • File timestamps.
  • Browsing CTRNAND and copying data to/from CTRNAND.
  • Audio playback support for the following formats -> IT, OGG, MOD, MP3, S3M, WAV and XM.
  • Dir list Sorting (alphabetical - ascending, alphabetical - descending, size - largest to smallest, and size - smallest to largest).
  • Online updater (nightly/releases)

Building from source:

  1. Ensure you have the devkitPro, ctrulib and citro3D and citro2D installed correctly. Make sure you have makerom and bannertool installed into your path as well.
  2. Install the following dependecies from devkitPro's pacman:
  • sudo dkp-pacman -Syu 3ds-dev --noconfirm --needed
  • sudo dkp-pacman -Syu 3ds-curl --noconfirm --force
  • sudo dkp-pacman -Syu 3ds-libogg --noconfirm
  • sudo dkp-pacman -Syu 3ds-libvorbisidec --noconfirm
  • sudo dkp-pacman -Syu 3ds-mpg123 --noconfirm
  • sudo dkp-pacman -Syu 3ds-opusfile --noconfirm
  • sudo dkp-pacman -Syu 3ds-flac --noconfirm
  • sudo dkp-pacman -Syu 3ds-libarchive --noconfirm
  1. Clone the 3DShell repository:

<source lang="bash">git clone --recursive </source>

  1. Open the project diretory:

<source lang="bash">cd 3DShell/ </source>

  1. Build the binary using make:

<source lang="bash">make </source>


  • deltabeard/MaK11-12 for the inital ctrmus code port.
  • mtheall for ftpd.
  • preetisketch for the banner.
  • FrozenFire for the boot logo.

You can update straight from 3DShell, by tapping the download icon (Updates menu) and updating via the official release build option which is found under "Milestone builds".

  • Re-uploaded with 94201c1 Properly free image data when loaded from SD/Memory.
  • Fix down-sampled MP3 files not being played properly, and providing inaccurate timings.
  • Possible attempt at fixing scratchy audio with O3DS as reported by one user (needs more testing?)
  • Fix crash with the CIA version (due to some resources not being freed properly) after you exit the app granted that you opened any of the supported audio files.
  • Added support for extracting more archive formats such as 7z, ISO 9660, AR, XAR and other formats supported by libarchive.
  • Next nightly/milestone releases will remove the .CIA file after updating from the .CIA version.