Tafoid brought to my attention a recent regression caused by my softlist changes. Specifically, this failed:
mame odyssey2 -cart1 voice -cart2 bees
The reason is that the recent refactoring caused some critical softlist logic to be bypassed. Essentially device_slot_interface::get_default_card_software() provides a technique for devices to inspect softlists and select slot options to be specified. In the case above, the selection of the "voice" software list item in the first cartridge slot requires get_default_card_software() to be called to specify the o2_voice slot device, which in turn adds the second cartridge slot. Skipping this caused '-cart2' to stop being recognized.
This is an attempt to fix the problem. In some ways, this doesn't go far enough - the astute observer will note that mame_options::reevaluate_slot_options() looks a lot like mame_options::update_slot_options(); part of me wants to just rip the latter out. In the long run, device_slot_interface::get_default_card_software() should be reevaluated; having a hook is a good idea but it should be a pure function that doesn't alter state.
Since the RDP is not currently scheduled for its own timeslices,
this will allow the RSP interrupt from graphics tasks to arrive
at the main CPU first. In some instances, the RSP timeslice
would end after the RDP had been sent the full sync command, but
before the RSP could finish its task. No issues were manifest if
both RSP and RDP interrupts arrive at the same time, but it is
still expected that the RSP interrupt should arrive first.
The use of a DS2401 "ID" in tabpkr is inferred from the code. The data supplied for it is totally artificial, and the chip may have been stripped from the PCB pictured on citylan.it.
Much still needs to be learned about the HW of these games. The emulation doesn't display even error codes yet.
__________________
Penguin Brothers (Japan, bootleg) [Rod_Wod, Team Europe and The Dumping Union]
This has quite different hardware: standard 68000 instead of TMP68301 and 4 FPGAs (3 A40MX04 and 1 A54SX16A) . Also, GFX regs/offsets and sound need work. (nw)
This undoes a small part of c6ef2746d4. Changing "*" to nullptr here looks like a fundamentally unsound hack, even though the validity checker now uses it as a convenient flag (see the similar change in 3ecdaafea6).
__________________
Karnov (Japan, bootleg with NEC D8748HD) [The Iron Goat]
This uses a D8748HD instead of a I8751. It will need to be simulated / emulated, if dumped. (nw)
Added year of publication for Blair Rideout's Interceptor (Scramber clone) based on it being described as a new game in the System Software Christmas 1983 catalogue.