Atmosphère

Version vom 4. Januar 2020, 01:25 Uhr von ICON (Diskussion | Beiträge) (Sprach- und Regionsemulation)

Atmosphère ist eine freie Custom Firmware für die Nintendo Switch. Entwickelt wird sie hauptsächlich von SciresM. Sie ist unter einer freien Lizenz verfügbar und wird aktiv weiterentwickelt.

Atmosphère
Atmosphère
Allgemein
Nintendo Switch
Nintendo Switch
Entwickler SciresM, TuxSH, hexkyz, fincs
Kategorie Custom Firmware
Lizenz GPLv2
Links
Download
Website
Atmosphère Version in den Systemeinstellungen: Aktuelle Firmware|Atmosphère-Version|NAND-Typ (S = SysMMC)

Geschichte

  Dieser Abschnitt ist unvollständig. Du kannst uns helfen, indem du die fehlenden Informationen ergänzt.

Im März 2018 gab SciresM bekannt, dass die Custom Firmware "Atmosphère" im Sommer 2018 für alle zu dem Zeitpunkt erhältlichen Switch-Modelle und -Firmware-Versionen erscheinen soll.[1] Die erste öffentliche Version erschien mit etwas Verzögerung im Oktober 2018 als v0.7.[2]

Atmosphère v0.8.5 fügte Cheat-Support hinzu.[3] Seit v0.9.0 wird ein EmuMMC unterstützt.[4].

Komponenten

Atmosphère zielt darauf ab, fast alle System-Komponenten der Switch zu reimplementieren und dabei zu erweitern. Sie heißen dabei:

  • Fusée: Bootloader, verifiziert und startet Exosphère und Package2 (Kernel/FIRM-Systemmodule) und patcht diese, falls nötig.
    • Sept: Payload zur Schlüsselableitung auf allen Firmware-Versionen >= 7.0.0. Ein Teil von sept ist signiert/verschlüsselt, weshalb es ohne Keys nicht möglich ist, sept selbstständig zu bauen.
  • Exoshpère: TrustZone mit eigenem Secure Monitor.
  • Thermosphère: EmuMMC, lädt den MMC von der SD-Karte um so eine getrennte Umgebung für bspw. Homebrew zu schaffen.
  • Stratosphère: Eigene Systemmodule mit neuen Features und zur Erweiterung bestehender.
    • ams_mitm: Neues Systemmodul zum on-the-fly Patchen von Dateien und Titeln.
      • bpc_mitm: Ermöglicht das Neustarten in einen Payload (bspw. wieder Atmosphère) und das vollständige Herunterfahren, wenn AutoRCM aktiviert ist (siehe AutoRCM#Herunterfahren). Überschreibt den bpc PCV-Service von Nintendo.
      • fs_mitm: Kann Dateien von Titeln mit denen auf der SD-Karte ersetzen, auch bekannt als "LayeredFS".
      • hid_mitm: Mit der Firmware 9.0.0 wurden die HID-Komponenten für Controller so sehr geändert, dass libnx (die Bibliothek zum Bauen von Switch-Homebrews) keine Controller-Eingaben mehr erkennt. Dieses Problem wurde zwar in neueren libnx-Versionen behoben, allerdings müssen Homebrews mit der neuen libnx-Version neu gebaut werden. Da nicht jede Homebrew sofort aktualisiert wird/werden kann, wurde als Übergang ein temporäres Modul eingeführt, welches das Problem behebt.[5] Da es somit nicht mehr möglich ist, das HID-Modul selbst zu überschreiben, wird dieser Workaround in Zukunft entfernt. Mit Atmosphère v0.10.2 wurde es per Standard deaktiviert.[6]
      • ns_mitm: Ermöglicht die Verwendung von Web-Applets im Homebrew Menu, wenn eine Anwendung überschrieben wird, da diese erst prüfen, ob es HTML-Inhalte in der Anwendung gibt.
      • set_mitm: Verändert die Anzeige der Systemversion (GetFirmwareVersion) (siehe Bild) und liest weitere Einstellungen aus einer INI-Datei. Dabei wird der System-Settings-Service abgefangen.
    • boot: Reimplementierung von Nintendos "boot"; initialisiert die Hardware und startet das System.
    • boot2: Reimplementierung von Nintendos "boot2"; lädt weitere Prozesse.
    • creport: Generiert Absturzberichte auf der SD-Karte und verhindert das Senden dieser an Nintendo
    • dmnt: Cheat-Code-Support, inklusive Kompatibilität zu Gateshark. "dmnt" steht dabei für "Debug Monitor".
    • eclct.stub: Deaktiviert weitere Telemetrie-Dienste von Nintendo.
    • fatal: Reimplementiert Nintendos fatal und zeigt einen umfangreichen Fehlerbildschirm bei einem fatalen (deshalb der Name) Absturz an. Auch kann die Konsole mit den Lautstärketasten direkt neu gestartet werden.
    • loader: Reimplementiert Nintendos "loader" und ermöglicht das Ersetzen von Dateien im ExeFS, das Patchen von NSOs, sowie Button-Overrides (bspw.: "R" gedrückt halten, während ein Spiel startet, startet das Homebrew Menu mit vollem RAM-Zugriff).
    • pm: Reimplementierung von Nintendos "Process Manager", gibt u.a. mehr Speicher für Systemmodule frei.
    • ro: Reimplementierung von Nintendos RO-Services.
    • sm: Reimplementierung von Nintendos "Service Manager". Dieser ist für Entwickler interessant, da so u.a. ein eigener MitM-Service registriert werden kann. Patcht per Standard auch "smhax"[7][8] auf der Firmware < 3.0.1; dies lässt sich allerdings per Konfiguration rückgängig machen.
    • spl: Reimplementierung von Nintendos "Secure Platform Services".
  • Mesosphère: Reimplementierung von Nintendos Kernel.
  • Troposphère: HorizonOS-Patches für Applikationen. Dies ist noch nicht in Atmosphère implementiert.[9]

Ordnerstruktur

Die Inhalte in (kursiven Klammern) dienen der Erklärung

SD-Karte
|   fusee-primary.bin (Payload, der an die Switch gesendet werden muss, um den Bootprozess einzuleiten)
|   hbmenu.nro  (Homebrew Menu)
|
+---atmosphere
|   |   fusee-mtc.bin
|   |   fusee-secondary.bin (Signierter/verschlüsselter Fusée-Teil)
|   |   hbl.nsp (Homebrew Loader, der das Homebrew Menü lädt)
|   |   reboot_payload.bin (Kopie von fusee-primary, wird bei einem Neustart ausgeführt)
|   |
|   +---config (Konfigurationsdateien)
|   |       BCT.ini  (Einstellungen für Exosphère, Stratosphère und fusee-primary)
|   |
|   +---config_templates (Konfigurationstemplates, müssen in "config" kopiert werden)'
|   |       override_config.ini (Button-Overrides)
|   |       system_settings.ini (Atmosphère-Einstellungen)
|   |
|   +---contents (Ordner für fs_mitm, ersetzt Inhalte in Anwendungen/Modulen, Ordnerinhalte nachfolgend gekürzt)
|   |   +---0100000000000008 (boot2)
|   |   |
|   |   +---010000000000000D (dmnt)
|   |   |
|   |   +---0100000000000032 (eclct.stub)
|   |   |
|   |   +---0100000000000034 (fatal)
|   |   |
|   |   +---0100000000000036 (creport)
|   |   |
|   |   \---0100000000000037 (ro)
|   |
|   +---fatal_errors (Fehlerreports von fatal)
|   +---hbl_html (Zum Starten von Web-Applets)
|   |
|   \---kip_patches (KIP-Patches)
|
+---sept (sept)
|
\---switch (Ordner für Homebrews)
        reboot_to_payload.nro (Startet /atmosphere/reboot_payload.bin)

Installation

Um Atmosphère zu "installieren" muss lediglich die Release-ZIP auf die SD-Karte entpackt werden. Für die meisten Nutzer werden auch noch die Signatur-Patches empfohlen. Die fusee_primary.bin muss anschließend gestartet werden, bspw. über Fusée Gelée.

Features

  Dieser Dieser Abschnitt ist unvollständig. Du kannst uns helfen, indem du die fehlenden Informationen ergänzt.

Sprach- und Regionsemulation

Atmosphère ermöglicht es, einem Spiel eine andere Region und/oder Sprache vorzutäuschen, ohne diese in den Einstellungen ändern zu müssen. Hierzu muss eine Datei im Pfad "/atmosphere/contents/TITLEID/config.ini" mit folgendem Inhalt erstellt werden:

[override_config]
override_language = SPRACHE
override_region = REGION

Wobei "SPRACHE" und "REGION" durch einen Wert aus den untentstehenden Tabellen ersetzt werden müssen.

Um beispielsweise die Sprache von "Dr. Kawashimas Gehirn-Jogging für Nintendo Switch" auf italienisch zu ändern, muss die Datei "/atmosphere/contents/0100ED000D390000/config.ini" mit folgendem Inhalt erstellt werden:

[override_config]
override_language = it

Sprachen

Wert Steht für
de Deutsch
en-GB Englisch (Großbritannien)
en-US Englisch (USA)
es Spanisch (Europa)
es-419 Spanisch (Lateinamerika und Karibik)
fr Französisch
fr-CA Französisch (Kanada)
it Italienisch
ja Japanisch
ko Koreanisch
nl Niederländisch
pt Portugiesisch
ru Russisch
zh-CN Chinesisch (vereinfacht)
zh-TW Chinesisch (traditionell)
zh-Hans Chinesisch (vereinfacht, ist gleich zh-CN)
zh-Hant Chinesisch (traditionell, ist gleich zh-TW)

Regionen

Wert Steht für
aus Australien
chn China
eur Europa
jpn Japan
kor Südkorea
twn Taiwan
usa USA

Trivia

Einzelnachweise