---------------------------------
The Key Of Avalon 2.5 - War of the Key (server) (Rev B) [ShouTime, rtw]
The Key Of Avalon 2.5 - War of the Key (client) (Rev B) [ShouTime, rtw]
- Add NVRAM to Power Kick and Othello Derby; document the reset mechanism for the latter
- Add ticket dispenser to Power Kick (seems to work for the most part)
- Remove numerous bogus DIP switches
- Thoroughly reconfigure coin inputs in Power Kick, adding counters and lockouts for all three (including the "Key In" input that really isn't)
- More meaningful settings for the "Payout" DIP switch in Power Kick (based on program code)
Take note that I eliminated make_readonly(); here is why I think the calls were unnecessary:
1. All image loads through softlists are done through common_process_file(), and thus going to be readonly anyways
2. The cassette.cpp call to make_readonly() seems to be a residual hack, if a failure occurs the image will be unloaded anyways
- Create class ui::machine_info for holding calculated machine info and generating descriptive strings for the UI. This absorbs a number of unimportant core functions that existed only for the UI's convenience.
- Ticket dispenser now works for real, dispensing on command rather than like crazy
- Correct "Payout Mode" DIP settings
- Correct DSW1 settings in Pyon Pyon Jump
- Rename coin inputs and coin-related DIP switches and reorder them by increasing denomination
- Remove bogus "Unknown" inputs that aren't actually used
- Full character names only for Kuru Kuru Pyon Pyon (except in bookkeeping mode)
- Reset button now mapped as "Memory Reset" (though it also resets the program)
- Random notes based on program code
Seems on real hardware the high address line for FE-FF rom is swapped so we need to do this manually as we load the rom. Confirmation that the current rom image is correct via several sources dating back to at least 2012.
- Alter a bunch of address maps so all validity checks pass. These includes global address masks in Hexaa and the Newbrain FDC (regression testing should be done here).
- Remove the Lisa wraparound read/write handlers.
There was little to no advantage in calling the various subdevice
bs, f1 and f2 early/late functions through function pointers.
The original idea was to make this configurable, which it isn't.
The hardware, or schematics, define the functions and they are
(almost entirely) static anyway.
By removing the function pointers and inlining the appropriate calls
into switch/case statements there's a speed improvement of ~ 2.5x here,
seen while the diablo bitclk is not running.
On pull request #1200, MASH identfied a regression caused by recent changes to rom_entry handling. That said, I disagreed with his proposed fix because the code did a backwards scan for ROMENTRY_ISEND. I don't think this is correct; ROMENTRY_ISEND should only work for forward scans, and it probably worked by accident simply because rom_entry structures were likely allocated back to back.
As far as I can tell, my proposed change seems to work but I'm somewhat fuzzy on the interactions between BIOS ROMs and devices, and it is possible that I'm neglecting a use case.