Atmosphere 1.2.3

SciresM est très en forme en ce moment en enchaînant les versions d’Atmosphère. Cette version fait suite à la mise à jour 2.0.0 d’Animal Crossing, dont le nombre de fichiers plus qu’indécent (> 99000), rend le Custom Firmware instable en saturant la mémoire disponible pour fs.mitm. Une parade a été mise en place, mais rendra le démarrage de ce jeu plus lent (de l’ordre de quelques secondes); les autres jeux ne devraient pas être impactés outre mesure.Par la même occasion, ams.TMA a été implémenté (de manière expérimental). Il s’agit d’une fonction à destination des développeurs, à priori pour faciliter le développement des homebrews (debug).

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

1.2.3 is Atmosphère’s sixtieth official release.

Please be sure to update fusee when upgrading to 1.2.3. fusee-primary no longer exists, and will not work any more.

With thanks to the @switchbrew team, Atmosphère 1.2.3 is bundled with hbl 2.4.1, and hbmenu 3.5.0.

The following was changed since the last release:

  • Because ams.TMA is taking longer to develop than expected, experimental support for Atmosphère’s gdbstub as a standalone is now available.
    • Please Note: The GDBstub is new and may have bugs/need work. If you find issues, please report them to SciresM#0524 — all help finding/fixing bugs is appreciated, here.
      • Generally speaking, if you would like to report information about fixes needed/discuss development of the gdbstub, join ReSwitched’s #dev-support channel.
    • To enable it, set atmosphere!enable_standalone_gdbstub = u8!0x1 in system_settings.ini.
      • The standalone also requires atmosphere!enable_htc = u8!0x0, but this should be the case for everyone since ams.TMA isn’t actually usable yet.
    • Once enabled, open the devkitPro provided-gdb (aarch64-none-elf-gdb for 64-bit or arm-none-eabi-gdb for 32-bit).
      • The standalone stub exposes itself on port 22225 — so the command to connect is target extended-remote <ip address>:22225.
      • Type info os processes to get a list of process IDs that can be attached to.
        • The stub should work on both system programs, games, and homebrew — but please note that debugging certain processes (like sockets) can cause hang due to the stub using them itself.
    • Software break-points, hardware break-points, hardware watch-points, and hardware single-step are all supported/implemented.
    • The following monitor commands are currently supported:
      • monitor get info: Get process info, address space layout, and information on modules.
      • monitor get mappings: Get all memory mappings.
      • monitor get mapping <addr>: Get the memory mapping for a specific address.
      • monitor wait application: Causes the stub to wait for an application to be launched. The next application will be started suspended.
        • User is expected to send attach <pid> after launching, which will cause attach-on-first-instruction. Failure to attach may cause system instability, this probably needs work.
  • Changes were made to the way fs.mitm builds images when providing a layeredfs romfs.
    • Animal Crossing’s 2.0.0 update contains >99000 files, and has tables so big that we ran out of memory even after the optimizations made in 0.10.5.
      • Previously, we used fixed-sized 0x40000 work buffers for file/directory tables and simultaneously built hash/content tables in one loop over files/directories.
      • We now iterate over the file/directory tables multiple times, first once to determine the hash table indices, then repeatedly to build hash tables, then once to build content tables.
      • We also now allow smaller-than-0x40000 work buffers, trying half-as-big buffers until allocation succeeds (or work buffer would be <0x4000, which is a safeguard against truly horrible performance).
    • There is a slight speed penalty to these changes, but it’s on the order of seconds for the worst case (Animal Crossing) and trivial for most games with reasonable tables.
    • If you encounter a game that exhausts ams.mitm’s memory (crashing it) when loading layeredfs mods, please contact SciresM#0524.
      • It’s really hard to imagine any game being worse than Animal Crossing, but if it happens again I will drop everything to fix it as usual.
  • creport now attempts to parse symbol tables if present.
    • If a game executable has a symbol for a given address, the function-relative-offset will now be printed after the module-relative-offset.
  • General system stability improvements to enhance the user’s experience.

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