Citra Emulator is a smartphone emulator of Nintendo 3DS games. This is the official product (an unofficial version previously was made available), but it is currently in beta. The emulator does not come with any 3DS ROMs, so you will need to dump your own games, but it does feature tilt motion controls. As of now, the beta is only available for Android devices, not iOS. Here is how to get it to work on your smartphone.
How to get Citra Emulator on your Android device
First, download Citra Emulator (Early Access) on the Google Play Store. The app requires a minimum of 64-bit Android 8 (Oreo) and OpenGL ES 3.2 support. It is also recommended you have a device with Snapdragon 835 or better inside. This means you will need a decently newer phone to be able to run the software, but it does help guarantee a better overall experience. To check if your phone is compatible, open your settings and scroll to the bottom and click Software Information. Your Android version will be the second item listed.
Since the program is currently in beta, you may have issues with framerates, lag during cutscenes, and occasional faulty keyboard support. The team is consistently updating the app, though, so most features are in working order and are being improved. You can check out the video below for a demonstration of how the app runs Super Smash Bros for 3DS, Mario Kart 7, Super Mario 3D Land, and more.
When the app is downloaded, you will be asked to allow the program to have access to your files. Allow this and you can choose the folder where your ROM is located. You can configure many settings to your specifications including the gamepad, camera, and more. The Citra Emulator is free for anyone to use, but you can support the developers by pressing the heart icon positioned next to the folder icon in the main menu. Upgrading to premium costs $4.99 and will allow you to change to a dark theme and gives you texture filters.