Project

General

Profile

Actions

Emulator Issues #13209

open

[Feature Request] Custom Textures: Add RGBA16 support

Added by Cahalan 15 days ago. Updated 15 days ago.

Status:
Questionable
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Feature request
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Game Name?

Super Smash Bros. Brawl

Game ID? (right click the game in the game list, Properties, Info tab)

RSBE01

What's the problem? Describe what went wrong.

Testing out HD textures for use in Brawl has led to learning about Dolphin's current hardcoded support of RGBA8 PNGs.

While that is good enough for most scenarios, gradient heavy images tend to have banding in the 8-bit color depth.

If attempting to use a 16-bit depth PNG, dolphin can render the image darker than usual or ignore it. Your mileage may vary.

What steps will reproduce the problem?

Use an image like the one included that has 16-bit depth color as an HD texture for Brawl.
After ensuring that it is named properly and placed in the correct location for Dolphin to load the image as an HD texture, issues like the one described earlier can occur.
If the image is ignored, the vanilla texture from the disc / iso will be used.
If the image is used, it can potentially render darker than normal.

Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.

latest indev version, as far as I know.

Is the issue present in the latest stable version?

Yes, 5.0 stable

What are your PC specifications? (CPU, GPU, Operating System, more)

Windows 10
Processor Intel(R) Core(TM) i5-8300H CPU @ 2.30GHz 2.30 GHz
Installed RAM 32.0 GB (31.8 GB usable)
System type 64-bit operating system, x64-based processor
GPU Intel(R) UHD Graphics 630
Driver version 25.20.100.6576
Driver date 2/7/2019
DirectX Ver 12 (FL 12.1)


Files

Samus_vBrawl_00_CSS_Brawl_HD.png (231 KB) Samus_vBrawl_00_CSS_Brawl_HD.png 16-bit Color Depth Test Image Cahalan, 03/15/2023 03:29 AM
Dolphin_GobKRsGbAB.png (1.65 MB) Dolphin_GobKRsGbAB.png What the CSS will look like when the Test Image is ignored (vanilla, sd resolution textures) Cahalan, 03/15/2023 03:31 AM
Actions #1

Updated by MayImilae 15 days ago

  • Subject changed from Add RGBA16 support for PNGs to [Feature Request] Custom Textures: Add RGBA16 support
  • Issue type changed from Bug to Feature request
Actions #2

Updated by pokechu22 15 days ago

  • Status changed from New to Questionable

I'm not sure how meaningful this would be to implement. The TEV only handles integers from 0-255 (well, it can actually be -1024 to 1023, but in most cases games clamp it to 0-255), and since Dolphin emulates the TEV using integers, even if we had higher bit depths in a texture it'd need to be truncated to 0-255 for rendering.

Theoretically we could add an option to use floats for TEV logic, but floats historically caused lots of problems and I don't know how much stuff would break from that. Floats would solve some color banding issues (e.g. Super Mario Galaxy has color banding on some planets due to interpolating between two dark shades of grey and then multiplying that interpolated value by a texture) and could allow for actual HDR, but they also broke a ton of stuff in the past and I'm not sure if that's caused by only some uses of floats (e.g. for texture coordinates) or if floats in general broke things.

Actions #3

Updated by MayImilae 15 days ago

I'd like to add that there is already a solution for banding on the art side - dithering.

Actions

Also available in: Atom PDF