Nintendo Switch system software
The Nintendo Switch system software (also known by its codename Horizon) is an updatable firmware and operating system used by the Nintendo Switch video game console. Its main portion is the HOME screen, consisting of the top bar, the screenshot viewer ("Album"), and shortcuts to the Nintendo eShop, News, and Settings. Technology. OS. Nintendo has released only limited information about the Switch's internals to the public. However, computer security researchers, homebrew software developers, and the authors of emulators have all analyzed the operating system in great depth. Notable findings include that the Switch operating system  is codenamed Horizon, that it is an evolution of the Nintendo 3DS system software, and that it implements a proprietary microkernel architecture. All drivers run in userspace, including the Nvidia driver which the security researchers described as "kind of similar to the Linux driver". The graphics driver features an undocumented thin API layer, called NVN, which is "kind of like Vulkan" but exposes most hardware features like OpenGL compatibility profile with Nvidia extensions. All userspace processes use Address Space Layout Randomization and are sandboxed. Address space layout randomization (ASLR) is a computer security technique involved (sandboxed) in preventing exploitation of  memory corruption vulnerabilities. Nintendo made efforts to design the system software to be as minimalist as possible, with the home menu's graphical assets using less than 200 kilobytes. This minimalism is meant to improve system performance and launch games faster. As early as July 2018, Nintendo has been trying to counter Switch-homebrewing and piracy. Measures include an online ban, and on the hardware side, patching of the Tegra to prevent exploits. On 11 December 2018, Nintendo sued Mikel Euskaldunak for selling a Switch modification that can play pirated games. Since August 2019, the difficulty of homebrewing has gone  up, as the new Mariko chip replaced the old Erista chip. After the release of the Lite, in late 2019, tools for hacking all Switch consoles were announced. Gary Bowser was arrested in September 2020 in the Dominican Republic. Afterwards, Bowser appeared in court in USA. The prosecution alleges that Bowser was a piracy group leader. Open source components. Despite popular misconceptions to the contrary, Horizon is not largely derived from FreeBSD code, nor from Android, although the software licence and reverse engineering efforts have revealed that Nintendo does use some code from both in some system services and drivers . For example, the networking stack in the Switch OS is derived at least in part from FreeBSD code. Nintendo's use of FreeBSD networking code is legal as it is made available under the permissive BSD licence, and not even particularly unusual – notably, the Microsoft Windows TCP/IP stack was originally derived from BSD code in a similar fashion. Components derived from Android code include the Stagefright multimedia framework, as well as components of the graphics stack including the display server (derived from SurfaceFlinger) and the graphics driver (which seems to be derived from Nvidia's proprietary Linux driver). Although  a full web browser intended for general browsing is not available on the console as of February 2022, several so-called 'applets' are included which utilise the WebKit rendering engine to display web content within a stripped back interface. A WebKit-powered applet is used to allow users to log in to captive portals when connecting to certain wireless networks, as well as for operating system features such as the Nintendo eShop, social media integrations, and digital manuals. User interface. Home screen. The Nintendo Switch home screen has battery, internet and time information in the top right corner, and below  it is a grid showing all software on the system, downloaded or physical. Underneath that it has shortcuts to OS functions such as Nintendo Switch Online, the News, eShop, Album, Controller settings, System Settings, and a Sleep Mode button. The Nintendo Switch home screen currently lacks an internet browser and a messaging system. News. The News function of the Nintendo Switch software allows users to read gaming news and advertisements provided by Nintendo and third-party developers. News is also displayed when the system is locked. The News interface was originally available in the 1.0.0 version of the software, however  new headlines were not transmitted until the 2.0.0 update was released. The 3.0.0 update revamped the News system, adding multiple news "channels" for different games that users can subscribe to. The news headlines that appear depend on which channels are subscribed to. The 4.0.0 update further improved the News screen, updating its layout. The 9.0.0 update added search support to the News channel, allowing users to narrow the list via filters or free text. The 10.0.0 update added a "Bookmark" feature, allowing users to save their favorite News articles. Nintendo eShop. The Nintendo eShop option on the Home menu opens  a WebKit-based interface that allows games to be purchased and downloaded from the Nintendo eShop. As well as games, the eShop offers select non-gaming apps. Niconico, a popular Japanese video service, launched for the Switch in Japan on 13 July 2017 and was the Switch's first third-party media app in any market. Hulu was the first video streaming application released for the Switch in the United States on 9 November 2017. In June 2018, Fils-Aimé said that conversations to bring Netflix to the Switch were "on-going". A YouTube application was released on 8 November  2018. On 4 November 2020, a trial version app of the Tencent Video streaming service was launched exclusively for Nintendo Switch consoles officially distributed by Tencent in mainland China. An official version app will be launched at a later date. Funimation launched their own streaming app for the Nintendo Switch, featuring a reworked layout and new functions. The app became available via eShop in the United States and Canada on 15 December 2020, and will launch in various other countries at a later date, such as the United Kingdom and Ireland on 22 March 2021.<ref name="NL cites Funimation UK/IRE  launch"></ref> A version of the Twitch app launched for the Nintendo Switch on 11 November 2021 in most regions worldwide. The eShop version of the app allows users to watch or follow any live or recorded content on Twitch, but does not support any native ability for Switch players to contribute content. Korg Gadget, a music production app, was released for the Nintendo Switch on 26 April 2018. InkyPen, a comics and manga subscription app, launched exclusively on the Switch worldwide in December 2018. Izneo, another comics and manga subscription service, was released for the Switch in February 2019 . "FUZE4", a text-based programming language app, was released in August 2019. Album. The Album stores captured screenshots and videos. Pressing the "Capture" button on the controller, in supported software, will save a screenshot, either to the microSD card, or to the system memory. The Album allows users to view screenshots that have been taken. Screenshots can be edited by adding text, and they can be shared to Facebook or Twitter. In addition, in supported games, holding down the Capture button briefly will save the last 30 seconds of video to the Album. It can then be trimmed and posted  online. The 2.0.0 update added the ability to post screenshots to Facebook or Twitter from within the system UI, making it easier to share screenshots. The 4.0.0 update added support for saving 30 second videos, in compatible games. The 11.0.0 updated added the ability to download screenshots and videos to a PC via a USB cable or to a Mobile device via a webpage hosting the files generated by the Switch. Regardless of the amount of free space on the systems internal memory or microSD card there is a hard limit on the number of screenshots and videos that can  be stored. Controllers. The Controllers menu allows controllers to be paired, disconnected, or reconnected. The 3.0.0 update added the "Find Controllers" option, which allows any nearby controllers that have been paired to be remotely turned on and vibrated, to help find lost controllers. Settings. The Settings option allows for system settings to be changed, and includes other functionality, such as creating Miis. History of updates. The initial version of the system software for Nintendo Switch on the launch day consoles was updated as a "day one" patch on 3 March 2017, the console's launch date. The update added online  features that were previously missing from the original software before its official launch date. Some notable features of this update are access to the Nintendo eShop as well as the ability to add friends to a friends list, similar to that of the Nintendo 3DS. On 7 June 2021, patch 12.0.3 was released, but was removed 12 hours later for problems with network connections as well as issues with MicroSDXC cards. The April 2021 firmware update was found by dataminers to have added rudimentary support for Bluetooth audio. This support was expanded and made available to regular users on September  14, 2021, when patch 13.0 was released. Patch 13.0 also added the ability to apply software updates to the Switch Dock (only applicable for docks released with the Switch OLED Model, which have a built-in LAN port), and a new setting for Sleep Mode that allows the Switch to maintain an Internet connection when the Switch is asleep to download updates. When disabled, the console will only connect to the Internet occasionally when asleep, in order to save power. Additionally, Patch 13.0 changed the method to initiate a control stick calibration and allowed users to view their wireless internet  frequency band (2.4 GHz or 5 GHz) on the Internet Connection Status page. In November 2021, the 13.1.0 version update added support for Nintendo Switch Online + Expansion Pack. The 14.0.0 update in March 2022 added a Groups feature, allowing users to sort games into groups as a means to declutter the game collection screen.