This is necessitated by an odd edge case where the LCD controller is addressed in 4-bit mode and the busy flag is polled continuously by setting R/W = 1, RS = 0 and E = 0 and then just waiting for DB7 to be cleared. In this case, the ordinary read operation will select an alternate nibble each time, resulting in spurious values.
Hitachi's HD44780 datasheet does not actually recommend this polling method, so it might actually be for one of the many compatible LCD controllers from other manufacturers.
--------------------------------
Lady Liner (encrypted, set 1) [Team Europe, Roberto Fresca]
Lady Liner (encrypted, set 2) [Team Europe, Roberto Fresca]
Lady Liner (encrypted, set 3) [Team Europe, Roberto Fresca]
Lady Liner (encrypted, set 4) [Team Europe, Roberto Fresca]
Due to ppas used the travis-ci only works when trusty is being used. With xenial being the default as of August 2019 the builds fail most of the time. Request trusty explicitly until the CI configuration can be migrated to a more recent Ubuntu release.
* Improved encapsulation between video and machine SoC periperals;
* Split up HWs in individual files where they don't belong to Crystal System HW, makes future development easier;
* Untangled reads/writes to draw/display bankswitches from screen_update, now they can be unthrottled safely;
* Added CRTC screen raw parameters;
* Add DMA hold feature and clear irq on mask writes, specific for P's Attack;
* Improved Cross Puzzle flash loading, currently failing at POST for a SPU error;
nexus3d.cpp: add some preliminary work, currently does some VRender3d pipeline fill with a debug trick [Angelo Salese]
(out of whatsnew)
Some stuff definitely needs fine graining, like removing the few lines that are still necessary to configure the VRender0 from driver files, which I'm gonna do in my next feature branch.
In C++98/03, basic_string::c_str() was allowed to be a reallocation to insert the null terminator. MAME is ensuring this actually happens with a do-nothing call to c_str().
In C++11 and later, this is prohibited, and the string is mandated to be always null terminated. As a result Visual C++ marks c_str() with [[nodiscard]], triggering a warning here for discarding the result.
(I don't know of any C++03 implementation that actually reallocates here, but just in case this code actually targeted such an implementation I've just suppressed the warning for now. If MAME only targets C++11 or later, we should fix it by deleting the line.)