Go to file
Tony Wasserka ad636f7216 Modernize C++ usage (#144)
* Stratosphere: Use modern C++ idioms in some places

* algorithms like std::for_each are used instead of raw loops

* Stratosphere: Replace more raw loops with algorithms

* Stratosphere: Add a utility predicate function to test for equality with a reference element

This can be used to rewrite some common raw loops using algorithms instead

* fs.mitm: Use variant

* fs.mitm: Use enum class

* fs.mitm: Turn RomFSSourceInfo::Cleanup into a destructor

This obsoletes the need for a custom deleter in other places

* fs.mitm: Use enum class some more

* fs.mitm: Use unique_ptr

* fs.mitm: Simplify initialization

* Stratosphere: Simplify initialization

* fs.mitm: Use unique_ptr (fix memory leak along the way)

The previous code was using "delete" rather than "delete[]"

* fs.mitm: Use vector::emplace_back rather than push_back

emplace_back constructs elements in-place, hence avoiding a redundant element copy.

* Stratosphere: Replace more raw loops with algorithms

* Stratosphere: Use unique_ptr

* fs.mitm: Replace more raw loops with algorithms

* Stratosphere: Prefer move-construction over copy-construction when moving sink parameters around
2018-06-19 11:07:31 -07:00
exosphere Merge pull request #73 from Resaec/uart 2018-06-04 16:33:43 +01:00
fusee Fix a few issues in the secondary kernel_patches.c file 2018-06-17 19:28:19 -07:00
img Push all graphical resources to main repo, add credits 2018-05-01 18:42:23 -06:00
stratosphere Modernize C++ usage (#144) 2018-06-19 11:07:31 -07:00
thermosphere Revamp all the Makefiles (thanks @fincs @WinterMute) 2018-05-19 01:07:27 +02:00
.gitignore Revamp all the Makefiles (thanks @fincs @WinterMute) 2018-05-19 01:07:27 +02:00
LICENSE Add license and disclaimer. 2018-01-17 23:54:38 -08:00
Makefile Revamp all the Makefiles (thanks @fincs @WinterMute) 2018-05-19 01:07:27 +02:00
README.md Remove credit by request. 2018-06-07 20:55:57 -06:00

Banner

License

Atmosphère is a work-in-progress customized firmware for the Nintendo Switch.

Components

Atmosphère consists of multiple components, each of which replaces/modifies a different component of the system:

  • Fusée: First-stage Loader, responsible for loading and validating stage 2 (custom TrustZone) plus package2 (Kernel/FIRM sysmodules), and patching them as needed. This replaces all functionality normally in Package1loader/NX Bootloader.
  • Exosphère: Customized TrustZone, to run a customized Secure Monitor
  • Thermosphère: EL2 EmuNAND support, i.e. backing up and using virtualized/redirected NAND images
  • Stratosphère: Custom Sysmodule(s), both Rosalina style to extend the kernel/provide new features, and of the loader reimplementation style to hook important system actions
  • Troposphère: Application-level Horizon OS patches, used to implement desirable CFW features

Credits

Atmosphère is currently being developed and maintained by SciresM, TuxSH and hexkyz.
In no particular order, we credit the following for their invaluable contributions:

  • switchbrew for the libnx project and the extensive documentation, research and tool development pertaining to the Nintendo Switch.
  • devkitPro for the devkitA64 toolchain and libnx support.
  • ReSwitched Team for additional documentation, research and tool development pertaining to the Nintendo Switch.
  • ChaN for the FatFs module.
  • Riley for suggesting "Atmosphere" as a Horizon OS reimplementation+customization project name.
  • naehrwert for the hekate project and its hwinit code base.
  • hedgeberg for research and hardware testing.
  • lioncash for code cleanup and general improvements.
  • jaames for designing and providing Atmosphère's graphical resources.
  • Everyone who submitted entries for Atmosphère's splash design contest.
  • All those who actively contribute to the Atmosphère repository.