Difference between revisions of "Config.ini"

From Shield Cat Wiki
Jump to navigation Jump to search
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
{{FutureFeatures}}
 
The <code>config.ini</code> 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.
 
The <code>config.ini</code> 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.
+
The game will automatically write all configuration values to the config file, along with their default values. The different possible values are detailed below.
  
{| class="wikitable"
+
<i><b>Please note</b> that configuration options may be added or removed, so if the option isn't documented below, it most likely has been removed.</i>
|[Video]
 
Fullscreen="true"
 
  
Window_Width="1280"
+
<i><b>Please note</b> that <code>config.ini</code> is only available in <code>Windows</code>, <code>Mac OS</code>, and <code>Linux</code>. 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.</i>
 
 
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"
 
|}
 
  
 
== [Video] ==
 
== [Video] ==
Below are the different video options.
 
  
 
=== Fullscreen ===
 
=== Fullscreen ===
Line 67: Line 42:
 
There are two possible values for this, which are <code>0</code> and <code>1</code>.
 
There are two possible values for this, which are <code>0</code> and <code>1</code>.
  
<code>0</code> will use Integer Scaling, which means that if you're playing the game on a monitor that's <code>1680x1050</code>, the game will play at <code>1280x720</code> to guarantee that all pixels are double size of the game's base resolution of <code>640x360</code>.
+
<code>0</code> will use Integer Scaling, which means that if you're playing the game on a monitor that's <code>1680x1050</code>, the game will play at <code>1280x720</code> to guarantee that all pixels are double size of the game's base resolution of <code>640x360</code>. However, this means that there will be a black border around the screen. This is, however, the fastest upscale method.
 +
 
 +
<code>1</code> will use Fractional Scaling (Fast), which means that if you're playing on a <code>1680x1050</code> screen, the game will render at <code>1280x720</code>, which is 2 times the base resolution of <code>640x360</code>, and then it will upscale it to fit your display. This allows the game to take up the whole screen, but can appear blurry. However, it is a lot quicker than the High Quality mode.
  
<code>1</code> will use Fractional Scaling, which means that if you're playing on the <code>1680x1050</code> screen, the game will render at <code>1920x1080</code> which is exactly 3 times the base resolution of <code>640x360</code>, and then will downsample it to fit into your display.
+
<code>2</code> will use Fractional Scaling (High Quality), which means that if you're playing on the <code>1680x1050</code> screen, the game will render at <code>1920x1080</code> which is exactly 3 times the base resolution of <code>640x360</code>, and then will downscale to fit into your display. This can be slower on older computers, though.
  
 
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 <code>1366x768</code> 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.
 
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 <code>1366x768</code> 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.
Line 79: Line 56:
  
 
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 <code>640x360</code> 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. <b>However</b>, if <code>Texture_Interpolation</code> is on, and <code>AppSurfaceUpscale</code> is off, then <b>the screen will be blurry.</b> You must turn BOTH of these settings off to correct this issue.
 
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 <code>640x360</code> 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. <b>However</b>, if <code>Texture_Interpolation</code> is on, and <code>AppSurfaceUpscale</code> is off, then <b>the screen will be blurry.</b> You must turn BOTH of these settings off to correct this issue.
 +
 +
=== Blur_Quality ===
 +
 +
  Default: 2
 +
 +
This controls the quality of the blur in the game. Acceptable values are between <code>0</code> (no blur) and <code>4</code> (extremely high quality blur.) The blur quality can use up a significant amount of GPU processing time, so it should only be increased on high-end machines.
  
 
== [Input] ==
 
== [Input] ==
Line 98: Line 81:
  
 
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.
 
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.
 +
 +
== [Game] ==
 +
 +
=== LoadSpeed ===
 +
  Default: 2
 +
 +
This affects how many areas the game can process during the initial load of the room. During this time, the game will load in 3D objects as well as place grass and trees in the room, among other things. The value can be between <code>1</code> and <code>8</code>, though higher numbers are only recommended on powerful computers. Otherwise, you will experience issues.
 +
 +
Note that this does not affect the default <code>30 seconds</code> that the game will take between areas - use <code>RoomTransFrames</code> to set this.
 +
 +
=== RoomTransFrames ===
 +
  Default: 30
 +
 +
This controls how many frames the game will take between rooms, and going indoors/outdoors. Setting this to <code>0</code> will allow the game to go to the next area as fast as possible, but may cause issues on low-end PCs. The load time is also designed to give your hands time to rest, so please keep this in mind. This option can be set up to <code>300 seconds</code>, though this high amount is probably undesirable.
 +
 +
== [SaveData] ==
 +
 +
=== SaveSlot ===
 +
  Default: 0
 +
 +
This specifies what save slot was last used, as well as which save slot will be used for autosave. It has a value of <code>0</code> whenever you start a new game. Otherwise, the value is between <code>1</code> and <code>MaxSaveSlots</code>.
 +
 +
=== MaxSaveSlots ===
 +
  Default: 32
 +
 +
This specifies how many save slots the game will show. It can have a value from <code>1</code> to <code>255</code>.
  
 
== [Debug] ==
 
== [Debug] ==
 +
 +
=== DebugAllowed ===
 +
  Default: "false"
 +
 +
When enabled, you may press <code>F10</code> to open a debug overlay. This debug overlay shows a number of things, but will change between builds. Therefore, exactly what it shows will not be documented. Additionally, special functions will become available for some keys on the keyboard - these will be shown on the overlay. The Gamemaker debug overlay also becomes available.
  
 
=== WriteMapData ===
 
=== WriteMapData ===
<code>Default: "false"</code>
+
  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.
 
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. <b>Please note that these controls cannot be remapped</b>.
 +
 +
This mode is named for and based on the YouTube show <b>BoundaryBreak</b>, created by Shesez. You can see the show [https://www.youtube.com/playlist?list=PLYfhW_P-MkU7vBmWwwyqdIWNDzXfEZwnO here]
  
 
[[Category:Technical Info]]
 
[[Category:Technical Info]]

Latest revision as of 17:52, 25 June 2020

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.

The game will automatically write all configuration values to the config file, along with their default values. The different possible values are detailed below.

Please note that configuration options may be added or removed, so if the option isn't documented below, it most likely has been removed.

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. However, this means that there will be a black border around the screen. This is, however, the fastest upscale method.

1 will use Fractional Scaling (Fast), which means that if you're playing on a 1680x1050 screen, the game will render at 1280x720, which is 2 times the base resolution of 640x360, and then it will upscale it to fit your display. This allows the game to take up the whole screen, but can appear blurry. However, it is a lot quicker than the High Quality mode.

2 will use Fractional Scaling (High Quality), 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 downscale to fit into your display. This can be slower on older computers, though.

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.

Blur_Quality

 Default: 2

This controls the quality of the blur in the game. Acceptable values are between 0 (no blur) and 4 (extremely high quality blur.) The blur quality can use up a significant amount of GPU processing time, so it should only be increased on high-end machines.

[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.

[Game]

LoadSpeed

 Default: 2

This affects how many areas the game can process during the initial load of the room. During this time, the game will load in 3D objects as well as place grass and trees in the room, among other things. The value can be between 1 and 8, though higher numbers are only recommended on powerful computers. Otherwise, you will experience issues.

Note that this does not affect the default 30 seconds that the game will take between areas - use RoomTransFrames to set this.

RoomTransFrames

 Default: 30

This controls how many frames the game will take between rooms, and going indoors/outdoors. Setting this to 0 will allow the game to go to the next area as fast as possible, but may cause issues on low-end PCs. The load time is also designed to give your hands time to rest, so please keep this in mind. This option can be set up to 300 seconds, though this high amount is probably undesirable.

[SaveData]

SaveSlot

 Default: 0

This specifies what save slot was last used, as well as which save slot will be used for autosave. It has a value of 0 whenever you start a new game. Otherwise, the value is between 1 and MaxSaveSlots.

MaxSaveSlots

 Default: 32

This specifies how many save slots the game will show. It can have a value from 1 to 255.

[Debug]

DebugAllowed

 Default: "false"

When enabled, you may press F10 to open a debug overlay. This debug overlay shows a number of things, but will change between builds. Therefore, exactly what it shows will not be documented. Additionally, special functions will become available for some keys on the keyboard - these will be shown on the overlay. The Gamemaker debug overlay also becomes available.

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