- Removed some c_str() calls when using util::zippath_parent()
- Removed the error code return value from set_image_filename()
- Consolidated error code translation (osd_file::error ==> image_error_t) in image_error_from_file_error()
- Other cosmetic improvements
- Always print the name of each driver checked with -validate -verbose, and print before beginning the check to help detect crashes
- Fix already_checked test so that softlists get validated the first time, not every time but the first
- Remove #include "validity.h" where not required (nw)
- attotime::from_double cannot be constexpr because it uses floor (nw)
* Mark lots of things constexpr in attotime and turn macros into functions
* Add base classes for HLE matrix keyboard and buffered RS232 device
* Make generic keyboard/terminal more usable
* Keyboard has configurable typematic delay/rate
* Keyboard has selectable JIS/ANSI layout
* Keyboard handles simultaneous keypresses more intuitively
* Keyboard uses meta to set high bit
* Terminal has configurable auto LF on CR, auto CR on LF and local echo
* Terminal has audible bell
* Untangle Olivetti M20 keyboard from generic_keyboard
* Add notes to Olivetti M20 keyboard emulation
* Make Olivetti M20 keyboard match physical layout
* Untangle RM Nimbus keyboard from generic_keyboard
* Fix natural keyboard mode with RM Nimbus
* Untangle x68k keyboard from generic_keyboard
* Improve x68k key names and mapping
* Improve x68k typematic behaviour
* Untangle QX-10 keyboard from generic_keyboard
* Keep NGEN keyboard barely working
- Remove the loaded_through_softlist virtual method and add a boolean getter with the same name, replacing a few variables that provided similar but redundant flags.
- Remove call_softlist_load, which the previous change reduces to a simple, unnecessary wrapper.
- Fix stupid logic errors in software_list_device::internal_validity_check
- Allow info and feature list entries to provide an empty string as the value
- Change a couple of null publisher entries in vz_cass.xml to "<unknown>"
* Added several missing functions to rgbgen
* Fixed logical shift right in rgbgen
* Fixed sra that should be sra_imm in rdptpipe
* Added some simple SSE4.1 optimisations in rgbsse
* Re-organised rgbsse, rgbvmx and rgbgen to be in more logical order
* Fixed return on some modifying operators
* Made some more reference parameters const
* Removed inline qualifier from a number of methods as it's implied when body is present at declaration
* Mark some constructors explicit
- Individual crosshairs are now first-class objects, rather than bits of state scattered across half a dozen arrays. The class is named render_crosshair with a view towards incorporating crosshairs into layouts in the future, rather than managing them separately as crosshair_manager still does now.
- Removed the old crosshair_user_settings interface for adjusting crosshair settings, since the UI can access the new crosshair objects directly.
feversoc.cpp: Hook up EEPROM; remap buttons, hook up lamps and serial RTC [AJR];
rtc4543.cpp: More complete implementation with better logging features. Added JRC6355E variant used by feversoc. [AJR]
Fix problem using layout_element::texture in vector - destructor frees resources but generated copy/assignment operators don't release them, leading to a problem any time vector expands or element is added/removed anywhere but end
It's actually a very old bug that was uncovered. Direct access update
mistaked the per-handler mask and the global mask. As it happened the
per-handler mask was often the global mask, but I made the frontend
*way* more agressive w.r.t masks now. So the bug became way more
visible.
- Added AM_SELECT/addrselect field. Replaces the old
AM_MIRROR/AM_MASK combo used to mirror a handler and get the mirrored
bits in the offset.
- Removed mask and/or mirror from where it didn't belong. Simplified
a lot of instances of mask that just weren't needed, especially in bus
handlers. Used the short forms of install handlers where possible.
- Replaced the 60s hippy, "It's cool man" range parameter handling in
map_range that tried to guess what was meant when the values passed
were not entirely sensible, by a cranky, diner waitress-turned IRS
auditor curmudgeon. Main control function has a series of 14 tests
just to find a reason to fatalerror out your requests. You have
been warned.
Some drivers, hopefully not many, will fail the gate-guarding
bureaucrat trials. Should be easy to fix actually, I worked on the
error messages. A full regression test would be welcome.
* Eliminate globals/file statics
* Remove lots of stuff from global scope
* Use std::function for custom command registration
* Eliminate some trampolines
* Build fixes from Vas Crabb and balr0g
* added simple procedural texture for vectors with rounded line ends and beam smoothness
* added optional -vector_beam_smooth option
* removed -antialias option, antialiasing is now always applied, except for plain D3D
- fixed offset of vector lines and clipping rectangle when vector primitives are prepared to be rendered into a texture (HLSL) instead of directly on the screen (GDI, D3D)
Psikyosh uses bitmap_rgb32, but should really use argb32, but that requires overloading lots of drawgfx for this one driver. Removed assert was wrong and unavoidable. Fixed boundary condition tripping daraku as per MT3753.
Inputs marked as optional should be controls that are not required for normal operation and may not be hooked up on actual hardware, but are still worth emulating because the hardware does respond to them in some way. Currently this flag is only exposed through the Lua interface and "reqbuttons" XML field; the intent is for frontends to map all optional buttons by default if this is possible and convenient. MT #6136 has inspired the addition of this flag to gijoe and clones.
Remove the generally useless PORT_UNUSED to make way for PORT_OPTIONAL; IPT_UNUSED, which most drivers were using already, is a better way of disabling unused fields. (nw)
- Completely move mouse hit testing down into the UI input module. This reduces some dependencies.
- Never return a null pointer from ioport_field::name() to prevent potential crashes. All anonymous inputs are classified as INPUT_CLASS_INTERNAL, so several frontend functions now check type_class instead.
- Correct a couple of typos.
This new softlist feature is now used by genesis_tmss to exclude several entries from megadriv.xml.
- Use popmessage instead of osd_printf_warning for incompatibility warnings
- Unify some common software loading code, which reduces indentation levels in clifront.cpp
- Separate watchdog implementation from running_machine (once again) and driver_device
- Old-style methods, now hidden behind #ifdefs, will probably be safe to remove soon
luaengine: callbacks for plugins (nw)
rendlay: layout tag external handler support (nw)
fidel_csc and mdndclab: example layout scripts (nw)
--
Neither layout script is complete. The chess doesn't handle castling or en passant and the Dungeons and Dragons only does the walls.
- Boolean parameter to running_machine::run is no longer firstrun (which is now a member variable of mame_machine_manager) but quiet, which disables logging and audio recording without explicitly checking the system name.
- Sound recording is now turned on and off by explicit calls. The potential uses of this have not been explored.
- Dependencies reduced on drivenum.h, where the declaration for GAME_NAME(___empty) has been moved to.
Replace the old device_iterator and its specialized versions with functionally equivalent classes that use standard operators to yield references to devices/interfaces rather than pointers. With range-based for loops, they no longer have to be stored in named variables, though they can also be reused concurrently since the iteration state is now maintained by a subclass.
Add a few more typical getters to device_t::subdevice_list.
Rewrite or remove every last instance of MCFG_DEVICE_CONFIG and its two aliases, including within comments and dead code.
Make the Z80/Z180 daisy chain an interface that interfaces with the existing interface. Z8000 has been hooked up to this as well (p8000_16 already configures it), but currently does nothing with it.
(not user selectable) piece of software and updated a few options
and menu to acknowledge such possibility. [Fabio Priuli]
macs.cpp: Converted to use generic cartslot with fixed software
configuration. Cleaned up loading and banking systems in the driver
as a result. [Fabio Priuli]
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 :-)
Revert software-installed slot/image options when changing software [AJR]
Remove emu.h's stealth include of emuopts.h through mconfig.h; reduce dependency on emuopts.h in other headers and source files.
MCFG_CPU_FORCE_NO_DRC is now a CPU configuration parameter rather than a global one; it still works to override the -drc option setting.
- Remove emu.h's stealth include of emuopts.h through mconfig.h; reduce dependency on emuopts.h in other headers and source files.
- MCFG_CPU_FORCE_NO_DRC is now a CPU configuration parameter rather than a global one; it still works to override the -drc option setting.
It's damn slow, ~50ms/frame on cdkong. Caching and/or hw accel will
solve that easily. It doesn't look very good, nanosvg need better
anti-aliasing. It also doesn't do texturing very well and images not
at all, so some of our current svgs won't look good. But all that's
fixable.
This simplifies an old piece of MESS code that failed to properly classify paddle, pedal, positional and dial inputs, along with many of the less-common digital inputs. MT #06172 should be fixed by this.
The distinction between INPUT_CLASS_MISC and INPUT_CLASS_INTERNAL makes more sense now, though nothing makes use of it.
C++11 range-based for loops can now iterate over simple_list, tagged_list, core_options, device_t::subdevice_list, device_t::interface_list, render_primitive_list and all subclasses of the above, and much code has been refactored to use them. Most core classes that have these lists as members now have methods that return the lists themselves, replacing most of the methods that returned the object at an owned list's head. (A few have been retained due to their use in drivers or OSD.)
device_t now manages subdevice and interface lists through subclasses, but has given up the work of adding and removing subdevices to machine_config.
memory_manager has its tagged lists exposed, though the old rooted tag lookup methods have been removed (they were privatized already).
and -plugin highscore (will enable just that plugin)
and -noplugin highscore (will disable just that plugin)
plugin/noplugin use comma separated list of plugins