averne / Fizeau

Adjust the color of your Nintendo Switch screen
GNU General Public License v2.0
334 stars 14 forks source link

Fizeau

Adjust the color of the screen of your Nintendo Switch.

Features

Images

Installation

Download the latest zip from the release page, unzip it to the root of your sd card (be careful to merge and not overwrite folders), and reboot.

Only the latest version of the Atmosphère CFW is supported.

If you want to use the overlay, you will need to set up Tesla (install Tesla-Menu and ovlloader). This isn't supported on firmware versions prior to 9.0.0.

Supported firmwares

Firmware versions 9.0.0 and later are supported. If you encounter an issue running this software on a particular version, please create an issue.

Usage

You can refer to the built-in help. Navigate with either the touchscreen or the D-pad buttons.

Settings

Settings are saved at /switch/Fizeau/config.ini and /config/Fizeau/config.ini (in order of priority), which you can also edit.

Building

How it works

This software uses the CMU (Color Management Unit) built into the Tegra GPU of the Nintendo Switch. The purpose of this unit is to enable gamma correction/color gamut changes.

The CMU works in 3 passes:

Overview of the CMU pipeline:

More detail can be found in the TRM (Tegra Reference Manual), section 24.3.14 (Display Color Management Unit).

Official software use the CMU for multiple purposes (the following images were generated using a script found here, with data dumped from running official software):

In addition, the color range of the external display is restricted using the HDMI AVI (Auxiliary Video Information) infoframe.

Official software uses precalculated default gamma ramps, and apply modifications to those (the relevant function can be found at .text + 0x05c70 in 6.0.0 nvnflinger). However here gamma ramps are generated at runtime, which is both more elegant and easily enables non-default gamma. The generated LUT1 is byte-for-byte identical to the official one.

Credits