-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Description
MAME version
0.282 (or any or latest)
System information
applies to any PC running MAME
INI configuration details
n/aEmulated system/software
any emulated machine with a complex keyboard
Incorrect behaviour
The layout font is (incorrectly) hard-coded to the default font.
When the UI font is changed the layout font does not change.
Expected behaviour
Changing the UI font should also change the Layout font or the Layout font needs its own setting.
Steps to reproduce
Run any device using a layout where the device is large. Text generally looks bad, especially at small sizes.
For example sd132 (and many others... cz101, cz1, dx100 etc)
Additional details
Solution:
To at least make the experience the same across all platforms, MAME should use the included Noto Sans font that is hidden in one of the 3rd party dirs. Or choose some other free font with a large selection of glyphs. Noto Sans seems to be a very good choice.
MAME must use this font in the layout where currently it uses some default font regardless of what is
selected for the UI font. Or (probably better), allow for a device-specific .ini where the layout font can be set.
The different-UI-font-across-different-platforms issue has been a problem for many years and makes some layouts look terrible. Yet no one seems to have 5 minutes to solve this issue? There are also some mametesters reports, largely ignored. This issue is well known.
MAME should use the bundled free font as the UI and LAY font, otherwise why bundle something that is completely unused with the MAME distribution and hide it?
On first run MAME should check to see if the font is installed on the system and if not found, either install it or prompt the user to install it. At least do the check for any emulated device that includes a layout when first run to warn the user they are going to have a bad experience without the correct font installed on their system. Adding (checking for and if found, loading) a device-specific ini setting to specify the layout font will solve part of the problem.
Case in point: I'm working on layouts for a couple of special computers with non-standard keyboards. When I put special characters on the keys using the common uifont MAME normally uses (in this case it's Windows / Tahoma), it will not display correctly on other platforms. When I change the UI font to Noto Sans (the one hidden in the 3rd-party dir) it uses that font only for the UI and not for the lays. Noto Sans looks good at smaller sizes since it is bolder but the layout font seems to be hard-coded which is a mistake.
Summary:
Use existing/bundled Noto Sans as the font for the UI and Layouts.
Add setting to mame.ini for layout font and use it in a lay. Default will be whatever is the uifont.
Allow for loading device-specific ini with a layout font setting for device-specific layout font usage.
The use of a 'MAME' font across all platforms for the UI and Layout should be unified and consistent.
Currently it is not.