James Rowe
d418f0438d
citra-qt: Load Disk Resources
2020-01-15 19:58:34 -07:00
James Rowe
d03d201482
Add GetRenderer to core
2020-01-15 19:58:34 -07:00
James Rowe
be52d3a7d0
Add missing changes from yuzu file_util
2020-01-15 19:58:34 -07:00
James Rowe
4e9ec4efd0
Add shader disk caching
2020-01-15 19:58:33 -07:00
James Rowe
ce3f8bf94e
Add frontend settings
2020-01-15 19:58:33 -07:00
James Rowe
b5b6ce5fdc
Add shader cache version generation
2020-01-15 19:58:33 -07:00
James Rowe
b5bc05738c
Add settings for disk shader cache
2020-01-15 19:58:33 -07:00
James Rowe
8f67d6a444
Add ZSTD compression for precompiled cache
2020-01-15 19:58:33 -07:00
James Rowe
cd86c9b043
Merge pull request #5036 from leoetlino/bps
...
file_sys: Add support for BPS patching
2020-01-15 12:04:54 -07:00
James Rowe
45bff6ab58
Merge pull request #5033 from BreadFish64/fix_game_list
...
qt: do not use an invalid update smdh
2020-01-15 11:51:35 -07:00
James Rowe
01686f78fe
Merge pull request #5037 from leoetlino/thin-archives
...
CMake: Create thin archives on Linux
2020-01-01 14:29:43 -05:00
BreadFish64
b3beff0f4c
common/logging: don't use regex for path trimming
2019-12-24 14:19:18 -06:00
Léo Lam
756d231ff9
file_sys: Add support for BPS patches
...
The BPS format allows distributing patches that are smaller and that do
not contain copyrighted content if data is relocated
(unlike non-trivial IPS patches).
This is essential for games such as MM3D that have three barely
different code revisions. Supporting all three versions would
demand an unreasonable amount of work; with BPS patches only one
version has to be supported.
2019-12-22 10:46:47 +01:00
Léo Lam
3140086c60
file_sys: Handle patch applying failures
...
This changes ApplyCodePatch to return a ResultStatus, which makes it
possible to determine whether patch applying has failed. Previously,
only a boolean was returned, and false was returned when no patch
was found OR when a patch was found but applying it failed.
This also changes AppLoader_NCCH to return an error if patching fails
because the executable is likely to be left in an inconsistent state
and we should not proceed booting in that case.
2019-12-22 10:46:47 +01:00
Léo Lam
1377be9902
file_sys: Move IPS patching code into separate source file
...
In anticipation of a new BPS patcher.
2019-12-22 10:46:47 +01:00
Léo Lam
72a081c617
CMake: Create thin archives on Linux
...
This significantly reduces unnecessary disk writes and space usage
when building Citra.
libcore.a is now only ~1MB rather than several hundred megabytes.
2019-12-22 10:12:00 +01:00
BreadFish64
cadfd6834d
qt: do not use an invalid update smdh
2019-12-18 21:51:06 -06:00
James Rowe
020cd56ad8
Merge pull request #5030 from jroweboy/reorder-queue-acquire
...
Remove wait for free buffer
2019-12-18 16:07:52 -07:00
James Rowe
dd258acfaf
Merge pull request #5027 from jroweboy/ffmpeg-fix
...
Reenable AAC FFMPEG decoding
2019-12-17 08:49:35 -07:00
James Rowe
f9421eedcc
Merge pull request #5028 from jroweboy/missing-vsync-telemetry
...
Add missing vsync telemetry field
2019-12-17 08:49:08 -07:00
James Rowe
1d14b98f81
Remove accidentally pushed debugging logs ( #5029 )
2019-12-17 11:13:47 +01:00
James Rowe
f369196c9f
Remove wait for free buffer
...
Previously we would first attempt to use any buffer that was free,
meaning whichever buffer has already been displayed. This has poor
interactions when the operating system throttles the update rate of the
window, so if there isn't any free buffers available, just reuse the
oldest frame instead.
2019-12-16 20:02:01 -07:00
James Rowe
b559d1a495
Add missing vsync telemetry field
...
Was removed as part of #4940 but readded again.
2019-12-16 19:30:28 -07:00
James Rowe
e53a2ac411
Reenable AAC FFMPEG decoding
...
Simple cut/paste issue where initialized is only set to true when the
emulation attempts to init the Binary Pipe, but we used it to test if
the FFMPEG decoder was valid and disabled it if it wasn't. Just return
the value of have_ffmpeg_dl instead so when dynamic loading is added
it'll still work.
2019-12-16 19:23:43 -07:00
James Rowe
439d550850
Merge pull request #4940 from jroweboy/presentation-thread
...
Split Presentation thread from Render thread
2019-12-15 20:25:34 -07:00
James Rowe
408e225048
Destroy GLWindow on exit to prevent issues closing the app while in fullscreen
2019-12-15 16:20:59 -07:00
James Rowe
36c5058d66
Reintroduce a vsync option for people with really bad drivers
2019-12-15 15:42:05 -07:00
James Rowe
87facaa2e2
Prevent out of memory errors when the game passes in an improper length value
...
HACK
In Luigi's Mansion Dark Moon in HLE audio, the game mysteriously passes
in an extremely large value for length, which without any checks, causes
HLE audio to allocate an extremely large buffer.
This value seemingly is caused by some other HLE audio feature is missing,
and Luigi's Mansion subtracts two values to get a length, without
checking for overflow first. This appears to be caused by an incorrect
HLE audio emulation, as its fixed entirely by only changing to LLE. As
such, further investigation is required, but in the meantime, completely
eating up our users RAM is unacceptable.
2019-12-14 18:18:59 -07:00
James Rowe
ddb7ead3e4
Merge pull request #5020 from jroweboy/dynamic-mf
...
Runtime Load MediaFoundation dlls on Windows
2019-12-14 10:13:54 -07:00
James Rowe
30dfe1fcb8
Use the correct register length for index_array
...
The index_array can't possible be 31 bits long as that would index
out of bounds memory. According to 3dbrew, this should be 28
2019-12-13 18:08:07 -07:00
Cameron Cawley
9a45d32a5f
common/cpu_detect: Remove Common::CPUVendor
...
It's only used by telemetry, where the information it provides can be gained from the brand string.
2019-12-09 22:39:56 +00:00
Cameron Cawley
bc5ad137c0
common/cpu_detect: Remove unused functionality
2019-12-09 22:36:32 +00:00
James Rowe
337ac73915
Improve aac decoder selection
2019-12-08 16:18:39 -07:00
James Rowe
b395efe804
Dynamically load Media Foundation
2019-12-08 13:54:27 -07:00
James Rowe
65613cce81
Add microprofile scopes for presentation
2019-12-02 18:59:12 -07:00
James Rowe
9ae3eb4a30
Remove high dpi scaling flag as it needs more work first
2019-12-02 18:34:11 -07:00
zhupengfei
17ba846a3f
applets/swkbd: Remove text memory clearing
...
The text shared memory wasn't supposed to be cleared according to my comparison with the LLE swkbd. This can cause issues in certain games such as Harvest Moon.
A null terminator is added to the text copied to mark the end of the string.
2019-12-01 23:01:07 +08:00
James Rowe
866df2644b
Merge pull request #4982 from vvanelslande/mic-device
...
service/mic: actually use the specified device
2019-11-28 21:23:36 -07:00
James Rowe
de17fe31fb
clang-format
2019-11-28 20:47:33 -07:00
James Rowe
ea40eb0994
Use the proper parent window
...
Fixes an issue where the touch point is incorrect in OpenGLWindow when the render
target is initialized for the first time with single window mode disabled.
2019-11-28 20:35:50 -07:00
James Rowe
123c0212ef
Fix window resizing bug
2019-11-28 11:20:42 -07:00
James Rowe
782eae7f65
Fix drag and drop
2019-11-28 10:56:58 -07:00
James Rowe
15ed600c91
Merge pull request #4956 from vitor-k/game-sorting
...
Fixes to game list sorting
2019-11-20 09:48:08 -07:00
James Rowe
e6c7f84dc6
Merge pull request #4964 from citra-emu/wwylele-patch-1
...
unfold UNREACHABLE implementation for dumb compilers
2019-11-20 09:43:48 -07:00
Weiyi Wang
6d0189b4b1
Merge pull request #4992 from FearlessTobi/port-2513
...
yuzu/game_list&multiplayer: Specify string conversions explicitly
2019-11-20 10:45:21 -05:00
Weiyi Wang
85f2e577b5
Merge pull request #5006 from FearlessTobi/port-3123
...
Port yuzu-emu/yuzu#3123 : "common/logging: Silence no return value warnings"
2019-11-20 10:34:47 -05:00
James Rowe
0acacc4e1a
Merge pull request #5002 from vvanelslande/username-fix
...
Fix moderation by room host in dedicated rooms
2019-11-19 23:51:21 -07:00
ReinUsesLisp
30be149f87
common/logging: Silence no return value warnings
2019-11-19 16:47:35 +01:00
BreadFish64
e38b4f6707
video_core: get rid of MSVC hack comment
2019-11-17 17:42:19 -06:00
vvanelslande
d16d34203a
Fix moderation by room host in dedicated rooms
2019-11-17 09:59:54 -05:00
vvanelslande
e1e136d72f
service/mic: actually use the specified device
2019-11-11 17:15:10 -05:00
Weiyi Wang
5fa71d425b
Merge pull request #4998 from vvanelslande/count
...
dedicated_room: fix crash (count != 0) when closing the room
2019-11-11 15:54:44 -05:00
Pengfei Zhu
060119d333
Merge pull request #4987 from vvanelslande/room-logging
...
network/room (server): add message/join/leave/kick/ban/unban/game name logging
2019-11-11 20:29:33 +08:00
Pengfei Zhu
1c6a8e995a
Merge pull request #4953 from vvanelslande/qt-ui-unused
...
citra_qt/main.ui: remove unused actions "Load Symbol Map..." and "Select Game Directory..."
2019-11-11 20:27:48 +08:00
Weiyi Wang
98c396f179
Merge pull request #4995 from vvanelslande/rename-profile
...
settings, configure_input: fix rename input profile
2019-11-10 21:25:01 -05:00
vvanelslande
bb48d2491d
citra_qt/configuration: add missing Read/SaveUtilityValues
2019-11-10 19:26:03 -05:00
vvanelslande
62014e8f34
dedicated_room: fix crash (count != 0) when closing the room
2019-11-10 17:07:00 -05:00
vvanelslande
1f708e8bad
settings, configure_input: fix rename input profile
2019-11-09 16:55:03 -05:00
James Rowe
86f203e6e8
Add missing key events and also try to glFinish after swapping
2019-11-09 13:12:30 -07:00
James Rowe
68052de8a0
Workaround Qt bug that causes events to forward to the parent incorrectly
2019-11-09 13:12:30 -07:00
James Rowe
586b8e8b46
Change from QOpenGLWidget to QWindow
...
While QOpenGLWidget sounds like a good idea, it has issues which are
harder to debug due to how Qt manages the context behind the scenes. We
could probably work around any of these issues over time, but its
probably easier to do it ourselves with a QWindow directly.
Plus using QWindow + createWindowContainer is the easiest to use
configuration for Qt + Vulkan so this is probably much better in the
long run.
2019-11-09 13:12:30 -07:00
James Rowe
66f5278f52
Delete core_context before shutting down SDL
2019-11-09 13:12:30 -07:00
James Rowe
29c12058c7
Add minimum window size back to citra-qt
2019-11-09 13:12:29 -07:00
James Rowe
26d828fb4c
Prevent softlock on shutdown and various cleanup
2019-11-09 13:12:29 -07:00
James Rowe
9c32c0b98b
Change from render to texture to render to renderbuffer
2019-11-09 13:12:29 -07:00
James Rowe
52d7676831
recreate mailbox to use a queue instead
2019-11-09 13:12:29 -07:00
James Rowe
ac90cd0378
Change Present to finish only after swap
2019-11-09 13:12:29 -07:00
James Rowe
6fff8e3921
Remove screen change detection since it breaks make changing screen. (Still need to test windows)
2019-11-09 13:12:29 -07:00
James Rowe
5d97e44279
Fix macOS pixel ratio detection
2019-11-09 13:12:29 -07:00
James Rowe
045eec282a
rename GGLContext to just GLContext
2019-11-09 13:12:29 -07:00
James Rowe
db94c017bf
Change to a constructor that exists in qt 5.9
2019-11-09 13:12:29 -07:00
James Rowe
3b14bb44b9
QOffscreensurface
2019-11-09 13:12:29 -07:00
James Rowe
8d17aa40fd
Remove vsync setting
2019-11-09 13:12:26 -07:00
James Rowe
fcbe5e1acd
Add a separate thread for rendering and add texture mailbox and shared context to SDL
2019-11-09 13:10:18 -07:00
James Rowe
91255b8802
Change Qt to use QOpenGLWidget and support shared context and texture mailbox
2019-11-09 13:10:18 -07:00
James Rowe
27d0fc64d0
Add texture mailbox support to opengl renderer.
2019-11-09 13:10:17 -07:00
James Rowe
c2e7903825
Split graphics out of EmuWindow in preparation of shared contexts
2019-11-09 13:10:17 -07:00
James Rowe
db7a627a2e
Add scope acquire context to simplify MakeCurrent and DoneCurrent calls
2019-11-09 13:10:17 -07:00
Khangaroo
df99d98240
specify size of buffer and use openglstate in getteximageoes
2019-11-09 12:58:17 -07:00
khang06
a458155f99
texture dump hotkey (ctrl+d)
...
address more comments
2019-11-09 12:56:30 -07:00
Khangaroo
5450d4980d
crash hotfix (no clang-format because on phone)
...
hotfix 2: check if the texture is custom before dumping
hotfix 4: fix custom texture conflict detection
2019-11-09 12:56:28 -07:00
Khangaroo
ae4aaf2fc1
nested folder support + refuse to load incompatibly sized textures + general cleanups
2019-11-09 12:56:27 -07:00
Khangaroo
8a98310a16
address more comments, fix dumping textures that already got dumped
2019-11-09 12:56:27 -07:00
Khangaroo
c2a32e942b
address more comments
2019-11-09 12:56:27 -07:00
Khangaroo
3534ad0835
reorder graphics tab, move speed to general
2019-11-09 12:56:27 -07:00
Khangaroo
da83430a68
add enhancements tab files
2019-11-09 12:56:27 -07:00
Khangaroo
650fe6447d
generate mipmaps (for now)
2019-11-09 12:56:27 -07:00
Khangaroo
f09489475a
fix texture dumping on opengl es, create load folder if none exists if custom textures is enabled
2019-11-09 12:56:27 -07:00
Khangaroo
254f8a4643
fix inverted texture dump error message path
2019-11-09 12:56:27 -07:00
Khangaroo
8b881ac1fc
fix preload textures being enabled when it shouldn't
...
address more comments
2019-11-09 12:56:25 -07:00
Khangaroo
391e552927
qimageinterface fixes, remove old lodepng, address more comments
2019-11-09 12:56:24 -07:00
Khangaroo
b81c15941e
add image interface, remove lodepng from video_core/core, address more comments, fix comments
...
remove unnecessary conversion
2019-11-09 12:56:21 -07:00
Khangaroo
5940361b81
new-line that clang-format didn't fix
...
address some comments
2019-11-09 12:56:17 -07:00
Khangaroo
59b475a4b9
implement custom texture preload
2019-11-09 12:56:17 -07:00
Khangaroo
657a129b60
handle upscaling and offsets (fixes oot3d)
2019-11-09 12:54:43 -07:00
Khangaroo
6d90c42a79
fix crashes, add custom texture cache, load textures from load directory
2019-11-09 12:54:40 -07:00
Khangaroo
f866b2a917
texture replacement (also messy)
2019-11-09 12:53:16 -07:00
khang06
deff865ac9
initial sloppy texture dumping implementation (opengl only)
2019-11-09 12:53:16 -07:00
khang06
94b3c63bf9
add dump dir to user paths
2019-11-09 12:53:16 -07:00
khang06
e0d63bd21b
add texture dumping as a config entry
2019-11-09 12:53:12 -07:00
khang06
2b92065d2a
add lodepng as an external, have video_core depend on it
2019-11-09 12:48:23 -07:00
James Rowe
926902cc5e
Merge pull request #4993 from bunnei/web-token-b64
...
citra_qt: configure_web: Use Base64 encoded token
2019-11-09 12:45:11 -07:00
bunnei
a1544d8669
dedicated_room: Support single Base64 token.
2019-11-09 13:48:26 -05:00
bunnei
3a18039c53
citra_qt: configure_web: Use Base64 encoded token for simplifying user experience.
2019-11-09 13:48:26 -05:00
Weiyi Wang
34c6b7ca48
Merge pull request #4985 from FearlessTobi/port-2942
...
Port yuzu-emu/yuzu#2942 : "Silence miscellaneous warnings"
2019-11-08 23:42:32 -05:00
FearlessTobi
9c1535621a
citra_qt/game_list: Specify string conversions explicitly
2019-11-09 02:46:23 +01:00
FearlessTobi
6cf0043830
citra_qt/updater: Specify string conversions explicitly
2019-11-09 02:46:07 +01:00
FearlessTobi
8f29ab3ceb
citra_qt/multiplayer: Specify string conversions explicitly
2019-11-09 02:45:47 +01:00
Tobias
ff931590b0
configuration/config: Move config loading and saving to functions based off groups ( #4855 )
...
Over time our config values have grown quite numerous in size.
Unfortunately it also makes the single functions we have for loading and
saving values more error prone.
For example, we were loading the core settings twice when they only
should have been loaded once. In another section, a variable was
shadowing another variable used to load settings from a completely
different section.
Finally, in one other case, there was an extraneous endGroup() call used
that didn't need to be done. This was essentially dead code and also a
bug waiting to happen.
This separates the section loading code into its own separate functions.
This keeps variables only visible to the code that actually needs it,
and makes it much easier to visually see the end of each individual
configuration group. It also makes it much easier to visually catch bugs
during code review.
While we're at it, this also uses QStringLiteral instead of raw string
literals, which both avoids constructing a lot of QString instances, but
also makes it much easier to disable implicit ASCII to QString and
vice-versa in the future via setting QT_NO_CAST_FROM_ASCII and
QT_NO_CAST_TO_ASCII as compilation flags.
2019-11-07 17:33:41 +01:00
vvanelslande
db1b0a1964
network/room: add message/join/leave/kick/ban/unban/game name logging
2019-11-03 09:55:38 -05:00
FearlessTobi
5e98835b5f
yuzu/game_list: Silence -Wswitch
...
Co-Authored-By: Rodrigo Locatti <reinuseslisp@airmail.cc>
2019-11-02 18:56:23 +01:00
FearlessTobi
5d1d0b3693
yuzu/game_list_worker: Silence warnings
...
Co-Authored-By: Rodrigo Locatti <reinuseslisp@airmail.cc>
2019-11-02 18:55:08 +01:00
vvanelslande
44611c9985
citra_qt/main.ui: remove unused actions "Load Symbol Map..." and "Select Game Directory..."
...
Self-explanatory.
2019-10-25 20:13:35 -05:00
vitor-k
cc9bcf3e48
fix uppercase sorting
2019-10-25 18:49:13 -03:00
Weiyi Wang
e1fbf90e16
fix clang-format and lambda capture
2019-10-05 10:54:07 -04:00
Weiyi Wang
35690e3ac7
Merge pull request #4948 from vvanelslande/amiibo-dad
...
citra_qt: add amiibo drag and drop support
2019-10-05 10:47:46 -04:00
Weiyi Wang
00b9cdaf95
unfold UNREACHABLE implementation for dumb compilers
...
We relies on UNREACHABLE's noreturn attribute to eliminate parent's "no return value" warning. However, this was wrapped in a `if(!false)` block, which compilers may not unfold to recognize the noreturn nature.
2019-10-05 10:45:01 -04:00
vitor-k
eb7527254f
Sort game items after the list is populated
2019-09-28 15:57:26 -03:00
vitor-k
476dcb1915
Use the displayed text for sorting GameListItemPath.
...
By default, DisplayRole is used as the SortRole.
This behaviour is what's expected by the user.
Made it so that an access to SortRole is equivalent to one to DisplayRole.
Also fixes a bug with directory sorting.
2019-09-28 00:48:11 -03:00
FearlessTobi
1e93f568b5
Address review comments
2019-09-22 20:48:32 +02:00
FearlessTobi
a5d880979c
Backport changes from yuzu-emu/yuzu#2057
2019-09-22 17:47:18 +02:00
FearlessTobi
0a3f75c25f
Backport changes from yuzu-emu/yuzu#2806
2019-09-22 17:40:04 +02:00
FearlessTobi
029cc77c4b
Backport changes from yuzu-emu/yuzu#2444
2019-09-22 17:27:01 +02:00
James Rowe
05240770e0
Merge pull request #4946 from vvanelslande/ipc-recorder-fix-ok
...
citra_qt/RecordDialog: close when OK is clicked
2019-09-22 01:44:33 -06:00
vvanelslande
a650402eb5
citra_qt/RecordDialog: close when OK is clicked
...
The OK button didn't do anything before.
2019-09-21 23:56:07 -05:00
James Rowe
7152f4c748
Add FPS to SDL title bar
...
Also fix a small issue with incorrect shutdown ordering in SDL.
Previously the system would still be running so the telemetry task
didn't launch and detached_tasks would assert(count == 0)
2019-09-21 22:10:24 -06:00
vvanelslande
07eb89c6ee
citra_qt: add amiibo drag and drop support
2019-09-21 17:08:19 -05:00
James Rowe
223bfc9a2a
Merge pull request #4847 from zhaowenlan1779/ipc-debugger
...
core, citra_qt: IPC Recorder
2019-09-21 00:04:07 -06:00
Pat
63c31af8ee
Added Host CPU and OS to log
2019-09-20 20:34:01 -06:00
Weiyi Wang
377abfa3e6
Merge pull request #4930 from vitor-k/pause-on-unfocus
...
Pause when in background
2019-09-20 14:51:01 -04:00
Weiyi Wang
176b8b4a0b
Merge pull request #4917 from vitor-k/long-title
...
Allow displaying the long_title of the game
2019-09-20 12:59:04 -04:00
vitor-k
8d8bc8fee7
small changes to ApplicationState handling, just in case
2019-09-19 00:12:36 -03:00
James Rowe
c1d3b5e61c
Merge pull request #4934 from vitor-k/boost_remnant
...
Remove boost headers not currently used
2019-09-18 10:57:37 -06:00
James Rowe
4b05078def
Merge pull request #4922 from Steveice10/master
...
Filter non-executable files out of the game list.
2019-09-16 23:51:44 -06:00
BreadFish64
d0decf2166
remove ugly msvc hack
...
the bug appears to be fixed so there's no reason to keep this around
2019-09-15 22:35:21 -05:00
vitor-k
147a7f0dec
Remove boost headers not currently used
2019-09-15 15:18:38 -03:00
vitor-k
bb12af1da7
Remove unused boost header
2019-09-15 14:00:55 -03:00
vitor-k
05b1cfc63b
Pause in background guard clause and unused flag
2019-09-15 01:08:12 -03:00
vitor-k
66b1e419c3
Naming changes and clang format
2019-09-14 18:14:23 -03:00
Pengfei Zhu
360e6cb513
Merge pull request #4900 from leoetlino/exheader-fix
...
ncch_container: Fix NCCH decryption heuristic when replacing exheader
2019-09-14 10:33:06 -05:00
vitor-k
356fd60520
Add option to enable pause when on background
2019-09-13 23:01:12 -03:00
Pengfei Zhu
22d3099ea2
Merge pull request #4925 from vitor-k/icon-style
...
Change the coding style of GameListIconSize bounds check to use the enum
2019-09-13 23:20:45 +08:00
James Rowe
7bfd829c77
Merge pull request #4893 from wwylele/nfc-state
...
NFC: extract frontend-facing tag state
2019-09-13 08:59:51 -06:00
vitor-k
7224ec57f6
Only auto unpause when auto paused
2019-09-11 21:53:26 -03:00
vitor-k
23405b4ce1
Pause on unfocused first draft
...
This is a MVP, still needs one or more configuration option(s) and
review of the code style.
2019-09-10 21:52:17 -03:00
Vitor K
4d2fee31b3
Prevent repetition on config.cpp
...
Type is already indicated on right hand side.
Co-Authored-By: Mat M. <mathew1800@gmail.com>
2019-09-10 00:01:55 -03:00
vitor-k
966d128025
Remove newlines from the long title in row2
2019-09-09 23:40:32 -03:00
vitor-k
719912786a
UISettings::GameListText
...
Append a value to the enum to function as length counter.
Also remove magic numbers where possible, by using the enum instead.
2019-09-09 23:36:21 -03:00
vitor-k
1f1ac98f10
Fix clang format for long-title
2019-09-09 23:36:21 -03:00
vitor-k
c866a8e428
Change GameListText order to improve configuration compatibility
2019-09-09 23:36:21 -03:00