Skip to main content

Actualizador seguro de Nintendo 3DS para macOS

Project description

3ds-up

License

A safe, automated SD card manager for Nintendo 3DS homebrew on macOS.

Why does this exist?

Managing a hacked 3DS SD card from a Mac has the same silent dangers as the Switch — macOS injects hidden files (.DS_Store, ._* files, extended attributes) that corrupt your SD and cause boot failures. On top of that, Finder's "Replace" behavior destroys folders instead of merging them, which can wipe your Luma3DS configuration in one careless drag.

3ds-up automates the entire process safely:

  1. Backs up your luma/config.ini before touching anything
  2. Smart Merges new files onto your SD without deleting existing content
  3. Cleans all macOS junk files that would corrupt the 3DS
  4. Restores your backup automatically if anything goes wrong
  5. Never touches Nintendo 3DS/ (encrypted game data) or boot9strap/ (bootloader)

Installation

From PyPI

pip install 3ds-up

From source

git clone https://github.com/OscarCampohermoso/3ds-up.git
cd 3ds-up
pip install -e .

Requirements

  • Python 3.8 or higher
  • macOS (designed specifically for macOS-related SD card issues)

Usage

Update Luma3DS and GodMode9 to the latest version

Downloads the latest releases from GitHub and installs them safely to your SD card.

3ds-up update --latest

The tool will auto-detect your SD card if it's mounted at /Volumes/. If you have multiple SD cards or a custom mount point, specify the path:

3ds-up update --latest --sd-path /Volumes/MY_SD

Update only Luma3DS (skip GodMode9)

3ds-up update --latest --luma-only

Update only GodMode9 (skip Luma3DS)

3ds-up update --latest --gm9-only

Install a local ZIP file

If you already downloaded a release ZIP manually:

3ds-up install ./Luma3DSv13.3.zip --sd-path /Volumes/MY_SD

Clean macOS junk files only (no update)

Just remove the hidden files macOS left behind, without updating anything:

3ds-up fix-archive-bit /Volumes/MY_SD

What happens during an update?

1. Backup     → Saves luma/config.ini to ~/.3ds-up/backups/ (timestamped)
2. Download   → Fetches latest Luma3DS and GodMode9 ZIPs from GitHub
3. Smart Merge → Copies new files to SD, preserving your existing content
                 Nintendo 3DS/ and boot9strap/ are NEVER touched
4. Cleanup    → Removes .DS_Store, ._* files, __MACOSX/, and xattrs
5. Done       → If anything fails at step 3, your backup is auto-restored

Protected Paths

These paths are never modified under any circumstances:

Path Why
Nintendo 3DS/ Encrypted with your console's unique AES key — modifying corrupts all game data
boot9strap/ Core bootloader — deleting this bricks your console

Configuration Backups

Before every operation, 3ds-up saves your critical config files to:

~/.3ds-up/backups/20260228_143000/
└── luma/
    └── config.ini

Commands Reference

Command Description
3ds-up update --latest Download and install the latest Luma3DS + GodMode9
3ds-up update --latest --luma-only Download and install only Luma3DS
3ds-up update --latest --gm9-only Download and install only GodMode9
3ds-up install <zip> Install a local ZIP file to the SD card
3ds-up fix-archive-bit [path] Clean macOS junk files from the SD card
3ds-up --version Show the current version
3ds-up --help Show help for all commands

Platform Support

Currently, 3ds-up is macOS-only. The tool was built specifically to address the hidden-file injection and destructive replace behavior unique to macOS.

Windows and Linux users don't face the same corruption risks, but could still benefit from the automated download and Smart Merge workflow. Contributions targeting cross-platform support are welcome — the core logic in core.py is already platform-agnostic.

License

GPLv3 — See LICENSE for details.


Related Projects

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

3ds_up-0.1.1.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

3ds_up-0.1.1-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file 3ds_up-0.1.1.tar.gz.

File metadata

  • Download URL: 3ds_up-0.1.1.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for 3ds_up-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a0c592bb742df34ab4aaa2a86c73395df9e01a83364be17cfa0bea8f5be2ae5a
MD5 0bd17d08267c5723f97392b2196b5ed5
BLAKE2b-256 e6ef8aa4beb068486ad3df0f473962829a2aac2961a1d6fe3fa055fbc41cb04c

See more details on using hashes here.

Provenance

The following attestation bundles were made for 3ds_up-0.1.1.tar.gz:

Publisher: publish.yml on OscarCampohermoso/3ds-up

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file 3ds_up-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: 3ds_up-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for 3ds_up-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8464cdbd8fcc9305dbffb34b785ca4539695a0235680b42815ece37632fc384c
MD5 cd81826f4f5f9d6e4f3ea547b1d50693
BLAKE2b-256 17410b3e89b6be0dd3b2d3c1a94bcbd36d0d8f1535710d07bc9320b9ca11de15

See more details on using hashes here.

Provenance

The following attestation bundles were made for 3ds_up-0.1.1-py3-none-any.whl:

Publisher: publish.yml on OscarCampohermoso/3ds-up

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page