Back to the DOSBox-X Wiki Welcome page.
Regional settings in DOSBox-X
Overview
You can customize the regional settings in DOSBox-X, such as changing the country code for country-specific date/time formats, as well as modifying the international keyboard layouts and codepages. If you are a DOSBox-X user living outside the United States, you probably want to do this in order for DOSBox-X to match the regional settings in your country. Such settings can be configured either from the DOSBox-X config file (dosbox-x.conf by default), or from the DOSBox-X command line.
Country-specific date/time formats
The country code can be set in the [config] section of the DOSBox-X config file by use of the COUNTRY=
setting. This defaults to an empty string which means auto-detection (or 81 for PC-98 mode); if auto-detection cannot be done then it will fall back to 1 which is the US. This setting influences date and time format as used by DOSBox-X, such as the DIR
command. It may also influence regional settings in other applications.
For example, the date is displayed in MM-DD-YYYY format with the default US setting:
07-30-2020 12:34p
If you change the COUNTRY=
setting, the date and time will be displayed in the format associated with the specified country code. For example, 44 is the country code (based on the international dialling prefix) for the UK, and setting the following:
[config]
COUNTRY=44
Will cause DOSBox-X to use the UK date and time format:
30/07/2020 12:34
If you set COUNTRY=0
in the [config] section of the DOSBox-X config file, then DOSBox-X will try to auto-detect and set the country code based on the regional setting of the host system. This however only works on Windows systems.
Alternatively, the COUNTRY command can be used from the DOSBox-X command line to change the country code. For example, the following command will switch the country code to 61 for international English:
COUNTRY 61
A list of supported country codes and their corresponding date and time formats:
Country | Country Code | Date format | Time format |
---|---|---|---|
Arabic countries |
785 |
23/01/2020 |
17:35 |
Austria |
43 |
23.01.2020 |
17:35 |
Belgium |
32 |
23/01/2020 |
17:35 |
Brazil |
55 |
23/01/2020 |
17:35 |
Canadian-French |
2 |
2020-01-23 |
17:35 |
Czechoslovakia |
42 |
2020-01-23 |
17:35 |
Denmark |
45 |
23-01-2020 |
17.35 |
Finland |
358 |
23.01.2020 |
17.35 |
France |
33 |
23.01.2020 |
17:35 |
Germany |
49 |
23.01.2020 |
17:35 |
Greece |
30 |
23/01/2020 |
17:35 |
Hungary |
36 |
2020-01-23 |
17:35 |
Iceland |
354 |
2020-01-23 |
17:35 |
International English |
61 |
23-01-2020 |
5:35p |
Israel |
972 |
23/01/2020 |
17:35 |
Italy |
39 |
23/01/2020 |
17.35 |
Japan |
81 |
2020-01-23 |
17:35 |
Latin America |
3 |
23/01/2020 |
5:35p |
Netherlands |
31 |
23-01-2020 |
17:35 |
Norway |
47 |
23.01.2020 |
17:35 |
Peoples Republic of China |
86 |
2020.01.23 |
17:35 |
Poland |
48 |
2020-01-23 |
17:35 |
Portugal |
351 |
23-01-2020 |
17:35 |
Romania |
40 |
2020-01-23 |
17:35 |
Russia |
7 |
23.01.2020 |
17:35 |
South Korea |
82 |
2020-01-23 |
17:35 |
Spain |
34 |
23/01/2020 |
17:35 |
Sweden |
46 |
2020-01-23 |
17.35 |
Switzerland |
41 |
23.01.2020 |
17,35 |
Taiwan |
886 |
2020/01/23 |
17:35 |
Turkey |
90 |
23/01/2020 |
17:35 |
United Kingdom |
44 |
23/01/2020 |
17:35 |
United States |
1 |
01-23-2020 |
5:35p |
Yugoslavia |
38 |
2020-01-23 |
17:35 |
With a few exceptions, the above codes are based on the international dialing prefixes of the respective countries. DOSBox-X will accept any other country code not listed above, but in that case will use the date format 23-01-2020 and 24-hour time format 17:35.
Typing COUNTRY
without parameters from the DOSBox-X command line will display the current country code.
Using language files for customized or translated display messages
DOSBox-X by defaults displays messages in English. It is possible to change the messages displayed by DOSBox-X with the use of language files, which can either be encoded in the DOS code page or in UTF-8.
If you already have a DOSBox-X language file available, you can specify its filename in DOSBox-X’s config file (dosbox-x.conf by default) in the [dosbox] section in order to activate it. There is a language=
setting which allows you to enter the name of the language file. For example, suppose the language file is located at C:\message.txt, then you can specify the following for use with DOSBox-X:
[dosbox]
language=C:\message.txt
For example, the Chinese (Simplified & Traditional), English (United States), French, German, Japanese, Portuguese (Brazilian), Spanish, and Turkic language files for DOSBox-X are available from:
Alternatively, you can start DOSBox-X with the -lang option to use your language file. For example, to use "C:\message.txt" as the language file:
dosbox-x -lang C:\message.txt
Note: It is important to set the correct code page in the config file, via the COUNTRY=
setting in [config] section of the config file, e.g. COUNTRY=42,852
for the Czech language, and perhaps the keyboardlayout
config option mentioned in the next section.
If you do not have a DOSBox-X language file yet, and you want to customize or translate the messages as displayed by DOSBox-X, you could do so by generating the language file and then modifying the messages in it. DOSBox-X can generate a language file either from the built-in graphical configuration tool, or with the CONFIG
command.
To do this using the graphical configuration tool:
-
Open the "Configuration tool" from the "Main" menu.
-
Select the "Configuration" menu, then click "Save Language File…".
-
Either use the default file name or enter a new file name for the language file, then click "OK".
Alternatively, you can let DOSBox-X generate the language file with its built-in CONFIG
command, via its "-wl" (or "-writelang") option. Usage:
CONFIG -wl filename
This command writes the current language settings to a file in a specified location. "filename" is located on the local drive, not a mounted drive in DOSBox-X. It is located in the DOSBox-X directory by default.
The language file controls all visible output of the internal commands and the internal DOS, as well as the menu options. Please read the language file that you just created from the above, and you will hopefully understand how to change it.
Once you finished the customization or translation of the language file, you can save it for use with DOSBox-X, using the instructions mentioned above.
International keyboard layouts and codepages
The US keyboard layout is used by default in DOSBox-X with code page 437. These can be customized to use a different keyboard layout or code page for DOSBox-X.
When starting DOSBox-X on a Windows system with the default keyboardlayout=auto
config setting, it will try to set the keyboard layout automatically, depending on the host OS region, for a wide range of regions.
This may not necessarily match your actual keyboard, or your region may not currently be supported.
In addition, the auto
setting has no effect on Linux and macOS.
You can set your keyboard layout manually in the [dos] section of the dosbox-x.conf file.
For instance to set a German keyboard layout you can specify keyboardlayout=de
.
It will also automatically set a suitable codepage.
Alternatively, the KEYB command can be used from the DOSBox-X command line to change the keyboard layout on-the-fly. For example:
KEYB UK
This command will switch the current keyboard layout to the UK keyboard layout and set code page 858. Note some languages have dual mode, in which a certain keyboard press can switch between the primary and secondary modes. Below is a list of keyboard layouts that can be used in DOSBox-X.
Keyboard layouts | Country usages | Based on DOSBox | Primary mode | Secondary mode |
---|---|---|---|---|
us103 (us), ux103 (ux) |
US, US International |
Yes |
||
dv103 (dv), lh103 (lh), rh103 (rh) |
US Dvorak, Left-Hand, Right-Hand |
Yes |
||
sq448, sq452 (sq) |
Albania |
Yes |
||
hy |
Armenia* |
Yes |
||
az |
Azerbaijan* |
Yes |
||
by463 (bl463,by,bl) |
Belarus* |
Yes |
||
be120 (be) |
Belgium |
Yes |
||
ba234 (ba) |
Bosnia & Herzegovina |
Yes |
||
br274, br275 (br) |
Brazil |
Yes |
||
bg241, bg442 (bg) |
Bulgaria |
Yes |
||
ca58 (cf58,ca,cf), ca445 (cf445), cf501 |
Canada |
Yes |
||
hr234 (hr) |
Croatia |
Yes |
||
cz243, cz |
Czech Republic |
Yes |
||
dk159 (dk) |
Denmark |
Yes |
||
ee454 (et454,ee,et) |
Estonia* |
Yes |
||
fo |
Faroe Islands |
Yes |
||
fi153 (su153,fi,su) |
Finland |
Yes |
||
fr120, fr189 (fr) |
France |
Yes |
||
ka |
Georgia* |
Yes |
||
de129 (gr129,de,gr), de453 (gr453) |
Germany |
Yes |
||
gk220 (el220), gk319 (el319,gk,el), gk459 (el459) |
Greece |
Yes |
||
hu208, hu |
Hungary |
Yes |
||
is458 (is), is161 (is197) |
Iceland |
Yes |
||
it141 (it), it142 |
Italy |
Yes |
||
kk |
Kazakhstan* |
Yes |
||
ky |
Kyrgyzstan* |
Yes |
||
la171 (la) |
Latin-American-Spanish |
Yes |
||
lv, lv455 |
Latvia* |
Yes |
||
lt210, lt211, lt212 (lt), lt221, lt456 |
Lithuania* |
Yes |
||
mk449 (mk) |
Macedonia |
Yes |
||
mt47 (ml47), mt (ml) |
Malta |
Yes |
||
mn (mo) |
Mongolia* |
Yes |
||
nl143 (nl) |
Netherlands |
Yes |
||
no155 (no) |
Norway |
Yes |
||
ph |
Philippines |
Yes |
||
pl214, pl457 (pl) |
Poland |
Yes |
||
po163 (po) |
Portugal |
Yes |
||
ro333 (ro), ro446 |
Romania |
Yes |
||
ru441 (ru), ru443 |
Russia |
Yes |
||
sr118 (sr), sr450 |
Serbia & Montenegro |
Yes |
||
sk245 (sk) |
Slovakia |
Yes |
||
si234 (si) |
Slovenia |
Yes |
||
es172 (sp172,es173,sp173,es,sp) |
Spain |
Yes |
||
sv153 (sv) |
Sweden |
Yes |
||
sd150 (sg150,sd,sg), sf150 (sf) |
Swiss |
Yes |
||
tm |
Turkmenistan |
Yes |
||
tr179 (tr), tr440 |
Turkey |
Yes |
||
ua465 (ur465), ua (ur) |
Ukraine* |
Yes |
||
uk166 (uk), uk168 |
United Kingdom |
Yes |
||
uz |
Uzbekistan* |
Yes |
||
yu234 (yu) |
Yugoslavia |
Yes |
||
he862/il862 (he/il) |
Israel |
No |
English (alt+left shift) |
Hebrew (alt+right shift) |
Note
|
For using layouts marked with * the ten ega.cpx files (from FreeDOS) in Z:\CPI will be used. See also the "Support for external keyboard files" section below for more information about this.
|
Alternatively you can also specify a different codepage by adding the codepage number to the end.
KEYB UK 850
Most western European countries would have used codepage 850 back in the day, but DOSBox-X by default uses codepage 858, which is the same as codepage 850 with the addition of the Euro symbol. See the "Support for the Euro symbol" section below for further details.
Note that software that uses certain box drawing characters may not look 100% accurate unless codepage 437 (default US codepage) is used. But this codepage lacks many diacritic glyphs that may be needed for regional support. As such a choice may have to be made between support for those box drawing characters or diacritic glyphs.
There is also a CHCP
(CHange CodePage) command to view the current DOS code page, and for the TrueType font (TTF) output it also allows you to change the current DOS code page.
For example, CHCP 857
will change the current DOS code page to 857 (Turkish) when using the TrueType font output.
DOSBox-X also supports CJK (Chinese, Japanese, Korean) double-byte code pages (932, 936, 949, 950) for the TTF output, which allow Chinese/Japanese/Korean characters to be displayed correctly.
Moreover, it is recommended to specify a TrueType font that has all characters of the language to be used so that these characters will be rendered correctly with the specified font.
More information about the TrueType font output is available from the Using TrueType font output in DOSBox‐X guide page.
More information about CJK language support can be found in the East Asian language support in DOSBox‐X guide page.
The Japanese keyboard layout is also supported and will be used by default in NEC PC-98 mode.
You can start DOSBox-X in PC-98 mode directly by setting machine=pc98
in the [dosbox] section of the dosbox-x.conf file.
DOSBox-X will use codepage 932 in this mode and support Japanese Shift-JIS characters such as Kana and Kanji in addition to ASCII characters.
There is an option which will force the use of U.S. keyboard layout in PC-98 mode. More information about PC-98 support is available from the PC‐98 emulation in DOSBox‐X guide page.
Support for the Euro symbol
The Euro symbol (€) is the currency symbol introduced by the European Monetary and Currency Union, and began its use on January 1, 1999. Because the Euro symbol was introduced after Windows 95 was released to the public, most DOS versions (including all versions of MS-DOS and PC DOS up to 7.0) do not support this symbol. Back in the day, codepages such as 850 and 855 were used by most European DOS users, and they did not contain the Euro symbol. DOSBox-X does support these codepages, but it also supports modified codepages with the Euro symbol added, such as codepage 858, which have been introduced since 1999. The modifications only apply to the Euro symbol position, so everything else remains the same.
Below is a table listing the original codepages (without the Euro symbol) and their counterparts with the Euro symbol enabled that are supported in DOSBox-X.
Original codepage | New codepage | Codepage name | Euro symbol position |
---|---|---|---|
850 |
858 |
Latin 1 |
ASCII 213 (0xD5) |
855 |
872 |
Cyrillic |
ASCII 207 (0xCF) |
866 |
808 |
Cyrillic Russian |
ASCII 253 (0xFD) |
DOSBox-X by default uses the new codepage with the Euro symbol enabled for the specified keyboard layout (if available), when you do not specify a codepage for it. The Euro symbol will be supported and displayed in the above-mentioned ASCII position.
It is also possible to display the Euro symbol instead of the specified ASCII character in any codepage in DOSBox-X, including the default codepage 437 and other codepages without the Euro symbol such as 850.
DOSBox-X has an euro
config option in the [render] section of the config file (dosbox-x.conf by default), which allows you to specify an ASCII position (between 33 and 255) for the Euro symbol to be rendered in place of the original character if you wish.
For example, setting the following will allow DOSBox-X to display the Euro symbol instead of C-cedilla (Ç) in position 128.
[render]
euro=128
It will work even after you use the KEYB
command to change the current codepage of DOSBox-X from the command line.
The Euro symbol will be displayed in the specified position instead of the original character in that codepage as long as the euro
setting remains active.
Support for external keyboard files
DOSBox-X allows the use of external keyboard files for international keyboard layouts in addition to those that are already built into DOSBox-X. A list of supported keyboard layouts in DOSBox-X can be found in the "International keyboard layouts and codepages" section.
For using external keyboard files in DOSBox-X, the FreeDOS .kl
files are supported (FreeDOS keyb2
keyboard layout files) as well as the FreeDOS keyboard.sys
/keybrd2.sys
/keybrd3.sys
libraries which consist of all available .kl
files.
Check out the FreeDOS website for precompiled keyboard layouts if the DOSBox-X integrated layouts do not work for some reason, or if updated or new layouts become available.
Both .CPI
(MS-DOS and compatible codepage files) and .CPX
(FreeDOS UPX-compressed codepage files) can be used as the codepage files in DOSBox-X.
Some codepages are compiled into DOSBox-X, so it is mostly not needed to care about external codepage files.
If you need a different (or custom) codepage file, copy it into the DOSBox-X directory, such it is accessible for DOSBox-X.
If you place all ten ega.cpx
files (from FreeDOS) in the DOSBox-X folder, an appropriate codepage file for the requested layout/codepage is chosen automatically.
Additional layouts can be added by copying the corresponding .kl
file into the directory of the DOSBox-X config file and using the first part of the filename as the language code.
For example, for the file UZ.KL
(keyboard layout for Uzbekistan) you can specify the following in the DOSBox-X config file:
[dos]
keyboardlayout=uz
The integration of keyboard layout packages (like keybrd2.sys
) works similar.
Use of scancodes for your keyboard layout
DOSBox-X provides both SDL1 and SDL2 versions, using the cross-platform SDL 1.2 and SDL 2.0 libraries respectively. Since SDL is responsible for input handling in DOSBox-X, there are some differences between the SDL1 binary and the SDL2 binary in regard to the keyboard layout support of DOSBox-X.
The SDL1 version of DOSBox-X in particular only supports the US keyboard layout due to the limitations around the SDL1 library.
As such when using the SDL1 version, DOSBox-X will automatically decide whether to use scancodes with the default usescancodes=auto
config setting, which should work around most keyboard layout problems with non-US keyboards.
On the other hand, you can override this by changing the setting usescancodes
to either true
or false
.
When using the SDL2 binary, scancodes are not needed when using non-US keyboard layouts in DOSBox-X (this setting has no effect in the SDL2 version).