• Stars
    star
    135
  • Rank 268,506 (Top 6 %)
  • Language Makefile
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated almost 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Python on your Nintendo 3DS

3DS.py

Build Status

3DS.py is a WIP port of the Python 3.6.9 interpreter to the Nintendo 3DS. It allows you to run your Python scripts directly on the 3DS by having the interpreter embedded into a homebrew application that launches a main.py script from the same directory.

3DS.py in action

Installation & Usage

Just grab one of the releases over here and unzip it. Copy the entire 3DS.py folder to the 3ds directory of your SD card and navigate into it. You should see a 3DS.py.3dsx application.

The same directory also contains the entire Python standard library and a main.py file. To run your own projects, copy all source files into the 3DS.py directory and "start" your application from within the main.py file as this is the entry point to any Python homebrew.

Compiling

If you want to compile from source, it is required to set up a devkitARM development environment first. Next, you need to install the zlib portlib by running (dkp-)pacman -S 3ds-zlib. Otherwise you will get linker errors for the zlib module. Then cd into the 3DS.py directory and run make to build the binaries and a statically linked Python library with the corresponding header files for building Python C modules.

If you're on macOS, make sure to have gnu-sed installed. brew install gnu-sed

Homebrew that uses 3DS.py

A list of cool homebrew projects that make use of 3DS.py. Want yours to be listed here? PR them.

Development & Support

Need help? Or want to have an active voice in development of and around this project? Then join our Discord guild which focusses on homebrew development for the Nintendo 3DS in Python.

This way, things can be discussed more directly and you'll likely get answfers to your questions faster than through GitHub issues.

Special thanks

In no particular order, I want to credit these amazing people for their contributions.

  • 3DBrew for their extensive documentation and research pertaining to the 3DS.

  • devkitPro for their devkitARM toolchain.

  • smea for the ctrulib project.

  • David Buchanan for troubleshooting assistance.

  • Fenrir for his support and the ctru-rs project that helped me out with the condition variables implementation.

  • Richard Caseres for the awesome app icon he designed.

More Repositories

1

faucon

NVIDIA Falcon Microprocessor Suite
Rust
49
star
2

switch-cmake

CMake toolchain for Nintendo Switch homebrew development
CMake
49
star
3

Saturnus

An open-source reimplementation of the Horizon microkernel used in the Nintendo Switch
Rust
45
star
4

vimdiscord

Discord RPC for Vim
Python
40
star
5

switchcord

An unofficial Discord client for the Nintendo Switch console. (WIP)
CMake
17
star
6

Vale.py

A bot to support Discord servers that I like.
Python
14
star
7

dotfiles

My personal dotfiles
Shell
14
star
8

vbe0201.github.io

Personal blog
9
star
9

Aurora

C++
7
star
10

jiffy

Kotlin
6
star
11

katsuba

Tools for deserializing, extracting, and introspecting various KingsIsle file formats
Rust
5
star
12

blog

Source code for my personal blog, written in Rust
Handlebars
4
star
13

wizproxy

Proxy to circumvent Wizard101 packet encryption
Python
4
star
14

google-ctf-2020

My writeups for the Google CTF 2020 challenges
Python
3
star
15

Zamazenta

Experimental decompilation of Pokémon Sword/Shield
Python
3
star
16

PyJ

Python hooked into the JVM
Python
2
star
17

Jukebox

Rock your Discord servers with Jukebox
C++
2
star
18

nix

NixOS configs for my machines
Nix
2
star
19

regi

Define safe interfaces to MMIO and CPU registers with ease
Rust
2
star
20

code-inspector

A Discord bot providing programming utilities.
Python
2
star
21

slinject

Shared Library Injection Toolkit for Python
Python
1
star
22

microcorruption

My Microcorruption CTF writeups, aimed at newcomers
1
star
23

0x0bot

Discord bot for the 0x0b server
Rust
1
star
24

vtils

Portable C++ utility library for personal use
C++
1
star
25

wslaypp

A C++ wrapper around wslay
C
1
star
26

libhorizon

Experimental Nintendo 3DS homebrew toolchain
Makefile
1
star
27

better-contextvars

contextvars is a great module. Let's make it compatible to Python 3.5+.
Python
1
star
28

bubble

Tiny and fast web server written in C
C
1
star