Emuiibo v0.3 Released

Emuiibo v0.3 Released


XorTroll has released a new version of Emuiibo, which is a virtual amiibo (amiibo emulation) system for your homebrew enabled Nintendo Switch hybrid video gaming console. It allows you to use your own self created amiibo's with your original games, thus unlocking features and functionality that would normally require you to purchase an amiibo figurine.

What's New?

Quote:
*  Emuiibo has been fully rewritten, what involves several changes:

    *  Amiibo moves should be faster now since on previous versions the amiibo dir would be re-scanned (thus iterated over every amiibo) each time user moved to the next amiibo.

    *  Amiibo structure and filesystem layout have changed to a WAY more proper one. (see below)

*  New amiibo structure - dumps no longer required!

    *  The only relevant part of an amiibo is its unique ID (the rest can be emulated), thus having online databases of this IDs, dumps are useless, but still supported ;)

    *  Amiibos go now inside /emuiibo/amiibo/ for a better directory layout. Don't worry about backwards compatibility. (see below)

    *  Amiibos can be placed inside /emuiibo/amiibo// to be only used in that specific game. Amiibos outside those directories will be used on any game.

    *  Backwards compatibility for any kind of amiibo, considering that 3 types exist: single dumps, 0.2.x format and the new 0.3+ format

*  Say hello to a new tool to create virtual amiibos easily - `emuGUIibo`!

    *  Made using Windows Forms, so should be supported by Mono

    *  Accesses a full amiibo list from an online API, so the user just has to select an amiibo and customize it!

    *  Amiibos are generated on the user-specified directory. If a drive with /emuiibo directory is detected, emuGUIibo will assume it's a console's SD card and default (but not force) that path.

*  (Probably developer only) `nfp:emu` service changes:

    *  Commands were renamed and reordered, so make sure you update your implementation.

    *  Added new command to get emuiibo version by 3 integers (major.minor.micro)
Description

Emuiibo is a virtual amiibo (amiibo emulation) system for your homebrew enabled Nintendo Switch hybrid video gaming console. It allows you to use your own self created amiibo's with your original games, thus unlocking features and functionality that would normally require you to purchase an amiibo figurine.

Instructions

## Usage

Download the latest release and place it on your CFW's `titles` folder (so it would be like `[cfw]/titles/0100000000000352`).

According to tests, should work on any CFW which allows NSP sysmodules (Atmosphere, ReiNX).

You also have to set the boot2 flag in the CFW's `/titles` directory: `[cfw]/titles/0100000000000352/flags/boot2.flag`.

### Combos

All the input combos are performed with R-Stick pressing and pressing the D-pad in an specific direction (at the same time). Combos must (should) be done before or after the game starts looking for amiibos.

- Activate amiibo emulation: Press R-Stick (like it was a button) and also pressing the D-pad up. Toggles/untoggles emulation.

- Activate amiibo emulation once: Same as above, but pressing the D-pad right. Toggles emulation once, after emulating an amiibo then it will untoggle automatically.

- Deactivate amiibo emulation: Same as above, but pressing the D-pad down. Untoggles amiibo emulation, and should be used as a way to fully ensure it is untoggled, in case you don't know whether it's toggled or not.

- Move to next amiibo: Same as above, but pressing the D-pad left. Moves to the next amiibo in the amiibo directory, if last one starts again with the first one. Only has effect if amiibo emulation is toggled.

### SD layout

- Emuiibo's directory is `sd:/emuiibo`.

- Amiibos go inside `sd:/emuiibo/amiibo`. For instance, an amiibo named `MyMario` would be `sd:/emuiibo/amiibo/MyMario/[json files]`.

- Every time the console is booted, emuiibo saves all the miis inside the console to the SD card. Format is `sd:/emuiibo/miis/[index] - [name]/mii-charinfo.bin`.

## Amiibo emulation

Emuiibo no longer requires dumps to emulate amiibos. Instead, you can use `emuGUIibo` PC tool in order to generate virtual amiibos.

![Screenshot](emuGUIibo/Screenshot.png)

### How do virtual amiibos work?

Virtual amiibos consist on a folder containing several JSON files.

A virtual amiibo, in order to be recognised as valid, must contain valid `tag.json`, `register.json`, `common.json` and `model.json` files. This file names were chosen according to the way the console processes amiibos, which are splitted into 4 processed data blocks (TagInfo, ModelInfo, CommonInfo and RegisterInfo).

The only relevant part of an amiibo, which identifies the type of amiibo, is the amiibo ID. Every other parameter can be emulated or isn't that relevant. The NFC UUID, present on amiibo NFC dumps, is randomly generated with virtual amiibos, since it isn't something important whatsoever.

### Miis

Miis can be an issue when attempting to make emuiibo user-friendly. Since mii format is a 88-byte data block named "CharInfo" and we have no way to see char-infos rendered but in the console itself, there is no simple way to change the mii.

## Important notes

If (with emuiibo activated!) the title responds with an error similar to "No controller which supports NFC was found" probably means that emuiibo failed to supply the amiibo (wrong amiibo, internal error...). That error is displayed due to limitations with real NFC error codes.

## For developers

emuiibo also hosts a custom service, `nfp:emu`, which can be used to control amiibo emulation by IPC commands.

You have an implementation for C/C++ and libnx in [here](nfpemu-libnx).

Credits

- Everyone who contributed to the original nfp-mitm project (forks): *Subv, ogniK, averne, spx01, SciresM*

- libstratosphere project and libraries

- AmiiboAPI (JSON API), which is used by `emuGUIibo` to get a proper, full amiibo list, in order to generate virtual amiibos without the need of raw dumps.

Changelog

v0.3

*   Emuiibo has been fully rewritten, what involves several changes:
    *   Amiibo moves should be faster now since on previous versions the amiibo dir would be re-scanned (thus iterated over every amiibo) each time user moved to the next amiibo.
    *   Amiibo structure and filesystem layout have changed to a WAY more proper one. (see below)

*   New amiibo structure - dumps no longer required!
    *   The only relevant part of an amiibo is its unique ID (the rest can be emulated), thus having online databases of this IDs, dumps are useless, but still supported ;)
    *   Amiibos go now inside /emuiibo/amiibo/ for a better directory layout. Don't worry about backwards compatibility. (see below)
    *   Amiibos can be placed inside /emuiibo/amiibo// to be only used in that specific game. Amiibos outside those directories will be used on any game.
    *   Backwards compatibility for any kind of amiibo, considering that 3 types exist: single dumps, 0.2.x format and the new 0.3+ format

*   Say hello to a new tool to create virtual amiibos easily - `emuGUIibo`!
    *   Made using Windows Forms, so should be supported by Mono
    *   Accesses a full amiibo list from an online API, so the user just has to select an amiibo and customize it!
    *   Amiibos are generated on the user-specified directory. If a drive with /emuiibo directory is detected, emuGUIibo will assume it's a console's SD card and default (but not force) that path.
*   (Probably developer only) `nfp:emu` service changes:
    *   Commands were renamed and reordered, so make sure you update your implementation.
    *   Added new command to get emuiibo version by 3 integers (major.minor.micro)

v0.2.1

*   8.1.0 support, working as always
*   A new command was introduced in nfp:emu (RescanAmiibos)

v0.2

*   Amiibo progress saving support

    *   Games like SSBU allow saving their progress on amiibos. Now this is supported by redirecting savedata to files inside amiibo's "areas" directory.

    *   This, in fact, provides another advantage, as real amiibos just allow savedata for one title, while this system allows to have multiple saves.

*   Amiibo system changed

    *   First of all, don't worry. All amiibo BIN files found in emuiibo dir will be auto-converted to the new system.

    *   The new system has every amiibo in a different directory, which contains the amiibo ("amiibo.bin"), a JSON metadata file ("amiibo.json"), an "areas" directory (see above) and a mii char-info copy ("mii.dat").

    *   On this system everything can be customized. In order to change miis you would need the char-info data, which is stored inside the console. To help with this, emuiibo will dump all console miis inside "miis" directory in emuiibo dir, named with the index + mii name (example: "0-XorTroll.dat"). To use it, copy to the amiibo dir and name it as "mii.dat".

    *   An interesting option can be added to the JSON ("randomizeUuid" boolean), which makes emuiibo randomize the amiibo UUID. Having this means special circumstances in certain games, like being recognized as a different amiibo each time in BotW, hence infinite supply.

    *   IMPORTANT! After using 0.2, since the old system gets changed to the new one, 0.1 won't find any amiibos as they're not on the root dir now. Thus, avoid using 0.1 after using 0.2.

*   HOME button LED blink (7.x+, sadly)

    *   On firmwares on 7.x or higher, performing a combo makes the HOME button blink, which is a simple and nice system to signal that a combo has been performed. Not supported on previous versions for technical limitations.
*   nfp:emu service changed, with new commands

Also, a remainder that the next Goldleaf version (0.6) is going to have emuiibo support, featuring real amiibo dumping to emuiibo-style and more!

v0.1

This is the first release of emuiibo, still a beta.
Check the README for more details.

Links & Downloads
https://github.com/XorTroll/emuiibo/releases

Post a Comment

0 Comments