App Details
Virtual amiibo (amiibo emulation) system for Nintendo Switch
## Virtual amiibos
Virtual amiibos go inside `sd:/emuiibo/amiibo`. For instance, an amiibo named `MyMario` would be `sd:/emuiibo/amiibo/MyMario/`. They can go inside sub-directories, like `sd:/emuiibo/amiibo/SSBU/Yoshi`.
A virtual amiibo is detected by emuiibo based on two aspects: a `amiibo.json` and a `amiibo.flag` file must exist inside the virtual amiibo's folder mentioned above. If (for whatever reason) you would like to disable a virtual amiibo from being recognised by emuiibo, just remove the flag file, and create it again to enable it.
The JSON file contains all the aspects and data an amiibo needs to provide to games, except a few special ones (per-game savedata, protocol and tag type...)
## Usage and controlling
If you set up everything mentioned above, you're ready to use emuiibo ingame.
**Tip:** Enable it (emulation status) before you start a game, because it does not work in some games if you enable it after launching the game! It really depends on how the game uses amiibos internally, so this guarantees emuiibo will intercept the game.
To see if emuiibo is working ingame, check if emuiibo is intercepting the game when it's trying to access amiibos. If it's not, try launching the game with emuiibo enabled first.
To open the Tesla overlay, hold down **L1 + DPAD-down** and then press **R3 (right stick)**. If you did it, the overlay will open on the left side of the screen. Now choose emuiibo.
You can see/control the following options in the top part of the overlay:
- **Emulation status (on/off)**: when emuiibo's emulation status is on, it means that any game trying to access/read amiibos will be intercepted by emuiibo. When it's off, it means that amiibo services will work normally, and nothing will be intercepted. This is basically a toggle to globally disable or enable amiibo emulation.
- **Active virtual amiibo**: it's the amiibo which will be sent to the games which try to scan amiibos, if emulation is on. If the amiibo happens to have an image, this will be displayed in the top part of the overlay.
- **Virtual amiibo status (connected/disconnected)**: when the active virtual amiibo is connected, it means that the amiibo is always "placed", as if you were holding a real amiibo on the NFC point and never moving it - the game always detects it. When it is disconnected, it means that you "removed" it, as if you just removed the amiibo from the NFC point. Some games might ask you to remove the amiibo after saving data, so you must disconnect the virtual amiibo to "simulate" that removal. This is a recent feature, since emuiibo tried to handle this automatically in previous versions, causing some games to fail.
- **Random UUID (on/off)**: when a virtual amiibo is selected, this will toggle the random UUID option on the amiibo (see above), which will make emuiibo use randomized UUIDs any time a game accesses the amiibo.
In the main menu of the bottom part, You can browse virtual amiibos (and thus select them) through the (sub)directories in `sd:/emuiibo/amiibo`. You can also mark some of them as favorites, which can be easily accessed from a separate menu below.
After you selected an amiibo, you can see it's selected on top in the overlay and that it is *connected*.
A virtual amiibo being **connected** is the equivalent of holding a real amiibo figurine/card on the NFC point. To **disconnect** the amiibo (the equivalent of removing a real amiibo from the NFC point), just select the same amiibo again.
To go back in the menus, just press **B** button.
**Example of use**:
1. Open the overlay and choose emuiibo
2. Enable emuiibo
3. Start the game
4. Navigate to the games NFC feature to use the amiibo and activate it
5. Open the overlay and choose your amiibo (the amiibo will then be *connected*).
6. The game should now register/make use of it
7. If the game tells you to remove the amiibo, *disconnect* it.
## For developers
emuiibo hosts a custom IPC service, also named emuiibo, which can be used to control amiibo emulation by other homebrew tools.
The overlay's code serves a good example to see how to control emuiibo with libnx.
## Credits
- Everyone who contributed to the original nfp-mitm project (and other forks): Subv, ogniK, averne, spx01, SciresM
- AmiiboAPI web API, which is used by emutool to get a proper, full amiibo list, in order to generate virtual amiibos.
- 3dbrew for their detailed documentation of amiibos, even though some aspects are different on the Switch.
- LoOkYe for writing emuiibo's wiki and helping with support.
- AD2076 and AmonRaNet for helping with the tesla overlay.
- AmonRaNet for all the work he put into the overlay.
- AmonRaNet, Impeeza, amazingfate, qazrfv1234, shadow2560 and SimoCasa for providing/helping with translations.
- Thog / Ryujinx devs for reversing mii services and various of its types.
- Citra devs for several amiibo formats used in 3DS systems.
- Manlibear for helping with improvements and development of emutool.
- All the testers and supporters from my Discord server who were essential for making this project progress and become what it is now :)
## License exemption
The Ryujinx project/team is exempt from GPLv2 licensing, and may make use of emuiibo's code licensing it under their current license.
Changelog
1.1.2
Updated for the latest changes in Rust libraries