Skip to content

compat.ini Tune the compatibility

迎春心情 edited this page May 11, 2024 · 53 revisions

compat.ini is the per-episode and per-level INI file that allows you to disable or enable certain bug fixes for the purpose to utilize the buggy logic of the old game. Supported since TheXTech version 1.3.4. You can put one file in the episode root directory to apply the setup for the entire episode, or put this file at the specific level file to tune the compatibility between levels individually. Parameters defined at the level-wide file have the highest priority over episode-wide: the same parameter at the level-wide file will replace the value defined at the episode-wide file.

Important note: Since the 1.3.6 release, some fields got been renamed. Consider renaming these fields in your compat.ini files as soon as possible.

[compatibility] section

Each file should contain the [compatibility] section. There are the next parameters supported:

enable-last-warp-hub-resume

Boolean, default true. Allows the player to resume the last entered level warp when loading the saved game of the HUB-based episode. If you disable this feature, the player will start the main hub level from its entrance.

Demo result when 'true'

Preview true

Demo result when 'false'

Preview true

fix-platform-acceleration

Boolean, default true. This option enables the fix of the glitch that makes free-falling platforms and grinders distort their speed while the player transforms between different states.

fix-npc247-collapse

Boolean, default true. This option enables the fix of the case when Pokey collapses while passing slopes.

The old name fix-pokey-collapse is deprecated since 1.3.6.

fix-player-filter-bounce

Boolean, default true. This option enables the fix of the case when a player gets clip or die when bouncing off an NPC while overlapping a player filter block.

fix-player-downward-clip

Boolean, default true. This option enables the fix of the case when the playable character gets "buried" into the floor while standing on the moving layer blocks that go through another group of blocks.

fix-npc-downward-clip

Boolean, default true. This option enables the fix of the case when NPC gets "buried" into the floor while standing on the moving layer blocks that go through another group of blocks.

fix-npc55-kick-ice-blocks

Boolean, Default false. This option allows NPC-55 (Legacy variant of the Blue Beech Koopa) to kick ice blocks.

fix-climb-invisible-fences

Boolean, default true. This option prevents the unexpected ability to climb any fence BGO while they on a hidden layer.

fix-climb-bgo-speed-adding

Boolean, default true. This option enables the fix of the glitch caused an unexpected speed-adding at idling climbable BGOs after the player had to stand any other moving layer.

enable-climb-bgo-layer-move

Boolean, default true. This option allows players to move together with a climbable BGO at the moving layer as vine NPC does.

fix-player-clip-wall-at-npc

Boolean, default true. This option allows players to jump at standing on NPC and being pushed into the wall and get not be clipped into it. Resolves the old conveyor bug (also affecting by other NPCs too) that causes players to clip into the wall.

fix-skull-raft

Boolean, default true. This option makes a skull raft being not squished during the work, and also, makes it to don't work like a conveyor.

fix-char3-escape-shell-surf

Boolean, default true. This option allows Peach to escape the running shell-surf by the alt-jump key. Without this fix, Peach can only escape the shell-surf with a tanooki suit power-up by turning into the statue.

The old name fix-peach-escape-shell-surf is deprecated since 1.3.6.

fix-char5-vehicle-climb

Boolean, default true. This option fixes the problem when Link riding on a Clown Car is able to die in an attempt to fly up while fence or vines behind him: that causes him to immediately fly down with lightning speed and die in the pit.

(Since TheXTech version 1.3.5)

The old name fix-link-clowncar-fairy is deprecated since 1.3.6.

fix-vehicle-char-switch

Boolean, default true. Prevents players to switch the playable character while riding on a Clown Car by stomping any player blocks at their top. This should avoid several glitches that may happen when the playable character gets switched with the Clown Car removal.

(Since TheXTech version 1.3.5)

The old name fix-dont-switch-player-by-clowncar is deprecated since 1.3.6.

fix-vanilla-checkpoints

Boolean, default true. Allows using the checkpoint (NPC-192) multiple times at the same level. Some levels require this option to be disabled. For example, at the "It's Wonderful Demo" level in the "ASMBXT: Prelude to the Stupid" episode (See details).

(Since TheXTech version 1.3.5)

The old name enable-multipoints is deprecated since 1.3.6.

fix-squid-stomp-effect

Boolean, default true. Fixes the squid NPC death effect when get stomped (in a condition when the jumphurt option is disabled).

(Since TheXTech version 1.3.5.1)

The old name fix-blooper-stomp-effect is deprecated since 1.3.6.

fix-special-coin-switch

Boolean, default true. Avoids the dragon coins (NPC-274) being transformed into the block by the P-Switch activation.

(Since TheXTech version 1.3.5.1)

The old name fix-pswitch-dragon-coin is deprecated since 1.3.6.

fix-bat-start-while-inactive

Boolean, default true. Prevent the Swoooer (NPC-271) being activated while inactive. If disabled, the On-Activation event and flight start sound will be played when swooper is inactive: flight away off the screen and re-appeared back into the visible area where NPC won't re-spawn until player get off the area.

(Since TheXTech version 1.3.5.2)

THe old name fix-swooper-start-while-inactive is deprecated since 1.3.6.

fix-FreezeNPCs-no-reset

Boolean, default false. Avoid frozen NPC (using stopwatch or green P-Switch) being de-spawned after player gone away and came back again. The fix is very experimental and works unstable, kept disabled by default.

(Since TheXTech version 1.3.5.2)

world-map-stars-show-policy

Enumeration, default unspecified. Select the policy of the per-level stars amount on the world map. Note: The WLDX-side option has higher priority over this value. This value at compat.ini has higher priority over global game settings.

Allowed values:

  • unspecified - Prefer the behavior, defined by global game settings.
  • hide - Always hide any per-level stars counters.
  • show-collected - Display the number of already-collected stars only. Don't display the amount number at all.
  • show - Display the number of collected and available stars.
  • Note 1: The stars counter will not be shown if level has no available stars.
  • Note 2: Some levels may display improer stars count (because of friendly (i.e. non-collectable) stars being counted). This is the fault of the old level editor. To fix the issue, you can open the level and re-save it using Moondust Editor that will properly count the available stars number exclude all friendly stars.

(Since TheXTech version 1.3.5.2)

fix-npc-activation-event-loop-bug

Boolean, default true. Fixes the possible deadlock caused by recursive activation of NPCs with an event that spawns the message box and hides the layer with it.

(Since TheXTech version 1.3.5.3)

pause-on-disconnect

Boolean, default true. Pause and enter the drop/add menu when a controller is disconnected.

(Since TheXTech version 1.3.6)

allow-drop-add

Boolean, default true. Allow players to be dropped/added from a pause menu item during gameplay.

(Since TheXTech version 1.3.6)

multiplayer-pause-controls

Boolean, default true. Allows players other than P1 to pause the game and control the pause menu.

(Since TheXTech version 1.3.6)

fix-fairy-stuck-in-pipe

Boolean, default true. Enable the fix of the bug when Link could stuck in a pipe when entering it while a fairy form, leading to the deadlock of gameplay.

(Since TheXTech version 1.3.6)

world-map-fast-move

Boolean, default false. Enable the fast move feature on the world map: the player will automatically walk through the selected path until reaches the crossing or the level entry point.

(Since TheXTech version 1.3.6)

fix-framethrower-gravity

Boolean, default true. Enables the fix of the gravity logic of the frame thrower propeller block.

(Since TheXTech version 1.3.6)

fix-npc-ceiling-speed

Boolean, default true. Enables the fix of the problem of NPC being stuck in a ceiling after jump up or being thrown up and hit a ceiling. (Disabling this emulates an SMBX 1.3 bug that uses the speed of the moving block at the bottom of the column, slowing down performance.)

(Since TheXTech version 1.3.6.1)

emulate-classic-block-order

Boolean, default false. Enables the simulation of old blocks order behaviour from before TheXTech's performance updates. (Enabling this slows down performance.)

(Since TheXTech version 1.3.6.1)

fix-player-crush-death

Boolean, default true. Enables the fix of the unfair death of playable character because of moving sloped cellings.

(Since TheXTech version 1.3.6.1)

fix-pound-skip-warp

Boolean, default true. Allows entering instant warps while performing the ground pound to prevent unfair deaths.

(Since TheXTech version 1.3.6.1)

fix-held-item-cancel

Boolean, default true. Enables the fix of problem when held item won't kill an enemy NPC while it touches any other safe item. (Read details)

(Since TheXTech version 1.3.6.1)

modern-section-change

Boolean, default true. Enables the usage of the new section changing algorithm that avoids several problems like an infinite scrolling into nowhere.

(Since TheXTech version 1.3.6.1)

fix-frame-perfect-despawn

Boolean, default true. Enables the fix of the unexpected NPC despawn once it got caught by player's camera on the final tick that matches the deactivation moment.

(Since TheXTech version 1.3.6.1)

[speedrun] section

This section is available since TheXTech 1.3.5.2

The [speedrun] section allows configuring the behaviour of the speed-run timer at the episode or at every individual level. There are the next parameters supported:

stop-timer-by

Enumeration, default none. The type of event that should trigger the global timer stop.

Allowed values:

  • none - No special timer stop conditions. The timer will stop once the "End Game" built-in event got triggered.
  • event - Stop the timer when the event with a given name got triggered (for example, trigger when defeating the final boss of the episode, or getting the goal treasure that means the episode has been completed, etc.).
  • leave - Stop the timer when a player left the level by one of the available exit types. Suggested at the final level in the episode that finishes the story.
  • enter - Stop the timer when the player entered the level. Suggested for levels built as credits.

stop-timer-at

String, default Boss Dead. Depending on the stop-timer-by value, this means the name of the event got triggered, or the level file name (without extension) got been entered or left.

[fails-counter] section

This section is available since TheXTech 1.3.6

The [fails-counter] section allows you to set up a counter of how many times a player failed a level during the playthrough.

enabled

Boolean, default false in 1.3.6; Since Version 1.3.6.1, default value is defined by gameinfo.ini. Enables the deaths counter being shown at the left-top corner of the screen. When this option is enabled, there are two values that will be shown: a total number of player deaths on a current level, and a total number of deaths at the current gamesave of this episode.

title

String, default empty. Allows overriding game default deaths counter title label ("DEMOS" by default).

[luna-script] section

This section is available since TheXTech 1.3.6

The [luna-script] section allows you to set up properties of the LunaScript engine (custom implementation of LunaDLL AutoCode). It's NOT recommended to use it for creation!

enable-engine

Enumeration, default unspecified. Enable or disable the work of the LunaScript engine at this episode.

Allowed values:

  • unspecified - Prefer game info file setup (gameinfo.ini, section [luna-script], field enable-engine).
  • enable - Force enable the LunaScript engine at this episode or level, the global setting will be ignored.
  • disable - Force disable the LunaScript engine at this episode or level, the global setting will be ignored.

allow-level-codes

Boolean, default false, A2XT Ep.1 Analog Funk exclusive. Enable the handling of built-in level code processing. All of these are exclusively to work with "A Second Mario Bros. X Thing, Episode 1: Analog Funk", and these codes were has no sense outside that episode; so, they should not been enabled unless you play the Analog Funk game.

Example of the file:

[compatibility]
enable-last-warp-hub-resume = true
fix-platform-acceleration = true
fix-npc247-collapse = true
fix-player-filter-bounce = true 
fix-player-downward-clip = true
fix-npc-downward-clip = true
fix-npc55-kick-ice-blocks = false
fix-climb-invisible-fences = true
fix-climb-bgo-speed-adding = true
enable-climb-bgo-layer-move = true
fix-player-clip-wall-at-npc = true
fix-skull-raft = true
fix-char3-escape-shell-surf = true
fix-keyhole-framerate = true
fix-char5-vehicle-climb = true
fix-vehicle-char-switch = true
fix-vanilla-checkpoints = true
fix-autoscroll-speed = false
fix-squid-stomp-effect = true
fix-special-coin-switch = true
fix-bat-start-while-inactive = true
fix-FreezeNPCs-no-reset = false
world-map-stars-show-policy = unspecified
fix-npc-activation-event-loop-bug = true
pause-on-disconnect = true
allow-drop-add = true
multiplayer-pause-controls = true
fix-fairy-stuck-in-pipe = true
world-map-fast-move = false
fix-framethrower-gravity = true
fix-npc-ceiling-speed = true
emulate-classic-block-order = true
fix-player-crush-death = true
fix-pound-skip-warp = true
fix-held-item-cancel = true
modern-section-change = true
fix-frame-perfect-despawn = true

[speedrun]
stop-timer-by = event
stop-timer-at = "Demon dead, demon dead!"

[effects]
sfx-player-grow-with-got-item = enable

[fails-counter]
enabled = false
title = "DEMOS"

[luna-script]
enable-engine = unspecified
allow-level-codes = false

Renamed fields

This is the list of compat.ini fields that got been renamed during updates:

1.3.6

There are new names introduced, but compatibility aliases were kept, and will be removed in 1.3.7. Usage of old names will lead to a set of warning messages in the log of the game.

To get rid for copyright-referenced names

  • "fix-pokey-collapse""fix-npc247-collapse"
  • "fix-peach-escape-shell-surf""fix-char3-escape-shell-surf"
  • "fix-link-clowncar-fairy""fix-char5-vehicle-climb"
  • "fix-dont-switch-player-by-clowncar""fix-vehicle-char-switch"
  • "fix-blooper-stomp-effect""fix-squid-stomp-effect"
  • "fix-pswitch-dragon-coin""fix-special-coin-switch"
  • "fix-swooper-start-while-inactive""fix-bat-start-while-inactive"

Normal

  • "enable-multipoints""fix-vanilla-checkpoints"

Version Specific

fix-keyhole-framerate

Boolean, default true. This option makes the key-hole exit waiter work with the same frame-rate controller as all other scenes and modules. The normal workflow runs approximately 65 FPS. When the option is disabled, the key-hole exit waiter will work with 100 FPS that causes all blocks and BGO animations to speed up their animation.

(TheXTech versions between 1.3.4 to 1.3.6 ONLY)

Deprecated Fields for creation

[compatibility]

fix-autoscroll-speed

Boolean, default false (true in 1.3.5), because of a bug that breaks past contents (See details). Use the modern per-section Auto-Scroll settings instead, which is more flexible.

(Since TheXTech version 1.3.5)

Will be removed since 1.3.7

[effects] section

This section is for TheXTech versions between 1.3.5.3 and 1.3.6.x

The [effects] section allows configuring the behaviour of some non-gameplay (sound or graphical) effects at an episode or individual level. There are the next parameters supported:

sfx-player-grow-with-got-item

Enumeration, default unspecified. Enables playing of the player growing sound together with the got item to represent the Super Mario World behaviour.

Allowed values:

  • unspecified - Prefer game global settings (settings/thextech.ini, section [effects], field sfx-player-grow-with-got-item).
  • enable - Force enable the effect at this episode or level, the global setting will be ignored.
  • disable - Force disable the effect at this episode or level, the global setting will be ignored.
Clone this wiki locally