bugfix extensions

From Wiki

Jump to: navigation, search


Extensions in this section correct bugs in the unextended product. Some extensions in other sections may depend upon these extensions and refuse to work otherwise, other extensions may supersede these extensions. How extensions interact is decided on a case by case basis.

do_fix_any_experimental

Introduced around 1.0.0.1, this extension is equivalent to to setting all experimental Bugfix extensions. This will not set undocumented extensions. Values are limited to binary statements.[#]

do_fix_any_nontrivial

Introduced around 1.0.0.1, this extension is equivalent to to setting all nontrivial Bugfix extensions. Nontrivial means the extensions come at some non-negligible performance overhead. Values are limited to binary statements.[#]

do_fix_any_trivial

Introduced around 1.0.0.1, this extension is equivalent to to setting all trivial Bugfix extensions. Trivial means the extensions is negligible or free in terms of performance overhead. Values are limited to binary statements.[#]

do_fix_asynchronous_sound

Introduced around 1.0.0.1, this extension is classified a nontrivial fix. It ensures sound effects are synchronized with the source of the sound. Values are limited to binary statements.[#]

do_fix_clipping_item_display

Introduced around 1.0.0.1, this extension is classified a nontrivial fix. It ensures item geometry as displayed in menus does not intersect geometry that is part of the background in a non-picture menu. Values are limited to binary statements.[#]

do_fix_controller_configuration

Introduced around 1.0.0.1, this extension is classified a trivial fix. It maps the game controller settings in the game's INI file to correct values. Values are limited to binary statements.[#]

do_fix_elapsed_time

Introduced around 1.0.0.1, this extension is classified a trivial fix. Prior to ver. 1.1.1.3 this extension hid all of the clocks in the menus from the player. After 1.1.1.3 a fully functional clock can be achieved by somehow adding a counter named "Ex" to the project (if need be, such a counter can be added by editing the SYS.DAT file) otherwise the clocks will be hidden. In fact 1.1.1.3 goes further and hides the clocks in the save/load menus. Values are limited to binary statements.[#]

do_fix_fov_in_memory

Introduced around 1.0.0.1, this extension is classified a trivial fix. It ensures the correct field of view values exist in memory. For example, without this fix, graphics may disappear mysteriously along the edges of the screen under some display resolutions -- it may also be necessary to enable #do_fov in order to achieve this effect. Values are limited to binary statements.[#]

Note: may not work as expected if #do_fov is not enabled. (do_fov is deprecated as of ver. 1.1.1.5)

do_fix_graphics_device_interfacing

Introduced around 1.0.0.1, this extension is classified a nontrivial fix. For example, Sword of Moonlight instantiates a font in memory every time it redraws the screen. This can happen several times a second. This fix manages a pool of GDI resources which are reused wherever applicable and recycled as necessary. This should improve performance and conserve memory. Values are limited to binary statements.[#]

do_fix_lighting_dropout

Introduced around 1.0.0.1, this extension is classified a nontrivial fix. Normally object lighting is turned off if you change display settings in the game menu. This extension fixes that behavior indirectly by doing the equivalent of turning on #do_lights with the number of lamps set to 3. 3 is believed to be the maximum number of lamps Sword of Moonlight will apply to an object. Setting do_lights to yes will supersede this extension. Values are limited to binary statements.[#]

do_fix_out_of_range_config_values

Introduced around 1.0.0.1, this extension is classified a trivial fix. It clamps the possible values in the games INI file to suitable ranges and filters out impossible and or troublesome values. Values are limited to binary statements.[#]

do_fix_oversized_compass_needle

Introduced around 1.0.0.1, this extension is classified a nontrivial fix. Sometimes the compass needle is gigantic compared to the compass. This should correct that, hopefully without any side effects. Values are limited to binary statements.[#]

It is nontrivial because of a slight chance of side effects cropping up in menu elements if mistaken for the needle.

do_fix_slowdown_on_save_data_select

Introduced around 1.0.0.1, this extension is classified a trivial fix... because it's more work not to fix and the fix is relatively simple. In Save/Load menus every time Sword of Moonlight redraws the screen (several times a second) it tries to open 99 files in your save folder. This is hard on any disk, however on a modern hard disk drive you may not notice. On any kind of external storage disk the game will grind to a crawl. The player may not even be able to get out of the game. This extension fixes this behavior. Values are limited to binary statements.[#]

do_fix_spelling_of_english_words

Introduced around 1.0.0.1, this extension is classified a trivial fix. Sword of Moonlight is/was a Japanese product first. Originally it contains some English words which are not always spelled correctly. This extension fixes these instances wherever applicable, so your game should appear more professional to players versed in English. Values are limited to binary statements.[#]

do_fix_widescreen_font_height

Introduced around 1.1.1.5, this extension is classified a trivial fix. For whatever reason the creators of Sword of Moonlight decided that the height of fonts should be proportional to the horizontal resolution. Circa 2000 we used more or less square CRT displays, so no one would have noticed the preposterousness of this decision and or oversight. CRTs turned out to be a 20th century thing. Nowadays displays are almost always widescreen; so this extension simply flips the formula around to accommodate any and all screens, and may or may not also entail additional adjustments such as the centering of text. It is recommended for readability sake. Values are limited to binary statements.[#]