summaryrefslogtreecommitdiffstatshomepage
path: root/src/frontend
Commit message (Collapse)AuthorAgeFilesLines
* ui/menu.cpp: Better handling of active pointers when resetting items.release0288 Vas Crabb11 hours1-1/+2
| | | | | | | Fixes items showing hovered state when they shouldn't. Not a regression, but more visible now than previously due to other changes. Also improved some metadata.
* frontend/mameopts.cpp: Fall back to settings from INI files later in the ↵ Vas Crabb13 days1-17/+32
| | | | | | search path. (#15310) util/options.cpp: Make earlier INI files take precedence over later INI files at the same priority level.
* ui: Improved media control experience, cleaned up a lot of bad code. Vas Crabb13 days17-799/+980
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ui/imgcntrl, ui/floppycntrl.cpp: Completely reworked logic - backtracking through menus is more intuitive, and more context is retained when encountering an error (it should be a bit easier to follow the code as well). ui/floppycntrl.cpp: Don't show the initial content selection menu when opening an image to read from while writing to a separate file. ui/filecreate.cpp: Moved the logic to enumerate floppy formats into the menu, use headings and separators, use callbacks to notify when an item is selected, don't pop menus when an item is selected, avoid actual work in destructors. ui/midiinout.cpp: Fixed infinite growth when repopulating the menu, don't pop the menu when a port is chosen, use a callback to notify that a port is chosen, use headings and separators, and in informative placeholder if no ports are available. ui/filesel.cpp: Don't show the option to write to a floppy diff (it still isn't implemented, it can be re-added if it's ever implemented), don't pop the menus when selecting an item, avoid actual work in destructors. ui/filemngr.cpp: Show more detail in the info box below the menu for software items and presets, substantially simplified the code for walking media devices. ui/info.cpp: Got rid of the media information menu, added media information to the system information menu. ui/menu.cpp: Allow immediately adjusting the hovered item with pen/mouse, saving a click. emu/ioport: Fixed incorrect strings displayed for 4C_5C, 3C_4C, 2C_3C and 3C_5C. The array absolutely must stay in order. Also added an assertion to catch these errors early. emu/ioport.cpp: Use a much less gross method of handling default strings (apparently someone forgot about function overloading). emu/ioport.cpp: Retired the crosshair mapper member macros - they don't serve much purpose. util/zippath.cpp: Actually report a failure to open a plain file rather than looking for files inside non-existent archives, making every error turn into "file not found". formats/flopimg.cpp: Allow matching extensions on string object names, rather than requiring a NUL-terminated string.
* frontend/mame/clifront.cpp: Honour -noreadconfig for command line verbs. Vas Crabb2026-05-051-5/+8
|
* cinematronics/leland.cpp: Better default trackball sensitivity. Vas Crabb2026-05-051-2/+1
| | | | | | | New working clones ------------------ Ketsui: Kizuna Jigoku Tachi (IKD 2007 Special - 2007 Cave Matsuri Version) [anonymous]
* ui/ui.cpp: Fixed variable name auto-complete gone wrong. Vas Crabb2026-05-043-30/+27
| | | | Also cleaned up a bunch of recent changes.
* ui/confswitch.cpp, ui/sliders.cpp: De-emphasize default values. (#15283) holub2026-05-043-7/+12
| | | Matches the input assignment and audio effects menus.
* frontend/mame/luaengine.cpp, ui: Patched up some rather disturbing code. Vas Crabb2026-05-039-20/+46
|
* ui: Added options to pause when showing menus and to open menus in active ↵ Vas Crabb2026-05-03114-754/+883
| | | | | | | | | | | | | window. * ui/ui.cpp: Dim all windows when paused. * ui/ui.cpp, menu/menu.cpp, ui/viewgfx.cpp: Broke assumption that UI elements will be drawn in the first window. * menu/menu.cpp: Allow menus to migrate between windows on activation. * ui/ui.cpp, ui/moptions.cpp, ui/submenu.cpp: Added an option to automatically pause when a menu is displayed. * Added an option to open menus in the most recently active window (alos affcts the profiler, speed display and popup messages).
* -dynax/ddenlovr.cpp: Added proper inputs for Royal Selection. Vas Crabb2026-05-015-30/+20
| | | | | | | | | | | -frontend/mame/luaengine.cpp: Removed some deprecated stuff. -itech/itech32.cpp: BloodStorm doesn't have a space in most uses. -shared/mahjong.cpp: Exposed base mahjong matrix panel class to simplify creating devices that are essentially mahjong panels with weird labels. -ui.ui.cpp, ui/menu.cpp: Started untangling some stuff.
* ui: Rationalised use of menu item flags: Vas Crabb2026-04-2915-85/+112
| | | | | | | | | | | | | * Renamed FLAG_INVERT to FLAG_DEEMPHASIZE to better reflect what it does. The Lua equivalent "invert" has not been changed because it will likely break external scripts. * ui/inputmap.cpp: De-emphasise inherited values, matching the behaviour of the audio effect menus. * ui/menu.cpp: De-emphasise the main item text for de-emphasised items without sub-text and for items that are both disabled and de-emphasised. This makes items with inherited values visually distinct from disabled items while not affecting [ab]use of disabled items for informational text.
* ui/submenu.cpp: Fixed potential crash in Video Options menu on Windows. Vas Crabb2026-04-041-21/+27
|
* frontend/mame/luaengine_debug.cpp: Got rid of another wannabe std::span. Vas Crabb2026-04-031-12/+3
| | | | | debugger/qt/deviceinformationwindow.cpp: Fixed another C++20 thing that apparently only breaks with some compiler/OS/Qt version combinations.
* Switched language standard to C++20, bumped compiler requirement to GCC 11. ↵ Vas Crabb2026-04-021-9/+11
| | | | | | | | | | | (#15182) * Hackery to allow UTF-8 strings as well as plain strings: - emu/ioport.h: Allow char8_t for names in field configuration helper. - emu/device.h, emu/gamedrv.h: Allow char8_t for descriptions and manufacturers. - util/language.h: Allow char8_t message input. * util/strformat.h: Allow char8_t format and string arguments with char output. * ui/videoopt.cpp: Deal with UTF-8 strings as a distinct type. * osd/windows: Assume Windows 8 or later.
* Fixed things C++20 doesn't allow: Vas Crabb2026-03-294-16/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ui/info.cpp, imagedev/cassette.cpp: Deal with UTF-8 strings as a distint type. ui/inputmap.cpp, debugger/qt/dasmwindow.cpp, debugger/qt/mainwindow.cpp, sound/coreaudio_sound.cpp, cpu/drcbec.cpp, mit/tx0_v.cpp, konami/3dom2.cpp: machine/mc68328.cpp, cpu/mips/mips1.cpp, cpu/mips/r4000.cpp, cpu/romp, machine/cammu.cpp, machine/ns32081.cpp: Avoid arithmetic between different enum types. dec/pdp1.cpp, konami/firebeat.cpp, mit/tx0.cpp, sound/lc7535.cpp, sound/spkrdev.cpp: Avoid arithmetic between enum and floating point. gaelco/gaelco3d_m.cpp: Fixed deprecated uses of volatile variables. sound/discrete.h: Avoid comparing enum to floatint point. ui/toolbar.ipp: Don't use UTF-8 qualifier on pure ASCII strings, just assume char is ASCII-like. cpu/unsp: Use default constructor for compiler_state. sgi/pm2_mmu.cpp: Avoid conflict between file static access and identically named function in unistd.h. osd/interface/audio.h: Provide an explicit constructor. util/server_http_impl.hpp: Fixed uninitialised class member warning.
* frontend/mame/clifront.cpp: add pattern explainations for -listbios angelosa2026-03-251-2/+2
|
* Fixed various things that C++20 doesn't allow: Vas Crabb2026-03-253-21/+8
| | | | | | | | * cpu/i386/i386dasm.cpp, frontend/mame/infoxml.cpp, dec/pdp1_v.cpp: Avoid arithmetic between different enum types. * frontend/mame/cheat.cpp: Default-construct XML parser options. * emu/validity.cpp: Avoid use of volatile assignement result as value. * ui/devopt.cpp: UTF-8 strings will use a distinct character type.
* -emu/dislot.cpp: Cleaned up interface. Vas Crabb2026-03-2210-46/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Added a helper for the common operation of replacing all options, setting default, and setting whether the slot is fixed (reduced boilerplate in slot devices a bit). * Fixed a bug where slot options copied the supplied name but also required the string to remain valid for their lifetime. * Use std::string_view for strings that should never be null. * Reduced some duplication. -dynax/ddenlovr.cpp: Allow a mahjong panel to be connected for all hanafuda games with slotted control panels. This is how the games were operated most of the time, and all mahjong controls are displayed in input tests. Also cleaned up some DIP switch settings. -emu/inpttype.h: Got rid of IPT_GAMBLE_SERVICE. -bus/bk/parallel.h: Fixed a bug where the supplied options and default weren't actually used. -emu/debug/debugcmd.cpp: Use C++ file stream for dumping address maps. -frontend/mame/clifront.cpp: Use osd_printf_info output for interactive verbs. -jaleco/ms32.cpp: Simplified mahjong panel column permutation. -capcom/cps1bl_5205.cpp, mattel/juicebox.cpp, sun/sun2.cpp, sun/sun3.cpp: Cleaned up logging. -emu/xtal.cpp: Reduced temporary objects and duplicated code.
* ui: include fastforward in unthrottle_mute, hap2026-03-113-69/+67
| | | | sound: don't send sound to osd if mute reason is ui related
* emu/diimage.cpp: Notify on changing preset images. Vas Crabb2026-02-273-28/+30
| | | | ui/filemngr.cpp, ui/prscntrl.cpp: Fixed some cosmetic issues.
* ui/miscmenu.cpp: Don't crash on the network devices menu when there are no ↵ Vas Crabb2026-02-211-3/+8
| | | | network interfaces (GitHub #14959).
* video/vector.cpp, frontend/mame/luaengine.cpp: Refactored recently-added Lua ↵ MooglyGuy2026-02-201-31/+65
| | | | hooks for vector devices. (#14991)
* Added LUA bindings for vector-screen interfaces. David W Plummer2026-02-091-0/+32
| | | - screen.cpp: Added a callback mechanism to expose vector drawing to the LUA interface, allowing external hardware devices to interface with MAME's vector rendering code. [Dave Plummer]
* ui: only sleep if no frame update after prev commit, hap2026-02-072-4/+8
| | | | confswitch: add message if menu is empty
* ui: add throttled frame update to another startup event loop and sleep for 1ms hap2026-02-072-17/+17
|
* frontend/mame/ui/ui.cpp: limit frame updates on initial gameinfo/warning ↵ angelosa2026-02-061-1/+11
| | | | screens, avoid host CPU/GPU resource spiking [Angelo Salese, hap]
* Mostly cleanup and housekeeping: Vas Crabb2026-01-311-13/+13
| | | | | | | | * uismall.bdf: Added nine extended Latin and IPA characters, added CC0-1.0 license comment. * ui/submenu.cpp: Made hide_romless text clearer. * README.md, docs: Updated/removed dead links. * Lots of ATTR_COLD and some code cleanup.
* frontend/mame/luaengine.h: Turn on sol's "safe numerics". Vas Crabb2026-01-251-0/+1
|
* Revert "LUA: Fixing an issue setting float options (#14843)" Vas Crabb2026-01-241-5/+10
| | | | | | | This reverts commit 19ae7a99fc00b54809781f0171ec1c18d1e05e41. The basic premise of the PR is wrong, and what it supposedly "fixes" works fine without the change.
* LUA: Fixing an issue setting float options (#14843) npwoods2026-01-241-10/+5
| | | | | | | | | LUA only has a `number` type, and as such currently the handler for options of type `int` is going to intercept floating point numbers, even if they can't be cast to integers. This can be reproduced with the following command: ``` manager.options.entries['beam_dot_size']:value(2.5) ``` With this change, there is a single handler for LUA type `number` that takes a `float` and can set integer options provided that the `float` can be represented as an `int` losslessly.
* ibm5170.xml, ibm5170_cdrom.xml, zx81_cass.xml: Start converting "usage" info ↵ AJR2026-01-221-0/+2
| | | | and comments into new "required_ram" and "required_os" info
* LUA: Ensuring that `entry:default_value()` returns the correct type (#14825) npwoods2026-01-191-1/+17
| | | | | | | | | | `entry:default_value()` was always returning string. A consequence of this problem is that the following LUA commands would error ``` manager.options.entries['beam_dot_size']:value(manager.options.entries['beam_dot_size']:default_value()) manager.options.entries['frameskip']:value(manager.options.entries['frameskip']:default_value()) ``` With this change, `default_value()` will return objects of the correct type
* ui/submenu.cpp: Use "classic" locale for numeric conversions, suppor UI ↵ Vas Crabb2026-01-131-22/+50
| | | | | | | | Clear to set default. Note that setting the default just sets the option to its default value at "command line" priority - the options system doesn't support peeling off a layer.
* -util/options.cpp: Shuffled numeric option conversions: Vas Crabb2026-01-131-30/+6
| | | | | | | | | * Moved float/integer conversions into the option entries themselves. * Fixed another bug where float values would be converted to strings with the global local, but converted from strings using the "classic" locale. * frontend/mame/luaengine.cpp: Got rid of duplicated numeric options conversion code.
* frontend/mame/luaengine.cpp: Better handling of options: Vas Crabb2026-01-131-31/+62
| | | | | | * Use "classic" locale for numeric conversions. * Don't use capturing lambdas. * Put integer overload of value() before float overload.
* kenseim.lay: tweak colors a bit, hap2026-01-091-1/+0
| | | | | k28o.xml: update notes, snread.xml: correct company for newer modules
* ui/pluginopt.cpp: Fixed declaration/expression abiguity upsetting some ↵ Vas Crabb2026-01-061-3/+3
| | | | compilers.
* -plugins/inputmacro: Added support for non-wrapping analog inputs. Vas Crabb2026-01-064-25/+39
| | | | | | | | -emu/inputdev.cpp, emu/emuopts.cpp: Removed core off-screen reload hack now that the same thing can be achieved more flexibly with plugins. -ui/pluginopt.cpp: Changed the "previos menu" item text to make what it does more obvious.
* adp/manohman.cpp: Use English DIP switch setting labels. Vas Crabb2025-12-191-2/+2
|
* Added `tag` attribute to Info XML `<device_ref>` elements (#14641) npwoods2025-12-141-1/+2
| | | | * Added `tag` attribute to Info XML `<device_ref>` elements * Added entry in DTD for `<device_ref tag="...">`
* ui: add speaker channels to gameinfo panel hap2025-12-092-8/+71
|
* frontend/mame/luaengine.cpp: Refactored machine:side_effects_disabled() as a ↵ holub2025-12-041-1/+1
| | | | method instead of property. (#14626)
* mame/luaengine.cpp: Access machine.side_effects_disabled (#14621) holub2025-12-021-0/+1
|
* sega/model2_v.cpp: Pre-bind render callback delegates. Vas Crabb2025-10-311-2/+2
| | | | Also cleaned up a bunch of code.
* luaengine_input.cpp: Export minvalue and maxvalue for IPT_ADJUSTER. (#14317) m1macrophage2025-10-111-2/+4
|
* frontend/mame/luaengine_input.cpp: Allow configuring analog input ↵ Vas Crabb2025-10-081-45/+199
| | | | adjustments from scripts.
* Remove PORT_ROTATED from the core. This automatic joystick remapping feature ↵ ajrhacker2025-09-251-1/+0
| | | | has not been enabled in any driver for years. (#14200)
* emu/ioport.cpp: Removed the "optional" field flag. Vas Crabb2025-09-224-30/+1
| | | | | | | | | | | | | | | | | | | | | | There are multiple issues with this flag: * It's poorly defined. Is it an input that's software-accessible but not used? Is it an input that shows in test modes but doesn't do anything useful? Is it an input that the system can be configured to not use? Is it an input that is useful but not strictly necessary? * In almost a decade, it hasn’t been used widely. It was used in less than ten places. There hasn't been substantial interest in actually applying it across the codebase. * It would be an absolute nightmare to try and apply to mahjong and hanafuda games. Consider all the cases where a game may use some but not all of the double-up game controls, and some games support multiple control schemes that use different subsets of the standard mahjong matrix. * Trying to apply it to gambling systems would also be a minefield. * If we were to expect it to be applied, it would cause an eplosion in input port definitions for platforms with multiple games, adding further maintenance burden. It would greatly reduce the value of having things like the standard mahjong panel definitions as you'd rarely actually be able to use them as-is.
* uicmd14.md: add newline hap2025-09-151-1/+1
|
* uicmd14: add copyright info hap2025-09-151-0/+4
|