[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 = 3

[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

# Required 1/10 resolution
[TextureRedefine]
width = 128
height = 80
formats = 0x005,0x007,0x019,0x01a,0x80e,0x816,0x806,0x820,0x41a
overwriteWidth = ($width/$gameWidth) * 128
overwriteHeight = ($height/$gameHeight) * 80

# Required 1/10 resolution
[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]
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

# 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
