- Complete support for Witch Royal, from Video Klein.
- Reworked the button-lamps layout to get the hold
buttons more centered.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Witch Royal (Export version 2.1) [Roberto Fresca, Team Europe]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Major Poker (v2.0) [Roberto Fresca, Tomasz Slanina, Rob Ragon]
driver_device classes have an m_ prefix on them. When we
eventually move functions using these into member functions,
we will be able to remove the state-> pointers, and having
the member variables prefixed will allow them to be
distinguished from local variables.
Some regex'es used (plus manually fixing the remaining stuff):
In src/mame/...
state->([a-zA-Z_][^_][a-zA-Z0-9_]*)
state->m_\1
state->([^m]_[a-zA-Z0-9_]*)
state->m_\1
state->m_save_item
state->save_item
state->m_save_pointer
state->save_pointer
(AM_BASE_MEMBER *\( *[a-zA-Z0-9_]+ *, *)([a-zA-Z_][^_])
\1m_\2
(AM_BASE_SIZE_MEMBER *\( *[a-zA-Z0-9_]+ *, *)([a-zA-Z_][^_][a-zA-Z0-9_]* *, *)([a-zA-Z_][^_])
\1m_\2m_\3
(AM_SIZE_MEMBER *\( *[a-zA-Z0-9_]+ *, *)([a-zA-Z_][^_])
\1m_\2
m__
m_
In src/mame/includes/...
(\t[a-zA-Z0-9_<>]+[ \t]+[&*]*[ \t]*)([a-zA-Z_][^_][][a-zA-Z0-9_]*;)$
\1m_\2
(\t[a-zA-Z0-9_<>]+[ \t]*[&*]*[ \t]+)([a-zA-Z_][^_][][a-zA-Z0-9_]*;)$
\1m_\2
Comment:
This is a simple replace of:
ADDRESS_MAP_UNMAP_HIGH
to
AM_RANGE(0x0000, 0xffff) AM_NOP (or ffffff for 16-bit cpus)
Until the pinball drivers begin to be worked on and considering how slowly most of these drivers run while essentially doing nothing but displaying a picture, this change greatly increases the performance allowing for quicker regression checks.
Use a named memory area instead of either generic spriteram or
a state-specific spriteram to allow sei_crtc.c to find the
spriteram for games that use it.
Added new macro MACHINE_CONFIG_DERIVED_CLASS() which works just like
MACHINE_CONFIG_DERIVED() except you can specify an alternate driver_device
class. Used this in the 8080bw.c games which require an _8080bw_state, but
derive from mw8080bw_root which has the base class mw8080bw_state.
Remove redundant machine items from address_space and device_t.
Neither machine nor m_machine are directly accessible anymore.
Instead a new getter machine() is available which returns a
machine reference. So:
space->machine->xxx ==> space->machine().xxx
device->machine->yyy ==> device->machine().yyy
Globally changed all running_machine pointers to running_machine
references. Any function/method that takes a running_machine takes
it as a required parameter (1 or 2 exceptions). Being consistent
here gets rid of a lot of odd &machine or *machine, but it does
mean a very large bulk change across the project.
Structs which have a running_machine * now have that variable
renamed to m_machine, and now have a shiny new machine() method
that works like the space and device methods above. Since most of
these are things that should eventually be devices anyway, consider
this a step in that direction.
98% of the update was done with regex searches. The changes are
architected such that the compiler will catch the remaining
errors:
// find things that use an embedded machine directly and replace
// with a machine() getter call
S: ->machine->
R: ->machine\(\)\.
// do the same if via a reference
S: \.machine->
R: \.machine\(\)\.
// convert function parameters to running_machine &
S: running_machine \*machine([^;])
R: running_machine \&machine\1
// replace machine-> with machine.
S: machine->
R: machine\.
// replace &machine() with machine()
S: \&([()->a-z0-9_]+machine\(\))
R: \1
// sanity check: look for this used as a cast
(running_machine &)
// and change to this:
*(running_machine *)