Skip to content

burhanr13/Tanuki3DS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

855 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tanuki3DS

Tanuki3DS is a 3DS emulator for MacOS, Linux, and Windows written in C which aims to be simple, fast, and compatible.

If you want to ask questions or discuss the emulator, join our discord:

Download

You can download a stable release from the releases tab, or the latest build below:

Platform Download (x86_64) Download (arm64)
Linux Binary
AppImage
Binary
AppImage
MacOS App Bundle App Bundle
Windows Executable Executable

Usage

On launching the app you can use the UI to open a game or drop its file onto the window. The supported formats are:

  • .cci/.3ds
  • .cxi/.app
  • .elf/.axf
  • .3dsx

All games must be decrypted.

The settings and save data are stored by default in the application data path of your OS, but you can optionally create a file called portable.txt in the same directory as the executable to have them be created there. You can open the directory containing the settings and savedata using the UI.

Certain files needed by games that provided by the OS (shared font, mii resource) use open replacements by default. If you want to load the originals you can do so using the UI. You can obtain the originals from a real 3DS using the dumper.3dsx program.

You can also run the executable in the command line with the rom file as the argument or pass -h to see other options.

Default keyboard controls are as follows:

Control Key
A L
B K
X O
Y I
L Q
R P
Circlepad WASD
Dpad Arrow keys
Start Return
Select RShift
Pause/Resume F5
Mute/Unmute F6
Toggle fast-forward Tab
Reset F1
Switch game F2
Toggle freecam F7
Change Screen Layout F10

The touch screen can be used with the mouse.

You can also connect a controller to use controller input. When using the controller clicking the right stick can be used to tap the touch screen at the current mouse location.

Freecam controls (regular keyboard input is disabled):

  • WASD: move
  • RF: move vertically
  • arrow keys: look
  • QE: roll
  • Left Shift (hold): move slower
  • Right Shift (hold): move faster

Both keyboard input and freecam input can be remapped in the input settings menu.

Building

You need the following dependencies installed to build:

  • sdl3
  • xxhash
  • cglm
  • fdk-aac
  • capstone

To build use make. You can pass some options to make, USER=1 to compile a user build with lto, and DEBUG=1 for unoptimized build with debug symbols. You need a compiler which supports C23. You can configure compilers by running ./configure.sh CC=... CXX=... before running make. To compile on Windows, you need to compile within msys2.

Compatibility

Many games work, but many will suffer from a range of bugs from graphical glitches to crashes. We are always looking to improve the emulator and would appreciate any bugs to reported as a github issue so they can be fixed. When reporting an issue, please always include the generated ctremu.log file which is located in the application data folder of your system.

Acknowledgements

  • 3DBrew is the main source of documentation on the 3DS
  • GBATEK is used for low level hardware documentation
  • libctru and citro3d are libraries for developing homebrew software on the 3DS and are useful as documentation on the operating system and GPU respectively
  • Panda3DS, Citra, and 3dmoo are HLE 3DS emulators which served as a reference at various points, as well as inspiration for this project
  • citra_system_archives is used for generating system file replacements

About

3DS Emulator

Resources

License

Stars

338 stars

Watchers

13 watching

Forks

Packages

 
 
 

Contributors