* bus/nes_ctrl: Work on Famicom joypads + more separation of EXP port.
- Enforced proper strobe behavior on joypads. Added helper function to controller interface for common pattern.
- Added proper expansion port version of joypad.
- Streamlined pachinko controller by making it an expansion joypad subclass. Moreover, ball launch lever now works correctly!
- Added missing battery-backed WRAM to Pachio-kun 5, game runs now.
- Simplified arcade stick a bit, now also a subclass of the expansion joypad.
- Rewrote Hori Twin and 4 Players adapters. The latter's 4P mode protocol now works. In theory this supports six players simultaneously, though all known games using it have duplicate controls for P1 and P2.
machine/nes.cpp: Removed hack that shifted bit 0 reads to support controller port joypads on expansion port. There shouldn't be any expansion port devices left that write to bit 0.
* Fix missing battery-backed WRAM for Royal Blood and Vegas Connection, while we're at it.
* k054000.cpp: fixes MT 06393, MT 07839;
* k054000.cpp: convert access to address map;
* Convert all drivers using k054000 to access with address map, fix gaiapols and bucky ranges;
* vendetta.cpp: fix overdriven sound (noticeable on first boss);
* tmnt.cpp: fix Thunder Cross II overdriven sound;
* k054000.cpp: initialize variables at machine_reset time;
* k054000.cpp: move collision dump to a debug compile switch;
* tmnt.cpp: make thndrx2 to bypass protection checks via ROM patch, acknowledge it with 14D bad, demote it to MUP, describe rationale;
* k054000.cpp: srcclean;
Trying to replace a non-existent device or trying to add a device with
root or parent references in the path is now fatal. If you find
yourself wanting to do this, your design is probably broken.
- Removed read_exp call from fcpad2. The FC expansion port is not tied to the relevant line at all.
- Replaced with read_bit2 in the control port interface for the same purpose.
- Separated JOYPAD inputs from MIC. The microphone shouldn't be mixed with button inputs' shift register.
machine/nes.cpp: Also removed read_exp calls on FC control ports. Other than the microphone on fcpad2 nothing used these (nor should they as the only line in common is $4017 bit 0, which in general is never used by the expansion port).
Added pseudo format specifiers to controller port names: %p for player
and %% for literal percent symbol. This lets you get the localised
player identifier in overridden input names (see NES and Neo-Geo for
examples), and reduces the number of messages to translate.
For translators, the new messages are mostly previously existing
messages with wording adjusted for clarity (e.g. referring to "media"
rather than "ROMs" in several places, as things like disk and tape
images are included). It's also possible to localise the "???"
dipslayed for an input without a valid name, but that should never
actually appear in practice.