This proposal is based on a combination of 2 project ideas & 3 tasks.
1) ScummVM GUI is currently based on char size strings, so it relies on code pages. There are a lot of character sets and ScummVM supports a wide variety of languages. This means due to the multitude of codepages, we're using:
- Unnecessary memory and performance
- Low compatibility between different languages
The main idea of the of this project is to shift GUI to Common::U32 Strings, which will make our GUI:
- Unicode friendly, thus reducing the vast codepages just to one big codepage
- Better compatible
2) With enhancing our GUI, we're also trying to add support for RTL Languages.
3) ScummVM Project has Dynamic Plugins system in place, which allows lower-end platforms to be capable of running ScummVM. However, when we detect games - these plugins are loaded one by one and the relevant detection features are called from the individual engines. Since this is very slow, the main idea of this project is to statically link detection features into the executable so
- Games are detected without loading of a plugin
- Game detection is faster
- Other parts remain as-is, so our low-end platforms will gain performance boosts