* [bit90] fix issues with logging, combine drivers with BIOS mechanism, protect read functions against debugger side effects
* [bit90] Use multiple ROM_REGIONS and ROM_BIOS, because you can!
ioport.cpp:
* better than 50% reduction in compile time, and better locality for static data
* better encapsulation, const correctness and noexcept usage
* vt1682 alu is now a device (nw)
* prepare to make times devices (nw)
* push timer logic into devices (nw)
* naming fixes (nw)
* useful trampoline (nw)
* (nw)
* hmm timer math, I'm not sure about timer math (nw)
* messing with rasters (nw)
* move zone40 to vt1682, while it definitely isn't plain 1682 I think it's more likely closer to it than it is to SunPlus
* When a switch-type input is selected, show feedback when it's pressed
* If an invalid code is entered (e.g. only negatives) abandon the change rather than cycling default/none
* If an invalid code is entered display a message until the user takes some other action
input.cpp updates:
* constexpr crusade on input_code and input_seq and some very slight optimisation to input_seq
* seq_poll* is a frontend function and had no business being in the core, so it's a utility class now
* seq_poll* now exposes a bit more detail, enabling improved interaction on the UI inputs menu
* global state is reduced a little, but the poll_* functions are still members of the input manager with global state
(nw) The Lua engine has been updated in a way that maintains source compatibility with existing Lua
scripts. This is less than ideal, but it minimises impact. Ideally someone (possibly me) will be
able to expose the input sequence poller helper properly. I tested the changes with the cheat and
autofire plugins and I was able to assign sequences. However I found two issues: it's seems
impossible to assign a more complex sequence than a single key/button in the autofire plugin (i.e.
no AND or NOT conditions, I confirmed this is pre-existing, not a regression), and in both the cheat
and autofire plugins I found it a bit unwieldy trying to enter a complex sequence without live
feedback of the sequence as it's built (this was also applicable to MAME's own input mapping menu
until I added the live display yesterday).
PORT_CONDITION can now enabled/disabled the display of PORT_ADJUSTER
sliders in the UI, i.e.
PORT_START("SOMEPORT")
PORT_ADJUSTER(...) PORT_CONDITION("OTHERPORT", ...)
(nw) It's annoying that if you accidentally start to change an input, there's no way to
back out at all. You need to press something before it will do anything. Also, if you
go to add an additional "or" combination and press the wrong thing, you can't back out
just the change - hitting UI_CANCEL takes you back to the default. This at least
partially addresses it: if you hit UI_SELECT to modify an input then hit UI_CANCEL
immediately, it will cycle default/none; however if you press any other input first and
then hit UI_CANCEL, it will just back out the change. The implementation is a bit
whacky at the moment, but doing better would require another emu.h change which I don't
want to do right now.
------------------------------------------
Fishing Master [SpinalFeyd, The Dumping Union]
Metabee Shot [SpinalFeyd, The Dumping Union]
New clones marked as NOT_WORKING
--------------------------------
Oba-Oba (old hardware) [PinMAME]
Space Train (Pinball, old hardware) [PinMAME]