Change log - May 05, 2017 - 09:40 AM


* Overhaul to how MAME handles options (#2260)

This is an overhaul to how MAME handles options to provide a better foundation for what MAME is already doing in practice. Previously, core_options was designed to provide an input/output facility for reading options from the command line and INI files. However, the current needs (image/slot/get_default_card_software calculus and MewUI) go way beyond that.

Broadly, this PR makes the following changes:

* core_options now has an extensibility mechanism, so one can register options that behave dramatically differently

* With that foundation, emu_options now encapsulates all of the funky image/slot/get_default_card_software calculus that were previously handled by static methods in mameopts.cpp. Changes to emu_options should not automatically cascade in such a way so that it stays in a consistent state

* emu_options no longer provides direct access to the slot_options/image_options maps; there are simpler API functions that control these capabilities

* Many core_options functions that expose internal data structures (e.g. - priority) that were only really needed because of previous (now obsolete) techniques have been removed.

* core_options is now exception based (rather than dumping text to an std::string). The burden is on the caller to catch these, and discern between warnings and errors as needed.

Obviously this is a risky change; that's why this is being submitted at the start of the dev cycle.

* tmaster.cpp: Audio rom correction (nw)

Even though the PCB the Touchmaster 3000 eval roms came had the original v1.0 sound rom, the game clearly should have the 3K sound rom based on missing sounds in the newly added Kick Champion game.

* mac128/mac: fix recent regressions from VIA changes (nw)

* Merge pull request #2279 from ajrhacker/acommand_tmap

* acommand: Use tilemap device

* Merge pull request #2278 from JoakimLarsson/vectrex_via

via6522: fixed the flank timer value

* via6522: fixed the flank timer value which improved but not completelly reverted the vectrex regression

* spoker.cpp: identified some dips (nw)

* acommand: put score 7segs in internal layout (nw)

* Fix 6800 invalid instructions length / Program counter behavior. (#2274)

* Fix random crash while drawing characters at the screen borders.

* draw_char_40 & draw_char_80 : use of std::min.

* Fix invalid instructions length. Each 6800 invalid opcodes have a different behavior.

This commit fix the PC increment of each invalid opcode execution.

There is three groups of invalid opcodes :

One byte invalid opcodes/instructions :



Two bytes invalid opcodes/instructions :


Three bytes invalid opcodes/instructions :


Behavior checked from the Visual 6800 and the real hardware (goupil computer)

* cosmetic changes : invalid opcodes renamed.

* Fix off-by-one error (nw)

The +1 was previously needed becasue std::string::assign(char*) expects

the string to be NUL-terminated. The final NUL is not part of the

result. It's not needed when adjusting the length of the string

directly. Can people please be careful when refactoring, and alo when

reviewing pull requests? This stood out immediately.

* acommand: add todo note (nw)

* fresh: Add some sound

* Merge pull request #2072 from startaq/tilemap_category

UI: Add the ability to select different tilemap categories

* UI: Add the ability to select different tilemap categories

This allows you to select different tilemap categories in the

built-in tilemap viewer. The default is to render all categories

(same as before), but you can select to render only a specific

tilemap category with the PAGE_UP and PAGE_DOWN keys.

* new machine added as NOT_WORKING


Quest of D Oukoku no Syugosya Ver. 3.02 [ShouTime]

security PIC is missing

* new machine added as NOT_WORKING


Quest of D The Battle Kingdom [ShouTime]

* msm5205: Use clocks_to_attotime (nw)

* Merge pull request #2277 from npwoods/minor_chd_metadata_loading_improvement

* Minor improvement to CHD metadata loading

Writing into an std::string is now legal with C++11