path: root/src/frontend/mame
Commit message (Collapse)AuthorAgeFilesLines
* A little more refactoring, and Coverity fixes: Vas Crabb7 days8-51/+38
| | | | | | | | | | * emu/ioport.h: Marked PORT_RESET deprecated. * emu/rendlay.cpp: Removed old dot matrix components. * emu/rendlay.cpp: Added warning message for reel components. * Changed a few more fruit machines to eliminate reel components; also made the reel lamps simpler and more efficient in these layouts. * emu, frontend: Fixed various errors reported by Coverity, one of which actaully breaks stuff.
* frontend: Fixed another case where the system selection menu could get ↵ Vas Crabb8 days1-3/+9
| | | | confused when changing filters.
* -frontend: Fixed crashes switching between favourites and other filters. Vas Crabb9 days3-13/+26
| | | | | | | * Also made the system and software selection menus a bit less eager to reselect the first item. -docs: Bumped documentation version to 0.238.
* emu/render.cpp, emu/rendlay.cpp: Added scroll support for all elements. Vas Crabb14 days1-17/+55
* frontend: Show more unemulated/imperfect features per-device in warnings menu. Vas Crabb2021-11-172-101/+157
* frontend: Various minor improvements. Vas Crabb2021-11-1412-150/+267
| | | | | | | | | | | | | | | | | | | Made a few more menus reset values to the default in response to the UI clear input. Made the minimum info text size less unreasonable, and fixed a locale issue in the font/size selection menu when parsing option strings. Made the keyboard mode menu toggle items on double click or UI select. Made the menuless sliders menu remember the last slider shown (this probably broke when sliders were moved out of the UI manager itself). Made a few menus just update the highlighted options when it's adjusted rather than unnecessarily rebuilding the menu. Made a few more menus reset on being reactivated to cope with scripts or other things changing stuff out from under them.
* -osd/windows: Fixed stupid potential deadlock on exit. Vas Crabb2021-11-1316-108/+113
| | | | | -frontend: Some changes to menu item class that will make it possbile to reduce the number of menu rebuilds.
* -stv.cpp: Removed most run time I/O port lookups and removed PORT_RESET. Vas Crabb2021-11-104-16/+12
| | | | | | | | | | | * IOGA port G counter reset is emulated correctly now. * Increased sensitivity for patocar trackball – it seemed too slow with mouse or analog stick. -frontend: Handle analog controls with high sensitivity numbers better. -arcadia.cpp: Removed commented PORT_RESET - it makes no sense for joysticks anyway.
* frontend: Added input provider module options to menu, worked around machine ↵ Vas Crabb2021-11-092-20/+34
| | | | options not showing modules.
* -frontend: Don't inappropriately truncate text in menu text boxes. Vas Crabb2021-11-082-22/+28
| | | | -osd/windows: Handle WM_UNICHAR.
* frontend: Allow cycling modifiers for an absolute axis by pressing ↵ Vas Crabb2021-11-062-6/+33
| | | | repeatedly without going through an append step.
* frontend: Remove no-longer-needed member of save/load state menu. Vas Crabb2021-11-061-1/+0
* -Enabled complex combinations for analog axes: Vas Crabb2021-11-0622-225/+370
| | | | | | | | | | | | | | | | | | | | | | | | * Made it possible to add digital controls to axis settings as enables. * Mix multiple analog controls assigned to an axis setting. * Added a "reverse" modifier for analog controls (useful with mixing). * Fixed an issue assigning mouse axes using multiple mouse-like devices with -nomultimouse. -frontend: More cleanup: * Got rid of some abuse of "special main menus". * Added a helper class for auto-pause menus that don't spawn submenus. * Got rid of the fake menu that schedules an exit on the first frame. * Turned the confirm quit prompt into a menu, eliminated one more special-cased event loop. * Fixed the confirm quit prompt resuming if you return to emulation if you weren't paused to begin with. -bus/centronics: Fixed conflicting DIP locations, reversed order and inverted polarity for Epson printers. * Also added the LX-810 (without L suffix) DIP switches for reference - we don't have a device for this printer yet.
* frontend: Don't let the non-menus get as far as trying to draw. Vas Crabb2021-11-042-19/+28
* -emu/ioport.cpp: Fixed some default setting handling issues. Vas Crabb2021-11-042-26/+40
| | | | | | | | | | | | | | | | | | | | | | * Issues were unlikely to actually manifest unless you use controller configuration files to change specific system input defaults. -src/emu/output.h: Added size accessor to multi-element output finder. * std::size will work on the top rank of an outut finder now. Sorry for hitting emu.h again so soon. -lua: Exposed a couple more input related things. * Exposed constructor and a few methods on input_seq required for scripts to properly clear assignments or restore default settings. * Exposed ioport_manager::set_type_seq which is required to configure general input assignments properly. * Removed unnecessary use of sol::overload in favour of optional parameters. * Updated documentation and also fixed a few errors. -docs: Added description for axis setting assignments.
* -emu/ioport.cpp: Made default behaviour better. Vas Crabb2021-11-031-4/+5
| | | | | | | | | | | | | | | * If an input is configured to some combination of controls that are not present at all, ignore the setting altogether for the session. * Fixed relative axes with PORT_RESET not responding to absolute controls (MT07685). * Fixed relative axes not responding to an absolute control if the value doesn’t change every frame (eg. holding a stick against the stop). * Changed the scaling for absolute controls assigned to relative axes to make defaults more sane (e.g. arkanoid or spdheat with a joystick). -frontend: Fixed some localisation issues in Analog Controls menu. -docs: Added documentation on assigning inputs.
* -emu/ioport.cpp: Fixed "MAME lost my joystick settings!!!1!11! Vas Crabb2021-11-034-13/+36
| | | | -plugins: Gave the timecode plugin an option to count emulated frames.
* plugins: Moved the timecode recording functionality to a plugin. Vas Crabb2021-11-024-55/+40
* Fix various usability issues: Vas Crabb2021-11-0213-206/+411
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | frontend: Made it so you can press UI On Screen Display to hide the Analog Controls menu and see the response to your inputs without the risk of changing settings, and see more axes at once and scroll them for systems with very large number of axes. Also ensure the axis being configured is visible when the menu is visible, and made the menu behave a bit more like the system input assignments menu (including previous/next group navigation). frontend: Allow Lua to draw to the UI container - this addresses the main complaint in #7475. Note that drawing to the UI container will draw over any UI elements, including menus. Plugins can check menu_active to avoid drawing over menus. Also removed some unnecessary use of sol::overload. frontend: Improved info/image box navigation on the system/softwre selection menus, and cleaned up some leftover code that came from the copy/pasted event handling functions. frontend: Fixed sliders menu not handling Alt+Shift as intended (thanks Coverity). Fixed a couple of harmless Coverity errors, too. emu/inpttype.ipp: Made the default assignment for Save State recognise right shift. plugins: Added next/previous group navigation to input macro edit menu. docs: Added basic description of the system and software selection menus, and corrected a couple of errors in the Lua reference.
* frontend: Make all the textbox menus use the custom navigation flag, on the ↵ Vas Crabb2021-10-314-2/+6
| | | | off chance they become scrollable somehow.
* -frontend: Refactored menu event handling and fixed a number of issues. (#8777) Vas Crabb2021-10-3183-2004/+1928
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Moved common code for drawing about box, info viewer, and other text box menus to a base class; removed the last of the info viewer logic and the multi-line item hack from the base menu class. * Added previous/next group navigation for general inputs and plugin input selection menus. * Moved message catalog logic to lib/util, allowing osd and emu to use localised messages. * Made the base menu class use the UI manager’s feature for holding session state rather than a static map and mutex. * Improved menu event handling model, and fixed many issues, particularly with menus behaving badly when hidden/shown. * Added better support for menus that don’t participate in the usual menu stack, like the menuless sliders and the save/load state menus. * Made a number of menus refresh state when being shown after being hidden (fixes MT08121 among other issues). * Fixed indication of mounted slot option in the slot option details menu. * Improved appearance of background menus when emulation isn't running - draw all menus in the stack, and darken the background menus to make the edges of the active menu clearer. * Fixed locale issues in -listxml. -debugger: Made GUI debuggers more uniform. * Added new memory view features to Win32 debugger. * Fixed spelling of hexadecimal in Cocoa debugger and added decimal address option. * Fixed duplicate keyboard shortcut in Cocoa debugger (Shift-Cmd-D was both new device window and 64-bit float format). * Made keyboard shortcuts slightly more consistent across debuggers. -plugins: Moved input selection menu and sequence polling code to a common library. Fixed the issue that prevented keyboard inputs being mapped with -steadykey on. -docs: Started adding some documentation for MAME's internal UI, and updated the list of example front-ends. -Regenerated message catalog sources. For translators, the new strings are mostly: * The names of the inputs provided by the OS-dependent layer for things like fullscreen and video features. These show up in the user interface inputs menu. * The names for automatically generated views. These show up in the video options menu - test with a system with a lot of screens to see more variants. * The input macro plugin UI. * A few format strings for analog input assignments. * A few strings for the about box header.
* selmenu: fix wrongly placed messagebox hap2021-10-291-5/+6
* srcclean in preparation for branching 0.237 release Vas Crabb2021-10-241-8/+8
* plugins/timer: Fixed ticking when menu is left on the screen. Vas Crabb2021-10-221-7/+9
* Plugin usability improvements: Vas Crabb2021-10-225-41/+91
| | | | | | | | | | * autofire, inputmacro: Made left/right repeat when held (makes setting long delays/durations easier). * autofire, inputmacro: Added headings for devices in input selection menus (helps when controller buttons have identical names, e.g. AES) * autofire: Made intial selection when moving between menus intuitive, log some errors on saving/loading configuration. * autofire: Fixed two errors in Chinese localisations.
* frontend: Fixed untranslated info box title appearing on system/software ↵ Vas Crabb2021-10-211-5/+5
| | | | selection menus (#8731).
* frontend: Beter provision for plugins with multiple menu levels. Vas Crabb2021-10-214-19/+27
| | | | | | | | | Make it possible for a plugin to specify which item should be selected on repopulate. Also allowed plugins to specify the UI heading flag for menu items. Updated input macro plugin to select sane items when changing menus. Other plugins not updated yet, but may be at some point in the future.
* -plugins: Added an input macro plugin. Vas Crabb2021-10-211-3/+3
| | | | | | | -plugins: Sort input selection menus for autofire plugin. -frontend: Fixed another case where the menus may not automatically scroll the first item into view.
* frontend: Don't show plugin options menu in main menu before start - it ↵ Vas Crabb2021-10-201-3/+5
| | | | doesn't work anyway.
* Tie up a few loose ends: Vas Crabb2021-10-205-42/+43
| | | | | | | | | | | debugger: Octal cheats for octal address spaces. frontend: Pass events for automatically generated menu items to the plugin - they will have index zero. frontend: Don't try calling the data plugin from the main menu if the system isn't starting yet - doing so will prevent the data plugin from loading at all.
* -docs: Documented debugger's built-in functions for expressions. Vas Crabb2021-10-192-1/+2
| | | | -Fixed a couple of coverity warnings.
* -debugger: Finished updating commands and documentation. Vas Crabb2021-10-193-19/+33
| | | | | | | | | | | | | | | | | * Updated cheat commands to work with arbitrary devices and address spaces. You can still only search RAM areas in a single address space at a time, but any address space of any device can be used now. * Made the cheatinit/cheatrange commands not affect current state if the arguments are invalid. Also fixed some bugs in the cheat commands. * Updated documentation for cheat commands, and added a simple worked example. Also added single-sentence descriptions of what (break|watch|register)points are to the top of the relevant pages. -frontend improvements: * Added a bit more info to the about box, moved the VCS revision to the heading. * Don't show "not" codes in prompts - they're not helpful.
* Still more user experience improvements: Vas Crabb2021-10-186-77/+271
| | | | | | | | | | | | | | | | | | | | | | | | | | | Changed the default mapping for UI select to not trigger on Alt+Enter fullscreen toggle. (Fullscreen toggle still doesn't work in menus - actually fixing that is complicated.) frontend: Made the about box wrap text properly, made the title and backtrack menu item always visible, and added a footer with the VCS revision. frontend: Don't highlight the favourites and info toolbar buttons if there's no selection (can happen if filters produce no results). Also made the info viewer appear even if no info is available - it's less confusing to see an empty menu than wonder why clicking the button does nothing. debugger: Added a register points view to the GUI debuggers, to go with the breakpoints and watchpoints views. debugger: Extended [brw]p(clear|(en|dis)able) commands to accept multiple arguments to perform the same action on multiple (break|watch|register)points at once. Also made rplist accept a CPU for showing a single CPU's register points ([bw]plist already support this). docs: Updated registerpoints debugger commands page, and updated other pages for latest extensions to syntax.
* frontend: Further improved behaviour of info box on system selection menu, ↵ Vas Crabb2021-10-172-19/+19
| | | | and fixed alignment issues.
* frontend: fixed horizontal offset on text boxes with blank lines. Vas Crabb2021-10-172-14/+11
* frontend: Better code for carrying justification across when wrapping. Vas Crabb2021-10-172-4/+15
* frontend: Cleaned up rendering of info views. Vas Crabb2021-10-1729-739/+920
| | | | | | | | | | | | | | | | | | | | | | Put the description for systems in the info box - it's useful for the fruit machines with very long names that are truncated in the list. Also stopped truncating manufactuer and parent name in the info box. Made the text layout class capable of handling lines containing combinatations of left/centre/right-justified text and got rid of the legacy UI manager text wrapping function. Made the system/software selection menus and the info viewer share the same code for formatting info text. This means the multi-column layout works properly in the info viewer now, and the code is a lot simpler. Also the system/software selection menus don't have to redo the text layout every frame now. Made the info viewer update the text layout if the output aspect ratio changes, and cleaned up more legacy code. The lines in the info viewer are no longer bogus "menu items", and there's a lot less special-case code to support it in the base menu class. This commit includes an update to the Chinese translations from YuiFAN.
* Updated translation files for latest changes. Vas Crabb2021-10-162-3/+3
* Actually commit the workaround for Xcode's issues with reference wrapper casts. Vas Crabb2021-10-151-2/+11
* frontend: Two bug fixes. Vas Crabb2021-10-153-15/+21
| | | | | | | | | | | Audit menu was using one variable for two things, which obviously doesn't work. DIP switch menu could trigger spurious clicks on for systems with too many DIP switch groups to show. Also work around Xcode's issues with casting non-const to const reference wrappers.
* frontend: Show full sofware name in right panel for favourites, too. Vas Crabb2021-10-151-0/+2
* More user experience improvements: Vas Crabb2021-10-1536-722/+942
| | | | | | | | | | | | | | | | | | | | | | | | | | | frontend: Made it possible to cancel a media audit while it's in progress. Also made the media audit multi-threaded so it's faster. frontend: Made the DIP switches in the DIP switch preview clickable. frontend: Made the system and software selection menus leave focus on the same system when clearing the search rather than jumping to the first item. Also fixed a couple of bugs in the logic for keeping the selected item visible. frontend: Fixed a few places that weren't showing localised system names. frontend: Made UI Cancel clear a search in the file manager the same way it does on the system and sofware selection menus. frontend: Made it possible for plugin menus to handle UI Cancel more naturally, backing up to the previous plugin menu rather than dropping straight back to the list of plugins. Updated the autofire, cheat and cheatfind plugins, and fixed a few other issues in the cheatfind plugin. debugger: Made the mount and unmount commands accept instance names as well as brief instance names. Also updated another page of debugger documentation.
* More user experience improvements: Vas Crabb2021-10-144-40/+58
| | | | | | | | | | | | | | | | | | | | | | | | | frontend: Allow clicking the adjuster arrows on menu items. This allows things like video options and DIP switches to be configured using a mouse only. Also fixed a bug preventing paging menus with a mouse if the first item scrolled off the bottom is not selectable. debugger: Allow wplist and bplist to accept a CPU argument to list breakpoints/watchpoints for a single CPU only. debugger: Fixed some corner cases in address space syntax in memory accesses, and allowed memory region accesses to use tags relative to the visible CPU. emu/softlist.cpp: Ignore notes elements when loading software lists. It's effectively a comment that isn't a comment syntactically, it's being used for things that are not useful to display in the internal UI, and it slows down startup. docs: Updated three more pages of debugger documentation. Also updated more of the built-in debugger help. minimaws: Fixed up schema for software list notes, made sofware list notes display initially collapsed.
* Various improvements to the user experience: Vas Crabb2021-10-131-1/+1
| | | | | | | | | | | | | | | | | | Extended the memory access prefixes in debugger expressions to support address space names. Made the debugger history command aware of how much history it has collected, and added a help topic for it to the built-in debugger help. Started updating the documentation for the web site, and corrected some of the more misleading built-in debugger help. Made some corrections to Chinese localisation after discussion with YuiFAN. Darkened the UI red colour a little. cpu/m6502/st2205u.h: Marked sound imperfect.
* frontend: More wording and localisation fixes for colours menus. Vas Crabb2021-10-123-33/+50
* More UI enhancements/cleanup: Vas Crabb2021-10-129-137/+159
| | | | | | | | | | | | | | | | | | | | | | | | Made the headings in the info viewer clickable, so you can switch between DATs with a mouse or trackball (or maybe a lightgun if that's your thing). Made the UI red/yellow/green traffic light status colours less dirty-looking. The "yellow" is more of an amber-brown than a cat puke brown now, and red is brighter. The contrast with white text is definitely fine for red and green, but it's reduced a bit for yellow. However there's a limit to how dark you can make a yellow or orange colour before it looks muddy. Reduced the number of places the UI uses red for things that aren't errors. The error colour should be used sparingly, for actual errors. Improved the colour swatch display in the RGBA colour editor. It now has black/white underlay so alpha effects are move obvious. Also fixed a bug preventing the channels being run down to zero. Fixed double-clicking configure machine causing MAME to exit from the system selection menu. Also slightly adjusted the colours of the toolbar buttons again.
* frontend: Keep cleaning up. Vas Crabb2021-10-119-121/+79
| | | | | | | | | | | | | | | | | | | 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.
* frontend: Fix another dumb clone sorting bug. Vas Crabb2021-10-111-2/+2
* frontend: Recovered precious vertical space for system/software names! Vas Crabb2021-10-1115-507/+522
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reduced the height of the bottom info panel by one line. The system shortname or list/software name tuple are now only displayed in the info box on the right. It's a bit out-of-the-way, but it's not something you need to see all the time. The main reason for having the quit or return to previous menu item always visible is to make it easy for someone to quit if they only have a mouse. However, we don't need waste space on the menu for this when we have a toolbar. Users without a mouse can exit using the keyboard/controller UI Cancel input (given how important this is, it's unlikely they won't have it mapped to something usable). There's now a toolbar button on the extreme right for returning to the previous menu or quitting. The tooltip and icon are appropriately context-sensitive. This recovers one line on the system selection menu, and two on the software selection menu since the separator is no longer needed. Replaced the toolbar icons bitmaps with SVGs. Colours/shapes may be tweaked before the release if people have good suggestions Flipped the simple system selection menu so the description is on the left. Moved the handling of special cases for the final menu item out of the base menu class. It's still hacky having it handled there at all, but it's less hacky without if menus that want to do something different can do it themselves.
* frontend: Don't show toggles for plugin libraries, show a message when no ↵ Vas Crabb2021-10-101-4/+11
| | | | plugins are found.