cemu_graphic_packs/Resolutions/BreathOfTheWild_Resolution/rules.txt
Crementif 549758507f Update BotW packs for Vulkan (#411)
But now done properly! Basically, a bunch of improvements were made to the script. The previous attempt at this conversion was quickly followed by a rollback since I realized that the script was overlooking certain things that made most of the packs hit or miss whether they would work. A few things missing were:
- It only tested the values from 1 preset. Now, each shader gets compiled per each preset, like what Cemu would do. It also merges the changes done for each preset into one. This should solve cases where one shader would define things separately or repeatedly from preset to preset. 
- All* of the shaders are tested to see if they use the converter used the right values for the locations for Vulkan.

Both of these *should* mean that they should both compile and be linkable in Vulkan, which means that I don't have to test each individual shader to see if they work. I will release the two scripts (one used for converting, one used for checking the right values for the locations) tomorrow so that other people might be able to help, if they want. It's fairly straightforward now at least.

* Organize workaround graphic packs

Pretty hard to organize these correctly, but according to our discord discussion, this was the best layout from a bunch I proposed, together with some suggestions.

* Add V4 converter script and instructions on how to use it

Now everyone BotW is done and all of the bugs have been kinked out using it (hopefully...), here's the release of the converter script in all of it's very badly coded glory. I hope I didn't leave too much debug glory in there...

Also, I hope that I didn't make too many grammatical mistakes in the instructions, but hopefully it's easy enough to follow.
2019-12-27 20:55:52 -08:00

845 lines
18 KiB
Plaintext

[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Resolution
path = "The Legend of Zelda: Breath of the Wild/Graphics/Resolution"
description = Changes the games resolution. You cannot change resolutions on the fly.
version = 4
[Preset]
name = 1280x720 (16:9) (Default)
$width = 1280
$height = 720
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
# Performance
[Preset]
name = 320x180 (16:9)
$width = 320
$height = 180
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 640x360 (16:9)
$width = 640
$height = 360
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 960x540 (16:9)
$width = 960
$height = 540
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
# Common HD Resolutions
[Preset]
name = 1600x900 (16:9)
$width = 1600
$height = 900
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 1920x1080 (16:9)
$width = 1920
$height = 1080
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 2560x1440 (16:9)
$width = 2560
$height = 1440
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 3200x1800 (16:9)
$width = 3200
$height = 1800
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 3840x2160 (16:9)
$width = 3840
$height = 2160
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 5120x2880 (16:9)
$width = 5120
$height = 2880
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 10240x5760 (16:9)
$width = 10240
$height = 5760
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
# Common Ultrawide Resolutions
[Preset]
name = -----------------------------------
$width = 2560
$height = 1080
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 2560x1080 (21:9)
$width = 2560
$height = 1080
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 3440x1440 (21:9)
$width = 3440
$height = 1440
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 3840x1600 (21:10)
$width = 3840
$height = 1600
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 4300x1800 (21:9)
$width = 4300
$height = 1800
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
# Common 16:10 Resolutions
[Preset]
name = -----------------------------------
$width = 1440
$height = 900
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 1440x900 (16:10)
$width = 1440
$height = 900
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 1680x1050 (16:10)
$width = 1680
$height = 1050
$gameWidth = 1280
$gameHeight = 720
$heightfix = 1
[Preset]
name = 1920x1200 (16:10)
$width = 1920
$height = 1200
$gameWidth = 1280
$gameHeight = 720
$heightfix = 1
[Preset]
name = 2560x1600 (16:10)
$width = 2560
$height = 1600
$gameWidth = 1280
$gameHeight = 720
$heightfix = 1
[Preset]
name = 2880x1800 (16:10)
$width = 2880
$height = 1800
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 3840x2400 (16:10)
$width = 3840
$height = 2400
$gameWidth = 1280
$gameHeight = 720
$heightfix = 1
[Preset]
name = 5120x3200 (16:10)
$width = 5120
$height = 3200
$gameWidth = 1280
$gameHeight = 720
$heightfix = 1
# Other Uncommon Resolutions
[Preset]
name = -----------------------------------
$width = 640
$height = 480
$gameWidth = 1280
$gameHeight = 720
$heightfix = 1
[Preset]
name = 640x480 (4:3)
$width = 640
$height = 480
$gameWidth = 1280
$gameHeight = 720
$heightfix = 1
[Preset]
name = 1280x960 (4:3)
$width = 1280
$height = 960
$gameWidth = 1280
$gameHeight = 720
$heightfix = 1
[Preset]
name = 1920x1440 (4:3)
$width = 1920
$height = 1440
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 640x512 (5:4)
$width = 640
$height = 512
$gameWidth = 1280
$gameHeight = 720
$heightfix = 1
[Preset]
name = 1280x1024 (5:4)
$width = 1280
$height = 1024
$gameWidth = 1280
$gameHeight = 720
$heightfix = 1
[Preset]
name = 1920x1536 (5:4)
$width = 1920
$height = 1536
$gameWidth = 1280
$gameHeight = 720
$heightfix = 1
[Preset]
name = 5760x1080 (48:9)
$width = 5760
$height = 1080
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 8640x1620 (48:9)
$width = 8640
$height = 1620
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 14400x2700 (48:9)
$width = 14400
$height = 2700
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
[Preset]
name = 21600x4050 (48:9)
$width = 21600
$height = 4050
$gameWidth = 1280
$gameHeight = 720
$heightfix = 0
# All 720p textures:
# - 0x001=World Lighting Red8
# - 0x005=Link and Objects Depth
# - 0x007=World Lighting Red-Green Texture
# - 0x019=Menu Interface/GUI
# - 0x01a=Normals
# - 0x41a=Geometry rendering
# - 0x806=Wind/Fog
# - 0x80e=Depth stencil buffer
# - 0x816=Weapon and Objects Bloom
# - 0x820=Field Fog
# Depth/Geometry/Shading Rendering
[TextureRedefine]
width = 1280
height = 720
formats = 0x001,0x005,0x007,0x019,0x01a,0x41a,0x80e,0x806,0x816,0x820
# formatsExcluded = 0x008 # Game Load Opening Background Image
tileModesExcluded = 0x001 # For Video Playback
overwriteWidth = ($width/$gameWidth)* 1280
overwriteHeight = ($height/$gameHeight)* 720
# Gamepad - background
[TextureRedefine]
width = 864
height = 480
formats = 0x019
# formatsExcluded = 0x034 # Exclude 0x034 which is used for large album thumbnails
overwriteWidth = ($width/$gameWidth)* 864
overwriteHeight = ($height/$gameHeight)* 480
# Gamepad - game render size
[TextureRedefine]
width = 854
height = 480
formats = 0x019
# formatsExcluded = 0x034 # Exclude 0x034 which is used for large album thumbnails
overwriteWidth = ($width/$gameWidth)* 854
overwriteHeight = ($height/$gameHeight)* 480
# All 1/2, 1/4 textures:
# - 0x001=World Lighting - Red
# - 0x005=Depth for Link and Objects
# - 0x019=GUI
# - 0x01a=Blurs and Normals
# - 0x80e=World and Objects Depth 32bit
# - 0x806=Wind/Fog
# - 0x816=World & Weapon Bloom
# - 0x820=Fog
# Required 1/2 resolutions
[TextureRedefine]
width = 640
height = 368
formats = 0x001,0x005,0x007,0x019,0x01a,0x80e,0x806,0x816,0x820,0x41a
# formatsExcluded = 0x431 # Exclude 0x431 which is used for adventure log images
overwriteWidth = ($width/$gameWidth) * 640
overwriteHeight = (($height/$gameHeight) * 368) + $heightfix
# Required 1/2 resolutions
[TextureRedefine]
width = 640
height = 360
formats = 0x001,0x005,0x007,0x019,0x01a,0x80e,0x806,0x816,0x820,0x41a
# formatsExcluded = 0x431
tileModesExcluded = 0x001 # For Video Playback
overwriteWidth = ($width/$gameWidth) * 640
overwriteHeight = ($height/$gameHeight) * 360
# Required 1/3 resolutions
[TextureRedefine]
width = 384
height = 192
formats = 0x001 # World lighting - Red
overwriteWidth = ($width/$gameWidth) * 384
overwriteHeight = ($height/$gameHeight) * 192
# Required 1/4 resolutions
[TextureRedefine]
width = 320
height = 192
formats = 0x001,0x005,0x007,0x019,0x01a,0x80e,0x816,0x806,0x820,0x41a
overwriteWidth = ($width/$gameWidth) * 320
overwriteHeight = ($height/$gameHeight) * 192
# Required 1/4 resolutions
[TextureRedefine]
width = 320
height = 180
formats = 0x001,0x005,0x007,0x019,0x01a,0x80e,0x816,0x806,0x820,0x41a
overwriteWidth = ($width/$gameWidth) * 320
overwriteHeight = ($height/$gameHeight) * 180
# Required 1/6 resolution
[TextureRedefine]
width = 192
height = 96
formats = 0x007,0x806 # Used for Fog
overwriteWidth = ($width/$gameWidth) * 192
overwriteHeight = ($height/$gameHeight) * 96
# Required 1/8 resolution
[TextureRedefine]
width = 160
height = 96
formats = 0x001,0x005,0x007,0x806,0x80e,0x816 # Used for Fog/Depth/Bloom
overwriteWidth = ($width/$gameWidth) * 160
overwriteHeight = ($height/$gameHeight) * 96
# Required 1/8 resolution
[TextureRedefine]
width = 160
height = 90
formats = 0x001,0x005,0x007,0x806,0x80e,0x816
overwriteWidth = ($width/$gameWidth) * 160
overwriteHeight = ($height/$gameHeight) * 90
# 1/10 resolution; Break 960x540 background: ambient light, bloom
#
# [TextureRedefine]
# width = 128
# height = 80
# formats = 0x005,0x007,0x019,0x01a,0x80e,0x816,0x806,0x820,0x41a
# overwriteWidth = ($width/$gameWidth) * 128
# overwriteHeight = ($height/$gameHeight) * 80
#
# [TextureRedefine]
# width = 120
# height = 75
# formats = 0x005,0x007,0x019,0x01a,0x80e,0x816,0x806,0x820,0x41a
# overwriteWidth = ($width/$gameWidth) * 120
# overwriteHeight = ($height/$gameHeight) * 75
# Required Fogs and Dust
[TextureRedefine]
width = 128
height = 48
formats = 0x806,0x816,0x005,0x007,0x820
overwriteWidth = ($width/$gameWidth) * 128
overwriteHeight = ($height/$gameHeight) * 48
# Required 1/13 resolution
[TextureRedefine]
width = 96
height = 48
formats = 0x816,0x80e # Used for bloom/depth
overwriteWidth = ($width/$gameWidth) * 96
overwriteHeight = ($height/$gameHeight) * 48
# Required 1/16 resolution
[TextureRedefine]
width = 80
height = 45
formats = 0x816,0x806,0x007 # Used for bloom/fog
overwriteWidth = ($width/$gameWidth) * 80
overwriteHeight = ($height/$gameHeight) * 45
# Required 1/16 resolution
[TextureRedefine]
width = 64
height = 64
formats = 0x80e # Used for depth
overwriteWidth = ($width/$gameWidth) * 64
overwriteHeight = ($height/$gameHeight) * 64
# 0x019 - GUI Requirements
[TextureRedefine]
width = 128
height = 720
formats = 0x019
overwriteWidth = ($width/$gameWidth) * 128
overwriteHeight = ($height/$gameHeight) * 720
[TextureRedefine]
width = 110
height = 720
formats = 0x019
overwriteWidth = ($width/$gameWidth) * 110
overwriteHeight = ($height/$gameHeight) * 720
# 0x816 - Blooms & Effects
# Heat wave effect
[TextureRedefine]
width = 1024
height = 512
depth = 1
formats = 0x816
overwriteWidth = ($width/$gameWidth) * 1024
overwriteHeight = ($height/$gameHeight) * 512
# Sheikah slate scope
[TextureRedefine]
width = 512
height = 256
depth = 1
formats = 0x816
overwriteWidth = ($width/$gameWidth) * 512
overwriteHeight = ($height/$gameHeight) * 256
# World bloom
[TextureRedefine]
width = 256
height = 128
formats = 0x816
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 256
overwriteHeight = ($height/$gameHeight) * 128
[TextureRedefine]
width = 128
height = 64
formats = 0x816
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 128
overwriteHeight = ($height/$gameHeight) * 64
[TextureRedefine]
width = 64
height = 32
formats = 0x816
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 64
overwriteHeight = ($height/$gameHeight) * 32
[TextureRedefine] # catches cubemap! 32x32, 16x16
width = 32
height = 16
depth = 1
formats = 0x816
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 32
overwriteHeight = ($height/$gameHeight) * 16
[TextureRedefine]
width = 24
height = 16
depth = 1
formats = 0x816
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 24
overwriteHeight = ($height/$gameHeight) * 16
[TextureRedefine]
width = 40
height = 22
depth = 1
formats = 0x816
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 40
overwriteHeight = ($height/$gameHeight) * 22
[TextureRedefine]
width = 20
height = 11
depth = 1
formats = 0x816
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 20
overwriteHeight = ($height/$gameHeight) * 11
# Great Fairy / Stable / Stores Viewports
# Required, Great Fairy Full Resolution Viewports
[TextureRedefine]
width = 960
height = 540
formats = 0x816,0x005,0x007,0x019,0x01a,0x41a,0x80e,0x806
tileModesExcluded = 0x001 # For Video Playback
overwriteWidth = ($width/$gameWidth) * 960
overwriteHeight = ($height/$gameHeight) * 540
# Required, Great Fairy Full Resolution Viewports
[TextureRedefine]
width = 960
height = 544
formats = 0x816,0x005,0x007,0x019,0x01a,0x41a,0x80e,0x806
overwriteWidth = ($width/$gameWidth) * 960
overwriteHeight = ($height/$gameHeight) * 544
# Required Great Fairy Red Viewport and Depth port of the same size
[TextureRedefine]
width = 512
height = 272
depth = 1
formats = 0x001,0x005 # Red Viewport / Depth
overwriteWidth = ($width/$gameWidth) * 512
overwriteHeight = ($height/$gameHeight) * 272
# Required, Great Fairy Half Resolution Viewports
[TextureRedefine]
width = 480
height = 272
formats = 0x816,0x01a,0x820,0x001,0x80e,0x820
overwriteWidth = ($width/$gameWidth) * 480
overwriteHeight = ($height/$gameHeight) * 272
# Required, Great Fairy Half Resolution Viewports
[TextureRedefine]
width = 480
height = 270
formats = 0x816,0x01a,0x820,0x001,0x80e,0x820
overwriteWidth = ($width/$gameWidth) * 480
overwriteHeight = ($height/$gameHeight) * 270
# Required - Great Fairy background heatwave effect
[TextureRedefine]
width = 512
height = 512
depth = 1
formats = 0x816
overwriteWidth = ($width/$gameWidth) * 512
overwriteHeight = ($height/$gameHeight) * 512
# Select-Menu Map
[TextureRedefine]
width = 1504
height = 720
formats = 0x019
overwriteWidth = ($width/$gameWidth) * 1504
overwriteHeight = ($height/$gameHeight) * 720
# Select-Menu Map
[TextureRedefine]
width = 1500
height = 720
formats = 0x019
overwriteWidth = ($width/$gameWidth) * 1500
overwriteHeight = ($height/$gameHeight) * 720
# Select-Menu Map Overlay
[TextureRedefine]
width = 1280
height = 608
formats = 0x019
overwriteWidth = ($width/$gameWidth) * 1280
overwriteHeight = ($height/$gameHeight) * 608
# Dyeing background: inventory fading border
[TextureRedefine]
width = 1280
height = 400
formats = 0x19
overwriteWidth = ($width/$gameWidth) * 1280
overwriteHeight = ($height/$gameHeight) * 400
# Mini-map GUI
[TextureRedefine]
width = 192
height = 192
formats = 0x019
overwriteWidth = ($width/$gameWidth) * 192
overwriteHeight = ($height/$gameHeight) * 192
# Red Viewport
[TextureRedefine]
width = 1920
height = 912
formats = 0x001
overwriteWidth = ($width/$gameWidth) * 1920
overwriteHeight = ($height/$gameHeight) * 912
# 3D Map Ganons Castle & Beasts
[TextureRedefine]
width = 512
height = 288
formats = 0x01a,0x80e
overwriteWidth = ($width/$gameWidth) * 512
overwriteHeight = ($height/$gameHeight) * 288
# Improve Color Banding for GUI Format 0x019
# 0x019 - R10_G10_B10_A2_UNORM ------> 0x01f - R16_G16_B16_A16_UNORM
[TextureRedefine]
width = 1280
height = 720
formats = 0x019
overwriteFormat = 0x01f
overwriteWidth = ($width/$gameWidth) * 1280
overwriteHeight = ($height/$gameHeight) * 720
[TextureRedefine]
width = 640
height = 368
formats = 0x019
overwriteFormat = 0x01f
overwriteWidth = ($width/$gameWidth) * 640
overwriteHeight = (($height/$gameHeight) * 368 ) + $heightfix
[TextureRedefine]
width = 640
height = 360
formats = 0x019
overwriteFormat = 0x01f
overwriteWidth = ($width/$gameWidth) * 640
overwriteHeight = ($height/$gameHeight) * 360
[TextureRedefine]
width = 320
height = 192
formats = 0x019
overwriteFormat = 0x01f
overwriteWidth = ($width/$gameWidth) * 320
overwriteHeight = ($height/$gameHeight) * 192
[TextureRedefine]
width = 320
height = 180
formats = 0x019
overwriteFormat = 0x01f
overwriteWidth = ($width/$gameWidth) * 320
overwriteHeight = ($height/$gameHeight) * 180
[TextureRedefine]
width = 128
height = 720
formats = 0x019
overwriteFormat = 0x01f
overwriteWidth = ($width/$gameWidth) * 128
overwriteHeight = ($height/$gameHeight) * 720
[TextureRedefine]
width = 110
height = 720
formats = 0x019
overwriteFormat = 0x01f
overwriteWidth = ($width/$gameWidth) * 110
overwriteHeight = ($height/$gameHeight) * 720
# Fix texture cache's mismatch warnings
[TextureRedefine] # 1280x720; Map: travel confirm menu background blur
width = 1280
height = 288
depth = 1
formats = 0x19
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 1280
overwriteHeight = ($height/$gameHeight) * 288
[TextureRedefine] # same as above
width = 1280
height = 278
depth = 1
formats = 0x19
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 1280
overwriteHeight = ($height/$gameHeight) * 278
[TextureRedefine] # 640x360 mip 1; Scope dof close-up depth
width = 512
height = 256
depth = 1
formats = 0x1
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 512
overwriteHeight = ($height/$gameHeight) * 256
[TextureRedefine] # 640x360 mip 2; same as above
width = 256
height = 128
depth = 1
formats = 0x1
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 256
overwriteHeight = ($height/$gameHeight) * 128
# Uncomment if HUD setting is Pro
# [TextureRedefine] # 640x360 mip 3; Designated level for dof processing. breaks sound wave HUD
# width = 128
# height = 64
# depth = 1
# formats = 0x1
# tilemodes = 4
# overwriteWidth = ($width/$gameWidth) * 128
# overwriteHeight = ($height/$gameHeight) * 64
[TextureRedefine] # 320x180; Blur on center piece of the map. not used at the moment of the capture
width = 293
height = 185
depth = 1
formats = 0x1a
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 293
overwriteHeight = ($height/$gameHeight) * 185
# [TextureRedefine] # 128x64; Fix sound HUD, breaks icons and teleport strips
# width = 64
# height = 64
# depth = 1
# formats = 0x1
# tilemodes = 4
# overwriteWidth = ($width/$gameWidth) * 64
# overwriteHeight = ($height/$gameHeight) * 64
# Uncomment if HUD setting is Pro
# [TextureRedefine] # 128x64; Mini-game count down number fade
# width = 40
# height = 50
# depth = 1
# formats = 0x1
# tilemodes = 4
# overwriteWidth = ($width/$gameWidth) * 40
# overwriteHeight = ($height/$gameHeight) * 50
# Resize letters box: Subtitle
[TextureRedefine]
width = 512
height = 96
depth = 1
formats = 0x1a
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 512
overwriteHeight = ($height/$gameHeight) * 96
[TextureRedefine]
width = 500
height = 94
depth = 1
formats = 0x1a
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 500
overwriteHeight = ($height/$gameHeight) * 94
# Resize letters box: pop up message
[TextureRedefine]
width = 480
height = 32
depth = 1
formats = 0x1a
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 480
overwriteHeight = ($height/$gameHeight) * 32
[TextureRedefine]
width = 464
height = 28
depth = 1
formats = 0x1a
tilemodes = 4
overwriteWidth = ($width/$gameWidth) * 464
overwriteHeight = ($height/$gameHeight) * 28