Change log - May 21, 2017 - 09:22


* let's use Zaccaria as a demo for machine config in members

* order of initialisation (nw)

* well, that causes mpu4 to take way too much memory to compile, the changes to device instantiation still apply (nw)

* and ioports, too (nw)

* There's no day like today. This just follows up on the last commit: game drivers are less special special - they have configuration instantiated in the usual way.

* Goodbye MACHINE_CONFIG_FRAGMENT, it was nice knowing you.

(nw) This is a pretty minimal change. The point where the root device is added has been moved

from the MACHINE_CONFIG_START macro to the constructor of the machine configuration class (made

possible by giving drivers their own device types). This isn't the final change in this area.

The root device is still being handled specially in that its configuration comes from the game

driver structure. This needs to be harmonised with regular devices. But that's a job for

another day.

* seta.cpp: IRQ acks for calibr50 and usclssic (nw)

* Replace some custom palette inits with the appropriate standard callback

* Document non-MCU chip on Insector X (nw)

* xbox/chihiro: usb devices are now slot devices [Samuele Zannoli]

* emupal: Don't hardcode color PROM region name, add error handling

* ym2203: Avoid crash if MAME fatalerrors

* wwallyj: Add uPD4701A devices

* cabal: Add uPD4701A devices to trackball sets

* forgottn: Add uPD4701A device (nw)

* poundfor: Add uPD4701A devices

* floppy: Fix for a segfault when emulating HP9895 drive [F.Ulivi]

* horshoes: Add uPD4701A device

* eaglshot: Add uPD4701A device

* calibr50: Add uPD4701A device

* (nw) Removed duplicates from list of approximate software matches.

* Silly mistake I made when I was tired (nw)

* Fix crashes in -listxml in debug builds

* Make -listxml instantiate slot devices in slots rather than under the machine root

* Use dynamic_cast rather than static_cast or downcast on parent device in TI-99 slot/card devices

(nw) There are still very real issues present. When -listxml, -listroms, -verifyroms, etc.

instantiate individual devices, they don't have the information necessary to instantiate the

expected parent device. So slots won't be children of the bus they expect to be attached to,

and cards won't be in their usual slots. It's unsafe to use static_cast<> on owner at the

best of times, and doing anything with the result is likely to cause silent memory corruption

during listxml (this was previously happening with the TI-99 peripheral box slot device).

You can't use downcast<> at configuration complete time either, as that degenerates to a

static_cast<> in release builds anyway, and it will cause a crash in -listxml in debug builds

as we had before. The choices are to use a dynamic_cast and check the result before doing

anything with it before device start time, or wait for device start time and use downcast<>

at that point.

* Partially rewrite uPD4701 device and hook it up to a few Sega games

* Fixed some inaccuracies in file names in lua scripts.

* RIP timer_pulse (nw)

* New non-working clone added:

Star Trek: Voyager (stand-up version 1.002) [ShouTime, The Dumping Union, R. Belmont]

* multfish.cpp: convert to use hopper device (nw)

* (nw)Stratos: marked as not working, small cleanup.

* add hopper-like mode to ticket dispenser device

* New working clone added


Dottori-Man Jr. [hap]

* Machine promoted to WORKING

Hashire Patrol Car [MetalliC]

* Merge pull request #2311 from DavidHaywood/newsets

clones from Mathieu Patard

* mame.lst update

* new clones

Wonder Boy (set 6, 315-5179) [Mathieu Patard]

he also dumped a Football Champ board only to find the content was the same despite using a different Taito number for the rom that determines the region, so it's likely one of them is incorrect


* because in this case a Dipswitch determines the title, Taito might have actually shipped the same rom with different numbers (seems less likely tho, because the region byte also affects coinage etc.) this has been documented and the longname for the set updated to reflect the switchable title.

Also made euroch92 not a clone as it follows the 'sf2ce' rule, it's a re-released game with small updates, not an identical product, it likely has it's own Taito product code (although we don't currently have the correct ROM names for it)

* Merge pull request #2315 from 057a3dd61f99517a3afea0051a49cb27994f94d/throttle-fix

Fix video_manager::throttle_until_ticks (#2309)

* Remove the minimum constraint for sleep, thus avoid choosing a seemingly arbitrary constant.

* Relax the threshold to consider an oversleep as a system time change, in case of running on a heavily loaded system, as suggested by cuavas.

* Fix video_manager::throttle_until_ticks (#2309)

Do not update m_average_oversleep if we overslept too much.

This is still a partial fix, more investigation is needed when the system time jumps backward.

* Add support for ULTRA ROM on the Heathkit H19 (#2313)

* chihiro: usb hotfix (nw)