Feature Request: Native Cemu Clarity / CellHunter Preset Support and Advanced Post-Processing Controls
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
- Domain
- computer-graphics
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
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:
- The tree near the campfire appeared more yellow/orange in Savage Wind.
- Lantern illumination appeared to spread more broadly across nearby surfaces.
- Grass receiving warm illumination appeared brighter and more yellow.
- 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
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!
Anything else
No response
- Dominant language
- C
- Stars
- 811
- Forks
- 37
- Avg merge
- 17m
- Merged PRs (30d)
- 13
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Revivedx/SavageWindRecomp
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 44/100
Revivedx/SavageWindRecomp#517 · 2 comments ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 55/100
Revivedx/SavageWindRecomp#516 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 48/100
Revivedx/SavageWindRecomp#515 · 1 reaction ·
Maintainers usually reply within 1 day
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 42/100
Revivedx/SavageWindRecomp#514 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 38/100
Revivedx/SavageWindRecomp#513 ·
Maintainers usually reply within 1 day
All issues in Revivedx/SavageWindRecomp
Similar issues
-
5700模组网络优先级问题Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
severity: low
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
luainkernel/lunatik#2372 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 75/100
ly05010419/MacNativeGames#1796 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day