-----------------------------------
ibm5150: Prince of Persia v1.0 [ArcadeShadow]
ibm5170: Monkey Island 2: LeChuck's Revenge, Space Quest V: The Next Mutation [ArcadeShadow]
- more use of c++ features
- some CRTP in pfmtlog
- demangled code for truthtables
- use more constexpr
- rewrite main loop
- use default constructors and assignment operators were applicable.
- optimized 7448 and 9316
All of this has decreased startup time by approx. 25% to 30%. Complex
netlists like pong or kidniki are parsed, analyzed and constructed in
around 15 ms. Run performance has increased by about 5%.
All in all not to bad. A game like pong uses a clock of 7 MHz (after
division by 2). Thats 14 MHz clock invocations. Running at over 200%, 28
MHz. On a 3.9 GHz Machine about 140 cycles/clock change.
[Couriersud]
This fixes crashes invoked by the following command lines
mame nes zelda
mame gamate cubeup
These had two independent causes. The first crash was a consequence of open_image_file() doing something inappropriate required by implementations of get_default_card_software(). The second crash was a failure to access image options moved outside the core_options structure.
* Introduced an 'util::arbitrary_clock' template class, to represent a clock that "knows" when the epoch starts
Also:
- 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
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)
* realbrk.cpp Remove service button hard coded keycode assignment
Remove hard coded key assignment and use default mapping.
Mame Testers Bug:
http://mametesters.org/view.php?id=6489
* 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:
http://mametesters.org/view.php?id=6489
* 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:
http://mametesters.org/view.php?id=6489
* amaticmg.cpp (suprstar) Remove hard coded keycode assignments
Remove hard coded key assignment and use default mapping.
Mame Testers Bug:
http://mametesters.org/view.php?id=6489
* 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:
http://mametesters.org/view.php?id=6489
* 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 0bc96f38f1
Set IPT_SERVICE & Double up buttons as standard assignments.
Set "Ext In 1" & "Ext In 2" as IPT_OTHER.
- 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.
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.
-----------------------------------
Gaelco Championship Tuning Race [Mark F., Smitdogg, The Dumping Union]
Also renamed the driver from tokyocop.cpp to gaelcopc.cpp. Other game on this hardware is Ring Riders. (nw)
pstring:
- added support for UTF16LE to pstring.
- renamed size() to mem_t_size()
- renmaed len() to length()
- added size() == length()
- added empty()
- added simple compare()
pfmtlog:
- Simplified pfmtlog, added more c++
pdynlib:
- add a dynproc type to dynlib to wrap dynamic library calls.
various:
- fix two coverty scan issue.
- various clang warnings fixed.
(nw)