list of extensions
From Wiki
This article or section is in the middle of an expansion or major restructuring. You are welcome to assist in its construction by editing it as well. If this article has not been edited in several days, please remove this template. This page was last edited by Holy (talk| contribs) ago. (Purge) |
This page is a list of Sword of Moonlight Extension Library extensions by section. Each extension is a named key and value pair belonging in a section following INI format rules.
Extensions
There are some basic style decisions in terms of the extension syntax. The most dominant is extensions which begin with do_ are yes/no (either on or off) extensions. Extensions beginning with do_not_ indicate that the extension normally goes into effect unless disabled. Most such extensions are dependent upon other extensions which must be first enabled. The #Option section includes only do_ extensions which act as a master switch for many extensions (the extensions in the #Detail section are all explicitly tied to the Option section).
Other distinctions exist but should just be picked up upon through personal experience. This page is not a guideline for filling out a so-called Ex.ini file. Nor is it official documentation. Many extensions may be officially undocumented early in their life or perhaps forever, probably with good reason. These extensions can be documented here or elsewhere, but their officially undocumented status should be conveyed to the reader.
Sections
Anything not recognized as an extension is ignored. Normally this is a non-fatal error, however there is an "unnamed" section which exists implicitly before the first section. The only extension recognized inside is C. It may be set to an ISO-639 language code and ISO-3166 country code pair in order to change the locale of the file itself. The default locale is C, named after the C programming language. It is language neutral more or less.
Note: The file itself is Unicode (UTF16) or ANSI. Changing the locale is something a translator might do if they wanted their audience to be 100% comfortable editing the file in a particular language.
The extension library C locale reserves the right to 6 letter ASCII section names with or without numbers immediately appended. Modules may use any other combination of characters.
Contents
- 1 Extensions
- 2 Sections
- 2.1 Adjust
- 2.2 Author
- 2.3 Boxart
- 2.3.1 game_artist
- 2.3.2 game_auteur
- 2.3.3 game_based_upon
- 2.3.4 game_caretaker
- 2.3.5 game_company
- 2.3.6 game_concept
- 2.3.7 game_dedication
- 2.3.8 game_designer
- 2.3.9 game_director
- 2.3.10 game_disclaimer
- 2.3.11 game_distributor
- 2.3.12 game_edition
- 2.3.13 game_features
- 2.3.14 game_first_edition_date
- 2.3.15 game_first_edition_year
- 2.3.16 game_format
- 2.3.17 game_label
- 2.3.18 game_legal
- 2.3.19 game_license
- 2.3.20 game_mascot
- 2.3.21 game_music
- 2.3.22 game_musing
- 2.3.23 game_original
- 2.3.24 game_partners
- 2.3.25 game_planner
- 2.3.26 game_presented_by
- 2.3.27 game_presenters
- 2.3.28 game_producer
- 2.3.29 game_programmer
- 2.3.30 game_project
- 2.3.31 game_publisher
- 2.3.32 game_publishing_date
- 2.3.33 game_rating
- 2.3.34 game_region
- 2.3.35 game_series
- 2.3.36 game_soundsuite
- 2.3.37 game_soundtrack
- 2.3.38 game_studio
- 2.3.39 game_sub_series
- 2.3.40 game_subteam
- 2.3.41 game_subtitle
- 2.3.42 game_suggested_retail_price
- 2.3.43 game_super_title
- 2.3.44 game_thanks
- 2.3.45 game_title_with_sequel
- 2.3.46 game_version
- 2.3.47 game_writer
- 2.3.48 game_year_published
- 2.4 Bugfix
- 2.4.1 do_fix_any_experimental
- 2.4.2 do_fix_any_nontrivial
- 2.4.3 do_fix_any_trivial
- 2.4.4 do_fix_asynchronous_sound
- 2.4.5 do_fix_clipping_item_display
- 2.4.6 do_fix_controller_configuration
- 2.4.7 do_fix_elapsed_time
- 2.4.8 do_fix_fov_in_memory
- 2.4.9 do_fix_graphics_device_interfacing
- 2.4.10 do_fix_lighting_dropout
- 2.4.11 do_fix_out_of_range_config_values
- 2.4.12 do_fix_oversized_compass_needle
- 2.4.13 do_fix_slowdown_on_save_data_select
- 2.4.14 do_fix_spelling_of_english_words
- 2.5 Detail
- 2.5.1 *alphafog_skyflood_constant
- 2.5.2 *alphafog_skyfloor_constant
- 2.5.3 *ambient_contribution
- 2.5.4 *cursor_presentation_timeout
- 2.5.5 *lights_ambient_multiplier
- 2.5.6 *lights_calibration_factor
- 2.5.7 *lights_constant_attenuation
- 2.5.8 *lights_diffuse_multiplier
- 2.5.9 *lights_distance_multiplier
- 2.5.10 *lights_exponent_multiplier
- 2.5.11 *lights_linear_attenuation
- 2.5.12 *lights_maximum_lamp_lights
- 2.5.13 *lights_quadratic_attenuation
- 2.5.14 *lights_vs_1_x_unroll_x
- 2.5.15 *mipmaps_maximum_anisotropy
- 2.5.16 *mouse_...th_button_action
- 2.5.17 *mouse_deadzone_multiplier
- 2.5.18 *mouse_horizontal_multiplier
- 2.5.19 *mouse_left_button_action
- 2.5.20 *mouse_menu_button_action
- 2.5.21 *mouse_middle_button_action
- 2.5.22 *mouse_right_button_action
- 2.5.23 *mouse_saturate_multiplier
- 2.5.24 *mouse_tilt_left_action
- 2.5.25 *mouse_tilt_right_action
- 2.5.26 *mouse_vertical_multiplier
- 2.5.27 *numlock_initial_state
- 2.5.28 *numlock_key
- 2.5.29 *pause_button_default
- 2.5.30 *wasd_and_mouse_mode
- 2.6 Editor
- 2.7 Folder
- 2.8 Joypad
- 2.9 Keygen
- 2.10 Launch
- 2.11 Locale
- 2.12 Option
- 2.12.1 do_alphafog
- 2.12.2 do_ambient
- 2.12.3 do_analog
- 2.12.4 do_anisotropy
- 2.12.5 do_antialias
- 2.12.6 do_cursor
- 2.12.7 do_dither
- 2.12.8 do_fov
- 2.12.9 *do_gamma
- 2.12.10 *do_green
- 2.12.11 *do_hdr
- 2.12.12 *do_highcolor
- 2.12.13 *do_interlace
- 2.12.14 *do_invert
- 2.12.15 *do_lights
- 2.12.16 *do_log
- 2.12.17 *do_mipmaps
- 2.12.18 *do_mouse
- 2.12.19 *do_numlock
- 2.12.20 *do_pause
- 2.12.21 *do_rangefog
- 2.12.22 *do_shadows
- 2.12.23 *do_smooth
- 2.12.24 *do_sounds
- 2.12.25 *do_syncbgm
- 2.12.26 *do_wasd
- 2.13 Output
- 2.14 Script
- 2.15 System
- 2.16 Window
- 2.16.1 *directx_version_to_use_for_window
- 2.16.2 *do_auto_pause_window_while_inactive
- 2.16.3 *do_center_picture_for_fixed_display
- 2.16.4 *do_force_fullscreen_inside_window
- 2.16.5 *do_force_immediate_vertical_refresh
- 2.16.6 *do_not_compromise_fullscreen_mode
- 2.16.7 *do_scale_640x480_modes_to_setting
- 2.16.8 *do_use_interlaced_scanline_ordering
- 2.16.9 *restrict_aspect_ratio_to
- 2.16.10 *shader_compatability_level
- 2.16.11 *shader_model_to_use
- 2.16.12 *window_title_to_use
The following is a list of terms used throughout the list proper.
- An asterisk (*) indicates an extension is undocumented (within this page)
- A "binary statement" means a representation of 1 or 0. It may be the Arabic numerals 1 or 0, yes or no, on or off, and some additional semantical operations not elaborated upon here.
- A "real number" is Arabic digits with an optional decimal point. So named because they are the foil to "imaginary" numbers, even though there is nothing particularly real about a partial number. C style scientific notation will also probably work, but is not recommended.
- A "whole number" is Arabic digits no more no less. It can't represent a half of something for example.
- A positive real or whole number excludes negative numbers (elusive evil twin anti-numbers).
- A "string of text" means anything in your wildest imagination you can type into a text editor.
- As for "hexadecimal", see Hexadecimal. Numerals a~f must be lowercase.
- A colour is a hexadecimal value which can include between 1 and 8 digits. Depending upon how many digits are provided the colour will be interpreted differently. Examples follow.
- 1 digit colour is one of 16 predefined brushes. The brushes are the same as a Microsoft Window's cmd.exe console.
- 2 digit colour is 4bit opacity + brush. Opacity ranges from 0 (fully transparent) to f (fully opaque).
- 3 digit colour is a 4bit RGB colour. Each colour plane ranges from 0 (black) to f (saturated).
- 4 digit colour is 4bit opacity + 4bit RGB colour.
- 5 digit colour is not allowed.
- 6 digit colour is an 8bit RGB colour. Each colour plane ranges from 00 (black) to ff (saturated).
- 7 digit colour is not allowed.
- 8 digit colour is 8bit opacity + 8bit RGB colour. Opacity ranges from 00 (fully transparent) to ff (fully opaque).
Adjust
bob_distance_multiplier
Introduced around 1.0.0.1, this extension multiplies the walking effect experienced by the player. Values are limited to real numbers.
draw_distance_multiplier
Introduced around 1.0.0.1, this extension multiplies the draw distance uniformly across maps. Values are limited to positive real numbers.
fog_pullback_factor
Introduced around 1.0.0.1, this extension pulls the fog to the player as the value approaches 1. It is then averaged with #fog_pushback_factor to determine where fog will begin. Values are limited to real numbers.
fog_pushback_factor
Introduced around 1.0.0.1, this extension pushes the fog away from the player arriving at the draw distance when the value reaches 1. It is then averaged with #fog_pullback_factor to determine where fog will begin. Values are limited to positive real numbers.
fog_saturate_multiplier
Introduced around 1.0.0.1, this extension multiplies the distance at which fog becomes fully saturated. Values are limited to positive real numbers.
pov_baseline_in_meters
Introduced around 1.0.0.1, this extension adds to the player's eye level -- as of 1.0.0.1 arms are not yet adjusted accordingly. Values are limited to real numbers.
pov_baseline_in_meters was originally setup for Trismegistus. Trismegistus does away with combat elements, and therefore the arm thing funnily enough was not a problem. Nevertheless the arms are an oversight.
sky_ambience_factor
Introduced around 1.0.0.1, this extension colorizes the sky to match the global ambient light at 1. Values are limited to real numbers.
sky_emissive_factor
This extension is planned but not yet implemented. It will brighten the sky above 1 and darkens it below 1. It's meant to balance out the colours produced by #sky_ambience_factor.
sky_distance_multiplier
Introduced around 1.0.0.1, this extension works like #draw_distance_multiplier, however it only applies to maps with skies. It supersedes draw_distance_multiplier. Values are limited to positive real numbers.
sky_fadeline_multiplier
Introduced around 1.0.0.1, this extension determines a point between the fog saturation distance at 0 and the sky distance at 1 and smoothly blends things beyond that point into the sky. As if the sky is a second layer of fog beyond the first. Values are limited to real numbers between 0 and 1.
Author
Extensions in this section are intended to be filled out by the author. #international_production_title and #international_translation_title are important to fill out. Every full game Ex.ini file should include these. #software_company_name should also be considered.
Sometimes this information may be printed out in places. In a teletype-style display or an "About" window for instance. It's also good to provide the information if possible so people can find it when reading or modifying the Ex.ini file that would come with your game. It can also easily be automatically entered into a database of games or kept on file.
When translating a game into another language it's important to faithfully include all information in this section, and to not translate any of it.
email_address_of_contact
Introduced around 1.0.0.1, this extension indicates the email address of the company or author who is prepared to receive email from any and all parties who have anything to say or ask about the game. Don't fill it out unless you are up to this task. Consider using an account which can safely abandon if the interest in your game becomes overwhelming or undesirable. Values are limited to an email address.
hours_in_which_to_phone
Introduced around 1.0.0.1, this extension indicates the hours you're available to be phoned if you provide a phone number. You can put anything here, indicate your timezone, or anything else. An additional timezone neutral extension would also be helpful however no such thing exists yet. Values are limited to any string of text.
international_production_title
Introduced around 1.0.0.1, this extension indicates the title you want for your game internationally. It should be the title you originally conceived for the game in your language of choice. Though you can use any title. An English title for instance. If you think recognizability is more important. Players may want to translate your game including its title to their own language. Except this title remains the same. Values are limited to any string of text.
international_translation_title
Introduced around 1.0.0.1, this extension is a simplified version of #international_translation_title. It must be entirely composed of ASCII characters and cannot include any characters which might be illegal in file names in some computing environments. In general, be spare with special characters. ASCII includes basic/modern Latin characters only. You can translate your title into a Latin script language of your choice, or reproduce your title phonetically. Values are limited to an ASCII only POSIX and NTFS legal file name.
online_website_to_visit
Introduced around 1.0.0.1, this extension indicates the website for information and other things regarding your game. Values are limited to World Wide Web addresses.
phone_number_of_contact
Introduced around 1.0.0.1, this extension indicates a phone number where you are prepared to receive phone calls in regards to your game. Indicate the region of the world where the number is located. Values are limited to any string of text.
software_company_name
Introduced around 1.0.0.1, this extension indicates the name of the organization responsible for the game. It can be the name of or a pseudonym of the author or the title of a group etc. It will be used for sorting things like the Microsoft Windows Start menu links to your games and the location of keys your game will require in the Windows registry. Values are limited to an NTFS legal file name.
street_address_of_contact
Introduced around 1.0.0.1, this extension indicates where you want to receive mail and or visitors regarding your game. Practice caution in providing this kind of information. Values are limited to any string of text.
the_authority_to_contact
Introduced around 1.0.0.1, this extension indicates who someone should address when phoning or mailing about your game. A secretary, or yourself for instance. Values are limited to any string of text.
Boxart
Extensions in this section convey information about your game. It's not intended to be an exhaustive list of credits. You should limit the information to principal participants, celebrities you'd like to give billing too in order to make your game stand out, or just anyone of relative importance to the production of the game. For a small team there's probably room for everyone. For a mostly "one man" team, consider using #game_auteur in order to credit "the man". Information in this section is used in much the same way as that of the #Author section, however it is never functions in a non-superficial way, and translators are encouraged to translate it where applicable.
Note: you can provide any information you like via a single extension. For instance if there are more than one lead production artist on more or less equal footing, feel free to mention both of them in whatever way makes sense to you.
game_artist
Introduced around 1.0.0.1, this extension indicates the lead production artist. Values are limited to any string of text.
game_auteur
Introduced around 1.0.0.1, this extension indicates the visionary or any one person without which the game just wouldn't exist. Any role not specified will be assumed to fall upon this individuals shoulders. Values are limited to any string of text.
game_based_upon
Introduced around 1.0.0.1, this extension indicates some existing work or art if any which your game is meant to literally draw upon in some way, vividly or darkly. Values are limited to any string of text.
game_caretaker
Introduced around 1.0.0.1, this extension indicates the any domestic worker responsible for keeping the team behind the game on life support throughout its production. Values are limited to any string of text.
game_company
Introduced around 1.0.0.1, this extension indicates the title of the company behind the game. Values are limited to any string of text.
game_concept
Introduced around 1.0.0.1, this extension indicates the lead concept artist. Values are limited to any string of text.
game_dedication
Introduced around 1.0.0.1, this extension indicates who or what you'd like to dedicate the game to. Maybe your goldfish died during production for example. Values are limited to any string of text.
game_designer
Introduced around 1.0.0.1, this extension indicates the lead game design person. Values are limited to any string of text.
game_director
Introduced around 1.0.0.1, this extension indicates the lead game directing person. Values are limited to any string of text.
game_disclaimer
Introduced around 1.0.0.1, this extension indicates any kind of legal liability or whatever you'd like to assuage. Values are limited to any string of text.
game_distributor
Introduced around 1.0.0.1, this extension indicates the distributor of this game. Values are limited to any string of text.
game_edition
Introduced around 1.0.0.1, this extension indicates the edition of this game. Values are limited to any string of text.
game_features
Introduced around 1.0.0.1, this extension indicates any features you'd like to promote. Like joystick support etc. Values are limited to any string of text.
game_first_edition_date
Introduced around 1.0.0.1, this extension indicates the long date of the first edition of this game. Values are limited to any string of text.
game_first_edition_year
Introduced around 1.0.0.1, this extension indicates the year of the first edition of this game. It should be a number in the common era. Values are limited to any string of text; a whole number is best.
game_format
Introduced around 1.0.0.1, this extension indicates the medium or environment, eg. operating system, in which this game is able to function. Values are limited to any string of text.
game_label
Introduced around 1.0.0.1, this extension indicates the promotional/managerial label to which the game or peoples responsible for the game are signed. Values are limited to any string of text.
game_legal
Introduced around 1.0.0.1, this extension indicates any long text legal mumbo jumbo deemed necessary for inclusion. Values are limited to any string of text.
game_license
Introduced around 1.0.0.1, this extension indicates any content or technology licenses the game is in adherence with. Values are limited to any string of text.
game_mascot
Introduced around 1.0.0.1, this extension indicates a pet, personality, or fictional character you'd like to associate the game with. Values are limited to any string of text.
game_music
Introduced around 1.0.0.1, this extension indicates the singular person responsible for the games musical arrangements. Values are limited to any string of text.
game_musing
Introduced around 1.0.0.1, this extension indicates anything at all you'd like to include in addition to everything else. Values are limited to any string of text.
game_original
Introduced around 1.0.0.1, this extension indicates the game which this game is a remake or remix of. Values are limited to any string of text.
game_partners
Introduced around 1.0.0.1, this extension indicates those who bore chief financial responsibility during the development of the game proper. Values are limited to any string of text.
game_planner
Introduced around 1.0.0.1, this extension indicates the lead game planner. Values are limited to any string of text.
game_presented_by
Introduced around 1.0.0.1, this extension indicates the association presenting the game. Values are limited to any string of text.
game_presenters
Introduced around 1.0.0.1, this extension indicates individuals presenting the game. Values are limited to any string of text.
game_producer
Introduced around 1.0.0.1, this extension indicates the game producer, company or individual. Values are limited to any string of text.
game_programmer
Introduced around 1.0.0.1, this extension indicates the lead game programmer. Values are limited to any string of text.
game_project
Introduced around 1.0.0.1, this extension indicates the project codename or whatever before an official title was established or announced. It may be related to the edition of the game as well if the project is a remake or remix effort. Values are limited to any string of text.
game_publisher
Introduced around 1.0.0.1, this extension indicates the lead game programmer. Values are limited to any string of text.
game_publishing_date
Introduced around 1.0.0.1, this extension indicates the long date of this edition. Values are limited to any string of text.
game_rating
Introduced around 1.0.0.1, this extension indicates any kind of content ratings you'd like to apply to the game in whatever rating system seems appropriate. Values are limited to any string of text.
game_region
Introduced around 1.0.0.1, this extension indicates the global region this translation of this game has in mind. Use whatever system or scope makes sense with respect to other translations of the game in circulation or underway. Values are limited to any string of text.
game_series
Introduced around 1.0.0.1, this extension indicates the series this game is part of. Eg. KING'S FIELD II is part of the KING'S FIELD series. Values are limited to any string of text.
game_soundsuite
Introduced around 1.0.0.1, this extension indicates the composer or troop responsible for the sound effects audible in the game. Values are limited to any string of text.
game_soundtrack
Introduced around 1.0.0.1, this extension indicates the composer or troop responsible for the game soundtrack, if there is any one entity. Values are limited to any string of text.
game_studio
Introduced around 1.0.0.1, this extension indicates the name of the studio who developed the game. Values are limited to any string of text.
game_sub_series
Introduced around 1.0.0.1, this extension indicates the series within a larger series in which the game is a part of. Sometimes called a 'gaiden', though not necessarily the same thing. Values are limited to any string of text.
game_subteam
Introduced around 1.0.0.1, this extension indicates the team within a larger studio or collective who is largely responsible for the development of the game. Values are limited to any string of text.
game_subtitle
Introduced around 1.0.0.1, this extension indicates the title that usually appears in smaller letters below the main title. Values are limited to any string of text.
game_suggested_retail_price
Introduced around 1.0.0.1, this extension indicates, whether applicable or not, what you think your game should be sold for on store shelves, or what you would sell it for if you could. Players feel free to regard this value as a suggested donation. Values are limited to any string of text.
game_super_title
Introduced around 1.0.0.1, this extension indicates the title that usually appears in smaller letters above the main title. Values are limited to any string of text.
game_thanks
Introduced around 1.0.0.1, this extension indicates any thanks the game makers would like to confer. Thanks to From Software for instance. Values are limited to any string of text.
game_title_with_sequel
Introduced around 1.0.0.1, this extension indicates the title which includes the sequel number. This title may be shorthand. The sequel need not appear in the main title. It's probably best to render the sequel in Arabic numeral form to avoid any confusion. Values are limited to any string of text.
game_version
Introduced around 1.0.0.1, this extension indicates the version of the game. For instance if the game has been patched or is not intended to ever be finalized. Values are limited to any string of text.
game_writer
Introduced around 1.0.0.1, this extension indicates the lead writer. This is the script writer. Values are limited to any string of text.
game_year_published
Introduced around 1.0.0.1, this extension indicates the year of this edition. It should be a number in the common era. Values are limited to any string of text; a whole number is best.
Bugfix
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. It currently hides the elapsed time in the menu screens. It does so because the time is more often than not incorrect. As soon as someone figures out how, it will be made to display the correct time. 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. Values are limited to binary statements.
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.
Detail
*alphafog_skyflood_constant
*alphafog_skyfloor_constant
*ambient_contribution
*cursor_presentation_timeout
*lights_ambient_multiplier
*lights_calibration_factor
*lights_constant_attenuation
*lights_diffuse_multiplier
*lights_distance_multiplier
*lights_exponent_multiplier
*lights_linear_attenuation
*lights_maximum_lamp_lights
*lights_quadratic_attenuation
*lights_vs_1_x_unroll_x
*mipmaps_maximum_anisotropy
*mouse_...th_button_action
*mouse_deadzone_multiplier
*mouse_horizontal_multiplier
*mouse_left_button_action
*mouse_middle_button_action
*mouse_right_button_action
*mouse_saturate_multiplier
*mouse_tilt_left_action
*mouse_tilt_right_action
*mouse_vertical_multiplier
*numlock_initial_state
*numlock_key
*pause_button_default
*wasd_and_mouse_mode
Editor
Extensions in this section deal exclusively with the editing tools which authors use to make new Sword of Moonlight games. For the most part other sections pertain to tools only in so far as if and when a tool includes previews of in game elements; extensions affecting the project should apply, however in practice this may not always be the case.
language_pack_to_use
Introduced around 1.0.0.1, this extension selects a language pack from the text folder; not the lang folder! A language pack in the text folder is normally a compressed .zip archive. It can also be a directory if uncompressed. You should specify the name of the language pack file, without the .zip extension. Values are limited to a legal NTFS file title.
A language pack is a translation (into another language) of the various editing tools which make up Sword of Moonlight. See #Locale for game translation extensions.
Folder
Extensions in this section provide some flexibility to the Sword of Moonlight install/runtime environment.
alternative_data_folder
Introduced around 1.0.0.1, this extension specifies a folder to use in place of the data folder. For editing tools and projects it applies to the install data folder. For a runtime it applies to the game's data folder. Values are limited to a legal NTFS address.
alternative_font_folder
Introduced around 1.0.0.1, this extension specifies a folder to use in place of the font folder. For editing tools and projects it applies to the install font folder. For a runtime it applies to the game's font folder. Values are limited to a legal NTFS address.
alternative_lang_folder
Introduced around 1.0.0.1, this extension specifies a folder to use in place of the lang folder. For editing tools and projects it applies to the install lang folder. For a runtime it applies to the game's lang folder. Values are limited to a legal NTFS address.
alternative_text_folder
Introduced around 1.0.0.1, this extension specifies a folder to use in place of the text folder. For editing tools and projects it applies to the install data folder. A runtime should not include a text folder. Values are limited to a legal NTFS address.
alternative_tool_folder
Introduced around 1.0.0.1, this extension specifies a folder to use in place of the tool folder. For editing tools and projects it applies to the install tool folder. A runtime should not include a tool folder. Values are limited to a legal NTFS address.
do_use_users_saved_games_folder
Introduced around 1.0.0.1, this extension in the affirmative indicates that files generated by the player should be saved to the special folder where Windows saves games. The special folder is different depending upon the version of Windows. For a read only game (eg. a CD-ROM) this extension kicks in automatically and cannot be overridden.
Inside this folder, there will be a folder named after the game, or the software company responsible for the game; in which case the folder named after the game will be inside that folder. In the folder named after the game you will find the save folder and the game's INI file.
As of SomEx.dll ver. 1.0.0.1 this feature is not fully implemented. Future releases should defer to this folder whenever possible in looking for fonts and translation information and any files the player should be able to modify in order to customize their experience. Values are limited to binary statements.
You may use any folder you like in place of the one Windows has established. See #saved_games_folder.
saved_games_folder
Introduced around 1.0.0.1, this extension specifies a folder to use instead of the folder Window's saves saved games to. See #do_use_users_saved_games_folder for details. Values are limited to a legal NTFS address.
Note: this extension takes its name from the "Saved Games" folder introduced by Windows Vista. Ie. it does not map directly to the save folder.
Joypad
Keygen
Launch
Locale
Option
Extensions in this section are generally fairly noteworthy. They act like master switches, usually for fairly major extension complexes. As a rule-of-thumb you can usually fine tune the extensions via the extensions in the #Detail section, which are all named according to the extensions in this section. There are however no actual rules regarding how extensions may interplay with one another, and it is very often the case Option extensions will dictate or interact with extensions found in other sections.
Note: Updating SomEx.dll has a greater likelihood of affecting the effects exhibited by these extensions than with other extensions. As of SomEx.dll ver. 1.0.0.1 it is not possible to indicate the version of SomEx.dll an Ex.ini file is tailored to. A future release will probably make that a reality, however even in such an event there is no guarantee.
Please bear in mind. The wording for most or all of these extensions can be a bit strained because in reality they are directives which give permission to related extensions to go ahead and do what they do. Sometimes the functionality is builtin and just needs the go ahead, other times there is no builtin functionality and the extension just acts as a permission slip for other extensions. It's handy to think of the Option section like the circuit breaker for the larger extension framework. Most extensions are tied into it, but not all. Many are not.
do_alphafog
Introduced around 1.0.0.1, this extension in the affirmative corrects the blending of fog and other transparent visual elements. As of SomEx.dll ver. 1.0.0.1 in order to blend shadows and fog the shadow textures must be marked for shadow correction (correct=shadow) in the images key. You may mark custom textures this way in order to create your own shadows. See #Keygen for details. Values are limited to binary statements.
do_ambient
Introduced around 1.0.0.1, this extension in the affirmative effects ambient and diffuse lighting. As of SomEx.dll ver. 1.0.0.1 by default it borrows from diffuse light and contributes a proportional amount of ambient light. This generally has the effect of creating more natural lighting, simulating how photons scatter as their energy is absorbed by surrounding materials. Values are limited to binary statements.
do_analog
Introduced around 1.0.0.1, this extension in the affirmative allows for analog play in terms of player movement etc. As of SomEx.dll ver. 1.0.0.1 this is still largely experimental. Mouse controls support analog like behavior but they are bumpy around the edges. The #Joypad section can be used to setup an analog controller which are also bumpy. Without doing so a controller in game will not produce analog behavior. Traditionally analog controls are achieved by feathering the digital inputs. With some smoothing of the players point of view this will probably be a viable option. Another simple technique is to modulate the speed of the player while otherwise offering 8-way digital movement. It's unclear at this point what kind of approach will ultimately amount to the best analog experience. Values are limited to binary statements.
do_anisotropy
Introduced around 1.0.0.1, this extension in the affirmative changes the "Texture Mode" setting in the options menu to read "Anisotropy" instead. The 3 settings then change the anisotropic filtering state. In order of anisotropic filtering to be effective, #do_mipmaps should also be enabled. Values are limited to binary statements.
do_antialias
Introduced around 1.0.0.1, this extension in the affirmative enables hardware antialiasing if available. You may be able to produce nice screenshots with this extension, the implementation however is not yet final, and therefore cannot yet be recommended for play. Values are limited to binary statements.
do_cursor
Introduced around 1.0.0.1, this extension in the affirmative results in a much more expressive cursor when the mouse is hovered over the game window. This extension is generally recommended for window play. Values are limited to binary statements.
A minimal cursor will appear in window mode even if this extension is not enabled.
do_dither
Introduced around 1.0.0.1, this extension in the affirmative causes a hardware dither effect to be applied in 16bit colour modes. The effect is by no means free, but it is generally worth it. Sword of Moonlight requests dithering in 16bpp mode, however almost no modern hardware will accommodate the request. Therefore this extension restores a little piece of Sword of Moonlight lost to the eons. Classic KING'S FIELD games have all been dithered. And the dithering better compliments the 15bit textures which come with Sword of Moonlight. It's arguably better looking than a linear filter which tends to stretch texels out and make the 16bit colours look flat. Print media has used dithering for centuries. It's recommended you combine this extension with #do_highcolor since that will force all modes into a 16bit colour mode. Values are limited to binary statements.
If anyone would like to supply their own custom dither mask, this kind of feature can be facilitated in short order on demand.
do_fov
Introduced around 1.0.0.1, this extension is a little different. If it's not enabled field of view parameters will probably be the same as what you would expect from Sword of Moonlight. If it is enabled various extensions will make their own judgments about what kind of field of view parameters are acceptable. Enabling also enables field of view override extensions, in case you'd like to control field of view manually. You may need to enable this extension to see any effect from important extensions such as #do_fix_fov_in_memory. Values are limited to binary statements.
*do_gamma
*do_green
*do_hdr
*do_highcolor
*do_interlace
*do_invert
*do_lights
*do_log
*do_mipmaps
*do_mouse
*do_numlock
*do_pause
*do_rangefog
*do_shadows
*do_smooth
*do_sounds
*do_syncbgm
*do_wasd
Output
*...log_..._bar
*do_missing_file_dialog_ok
*...function_overlay_contrast
*...function_overlay_eclipse
*...function_overlay_mask
*...function_overlay_tint
Script
*system_fonts_to_use
*fonts_to_use_instead_of_...
System
Window
*directx_version_to_use_for_window
*do_auto_pause_window_while_inactive
*do_center_picture_for_fixed_display
*do_force_fullscreen_inside_window
*do_force_immediate_vertical_refresh
*do_not_compromise_fullscreen_mode
*do_scale_640x480_modes_to_setting
*do_use_interlaced_scanline_ordering
*restrict_aspect_ratio_to
*shader_compatability_level
*shader_model_to_use
*window_title_to_use