Change log - April 06, 2017 - 10:18 AM


* chihiro: minor update (nw)

* Introduced an 'util::arbitrary_clock' template class, to represent a clock that "knows" when the epoch starts (#2010)

* Introduced an 'util::arbitrary_clock' template class, to represent a clock that "knows" when the epoch starts


- Converted the NTFS filetime code to use util::arbitrary_clock

- Converted the Mac datetime code to use util::atribrary_clock

This is in preparation for a bigger change to Imgtool where I eliminate usage of time_t

* nes.xml: new dumps

Adan y Eva [hashes were known, but ROMs surfaced on No-Intro]

AV Super Real Pachinko [Frank Cifaldi]

nes.xml: Marked edu2k48 as working, added notes about mouse titles.

Made koko not use battery-backed WRAM as evidenced on PCB picture. (nw)

bus/nes/waixing.cpp: Slight modernizations. waixing_sgzlz_device is now implemented the way CaH4e3 does it, also gets some titles mostly working in full. (nw)

fc_suborkey_device: Make PgUp and PgDown keys actually work (nw)

* Ipt service button fixes & cleanups (#2085)

* realbrk.cpp Remove service button hard coded keycode assignment

Remove hard coded key assignment and use default mapping.

Mame Testers Bug:

* albazc.cpp (hanaroku) Use standard inputs & key assignments.

Use standard inputs consistent with other hanafuda games.

(hanafuda games usually have a mahjong panel for input)

Remove hard coded IPT_SERVICE assignments.

Mame Testers Bug:

* aleck64.cpp Correct Service/Test Button assignments.

"Service Mode" which is assigned to IPT_SERVICE is not located in aleck64.cpp - No changes.

"Service Button" is assigned to IPT_SERVICE1 (Hard coded keycode removed & default used).

"Test Button" is assigned to IPT_SERVICE2 (Test Button is not displayed in Machine input....).

Mame Testers Bug:

* amaticmg.cpp (suprstar) Remove hard coded keycode assignments

Remove hard coded key assignment and use default mapping.

Mame Testers Bug:

* ampoker2.cpp Make various key assignments consistant

Cleanup different assignments for the same buttons across supported games while still keeping true to the Game Notes / Operation instructions.

1. Make "Operator Key" consistant (Use IPT_GAMBLE_SERVICE)

2. Make "Supervisor Key" consistant (Use IPT_SERVICE2)

3. Make "Hopper 1" consistant (Use IPT_OTHER, KEYCODE_Y)

4. Make "Hopper Out" consistant (Use IPT_OTHER, KEYCODE_G)

5. Make "Hopper Low" consistant (Use IPT_OTHER, KEYCODE_H)

6. Make "Return Line" consistant (Use IPT_OTHER, KEYCODE_J)

7. Make "Coin Refill" consistant (Use IPT_OTHER, KEYCODE_R)

8. Make "Payout" consistant (Use IPT_GAMBLE_PAYOUT)

9. Make "TILT" consistant (Use IPT_TILT)

10. Make "Double" consistant (Use IPT_GAMBLE_D_UP)

Mame Testers Bug:

* albazc.cpp: Assign "Data Clear" to IPT_MEMORY_RESET

Assign "Data Clear" to IPT_MEMORY_RESET

* albazc.cpp Change "Medal In" & "Pay Out" to standard buttons

Change "Medal In" & "Pay Out" to standard gamble service buttons (Previously standard service buttons).

Change Lockout "Key" to PORT_TOGGLE type.

* albazc.cpp Correct "Payout" button to use "IPT_GAMBLE_PAYOUT".

Payout operation has been clarified and noted at start of driver.

Correct "Payout" button to use "IPT_GAMBLE_PAYOUT".

* albazc.cpp Add Todo: Hookup hopper & Addresses.

Add Hookup hopper to to do list.

Add hopper activity addresses to notes.

* albazc.cpp Correct IPT_SERVICE assignments

Rework PR to merge with commit

Set IPT_SERVICE & Double up buttons as standard assignments.

Set "Ext In 1" & "Ext In 2" as IPT_OTHER.

* New device interface for palettes

- Create device_palette_interface, which takes over most functionality from palette_device except for the initialization/decoding routines and RAM interface.

- Update screen_device and device_gfx_interface to use a device_palette_interface object rather than a palette_device. This necessitates slight alterations to a few drivers and devices.

- Modify v9938 and v9958 to use the new device_palette_interface rather than a subdevice. This entails breaking a cyclic dependency between device_video_interface and screen_device for this case.

* Refactoring in response to MT#6531

Prior to this change, options for images and slots were stored in the emu_options collection. Anything that might restart the emulation (such as slot changes and images that reset on load) had to manipulate the emu_options structure directly. The dynamic nature of images and slots meant that some elaborate conventions for setting up this collection had to be understood by clients.

After this change, emu_options has two new members (image_options and slot_options) that expose image and slot selections via an std::map. Anything that changes images or slots in a fashion that needs to persist across sessions needs to modify these data structures. Additionally, some of the hairly logic (e.g. - get_default_card_software) now records its data here rather than trying to subvert the core_options system.

This is how MT#6531 was fixed; now when diimage.cpp sees an image that resets on load, it just modifies the image_options structure and forces a reset. This allowed some further cleanups to happen within diimage.

This should be considered a very risky change, and scrutiny/feedback is welcome. In particular, there seems to be functionality surrounding device bioses that I'm not 100% sure how it works; the syntax seems to imply that it only works on slot devices.

* Changed a lookup within the softlist code to use std::find_if()

* new not working machine


Tokyo Cop (US, kit version) [Mark F., Smitdogg, The Dumping Union]

* New not working machine


Ring Riders (Software version v2.2) [Mark F., Smitdogg, The Dumping Union]