by devices being always tagged as P1 inputs in -lx. [Fabio Priuli]
this proposed solution increases the field.player() value whenever the
owner device changes, unless the input is a keyboard: in this way we
correctly number pads and other controllers connected via slot devices to
consoles/computers, at price of tagging as 3-player games a few arcades
(e.g. those in cubo.cpp) which have two controllers + a touchscreen
attached through a separate device...
I start to think that maybe we shall re-think the idea of logging the number
of players of a game, but I'm open to suggestions.
- Eliminate the cached device_t::m_region pointer and its region() getter method. Devices that need to bind to a region with the same tag should use optional/required_memory_region or optional/required_region_ptr with DEVICE_SELF as the subtag; this improves error checking. (DEVICE_SELF has been moved to device.h for greater visibility in the source.)
- Allow required/optional_region_ptr to specify a specific length which must match that of the region found.
- Implement finder_base::finder_tag() getter for diagnostic purposes.
- Perform some (not very efficient) validity checks on memory region finders instead of allowing them to automatically pass.
- Privatize device_memory_interface::m_addrspace.
'number of buttons' is rather pointless in the context of home systems with configurable controllers
(being them keyboards, keypads or joypads). Now the various controllers are listed separately with the
number of buttons they have. Frontend authors who relied on the "buttons" attribute of the input node
for any kind of filter shall now scan all available controllers and take the maximum among their "buttons"
attribute (possibly discarding keyboards and keypads if they want) to recover the old value. [Fabio Priuli]
info.cpp: Started to acknowledge PORT_16WAY inputs in -lx, since they were reported as 8-ways
so far. [Fabio Priuli]
out of whatsnew: most of the code was written almost 1 year ago, when MAME was still using
tagmaps, and only recently updated to current coding conventions: if you see any place where
C++ syntax can be exploited more just let me know :-)