Atmosphère: Unterschied zwischen den Versionen

Aus WiiDatabase Wiki
Zur Navigation springenZur Suche springen
9.702 Bytes hinzugefügt ,  21. März 2020
K
(35 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 8: Zeile 8:
| Bildbreite = 125px
| Bildbreite = 125px
| Website = https://github.com/Atmosphere-NX/Atmosphere
| Website = https://github.com/Atmosphere-NX/Atmosphere
}}[[Datei:Atmosphere Systemversion.jpg|mini|<nowiki>Atmosphère Version in den Systemeinstellungen: Aktuelle Firmware|Atmosphère-Version|NAND-Typ (S = SysMMC)</nowiki>]]
}}[[Datei:Atmosphere Systemversion.jpg|mini|<nowiki>Atmosphère-Version in den Systemeinstellungen: Aktuelle Firmware|Atmosphère-Version|NAND-Typ (S = SysMMC)</nowiki>]]
'''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''' 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.


== Geschichte ==
== Geschichte ==
{{Stub|Typ=Abschnitt}}
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.<ref>[https://wiidatabase.de/switch-atmosphere-cfw-soll-im-sommer-fuer-alle-switch-firmware-erscheinen/ Switch: Atmosphère CFW soll im Sommer für alle Switch-Firmware-Versionen erscheinen]</ref> Die erste öffentliche Version erschien mit etwas Verzögerung im Oktober 2018 als v0.7.<ref>[https://wiidatabase.de/atmosphere-v0-7-erschienen/ Atmosphère v0.7 erschienen]</ref>
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.<ref>[https://wiidatabase.de/switch-atmosphere-cfw-soll-im-sommer-fuer-alle-switch-firmware-erscheinen/ Switch: Atmosphère CFW soll im Sommer für alle Switch-Firmware-Versionen erscheinen]</ref> Die erste öffentliche Version erschien mit etwas Verzögerung im Oktober 2018 als v0.7.<ref>[https://wiidatabase.de/atmosphere-v0-7-erschienen/ Atmosphère v0.7 erschienen]</ref>


Atmosphère v0.8.5 fügte Cheat-Support hinzu.<ref>[https://wiidatabase.de/atmosphere-v0-8-5-mit-cheat-support/ Atmosphère v0.8.5 mit Cheat-Support]</ref> Seit v0.9.0 wird ein EmuMMC unterstützt.<ref>[https://wiidatabase.de/atmosphere-v0-9-0-mit-experimentellem-emunand/ Atmosphère v0.9.0 mit experimentellem EmuNAND]</ref>.
Atmosphère v0.8.5 fügte Cheat-Support hinzu.<ref>[https://wiidatabase.de/atmosphere-v0-8-5-mit-cheat-support/ Atmosphère v0.8.5 mit Cheat-Support]</ref> Seit v0.9.0 wird ein [[#EmuMMC|EmuMMC]] unterstützt.<ref>[https://wiidatabase.de/atmosphere-v0-9-0-mit-experimentellem-emunand/ Atmosphère v0.9.0 mit experimentellem EmuNAND]</ref>.


== Komponenten ==
== Komponenten ==
Zeile 21: Zeile 20:
* '''Fusée''': Bootloader, verifiziert und startet Exosphère und Package2 (Kernel/FIRM-Systemmodule) und patcht diese, falls nötig.
* '''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 >= [[Nintendo-Switch-Firmware 7.0.0#Technische Informationen|7.0.0]]. Ein Teil von sept ist signiert/verschlüsselt, weshalb es ohne Keys nicht möglich ist, sept selbstständig zu bauen.
** '''Sept''': Payload zur Schlüsselableitung auf allen Firmware-Versionen >= [[Nintendo-Switch-Firmware 7.0.0#Technische Informationen|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.
* '''Exosphè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.
* '''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.
* {{Anker|Stratosphere}}'''Stratosphère''': Eigene Systemmodule mit neuen Features und zur Erweiterung bestehender.
** '''ams_mitm''': Neues Systemmodul zum on-the-fly Patchen von Dateien und Titeln.
** '''ams_mitm''': Neues Systemmodul zum on-the-fly Patchen von Dateien und Titeln.
*** '''bpc_mitm''': Ermöglicht das [[#Reboot-Payload|Neustarten in einen Payload]] (bspw. wieder Atmosphère) und das vollständige Herunterfahren, wenn AutoRCM aktiviert ist (siehe [[AutoRCM#Herunterfahren]]). Überschreibt den [https://switchbrew.org/wiki/PCV_services#bpc bpc PCV-Service] von Nintendo.
*** '''bpc_mitm''': Ermöglicht das [[#Reboot-Payload|Neustarten in einen Payload]] (bspw. wieder Atmosphère) und das vollständige Herunterfahren, wenn AutoRCM aktiviert ist (siehe [[AutoRCM#Herunterfahren]]). Überschreibt den [https://switchbrew.org/wiki/PCV_services#bpc bpc PCV-Service] von Nintendo.
*** '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/modules/fs_mitm.md fs_mitm]''': Kann Dateien von Titeln mit denen auf der SD-Karte ersetzen, auch bekannt als "'''LayeredFS'''".
*** '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/modules/fs_mitm.md fs_mitm]''': Kann Dateien von Titeln mit denen auf der SD-Karte ersetzen, auch bekannt als "'''LayeredFS'''".
*** {{Anker|hid_mitm}}'''hid_mitm''': Mit der [[Nintendo-Switch-Firmware 9.0.0|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.<ref>[https://github.com/Atmosphere-NX/Atmosphere/releases/tag/0.9.4 Atmosphère v0.9.4]</ref> 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.<ref>[https://github.com/Atmosphere-NX/Atmosphere/releases/tag/0.10.2 Atmosphère v0.10.2]</ref> Siehe auch [[#enable_deprecated_hid_mitm|enable_deprecated_hid_mitm]].
*** {{Anker|hid_mitm}}'''hid_mitm''': Mit der [[Nintendo-Switch-Firmware 9.0.0|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.<ref>[https://github.com/Atmosphere-NX/Atmosphere/releases/tag/0.9.4 Atmosphère v0.9.4]</ref> 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.<ref>[https://github.com/Atmosphere-NX/Atmosphere/releases/tag/0.10.2 Atmosphère v0.10.2]</ref> Siehe auch [[#enable_deprecated_hid_mitm|enable_deprecated_hid_mitm]]. Sollte es in Zukunft entfernt werden, wird SciresM aber einen separaten Download anbieten.<ref>https://arch.b4k.co/vg/thread/276990665/#277109730 "If it's ever removed (and I don't actually have plans to do so, I just wanted to explicitly reserve that right), I will publish a hid-compat-mitm sysmodule on my personal GitHub that can be used as a standalone.
 
Don't worry, I don't want to leave people without an option. It just kinda sucks that people not using it are paying memory costs equivalent to the whole sm sysmodule."</ref>
*** '''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.
*** '''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.
*** '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/modules/set_mitm.md set_mitm]''': Verändert die Anzeige der Systemversion ([https://switchbrew.org/wiki/Settings_services#GetFirmwareVersion GetFirmwareVersion]) ([[:Datei:Atmosphere Systemversion.jpg|siehe Bild]]) und liest weitere Einstellungen aus einer INI-Datei. Dabei wird der [https://switchbrew.org/wiki/Settings_services System-Settings-Service] abgefangen.
*** '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/modules/set_mitm.md set_mitm]''': Verändert die Anzeige der Systemversion ([https://switchbrew.org/wiki/Settings_services#GetFirmwareVersion GetFirmwareVersion]) ([[:Datei:Atmosphere Systemversion.jpg|siehe Bild]]) und liest weitere Einstellungen aus einer INI-Datei. Dabei wird der [https://switchbrew.org/wiki/Settings_services System-Settings-Service] abgefangen.
Zeile 37: Zeile 38:
** '''[[#fatal|fatal]]''': Reimplementiert Nintendos [https://switchbrew.org/wiki/Fatal_services 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.
** '''[[#fatal|fatal]]''': Reimplementiert Nintendos [https://switchbrew.org/wiki/Fatal_services 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.
** '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/modules/loader.md loader]''': Reimplementiert Nintendos "[https://switchbrew.org/wiki/Loader_services loader]" und ermöglicht das Ersetzen von Dateien im ExeFS, das Patchen von NSOs, sowie [[#Button Overrides|Button Overrides]] (bspw.: "R" gedrückt halten, während ein Spiel startet, startet das Homebrew Menu mit vollem RAM-Zugriff).
** '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/modules/loader.md loader]''': Reimplementiert Nintendos "[https://switchbrew.org/wiki/Loader_services loader]" und ermöglicht das Ersetzen von Dateien im ExeFS, das Patchen von NSOs, sowie [[#Button Overrides|Button Overrides]] (bspw.: "R" gedrückt halten, während ein Spiel startet, startet das Homebrew Menu mit vollem RAM-Zugriff).
** '''ncm''': Reimplementierung von [https://switchbrew.org/wiki/NCM_services Nintendos Content Manager].
** '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/modules/pm.md pm]''': Reimplementierung von Nintendos "[https://switchbrew.org/wiki/Process_Manager_services Process Manager]", gibt u.a. mehr Speicher für Systemmodule frei.
** '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/modules/pm.md pm]''': Reimplementierung von Nintendos "[https://switchbrew.org/wiki/Process_Manager_services Process Manager]", gibt u.a. mehr Speicher für Systemmodule frei.
** '''ro''': Reimplementierung von Nintendos [https://switchbrew.org/wiki/RO_services RO-Services].
** '''ro''': Reimplementierung von Nintendos [https://switchbrew.org/wiki/RO_services RO-Services].
Zeile 54: Zeile 56:
&#124;  &#124;  fusee-secondary.bin ''(Signierter/verschlüsselter Fusée-Teil)''
&#124;  &#124;  fusee-secondary.bin ''(Signierter/verschlüsselter Fusée-Teil)''
&#124;  &#124;  hbl.nsp ''(Homebrew Loader, der das Homebrew Menü lädt)''
&#124;  &#124;  hbl.nsp ''(Homebrew Loader, der das Homebrew Menü lädt)''
&#124;  &#124;  reboot_payload.bin ''(Kopie von fusee-primary, wird bei einem Neustart ausgeführt)
&#124;  &#124;  reboot_payload.bin ''([[#Reboot-Payload|Reboot-Payload]], Kopie von fusee-primary, wird bei einem Neustart ausgeführt)
&#124;  &#124;
&#124;  &#124;
&#124;  +---config ''(Konfigurationsdateien)''
&#124;  +---config ''(Konfigurationsdateien)''
&#124;  &#124;      BCT.ini  ''(Einstellungen für Exosphère, Stratosphère und fusee-primary)''
&#124;  &#124;      BCT.ini  ''([[#BCT.ini|Einstellungen für Exosphère, Stratosphère und fusee-primary]])''
&#124;  &#124;
&#124;  &#124;
&#124;  +---config_templates ''(Konfigurationstemplates, müssen in "config" kopiert werden)'''
&#124;  +---config_templates ''(Konfigurationstemplates, müssen in "config" kopiert werden)'''
&#124;  &#124;      override_config.ini ''([[#Button-Overrides|Button-Overrides]])''
&#124;  &#124;      override_config.ini ''([[#Button Overrides|Button-Overrides]])''
&#124;  &#124;      system_settings.ini ''([[#Atmosphère-Einstellungen|Atmosphère-Einstellungen]])''
&#124;  &#124;      system_settings.ini ''([[#System Settings|Atmosphère-Einstellungen]])''
&#124;  &#124;
&#124;  &#124;
&#124;  +---contents ''(Ordner für fs_mitm, ersetzt Inhalte in Anwendungen/Modulen, Ordnerinhalte nachfolgend gekürzt)''
&#124;  +---contents ''(Ordner für fs_mitm, ersetzt Inhalte in Anwendungen/Modulen, Ordnerinhalte nachfolgend gekürzt)''
&#124;  &#124;  +---0100000000000008 ''(boot2)''
&#124;  &#124;  +---0100000000000008 ''(boot2)''
&#124;  &#124;  &#124;
&#124;  &#124;  &#124;
&#124;  &#124;  +---010000000000000D ''(dmnt)''
&#124;  &#124;  +---010000000000000D ''([[#Cheats|dmnt]])''
&#124;  &#124;  &#124;
&#124;  &#124;  &#124;
&#124;  &#124;  +---0100000000000032 ''(eclct.stub)''
&#124;  &#124;  +---0100000000000032 ''(eclct.stub)''
&#124;  &#124;  &#124;
&#124;  &#124;  &#124;
&#124;  &#124;  +---0100000000000034 ''(fatal)''
&#124;  &#124;  +---0100000000000034 ''([[#fatal|fatal]])''
&#124;  &#124;  &#124;
&#124;  &#124;  &#124;
&#124;  &#124;  +---0100000000000036 ''(creport)''
&#124;  &#124;  +---0100000000000036 ''(creport)''
Zeile 79: Zeile 81:
&#124;  +---hbl_html ''(Zum Starten von Web-Applets)''
&#124;  +---hbl_html ''(Zum Starten von Web-Applets)''
&#124;  &#124;
&#124;  &#124;
&#124;  \---kip_patches ''(KIP-Patches)''
&#124;  \---kip_patches ''([[#KIP-Patches|KIP-Patches]])''
&#124;
&#124;
+---sept ''(sept)''
+---sept ''(sept)''
Zeile 91: Zeile 93:


== Features ==
== Features ==
{{Stub|Typ=Dieser Abschnitt}}
=== Homebrew Menu ===
=== Homebrew Menu ===
Standardmäßig gibt es zwei Möglichkeiten, das Homebrew Menu aufzurufen:
Standardmäßig gibt es zwei Möglichkeiten, das Homebrew Menu aufzurufen:
Zeile 104: Zeile 105:
=== Button Overrides ===
=== Button Overrides ===
Mithilfe der Button Overrides (Knopfüberschreibungen) ist es möglich, das Überschreibverhalten des Homebrew Menus zu konfigurieren. So kann bspw. eingestellt werden, dass das Homebrew Menu gestartet werden soll, wenn "Y" gedrückt wird, während das Album gestartet wird.
Mithilfe der Button Overrides (Knopfüberschreibungen) ist es möglich, das Überschreibverhalten des Homebrew Menus zu konfigurieren. So kann bspw. eingestellt werden, dass das Homebrew Menu gestartet werden soll, wenn "Y" gedrückt wird, während das Album gestartet wird.
Mithilfe der [https://wiidatabase.de/switch-downloads/switch-tools/kosmos-toolbox/ Kosmos Toolbox] lassen sich die Button Overrides grafisch direkt auf der Konsole bearbeiten.


Zuerst muss die "<code>/atmosphere/config_templates/override_config.ini</code>" nach "<code>/atmosphere/config/</code>" kopiert und mit einem Texteditor geöffnet werden. Die Datei ist folgendermaßen aufgebaut:
Zuerst muss die "<code>/atmosphere/config_templates/override_config.ini</code>" nach "<code>/atmosphere/config/</code>" kopiert und mit einem Texteditor geöffnet werden. Die Datei ist folgendermaßen aufgebaut:
Zeile 136: Zeile 139:
| Knopf, der gedrückt gehalten (oder nicht gehalten) werden soll, um das Homebrew Menu zu starten. In dem Beispiel darf "ZL" '''nicht''' gedrückt gehalten werden, während Xenoblade Chronicles 2 aufgerufen wird. Wird die Taste dennoch gehalten, wird das Spiel aufgerufen.
| Knopf, der gedrückt gehalten (oder nicht gehalten) werden soll, um das Homebrew Menu zu starten. In dem Beispiel darf "ZL" '''nicht''' gedrückt gehalten werden, während Xenoblade Chronicles 2 aufgerufen wird. Wird die Taste dennoch gehalten, wird das Spiel aufgerufen.
|-
|-
| colspan="4" | Bis zu acht verschiedene Konfigurationen werden unterstützt (<code>program_id_0</code> bis <code>program_id_7</code> bzw. <code>override_key_0</code> bis <code>override_key_7</code>).
| colspan="4" | Bis zu acht verschiedene Konfigurationen werden unterstützt (<code>program_id_0</code> bis <code>program_id_7</code> bzw. <code>override_key_0</code> bis <code>override_key_7</code>). Wenn "<code>program_id_0</code>" nicht gesetzt ist, sondern nur "<code>override_key_0</code>" bezieht sich die Konfiguration aufs Album. "<code>_0</code>" kann auch weggelassen werden.
|-
|-
| <code>override_any_app</code>
| <code>override_any_app</code>
Zeile 148: Zeile 151:
| Bestimmt, welcher Knopf gedrückt (oder nicht gedrückt) gehalten werden soll, während ein Titel aufgerufen wird (gilt nicht für Applets!), um das Homebrew Menu zu starten, wenn <code>override_any_app</code> auf <code>true</code> steht. In dem Beispiel wird das Homebrew Menu nur aufgerufen, wenn "Y" gedrückt gehalten wird, während ein Spiel gestartet wird. Sind oben spezifische TitleIDs angegeben, sind diese von dieser Konfiguration ausgenommen!<br>
| Bestimmt, welcher Knopf gedrückt (oder nicht gedrückt) gehalten werden soll, während ein Titel aufgerufen wird (gilt nicht für Applets!), um das Homebrew Menu zu starten, wenn <code>override_any_app</code> auf <code>true</code> steht. In dem Beispiel wird das Homebrew Menu nur aufgerufen, wenn "Y" gedrückt gehalten wird, während ein Spiel gestartet wird. Sind oben spezifische TitleIDs angegeben, sind diese von dieser Konfiguration ausgenommen!<br>
'''Merkhilfe''': "Starte das Homebrew Menu wenn Y gedrückt gehalten wird"
'''Merkhilfe''': "Starte das Homebrew Menu wenn Y gedrückt gehalten wird"
|-
| {{Anker|override_key_album}}<code>override_key</code>
| [[#Tasten|Taste]]
| <code>R</code>
| Bestimmt, welcher Knopf gedrückt (oder nicht gedrückt) gehalten werden soll, um [[#LayeredFS|LayeredFS]] (Mods) zu aktivieren. Wird in dem Beispiel "X" gedrückt gehalten, wird LayeredFS für diesen Titel deaktiviert. Ist bspw. nur "ZL" eingestellt, werden Mods nur aktiviert, wenn "ZL" gedrückt gehalten wird.<br>
'''Merkhilfe''': "Aktiviere LayeredFS, wenn X nicht gedrückt gehalten wird"
|-
|-
| <code>path</code>
| <code>path</code>
Zeile 266: Zeile 275:
| <code>0x0</code> oder <code>0x1</code>
| <code>0x0</code> oder <code>0x1</code>
| <code>u8!0x0</code>
| <code>u8!0x0</code>
| Weist "ro" an, NROs nicht streng zu überprüfen.<br>
| Weist "ro" an, NROs nicht streng zu überprüfen. Darunter fallen Signatur, die Programm-ID und der Typ.<ref>https://github.com/Atmosphere-NX/Atmosphere/blob/48b0b2fc46c7331ba3cb9b297475db9e0d82cd66/stratosphere/ro/source/impl/ro_nrr_utils.cpp#L48</ref><br>
<code>0x0</code> = deaktiviert, <code>0x1</code> = aktiviert
<code>0x0</code> = deaktiviert, <code>0x1</code> = aktiviert
|-
|-
Zeile 348: Zeile 357:
Hat keinen Effekt, wenn <code>applet_heap_size</code> nicht auf <code>0x0</code> steht!
Hat keinen Effekt, wenn <code>applet_heap_size</code> nicht auf <code>0x0</code> steht!
|-
|-
|}
=== BCT.ini ===
Mit der "<code>/atmosphere/config/BCT.ini</code>" ([https://switchbrew.org/wiki/BCT '''B'''oot '''C'''onfiguration '''T'''able]) lassen sich Einstellungen festlegen, die beim Start des Systems geladen werden müssen und während der Laufzeit nicht verändert werden dürfen. Sie sollten nur von erfahrenen Usern geändert werden!<ref>[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/fusee/BCT.md BCT.md]</ref>
{| class="wikitable" border="1"
|-
! colspan="4" | [stage1]
|-
! Config-Key
! Wert
! Beispiel
! Erklärung
|-
| {{Anker|stage2_path}}<code>stage2_path</code>
| String
| <code>atmosphere/fusee-secondary.bin</code>
| Pfad zum Stage2-Payload.
|-
| {{Anker|stage2_mtc_path}}<code>stage2_mtc_path</code>
| String
| <code>atmosphere/fusee-mtc.bin</code>
| Pfad zum Stage2-MTC-Payload.
|-
| {{Anker|stage2_addr}}<code>stage2_addr</code>
| Hexadezimal
| <code>0xF0000000</code>
| ?
|-
| {{Anker|stage2_entrypoint}}<code>stage2_entrypoint</code>
| Hexadezimal
| <code>0xF0000000</code>
| ?
|-
| {{Anker|custom_splash}}<code>custom_splash</code>
| String
| <code>/atmosphere/bootlogo.bmp</code>
| Ermöglicht einen eigenen Bootsplash. Das Bild muss eine BMP mit einer Größe von 1280x720 Pixeln sein, welches 90° gegen den Uhrzeigersinn gedreht wurde (sodass die Auflösung am Ende 720x1280 beträgt). Zudem muss es als 32-Bit ARGB exportiert werden - dies ist bspw. mit [https://www.gimp.org/ GIMP] möglich.
|-
! colspan="4" | [exosphere]
|-
! Config-Key
! Wert
! Beispiel
! Erklärung
|-
| {{Anker|debugmode}}<code>debugmode</code>
| <code>0</code> oder <code>1</code>
| <code>1</code>
| Signalisiert dem Kernel, dass der Debugging-Mode aktiv ist.<br>
<code>0</code> = deaktiviert, <code>1</code> = aktiviert (Standard)
|-
| {{Anker|debugmode_user}}<code>debugmode_user</code>
| <code>0</code> oder <code>1</code>
| <code>0</code>
| Signalisiert dem Userland, dass der Debugging-Mode aktiv ist.<br>
<code>0</code> = deaktiviert (Standard), <code>1</code> = aktiviert
|-
| {{Anker|disable_user_exception_handlers}}<code>disable_user_exception_handlers</code>
| <code>0</code> oder <code>1</code>
| <code>0</code>
| Deaktiviert Exception-Handler im Usermode. Dies sorgt dafür, dass Atmosphère bei Fehlern nicht sauber heruntergefahren wird, weshalb ein Aktivieren dieser Option nicht empfohlen wird.<br>
<code>0</code> = Usermode Exception Handler sind aktiviert (Standard), <code>1</code> = Usermode Exception Handler sind deaktiviert
|-
| {{Anker|enable_user_pmu_access}}<code>enable_user_pmu_access</code>
| <code>0</code> oder <code>1</code>
| <code>0</code>
| Aktiviert den Zugriff auf die PMU-Register vom Userland aus (Power-Management). Es ist nicht bekannt, was das Aktivieren dieser Option für Auswirkungen auf Spiele, etc. hat.<br>
<code>0</code> = PMU-Register-Zugriff deaktiviert (Standard), <code>1</code> = PMU-Register-Zugriff aktiviert
|-
| {{Anker|target_firmware}}<code>target_firmware</code>
| Integer
| <code>6</code>
| Erzwingt das Laden von Atmosphère, wenn die Firmware-Erkennung fehlschlägt. ''Dies ermöglicht kein Downgrade!''<br>
Eine Liste gültiger Werte findet sich [https://github.com/Atmosphere-NX/Atmosphere/blob/master/libraries/libvapours/include/vapours/ams/ams_target_firmware.h auf GitHub].
|-
! colspan="4" | [stratosphere]
|-
! Config-Key
! Wert
! Beispiel
! Erklärung
|-
| {{Anker|nogc}}<code>nogc</code>
| <code>0</code> oder <code>1</code>
| <code>1</code>
| Erzwingt das (De-)Aktivieren der NoGC-Patches, welche das Aktualisieren der GameCard-Treiber-Firmware ([https://switchbrew.org/wiki/Gamecard_ASIC LOTUS3]) verhindern. Dadurch lassen sich auch keine GameCards starten.<br>
<code>0</code> = NoGC-Patches erzwungen deaktiviert, <code>1</code> = NoGC-Patches erzwungen aktiviert<br>
Es gibt keinen Standardwert - Atmosphère versucht standardmäßig selbst mithilfe der Anzahl der gebrannten GameCard-FUSES herauszufinden, ob ein NoGC-Patch notwendig ist.
|-
| {{Anker|enable_ncm}}<code>enable_ncm</code>
| <code>0</code> oder <code>1</code>
| <code>0</code>
| Aktiviert Atmosphères eigene NCM-Reimplementierung, die sich u.a. um die Verwaltung von NAND-Speicherständen kümmert. Aus diesem Grund ist dieses Modul zuerst Opt-In, bis es später für jeden aktiviert wird.<br>
<code>0</code> = Custom NCM deaktiviert (Standard), <code>1</code> = Custom NCM aktiviert<br>
|}
|}


Zeile 461: Zeile 565:


Standardmäßig werden Cheats aktiviert, wenn ein Spiel gestartet und dabei nicht "L" gedrückt gehalten wird. Dies lässt sich in den Button Overrides unter "[[#cheat_enable_key|cheat_enable_key]]" ändern.
Standardmäßig werden Cheats aktiviert, wenn ein Spiel gestartet und dabei nicht "L" gedrückt gehalten wird. Dies lässt sich in den Button Overrides unter "[[#cheat_enable_key|cheat_enable_key]]" ändern.
=== EmuMMC ===
Ein EmuMMC ist eine getrennte Umgebung des Systems auf der SD-Karte, in der bspw. nur Homebrew ausgeführt werden kann und der normale SysMMC unangetastet bleibt. Geläufig ist auch der Begriff "EmuNAND".
Die Einrichtung eines EmuMMC ist nicht mit Atmosphère möglich - hierfür muss [https://wiidatabase.de/switch-downloads/custom-firmware/hekate/ hekate] verwendet werden, welches auch automatisch die Konfigurationsdatei schreibt. Wird [[hekate]] als Bootloader genutzt, kann auch bequem in den SysMMC gebootet werden, ohne eine Konfigurationsdatei bearbeiten zu müssen. Ansonsten muss "<code>emummc!enabled = 1</code>" in der "<code>emummc/emummc.ini</code>" auf "0" gestellt werden.


=== fatal ===
=== fatal ===
[[Datei:Atmosphere fatal.png|mini|Atmosphères "fatal" Absturzbildschirm]]
[[Datei:Atmosphere fatal.png|mini|Atmosphères "fatal" Absturzbildschirm]]
"[https://switchbrew.org/wiki/Fatal_services fatal]" ist der Absturzbildschirm der Nintendo Switch. Atmosphère überschreibt diesen Service mit einem eigenen, der die Logs auch auf der SD-Karte unter "<code>/atmosphere/fatal_reports/</code>", anstatt im Speicher der Switch speichert. So wird auch verhindert, dass eventuelle Fehler-Logs zu Nintendo hochgeladen werden. Auch besteht die Möglichkeit, per "POWER"-Knopf die Konsole normal neu zu starten (nicht in Atmosphère) oder einen Lautstärkeknopf, um den [[#Reboot-Payload|Reboot-Payload]] zu starten. "[[#fatal_auto_reboot_interval|fatal_auto_reboot_interval]]" kann auch auf einen Wert gesetzt werden, um die Konsole automatisch neu in den Reboot-Payload zu starten.
"fatal" ist der Absturzbildschirm der Nintendo Switch. Atmosphère überschreibt [https://switchbrew.org/wiki/Fatal_services diesen Service] mit einem eigenen, der die Logs auch auf der SD-Karte unter "<code>/atmosphere/fatal_reports/</code>", anstatt im Speicher der Switch speichert. So wird auch verhindert, dass eventuelle Fehler-Logs zu Nintendo hochgeladen werden. Auch besteht die Möglichkeit, per "POWER"-Knopf die Konsole normal neu zu starten (nicht in Atmosphère) oder einen Lautstärkeknopf, um den [[#Reboot-Payload|Reboot-Payload]] zu starten. "[[#fatal_auto_reboot_interval|fatal_auto_reboot_interval]]" kann auch auf einen Wert gesetzt werden, um die Konsole automatisch neu in den Reboot-Payload zu starten.
 
Nicht zu verwechseln mit dem Pfad "<code>/atmosphere/fatal_errors/</code>", in dem nur Fehlerreports von fusee-primary abgelegt werden.
 
=== Reboot-Payload ===
Unter "<code>/atmosphere/reboot_payload.bin</code>" kann ein beliebiger Fusée-Gelée-Payload abgelegt werden, der gestartet werden soll, wenn die Konsole neu gestartet wird (falls in den [[#power_menu_reboot_function|System Settings]] <code>power_menu_reboot_function</code> auf <code>payload</code> steht) oder bei einem Reboot über den Absturzbildschirm "fatal". Auch startet die "reboot_to_payload.nro" diesen Payload. Standardmäßig handelt es sich hierbei lediglich um eine Kopie von "fusee-primary.bin".
 
=== KIPs ===
Atmosphère lädt während des Bootvorgans (über [[#Komponenten|Fusèe]]) alle Kernel-Module ("KIP"-Dateien) aus "<code>/atmosphere/kips/</code>"  und "<code>/atmosphere/kips/''NAME''/</code>", wobei "''NAME''" durch einen eigenen Namen ersetzt werden kann.
 
==== KIP-Patches ====
Zusätzlich dazu kann Atmosphère auch bestehende Kernel-Module patchen. Hierfür müssen IPS-Patches in folgenden Ordner platziert werden:
 
<code>/atmosphere/kip_patches/''NAME''/</code>
 
Wobei "''NAME''" durch einen eigenen Namen ersetzt werden muss. Innerhalb dieser Ordner können mehrere IPS-Patches abgelegt werden, die den Dateinamen des SHA256-Hashes der KIP tragen müssen. Dies wird bspw. für [https://wiidatabase.de/switch-downloads/hacks/signatur-patches/ Signatur-Patches] eingesetzt.
 
=== NSO-Patches ===
NSOs lassen sich ebenfalls on-the-fly patchen. Dies geschieht in folgendem Pfad mithilfe von IPS-Patches:
 
<code>/atmosphere/exefs_patches/''NAME''/<abbr title="Build-ID der NSO im Hexadezimalsystem">''BUILD-ID''</abbr>.ips</code>
 
Wobei "''NAME''" durch einen eigenen Namen ersetzt werden muss. Bei der Build-ID können nachgestellte Nullen weggelassen werden. Hierbei werden die unkomprimierten NSOs gepatcht. NSOs lassen sich mit SciresM [https://wiidatabase.de/switch-downloads/pc-tools/hactool/ hactool] entpacken; damit lässt sich auch die Build-ID herausfinden.
 
[https://wiidatabase.de/switch-downloads/hacks/signatur-patches/ ES-Patches] werden als NSO-Patches verteilt.


=== Flags ===
=== Flags ===
Zeile 473: Zeile 606:
* <code>redirect_save.flag</code>: Aktiviert die [[#Speicherstand-Redirection|Speicherstand-Redirection]] für diesen Titel
* <code>redirect_save.flag</code>: Aktiviert die [[#Speicherstand-Redirection|Speicherstand-Redirection]] für diesen Titel


=== KIPs ===
=== LayeredFS ===
Atmosphère lädt während des Bootvorgans (über [[#Komponenten|Fusèe]]) alle Kernel-Module ("KIP"-Dateien) aus "<code>/atmosphere/kips/</code>" und "<code>/atmosphere/kips/''NAME''/</code>", wobei "''NAME''" durch einen eigenen Namen ersetzt werden kann.
"LayeredFS" ermöglicht es, Dateien von Spielen mit denen aus der SD-Karte auszutauschen, ohne das eigentliche Spiel modifizieren zu müssen. Es ist dabei eine bequeme Art, Spiele-Mods zu nutzen. Das Knopf-Verhalten zum Aktivieren von LayeredFS wird über den "[[#override_key|override_key]]" Button Override gesteuert. Standardmäßig wird LayeredFS immer aktiviert.
 
'''ACHTUNG:''' Der "<code>/atmosphere/contents/</code>" Ordner hieß früher "<code>/atmosphere/titles/</code>". Er wird automatisch umbenannt, wenn eine neue Atmosphère-Version gestartet wird.
 
==== RomFS ====
Um Inhalte im RomFS zu ersetzen, platziere sie mit der gleichen Dateistruktur in:
 
<code>/atmosphere/contents/{{TitleID}}/romfs/</code>
 
oder als fertig verpacktes RomFS in <code>/atmosphere/contents/{{TitleID}}/romfs.bin</code>.
 
===== HTML-Bedienungsanleitungen =====
Um die Inhalte in der Bedienungsanleitung zu ändern, platziere sie mit der gleichen Dateistruktur in:
 
<code>/atmosphere/contents/{{TitleID}}/manual_html/</code>
 
==== ExeFS ====
Um Inhalte im ExeFS zu ersetzen, platziere sie mit der gleichen Dateistruktur in:
 
<code>/atmosphere/contents/{{TitleID}}/exefs/</code>
 
oder als fertig verpacktes ExeFS in <code>/atmosphere/contents/{{TitleID}}/exefs.bin</code>.
 
Um das Laden einer NSO zu verhindern, muss diese mit dem gleichen Dateinamen plus der Endung "<code>.stub</code>" im obigen ExeFS-Verzeichnis platziert werden. Also bspw.:


=== Reboot-Payload ===
<code>/atmosphere/contents/{{TitleID}}/exefs/main.stub</code>
Unter "<code>/atmosphere/reboot_payload.bin</code>" kann ein beliebiger Fusée-Gelée-Payload abgelegt werden, der gestartet werden soll, wenn die Konsole neu gestartet wird (falls in den [[#power_menu_reboot_function|System Settings]] <code>power_menu_reboot_function</code> auf <code>payload</code> steht) oder bei einem Reboot über den Absturzbildschirm "fatal". Auch startet die "reboot_to_payload.nro" diesen Payload. Standardmäßig handelt es sich hierbei lediglich um eine Kopie von "fusee-primary.bin".


== ams_mitm ==
=== Speicherstand-Redirection ===
=== Speicherstand-Redirection ===
Speicherstände lassen sich als experimentelles Feature auf die SD-Karte umleiten. Dabei müssen zwei Bedingungen erfüllt sein:
Speicherstände lassen sich als experimentelles Feature auf die SD-Karte umleiten. Dabei müssen zwei Bedingungen erfüllt sein:

Navigationsmenü