Commit Graph

96 Commits

Author SHA1 Message Date
Miodrag Milanovic
fec0896151 patch that enables output of <info> elements stored in software lists through -listsoftware [qmc2] 2012-08-22 14:02:55 +00:00
Curt Coder
41004e93d1 Sync with MESS. (nw) 2012-08-16 17:59:34 +00:00
Miodrag Milanovic
468c215b0b Fix for required softlist item loading (no whatsnew) 2012-03-30 09:02:46 +00:00
Miodrag Milanovic
a2591e4206 Added support for multiple comma separated interfaces for device (no whatsnew) 2012-03-29 07:01:13 +00:00
Scott Stone
a4098e8a3a Some cleanup of some observed #include redundancy from source files which use emu.h (nw) 2012-02-06 01:30:22 +00:00
Miodrag Milanovic
c8b1d724d9 Do the softlist validation only on validate command (no whatsnew) 2012-02-05 09:15:57 +00:00
Fabio Priuli
dd6e634ef2 fixed crash when loading from softlist with -cart/-flop/-cass switch. 2012-01-31 06:40:59 +00:00
Miodrag Milanovic
9720d9b577 Fix regression on softload item load using menus (no whatsnew) 2012-01-30 14:32:31 +00:00
Aaron Giles
ed0207f126 Move devices into a proper hierarchy and handle naming
and paths consistently for devices, I/O ports, memory
regions, memory banks, and memory shares. [Aaron Giles]

NOTE: there are likely regressions lurking here, mostly
due to devices not being properly found. I have temporarily
added more logging to -verbose to help understand what's
going on. Please let me know ASAP if anything that is being
actively worked on got broken.

As before, the driver device is the root device and all 
other devices are owned by it. Previously all devices
were kept in a single master list, and the hierarchy was
purely logical. With this change, each device owns its
own list of subdevices, and the hierarchy is explicitly
manifest. This means when a device is removed, all of its
subdevices are automatically removed as well.

A side effect of this is that walking the device list is
no longer simple. To address this, a new set of iterator
classes is provided, which walks the device tree in a depth
first manner. There is a general device_iterator class for
walking all devices, plus templates for a device_type_iterator
and a device_interface_iterator which are used to build
iterators for identifying only devices of a given type or
with a given interface. Typedefs for commonly-used cases
(e.g., screen_device_iterator, memory_interface_iterator)
are provided. Iterators can also provide counts, and can
perform indexed lookups.

All device name lookups are now done relative to another 
device. The maching_config and running_machine classes now
have a root_device() method to get the root of the hierarchy. 
The  existing machine->device("name") is now equivalent to
machine->root_device().subdevice("name").

A proper and normalized device path structure is now
supported. Device names that start with a colon are
treated as absolute paths from the root device. Device
names can also use a caret (^) to refer to the owning
device. Querying the device's tag() returns the device's
full path from the root. A new method basetag() returns
just the final tag.

The new pathing system is built on top of the 
device_t::subtag() method, so anyone using that will 
automatically support the new pathing rules. Each device
has its own internal map to cache successful lookups so
that subsequent lookups should be very fast.

Updated every place I could find that referenced devices,
memory regions, I/O ports, memory banks and memory shares
to leverage subtag/subdevice (or siblingtag/siblingdevice
which are built on top).

Removed the device_list class, as it doesn't apply any
more. Moved some of its methods into running_machine
instead.

Simplified the device callback system since the new 
pathing can describe all of the special-case devices that
were previously handled manually.

Changed the core output function callbacks to be delegates.

Completely rewrote the validity checking mechanism. The
validity checker is now a proper C++ class, and temporarily
takes over the error and warning outputs. All errors and 
warnings are collected during a session, and then output in
a consistent manner, with an explicit driver and source file
listed for each one, as well as additional device and/or
I/O port contexts where appropriate. Validity checkers 
should no longer explicitly output this information, just
the error, assuming that the context is provided.

Rewrote the software_list_device as a modern device, getting
rid of the software_list_config abstraction and simplifying
things.

Changed the way FLAC compiles so that it works like other
external libraries, and also compiles successfully for MSVC
builds.
2012-01-24 20:18:55 +00:00
Angelo Salese
7b631e4c5b Clean-ups and version bump 2012-01-15 21:40:54 +00:00
Fabio Priuli
0441bb0ea8 softlist: added validation check against multiple parts with the same name. no whatsnew. 2012-01-09 20:39:48 +00:00
Miodrag Milanovic
5e0e5c8bc7 Revering kludge not needed when proper counting is done (no whatsnew) 2012-01-09 06:48:35 +00:00
Olivier Galibert
6a9a45fe06 softlist: Fix entry count tracking issue [O. Galibert] 2012-01-08 21:30:50 +00:00
Olivier Galibert
b9209b1c35 uiimage/diimage: Dumbify the menus and add a control layer [O. Galibert] 2012-01-07 09:03:36 +00:00
Miodrag Milanovic
4c0893611a Fixed allocating of multiple parts in softlist (no whatsnew) 2012-01-05 10:13:05 +00:00
Fabio Priuli
505dbc504b softlist.c: no_dump CHDs should not trigger validation errors. no whatsnew. 2012-01-04 14:28:08 +00:00
Aaron Giles
64f1231c63 Removed old C-based interface to astrings. astring exists only as
a class now. Updated all stragglers (mostly tools) to use the class
form. [Aaron Giles]
2012-01-03 00:21:13 +00:00
Miodrag Milanovic
3aa2419b1e Fixed item search in softlist if no list is specified (no whatsnew) 2011-12-26 08:23:49 +00:00
Angelo Salese
7e812d10d3 Clean-ups and version bump 2011-12-24 21:49:38 +00:00
Miodrag Milanovic
1a23f11816 softlist now copies all parts too to loaded software_info section (no whatsnew) 2011-12-23 10:17:22 +00:00
Miodrag Milanovic
94493777d6 Fixed required image loading (no whatsnew) 2011-12-22 15:53:25 +00:00
Miodrag Milanovic
0b03356800 Enabled filtering in best matches and also in "noswitch" aka MAME like start or software (no whatsnew)
Note that it is possible to mount wrong region image manually,for example with cart parameter and
that prints warning
2011-12-22 15:15:51 +00:00
Miodrag Milanovic
90314f2bb4 Softlist support cleanup and addition of compatibility filtering [Miodrag Milanovic] 2011-12-22 13:01:48 +00:00
Olivier Galibert
7db2c59b51 softlist: buglet (nw) 2011-12-21 18:14:21 +00:00
Miodrag Milanovic
9b2f3ab720 Added support for required field in softlist (no whatsnew) 2011-12-21 13:18:52 +00:00
Miodrag Milanovic
bedf4ade35 Fix for softlist compile (no whatsnew) 2011-12-10 07:04:17 +00:00
Miodrag Milanovic
0f97935628 Fixed romfill handling in softlists (no whatsnew) 2011-12-09 08:07:40 +00:00
Miodrag Milanovic
5a8df86305 Added case insensitive check for softlist item descriptions (no whatsnew) 2011-12-06 09:44:21 +00:00
Angelo Salese
ba2d56dc72 Clean-ups and version bump 2011-12-04 18:50:00 +00:00
Miodrag Milanovic
80acaef257 Fix handling of shared features in softlists (no whatsnew) 2011-12-02 08:18:42 +00:00
Miodrag Milanovic
df8e76c055 More softlist validation (no whatsnew) 2011-11-30 09:02:14 +00:00
Miodrag Milanovic
24ee0f0d2f Better error handling for softlists (no whatsnew) 2011-11-29 15:14:09 +00:00
Miodrag Milanovic
ae7b304f9b Check for duplicate dataareas in softlists (no whatsnew) 2011-11-29 13:39:00 +00:00
Miodrag Milanovic
6b580bfefd Added more validation of softlist and cleared errors found (no whatsnew) 2011-11-29 10:46:43 +00:00
Miodrag Milanovic
4e3a633be2 Make softlist validation better (no whatsnew) 2011-11-28 14:50:36 +00:00
Miodrag Milanovic
68aa0f2f61 Placed softlist validation under validate (no whatsnew) 2011-11-28 12:46:11 +00:00
Miodrag Milanovic
e66539d7a1 Added validate lists option and removed on startup softlist validation (no whatsnew)
Highly improve startup time for drivers with big softlists
2011-11-28 11:55:36 +00:00
Miodrag Milanovic
465ff2d360 Fixed handling slot/image options so it's possible to override slot setting by softlist (no whatsnew) 2011-11-23 08:57:45 +00:00
Miodrag Milanovic
c041a6eddc Sync with MESS, OG work, credited there (no whatsnew) 2011-11-09 13:20:10 +00:00
Olivier Galibert
be2ada81fd http://www.flickr.com/photos/discoweasel/2851814771/ 2011-11-08 17:10:35 +00:00
Angelo Salese
aec813c34e Converted neogeo mvs driver to use software lists in preparation for
multislot support [David Haywood]

Please note: launching convention for Neo-Geo games is now the same as
MESS software lists "mame neogeo gamename" or "mame neogeo -cart
gamename".
2011-11-06 18:26:09 +00:00
Scott Stone
b6cd64c7ab "English doesn't borrow from other languages. English follows other languages down dark alleys, knocks them over and goes through their pockets for loose grammar!"
Hand-checked the most popular English word misspellings and made the appropriate changes.  Nearly all of the changes made were in commented areas. (no whatsnew)
2011-08-23 04:59:11 +00:00
Angelo Salese
c6e2fca80a Cleanups and version bump 2011-07-26 22:38:10 +00:00
Miodrag Milanovic
8e84c1f225 Fix for softlist loading (no whatsnew) 2011-07-25 14:56:23 +00:00
R. Belmont
6ca8f8a8c3 Fixes for variable shadowing [Oliver Stöneberg] 2011-07-21 13:19:08 +00:00
R. Belmont
0b06a96a58 GCC 4.6 fix (nw) 2011-07-19 00:21:30 +00:00
Miodrag Milanovic
32166a4e5c Update support for slot devices based softlists (no whatsnew) 2011-07-17 11:26:10 +00:00
Miodrag Milanovic
d7beedfe70 Made approx matches code to be used from one place (no whatsnew) 2011-06-15 18:35:13 +00:00
Miodrag Milanovic
9a2b931d6d Added display of approx matches in all lists in case of softlist item is missed (no whatsnew) 2011-06-15 17:59:58 +00:00
R. Belmont
1a23f8659b More GCC 4.6 fixes (no whatsnew) 2011-05-30 02:19:30 +00:00