Feature Request: Native Cemu Clarity / CellHunter Preset Support and Advanced Post-Processing Controls

Closed
#382 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
8/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Active
Tech stack
c

Research direction

This is a design question about post-processing in the Vulkan renderer. The payload names shaders.c and exec.c as the files the reporter modified, and links the original CellHunter shader at src/BreathOfTheWild/Enhancements/37040a485a29d54e_00000000000003c9_ps.txt in cemu_graphic_packs. Done would be a maintainer decision on whether a native preset system and a pre-tonemap bloom stage are feasible, not a patch.

Written by the indexing model from the issue text.

Description

enhancement
The idea

Feature Request: Reproducing Cemu's Clarity / CellHunter Visual Appearance in Savage Wind

Hello! First of all, thank you for your work on Savage Wind. I've been testing Alpha 4.1 on my RX 9070 XT at 1440p, and I'm impressed by the performance of the native PC recompilation.

I'd like to suggest a graphical feature based on several experiments we've conducted to reproduce the appearance of Breath of the Wild in Cemu.

1. The goal

My visual reference is Cemu 2.6 running Breath of the Wild with Graphics Packs → Enhancements → Clarity → CellHunter's Preset.

I'm not looking for artificially increased saturation, excessive sharpness, or a more cinematic appearance.

What I particularly like about CellHunter is its:

  • Balanced contrast and darker but readable shadows.
  • More restrained bloom and highlights.
  • Less diffuse lighting around lanterns and campfires.
  • Natural-looking vegetation without excessive yellow/orange illumination.
  • Good separation between illuminated and darker areas.

My goal is to reproduce this particular Cemu configuration as faithfully as possible in Savage Wind.

Ideally, users could place a configuration or preset file in a folder, select it in Savage Wind's graphics menu, and obtain a similar visual result without modifying the game's executable.

However, our experiments suggest this would require support from the rendering pipeline, not just a conventional LUT.

2. What we have already tested

A. Native graphics settings

We started with Savage Wind's Natural color preset, neutral exposure, contrast, saturation, temperature and tint, and no LUT.

We compared the resulting image with Cemu using CellHunter.

B. Multiple custom LUTs

We created and tested several .cube files:

  • An initial CellHunter color approximation.
  • A visually adjusted version based on screenshots.
  • A version based more directly on the original shader's color operations.
  • An audited 64×64×64 ColorCore LUT.
  • An additional experimental shadow adjustment.

These attempted to reproduce the original Technicolor2, FilmPass, Lift/Gamma/Gain, Curves and Vibrance operations.

All LUTs loaded successfully, but none reproduced the reference appearance convincingly.

Some results appeared too warm, yellow, bright or washed out compared with Cemu.

This suggested that the remaining differences were not simply a matter of adjusting contrast or saturation.

C. Investigation of CellHunter's original shader

We examined the original Cemu Clarity shader and identified several relevant operations:

  • A bloom multiplier of 0.215.
  • An image-dependent HDRPass using 16 neighboring samples.
  • Additional color and tonal transformations.
  • A specific processing order relative to the game's tonemapping.

These operations cannot all be reproduced by a conventional 3D LUT because a LUT cannot access neighboring pixels or separately modify bloom that has already been composited into the final image.

D. Experimental Vulkan renderer modification

We modified shaders.c and exec.c in Savage Wind Alpha 4.1 to add an optional spatial HDRPass.

The modified executable successfully compiled and linked on Windows.

Additional tests passed:

  • GLSL to SPIR-V shader compilation.
  • Vulkan pipeline creation on the RX 9070 XT.
  • Mathematical comparisons with the original HDRPass sampling operations.
  • Patch application and activation checks.

We then installed the modified executable and successfully launched BOTW.

We tested two configurations:

  • HDRPass ON: experimental spatial processing enabled.
  • HDRPass OFF: the same modified executable with HDRPass disabled.

Both configurations successfully rendered Kakariko Village.

However, this was only an experimental implementation, not a fully accurate port of CellHunter.

3. Visual comparison with Cemu

We compared Savage Wind with Cemu running the original CellHunter preset.

The most noticeable differences appeared around lanterns, campfires, vegetation and large surfaces receiving indirect-looking illumination.

In our comparisons:

  1. The tree near the campfire appeared more yellow/orange in Savage Wind.
  2. Lantern illumination appeared to spread more broadly across nearby surfaces.
  3. Grass receiving warm illumination appeared brighter and more yellow.
  4. Cemu with CellHunter retained a darker and more restrained overall appearance, with more localized highlights.

Visual comparison: Savage Wind HDRPass OFF (left) vs. Cemu with CellHunter (right).

[Attach comparison image here]

Note: The comparison image is illustrative, not a pixel-accurate test. The screenshots were taken at slightly different in-game times and camera positions, and the comparison layout was prepared for presentation. I can provide the original, unmodified screenshots.

I am not claiming this proves a rendering bug in Savage Wind. CellHunter intentionally modifies the original game's post-processing, which may explain much of the difference.

4. Why our attempts did not fully reproduce CellHunter

The most important technical limitation we identified is the placement of the processing operations.

In the original CellHunter implementation, HDRPass and bloom processing take place before the relevant tonemapping stage.

Our experimental Savage Wind modification applies HDRPass to an already composited and tonemapped scene.

At that point, the original scene and bloom textures are no longer independently available to the effect.

Consequently:

  • The spatial HDRPass may produce a different visual result.
  • The original bloom reduction cannot be reproduced accurately by simply darkening the final image.
  • A LUT applied after tonemapping cannot reconstruct the original pre-tonemapping processing.

This appears to be the main architectural limitation of our current experiments.

It does not necessarily indicate that Savage Wind's renderer is incorrect.

5. Proposed feature

Would it be feasible to provide a native post-processing preset system capable of reproducing Cemu Clarity-style effects more accurately?

Some useful capabilities might include:

1. Adjustable bloom intensity

A slider or multiplier allowing players to reduce bloom without changing global exposure or contrast.

Ideally, this would control bloom before it is composited into the final scene.

2. Optional spatial post-processing

Support for effects similar to CellHunter's HDRPass at a suitable stage of the rendering pipeline.

3. Configurable processing parameters

Controls for tonal curves, color adjustments and relevant post-processing operations, with consistent color-space handling and processing order.

4. Shareable preset files

A simple user-editable preset format, such as .ini or .json, or another format supported by the renderer.

For example, players could place a preset in a folder and select it from the graphics menu.

The ideal result would be to select "CellHunter" in Savage Wind and reproduce the appearance of Cemu's Clarity preset without modifying or recompiling the executable.

I understand that the Wii U and Switch versions have different rendering pipelines, so perfect pixel-for-pixel equivalence might not be possible.

6. Why I think this would be useful

Savage Wind already offers excellent performance and several useful graphics settings.

A more flexible post-processing system could help players migrate from Cemu while preserving the visual style they prefer.

It could also benefit people who want to customize bloom, contrast and lighting characteristics independently, without relying on external shaders.

I'm not proposing that CellHunter become the default appearance, only that players have more control over the native rendering pipeline.

7. System specifications

  • Savage Wind: Alpha 4.1
  • Platform: Windows / Vulkan
  • GPU: AMD Radeon RX 9070 XT (16 GB)
  • CPU: Intel Core i7-12700
  • Resolution: 2560×1440
  • Reference: Cemu 2.6 — Clarity / CellHunter's Preset
Original shader reference

https://github.com/cemu-project/cemu_graphic_packs/blob/master/src/BreathOfTheWild/Enhancements/37040a485a29d54e_00000000000003c9_ps.txt

We also have the experimental Vulkan patch, LUT generators, technical reports, validation results and original screenshots available if they would be helpful.

I would be interested to know whether this kind of native post-processing support is technically feasible within Savage Wind's renderer.

Thank you again for your work on this project and for considering the suggestion!

Image
Anything else

No response

Dominant language
C
Stars
811
Forks
37
Avg merge
17m
Merged PRs (30d)
13

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Revivedx/SavageWindRecomp

All issues in Revivedx/SavageWindRecomp

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.