[Definition]
titleIds = 0005000010190300,00050000101E5300,00050000101E5400
name = Graphic Options
path = "Mario & Sonic at the Rio 2016 Olympic Games/Graphics"
description = Allows you to change the game's TV resolution, gamepad resolution and anisotropic filtering quality.||Made by M&&M.
version = 6

[Default]
$width = 1280
$height = 720
$padWidth = 854
$padHeight = 480
$gameWidth = 1280
$gameHeight = 720
$gamePadWidth = 854
$gamePadHeight = 480
$anisotropy = 1

# TV Resolution

[Preset]
name = 320x180
category = TV Resolution
$width = 320
$height = 180

[Preset]
name = 640x360
category = TV Resolution
$width = 640
$height = 360

[Preset]
name = 854x480
category = TV Resolution
$width = 854
$height = 480

[Preset]
name = 960x540
category = TV Resolution
$width = 960
$height = 540

[Preset]
name = 1280x720
category = TV Resolution
default = 1

[Preset]
name = 1600x900
category = TV Resolution
$width = 1600
$height = 900

[Preset]
name = 1920x1080
category = TV Resolution
$width = 1920
$height = 1080

[Preset]
name = 2560x1440
category = TV Resolution
$width = 2560
$height = 1440

[Preset]
name = 3200x1800
category = TV Resolution
$width = 3200
$height = 1800

[Preset]
name = 3840x2160
category = TV Resolution
$width = 3840
$height = 2160

[Preset]
name = 5120x2880
category = TV Resolution
$width = 5120
$height = 2880

[Preset]
name = 7680x4320
category = TV Resolution
$width = 7680
$height = 4320

# Gamepad Resolution

[Preset]
name = 320x180
category = Gamepad Resolution
$padWidth = 320
$padHeight = 180

[Preset]
name = 640x360
category = Gamepad Resolution
$padWidth = 640
$padHeight = 360

[Preset]
name = 854x480
category = Gamepad Resolution
default = 1

[Preset]
name = 960x540
category = Gamepad Resolution
$padWidth = 960
$padHeight = 540

[Preset]
name = 1280x720
category = Gamepad Resolution
$padWidth = 1280
$padHeight = 720

[Preset]
name = 1600x900
category = Gamepad Resolution
$padWidth = 1600
$padHeight = 900

[Preset]
name = 1920x1080
category = Gamepad Resolution
$padWidth = 1920
$padHeight = 1080

[Preset]
name = 2560x1440
category = Gamepad Resolution
$padWidth = 2560
$padHeight = 1440

[Preset]
name = 3200x1800
category = Gamepad Resolution
$padWidth = 3200
$padHeight = 1800

[Preset]
name = 3840x2160
category = Gamepad Resolution
$padWidth = 3840
$padHeight = 2160

[Preset]
name = 5120x2880
category = Gamepad Resolution
$padWidth = 5120
$padHeight = 2880

[Preset]
name = 7680x4320
category = Gamepad Resolution
$padWidth = 7680
$padHeight = 4320

# Anisotropic Filtering Quality

[Preset]
name = 1x
category = Anisotropic Filtering Quality
default = 1

[Preset]
name = 2x
category = Anisotropic Filtering Quality
$anisotropy = 2

[Preset]
name = 4x
category = Anisotropic Filtering Quality
$anisotropy = 4

[Preset]
name = 8x
category = Anisotropic Filtering Quality
$anisotropy = 8

[Preset]
name = 16x
category = Anisotropic Filtering Quality
$anisotropy = 16

# Anisotropic Filtering

[TextureRedefine]
tileModesExcluded = 0x001 # ignore cpu processed textures
formatsExcluded = 0x001,0x019,0x01a,0x01f,0x122,0x806,0x80e,0x816,0x820 # ignore viewports and cubemaps
overwriteAnisotropy = $anisotropy

# Texture Redefines

[TextureRedefine]
width = 1280
height = 720
formatsExcluded = 0x31,0x33
tileModesExcluded = 0x001
overwriteWidth = ($width / $gameWidth) * 1280
overwriteHeight = ($height / $gameHeight) * 720

[TextureRedefine]
width = 768
height = 480
overwriteWidth = ($width / $gameWidth) * 768
overwriteHeight = ($height / $gameHeight) * 480

[TextureRedefine]
width = 746
height = 470
overwriteWidth = ($width / $gameWidth) * 746
overwriteHeight = ($height / $gameHeight) * 470

[TextureRedefine]
width = 768
height = 432
overwriteWidth = ($width / $gameWidth) * 768
overwriteHeight = ($height / $gameHeight) * 432

[TextureRedefine]
width = 746
height = 420
overwriteWidth = ($width / $gameWidth) * 746
overwriteHeight = ($height / $gameHeight) * 420

[TextureRedefine]
width = 576
height = 432
overwriteWidth = ($width / $gameWidth) * 576
overwriteHeight = ($height / $gameHeight) * 432

[TextureRedefine]
width = 570
height = 420
overwriteWidth = ($width / $gameWidth) * 570
overwriteHeight = ($height / $gameHeight) * 420

[TextureRedefine]
width = 544
height = 384
overwriteWidth = ($width / $gameWidth) * 544
overwriteHeight = ($height / $gameHeight) * 384

[TextureRedefine]
width = 533
height = 380
overwriteWidth = ($width / $gameWidth) * 533
overwriteHeight = ($height / $gameHeight) * 380

[TextureRedefine]
width = 512
height = 480
overwriteWidth = ($width / $gameWidth) * 512
overwriteHeight = ($height / $gameHeight) * 480

[TextureRedefine]
width = 490
height = 476
overwriteWidth = ($width / $gameWidth) * 490
overwriteHeight = ($height / $gameHeight) * 476

[TextureRedefine]
width = 320
height = 192
overwriteWidth = ($width / $gameWidth) * 320
overwriteHeight = ($height / $gameHeight) * 192

[TextureRedefine]
width = 320
height = 180
overwriteWidth = ($width / $gameWidth) * 320
overwriteHeight = ($height / $gameHeight) * 180

[TextureRedefine]
width = 256
height = 96
overwriteWidth = ($width / $gameWidth) * 256
overwriteHeight = ($height / $gameHeight) * 96

[TextureRedefine]
width = 160
height = 96
overwriteWidth = ($width / $gameWidth) * 160
overwriteHeight = ($height / $gameHeight) * 96

[TextureRedefine]
width = 160
height = 90
overwriteWidth = ($width / $gameWidth) * 160
overwriteHeight = ($height / $gameHeight) * 90

[TextureRedefine]
width = 128
height = 48
overwriteWidth = ($width / $gameWidth) * 128
overwriteHeight = ($height / $gameHeight) * 48

[TextureRedefine]
width = 80
height = 45
overwriteWidth = ($width / $gameWidth) * 80
overwriteHeight = ($height / $gameHeight) * 45

[TextureRedefine]
width = 64
height = 64
formats = 0x80e
overwriteWidth = ($width / $gameWidth) * 64
overwriteHeight = ($height / $gameHeight) * 64

[TextureRedefine]
width = 64
height = 32
formats = 0x816
overwriteWidth = ($width / $gameWidth) * 64
overwriteHeight = ($height / $gameHeight) * 32

[TextureRedefine]
width = 40
height = 22
overwriteWidth = ($width / $gameWidth) * 40
overwriteHeight = ($height / $gameHeight) * 22

[TextureRedefine]
width = 32
height = 16
formats = 0x816,0x80e
overwriteWidth = ($width / $gameWidth) * 32
overwriteHeight = ($height / $gameHeight) * 16

[TextureRedefine]
width = 20
height = 11
overwriteWidth = ($width / $gameWidth) * 20
overwriteHeight = ($height / $gameHeight) * 11

[TextureRedefine]
width = 16
height = 16
formats = 0x80e
overwriteWidth = ($width / $gameWidth) * 16
overwriteHeight = ($height / $gameHeight) * 16

[TextureRedefine]
width = 16
height = 8
formats = 0x816
overwriteWidth = ($width / $gameWidth) * 16
overwriteHeight = ($height / $gameHeight) * 8

[TextureRedefine]
width = 10
height = 5
overwriteWidth = ($width / $gameWidth) * 10
overwriteHeight = ($height / $gameHeight) * 5

[TextureRedefine]
width = 8
height = 8
formats = 0x816,0x80e
overwriteWidth = ($width / $gameWidth) * 8
overwriteHeight = ($height / $gameHeight) * 8

[TextureRedefine]
width = 5
height = 2
overwriteWidth = ($width / $gameWidth) * 5
overwriteHeight = ($height / $gameHeight) * 2

[TextureRedefine]
width = 4
height = 4
formats = 0x80e
overwriteWidth = ($width / $gameWidth) * 4
overwriteHeight = ($height / $gameHeight) * 4

[TextureRedefine]
width = 1
height = 1
formats = 0x816,0x80e
overwriteWidth = ($width / $gameWidth) * 1
overwriteHeight = ($height / $gameHeight) * 1

# Gamepad Resolution

[TextureRedefine]
width = 864
height = 480
overwriteWidth = ($padWidth / $gamePadWidth) * 864
overwriteHeight = ($padHeight / $gamePadHeight) * 480

[TextureRedefine]
width = 854
height = 480
overwriteWidth = ($padWidth / $gamePadWidth) * 854
overwriteHeight = ($padHeight / $gamePadHeight) * 480
