frontend: Keep cleaning up.

Got rid of one of the UI audit inputs.  There only needs to be one, and
the options can be presented in the confirmation menu.  Two secret
keystrokes is too confusing.  Also got rid of the long-obsolete UI
Toggle Debugger input.

Added audit media button to the toolbar so it's a bit less opaque, and
it can be accessed with a mouse/trackball (not just by knowing the key
mapping).

Made default I/O port names localisable.

Made autofire plugin save port fields using the { port, mask, type }
tuple, the same way MAME does.  Unfortunately this will break existing
autofire configuration, but it should be more stable going forward.

Added some more UI keys to the default key mappings documentation.
This commit is contained in:
Vas Crabb 2021-10-11 13:14:31 +11:00
parent 00a9f25e72
commit fd6309ee91
17 changed files with 818 additions and 849 deletions

View File

@ -30,7 +30,6 @@ and saving/loading save states.
**Tab**
Toggles the configuration menu.
Switches to the next UI panel.
**~** (tilde key)
Toggles the On-Screen Display.
@ -64,8 +63,6 @@ and saving/loading save states.
Highlight first UI menu option.
**End**
Select last UI menu option.
**Left Shift+Tab**
Select previous UI panel.
**Enter**/**Joystick 1 Button 1**
Select currently highlighted UI menu option.
**Space**
@ -73,10 +70,6 @@ and saving/loading save states.
**Delete**
Clear/reset to default when highlighting an entry on the input
configuration, cheat options, and plugin options pages.
**[**
UI Previous Group
**]**
UI Next Group
**P**
Pauses the emulated machine.
**Left Shift+P**
@ -203,8 +196,31 @@ and saving/loading save states.
keyboard as presented upon start by using
:ref:`-uimodekey<mame-commandline-uimodekey>`
**Escape**
Exits emulator.
Cancel current UI option.
Exit emulator, return to the previous menu, or cancel the current UI option.
.. _default-selmenu-keys:
System and software selection menus
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The system and software selection menus use additional controls
**Tab**
Moves keyboard/controller focus to the next UI panel.
**Shift+Tab**
Moves keyboard/controller focus to the previous UI panel.
**Left Alt+F**
Adds or removes the selected system or software list time from the favorites
list.
**Left Alt+E**
Exports the currently displayed list of systems.
**Left Alt+D**
Shows the full-size info viewer if info is available for the selected system
or software list item. (Shows information loaded by the data plugin from
external files, including history.xml and mameinfo.dat.)
**F1**
Audits system ROMs.
.. _default-arcade-keys:

View File

@ -65,7 +65,7 @@ local function populate_main_menu(buttons)
local rate = 60 / (button.on_frames + button.off_frames)
-- Round to two decimal places
rate = math.floor(rate * 100) / 100
local text = button.button.name .. ' [' .. rate .. ' Hz]'
local text = string.format(_('%s [%d Hz]'), _("input-name", button.button.name), rate)
local subtext = input:seq_name(button.key)
menu[#menu + 1] = {text, subtext, ''}
end
@ -100,7 +100,7 @@ end
-- Add/edit menus (mostly identical)
local function populate_configure_menu(menu)
local button_name = current_button.button and current_button.button.name or _('NOT SET')
local button_name = current_button.button and _("input-name", current_button.button.name) or _('NOT SET')
local key_name = current_button.key and manager.machine.input:seq_name(current_button.key) or _('NOT SET')
menu[#menu + 1] = {_('Input'), button_name, ''}
menu[#menu + 1] = {_('Hotkey'), key_name, ''}
@ -249,7 +249,7 @@ local function populate_button_menu()
for port_key, port in pairs(manager.machine.ioport.ports) do
for field_key, field in pairs(port.fields) do
if is_supported_input(field) then
menu[#menu + 1] = {field.name, '', ''}
menu[#menu + 1] = { _("input-name", field.name), '', '' }
inputs[#inputs + 1] = {
port_name = port_key,
field_name = field_key,

View File

@ -9,19 +9,20 @@ local function get_settings_filename()
end
local function initialize_button(settings)
if settings.port and settings.field and settings.key and settings.on_frames and settings.off_frames then
if settings.port and settings.mask and settings.type and settings.key and settings.on_frames and settings.off_frames then
local new_button = {
port = settings.port,
field = settings.field,
key = manager.machine.input:seq_from_tokens(settings.key),
on_frames = settings.on_frames,
off_frames = settings.off_frames,
counter = 0
}
local port = manager.machine.ioport.ports[settings.port]
local ioport = manager.machine.ioport
local port = ioport.ports[settings.port]
if port then
local field = port.fields[settings.field]
if field then
local field = port:field(settings.mask)
if field and (field.type == ioport:token_to_input_type(settings.type)) then
new_button.field = field.name
new_button.button = field
return new_button
end
@ -35,7 +36,8 @@ local function serialize_settings(button_list)
for index, button in ipairs(button_list) do
setting = {
port = button.port,
field = button.field,
mask = button.button.mask,
type = manager.machine.ioport:input_type_to_token(button.button.type),
key = manager.machine.input:seq_to_tokens(button.key),
on_frames = button.on_frames,
off_frames = button.off_frames

View File

@ -159,7 +159,6 @@ files {
MAME_DIR .. "src/frontend/mame/ui/slotopt.h",
MAME_DIR .. "src/frontend/mame/ui/sndmenu.cpp",
MAME_DIR .. "src/frontend/mame/ui/sndmenu.h",
MAME_DIR .. "src/frontend/mame/ui/starimg.ipp",
MAME_DIR .. "src/frontend/mame/ui/state.cpp",
MAME_DIR .. "src/frontend/mame/ui/state.h",
MAME_DIR .. "src/frontend/mame/ui/submenu.cpp",

File diff suppressed because it is too large Load Diff

View File

@ -364,7 +364,6 @@ enum ioport_type
IPT_UI_SHOW_PROFILER,
IPT_UI_TOGGLE_UI,
IPT_UI_RELEASE_POINTER,
IPT_UI_TOGGLE_DEBUG,
IPT_UI_PASTE,
IPT_UI_SAVE_STATE,
IPT_UI_LOAD_STATE,
@ -373,8 +372,7 @@ enum ioport_type
IPT_UI_DATS,
IPT_UI_FAVORITES,
IPT_UI_EXPORT,
IPT_UI_AUDIT_FAST,
IPT_UI_AUDIT_ALL,
IPT_UI_AUDIT,
// additional OSD-specified UI port types (up to 16)
IPT_OSD_1,

View File

@ -26,35 +26,29 @@ namespace ui {
namespace {
void *const ITEMREF_START = reinterpret_cast<void *>(std::uintptr_t(1));
void *const ITEMREF_START_FULL = reinterpret_cast<void *>(std::uintptr_t(1));
void *const ITEMREF_START_FAST = reinterpret_cast<void *>(std::uintptr_t(2));
} // anonymous namespace
menu_audit::menu_audit(mame_ui_manager &mui, render_container &container, std::vector<ui_system_info> &availablesorted, mode audit_mode)
menu_audit::menu_audit(mame_ui_manager &mui, render_container &container, std::vector<ui_system_info> &availablesorted)
: menu(mui, container)
, m_worker_thread()
, m_audit_mode(audit_mode)
, m_total((mode::FAST == audit_mode)
? std::accumulate(availablesorted.begin(), availablesorted.end(), std::size_t(0), [] (std::size_t n, ui_system_info const &info) { return n + (info.available ? 0 : 1); })
: availablesorted.size())
, m_unavailable(
std::accumulate(
availablesorted.begin(),
availablesorted.end(),
std::size_t(0),
[] (std::size_t n, ui_system_info const &info) { return n + (info.available ? 0 : 1); }))
, m_availablesorted(availablesorted)
, m_audited(0)
, m_current(nullptr)
, m_phase(phase::CONSENT)
{
switch (m_audit_mode)
{
case mode::FAST:
m_prompt[0] = util::string_format(_("Audit ROMs for %1$u machines marked unavailable?"), m_total);
break;
case mode::ALL:
m_prompt[0] = util::string_format(_("Audit ROMs for all %1$u machines?"), m_total);
break;
}
std::string filename(emulator_info::get_configname());
filename += "_avail.ini";
m_prompt[1] = util::string_format(_("(results will be saved to %1$s)"), filename);
m_prompt = util::string_format(_("Results will be saved to %1$s"), filename);
}
menu_audit::~menu_audit()
@ -66,11 +60,14 @@ void menu_audit::custom_render(void *selectedref, float top, float bottom, float
switch (m_phase)
{
case phase::CONSENT:
draw_text_box(
std::begin(m_prompt), std::end(m_prompt),
x, x2, y - top, y - ui().box_tb_border(),
ui::text_layout::CENTER, ui::text_layout::NEVER, false,
ui().colors().text_color(), UI_GREEN_COLOR, 1.0f);
if ((ITEMREF_START_FAST == selectedref) || (ITEMREF_START_FULL == selectedref))
{
draw_text_box(
&m_prompt, &m_prompt + 1,
x, x2, y2 + ui().box_tb_border(), y2 + bottom,
ui::text_layout::CENTER, ui::text_layout::NEVER, false,
ui().colors().text_color(), UI_GREEN_COLOR, 1.0f);
}
break;
case phase::AUDIT:
@ -79,11 +76,13 @@ void menu_audit::custom_render(void *selectedref, float top, float bottom, float
// it doesn't matter because we redraw on every frame anyway so it sorts itself out very quickly
game_driver const *const driver(m_current.load());
std::size_t const audited(m_audited.load());
std::string const text(util::string_format(
std::size_t const total(m_fast ? m_unavailable : m_availablesorted.size());
std::string const text(
util::string_format(
_("Auditing ROMs for machine %2$u of %3$u...\n%1$s"),
driver ? driver->type.fullname() : "",
audited + 1,
m_total));
(std::min)(audited + 1, total),
total));
ui().draw_text_box(container(), text, ui::text_layout::CENTER, 0.5f, 0.5f, UI_GREEN_COLOR);
}
break;
@ -92,8 +91,11 @@ void menu_audit::custom_render(void *selectedref, float top, float bottom, float
void menu_audit::populate(float &customtop, float &custombottom)
{
item_append(_("Start Audit"), 0, ITEMREF_START);
customtop = (ui().get_line_height() * 2.0f) + (ui().box_tb_border() * 3.0f);
if (m_unavailable && (m_availablesorted.size() != m_unavailable))
item_append(util::string_format(_("Audit ROMs for %1$u machines marked unavailable"), m_unavailable), 0, ITEMREF_START_FAST);
item_append(util::string_format(_("Audit ROMs for all %1$u machines"), m_availablesorted.size()), 0, ITEMREF_START_FULL);
item_append(menu_item_type::SEPARATOR, 0);
custombottom = (ui().get_line_height() * 1.0f) + (ui().box_tb_border() * 3.0f);
}
void menu_audit::handle()
@ -103,23 +105,21 @@ void menu_audit::handle()
case phase::CONSENT:
{
event const *const menu_event(process(0));
if (menu_event && (ITEMREF_START == menu_event->itemref) && (IPT_UI_SELECT == menu_event->iptkey))
if (menu_event && (IPT_UI_SELECT == menu_event->iptkey))
{
m_phase = phase::AUDIT;
m_worker_thread = std::thread(
[this] ()
{
switch (m_audit_mode)
if ((ITEMREF_START_FULL == menu_event->itemref) || (ITEMREF_START_FAST == menu_event->itemref))
{
m_phase = phase::AUDIT;
m_fast = ITEMREF_START_FAST == menu_event->itemref;
m_worker_thread = std::thread(
[this] ()
{
case mode::FAST:
audit_fast();
return;
case mode::ALL:
audit_all();
return;
}
throw false;
});
if (m_fast)
audit_fast();
else
audit_all();
});
}
}
}
break;
@ -127,7 +127,7 @@ void menu_audit::handle()
case phase::AUDIT:
process(PROCESS_CUSTOM_ONLY | PROCESS_NOINPUT);
if (m_audited.load() >= m_total)
if (m_audited.load() >= (m_fast ? m_unavailable : m_availablesorted.size()))
{
m_worker_thread.join();
save_available_machines();

View File

@ -25,9 +25,7 @@ namespace ui {
class menu_audit : public menu
{
public:
enum class mode { FAST, ALL };
menu_audit(mame_ui_manager &mui, render_container &container, std::vector<ui_system_info> &availablesorted, mode audit_mode);
menu_audit(mame_ui_manager &mui, render_container &container, std::vector<ui_system_info> &availablesorted);
virtual ~menu_audit() override;
protected:
@ -44,13 +42,13 @@ private:
void save_available_machines();
std::thread m_worker_thread;
mode const m_audit_mode;
std::size_t const m_total;
std::string m_prompt[2];
std::size_t const m_unavailable;
std::string m_prompt;
std::vector<ui_system_info> &m_availablesorted;
std::atomic<std::size_t> m_audited;
std::atomic<game_driver const *> m_current;
phase m_phase;
bool m_fast;
};
} // namespace ui

View File

@ -93,7 +93,7 @@ void menu_input_general::populate(float &customtop, float &custombottom)
item.group = entry.group();
item.type = ioport_manager::type_is_analog(entry.type()) ? (INPUT_TYPE_ANALOG + seqtype) : INPUT_TYPE_DIGITAL;
item.is_optional = false;
item.name = entry.name();
item.name = _("input-name", entry.name());
item.owner = nullptr;
// stop after one, unless we're analog
@ -165,7 +165,7 @@ void menu_input_specific::populate(float &customtop, float &custombottom)
item.group = machine().ioport().type_group(field.type(), field.player());
item.type = field.is_analog() ? (INPUT_TYPE_ANALOG + seqtype) : INPUT_TYPE_DIGITAL;
item.is_optional = field.optional();
item.name = field.name();
item.name = _("input-name", field.name());
item.owner = &field.device();
// stop after one, unless we're analog

View File

@ -742,13 +742,8 @@ void menu_select_game::handle()
}
break;
case IPT_UI_AUDIT_FAST:
if (m_persistent_data.unavailable_systems())
menu::stack_push<menu_audit>(ui(), container(), m_persistent_data.sorted_list(), menu_audit::mode::FAST);
break;
case IPT_UI_AUDIT_ALL:
menu::stack_push<menu_audit>(ui(), container(), m_persistent_data.sorted_list(), menu_audit::mode::ALL);
case IPT_UI_AUDIT:
menu::stack_push<menu_audit>(ui(), container(), m_persistent_data.sorted_list());
break;
}
}

View File

@ -17,7 +17,6 @@
// these hold static bitmap images
#include "ui/defimg.ipp"
#include "ui/starimg.ipp"
#include "ui/toolbar.ipp"
#include "audit.h"
@ -96,6 +95,7 @@ std::pair<char const *, char const *> const arts_info[] =
char const *const hover_msg[] = {
N_("Add or remove favorite"),
N_("Export displayed list to file"),
N_("Audit media"),
N_("Show DATs view"),
};
@ -438,8 +438,6 @@ menu_select_launch::cache::cache(running_machine &machine)
, m_snapx_driver(nullptr)
, m_snapx_software(nullptr)
, m_no_avail_bitmap(256, 256)
, m_star_bitmap(32, 32)
, m_star_texture(nullptr, machine.render())
, m_toolbar_bitmaps()
, m_toolbar_textures()
{
@ -450,10 +448,6 @@ menu_select_launch::cache::cache(running_machine &machine)
std::memcpy(&m_no_avail_bitmap.pix(0), no_avail_bmp, 256 * 256 * sizeof(uint32_t));
std::memcpy(&m_star_bitmap.pix(0), favorite_star_bmp, 32 * 32 * sizeof(uint32_t));
m_star_texture.reset(render.texture_alloc());
m_star_texture->set_bitmap(m_star_bitmap, m_star_bitmap.cliprect(), TEXFORMAT_ARGB32);
m_toolbar_bitmaps.resize(UI_TOOLBAR_BUTTONS);
m_toolbar_textures.reserve(UI_TOOLBAR_BUTTONS);
}
@ -1268,7 +1262,7 @@ void menu_select_launch::draw_toolbar(float x1, float y1, float x2, float y2)
y2 -= ui().box_tb_border();
// work out which buttons we're going to draw
constexpr unsigned SYS_TOOLBAR_BITMAPS[] = { TOOLBAR_BITMAP_FAVORITE, TOOLBAR_BITMAP_SAVE, TOOLBAR_BITMAP_INFO };
constexpr unsigned SYS_TOOLBAR_BITMAPS[] = { TOOLBAR_BITMAP_FAVORITE, TOOLBAR_BITMAP_SAVE, TOOLBAR_BITMAP_AUDIT, TOOLBAR_BITMAP_INFO };
constexpr unsigned SW_TOOLBAR_BITMAPS[] = { TOOLBAR_BITMAP_FAVORITE, TOOLBAR_BITMAP_INFO };
bool const have_parent = m_is_swlist || !stack_has_special_main_menu();
unsigned const *const toolbar_bitmaps = m_is_swlist ? SW_TOOLBAR_BITMAPS : SYS_TOOLBAR_BITMAPS;
@ -1332,9 +1326,16 @@ void menu_select_launch::draw_toolbar(float x1, float y1, float x2, float y2)
void menu_select_launch::draw_star(float x0, float y0)
{
float y1 = y0 + ui().get_line_height();
float x1 = x0 + ui().get_line_height() * container().manager().ui_aspect(&container());
container().add_quad(x0, y0, x1, y1, rgb_t::white(), m_cache.star_texture(), PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_PACKABLE);
if (TOOLBAR_BITMAP_FAVORITE < m_cache.toolbar_textures().size())
{
float const y1 = y0 + ui().get_line_height();
float const x1 = x0 + ui().get_line_height() * container().manager().ui_aspect(&container());
container().add_quad(
x0, y0, x1, y1,
rgb_t::white(),
m_cache.toolbar_textures()[TOOLBAR_BITMAP_FAVORITE].get(),
PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_PACKABLE);
}
}
@ -1760,6 +1761,11 @@ void menu_select_launch::handle_events(uint32_t flags, event &ev)
inkey_export();
stop = true;
}
else if (hover() == HOVER_B_AUDIT)
{
ev.iptkey = IPT_UI_AUDIT;
stop = true;
}
else if (hover() == HOVER_B_DATS)
{
inkey_dats();

View File

@ -199,7 +199,6 @@ private:
void set_snapx_software(ui_software_info const *software) { m_snapx_software = software; }
bitmap_argb32 &no_avail_bitmap() { return m_no_avail_bitmap; }
render_texture *star_texture() { return m_star_texture.get(); }
bitmap_vector const &toolbar_bitmaps() { return m_toolbar_bitmaps; }
texture_ptr_vector const &toolbar_textures() { return m_toolbar_textures; }
@ -213,8 +212,6 @@ private:
ui_software_info const *m_snapx_software;
bitmap_argb32 m_no_avail_bitmap;
bitmap_argb32 m_star_bitmap;
texture_ptr m_star_texture;
bitmap_vector m_toolbar_bitmaps;
texture_ptr_vector m_toolbar_textures;

View File

@ -1,49 +0,0 @@
// license:BSD-3-Clause
// copyright-holders:Maurizio Petrarota
#ifndef MAME_FRONTEND_UI_STARIMG_IPP
#define MAME_FRONTEND_UI_STARIMG_IPP
#pragma once
namespace ui {
namespace {
// TODO: move this to an external image file and zlib compress it into a souce file as part of the build process
uint32_t const favorite_star_bmp[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02D07A00, 0x15D07A00, 0x0FD07A00, 0x00D07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x76D27F04, 0xBFDA9714, 0xB9D78F0E, 0x4DD17B01, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3BD07A00, 0xFFE8B228, 0xFFFDEB50, 0xFFFBE34A, 0xD0E1A11C, 0x13D07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0BD07A00, 0xA0D48306, 0xFFFACE42, 0xFFFBCE45, 0xFFFCD146, 0xFFF2BD34, 0x67D07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x49D27E03, 0xE9EAAB26, 0xFFFDD044, 0xFFF9C741, 0xFFFAC942, 0xFFFED245, 0xD1DF9716, 0x27D07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xA2DB8D0F, 0xFFF6C236, 0xFFFAC740, 0xFFF8C53F, 0xFFF8C53F, 0xFFFDCB41, 0xF7F0B62E, 0x71D68308, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x31D07A00, 0xFFE7A420, 0xFFFDCA3F, 0xFFF8C23D, 0xFFF8C23D, 0xFFF8C23D, 0xFFF8C23D, 0xFFFCC83D, 0xE0E19818, 0x11D07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x08D07A00, 0x99D38004, 0xFFF9C237, 0xFFFAC43C, 0xFFF8BF3A, 0xFFF8BF3A, 0xFFF8BF3A, 0xFFF8BF3A, 0xFFFBC53C, 0xFFF1B32B, 0x63D07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01D07A00, 0x15D07A00, 0x24D07A00, 0x39D07A00, 0x4AD07A00, 0x79D48205, 0xE6E9A820, 0xFFFDC539, 0xFFF8BC37, 0xFFF8BC37, 0xFFF8BC37, 0xFFF8BC37, 0xFFF8BC37, 0xFFF9BD37, 0xFFFEC63A, 0xD8DF9613, 0x64D17C01, 0x3FD07A00, 0x2FD07A00, 0x1CD07A00, 0x0AD07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x04D07A00, 0x3BD07A00, 0x8BD07A00, 0xA5D17B01, 0xBFDA940F, 0xCEE1A317, 0xE2E7B622, 0xF4EDC229, 0xFFF1C62D, 0xFFFAC735, 0xFFFABC35, 0xFFF8B934, 0xFFF8B934, 0xFFF8B934, 0xFFF8B934, 0xFFF8B934, 0xFFF8B934, 0xFFFCBF36, 0xFFF7C733, 0xFCEFC52C, 0xE9EABB24, 0xD8E4AE1D, 0xC6DD9C13, 0xB4D58608, 0x99D07A00, 0x75D07A00, 0x20D07A00, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x01D07A00, 0xBBD78608, 0xFFE9AE1F, 0xFFF9D133, 0xFFFCD839, 0xFFFCD338, 0xFFFCCC36, 0xFFFCC333, 0xFFFCBB32, 0xFFF7B630, 0xFFF7B630, 0xFFF7B630, 0xFFF7B630, 0xFFF7B630, 0xFFF7B630, 0xFFF7B630, 0xFFF7B630, 0xFFF7B630, 0xFFF7B630, 0xFFF7B630, 0xFFFAB831, 0xFFFCC033, 0xFFFCC735, 0xFFFCD037, 0xFFFCD739, 0xFFFBD536, 0xFFF5C92F, 0xE8E4A318, 0x55D78507, 0x00000000, 0x00000000,
0x00000000, 0x13D07A00, 0xFFDF9212, 0xFFFABC2F, 0xFFF9B72F, 0xFFF8B32E, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B22D, 0xFFF7B32D, 0xFFF9B52E, 0xFFF9B92F, 0xFFF6B52A, 0xC1DB8B0D, 0x00000000, 0x00000000,
0x00000000, 0x07D07A00, 0xE6DC8B0E, 0xFFF4AB27, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFF7AF2A, 0xFFEFA421, 0xAAD9860A, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x5ED58005, 0xE8E39213, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF7AB26, 0xFFF4A925, 0xE2DC890C, 0x45D27C02, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x41D07A00, 0xE7E18F11, 0xFFF3A420, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFF6A823, 0xFFEFA11D, 0xE0DB880A, 0x35D07A00, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5DD47E03, 0xE6E08D0D, 0xFFF5A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF6A41F, 0xFFF3A11D, 0xDFDB8609, 0x4FD27C01, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x40D07A00, 0xE6E08A0C, 0xFFF29D19, 0xFFF6A01C, 0xFFF6A01C, 0xFFF6A01C, 0xFFF6A01C, 0xFFF6A01C, 0xFFF6A01C, 0xFFF6A01C, 0xFFF6A01C, 0xFFF6A01C, 0xFFF6A01C, 0xFFF6A01C, 0xFFF6A01C, 0xFFF6A01C, 0xFFF6A01C, 0xFFF6A01C, 0xFFF6A01C, 0xFFEE9917, 0xDDDA8407, 0x30D07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5BD37D02, 0xE6DF880A, 0xFFF59C18, 0xFFF69D18, 0xFFF69D18, 0xFFF69D18, 0xFFF69D18, 0xFFF69D18, 0xFFF69D18, 0xFFF69D18, 0xFFF69D18, 0xFFF69D18, 0xFFF69D18, 0xFFF69D18, 0xFFF69D18, 0xFFF69D18, 0xFFF69D18, 0xFFF29A16, 0xDCD98306, 0x49D17B01, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7BD07A00, 0xFFEF9311, 0xFFF69A15, 0xFFF59915, 0xFFF59915, 0xFFF59915, 0xFFF59915, 0xFFF59915, 0xFFF59915, 0xFFF59915, 0xFFF59915, 0xFFF59915, 0xFFF59915, 0xFFF59915, 0xFFF59915, 0xFFF69915, 0xFFE2890A, 0x3BD07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01D07A00, 0xA2D17B00, 0xFFF59612, 0xFFF69713, 0xFFF59612, 0xFFF59612, 0xFFF59612, 0xFFF59612, 0xFFF59612, 0xFFF59612, 0xFFF59612, 0xFFF59612, 0xFFF59612, 0xFFF59612, 0xFFF59612, 0xFFF59612, 0xFFF79712, 0xFFE98D0B, 0x4BD07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x14D07A00, 0xBED87F03, 0xFFF6940E, 0xFFF5930E, 0xFFF5930E, 0xFFF5930E, 0xFFF5930E, 0xFFF5930E, 0xFFF5930E, 0xFFF5930E, 0xFFF5930E, 0xFFF5930E, 0xFFF5930E, 0xFFF5930E, 0xFFF5930E, 0xFFF5930E, 0xFFF7940E, 0xFFF1900B, 0x7ED07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x27D07A00, 0xD1DE8205, 0xFFF8920C, 0xFFF5900C, 0xFFF5900C, 0xFFF5900C, 0xFFF5900C, 0xFFF5900C, 0xFFF5900C, 0xFFF5900C, 0xFFF5900C, 0xFFF5900C, 0xFFF5900C, 0xFFF5900C, 0xFFF5900C, 0xFFF5900C, 0xFFF6910C, 0xFFF5910C, 0xA5D27B01, 0x03D07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x40D07A00, 0xEAE48505, 0xFFFA9009, 0xFFF58D09, 0xFFF58D09, 0xFFF58D09, 0xFFF58D09, 0xFFF58D09, 0xFFF58D09, 0xFFF58D09, 0xFFF58D09, 0xFFF58D09, 0xFFF58D09, 0xFFF58D09, 0xFFF58D09, 0xFFF58D09, 0xFFF58D09, 0xFFF78E09, 0xC1D97F02, 0x17D07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x57D17B00, 0xFBE88504, 0xFFF78D06, 0xFFF48B06, 0xFFF48B06, 0xFFF48B06, 0xFFF48B06, 0xFFF48B06, 0xFFF38B06, 0xFFEC8705, 0xFFF18A06, 0xFFF48B06, 0xFFF48B06, 0xFFF48B06, 0xFFF48B06, 0xFFF48B06, 0xFFF48B06, 0xFFF88E06, 0xD6DF8102, 0x2CD07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x83D67D01, 0xFFED8503, 0xFFF48804, 0xFFF48804, 0xFFF48804, 0xFFF48804, 0xFFF28804, 0xFFEA8503, 0xCDDC7F02, 0x79D17B00, 0xA1D47C01, 0xEFE18102, 0xFFEE8604, 0xFFF38804, 0xFFF48804, 0xFFF48804, 0xFFF48804, 0xFFF88B04, 0xEFE58203, 0x46D07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xA0D87D01, 0xFFED8401, 0xFFF48602, 0xFFF48602, 0xFFF48602, 0xFFEF8501, 0xE9DE7F01, 0x8FD67D00, 0x23D07A00, 0x04D07A00, 0x0DD07A00, 0x46D07A00, 0xC3D97D01, 0xFFE28001, 0xFFF38602, 0xFFF48602, 0xFFF48602, 0xFFF58702, 0xFDE88201, 0x59D17A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5FD47B00, 0xF3E58000, 0xFFF18400, 0xFFED8200, 0xDEE07F01, 0x90D37B00, 0x1FD07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01D07A00, 0x3BD07A00, 0xBDD67C00, 0xF2E48000, 0xFFEF8300, 0xFFF08300, 0xDEDF7E01, 0x34D07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10D07A00, 0x71D57C00, 0xD2DB7D00, 0x9AD87C00, 0x34D07A00, 0x0AD07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x13D07A00, 0x52D27B00, 0xBBD97D00, 0xCBDA7D00, 0x5DD27B00, 0x0AD07A00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
};
} // anonymous namespace
} // namespace ui
#endif // MAME_FRONTEND_UI_STAR_IPP

View File

@ -25,10 +25,19 @@ char const *const toolbar_icons_svg[] = {
"<path fill='#e7e7e7' d='m 11,48 a 3,3 0 0,1 3,-3 h 72 a 3,3 0 0,1 3,3 v 40 h -78 z' />"
"<path fill='#f71f1f' d='m 11,87 h 78 v 9 a 3,3 0 0,1 -3,3 h -72 a 3,3 0 0,1 -3,-3 z' />"
"</svg>",
// audit magnifying glass
u8"<?xml version='1.0' encoding='UTF-8' standalone='no'?>"
"<svg xmlns:svg='http://www.w3.org/2000/svg' xmlns='http://www.w3.org/2000/svg' version='1.1' height='100' width='100'>"
"<path fill-opacity='0' stroke='#bfbfbf' stroke-linecap='butt' stroke-width='8' d='m 68,68 -10,-10' />"
"<path fill-opacity='0' stroke='#cf8f3f' stroke-linecap='round' stroke-width='16' d='m 92,92 -22,-22' />"
"<circle cx='36' cy='36' r='36' fill='#cfcfcf' />"
"<circle cx='36' cy='36' r='30' fill='#9ebeff' />"
"<path fill-opacity='0' stroke='#b9cef7' stroke-linecap='round' stroke-width='10' d='m 16,36 a 20,20 0 0,1 20,-20' />"
"</svg>",
// info
u8"<?xml version='1.0' encoding='UTF-8' standalone='no'?>"
"<svg xmlns:svg='http://www.w3.org/2000/svg' xmlns='http://www.w3.org/2000/svg' version='1.1' height='100' width='100'>"
"<circle cx='50' cy='50' r='47' fill='#001fff' stroke='#001bdf' stroke-width='6' />"
"<circle cx='50' cy='50' r='47' fill='#001fff' stroke='#3f56ff' stroke-width='6' />"
"<circle cx='50' cy='20' r='10' fill='#ffffff' />"
"<path fill='#ffffff' d='m 59,38 v 34 a 10,4 0 0,0 10,4 v 8 h -36 v -8 a 10,4 0 0,0 10,-4 v -23 a 8,4 0 0,0 -8,-4 v -6 z' />"
"</svg>",
@ -51,6 +60,7 @@ enum
{
TOOLBAR_BITMAP_FAVORITE,
TOOLBAR_BITMAP_SAVE,
TOOLBAR_BITMAP_AUDIT,
TOOLBAR_BITMAP_INFO,
TOOLBAR_BITMAP_PREVMENU,
TOOLBAR_BITMAP_EXIT

View File

@ -376,6 +376,7 @@ enum
HOVER_ARROW_DOWN,
HOVER_B_FAV,
HOVER_B_EXPORT,
HOVER_B_AUDIT,
HOVER_B_DATS,
HOVER_BACKTRACK,
HOVER_RPANEL_ARROW,

View File

@ -200,10 +200,6 @@ void sdl_osd_interface::customize_input_type_list(std::vector<input_type_entry>
entry.configure_osd("TOGGLE_FILTER", "Toggle Filter");
entry.defseq(SEQ_TYPE_STANDARD).set(KEYCODE_F5, KEYCODE_LCONTROL);
break;
// add a Not lcrtl condition to the toggle debug key
case IPT_UI_TOGGLE_DEBUG:
entry.defseq(SEQ_TYPE_STANDARD).set(KEYCODE_F5, input_seq::not_code, KEYCODE_LCONTROL);
break;
// LCTRL-F6 to decrease OpenGL prescaling
case IPT_OSD_6:

View File

@ -156,10 +156,6 @@ void windows_osd_interface::customize_input_type_list(std::vector<input_type_ent
entry.configure_osd("POST_PROCESS", "Toggle Post-Processing");
entry.defseq(SEQ_TYPE_STANDARD).set(KEYCODE_F5, KEYCODE_LALT, KEYCODE_LCONTROL);
break;
// add a NOT-lctrl-lalt to our default F5
case IPT_UI_TOGGLE_DEBUG: // emu/input.c: input_seq(KEYCODE_F5)
entry.defseq(SEQ_TYPE_STANDARD).set(KEYCODE_F5, input_seq::not_code, KEYCODE_LCONTROL, input_seq::not_code, KEYCODE_LALT);
break;
// leave everything else alone
default: