Atmosphère 0.12.0

SciresM est décidément très en forme en ce moment, enchaînant les versions successives pour le Custom Firmware Atmosphère. Cette nouvelle mise à jour est moins précipitée que les précédentes (pas d’urgence à cause d’un nouveau firmware officiel) et ça se sent, le journal des modifications est un vrai roman une fois de plus. On notera principalement :

  • un assouplissement dans la politique de protection BIS du système, avec la possibilité d’écrire dans la partition PRODINFO (Blawar ne pourra plus pleurnicher à ce sujet, quelle tristesse…)
    • ajouter « allow_writing_to_cal_sysmmc=1 » (sysNAND) à exosphere.ini (1)
  • le support natif du masquage des données uniques de la console de la partition PRODINFO (l’équivalent du homebrew Incognito, mais sans écrire dans la partition !)
    • ajouter « blank_prodinfo_sysmmc=1 » (sysNAND) ou « blank_prodinfo_emummc=1 » (emuNAND) à exosphere.ini (2)
  • le déplacement du fichier exosphere.ini stocké auparavant dans le dossier Atmosphère, il sera désormais à à la racine de la microSD (ce qui évitera toute perte accidentelle si vous supprimez ce dossier)


(1) le mode incognito n’a jamais prouvé son efficacité à 100%. Une mise en cache des informations uniques de la console est tout à fait possible, ce qui ruinerait complètement l’intérêt de celui-ci. Son utilisation n’est pas encouragée par le développeur.

(2) l’écriture de la partition PRODINFO n’est pas anodin, sachant qu’elle contient les données uniques de la console. Atmosphère réalisera donc un backup de ces données et le vérifiera avant d’autoriser l’écriture de la partition.  L’utilisation de cette option n’est pas encouragée par le développeur. À noter qu’en emuNAND, l’option est active par défaut.


↓ Nouveautés / Corrections (cliquer pour voir) ↓

0.12.0 is Atmosphère’s thirty-first official release.

fusee-primary was last updated in: 0.12.0.

With thanks to the @switchbrew team, Atmosphère 0.12.0 is bundled with hbl 2.3.1, and hbmenu 3.3.0.

The following was changed since the last release:

  • Configuration for exosphere was moved to sd:/exosphere.ini.
    • This is to facilitate BIS protection changes described below.
    • Hopefully having this outside of the Atmosphere folder will prevent accidental deletion, since this now contains important settings.
  • Atmosphere’s bis protection policy for the PRODINFO partition was substantially reworked.
    • Support was added for « automatically » performing a « blanking » operation to PRODINFO without actually modifying NAND.
      • This is equivalent to using the « incognito » homebrew tool, but NAND is never actually modified.
      • This can be turned on in sysmmc by setting blank_prodinfo_sysmmc=1 in exosphere.ini, and in emummc by setting blank_prodinfo_emummc=1 in exosphere.ini.
      • Please note: This is not known to be safe. There is a lack of research on whether the information blanked out is cached elsewhere in the system.
        • Usage of this option is not encouraged for this reason.
    • Support was added for writing to the PRODINFO partition, if a verified encrypted backup has been made.
      • PRODINFO is the only system data that cannot be recovered if not backed up, and thus Atmosphere has backed it up to the SD card on boot for some time now.
      • Users who wish to modify their calibration data may now do so unconditionally in emummc, and in sysmmc if allow_writing_to_cal_sysmmc=1 is set in exosphere.ini.
        • Please note: This is heavily discouraged, and the typical user will almost never want to do this.
        • Setting this option will cause Atmosphere to attempt to verify (or create) an encrypted backup of the PRODINFO data to an unused region in the partition.
          • The backup is encrypted with per-console keys that Atmosphere’s developers do not know.
        • If the backup is not verified or created, writes will not work. Users who have corrupted their PRODINFO in the past are encouraged to flash a good backup to allow use of this setting.
        • Reads and writes to the region used for the securely encrypted backup will appear to succeed, but will actually read/write from a buffer filled with garbage in memory.
    • Support will be investigated in the future for supporting booting with fully blanked calibration.
      • This is desirable to allow boot to succeed for users who lost their calibration data due to bricking homebrew before bis protection was implemented.
  • creport has been updated to use the new screenshot APIs added in 9.0.0+.
    • On 10.0.0+, if a crash occurs in an application (not applet or sysmodule) a screenshot will now be automatically saved to the SD card.
    • If the user applies a patch to vi on 9.0.0 (as the command this uses was previously for dev-units only), this can also work on 9.0.0.
  • The new sysmodule pgl added in 10.0.0 was reimplemented.
    • pgl (« Program Launcher », probably) is responsible for managing launched user-processes, previously this was handled by NS.
    • The most exciting thing about pgl is that it finally provides an API for multiple clients to subscribe to process events.
    • Using these new APIs, system modules / other homebrew can subscribe to be notified whenever a process event occurs.
      • This means action can be taken on process launch, process exit, process crash, etc.
    • A slight concern with Nintendo’s implementation is that each subscriber object uses 0x448 bytes of memory, and N only reserves 8KB for all allocations in pgl.
    • Atmosphere’s implementation uses a 32KB heap, which should not be exhaustible.
    • Atmosphere’s implementation has a total memory footprint roughly 0x28000 bytes smaller than Nintendo’s.
  • A reimplementation was added for the jpegdec system module (thanks @HookedBehemoth)!
    • This allows two sessions instead of 1, so homebrew can now use it for software jpeg decoding in addition to the OS itself.
    • As usual the implementation has a very slightly smaller memory footprint than Nintendo’s.
  • dmnt’s Cheat VM was extended to add three new opcodes.
    • The first new opcode, « ReadWriteStaticRegister », allows for cheats to read from a bank of 128 read-only static registers, and write to a bank of 128 write-only static registers.
      • This can be used in concert with new IPC commands that allow a cheat manager to read or write the value of these static registers to have « dynamic » cheats.
        • As an example, a cheat manager could write a value to a static register that a cheat to control how many of an item to give in a game.
        • As another example, a cheat manager could read a static register that a cheat writes to to learn how many items a player has.
  • The second and third opcodes are a pair, « PauseProcess » and « ResumeProcess ».
    • Executing pause process in a cheat will pause the game (it will be frozen) until a resume process opcode is used.
      • These are also available over IPC, for cheat managers or system modules that want to pause or resume the attached cheat process.
    • This allows a cheat to know that the game won’t modify or access data the cheat is accessing.
      • For example, this can be used to prevent Pokemon from seeing a pokemon a cheat is in the middle of injecting and turning it into a bad egg.
  • A bug was fixed that would cause the console to crash when connected to Wi-Fi on versions between 3.0.0 and 4.1.0 inclusive.
  • A bug was fixed that could cause boot to fail sporadically due to cache/tlb mismanagement when doing physical ASLR of the kernel.
  • A number of other minor issues were addressed (and more of Atmosphere was updated to reflect other changes in 10.0.x).
  • General system stability improvements to enhance the user’s experience.

For information on the featureset supported by 0.12, please see the official release notes.


le payload fusee-primary a également été mis à jour en 0.12.0. À utiliser avec votre injecteur préféré (TegraRCM, Rekado, RCMLoader, Trinket m0, etc.) pour lancer cette nouvelle version d’Atmosphère.