diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9d53096e4..4d791312d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -138,13 +138,13 @@
* The device text flickered in GuiDetectDevice when configuring a controller
* The selector bar was not aligned correctly during menu scale-up animations
-## Version 1.2.4 (in development)
+## Version 1.2.4
-**Release date:** TBD
+**Release date:** 2022-05-27
### Release overview
-v1.2 maintenance release. Support has been added for multiple systems such as arcade LaserDisc (Daphne) and OpenBOR. A number of default emulators have been changed, some standalone emulators have been added and a number of bugs have been fixed. Some low-level functionality has also been implemented to enable more advanced emulator launch options and quite a number of missing theme assets have been created for the default rbsimple-DE theme.
+v1.2 maintenance release. Support has been added for multiple systems such as Daphne (arcade LaserDisc) and OpenBOR. A number of default emulators have been changed, some standalone emulators have been added and numerous bugs have been fixed. Some low-level functionality has also been implemented to enable more advanced emulator launch options and quite a number of missing theme assets have been created for the default rbsimple-DE theme.
### Detailed list of changes
@@ -788,16 +788,12 @@ Many bugs have been fixed, and numerous features that were only partially implem
## Known issues
-**The issues below are relevant for ES-DE v1.2.3**
+**The issues below are relevant for ES-DE v1.2.4**
* On Windows when using high DPI displays, if not running ES-DE on the primary monitor and the display where it runs does not have the same scaling percentage as the primary monitor, then the ES-DE resolution will not be properly set. The application will still work and if running in fullscreen mode it may not even be noticeable. This issue is probably caused by a bug in SDL where the primary display scaling is always used for calculating the display bounds. If using the same scaling percentage across all monitors, or if not using high DPI monitors at all, then this issue is not relevant.
* On Windows installing DS4Windows will break controller input in ES-DE for unknown reasons. Uninstalling this software should resolve the issue. On Windows 11 both DualShock 4 (PS4) and DualSense (PS5) controllers have been tested wired and via Bluetooth and both work fine in both ES-DE and RetroArch without any special drivers or configuration.
-* On Windows the special characters &()^=;, can't be used in filenames executed by cmd.exe (applicable for the desktop, epic, kodi, ports and steam systems). This issue will be resolved with the 1.2.4 release.
-
-* There could be problems with Chinese characters under some circumstances which may cause them to not get rendered properly in the gamelist view. This issue will be resolved with the 1.2.4 release.
-
* On macOS, the RetroArch setting "Start in Fullscreen mode" must be enabled or ES-DE will not be able to switch to the emulator window when a game is launched. Possibly it's the same issue with other emulators as well.
* On Raspberry Pi OS 10, Sony DualShock 4 controllers have problems with some button presses that don't register correctly. The issue appears resolved in Raspberry Pi OS 11.
diff --git a/INSTALL-DEV.md b/INSTALL-DEV.md
index 8a3064b96..c63dbed04 100644
--- a/INSTALL-DEV.md
+++ b/INSTALL-DEV.md
@@ -1232,7 +1232,7 @@ The following variables are expanded for the `command` tag:
`%STARTDIR%` - The directory to start in when launching the emulator. Must be defined as a pair separated by an equal sign. This is normally not required, but some emulators and game engines like standalone MAME and OpenBOR will not work properly unless you're in the correct directory when launching a game. Either an absolute path can be used with this variable, such as `%STARTDIR%=C:\Games\mame` or the `%EMUDIR%` variable can be used to start in the directory where the emulator binary is located, i.e. `%STARTDIR%=%EMUDIR%` or the `%GAMEDIR%` variable can be used to start in the directory where the game file is located, i.e. `%STARTDIR%=%GAMEDIR%`. If an absolute path is set that contains blankspaces, then it must be surrounded by quotation marks, for example `%STARTDIR%="C:\Retro games\mame"`. If the directory defined by this variable does not exist, it will be created on game launch. The variable can be placed anywhere in the launch command if the %EMULATOR_ variable is used, otherwise it has to be placed after the emulator binary.
-`%INJECT%` - This allows the injection of launch arguments stored in a text file on the filesystem. This is for example required by Hypseus Singe (arcade LaserDisc) games. The variable must be defined as a pair separated by an equal sign, for example `%INJECT%=game.commands`. The `%BASENAME%` variable can also be used in conjunction with this variable, such as `%INJECT%=%BASENAME%.commands`. By default a path relative to the game file will be assumed but it's also possible to use an absolute path or the tilde ~ symbol which will expand to the home directory. If a path contains spaces it needs to be surrounded by quotation marks, such as `%INJECT%="C:\My games\ROMs\daphne\%BASENAME%.daphne\%BASENAME%.commands"` The variable can be placed anywhere in the launch command and the arguments will be injected at that position. The specified file is optional, if it does not exist or if there are insufficient permissions to read the file content, then it will simply be skipped. For safety reasons the arguments file can only have a maximum size of 4096 bytes and if it's larger than this it will be skipped.
+`%INJECT%` - This allows the injection of launch arguments stored in a text file on the filesystem. This is for example required by the Hypseus Singe (arcade LaserDisc) emulator. The variable must be defined as a pair separated by an equal sign, for example `%INJECT%=game.commands`. The `%BASENAME%` variable can also be used in conjunction with this variable, such as `%INJECT%=%BASENAME%.commands`. By default a path relative to the game file will be assumed but it's also possible to use an absolute path or the tilde ~ symbol which will expand to the home directory. If a path contains spaces it needs to be surrounded by quotation marks, such as `%INJECT%="C:\My games\ROMs\daphne\%BASENAME%.daphne\%BASENAME%.commands"` The variable can be placed anywhere in the launch command and the arguments will be injected at that position. The specified file is optional, if it does not exist or if there are insufficient permissions to read the file content, then it will simply be skipped. For safety reasons the arguments file can only have a maximum size of 4096 bytes and if it's larger than this it will be skipped.
`%EMUPATH%` - Replaced with the path to the emulator binary. This variable is used for manually specifying emulator core locations, and a check for the existence of the core file will be done on game launch and an error displayed if it can't be found. Normally %EMUPATH% should not be used as the %CORE_ variable is the recommended method for defining core locations.
diff --git a/INSTALL.md b/INSTALL.md
index a805cf320..4b631f194 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1480,8 +1480,9 @@ Below is an overview of the file layout with various examples. For the command t
%RUNINBACKGROUND% bash %ROM%
- %HIDEWINDOW% %RUNINBACKGROUND% cmd.exe /C %ROM%
+ The optional %HIDEWINDOW% variable is used to hide the console window which would otherwise be visible when launching games
+ and %ESCAPESPECIALS% escapes the characters &()^=;, that cmd.exe can't otherwise handle. -->
+ %HIDEWINDOW% %ESCAPESPECIALS% %RUNINBACKGROUND% cmd.exe /C %ROM%