summaryrefslogtreecommitdiffstatshomepage
path: root/src/frontend (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Fixed a regression in the mandatory image check (#2243) npwoods2017-04-182-4/+14
| | | As a consequence of recent changes, we were not properly blocking the emulation from starting when a must_be_loaded() image had an unspecified image.
* Pruned out some cruft in src/lib/util/options.[cpp|h] Nathan Woods2017-04-171-10/+10
|
* More options refactoring Nathan Woods2017-04-161-17/+4
| | | | | | | | This should address outstanding concerns with PR#2231. I'm trying to turn emu_options into a self contained structure that encapsulates behaviors related to options, including the gymnastics pertaining to image/slot loading and interactions with get_default_card_software() and "just works". When the MAME 0.186 development cycle starts up, I hope to take this further. I want to make core_options::entry an abstract base class so that the entries associated with image options and slot options can derive from it. This will eliminate the current need for emu_options to directly expose maps for image and slot options. For now, I'm in stabilization mode, and I hope to get things working for a stable 0.185 release.
* Fixes issues specifying image/slot options fron INI files (reported by ↵ npwoods2017-04-152-18/+16
| | | | | | | Robbbert) (#2231) This fix really doesn't go far enough. I added hooks so that options specified at the command line can also be responded to when parsed from INI files, but in the long run much of the logic that is currently in mame_options should go into emu_options so that when an option is specified, all of the wacko logic around slot/image specification "just works" because it is encapsulated within emu_options. We have a release 11 days away; I want to be in stabilization mode.
* Changes to make get_default_card_software() less stupid Nathan Woods2017-04-102-2/+42
| | | | | | | | | | The goals with this change is to make get_default_card_software() a bit more standalone by making it a const method that does not mutate the state of the device_image_interface. This is done by passing in a small structure that encapsulates the minimum of information that get_default_card_software() needs. This also eliminates the need for device_image_interface::open_image_file() I agree with Sarayan that get_default_card_software() is terrible and needs to ultimately go away. This is a small step in that direction. Lastly, I don't care for the name of get_default_card_software_hook (or get_default_card_software() for that matter). If anybody has better ideas, let me know.
* New device interface for palettes AJR2017-04-061-11/+12
| | | | | | - Create device_palette_interface, which takes over most functionality from palette_device except for the initialization/decoding routines and RAM interface. - Update screen_device and device_gfx_interface to use a device_palette_interface object rather than a palette_device. This necessitates slight alterations to a few drivers and devices. - Modify v9938 and v9958 to use the new device_palette_interface rather than a subdevice. This entails breaking a cyclic dependency between device_video_interface and screen_device for this case.
* Refactoring in response to MT#6531 Nathan Woods2017-04-067-31/+67
| | | | | | | | | | Prior to this change, options for images and slots were stored in the emu_options collection. Anything that might restart the emulation (such as slot changes and images that reset on load) had to manipulate the emu_options structure directly. The dynamic nature of images and slots meant that some elaborate conventions for setting up this collection had to be understood by clients. After this change, emu_options has two new members (image_options and slot_options) that expose image and slot selections via an std::map. Anything that changes images or slots in a fashion that needs to persist across sessions needs to modify these data structures. Additionally, some of the hairly logic (e.g. - get_default_card_software) now records its data here rather than trying to subvert the core_options system. This is how MT#6531 was fixed; now when diimage.cpp sees an image that resets on load, it just modifies the image_options structure and forces a reset. This allowed some further cleanups to happen within diimage. This should be considered a very risky change, and scrutiny/feedback is welcome. In particular, there seems to be functionality surrounding device bioses that I'm not 100% sure how it works; the syntax seems to imply that it only works on slot devices.
* Fixed a bug that caused "Switch Item Ordering" in the software list menu to ↵ Nathan Woods2017-04-041-3/+9
| | | | | | dupe entries This was MT#6402
* UI input map fixes AJR2017-03-312-2/+2
| | | | | - Fix a longstanding bug that prevented binding several ORed buttons to any input belonging to a non-root device. - Fix a visual glitch when assigning inputs to analog sequences.
* srcclean (nw) Vas Crabb2017-03-264-11/+11
|
* luaengine: add emu_file::write, enables the use of sockets and pipes from ↵ cracyc2017-03-201-0/+1
| | | | lua without needing a third party library (nw)
* Fixed regression when loading multipart softlists Nathan Woods2017-03-201-1/+8
| | | | Pernod found a regression introduced in the 0.183 softlist refactoring whereby multi-part softlist items would not distribute to multiple slots. The problem was that the old code was relying on the image slots being loaded into the core. This is not the way the new system works, so I've added a hook into software_list_device::find_mountable_image() that allows the new approach to work.
* Greatly improve performance of -romident on multiple files Vas Crabb2017-03-203-144/+394
| | | | | | (nw) This hashes all the files upfront, then does the expensive driver/software scan only once. It also walks all devices so it can identify ROMs for slot devices that aren't inserted by default.
* Refactored HTTP handling to be easier to extend and use (nw) Miodrag Milanovic2017-03-191-3/+1
|
* Preliminary attempt to fix regression caused by poor understanding of ↵ npwoods2017-03-142-21/+83
| | | | | | | | | | | get_default_card_software() (#2122) Tafoid brought to my attention a recent regression caused by my softlist changes. Specifically, this failed: mame odyssey2 -cart1 voice -cart2 bees The reason is that the recent refactoring caused some critical softlist logic to be bypassed. Essentially device_slot_interface::get_default_card_software() provides a technique for devices to inspect softlists and select slot options to be specified. In the case above, the selection of the "voice" software list item in the first cartridge slot requires get_default_card_software() to be called to specify the o2_voice slot device, which in turn adds the second cartridge slot. Skipping this caused '-cart2' to stop being recognized. This is an attempt to fix the problem. In some ways, this doesn't go far enough - the astute observer will note that mame_options::reevaluate_slot_options() looks a lot like mame_options::update_slot_options(); part of me wants to just rip the latter out. In the long run, device_slot_interface::get_default_card_software() should be reevaluated; having a hook is a good idea but it should be a pure function that doesn't alter state.
* Substantially speed up -verifyroms, hack other verbs temporarily while ↵ Vas Crabb2017-03-122-96/+37
| | | | device data is being refactored
* Include devices in -listxml with * or no argument (nw) AJR2017-03-111-1/+1
|
* Fix null pointer bug when -verifyroms is used without a driver spec (nw) AJR2017-03-111-1/+1
| | | | This undoes a small part of c6ef2746d4958359899d5d4b44e8507aeca343d0. Changing "*" to nullptr here looks like a fundamentally unsound hack, even though the validity checker now uses it as a convenient flag (see the similar change in 3ecdaafea65c7cedb2dffc4bd865611f069ec289).
* Possibly uninitialized class member fix. (nw) dankan18902017-03-083-19/+18
|
* Changed a few more 'const char *' ==> 'const std::string &' (#2111) npwoods2017-03-045-7/+7
|
* clean up a few more device issues, add basic device validation Vas Crabb2017-03-031-17/+17
|
* Start cleaning up duplicate shortnames Vas Crabb2017-03-031-1/+3
|
* filter devices when a driver pattern is supplied to -listxml Vas Crabb2017-03-035-52/+84
|
* Image instance name refactoring and bug fixing (nw) AJR2017-03-021-2/+0
| | | | | - update_names no longer takes arguments; the device type can be obtained easily, and the custom instance names are now overrides. Devices might not need to explicitly call update_names in the future. - Fix the frontend crash/assert failure resulting from instance names not being generated properly.
* fix assumption that device being described is root device (fixes ↵ Vas Crabb2017-03-032-46/+47
| | | | sampleof=005 reported on all devices)
* Fix silly editing error (nw) AJR2017-03-021-1/+1
|
* Self-registering devices. Vas Crabb2017-03-032-43/+16
| | | | | | * MAME now walks all devices when generating -lx output irrespective of whether they're actually instantiated anywhere or not. * -lx is at least 30% faster than previous implementation. * Only possible drawback is that filtering drivers no longer filters devices.
* Fixed -readconfig regression introduced in the 0.184 dev cycle Nathan Woods2017-02-282-13/+9
|
* Make loading software through slots work again (nw) AJR2017-02-271-2/+2
| | | | It's still necessary to add slots with no selectable options to the option list, as otherwise the non-selectable options can't be installed.
* more workaround (nw) Vas Crabb2017-02-271-1/+2
|
* Self-registering devices prep: Vas Crabb2017-02-275-10/+21
| | | | | | | | | | | | | | * Make device_creator a variable template and get rid of the ampersands * Remove screen.h and speaker.h from emu.h and add where necessary * Centralise instantiations of screen and speaker finder templates * Add/standardise #include guards in many hearers * Remove many redundant #includes * Order #includesr to help catch headers that can't be #included alone (nw) This changes #include order to be prefix, unit header if applicable then other stuff roughly in order from most dependent to least dependent library. This helps catch headers that don't #include things that they use.
* device_image_interface cleanups (nw) AJR2017-02-274-6/+6
| | | | | | | - Replace comparisons of software_entry() or part_entry() with nullptr with loaded_through_softlist() predicate. - Eliminate the superfluous m_software_info_ptr member. The software_entry() accessor is still provided, but now rarely used. - Eliminate two of the three arguments to load_software_part. - Remove some unnecessary auto-typing in ui/inifile.cpp.
* Cleanup of slot code Nathan Woods2017-02-262-12/+18
| | | | Added device_slot_interface::has_selectable_options() to calculate whether a particular slot has selectable options
* Fixed regression pertaining to specification of empty strings as slot names Nathan Woods2017-02-271-3/+7
| | | | e.g. - 'next -scsibus:1 "" -listdevices'
* Update mame.cpp PugsyMAME2017-02-251-0/+3
|
* Update mame.h PugsyMAME2017-02-251-0/+2
|
* Fixed an issue where device options (e.g. -cart) were reported as unknown ↵ Vas Crabb2017-02-241-25/+25
|\ | | | | | | | | | | | | when they actually worked (#2081) Conflicts: src/frontend/mame/clifront.cpp
| * The recent softlist cleanup broke -console; this fixes it Nathan Woods2017-02-241-25/+25
| | | | | | | | The reason is that the LUA console, HTTP server and other features relied on the command line arguments being "pre-parsed". Part of the softlist cleanup was to sanitize where command line parsing occurs. This change moves the setup of the LUA console (and other capabilities such as the HTTP server) to the correct place in the new order.
* | Vas feedback Nathan Woods2017-02-231-3/+1
| |
* | Fixed an issue where device options (e.g. -cart) were reported as unknown ↵ Nathan Woods2017-02-225-19/+40
|/ | | | | | | | when they actually worked This change also changes around how command line arguments are passed around; specifically I changed argc/argv to be std::vector<std::string> Note this is not passed around 'const', the reason being that the command line processing will now "eat" the vector
* Softlist cleanup (#2075) npwoods2017-02-223-101/+171
| | | | | | | | | | * Eliminates the need for emu_options::update_cached_options() by providing a hook for when option values change * This is a preliminary fix to the issue identified in PR#2065 * More softlist related refactoring: - We now only parse the command line (with core_options::parse_command_line()) once - Options that are set up during slot and image setup go through a 'value_specifier' function - Eliminated the command line postprocessing
* Very minor cleanups; accessing options.software_name() once and better ↵ npwoods2017-02-192-7/+11
| | | | std::string usage (#2073) (nw)
* srcclean (nw) Vas Crabb2017-02-191-1/+1
|
* Revert "Make "requirement" field in softlists actually work (MT 6464)" Vas Crabb2017-02-191-4/+0
| | | | This reverts commit 17af0f9c661e0855607703faf66c1e807e888d82.
* Cherry-pick some features from self-registering drivers PoC: Vas Crabb2017-02-167-49/+49
| | | | | | | | * Use size_t for sizes and <algorithm> for algorithms * Fix up some files that were getting linked into multiple libs * Add missing virtual method to sh2 peripheral class * Put shortname in driver struct for locality * Use shared pointers in config LRU cache for safety
* allow softlist software parts to use different interfaces: Nigel Barnes2017-02-152-5/+13
| | | | | | - imgcntrl: don't assume first software part, find part with correct interface - swlist: check all software parts for matching interface when populating list of software lists - softlist_dev: check all software parts when finding approx matches
* Remove emu.h from headers (nw) Olivier Galibert2017-02-114-3/+1
| | | | | | | | | | | | Per Vas' request. If the compile fails for you (i'm thinking osx and windows native debuggers here in particular), add '#include "emu.h"' as first include of the cpp files that fail. Due to our use of precompilation and forced inclusion, emu.h must be included as the very first non-comment thing we do if we want to be sure msvc compiles are identical to gcc/clang ones. Doing it directly instead of through an include increases the correctness probability by a magnitude.
* LIST command format changes (#2051) Scott Stone2017-02-091-19/+19
| | | Made format changes to the output produced by many LIST commands to better deal with maximum limits of certain items. Fixed issue with -LISTROMS output not displaying hapyfsh2 rom sizes correctly. [Tafoid]
* small cleanup (nw) Vas Crabb2017-02-021-11/+6
|
* Don't crash on bad cheat expressions, also make the code look more like ↵ Vas Crabb2017-02-022-353/+403
| | | | 'enterprise-grade' C++