emuiibo/emutool 1.0.0

XorTroll vient de pondre une mise à jour de son utilitaire permettant d’émuler les amiibo sur votre Switch. Le développeur estime qu’un cap a été franchi et ne considère donc plus son œuvre comme une pre-release. Le journal des modifications est long comme le bras, mais s’il faut retenir une chose, c’est que l’ensemble a été compilé avec les dernières librairies (libtelsa, libnx, etc.), assurant ainsi une compatibilité impeccable avec le dernier firmware en date (16.0.2).

↓ Nouveautés / Corrections (cliquer pour voir) ↓
  • This update’s major milestone (among others) is to finally intercept nfp:sys service, AKA intercepting system settings/applet amiibo support – hence, many changes here are because of this
  • emuiibo is no longer a pre-release, by the way 😉

NOTE: don’t forget to update to the latest nx-ovlloader/Tesla menu!

  • The virtual amiibo format went through some major changes system-settings support required:
    • Now area information is saved in <amiibo>/areas.json, which stores pairs of access_id and program_id values. System settings support also requires knowing the program ID of the title using the area, which is why now area information is saved here
    • This JSON also contains a current_area_access_id field: system settings’s option to delete an amiibo’s save data conflicts with emuiibo’s implementation of saving (real amiibos have a single game save data while emuiibo allows multiple), so this field contains the currently « selected » area, which consists on the area system settings will see and show info of/delete
    • In order to convert old formats to this new changes, the areas.json file will be created automatically, but since there is no way for emuiibo to tell the program ID of plain amiibo areas, it will set a certain ID by default (to be distinguishable from the rest, I opted for « Retain Interactive Display Menu »‘s one, which is a debug program), and for the correct ID to be set on the area info, the user must use the amiibo with the game in question. I know this can be a bit tedious, but it’s the best way to handle it
    • Now virtual amiibos with names longer than 10 characters are ignored and considered as invalid. Due to certain technical reasons (and Nintendo being too inconsistent with its formats) I originally thought the limit was at 40, but in certain contexts (like system settings) where the 10-char limit is imposed, existing virtual amiibos with longer names tend to cause weird/unexpected behavior
    • The system settings formatting option will remove all virtual amiibo areas (won’t unregister it like with real amiibos since virtual amiibos have no concept of being (un)registered)
    • The system-settings game-save-deleting option will remove the selected amiibo area, which can be changed from the overlay. This selected area will also be the one system-settings always shows
    • Now the random-UUID option has its own field in the amiibo.json file (use_random_uuid), so that amiibos will have their own UUID which won’t be cleared when random-UUID wants to be enabled (see related overlay changes)
  • Old formats supported in older emuiibo versions (raw bin dumps and older virtual amiibos) are fully supported now! Backwards-compatibility has been reimplemented so that these outdated formats are automatically converted to the modern format on boot (for bin dumps, the dump binary file gets moved but not deleted)
    • Criptography is now supported, so that if /switch/key_retail.bin is present, the encrypted sections of bin dumps will be accessible by emuiibo, so that the resulting converted amiibos will contain all the amiibo data present there (this includes game app-data areas, AKA amiibo game save-data)

emuiibo

  • Compiled with latest libraries
  • All the format changes above resulted in code changes to support it, of course
  • The emuiibo IPC service (used by the overlay and other homebrew to control emuiibo) has some new commands reflecting the format changes. As always, the overlay is the best example of a homebrew using this service to control amiibo emulation
  • Some amiibo ID internal bugs were fixed (again, huge shoutout to Nintendo for being unnecessarily and heavily inconsistent with their amiibo formats across platforms), which would’ve previously caused some isssues with certain games (like Monster Hunter Rise, Splatoon, etc.)

overlay

  • Compiled with latest libtesla/libnx
    • A long-standing libtesla UI cleanup bug was fixed which may have caused crashes sometimes
  • The UI was extended (following the new format changes) to show/toggle the currently selected area of the active virtual amiibo, as well as to toggle amiibos’ random UUID option
  • Listed amiibo/plain directory entries are now alphabetically ordered
  • If the title is installed, it’s name will be shown; otherwise, it’s plain program ID will be shown
  • emuiibo’s version is now checked, so that an overlay will refuse to work with older/newer emuiibo versions and thus only work with the exact same version
  • French language support was added

emutool

  • .NET framework version was lowered to v4.5.2, hoping this may increase compatibility with certain systems
  • Amiibos whose default name contains « / » are replaced with « _ », and special characters are also replaced with their ASCII equivalents (like E from È) to avoid issues with system paths on virtual amiibo creation