summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/emuopts.cpp
Commit message (Collapse)AuthorAgeFilesLines
* clifront.cpp: Changed -listbios to work more like -listslots, showing all ↵ Vas Crabb2023-04-101-1/+2
| | | | BIOS options in a system.
* Various input and OSD refactoring: Vas Crabb2023-01-291-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | osd: Supply OSD object to modules on initialisation. Encapsulated some event handling in the OSD objects rather than leaving it in free functions. Put various stuff in namespaces. osd/modules/input: Enabled dinput, xinput and winhybrid modules for Windows SDL builds, and enabled background input for dinput and xinput (and by extension winhybrid) modules. Also fixed some COM and X11 resource leaks. osd/modules/input/input_sdl.cpp: Flipped SDL mouse button order to match Windows, and exposed vertical and horizontal scroll as Z and rZ axes. Moved SDL UI event handling out of input devices into OSD object. osd/modules/input_rawinput.cpp: Changed lightgun Z axis token so it's correctly identified as a relative axis (it maps to the scroll wheel equivalent). osd: Added an option to choose the network provider module. Mostly useful if you build with both TUN/TAP and pcap support included, or if you want to disable emulated networking completely. emu/input.cpp: Use a better strategy for assembling input code names that uses fewer temporary strings and doesn't require use of the non-Unicode-aware space trimming function (fixes MT08552). osd/modules/input_dinput.cpp: Improved polling logic. osd: Made various parts of the input code less dependent on concrete emu objects, and reduced inappropriately passing around the machine object. Made input modules less dependent on OSD implementation. Encapsulated some stuff and got rid of some vestigial newui and SDL1 support code. Cleaned up some interfaces. Moved OSD options classes to their own files. Prepare to remove main.h from emu.h - it's mostly used to get the application name, which the vast majority of emulated devices don't need to do.
* Miscellaneous fixes and refactoring: Vas Crabb2023-01-281-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ui/analogipt.cpp: Fixed bar graph display for fields with ranges that wrap through zero. emu/inputdev.cpp: Separateed analog axis deadzone and switch threshold settings, reduced default deadzone, and fixed a potential division by zero if the deadzone and saturation settings are equal. emu/ioport.cpp: Fixed behaviour of absolute analog fields where range passes through zero - it previously only worked for specific combinations of mask, minimum and default. Removed a workaround from universal/getaway.cpp that is no longer necessary. emu/input.cpp: Fixed unintuitive behaviour when an absolute field is assigned an OR combination of a relative control folled by an absolute control (e.g. Mouse X or Joy 1 LSX). Also fixed reading axis input sequences where an axis code is followed by a switch code (these can only be produced by manually editing configuration files, not through MAME's UI), and fixed the returned type when multiple relative axes sum to zero. osd/modules/input_dinput.cpp: Fixed hat switches being stuck in up position when input is suspended in the background taito/taitoio_yoke.cpp: Give throttle control a distinct type, and don't auto-centre. osd: Added option to select MIDI provider module (currently only PortMidi and the dummy module are available). Also put various things in namespaces, and fixed builds including SDL sound module with native Windows OSD. emu/validity.cpp: Added check to catch I/O port fields using UI input types. emu/inpttype.ipp: Renamed inputs that were causing confusion. "Bill" and "Track" were causing confusion for translators and hence likely causing confusion for many users, especially those who are not native English speakers. "Track" as an abbreviation for "Trackball" was frequently being mistranslated, e.g. in the sense of a CD track selection button or even in the sense of a railway track. There's no reason to abbreviate it. "Bill" in the US English sense as a banknote is too ambiguous and was causing confusion for translators. It's better to use the less ambiguous "Banknote". Corrected Greek translations of "Trackball". Don't run GitHub Actions on issue template changes.
* emuopts.cpp: Work around reevaluate_default_card_software trying to purge ↵ AJR2022-12-191-3/+13
| | | | XXX_default values; reword some comments
* emuopts.cpp: Correction for 42adf5d51de36560547449c6c279a8df9df7dcfe AJR2022-12-181-14/+13
|
* Software list-provided default option fixes AJR2022-12-181-4/+22
| | | | | - Give "slot_default" option values default priority rather than maximum priority, so command line option specifications can override these - Silently ignore software list-provided default options or values that don't exist in a particular system configuration
* osd/modules/file: Don't magically substitute environment variables when ↵ npwoods2022-12-171-31/+31
| | | | | | | | opening files. (#9859) * util/options.cpp: Added option types for single and multiple paths. * util/options.cpp: Substitute environment variables in values from defaults and INI files. * ui/dirmenu.cpp: Removed hard-coded list of multi-path options. * plugins: Don't substitute environment variables in path options.
* Modernize core_strwildcmp() and core_iswildstr() (#10344) npwoods2022-10-161-1/+1
| | | | | | | * Modernize core_strwildcmp() and core_iswildstr() - Changed parameters from 'const char *' to 'std::string_view' - Removed 16-character limit in core_strwildcmp()
* corefile.h: Move filename utilities to path.h AJR2022-09-251-0/+1
|
* sinclair/specpls3.cpp: Improved floppy drive configuration. Vas Crabb2022-08-171-3/+6
| | | | | * Default to a single 3" SSDD drive, allow 3.5" SSDD drives. * specpls3_flop.xml: Corrected interface type for term2a floppy.
* util/options.h: Removed legacy OPTION_* option type constants. (#9851) npwoods2022-05-301-163/+163
| | | These constants were polluting the global namespace.
* emu/emuopts.cpp: Do not lose slot card name when setting slot card BIOS. (#9770) Miodrag Milanović2022-05-171-1/+1
|
* emuopts.cpp: Fix typo in comment AJR2022-05-031-1/+1
|
* -osd/windows: Show error message box on a separate thread (see MT08118). Vas Crabb2021-11-121-1/+1
| | | | | | | -emu/emuopts.cpp: Default to built-in UI language rather than English. * The external English message catalog is a placeholder anyway. -cpu/mcs48: Corrected comments - D87xxH have UVEPROM, not EEPROM.
* plugins: Moved the timecode recording functionality to a plugin. Vas Crabb2021-11-021-1/+0
|
* Overdue internal UI enhancements (#8674) Vas Crabb2021-10-091-2/+2
| | | | | | | | | | | | | | | | * frontend: Added support for message context to localisations. * frontend: Added string_view versions of the message lookup functions. * frontend: Added a few more folder options to the internal UI. * emu/softlist.cpp: Use more appropriate containers. * Switched to Python 3 by default - this will become a requirement. * Updated msgfmt.py for message context support. * frontend: Show all software item info in the internal UI. * frontend: Search alternate titles in software selection menu. * 3rdparty/utf8proc: Updated to v2.6.1 (has several fixes). * frontend: Added software filters for common info fields. * frontend: Allow UI manager to hold onto persistent session data. * frontend: Cache software lists for eight machines. * frontend: Added support for loading localised system names. * frontend: Add UI for selecting localised system names.
* sound: make the compressor optional (clamp overdrive to -1.0-1.0 when off) hap2021-09-241-1/+2
|
* Add -share_directory option. This sets a directory on the host system which ↵ arbee2021-05-081-0/+1
| | | | emulated systems can directly access. [R. Belmont]
* Much more core std::string_view modernization AJR2021-01-201-16/+29
| | | | | | | | | | | | | | | - Remove corestr.h from emu.h; update a few source files to not use it at all - Change strtrimspace, strtrimrightspace and core_filename_extract_* to be pure functions taking a std::string_view by value and returning the same type - Change strmakeupper and strmakelower to be pure functions taking a std::string_view and constructing a std::string - Remove the string-modifying version of zippath_parent - Change tag-based lookup functions in device_t to take std::string_view instead of const std::string & or const char * - Remove the subdevice tag cache from device_t (since device finders are now recommended) and replace it with a map covering directly owned subdevices only - Move the working directory setup method out of device_image_interface (only the UI seems to actually use the full version of this) - Change output_manager to use std::string_view for output name arguments - Change core_options to accept std::string_view for most name and value arguments (return values are still C strings for now) - Change miscellaneous other functions to accept std::string_view arguments - Remove a few string accessor macros from romload.h - Remove many unnecessary c_str() calls from logging/error messages
* Eliminate many unnecessary c_str calls AJR2020-12-211-1/+1
|
* Fix some oversights and emergent behaviour with view selection. Vas Crabb2020-12-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Exposed the "native snapview" option on the video manager. Trying to use presence of a single view is a poor proxy that breaks with multi-screen systems. Allow rotation to be changed for native snapshot views, and disable the zoom to screen area control when it has no effect on the selected view. Treat an empty string identically to "auto" for view selectction. Previously this was being used for prefix matching so it would force the first view. (This caused the bad snapshot view selection. It had been relying on "internal" not being a common view name prefix so it fell through to automatic selection, but when changed to an empty string it forced the first view.) Documented "auto" as well as "native" for the -snapview option and changed the default to auto rather than an empty string for consistency with the -viewN options. Added [w]string_view handlers to the stuff that's instantiated in strformat.cpp since we'll be increasingly using them. Cleaned up and updated some documentation.
* More Lua engine clean-up and documentation, resulting in core cleanup. Vas Crabb2020-12-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | More Lua interface cleanup, additional properties and methods, and documentation migration/expansion. Emulated switch inputs can have "not" codes applied to host input axis directions. It works the same way as host switch inputs - push twice for a "not" prefix. Input polling helpers no longer need to store state in the input device items. There’s less leakage, and less chance of things interfering with each other. Allow snapshot view options to be configured through the internal UI via the video options menu. Made video options menus place initial focus on the currently selected view item. Removed some crud from the menu base class. Fixed the description of the "snapview" option. The value to get raw screen pixels was changed to "native" a long time ago but the description was never updated. Re-arranged the Golden Poker button lamps so that the 6-button layouts for Jolli Witch and Wild Witch make sense. In 6-button mode, the hold buttons double as bonus game and bet buttons, but the lamp outputs don't change. The simplest way to deal with this without requiring the user to switch views or using layout scripting is to place the dedicated buttons directly below the hold buttons that correspond to them. Removed some software list data that was redundantly copied into device_image_interface (m_supported was never even set, so it didn't even work), and made crc() work better (previously it wasn't recalculuated after unloading and loading another image). Made strformat.h and devcb.h play nicer with C++17 and pre-standard C++20. Format precision now correctly limits the length of string views. Confirmed that strformat.{h,cpp} works with pre-standard C++20 support in GCC 9. Removed an auto_alloc from cpu/arm7.
* Fairly significant overhaul of Lua engine and some cleanup. Vas Crabb2020-11-251-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The things that were previously called device iterators are not iterators in the C++ sense of the word. This is confusing for newcomers. These have been renamed to be device enumerators. Several Lua methods and properties that previously returned tables now return lightweight wrappers for the underlying objects. This means creating them is a lot faster, but you can't modify them, and the performance characteristics of different operations varies. The render manager's target list uses 1-based indexing to be more like idiomatic Lua. It's now possible to create a device enumerator on any device, and then get subdevices (or sibling devices) using a relative tag. Much more render/layout functionality has been exposed to Lua. Layout scripts now have access to the layout file and can directly set the state of an item with no bindings, or register callbacks to obtain state. Some things that were previously methods are now read-only properties. Layout files are no longer required to supply a "name". This was problematic because the same layout file could be loaded for multiple instances of the same device, and each instance of the layout file should use the correct inputs (and in the future outputs) for the device instance it's associated with. This should also fix video output with MSVC builds by avoiding delegates that return things that don't fit in a register.
* speaker.cpp: Add new option -speaker_report <n> to help devs tune volume (#6995) Aaron Giles2020-07-271-0/+1
| | | * Add new option speaker_report to report clipping and other statistics after each session. This replaces the previous compile-time define and offers more detail.
* Add new option beam_dot_size that controls the rendered size of 'dots' in ↵ Aaron Giles2020-07-241-0/+1
| | | | vector games. (#6993)
* Revert "ui: allow to skip warning popup at start" Vas Crabb2020-07-101-1/+0
| | | | | | | | | | | | | | | This reverts commit 74f456df945cd1720dc4d6bc105f64c13e62ced8. I will allow the feature with the following conditions: * No skipping red warnings. * A key-value map of device shortnames and yellow warnings must be stored in the .cfg file, along with a timestamp of the last time the system was run and the last time a warning was shown. * On starting a system, the map of device shortnames and yellow warnings must be built and compared to the one loaded from the .cfg file. If it doesn't match, if the system hasn't been started in seven days, or a yellow warning hasn't been shown in 14 days, the warning is not to be skipped.
* ui: allow to skip warning popup at start hap2020-07-101-0/+1
|
* video: frameskip setting is now upper frameskip limit when autoframeskip ↵ hap2020-06-141-1/+1
| | | | setting was enabled (nw)
* Debugger - add `-debuglog` option to log debug console output to file Stephen Oberholtzer2020-05-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | When this option is specified, all console output is echoed to a log file. Some caveats/limitations: - The file-open process was copied from -log, so it has the same limits - Filename is hard-coded (debug.log) - File is overwritten if it exists - File is opened during emulation initialization - Thus, the file is cleared if you invoke the "Hard Reset" debugger command - Probably some other details I don't know about - Logging works as such: When a string is appended to the scrollback buffer, it is also written to the log file. Some commands forcibly wrap their output (e.g. `help` to 80 columns.) Because this wrapping is done inside the scrollback buffer, the text written to the file is not wrapped. This can be seen with `help execution`.
* ouput -> output (nw) Angelo Salese2020-01-301-1/+1
|
* allow slot options with -listsoftware so stuff like spectrum_mgt_flop can be ↵ Vas Crabb2019-12-171-1/+1
| | | | discovered
* util/options.cpp: fix locale issues and a const correctness issue Vas Crabb2019-11-231-3/+4
|
* fix option conflict (nw) Vas Crabb2019-11-181-1/+1
|
* Remove up to one frame of input latency. (#5901) antonioginer2019-11-161-0/+1
| | | | | | | | | | * Remove up to one frame of input latency. Makes MAME virtually lagless on VRR monitors. * Use empty parentheses and clean interface member calls * Add new option -instant_blit to make this feature optional * Rename new option to -lowlatency, -ll
* Changed mechanisms for overriding the mandatory file manager npwoods2019-08-051-1/+0
| | | | | | | - Removed the -skip_mandatory_fileman command line option - Created an emu.register_mandatory_file_manager_override() LUA function to allow LUA plugins to substitute the mandatory file manager
* Use canonical spelling of "canonical" (nw) AJR2019-08-021-18/+18
|
* Created a -skip_mandatory_fileman option npwoods2019-07-211-0/+1
|
* Make layout format more flexible: Vas Crabb2019-07-061-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * There is no longer a concept of "layers" - there are only screens and elements. * Elements are now instantiated with <element ref="..."> * Screens and elements can have explicit blending mode specified with blend="..." * Default blending mode for screens is "add" and default for other elements is "alpha" * Other supported modes are "none" and "multiply" * This removes the options to enable/disable layers individually - use views instead * Legacy layouts can still be loaded, and support won't be removed for at least a year The current artwork model is over-stretched. It's based on a Space Invaders cabinet model, and isn't applicable to a lot of the systems MAME emulates now. The fact that MAME has to switch to an "alternate" mode to deal with games like Golly! Ghost! without requiring pre-matted bitmaps shows that the Space Invaders model wasn't even adequate for general arcade use. It shows in that for a lot of the systems that heavily depend on artwork, people just seem to randomly choose layers for elements until they get something that works. Also, the fact that MAME will switch to an alternate (Golly! Ghost!) mode depending on the combination of elements is a trap for people learning to make artwork. There are cases that the current approach of implying the blending mode from the layer doesn't work with. Examples include LEDs behind diffusers (requires additive blending for layout elements), and mutliple stacked LCD panels (requires RGB multiplication for screens). For configurability, it's now a lot easier to make multiple views using groups. For example, if you want to make it possible to hide the control panel section of your layout, you can put the control panel elements in a group and create views with and without it. I will gradually migrate the internal artwork to use the new approach. I have an XSLT stylesheet that helps with this, but I'm not comfortable adding it because it isn't a complete solution and it still requires manul steps. I wanted to get the re-worked pointer handling done sooner so I could push them both at the same time, but unfortunately various things have prevented me from progressing as quickly as I wanted to. Sorry guys, that stuff's going to have to wait.
* clean up and improve option descriptions Vas Crabb2018-12-131-31/+31
|
* dec8.cpp: Fix regression with ghostb, srdarwin (nw) Scott Stone2018-12-091-1/+1
| | | | Some misc text changes to certain trigger usage info (nw)
* misc cleanup (nw) Vas Crabb2018-10-281-1/+1
|
* Fix connonical command line option. tim lindner2018-09-251-2/+2
|
* Fix error in debug build with SMS card options (nw) AJR2018-05-211-2/+5
|
* move some not-directly-emulation-related helpers to lib/util, further ↵ Vas Crabb2018-04-011-7/+7
| | | | extricate emu.h from tools (nw)
* M1COMM, M2COMM, S32COMM: Updates to simulation (#3369) Ariane Fugmann2018-03-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * M1COMM: update simulation based on real firmware (nw) - read partial frames correctly now - added VSYNC packets (framesync currently disabled as this can cause MAME to freeze and we have no way to tell if the socket is still open) * M2COMM: update simulation (nw) - read partial frames correctly now - added VSYNC packets (framesync currently disabled as this can cause MAME to freeze and we have no way to tell if the socket is still open) * M1COMM, M2COMM: add config option to sync frames over network (nw) * M2COMM: another update to the simulation. - added relay mode (used by stcc) - added "connection loss" * M1COMM: update to simulation (nw) - better sync - detect lost connection * M2COMM: use osd_file rather than emu_file for better control (nw) * M2COMM: handle connection loss in a a more elegant way (nw) * M1COMM: use osd_file rather than emu_file for better control (nw) * S32COMM: updated simulation (nw) - handle connection loss - use osd_file rather than emu_file for better control
* Override and fallback options for artwork (#2908) phulshof2018-01-071-0/+2
| | | | | | | | | | | | * Added fallback_artwork and override_artwork as MAME options to allow default artwork to be loaded. * Removed debug testing code. * - Allow loading of built-in layouts even if override_artwork is specified. - Allow loading of fallback_artwork if only default view have been found. - Fixed order of built-in layouts with regards to fallback_artwork as agreed upon the forums. * Changed |= true to = true, and changed override artwork so it only checks for default.lay if the <machine name>.lay is not found.
* Add option to disable saving NVRAM on exit AJR2017-12-261-2/+5
|
* rewind implementation fixes and improvements vadosnaprimer2017-12-221-1/+1
| | | | | | | | | | | | | - reset scheduler savestate to what it was for years before rewind -- changing saved variables should be done after thorough testing. right now, adding some vars breaks some machines, adding other vars breaks others - switch to megabyte-wise capacity -- savestate size greatly differs between machines, relying on state count is unstable - switch to internal indexing -- no longer depends on inaccurate machine time - rewind accelerator key in debugger (Ctrl+F11) - report capacity hit (once), with some useful info - make error reports saner - mention rewind and rewind_capacity in the docs
* Revert "Revert "Merge branch 'master' of https://github.com/mamedev/mame"" Firehawke2017-12-131-0/+2
| | | | This reverts commit 54155441e9ba9941e85d80c4834a66376a11e791.
* Revert "Merge branch 'master' of https://github.com/mamedev/mame" Firehawke2017-12-131-2/+0
| | | | | This reverts commit f537428e5a40ba6dde8ca9bf0fe9ae6b1f189ac4, reversing changes made to 0d70d798107d4e4e8fb9f230410aeb1e888d65c5.