Skip to content

UI Font != LAY Font #14524

@Gurudumps

Description

@Gurudumps

MAME version

0.282 (or any or latest)

System information

applies to any PC running MAME

INI configuration details

n/a

Emulated 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions