#16127·mame

Control keys that open or dismiss menus and startup screens are passed to the emulated system

Author: pgalbraithCreated Sep 13, 2026Updated Sep 15, 2026

MAME version

0.289

System information

Windows 11 Pro, 64-bit (10.0.26200), x86-64

INI configuration details

ini
default config

Emulated system/software

h89

Incorrect behaviour

The key used to open or dismiss a menu or startup screen is also typed into the emulated system:

  • Pressing Tab to close the main menu types a Tab.
  • Choosing Close Menu with Enter types a carriage return.
  • Pressing Esc to leave the menu types an Esc.
  • Pressing Tab to open the menu sometimes types a Tab.
  • Pressing a key to dismiss the system information screen at startup types that key.

Expected behaviour

The emulated system doesn't see the keys used to open and dismiss menus and startup screens. MAME Menus says: "Emulated system inputs are ignored while menus are displayed."

Steps to reproduce

These use the H89's terminal in off-line mode, where it shows whatever you type, so a stray key shows up on screen.

Closing the main menu

  1. Run mame h89 -ui_active. UI controls start disabled on systems with a keyboard, and -ui_active turns them on so Tab opens the menu.
  2. Wait for the H: prompt.
  3. Press F12 to put the terminal off line. F12 is the terminal's Off Line key; MAME also saves a snapshot, which doesn't matter here.
  4. Type abc. The line reads H: abc.
  5. Press Tab to open the menu, Tab again to close it, then type d.
    • What happens: H: abc d. The closing Tab reached the terminal and moved the cursor to the next tab stop.
    • What should happen: H: abcd.
  6. Press Tab, then End, then Enter to choose Close Menu, then type X.
    • What happens: the X appears at the very start of the line, in front of H:. The Enter reached the terminal as a carriage return.
    • What should happen: the X follows the last letter you typed.
  7. Press Tab, then Esc to close the menu, then type E (Shift+E).
    • What happens: the screen clears. The Esc reached the terminal, and Esc followed by E is the terminal's clear-screen command.
    • What should happen: the E follows the X.

The Tab that opens the menu can get through as well; the H89 received it on 2 of 9 opens with the Lua script below. If it does, the gap in step 5 is one tab stop wider.

Dismissing the startup screen

  1. Run mame h89 -ui_active -noskip_gameinfo.
  2. When the system information screen says "Press any key to continue", press b.
    • What happens: the prompt reads H: Boot. The b reached the H89, and the MTR-89 monitor took it as its Boot command.
    • What should happen: the prompt reads just H:.

Additional details

No response