Project

General

Profile

Actions

Emulator Issues #12905

open

[Feature Request] Use a texignore file to skip texture dumps.

Added by colorovfire over 2 years ago. Updated 9 months ago.

Status:
New
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

Give the user control over which types of textures to ignore while dumping. This is very useful for ignoring FMV files or any other textures that can be problematic or not useful. For example, the F-Zero logo contains procedurally generated textures which will output textures ad infinitum. It also happens in the character select screen. I also ignore 8x8 textures since they are too small to upscale properly. It’s a lot of unneeded cleanup.

I’m thinking this should be handled in a similar way to .gitignore files. Just lines of strings (globbed or not) so Dolphin knows not to push them out. Example:

# F-Zero - GFZE01/texignore.txt

# infinitely generated textures from the logo and character select.
tex1_16x16_*_1.png
tex1_16x16_*_2.png
tex1_4x128_*_3.png

# Too small to work with.
tex1_8x8_*.png

# FMV
tex1_320x168_*_3.png
tex1_640x336_*_1.png

# EFB Copies to Texture for end credits.
tex1_320x224_*_5.png

Different games will have various issues so giving control over the dump would be very useful.

Thanks!

Actions #1

Updated by colorovfire over 2 years ago

There are instances where going beyond globbing would be very useful the. Use the .gitignore file convention or even better, regex but that's probably asking for too much.

# Metroid Prime - GM8E01/texignore

# Too small. .gitignore's ? any one character.
tex1_?x*_*.png
tex1_*x?_*.png

# Procedurally generated noise at the start, death and when coming out of the morph ball.
# Game starts to crawl whe these are dumped.
tex1_642x450_*_2.png

# Procedurally generated. Seems too general but it's safe. The _4 suffix is always producing junk.
tex1_*_4.png

# Garbled textures with purple patches.
# If we were to follow the .gitignore convention, glob first:
tex1_256x16_*_14
tex1_256x64_*_14
tex1_256x128_*_14
tex1_256x256_*_14
tex1_256x512_*_14
tex1_512x256_*_14

# Then ! to negate and prevent the good textures from being ignored.
!tex1_256x16_m_*_14
!tex1_256x64_m_*_14
!tex1_256x128_m_*_14
!tex1_256x256_m_*_14
!tex1_256x512_m_*_14
!tex1_512x256_m_*_14

# Or ? "any one character" to not ignore _m_ mipmapped textures. A bit cleaner.
tex1_256x16_????????????????_14
tex1_256x64_????????????????_14
tex1_256x128_????????????????_14
tex1_256x256_????????????????_14
tex1_256x512_????????????????_14
tex1_512x256_????????????????_14

# If regex was supported.
tex1_(256x(16|64|128|256|512)|512x256)_[a-f0-9]+_14\.png

# FMV
tex1_320x240_*_1.png
tex1_640x480_*_1.png

Metroid Prime dumps corrupt looking textures but there's no way to target them by globbing.

For example, tex1_256x128_efc7ca2d1eae2c26_14.png should be ignored but tex1_256x128_m_f95babe0db3b44bd_14.png is a good to go.

Each game is different and always has some issues. Getting the right pattern down can clean up the mess. It's a bit of work at first but sorting dumps and the bad textures are pretty easy to spot.

Each game tends to stick to a consistent pattern and these patterns can be shared to make it easier on everyone.

Thanks for your consideration.

Actions #2

Updated by Billiard26 9 months ago

  • Issue type changed from Bug to Feature request
Actions

Also available in: Atom PDF