MAMETesters Bugs Fixed
tylz0122u5red [Zsolt Vasvari]
stadhero0122u3gre [Zsolt Vasvari]
stadhero0122u3ora [Zsolt Vasvari]
asterix_1055gre [couriersud]
blktiger37b15gre [couriersud]
newui0118u4ora [Atari Ace]
mpatrol0117u2gre [Aaron Giles]
realbrk0111u4gra [Brian Troha]
schmisr0111u5gra [Brian Troha, partial fix]
penbros0111u5gra [Brian Troha]
ninjakd2_0111u3gra [Nicola Salmoria]
mnight0102gre [Nicola Salmoria]
toki060gre [robiza, Corrado Tomaselli]

Source Changes
Added internal divider on m680* series CPUs (except the original m6800). Updated clocks on all games using them to remove the explicit divider. [Aaron Giles]

Reverted experimental D3D fix, since it breaks switchres. [Aaron Giles]

dkong updates: [couriersud]
* fix dkong sound following Clock Divider update
* updated to use XTAL_*
* revert a change after sound regression in dkong.

i8085.c updates: [couriersud]
* 8085 has an internal clock divider by 2. Changed i8085.c to reflect this for I8085. I8080 still at 1.
* Changed driver clocks to reflect internal clock divider
* Added some FIXME: comments where clocks for I8085 are outside specs

Space Fighter Mark II: [Zsolt Vasvari]
- Changed year to 1979 as per Guru's contact
- Renamed set 2 ROMs to allow merging
- Removed experimental code left in there

phoenix.c updates: [couriersud]
* Modified I8085 clock
* Added dip locations
* consolidated inputs
* tagged inputs
* combined memory maps
* fixed sound issue related to (auto) save states

pleiads updates: [couriersud]
* video timing from schematics
* palette from schematics (resnet.h)
* no more colortable

survival updates: [couriersud]
* palette from schematics (resnet.h)

Removed bogus (bad) dump of Heated Barrel US set 2. [Brian Troha]

RSP Changes: [SGINut, Nicola Salmoria, Ville Linde]
- Initialize RSP registers to 0 in lieu of mame_rand
- Re-fix RSP single-stepping mode when set by another CPU
- Reading the RSP PC returns only the least significant 12 bits
- Fixed flag behavior when read out via CFC2
- Fixed RSP VRCP instruction to match the real hardware results
- Corrected VRCP element lookup
- Corrected unaligned DMA behavior

Removed all palette_X_r functions in favor of direct RAM reads. [Zsolt Vasvari]

Removed no longer applicable assert from VIDEO_START(generic). Removed VIDEO_START(generic) from drivers that didn't need it. Removed MDRV_VIDEO_START(generic_bitmapped) from drivers that don't need it. [Zsolt Vasvari]

Made detection of dynamic attempts to install ROM/RAM handlers more aggressive. Previous checks would not catch modifications in DRIVER_INIT or MACHINE_START calls. Fixed a number of cases of incorrect usage throughout the drivers. [Aaron Giles]

Changed one of the cheat calls back to using more generic switch detection so they can be triggered via joysticks. [Aaron Giles]

Renamed sauro.c sp0256 internal rom to "sp0256-al2.bin". Removed BAD_DUMP flag from it as well. [couriersud]

Marked HD6309 as divide-by-4 internally. Updated drivers accordingly. [Aaron Giles]

Major cleanup to the ddragon driver: [Aaron Giles]
- improved video and interrupt timing
- consolidated common memory maps and input ports
- added save state support
- correct clocks

blktiger.c updates: [couriersud]
* combines memory maps
* input ports were tagged
* all reads use input port tags
* added dip switch locations from Romstar manual

Added all known variants of the tms5110 as proper chips. Updated dkong, cvs and scramble to use new chips. [couriersud]

Converted atarifb.c to tilemaps. [Zsolt Vasvari]

Switched namcos11/namcos12 over to memory_configure_bank / memory_set_bank. Simplified golgo 13 gun reading. [smf]

mpatrol driver cleanup [Aaron Giles]
- merged memory maps
- complete memory map
- correct video timing
- correct CPU clocks
- replaced protection hack with actual implementation
- cleaned up inputs

Added tilemap_get_scrollx / tilemap_get_scrolly. [Nicola Salmoria]

Preserve fractional part of sample offset when looping in SCSP. Fixes remaining pitch stability problems. Fixed minor issue with timers B&C expiring. [kingshriek, R. Belmont]

auto_malloc() once again actually fails when out of memory. [Aaron Giles]

Switched zn.c to use MDRV_IMPORT_FROM. [smf]

mario.c changes: [couriersud]
* removed all traces to video/generic.h
* fix flipscreen issue with autosave
* on a hires pcb picture, verified resistor and capacitor values

Added dip locations to Real Break. Filled in a couple of dips for the Pachinko Gindama Shoubu games. [Brian Troha]

Fixed invalid memory_install_*_handler calls in drivers/williams.c. Emulated external OR circuit for all drivers using the PIA chip. This used to be internal to the PIA emulation, but, in fact, this is external logic. The PIA has two seperate INTA and INTB out lines. This fixes at least PlayBall. [Zsolt Vasvari]

Added the ability to the HC55516 emulator to take an external osciallator. Updated Mouse Trap to use the new interface. [Zsolt Vasvari]

Cleaned up and merged ninjakd2, mnight and omegaf drivers into a single driver. Additionally: [Nicola Salmoria]
- added flip screen support to all games
- fixed sprite overdraw mode:
    - ninjakd2 congratulations screen (e.g. stage 3) shows japanese characters which were previously missing
    - in ninjakd2, at the beginning of a level items are visible during the initial fade in. I'm not sure if this is correct but the other effects wouldn't work otherwise
    - in mnight attract mode, when the big ship is firing the other sprites no longer leave trails
    - in mnight at the end of a level the screen is slowly filled with balls and then slowly cleared to begin the following level. Same effect in the death sequence during attract mode.
- added proper computation of sprites to be drawn taking into account double size sprites. This fixes sticking shots in mnight without need for a hack.
- lowered ninjakd2 PCM playback rate to 13020 (from 16000). This seems to sound better and is a round division from one of the master clocks.
- removed ROM patch that was used to avoid the input protection in omegaf, added a rough but effective protection simulation.
- corrected some dip switches
- hooked up sound cpu reset line
- simplified ROM loading for the older games swizzling address lines in driver init.

Added MDRV_SOUND_ROUTE_EX to specify target input channel. Added input id to route struct. Fixed DISCRETE_INPUT_STREAM and added input channel # to DISCRETE_INPUT_STREAM. [couriersud]

Fixed default debugger memory view width for CPUs with >byte-sized minimum. Made menu updating dynamic at click time, fixing issues with incorrect checkmarks. [Aaron Giles]

Fixed Ninja Kuna. Cleaned up memory maps. Renamed files to ninjakun.c. [Zsolt Vasvari]

Added MC3417 and MC3418 variants to the HC55516 sound emulation. Changed Mouse Trap to use MC3417. [Zsolt Vasvari]

Fixed saving i8085 callbacks across a reset. Added 'pull' callback for the SID pin.  This is needed by the Red Alert voice board. [Zsolt Vasvari]

Made the text displayed by the various UI sliders more intelligent. Basically, it will only print an index for an item if there are multiple of a given type. [Zsolt Vasvari]

Updated jailbrek clocks and video timing based on measurements. [Aaron Giles]

Fixed i8051 timers from firing when not enabled. Checking TCON alone is not enough to invoke timers. Added IE SFR flags in conditional. [Jim Stolis]

Added a _CALL variant to all prototype macros. The use of these should make it easier to change the signiture of these functions in the future. Replaced existing calls with macro where appropriate. [Zsolt Vasvari]

Removed VIDEO_START_CALL(generic) from all drivers not needing it, which were all of them. Removed VIDEO_START_CALL(generic_bitmapped) from jpmimpct. [Zsolt Vasvari]

Changed YM2203 clock in stfight to 3MHz (compared against OST) [Yasuhiro Ogawa]

Improved linear zoom effect resolution to address gaps in CPS3 rendering. [OopsWare]

Rewrote and modernized the redalert driver: [Zsolt Vasvari]
- correct colors -- in places different from the manual's description,
    but matches the flyer perfectly
- added speech
- fixed AY-8910 sounds
- odds and ends
- corrected colors in Demoneye-X
- added some sound to Demoneye-X
- marked Demoneye-X it NOT_WORKING, due to the (still) missing 3rd gfx layer that makes it impossible to pass the 2nd level.

Added all the known Naomi BIOS dumps along with descriptions and information about region bytes & version numbers. [Brian Troha]

Removed the freely distributable Exidy games' dependency on Berzerk. [Zsolt Vasvari]

Added support for the BLX opcode in ARM7 THUMB mode. [SGINut]

Verified DIP locations from manuals for scramble and 800fath. [RansAckeR]

Changed S14001A emulator to allow setting the clock frequency instead of the clock multiplier. This is how the real chip works. Changed the Berzerk driver to set the S14001A clock as per the schematics. [Zsolt Vasvari]

Removed the use of the global Machine from a number of places in the code. [Zsolt Vasvari]

Fixed issues flagged by MSVC warning C4305 (type truncation). Almost all of these are harmless double->float narrowing in initializers, but one warning spotlighted a bug in segasyse.c, where code to use a higher sprite number had no effect due to the insufficient range of UINT8. [Atari Ace]

Removed /wd4550 for VS7/VS71 compilers (expression evaluates to a function which is missing an argument list). Fixed some VS7-specific issues (OPTIMIZE=0 at least compiles now). [Atari Ace]

Added a missing case statement in sm8500d.c, noticed while reviewing dead code warnings. [Atari Ace]

Corrected Diet gogo h6280 clock so that it behaves correctly with Charles Macdonald fix to the cpu core. Verified and corrected frequencies and pin 7 okim6295 on the following games: The new zealand story (3 z80 version), Trio The punch, Vandyke, paradise.c games, Downtown, Shaolin's Road and Twins. [Corrado Tomaselli]

Removed all peplus memory hacks and game specific DRIVER_INIT. There are now just two DRIVER_INIT, one for normal boards and one for superboards. Temporarily disabled AutoHold Cheat but documented addresses for future update. [Jim Stolis]

Added further unencrypted opcodes to risky challenge. The game now boots with the intro animation. [robiza]

New clones added
Jokers Wild Poker (PP0065) [Jim Stolis]
Double Down Stud Poker (PP0250) [Jim Stolis]
Standard Draw Poker (PP0447) [Jim Stolis]
Night Stocker (set 2) [Andrew Gardner]
Trivial Pursuit (Genus I) (set 2) [Andrew Gardner]


MAMETesters Bugs Fixed
stadhero0122u3gra [RansAckeR]
wboy3_0119u3gra [RansAckeR]
zerohour0122u6gra [RansAckeR]
strahl0122u6yel [Mamesick]
cmv801_0116gra [RansAckeR]

Source Changes
Added deprecat.h that contains some deprecated/discouraged contructs.
The idea is to create extra work if a driver wants to use these and
hopefully gives an incentive to look for an alternate solution. Added
#include of deprecat.h that rely on these contructs. Removed a bunch
of unneccassary #include's from these files. [Zsolt Vasvari]

Simplified Star Fire driver. [Zsolt Vasvari]

drawgfx changes: [Zsolt Vasvari]
- Removed copybitmap_remap and copyscrollbitmap_remap, neither which
    was used by anybody
- Removed some obsolete commented out code
- Fixed up some comments
- Removed TRANSPARENCY_NONE case from copybitmap_core, which can
    never happen
    as an option to copybitmap. Source tree needs to be recompiled
    as the transparancy mode enum has changed.
    TRANSPARENCY_PEN_TABLE_RAW as they were no longer used.
- Changed copybitmap and copyscrollbitmap. There are now 2 versions
    of each, one without and with transparency.

Fixed crash in masao. [couriersud]

Corrected previous i0851 timer fix to use more accurate IE SFRs.
[Jim Stolis]

jedi.c updates: [Zsolt Vasvari]
- Changed video code to directly manipulate the game bitmap
- Background smoothing now happens at the same time as the background
    is drawn

Fixed the CPS driver to at least display the correct clock in the
driver info, by degrading the clock through alternate means.
[David Haywood]

m62.c changes: [couriersud]
* fixed wrong resistor value (22K to 2.2K) - verified on spelunkr
    and kidniki hires pcb pictures
* Changed resistor network calculation based on assumption that cs
    line is active either on tiles or sprites color prom.

Simplified the video code for crgolf. [Zsolt Vasvari]

Added PCB layouts for Penguin Bros & Puzzle De Bowling based on
Hi-res pics. Corrected the seta2.c 68301 base clock as 50MHz / 3
(16.66666MHz) as all the Seta2 hardware has a 50MHz OSC. Secondary OSC
are for other chips (28MHz and or 32.53047MHz). [Brian Troha]

Simplified video code and adjusted some set names in the leland
driver. [Zsolt Vasvari]

Replaced tables with equations in the Sega C2 driver.
[Nicola Salmoria]

Added checks for CROSS_BUILD=1 to omit building m68kmake.exe,
verinfo.exe, png2bdc.exe and file2str. Enables building mame using
mingw on linux. [couriersud]

Various Irem driver updates: [Aaron Giles]
* Properly tagged m52 and m62 sound boards, plus variants.
* Updated all connected drivers.
* Merged memory maps.
* Proper video timing in 10 yard fight.
* Converted troangel to tilemaps.
* Moved definitions to header files.
* Updated mpatrol, yard to use resnet for colors.
* Renamed mpatrol -> m52
* Renamed troangel -> m57
* Renamed yard -> m58

Cleaned up 20pacgal driver, including driver state. Tried improving
on the ROM mirroring, without any success. [Zsolt Vasvari]

Removed colortables from a number of drivers, as part of a larger
move to phase out old-style colortables: gotya, gyruss, ampoker,
circusc, clshroad, champbas, 1943, lucky8, olibochu, yamato,
appoooh, bking, bladestl, blueprnt, carpolo, centiped, cop01,
cosmic, ddrible, irobot, ace, alpha68k, arabian, bfm_sc2, carjmbre,
cclimber, cherrym2, combatsc, contra, fastlane, hcastle, labyrunr,
cham24, multigam. [Zsolt Vasvari]

Removed non-existent, second M6295 from Hit the Ice. Fixes missing
sounds (e.g. team select screen). Hit the Ice/Violence Fight now
share the same sound CPU memory maps. [Philip Bennett]

Improved DIP switches according to manuals for the following drivers:
wboy, chplft, extdwnhl, zingzip, zaxxon, congo, vanguard, zarzon,
nibbler, segag80r.c, yard, kaneko16.c. [RansAckeR]

Verified the sound roms for Rock'n 3 and added proper names. Added
PCB layout for sound rom board only. [Brian Troha]

Cleaned up Time Pilot sound board implementation: [Aaron Giles]
* full memory maps
* partial machine driver removes need for replicating filtering logic
* updated all relevant drivers

Cleaned up Time Pilot and Tutankham drivers: [Aaron Giles]
* correct clocks where possible
* merged memory maps
* fully decoded memory maps
* replaced hacky sprite rendering in Time Pilot with partial updates
* save state support
* removed Power Surge kludge, replaced with unmapped handler control
* Tutankham runs at 60fps, with IRQs every other frame
* Proper IRQ ack in Tutankham
* Proper NMI generation in Time Pilot

Cleaned up pooyan driver. Save states, full memory maps, proper NMI
generation, etc. Flipped video to align better with Time Pilot.
[Aaron Giles]

Changed 6840 interrupt handling to work like the recent 6821 changes.
Updated MPU4 driver accordingly. Updated Scorpion 2 driver to match
MPU4 coding style. [James Wallace]

Resolved all unknown dips in the galpani2 driver according to kaneko's
docs, unified memory maps of both CPUs and repositioned a pair of
graphic ROMS. [Luis Faria]

Made some minor improvements to 1942.c & 1943.c DIPs. Improved
segas16a.c, segas16b.c & system16.c DIPs and added DIP locations
from manuals. [RansAckeR]

Removed distinction between *_gettotalcycles() and
*_gettotalcycles64(). All functions now return 64-bit results. Updated
all call sites appropriately. [Aaron Giles]

Further improvements to SCSP FM. [kingshriek]

Moved cpu_getiloops() and cpu_scalebyfcount() to deprecat.h. Added
#include "deprecat.h" where necessary to make this happen. Cleaned up
cpuexec.c/.h to latest core style. Cleaned up implementation of
extended INP header in inptport.c. Removed external access to
cycles_currently_ran(). Replaced use of cycles_currently_ran() in
v9938 code with mame_rand(), since that is effectively the same thing.
[Aaron Giles]

Added dip locations to about half the games in seta.c. [Brian Troha]

Removed champbas color PROM. Now uses TRANSPARENCY_PENS instead of
TRANSPARENCY_COLOR. Hooked up palette bank selector from schematics,
though I am not sure if it is actually used by the code. Changed set
names to match title screen, which is why baseball is spelt as
"Base Ball". [Zsolt Vasvari]

Some minor cleanup to the equites driver, including memory map
merging. [Aaron Giles]

Added new option VIDEO_UPDATE_SCANLINE, which cases VIDEO_UPDATE to
be called for every visible scanline. Removed manual implementation
of this in timeplt, in favor of using the new flag. There are
probably many more drivers that can leverage this. [Aaron Giles]

Added stream_get_sample_rate(), stream_get_time(), and
stream_get_sample_period(). These functions are not really tested yet
-- make sure they give reasonable results when first used! Updated
streams.h header to latest core style. [Aaron Giles]

Fixed reset crashes in all Z180 games. Removed the various busy loop
and non-exact optimzations from the Z180 core. [Zsolt Vasvari]

Correct colors in Birdie King 3 -- just needed a new dump. Fixed
incorrect ROM names. Switched color decoding to use the resnet code.
[Zsolt Vasvari]

Cleaned up the rockola.c driver. Fixed dip switches for all games.
Added notes about the games. [stephh]

Reorganized exidy440 audio code to make it easier to eventually use
the MC3417/18 emulation directly. Added MC3418 variant support to the
HC55516 audio code. [Zsolt Vasvari]

Updated williams driver to use VIDEO_UPDATE_SCANLINE (most bitmap-
based drivers should.) Converted to 32bpp to catch mid-screen palette
tweaks. Removed some unnecessary read/write handlers. [Aaron Giles]

Improved colors in circusc, gyruss, gotya with the resnet code.
[Zsolt Vasvari]

Significant improvements to Lock-On. Added POLL input handling to the
NEC V20/V30 core. [Philip Bennett]

Changed debugger-related code to be based off a new makefile define
(DEBUGGER) which sets a new compile-time define (ENABLE_DEBUGGER).
This means that MAME_DEBUG no longer means "enable debugger", it
simply enables debugging features such as assertions and debug code
in drivers. Also removed the various levels of opbase protection in
memory.h and always just turned on full bounds checking. [Aaron Giles]

Added some instructions to the H8/30xx CPU: [Luca Elia]
  or.l ERs, ERd
  rotl/shal.l ERd
  not.l/neg.l ERd
  exts.w Rd
  sub/or/xor.l #Imm:32, ERd
  bset/bnot/bclr.b Rn, @ERd
  bst/bist.b #Imm:3, @ERd
  bnot.b #Imm:3, @ERd

Added H8/3007 & H8/3044 variants with their memory maps. Preliminary
implementation of the H8/3007 timers. [Luca Elia]

Added AM_WRITEONLY as a shortcut for AM_WRITE(MWAx_RAM). [Aaron Giles]

Cleaned up Kangaroo driver: [Aaron Giles]
* documented MB8841 (needs to be decapped to get code)
* proper video timing
* full memory maps
* simplified and more accurate video logic

More opcode improvements to Risky Challenge. [robiza]

Added DIP locations to bking.c [RansAckeR]

New games added or promoted from NOT_WORKING status
Wheels Runner [Luca Elia]

New clones added
Lock-On (rev. C) [Philip Bennett]
Progressive Music Trivia (Question set 4) [Andrew Gardner]

New games marked as GAME_NOT_WORKING
Puzzlet (Japan) [Luca Elia]
Galaxy Games BIOS [Andrew Gardner]

0.122u8 fix


MAMETesters Bugs Fixed
taito_f3.c0122u8red [Aaron Giles]
dubugchunklength0122u7gre [Aaron Giles]
m62.c0122u7yel [Aaron Giles]
qix.c0122u8red [Atari Ace]
yard.c0122u7yel [Aaron Giles]

Source Changes
Fixed crash in debugcmt with starting with no game on the command-line.
[Andrew Gardner]

Fixed PSR transfers in the ARM7 core. [R. Belmont]

Fixed regression in cpu_spinuntil* calls that broke a number of games.
[Aaron Giles]

Fixed ADPCM in m62 games. Did some additional cleanup. [Aaron Giles]

Fixed palette gradient for promutrv. [Pierpaolo Prazzoli]

Fixed watchdog behavior when not explicitly specified. [Aaron Giles]

Fixed sprite placement again in chinagat driver. [Aaron Giles]

Fixed incorrect default screen siz

New clones added
Vs. Janshi Brandnew Stars (MegaSystem32 Version) [David Haywood]


MAMETesters Bugs Fixed
jantouki0121u3gra [RansAckeR]
mcnpshnt0120u3gra [RansAckeR]
mjdialq2_0120u3gra [RansAckeR]
mjifb0111u2gra [RansAckeR]
goldbug0105u4gra [stephh]
zn.c0122u8yel [smf]
pwrinst2_0122u8gra [Sonikos]

Source Changes
Removed 'type' parameter from tilemap_create. [Zsolt Vasvari]

audio/dkong.c: [couriersud]
* fix dkong audio over-modulation issue with DAC sound
* surround the fix with a DK_REVIEW define for later review.

Changed the use of machine->remapped_colortable to machine->pens where
the drivers weren't using color tables. [Zsolt Vasvari]

Corrected the clocks on the following pcbs: Formation Z, MagMax,
SlapFight and Tiger Heli. Changed Oki m6295 pin 7 to "high" on Toki
and Blood Bros. [Corrado Tomaselli]

Improve build independence for CPU/sound cores. Rescued the M65CE02
core from bitrot hell, and fixed some MESS cores that were broken by
the deprecat.h changes. [Atari Ace]

Corrected the initial detection of extended INP files.
[Barry Rodewald]

Moved Galaxy Games emulation to tmaster.c. [Luca Elia]

makefile/build updates: [couriersud, Aaron Giles]
* moved verinfo.c to src/build
* moved rules for verinfo to src/build/build.mak
* removed osdcore.h from file2str.c, verinfo.c, png2bdc.c

Removed color tables from gsword, hyperspt, jailbrek, magmax,
konamigx, markham, megazone, pandoras, rocnrope, strnskil, trackfld,
tp84, shaolins, scotrsht, pingpong, skykid, wiping, punchout, ikki,
rallyx, fastfred, fcombat, finalizr, flower, funworld, galivan,
gdrawpkr, goldstar, hanaawas, higemaru, ironhors, jackal, kchamp.
Added resnet.c color computations where appropriate. [Zsolt Vasvari]

Simplfied Mag Max background drawing code. [Zsolt Vasvari]

Further altered the Exidy 440 code in preparation for moving to proper
sound chip emulation. [Zsolt Vasvari]

Unified transparency handling between scotrsht, shaolins, tp84.
[Zsolt Vasvari]

Split timer_adjust() into timer_adjust_oneshot() and
timer_adjust_periodic(). Updated all call sites. [Aaron Giles]

Fixed some arkanoid clones INPUT_PORTS definitions that were curiously
using PORT_START_TAG("DSW") instead of PORT_MODIFY("DSW"). [stephh]

Fixed DIP switches and inputs for all games in cvs.c. [stephh]

Added HOTD2-specific BIOSes. [Arzeno Fabrice]

Added more accurate emulation of the priority system and the beam
logic in stactics. Removed color table. Centered crosshair. Used
proper game orientation. Unified memory maps. Switched game to use the
artwork system. Set GAME_IMPERFECT_GRAPHICS until artwork is created.
[Zsolt Vasvari]

Added sound support to Champion Skill. Removed GAME_NO_SOUND flags.
Increased interrupts per frame, music was too slow. Minor comments
adjustment. [Mirko Buffoni]

Used PORT_SERVICE and PORT_SERVICE_NO_TOGGLE macros when it was
possible. [stephh]

In the cps2 driver, Changed the GAME definitions to reflect how many
players and how many buttons there are for each game. Rewrote the
PORT_CUSTOM macros. Added a few notes about the inputs when I thought
they were needed to avoid wrong bug reports. Started to clean the
driver. [stephh]

Added PCB and/or chip docs updates for Blaze On (kaneko16.c),
Sand Scorpion (sandscrp.c), Flash Point (segas16b.c). [Brian Troha]

Fixed kangaroo colors by assuming an inversion not present in the
schematics. [Nicola Salmoria]

Added the ability to pass absolute paths to mame_schedule_save() and
mame_schedule_load(). [Nathan Woods]

Naomi/DC updates: [Samuele Zannoli]
- Add SH4 I/O ports
- Connected the 93C46 of the naomi and the x76f100 of the rom board
    and filled them with dummy data to satisfy the BIOS
- Implemented some of the JVS transfers that will be needed to use
    the controls
- Implemented ROM board DMA
- Set proper NAOMI RAM sizes (32 MB main, 8 MB for AICA)
- Improved PVR-TA graphics emulation

Set proper ARM7 clock for Naomi. [Deunan Knute]

ARM7 updates: [Anonymous]
- correct mode at reset (it's always 0b1....)
- HandlePSRTransfer: remove wrong code, correct detection of
    privileged mode
- correct carry output for ROR
- Thumb ASR Rd,Rs: correct carry computation
- Thumb ldmia/stmia: correct value for writeback when the writeback
    reg is in the list
- ARM ldm/stm ignore lower bits of the address
- most of the exceptions force the I bit
- ignore some flag bits in the CPSR

Some improvements to the Funworld driver and new games added.
[Roberto Fresca]
- Switched to XTAL def.
- Fixed Magic Card II graphics issues.
- Fixed Magic Card II inputs.
- Fixed screen and visible area to snooker10.
- Renamed set monglfir to mongolnw.
- Renamed sets description based on languages instead of countries.
- Fixed some years and manufacturers.
- Updated technical notes.
- Cleaned up the driver.

Did some cleanup of the 'special case' mess that the rallyx driver
has become. [Zsolt Vasvari]

Removed no longer used TRANSPARENCY_COLOR. [Zsolt Vasvari]

MC6845 updates: [Zsolt Vasvari]
- changed the 6845 to be handle based -- adjusted all drivers
- renamed crtc6845 to mc6845
- allow reading registers 12 and 13
- reading write-only registers return 0
- updated comments in header

Changed qix.c to RGB32 mode and made its videoram_w do the partial
updating instead of a per scanline timer. [Zsolt Vasvari]

Fixed 'mario' and 'masao' memory maps to match the Dip Switches port
name. [stephh]

Fixed pooyan transparency. Updated to use resnet code. [Zsolt Vasvari]

Changed ZN2 clock speed to 100MHz to match board notes. [smf]

Added DIP locations for sitv, sicv, invadpt2, lrescue, invasion. Fixed
coin2 for superinv & invasion. [RansAckeR]

Added initialization to machine/nmk112.c. This resolves a multi-
session audio problem reported for donpachi. Also added some variable
initialization to machine/n64.c to fix running starsldr multi-session.
[Atari Ace]

Added diplocations to policetr and marked some as unused based on
manual and schematics. [Mike Ellery]

Fixed fatal error in the maxaflex, mf_bdash and mf_achas drivers.
[Atari Ace]

Several more risky challenge opcodes. You can now see "gameplay".

New games added or promoted from NOT_WORKING status
Galaxy Games (BIOS v1.90) [Luca Elia]
Royal Vegas Joker Card [Roberto Fresca]

New clones added
Contra (US, Set 2) [Brian Troha]
Zero Wing (2 player simultaneous ver.) [Brian Troha]
Sand Scorpion (Revised Hardware) [Stefan Lindberg]
Galaxian (Taito) [Stefan Lindberg]
Jolly Card (3x3 deal) [Roberto Fresca]
Jolly Card Professional 2.0 [Roberto Fresca]
Lucky Lady (3x3 deal) [Roberto Fresca]
Lucky Lady (4x1 aces) [Roberto Fresca]

New games marked as GAME_NOT_WORKING
World PK Soccer V2 (ver 1.1) [David Haywood]


MAMETesters Bugs Fixed
progear0123u1gra [stephh]

Source Changes
csk.c driver improvements: [Mirko Buffoni]
* Added DIPLOCATION macros to all Dip Switches. All DSW are verified through test mode.
* Fixed custom_io_r which is used for protection but also for keyboard input.

Fixed build with external zlib. [R. Belmont]

Completed old-style colortable removal. Removed MDRV_COLORTABLE_LENGTH macro. Updated uigfx to display new-style color tables if present. [Zsolt Vasvari]

Reorganized/minor clean-ups to Mad Alien driver. [Zsolt Vasvari]

Fixed Xenophobe sprite aligment. [Derek Ledbetter]

Converted SNES (except debug code) to RGB32 as it was a serious abuser of the palette system. [Zsolt Vasvari]

Added colortable_palette_get_size() to emupal. Added some more asserts to catch errors. [Zsolt Vasvari]

Fixed Dip Switches (especially coinage) and inputs for 'mpatrol' and 'troangl' (and their clones). Tried to "unify" the two drivers (I still think that some things can be merged). Added iremipt.h source
file (same purpose as taitoipt.h). Fixed Dip Switches and inputs for 'alpha1v'. The game is now more playable to me but I left the GAME_NOT_WORKING flag as I think there are still some things to look at). [stephh]

Changed IREM cpu decryption to be 'real-time' (it's a feature of the CPU). Moved decryption table setup to 'config' struct for the CPU. Added latest tables from robiza, making Risky Challenge playable,
promoted it to working. Told CPU core to not decrypt code after brkn instruction, enabling it again on iret, allowing me to remove several 'don't decrypt range' hacks in the code. Updated all drivers accordingly. Currently the disassembly is a bit weird now, this will need looking at. [David Haywood, robiza]

Added and hooked up AICA (Naomi sound chip). Naomi boot sounds now play. Since it's an SCSPx2 with ADPCM instead of FM it's already feature-complete except filter envelopes. A bug in the ARM7 core causes incorrect pan/level values to be computed in e.g. the Naomi SOUND TEST menu. This is not a defect in the AICA. [ElSemi, Deunan Knute, kingshriek, R. Belmont]

Fixed Dip Switches (especially coinage) and inputs for '10yard' (and its clones). Tried to "unify" the driver with m52 and m57 drivers (I still think that some things can be merged). [stephh]

Fixed unaligned 32-bit reads in the ARM7 core. [R. Belmont]

Fixed misaligned backgrounds in mpatrol caused by recent changes. [Zsolt Vasvari]

Minor code cleanups. Added static/const where appropriate, plus some include fixes. Reverted some of the changes to build.mak from u1 which made some MSVC builds fail, and adjusted/optimized an m10.c gfx_layout. Added some missing cores to cpuintrf.c, sndintrf.c and added some missing #if's to 5220intf.c. [Atari Ace]

Fixed one or two dips in the mirage.c driver and found the "service" switch and likely start of inputs. [Brian Troha]

Removed expand_machine_driver(). Replaced with machine_config_alloc() and machine_config_free(). Updated all call sites. Normalized info.c style and simplified some of the code. [Aaron Giles]

Renamed machine->drv to machine->config to reduce overloading of the term "driver". [Aaron Giles]

Simplified collision detection in taitosj and tank8. [Zsolt Vasvari]

New module: devintrf.c/.h. Implements a generic device interface similar to the sound and CPU interfaces. [Aaron Giles]

New module: mconfig.c/.h. Moved all machine_config and MDRV_* macros here, out of driver.c/.h. Added MDRV macros for adding/removing/ configuring devices. [Aaron Giles]

Deprecated the following constants because global constants that pretend to document things but which are only guesses are dumb:
Updated all drivers to explicitly specify the equivalent bogus times. Added comments for the "REAL" VBLANK durations to indicate that they are not accurate. [Aaron Giles]

Improved some DIP switches, added some DIP locations, replaced IPT_COINx with IPT_SERVICE1 where appropiate, and simplified some control definitions in the following drivers: alpha68k.c, actfancr.c, aeroboto.c, aerofgt.c, aliens.c, ambush.c, amidar.c, amspdwy.c, angelkds.c, appoooh.c, arabian.c, argus.c, arkanoid.c. [RansAckeR]

Connected the Shadow Warriors buttons like they are wired on the original pcb (which is jamma). [Corrado Tomaselli]

Added DIP locations to: cclimbr2 , legion, terraf, ultennis, cheesech, stonebal, stoneba2,  scessjoe, ashnojoe, asteroid, llander, llander1, astdelux. [RansAckeR]

Fixed multi-session crash with Namco System 2 games. [Atari Ace]

Improved Print Club DIP switches. [Edward Swiftwood]

Fixed a few corner cases in the 6840 emulation based on running the MPU4 test ROMs, and added the ability to dynamically alter the external clock frequencies in game. [James Wallace]

Changed the 6850 core to allow dynamic RX and TX clock alteration, to at least try to remove a few of the MPU4 timing problems. [James Wallace]

Updated documentation of the MPU4 Video board. Added documentation of the Cosmic Chasm crystals, and merged the memory maps. [James Wallace]

Fixed validation fail of '_mul_32x32_hi()' and '_mulu_32x32_hi()' inline function when compiled GCC v3.3.5 with I686 optimization. [KO Myung-Hun]

Verified clocks on Rainbow Islands and Rambo 3 and Raiden 2. Reverted sound OSC of Truxton 2 to 27mhz/8 since the original OST runs at this speed. The pcb I measured the previous clock was 28mhz/8 and it's a different pcb version from the common one. Since mame doesn't support multiple OSC I prefer to use the 27mhz one. [Corrado Tomaselli]

Fixed some incorrect rom dumps for Double Dragon 3 (Some of the dumps were based of the bootleg and not the original.) and updated the name and location to actually match that of a real board. [Kevin Eshbach]

Added DIP locations to Combatribes and Battletoads. [Kevin Eshbach]

Added video_screen_update_now(int scrnum) to force a screen update up to the current beam position. [Zsolt Vasvari]

Pulled remaining vestiges of old-style colortables: [Aaron Giles]
* PALETTE_INIT no longer has a colortable parameter
* removed game_colortable and remapped_colortable from machine_config
* updated a few stragglers that still referenced these fields
* removed tile_draw_colortable from tilemap.c

Changed the input port tokens to use a union instead of casting everything to FPTR. In the future, C99-enabled compilers will be able to achieve type safety with designated initializers. [Aaron Giles]

Added i8749 CPU variant for MESS. [Curt Coder]

Added missing SH4 instructions and bugfixed the FPU. Improved Naomi I/O board emulation and added working controls. [Samuele Zannoli]

jedi.c improvements: [Zsolt Vasvari]
- Complete memory map
- Crystals
- Driver state structure
- Text layer is rendered at the same time as the background

Reorganized Qix driver (driver state, decoupled audio section, etc.) [Zsolt Vasvari]

Changed all drivers using the MC6845 chip to use the new device interface. Removed mc6845_config. [Zsolt Vasvari]

Reorganized Gameplan driver. Changed Trivia Quest use the Gameplan video code. Added crystal for Gameplan pixel clock. [Zsolt Vasvari]

Removed the unnecessary pen array lookup from some INDEXED16 drivers. [Zsolt Vasvari]

Removed the per-screen palette_base. This was an idea that never really worked out, nor have we really needed it. [Aaron Giles]

Defined a new device type VIDEO_SCREEN. Currently this has no live functionality, but merely serves as a placeholder/identifier for video screens. Eventually some of the screen management code may move into the start/stop/reset functions. [Aaron Giles]

Changed MDRV_SCREEN_ADD to specify a screen type (RASTER, VECTOR, LCD for the moment). Removed the older VIDEO_TYPE_RASTER and VIDEO_TYPE_VECTOR; this information is now determined by walking the screen list. [Aaron Giles]

Changed MDRV_SCREEN_* macros to build up VIDEO_SCREEN devices rather than storing values in the screen[] array. Removed the screen[] array from machine_config. Modified all code referencing Machine->config->screen[] and changed it to iterate over the devices using the new video_screen_first() and video_screen_next() functions. [Aaron Giles]

Removed implicit screen #0. This means that ALL DRIVERS MUST EXPLICITLY DECLARE THEIR SCREENS. Updated all drivers to do so. While there, grouped all MDRV_SCREEN_* parameters together. Also removed unnecessary VIDEO_TYPE_RASTER and VIDEO_TYPE_VECTOR. Also removed VBLANK and bitmap format information from vector games. This was painful and very tedious. [Aaron Giles]

Changed game information to display info about all screens. [Aaron Giles]

Changed Beathead driver to use partial updates instead of caching scanline level information. [Zsolt Vasvari]

Added state_save_combine_module_and_tag(). Its purpose is to create a unique name for state saving purposes in modules that are tag based (no index). [Zsolt Vasvari]

New games added or promoted from NOT_WORKING status
Champion Poker [Mirko Buffoni]
Risky Challenge [robiza]

New clones added
Fighting Soccer (Japan) [Yasuhiro Ogawa]
Red Hawk (Excellent Co., Ltd) [Brian Troha]

New games marked as GAME_NOT_WORKING
Toy Fighter [Corrado Tomaselli]


MAMETesters Bugs Fixed
connect4_0123u2red [Aaron Giles]
multiscreeninfo0123u2gre [Aaron Giles]

Source Changes
Corrected clock speeds for the megasys1.c boards. Yes, the games
actually ran _THAT_ slow! [Brian Troha]

Makefile & build system update: [couriersud]
* verinfo: New syntax. verinfo now uses the following syntax:
     verinfo.exe -b windows|winui|mess.
   Does not depend on compile time defines any longer.
* makefile will include src/osd/$(CROSS_BUILD_OSD)/build.mak if it
   exists. This was necessary to enable cross builds for winui.

Cloak & Dagger video code cleanup: [Zsolt Vasvari]
- resnet conversion - colors are now signficantly less saturated
    because of the 1K pull-ups. This is noticable in the agent's coat
    and the sky color, for example.
- Added bitmap palette selection based on the 128H line. Not sure
    where this is actually used in the game.

Removed unnecessary machine->pens[] lookups in a large number of
drivers. [Zsolt Vasvari]

Added built-in layout to Space Tactics. Cleaned up and reorganized the
driver. [Mr. Do!, Zsolt Vasvari]

Switched the funworld color decoding routines to use resnet code.
[Roberto Fresca]

Fixed namcos2, namcos21 crashes due to nvram allocation in
MACHINE_RESET. Created MACHINE_START and move allocation there.

Updated info.c to output raw video parameters (pixclock, htotal,
hbend, hbstart, vtotal, vbend, vbstart) via -listxml if they have
been given. [couriersud]

Removed some deprecat.h includes from osd layer: [couriersud]
* add machine as parameter to osd_update and osd_update_audio_stream
* change Machine to machine and remove include deprecat.h

Added a rule in vconv.c to make VS2008 compile seamlessly.
[Aaron Giles]

bionicc.c: [couriersud]
* Added cpu clocks from schematics
* Comment about z80 nmi generation

Fixed the DAC sound in X The Ball. [Zsolt Vasvari, Mamesick]

Removed the confirmed bad dump of Virtua striker 2 2000. [Brian Troha]

Fixes crash in Raiga. [Zsolt Vasvari, David Haywood]

drawgfx.c improvments: [Zsolt Vasvari]
- Added some asserts to drawgfx and drawgfxzoom
- Moved some variable declarations so that they are only visible
    where they are actually used

Removed 8bpp bitmap support from drawgfx. [Zsolt Vasvari]

Removed MDRV_PALETTE_LENGTH from vector games, which would trigger
an assert in emupal.c (debug build) [couriersud]

Added new module: tokenize.h. This centralizes the behavior of
tokenizing data structures, as currently used by the input port
system. Redid the input port tokenization to be more compact and make
use of the new macros. Added support for designated initializers in
C99 and GCC builds to enforce type safety. [Aaron Giles]

Removed bogus DIPs from the NSS driver. [R. Belmont]

Improved the global "flip_screen" macros and variables: [couriersud]
* fix issues related to flip_screen being a define
* add "int flip_screen_get(void)"
* clean up drivers with collisions
* remove flip_screen macro
* flip_screen_x and flip_screen_y made static
* add flip_screen_x_get() and flip_screen_y_get()
* change writes to flip_screen_x to flip_screen_set_no_update()
* added save state calls for flip_screen_x and flip_screen_y

Converted MACHINE_DRIVER definitions from function constructors to
tokenized lists. For the most part this is a non-invasive change,
except for those drivers using MDRV_WATCHDOG_TIME_INIT. In order to
allow for tokenization of attotimes, a set of new macros is provided
called UINT64_ATTOTIME_IN_x() which follows the same pattern as
ATTOTIME_IN_x() but packs the attotime down into a single 64-bit
value for easier tokenization. Fixed several errors in the machine
drivers which were caught by the additional checks now done in the
machine config detokenization code. [Aaron Giles]

Separated MDRV_DEVICE_CONFIG_DATA into 32-bit and 64-bit versions.
Added floating-point versions with configurable resolutions.
[Aaron Giles]

Converted speakers into devices. Machine->config no longer houses
an array of speakers; instead they are iterated through using the
new macros (defined in sound.h) speaker_output_first() and
speaker_output_next(). Updated all relevant code to do this.
[Aaron Giles]

Added typedefs for all the machine config callback functions at the
top of driver.h. [Aaron Giles]

Big changes to Cal Omega driver: [Roberto Fresca]
- Renamed the driver to calomega.c.
- Extended the driver to support all the other Cal Omega systems.
- Switched to XTAL def.
- Fixed CPU & sound clocks based on official diagrams.
- Replaced the AY-8910 with AY-8912 to match the real hardware.
- Unified some memory maps.
- Splitted machine in sys903 and sys905.
- Fixed memory map offsets for sys905.
- Added a list of official/unofficial games, and their states.
- Fixed a bug introduced when extended the color PROM region to
    eliminate colortable length.
- Updated technical notes.

Merged memory maps for a number of drivers beginning with a digit or
the letter 'a'. [Aaron Giles]

Cleaned up the Crazy Climber video driver, mainly via tilemap
conversion. This fixes the ape sprite positioning in Crazy Kong - no
more gap between feet and platform. Merged Yamato driver with Crazy
Climber. [Zsolt Vasvari]

Converted XX Mission to tilemaps. [Zsolt Vasvari]

Removed VIDEO_START(generic) - no longer used. [Zsolt Vasvari]

Added PGM.c EEPROM/hiscore saving. [Creamymami]

Added support for original Omega Race state PROM. [Mathis Rosenhauer]

Added support in the MC6845 emulation for cursors. All 4 blinking
modes are supported. [Zsolt Vasvari]

Added a stub implementation of the Rockwell 6545. [Nathan Woods]

Added basic support for the NEC uPD7801, uPD78C05, and uPD78C06 CPUs
to the uPD7810 cpu core. [Wilbert Pol]

Some improvements to the 6850 ACIA CTS pin checking logic and the MPU4
ACIA clock logic. [James Wallace]

Another Risky Challenge opcode to fix a sprite bug and a general
clean up of the remarks in the driver. [robiza]

Added dip locations to astinvad, bonzeadv, cadash, asuka, mofflott,
galmedes, atarifb, atarifb4, abaseb, soccer. Added DIP locations and
improved DIP switches in seawolf2, wow, gorf, robby, profpac.

One-line fix for the z80pio. At the moment when the interrupt control
word is sent (with interrupts enabled), an interrupt occurs. In
reality, interrupts are disabled until the interrupt mask byte is
sent. [Robert]

New games added or promoted from NOT_WORKING status
Jolly Joker [Roberto Fresca]
Cal Omega - Game 7.6 (Arcade Poker) [Roberto Fresca]
Cal Omega - Game 7.9 (Arcade Poker) [Roberto Fresca]
Cal Omega - Game 12.8 (Arcade Game) [Roberto Fresca]
Cal Omega - Game 17.51 (Gaming Draw Poker) [Roberto Fresca]
Cal Omega - Game 23.9 (Gaming Draw Poker) [Roberto Fresca]
El Grande - 5 Card Draw (New) [Roberto Fresca]
Jackpot Joker Poker (5 sets) [Roberto Fresca]

New clones added
Cosmic Smash (JPN, USA, EXP, KOR, AUS) (original) [icronnya77]
Jolly Card (Evona Electronic) [Roberto Fresca]
Jolly Card (croatian, set 2) [Roberto Fresca]
Super Joly 2000 - 3x [Roberto Fresca]
Royal Vegas Joker Card (fast deal, english gfx) [Roberto Fresca]
Dungeons and Dragons Tower of Doom (Japan 940412) [Razoola]
Real Bout Fatal Fury (bug fix revision) [Razoola]
Metal Slug 5 (AES Cart) [Razoola]

New games marked as GAME_NOT_WORKING
A large number of Cal Omega games [Roberto Fresca]


MAMETesters Bugs Fixed
00817 [RansAckeR]

Source Changes
MC6845 updates: [Zsolt Vasvari]
* now signalling both 0->1 and 1->0 transitions of synching pins
* added mc6845_assert_light_pen_input; uses a timer for latching the light pen address
* added reset device function
* implemented VSYNC height computation difference between the Motorola and the Rockwell devices
* since the Commodore 40xx computers program an HSYNC width that extends past the end of the scanline, I am clamping it in lack of anything better to do
* added support for the Commodore 6545-1 device type
* added support for the status register
* better variable names
* more asserts

Updated the "Input (This Game)" menu to support conditional inputs. [stephh]

Converted Amiga based games to partial updating and proper scanline based timers. [Zsolt Vasvari]

Beginning of the clean-up of Space Guerilla - fixed rotation, some other stuff. [Zsolt Vasvari]

Removed use of tmpbitmap from some drivers. [Zsolt Vasvari]

Replaced mame_bitmap with direct use of bitmap_t. Removed mame_bitmap typedef. [Zsolt Vasvari]

Fixed taitoic regression that caused crashes in several games. [Zsolt Vasvari]

Changed the way VBLANK_INTs are handled:
- Defined a new MDRV_CPU_VBLANK_INT_HACK() (in deprecat.h) which is a copy of the current MDRV_CPU_VBLANK_INT()
- Found all the places where VBLANK_INT is used with something other than 1 interrupt per frame and changed it to the new macro
- Removed the "# per frame" parameter from MDRV_SCREEN_VBLANK_INT() and added a screen tag in its place; updated all callers appropriately.
- Added some validation of the interrupt setup to validate.c

Fixed SH4 refresh ticks value of 0, makes awbios not blow up the timer system. [R. Belmont]

Updated dkong driver to use two discrete structs which were previously not being used: [couriersud]
* dkong walk using a jump struct
* radarscp using a dkong 555 struct

MACHINE_DRIVER_EXTERN now requires a semicolon. Removed a number of extra semicolons. [couriersud]

In memory.c: removed some code never to be executed: [couriersud]
* removed "return 0" from READ* macros since it is unreachable
* removed comparisons of type FPTR < 0 and FPTR >= 0

Identified code not used and marked with "#ifdef UNUSED_FUNCTION". [couriersud]

Naomi: Use defines instead of magic numbers for IRQ sources, add VBL-out. [R. Belmont]

Improved (not perfect) ACIA slot monitoring. [kingshriek]

Changed parent/clone relationship to separate SSI Poker sets from Jackpot Joker Poker. [Roberto Fresca]

Removed a couple of unused items from the cpuexec_data structure. Added validity check that screenless drivers cannot have a VBLANK interrupt. [Zsolt Vasvari]

Added macros to define device functions. Updated existing devices to use the macros. [Aaron Giles]

Added the concept of device classes. Devices specify their class in their get_info function. Classes can be used to walk through devices at a more general level than their type. Functions have been added to iterate through devices by class just as you can by type. [Aaron Giles]

Removed some unused fields from device_config. [Aaron Giles]

Moved all video timing logic from cpuexec.c to video.c. Added a video_screen_register_vbl_cb() function for registering VBLANK callbanks. Changed inptport.c and debugcpu.c to make use the VBLANK callbacks. Added video_screen_get_time_until_vblank_start(). I did some fairly extensive testing, but this is a very signficant internal change, so some things may have broke. [Zsolt Vasvari]

Removed use of cpu_scalebyfcount() from CVS driver. [Zsolt Vasvari]

Changed a number of global functions to being static. [couriersud]

Rewrote some potentially compiler specific code: [couriersud]
* added ATTR_FORCE_INLINE to osdcomm.h
* moved U64 S64 fram mamecore.h to osdcomm.h
* define SETJMP_GNUC_PROTECT() in osdcomm.h for use in ppc602, ppc603

Removed cpu_getcurrentframe() and replaced it with video_screen_get_frame_number(int scrnum). Updated all callers. [Zsolt Vasvari]

Moved watchdog processing logic into its own module. [Zsolt Vasvari]

Replaced sprite multiplexing hack in tp84.c with video_screen_update_now() on sprite RAM write. General driver clean-up. [Zsolt Vasvari]

Gyruss: Tilemap conversion, sprite multiplexing done properly, driver clean-up. [Zsolt Vasvari]

Changed z80dma to new device interface, updated mario.c and dkong.c to use new interface. Illustrates how to keep existing memory read/write handlers. This is slower than caching the device interface, but does not have an impact on devices accessed at a low frequency like in this case. [couriersud]

Added video_screen_get_time_until_vblank_end() and video_screen_get_time_until_update(). [Aaron Giles]

Fixed CCPU and QB3 to no longer rely on cpu_scalebyfcount(). Fixed busted timing in the CCPU core. Changed watchdog to count internally rather than using external watchdog support. Altered CCPU to accept interrupt signals from the driver. Updated clocks in the cinemat driver to be derived from the clock crystal. [Aaron Giles]

Normalized function pointer typedefs: they are now all suffixed with _func. Did this throughout the core and drivers I was familiar with. [Aaron Giles]

Added PORT_CHANGED macro which calls a callback if the given port changes. Usage is very similar to PORT_CUSTOM. See the Astro Invader driver for an example. [Zsolt Vasvari]

Removed input_port_set_changed_callback and converted all users to PORT_CHANGED. The only difference between the old callback and the ones supplied by PORT_CHANGED is that values passed by PORT_CHANGED are normalized to start at bit 0, just like PORT_CUSTOM. [Zsolt Vasvari]

Added running_machine* to the CUSTOM_INPUT callback - updated drivers to use it. [Zsolt Vasvari]

Updated brkthru.c, btime.c, exerion.c, fcombat.c, astrof.c, cheekyms.c, cinemat.c to use PORT_CHANGED. Combined memory maps where applicable. Converted cheekyms.c to use tilemaps. [Zsolt Vasvari]

Merged memory maps for drivers X->Z. [Andrew Gardner]

Exidy440: modernized input port handling with CUSTOM_INPUT and INPUT_CHANGED. Cleaned-up special case handling. Created better separation between driver and video code. [Zsolt Vasvari]

Verified clocks and oki pin7 for Peek-a-boo. [Mike Ellery]

Untangled the Fire Truck driver. Many uses of PORT_CUSTOM and PORT_CHANGED, including another good use case for the gear shift logic. [Zsolt Vasvari]

Updated ladybug.c, lasso.c, m10.c, madalien.c, maxaflex.c to use PORT_CHANGED for coinage. [Zsolt Vasvari]

Added running_machine * parameter to the front of all read/write handlers. Updated all call-through handlers appropriately. Renamed read8_handler to read8_machine_func, replicating this pattern throughout. [Aaron Giles]

Defined new set of memory handler functions which are similar but which pass a const device_config * in place of the running_machine *. These are called read8_device_func, etc. Added macros READ8_DEVICE_HANDLER() for specifying functions of this type. [Aaron Giles]

Added running_machine * to the device_config, live while the device is live, and NULL otherwise, just like the token. [Aaron Giles]

Meadows driver updates: [Zsolt Vasvari]
- Merged memory maps
- Uses PORT_CHANGED for coins
- Renamed 'Inferno (S2650) to 'Inferno (Meadows)'
- Renamed 'Bowling 3D' to '3-D Bowling'
- Added NO_DUMP entries for Gypsy Juggler's ball graphics and added GAME_IMPERFECT_GRAPHICS flag

Fixed sprite colors in Exerion. [Zsolt Vasvari]

Added new macros AM_DEVREAD, AM_DEVWRITE, and AM_DEVREADWRITE, which specify device read/write handlers in address maps, along with the type/tag of the device they reference. [Aaron Giles]

Converted MC6845 read/write handlers to READ/WRITE8_DEVICE_HANDLERs. Updated all MC6845-using drivers to use the new macros and call the updated functions. Removed the many little helper functions that used to do this work. [Aaron Giles]

Added validity checks to ensure that the devices referenced actually exist. [Aaron Giles]

Fixed display of screen information so that it shows live information, not just the original configurations. [SailorSat]

Improved DIP switch definitions, added DIP locations, and simplified input ports in atarisy2.c, atetris.c, avalnche.c, bagman.c, balsente.c, lasso.c, seta.c. [RasnAckeR]

Added DIPs and locations to onetwo.c. [Sonikos]

Corrected some glitches and fixed bank reading in Deal'Em. [James Wallace]

Changed/verified clocks on the following pcbs: 1943, Arkanoid, Action Holliwood GalsPanic, Ben Bero Beh, 1000 Miglia, Pit and Run, Prehistoric Isle, Rastan, Hotmind, Hardtimes, Stagger1 and Tiger Road. [Corrado Tomaselli]

Changed/verified Oki pin 7 on the following pcbs: 1000 miglia, Galspanic, Action Holliwood, Hotmind, HardTimes, World Rally, Stagger1. [Corrado Tomaselli]

Added the new display types to the listxml DTD. [Oliver Stoneberg]

Internal address map constructor changes: [couriersud]
* pass running_machine parameter to construct_map_##_name
* change "Machine->" to "machine->" in AM_BASE_MEMBER, AM_SIZE_MEMBER
* pass Machine in construct_address_map

Mysterious Stones gets the "full treatment". [Zsolt Vasvari]

Fix 8085 RST75 not working with PULSE_LINE. According to datasheet, RST7.5 is latched on rising edge, while the other maskable interrupts are sampled. [Nicola Salmoria]

Removed AM_SPACE and matchmask support. Updated relevant drivers to use AM_MIRROR() and AM_MASK() to achieve the same thing. [Aaron Giles]


MAMETesters Bugs Fixed
01216 [Tomasz Slanina]
00898 [couriersud]
01436 [Aaron Giles]
01480 [robiza]
01482 [Zsolt Vasvari]
01429 [RansAckeR]
00593 [RansAckeR]
01478 [RansAckeR]

Source Changes
Fixed flickering in Electric Yo-Yo. Changed qix driver to use the MC6845's VSYNC notification for interrupts. [Zsolt Vasvari]

Removed machine from the parameters of some of the device_get_info and device_set_info calls because that information is stored with the device now. [Aaron Giles]

Changed device interfaces to pass the device_config * rather than tokens and individual bits to the device callbacks. Updated all existing devices accordingly. [Aaron Giles]

A number of changes to remove references to screens by index and make the video system based strictly upon the screen devices: [Zsolt Vasvari]

* changed vblank_state_changed_func to now have a device_config argument
* removed runnning_machine as the first parameter of a VBLANK callback
* removed video_data from running_machine
* private state screen information now hangs off the public one, instead of the other way around
* combined video_global and video_private into a single structure
* moved populating screen_state from mame.c to video.c
* removed defstate; the default screen parameters live in screen_config directly
* moved 'refresh' from public to internal video state and renamed it to 'frame_period'
* changed all drivers that previously accessed 'refresh' to use video_screen_get_frame_period()
* changed VIDEO_UPDATE signature to pass the screen device
* added const device_config *primary_screen to running_machine
* changed first argument of video_screen_* functions to take a device_config; all callers that used 0 for the screen number now use machine->primary_screen
* changed game info screen and overlay UI to display the screen tag instead of screen number
* added video_screen_get_visible_area()
* changed render.c to use screen devices
* removed direct driver access to machine->screen[] array
* added video_screen_auto_bitmap_alloc(screen)
* the Dynax/Don Den Lover games now do their updating in VIDEO_UPDATE instead of VIDEO_EOF. Seems to have fixed the palette problems
* hooked up swapped videoram in Karnov properly -- same idea as Burger Time
* removed the public screen_state object -- all access is via functions
* removed screen[] object from running_machine
* removed MAX_SCREENS constant -- there is no longer a hardcoded upper bound

Changed the MC6845 to take and pass device_config's only. The following shook out from this that are applicable to other devices as well: [Zsolt Vasvari]
- running_machine is no longer taken, passed or stored
- mc6845_t is now private
- since passing device_config's is not device type safe, I added a get_safe_token() to mc6845.c to check the device passed in for the valid type.

Removed video_data from running_machine. Private state screen information now hangs off the public one, instead of the other way around. Combined video_global and video_private into a single structure. [Zsolt Vasvari]

Fixed the crash in Galaga caused by the slightly altered video timing. [Zsolt Vasvari]

Converted address maps to tokens. Changed the address_map structure to house global map-wide information and hung a list of entries off of it corresponding to each address range. Introduced new functions address_map_alloc() and address_map_free() to build/destroy these structures. Updated all code as necessary. [Aaron Giles]

Fixed several instances of porttagtohandler*() in the address maps. Drivers should use AM_READ_PORT() macros instead. [Aaron Giles]

ADDRESS_MAP_EXTERN() now is required to specify the number of  databits, just like ADDRESS_MAP_START. [Aaron Giles]

Removed ADDRESS_MAP_FLAGS() grossness. There are now three new macros which replace its former usage. ADDRESS_MAP_GLOBAL_MASK(mask) specifies a global address-space-wide mask on all addresses. Useful for cases where one or more address lines simply are not used at all. And ADDRESS_MAP_UNMAP_LOW/HIGH specifies the behavior of unmapped reads (do they come back as 0 or ~0). [Aaron Giles]

Changed internal memory mapping behavior to keep only a single address map and store the byte-adjusted values next in the address map entries rather than maintaining two separate maps. Many other small internal changes/cleanups. [Aaron Giles]

Changed MC6845 to take a screen tag instead of a screen number. [Zsolt Vasvari]

Voodoo now takes a device_config for the screen. [Zsolt Vasvari]

Changed TMS34010 to take a screen tag instead of screen number. [Zsolt Vasvari]

Replaced the following macros (SMH == static memory handler)


This removes the silly need for a bunch of redundant constants with faux type definitions that didn't buy anything. [Aaron Giles]

Moved some memory system constants into memory.c. [Aaron Giles]

Converted atarigen and tms34061 to be handle based. [Zsolt Vasvari]

Changed how the PowerPC MMU is enabled at compile time, to cut down on the amount of unused functions in MAME. [Nathan Woods]

Some additional memory system cleanups: [Aaron Giles]
* Made address versus byte offsets explicit throughout.
* Removed some unused parameters.
* Consolidated initialization process.
* Removed maximum memory block count.
* Centralized bank management.
* Added masked handlers and change_pc to the accessors.
* Added memory_get_accessors() to return a pointer to the accessors for a given address space/databus width/endian configuration.

Adds some new 6845 varieties: MC6845-1, H46505, HD6845 and SY6545-1. [Zsolt Vasvari]

Moved crosshair code from video.c into its own module. Simplified crosshair logic and made it screen device based. [Zsolt Vasvari]

Saturate MultiPCM on clip and fix envelope discontinuity. [ElSemi]

Fixed loading mixer settings when the driver default value is calculated. [Nicola Salmoria]

Removed cpu_scalebyfcount(). Changed input ports to register a frame callback, which is called immediately after throttling and updating. This is the proper "sync point" between emulated time and real time. Moved all analog and digital port processing into a central place here. Added tracking of time since the previous frame update and use that as an estimate for the time of the current frame. This is used to scale analog ports without the use of cpu_scalebyfcount(). This is not perfect in the case where frame rates are dynamic (vector games), but works well for other cases. [Aaron Giles]

Fixed VBLANK end time computation and video_screen_get_vblank() -- they weren't taking into account games that use MDRV_SCREEN_VBLANK_TIME. [Zsolt Vasvari]

Fixed 68000 prefetching operation. Previous behavior was incorrect. [Aaron Giles]

Changed slapstic management to always install an opbase handler to more aggressively catch code executing in the slapstic region. Updated all drivers to separate the slapstic region of ROM into a different ROM section from the fixed ROM. [Aaron Giles]

superqix.c changes: [Mike Haaland]
- Changed vblank interrupts to 3 to fix screen drawing issues.
- Used memory_configure_bank() to configure memory.
- Added save states.

Added some clock frequency changes which were documented in u4 but which did not apply due to operator error. [Corrado Tomaselli]

Added layout to crop corners in Electric Yo-Yo. [Mr. Do!]

Added support for Sega Virtua Processor, to run Genesis/MegaDrive version of Virtua Racing, intended to be used by MESS. It consists of a CPU core SSP1601, and updates in megadriv.c: [notaz]
* SSP1601 replaces SSP1610, as it has been confirmed that SVP actually contains SSP1601. The current SSP1610 is only a placeholder (nearly completely unimplemented) anyway.
* Changed megadriv.c add a new driver for Genesis/MegaDrive+SVP combination, also add SVP memory controller logic and memory map.

Phase 2 of the Deal 'Em input changes (these work well with the default cabinet type, I need to do some conditional input work to fix them fully), and also a conversion to the resnet code. Unfortunately, this still doesn't fix the apparently needed transparency. [James Wallace]

Simplified inputs, improved DIP switches, and added DIP locations to punchout.c, bankp.c, and baraduke.c. [RansAckeR]

In asuka.c, created MACHINE_START( asuka ) to configure cpu2 banks with memory_configure_bank(). All drivers support save states, with the exception of cadash and clones, the background does not load properly. [Mike Haaland]

Fixed M68000 build logic to only include it if enabled. [Fabio Priuli]

New games added or promoted from NOT_WORKING status
Amuse (Version 50.08 IBA) [Pierpaolo Prazzoli]
Joker Poker (Version 16.03B) [Pierpaolo Prazzoli]
Super Bowl (Version 16.03B) [Pierpaolo Prazzoli]
Pit Boss II [Mariusz Wojcieszek]
Super Pit Boss [Mariusz Wojcieszek]
Pit Boss Megastar [Mariusz Wojcieszek]
Megatouch IV [Mariusz Wojcieszek]
Megatouch IV Tournament Edition [Mariusz Wojcieszek]
Megatouch 6 [Mariusz Wojcieszek]

New clones added
Raiden Fighters (Austria) [Corrado Tomaselli]


MAMETesters Bugs Fixed
- 01520: [DIP/Input] wilytowr, atomboy: dipswitch info
- 01236: [DIP/Input] psurge: Power Surge isn't coining up.
- 01521: [Gameplay] ar_sdwr: Game hangs on title screen
- 01477: [Gameplay] metamrph, metamrpj, metamrpu: Game doesn't start
- 01452: [Misc.] boobhack: Crashes
- 01474: [Sound] ninjakd2, ninjak2a, ninjak2b, rdaction: Ninja-Kid II sound problem
- 01461: [Misc.] mazinger: reset caused by the watchedog message
- 01440: [Speed] mazingar, agallet: Terrible slow down in some scenes.
- 01087: [Misc.] spbactn, spbactnj: Crash in debug build. Corrupted graphics in normal build.
- 00223: [Graphics] splndrbt: On the first level when you pass the asteroid belt the star road should be light blue instead of black like mam
- 00220: [Graphics] splndrbt: Concerning the gfx, on the pcb the background is not linear as shown in mame.
- 00217: [Graphics] splndrbt: On boot the pcb displays a clean light blu screen while in mame there is a black road.
- 01531: [Misc.] polygon-based drivers: winwork.c memory leak
- 00150: [Misc.] alpinr2b, alpinesa : Assertion with -debug
- 01462: [Save/Restore] atarimo_render-based drivers: Crash when loading an autosave save state
- 01538: [Core] -verifysamples: Inconsistent handling of missing sample sets
- 01491: [Interface] switchres causes Exception at EIP=009413BF: ACCESS VIOLATION
- 01529: [Misc.] AICA memory leak
- 01511: [Save/Restore] batman: Fails to load autosave state
- 01536: [Misc.] uballoon: Access Violation with -debug
- 01535: [Misc.] usclssic: Access Violation with -debug
- 01465: [Misc.] topgunnr: Crashes
- 01534: [Misc.] ajax, ajaxj, typhoon: Access Violation with -debug
- 01019: [Sound] Various Drivers: List of drivers with sound clipping
- 01499: [Multisession] Various Drivers: Launching games from in-game [TAB] menu 2-3 times in a row throws access violation.
- 01453: [Misc.] troangel, newtangl: Crashes
- 01463: [Misc.] connect4, mpu4met0, mpu4tst2, mpu4utst, bctvidbs: Assertion
- 01475: [Misc.] Screenless systems are broken because of a vblank callback
- 01486: [Gameplay] meritm.c: access violation for all games
- 01530: [Misc.] Various Drivers: bitmap memory leaks
- 01508: [Misc.] most vector-based drivers: Assertions
- 01527: [Misc.] all meritm.c drivers: Assertion
- 01528: [Misc.] pzlestar, sexyboom: Assertion
- 01522: [Misc.] all ddragon.c drivers: Assertion
- 01523: [Misc.] nkdodge, nkdodgeb, spdodgeb: Assertion
- 01524: [Misc.] btoads: Assertion
- 01526: [Misc.] futflash, laserbas, laserbsa: Assertion
- 01507: [Misc.] all naomi.c drivers: Assertion
- 01503: [Misc.] sidearjp, sidearmr, sidearms: Assertion
- 01509: [Misc.] backfire, backfira: Assertion
- 01501: [Misc.] all m107.c drivers: assertion
- 01504: [Misc.] all leland.c drivers: Assertion
- 01506: [Misc.] all ataxx.c drivers: Assertion
- 01500: [Misc.] all astrocde.c drivers: assertion
- 01514: [Misc.] all cyberbal.c drivers: Assertion
- 01515: [Misc.] all atarig42.c drivers: Assertion
- 01516: [Misc.] all atarigx2.c drivers: Assertion
- 01517: [Misc.] all atarigt.c drivers: Assertion
- 01505: [Misc.] all vicdual.c drivers: Assertion
- 01512: [Misc.] beathead: Assertion
- 01496: [Misc.] all segae.c drivers: Crashing with Access Violation
- 01498: [Gameplay] otwalls: Hangs before the game starts.

Source Changes
Added a new device type for timers. Where applicable, added a parallel set of timer functions that take a device_config instead of an emu_timer. Added MDRV_TIMER_* macros to define the timers in the machine driver. Implemented both periodic and scanline-based timer variants. Modified Space Encounters and Centipede to make use of this feature. Going forward, this is the preferred way of creating periodic timers. [Zsolt Vasvari]

Renamed *_vbl_cb to *_vblank_callback. [Aaron Giles]

Magicfly updates: [Roberto Fresca]
- Completed the component list & PCB layout.
- Added technical references to register $63 (magicfly).
- Switched crystal to new predefined format.

Funworld updates: [Roberto Fresca]
- Added proper inputs to jolyc980.
- Added temporary patch to allow bypass the "code" screen in jolyc980.
- Updated technical notes.

Changed exidy440_sound_command back to "UINT8." Since it's used by both 8-bit and 16-bit systems, the automatic allocation is not worth it if you need an ugly UINT16 ** cast. Removed deprecat.h from some of  the exidy files. [Zsolt Vasvari]

Fixed Air Buster bootleg from reseting because of the watchdog. [Zsolt Vasvari]

The on-screen "Reset by watchdog" message only appears in debug builds now. [Zsolt Vasvari]

Fixed the top screen in the megatech games. [Zsolt Vasvari]

Added internal artwork for Gorf. [Mr. Do!]

Fixed memory leak in clifront.c. [Zsolt Vasvari]

Added a crosshair_set_screen() to allow drivers to control which screen(s) on which crosshairs are displayed. [Nathan Woods]

Made it a fatalerror to registr save state callbacks at the wrong time if the current driver claims to support save states. [Aaron Giles]

Fixed chicken and egg problem with device_start callbacks: [Aaron Giles]

- Added DEVINFO_INT_TOKEN_BYTES, which is queried before device startup. It should return the size of the structure that will be hung off of device->token. It must not return 0.

- Changed the core device interface to allocate and zero a block of memory the size of DEVINFO_INT_TOKEN_BYTES before calling device_start. The pointer to this memory is already attached to device->token at the time device_start is called.

- The primary motivation for this is to allow the device_start function to make internal calls and pass the device_config * around as if the object were fully constructed. Since the token is used to indicate whether or not a device is live, this makes the device "live" at the time device_start is called rather than after it completes.

Moved per-screen initialization into DEVICE_START and per-screen cleanup into DEVICE_STOP in the core video implementation. [Aaron Giles]

Fixed render_target_get_minimum_size() to return nominal values if no screens are found. [Aaron Giles]

Alpha Denshi major update: [Nicola Salmoria]
- Fixed Alpha 8201/830x MCU simulation.
   - all hacks from the equites driver removed
   - fixed equites restart position after going underground
   - fixed hvolume, splndrbt 2 players
   - removed hacks from exctsccr2
   - fixed CPU gameplay in shougi
- added dump of Alpha 8201 MCU to games that use it (the ROM isn't used yet, HMCS44 CPU core needs to be written first)
- major cleanup of the mess in equites.c:
   - many thanks to Corrado Tomaselli for precious hardware info.
   - implemented bg perspective scrolling using PROMs
   - fixed sprite flip & disable
   - fixed bg color
   - converted bg to tilemaps
   - fixed fg banking
   - fixed screen flip
   - removed meaningless banking of player inputs
   - added UI adjuster for MSM5232 frequency
   - MSM5232 volume control
- fixed MSM5232 noise LFSR formula (done by Jarek Burczynski; thanks to Corrado Tomaselli for samples)
- changed MSM5232 emulator to output channels separately
- added output of SOLO channels to MSM5232 emulator.
- fixed champbas inputs
- merged talbot with champbas, some driver clenaup
- fixed shougi inputs
- switched exctsccb to use the correct gfx ROMs (matches screenshot found in 01058 exctsccb: Exciting soccer bootleg should be placed in champbas.c.)
- fixed sprite bpp in exctscrr, removed the horrible hacks that were used to fix colors and transparency.
- fixed sound clipping in exctsccr
- added percussions to the equites.c games using samples; sound board emulation is still not complete. Cymbal hit and hi-hat are missing; bassline is incorrect, and DAC output should be filtered

Fixed crash in spbactn. [Zsolt Vasvari]

In drawgfx, removed unneeded pen lookups. Did some code formatting clean-up. [Zsolt Vasvari]

Fixed ninjakd2 PCM sample rate to match pcb measurement. [Nicola Salmoria]

Fixed chdman -extract to a physical drive on Windows. [Aaron Giles]

Added return value to video_screen_update_partial() indicating whether or not the VIDEO_UPDATE was called as a result. [Aaron Giles]

Fixed typo in pitnrun frequency. [Corrado Tomaselli]

DIP switch improvements: [RansAckeR]
1945kiii.c, 88games.c and 40love.c: Made use of PORT_DIPUNKNOWN_DIPLOC
40love.c: Made use of PORT_INCLUDE
8080bw.c: Added more dip locations; Made use of PORT_INCLUDE
wilytowr.c: Added dip locations for atomboy/wilytowr; Fixed coin modes
battlane.c, battlera.c, battlnts.c, bbusters.c: added dip locations
battlnts.c: made use of PORT_INCLUDE; fixed unknown dip switch
bbusters.c: added note regarding correct gun calibration
bionicc.c: Added dip locations
bladestl.c: Added dip locations, made use of PORT_INCLUDE
blockade.c: made use of PORT_INCLUDE
beezer.c: Added dip locations
bfm_sc2.c: dip switch improvements, made use of PORT_INCLUDE

Conerted the MPU4 driver to use an HD6845, as the Hitachi part was on the PCB, while also using it to generate the VBLANK, rather than hardcoding a value. Added the pulldown resistor to the network, and added all the conditional inputs. Please note that on the later Cabinet Types (Ready Steady Go-1 onwards), the 10p slot is locked out (location of the true register for this is unknown), but the input setting is correct - you have to use Coin 2 or higher to get money in. [James Wallace]

Fixed "garbage" (newlines) in the debugger window when debugging the SH-4 CPU. [Oliver Stoenberg]

New games added or promoted from NOT_WORKING status
Gekisou [Nicola Salmoria]
Pot Game (italian) [Roberto Fresca]

New clones added
Pitfall II (315-5093, Flicky Conversion) [Corrado Tomaselli]
Thunder Dragon (4th Jun. 1991) [Corrado Tomaselli]


MAMETesters Bugs Fixed
01586: [Multisession] bluehawk: Graphics corruption (Reip)
01433: [Graphics] marvins: If you play player 2, the maze remains unchanged. (Reip)
01601: [Misc.] orbit: Game doesn't start. Watchdog/reset problem? (Aaron Giles)
01584: [Misc.] exerion, exerionb, exeriont: Assertion (Aaron Giles)
01560: [DIP/Input] turpin: Cannot coin up in either slot. (RansAckeR)
01525: [Misc.] wilytowr, atomboy: watchdog resets (RansAckeR)
01524: [Misc.] btoads: Assertion (Zsolt Vasvari)
01557: [Misc.] dealem: Assertion (Zsolt Vasvari)
00059: [Graphics] commsega, locomotn, tactcian: They exhibit a problem with screen area. (Nicola Salmoria)
00406: [Graphics] qadj: When playing as the ninja, there is one broken frame in his animation loop when walking. (Nicola Salmoria)

Source Changes
bbusters: Fixed sprite wrapping -- this is used on the gun calibration screen, at least. The game still hangs on a black screen after service mode is turned off. Even exiting MAME and restarting doesn't fix it, so it's probably a EEPROM issue. [Zsolt Vasvari]

Added Noise Output to the MSM5232 emulation. [Nicola Salmoria]

Added placeholder effects for cymbal and hihat to equites.c. These will need further work to properly emulate the discrete circuitry. [Nicola Salmoria]

Cleaned cidelsa driver up to the latest spec. [Curt Coder]

Added NVRAM to Gekisou. Fixed inputs and promoted to working. [Nicola Salmoria]

Explicitly fixed unmapped handler masks so that we don't report all unmapped addresses as 0. [Aaron Giles]

Centralized definitions of _WIN32_WINNT. Removed malloc/calloc/realloc/free link-time overrides; we now rely exclusively on compile-time overrides. Made a few tweaks toward getting mingw-w64 working, but there are still linker issues. [Aaron Giles]

Fixed assertions in skullxbo and exerion. [Aaron Giles]

De-deprecat-ed ui.c. [Aaron Giles]

Changed xmlfile.c to pass in memory handlers to expat so that our memory overrides are properly managed. [Aaron Giles]

Fixed wbbc97 regression. [Zsolt Vasvari]

Fixed crospang.c regression. Not sure why this needed to be RGB15, works fine with INDEXED16. [Zsolt Vasvari]

[GTICLUB] Fixed crash. [R. Belmont]

[SCSI] Fixed case when no device exists (e.g. running the sys573 BIOS directly). [R. Belmont]

Got most of the Konami PPC games running again. [R. Belmont]

Fixed crash running "kviper" BIOS. [R. Belmont]

Changed crystal.c from RGB15 to RGB32. RGB15 is not enough bits to hold the 5-6-5 colorspace. [Zsolt Vasvari]

Updated astrof.c to use the timer device. [Zsolt Vasvari]

dgpix and eolith: Converted to INDEXED16. Removed temp bitmaps.
Changed ugly recursive video RAM code. [Zsolt Vasvari]

ddz: Removed RGB15 -- it's a "skeleton" driver, so why have it? [Zsolt Vasvari]

video\generic.c: Added PALETTE_INIT functions for common 16-bit RGB patterns. [Zsolt Vasvari]

Converted f-32, kinst, lethalj, ultrsprt, gamecstl, taitowlf to use INDEXED16. [Zsolt Vasvari]

Added option in MC6845 to programatically set the clock pin. This is needed by at least one MESS driver. Added mc6845_set_hpixels_per_column() for the Hercules gfx adapter. [Zsolt Vasvari]

Fixed video timing in xtheball. Still don't know why it changed recently, but the new parameters reproduce the old values. [Aaron Giles]

Removed unnecessary assert in video.c that broke screenless games. [Dirk Best]

Changed the zombraid gun input ports to work with the calibrated settings. [Derrick Renaud]

Fixed malzak2 from crashing. [Zsolt Vasvari]

Fixed graphics ROMs in gnga. [Cesare Falco]

Added validity check to ensure input port tags don't have duplicates.
Fixed several drivers where there were duplicates. [Aaron Giles]

Corrected clocks on Cabal bootleg. [Corrado Tomaselli]

blockhl.c, blockout.c: Added dip locations, fixed unknown dip switches. [RansAckeR]

Removed improper use of PERIODIC_INT in mpu4, to use new timer devices. Also corrected 50Hz timer in MPU4 Video games. [James Wallace]

Fixed bug in tx1.c spotted by new compiler warnings in gcc 4.3.0. [Atari Ace]

Another batch of pedantic static/const/include fixes. [Atari Ace]

Redid video timing in orbit with raw parameters. Added full memory map and a few other cleanups. [Aaron Giles]

New games added or promoted from NOT_WORKING status
Gekisou [Nicola Salmoria]
Mermaid [robiza]

New clones added
Ridge Racer (Rev. RR3, World) [Andrea Turci]


Fixed major regression in 0.124 which caused many sound routes
to be applied incorrectly. [Aaron Giles]

Reverted gnga back to its previous state. [David Haywood]

New clones added
Ghosts'n Goblins (bootleg with Cross) [David Haywood]


MAMETesters Bugs Fixed
01650: [Gameplay] ridgerac: Unstable Freezes that ends with Crash and needs totally reboot under XP (Aaron Giles)
01542: [Graphics] 3wonders, 3wonderu, wonder3: Wrong colour of background in game selection and start screens (Nicola Salmoria)
00403: [Graphics] 3wonders: Points are displayed between lives of first player and the word INSERT COIN: (Nicola Salmoria)
00410: [Graphics] xmcota: After a couple passes through the demo mode, the background on the qsound screen will go to a shade of green. (Nicola Salmoria)
01519: [Graphics] msh: After beating the game, the screen turns different colors for the endings and everything (Nicola Salmoria)
01468: [Graphics] ldrun2: Priority problem at titlescreen (Nicola Salmoria)
01469: [Graphics] ldrun2: Compared to the PCB does MAME show less graphic at the bottom of the screen. (Nicola Salmoria)
01661: [Graphics] rougien: sprite disappear (Robiza)
01613: [Graphics] swcourt, swcourtj: Strange sprites cutting on the edge of screen (Pierpaolo Prazzoli)
01622: [Core] -refreshspeed has no effect (Aaron Giles)
01629: [Graphics] raiga, stratof: broken colors on sprites (Aaron Giles)
01630: [Graphics] fstarfrc, ginkun, riot: broken colors on sprites (Aaron Giles)
01627: [Misc.] spbactn, spbactnj: Crashes with Access Violation (Aaron Giles)
01598: [Graphics] 4in1, gmgalax, pacmanbl: Sprites are cut off on the top row (Aaron Giles)
01563: [DIP/Input] gmgalax: Duplicated Inputs (Aaron Giles)
00300: [Graphics] zigzag: in cocktail mode player 2 screen is shift over to the right. (Aaron Giles)
01623: [DIP/Input] ssprint and clones: Coins don't seem to match machine order. (RansAckeR)
01454: [Graphics] mshuttle, mshuttlj, mshutlj2: The display of the screen is shifted. (Aaron Giles)
01473: [Graphics] orbitron: Orbitron graphics not correctly displayed (Aaron Giles)
01600: [Graphics] pacmanbl, batman2: The background is shifted to the right and cut off on the right side. (Aaron Giles)
01602: [Misc.] luctoday: Messed up graphics. (Screen Offset) (Aaron Giles)
01599: [Graphics] omega: Screen is vertically offset. (Aaron Giles)
01605: [Graphics] gteikokb, gteikob2: Wrong screen offset (Aaron Giles)

Source Changes
Renamed galaxian.c -> galaxold.c. Updated all drivers accordingly. [Aaron Giles]

Cidelsa driver updates: [Curt Coder]
- de-deprecated the timer callbacks
- moved PCB RAM to the heap and fixed index overflow
- converted CDP1869 to the new device system
- refactored to represent how the hardware actually works
- added PMA latching on OUT5
- separated Cidelsa video to its own file

COP CPU updates: [Curt Coder]
- implemented interrupt
- implemented serial input/output
- fixed XAD/LDD, XIS1, RMB3 opcodes
- fixed clock divider
- fixed internal memory map size
- added some cpu variants
- fixed serial timer
- fixed clocks
- fixed COP410 RMB3, XAD instructions
- general cleanup

Fix cfg file corruption if joystick is not connected; itemclass now part of token if item is not found. Settings for joysticks which use a custom item id will still be lost. A fallback has to be provided here since those will use a token generated from the input item name. [couriersud]

Memory system changes: [smf]
* Now passing mem_mask to the read and write debug hooks. This allows the address & size of the memory access to be correctly calculated when using a memory call that takes a mem_mask.
* New macros added for checking mem_mask. ACCESSING_BITS_m_n, These check for any access within the bounds between bit 'm' and bit 'n' (counting bit 0 as the least significant bit). Currently the pattern for checking whether both bytes of a word is written is to make two byte checks.
* All occurrences of ACCESSING_LSB, ACCESSING_MSB, ACCESSING_LSB16, ACCESSING_MSB16, ACCESSING_LSB32, ACCESSING_MSB32, ACCESSING_LSW32, ACCESSING_MSW32 & simple mem_mask checks have been replaced with the new macros.

Added fatal error if AM_READ_PORT() references a non-existent port. [Aaron Giles]

Converted special-case DIP switches (service, unknown, unused) into their own token type rather than expanding into other tokens. The reduces the number of redundant strings and data. [Aaron Giles]

Galaxian rewrite. Ultimately will combine the existing drivers for galaxian, scramble, frogger, scobra, amidar, and dambustr. For the moment, only a subset of games are implemented in the new system; the remainder are running on the old code. Main features are accurate video timing, correct stars implementation, better organization, simplified input ports, and many other smaller fixes. [Aaron Giles, stephh]

Minor cleanup and simplification in the video and palette code. Removed palette_config(). [Aaron Giles]

Fixed interrupt handling and 16-bit memory accessors in 6840ptm.c. Also cleaned up code for the sake of readability. [Philip Bennett]

Added multiplier (same as wecleman) to Flak Attack. Info provided by  VU801qCf. [Yasuhiro Ogawa]

Namco NA1 improvement: [Pierpaolo Prazzoli]
* Fixed sprites shadow in namcona1 driver and removed Emeraldia hack.
* Added tilemaps and sprites 4bpp mode
* Added preliminary ROZ implementation (disabled until the enable / disable register is found)
* Changed background pen to fix emeralda demo

Discrete sound system improvements: [couriersud]
* Added DISCRETE_RCFILTER_SW to discrete sound. This implements multiple RC networks with CD4066 switches to connect/disconnect capacitor.
* Implemented discrete mixing in circusc using DISCRETE_RCFILTER_SW and sound routing to route 76416 output to discrete logic.
* Added discrete filtering and mixing to galaxian.c games using konami_sound.
* Fixed timing of stream_update in discrete_sound_w. All sound cores update before processing changed data.
* Added streeam_update to discrete_sound_r
* Now supports multiple output nodes per module. In this case, NODE_XXX is the default output. Alternative outputs may be accessed by using NODE_XXX_YY where 00<Y<08.
    You may also access nodes with macros:
      NODE_XXX_YY = NODE_SUB(XXX, YY) with YY != 00
    This should e.g. make discrete sound emulation easier when dealing with e.g. flip flops (Q & QQ) and binary counters.
* Added sanity checks to check consistency issues introduced by this change
* Modules specify number of outputs ==> Certain special modules (WAVELOG) may no longer be used as input nodes
* Removed explicit (NODE_XX + expr) from a couple of drivers

Fixed encoding/decoding of negative denormal floats in the AICA/SCSP DSP. Shouldn't actually affect any games. [kingshriek, Deunan Knute]

Changed Seibu sound CPU to use AM_READ_PORT("COIN") instead of input_port_0_r. [stephh]

bloodbro.c driver improvements to DIP locations and coin modes. Added notes for 'bloodbra'. [RansAckeR, stephh]

Add input ITEM_IDs for additional axes and switches. Also added ITEM_IDs for up to 4 hats/POVs. [couriersud]

Merged memory maps for half of the W drivers. Also made a couple of random touchups for X, Y, and Z drivers. [Andrew Gardner]

Added a little magic to make the Atomiswave BIOS try to be more verbose, but our video emulation isn't good enough to cooperate. [R. Belmont, ElSemi]

Added bootleg of badlands - heavily modified, not working. [David Haywood]

Fixed DS2401 state loading now that the digital i/o board's serial number has been changed to a const by not saving it. As the serial number cannot be changed at run time it was rather pointless. [smf]

BFCobra improvements: [Anonymous]
* Added plane priority to blitter, fixing Treble Top signature writing
* Video output now supports all modes - lores, hires, mixedres, 8/7/4/3 bits/pixel, fixing Every Second Counts colour problems
* Added line draw, fixing missing stuff from Question Of Sport
* Change blitter loop type control - there are 4 types of loop.
* Corrected video frame rate to 50Hz.
* Corrected Z80 speed to 5.91mhz
* Accounted for Z80 cycles stolen during a blit operation. Improves gfx/sound sync and seems to fix the final round lockup in Every Second Counts.

Various SCSI devices register state items by their disk ID, which are not unique across device types. Introduced a device-type offset for CD-ROMs so their registrations don't clash with harddisks. [R. Belmont]

Fixed tilemap viewer to draw the whole tilemap when categories are used. Added new option TILEMAP_DRAW_ALL_CATEGORIES to do this efficiently. Updated several drivers to use this instead of rendering each category independently where appropriate. [Nicola Salmoria]

Added DIP locations to blueprnt.c [RansAckeR]

Fixed ledutil.c so it compiles cleanly under MSVC. [Mike Haaland]

Astrocade update: [Dirk Best]
- Update src/mame/includes/astrocde.h to use an XTAL value
- Clear interrupts if they are no longer valid
- Add the knob inputs

Added new makefile flag VERBOSE which enables gcc's verbose output during compile. [Marc Sandusky]

Corrected clocks on Rygar. [Corrado Tomaselli]

Changed "Machine" to "machine" in a number of places when the running machine parameter is already available. In some cases this also allowed for the removal of deprecat.h. [Oliver Stoenberg]

Did some major cleanup and gutting of pcshare.c. [Wilbert Pol]

Created a built-in overlay for Armor Attack using just rectangles. [Mr. Do!]

Added dynamic control of RX and TX pins to 6850 ACIA emulation - this is needed for correct operation of the MPU4 Video communications system, and may be handy for some MESS systems. To use, set the rx and tx clocks to 0 in the acia interface, then use acia_tx_clock_in() and acia_rx_clock_in() respectively. [James Wallace]

Added proper implentation of hardware collision in mermaid. This fixes mermaid (when the player is in the water with the sharks) and rougien. Also fixed priorities in mermaid and rougien and a sprite wrapping bug. [Robiza]

Fixed CPS1 background color. This fixes 3 wonder (game start) and mtwins (explosion during attract). It seems to break Varth, however, and has dubious effects on the boot sscreens of avsp, sfa3 and possibly other CPS2 games. [Nicola Salmoria]

Added discrete filtering and mixing to ironhors. One driver less using FILTER_RC. [couriersud]

Fixes for aerfboot (bootleg of aerofgt): [Robiza]
- fixes spriteram3 (previous value was too high and in the "city" level some build disappear
- sprite gfx bank (previously some sprite appear right and some sprite was wrong)
- fixed perfectly the sprite zoom
- removed multisprite support; in the bootleg aren't present

Converted the pit8253 implementation into a device. To make it  easier to use I've also created a src/emu/devconv.h in the same style as src/emu/memconv.h. [Wilbert Pol]

Replaced anonymous timer in tx1 with an allocated one to make state saving closer to reality. [Hugh Allen]

Changed winwork.c from using hand-built scalable locks to using standard Windows CriticalSections for now, to hopefully address

New games added or promoted from NOT_WORKING status
Multi Game III [Mariusz Wojcieszek]

New clones added
Off Road Challenge (2 sets) [Guru]
Deer Hunting USA V2 [Brian Troha]
Super Bishi Bashi Champ (Korea) [Guru]

New games marked as GAME_NOT_WORKING
Give us a Break [Philip Bennett]
Ten Up [Philip Bennett]
Beeline [Philip Bennett]
Chase Bombers [Bryan McPhail]

Source Changes
Changed the system to show a message if coin-lockout is active and a coin key is pressed. [couriersud]

Actually fixed -refreshspeed. [Aaron Giles]

Reverted previous SCSI CD change which broke some games. [R. Belmont]

Seibu COP cleanup, primarily sorting the code and identifying similarities in different implementations. [David Haywood]

Fixed an erroneous debug change which leaked into the last version of the namcona1 update. [Pierpaolo Prazzoli]

Fixed marineb colors. [David Haywood, Tomasz Slanina]

Rewrote INP recording from scratch, since all old INPs are broken anyways. Header now includes timestamp, which overrides the default time base for MAME's system time. Each frame recorded now gets a timestamp. Analog ports are recorded once per frame and interpolated. Analog port calculations are all done in fixed point for consistent results. A bunch of other minor tweaks in the input port code.
NOTE: There may still be a few changes to the final INP format. [Aaron Giles]

Improved graphic decoding for Legionnaire, the BK3 tiles are now
correctly extracted from the TXT region, map screen has correct tiles now. [David Haywood]

Removed CPS1 tile kludges and replaced with per-game ROM mapping tables. Ideally, the ROM mapping should be derived from mapping of the PALs found on the B board. Note that this is a significant change and some new bugs might be caused by it. Unlike previous bugs, where extra garbage tiles would appear in the games, the new bugs would be tiles or sprites MISSING--so they will be harder to notice. This would happen because in some cases the 16x16 regions of the gfx ROMs can be used by both scroll2 and sprites, while in other cases they must be separated. [Nicola Salmoria]

PSX updates: [smf]
- Fixed the SR masks for MTC0.
- Added ability to test the instruction/data cache ram. The scratchpad and BIU register are now handled internally to the CPU.
- All writes are performed with masks. SWL/SWR used to be implemented with two writes ( one byte and one word ) when writing three bytes, now it only ever performs one. Byte and Word writes use masks as they leave the rest of the register on the bus, which can be picked up by larger registers.
- The read/write functions to use are cached when the SR bits are updated, as are the bad address masks.
- Added coprocessor 1 & 3 support, though they don't do anything useful.
- All loads now go through the delay pipeline, a lwl/lwr will grab the value out of the pipeline if it's updating the same register.
- Added undocumented behaviour of BLEZ/BGTZ. The comparison for zero can be changed by specifying an alternate register in the RT field ( the documentation says you should always use register 0 ).
- Restricted to 16 COP0 registers & generate an exception if any of the 5 for the MMU are used.
- Added BCF/BCT instructions, although I have found no conditions that affect them yet.
- Generates an exception if any MMU instructions are executed.
- Sets the CE instruction for all exceptions, not just those involving a coprocessor. The bits of the opcode that specify the coprocessor are grabbed no matter what the instruction.
- Added TAR register and BT bit in SR. When an exception occurs during a branch, BT determines whether it was taken or not. The TAR register gets set to the destination of the branch.
- Fixed the BD bit when you are in a branch delay slot and you didn't take the branch, this shows up in the pipeline as !pc.
- Fixed branches within a branch delay slot.
- Multiply & divide instructions can be aborted if you write to HI/LO before reading the result. Added data breakpoints, you don't appear to be able to set breakpoints on any of the addresses internal to the CPU.
- Multiply/divide/GTE instructions can execute when an exception is taken, although the EPC indicates that it hasn't. The BIOS avoids rerunning GTE instructions as they are destructive, so you have to make sure they run.
- Added bus error handling, PSXCPU is limited to 8mb of ram & any access outside this range will trigger an exception. I believe this is to be an internal limit.
- Added CXD8611R as a specific CPU type, System 12 appears to allow more than 8mb of ram & it's possible that this is different.
- Mapped out all instructions to either generate an exception or ignore bits.
- Updated the disassembler to match the decoding.
- Fixed disassembling of branch instructions in a branch delay slot.
- Lui checks for a ori/addiu following and will show you the result.
- Added step over/out support.
- Fixed standalone disassembler.
- Fixed SZ0 truncation.
- Fixed IRGB truncation and conversion to IR1/IR2/IR3
- Added IR1/IR2/IR3 saturation when calculating ORGB.
- Fixed OTZ sign extension
- Fixed reading from SXYP
- Fixed reading from IRGB
- Fixed writing to LZCR
- Fixed sign extension of GTE control registers
- Fixed writing to FLAG
- Fixed flag calculation in F macro.
- Fixed avsz3 & avsz4 flag & otz calculation.

Fixed unicode crashing bug with input names. [Aaron Giles]

Renamed input port functions: [Aaron Giles]
  readinputport           -> input_port_read_indexed
  readinputportbytag      -> input_port_read
  readinputportbytag_safe -> input_port_read_safe
Added machine parameter to input port functions. Updated many drivers to accomplish this.

Bulk converted drivers explicitly calling input_port_n_r() with a bogus offset to calling input_port_read_indexed() instead. [Aaron Giles]

Memory map merges for drivers starting with U, V, W, and Z. [Andrew Gardner]

Mostly fixed sound in N64-based games. [Adam Gashlin]

Correct DMA functionality in N64-based games. [Ville Linde]

Aerfboot improvements: [robiza]
- sprite offset are now correct
- split spriteram in two parts
- identified last sprite for the two parts
- promoted to "working" (no sound)

Pallavol improvements: [robiza]
- fix for sprite's y-coordinate
- implement lookup table for convert sprite code in the real code
- change the name to "1991 Spikes (Italian bootleg)
- fix scroll
- fix offset

Merged sonson memory maps. [Nicola Salmoria]

Added mising TC0060DCA sound mixer to the Taito Z driver. Marked one dblaxle ROM as BAD_DUMP. [Nicola Salmoria]

Changed the 8237dma implementation into a device. [Wilbert Pol]

Fixed wrong tile-sprite priority in m62 driver. [robiza]

Fixed nec v30 dasm when a "real-time encrypted cpu" is used. Also fixed Execution Clocks for add,addc,and,or,xor,cmp,sub,subc instructions. [robiza]

Removed the hardcoded dependency on a 8254 device from the 8042kbdc code. Changed the drivers using the 8042kdbc to define their own 8042kdbc - 8254 dependency. [Wilbert Pol]

Rewrote core memory handlers as inline functions. These should be easier to trace through in a debug build, yet should operate the same as before. [Aaron Giles]

Created a complete set of functions for all databus sizes (8,16,32,64) and all endiannesses. A few functions are redundant, but it is now very clear which functions to use in which scenarios. It is also now possible to rely on being able to access values of 8, 16, 32 or 64 bits via the built-in accessors without fear of crashing. [Aaron Giles]

Updated all cores using 8-bit handlers to explicitly call the 8-bit handlers with the appropriate endianness. [Aaron Giles]

Fixed a few games which were calling n-bit handlers directly to use the generic forms. In the future, this is all the access drivers will have. [Aaron Giles]

More opcodes fixed in gussun oyoyo and risky challenge. [robiza]

Added tags and locations to dips for marvins.c and matmania.c. [Fabio Priuli]

Enabled roz tilemap in emeraldia, but it's not centered in the right position when it's not in its original dimension. [Pierpaolo Prazzoli]

Fixed 'lghost*' Dip Switches. [stephh]

Reduced the number of save state callback types from 3 to 1. The only remaining form is the one that takes a pointer parameter. Added macros for STATE_PRESAVE and STATE_POSTLOAD to define common functions. Added machine parameter to these functions. Updated all drivers and CPU/sound cores  to use the new macros and consolidate on the single function type. As a result pushed the machine parameter through a few initialization stacks. [Aaron Giles]

Removed unnecessary postload callbacks which only marked all tiles dirty, since this is done automatically by the tilemap engine. [Aaron Giles]

Updates for the driver wc90b.c: [ClawGrip]
- Removed the second YM2203, it isn't present on the bootleg boards
- Changed the clocks according to the oscilators found on the board

Added the running_machine* parameter to the function passed into cpunum_set_irq_callback() and adds the IRQ_CALLBACK macro for the callback function. [Oliver Stoenberg]

Cleaned up the Machine usage in the osd/windows files and added the running_machine parameter where possible. [Oliver Stoenberg]

Various tweaks/fixes from MAMEPlus:
* save state support for FD1094 chips
* improved graphics in athena
* improved sound balance in armedf
* derived refresh rate for toaplan1 games
* improved sound balance in tmnt games
* derived clocks for suprridr
* tweaked xmen visible area
* derived clocks and refresh rate in twin16 driver

CPS1: Verified some gfx ROM mapping tables against PAL dumps. Improved understanding and emulation of palette related registers. [Nicola Salmoria, Corrado Tomaselli]

New games added or promoted from NOT_WORKING status
1 on 1 Government (JAPAN) [smf]

New clones added
Seibu Cup Soccer :Selection: (set 2) [Arzeno Fabrice]
Super Monaco GP (set 1, Japan, Rev A, FD1094 317-0124a) [Corrado Tomaselli]
Added Side by Side 2 (Japan) [Yasuhiro Ogawa]

New games marked as GAME_NOT_WORKING
Touchmaster 5000 (v7.10) [Brian Troha]
Touch Master 7000 [Brian Troha]


MAMETesters Bugs Fixed
01691: [Misc.] Various Sets: when exiting a game, seems to be
  any game I get an eip error (Aaron Giles)
01697: [Graphics] sfa3, sfa3b, sfa3u, sfa3ur1: About the blue
  background in startup screen. (Nicola Salmoria)
00206: [Graphics] ninjakd2: PCB info for Nicolas state.
  (Nicola Salmoria)
01695: [DIP/Input] ptblank, gunbulet: Crosshair doesn't move (smf)
01694: [Graphics] punisher, punishrj, punishru: missing graphic
  (Nicola Salmoria)

Source Changes
PSX core updates: [smf]
- removed casts and removed unnecessary decoding from NCLIP.
- added signed values to PAIR & PAIR64.
- renamed PAIR64.lw to PAIR64.q
- tidied up DPCS, improved flag calculation and added support for
    lm/sf fields.
- added sf/lm support to INTPL, improved flag calculation &
    calculates correct rgb
- fixed calculation of bit 31 of GTE FLAG register, when writing
    to it directly.
- added lm mode to OP and fixed the calculation.
- added lm mode to SQR.

Seibu implementation cleanups: [David Haywood]
- added cop/heatbrl ram clear stuff
- tried to make cop a bit more generic, breaks a few things for
    now, but better than duplicated code all over the place
- added the sound cpu to raiden2, although it doesn't make any sounds

Fixed CPS1 palette control register to match tests on msword psb.
[Nicola Salmoria, Corrado Tomaselli]

Changed the pic8259 implementation into a device. [Wilbert Pol]

Fixed an opcode in quizf1. Fixed encrypted disassembly for
bp+ix+offset8 and bp+it+offset8. [Robiza]

Modified bionicc to compute the palette based on the schematics.
[Nicola Salmoria]

Verified several CPS1 graphics ROM mappings against PAL dumps.
[Nicola Salmoria]

Changed device read/write functions to take a const device_config *.
Reverted recent hacks to get around this and removed unnecessary
casts. [Aaron Giles]

Fixed I8039 DAA instruction when A is > 0xF9. [Wilbert Pol]

Fixed crosshair update when the game is not polling the coordinates.

Merged CPS1, CPS2 memory maps and some tweaks from schematics, though
to get perfect memory maps dumps of the A-board PALs would be needed.
[Nicola Salmoria]

Adjusted docastle refresh rate to match PCB measurement.
[Nicola Salmoria]

Finished memory map merge for W drivers. [Andrew Gardner]

Added support for using smaller-sized memory handlers directly in
memory maps. To do so, you need to use the new AM_READn/AM_WRITEn
macros and specify a mask for which bits are connected. [Aaron Giles]

Removed word-sized handlers from 6821pia.c. Updated drivers that
needed them to use these new interfaces instead. [Aaron Giles]

Updated gaelco3d.c and itech8.c to remove the need for memconv.h
by using this new feature. [Aaron Giles]

Added machine parameter and macros for the CDP1802 callback functions.
This seems to have fixed the player sprite flashing in Destroyer/
Altair/Draco. [Curt Coder]

Fixed lookup table for sprites in spikes91. [Robiza]

Made some changes to the 'v25' code in toaplan2.c. Batsugun does
upload what looks to be the entire program, unencrypted. If enabled
it runs to the point of waiting for interrupts, however, for those it
looks like it needs a real V25 core with register banks etc.
[David Haywood]

Converted the IDE controller to a device. Updated all drivers
accordingly. [Aaron Giles]

Added new functions for dynamically installing device memory
read/write handlers. [Aaron Giles]

Updated install_memory_XXX_handler() functions to take a machine
parameter. Updated all drivers accordingly. [Aaron Giles]

Merged installation of read and write handlers where appropriate.
[Aaron Giles]

Simplified memory.c code for dynamic installation so that a single
function handles all the work; a NULL read or write handler
indicates not to install anything for reads or writes. [Aaron Giles]

Fixed sprite overdraw mode to match Mutant Night movie.
[Nicola Salmoria]

Properly marked puzznici as a bootleg and disabled the MCU simulation
on it, it has it's own internally. [David Haywood]

Merged memory maps for aquarium, argus, armedf, bagman, battlera
drivers. [Aaron Giles]

Created new macro: AM_RAM_WRITE(handler) which specifies a memory
range to be RAM-like for reads but calls the given handler for writes.
[Aaron Giles]

Replaced AM_READWRITE(SMH_RAM, handler) with AM_RAM_WRITE(handler).
Also replaced AM_RAM AM_WRITE(handler) with AM_RAM_WRITE(handler).
[Aaron Giles]

Added correct rom dump for Shinobi4 set. [Arzeno Fabrice]

Added good denjinmk graphic rom. [Guru]

Removed ancient 720 kludge in the T-11 core. [Aaron Giles]

Added support in the T-11 core for an external vector via irq_callback.
Apparently the hardware actually did support this and it is necessary
for emulating the BK 0010/11 computer in MESS. [Aaron Giles]

New games added or promoted from NOT_WORKING status
Show Hand [Luca Elia]

New clones added
Led Storm Rally 2011 (US) [Bryan McPhail]
Shinobi (alternate set) [Brian Troha]
Aero Fighters (bootleg set 2) [Robiza]

New games marked as GAME_NOT_WORKING
Nandemo Seal Iinkai [Luca Elia]


MAMETesters Bugs Fixed
00426: [Core] tenkaibb, mjreach: don't bootup correctly. (Emuman)
01711: [Gameplay] connect4, mpu4met0, mpu4tst2, mpu4utst, bctvidbs: Using -CHEAT trigger causes a crash (Atari Ace)
00149: [Misc.] No error report for invalid BIOS setting. (Atari Ace)
01588: [Core] timecrsa, timecris: MAME simply quits after pressing F3 in both sets, game cannot be runned (Atari Ace)
01733: [Core] diehard: Game fails to start (Aaron Giles)
01710: [DIP/Input] spacetrk, sptrekct: Cannot insert coins in both sets (Aaron Giles)
01721: [DIP/Input] sspaceat, sspacat2, sspacat3, sspacatc : Problems with inserting coins. (Aaron Giles)
01740: [DIP/Input] carnival, headon, heiankyo, pulsar, samurai, tranqgun : Is not possible to insert any coin. (Aaron Giles)
01724: [Core] garou, garouo: Can't start the game (Aaron Giles)
01732: [Core] kof99, kof99a, kof99e: Game doesn't start (Aaron Giles)
01742: [Interface] punchout, armwrest + many vsnes.c and playch10.c games: Refreshspeed causes fatal exception in punchout (Aaron Giles)
01670: [Graphics] kungfum, kungfud, spartanx, kungfub, kungfub2: Main character sprite not hidden at end of level. (Nicola Salmoria)
01686: [Graphics] ldrun3, ldrun3jp: visible area problem (Nicola Salmoria)
00248: [Graphics] repulse: Once the player has been shot, a misplaced tile appears on the screen. (robiza)
01145: [Graphics] sonofphx, 99lstwar, 99lstwrk, repulse: When you die in the first level, there's a red graphics glitch at the lower left. (robiza)
00498: [Graphics] sonofphx, 99lstwar, 99lstwra, 99lstwrk, repulse: When the end-level mothership appears in the stage 4, it shows through the trees and scrolls showing through. (robiza)

Source Changes
Improvements to aerfboo2: [robiza]
- fix bg1 and bg2 offset
- fix sprites
- promoted to "working" (NO SOUND)

Added a macro for the CDP1869 interface, and made write handlers optional. [Curt Coder]

Fixed offset sprite/background in kyugo.c. [robiza]

Fixed the 6502 family of disassemblers to show the correct bit to operate for BBR, BBS, RMB and SMB instructions. (65C02/65CE02 CPUs and variants) [Roberto Fresca]

Fixed 2 opcodes for quizf1: now the little machines move correctly. [robiza]

Converted the ppi8255 implementation to a device. [Wilbert Pol]

Changed the inline validity checks to work around GCC bug #35885. [Wilbert Pol]

Expanded the set of memory accessor functions. In addition to direct byte, word, dword, and qword accessors for all bus sizes, there are now masked word, dword, and qword accessors for all bus sizes. [Aaron Giles]

Further CPS1 improvements:
[Nicola Salmoria, Corrado Tomaselli, Charles MacDonald]
* fixed layer enable at the end of stage 4 in Varth.
* increased Varth CPU clock to 12MHz to reduce slowdowns (the game was released after sf2ce so the faster A-board was available).
* verified more gfx rom mappings against PAL dumps (thanks to Corrado)
* verified memory maps using A-board PAL dumps (thanks to Charles)
* separated the address ranges for CPS-A and CPS-B customs. This finally clarifies why some registers are fixed and some change with every game.
* identified three new unknown registers in the CPS-B-21 custom. Their purpose is unknown.
* all unhandled accesses to CPS-A/CPS-B registers will now be reported. There shouldn't be any left. Look out for "contact MAMEDEV" popups.
* cleaned memory maps. Moved forgotten worlds special input mmeory handlers to DRIVER_INIT.
* moved extra input handlers to video/cps1.c since the extra connectors are on the C-board.
* added sound to Final Crash.
* lowered SF2 clock speed to 10MHz. This is on the assumption that, since the 12MHz A-Board is called "89626A-4 DASH", it should have started to be used with SF2 DASH--that is, sf2ce.

Inverted the sense of the memory mask that is passed to read/write handlers. Previously, the mask indicated which bits were NOT requested to be read/written. Now, the mask indicates which bits ARE to be read/written, which is more logical. Updated a number of drivers and the MIPS CPU cores to comply. [Aaron Giles]

Funworld updates: [Roberto Fresca]
- Removed the temporary hack to jolyc980.
- Updated technical notes
- Moved snookr10 to its own driver.
-  Minor clean-up.

Improved the IGS017 based games: [Luca Elia]
- iqblocka: bypassed the protection, emulated the video hardware, inputs and sound.
- tjsb: it now boots and has partially decrypted graphics.

Added new Windows option -watchdog, which creates a watchdog thread that forcibly kills the application after a certain number of seconds. Primarily intended to be used in regression test runs to handle the occasional hung game. [Aaron Giles]

Improved popper.c colors useing resistor values from schematics. [couriersud, Joe Magiera]

Changed and verified cpu frequencies on kyugo.c games. Gyrodine and 99 the last war and clones run on the same board. [Corrado Tomaselli]

Added preliminary 68681 DUART (machine\68681.c) [Mariusz Wojcieszek]

Moved Microtouch touch screen controller emulation to separate module (machine\microtch.c). [Mariusz Wojcieszek]

Specifying an invalid bios is now a fatalerror. Also, "default" is no longer a special BIOS type; if you want the default BIOS, leave the bios option blank. [Atari Ace]

DEC T-11 CPU improvements: [Miodrag Milanovic]
- HALT - now calls interrupt vector
- ILLEGAL - had PC=0 at the end which makes code not run fine
- MARK - now it is implemented

Memory map merge for twin16 driver. [Andrew Gardner]

Removed silly idle skip code in prehisle driver. [David Haywood]

AY-3-8910 rewrite: [couriersud]
* adds a model to calculate mixing of channels with different resistance loads.
* based on above, each channel may be assigned a different load in individual case, i.e. channels not tied together
* rewrote ay8910.c to make emulation simpler
* changed the config structure to include a flag field and output resistor loads.
* Updated all drivers affected.
* Added some "Todos" related to stuff I discovered when reading datasheets.
* Fixed a bug in disc_flt.c (konami filters)

Fixed discrete sound and konami filter addressing in galaxian driver. Also changed addressing of AY-3-8910 to be in line with schematics. [couriersud]

Added discrete sound for filtering ("konami"-style) and mixing in gyruss.c. [couriersud]

Changed UI to allow volumes higher than 2.0. [Nicola Salmoria]

Changed code which used assignment in conditionals to break out the assignment. [Atari Ace]

Converted a large number of Machine -> machine and removed #include "deprecat.h" where possible. [Atari Ace]

New games added or promoted from NOT_WORKING status
Side by Side [Maruwa]
Jumping Pop (NICs, Korean bootleg of Plump Pop) [Robin Cooper, David Haywood]
Touchmaster [Mariusz Wojcieszek]
Touchmaster 3000 [Mariusz Wojcieszek]
Touchmaster 4000 [Mariusz Wojcieszek]
Touchmaster 5000 [Mariusz Wojcieszek]
Touchmaster 7000 [Mariusz Wojcieszek]

New clones added
Aero Fighters (bootleg set 2) [robiza]
1942 (Williams Electronics license) [Quarterarcade]
Rygar (US set 3 Old Version) [Corrado Tomaselli]
Ghosts'n Goblins (Italian bootleg, harder) [Corrado Tomaselli]

New games marked as GAME_NOT_WORKING
Apple 10 (Ver 1.21) [Roberto Fresca]
Ten Balls (Ver 1.05) [Roberto Fresca]


MAMETesters Bugs Fixed
01752: [Core] Warnings making standard .124u4 in GCC 4.3.0 (mingw) (Aaron Giles)
00149: [Misc.] No error report for invalid BIOS setting. (Aaron Giles)
01628: [Sound] bgaregga, bgareghk, bgaregnv, bgaregcn, bgaregt2: Sound broken (robiza)
01757: [Graphics] fieldday, undoukai: Graphics Corruption. (robiza)
00249: [Graphics] vangrd2: [possible] In cocktail mode, or when the flip screen dip is set, the score display is not flipped. (robiza)
00506: [Graphics] marvins: Screen flipping isn't correctly supported (robiza)
01744: [Graphics] gradius3, grdius3a, grdius3e: missing title text in intro (robiza)
01747: [Graphics] dietgo, dietgoe, dietgou, dietgoj: A ToDo note no more needed into the driver. (robiza)
01430: [Graphics] riskchal: Sprite-tile priority problem (robiza)
01750: [Graphics] troangel, newtangl: Corrupt sprite graphics in game (robiza)

Source Changes
snookr10 updates: [Roberto Fresca]
- Decrypted the apple10 tile matrix.
- Partially decrypted the apple10 color codes.
- Added encryption notes.
- Updated technical notes.

Added DISCRETE_KEY_SALLEN_FILTER to discrete sound system. [couriersud]

Added discrete mixing and filtering to irem games using m52-sound-c boards: mpatrol, travrusa. [couriersud]

Proper implementation of the tile/sprite priorities in m90 driver. This fix priorities in quizf1, riskchal amd maybe more m90 games. [robiza, Corrado Tomaselli]

Fix AY-3-8910/YM2149 and derivatives envelope handling. [couriersud]

Funworld games: [Roberto Fresca]
- Fixed AY8910 volume to all games to avoid clips.
- Merge bigdeal and funworld machine drivers thanks to the AY8910 rewrite.
- Removed old unaccurate commentary about magiccrd tiles.

De-hacked metro tilemaps. [David Haywood]

Sandii' Games: [Roberto Fresca]
- Created a new machine driver for tenballs due to different memory map.
- Worked all the input ports from the scratch.
- Fixed the sound ROM_REGION.
- Added the oki6295 emulation to all games.
- Hooked output ports.
- Documented and calculated all bits related to lamps.
- Adjusted palette lenght to 256 colors.
- Totally decrypted the apple10 color matrix. Now colors are perfect.
- Created a new machine driver for apple10 due to encryption.
- Reverse engineering the code to complete the DIP switches.
- Added diplocations to DIP switches.
- Promoted snookr10, apple10 and tenballs to 'WORKING' state.
- Added game instructions & notes.
- Updated encryption & technical notes.

NES/PlayChoice 10 changes: [Mariusz Wojcieszek]
- added support for mapping rom and ram in PPU video memory space
- added PinBot mapper (H board)

All CMC italian games: [Roberto Fresca]
- Added TICKET and HOPPER buttons to allow payout through the SUPER GAME.
- Documented the featured SUPER GAME with complete instructions.
- Improved DIP switches to properly set the payout system.

Changed the implementation of the cocktail mode in marvins.c. [robiza]

Merged memory maps for tunhunt, tumblep, tugboat, trucocl, and truco. [Andrew Gardner]

meritm driver updates: [Brian Troha, Tafoid]
- Consolidated, corrected and updated info
- Verified Megatouch IV program rom
- Corrected many rom names
- Add game revision to game name (IE: 9255-40-01 ROE)
- Added pals from Megatouch 6 to other sets as they all run on the same PCB
- Add the sound clock update from Tafoid

Massive update to ROM naming in the CPS1 driver, also loading smaller eproms for Japanese sets instead of the larger mask ROMs where possible. Added information about B-Board revisions where possible. There is still work to do on this regard but this is a first step in untangling the mess. [Nicola Salmoria]

Verified more CPS1 gfx ROM mappings against PALs. [Nicola Salmoria, Corrado Tomaselli]

Fixed another opcode in match it 2. [robiza]

Converted the MSM6242 RTC into a proper device. [Dirk Best]

Removed deprecat.h from debugger.h to prevent hiding modules that really needed to include deprecat.h. [Atari Ace]

Added support for 8080/85 mode interrupts to the 8259 PIC. [Miodrag Milanovic]

Verified a "not sure" opcode in bombrman. [robiza]

Changed BIOS errors so that specifying an invalid BIOS is a warning, not a fatal error. Also re-allowed "default" as a BIOS setting with special meaning. [Aaron Giles]

New games added or promoted from NOT_WORKING status
Quiz F-1 1,2finish [robiza]
PinBot (PlayChoice-10) [Mariusz Wojcieszek]
Snooker 10 [Roberto Fresca]
Apple 10 [Roberto Fresca]
Ten Balls [Roberto Fresca]

New clones added
Touch Master 3000 V5.02 [Brian Troha]
Megatouch IV (9255-40-01-ROE) [Brian Troha]
Dynasty Wars (US set 2) [Corrado Tomaselli]
Final Fight (Japan 900112) [Chack'n]
Street Fighter Alpha 2 (Euro 960229) [Razoola]
Raimais (Japan / First Revision) [Corrado Tomaselli]

New games marked as GAME_NOT_WORKING
Forgotten Worlds (World?) [The Guru]


MAMETesters Bugs Fixed
01743: [Sound] anteater: Music is really loud and clips (Aaron Giles)
01770: [Misc.] hanayara, mjangels, mjcomv1, mjreach, quiztvqq, tenkai, tenkaibb, tenkaicb, yarunara: msm6242 device assert (Duke)
01778: [Sound] all sets in m62.c driver: low ay8910 volume (Aaron Giles)
01771: [Misc.] arescue, f1en: space_map_range errors (Aaron Giles)
01772: [Misc.] daireika: space_map_range assertion (Aaron Giles)
01773: [Misc.] steelta1, steeltag, steeltal, steeltap: space_map_range error (Aaron Giles)
01774: [Misc.] racedcb4, racedcg4, racedrc1, racedrc2, racedrc4, racedrcb, racedrcg, racedrvc: space_map_range error (Aaron Giles)
01775: [Misc.] newtangl, troangel: Crash with Access Violation (robiza)
01767: [Sound] Various neodrvr.c games: Various sound effects broken (couriersud)
01769: [Sound] All games using YM2610: SSG volume more than 1.0 causes no audio output. (couriersud)

Source Changes
Added video enable/disable feature in m90 driver. [robiza]

Fixed ROZ centering in namcona1 driver [Phil Stroffolino]

Added extra tile banking and layer enable for denjinmk. [David Haywood]

Fixed an envelope corner case in the SCSP and AICA. [kingshriek]

Removed bogus assertion in device code - DEVICE_TYPE_WILDCARD is NULL. [Nathan Woods]

Added xchg and a few other missing opcodes to x86emit.h. [Aaron Giles]

Added -watchdog to runtest.cmd. [Aaron Giles]

Verified clocks on Bomberman pcb which runs on M90 hardware. [Corrado Tomaselli]

New games added or promoted from NOT_WORKING status
Paparazzi [Tomasz Slanina]

New clones added
Touchmaster 7000 V8.04 [Brian Troha]
Megatouch III Tournament Edition [Hugh McLenaghan]
Megatouch III [Mariusz Wojcieszek]
Heated Barrel (World version 3) [Tomasz Slanina]
Raiden 2 (set 7) [Tomasz Slanina]


MAMETesters Bugs Fixed
01795: [Misc.] tm, tm3k, tm4k, tm5k, tm7k: Day on clock doesn't work (Luigi30)
01717: [DIP/Input] arcadecl, sparkz: Service Key mapped twice. (stephh)
01713: [DIP/Input] spaceg: All joystick/buttons mapped twice. Button 1 is mapped 3 times! (stephh)
01791: [DIP/Input] asterock: Unable to credit up or play the game. Also, there are discrete sound issues. (Fabio Priuli)
01790: [DIP/Input] zerowng2: Last "Unused" dipswitch is for territory. (Roberto Fresca)
01738: [Misc.] neruton: Typo in title (Roberto Fresca)
01787: [DIP/Input] columnsu: 1st unknown dip switch indentified (Roberto Fresca)

Source Changes
Improved cbombers sprites [Philip Bennett]

Renamed ports and used AM_READ_PORT macros in arcadecl. [stephh]

Add feature to the cia6526: in READ operation the value can be forced by a external circuit; this feature is necessary for MESS. [robiza]

undrfire.c improvements: [Philip Bennett]
* Hooked up cbombers steering wheel input.
* Changed ES5505 clock rate to 30476100/2.
* Unified cbombers memory maps and tidied up some code.
* Removed the undrfire speedup hack.

Marked the sound roms on Q*Bert's Qubes as bad and changed the flag to imperfect sound. The current sound cpu roms are the same as on a normal Q*Bert board, which is incorrect. At least three sound effects are present in the real qq-snd roms but not the Q*Bert qb-snd ones. [Lord Nightmare]

Fixed the ROZ effect in Namco NA1 driver. ROZ tilemap is actually an additional tilemap. Fixes a bug where a "roz enable" test was causing a normal layer to be rendered with ROZ effects in-game. There is no roz enable register - it's always available for mixing with other tilemaps and sprites. This also adds a missing NAMCO logo zoom/spin effect in Emeralda's attract mode. [Phil Stroffolino]

Added memory address parameter to CDP1802 DMA callbacks, and added a macro for the CPU interface. [Curt Coder]

Rewrote the Gaelco video ram encryption, which finally makes sense. The key observation was that when decrypting the second word, both encrypted and decrypted bits of the first word are used. Many thanks to Javier Valero for the detailed information that made this possible. [Nicola Salmoria]

Fixed coin inputs, added validator input, and added notes on inputs to the tmaster driver. [Luigi30]

Merged memory maps for drivers: tagteam, tail2nos, tankbatt, tankbust, taotaido, targeth, and taxidrvr. [Andrew Gardner]

New driver for old Game-A-Tron gambling games hardware. [Roberto Fresca]
- Properly decoded graphics.
- Proper memory map.
- Added NVRAM support.
- Proper Inputs through 8255 PPI I/O chip.
- Both games are working.
- Added technical & game notes.

New universal dynamic recompiler system: [Aaron Giles]

    The central module is drcuml.c, which defines a universal machine language syntax that can be generated by a frontend recompiler and then retargeted via a generic backend interface to any of a number of different architectures. A disassembler for the UML is also included to allow examination of the generated UML code.

    Currently supported backend architectures include 32-bit x86, 64-bit x86, and a platform-neutral interpreted C backend that can be used as a fallback for platforms without native support. The C backend also performs additional validation to ensure assumptions are met.

    Along with the new architecture is a new MIPS III/IV recompiler frontend. This frontend has been rewritten from the old x64-specific recompiler to generate UML opcodes instead. This means that the single recompiler can be used to target multiple backend architectures and should in theory produce identical results across all of them.

    The old 32-bit and 64-bit MIPS recompilers are now officially retired. The new system provides similar performance (within 5% generally) to the old system and has similar compatibility. The only currently known issues are some problems with the two Gauntlet 3D games.

Added DS5002FP CPU core. [Manuel Abadia]

Added CDP1852 I/O buffer chip, and used it in Altair/Draco. [Curt Coder]

Found the proper algorithm to decrypt the blue TAB PCB in the funworld driver. Replaced the old decryption tables with the proper decryption scheme. Updated technical notes. [Roberto Fresca]

Added uncompressed AVI recording: [Aaron Giles]

    Extended aviio to be able to write RGB bitmaps. Unfortunately, the only option is fully uncompressed, which means the resulting AVIs are *HUGE* and may not play correctly in realtime due to high data rate. The intention is that these uncompressed AVIs are post-processed by other utilities to compress the video and produce a realtime playable result.

    Added new command-line option -aviwrite which works just like -mngwrite, except it produces AVIs and streams sound to them. Updated documentation accordingly.

    Shift+F12 still produces MNGs for now, though this might change in the future.

    Modified fileio.c to retain the full pathname to the file so that it can be queried while the file is open.

Updated TMS5200/5220 documentation and comments. Fixed the chirp table implementation in both the 51xx and 52xx chips. [Lord Nightmare]

Fixed default dipswitches on thoop to give more than 1 life. [David Haywood]

Bug fixes for NamcoNA Hardware: [Phil Stroffolino]
- support for scanline effect (fixes invisible dolphin in Emeralda attract mode)
- ROZ implementation no longer breaks Numan Athletics pixmap layer
- blitter fixes; xday graphics are now correct
- identified extra communications RAM used by xday (probably to control printer)

Fixed crash in dynax games due to missing MSM6242 device. [Dirk Best]

Changed Black tiger main Z80 clock to 6MHz and sound Z80 clock to 3.579545MHz as verified on PCB. [Corrado Tomaselli]

Consolidated opbase variables into a structure and rescoped them so they are hidden for general access. [Atari Ace]

New games added or promoted from NOT_WORKING status
Pit Boss Superstar [Hugh McLenaghan]
Chase Bombers [Phil Bennett]
Card Games? [Roberto Fresca]
Slots Game? [Roberto Fresca]
World Rally [Manuel Abadia, GAELCO SA]
beatmania 7th MIX (ver JA-B) [Chizzy]

New clones added
The Legend of Kage [Stefan Lindberg]
Megatouch III (9255-20-06 RON) [Brian Troha]
Ghox (set 2) [Tormod Tjaberg]
Demon's World / Horror Story (early edition) [Brian Troha]
Legendary Wings (bootleg) [Sonikos]

New games marked as GAME_NOT_WORKING
beatmania THE FINAL (ver JA-A) [Chizzy]


MAMETesters Bugs Fixed
01815: [Save/Restore] All Sets: Saved machine states do not properly adjust to changes in -samplerate (Aaron Giles)
01671: [Interface] every set with PORT_MODIFY used for DIPs (e.g. arknoidj): the modified dipswitches are always listed at the bottom of the list (Aaron Giles)
01814: [Sound] YM2608 games (tail2nos, sformula, wc90, mechatt): Only basic music, no more samples (couriersud)
01497: [Graphics] numanath, numanatj: Graphics corruption on title screen. (Phil Stroffolino)
01804: [Core] carnevil, sfrush: Seattle games crash on startup (Aaron Giles)

Source Changes
Fixed long-standing bug with Emeralda text colors. A sprite attribute exists which signals an alternate interpretation of  palette ram. Fixed priority for the bitmap layer used in Numan Athletics. [Phil Stroffolino]

Restructured input port internals and cleaned up inptport.c: [Aaron Giles]

    * Input ports are now maintained hierarchically. At the top level are input ports, which contain a list of fields. Each field represents one or more bits of the port. Certain fields such as DIP switches and configuration switches contain a list of settings, which can be selected. DIP switch fields can also contain a list of DIP switch locations.

    * Normalized behavior of port overrides (via PORT_INCLUDE or by defining multiple overlapping bits). All fields within a port are kept in strict increasing bit order, so altered DIP switches are now kept in the appropriate order. This addresses MAMETesters bug 01671.

    * Live port state is now fully separate from configured state. This is manifested in a similar way to devices, where a const list of ports can be managed either offline or live. Each port has a pointer to an opaque set of live state which is NULL when offline or valid when live. Each port also has a running_machine * which is also NULL when offline.

    * Because of this new arrangement, the conversion from tokens to a list of ports now requires reasonably complex memory allocation, so these port lists must be explicitly allocated and freed (they are not mantained by automatic resource allocation).

    * Custom and changed callbacks now take a pointer to a field config instead of a running machine. This provides more information about what field triggered the change notification. The machine can be found by referenced field->port->machine.

    * The inptport.c module has been cleaned up and many ambiguities resolved. Most of this is internal, though it did result in osd_customize_inputport_list() being changed to osd_customize_input_type_list(). The parameter to this function is now a linked list instead of an array, and the structures referenced have been reorganized somewhat.

    * Updated config.c to pass machine parameters to its callbacks.

    * Updated validity checks, XML output, and UI system to handle the new structures.

    * Moved large table of default input settings to a separate include file inpttype.h.

    * Removed gross hacks in trackfld and hyperspt NVRAM. These may be broken as a result.

Further Namco NA-1 changes: [Phil Stroffolino]
* Adjusted alternate palette handling weights to more accurately match real hardware - text anti-aliasing is much more noticable.
* Adjustment to roz layer priority - prevents roz layer from incorrectly being displayed over backgrounds in some games (i.e. numanathj)
* Added a mask when processing the roz tilemap to avoid defects in emeraldj

Fixed black pixel patches present in the TC0100SCN fg layer of undrfire and groundfx. [Philip Bennett]

Universal DRC system updates and improvements: [Aaron Giles]

    * Added back-end validation mechanism, and a handful of tests as examples. This will be expanded in the future.
    * Added several new opcodes:
       - SAVE dumps the entire virtual machine state to a struct
       - RESTORE applies the data in a struct to the live state
       - LZCNT counts leading zeros in an operand
       - XTRACT extracts a bitfield to another register (rlwinm)
       - INSERT inserts a bitfield into a register (rlwimi)
    * Added new back-end function get_info() which returns information from the back-end about how many actual registers will be mapped.

   x86 back-end:
    * Implemented all new opcodes.
    * Implemented get_info() function.
    * Fixed several bugs relating to shifts/rotates and optimizing out cases incorrectly.

   x64 back-end:
    * Implemented all new opcodes.
    * Implemented get_info() function.
    * Added defines for new Penryn opcodes to x86emit.h.
    * Added support for ROUNDSS and ROUNDSD on Penryn architectures. This hasn't been tested. If you have a Penryn-based system, give it a try.
    * Fixed several bugs relating to shifts/rotates and optimizing out cases incorrectly.
   C back-end:
    * Implemented all new opcodes.
    * Implemented get_info() function.
    * Cleaned up operand sizing.
    * Fixed several errors that made it not work on bigendian systems

    * Added some instrumentation for the MMU. To enable it, turn on PRINTF_MMU at the top of the file.
    * Fixed front-end so that virtual no-op instructions are still targeted as branch targets.
    * Fixed front-end to mark the beginning of each sequence as needing TLB validation, since any sequence can be jumped to from anywhere.
    * Redid the MIPS3 TLB implementation. Fixed the exception vector and type handling. Changed the bitfields to directly map from the MIPS TLB format. Added distinction between TLB fill and TLB valid/modified exceptions.
    * Added separate modes for user, supervisor, and kernel modes. Each mode does proper verification of addresses now and generates address errors for invalid accesses.
    * Fixed several bugs in the TLB implementation; not everything works yet but it's a lot closer.
    * Made COP0 access checking mandatory in non-kernel modes.
    * Fixed several crashes when recompiling virtual no-ops.
    * Fixed TLB bug where entries for virtual address 0 were present by default.
    * Fixed bug in the map variable implementation that would sometimes result in incorrectly recovered values.
    * Implemented IDT instructions. All invalid instruction asserts are now runtime-only.
    * Added support to map a few common registers to machine registers if the machine supports it. Currently only x64 on Windows has enough free registers to do so, though PowerPC will almost certainly be able to take advantage of this. Gives a minor speedup.
    * Updated to use INSERT and XTRACT where appropriate.
    * Cleaned up register usage to free up one machine register for x64 on Linux.
Added World Rally wheel support. [Mirko Mattioli]

Fixed spikes91 sprite colours without resorting to hacks. [David Haywood]

Fixed N64 rendering on big-endian targets. [R. Belmont]

Fixed CDP1869 character memory access, and Cidelsa sprite flashing. [Curt Coder]

Fixed 80286 databus widths. [Wilbert Pol]

Added proper interpolation sub-cycles to the TMS5110 and TMS5220 ('PC' cycles and A/B subcycles of each) and updated comments. [Lord Nightmare]

Fixed World Rally MCU comms on big-endian. [R. Belmont]

Changed defaults so that joysticks are enabled standard. [Aaron Giles]

Some improvements to Sandii' games: [Roberto Fresca, f205v]
- Confirmed the CPU clock after some PCB measurements.
- Changed the SND clock to 1MHz to match the PCB measurement.
- Corrected the internal OKI6295 frequency turning the pin 7 state to HIGH.
- Inputs: Eliminated all pulse limitations. Affected buttons have a rattled sound in the real thing too.
- Updated technical notes.

Corrected several bugs in the emulation of the saturn CPU. These corrections are needed to make new HP48 drivers (to be submitted to MESS imminently) work. [Antoine Mine]

Eliminated a large number of global Machine references. Added machine parameters to IRQ callbacks throughout the system to help remove more. Reduced the number of files needing deprecat.h by ~200. [Atari Ace]

Some work on lwings.c: Input clean up, added dip locations, fixed lwingsb life DIP switches, and merged machine drivers. [Sonikos]

Updated Gorf sample volume to match new samples from Chris Law. [Chris Law]

Added built-in overlay for Moon Shuttle. [Deacon Blue]

New games added or promoted from NOT_WORKING status
1991 Spikes (Italian bootleg) [robiza]

New clones added
Last Fortress - Toride (Korea) [The Guru]
Miss Puzzle (Clone of Gumbo) [The Guru]
Gals Panic SU (Korea) [The Guru]

New games marked as GAME_NOT_WORKING
Beauty Block [David Haywood]


MAMETesters Bugs Fixed
- 01827: [Interface] galaga: DIP switch information is not being readded properly when .CFG is read. (Aaron Giles)
- 01837: [DIP/Input] Missing input definitions (Aaron Giles)
- 01039: [Interface] trog: Memory area limit of the cheat engine. (ShimaPong)
- 01690: [Graphics] goldstar, goldstbl: Damaged and partially missing graphic. (Fabio Priuli)
- 01153: [Speed] clshroad: The game is slow, the frame rate suffers, and even the calorie bar flickers. (Nicola Salmoria)
- 00267: [Graphics] clshroad: Occasionally a cycler who's graphics are garbled will come along, (Nicola Salmoria)
- 01692: [Graphics] athena: Corrupt sprites in game. (robiza)
- 01834: [Graphics] fitegolf, countryc: Graphics corruption (robiza)
- 01780: [Graphics] pingpong: Level select arrow's not displayed (Nicola Salmoria)
- 01822: [Interface] OSD causes crash when try to show the Screen Refresh Rate menu. (Aaron Giles)
- 01830: [DIP/Input] All sets in m58.c: Conditional coinage dip not visible/working for coin mode 1 (Aaron Giles)
- 01836: [DIP/Input] qcrayon2: Conditional input not visible/working for dip game control joystick (Aaron Giles)
- 01833: [Graphics] spikes91: missing text layer (David Haywood)
- 01832: [DIP/Input] finalgdr: Cannot insert coins (all coin slots are disabled) (David Haywood)
- 00240: [Gameplay] galaga88: Most of the time the shooting accuracy shown on the screen when the game is over is not computed correctly. (Nicola Salmoria)
- 01741: [Graphics] ldrun4: Sprites are misplaced two pixels to the right. (Nicola Salmoria)
- 01816: [DIP/Input] onetwo, onetwoe: credit problem and maybe sound problem (David Haywood)
- 00245: [DIP/Input] tomahawk: There are no separate keys for player 2 in cocktail mode. (Nicola Salmoria)
- 01735: [Graphics] sf2m4, sf2m5, sf2m6, sf2m7, sf2yyc, sf2koryu: games with bootleg kludge doesn't work (Nicola Salmoria)
- 00070: [Misc.] nettoqc: In-game message. (couriersud)
- 01756: [Sound] 800fath, knockout, marine, triplep: No sound in game. (couriersud)
- 01825: [Interface] Toggling Tab menu works as F2 key in games with their service mode DIPs on the top of the menu. (Aaron Giles)
- 00407: [Misc.] qtono2: At the game over scene, MAME reports "layer c000 contact MAMEDEV". (Nicola Salmoria)
- 00237: [Sound] jumping: I have a Jumping bootleg and the music has the same tempo of the original rainbow islands. (Nicola Salmoria)
- 00208: [Original Reference] monymony: I am measuring clocks on my Money Money pcb but I have a problem with the tms5200 clock.(Nicola Salmoria)
- 01776: [Misc.] pzloop2, pzloop2j: In-game message "write to CPS-A register 24 contact MAMEDEV" at startup. (Nicola Salmoria)
- 01755: [Misc.] mmatrix, mmatrixj: CPS-B read port 10 (Nicola Salmoria)
- 01823: [Graphics] digdug, xevious, galaga + all clones: cocktail mode, player 2 has all sprites offset by an inch or two (couriersud)
- 01826: [Graphics] All sets in mappy.c: All cocktail modes are displayed incorrectly for 2nd player (couriersud)
- 01819: [Misc.] "Coinlock disabled coin x" message displayed upon startup (couriersud)
- 01828: [DIP/Input] Most sets in taito_f3.c driver: Coin slots locks information does not disappear (couriersud)
- 01719: [DIP/Input] bking, bking2, bking3: Player 1 and 2 Start mapped twice. (couriersud)

Source Changes
Changed default DIP switches in onetwo.c. Common coinslot mode seems broken, or our code is wrong. [David Haywood]

Updated documentation in several drivers based on old readmes and other data that might get lost. [Andrew Gardner]

Fixed COP420 instructions JSRP, LBI, LQID, and SKT. Draco now has sound. Also fixed COP420 instructions XAS and INIL. Fixed cycle count for extended opcodes. Added CKO general purpose input. [Curt Coder]

Improvements to American Poker II driver. [Roberto Fresca]
- Reworked the color routines switching to resnet system.
- Added a resistor network diagram.
- Switch to pre-defined crystal value.
- Changed the WATCHDOG_TIME_INIT to be based on miliseconds instead of hertz.
- Other minor cleanup/fixes.
- Updated technical notes.

peplus driver changes: [Jim Stolis]
* Updated coin-in timing
* Extended memory address range of DUART
* Fixed overlapping input port bits

Fixed PORT_IMPULSE handling. The old code would force inputs to be asserted for at least the number of frames indicated, but keeping the button pressed would keep the input asserted. Now the input is asserted far exactly the number of frames indicated. [Nicola Salmoria]

Fixed memory access in the 80286 cpu core which made i286.h obsolete. Changed CPUINFO_INT_MAX_INSTRUCTION_BYTES to prevent crashes during disassembly. [Wilbert Pol]

Fixed behavior of toggle switches so that they don't lose their value when the UI is up. They also can now be used for multibit DIP switch settings in which case they toggle through all the options. Added new functions input_field_select_next_setting() and
input_field_select_previous_setting() which can be used to iterate properly through DIP switches. Fixed the behavior for cases where conditional ports are in play (you could get stuck). Changed uimenu.c to call these instead of implementing its own. [Aaron Giles]

Changed uimenu.c so that hitting ENTER on a DIP switch resets it to its default value. This is analagous to how the OSD sliders behave. [Aaron Giles]

Renamed EEPROM_* to eeprom_*. Updated all drivers accordingly. Typedef'ed a real eeprom_interface structure. [Aaron Giles]

Added a PORT_CUSTOM for the eeprom bit reading. Updated several drivers to use that by specifying it in their input ports instead
of having a custom read handler that inserted the bit forcefully. Also added a PORT_CUSTOM for the ticket dispenser callback as well. Updated the dcheese driver to use it. Many more drivers can be updated to use these new PORT_CUSTOMs in the future, eliminating hacky input port read handlers. [Aaron Giles]

Changed text used to specify a menu separator in uimenu.c, and added a #define for the new string. [Nathan Woods]

Added TOKEN_SKIP_* macros to tokenize.h. [Aaron Giles]

Changed error reporting during input port detokenization to fill a buffer rather than fatalerror-ing immediately. Should now properly skip over any invalid tokens. Enhanced error detection during input port detokenization to catch duplicate bits. There are a lot of these! Updated initialization code to print errors and fatal only if the input ports were unable to be constructed at all. [Aaron Giles]

Fixed duplicate input port bits in pacman.c, gottlieb.c, cps1.c, megadriv.c, segae.c. [David Haywood]

Added support for a NULL set of input ports, used by the empty driver. [Aaron Giles]

Fixed cpu_getiloops() which was not returning the correct value. [Nicola Salmoria]

Made gijoe not crash, but still don't understand what the original code was trying to do. [David Haywood]

Moved suprpool to a better match hardware. Fixed the ROM load and added a list of PCB components. [Roberto Fresca]

Implemented autoload mode in 8257 DMA: [Miodrag Milanovic]
* added support for autoload mode
* fixed bug in calculating count

Fixed duplicate input port bits in dkong.c. [couriersud]

MIPS core changes: [Aaron Giles]
- renamed struct mips3_config -> mips3_config
- updated all drivers to the new names
- removed MIPS3DRC_STRICT_COP0 flag, which is no longer used
- a few minor cleanups
- moved implementation-specific state into a pointer hanging off of the core MIPS3 state
- removed large context in favor of a pointer to the large context to help improve context switch times

Changed the behavior of the translate callback in the CPU interface: [Aaron Giles]
- added new 'intention' parameter to the translate callback to indicate read/write/fetch access, user/supervisor mode, and a flag for debugging
- updated all call sites to pass an appropriate value
- updated all CPU cores to the new prototype

UML updates: [Aaron Giles]
- added new opcode SETC to set the carry flag from a source bit
- added new opcode BSWAP to swap bytes within a value
- updated C, x86, x64 back-ends to support the new opcodes
- updated disassembler to support the new opcodes

DRC frontend changes: [Aaron Giles]
- fixed bug in handling edge case with the PC near the 0 or ~0
- added new flag to tag privileged instructions

Added new option -snapname which lets you provide a template for how snapshot names are generated. See config.txt for details. [Aaron Giles]

Added new astring functions astring_del, astring_replace, and astring_replacec. [Aaron Giles]

Removed meaningless service_coin_lockout_w function. Updated the zaxxon driver to correctly handle the coin enable lines. [Nicola Salmoria]

Fixed bug that caused DIP switches to be improperly read from game cfg file in certain circumstances. [Aaron Giles]

Added internal default tags for input ports when saving/loading. [Aaron Giles]

Updated cheat sytem drastically: [ShimaPong]

  * Supported (preliminary) new cheat format
     - Added new operations
        PDWWrite, RWrite, VRWrite, CWrite, Move, Branch, Loop, Popup
     - Added new options
        ValueSelectNegative, Return, AddressReadFrom, DataReadFrom
     - Added cheat variables
        You can store data with Write or Move operations and
        read as an address or data from each fields
     - Added condition check
        for CWrite, Branch and Popup operations
     - Added new custom codes
        Separator, Layer
     - Supported Shared Code [MESS ONLY]
        different machine shares common code for a game

  * Allowed mixed label-select or user-select with standard code

  * Added label selector menu for label-selection code

  * Added extend comment displayer for multi-line comments

  * Added command menu for cheat list and watchpoint
     Easy selectable cheat commands in this menu

  * Added debug view menu [DEBUG BUILD ONLY]
     It displays internal info to debug cheat system

  * Supported unique separator by ui_draw_menu() in several menus

  * Added user defined search region
     You can set free memory range from cheat database

  * Enhanced error check for cheat code to prevent from unexpected
     working. Error code is locked. If you select this code, the
     analyser works instead of the code activater

  * Enhanced value input with keyboard-less
     Cheat edit key gives new input system in several menus
     Left/right keys moves the edit cursor and up/down keys changes a

  * Added cheat command save, reload, reset in option menu

  * Supported address shift in searching
     Now searchable default region in TMS340*0 cpu games (Trog,
     Smash T.V. etc)

  * Refined cheat menu handling with function pointer called

  * Added format strings table to manage in an integrated fashion

  * Deleted unused hacks of default search region for Neo Geo and

  * Refined code based on MAME coding guidelines
     - Renamed many functions/structures/constants
        But not complete due to too many items
     - Converted small but often used functions to INLINE
     - Fixed a comparison in case of 0 or NULL
     - Added missing function prototype for several functions

New games added or promoted from NOT_WORKING status
beatmania THE FINAL (ver JA-A) [Chizzy]
Player's Edge Plus (XP000112) White Hot Aces Poker [hammer300]
ChuckECheese's Match Game [Exodus]
Coronation Street Quiz Game [Phil Bennett]

New clones added
Fred Flintstones' Memory Match (5 new sets) [Exodus]
Mighty! Pang (Euro 001010) [Bonky]
Dynamite Cop (USA, Model 2C) [The Guru]
Atomic Boy (revision B) [Stefan Lindberg]


MAMETesters Bugs Fixed
01829: [Core] bermudat, gwar, ikari, victroad + clones: MAME freezes at "initializing" screen (Aaron Giles)
01845: [Core] all games: cheats are broken (ShimaPong)
01846: [Misc.] -CHEAT trigger causes MAME crash with PSX-type CPU drivers (ShimaPong)
01843: [DIP/Input] Many Sets: Input Port Errors (Aaron Giles)
01855: [Misc.] thayers, thayers: Fatal Error crash (Aaron Giles)
01859: [Misc.] looping, loopinga, skybump: Fatal Error crash (Aaron Giles)
01860: [Core] revx: -CHEAT trigger causes MAME crash (ShimaPong)
00779: [Graphics] gunnail: After you kill a boss, always a number of vertical lines will appear. (Nicola Salmoria)
00778: [Graphics] gunnail: The background in stage 5 is wrong. (Nicola Salmoria)
00788: [DIP/Input] Problem about Joy Axis Input for Pedal. (couriersud)
01853: [Gameplay] shadfrce, shadfrcj: Game doesn't start (Haze)
01847: [DIP/Input] Various: Unable to construct input ports! (Nicola Salmoria)
01840: [Interface] MAME 0.125u3 error in xml output (Nathan Woods)
01699: [Sound] asteroid, asteroi1, asteroib, asterock, meteor, meteorts: Abnormal discrete sounds (couriersud)
01844: [Core] compiling 125u3 with VS2008 64bit fails (Aaron Giles)

Source Changes
Made it possible to pass a NULL errorbug to input_port_config_alloc(). Fixes -listxml crashes. [Nathan Woods]

Updated calomega driver with correct dumps. [Roberto Fresca]

Sandii' games improvements: [Roberto Fresca]
- Switched the color system to RESNET calculations.
- Hooked the infamous bit7 of Input Port 0x3004 in parallel to DIP switch 1. This allow to use the PAYOUT button to trigger the Super Game instead of STOP 5.
- Demultiplexed lamps matrix.
- Added lamps support, but is still imperfect.
- Updated technical notes.

Discrete sound update: [couriersud]
* added NODE_RELATIVE(NODE, offset) macro to discrete.h
* fix asteroid.c, canyon.c, skydiver.c and tank8.c to use this macro instead of adding directly to the node

Fixed duplicate input port bits. [Aaron Giles, Nicola Salmoria, David Haywood]

Added simulaton of tecmosys protection. [nuapete]

Improvements to gatron.c: [Roberto Fresca]
- Renamed the games to "Poker 4-1" and "Pull Tabs" as shown in the ROMs stickers.
- Renamed the ROMs in each set according to their own stickers.
- Moved the driver into gametron.a group.
- Added the missing input port C to 8255 PPI I/O chip. Poker41 and pulltabs don't make use of it, but is present in the Test/Setting Mode.
- Updated technical notes.

Added proper bankswitching to the dealer driver, validating a ROM previously thought to be bad. [nupete]

Many improvements to the tecmosys video and sound emulation. [David Haywood]

Adjusted NamcoNA output rate to match pitch with F/A and Cosmo Gang the Puzzle soundtrack CDs. [R. Belmont]

Some Nintendo Minx cpu core updates: [Wilbert Pol]
- Styling changes
- Added instruction cycle counts.
- Added interrupt support.
- Added HALT support.
- Fixed INT instruction.
- Added incomplete support for DIV and MUL instructions.
- Fixed MOV [#nnnn],BA and MOV [#nnnn],HL instructions.
- Fixed interrupt handling.
- Fixed opcodes 45, 4D, 55, 5D, B5, B6, B7, FC, FD, and CF 70-7F
- Fixed flag results for INC, DEC, AND, OR, and XOR instructions

Improvements to ampoker2 driver: [Roberto Fresca]
- Reworked the input system for Sigma Poker 2000.
- Promoted Sigma Poker 2000 to 'WORKING' state.
- Updated technical notes.

Updated the 53c810 SCSI adapter to pass IRQ state with the IRQ callback. [R. Belmont]

Remove port_input_read_indexed in favor of the use of proper tags in a number of drivers. [Fabio Priuli, couriersud]

Upped max directory size for ST-V/Saturn driver. [R. Belmont]

COP4xx updates: [Curt Coder]
- Added HALT opcode and halt mode to the COP410
- Added Microbus support, clock divisor selection, and CKO mode selection to the COP420
- Changed Thayer's Quest keyboard interface to at least slightly resemble the schematics

Changed suprnova blending implementation a bit. Still not right. [David Haywood]

Optimised tilemap_draw rowscroll case to avoid overhead when used with clip rects smaller than the tilemap. This reduces by an order of magnitude the time taken to render the bg in Gunnail stage 5. [Nicola Salmoria]

PowerPC dynamic recompiler: [Aaron Giles]
- rewrote PowerPC implementation as a dynamic recompiler on top of the universal recompiler engine
- wrote a front-end to analyze PowerPC code paths and register usage
- wrote a common shared module with C implementations of tricky CPU behaviors
- added separate CPU types for the variants supported, instead of relying on a hidden model enum
- rewrote the serial port emulation for the 4xx series to be more accurate and not rely on separate DMA handlers
- rewrote the MMU handling to implement a software TLB that faults in pages and handles changed bits appropriately
- implemented emulation of the PowerPC 603's software TLB, which allows the model 3 games to run without a hack to disable the MMU

Updated the PowerPC disassembler to share constants with the rest of the core, and to more aggressively use simplified mnemonics, especially for branches. [Aaron Giles]

Universal recompiler:
- fixed frontend to handle opcode widths different from bus width
- added several new opcodes:
    * (D)GETFLGS - copies the UML flags to a destination operand
    * FDRNDS - rounds a double precision value to single precision
- renamed several opcodes:
    * SETC   -> CARRY
- consolidated the following opcodes:
    * LOAD?U -> LOAD
    * LOAD?S -> LOADS
    * STORE? -> STORE
    * READ?U -> READ
    * READ?M -> READM
    * WRITE? -> WRITE
    * WRITM? -> WRITEM
    * SEXT?  -> SEXT
    * FTOI?? -> FTOINT
    * FFRI?  -> FFRINT
    * FFRF?  -> FFRFLT
- removed some opcodes:
    * FLAGS - can be done with GETFLGS/LOAD4/ROLINS
    * ZEXT - can be achieved with AND
    * READ?S - can be achieved with READ/SEXT
- updated C, x86, and x64 back-ends to support these opcode changes
- updated disassembler to support these opcode changes

MIPS3 dynamic recompiler: [Aaron Giles]
- fixed Cause register for bad COP instructions
- updated to use new/changed opcode forms
- changed context switch so that it only swaps a single pointer

Konami Hornet changes: [Aaron Giles]
- updated to new PowerPC configurations
- updated some memory handlers to be native 8-bit handlers
- cleaned up JVS implementation to work with new serial code
- added fast RAM for the work RAM to give a small speed boost

Konami GTI Club changes: [Aaron Giles]
- updated to new PowerPC configurations
- updated some memory handlers to be native 8-bit handlers

Konami Viper/ZR107 changes: [Aaron Giles]
- updated to new PowerPC configurations

Sega Model 3 changes: [Aaron Giles]
- updated to new PowerPC configurations
- reimplemented/centralized interrupt handling
- these games are broken for the moment

Fixed crasher due to some Konami games using 8 layers in the K056832 implementation, even though it was only written for 4. [Aaron Giles]

Added fisttp opcode to i386 disassembler. [Aaron Giles]

Verified clock frequencies on Air Raid/Cross Shooter. [Corrado Tomaselli]

Introduced/updated some include files for files that export functions whose apis will need to be changed to handle machine parameters (cps1.h, decocrpt.h, ms32.h, pgm.h, fd1089.h, konami1.h). In the case of konami.c, renamed the file konami1.c and changed the api and callers to only require one function export. Pulled memory_region*() calls out of for loops and folded the occasional duplicated call. The compiler can't likely infer that the results are constant, so this should be a minor performance win as well. [Atari Ace]

Fixed some dips and added correct inputs for wpksocv2, despite still missing the correct input for begin the left right movement the game is almost playable. [Sonikos]

Updated cheat system: [ShimaPong]
- Locked search region when malloc fails to allocate gigantic memory instead of fatal error. Also locked zero malloc error in case of search speed = all memory in 32-bit CPU. And added search region range checker to lock a search region with a big risk
- Fixed a bug that old code is always converted to specified separator in enable/disable menu
- Refined new cheat format.
    * Rewritten cheat format again. newest format is
       ":gamename::type::address::data::extend_data: (description:comment)"
       Expanded type field now requires 10 bytes (not 8 bytes) and it divides internal cpu (2 bytes) and type (8 bytes) parameters
    * Removed VWrite, VRWrite. The flag of Value Selection is merged into expanded type field now.
    * Added CBit (Condition Bit). This checks bit in read data then set or clear bit in case of true.
    * Rearranged cheat code viwer based on newest cheat format
- Fixed unworking Load Old Format option. If you want to load old or older format code, set it (default is OFF)
- Renamed functions/structures based on coding guidlines All structures and included parameters are completed
- Merged resize_*_no_dispose() into resize_*()
- Removed the hack of search region for SH-2 CPU because required region is now set as expected without this hack

Made duplicate input port bits an error now that all the warnings are fixed. [Aaron Giles]

Added compile-time error if PTR64 is incorrectly set. [Aaron Giles]

New games added or promoted from NOT_WORKING status
Deroon DeroDero [nuapete, David Haywood]
Sigma Poker 2000 [Roberto Fresca]
Touki Denshou -Angel Eyes- [nuapete, David Haywood]
Black Touch (Korea) (bootleg / hack of Dragon Punch) [David Haywood]

New clones added
Touki Denshou -Angel Eyes- (VER. 960427) [Tomasz Slanina]
Raiden Fighters 2 (Taiwan, SPI) [Corrado Tomaselli]

New games marked as GAME_NOT_WORKING
Capitan Uncino (Ver 1.2) [David Haywood]
Capitani Coraggiosi (Ver 1.3) [David Haywood]
La Perla Nera (Ver 2.0) [David Haywood]
La Perla Nera Gold (Ver 2.0) [Roberto Fresca]
Europa 2002 (Ver 2.0, set 1) [Roberto Fresca]
Top Blade V [David Haywood]
Office Yeo ln Cheon Ha [David Haywood]
Carta Magica (Ver 1.8) [Roberto Fresca]
Laser 2001 (Ver 1.2) [Roberto Fresca]
Magic Drink (Ver 1.2) [Roberto Fresca]
Millennium Sun [Roberto Fresca]
NtCash [Roberto Fresca]
Super Space 2001 [Roberto Fresca]
Unknown italian gambling game [Roberto Fresca]
Wizard (Ver 1.0) [Roberto Fresca]
Elvis? [Roberto Fresca]


MAMETesters Bugs Fixed
- 01863: [Multisession] mwalk and clones: Crash on multisession. (Atari Ace)
- 00971: [Color/Palette] spdcoin: In a reverse of the artwork bug, the blue background has been replaced with a black one. (couriersud)
- 00251: [Sound] spdcoin: Sound isn't perfect. There are many static pops to be heard, and volume is very low. (couriersud)
- 01884: [Core] mtetrisc, vivdolls, starsldr (maybe all): (MAC OS) crashes with "Illegal instruction" message (Aaron Giles)
- 01827: [Interface] All sets in galaga.c: DIP switch information is not being readded properly when .CFG is read. (couriersud)
- 01865: [Graphics] nbapbp: The graphic is completely wrong (Aaron Giles)
- 01864: [Interface] -listxml still crashes (Aaron Giles)
- 01885: [Misc.] astdelux, astdelu1, astdelu2: Fatal Error: Unable to locate input port 'DSW' (Fabio Priuli)
- 01190: [Color/Palette] punchout, spnchout: The colors of the title logo and letters on the top and bottom should be different than each other. (Nicola Salmoria)
- 01693: [Sound] jackal, jackalj, topgunbl, topgunr: After you get in the jeep the music stops. (Nicola Salmoria)
- 01880: [Color/Palette] All sets in mrdo.c: Color Regression (Nicola Salmoria)
- 01870: [Graphics] skylance, skylancr: cocktail mode, player 2's shots are offset from player's position (Nicola Salmoria)
- 01871: [Documentation] officeye: Misspelled title (robiza)

Source Changes
Updated 68681 DUART: [Mariusz Wojcieszek]
- converted to device interface
- converted to 8 bit device
- added input and output port
- added X1/16 timer

Fixed compilation error when neither HAS_PPC403GA nor HAS_PPC403GCX are defined. [Nathan Woods]

Additional documentation in the TMS5220 and SN76496 cores. [Lord Nightmare]

Fixed handling of the U register in the RET instructions and when taking an interrupt in the Nintendo Minx cpu core. [Wilbert Pol]

suprnova updates: [David Haywood]
- now uses its own draw roz function, which supports linescroll or columnscroll, and will give us the ability to 'render' priority data (with roz applied) from the flagsmap to a temp bitmap to work with.
- priorities should be correct from start to end in cyvern now. still not perfect tho.
- added a note about what needs fixing for the sengekis sprite zoom (shrink flag we're not handling)
- allow wraparound to be turned off (sarukani..)

Italian gambling games based on H8/3337 MCU + NEC D7759GC: [Roberto Fresca]
- Corrected year and manufacturer to ntcash and wizard.
- Sorted the games by year.

Simplified m90 video update routine. [robiza]

Improvements to bomblord (bbmanw clone): [robiza]
- partially fixed the background
- fixed the sprites
- implemented video register for selecting different resolutions; this fixes graphic in the game screen
- fixed scroll video register
- cleaned up offset and priorities
- implemented linescroll
- promoted to working

Improvements to dynablsb (dynablst clone): [robiza]
- partially fixed the background
- fixed the sprites
- fixed mark for last sprite
- fixed player #1 and player #2 controls
- fixed graphics layer and offset
- fixed layer select
- implementated the scroll video register
- cleaned up offset and priorities
- promoted to working

Numerous improvements to the blackt96 driver. [David Haywood]

Fixed colortable creation in Mr. Do driver. Fixed diode voltage drop
value which caused apples to be orange instead of red-orange. The title screen now perfectly matches
http://www.flickr.com/photos/arecee/2384126902/sizes/l/ including the logo outline. [Nicola Salmoria]

Jackal driver improvements: [Nicola Salmoria]
- Fixed palette animation (very subtle!)
- Verified on the schematics and on the pcb that the high score table text cannot change color.
- Removed the IMPERFECT_GRAPHICS flag
- Fixed music with a kludge (overclock sound CPU)
- Added dip switch locations and sorted input ports

Simplified palette handling in punchout. Fixed big sprite palette in top monitor. [Nicola Salmoria]

Cal Omega driver: [Roberto Fresca]
- Cleaned up the driver following the MAME Coding Conventions.
- Added support to Game 18.7 (Amusement Poker).
- Improved the input system for some games.
- Fixed some wrong color codes.
- Updated technical notes.

New driver for italian gambling games based on Mitsubishi/Renesas
M16C MCU family. Added dumper notes, hardware details and hooked the
sound devices. Moved Euro Jolly X5 to this new driver, and add support for Grand Prix. [Roberto Fresca]

Improvements to Sandii' games driver: [Roberto Fresca]
- Fixed the tilemap size.
- Fixed the screen size.
- Updated technical notes.

Changed map command in the debugger to now perform separate read/write/fetch lookups. [Aaron Giles]

Fixed AY-3-8910 output mode in Draco. [Curt Coder]

Thayer's Quest changes: [Curt Coder]
- cleaned up driver
- added LED layout from Dragon's Lair
- mapped keyboard and dips correctly
- added laser disc drive selection
- fixed Z80-COP communications
- figured out ports from disassembly
- added cart presence detection logic
- fixed SSI-263 timings, service mode works now
- changed to use COP421

COP4xx: [Curt Coder]
- fixed LEI instruction
- added COP421 variant

Moved calipso, spdcoin, superbon, moonwar and moonwara to galaxian.c: [couriersud]
- superbon: Change name to Agent Super Bond and Manufacturer to "Signatron USA"
- superbon: Change year to 1985 following information on arcadeflyers.com
- removed armorcar remains from scobra.c

In the i8051 core, timer 0's second split counter was incorrectly checking the Timer 1 Run Control Bit. Fixed it. [Jim Stolis]

PEPlus driver updates: [Jim Stolis]
- All video slot titles now accept coins and play normally
- Renamed peps0716 to its proper name "River Gambler Slots", instead of "Quarter Mania Slots"
- Updated peps0716 to use the proper CAP
- Replaced peps0615 to use a CAP with closer colors (still wrong)

Added alternate layout for World Rally 2 PCB. [Mirko Mattioli]

Added sound emulation to Dacholer and Kick Boy. [Tomasz Slanina]

Cleaned up the usage of Machine in many of the src/video files. [Oliver Stoenberg]

Correctness pass over the source tree: [Atari Ace]
- added static qualifiers where appropriate
- added missing #include statements, source comments and header declarations
- removed dead declarations
- added ~30 header files for a number of drivers
- consolidated various cchip declarations

Improved 8085 timing and fixed flag calculations based on differences between it and the 8080. [Miodrag Milanovic]

Converted a number of drivers over to using input_port_read() from input_port_read_indexed(). [Fabio Priuli]

Updated cheat system: [ShimaPong]
- Changed the function of default memory read in case of the search
    to prevent from crashing if a game uses cpu_spinutil()
    Now basically used do_memory_read() instead of do_cpu_read()
    (Try to search in actfancr between this and previous version)
    NOTE : It's not fundamental solution but no longer crash
- Cleaned up read_data() and write_data()
- Cleaned up save/load routine and added open_cheat_database()
- Added new menu "Cheat Commands" into the cheat main menu
     the following commands are supported in this menu
      * reload cheat code (the same as Reload Database key)
      * cheats ON/OFF (the same as Toggle Cheat key)
      * watchpoints ON/OFF (the same as Shift + Toggle Cheat key)
      * save description (save the title of the game)
      * save raw code (save raw cheat code with new format)
- Fixed several bugs which has found in testing
- Renamed functions based on coding guidlines

Added option -[no]coin_lockout (-[no]coinlock) to control coin lockout behavior. [Aaron Giles]

NeoGeo updates: [Johnboy]
- Updated Neo-Geo game pcb infos
- Marked kof2001h AES VERSION
- Marked samsho3a MVS VERSION
- Marked 2020bba AES VERSION, renamed p1 and added a note
- Renamed lastsold p1 to correct chip label 134-p1k
    -> Checked other Korean sets, found similar ID change; renamed accordingly
            Renamed rbff2k p1 to 140-p1k
            Renamed fswords p1 tp 187-p1k
            Renamed aof3k p1 to 196-p1k
       Added comment to kof99n: Korean version?
- Renamed mslug3n to mslug3h, Marked AES VERSION, changed mamedriv.c
- Remove BAD_DUMP from kotm, add correct m1
- Correct s1 layer size in samsh5sp + clones
- Removed BAD_DUMP from burningf + clone
- Added correct m1 to lbowling
- Added correct m1 to socbrawl + clone
- Added correct m1 to mutnat
- Added correct m1 to joyjoy
- Added correct c1/c2 and s1 to marukodq
- Renamed p-roms in wh1 and wh1h, added comment
- Added some comments about 'M1' and 'S1' roms
- Renamed files in kof2001 to correct chip label, changed m1
- Corrected set pbobblen as found on MVS cart, added notes

Added bilinear filter option to software rendering. Not hooked up to anything yet. [Aaron Giles]

DRC UML changes: [Aaron Giles]
- separated conditions and flags into two separate fields
- added more extensive per-opcode information
- made validation more thorough using the extended information
- disabled back-end validation for now until it can be revisited using the new tables
- changed GETFLGS encoding so that the mask is in parameter 2 instead of the flags field
- wrote new disassembler based on enhanced opcode info structure
- moved disassembler into drcuml.c and removed old code
- extended disassembler buffer sizes to at least 256 bytes
- removed explicit flag requests from the shorthand opcodes
- added optimization function to drcuml which is called at block end
- added logic to compute the necessary flags based on upcoming opcodes and only select those flags which are required
- added NOP opcode
- added logic to simplify opcodes as much as possible at the UML layer
- removed similar logic in the x86 and x64 back-ends
- added stricter parameter validation for registers and mapvars
- improved disassembly output
- added simple symbol table to the UML for improved disassembly
- changed optional disassembler cache parameter to a drcuml object
- fixed STORE opcode description to allow immediate source operands

DRC frontend changes: [Aaron Giles]
- changed from tracking "live" registers to tracking "necessary" registers
- genericized register tracking to be more flexible
- added previous instruction pointer to opcode descriptions

PowerPC recompiler: [Aaron Giles]
- fixed bug where a branch and link to the link register would overwrite the link register before fetching the target address
- updated to no longer explicitly specify flags
- added symbols for most common variables
- fixed bug in handling XER carry flag for subo. forms
- simplified flag insertion logic for opcodeo. forms
- rewrote lswi/stswi as subroutines
- made accesses to tempdata explicitly dword or qword
- fixed SRR0 when generating a syscall
- removed no longer necessary TESTs on extsb/w, rlwinm, rlwnm, rlwimi, cntlzw
- fixed bug where the SO flag was not being computed for compares
- fixed flag computations for mulhw/mulhwu/mullw
- fixed subtlety of shifts between 32 and 63 in srw/sraw
- fixed mffs/mtfsf to use FP registers
- fixed mtfsfi to use the immediate value properly
- now marking terminal count bit in DMA status register
- added support for 4xx protection registers via the MMU
- added TLBH, TLBU, and DEC to the list of registers in the debugger
- turned off "end of transfer" DMA signals in favor of "transfer count 0" signals; fixes memory-to-memory DMA in fiveside
- minor flags optimizations:
    * broke CR into several individual bits of state
    * extracted the SO bit from XER into its own state
- cleaned up register tracking implementation
- fixed numerous errors and shortcomings in the tracking
- added support for removing unnecessary XER CA and CR0 computations
- updated UML logging to output new frontend statistics
- added basic cycle counts for longer instructions
- added penalty for polling timebase and decrementer registers
- fixed dependencies in cpu.mak
- reduced address bus width of 4xx series to 31 bits per the documentation
- fixed bug that would jump to incorrect PC after filling the TLB during a mismatch event
- added explicit address truncation to 31 bits for 4xx series
- added new PPCDRC_ACCURATE_SINGLES option, which removes the
    excessive (and very likely unecessary) extra rounding when
    performing the "fast" single-precision floating point ops
- fixed TLB filling for 4XX protection ranges
- fixed parameter ordering for masked reads/writes
- added detection of MMU enablement in 403GCX case
- fixed bug in protection bounds violation detection for 4XX
- changed SPU receive model to a push model; updated drivers accordingly
- added macros for setting the SPU transmit handler and sending bytes
- cleaned up ppc.h
- fixed lmw/stmw if rA is one of the loaded/stored registers
- removed unnecessary variables & structure members
- optimized for the XER and CR0 case where XER doesn't need an overflow calculation

MIPS recompiler: [Aaron Giles]


MAMETesters Bugs Fixed
- 00181: [Sound] ddragon3: OKI volume is too low in MAME. (sonikos)
- 00417: [Sound] ddragon3: the title voice should start when the background tune hits its highest note. (sonikos)
- 01441: [Sound] ctribe, ddragon3: The OKI6295 playback frequency is too high. (sonikos)
- 01888: [DIP/Input] raidena, raidenk, raident: Flip screen DIP switch doesn't work. (couriersud)

Source Changes
MIPS3 recompiler: [Aaron Giles]
* added UML comments for common state variables
* removed some unused fields
* implemented LL/LLD/SC/SCD (only works single-processor for now)

Added sound emulation to Wily Tower, Atomic Boy and Fighting Basketball. [Tomasz Slanina]

Improvements to squahitsa. [David Haywood]

Progress on protection simulation for 2 Crystal System titles. Still not working. [ElSemi]

Some progress on tankfrc4 inputs. [David Haywood]

Created common virtual TLB managment module. Updated MIPS and PowerPC code to make use of it. [Aaron Giles]

Added a validity check against reading input ports at init time. [Curt Coder]

Cleaned up software bilinear filtering code. Added bounds checking. Enabled by default for snapshots and movie rendering. [Aaron Giles]

Added new option: -snapsize, which lets you specify the target resolution for snapshots and movies. The existing behavior is still the default: create snapshots and movies at native pixel resolutions. [Aaron Giles]

Added new option: -snapview, which lets you specify a particular view to use for rendering snapshots and movies. The existing behavior is still the default: use a special internal view and render each screen to its own snapshot in its own file. When using this option to specify a view other than 'internal', only a single snapshot file will be produced regardless of how many screens the game has. [Aaron Giles]

Improved AVI and MNG recording to properly duplicate/skip frames as appropriate to keep the correct framerate. [Aaron Giles]

Added new function video_get_view_for_target() which selects a view based on a command-line parameter and the configuration. Changed Windows OSD code to use this instead of its own logic. Changed
-snapview to share the logic as well, enabling 'auto' as a -snapview option. [Aaron Giles]

Renamed "Nintendo z80gb" cpu core to "Sharp LR35902". [Wilbert Pol]

UML: [Aaron Giles]
- reactivated back-end validation mechanism
- added back-end validation for ADD/SUB/MUL/DIV/CMP forms
- fixed several errors in dealing with more obscure flag combinations

konamigx frequency tweaks: [Yasuhiro Ogawa]
- set screen refresh rate to 58Hz (parameters from  developer manual are not 100% correct)
- removed sound CPU clock hack

Set tecmosys screen refresh rate to measured 57.4458Hz. [Guru]

Added missing machine parameters and removed deprecat.h usage in a number of drivers/ and machine/ files. [Oliver Stoenberg]

Changed all games after Street Fighter 2 CE to have a 12mhz clock. Verified on Megaman and Quiz and dragons (original kits with plastic case). I am resonably sure all the other games after ST2CE have the DASH cps1 board with 12mhz clock. [Corrado Tomaselli]

Converted many drivers in the d-j alphabetical range to use input_port_read() instead of input_port_read_indexed(). [Fabio Puiuli]

ddragon3 driver cleanups/fixes: [sonikos]
- Fixed the mess dips location in ctribe
- Added dips location in all sets of ddragon3
- Added the missing dips (now are 8x2) on ctribe,ctribe1,ctribeb, ctribb2 and ddrago3b
- Fixed the "Stage Clear Energy" dips in ctribe
- Adjusted the frame rate from 60hz to around 57 as reported on mametester ID 00417
- Adjusted OKI frequency to 1.000mhz (according to recording on mametester ID 00181)
- Adjusted the ddragon3 & ctribe volume (according to recording on mametester ID 00181 and 01441)

Some protection improvements for vgoalsoc / tecmo world cup 98. [nuapete]

New games added or promoted from NOT_WORKING status
Alien Storm 2 player World [Frederic Canoen]

New clones added
Terra Force (bootleg with additional Z80) [David Haywood]
Turbo Outrun - White Cockpit version [Frans van Egmond]
The Combatribes (Italian bootleg) [Sonikos]

New games marked as GAME_NOT_WORKING
Wonderboy 3 System16A FD1089A [Volker Hann]


MAMETesters Bugs Fixed
- 01931: [Gameplay] sqix: [possible] sprites slowdown (couriersud)
- 01631: [Core] sqixbl, perestro, perestrf: game resets after starting game (couriersud)
- 01874: [Core] windheat: Game freeze (Aaron Giles)
- 01905: [Misc.] Many Sets: Fatal Error crash - Fatal error: Input ports cannot be read at init time! (src/emu/inptport.c:1278) (Aaron Giles)
- 01928: [DIP/Input] chplft, chplftb, chplftbl: Choplifter player 2 video is upside down (couriersud)
- 01712: [DIP/Input] exerizrb, skyfox: Coin 1 mapped twice. (couriersud)
- 01886: [Graphics] gradius4: 3D gfx problem. (Aaron Giles)
- 01927: [Misc.] Effects overlay showing in snapshots (Aaron Giles)
- 01901: [Graphics] kinst13, kinst14, kinstp: Attract mode graphics regression (Aaron Giles)
- 01916: [Misc.] srmvs: Assertion (Aaron Giles)
- 01900: [DIP/Input] All sets in kinst.c: Mass coin input disables dipswitch access, and thus further coin input during a fight. (Aaron Giles)
- 01709: [DIP/Input] startrek, tacscan, zektor: Duplicate P1 + P2 Starts Mapped (couriersud)
- 01715: [DIP/Input] ballbomb: Player 1 Left+Right and Button 1 mapped twice. (couriersud)
- 01714: [DIP/Input] ssfindo: Player 2 Start mapped twice. (couriersud)
- 01818: [DIP/Input] All sets in rastan.c: 2nd (unused) Service Mode DIP assigned. (stephh)
- 01912: [DIP/Input] Various: Unable to construct input ports! (part 2) (Aaron Giles)
- 01889: [DIP/Input] realbrk, realbrkk, realbrkj: Flip screen DIP switch doesn't work. (couriersud)
- 01869: [DIP/Input] alienar, alienaru, splat: Duplicated Inputs (couriersud)
- 01575: [DIP/Input] joust, joustr, joustwr: Player 1 and Player 2 Start buttons are mapped twice. (couriersud)
- 01866: [DIP/Input] gstream: Duplicated Inputs (couriersud)
- 01903: [Graphics] mooncrst and most clones: 3rd+4th Wave have enemies that are corrupted. (couriersud)
- 01908: [Misc.] Various: Access Violation when saving a snapshot (Aaron Giles)
- 01911: [DIP/Input] nomnlndg: Unable to locate input port 'DSW' (Fabio Priuli)
- 01906: [Misc.] All sets in atartig1.c: Fatal Exception crash (Aaron Giles)
- 01904: [DIP/Input] teetert: Player movement has slowed from previous MAME (Aaron Giles)

Source Changes
Fixed input port read at init time in grchamp.c. [Curt Coder]

Fixed input port read validation. The previous check was way too aggressive, and prevented CUSTOM_INPUT handlers from reading other ports. This one sets an "all clear" flag as soon as the configuration data is loaded. [Aaron Giles]

GX era haradware: update video parameters to use actual values written to the CCU. [Yasuhiro Ogawa]

MultiPCM/315-5560 rewrite. All features are now supported including PLFO and ALFO. [ElSemi]

Fixed read from input port during VIDEO_START in namcofl.c. [couriersud]

Cleaned up z80dma interface [couriersud]
* removed compatibility to old z80dma driver
* now uses std. callbacks (READ8_HANDLER, WRITE8_HANDLER)
* updated mario and dkong3 accordingly

Implemented 8257 dma controller as proper device [couriersud]
* rewrote 8257dma.[ch]
* updated dkong.c accordingly

dkong.c: Merge driver init code for drakton and strtheat [couriersud]
* made decryption for drakton and strtheat more compact
* moved decryption and driver init code into dkong.c
* deleted drakton.c and strtheat.c

Added emulation of ST-0026 NiLe (sound). Added audio to Super Real Mahjong P6. [Tomasz Slanina, R. Belmont]

i8x41 improvements: [Wilbert Pol]
- Removed i8x41.ram hack from the i8x41 cpu core.
- Fixed disassembly for opcode 0x67.
- Added configurable i8x41/i8x42 subtype support.
- Fixed carry flag handling in ADDC A,#N instruction.
- Fixed carry flag handling in RLC A instruction.
- Updated the ram sizes. 8041 uses 128 bytes, 8042 8042 uses 256 bytes.
- Added support for re-enabling interrupts inside an interrupt handler.
- Fixed cycle count for DJNZ instruction.

Converted voodoo into a proper device. Updated drivers accordingly. [Aaron Giles]

Cal Omega driver updates: [Roberto Fresca]
- Lots of improvements on the input system.
- Adjusted the CPU adressing to 14 bits for systems 903/904.
- Adjusted the CPU adressing to 15 bits for system 905.
- Rewrote all the ROM loads based on these changes.
- Defined CPU, UART and sound clocks.
- Splitted the sound interface to cover different systems.
- Splitted the PIAs interfaces to cover different systems.
- Added sound to system 905 games.
- Added MACHINE_START and MACHINE_RESET to initialize the devices properly.
- Documented the systems 903/904 UART connections.
- Traced and added PIAs connection diagrams for systems 903/904/905.
- Hooked the missing DIP Switches bank to the AY8912 for system 903.
- Added preliminary serial/UART support to systems 903/904.
- Hooked the missing DIP Switches bank to the ACIA 6850 for systems 903/904. It allow to choose the proper transfer rate for UART.
- Fixed graphics ROM loads for different Hotline versions.
- Added support to Game 8.0 (Arcade Black Jack).
- Added support to Game 12.3 (Ticket Poker).
- Added support to Game 23.0 (FC Bingo (4-card)).
- Renamed all roms of each set according to the systems schematics and official list.
- Cleaned-up the sets.
- Cleaned-up the driver.
- Updated technical notes.

Save state support: [Aaron Giles]
* added save state support to the MIPS3 recompiler
* added save state support to CAGE audio system
* added save state support to the voodoo emulator
* added save state support to the smc91c9x emulator
* added save state support to the kinst, seattle, and vegas drivers
* fixed core video handling of save states with dynamic screen resolutions
* added save state support to the SHARC CPU core
* added save state support to the PowerPC recompiler
* added save state support to the virtual TLB system
* added save state support to the RF5C400 sound core
* added save state support to konppc module
* added save state support to K056800 host controller
* added save state support to the Konami hornet driver

SMC91C9x: [Aaron Giles]
* converted to proper device
* updated seattle and vegas drivers to allocate devices
* added separate 91C96 device for eventual 2049 use
* cleaned up code

Added machine parameter to memory_region() and memory_region_length() functions. Cleaned up usage of these throughout the code to cache pointers rather than calling these functions repeatedly during loops. [Atari Ace]

Fixed poor default CLUT handling in the voodoo driver. [Aaron Giles]

Added additional Naomi BIOSes. [Brian Troha, Guru]

DRC fixes: [Aaron Giles]
* Fixed WRITEM opcode on 64-bit to call through memory instead of directly. Solves assertions with gcc 4.3 and 64-bit linux.
* Fixed DCMP opcode on the 32-bit back-end
* Fixed LZCNT opcode in x86 and x64 back-ends
* Added support for flags in LZCNT and BSWAP opcodes on x86 and x64 back-ends

Changed debugger so it does not stop while we are waiting for a pending event to occur. This eliminates some confusion during reset and state loading. [Aaron Giles]

Explicitly disabled overlays for non-native snapshots (native snapshots already had them disabled). [Aaron Giles]

Added more complete readmes for Konami PowerPC games. [Guru]

Cleaned up system register access in Konami PowerPC games. Connected EEPROM in hornet driver (doesn't seem to affect much). Altered network IRQ timing to fix several problems. Most games are back to their previous "working" states. [Aaron Giles]

Changed DRC frontend to pass a pointer to the previous instruction when describing. Updated PowerPC frontend to approximately take into account branch and CR logic folding in timing computations. [Aaron Giles]

Updated cheat system: [Shimapong]
- Merged 3 different search menu functions to search_main_menu()
- Added new cheat options, "Vertical/Horizontal Key Repeat Speed"
     NOTE : delete all cheat options in the database before start or reload default options (Shift + Reload key) in cheat general menu
- Changed assignment of Entry for Activation Key and Pre-enable command code. Now there are check the tag in comment field instead of index number. But it's only for new format command and old is as before
- Added tag output in save_activation_key() and save_pre_enable()
- Cleaned up save_cheat_options() to output description
- Changed memory read function in watchpoints No longer "Debugger" watchpoint mis-hit "Cheat" watchpoint
- Fixed several reported/found bugs
- Renamed funcitons/enum based on coding guidlines All functions are completed in this update

Removed DEBUGGER flag from makefile and ENABLE_DEBUGGER macro from the source code. All MAME builds now include the debugger, and it is enabled/disabled exclusively by the runtime command-line/ini settings. This is a minor speed hit for now, but will be further optimized going forward. [Aaron Giles]

Changed the 'd' suffix in the makefile to apply to DEBUG builds (versus DEBUGGER builds as it did before). [Aaron Giles]

Changed machine->debug_mode to machine->debug_flags. These flags now indicate several things, such as whether debugging is enabled, whether CPU cores should call the debugger on each instruction, and whether there are live watchpoints on each address space. Redesigned a significant portion of debugcpu.c around the concept of maintaining these flags globally and a similar, more complete set of flags internally for each CPU. All previous functionality should work as designed but should be more robust and faster to work with. [Aaron Giles]

Added new debugger hooks for starting/stopping CPU execution. This allows the debugger to decide whether or not a given CPU needs to call the debugger on each instruction during the coming timeslice. Also added new debugger hook for reporting exceptions. Proper exception breakpoints are not yet implemented. [Aaron Giles]

Added 360degree wheel (dial) input to GTMR, which is available when the Controller dip is set to 'Wheel', and Controls dip is set to '1P Side'. Note when Controls dip is set to 'Both Sides', 270degree wheel (paddle) input is used. [Minwah]

Verified clocks and adjusted sound volumes in Fairyland Story. [Corrado Tomaselli]

More conversion to input_port_read: [Fabio Priuli]
* updated the whole mid*unit family of drivers + seattle & zeus which shared some input code.
* updated most namco systems + a couple of old drivers sharing the input handling, minus namcos22
* updated most of the M->Q drivers + finally removed indexed reads from megadriv.c (without breaking ssf2ghw)
* removed indexed read from drivers starting with r (and slightly simplify inputs in royalmah.c)
* unified nichibustu mahjong input ports (using common ports in nbmj9195.c as well as in the other drivers), removed indexed read and exploited tags to reduce complexity in a couple of handlers

Fixed missing sha1 values in ampoker2.c, atarigx2.c, cabal.c, and ksys573.c. [John Gilbert]

Fixed a few build problems with the cpu/sound cores M65CE02, ALPHA8201, TMC0285, TMS5200 and corrected the dependencies for the mips core. [Atari Ace]

Finish the work on ddragon3: [Sonikos]
- Mapped the correct dip "SW1-8" before was incorrect
- Added "FBI Logo" dips in ctribe
- Fixed the dips condition's implementation to avoid the mame crash in ctribe
- Change the name of (Italian bootleg) in a better (bootleg Set 2)

Set OKI 6295 pin 7 to high in gotcha driver. [Sonikos]

Fixed make MSVC_BUILD=1 -j2 and corrected an oversight in the cross-build support. [Atari Ace]

Cleaned up most of the Machine stuff in src/emu/machine. There is a bit left to clean up, but it's mostly stuck at some interfaces now. [Oliver Stoeneberg]

New games added or promoted from NOT_WORKING status
Survival [nuapete]
WonderLeague '96 [David Haywood]

New games marked as GAME_NOT_WORKING
Cal Omega - Game 8.0 (Arcade Black Jack) [Roberto Fresca]
Cal Omega - Game 12.3 (Ticket Poker) [Roberto Fresca]
Cal Omega - Game 23.0 (FC Bingo (4-card)) [Roberto Fresca]


MAMETesters Bugs Fixed
- 01935: [Core] All output commands (-listxml, -cc, -listfull, ETC) crash with error (couriersud)

Source Changes
Updated config.txt to describe debugger. Turned off debugger flag by default. [Aaron Giles]

Fixed input port read during init on most (Super) System 22 games. [R. Belmont]

Fixed dip switches and added dip locations. [Brian Troha]

New clones added
Mahjong Electron Base (parts 2 & 4, Japan, BOOTLEG) [XingXing]


MAMETesters Bugs Fixed
- 01962: [DIP/Input] tailg: "Fatal error: Input ports cannot be read at init time!" with -debug (Aaron Giles)
- 01948: [Misc.] All alg.c and cliffhgr.c sets: Access Violation when taking a snapshot (Aaron Giles)
- 01940: [Misc.] All cps3.c sets: Access Violation (Aaron Giles)
- 01946: [DIP/Input] Various: Fatal error: Input ports cannot be read at init time! (part 2) (Aaron Giles)
- 01957: [Core] Access Violation on hardreset with -debug (Aaron Giles)
- 01955: [DIP/Input] gauntleg: Unable to locate input port 'IN1' / gauntleg cannot start (Aaron Giles)
- 00654: [DIP/Input] usclssic: Can't start 2P game. Seems like 2P Start key has no effect. (stephh)
- 01945: [Misc.] All asteriod.c sets: Assertions (couriersud)
- 01939: [Misc.] All sega80v.c sets: Assertions (couriersud)
- 01947: [DIP/Input] All omegrace.c sets: Assertions (couriersud)
- 01941: [Misc.] pleiads, pleiadbl, pleiadce: Fatal error: activecpu_get_info_int() called with no active cpu! (src/emu/cpuintrf.c:1160) (couriersud)
- 01944: [DIP/Input] hachamf: Unable to locate input port 'DSW' (robiza)
- 01936: [DIP/Input] All namcos21.c sets: Unable to locate input port 'AN7' (robiza)
- 01938: [Gameplay] vaportrx: Game freeze (Aaron Giles)
- 01937: [Interface] All Sets: Fatal Exception on In-Game Menu (couriersud)

Source Changes
SH2 core: [R. Belmont]
* refactored to separate out things that aren't part of the interpreter.
* converted context struct to go through a pointer

Fixed nile pitch calculation. [h0pdmiYX0]

MIPS3 recompiler: [Aaron Giles]
* don't generate compare interrupts unless the compare register was written to; fixes hangs in blitz, calspeed, and others
* stash jump target address before executing delay slot; also, don't update link register until delay slot has finished executing; fixes hang in gauntleg
* marked IDT instructions for R4650 only
* accounted for time taken in throwaway likely branch slots
* fixed jalr to respect the correct link register
* fixed c.eq, c.lt, c.le to fail if unordered
* fixed swxc1, sdxc1 to use the correct source register (fixes many Gauntlet problems)
* fixed CCR31 display in debugger
* fixed LWXC1/LDXC1; corrects gauntleg camera
ADded state saving for flower.c. [couriersud]

Corrected dip setting for Risky Challenge. [Brian Troha]

Changed how watchpoints work so that supporting them adds 0 overhead unless some are actually live. [Aaron Giles]

Removed calls to memory_set_context() in favor of cpuintrf_push_context(). [Aaron Giles]

Renamed wilytowr.c to m63.c. Added Irem M63 PCB layout (based on Atomic Boy). [Tomasz Slanina, Stefan Lindberg]

Fixed 32031 so that it doesn't call the debugger if not enabled. [Aaron Giles]

Fixed assertion in astring.c when compiled against MSVC and the string is UTF-8. [Nathan Woods]

Night Striker update: [kanikani]
- Added World version as new parent (nightstr)
- Renamed already-supported US version to nghtstru
- Added Japanese version (nghtstrj)
- Removed unnecessary analog input remapping
- Added analog stick adjusting port

Added diplocations to all games in taito_z.c. [kanikani]

Added pot wheel support to world rally 2. [Mirko Mattioli]

Split ADSP2100 execution loop between debug/non-debug. [Aaron Giles]

Improved behavior of PGM on big-endian. The ARM7 boots properly now but can't sync with the 68k for some reason. [R. Belmont]

Update S14001A core: improved filtering to be more accurate to the chip, changed internal audio renderer to produce 4 bit sound as the real chip does. Moved filter outside of the main rendering loop into the glue code. Note: with this update, you may hear a whining noise that was not previously present. This is accurate to the chip! The real chip would almost always have an analog filter placed on its output to suppress this whine. [Lord Nightmare]

Fixed some save state problems in the DCS driver. Still comes out garbled on a load, however. Extended memory.c to support up to 4096 banks. [Aaron Giles]

Improvements to Cal Omega driver: [Roberto Fresca]
- Unified MACHINE_RESET for systems 903/904/905.
- Created a new handler to manage the first 4 bits of system 905's PIA1 portB as input mux selector (905 is still not working)
- Updated technical notes.

Fixed incorrect assumption in the x86/x64 implementation of HASHJMP that the base table for a mode will always be allocated when a fixed mode is first used. [Aaron Giles]

Fixed 64-bit writes in UML C back-end. [Aaron Giles]

Preliminary emulation of video hardware (simple blitter) in Strip Teaser. [Tomasz Slanina]

I80286: Fixed POP ES in protected mode. [Wilbert Pol]

tumbleb.c update: [stephh]
- updated Dip Switches for 'wlstar' and 'wondl96'
- added notes for these 2 games and updated some others
- added port tags and updated memory definitions and read handlers

Updated cheat system [ShimaPong]
- Roll back older periodic function Now standard/old format work in this function Otherwords, several operations which doesn't exist in older function and added recently are now disabled
- Separated load_cheat_code() to 3 indipendent functions
   And added new cheat options, "Load New/Standard/Old Format Code"
   (Default : load all format codes)
     NOTE : delete all cheat options in the database before start
            or reload default options (Shift + Reload key)
            in cheat general menu
- Added format strings structure to accept huge size strings in loading a database to prevent from breaking other strings
- Changed Link in new format Label code is now "Link-Label" and sub-label is "Label-Sub-Link" "Standard-Link" is no longer label
- Added choose_label_index() to manage label selection
- Fixed build_label_index_table() to prevent from crashing And disabled to build label index table in case of standard/old format
- Fixed memory free problem in case of standard/old code
- Fixed several reported/found bugs

Cleaned up input handling in seta.c and bigevglf.c. [stephh]

Adds rom loading for the cadillacs & dinosaurs sets with PICs, and for several similar punisher sets. No good dumps of the PICs exist, and this is mainly for reference so that we don't forget the graphic rom loading on them. They don't work. They're basically the same set from different PCBs, so one will probably be removed eventually. [David Haywood]

Fixed memory leak in ledutil.c. [HeadKaze]

New games added or promoted from NOT_WORKING status
Touchmaster 8000 (v9.04 Standard) [Brian Troha]
Galactic Storm [Hau, Team Japump!]

New clones added
Night Striker (Japan) [kanikani]
Night Striker (US) [kanikani]
Wiz (Taito, set 2) [David Haywood]
Moon Lander [David Haywood]
Star Force (encrypted, set 2) [highwayman]
Spy Hunter (Playtronic license) [stefanocsw]
Captain Commando (bootleg) [highwayman] (NOT WORKING)

New games marked as GAME_NOT_WORKING
King of Football [Tomasz Slanina]
Hell Night (ver EAA) [Guru]


MAMETesters Bugs Fixed
- 01896: [Misc.] bigfight, cyclwarr: Access Violation crash
         (Aaron Giles)
- 01964: [Misc.] gtg2j: Access Violation (Aaron Giles)
- 01951: [Misc.] cybrcycc: Crash during intro. (Aaron Giles)
- 01965: [Misc.] driveyes: Access Violation (Aaron Giles)
- 01983: [Cheat System] Force Range cheats not working (couriersud)
- 00388: [Graphics] gaia: sometimes fails to display shadows beneath
         enemies or the sprites of the old man that talks to you.
         (David Haywood)
- 01984: [Cheat System] Incorrectly populating empty spacer comment
         cheats (Aaron Giles)
- 01980: [Cheat System] Enable Cheats menu only showing the first 24
         cheats for ANY game (Aaron Giles)
- 01971: [Cheat System] Cheat menu flickers. (Aaron Giles)
- 01967: [Misc.] output.c unregister_client crash (Jeff Shanholtz)
- 01963: [Misc.] screenless systems: memory leak with -mngwrite
         (Aaron Giles)
- 01854: [Graphics] All sets in thepit.c: Player 2 in cocktail mode
         has screen reversed (couriersud)
- 01952: [Cheat System] sfex2p: Cheat crash. (Shimapong)
- 01968: [Cheat System] -CHEAT trigger causes MAME crash when starting
         or exiting with some sets. (Shimapong)
- 01969: [Cheat System] some problem with cheat system (Shimapong)

Source Changes
Replaced kodb set with complete dump from known bootleg board
(different gfx rom layout). Added wofhfh bootleg from mame32plus.
Added SF2 Magic Turbo Delta bootleg as non-working. [David Haywood]

Added skeleton hikaru driver. [David Haywood, Guru]

Fixed possible 64-bit crash/hang with survival. [nuapete]

Driver's Eyes improvements: [Naibo]
- the communication work between CPU and 3D DSP should be limited
    to the master M68000, if the address mapping is done in the shared
    memory, master CPU would be disturbed by the slave one.
- DIP Switches
    DIP3 ON for Screen on the left
    DIP4 ON for Screen on the right
    should not toggle on both
- The left, center and right screens have separate programs and
    boards, each would work independantly. About projection angles of
    left and right screen, the angle is correct on 'DRIVER'S EYES'
    title screen, however in the tracks of demo mode it doesn't seem
- The game also features a pretty nice 2D sprite layer, which still
    doesn't show up yet. It is known that the CPU does constantly feed
    the 2D video memory some meaningful and logical data.

New driver for Lucky 74 (Wing Co.Ltd, 1988)
[Roberto Fresca, Tomasz Slanina]
- Set the proper screen size.
- Decoded graphics.
- Decoded the dual-state color circuitry.
- Mapped the NVRAM, VRAM1-1, VRAM1-2, VRAM2-1 and VRAM2-2 properly.
- Emulated 2x PPI 8255 devices.
- Mapped the 4x DIP switches banks.
- Added PORT_DIPLOCATION to all DIP switches.
- Added DIP switches for 'Bet Max' and 'Limit'.
- Added DIP switches for 'Jackpot' and 'Pay Table'.
- Added the Memory Reset Switch.
- Added the 2nd video & color RAM.
- Added a 2nd tilemap for background graphics.
- Simplified the graphics banks.
- Fixed colors for foreground graphics.
- Fixed visible area to show the top of background graphics.
- Finally fixed colors for background graphics.
- Added all coinage DIP switches.
- Mapped all remaining inputs (service and player buttons).
- Added pulse time limitation to coins A, B & C.
- Switched to use 4x 8255 in replace of 2x 82c255 for I/O.
- Created a handler to feed the z80 port0 requests.
- Promoted lucky74s to 'working' state.
- Added an alternate set, but the program ROM looks like incomplete, protected or just a bad dump.
- Parent/clone relationship.
- Added technical notes.
- Hooked interrupts.
- Hooked the AY8910 and therefore the NMI trigger.
- Changed the input "Key In" to active high.

Fix scrolling speed in case a cheat dat has invalid (i.e. 0) settings. [couriersud]

Added per-device and per-CPU validity checks. [Nathan Woods]

Added new Ferrari F355 USA BIOS to Naomi.c [AndyGeezer]

Improved sprite rendering on gaia crusaders (animate at 60fps now, not 30). [David Haywood]

New games added or promoted from NOT_WORKING status
Lucky 74 (small) [Roberto Fresca]

New clones added
Virtua Fighter 3 (Revision A) [Chris Hardy]
Lucky 74 (big) [Roberto Fresca]
Emergency Call Ambulance (Export) [AndyGeezer]

New games marked as GAME_NOT_WORKING
Hikaru Bios [Guru]
Air Trix [Guru]
Planet Harriers [Guru]
Star Wars Pod Racer [Guru]
Wave Runner [David Haywood]


NOTE: The cheat engine is disabled as of this version. It is
currently undergoing a desperately-needed complete redesign and
rewrite from scratch. By the time 0.127 is ready, we should have
support for the vast majority of existing cheats working once

MAMETesters Bugs Fixed
- 00368: [Graphics] aliens: There are a few graphics glitches.
          (Nicola Salmoria)
- 00871: [Graphics] pow: At 3/4 of the 1st level, there is a large
          pillar, which pops up too late. (Nicola Salmoria)
- 02006: [DIP/Input] rtriv: All four buttons for player 1 are mapped
          twice (Fabio Priuli)
- 02009: [Graphics] frogger and clones: background doesn't rotate in
          cocktail mode (couriersud)
- 01547: [Sound] cabalbl: Cabal (bootleg) soundfx wrong
          (Nicola Salmoria)
- 00244: [Graphics] aliens: In two player mode, there are some
          problems with the player sprites. (Nicola Salmoria)
- 01910: [DIP/Input] changela: Gear Shift defaults to Reverse
- 00900: [Color/Palette] kaiserkn, kaiserkj, gblchmp, dankuga: When
          thrown by Azteca's medium punch throw the palette of the
          thrown character gets all messed up. (Nicola Salmoria)
- 00895: [Color/Palette] arabianm and clones: During level 6, there
          is a rain effect, but the water is coloured green.
          (Nicola Salmoria)
- 01917: [Color/Palette] gunlock, rayforce, rayfocj: The color of
          Battleships is wrong in the 1st stage. (Nicola Salmoria)
- 01058: [Documentation] exctsccb: Exciting soccer bootleg should be
          placed in champbas.c. (Nicola Salmoria)
- 00079: [Graphics] faceoff: When you go for a penalty shot the
          screen is upside down. (Nicola Salmoria)
- 01887: [DIP/Input] pushman, pushmana, pushmans: Flip screen DIP
          switch doesn't work. (Nicola Salmoria)
- 01891: [DIP/Input] matchit, shisen, sichuan2, sichuana: Flip screen
          DIP switch doesn't work. (Nicola Salmoria)
- 01574: [DIP/Input] dankuga, gblcmhp, kaiserkj, kaiserkn: Player 1
          and Player 2 Button 4 mapped twice. (Nicola Salmoria)
- 01925: [Color/Palette] gunlock, rayforce, rayforcj: The explosive
          color of the demo is different. (Nicola Salmoria)
- 01973: [Core] champbbj: Game resets itself in the middle of test
          process (Nicola Salmoria)

Source Changes
makemeta changes: [Aaron Giles]
* Split out Manchester code parsing into a separate utility module.
* Rewrote Manchester code parsing to be clock based.
* Updated makemeta to call the new functions.
* Changed makemeta to parse a different format for metadata.
* Fixed Huffyuv decompression in aviio.
* Added more robust logic to parse out the white flag.

Newest Japanese Naomi BIOS added [batman2509, starke/peap]

pit8253 updates: [Wilbert Pol]
- Changed the implementation to use timers internally.
- Removed the frequency change callbacks.

slapfght driver update: [stephh]
* Renamed sets :
    - tigerh2  -> tigerhb1 ("Japan set 2"   -> "bootleg set 1")
    - tigerhb1 -> tigerhb3 ("bootleg set 1" -> "bootleg set 3")
    - gtstarba -> gtstarb1 ("bootleg set 2" -> "bootleg set 1")
    - getstarb -> gtstarb2 ("bootleg set 1  -> "bootleg set 2")
* "Performan" :
    - cleaned/fixed Dip Switches and added port locations
* "Tiger Heli" :
    - added MCU simulation for 'tigerhb1' (in fact, I only had to
       return the correct value for the hardware test as there
       doesn't seem to be any other communication - I'm still not
       convinced that this bootleg had a MCU)
    - cleaned/fixed Dip Switches and added port locations
    - added notes with the differences between the different sets
* "Get Star" / "Guardian" :
    - added MCU simulation for 'getstar' and 'getstarj' heavily based
       on 'gtstarb1' bootleg
    - cleaned/fixed Dip Switches and added port locations
    - added notes with the differences between the different sets
       (and especially detailed the numerous ingame bugs in

Added new module uiinput.c which manages input for the user interface.
The OSD is responsible for pushing mouse events and character events
to this interface in order to support mouse movement and text-based
input (currently only used for the select game menu). Added support
for navigating through the menus using the mouse.
[Nathan Woods, Aaron Giles]

Redesigned the UI menus so that they can maintain a richer state. Now
the menus can be generated once and reused, rather than requiring
them to be regenerated on each frame. All menus also share a comment
eventing system and navigation through them is managed centrally.
Rewrote all the menus to use the new system, apart from the cheat
menus, which are now disabled. Reorganized the video menu to make it
easier to understand. [Aaron Giles]

Converted UI startup screens to use astrings. [Aaron Giles]

Fixed edge case in the DRC front-end that would incorrectly tag the
end of a sequence as "return to start" even if the last instruction
did not abet the starting instruction. [Aaron Giles]

Replaced the crazy number of get/set functions for render containers
with a single get/set of a user settings struct. [Aaron Giles]

merged exctsccr.c into champbas.c. [Nicola Salmoria]

UDRC-based SH-2 dynamic recompiler: [R. Belmont]
- All games on all drivers should work as before except "colmns97"
    and "stress" which crash due to sound system trouble.
- All idle skips are still included. They are quite a bit less
   effective than they were on the interpreter, but they still give a
- Fast RAM bypass is not included yet so this does not represent
   final performance. That said, it's consistently faster than the
   interpreter even now. Example: sfiii3 on 0.126 gets 609% on the
   interpreter and 961% on the DRC.

Added ST-V BIOS info based on text at 0x800 (byte swapped).
Reorganized the BIOS list & description. Added the USA bios to
smleague and it's a USA only cart. [Brian Troha]

Added save state suport to Konami CPU & Aliens. [Nicola Salmoria]

Moved kodb to fcrash.c (which will probably end up being the home of
the cps1 bootlegs). [David Haywood]

SH-4 update [Samuele Zannoli]
- Fixed TRAPA and some versions of FMOV
- Improved disassembly for MOV.W, MOVA, MOV.L, FIPR, and FSCA.

Fixed memory leak in romcmp. [Nicola Salmoria]

Merged memory maps in the cabal driver. [Nicola Salmoria]

i960: respect the rounding mode for CVTRI [ElSemi]

Corrected g13knd wave ROM 0 offset. [Philip Bennett]

Fixed cocktail sprite position in galaxian.c. Fixes that the frog
disappears for player 2 if moved backwards. [couriersud]

Changed direct access EEPROM interface to return the "bus width" of
the EEPROM data, and the size is in terms of units, not bytes.
Updated all drivers accordingly. [Aaron Giles]

Changed the ROM loading code to actually alter the region flags based
on the CPU endianness and bus width when creating the region, rather
than fixing them up on the fly. This means that callers to
memory_region_flags() will get the correct results. [Aaron Giles]

Changed the expression engine to use two callbacks for read/write
rather than relying on externally defined functions. [Aaron Giles]

Expanded memory access support in the expression engine. Memory
accesses can now be specified as [space][num]<size>@<address>.
'space' can be one of the following:

   p = program address space of CPU #num (default)
   d = data address space of CPU #num
   i = I/O address space of CPU #num
   o = opcode address space of CPU #num (R/W access to decrypted opcodes)
   r = direct RAM space of CPU #num (always allows writes, even for ROM)
   e = EEPROM index #num
   c = direct REGION_CPU#num access
   u = direct REGION_USER#num access
   g = direct REGION_GFX#num access
   s = direct REGION_SOUND#num access

The 'num' field is optional for p/d/i/o/r, where is defaults to the
current CPU, and for e, where it defaults to EEPROM #0. 'num' is
required for all region-related prefixes. Some examples:

   w@curpc = word at 'curpc' in the active CPU's program address space
   dd@0    = dword at 0x0 in the active CPU's data address space
   r2b@100 = byte at 0x100 from a RAM region in CPU #2's program space
   ew@7f   = word from EEPROM address 0x7f
   u2q@40  = qword from REGION_USER2, offset 0x40
The 'size' field is always required, and can be b/w/d/q for byte, word,
dword, and qword accesses. [Aaron Giles]

Added World Rally support to tiny.mak/.c. [Macareno]

changela input improvements: [RansAckeR]
- DIP switch fixes
- Added DIP locations.

Minor srmp5 update: [Sonikos]
- Removed hack in drive machine R3000
- Adjusted  R3000 frequency to 25 Mhz according to speglsht (the hardware is the same)
- Adjusted visible area (but i'm not sure it's correct)
- Fix one rom loading

Changed partial refresh policy in snk68.c and updated comments. [Nicola Salmoria]

More conversion to input_port_read(): [Fabio Priuli]
* converted to use tagged inputs and handlers all drivers starting
    with S & T
* simplified input reads in system24 (removing a redundant handler)
* cleaned up a bit inputs in system 16 & 18 bootlegs (among the
    other things, now coinage and P2 inputs in fpointbl & fpointbj
    work again)
* removed a lot of redundant #define from taito drivers, replacing
    them with PORT_INCLUDEs and definitions from taitoipt.h

New clones added
World Class Bowling v1.6N [Brian Troha]
Tiger Heli (bootleg set 1) [stephh]
Guardian (US) [stephh]
Get Star (Japan) [stephh]
Virtua Fighter 2 (Revision A) [Peabo / ElSemi]

New games marked as GAME_NOT_WORKING
Daytona USA Deluxe '93 [Peabo / ElSemi]


MAMETesters Bugs Fixed
- 01448: [DIP/Input] twotiger: If you have your controller centered, it is in fact tilted slightly to the right. (Aaron Giles)
- 00595: [DIP/Input] playch10.c games: Button 1 and 2 are reversed with respect to all other standard mapping. (Fabio Priuli)
- 02007: [Misc.] avengrgs: SH2 Recompiler Bug: Avenrgs crash (R. Belmont)
- 01892: [Sound] calspeed: Refreshspeed causes horrible screetching in some games [Calspeed used for example]. (Aaron Giles)
- 01472: [DIP/Input] flower: Starting a game doesn't always register. (David Haywood)
- 02029: [DIP/Input] aurail and clones: Coinage Dip Switches ignored (Fabio Priuli)
- 01902: [Core] galpani3: crash at start (Fabio Priuli)
- 01718: [DIP/Input] bishi: Coin 1 and Service 1 mapped twice. (Fabio Priuli)
- 01572: [DIP/Input] hypreact: Kan, Pon, Chi, Reach, Ron are mapped twice. (Fabio Priuli)
- 01568: [DIP/Input] gstrik2: Service mode is mapped twice. (Fabio Priuli)
- 02019: [Core] vfkids: Logging for the SH-2 has been left on. (R. Belmont)
- 01113: [Speed] btlkroad: [possible] This game runs like slow-motion during gameplay, with 60/60 on fps. (Nicola Salmoria)
- 00479: [DIP/Input] livegal: P1 Start start a P2 game (and some inputs are misread in Test Mode) (Fabio Priuli)

Source Changes
Robustified key behavior when the debugger is visible. Should now properly ignore the "break into debugger" keypress and not allow related characters to filter through. Removed some hacks related to making that work in the past. [Aaron Giles]

Changed osd_wait_for_debugger() to take a machine parameter and a "firsttime" parameter, which is set to 1 the first time the function is called after a break. The Windows debugger uses this to ensure that the debugger has focus when you break into it. [Aaron Giles]

Changed short names for STV BIOS back to single words. [Brian Troha]

Added information on how to toggle the built-in speedup in Ms Pacman or the fast shot in Galaga in 20pacgal. [Brian Troha]

All sound chips must now include a tag. Changed all existing drivers to define a unique tag for each sound chip. [Aaron Giles]

Fixed incorrect i960 behavior when generating interrupts. [ElSemi]

Changed -listxml to now output the tag names for CPUs and sound chips. [Aaron Giles]

Added validity checks to ensure no duplicate sound or CPU tags.
Fixed several duplicates. [Aaron Giles]

Changed MDRV_CPU_ADD to require a tag. Removed MDRV_CPU_ADD_TAG. Tagged all CPUs. [Aaron Giles]

TGP / Model 2 fixes [ElSemi]
- TGP now correctly uses table roms (model1/2 updated accordingly)
- removed FIFO hack on srallyc (game now runs)
- added analog ports reading for model 2A/B/C
- fixed some loading instructions in the TGP. that fixes srallyc automatic transmission bug

Merged CPU0 and 1 memory maps in flower, improved interrupt generation [David Haywood]

Dsp56156 Disassembler rewrite. [Andrew Gardner]
- Rearranged decoding behavior.
- Updated code style to MAME standards.
- Tested each single-word opcode with custom ROMs.

Laserdiscs are now devices. Updated all drivers accordingly. [Aaron Giles]

Merged memory maps in battlnts, bbusters, bigevglf, bigstrkb, and bionicc. [Aaron Giles]

Added new functions attotime_to_ticks() and ticks_to_attotime() to convert between attotimes and a clock tick at an integral frequency. [Aaron Giles]

Changed the 6532 RIOT device into a proper device. Rewrote the logic to be simpler and leverage the new attotime functions. Changed the I/O port setters to specify a mask, and changed the I/O port callbacks to pass in the previous value. Updated tourtabl and gameplan drivers to use the new device interface. [Aaron Giles]

Converted audio/starwars.c, audio/exidy.c, and audio/gottlieb.c to use the new RIOT implementation instead of rolling their own. [Aaron Giles]

Began gottlieb.c cleanup. Converted palette calculations to resistor weights. Corrected video timing. Reduced the number of separate machine drivers. Fixed incorrect spriteram sizes. Populated full memory maps for the main CPU and the rev 1 sound board. More to come. [Aaron Giles]

Fixed 8257 DMA terminal count stop for autoload mode and added callback function existance check. [Miodrag Milanovic]

Completed removal of all explicit calls to input_port_read_indexed(). [Fabio Priuli]

Converted tinklpit keycus implementation from a table to a LFSR. [Olivier Galibert]

Removed unnecessary ROM shuffling code in namconb2. [Olivier Galibert]

Made the initialization of various Konami PPC drivers consistent from run to run, hopefully fixing most multisession issues. Also moved some allocations from static to dynamic storage. [Atari Ace]

Made input_port_read_indexed() private to machine/generic.c. Eventually it will probably disappear altogether. Fixed the two remaining instances. [Aaron Giles]

Converted a number of drivers from A-C to using tagged input ports, and AM_PORT_READ in the address maps. [Fabio Priuli]

Added DIP locations to a large number of drivers: bwidow.c, bzone.c, bestleag, blackt96, bogeyman, bombjack, boogwing, bottom9, brkthru, darwin, buggychl, squaitsa, btime, bnj, lnc, zoar, disco, cabal, canyon, cbuster, cclimber, swimmer and guzzler. [Fabio Priuli]

Made DIP switch renderings consistent regardless of UI aspect. [Aaron Giles]

Moved more items out of .data by either applying const, removing the non-zero initializer (if its overwritten by init/reset) or by adding appropriate initialization code. [Atari Ace]

Removed conditional logging code in favor of allowing the compiler to optimize it out. This prevents bitrot of #ifdef'ed code. [Atari Ace]

New games added or promoted from NOT_WORKING status
Shinobi III (Mega Play) [Tomasz Slanina, Kowal]
Player's Edge Plus (X002069P) Double Double Bonus Poker [Hammer300]

New clones added
Major Title (World) [Tirino73 / MAME Italia]
Winding Heat (EAA, Euro v1.11) [Highwayman]
Demon's World / Horror Story (set 5) [Corrado Tomaselli]

New games marked as GAME_NOT_WORKING
Rail Chase 2 [AndyGeezer]