Config.ini

From Shield Cat Wiki
Revision as of 06:42, 18 September 2019 by Roxy (talk | contribs)
Jump to navigation Jump to search
Warning! The information detailed on this page may not be in the present available build, and may only be available in an upcoming build! Therefore, all information here is to be considered volatile and could change or be removed without notice.

The config.ini file contains general configuration info for Shield Cat. It can be found in the directories specified in the Installation Instructions, depending on which platform you're playing on.

Here is a table of the possible options, with their defaults specified. Please note that if a key/value pair isn't included in the ini file, then the game will use an internal default value which matches the ones specified below.

 [Video]
 Fullscreen="true"
 Window_Width="1280"
 Window_Height="720"
 VSync="true"
 AntiAliasing="0"
 Texture_Interpolation="true"
 Upscale_Method="1"
 AppSurfaceUpscale="true"
 [Input]
 AllowTouchInput="true"
 AllowKeyboardInput="true"
 AllowGamepadInput="true"
 [Debug]
 WriteMapData="false"
 BoundaryBreakAllowed="false"

Please note that config.ini is only available in Windows, Mac OS, and Linux. Other supported platforms will use the defaults specified below. It may be possible to modify this file on other platforms, but this is not supported.

[Video]

Fullscreen

Default: "true"

Whether the game is fullscreen or not. The game will remember if it was fullscreen or not the last time you ran it (even if you didn't use the video config menu,) and will make it that way again when you run it again.

Window_Width, Window_Height

Default: Window_Width="1280" Window_Height="720"

When the game is not fullscreen, this is the size that the game was the last time it ran. This size will be restored the next time it's run.

VSync

Default: "true"

VSync is used to get rid of vertical tearing. It can cause a performance hit, but that hit will only really affect older machines. It is best left on.

AntiAliasing

Default: "0"

There are 4 possible values to this: 0, 2, 4, and 8. This will smooth out the lines on polygons, like the ones on the pause menu and dialog boxes, but comes at a great performance cost (even on modern machines.) It's best to leave this at 0, unless your device can support it.

Texture_Interpolation

Default: "true"

This smooths out the pixels when the game is playing at a resolution that's not a solid multiple of 640x360, such as 1280x720 or 1920x1080. If you were playing at, say, 1680x1050 then the game would be downscaled some from 1920x1080 and Texture Interpolation will help to smooth out the pixels. Otherwise, you will get a jagged look.

This option also helps to smooth out words on the screen, as well as high-res assets such as character portraits, when they are downscaled. The performance hit on this is very small, so it's best left on.

Upscale_Method

Default: "1"

There are two possible values for this, which are 0 and 1.

0 will use Integer Scaling, which means that if you're playing the game on a monitor that's 1680x1050, the game will play at 1280x720 to guarantee that all pixels are double size of the game's base resolution of 640x360.

1 will use Fractional Scaling, which means that if you're playing on the 1680x1050 screen, the game will render at 1920x1080 which is exactly 3 times the base resolution of 640x360, and then will downsample it to fit into your display.

It's best to leave this at 1, so that the game will take the maximum amount of space on your screen. However, if your monitor is something like 1366x768 and you're having performance issues or don't like the smoothing, it may be better to set this to 0 to prevent the game from rendering larger than it needs to. This will result in a black bar around the screen, but all pixels will be exactly double size.

AppSurfaceUpscale

Default: "true"

Although Shield Cat has a resolution of 640x360, it will actually render at your monitor's native resolution. For instance, if your monitor is 1920x1080, then the game will render at that resolution. All high-res assets, polygons, shaders, and whatnot will be rendered at your screen's native resolution.

However, this can cause negative performance on older machines. In this case, you can disable AppSurfaceUpscale. The game will render all assets, polygons, shaders, and whatnot at 640x360 and then upscale the final result to fit the display. This can have an incredible impact on older machines to make the game run at full speed instead of very slowly. However, if Texture_Interpolation is on, and AppSurfaceUpscale is off, then the screen will be blurry. You must turn BOTH of these settings off to correct this issue.

[Input]

AllowTouchInput

Default: "true"

This allows the game to receive touch input on phones, or mouse input from computers. Disabling this can cause a speed increase, as all functions to check for mouse/touch input will be disabled. However, the speed increase will be relatively small.

AllowKeyboardInput

Default: "true"

This allows the game to accept keyboard input. Disabling it can cause a speed increase, but it will be relatively small.

AllowGamepadInput

Default: "true"

This allows the game to accept input from XInput (XBOX/compatible controllers) as well as DirectInput devices. Disabling it will not cause a speed increase, as no gamepads are checked if no gamepads are plugged in. However, you can still disable this if you (for some reason) have a lot of gamepads connected to your computer, but you don't want to use any of them with Shield Cat. This is because, for each gamepad connected and each input configured, the game has to check to see if any of the configured buttons were pressed or not. If you have a lot of controllers connected, it's possible for the game to slow down.

If you read that and you're wondering if you're going to experience slowdown with a controller, it won't happen if you have only one connected. It's only in the most extreme cases, but I don't think it would be a good idea to connect 12 controllers to an older machine anyways.

[Debug]

WriteMapData

Default: "false"

This is a debug option that allows the game to generate collision data for the room and store it into a file. This process takes time. However, since the rooms will not be changed at runtime, we can store this data on the disk and load it as necessary, which is a lot quicker. However, people playing the game don't really need to be doing this. It's only use is for creating builds of the game.

BoundaryBreakAllowed

Default: "false"

This debug option allows you to use a special camera that can move around anywhere you'd like it to. When enabled, you can use the camera by pressing Select on the first XInput device (if you have a single XBOX controller plugged in, it's that one.) You can use L and LB to manipulate the X axis, R and RB to manipulate the Y axis, and Up and Down on the right analog stick to control the zoom. Please note that these controls cannot be remapped.

This mode is named for and based on the YouTube show BoundaryBreak, created by Shesez. You can see the show here