MAMETesters Bugs Fixed
- 02023: [Crash/Freeze] irobot: hang (Aaron Giles)
- 02043: [Crash/Freeze] All games in cps2.c: All Parent Sets for CPS2 Games Abort (Firewave)
- 02046: [DIP/Input] cachat, tubeit: screen upsidedown (Fabio Priuli)
- 00456: [Graphics] combascb: Missing Most Graphics (Fabio Priuli)
- 02050: [DIP/Input] skyfox, exerizrb: Issue with credits input (Fabio Priuli)
- 02045: [DIP/Input] wofhfh: Player 3 inputs aren't working (stephh)

Source Changes
More documentation on the Kiki KaiKai MCU. [Guru, Brian Troha]

A bit more cleanup in the gottlieb driver, still incomplete. [Aaron Giles]

Verified Free Kick PROMs and improved documentation. [Brian Troha]

Added the ability to pass an optional destructor to ui_menu_alloc_state(). [Nathan Woods]

Updated to build with the latest DirectX SDK, which doesn't support Direct 3D 8 & Direct Input 7. By default, the makefile is set up to compile the old way, but you can set DIRECT3D=9 and DIRECTINPUT=8 in windows.mak or on the command-line to build with a more modern SDK. [smf, RansAckeR, uRebelScum]

Irem m63 - adjusted AY frequencies to proper 1.5 MHz [Stefan Lindberg]

DSP56156 CPU Core updates [Andrew Gardner]
- Rewrote core logic, communications, and interfaces.
- Added three parallel memory moves to the disassembler.
- Initial interrupt logic in place.

Plygonet.c updates [Andrew Gardner]
- All communication hacks have been removed.
- Memory maps have been temporarily reverted while new DSP56k cpu core catches up.

Merged memory maps for beezer.c, bishi.c, and bladestl.c. [Andrew Gardner]

AICA updates [Deunan Knute, ajax16384, R. Belmont]
- Fixed ADPCM decoder to remove bad optimization and match YMZ280B. DC offset is fixed and output quality is higher
- Improved handling of slot monitor and timers B and C
- Simplified interpolation code

SH2DRC: Add PC-relative load optimization and ability to disable if necessary [R. Belmont, based on an idea by Mariusz Wojcieszek]

Changed the way memory regions are referenced. Instead of a single integer value, regions are now referred to by a region tag. The region tag must be unique among all regions defined for a given game. This change required updating all the ROM region definitions in the project to specify the tag instead of region number. [Aaron Giles]

Updated the core memory_region_* functions to accept a tag instead of an integer. Added new memory_region_next() function to allow for iteration over all memory regions. [Aaron Giles]

Changed the auto-binding behavior of CPU regions. Previously, the first CPU would auto-bind to REGION_CPU1 (that is, any ROM references would automatically assume that they lived in the corresponding region). Now, each CPU automatically binds to the region with the same tag as the CPU itself. This behavior required ensuring that all previous REGION_CPU* regions were changed to regions with the same tag as the CPU. [Aaron Giles]

Introduced a new auto-binding mechanism for sound cores. This works similarly to the CPU binding. Each sound core that requires a memory region now auto-binds to the region with the same tag as the sound core. In almost all cases, this allowed for the removal of the explicit region item in the sound configuration, which in turn allowed for many sound configurations to removed altogether. [Aaron Giles]

Updated the expression engine's memory reference behavior. A recent update expanded the scope of memory references to allow for referencing data in non-active CPU spaces, in memory regions, and in EEPROMs. However, this previous update required an index, which is no longer appropriate for regions and will become increasingly less appropriate for CPUs over time. Instead, a new syntax is supported, of the form: "[tag.][space]size@addr", where 'tag' is an optional tag for the CPU or memory region you wish to access, followed by a period as a separator; 'space' is the memory address space or memory class you wish to access (p/d/i for program/data/I/O spaces; o for opcode space; r for direct RAM; m for memory regions; e for EEPROMs); and 'size' is the usual b/w/d/q for byte/word/dword/qword. [Aaron Giles]

Cleaned up ROM definition flags and removed some ugly hacks that had existed previously. Expanded to support up to 256 BIOSes. Updated ROM_COPY to support specifying a tag for the source region. Also updated the address map AM_REGION macro to support specifying a tag for the region. [Aaron Giles]

Updated debugger windows to display the CPU and region tags where appropriate. [Aaron Giles]

Updated -listxml to output region class and tag for each ROM entry. [Aaron Giles]

Changes to lucky74.c driver: [Roberto Fresca]
- Pre-defined CPU and SND clocks.
- Switched the color system to RESNET calculations.
- Completed the remaining DIP switches.
- Added lamps support. Created a layout to show them.
- Changes on the interrupt system (need to be verified on the PCB).
- Renamed the graphics regions to more descriptive names.
- Corrected the manufacturer's name.
- Splitted the driver to driver + video.
- Updated technical notes.

Changed unmapped read for mspacman to see if it changes tunnel behavior. [David Haywood, as suggested by dwidel]

SH2DRC: add SUBV, replace ADDV with C version as a precaution. (Fixes most of Mantis #2026, except the part which is a separate bug). Added new implementation which uses flags directly, keeping the C versions in reserve in case they are needed. [R. Belmont, Aaron Giles]

Added more validation to the address map detokenization, in order to catch cases where multiple read/write handlers are assigned to a range.
Fixed cases in the code that failed these checks. [Atari Ace]

i8051 cpu core timer updates: [Wilbert Pol]
- Added support for timer mode 0 (13 bit timer)
- Cleaned up timer code a bit, fixing some off-by-one errors when timers overflow.

Naomi updates [Samuele Zannoli]
1) refactors many global and static variables in video\dc.c into a structure to hold the tile accelerator state
2) textures should be better decoded with more pixel formats
3) adds placeholders for some register probably used by the dimm board
4) corrects a little error in a rom board register (very important, now at least the gdrom games try to start)

Added region and regionbytes fields to the deviceconfig, which are auto-filled by the device manager before starting the device. This simplifies the auto-binding process for devices. Added new selector for device-specific ROM regions. Not yet wired up in the ROM loader. [Aaron Giles]

Simplified SH2 DRC shift/rotate instruction implementations. [Aaron Giles]

Fixed menu handling so it doesn't swallow the tab key. [Aaron Giles]

Changed symbol table reference parameters to void * from UINT32. [Aaron Giles]

Enable strict PC relative loads for ST-V games; at least Cotton Boomerang needs them. [R. Belmont]

Added new option 'cheatpath' to specify one or more paths for cheat files. Removed old option 'cheat_file'. [Aaron Giles]

Updated xmlfile.c to specify the line number for each node, for more accurate error reporting. [Aaron Giles]

Removed old cheat.c/.h and replaced them with code that will read and write the new XML-based cheat format using the new cheatpath option (cheats still need to be enabled in order to load at all). Note that the cheats are not implemented yet, but they are fully parsed. To test saving, whenever a cheat file is successfully loaded, it is immediately written back out as 'output.xml' to the cheat directory for validation. [Aaron Giles]

Minor cleanups: [Oliver Stoenberg]
- removed of unprintable chars (newlines) in SH-2 disassembler
- removed a few unnecessary checks after malloc_ort_die() calls
- changed two romload.c warnings to use GAMENOUN instead
- added "deprecat.h" in a  few src/mame/drivers files
- cleaned up the mame.mak by adding all missing defines and grouping them based on cpu.mak
- renamed video_exit() to winvideo_exit() for consistency in function names

Changed commented-out functions to #ifdefs. [Atari Ace]

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

New clones added
Pool 10 (italian, set 3) [Roberto Fresca]
Killer Instinct 2 (v1.3k, upgrade kit) [Brian Troha] (NOT WORKING)

New games marked as GAME_NOT_WORKING
Bust a Move 2 (JAPANESE ROM ver. 1999/07/17 10:00:00) [R. Belmont]


MAMETesters Bugs Fixed
01958: [Crash/Freeze] skns: Segfaults on load (Pierpaolo Prazzoli)
01817: [Crash/Freeze] intrepi2: Game stops at PCB test (Pierpaolo Prazzoli)
02090: [Crash/Freeze] thedeep: Game didn't start (black screen). (Pierpaolo Prazzoli)
02067: [Crash/Freeze] mustangb, tdragonb: Access Violation (Aaron Giles)
02069: [Crash/Freeze] astrofl: Access Violation (Aaron Giles)
02068: [Crash/Freeze] All sets in mhavoc.c: Access Violation (Aaron Giles)
02070: [Crash/Freeze] atlantol: Access Violation (Aaron Giles)
02066: [Graphics] All sets in mhavoc.c: all graphics is missing (Aaron Giles)
02033: [Crash/Freeze] soccerss and clones: the romtest report two bad roms (robiza)
02049: [Graphics] invaders: Built in red color overlay goes too low and shows on top line of invaders heads in Vista only. (robiza)
02079: [DIP/Input] radr, radru: Dipswitch info (robiza)
02056: [DIP/Input] pbobble, qzshowby, spacedx, spacedxj: Unable to enter coins (Fabio Priuli)
02060: [Graphics] spinlbrk, spinlbru, spinlbrj: Priorities wrong in second level (robiza)

Source Changes
Added information to the 1943 driver (video) about priorities encoded in PROM. [robiza]

Minor optimization to the DISCRETE_INPUT modules. The node output is now calculated when a discrete_sound_w() is called instead of each step in the simulation. Also removed the Enable line from the DISCRETE_ADJUSTMENT modules. They should never be disabled. [Derrick Renaud]

Removed per-frame metadata support from chdman. Creating an A/V now simply requires an AVI file input. [Aaron Giles]

Changed laserdisc support to parse white flags and other data from the VBI data directly, rather than relying on the textual metadata. Expanded video frame cache to 3. Changed the way frames are assembled to decrease the likelihood of getting an interlaced weave. Fixed sound creation so that it is done at reset time instead of device start, when the sound devices aren't yet live. [Aaron Giles]

Fixed bug in winwork that caused the creation of single work items to return NULL, and thus lead to massive memory leaks when using A/V CHDs. [Aaron Giles]

Added new functions cputag_set_input_line() to assert input lines via CPU tag instead of index. [Aaron Giles]

Disks opened by the romload module are no longer identified by index. Instead, they are identified by the region they were loaded in. This generally means one disk per region. get_disk_handle() now takes a region name in place of an index. Updated all callers to do this. The SCSI modules in particular posed a challenge to make this work, so watch out for potential bugs there. [Aaron Giles]

Changed the IDE interfaces to default to choosing the region with the same tag as the device for its master disk (assuming no slave). Added support for specifying explicit master/slave disk regions as part of the configuration, though slave disks are still not supported yet. [Aaron Giles]

Change the laserdisc interface to no longer require a disk number or a custom sound device. Both are now assumed to be tagged the same as the laserdisc device. Updated all drivers accordingly. [Aaron Giles]

Merged memory maps for drivers: blmbycar, blockade, blockhl, blockout, bombjack, boogwing, and bottom9. [Andrew Gardner]

Added readmes for Galaga, The Outfoxies, Splatter House, Top Racer, Kyros No Yakata, Bombs Away, Meikyuu Hunter G, Crazy Kong, Moero Pro Yakyuu Homerun Kyousou, Lucky & Wild, Match It, Country Club, Enforce, Elevator Action, Chuka Taisen, The New Zealand Story, Buck Rogers Zoom 909, Head On, Victorious Nine, Youma Ninpou Chou, Pairs, Woodpecker, Slap Fight, Alcon, Tiger Heli, Superman, WWF Superstars, Area 51, Animalandia Jr, Avengers In Galactic Storm, Alien 3: The Gun, Aquajack, and Missile Command. [Guru]

Fix region jumper on psikyo4 (loderndf). [David Haywood]

Backported a bunch of FM OPN (YM2608/2612) fixes from Genesis Plus GX.  All of this was verified on real hardware. [Eke-Eke, Nemesis, Alone Coder, AamirM]
- implemented PG overflow, aka "detune bug" (Ariel, Comix Zone, Shaq Fu, Spiderman...)
- fixed SSG-EG support
- modified EG rates and frequency
- fixed EG attenuation level on KEY ON (Ecco 2 splash sound)
- fixed LFO phase update for CH3 special mode (Warlock, Alladin)

Scanline exact rendering for dkong & clones [couriersud]
* Sprite limit of 16 sprites per scanline implemented from schematics.
* Proper wrap around from bottom to top
* Added some notes about sprite limits and hardware to dkong driver (thanks to R. Belmont)

Added edge connector pinout info to flower.c. [Brian Troha]

Some initial work on the adp driver. [robiza]

Fixed window in shanghai and shangha2. [robiza]

8257dma and z80dma devices now require device callback handlers instead of machine handlers. Updated affected drivers accordingly. [couriersud]

Improved Dsp56k CPU interrupt handling. Polygonet Commanders now advances past its first dsp handshake. [Andrew Gardner]

Added proper laserdisc support for MACH 3, Us vs. Them, and Cobra Commander (MACH 3 hardware). Old laserdisc hacks are now removed. The code now talks to the standard Pioneer PR-8210 interface. Also removed hacky "target list" from the MACH 3 ROMs; this information is now decoded on the fly from the right channel laserdisc audio. [Aaron Giles]

Other Gottlieb cleanups: [Aaron Giles]
- fixed rev 2 sound again
- fleshed out memory maps and behaviors according to the schematics
- hooked up coin counters.
- moved sound inputs to audio/gottlieb and included them in all relevant drivers
- ordered input ports and ROM definitions consistently

Other laserdisc changes: [Aaron Giles]
- changed PR-8210 interface to work consistently for both Gottlieb and Stern games
- added audio callback mechanism to allow drivers to peek at the raw audio streams

Set the initial 8253 timer output to 2 to indicate that it is undetermined. [Wilbert Pol]

Removed obsolete makemeta tool. Replaced it with new ldverify tool which walks through either an AVI or CHD capture from a laserdisc and ensures that there are no anomalies lurking in the VBI data. [Aaron Giles]

Added new option to chdman, where if you use -createav with a special filename (either 2:2 or 3:2) it will create a fake laserdisc files with the equivalent cadence. This can be used for testing until full captures are available. Most games used 2:2 apart from Dragon's Lair and Space Ace, which were 3:2. Note that even though these files are essentially blank, they are Huffman-compressed, meaning that the maximum compression ratio you will get is 8:1, so they still end up ~5GB. [Aaron Giles]

Moved error strings from chdman.c to chd.c, where they can be fetched from any caller via the new chd_error_string() function. [Aaron Giles]

Updated vbiparse to improve Manchester code decoding. It now assigns a confidence level per bit based on how solid the data is. Also added a new function vbi_parse_all which parses the white flag and all three lines of metadata from a laserdisc frame. It then compares line 17 and 18 against each other and selects the most likely candidate based on per-bit confidence and other factors. [Aaron Giles]

Added frame number display to laserdsc.c. It is off by default, though most players can be configured to turn it on (not sure if any actually do). It can be manually toggled via the backslash key during playback. [Aaron Giles]

Discrete sound core optimizations: [couriersud]
* moved a couple of exp(x) from _step into _reset where appropriate
* use tabulated function values for the transfer function in DSS_INVERTER_OSC

Forced synchronization (stream_update()) before the YM2151 status is actually read. [Jarek Burczynski]

Added Discrete Sound to Fantasy, Nibbler and Pioneer Balloon. [Derrick Renaud]

Fixed I/O watchpoints. [Aaron Giles]

Changes to the cheat.xml format: [Aaron Giles]
- new tag <comment> (within <cheat>) is read and preserved when saved
- removed variable attribute from <parameter>; it is now assumed to be 'param'
- added default attribute for <parameter>

Added new variable 'frame' accessible from cheat scripts. This can be used in the conditional to prevent execution on every frame, or for other effects (like displaying temporary messages). [Aaron Giles]

Added new variable 'argindex' which is the index when processing an <argument> with a count attribute greater than 1. [Aaron Giles]

Reinstated the cheat menu. It now displays all loaded cheats and allows for them to be activated. All known cheat behaviors should be working now. Cheats are toggled on/off with the left/right arrow keys. Oneshot cheats are activated by hitting enter. Pressing enter on other cheats resets them to their default values. [Aaron Giles]

Continued the cleanup of inputs in drivers starting with C (the remaining ones), D and E. Improvements include conditional dips added to dynduke and diplocations for chinagat, chqflag, circus, citycon, cloak, contra and dynduke. [Fabio Priuli]

Added tags to EVERY input port in drivers starting with F->Z. [Fabio Priuli]

Removed PORT_START macro. Renamed old PORT_START_TAG to PORT_START.
All input ports must have tags. [Aaron Giles]

Added support for DEL as well as BS for backspacing in the game select menu. Also limited input to ASCII characters. [Aaron Giles]

Fixed Rim Rockin' Basketball to use the HD6309 core. [Tim Lindner]

Added diplocations to bigrun, scudhamm, cischeat & f1gpstar.
Removed the current hacky handling of f1gpstar coinage dips to use conditional ports instead. In order to do this, the possible conditions were extended to support less than/greater than comparisons. [Fabio Priuli]

Fixed bug that would break conditions on ports using the PORT_DIPUNKNOWN_DIPLOC macro. [Aaron Giles]

Added diplocations to the following drivers: combatsc.c, copsnrob.c, cosmic.c, crgolf.c, crimfght.c, crospang.c (here I also added service dips to heuksun and bestri, which allowed me to verify locations), crshrace.c, dambustr.c, darkseal.c, dassault.c, dblewing.c, ddrible.c, deadang.c. Also added locations to the following games: ddragon & ddragon2 on ddragon.c and docastle, dorunrun & dowild in docastle.c. [Fabio Priuli]

Verified CPU clocks for athena. [Corrado Tomaselli]

Added module profiling to discrete sound core [couriersud]
* added DISCRETE_PROFILING macro to discrete.h
* Upon discrete_stop, the worst performing modules will be listed

Verified and corrected CPS1 refresh rate. [Corrado Tomaselli]

Changed sound cpu clock of Spinal Breakers to 5Mhz as verified on the pcb. [Corrado Tomaselli]

Corrected MPU4 AY8910 output weightings. [James Wallace]

Added word alternates for operators in expressions: [Aaron Giles]
  +   plus
  -   minus
  *   times or mul
  /   div
  %   mod
  !   not
  ~   bnot
  &&  and
  &   band
  ||  or
  |   bor
  ^   bxor
  lt  <
  le  <=
  gt  >
  ge  >=
  eq  ==
  ne  !=

Changed cheat escaping to automatically escape && & < and <= to and band lt and le. [Aaron Giles]

Decrypted Da Ban Cheng (dbc set in igs_blit.c) [Pierpaolo Prazzoli]

Removed bad dumps from ad2083. [Pierpaolo Prazzoli]

Fixed bug in aviio.c which could cause an infinite loop if attempting to read sound beyond the end of the file. [Aaron Giles]

Added expression validation callback to verify names for CPUs and memory regions. Extended error codes to report incorrect memory spaces, memory names, or memory sizes. Added verification callback to the debugger to validate CPU and memory region names, as well as verifying that a requested address space exists for a given CPU. [Aaron Giles]

Restored previous behavior that allowed popmessage() messages to overlay menus and other UI. [Aaron Giles]

New games added or promoted from NOT_WORKING status
Kyuukyoku no Othello [robiza, Fabio Priuli]
S.O.S. [Alex, Max, Antro]

New clones added
Indianapolis 500 Deluxe [Kris Anks]
Champion Poker (v200G) [Luca Elia]
Megatouch III (9255-20-01 RON) [Brian Troha]
New clone: Crystal Castles (joystick version) [Guru]

New games marked as GAME_NOT_WORKING
Quiz Punch 2 [Luca Elia]
Jingle Bell [Luca Elia]


MAMETesters Bugs Fixed
- 02095: [Misc.] chqflag, chqflagj, -listxml: memory leaks (Aaron Giles)
- 02110: [Side-by-side] All sets in cps3.c: video from a DV cam proves the refresh rate of CPS3 in MAME is wrong (Aaron Giles)
- 02113: [Misc.] xymg: xymg title mispelled (Aaron Giles)
- 01802: [Multisession] cybrcomm, raveracw, raveracj, raveraja, ridgerac, ridgerab, ridgeraj, acedrvrw, victlapw: No sound in games after reloading via the MAME UI (Atari Ace)
- 00233: [Graphics] ikari: The current implementation of the shadow in Ikari Warriors and Victory Road is wrong. (Nicola Salmoria)
- 02059: [Crash/Freeze] panicstr: Game hangs after choosing Stage. (R. Belmont)
- 02027: [Crash/Freeze] lhba: lhba does not work (Luca Elia)
- 02101: [Crash/Freeze] wboy, wboysys2: Access Violation (Nicola Salmoria)
- 00492: [Crash/Freeze] vbowl: In every case, after the 3rd launched ball, the game resets. (Luca Elia)
- 00491: [Crash/Freeze] drgwrld3: When you continue by inserting credit and play, the game crashes. (Luca Elia)
- 02021: [Graphics] cottonbm: Sprite layer offset toward upper-left (R. Belmont)
- 02022: [Crash/Freeze] cottonbm: Fatal Error Crash (R. Belmont)
- 02071: [Crash/Freeze] coolridr: Access Violation (R. Belmont)

Source Changes
Updated the FD1089 decryption algorythm to use the real keys generated by the LCG as found by Andreas Naive. The algorithm is more complex than it should be, but I haven't been able to simplify it more. The keys are still embedded in the source. It would now be reasonable to move them to external files; however, for several games we only have partial keys so the files would need to be BAD_DUMP. [Nicola Salmoria]

Changed ad2083 to load PROM data instead of using hardcoded values. [couriersud]

Updated structure and naming conventions of sound and CPU cores to match core conventions. [Derrick Renaud]

Added discrete sound for Mad Alien. [Derrick Renaud]

Hooked up discrete filtering to SN76477 in Space Chaser. [Derrick Renaud]

Improvements to Lucky74.c driver: [Roberto Fresca, Grull Osgo]
- Reverse engineering of custom IC's 06B49P, 06B53P & 09R81P.
- Mapped the missing 3x SN76489.
- Measured and traced all clocks on the board.
- Measured and fixed the interrupt system.
- Implemented timings/clocks from custom 06B49P.
- Added sound support. All regular game sounds/musics are working.
- Implemented the ADPCM samples system through 09R81P + M5205 emulation.
- Added pinouts and technical notes about custom IC's 06B49P, 06B53P & 09R81P.
- Added flip screen mode.
- Inverted the order of double-up difficult DIP switches.
- Changed 'Key In' to be active LOW instead of HIGH
- Complete memory map and ports scheme.
- Created handlers for USART port and co-processor communication.
- Renamed the sets accordingly.
- Updated all notes.
- Cleaned-up the driver.

Merged memory maps for drivers tigeroad, timelimt, toobin, tumbleb.c, tbowl, thedeep, and thief. Also changed gfx memory region tags in obvious cases. [Andrew Gardner]

Added sprite wrapping to Irem m63 driver. [Tomasz Slanina, Stefan Lindberg]

More FM OPN fixes [Eke, R. Belmont]
- Pass chip type around and restore Jarek's original behavior for YM2203/YM2610
- Always recalculate attack rate in set_ar_ksr, fixes Megadrive/Genesis "Batman & Robin"

Added readmes for Cosmo, Don Den Lover, Beatmania (CHD dumping), Dragon Master, Gals Panic, Fantasia II, Grand Tour, New Dyna Blaster Global Quest, Daytona "To The MAXX" upgrade, Namco System FL, Great Sluggers, Gun Nail, Gun & Frontier, Elevator Action Returns, Battle Bakraid, Koro Koro Quest, Gigas (bootleg), Race Drivin', Hexa, IQ Block, Open Golf Championship, Macross Plus, Malzak, Puzzle Club, Naomi, Puzzle Star, Puckman Pockimon, Raiden 2, Raiden Fighters 2 (single board), Light Bringer, Landmaker, Knuckle Bash 2, Mahjong Fight Club, Vivid Dolls, Tower and Shaft, Star Soldier Vanishing Earth, Stone Ball, Sky Lancer, Squash, Winning Spike, Versus Net Soccer, Undercover Cops, War Gods, Space Fever, Strikers 1945, Rohga, Super Eagle Shot, Treasure Hunt (stv), Tickee Tickats, Great 1000 Miles Rally 2 and Super Monaco GP. [Guru, Andrew Gardner]

Implemented MWR (memory width register) in shanghai to avoid hardcoded 384 value for screen width. [robiza]

Added the Plotting PAL to the Japanese set. Also corrected the PAL ROM name. [Brian Troha]

KO Punch boxer graphics had to be doubled. [Nicola Salmoria]

Fixed NMI on Mad Alien sound CPU. This fixes shot sound and various other sound glitches. Marked madalien and madalina as Imperfect Graphics. They are missing an effect. When you shoot an enemy in the dark, the whole screen lights up. Basically the headlights fill the whole screen. [Guru, Derrick Renaud]

Added reverse engineered PLD images to CPS1 games (A-board to all and B-board and C-board to many). [Corrado Tomaselli, Charles MacDonald]

Rejiggered huffman.c to support multiple interleaving streams and a delta-RLE pre-encoding. Added optimized case for the Y/Cb/Y/Cr video encoding case. Cleaned up the code. [Aaron Giles]

Updated avcomp.c to use the new huffman.c functions. Reworked configuration options to allow for both input and output of naturally aligned data streams. Updated chdman and laserdsc to use the new interfaces. New compression gives an additional 3-7% over previous attempt and compresses the dummy CHDs down significantly. [Aaron Giles]

Some improvements to shanghai video drivers: [robiza]
1) convert framebuffer's ram from 8 bit to 16 bit
2) convert dma command from 8 bit to 16 bit
3) convert gfx command from 8 bit to 16 bit
4) implemented all gfx mode: 1,2,4,8,16 bpp
Now we can use this gfx chip for adp driver that use 4bpp.

updated Alpha 8302 MCU simulation to match newly dumped internal ROM. Added the ROM to Champion Baseball 2. [Nicola Salmoria]

Added video level detection and reporting to ldverify. [Aaron Giles]

Fixed incorrect test in winwork that led to spinning instead of using the nicely allocated events we had on hand. [Aaron Giles]

Forced a sound synchronization on each vsync in the laserdisc playback. This prevents overwriting the tail end of the buffer which was fouling up the MACH 3 audio decoding. [Aaron Giles]

Fixed ROM mapping and added preliminary video emulation to galaxia. [Tomasz Slanina]

Fix coolridr crash with DRC, now hangs waiting for impossible conditions again. [R. Belmont]

Added new flag to menu items: MENU_FLAG_DISABLE, which means the item will be visible but not selectable. [Aaron Giles]

Fixed bug that prevented the cheat engine from working when the debugger was disabled. [Aaron Giles]

Modified xmlfile.c to accept integer values in decimal or hex. The default is decimal. Numbers may be prefixed by '#' for decimal values, or by '$' or '0x' to indicate hexadecimal values. Also added function xml_get_attribute_int_format() to return the format of the attribute, so that it can be later replicated. [Aaron Giles]

Updated cheat parser to preserve the format of attribute values used for cheat parameters and items. [Aaron Giles]

Added support for information-only cheat items, which will be displayed in the menu but which are not selectable and have no action associated with them. Empty information-only items are automatically converted to menu separators. [Aaron Giles]

Moved several include files from mame/ to emu/, as they were included by generic components in emu/ and thus should have no dependencies on the MAME code. [Aaron Giles]

Added new target ldplayer, which is based on MAME but serves as a standalone laserdisc player for CHDs. Right now only the Pioneer LD-V1000 is connected, and limited commands are available. Each player type is a driver, so you specify the player type on the command-line. The driver then opens the first CHD it finds in your ROM path and uses that as the laserdisc. The intention is that you specify the -rompath each time on the command-line, so a typical approach might be:

   ldplayer ldv1000 -rompath j:\mach3

where it will pick up the mach3.chd lurking in your j:\mach3 folder. Several basic commands are supported:

   Space = play/pause
   Alt   = toggle frame display
   Left  = scan forward (when playing) or step forward (when paused)
   Right = scan backward (when playing) or step backward (when paused)
   0-9   = enter numbers for search
   Enter = execute search to frame

[Aaron Giles]

Implemented proper shadow handling in SNK drivers. [Nicola Salmoria]

Corrected rom names with PCB locations for Lady Bug and verified the dump against an original Universal Lady Bug PCB. Added information about the Universal PCB number and prom type. [Brian Troha]

Improved input ports for drivers starting with F->M. In particular: they add AM_READ_PORT whenever suitable, they make inputs fully 32bit where needed, they remove indexed input read handlers from INITs, they replace many read handlers with appropriate CUSTOM_INPUTs. [Fabio Priuli]

Additional input port improvements: [Fabio Priuli]
* added dip switches and locations to go2000 (even if they were partially documented in the source)
* fixed artmagic protection (it used a wrong tag, which probably I added somewhere in 0.125uX)
* changed a lot of input related things in irem m10->m107 irem boards. First of all, moved input definitions from drivers/m92.h to include/iremipt.h and removed completely drivers/m92.h (which only contained those definitions). Added more common inputs to iremipt.h and started to use that file in m62->m107 instead of local #defines. Finally, added diplocations to all the games in m62->m107 which were missing and it implemented coinage mode 2 through dipconditions in the drivers which didn't support it.
* converted most of the games checking avgdvg_done() in inputs to use a CUSTOM_INPUT (defined in video/avgdvg.c)

Fixed the i386 CPU core's BSR implementation for the case where the high bit is set. [Atari Ace]

Added DIP locations to clshroad.c. [RansAckeR]

Collapsed timer callbacks in some cases to avoid duplicating code. In the case of crystal.c, also refactored two DMA handlers and shuffleed the init/reset code around a bit. [Atari Ace]

Cleaned up and grouped the sound chip entries based on sound.mak. [Oliver Stoeneberg]

Fixed sfiii3's title animation and the linear zoom effect that
OopsWare didn't improve properly since 0.122u7. [Joshua Chang]

New games added or promoted from NOT_WORKING status
Da Ban Cheng [Pierpaolo Prazzoli, Luca Elia]
Xing Yen Man Guan [Luca Elia, Wei Mingzhi]
Killer Instinct (SNES bootleg) [Tomasz Slanina]
Final Fight 2 (SNES bootleg) [David Haywood, Tomasz Slanina, Kowal]

New clones added
Dai Makai-Mura (Japan new version) [Corrado Tomaselli]
Defender (White label) [Andy Welburn]
Free Kick (bootleg set 2) [David Haywood]
Zhong Guo Long (China, V010C) [Luca Elia]
Zhong Guo Long? (Hong Kong, V011H) [Luca Elia]
Sonic Blast Man TURBO 2 (SNES bootleg) [Corrado Tomaselli]


MAMETesters Bugs Fixed
- 02105: [Graphics] qbert and clones: Misplaced graphics. (Aaron Giles)
- 02119: [Sound] cischeat, bigrun: no sound (Aaron Giles)
- 02121: [DIP/Input] reactor: input controls and startup tone (Aaron Giles)
- 02116: [Graphics] all sets in cps2.c : corrupted graphics (robiza)
- 01992: [Crash/Freeze] timecrsa, timecris: SubCPU start wait fails test (robiza)
- 02114: [Color/Palette] all sets in eolith.c: colors shifted to blue (Fabio Priuli)
- 02115: [DIP/Input] berlwall, berlwalt: Player 1 inputs not working (Fabio Priuli)

Source Changes
Converted adp to 4bpp rendering. [robiza]

Began implementing 68681 device in skattv. Improved hd63484 core to support some initial graphics. [robiza]

Added correct CRCs for DOA2. [Guru]

Fixed graphics in cps2 games. [robiza]

Updated documentation in paradise.c: [Brian Troha]
- Added PCB layout for Torus & Mad Ball
- Corrected rom names and / or added U locations

Changed at28c16 memory handlers to 8 bits and perform the conversion in the memory mapping. [smf]

Update the t5182.c documentation/pinout. [Lord Nightmare]

Magic10 updates: [Roberto Fresca]
- Simulated the co-processor to pass the initial test.
- All Inputs worked from the scratch.
- Fixed position of tilemap layers.
- Added scroll register preliminary support.
- Fixed Super Pool graphics.

Added save states to 65816 CPU. [R. Belmont]

SH-2 DRC updates: [R. Belmont]
- Moved IRQ handling front-end into recompiled code
- Added TSTM/ANDM/XORM instructions
- Added SH-1 CPU support, including lower precision on MAC.W and locking out SH-2 only instructions

Split out SH-4 non-interpreter-specific stuff to sh4comn.c. [R. Belmont]

Identified compatible timekeeper used by Midway Zeus II. Removed all the timekeeper memory handlers, except for 8 bit & changed the drivers to use the conversion built into the memory system. [smf]

Added new generic laserdisc VIDEO_UPDATE handler to the laserdisc code.
This handler works for both disc-only games and those with overlays.
For disc-only games, the base macro is sufficient. For games with overlays, an additional set of configuration macros are provided:

   MDRV_LASERDISC_OVERLAY - specifies update function, width, height, and bitmap format of the overlay
   MDRV_LASERDISC_OVERLAY_CLIP - specifies the visible area of the overlay bitmap
   MDRV_LASERDISC_OVERLAY_POSITION - specifies default x,y position
   MDRV_LASERDISC_OVERLAY_SCALE - specifies default x,y scale factors

The update function provided to MDRV_LASERDISC_OVERLAY is identical to a normal VIDEO_UPDATE callback, so a standard one can be used. All existing laserdisc drivers have been updated to support this new rendering mechanism, removing much duplicated code. [Aaron Giles]

Added the ability to configure the overlay position and scale parameters at runtime. Added OSD menus to control them. Added logic to save/restore the data in the game's configuration file. [Aaron Giles]

Added new macros MDRV_LASERDISC_SCREEN_ADD_NTSC and _PAL, which defines a standard screen with the correct video timing characteristics and update function for laserdiscs. Updated all drivers to use these macros instead of defining their own screens. [Aaron Giles]

Added DISK_REGIONS to all laserdisc drivers. [Aaron Giles]

Added DISK_IMAGE_READONLY_OPTIONAL to support games (like Cube Quest) where the disk is non-essential to the game's operation. [Aaron Giles]

Fixed bug in identifying the custom sound driver for the laserdisc. [Aaron Giles]

Updated ldverify to identify blank regions of the disc for post-processing. [Aaron Giles]

Fixed rendering 16bpp with alpha using bilinear filters (fixes screenshots of laserdisc games with overlays). [Aaron Giles]

Included support for parsing .gdi files in chdman. [ElSemi]

Added new driver for Cube Quest. This includes CPU cores for the three bitslice processors, as well as laserdisc support for the hacked laserdisc that was used to drive the games. [Philip Bennett, Joe Magiera, Warren Ondras]

Updated cps1 to use proper gfx ROMs (+ PALs) for varthj, and to load correct A-Board PALs for QSound games. [Nicola Salmoria]

Added address decode prom 5e to dkong3/dkong3j. [couriersud]

Reduced YM2612 DAC level relative to FM. This better matches real hardware. [R. Belmont]

Added validity check to ensure that AM_READ_PORT() macros reference valid ports. Fixed several cases where the check failed. [Aaron Giles]

Added new Guru readme for namcos22 driver. [Guru]

Added validity check to ensure that ports referenced by a condition actually exist. Fixed a case where this was violated. [Aaron Giles]

Added DIP locations to dooyong.c. [Guy Hufkens]

Added cheat functions frombcd() and tobcd() to convert numbers to/from BCD format. Changed "Activate" to "Set" in the menus. [Aaron Giles]

A couple of minor cleanups: [Oliver Stoenberg]
- removed obsolete ENABLE_DEBUGGER occurance
- removed more unprintable characters in SH-2 disassembler
- memset() usage cleanups
- removed duplicated TMS5110 entry in sound.mak
- use machine in uigfx.c where it's already available

Removed included "profiler.h" from files that do not use profiling functions. [Christophe Jaillet]

New games added or promoted from NOT_WORKING status
Cube Quest [Philip Bennett, Joe Magiera, Warren Ondras]
WW III [Stefan Lindberg, Couriersud]

New clones added
Red Hawk (Haedong Corp.) [David Haywood, Tirino73 / Mame Italia]
Snow Bros. - Nick & Tom (Dooyong license) [Tirino73 / Mame Italia]
Shogun Warriors (Europe Rev.xx)(Kaneko 1992) [Pythagoras573]

New games marked as GAME_NOT_WORKING
Hot Slot (ver 05.01) [Roberto Fresca]
Magic Colors (ver 1.7a) [Roberto Fresca]
I P M Invader (Incomplete Dump) [unknown dumper, Couriersud]
Astro Wars [MASH]


MAMETesters Bugs Fixed
- 00228: [Graphics] sgladiat: Emulation is missing some enemy sprites that are present on the pcb. (Nicola Salmoria)
- 02147: [Interface] Annoying behaviour of highlighted entries in minimal UI (Aaron Giles)
- 02159: [Crash/Freeze] cubeqst: Cubequest crashes on ATI hardware w/ prescale > 1 (Aaron Giles)
- 02035: [DIP/Input] gwarb: Guerrilla War bootleg doesn't need a rotary joy (Nicola Salmoria)
- 00650: [DIP/Input] stv.c games: P1 and P2 Button 4 are duplicated. (Fabio Priuli)
- 02154: [DIP/Input] ckongg: Coinage settings are wrong. (Fabio Priuli)
- 02143: [Graphics] ozmawars, ozmawar2, solfight, spaceph: Streaks and dashes appear on screen after playing awhile (Fabio Priuli)
- 02142: [Sound] centipdb, magworm, millpac: No Sound (couriersud)
- 02150: [DIP/Input] spacegun: Missing crosshairs (Nicola Salmoria)
- 02144: [DIP/Input] ozmawars, ozmawar2, solfight, spaceph: DIP settings for coinage are incorrect (Fabio Priuli)
- 02126: [Core] corrupt CHDs are reported as missing (Aaron Giles)
- 02133: [Misc.] chindrah: The title of Zhong Guo Long?(Hong Kong, V011H) is Dong Fang Zhi Zhu(Hong Kong, V011H) (Aaron Giles)
- 02139: [Misc.] In audio/system16.c, there is a reference to REGION_SOUND1 (Aaron Giles)
- 02138: [Cheat System] flamegun: Debugger/Cheat System upper case cpu tag of MAIN doesn't work (Aaron Giles)
- 02110: [Side-by-side] All sets in cps3.c: video from a DV cam proves the refresh rate of CPS3 in MAME is wrong (Aaron Giles)
- 02127: [Documentation] xymg: The game name should be Xing Yun Man Guan and "Pin Yin:"should be omitted (Aaron Giles)
- 02136: [Interface] cubeqst: from minimal UI cubeqst requires the optional CHD (Aaron Giles)
- 00869: [Graphics] ikari: The title screen and high score screen do not have a black background, as MAME displays. (Nicola Salmoria)
- 02135: [DIP/Input] rtypej: DIP Switch "Demo Sounds" is wrong (Fabio Priuli)
- 00429: [Gameplay] fastlane: the random function of this doesn't work well and always gives a "no bonus"... (ShimaPong)

Source Changes
Changed DIRECTINPUT & DIRECT3D handling, so they can be overridden by environment variables. [smf]

Readded generic calls to install memory handlers that were in long before 0.126u5 - these are useful on the MESS side for things like the PC driver. [Nathan Woods]

HD63484 improvements: [robiza]
* fixed cpx and cpy when a ptn or a agcpy command is executed
* fixed for PTN command: copy direction and dot color
* first implementation of PAINT command (for now only 4bpp and 8bpp supported and the pattern is not supported)

Cleaned up the discrete code and fixed discrete logging. [Derrick Renaud]

Fixed handling of a number of static variables to avoid multisession issues. [Atari Ace]

Moved FD1089 decryption keys to external files. [Atari Ace]

Changed 68000 IRQ support so that the IRQ lines explicitly simulate a standard demux chip connected to the IRQ lines. This means that the sequence:

      cpunum_set_input_line(5, ASSERT_LINE);
      cpunum_set_input_line(3, ASSERT_LINE);
      cpunum_set_input_line(3, CLEAR_LINE);

now works as expected. This required fixes to several Atari and other drivers. [Olivier Galibert]

Input port cleanup pass over drivers from N-V, leveraging AM_READ_PORT, converting to full 32-bit inputs where suitable, using CUSTOM_PORTs for EEPROM bits, etc. [Fabio Priuli]

Additional input port cleanups in the cps1, deco, pgm, psikyo, nbmj, and jaleco drivers. [Fabio Priuli]

snk.c rewrite: [Nicola Salmoria]
- fixed sprite-sprite priorities
- TNK3, Athena, Fighting Golf, Country Club
    - converted to tilemaps
    - removed hacks
    - proper memory maps
    - screen flip / cocktail mode support
    - DIP locations
    - better implementation of sound CPU communication
    - hooked sound CPU interrupts to YM chips
    - fitegolf hax 1xYM3812, not 2xYM3526
- Ikari Warriors, Victory Road
    - removed ROM patches
    - simulated "hard flags" behaviour
    - proper memory maps
    - fixed ikarijp color test
    - renamed dogosokj to dogosokb and loaded the correct palette PROMs
    - inputs, dip locations, etc.
    - removed NO_COCKTAIL flag since these games don't have a flip screen dip switch
- Guerrilla War, Psycho Soldier, Chopper I, TouchDown Fever / Fighting Soccer
    - tilemaps
    - proper memory map
    - input, dip locations, etc.
- Bermuda Triangle / World Wars
    - removed ROM patches
    - simulated "turbo front" check
    - renamed bermudao->bermudaj
    - clarified the relationship between the four sets
    - made World Wars a main set instead of a clone of Bermuda Triangle
    - tliemaps, proper memory maps, inputs, etc.
    - moved from hal21.c to snk.c
    - removed hacks, fixed bg color
- Gladiator
    - moved from sgladiat.c to snk.c
    - fixed shadows, visible area, tilemaps, inputs, etc.
- Jumping Cross
    - moved from jcross.c to snk.c
    - fixed fg layer and visible area
    - the game seems to be ok now? is there still something wrong?

Added 8303 ROM to the games using it and updated MCU simulation to match the new findings. [Nicola Salmoria]

Removed duplicate buttons in sf2hack. Promoted sf2m2 clone to working. [robiza]

Added helper function devtag_get_device(machine, type, tag) to retrieve the device_config for (type, tag). [couriersud]

Hooked up sound CPU comms in Power Instinct 2. This enables synchronized dancing for the background characters. [ShimaPong]

Fixed bug when writing AVI files with more than one RIFF chunk.
Added missing chdman error messages when extracting to an AVI file. [Aaron Giles]

Derived CPS2/CPS3 video timing based on measurements. These are educated guesses. The logic behind the derivations is shown in the source. [Aaron Giles]

Game-A-Tron gambling hardware updates: [Roberto Fresca]
- Added sound support to "Poker 4-1" and "Pull Tabs".
- Figured out the output ports. Documented each bit accessed.
- Added button lamps support. Created layouts for both games.
- Switched the 8255 port C to be used as output port.
- Adjusted the coin pulse timing.
- Updated technical notes.
- Splitted the driver to driver + video.
- Final clean-up.

Fixed problem that would cause the "Return To Prior Menu" menu item to not stick if one is calling ui_menu_reset() with UI_MENU_RESET_REMEMBER_POSITION, and that menu item is selected. [Nathan Woods]

Added PR-8210 support to the ldplayer. Fixed step forward command on the PR-8210. [Aaron Giles]

Changed Journey and Domino Man to 4-way joysticks. [John Rieman]

Added Discrete Sound for Starship 1. Still need to properly emulate the MC3340. [Derrick Renaud]

Changed some decryptions in igs_blit.c to use program roms loaded byteswapped. Decrypted Mahjong Man Guan Cai Shen, Mahjong Long Hu Zheng Ba 2, Mahjong Shuang Long Qiang Zhu 2, and Mahjong Super Da Man Guan 2. [Pierpaolo Prazzoli]

Added save state for discrete node->output to ensure that input nodes save states. [couriersud]

Added a new generic latch device. Generic emulation of 74LS174/175, 74LS259 and other latches. Apart from providing synched latch operation, these latches can be configured to read their input bitwise from other devices as well and individual bits can be connected to discrete nodes. Please see audio/dkong.c for examples. [couriersud]

dkong & friends: Use new latch device [couriersud]
* adds new latch device where appropriate
* increased accuracy since now all main/sound cpu communications are properly latched
* removed quite some code as a consequence
* minor cosmetic edits

Updated adp memory map. [robiza]

m4510 core fixes: [robiza]
- banking in read and write operations
- jsr and jsrx instruction
- fixed TSY instruction

Optimized ycc_to_rgb conversion code. [couriersud]

Added readme for The Simpsons. [Guru]

zn.c improvements: [smf]
- Improved dip switch emulation, ram hacks to get games booting are no longer required.
- Added gun emulation for judge dredd.
- Fixed judge dredd ide emulation when building with visual studio.
- Mapped primal rage 2 inputs
- Mapped player 3 & 4 inputs for 1 on 1 government, these are now the default with the 6 button inputs only mapped for games that need them.
- Converted AT28C16 to a device.
- Added preliminary support for devices to load/save nvram.

Added some initial logic to boot and run the PR-8210 ROM (i8049) in ldplayer.c. Currently this is disabled behind a compile-time switch. Once this is working, the plan is to incorporate this into the existing PR-8210 emulation, but we're not there yet. [Aaron Giles]

Changed Trivia Quest clocks based on some really old information. [Pierpaolo Prazzoli]

Added new function tilemap_set_pen_data_offset(). While this isn't 'free' as tilemap_set_palette_offset() is (when the offset changes, the pixmap cache needs to be invalidated), it helps removing some redundant code from drivers. Updated snk.c and snk68.c to take advantage of the new function. [Nicola Salmoria]

Significant cleanup/rewrite of the MCS-48 CPU core:
* renamed from i8039 to mcs48
* changed to use data address space for internal RAM
* added internal memory maps for variants with internal RAM/ROM
* added a number of variants from documentation
* removed redundant and unused definitions from header file
* renamed constants and functions to be MCS48* prefixed
* re-verified all opcode behaviors and timing
* changed illegal opcodes to count 1 cycle to avoid infinite loops
* changed EA behavior so that it is a push from the driver instead of a pull on each opcode fetch (this may change further in the future).
* reimplemented IRQ generation and timer behavior according to documentation
* updated all drivers accordingly
* fixed several uses of PULSE_LINE, which no longer works

SH4, Naomi, and Hikaru updates [Samuele Zannoli]
- Fixed SH-4 core to support multiple SH-4s
- Fixed LDCSR instruction
- Fixed SH-4 I/O ports
- Skeleton Hikaru driver with memory maps and both SH-4s
- Fixed JVS/Maple translation so Naomi 2 BIOS runs

Fixed Dip Switches and Inputs for 'jcross' and 'sgladiat'. [stephh]

Changed slider controls into a menu. For now, removed the old direct access mechanism; instead, you must access the sliders via the main menu. While in the menu, you can use the ~ key to turn off the menu display and leave only the bar display, in order to see more of the screen. [Aaron Giles]

Namco NB 1/2 work: [Olivier Galibert]
- Shares the memory with the c75.
- Renames the c75 region to c7x from user4.
- Implements the c75 reset/halt control.
- Implements the irqs more correctly.

Small optimization to memory handling for 68000 core. [Christophe Jaillet]

Fixed input port confusion in the 8080bw driver. Connected AVGDVG status bits via PORT_CUSTOM. [Fabio Priuli]

Updated stepper motor code to use a MAME-style config interface, rather than a load of setting functions. Changed optic functions to use clearly defined start and end points. Added standard layout for Starpoint units used in many machines. Updated all affected drivers. [James Wallace]

Removed useless backslashes lurking throughout the code. [Atari Ace]

Improvements to magic10.c driver: [Roberto Fresca]
- Added Magic's 10 version 16.15
- Remapped all inputs to match other poker games.
- Added a missing input to Magic's 10 games.

New games added or promoted from NOT_WORKING status
Aero Fighters Special (Tiawan) [smf]
Super Football Champ [smf]
Magical Date / Magical Date - dokidoki kokuhaku daisakusen [smf]
Fighters' Impact [smf]
Judge Dredd [smf]

New clones added
Top Skater (USA) [Gerald (COY)]
Ikari Warriors (US) [Corrado Tomaselli]
Magic's 10 (ver. 16.15) [Roberto Fresca]


MAMETesters Bugs Fixed
- 00596: [DIP/Input] pocketrc: The car turns only to the right and there is no way to calibrate controls. (smf)
- 02075: [DIP/Input] mooncrgx: Cabinet DIP setting is duplicated. (MikeDX)
- 02137: [DIP/Input] rockduck: DIP setting for LIVES is incorrect (MikeDX)
- 02179: [DIP/Input] lethalej: lethalej crosshairs backwards (Luigi30, MikeDX)
- 02035: [DIP/Input] gwarb: Guerrilla War bootleg doesn't need a rotary joy (robiza)
- 02174: [Sound] dkongjr and clones + mario and clones + pestplce: Music speed regression (Aaron Giles)
- 02173: [Crash/Freeze] radarscp, radarsc1: Hang or Reset before game start. (Aaron Giles)

Source Changes
Optimized DISCRETE_RCDISC_MODULATED. Added X_TALs to circus. Optimized DISCRETE_RCINTEGRATE and DISCRETE_555_ASTABLE. Optimized DISCRETE_555_ASTABLE_CV and DISCRETE_MIXER. Optimized DISCRETE_555_CC. The 555 and mixer changes also speed up just about every current discrete game. [Derrick Renaud]

Added updated information about Sorcer Striker and moved Fix Eight bootleg PCB layout down by the roms like the other layouts in the driver. [Brian Troha]

Added redumped roms for the Bubble Symphony (bootleg with OKI6295) set. [Brian Troha]

Started removing extraneous enable lines from the discrete modules. Most modules are always enabled anyways. [Derrick Renaud]

Changed MCS-48 core to write p1 and p2 on reset. [couriersud]

dkong/dkongjr: use MB8884 as sound cpu / verified on schematics. [couriersud]

mcs48.c: Use banking to handle ea line: [couriersud]
* Adds MCS48_INTERNAL_ROMBANK define to header
* Drivers which need to control the ea line have to initialize banking for internal/external rom
This is not yet optimal but works as expected with existing drivers and modified mario.c

Changed MCS-48 EA line handling to use an explicit bank for now. [couriersud]

Added EggVenture readme to lethalj.c. [Guru]

Changed sound cpu type in saiyugb1 to I8748. [couriersud]

dkong.c: S2650 based games consolidated [couriersud]
* consolidated memory maps for S2650 based games
* renamed handlers to s2650_*
* joined protection handlers

Added Cruis'n USA and new Raiden DX/2 readme. Cleaned up some documentation in raiden2.c. Renamed "Raiden DX (set 2)" to "Raiden DX (Tuning license)", and renamed ROMs to match the actual PCB. [Guru]

Updated documentation and disk/ROM names in segas24 based on new information. [Brian Troha, T.Fujita]

Removed "game_no_sound" from the 2 Hotrod games (in segas24.c) as all 3 seem to have the same sound capabilities. [Brian Troha]

toaplan2: [Brian Troha]
* removed duplicate info
* changed most speeds to "xtal_xxMHz" define
* corrected Battle Battle Bakraid Z80 clock based on readme info

Fixed Dip Switches and Inputs for 'aso', 'alphamis', 'arian' (same as 'alphamis'), 'tnk3', 'tnk3j' (same as 'tnk3') and 'athena'. [stephh]

Improvements to galaxi driver... [Roberto Fresca]
- Added Magic Joker.
- Fixed the 3rd background offset to Galaxi.
- Remapped inputs to match the standard poker games.

Began the "big IO_MAP merge of 2008". A number of drivers have had their I/O space address maps merged. [Andrew Gardner]

Changed the default bootleg gwar pcb to be joystick only, and removed code duplication. Fixed jcross cabinet dip switches. [Nicola Salmoria]

M377xx:  8-bit I/O port reads no longer cause bogus reads of neighboring ports. [R. Belmont]

Removed unnecessary ARM7 hooks so MRC and MCR disassemble properly. [R. Belmont]

Updated TMS5100 LPC tables based on mathematical analysis of 1st and 2nd derivatives of the values and comparison to the best quality patent image, which nearly always showed which values were in error. Some off-by-one issues may remain, but it is now nearly perfect. Further perfection will require PROMOUT dumping, which is planned. [Lord Nightmare]

snk update: [Nicola Salmoria]
* added another ikari us clone
* renamed ikaria to ikarinc (for Ikari No Continues)
* ikari is the JAMMA board, with conitnues
* ikaria is the non-JAMMA board, with continues
* ikarinc is the non-JAMMA board, without continues
* fixed sound in Jumping Cross
* adjusted some input bits in several games
* merged hal21.c into snk.c
* removed hacks and kludges
* fixed colors (I think--though some sprites do look weird)
* fixed emulation of the "SNK Wave" custom sound used by Marvin's Maze and Vanguard II and made it into a proper sound core
* fixed palette decoding of early SNK games (from marvins to athena + fitegolf). The least significan bits were assigned incorrectly.
* merged marvins.c into snk.c, with all resulting fixes (removed hacks, correct shadows, scroll offsets etc)

Replaced aso ROMs (which were possibly from a bootleg) with split ones that are definitely from an original. Renamed ROMs across sets accordingly. [Nicola Salmoria]

Converted timekeeper to a device, all default contents are loaded from disk. slapshot & opwolf3 read/write memory map have been merged. [smf]

Shadow Force changes: [Pierpaolo Prazzoli]
- Added irqs ack
- Implemented raster irq
- Fixed coin2 and service input not working during the game
- Added watchdog
- Fixed visible area
- Added video enable and irqs enable flags

Added decryption of 39in1. Doesn't get far due to very odd RAM check routine. [Andreas Naive]

Changed all MCS-48 chips to have a 12-bit address space, regardless of internal ROM size. [Aaron Giles]

Enabled internal COP410 program map. [Curt Coder]

Fixed Dip Switches and Inputs for 'hal21', 'hal21j' (same as 'hal'), 'fitegolf', 'fitegol2' (same as 'fitegolf') and 'countryc'. [stephh]

Changed refreshspeed target to 0.25Hz below rate provided, in order to guarantee that inexact timings do not lead to sound stuttering. [Aaron Giles]

Added Fist of the North Star and (partial) Demolish Fist sets (Atomiswave) and decryption. [Andreas Naive]

Added PCB info for Hard Yardage & earlier World Class Bowling. Corrected a few rom names. [Brian Troha]

Split core laserdisc functionality into separate file ldcore.c. Each player now gets its own source file, along with new hooks which enable more precise control over the behavior. Updated the PR-8210 and LD-V1000 implementations to the new spec. Other players will come online shortly. [Aaron Giles]

Changed laserdisc scan behavior so that it requires a constant stream of signals to continue scanning. Updated ldplayer accordingly. [Aaron Giles]

Updated debugger to pass running_machine around where appropriate. Added running_machine to several devices which really should eventually be converted into proper devices. [Oliver Stoenberg]

Concluded input port cleanups for drivers W->Z. Changed Primal Rage start buttons into input buttons. Removed unused protection bit in Driver's Edge. Introduced a new PORT_CUSTOM which returns a tagged input that can be used to route bits from one port into another. [Fabio Priuli]

Added the missing SHA1 checksums to the atrowar set. [Oliver Stoenberg]

Added basic implementation of the "update ended" interrupt flag to the MC146818. [Barry Rodewald]

New games added or promoted from NOT_WORKING status
Video Poker [Grull Osgo, Roberto Fresca]
Black Jack [Grull Osgo, Roberto Fresca]
Video Dado [Grull Osgo, Roberto Fresca]
Video Cordoba [Grull Osgo, Roberto Fresca]
Magic Joker (v1.25.10.2000) [Roberto Fresca]

New clones added
Egg Venture (A.L. Release) [Guru]
Ikari Warriors (US) [Nicola Salmoria]
Double Dragon (bootleg) [Sonikos]

New games marked as GAME_NOT_WORKING
Mad Zoo [Roberto Fresca]


MAMETesters Bugs Fixed
- 00614: [DIP/Input] sspeedr: The pedal controls don't work at all, in game or in the test. (Mike Green)
- 02198: [DIP/Input] stocker: Coinage Dip Switch has incorrect configuration (Mike Green)
- 02206: [Sound] cubeqst: Cubequest now missing narrator and music during attract mode. (Aaron Giles)
- 02166: [Cheat System] garou and clones: Work RAM Error (Aaron Giles)
- 02200: [Cheat System] galaga: Locks up (Aaron Giles)
- 02189: [Cheat System] gradius4: C'ant pass Setup (Aaron Giles)
- 02214: [Cheat System] rchase: Player's lorry doesn't move at all. (Aaron Giles)
- 02177: [Cheat System] All lethal.c sets: T 4 EEPROM error(BAD) (Aaron Giles)
- 02188: [Cheat System] Many sets in neodrvr.c: Freeze on start up with a Work RAM Error. (Aaron Giles)
- 02207: [Crash/Freeze] marioj, marioo: Access Violation (Aaron Giles)
- 02204: [Crash/Freeze] masao: Memory bank error (Aaron Giles)
- 02202: [Crash/Freeze] Many Sets in segas16a.c: Access Violation (Aaron Giles)
- 02222: [Crash/Freeze] monsterb, monster2: Monster Bash crashes on launch. (Aaron Giles)
- 02205: [Graphics] jackal, jackalj, topgunbl, topgunr: Enemy tank colors are wrong (Nicola Salmoria)
- 02201: [Compiling] 64 bit compiling error (Aaron Giles)
- 01689: [Graphics] riskchal, gussun: Missing raster effect (Pierpaolo Prazzoli)

Source Changes
Implemented m90 playfield 1 and playfield 2 y-offset table. This fixes, at least, the water effect in riskchal and the text fading effect in the matchit2 demo. [Pierpaolo Prazzoli, Tomasz Slanina]

Started changing naomi gdrom sets to load the CHDs. [David Haywood]

Additional documentation for Egg Venture & Lethal Justice: [Brian Troha]
- Added JAMMA pinout
- Gun Connector pinout
- Sound & Amp information

snk.c coin inputs seem to be active high (except for jcross) [Nicola Salmoria]

Fixed bg tile banking in Canvas Croquis. Removed snkwave since it doesn't seem to be used and might not be present on the pcb at all. General driver cleanup, bringing it in line with snk.c but not merging it since somthing doesn't quite fit. [Nicola Salmoria]

Merged memory maps in munchmo.c. [Nicola Salmoria]

Changes to magic10 driver: [Roberto Fresca]
- Better structure and organization.
- Added Super Gran Safari.
- Added improved lamps layout to Super Gran Safari and Magic's 10.

Added new device interface selector: DEVINFO_PTR_ROM_REGION. This allows a device to provide a set of ROM regions to be loaded along with the game ROMs. It is expected that most regions defined for devices will use the ROMREGION_LOADBYNAME flag to enable the ROMs to live in a central location. [Aaron Giles]

Added new device interface selector: DEVINFO_PTR_MACHINE_CONFIG. This allows a device to specify a partial machine driver which is appended to the end of the machine driver for any game using that device. The intention for this is to allow devices which have their own BIOS logic to specify CPUs and other characteristics common to all systems using the device. [Aaron Giles]

Added new ROMREGION flag: ROMREGION_LOADBYNAME, which means that if the ROMs in that region are not found in the usual driver files, then the name of the region will be used as a driver filename for loading. [Aaron Giles]

Extended the ldcore interface structure to allow each player type to provide its own ROM region and partial machine driver. [Aaron Giles]

Moved preliminary PR-8210 emulation code from ldplayer.c to ldpr8210.c. It is currently disabled behind the EMULATE_PR8210_ROM compile time flag. [Aaron Giles]

Added built-in "Off" states to the cheats with parameters. This is also the default state, obviating the need for a default value. Removed the "default" attribute as a result. Switching from "Off" to another state first executes the "on" script followed by the "change" script. Switching to "Off" from another state executes the "off" script. While not off, the "run" script is executed each frame. [Aaron Giles]

Moved reset to default behavior in the cheat menu to IPT_UI_CLEAR. [Aaron Giles]

Moved all naomi-gd keys to external. [David Haywood]

Cleaned up shadfrce.c input port mapping. [David Haywood]

Merged I/O maps in a number of drivers. [Andrew Gardner]

Fixed sprites in imago [Pierpaolo Prazzoli, Tomasz Slanina]

Added concept of rom sources to the rom loader. Updated auditing, CLI utilities, validity checks, and ROM loading to use these new functions so that device-specific ROMs are handled properly. [Aaron Giles]

Added a core_fopen_ram_copy() call, similar to core_fopen_ram() except that it copies the memory. [Nathan Woods]

Added redumped welltris program ROMs. [Dazzer]

CPUs, sound chips, devices, and ROM-regions which are specified by devices now have their tags auto-prefixed with the device's tag. This allows for multiple instances to be present. For example, the PR-8210 laserdisc player has a CPU with a tag of "pr8210". When it is included as a device by a driver, the driver may tag the device "laserdisc". The resulting final CPU tag name will be "laserdisc:pr8210". Also updated the debugger expression engine to support names with embedded colons. [Aaron Giles]

Added checks to ensure that tags used for CPUs, sound chips, regions, and devices follow some basic rules: they should be less than 15 characters long, be all lower-case, and only contain letters, numbers, underscores, or dots (no spaces). This is to ensure that they can be used properly in debugger expressions and don't get too long or unwieldy to type (even 15 chars is rather long). Fixed up all tags in the system that failed these checks. [Aaron Giles]

Space Win changes: [Roberto Fresca]
- Some corrections to the memory map.
- Added proper working RAM.
- Added Dallas DS1220Y NVRAM.
- Added output port.
- Added lamps layout.
- Added complete inputs.
- Changed description to "Scacco Matto / Space Win" since the default game is Scacco Matto.
- Fixed memory maps.
- Documented Super Derby outputs.
- Added lamps support + layout to Super Derby.
- Fixed the phisical RAM size to all games.
- Fixed the wrong NVRAM size to spacewin (16Kb instead of 16KB).
- Added proper NVRAM to sderby and pmroulet.
- Added the missing 3rd input to pmroulet (needed for 3-button mode).
- Cleaned up the driver.
You must enter the service mode and change graphics in order to switch the game.

Changed DEVICE_START functions to return an error code. Currently this is either DEVICE_START_OK or DEVICE_START_MISSING_DEPENDENCY. The latter should be returned by a device if there is another device it depends on which hasn't been started yet. Added new flag in the device interface to indicate whether a device has been started. [Aaron Giles]

Changed laserdisc interface to explicitly specify the screen and sound devices it should route to. Drivers no longer have to manually call laserdisc_vsync(). Instead, the laserdisc code connects up to the routed screen device and works based on that screen's VBLANK timing. Removed all existing calls to laserdisc_vsync(). [Aaron Giles]

Changed laserdisc behavior so that it completes the previous video read and initiates the next read at the end of VBLANK instead of the beginning. This gives player logic time during VBLANK to alter the slider position prior to fetching the next frame. [Aaron Giles]

Added new laserdisc callback for vsync begin and changed the update callback to be called at the end of VBLANK. Also added functions to set the slider speed, advance the slider, and directly control the video/audio squelch. In addition, there is a new status function to get the slider position in general terms. [Aaron Giles]

Added parameter to the VBLANK callbacks supported in emu/video.c. Updated all callers to provide a callback value. [Aaron Giles]

Fixed bug that would cause watchpoints to trigger if you had a memory window open to the watchpoint address. [Aaron Giles]

Further updates to the PR-8210 ROM simulation. Still not quite there but the system is much better understood now. Added layout to the PR-8210 which displays the state of the front-panel LEDs. [Aaron Giles]

Clickable input support. Layouts can now have items which when clicked will alter the state of an input port. This is done via the new attributes 'inputtag' and 'inputmask', which specify an input port tag and mask. When the given element is clicked, the state of the element changes to 1 and the given bits in the input port are set the same as if you had pressed the equivalent switch. [Nathan Woods]

Started adding naomi2 sets. [David Haywood]

Added sprites buffering to Limenko driver and removed imperfect video flag from spotty. [Pierpaolo Prazzoli]

Improvements to Croupier (Playmark Roulette): [Roberto Fresca]
- Simulated the MCU communication/protection. The game seems to work properly, but is hard to win. I conserved the game flags till we have the MCU decapped, and emulated properly.
- Added full sound support.
- Added lamps support + layout.

Fixed memory handling of internal banks. They should be LOWER priority than the driver's memory maps. Reverted recent changes to MCS-48 core that were very hacky and which crashed many games. You can now properly override the internal memory map and do your own banking. [Aaron Giles]

8080/8085 CPU core updates: [Miodrag Milanovic]
1. ANA/ANI instruction, HF flag was not set right because error in calculation of it (missing brackets)
2. 8080 have NF flag always set (it is not used flag but bit is always set)
3. Added support for status output lines.

Moved more static data into const and added some more explicit initialization. [Atari Ace]

Added LSI BIOS to the Atari System 1 driver. Made the System 1 BIOS a proper BIOS. Removed restriction that BIOS-related ROMs must immediately follow the BIOS definition. [Kevin Eshbach, Aaron Giles]

cave.c changes: [Kevin Eshbach]
* Changed the hardcoded MHz values in the Cave driver to the XTAL equivalents
* Updated the Cave driver for the game Guwange with gals that need to be dumped

Jail Break changes: [Kevin Eshbach]
* Updated the Jail Break driver with the dip locations
* Corrected the Jail Break driver sound chip from a SN76496 to a SN76489
* Corrected the Jail Break rom names
* Redumped the Jail Break VLM rom dump

Super Basketball changes: [Kevin Eshbach]
* Corrected the Super Basketball Revision H rom dump
* Updated the Super Basketball driver with the dip locations
* Corrected the Super Basketball VLM XTAL
* Corrected the Super Basketball parent/child relationships by making the Revision H the parent
* Turned on save state support for the Super Basketball driver

Updated the Sega System 1 driver with more board information on the Choplifter bootleg and updated the placeholders for the pals that need to be dumped. [Kevin Eshbach]

Updated the WWF Wrestlefest driver rom names. Added save state support to the WWF Wrestlefest driver. [Kevin Eshbach]

C352 cleanup: Removed an unused volume table dating from before the volume was (correctly) implemented as linear. [Olivier Galibert]

Added memory checking and error logic to ledutil.c. [Christophe Jaillet]

Added running_machine * to some more locations in the system. Updated drivers accordingly. [Oliver Stoeneberg]

New games added or promoted from NOT_WORKING status
Super Gran Safari [Roberto Fresca]
Scacco Matto / Space Win [David Haywood, Roberto Fresca]

New clones added
The Great Ragtime Show (Japan v1.3, 92.11.26) [Stefan Lindberg]
Imago (cocktail set) [Chris Hardy]
The NewZealand Story (Japan, newer) [Tirino73]
Marble Madness (set 5 - LSI Cartridge) [Kevin Eshbach]


MAMETesters Bugs Fixed
- 02210: [Misc.] fieldday, undoukai: Game doesn't start. Source typo in 0.126u2. (MASH)
- 02240: [Crash/Freeze] All Sets in namcos12.c: Game Freeze (Aaron Giles)
- 02241: [Sound] kncljoe, kncljoea: Missing AY-3-8910A sound effects. (Aaron Giles)
- 02248: [Sound] All sets in m58.c: No sound in game (Aaron Giles)
- 02239: [Sound] stunrun: No OKI6295 sound. (Aaron Giles)
- 02249: [Crash/Freeze] All Sets in zn.c: Game Hangs (Aaron Giles)
- 02233: [Speed] chboxing, chwrestl, dokidoki: Game Speed/Timing issue (Curt Coder)
- 01897: [Original Reference] birdtry: DIP switch settings from manual. (Tafoid)
- 02242: [Gameplay] ikarijp, ikarijpb: Test screen now required to be cycled to enter game. (Nicola Salmoria)

Source Changes
Added redump of indytemc. There's sprite/playfield flipping issues, hence GAME_IMPERFECT_GRAPHICS. [Dazzer]

Improvements to Funworld driver: [Roberto Fresca]
- Added new clone: Pool 10 (italian, set 4).
- Improved lamps layout for all games.
- Added Pool 10 pinout and DIP switches info.
- Updated technical notes.

Continued I/O map merging. [Andrew Gardner]

Changed Namco NB-x to use real C75 BIOS, read controls the real hardware way. [R. Belmont]

Added lamps support + layout to magjoker and galaxi. Magjoker has a good lamps sequence in the attract. [Roberto Fresca]

Fixed crash when hitting watchpoints on static handlers. [Aaron Giles]

Changed Namco NA-2 to use real C70 BIOS. Removed sound and input simulation code. Changed the NA-1/2 MCU type to M37702. [Phil Bennett]

Added correct colour PROMS to arkatour. [Dazzer]

Fixed inputs in Main Event (SNK) based on the info in http://otoya.sheep-cloud.net/dipsw/ma-mo/mainevent.html. [9IEM1smI0]

Jaleco 'Bomb's Away' Improvements [aDG4W+qp0]

Fixed refresh rate and interrupts in sg1000a driver, added 8255PPI and coin counter. [Curt Coder]

Changed requirements for laserdisc CHDs to require a new chunk of metadata with pre-decoded frame information. Modified chdman to automatically produce this for CHDs that are of the appropriate parameters. To fix up existing CHDs, use chdman -fixavdata on the CHD. [Aaron Giles]

Modified the laserdisc core to leverage the pre-decoded frame metadata, which is now required. This improves seek times when searching and allows the player-specific emulation access to the VBI data as soon as it would really be available. Changed update callback timing to fire just before the first line of VBI data would be read; at that point, the frame selection is assumed to be committed. [Aaron Giles]

Converted PR-8210 emulation over to using the actual MCU from the laserdisc player. This MCU controls low-level functions such as slider position and laser on/off, and receives decoded vertical blanking data in order to make decisions. Removed old HLE behavior. Note that the overlay text is displayed via the UI; this is temporary and will be fixed shortly. [Aaron Giles]

Converted Simutrek-hacked laserdisc emulation to using the actual MCU from the game, which in turn hands off commands to the PR-8210 MCU. This is still not 100% but is pretty close at this point and achieves the correct behaviors in most cases. [Aaron Giles]

Fixed Cube Quest overlay scaling to cover the whole screen. [Aaron Giles]

Changed laserdisc video parameters to position the screen area at the bottom rather than the top, since this corresponds more closely to standard line numbering. [Aaron Giles]

Extended the vbiparse code to support pack/unpack, and to more fully document all the meanings of the VBI codes. [Aaron Giles]

Updated ldplayer to support slow/fast forward movement, frame/chapter display, and separate controls for scanning/stepping. [Aaron Giles]

Added new built-in variable "frame" to the debugger. [Aaron Giles]

Fixed device-based ROM loading to support loading ROMs from the game's ZIP as well. [Aaron Giles]

CPU-internal regions now have priority again. Fixed mario by installing a handler in the SOUND_START function. [Aaron Giles]

Improved DIP switch handling and added DIP locations in epos.c. [Tafoid]

Added DIP locations to the dec0 driver. [Tafoid]

Separate NBA Jam TE from NBA Jam as they are not technically clones of each other. [Atari Ace]

Verified cpu clocks and corrected/verified OKI M6295 frequencies and pin for Shadow Force. [Corrado Tomaselli]

New games added or promoted from NOT_WORKING status
Fire Fox (still needs proper laserdisc support) [smf]

New clones added
Tengai (World) [Jet Black / Tormod]
Pool 10 (italian, set 4) [Roberto Fresca]
Hot Mind (adjustable prize) [David Haywood, Roberto Fresca]
Marvel Vs. Capcom: Clash of Super Heroes (Euro 980123) [bonky_0013]
Three Wonders (hack?) [EMMA team]

New games marked as GAME_NOT_WORKING
Funny Land de Luxe [Tomasz Slanina]


MAMETesters Bugs Fixed
- 01187: [Graphics] gseeker: In attract mode, there is a priority error where a stealth bomber is coming out of a hanger. (couriersud)
- 02381: [DIP/Input] peke1012: Lightpen not mapped in option (Fabio Priuli)
- 02191: [Sound] wseries, basebal2, dblplay, strkzone: Speech quality regression (couriersud)
- 02322: [Core] All Drivers using 8080 CPU: 8080 Core problem with score/credit counts and other variables (Miodrag Milanovic)
- 02254: [DIP/Input] All Sets in namcond1.c: Unable to coin/start game properly (Fabio Priuli)
- 02156: [Color/Palette] naughtyb: Wrong RESNET calculation of the green component. (couriersud)
- 02280: [Misc.] any set with multiple CPUs: Disassembler freezes when doing a Run on any CPU other than CPU 0 (Aaron Giles)
- 02259: [Misc.] tinklpit: Debug messages displayed on exit (Phil Bennett)
- 02258: [Crash/Freeze] srmp6: Game displays black screen, plays two NiLe samples every three seconds over and over again (Fabio Priuli)

Source Changes
Added newest Naomi 2 BIOS. [Brian Troha]

Correct NeoGeo M1 decryption for all CMC50 sets [Andreas Naive]

Rewrite of the Motorola DSP56k disassembler. [Andrew Gardner]
* Removes arbitrary opcode groupings in favor of flat decode model.
* Fixes a number of small issues with unknown opcodes.
* Added the final ALU parallel move ops.
* Fixes branch relative offset decoding.

NB1/NB2: fix default dips, added diplocations, used latest idioms.  
IMPORTANT: you must delete all cfg and nv files for these games! [R. Belmont]

Removed sprite to tile priority in firefox, it doesn't exist. [smf]

System 23 updates: [R. Belmont]
* Fixed text layer to show (colors are wrong)
* Added very preliminary support for Gorgon h/w
* Added Rapid River readme
* Adjusted Gorgon h/w MIPS clock to 133 MHz based on readme
* Renamed GP500 to 500GP, which is it's correct name
* Fixed sound CPU shared RAM. Comms not yet correct.

65816/377xx: fix disassembly of BRL [ShimaPong]

Fixed AF calculation in mcs48. [Aaron Giles]

Fixed Leland ay8910/12 output combining. [couriersud]

rescale_notifier() changed to always allow rescaling for screenless drivers. [Wilbert Pol]

Added 22VP931 emulation, which is mostly working. Communication works fine and basic searching/playback/skipping is functional. Still a bit glitchy. [Aaron Giles]

Firefox improvements: [Aaron Giles]
- memory map is complete from schematics
- gutted laserdisc hacks in favor of actual laserdisc implementation
- fixed all CPU and sound clocks
- removed need for deprecat.h

Added generic timer devices, which simply allocate a timer but don't prime it. This is the preferred method for allocating timers, and may eventually be the only mechanism for doing so in the future. [Aaron Giles]

Fixed copy + paste error in geebeeg romset. [David Haywood]

Move dkong memory_region calls into initialization routines. [couriersud]

Fixed -listroms to know about device-specific ROMs. [Aaron Giles]

Another pass to make static functions static, almost entirely affecting code added in the last few months to MAME.  The fixes are the usual lot, changing enum definitions so they aren't declared, decorating dead code/declarations with #if...#endif, and of course, adding static where appropriate.  In addition, I fixed a bunch of UNUSED_FUNCTON symbols to be spelled correctly (I didn't introduce this). [Atari Ace]

More system1.c input cleanups. [Sonikos]

Naomi update: [Samuele Zannoli]
* now show the contents of the framebuffer if the 3d accelerator is not used so that now the atomiswave logo and messages are shown (if you wait enough).
* removed a maple bug (no more strange messages in cvs2gd).
* improveed documentation of the communication registers with the dimm board
* if DEBUG_VERTICES is defined as 1 the vertices sent to the tile accelerator are collected and then drawn connected by a segment to give a wireframe-like view of the scene.

Minor optimization to fillbitmap when non-zero fills are done. [Christophe Jaillet]

Moved memory_region() call (which is slow) out of core sprite loop in the neogeo renderer, giving a dramatic speed boost. [Christophe Jaillet]

New games added or promoted from NOT_WORKING status
TX-1 (Atari/Namco/Taito license) [Phil Bennett, Guru]
Chanbara [Tomasz Slanina, David Haywood]
Paradise Deluxe 2 [Chris Hardy]

New games marked as GAME_NOT_WORKING
Rapid River (RD3 Ver. C) [Guru, R. Belmont]
Time Crisis 2 (TSS2 Ver. B) [Guru]
GameCristal (version 2.613) [ANY, f205v]


MAMETesters Bugs Fixed
- 02323: [DIP/Input] geebeeb: Unable to coin - Always coin lockout (stephh)
- 01090: [Crash/Freeze] invadpt2, sicv: Watchdog reset. (couriersud)
- 02440: [Crash/Freeze] abcop, gprider1, rachero: abcop just shows a black flickering screen, rachero gives an error and crashes on exit (couriersud)
- 02442: [Core] -aviwrite produces faulty files (Aaron Giles)
- 02441: [Crash/Freeze] rdft22kc: rdft22kc just shows a black screen and fails to boot (couriersud)
- 02194: [Misc.] All Sets in othunder.c: Black screen, game does not start (couriersud)
- 02410: [Misc.] -aviwrite: files over 2 gigs sometimes get cut off (Aaron Giles)
- 02024: [Color/Palette] pbobble3, pbobble4, ringrage and clones: Color Regression (Nicola Salmoria)

Source Changes
NeoGeo Update:  [Johnboy]
* Updated Neo-Geo game pcb infos
* 2020bba: Marked MVS and AES version
* sonicwi2: Added correct sized v2
* kof95 / kof95a:
        . Renamed kof95 to kof95h
        . Renamed p1 to correct chip label
        . Added note
        . Renamed kof95a to kof95
        . Renamed p1
* samsho3 / samsho3a:
        . Renamed samsho3a to samsho3
        . Renamed samsho3 to samsho3h
        . Renamed p1 to correct chip label
        . Marked AES version
* kof98 / kof98n:
        . Renamed m1 in kof98 to correct chip label
        . Renamed m1 in kof98n to correct chip label
          (kof98n should be latest revision, cart had very high SN 1xx.xxx)
* kof97: Marked MVS version
* samsho5 / samsho5h:
        . Correct text layer size
        . Marked samsho5h AES version
* neogeo:
        . Updated system set to what is found on NEO-MVH MV1FS
        . Added note
* ms5pcb:
        . Hooked up bios dip
        . Renamed bios to correct chip label
        . Renamed p1 / p2 to correct chip label, marked NO_DUMP
        . Added note

Added pen_mask tile attribute to the tilemap system. Implemented dynamic tile & sprite bit depth in the Taito F3 driver. [Nicola Salmoria]

Changed MAKE_RGB macro to set the alpha to 255 instead of 0. Updated palette.c to preserve the alpha when transforming palette values. These changes should be transparent to almost all drivers and rendering (ha-ha), but there may be an occasional instance where a driver relied on the alpha being 0 in the system palette. This also means that the palette_set_color() function preserves any alpha value that is set. [Aaron Giles]

Changed Firefox to RGB32 to allow for mid-screen palette changes. Because of the above change, the hacky alpha manipulation that was previously required is no longer necessary; the alpha is set directly in the palette entry. [Aaron Giles]

Removed render_container_set_palette_alpha() hack. Now the alpha value can be set directly in the palette entry and will be respected for laserdisc overlays. [Aaron Giles]

Minor NSS/SNES cleanups [Fabio Priuli]

Updated warpwarp.c driver: [stephh]
- reworked 'geebee', 'navarone' and 'warpwarp' INPUT_PORTS definitions by using conditional Dip Switches.
- added 'geebeeb' INPUT_PORTS definition (this game has specific "Replay" settings).

Removed unneeded keys: [stephh]
  - UI_ON_SCREEN_DISPLAY (there is now a "Slider Controls" menu)
  - UI_ADD_CHEAT, UI_DELETE_CHEAT, UI_SAVE_CHEAT, UI_WATCH_VALUE, UI_EDIT_CHEAT, UI_RELOAD_CHEAT (these keys belonged to the old cheat engine)

Converted the z80pio implementation into a device. [Wilbert Pol]

Verified watchdog behaviour in schematics for 8080bw.c. [couriersud]

ldverify improvements: [Aaron Giles]
- uses back-end decoding for CHDs directly to bitmaps
- changed min/max detection to only check 0/255
- fixed off-by-one bug in min/max computation
- separated white code detection from frame number detection
- track cadence with frame numbers as well as white codes
- use vbiparse.h constants where appropriate

Plumbed machine parameters through the renderer. Removed need for deprecat.h. [Aaron Giles]

Changed render_texture_set_bitmap() to accept a palette object instead of a palette index. The renderer remains optimized for the system palette but will work if objects have their own palette as well. [Aaron Giles]

Changed renderer to permit palettes for RGB and YUY textures. If specified, these palettes specify a 32-entry (RGB15) or 256-entry (others) lookup for applying additional brightness/contrast/gamma on a per-texture basis. [Aaron Giles]

Removed rescale notification. It never really worked that well and violated proper layering. [Aaron Giles]

Renamed palette_set_brightness() to palette_set_pen_contrast() for clarity. [Aaron Giles]

Changed palette objects to support global brightness/contrast/gamma in addition to per-group and per-entry controls. [Aaron Giles]

Simplified core deinterlacing logic based on availability of pre-decoded VBI data. Added plumbing for allowing for overall brightness/contrast/gamma corrections on laserdisc video. Fixed bug when combining brightness values in the palette logic. [Aaron Giles]

Converted Z80 CTC to a proper device. Updated all drivers. Added new item to the interface which is the tag of a CPU to take the base clock from. [Aaron Giles]

Changed Z80 daisy chain interface to simply be a list of devices in the chain. Interrupt callback functions are now fetched via the standard device interface and referenced by the daisy chain code. [Aaron Giles]

Changed Z80 PIO interrupt callback to pass a device instead of the machine. All device callbacks should provide the device. [Aaron Giles]

merit.c: [couriersud]
* Implemented palette & colour decoding from crt 200 schematics.
* Hooked up 6845
* Hooked up lscnblk line
* Fixed Phraze Craze gfx rom ordering
* Clocks from schematics
* Ram palette moved to static var. This should not be in RAM.
* Added save state support

expro02.c: [DITraI4D0]
- fixed DIPSW
- added graphics decode routine (probably it can be simpler)

video/kaneko16.c [DITraI4D0]
- tilemap scroll position is different for expro02, so added new function (is it better to fix current one?)

Converted Z80 SIO to device. Updated drivers accordingly. [Aaron Giles]

Added additional Motorola DSP56k reset behavior. [Andrew Gardner]

Added mechanism to generically specify input port tags in place of machine/device handlers. Unfortunately, the implementation relies on sentinel values to distinguish a port tag versus a pointer to function code. However, since this is a very common situation, it will hopefully be worth the slight grossness. New macros are defined in inptport.h:

   DEVICE8_PORT(name) - use this to specify the name of a port to read wherever a read8_device_func would normally be used

   MACHINE8_PORT(name) - same as DEVICE8_PORT except it can be used wherever a read8_machine_func would normally be used

   IS_HANDLER_PORT(ptr) - accepts a read8_device_func or read8_machine_func and determines if it is an actual function or a reference to a port; intended for use by devices that accept DEVICE8_PORT-style functions

   CALL_DEVICE8_READ(ptr,device,offset) - either calls through the given read8_device_func, or calls input_port_read with the appropriate tag, depending on the result of IS_HANDLER_PORT; intended for use by devices that accept DEVICE8_PORT-style functions

   CALL_MACHINE8_READ(ptr,machine,offset) - same as CALL_DEVICE8_READ except for read8_machine_func

Note that in order for these to be useful, the consumer of the function pointer must be enhanced to use the CALL_* macros above instead of directly calling through the function. So far, only the 8255 PPI is set up to do this, as part of the cleanup below. Also note that the sentinel value is currently 4 consecutive 0 bytes; this may need to change in the future, in either length or value, so it is important to stick to the macros above. [Aaron Giles]

8255 PPI interface cleanup: [Aaron Giles]
- added MDRV_PPI8255_ADD, MDRV_PPI8255_RECONFIG and MDRV_PPI8255_REMOVE macros; updated all drivers to use them
- changed callbacks to device read/write handlers intead of machine read/write handlers; updated all drivers accordingly
- normalized function and variable names to be lower_under
- removed a number of redundant interfaces from the galaxian/scamble line of games

LD-V1000: added some (compile-time removed) information about the ROM and memory map [Aaron Giles]

Changed 68000 interrupts to only trigger during execution. This means that multiple changes without any execution will be seen as atomic. It also means that PULSE_LINE no longer works for signalling IRQs. [Aaron Giles]

Added checks in the debug build to catch people who try to use PULSE_LINE for non-NMI and non-RESET input lines on CPUs that no longer support direct interrupt generation. Over time expect this list to increase. [Aaron Giles]

Fixed edge case bug in the Cube Quest line CPU involving adding with carry. [Matt Ownby]

Fixed sbasketb DIP switch reading. [Fabio Priuli]

Continued work on System1 inputs: [Sonikos]
- Added dips location in all game
- Moved in generic Cabinet dip for eliminate the redundancy
- Better implementation of generic input

Changed the NSS/SNES loading code to support more cart/memory layouts and generally be more in line with the MESS way of handling SNES cartridges. [Fabio Priuli]

New games added or promoted from NOT_WORKING status
Gals Panic (US, EXPRO-02 PCB)
Pit Boss [Couriersud]

New clones added
20 Year Reunion (V1.04) [Johan Samuelsson]
Capcom Sports Club (EURO 971017) [Corrado Tomaselli]


MAMETesters Bugs Fixed
- 02482: [Graphics] bubblemj: Demonstration screen trouble (Couriersud)
- 02483: [Graphics] gunlock, rayforcj: Title screen trouble (Couriersud)
- 02498: [Graphics] lightbr: Trouble of title screen (Couriersud)
- 02221: [Sound] blzntrnd: Sound is almost completely broken (Aaron Giles)
- 02467: [Crash/Freeze] qsww: Game Crashes (Olivier Galibert)
- 02479: [Misc.] Various: Memory leak (Aaron Giles)
- 02266: [Multisession] tceptor: Thunder Ceptor crashes out when run as the second game. (Aaron Giles)
- 02439: [Multisession] tx1: TX1 quits out on second launch. (Aaron Giles)
- 02488: [Multisession] All sets with using 2+ monitors: Crash to desktop on second play. (Aaron Giles)
- 02321: [Crash/Freeze] mpu4utst, mpu4tst2, mpu4met0: Screenless systems crash due to problems in some display core functions (Aaron Giles)
- 02476: [Misc.] some neodrvr.c sets: Memory leak
- 02324: [Gameplay] dokyusei, dokyusp, gakusai, gakusai2: Game doesn't start (Aaron Giles)
- 02292: [Crash/Freeze] dcclubfd, gground, ggroundj, roughrac, sgmastc, sgmastj : Game doesn't start (Olivier Galibert)
- 02480: [Crash/Freeze] Various: CPU x: PULSE_LINE used with level detected IRQ y (Aaron Giles)
- 02489: [Color/Palette] All Sets in namcos22.c: Garbled colours and graphics (Aaron Giles)
- 02470: [Crash/Freeze] Various: Access Violation (Aaron Giles)
- 02475: [Crash/Freeze] kf10thep: Access Violation  (Johnboy)
- 02502: [Crash/Freeze] fax, hardhat, mtrap, pepper2, teetert, venture and clones: Accessing a certain portion of memory in the debugger causes crash. (Aaron Giles)
- 00998: [Crash/Freeze] dcclubfd: Hangs during playing with an access violation error. (Olivier Galibert)
- 02460: [DIP/Input] qrouka: Coin 1+2 no longer work. (David Haywood)
- 00081: [Crash/Freeze] dcclub: Game crash and freeze. (Olivier Galibert)
- 00989: [Graphics] qgh: If you do a metamorphose, the screen turns black without displaying words/pictures. (David Haywood)
- 02458: [Color/Palette] enforce: Road layer colors are wrong. (M.A.S.H., Phil Bennett)
- 02469: [Graphics] geebee and clones: Appears to be missing its middle swinging gate (Couriersud)
- 02477: [DIP/Input] most merit.c sets: Unable to locate input port 'IN3'
- 02468: [Compiling] 64 bit build fails (Aaron Giles)

Source Changes
Removed unneeded UI keys by removing the constants. Readded
UI_ON_SCREEN_DISPLAY to be changed again in the "Inputs" menu. [stephh]

Added missing support of normal joystick for player 2 in 'gwarb'. [stephh]

Fixed a number of regressions due to recent 68000 IRQ changes. [Aaron Giles]

Added new functions for building device-relative tags. Changed machine configuration builder to use these functions. Also changed the laserdisc player devices to use them. Updated Z80 CTC/SIO code to assume that the CPU provided for the clock is relative to the device that the CTC/SIO belong to. Updated memory code to assume that regions and devices referenced by the memory map are relative to the device the associated CPU belongs to. [Aaron Giles]

Neo-Geo cleanups (still in progress): [Johnboy]
- Sorted OEM / Bootleg sets
- Renamed roms on non OEM / Bootleg sets to ONE naming sheme
- Renamed functions
- Added some comments

System 24 cleanups: [Aaron Giles, Olivier Galibert]
* correct memory map for both CPUs
* reduced RAM size to 256k
* correct video timings
* renamed regions
* proper interrupt handling
* fixed dcclub magic latch

Checked, via Z80 code analysis, inputs and Dip Switches for the following games in snk.c driver: [stephh]
- ikari, ikaria, ikarinc, ikarijp, ikarijpb
- victroad, dogosoke, dogosokb
- bermudat, bermudaj
- worldwar, bermudaa
- psychos, psychosj

Added correct overlay positioning, font, and behavior to PR-8210 emulation. [Aaron Giles, Warren Ondras]

Sonic Blast Man 2 Special Turbo (SNES bootleg) changes: [Andreas Naive, Tomasz Slanina]
- added rom decryption
- patched protection checks
- mapped extra inputs

Fixed timers in i8051 core. [Grull Osgo]

Fixed the i8051 AJMP opcode to take 2 bytes instead of 3. [Grull Osgo]

Improved the button-lamps layout to all games in ampoker2.c driver. Now buttons are more realistic. Also improved the Lucky 74 button-lamps layout to be more realistic.[Roberto Fresca]

Improvements to InterFlip / Recreativos Franco driver: [Grull Osgo, Roberto Fresca]
- Added Baby Poker Game.
- Added sound support to Baby Poker Game.
- Reworked the color routines.
- Added Baby Dado Game.
- Added new color routines for Baby Games.
- Redumped the videocba color PROM.
- Added color switch. (It changes background color in some games).
- Added "hopper full" switch support (for diverter function).
- Added diverter function decoder.
- Added full functional mechanical counters decoding.
- Added 7 Segment decoder and 7 Digit Counter functions.
- Added button-lamps layout & mechanical counters simulation on layout. Mechanical counters to layout: Coin-In, Coin-Out and Coin to Drop.
- Added NVRAM support to mechanical counters.
- Mapped "Hand Pay" button for Baby Games.
- Added decoder to Jackpot mechanical counter.
- Added tower lamps to Baby Games layouts.
- Reworked layouts for Baby Games.

Fixed old regression bug in Sengoku Mahjong that made the controls not work when the V30 CPU core was converted to 16-bit. Specifically, the game accesses the multiplexer with a word write instead of a byte write. [Angelo Salese]

Checked, via Z80 code analysis, inputs and Dip Switches for the following games in snk.c driver: [stephh]
- gwar, gwarj, gwara, gwarb
- chopper, choppera, chopperb, legofair
- tdfever, tdfeverj, tdfever2
- fsoccer, fsoccerj, fsoccerb

MCU protection now working for lohtb2 (m72.c) [Couriersud]
* Hooked up 6751
* Synchronized protection ram writes with timer callbacks
* Removed speed hack from NEC CPU emulation, which breaks the protection code

snes.c - Fixed problem with OAM address reset at start of vblank. [Tomasz Slanina]

Made the Z80 daisy chain aware of referencing device-specific devices. [Aaron Giles]

Added preliminary LD-V1000 emulation. Not fully working yet, but mostly there. [Aaron Giles]

Cleaned up and normalized the three existing laserdisc emulations.
Removed obsolete code from the laserdisc core. [Aaron Giles]

Optimized st0016 RAM tile behavior to lazy decode the graphics, giving a big speed boost to some of the mahjong games. [Aaron Giles]

Space Duel: Added the P10/11 dip switch (only 4 switches instead of the standard 8) [Franklin Bowen]

Improvements to Sandii' games (snookr10, apple10 & tenballs): [Roberto Fresca]
- Reworked the button-lamps matrix system.
- Documented both output ports.
- Connected coin in, key in and payout counters.
- Improved the lamps layout to be more realistic.
- Updated technical notes.

Minor optimization to the Neo-Geo sprite clearing code. [Christophe Jaillet]

Added emulation for snes special chips DSP-2 & OBC-1. [Fabio Priuli, byuu]
- added sources snesdsp2.c & snesobc1.c
- removed special chips detection from MAME
- modified memory handlers to account for the new chips

New games added or promoted from NOT_WORKING status
Megatouch 5 (9255-60-07 RON, New Jersey version) [Brian Troha]
Astropal (Sidam?) [Couriersud]
Baby Poker [Grull Osgo, Roberto Fresca]
Baby Dado [Grull Osgo, Roberto Fresca]
Sonic Blast Man 2 Special Turbo (SNES bootleg) [Andreas Naive, Tomasz Slanina]

New clones added
Megatouch III (9255-20-07 ROG, New Jersey version) [Brian Troha]
Super Megatouch IV (9255-41-07 ROG, New Jersey version) [Brian Troha] (Not Working)
Armored Warriors (US 940920) [Razoola]
Mortal Kombat 3 (rev 1 chip label p4.0) [Andrea Turci]
Decathlete V1.001 [Andrea Turci]


MAMETesters Bugs Fixed
- 02522: [Graphics] cubeqst: Cubequest showing its laserdisc footage under black regular graphics in demo. (Aaron Giles)
- 01867: [DIP/Input] plygonet: Duplicated Inputs (R. Belmont)
- 01716: [DIP/Input] backfire, backfira: Coin 1+2, Service1 and Service Mode mapped twice. (Couriersud)
- 00106: [DIP/Input] le2: Impossible to reload. (R. Belmont)
- 01708: [DIP/Input] stargrds: stargrds duplicate inputs (Couriersud)
- 02532: [DIP/Input] lunarba1: Unable to locate input port 'DSW2' (Aaron Giles)
- 02533: [Crash/Freeze] nbapbp: CPU audio: PULSE_LINE used with level-detected IRQ 1 (Aaron Giles)
- 02530: [Crash/Freeze] Various: Assertion in cpuint.c (Couriersud)
- 01821: [Crash/Freeze] lohtb2: Game stops at PCB test (Couriersud)
- 02529: [DIP/Input] catch22: Credits do not register in game. (Couriersud)
- 02528: [Core] xexex and clones: Game checks halt with "VERSION ERROR" (R. Belmont)
- 01447: [DIP/Input] propcycl: Analog input roll over problem. (R. Belmont)
- 02211: [Sound] soldivid: missing music (R. Belmont)
- 00978: [Graphics] columns2: There is some garbage on the place where you drop the 2 small squares at the bottom, after the Game Over image drops down. (David Haywood)
- 02521: [Color/Palette] ichir and clones, tantr and clones: Some colors are missing and other graphics errors (David Haywood)
- 02511: [Crash/Freeze] dkong: Donkey Kong crashes after quiting. (Aaron Giles)
- 02512: [Misc.] dkong: Artwork and gameplay area are getting squished/distorted. (Aaron Giles)

Source Changes
Updated Dip Switches and Inputs for 'yesnoj' (taito_f2.c driver). [stephh]

Fixed several things in the jalmah.c driver: [Angelo Salese]
* Fixed Mahjong Daireikai pseudo-random number generator;
* Fixed Otogizoushi Urashima Mahjong to make it playable;
* Fixed a start-up crashing bug in mjzoomin/urashima/daireika

Simplified expro02 decryption. [Nicola Salmoria]

Completed general NeoGeo cleanup: [JohnBoy]
* Sorted OEM / bootleg sets
* Renamed roms on non OEM / bootleg sets to ONE naming sheme
* Renamed functions
* Cleaned up bootleg sets
* Added some comments
* Renamed sma in garou/garouo, added comment

Changed Cube Quest laserdisc override logic. It's still a little hacky but this works better than the previous attempt. [Aaron Giles]

Updated segac2 driver to use updated megadriv code. [David Haywood]

Moved fantasia -> expro02.c, however, the extra layer is misplaced on it. Scroll regs probably differ from the original. [David Haywood]

PsikyoSH: hook up VBL IRQ ack [R. Belmont]

SH2: fix DRC's handling of internally generated IRQs, and fix compiling in interpreter mode. [R. Belmont]

Rewrote pmpoker.c driver (first part). [Roberto Fresca, Grull Osgo]
- Added discrete sound support to Golden Poker hardware games based on schematics.
- Added discrete sound support to Potten's Poker hardware games based on PCB analysis.
- Added discrete circuitry diagrams for both hardware types.
- Adjusted the CPU adressing to 15 bits for pmpoker/goldenpkr hardware.
- Adjusted the CPU adressing to 14 bits for pottnpkr hardware.
- Rewrote all the ROM loads based on these changes.
- Defined MASTER Xtal & CPU clock.
- Fixed the visible area based on M6845 registers.
- Improved the lamps layouts to be more realistic.
- Added Good Luck (potten's poker hybrid running in goldnpkr hardware).
- Added Buena Suerte (spanish) x 2 sets.
- Added set Royale.
- Added Witch Card and spanish variants.
- Added Super Loco 93 (spanish) x 2 sets.
- Renamed set goldnpkc to pottnpkr (parent Jack Potten's Poker set).
- Renamed set jokerpkr to potnpkra, since is another Jack Potten's Poker set.
- Added other 2 clones of Jack Potten's Poker.
- Renamed/cleaned all sets based on code/hardware analysis.
- Added intensity bit to the color system.
- Implemented the blue killer bit for Witch Card hardware.
- Implemented the extended graphics addressing bit for Witch Card hardware.
- Added proper visible area to sloco93.
- Rewrote the graphics & color decode system based on schematics. No more patched codes.
- Changed the char gfx bank structure and rom load according to the new routines.
- Adjusted the amount of color codes and PROM region size accordingly.
- Updated all notes.

Large update to comments in smstrv.c for SMS Manufacturing boards. Documented how the input/output ports are hooked up, and what the PALS do, still need to document the video output port and add the smssshot roms, and actually hook stuff up (like the z80) based on the comments. [Lord Nightmare]

Removed speedups from sokyugrt, they break the game (make it too slow) the SH2 DRC is sufficient. [David Haywood]

Did most of the protection work for Double Dealer. It appears to use a funky video register setting involving locations $8c1e0-8c1ef range for cards movements so it isn't playable yet. [Angelo Salese]

Added DIP LOCATIONS to items in the driver and cleaned up some of the comments mentioning duplicate dips configurations.  Not fully understanding how the FREE PLAY was implemented, I left that not to show a location. [Tafoid]

cubeqst changes: [Aaron Giles]
* removed custom sound in favor of individual DACs
* simplified palette management logic
* hooked up the "disc on" signal

Cleaned up Firefox video implementation: [Aaron Giles]
- proper sprite/tile priorities
- adjusted X offset to match screenshots
- converted to tilemaps

Added cawing B-Board PAL dumps [Corrado Tomaselli]

New games added or promoted from NOT_WORKING status
Mahjong Daireikai [Angelo Salese]
Otogizoushi Urashima Mahjong [Angelo Salese]
Good Luck! [Roberto Fresca]
Buena Suerte! (spanish) [Roberto Fresca]
Witch Card (english) [Roberto Fresca]
Super Loco 93 (spanish) [Roberto Fresca]

New clones added
Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg) [Kawaks]
Jack Potten's Poker (2 sets) [Roberto Fresca]
Witch Card (spanish)(2 sets) [Roberto Fresca]
Buena Suerte (spanish, set 2) [Roberto Fresca]
Super Loco 93 (spanish, set 2) [Roberto Fresca]

New games marked as GAME_NOT_WORKING
Royale [Roberto Fresca]


MAMETesters Bugs Fixed
- 02539: [Crash/Freeze] phrcraze, phrcrazs: [debug] Access Violation (Couriersud)
- 02531: [Sound] mshuttle, mshuttlj, mshutlj2: Moon shuttle speech wrong (Corrado Tomaselli)

Source Changes
Connected firefox audio enables and improved volume balance so you can hear the speech chip. Also fixed speech chip frequency. [Aaron Giles, Philip Bennett]

marked Hacha Mecha Fighter (nmk16.c) BG rom as a bad dump. [David Haywood]

Improved the poker41 and pulltabs button-lamps layouts to look more realistic. [Roberto Fresca]

Fixed the colors of Yumefuda. Added two new palette functions in generic.c: paletteram_xRRRRRGGGGGBBBBB_split1_w() and paletteram_xRRRRRGGGGGBBBBB_split2_w() (used by Yumefuda). [Angelo Salese]

Added function to get the status of CA2 on the 6821 PIA emulator. [Phill Harvey-Smith]

Added new tool ldresample to assist in resynchronizing audio tracks in a CHD with frames. Currently still WIP but useful if you know what you're doing. [Aaron Giles]

New games added or promoted from NOT_WORKING status
Good [David Haywood, Angelo Salese]

New clones added
Giga Wing (Brazil 990222) [Luis]


MAMETesters Bugs Fixed
- 01722: [Crash/Freeze] sokonuke: Game hangs after you choose stage. (Aaron Giles)
- 00468: [DIP/Input] gogomile, gogomilj: Inserting coins or pressing start has no effect at the continue screen. (Phil Bennett)
- 00436: [Sound] kyukaidk: Some of sound effects are wrong. Umpire's voice is most notable. Also, music is not correct. (Phil Bennett)
- 01702: [Gameplay] cloak + clones: Can愒 pick up items (Phil Bennett)
- 02140: [Save/Restore] cubeqst: cube quest crashes mame when saving state (Phil Bennett)
- 02577: [DIP/Input] crush and clones: Broken Dips (Fabio Priuli)
- 00359: [Sound] blocken: Some of the enemy voices are totally wrong (Phil Bennett)

Source Changes
MC6845 changes: [Curt Coder]
- added cursor and display enable skewing
- added preliminary support for SY6545-1's transparent addressing mode
- Hsync should be pulsed even when vsync is active.

Removed per-game hacks from CPS3 (moved to DMA callback in SH2 core). Removed Speedups from CPS3 / PsikyoSH, while they do still give a decent speed boost they're not really needed with the DRC and just clutter the code. [David Haywood]

Minor NeoGeo cleanups [JohnBoy]

Rewrite of the Motorola DSP56k CPU core. [Andrew Gardner]
* Complete rewrite focusing on legibility and extensibility.
* 27/121 opcodes (mostly) implemented.
* Bugfix for reset status of interrupt priority bits.
* Bugfix for disassembly of register-to-register parallel data move.
* Added additional branch, move and bitfield ops.
* Plygonet now passes its memory test and uploads a new program.
* Implemented tst, or, jsr, rti, tst2, and 2 new movec ops.
* Added opbase handler to plygonet.c

Increase cubeqst interleave factor to eliminate LDP timeout countdown flicker. [Philip Bennett]

Added redumped B-Rap Boys sample ROMs. [Guru]

Cleaned up STV rom loading a bit. [David Haywood]

NamcoNBx: fixed C75 BIOS loading for big-endian targets. [R. Belmont]

Updated tnzs.c driver: [stephh]
  - renamed sets :
      * 'tnzsjn'   -> 'tnzsj'
      * 'tnzsj'    -> 'tnzsjo'
      * 'kagekia'  -> 'kagekih'
  - fixed Dip Switches for all games (2 remaining unknown Dips in 'plumppop' and 'jpopnics' though)
  - added many notes

Small cleanups to the ST-V driver. Make some work for magzun, still not working. [Angelo Salese]

AICA: fix sample addressing for the full 8 MB [kingshriek].

Fixed bnstars1 screens. [David Haywood]

MCS51/I8051 overhaul, micro3d improvements and full m72 protection emulation for lohtb2: [couriersud, Jim Stolis]
* improved serial port timing
* better infrastructure for adding more variants like DS5002
* Fixed port reading
* Rewrote Macros for better readibility
* Fixed and rewrote Interrupt handling
* Now returns INTERNAL_DIVIDER, adjusted cycle counts
* Remove unnecessary and duplicated code
* Remove unnecessary functions
* Rewrite to have sfr-registers stored in int_ram.
* Debugger may now watch sfr-registers as well.
* implemented interrupt callbacks (HOLD_LINE now supported)
* Runtime switch for processor type - remove ifdefs
* internal memory maps for internal rom versions (internal ram now displayed in debugger)
* more timer cleanups from manual
* fix timer 2 interrupts
* implement serial mode 2/3 rx and tx clock handling
* Remaining games checked and adapted to changes in cpu core
* Cardline still broken. I need the exact and complete cpu name.
* Added more variants 803X, 80CXX, AT89C4051
* Fix segas18.c (segaic16.c) mcu maps.
* Fix sslam.c
* Fix limenko.c videopkr.c : Issue with core allocation of ram (duplicate savestate)

micro3d improvements: [couriersud]
* serial port communication between main cpu and sound board works
* sound board now works

m72 - lohtb2 improvements: [couriersud]
* full emulation of protection device
* Samples are now piped through the mcu

Added sound and corrected wrong DIP-SW in the Double Dealer driver. Completed protection vectors, fixed video emulation and added coin setting simulation. [Angelo Salese]

Fixed recently regressed raster interrupt issues in fuukifg* drivers. [Philip Bennett]

Added flip screen / cocktail support to yumefude driver. Completed DIP-Switches (manual-wise) and made better comments. [Angelo Salese]

Separated umk3 and breakrev from their parents. [David Haywood]

Some reorganization in megadriv.c, porting over some code to attempt to get it working again, bit by bit. [David Haywood]

Improved dakkochn gfx; the priority are ok but there are various offset so i marked also the game as "inperfect gfx". [Sonikos]

Fixed a subtle bug in the 65c02 emulation where the result of the BIT instruction differs on the 65c02 (from the 6502), when executed in immediate mode. [Phill Harvey-Smith]

Added samples suppor to Cosmic Alien. [T. Bellm]

New games added or promoted from NOT_WORKING status
(Medal) Yumefuda [Bet] [Angelo Salese]
Grudge Match (Yankee Game Technology) [Aaron Giles]
Double Dealer [Angelo Salese, David Haywood]
Super Megatouch IV (9255-41-07 ROG, New Jersey version) [Mariusz Wojcieszek]
Mirage Youjuu Mahjongden [Angelo Salese]

New clones added
The King of Fighters 2002 (bootleg) [Kawaks]
Police Trainer (v1.3B Newer) [Brian Troha]
Egg Venture (Release 8) [Brian Troha]
Kick for the Goal [Brian Troha] (Not Working)
Fire Shark (Korea, set 1, easier) [Guru]
Fire Shark (Korea, set 2, harder) [Guru]
Seibu Cup Soccer (set 2) [Chris Hardy] (NOT WORKING)

New games marked as GAME_NOT_WORKING
P's Attack [Guru]
Magic the Gathering: Armageddon [David Haywood]


MAMETesters Bugs Fixed
- 02268: [Graphics] devilw, darkadv, majuu : Sprite-background priority isn't correct. (Mamesick)
- 02042: [Color/Palette] jjparad2: Wrong background color (Mamesick)
- 01679: [Crash/Freeze] kuniokub, kuniokun, renegade: Game freezes after Title Screen. (Mamesick)
- 00224: [Sound] macross2: After stage 1, the sound keeps going out and coming back. (Nicola Salmoria)
- 02605: [Color/Palette] funnymou, suprmous: Wrong colors in Funny Mouse and clone. (David Haywood)
- 02587: [Gameplay] lohtb2: lohtb2 protection emulation is imperfect (couriersud)
- 02456: [Core] wrong sector size at CD_TRACK_MODE2 conversion routine (R. Belmont)
- 02011: [Sound] superchs: ES5505 clockspeed too low (Phil Bennett)
- 02199: [DIP/Input] banbam, pettanp: The 4th 'Unused' dipswitch is the 'Freeze' switch. (Angelo Salese)
- 00893: [Sound] All games in playch10.c, punchout.c, vsnes.c: It seems that some sound channels are missing. (Aaron Giles)

Source Changes
Added sound banking to the mirage.c driver. [Angelo Salese]

Removed parent clone relationship from "Street Fighter Zero/Alpha 2" and "Street Fighter Zero 2 Alpha". [David Haywood]

Removed parent clone relationship between missb2 and bublbobl. We don't usually make the 'korean hacks' as clones as they have very little to do with the original releases except for the stolen cpu code. GFX / Sound / Gameplay are completely redesigned. [David Haywood]

Changed VBLANK to irq0_line_assert and added a CLEAR_LINE in the peplus driver. This greatly increases speed on all video slots. [Jim Stolis]

Cleaned up the sample rom loading in mirage.c. [Angelo Salese]

MCS-51 improvements: [couriersud, Jim Stolis]
* Fixed split timer mode
* No interrupts for timer 0 modes 0,1,2 while timer 1 in mode 3
* mcs51 core now supports 4 interrupt levels depending on cpu type
* According to Philips, 80C31 is a 80C52 family member with 128K internal ram and no rom
* Implemented cmos features: powerdown & idle
* Added comments about special function registers on Philips 80C52
* cleaned up reset routines
* Fixed INT0 & INT1 interrupt line handling
* Finally move cpu/i8051 to cpu/mcs51, rename files and some constants
* Quotes from the documentation added to the source as well
* Started DS5002FP integration

Updated nes pcm dma to read data through the cpu address map. [Wilbert Pol]

Fixed Dip Switches for 'ambush' and clones. [stephh]

Improvements to magicfly driver: [Roberto Fresca]
- Added sound support to magicfly and 7mezzo.
- Hooked coin counters to magicfly and 7mezzo.
- Inverted the graphics banks to be straight with the hardware accesses.
- Updated the memory map description and technical notes.
- Added game notes and documented the test/settings/bookkeeping modes.

Fixed Dip Switches for 'arabian' and clones. [stephh]

Fixed Dip Switches for 'spaceint' and clones. [stephh]

Fixed MSM5205 ADPCM and sound comms in Ashita no Joe/Success Joe. [Philip Bennett]

Changed superchs ES5505 clock rate to 15238050Hz. [Philip Bennett]

Fixed Dip Switches for all games in astrof.c driver. [stephh]

Various improvements to the jalmah.c driver: [Angelo Salese]
* Fixed tilemaps paging / tilemap positioning;
* Fixed a protection issue in Mahjong Daireikai,not giving correct colors for the girls in-game;
* Fixed a rom-loading issue in Mahjong Daireikai;
* Fixed 'ZA' sound banking behaviour,this fixes at least the sound in kakumei2;
* Removed VIDEO_EOF and added a TIMER_DEVICE_CALLBACK function for MCU simulations;
* Added WIP code for the priority system;
* Added a NO_DUMP for the MCU for all the sets;

Rewrite of the Motorola DSP56k CPU core. [Andrew Gardner]
* Partially implemented inc24, asl4, bcc, brkcc, and doForever ops.
* Added code for parallel address register update.
* Partially implemented tfr op.
* Polygonet now allows test mode to be run for a few seconds.  Most IO is now known, though coin2 is still a mystery.
* Partially implemented move, asr4, and mpy ops.

YM2608/2612: applied latest fixes/discoveries. [Eke-Eke, Nemesis]

Added palette fading effect on macrossp.c driver. [Angelo Salese]

Fixed skewing and display area in MC6845. [Curt Coder]

Fixed Dip Switches and inputs for 'dreamwld'. [stephh]

NEC CPU core improvements: [couriersud]
* removed another speed hack in the NEC core
* renamed "FETCH" to "FETCH()" (macros used as functions should look like functions)
* Preparation for opcode prefetch timing
* improved prefetch timing calculation
* prefetch timing now also used by V20 and V33
* moved some static variables into cpu context
* nec_reset now explicitly clears context variables
* all cpus now share nec_execute

More Discrete module optimizations. Added optimized custom mixer to Donkey Kong. [Derrick Renaud]

lohtb2: Improved mcu emulation [couriersud]
* The whole startup cycle now works. No more timeouts and erratic behavior.
* lohtb2 will however not display the "Warning" screen due to a priority issue. With color/attribute of 0x80 in videoram at 0xd0000 and 0xd8000, videoram at 0xd80000 will be displayed. Some tilemap guru has to look into this.

Fix GCC 4.3 "array bounds exceeded" error in disc_flt.c. [R. Belmont]

plygonet improvements: [R. Belmont]
- Turned off network IRQ. Game now boots without "network error"
- Hooked up palette RAM
- Improved text layer emulation (flip bits still missing)
- Fixed text layer emulation and visible area. FBI logo and color test now display properly.

Fixed sound,hooked-up generic inputs and added some notes in Alien Command (not yet working). [Angelo Salese]

Fixed m72 tilemap group 2 priorities. [couriersud]

Fixed Joker's Wild graphics to 2 bits per pixel. [Roberto Fresca]

NeoGeo updates [JohnBoy}
* Updated NeoGeo game pcb infos
* Renamed p's in kof2000n to correct chip label
* Renamed v's in mahretsu to correct chip label, readded 128k m1
    from Mame 0.34b6 / s1 from older dump
* breakrev: Renamed c's to correct chip label, added correct c5/c6
* Marked mslug3h MVS AND AES VERSION
* Marked mslug4 2nd revision, added mslug4 1st revision missing set comment
* Marked trally MVS AND AES VERSION
* Marked ncombath MVS AND AES VERSION
* Marked sengoku MVS VERSION
* Marked superspy MVS AND AES VERSION
* Marked mutnat MVS AND AES VERSION

Modified src2html to use a template source file instead of hard-coding to the MAME site. Changed from explicit styles to classes. [Aaron Giles]

Changed magictg to use (hopefully correct) roms. [David Haywood]

Naomi / DC improvements [Samuele Zannoli]
* cvs2gd stops looping forever. However with no 3d emulation nothing is shown on the screen.
* implemented the naomi RTC and there are a few verbose messages about transfers not implemented yet.

Fixed Dip Switches for 'exprraid' and clones. [stephh]

Improvements to re900.c driver [Roberto Fresca, Grull Osgo]
- Reworked inputs to allow 6 players through a selector.
- Hooked all lamps (even the ball simulator array).
- Added a internal layout and support for external artwork.
- Extended the hardware to support Buena Suerte '94.
- Cleaned up the driver.

Fixed Dip Switches for 'gyruss' and clones. [stephh]

Fix NES APU to work with high sample rates (don't know the bug #). [Aaron Giles]

Synchronized 6502 disassembly with CPU core. [Pugsy]

Added missing const/statics, added/removed entries in header files, and fixed a few potential multisession issues by explicitly adding initializers. asic65.c has significant changes to accomodate using a struct instead of 16 variables, otherwise the changes are modest and obvious. [Atari Ace]

expro02 driver improvements: [Sonikos]
- Fixed dips in all galsnew sets and  fantasia.
- Added dips location.
- A little driver clean up.

Added save state support to the toaplan2 driver. [Atari Ace]

Changed the coinage settings and swapped coin A mech with coin B to match the behaviour of Chelnov (world) pcb. [Corrado Tomaselli]

New games added or promoted from NOT_WORKING status
Ruleta RE-900 [Grull Osgo]
Buena Suerte '94 [Grull Osgo, Roberto Fresca]
Virtual Mahjong 2 - My Fair Lady

New clones added
Power Instinct (USA) [Jim Hernandez]

New games marked as GAME_NOT_WORKING
Joker's Wild (encrypted) [Roberto Fresca]


MAMETesters Bugs Fixed
- 02633: [Crash/Freeze] Many sets using the MC6845: Crash/hanging in many games. (Curt Coder)
- 02626: [DIP/Input] crimfgt2, crimfgtj: Cannot start a game (Fabio Priuli)
- 02618: [Sound] samuraia and clones: No SFX sound (Pierpaolo Prazzoli)
- 02544: [Core] Dip Condition / Port Include limitation (Aaron Giles)
- 02542: [DIP/Input] ghoulsu: Doesn't remove the original port when replacing it with a conditional port (Aaron Giles)
- 02607: [Crash/Freeze] frogs: Taking a screenshot in Frogs (Gremlin) exits the game with an error. (aaron)

Source Changes
Changed 74123 into a device. Clarified behavior from datasheet. Added logic to avoid recursive calls. [couriersud]

Fixed Dip Switches for all games in halleys.c driver. Added Dip locations for 'halleys' and clones. [stephh]

More improvements to the 32x code. [David Haywood]

Irem M10: first results from schematics: [couriersud]
* Updated video timing and cpu/pixel clocks
* Rewrote irq for m10/m11 to use two 74LS123

AICA: fix missing instruments in DTPK driver games. [R. Belmont, Deunan Knute, kingshriek]

Naomi: unmapped words in the AICA address range must read as zero. [R. Belmont]

Corrected YM2203 balance in powerins. [Jim Hernandez]

Converted toobin to RGB32 to allow for mid-screen palette updates. Also added correct video timing and full memory map, and connected watchdog. [Aaron Giles]

Added Dip locations for 'exprraid' and clones, and for 'gyruss' and clones. [stephh]

Hooked up 6845 to peplus driver: [couriersud]
* Hooked up 6845 in a daisy chain way into existing "6845 emulation"
* Clocks from schematics
* Video size issues - 6845 code related, discussion started on list

Re-inlined core attotime functions. This makes a significant difference when running with high interleaves. [Aaron Giles]

Added support for recently-discovered internal Z80 register to the Z80 core. Improves accuracy of undefined flags. [Miodrag Milanovic]

Reverted MC6845 changes as they broke a number of things. [Curt Coder]

Converted Z80, R3000, ADSP2100, and M680x0 cores to reference their data via pointers instead of global structs, in anticipation of future changes. [Aaron Giles]

Fixed coinage in Speed Attack! and cleaned-up the driver to current standards. [Angelo Salese]

Converted the MCS-48, MCS-51, and m6502 cores to reference data via pointers. [couriersud]

Added concept of scheduling quanta to the timer system. Also added means of setting the minimum useful scheduling quantum, and clamping all quanta to that value. [Aaron Giles]

Changed interleave/boost handling to use scheduling quanta instead of timers. [Aaron Giles]

Added machine parameter to cpu_boost_interleave. [Aaron Giles]

Updated cpuexec to compute the "perfect" interleave value taking into account the minimum number of cycles per instruction specified by the CPU core. Updated Z80 core to indicate that the minimum cpi is 2. Fixed incorrect minimum cpi in the 68020+ cores. [Aaron Giles]

Changed core cycle computations to use div_64x32 instead of full 64-bit divides. This involves tossing a few bits of resolution at divide time, but should make no real difference in practice. [Aaron Giles]

Began the process of pruning options from the 68000 core, hard-coding it for MAME's needs. We've hacked on it sufficiently that it is no longer generic, so this is a good opportunity to simplify the code so that it can actually be followed (still in progress). [Aaron Giles]

Defined macros for all core CPU functions, along with macros for the name and for calling, in the spirit of the devintrf.h macros. [Aaron Giles]

Changed init, reset, exit, and execute interfaces to be passed a const device_config * object. This is a fake object for the moment, but encapsulates the machine pointer and token. Eventually this will be a real device. [Aaron Giles]

Changed the CPU IRQ callbacks to a proper type, and added a device parameter to them. [Aaron Giles]

Fixed background color of srmp1/srmp2. [EdxGROfS0]

Various improvements in the ST-V driver: [Angelo Salese]
* Fixed bitmap zooming in Virtual Mahjong 2 - My Fair Lady;
* Worked around a major graphic bug in ElanDoree;
* Added some missing alpha blending effects,Pro Mahjong Kiwame S title screen needs it but it doesn't work yet due to other problems (still investigating)
* Fixed a crash bug with Astra Super Stars when the debugger is active.

Merged DS5002FP into MCS51: [couriersud]
* Merged DS5002FP
* Disassembler now uses type specific memory names
* Merged DS5002FP disasm
* added 83C751 memory names to disassembler
* delete DS5002FP specific files
* removed unnecessary cpu callback in wrally
* DATA_MAP ==> IO_MAP in wrally

Continued rewrite of the Motorola DSP56k CPU core: [Andrew Gardner, PhilB, RBelmont]
* Added proper clock speed to plygonet.c and internal divider to dsp56k.c
* Fixed up disassembler add/sub, 05xx, and bsr ops.
* Handle mysterious uuuuF instruction found in plygonet add op.
* Partially implemented add, sub, mac, mpy, inc, cmpm, macr, asr16, jscc, lea, and movec ops.
* Added dual X memory read and data move with short displacement parallel moves.

Some improvements to the Forte Card driver, not yet working. [Angelo Salese]

Changed Psicho Nics Oscar (japan revision 0) to (world revision 0) since there is no japan disclaimer. [Corrado Tomaselli]

Fixed missing inputs in expro02. [Sonikos]

CPS2 ROM updates to match PCB labels. [Razoola]

Added ADDRESS_MAP_NAME macro, updated CPU cores to use it to reference internal address maps. [Atari Ace]

Added include files for many drivers that never bothered before. [Atari Ace]

Improved Star Castle drone sound. [Jim Hernandez]

New games added or promoted from NOT_WORKING status
Snezhnaja Koroleva [Antro]


IMPORTANT NOTICE: This update represents the first part of a monumental internal change within MAME in the way CPU cores are managed and how memory is addressed. There are two ways you can help get these changes sorted out.

1. Test the games you are familiar with, and some you are not. Report bugs at http://mametesters.org/mantis for anything out of the ordinary.

2. If you are up to coding, help us by submitting patches that remove the use of [Mm]achine->activecpu and/or cpunum_get_active(). You should be able to derive which CPU you are referencing through other means. To avoid duplication of effort, either send these quickly in small bunches, or better yet, send a message to the submission address announcing your intention to work on a certain class of drivers.

MAMETesters Bugs Fixed
- 02668: [DIP/Input] vendetta + clones: NVRAM being corrupted (Mamesick)
- 02656: [Crash/Freeze] elevator: Elevator Action freezes after coin insert with "8" (David Haywood)
- 02660: [Crash/Freeze] All sets in decocass.c: Games freeze when the count reach 15, 14 or 13. (couriersud)
- 02654: [Crash/Freeze] timecris, timecrsa: Unable to start game due to improper initialization (robiza)
- 02667: [Sound] bbmanwj: No sound since 0.123u2. (robiza)
- 02655: [Misc.] Some games using MC6845: A message reading "Mode Control 88 is not supported!!!" is displayed (couriersud)
- 02092: [Graphics] spinlbrk and clones: Priorities issues (robiza)
- 02641: [Graphics] strider and clones: Problem with graphics layer (Nicola Salmoria)
- 02196: [DIP/Input] scross: Five Player 2 buttons are mapped twice (Luigi30)

Source Changes
UPI-41/42 (still I8x41.c) changes: [couriersud]
* cpu/i8x41 should be renamed to UPI-4x, since UPI-41/42 was an intel chip family postponed for now until core moved to pointers.
* removed I8041 definition from mcs48
* removed I8x41 cpu definition and config struct
* added I8041, I8741, I8042, I8242 and I8742 cpus to i8x41.c
* added internal memory maps
* internal ram now uses DATA memory space
* updated drivers
* increased interleave to 70 in decocass. This fixes decocass hanging in countdown around 13. No idea when this bug was introduced.
* converted i8x41 to use pointers for state access
* separated opcodes into i8x41ops.c

Populated tag and static_config parts of fake CPU device. Removed 'config' parameter from CPU_INIT. Modified CPU cores to pull config from the device static_config. [Aaron Giles]

s14001a.c: added chip pinout and operation notes. [Lord Nightmare]

Clean-ups in the ST-V driver and corrected protection number seeds for elandore. [Angelo Salese]

Video emulation fixes to the Ghost Eolith HW (not yet working). [Angelo Salese]

i960 core switched to pointer state access. [couriersud]

Major cpuintrf changes: [Aaron Giles]
* added a set of cpu_* calls which accept a CPU device object; these are now the preferred means of manipulating a CPU
* removed the cpunum_* calls; added an array of cpu[] to the running_machine object; converted all existing cpunum_* calls to cpu_* calls, pulling the CPU device object from the new array in the running_machine
* removed the activecpu_* calls; added an activecpu member to the running_machine object; converted all existing activecpu_* calls to cpu_* calls, pulling the active CPU device object from the running_machine
* changed cpuintrf_push_context() to cpu_push_context(), taking a CPU object pointer; changed cpuintrf_pop_context() to cpu_pop_context(); eventually these will go away
* many other similar changes moving toward a model where all CPU references are done by the CPU object and not by index
* added CPU device parameters to all CPU callbacks except for the context ones (which are going away), and the validity check.

Converted TMS340x0 cores to be pointer-based. [Aaron Giles]

Fixed Dip Switches for 'lkage' and clones. Fixed bootlegs visible area to match original sets. [stephh]

Fixed Dip Switches for 'magmax'. [stephh]

Fixed Dip Switches for all games in mermaid.c driver. [stephh]

peplus.c updates: [couriersud]
* changed the 6845 type to R6545_1 (Rockwell as mentioned in the driver).
* use transparent addressing
* lightpen code now generates a "lightpen_assert" at the right screen position.
* Completely hooked up 6545 without wrappers.

abc_step and abc_reset now declared as DISCRETE_STEP( abc ) and DISCRETE_RESET( abc ). [couriersud]

Fixed Dip Switches for 'momoko'. [stephh]

Fixed Dip Switches for 'joyfulr' and clone. [stephh]

Fix state save in discrete sound: [couriersud]
* sndindex now considered as well in state save
* expose discrete_sound_n_r(void *chip, ...) to enable accessing multiple discrete sound cores

Kaneko changes: [David Haywood, Andreas Naive]
* Added Simulation of Toybox external data rom decryption
* Converted Blood Warrior, Bonk's Adventure, Great 1000 Miles Rally 1+2 to use the new code.
* Updated suprnova rendering to allow 2 sprite chips.
* Started work on Jackie Chan & Gals Panic 3

Massive API cleanup/change: [Aaron Giles]

  The primary goal is that all CPU-related APIs now take a device pointer instead of an index. All functions that take a CPU device are prefixed with cpu_*. All functions that are globally related to cpu execution are prefixed with cpuexec_*. Below is a list of some of the mappings:
    cpu_boost_interleave     -> cpuexec_boost_interleave
    cpunum_suspend           -> cpu_suspend
    cpunum_resume            -> cpu_resume
    cpunum_is_suspended      -> cpu_is_suspended
    cpunum_get_clock         -> cpu_get_clock
    cpunum_set_clock         -> cpu_set_clock
    cpunum_get_clockscale    -> cpu_get_clockscale
    cpunum_set_clockscale    -> cpu_set_clockscale
    cpunum_get_localtime     -> cpu_get_local_time
    cpunum_gettotalcycles    -> cpu_get_total_cycles
    activecpu_eat_cycles     -> cpu_eat_cycles
    activecpu_adjust_icount  -> cpu_adjust_icount
    cpu_trigger              -> cpuexec_trigger
    cpu_triggertime          -> cpuexec_triggertime
    cpunum_set_input_line    -> cpu_set_input_line
    cpunum_set_irq_callback  -> cpu_set_irq_callback
  In addition, a number of functions retain the same name but now require a specific CPU parameter to be passed in:
  Merged cpuint.c into cpuexec.c. One side-effect of this change is that driver reset callbacks are called AFTER the CPUs and devices are reset. This means that if you make changes to the CPU state and expect the reset vectors to recognize the changes in your reset routine, you will need to manually reset the CPU after making the change (since it has already been reset).
  Added a number of inline helper functions to cpuintrf.h for managing addresses.
  Removed cpu_gettotalcpu(). This information is rarely needed outside of the core and can be obtained by looking at the machine->cpu[] array.
  Changed CPU interrupt acknowledge callbacks to pass a CPU device instead of machine/cpunum pair.

  Changed VBLANK and periodic timer callbacks to pass a CPU device instead of machine/cpunum pair.
  Renamed all information getters from cpu_* to cpu_get_* and from cputype_* to cputype_get_*.

Defined macros for standard sound core functions and updated all sound cores to use them. [Atari Ace]

Replaced the Machine parameter where an running_machine * is available and removes the deprecat.h where unnecessary. [Atari Ace, Oliver Stoeneberg]

Cleaned up use of running_machine in the Windows debugger code. [Oliver Stoeneberg]

Fixed Dip Switches and Inputs for 'jchan' and clone. [stephh]

Documented the CPS2 Phoenix sets, and what happens to a dead CPS2 board. [MAMEPlus]

Pointer-ified the 6800, 6809 and hd6309 cpu cores: [couriersud]
* temporarily named the state var m68_state in the 68xx cores
* reorganized some code for simpler comparison of 68xx cores

Pre-irq rewrite submission in ST-V driver: [Angelo Salese]
* Better management of hblank/vblank bits;
* Makes dynamic resolutions to be called with a timer instead of run-time;
* Makes dynamic resolutions to not be changed at every frame but only when there's an actual change;
* Fixed Final Arch broken Test Mode;
* Demoted Super Major League / Final Arch as GAME_NOT_WORKING, they hangs randomly due of SH-2 master/slave communication RAM issues
* Removed GAME_NOT_WORKING flag to Fighting Dragoon Legend Elan Doree, because protection affects only in-game graphics and not gameplay
* Removed all the read/write handler speed-up hacks, they aren't needed anymore and they were doing more damage than being useful. This fixes Golden Axe: the Duel gameplay speed at the cost of breaking up Groove on Fight coin counter at start-up.

Major memory system change: [Aaron Giles, couriersud, smf, R. Belmont]

  Changed READ/WRITE handlers to accept an address_space * instead of a machine *. The address_space object was enhanced to contain a machine and a pointer to the relevant CPU object.
  Added new function cpu_get_address_space() to fetch the address space for calling in manually to these functions. In some instances, code which should eventually be converted to a device is hard-coding fetching the program space of CPU #0 in order to have something valid to pass.

Converted cultures driver to have separated color tables for each plane. [Angelo Salese]

Significantly pared down the 68k core. Merged outer MAME shell into the core proper and removed unused macros. Changed all external interfaces to pass the CPU device. Enabled 64-bit operations by default. Re-derived the interface functions to cascade and share code more aggressively. These changes also seem to have cured the taito_f3 issues as far as I can tell (at least pbobble3 seems right now). [Aaron Giles]

Disentangled the 68000 core, converting it to be much simpler and less overly abstracted. Hard-coded it for the options that are relevant and never going to change. Removed old unused CPS2 encryption junk. Changed encryption interfaces to pass the CPU core object. [Aaron Giles]

Updated CPS1 documentation. [Nicola Salmoria]

Added m6809 config option to control where opcodes 10 and 11 fetch the second byte. [Nicola Salmoria]

Changed kram3 to use a partially understood decryption algorithm and removed external tables. [Nicola Salmoria]

Fixed Dip Switches for 'scotrsht'. [stephh]

Naomi improvements: [Samuele Zannoli]
* This patch implements a "plug-in board" device for the Naomi. It represents the rom boards for the various games and the dimm board for the gdrom.
* Now the dimm board part contains only a routine to load the "rom file" from the gdrom chd, but in the future it will be fully implemented with its own sh4 processor, security chip and so on.
* Extracted .rom files are no longer needed, rom file is extracted in code from the CHD.

Added "tag" parameter to state_save_register_item_* calls. Removed state_save_combine_module_and_tag() function in favor of passing the tag when registering. Revisited all save state item registrations and changed them to use the tag where appropriate. [Aaron Giles]

Changed 6809 disassembler to work with kram3. [Nicola Salmoria]

Added template support to regrep. Changed output to not color the entire background of each cell. Switched to astrings and core_files internally. [Aaron Giles]

ST-V IRQ rewrite and that removes several global hacks/game specific hacks. (SMPC irq bit/introdon irq register hack/pblbeach framebuffer hack plus some more). Note: some games have issues with it, but they'll be hopefully fixed on the next couple of updates. [Angelo Salese]

Generalized the concept of opbase access into "direct" access. Removed opbase globals to the address_space structure. Cleaned up names of pointers (decrypted and raw versus rom and ram). Added inline functions to read/write data via any address space. Added macros for existing functions to point them to the new functions. Other related cleanups. [Aaron Giles]

Pointerized the CDP1802 CPU core. [Curt Coder]

Tweaked gun handling in beast busters a bit.. by halving the precision of the guns to 7-bit they can be calibrated more easily, maybe the originals were like this.  I've also added a default eeprom with them calibrated in a 'reasonable' way for MAME.  Sound is pretty awful on this, maybe the sound ROMs should be checked? [David Haywood]

Cleaned up macro mess in the Z80 core. Switched to using generic memory calls instead of program_* and io_*. [Aaron Giles]

Pointer-ified the ASAP core. [Aaron Giles]

Pointerized the COP400 CPU cores. [Curt Coder]

Switched mcs48, mcs51, m68000 to new memory functions. [couriersud]

Documented alt Ajax rom board [Phil Morris]

Fixed basic controls in 2 Minutes Drill & added preliminary shutter/ defender sensors. Still need proper ball hit/run sensors to get this working however. [Angelo Salese]

Big H8 update: [R. Belmont]
- Added support for 8-bit H8 family MCUs, starting with the H8/3344
- Pointer-ified all H8 cores
- Some cleanup and renames toward additional future work

System 23: [R. Belmont]
- Added extremely preliminary support for I/O boards with the H8/3344

Removed the change_pc() macro. Changed memory_set_direct_region() to return a boolean indicating whether the given address was successfully located in a bank. Change raw/decrypted access to look at this result, and if the given address is not in a bank, calls through to the standard read handlers. This should prevent most crashes when accessing opcodes. [Aaron Giles]

Fixed address space mapping handlers to invalidate direct access regions if a change is made to the mapping. This is needed to prevent the Sega dynamic memory mapping chips from falling over. [Aaron Giles]

Refactored the CDP1802 and COP400 CPU cores to use the new memory functions. [Curt Coder]

Switched m6809 and hd6309 to new memory functions: [couriersud]
* cleaned up some macros
* aligned code a bit more
* interrupts now checked in cpu_execute instead of set_context

Pointerified the psx cpu core & switched it to the new memory functions. Changed some MIPS_* to PSXCPU_*. [smf]

Fixed broken crazywar eeprom. [David Haywood]

Another significant memory system change: [Aaron Giles]

  Moved memory global state into a struct hanging off of the machine. Updated almost all memory APIs to take an address_space * where appropriate, and updated all callers. Changed memory internals to use address spaces where appropriate. Changed accessors to point to the memory_* functions instead of the address space-specific functions. Improved internal handling of watchpoints.
  Added cputag_* functions: cputag_reset(), cputag_get_index(), cputag_get_address_space(). These just expand via macros to an initial fetch of the CPU via cputag_get_cpu() followed by the standard CPU call.
  Added debugger_interrupt_hook() and debugger_exception_hook() calls which intelligently look at the debugger flags before calling.

  Memory banking now requires a machine object. This makes the memory system fully global-free.

Pointer-ified the jaguar CPU core. [Aaron Giles]

Pointer-ified the TMS32031 core. [Aaron Giles]

Replaced parent crkdown image with one containing valid settings data (prevents game booting with 0 seconds and invalid highscore data which it can't restore correctly). [David Haywood]

Converted H8 CPUs to the new memory functions. [R. Belmont]

Debugger interfaces cleanup. Added callback parameters to the expression engine. Improved CPU parsing so you can use a CPU tag or index in most commands that take one. Switched to passing CPU and address space objects around where appropriate. Symbol tables now have a global ref as well as a per-symbol ref. Debugcpu is now clear of active CPU references and global Machine references. Lots of other minor tweaks. [Aaron Giles]

Pointer-ified cpu/nec (V30). [couriersud]

Switched adsp21xx to new memory functions. [couriersud]

Fixed several protection issues with Double Wings, improved video and sound. [Angelo Salese]

Converted ssp1601 to pointers (still works, tested virtua racing genesis). [Curt Coder]

Pointer work on se3208 (although I haven't touched the disassembler..) [David Haywood]

Adjusted bbusters volume balance slightly. [David Haywood]

MC6845: Hsync needs to toggle on every scanline. [Curt Coder]

Converted remaining CPU cores over to new memory functions. [Aaron Giles]

Un-deprecat'ed the H8. [R. Belmont]

Removed cpu_read_byte/cpu_write_byte. Thesea are replaced with memory_read_byte/memory_write_byte. [Aaron Giles]

Pointer-ified the M377xx. [R. Belmont]

Removed all direct memory accesses via program_read/write_* from game drivers. All drivers now use the memory_read/write_* and pass in an address space. [Aaron Giles]

Removed ROM banking kludges from bublbobl, ninjakd2, tnzs, lsasquad, missb2, and other drivers. [Nicola Salmoria, David Haywood]

Pointer-"ified" the s2650 core. [couriersud]

Removed memory context switch. All memory accesses now specify an address space explicitly. There is no longer any concept of a "current" memory context. [Aaron Giles]

Enhanced the runtest.cmd to use all available processors. [Aaron Giles]

Removed cpu_num info from SH2 in favor of just keeping the device object. [Aaron Giles]

Better fix for vendetta eeprom. [Mamesick, Fabio Priuli]

Removed all vestiges of the old change_pc macro, which is no longer needed with the banking improvements. [Aaron Giles]

Added the latest "what we know" to the plygonet driver. [Phil Bennett]

More accurately describes the aux board behavior for Ms. Pac-Man. There is a thorough description of how the board works. mspacman is a more faithful emulation. In particular you can now enter service mode (F2) at anytime during game play. [Steve Golson]

Derived clocks from crystals in in ace.c, asteroid.c, avalnche.c, blockade.c, boxer.c, bzone.c, cosmic.c, firetrk.c, galaga.c, lazercmd.c, meadows.c, missile.c, orbit.c, skydiver.c, sprint2.c, warpwarp.c, williams.c. [Luigi30]

Added diplocations to meadows.c, mugsmash.c, orbit.c. [Luigi30]

Unified sprint2.c memory map. [Luigi30]

Unified galaga.c CPU4 memory maps. [Luigi30]

Changed flyball CPU clock to a #defined crystal. Added dip locations. [Luigi30]

Added new sound core for the Oki MSM6258. [Barry Rodewald]

Added dates to Tron revisions. Swapped tron/tron2 now that we know tron2 is the later version. [Tim Lindquist]

New games added or promoted from NOT_WORKING status
Filetto [Angelo Salese]
Jackie Chan - The Kung-Fu Master [David Haywood, Andreas Naive, stephh, Angelo Salese]
Firefox [Aaron Giles, smf]

New clones added
Beast Busters (US, Version 2) [Brian Hargrove]
Puzzle Bobble 2 (Ver 2.3O 1995/07/31) [Ross Myers]
Street Fighter II' - Champion Edition (Rainbow set 3, bootleg) [Bill DeLeo]
Violent Storm (ver UAC) [Bill DeLeo]
Daitoride (YMF278B version) [Stefan Lindberg]
Soldam (World?) [Gerald]

New games marked as GAME_NOT_WORKING
Motocross Go! (MG3 Ver. A) [Guru]


MAMETesters Bugs Fixed
- 02638: [Compiling] various cpu cores don't compile anymore (Aaron Giles)
- 02709: [Documentation] nstockr2: nstockr2 not defined as clone of nstocker? (Luigi30, Edward Swiftwood)
- 02713: [Crash/Freeze] demndrgn, profpac: demndrgn gives a black screen only. profpac doesn't accept coins. (Aaron Giles)
- 01442: [Sound] wwfsstar: The OKI6295 playback frequency is too high. (Phil Bennett)
- 00894: [Crash/Freeze] elecyoyo: Inserted coins and pressing start sometimes leads back to the test menu. (Mamesick)
- 02658: [Interface] Supplement game status reports with yellow screen (Edward Swiftwood)
- 02689: [Multisession] jumpbug: Jumpbug won't start second time around (Atari Ace)
- 02673: [Crash/Freeze] All Sets with HuC6280 as Audio Device (PCE-Based titles): Fatal Error after OK (Aaron Giles)
- 02676: [Color/Palette] All Laserdisc Games: Wrong colors using Direct3D on ATI cards. (Aaron Giles)
- 02680: [Misc.] carnevil: -verifyrom fails to consider if a CHD is a BAD_DUMP (Aaron Giles)
- 02705: [Crash/Freeze] connect4: connect4 crashes if nvram file is present (Aaron Giles)
- 02702: [Sound] tturf: no audio (Aaron Giles)
- 02691: [Sound] Some drivers with z80/ay8910 Audio: Audio tempo has changed (Aaron Giles)
- 02669: [Sound] pandoras: music tempo is too fast (Aaron Giles)
- 02683: [Crash/Freeze] Pressing F5 while running debugger causes access violation (Aaron Giles)
- 02687: [Core] emuopts.c: CORE INPUT AUTOMATIC ENABLE OPTIONS (Aaron Giles)
- 02688: [DIP/Input] DIP switch settings are not being stored in INP files. (Aaron Giles)
- 02693: [Crash/Freeze] dacholer, kickboy: Freeze on the title or credit. (Mamesick)
- 02653: [Sound] all games on artmagic.c: OKI clipping in artmagic games (Nicola Salmoria)
- 02690: [Graphics] jantouki: The upper screen is totally garbled. (Mamesick)
- 02672: [Crash/Freeze] Most Sets using MCS48/51.C (intel 80xx family): Fatal Error when using -cheat trigger (Aaron Giles)
- 02670: [Core] Many sets using SH2: The SH2 timers aren't firing at the correct speed / time, causing various issues (Aaron Giles)

Source Changes
Fixes subtle timing calculation problems that affected SH-2 timers. [Aaron Giles]

Fixed copy/paste error on viostorm rom names. [David Haywood]

Made non-critical UI warnings yellow instead so that they stand out. [BarnacleEd]

Added Treasure Island to the Burger Time HW. It doesn't work because
I highly suspect that there's an unhandled encryption scheme in it. [Angelo Salese]

Pointer-ified the CCPU and T-11 cores. [Aaron Giles]

Removed globals from cpuexec. Also removed ATTOTIME_TO_CYCLES() and ATTOTIME_IN_CYCLES(). Replaced them with functions in cpuexec: cpu_clocks_to_attotime() and cpu_attotime_to_clocks(), both of which take CPU devices instead of indexes. Updated all callers, many of which were using the functions dubiously. [Aaron Giles]

Added placeholders for interrupt callback and Z80 daisy chain functions in Z80DMA. [Curt Coder]

Pool items are now tracked globally, and freed in reverse order of allocation. This enables proper nesting. [Aaron Giles]

Changed timer_alloc, timer_set, timer_pulse, timer_call_after_resynch, and timer_get_time to pass the machine parameter. Moved timer globals to hang off of the running_machine. [Aaron Giles]

Pointer-ified the hyperstone core, and removed all activecpu refs. [Aaron Giles]

Removed cpunum_get_active() calls and activecpu references from all of the CPU cores. [Aaron Giles]

Normalized several local CPU state variables to the generic 'cpustate' instead of names_with_underscores. [Aaron Giles]

Added macros to access ROM and MACHINE_DRIVER by name. [Curt Coder]

Normalized CDP1802 state variables to 'cpustate'. [Curt Coder]

Removed all references to cpunum_get_active() and removed the function entirely. [Aaron Giles, Andrew Gardner]

Updated t5182 memory mapping a bit to properly handle mirrored areas; added comments about how shared ram works. [Lord Nightmare]

Fixed reversed VBLANK-IN/OUT events in ST-V. Fixes hanagumi/groovef 2 credits at start-up. [Angelo Salese]

Added ATTR_NONNULL to various declarations. [Nathan Woods]

Pointer-ified the 65816. [R. Belmont]

Many improvements on the irq handling of the ST-V driver: [Angelo Salese, Charles MacDonald]
* Fixed a bug with irq timings;
* Added ODD bit emulation;
* Fixed vblank period timings;
* Optimized a bit the whole interrupt routines, getting a 4x speed gain
* Fixed an irq mask handling bug;
This fixes at least Astra SuperStars and Pebble Beach booting, but the latter still fails the timer 1 irq routines...I need to check why)

Pointer-ified the SPC700. [R. Belmont]

Fixed stepping in the debugger. [R. Belmont]

ARM7 updates: [R. Belmont]
- Pointer-ified ARM7 core
- Added disassembler and execution support for ARMv5 LDRD/STRD instructions. 39in1 now makes it until it needs the MMU.

The jchan gamse aren't really clones even if they share most of the same roms. They're very different. [David Haywood]

Pmpoker.c major rewrite (part 2): [Roberto Fresca]
- Changed the driver name to goldnpkr.c (Golden Poker is the most representative hardware).
- Splitted the PIA interfases to cover witchcrd/pottenpkr connections.
- Fixed the witchcrd/pottnpkr/sloco93 double up mode.
- Replaced the pottenpkr layout with goldnpkr one in all Jack Potten's Poker sets.
- Updated game notes for Witch Card and Super Loco 93 sets.
- Fixed al inputs & lamps to allow double up mode to the above games.
- Added Witch Card (Video Klein) but still not working.
- Added several Buena Suerte! sets.
- Added new games: Maverik, Brasil 89 & Poker'91.
- Reworked the sets parent-clone relationship (still in progress).

Cleaned up gfx decode on Sengoku Mahjong. [Angelo Salese]

Improvements to funworld.c driver [Roberto Fresca, Andreas Naive]
- Decripted saloon's program, graphics and color PROM.
- Created a new memory map and machine driver for saloon.
- Removed set jolycdae (it's not coming from a real board).
- Renamed the sets magiccrd, magiccda and magiccdb, to magicrd2, magicd2a and magicd2b.
- Updated technical notes.

Fixed RGB565 bugs in Ghost Eolith driver. [Angelo Salese]

Changed oki 6295 to use a reasonable volume table derived from the manual. Added popmessages to notify of invalid commands so we can investigate them if some game uses them. It should also be noted that many games using this chip are clipping at the moment. This is something that might date back to when sound mixing was upgraded to 32-bit. It is sensible for the 6295 emulator to output at this level because it ensures that bits of precision are not lost, so the mixing levels in the drivers should be adjusted to avoid clipping. [Nicola Salmoria]

Cool Riders: added an hack for the SH-2, fixed some irqs and some memory maps/ram sharing. Got to the point that area 0x03e00000 on the SH-2 loads some DMA-style tables. (and this is going to be REALLY nasty to do without docs...) [Angelo Salese]

Added layer enable register, coin counter, coin lockout and cleaned-up the Sengoku Mahjong driver. [Angelo Salese]

Big debugger cleanup: [Aaron Giles]

  Important note for OSD ports: the get/set property functions have been retired for debug_views. Instead, there are specific functions to perform each get/set operation. In addition, the format of the update callback has changed to pass the osd private data in, and the update callback/osd private data must be passed in at view allocation time. And osd_wait_for_debugger() now gets a CPU object instead of the machine.

  Removed extra debugger tracking for address spaces and added some of the useful data to the address_space structure. Updated all debugger commands and views to use CPU and address space objects where appropriate.

  Added new memory functions for converting between bytes and addresses, and for performing translations for a given address space. Removed debugger macros that did similar things in favor of calling these functions.

  Rewrote most of the memory view handling. Disasm and register views still need some additional tweaking.

  Added the concept of 'subviews' to the debugger views. The core now creates a list of possible subviews, and the OSD can select between them. This removes code from the OSD that was previously required to find all possible memory and disassembly views.

  Added machine parameters to debugger console output functions.

  Moved globals to hang off of the machine structure.

  Fixed bug where the visiblecpu was not updated immediately upon a break.

Made the 6850 ACIA a device. [Nathan Woods]

Re-enabled the OSD key for master volume control. All other sliders are still only accessible via the menus. [Aaron Giles]

Renamed constants: [Aaron Giles]

To fix 02688 (DIP switch settings are not being stored in INP files), old INP files had to be broken. Since they were already broken, the corefile module was enhanced to support streaming compression, and the new INP files are output and processed compressed. [Aaron Giles]

Added a number of new cputag_* macros to cpuexec.h. [Aaron Giles]

Removed fillbitmap() macro in favor of direct calls to bitmap_fill(). Note that the parameters to the latter are in a different order (bitmap, clip, color). [Atari Ace]

Furthered the process of aligning the sound cores with the recent cpu core changes. Added a fake device implementation similar to the one the cpu cores are using. Made some interface adjustments aligned to 128u4 (i.e. adding snd_class_header, adding get_ to various getter functions). The primary benefit of this change is the removal of "deprecat.h" from 23 sound cores. Also adjusted ui.c to stop calling sndnum_clock and access the clock data similarly to how it does the cpu clock data. (Note from Aaron: further changes to the sound interfaces will be kept to a minimum until the CPUs are sorted out.) [Atari Ace]

Fixed 8080 interrupt handling: [Miodrag Milanovic]
1. previous implementation cleared interrupt enable bit on interrupt trigger which is wrong since interrupts should stay enabled
2. service interrupt number was not cleared after interrupt is executed, so if same one is triggered it will not be catched.

Made the 6526/8520 CIA implementations be devices. Added differentiation between the r1 and r2 versions of the 6526; not acting on it yet. [Nathan Woods]

Save state system improvements: [Aaron Giles]
  Changed save state system to accept machine parameters where appropriate, and to keep all global variables hanging off the machine structure. Once again, this means all state registration call sites have been touched:

    - state_save_register_global* now takes a machine parameter
    - state_save_register_item* now takes a machine parameter
    - added new state_save_register_device_item* which now uses the device name and tag to generate the base name

Extended the fake sound devices to have more populated fields. Modified sound cores to use tags from the devices and simplified the start function. [Aaron Giles]

Renumbered CPU and sound get/set info constants to align with the device constants, and shared values where they were perfectly aligned. [Aaron Giles]

Set the type field in the fake device_configs for CPU and sound chips to a get_info stub which calls through to the CPU and sound specific get_info functions. This means the device_get_info() functions work for CPU and sound cores, even in their fake state. [Aaron Giles]

Changed device information getters from device_info() to device_get_info() to match the CPU and sound macros. [Aaron Giles]

Removed cpunum_get_active(). Main important change is that IDE controllers with bus mastering (DMA) need to specify the target address space in the IDE device configuration. [Aaron Giles]

Removed mame_find_cpu_index(). Use cputag_get_cpu() instead. Updated all drivers calling this to the newer function, and generally simplified their code as a result. [Aaron Giles]

Added NVRAM emulation to Sengoku Mahjong. [Angelo Salese]

Merged The Couples driver with Merit, fixing most of the graphics/ color bugs in it. [Angelo Salese]

Removed mostly silly uses of activecpu from the CPU cores. [Aaron Giles]

New games added or promoted from NOT_WORKING status
Tennis (bootleg of Pro Tennis) [Angelo Salese]
Maverik [Roberto Fresca]
Brasil 89 [Roberto Fresca]
Poker'91 [Roberto Fresca]
New Magic Card [David Haywood, Angelo Salese]
Millenium Nuovo 4000 [David Haywood, Angelo Salese]

New clones added
Buena Suerte (21 new sets) [Roberto Fresca]
Royalea [Roberto Fresca]
Black Tiger (bootleg alt) [mameitalia]
Surf Planet (Version 4.0) [Smittdogg]
Worldcup 90 (bootleg) [robiza]
J.J. Squawkers (bootleg) [robiza]
Loco-Motion (bootleg) [David Haywood]

New games marked as GAME_NOT_WORKING
Treasure Island [Angelo Salese]
Destiny Horoscope [Angelo Salese]
Galaxian 3 [Andy Welburn]
Witch Card (Video Klein) [Roberto Fresca, Guru]
Bra$il [David Haywood, Angelo Salese]
Fashion (Version 2.14) [David Haywood, Angelo Salese]
Il Pagliaccio [David Haywood, Angelo Salese]


MAMETesters Bugs Fixed
- 02728: [Crash/Freeze] galpani3: 'Illegal Instruction' after ROM Check (R. Belmont)
- 02739: [Sound] skysoldr: In-game music (three level BGMs and boss theme) plays one octave higher. (Phil Bennett)
- 02718: [Crash/Freeze] zigzag, zigzag2: Don't boot correctly. The screen just flashes over and over. (Aaron Giles)
- 02730: [Crash/Freeze] fiveside: locks up at rom check (Aaron Giles)
- 02740: [Debugger] resizing the debug window, the text is only in the old area (Aaron Giles)
- 02721: [Crash/Freeze] All Sets in arcadia.c: Games not booting, they just keep resetting to a white screen. (Aaron Giles)
- 02661: [Gameplay] f1gpstr2: Game freezes upon reaching track (Mamesick)
- 02708: [Crash/Freeze] wildplt: Gameplay freezes at start (Mamesick)
- 02724: [DIP/Input] elgrande, jjpoker, ssipkr24: Unable to locate input port 'SW2'. (Roberto Fresca)
- 02677: [Graphics] eprom, eprom2: missing graphical brightness effect, verified on real machine w/video (Nicola Salmoria)

Source Changes
Pointer-ified the following CPU cores:
- DSP32 [Aaron Giles]
- m6805 [Andrew Gardner]
- MIPS 3 [Aaron Giles]
- PowerPC [Aaron Giles]
- Konami [Aaron Giles]
- ARM [Andrew Gardner]
- SHARC [Atari Ace]
- V60 [Aaron Giles]
- Z8000 [Aaron Giles]
- Z180 [Aaron Giles]
- V810 [Aaron Giles]
- V30MZ [Aaron Giles]
- PDP1/TX0 [Wilbert Pol]
- H6280 [Andrew Gardner]
- F8 [Atari Ace]
- TLCS-90 [Atari Ace]
- Cube Quest CPUs [Aaron Giles]
- i86/i286 [Aaron Giles]
- i386 [Aaron Giles]
- ALPHA-8201 [Aaron Giles]
- i8085 [Aaron Giles]
- APEXC [Aaron Giles]
- RSP [Aaron Giles]
- MB88 [Aaron Giles]
- MB86233 [Aaron Giles]
- TMS7000 [Aaron Giles]
- SH2 [Aaron Giles]
- SH4 [Aaron Giles]
- uPD7810 [Aaron Giles]
- TMS32051 [Aaron Giles]
- MC68HC11 [Aaron Giles]
- CP1610 [Aaron Giles]
- LH5801 [Aaron Giles]
- LR35902 [Aaron Giles]
- PDP1 [Aaron Giles]
- Saturn [Aaron Giles]
- SC61860 [Aaron Giles]
- TMS32010 [Quench]
- PIC16C5x [Quench]
- TMS99xx [Aaron Giles]
- TMS32025 [Quench]
- dsp56k [Quench]

Enabled all CPU cores/variants. Fixed compile issue revealed as a result. [Aaron Giles]

Changed konami setlines callback to pass a device. Updated all drivers accordingly. [Aaron Giles, Atari Ace]

Added best-known CRC in wb90b2 and jjsquawb "bad dump" roms. [robiza]

Made the PCI bus a device. The bus is declared in the machine config, and the devices attached to it are enumerated there. Eventually, the PCI config read/write functions should be moved to well-known functions within the device, but for now they are kept separate. [Aaron Giles]

Added correct proms for arkgcbl. [robiza]

Changed many, many global Machine references to use machine, device->machine, etc. instead. [Atari Ace]

Changed megadriv.c to pass running_machine to I/O callbacks plus other MESS support. [R. Belmont]

Re-synced f3853 core with MESS. [Nathan Woods]

Introduced function macros for SAMPLES_START, CUSTOM_{START,STOP,RESET}, and ANTIC_RENDERER. Pushed the running_machine * passing through these functions. In other locations added "running_machine *machine = Machine" to the top of functions to isolate the dependencies. [Atari Ace]

Added logic to track OSD debugger updates separately from internal view updates. In order to get the OSD to update, a new function debug_view_flush_updates() must be called. Currently this is automatically called before osd_wait_for_debugger(), and during the periodic updates while executing. The OSD code may occasionally need to call it under other circumstances (for example, the Windows code calls it explicitly while tracking scrollbar thumbs to get live scrolling). [Aaron Giles]

Updated gradius2 to use proper gfx2 roms (same values of vulcan but byteswapped). [robiza]

Disabled the use of PULSE_LINE for any input lines except NMI and RESET. Added a helper function generic_pulse_irq_line() for doing a single-cycle assert/deassert for those few drivers remaining that were trying to use PULSE_LINE directly. [Aaron Giles]

Updated z8000 tables to reflect recent findings. [Juergen Buchmueller]

Fixed the widely used konamiic/taitoic/deco16ic/segaic16 video cores to no longer reference the global Machine. [Atari Ace]

Added wrappers for ADSP21xx callbacks. Added device parameters to them. Updated IRQ setters to use generic_pulse_irq_line(). [Aaron Giles]

Added MDRV_PIC8259_ADD, MDRV_PIT8353_ADD, MDRV_PIT8254_ADD, and MDRV_DMA8237_ADD macros. [Wilbert Pol]

Added the sound device to the parameters passed to stream_create so that the global Machine can be removed from streams.c. [Atari Ace]

Improvements to Millennium 4000 driver: [Roberto Fresca]
- Completed normal Inputs/Outputs.
- Added button-lamps calculation.
- Created button-lamps layout.
- Documented the PCB RAM.
- Fixed NVRAM size based on PCB picture (2x CY62256L-70PC near the battery).
- Added notes about the method to make appear the real poker cards.
- Fixed the OKI 6295 frequency (1000 kHz resonator near). Now the game has more decent sounds.
- Corrected CPU clock to 12 MHz. (main Xtal).

Updated adp driver: now fashiong show something. [robiza]

Widened some machine init interfaces to pass the machine parameter, allowing more Machine global references to be eliminated. Eventually most of these need to be converted to devices, but this change reduces the deprecation surface in the meantime. [Atari Ace]

Relaxed the OKI 6295 command validity check. [Nicola Salmoria]

Added new function cpuexec_describe_context(machine) which can be used in logerror() and other printf-style functions to return a description of the current CPU/PC given only the machine. Changed several dozen sites to use this instead of directly interrogating the activecpu. [Aaron Giles]

Removed all other uses of activecpu throughout the system. Removed activecpu from the machine structure to prevent future abuse. [Aaron Giles]

Removed cpu_push_context() and cpu_pop_context(), and all call sites. [Aaron Giles]

Voodoo devices now require a CPU to be defined in the configuration in order to know whom to steal cycles from or stall when FIFOs get full. Updated all voodoo users to specify one. [Aaron Giles]

CPD1869 devices now also require a CPU to be defined in the configuration, in order to know which CPU's registers to fetch. Updated all cdp1869 users to specify one. [Aaron Giles]

Removed get context/set context calls from the CPU interface entirely. [Aaron Giles]

Removed safe_cpu_get_pc() which doesn't really make sense anymore. [Aaron Giles]

Moved cpu_execute() to be an inline function. [Aaron Giles]

Writes to a pit8253 timer control word always restart the timer. [Wilbert Pol]

Updated the fcompress APIs to allow for specifying a compression level. [Aaron Giles]

Removed the concept of state saving tags, which was a hack to get save states to work with multiple CPU cores. Simplified the state saving system as a result, performing the operation in a single pass and without allocating a full blob of memory. Also enabled minimal compression. [Aaron Giles]

Squashed another deprecated use of Machine from the mame core by plumbing machine_config into rendlay.c. [Atari Ace]

Fix Altivec RGB primitives on newer GCCs. [budge, Vas Crabb]

Changed commonly-used verboselog to require a machine parameter. [Atari Ace]

Removed remaining deprecat.h references from the CPU and sound cores. [Atari Ace]

i8085: added INTE and state word callbacks [Curt Coder]

n8080.c changes: [Curt Coder]
- rewrote interrupt handling according to schematics
- added interrupt acknowledge

Re-ordered SCSP init to fix crash. [R. Belmont]

Modified regrep to display the soruce file. [Aaron Giles]

Expanded cpuexec cycles <-> attotime functions to handle UINT64s. [Aaron Giles]

Reduced all alpha68k.c YM2413 clocks from 8MHz to 3.579545MHz. [Philip Bennett]

Changed attotime_to_ticks/ticks_to_attotime to use UINTs and the eminline functions where possible. [Aaron Giles]

Changed the 6522 VIA implementation to be a device. [Nathan Woods]

Removed the ACIA6850 device from Cal Omega System 905 machine driver. It fixes the wrong lack of SW2. [Roberto Fresca]

Fixed EI handling in the 8080/85 core to have a shadow like the Z80. [Miodrag Milanovic]

Modified the tms34010.h, pc16552.h, and tms34061.h interfaces to eliminate some more global Machine variables. Six more deprecat.h includes eliminated. [Atari Ace]

Eliminated the #include "deprecat.h" from tilemap.c. The main change is to require callers of tilemap_create to provide a machine pointer. This pointer is then attached to the tilemap and used when needed inside tilemap.c. [Atari Ace]

Eliminated the #include "deprecat.h" from drawgfx.h.  It does so in a fashion similar to my recent tilemap patch, adding the machine pointer to gfx_element, changing allocgfx to take a machine, and then adjusting the internals to use the machine field as needed. [Atari Ace]

i960: fixed nor opcode and added notor opcode [robiza]

Fixed raster effects in nbbatman by altering the V33 prefetch timing (just a guess as no documentation has been found). [couriersud]

Removed unnecessary address masking in disassembly view. Changed console subview computations to leave the registers portion fixed. [Aaron Giles]

Removed hack for setting mcs51 serial callbacks. Updated micro3d to use new functions. [Aaron Giles]

Merged goldstar.c & cmaster.c drivers. Converted the Reels video to tilemaps. [David Haywood]

Added proper artwork for the LEDs in Gridiron Fight. [David Haywood]

New games added or promoted from NOT_WORKING status
Super Pool 99 [David Haywood, Angelo Salese]
Bra$il / Fashion [Angelo Salese]
Pesadelo [Mariusz Wojcieszek, hap]
Super Free Kick [Tomasz Slanina]
Jangou [David Haywood, Angelo Salese, Phil Bennett]
Jangou Lady [David Haywood, Angelo Salese, Phil Bennett]

New clones added
Europa 2002 Space (Ver 3.0) [Roberto Fresca]
Triv Two (Vertical) [David Haywood]
Super High Impact (prototype, rev 6.0 09/23/91) [Smittdogg]
Giga Man 2: The Power Fighters [David Haywood, Arzeno Fabrice]
CarnEvil (v1.0.3) [Brian Troha]
(New?) Cherry Bonus III (not working) [David Haywood]
Cherry Bonus III (not working) [David Haywood]

New games marked as GAME_NOT_WORKING
Cherry Bonus 2001 [David Haywood, robiza]
Four Roses (encrypted, 2 sets) [Roberto Fresca]
Queen [David Haywood]
Cherry Master (Corsica, v8.01) [David Haywood]
Cherry Master 91? [David Haywood]
Jackie [David Haywood]


NOTE: As of this release, we have two more major changes. These should be the last "huge" changes of this dev cycle.

The most major change is the final retirement of the global Machine pointer, which has been part of MAME for many years. Frankly, I never thought we'd hit this point so quickly, so my hats off to Atari Ace who helped push through the final round of changes needed to make this happen finally. As a result of this change, it should be possible in the coming year to finally write a driver that runs two full machines simultaneously.

The second big change is that the CPUs are now full-fledged devices, and participate like all other devices in the system configuration. This is mainly an internal structural change, but in the end removes some redundant code and behavior. In a future dev cycle, a similar thing will happen with the sound cores.

Starting now, the focus for MAME will be to iron out remaining issues and release a 0.129 sometime around the 1st of the year. Please keep reporting bugs to MAMETesters as you find things.

MAMETesters Bugs Fixed
- 02745: [Crash/Freeze] all sets using autosave: Games using autosave segfault on startup (Aaron Giles)
- 02750: [Sound] All Sets in equites.c: no background music (Aaron Giles)
- 02757: [Documentation] sengoku3: manufacturer should be "Noise Factory / SNK" (Phil Bennett)
- 02753: [Crash/Freeze] gradius4: hardware error -1 (Aaron Giles)
- 02755: [Crash/Freeze] All Sets in metro.c: Crash with access violation. (Aaron Giles)
- 02756: [Crash/Freeze] hyprduel, hyprdelj: Colors on the title screen wrong, games crash mame with ACCESS VIOLATION (Mamesick)

Source Changes
Removed old cherrym driver (meant to be removed last time, oops). [Aaron Giles]

Funworld.c improvements [Roberto Fresca]
- Added new set: Jolly Card (italian, encrypted bootleg). No coins... Only remote credits. After nvram init, set the Payout DIP to 'manual' to allow the remote credits mode to work.
- Created inputs from the scratch for jolycdib.
- Updated technical notes.

Made CPUs into proper devices. CPUs are now added in the machine configuration just as any other device, and the standard CPU configuration is performed via the inline configuration macros. [Aaron Giles]

Changed cpu_type from an enumeration into a pointer to the CPU's get_info function, very similar to device behavior. Updated all drivers to #include the necessary header files for the CPU's they reference. [Aaron Giles, Atari Ace]

Added function cpu_get_type() to return the CPU type. [Aaron Giles]

Changed several cpu_* functions over to the device_* equivalents, specifically for get/set info and for reset. [Aaron Giles]

The device system now maintains a parallel list of devices based on type and class, for faster iteration through all devices of a given type or class. [Aaron Giles]

Cleaned up code that looped over CPUs via the machine->cpu array to now loop using the type-based device list. [Aaron Giles]

Removed start/stop/reset/nvram functions from the device_config in favor of grabbing them as needed. [Aaron Giles]

Cleaned up the generic interrupt_enable code to work with CPU devices instead of numbers. [Aaron Giles]

Mapped the devtag_* functions to device_* functions via macros instead of parallel implementations. [Aaron Giles]

Removed cpuintrf_init() which is no longer necessary. [Aaron Giles]

Changed a number of APIs in the system to accept running_machine, address_space, or device_config types, in order to remove the use of the global Machine variable. Removed the global Machine variable now that it is no longer directly references. [Atari Ace, Aaron Giles]

Added the concept of device "owner", for devices owned by other devices. [Aaron Giles]

Modified laserdisc players to walk back to their global device state via the owner, rather than brute-force searching for the first instance and hoping that is the right one. [Aaron Giles]

Finalizer update [poUzVdb90]
- converted to tilemap
- added flipscreen
- changed sound chip name from SN76496 to SN76489A

Made the concept of a "clock" native to devices. The clock is now specified when the device is added, and the clock is available in the device_config directly via device->clock. Updated all devices that have a clock to specify it when adding the device, rather than as part of their configuration. As part of this work, also created device-specific _ADD and _REMOVE macros to simplify configuration. [Aaron Giles]

Defined a generic device execute function callback, though it is not used yet. The long term plan is that any device with an execute callback will be scheduled along with the CPUs. Now that CPUs are devices, their scheduling will be moved over to this logic eventually. [Aaron Giles]

Changed various NVRAM devices to fetch their default memory region from the device->region rather than specifying it in the configuration. [Aaron Giles]

Moved device startup to *before* the DRIVER_INIT is called. This is to allow the DRIVER_INIT to configure devices that have been properly allocated. So far I don't see any negative effects, but be on the lookout if something weird shows up. [Aaron Giles]

Rewrote the device iteration logic to make use of the typenext field and the newly-introduced classnext field for iterating more efficiently through devices of a given type or class. [Aaron Giles]

Modified the parameters of the stream_update_func callback. As part of this work, macro-ized all the callbacks to STREAM_UPDATE, and added the sound device as a parameter. [Atari Ace]

Cleaned up i86/i286/i386/nec/v30mz headers: [Aaron Giles]
* renamed i86.h -> i86priv.h
* renamed i86intrf.h -> i86.h
* consolidated i88intrf.h, i186intf.h, i188intf.h, etc into i86.h

Cleaned up many other CPU headers to move memory read/write macros out of them, since they are inappropriate and should be prive to the CPU core. [Aaron Giles]

Removed index and clock parameters from CPU_INIT function. [Aaron Giles]

Some PIC8259 updates: [Wilbert Pol]
- Fixed operation of edge-triggered interrupts
- INT output line is now cleared when an IRQ is acknowledged
- Implemented basic OCW3 features

Fixed proms in boobhack. [robiza]

Decoded some graphics and setup some RAM in the Virtual Combat driver. [Andrew Gardner]

Cleaned up device and sound interfaces to match the CPU interfaces when handling strings. Namely, the generic get_info functions allocate a temporary string and the device in question copies its string to the target, instead of assigning a const char *. Updated all device and sound cores to operate this way. [Aaron Giles]

Added the concept of a cpu_state_table, which is supplied by the CPU cores and which describes all the register state accessible to the debugger and other subsystems. The format of the table is such that most data can be simply fetched from memory without the further involvement of the CPU core, including the display of common formats. Extensibility points are available for custom display and for importing/exporting the data to intermediate variables for more complicated scenarios. Updated the ADSP21xx, TMS340x0, i86, Z80, Z180, and 8085 cores to use this. [Aaron Giles]

Removed the old debugger register list, which was never used. Replaced it with using ordering from the cpu_state_table. [Aaron Giles]

Renamed REG_PC -> REG_GENPC, REG_SP -> REG_GENSP, and REG_PREVIOUSPC -> REG_GENPCBASE. Updated a few spots that were using these directly. Moved these definitions into the end of the register area rather than leaving them outside which put them in a weird range. [Aaron Giles]

More cleanup. Added address-space-specific constants for the various bus width and shift CPU interface constants. Changed all the cores to use them. [Aaron Giles]

Changed ADSP21xx cores to accept a configuration struct instead of using set_info to specify serial port callbacks. Simplified the ADSP21xx get/set info significantly. Removed support for only including certain variants of the chips; they are now either all supported or all unsupported. [Aaron Giles]

Memory view fixes: [Aaron Giles]
* Fixed bug that computed the wrong total size if the address space was a full 32 bits
* Improved display to show unmapped memory with *s
* Disabled enumeration of disk and 0-length regions

Added PAL to arkgcbl. [robiza]

Added Country Girl to the Jangou driver,working with sound [David Haywood, Angelo Salese]
- Fixed transparency pens in the Jangou driver (so removed the GAME_IMPERFECT_GRAPHICS flag); [Angelo Salese]
- Added a kludge for Jangou Lady RNG,will be worked on in the future; [Angelo Salese]

Added running_machine callbacks for the Amiga code. [Nathan Woods]

Updated sscope2 to use newly-dumped roms. [robiza]

Added running_machine parameters to the f3853 callbacks. [Wilbert Pol]

Added running_machine parameter to the callback in the sid interface. [Wilbert Pol]

Removed MDRV_INTERLEAVE(x), which specified the minimum scheduling quantum in terms of "frames" (a dubious concept now with multiple screens and changing refresh rates). Replaced it with a new MDRV_QUANTUM_TIME(x) which specifies the minimum scheduling quantum as a time value. Time can be specified as HZ(x), NSEC(x), USEC(x), etc. Updated all drivers to use this, assuming 60 was the frame rate (this is not perfect but should work for almost all cases). [Aaron Giles]

Changed MDRV_WATCHDOG_INIT_TIME(x) to automatically prepend UINT64_ATTOTIME_IN_ to the parameter, ensuring there is no improper use of this macro and bringing it in line with the MDRV_QUANTUM_TIME() macro. Updated all callers. [Aaron Giles]

Added new MDRV_QUANTUM_PERFECT_CPU(x) to specify that the minimum quantum should be enough to ensure that the specified CPU tag only ever executes a single instruction at a time. This can be used to explicitly require "perfect" synchronization for drivers that have multiple CPUs with shared memory. Turned this on for the arknoid2 driver for now as a test (the interleave on that driver was already very close to perfect anyway). [Aaron Giles]

Fixed some color issues in the goldstar.c driver [David Haywood]

Merged goldstar and lucky8 drivers. [David Haywood]

Improvements to ddragon3/shadfrce/wwfsstar/wwfwfest: [Mamesick]
- converted driver to be fully scanlines based using timers
- updated driver to new video screen raw parameters
- hooked up interrupts (ddragon3, wwfwfest)

Fixed Agress' title screen. [David VanVoorhis]

Fixed update_handler for the dsp56k and polygonet. [Andrew Gardner]

Improvements to the dmndrby.c driver. [Mike Green]

Continued rewrite of the Motorola DSP56k CPU core. [Andrew Gardner]
* Fixed flag calculation and sign extension for numerous ops.
* Added rnd, mpysuuu, and dmac ops.
* Fixed do loop behavior to skip empty loops.
* Added stack underflow exception handling.

Improvements to the skylncr.c driver: [Roberto Fresca, David Haywood]
- Complete reel support from the scratch.
- Full inputs, outputs & DIP switches from the scratch.
- Added new games.
- Updated technical and game notes.

Rewrote 8080/8085 interrupt handling so that it makes sense. Changed callbacks to be specified in a config structure. Converted core to cpu_state_table. Changed to a single HAS_808X define for both cores. Fixed several drivers that used 8080/8085 interrupts in odd ways. [Aaron Giles]

Converted warpwarp driver to raw video parameters. [Aaron Giles]

Fixe 'run to cursor' and 'toggle breakpoint' operations in the debugger when dealing with CPUs that have shifted address spaces. [Andrew Gardner]

Improvements to goldstar.c driver. [Roberto Fresca]
- Hooked the 3x PPI 8255 devices to chryigld and ncb3.
- Reworked the chryigld and ncb3 inputs based on PPI 8255 connections.
- Added the unmapped PSG sound to chryigld and ncb3.
- Some works on their machine driver.
- Some cleanups.

New games added or promoted from NOT_WORKING status
Country Girl [David Haywood, Angelo Salese]
4nin-uchi Mahjong Jantotsu [David Haywood, Angelo Salese]
Three Ds - Three Dealers Casino House [David Haywood, Angelo Salese]
Sky Lancer (Bordun, ver.U450C) [Roberto Fresca, David Haywood]
Butterfly Video Game (ver.U350C) [Roberto Fresca, David Haywood]
Mad Zoo (ver.U450C) [Roberto Fresca, David Haywood]
Casino Winner [Chris Hardy, Angelo Salese]
Cherry I Gold (bootleg of Golden Star) [Roberto Fresca]

New clones added
Jolly Card (italian, encrypted bootleg) [Roberto Fresca]
Double Dragon 3 - The Rosetta Stone (prototype) [Guru]

New games marked as GAME_NOT_WORKING
Grand Prix 98 [David Haywood]
Leader [Roberto Fresca, David Haywood]
Parent Jack [David Haywood]
Janshi [David Haywood]
Cherry Master I (v1.01) [Roberto Fresca, David Haywood]


MAMETesters Bugs Fixed
- 02644: [Gameplay] tdragon, tdragon1, hachamf: Coin counter doesn't decrease (Angelo Salese)
- 02799: [DIP/Input] mace: No player 2, button 4 available for mapping (Phil Bennett)
- 02676: [Color/Palette] All Laserdisc Games: Wrong colors using Direct3D on ATI cards. (Aaron Giles)
- 02104: [Crash/Freeze] metlhawk, metlhwkj: Crash while decoding with '-debug' trigger (Aaron Giles)
- 02575: [Misc.] taitogn: Not marked as bios in -listxml (Aaron Giles)
- 02779: [Crash/Freeze] sfiii2j: Access Violation with -debug (Aaron Giles)
- 02141: [Crash/Freeze] sunaq: At the Title, Game is Crash (Aaron Giles)
- 01961: [Crash/Freeze] jdreddp: [debug] Access Violation when loading savestate with -autosave and -debug (Aaron Giles)
- 02012: [Crash/Freeze] fatalerror with "symlist" while running game (Aaron Giles)
- 02760: [Crash/Freeze] Games using MC6845: Crash with an error on startup before OK. (Phil Bennett)
- 02714: [Sound] 3stooges: Speech works for a while, then starts going in and out of horrible noise and static (Aaron Giles)
- 02793: [DIP/Input] funkyjet: Unable to locate input port 'P1'. (Phil Bennett)
- 02776: [Crash/Freeze] mwalk, mwalkj, mwalku: Crash when starting game (Aaron Giles)
- 02790: [Core] Mame will crash on single monitor system if set to numscreens 2 in the *.ini. (Aaron Giles)
- 02791: [Crash/Freeze] cafetime: Access Violation with -debug (Phil Bennett)
- 02788: [Misc.] jjack, dorunrun and clones: Immense emulation speed drop (smf)
- 02742: [Crash/Freeze] xsleena and clones: Game freezes (Mamesick)
- 02768: [Documentation] mk3, mk3r20, mk3r10, mk3p40, umk3, umk3r10, umk3r11 : Roms incorrectly named as umk3 instead of mk3 + two versions of U2 SOUND ROM. (Aaron Giles)
- 02773: [Crash/Freeze] all gamecstl.c sets: [debug] Assertion (Aaron Giles)
- 02781: [Documentation] mt_mwalk: Change title to "Michael Jackson's Moonwalker (Mega-Tech)" (Aaron Giles)
- 02780: [Crash/Freeze] nss_smw: Integer Overflow with -debug (Aaron Giles)
- 02782: [Crash/Freeze] swa: [debug] Access Violation with -debug (Aaron Giles)
- 02783: [Crash/Freeze] SMS-Based megatech.c sets: [debug] Access Violation with -debug (Aaron Giles)
- 02785: [Crash/Freeze] a51site4: Interger Overflow with -debug (Aaron Giles)
- 01092: [Crash/Freeze] debugger crashes when exiting during "run to cursor" (robiza)
- 02738: [Documentation] zoar: The rom marked as bad dump is not bad. (Aaron Giles)
- 02758: [Compiling] linking ldplayer fails (Aaron Giles)
- 02764: [Crash/Freeze] liberatb: [debug] Access Violation (Atari Ace)
- 02765: [Crash/Freeze] all naomi.c sets: Assertion (Aaron Giles)
- 02771: [Crash/Freeze] all ddragon3.c, shadfrce.c and wwfsstar.c sets: [debug] Assertion (Mamesick)
- 02770: [Crash/Freeze] aceattac: Interger Overflow (Aaron Giles)
- 01437: [Sound] hardhead: MAME has the clock frequency of the YM3812 wrong. (Phil Bennett)
- 02772: [Crash/Freeze] hanayara: [debug] Access Violation (Phil Bennett)
- 02186: [Misc.] vliner, vlinero: Typo of manufacturer. (Phil Bennett)
- 02747: [Compiling] Compile error on openSUSE 11.1 / gcc 4.3.2 with OPTIMIZE=3 (Aaron Giles)
- 02763: [Crash/Freeze] some leland.c sets: Access Violation (Phil Bennett)
- 02766: [Crash/Freeze] topgunnr: Hangs (Phil Bennett)
- 02761: [Crash/Freeze] cntrygrl: [debug] Access Violation (Phil Bennett)
- 02762: [Crash/Freeze] galkaika, galkoku, hyouban, mcontest, tokimbsj, tokyogal, uchuua: Access Violation (Phil Bennett)

Source Changes
Significantly optimized the inner execution loop. arknoid2 is ~2.5x faster with maximum interleave now. [Aaron Giles]

CPU interface organization shuffle. The file cpuintrf.h now merely describes the interface, but does not contain any implementation. All remaining bits of implementation have been migrated either to cpuexec.c or to debugcpu.c. Specifically, cpu_dasm() is now debug_cpu_disassemble(), and cpu_set_dasm_override() is now debug_cpu_set_dasm_override(). Also moved memory_address_physical() to debug_cpu_translate(), since it was only ever used for debugging. [Aaron Giles]

Changed all CPU and sound cores to use memory_find_address_space() instead of cpu_get_address_space(). The former is reliable even during early initialization when the CPU cores generally need it. [Aaron Giles]

Removed the dummy CPU core and cpuintrf.c. [Aaron Giles]

Changed the core execution loop to directly call the execute function instead of using the inline helper (which has been removed). [Aaron Giles]

Virtual Combat improvments: [Jason Eckhardt, Andrew Gardner]
* Improved memory map
* Fixed the palette

Turned on perfect interleave for remaining tnzs games, and for qix hardware games. [Aaron Giles]

Perfect synchronization for thunderj, which has always been iffy. Removed synchronization hacks. [Aaron Giles]

Updated wc90b2 to use newly-dumped roms. [robiza]

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

Cleaned up the SID interface. [Wilbert Pol]

Put some namcos21 logging behind a (disabled) compile-time define. [Aaron Giles]

Converted 68000 core to use state tables. [Aaron Giles]

Corrected cpu_attotime_to_clocks() calculation. [Phil Bennett]

Correctly setup the MC6845 device in the rockola, usgames, coinmstr, carrera drivers. [Phil Bennett]

Added proper inputs to Jongkyo [Angelo Salese]

Added extremely preliminary i860 disassembler and hooked it up to the vcombat driver. [Jason Eckhardt, Andrew Gardner]

Cleaned up cycle handling in the 68k core. [Aaron Giles]

Updated all the sound core header files to declare their SND_GET_INFO functions, which will be needed once the sound cores become proper devices. It also makes a handful of other header declaration fixes in emu/sound, and makes one SND_RESET routine static. Note: votrax.h is a new include file altogether. [Atari Ace]

Converted the following drivers to use scanline interrupts, partial updates, and raw video parameters: [Mamesick]
* ddragon
* gstream
* vball
* xain
* chinagat

Replaced the bad (likely hacked) Gururin dump with a fresh one, and fixed some rom names in Double Axle according to the pcb. [Smitdogg, Guru]

Cleaned up mcs48 to be dependent on a single makefile define, rather than separate defines for each CPU which didn't really buy us anything in terms of code size or performance. [Aaron Giles]

Correctly setup the MC6845 device in the Funworld driver. Added common device interface and eliminated the screen size & visible area parameters to Magic Card 2. [Roberto Fresca]

Correctly setup the MC6845 device in the Goldnpkr driver. Added common device interface, merged witchcrd and sloco93 machine drivers, and added/corrected the 50/60 Hz. DIP switches to all games. The 50hz mode needs to be corrected. Some games as most bsuerte sets have the 50/60Hz. DIP switch connection patched. [Roberto Fresca]

Correctly setup the MC6845 device in the Calomega driver. Added common device interface. [Roberto Fresca]

Fixed crash when mouse-clicking without a valid mouse_target set (typically after startup when no mouse movement events have occurred). [Phil Bennett]

Improvements to lucky8... [Roberto Fresca]
- Fixed memory map.
- Fixed NVRAM. (please delete the old .nv)
- Added sound through sn76496.
- Added 3x PPI 8255.
- Created basic inputs from the scratch to match the PPI connections.
- Defined the output port.
- Change description to "New Lucky 8 Lines"
- Change manufacturer to Wing Co.Ltd.
- Added an alternate set.

Fixed Top Landing ADPCM ROM loading. [Phil Bennett]

Fixed Cherry Bonus III and Cherry Bonus III (Version 1.40) colors. [Roberto Fresca]

Added preliminary sound & colors to the Mahjong Shiyou driver, game now throws a sound error. Merged Mahjong Shiyou to the Royal Mahjong driver, graphics are improved because of that. [Angelo Salese]

Fixed ddrago3p gfx ROM loading. [Creamymami]

Cherry I Gold improvements: [Roberto Fresca]
- Completed the missing inputs.
- Mapped 4 of the 5 DIP switches banks. (can't find the 5th)
- Worked out the conditional DIPs.
- Documented all DIP switches bank.
- Added PORT_DIPLOCATION to all switches.

Cherry Bonus III (Version 1.40) improvements: [Roberto Fresca]
- Worked the remaining inputs.
- Mapped and documented all 5 DIP switches banks.
- Worked out the conditional DIPs.
- Added PORT_DIPLOCATION to all switches. The game is working, but need a workaround for the status connection. Each time the player press 'Take' to get the credits, a "call attendant" msg appear and credits must be taken pressing 'Key Out'.

Improvements to New Lucky 8 Lines: [Roberto Fresca]
- Proper 3x PPI 8255 connections.
- Created a new AY8910 interface due to different ports addressing.
- Hooked all the input banks (8).
- Improved DIP switches with main game and D-UP rates, keyin values, D-UP game type (reels/cards) and other options to both sets.
- Added PORT_DIPLOCATION to all DSW banks.
- Promoted both sets to working state. The game has 2 sets of controls. Once coined, both players can switch control through their own 'BIG' key. If the game boots with 'Coin Jam' error, press RESET to normalize. Please delete your old .nv and .cfg files before run this update.

Improved colors of New Lucky 8 Lines. [David Haywood]

Implemented GTE divider using reciprocal table derived by pSXAuthor, this should allow the results to be calculated as inaccurately as the real hardware. [smf]

Fixed AT28C16 so that a write isn't allowed to start if there is one in progress and a write isn't started if the data is already correct. This allows my dream horse to boot again. Further investigation is needed. [smf]

Maps all docastle.c games' third CPU rom to 0x0000 so that MAME doesn't log unmapped reads constantly. [smf, David Haywood]

Improvements to goldstar.c driver: [Roberto Fresca]
- Added another set of Cherry Bonus III.
- Reworked and cleaned ncb3, cb3a, lucky8 and lucky8a inputs.
- Added the 2nd set of controls to the above games.
- Removed the OKI references from machine driver and rom load for the above games.
- Promoted ncb3 and cb3a to working status.
- Reparented sets.

Wrote a placeholder driver for an unknown "fruit" ROM set. Anything might be wrong about it... [David Haywood, Angelo Salese]

Improved bishjan.c: [Luca Elia]
- Converted the tilemaps chip to an 8-bit bus width, and added 16-bit handlers using the macros in memconv.h.
- Improved bishjan memory map.
- Implemented line scroll emulation.

Merged i8x41 (UPI-41) core into MCS-48 core: [Aaron Giles]
* all code now lives in mcs48.c
* rewrote disassembler as unified MCS-48/UPI-41 disassembler
* changed UPI-41 interfaces to match MCS-48
* added new master read/write interfaces for external access
* unified interface to 8243 expander chip
* converted tnzs and decocass to the new interfaces

DECO Cassette fixes/cleanups: [Aaron Giles]
* converted tape handling to a device
* changed tape handling to use a timer callback
* updated to work with new UPI-41 core
* corrected clock speeds for all chips (esp. the 8041)
* fixed very wrong CRC implementation (how did it ever work?)
* corrected sound IRQ rate
* corrected video timing

Burger Time hardware fixes: [Aaron Giles]
* corrected sound IRQ rate and handling
* removed lnc audio reset hack
* full audio memory maps based on schematics
* corrected video timing

Disassembled PCs are now forcibly aligned to the minimum opcode size and explicitly masked. [Aaron Giles]

Normalized the CPU cores to always do while (icount > 0), in order to remove the kludge in cpuexec.c that caused us to overeat by 1 cycle to accommodate those cores that there looping while (icount >= 0). [Aaron Giles]

Fixed System 18 rendering so that System 16 sprites don't attempt to shadow VDP pixels (causes crash downstream in debug builds). [Aaron Giles]

Hooked up DSA/ESA instructions for PowerPC 602 (as no-ops for now). Also hooked up PPC602 IBR. polystar gets a little farther but crashes due to a TLB issue. [Aaron Giles]

Removed HAS_PPC* in favor of a single HAS_POWERPC, and a single definition in cpu.mak for all PowerPC variants. [Aaron Giles]

Made xsleena run at perfect interleave and simplified the shared RAM. Also moved to modern banking and cleaned up memory maps a bit. [Aaron Giles]

Added two new Windows OSD options: -debugger_font and -debugger_font_size, which control the font and size used in the debugger text Windows. These default to "Lucida Console" and 9pt, which is the same face as previously hard-coded but 1pt larger. Personally, I prefer "Consolas" 9pt, which is one of the new "C" fonts included with Windows Vista and later (also available for free download on older systems). Note that only fixed-width fonts really work here, for obvious reasons. [Aaron Giles]

Added new frontend option -listbrothers. This will list all "brothers" of a given driver, meaning those drivers that come from the same source file, along with their parent names if they are clones. If a wildcard name is specified for the driver, then the first driver in a given source file will trigger a list of his brothers, and any other drivers in the same source file which match the wildcard will be flagged. [Aaron Giles]

Corrected Mr. Do clocks, video parameters, merged memory maps. [Aaron Giles]

Fixed i86 core so that REP instructions with high interleave actually make forward progress. Also fixed cpu.mak dependencies for i286. [Aaron Giles]

Added polling hooks for SP0250 DRQ line. The callback is now optional. If not provided, then the kick timer is not used. Converted gottlieb speech driver to use polling for SP0250 DRQ line. [Aaron Giles]

Added kludge to 6502 core such that CLI followed by RTI does not allow any interrupts through. In the future, the 6502 interrupt handling needs further revisiting. [Aaron Giles]

Improved graphics and sound in Grand Prix '98 [David Haywood]

Added the ability for a ROMset to specify a default BIOS. Use ROM_DEFAULT_BIOS("biosname") in the ROM definition. This can be used to ensure a correct default BIOS for ROM versions that care. [Aaron Giles]

atarisy1 changes: [Kevin Eshbach]
* Support for new Atari System 1 TTL Motherboard dump (previously MAME would crash when using it and now it just seems to hang.)
* PROMs dumped from Atari System 1 TTL Motherboard (one PLA needs dumping though.)
* Added notes on the Atari System 1 Motherboard and some of its supported games

Added placeholders for various PALs on the following systems: balsente, galaga, ms32, namcofl, rocnrope, tx1. [Kevin Eshbach]

popeye.c improvements: [Kevin Eshbach]
* Corrected the rom names for Popeye
* Added save state support to Popeye
* Added the dip location to the encrypted Popeye and fixed the coin settings according to the manual (unencrypted Popeye not changed)

Added the dip locations to Tutankham. [Kevin Eshbach]

Some minor MCS-48 cleanup. Added 8040/8050 variants. [Aaron Giles]

Fixed buggyboy I/O, engine sound and tilemap scrolling. [Phil Bennett]

ldplayer works again. Added MDRV_LASERDISC_GET_DISC callback hook which allows for dynamically finding the CHD, rather than relying on the DRIVER_INIT hackery that was there before. [Aaron Giles]

Added a work-around for 2 Minute Drill, to get it booting again. [Angelo Salese]

Fixed rendering of slider controls so it doesn't overlap when menus get large. [Aaron Giles]

Fixed speed-up for Vamf x1/2 (Europe) [Pierpaolo Prazzoli]

Cleaned up the profiler. Reduced its runtime overhead significantly by inlining the check to see if it is running. Removed obsolete entries and updated the text to more accurately describe each one. Added CPU tags to the CPU names. Switched to using an astring for building the final string. Unfortunately, still a bit too much overhead to leave it on in all builds. [Aaron Giles]

Added NO_DUMPS for the VHS on hnxmasev, hnageman, av2mj1bb and av2mj2rg. [Angelo Salese]

Fixed auto_malloc() to randomize its memory when allocated in the debug build. This used to be the standard, but it seems to have been removed when the pool allocation was moved into the library. Also changed rand_memory() to use a fixed seed for consistent behavior. [Aaron Giles]

Removed a couple of unnecessary typedefs from mamecore.h. Updated romload to use an astring for accumulating errors (I always feared busting that buffer with some huge romlist). [Aaron Giles]

romload cleanups: [Aaron Giles]
- added running_machine to internal structure, removed as explicit parameter
- added new function rom_file_size() to compute the size of a ROM
- removed rom_first_chunk() and rom_next_chunk() which are no longer needed (all users can use rom_file_size() now)
- changed progress display to be based on size of ROMs loaded
- changed temporary load buffer to be dynamically allocated
- fixed reload logic to handle skipped BIOSes

Fixed layer enable,flip x & x/y position in goodejan.c driver. [Angelo Salese]

Fixed for odd word DMA transfers in the namcos12 driver. [Olivier Galibert]

Added simple built-in layout for polepos showing the position of the shifter. Removed debug build hack to popmessage the shifter state. [Aaron Giles]

Added savestate support to all games in mrdo.c: mrdo, mrdoy, mrdot, mrdofix, mrlo, mrdu, yankeedo. [MooglyGuy]

Added savestate support to all games in docastle.c: docastle, docastl2, docastlo, douni, dorunrun, dorunru2, dorunruc, dorunrca, spiero, dowil, jjack, kickridr, idsoccer. [MooglyGuy]

Added savestate support to all games in statriv2.c: statusbj, hangman, trivquiz, statriv2, statrv2v, statriv4, sextriv, quaquiz2, supertr2, supertr3. [MooglyGuy]

Lots of improvements to the different Cherry Master hardware: added new sets, created new machine drivers, fixed colors, added PPI devices, created new 8255 and ay8910 interfaces, worked out inputs and DIP switches from the scratch, fixed memory maps, merged the cherrym2.c driver with goldstar.c and much more... [Roberto Fresca, David Haywood]

Added savestate support to 4enraya. [MooglyGuy]

Changed videopkr MCS-48 P4 control register to the PROG line, which is more likely. The way to toggle the PROG line is to read/write/and/or to ports 4-7. Since the board doesn't list an 8243 port expander, it is likely the "writes" to port 4 are really just a mechanism to get the PROG line to toggle to clear the interrupt. [Aaron Giles]

Fixed Super Triv colors. [Pierpaolo Prazzoli]

Discovered numerous new opcodes for cb2001. [robiza]

Improved mgcs. It now runs through attract mode. It still locks up as soon as one coins up though, due to the unemulated IGS029 protection. [Luca Elia]

Fixed more stuff with Diamond Derby, game is playable but not yet working (due of a subtle bug, see source) [Angelo Salese]

Slot Carnival: [Roberto Fresca]
- Added gfxdecode & palette length to the machine driver, so tiles can be viewed through F4 in case of someone wants to help.
- Defined SND_CLOCK for the ay8910.

Removed bogus port 4-7 definitions from MCS-48. Added i8243 implementation. Connected 8243 properly to monsterb and system 16a sound. Changed draw80pkr to connect the PROG line like videopkr. [Aaron Giles]

Changed Status Trivia 2 (and related games) clock to 13.684MHz to fix game speed. Still wrong, but better than before. [MooglyGuy]

Fixed a few out-of-bounds errors revealed by randomly initializing auto_malloc() memory. These would manifest themselves as difficult-to-reproduce crashes on some systems. Affects laserbat, progolf, seta2, and cubeqst drivers. [Aaron Giles]

Removed dangling old obsolete code from scramble.c, scobra.c, and galaxold.c. [Aaron Giles]

Added savestate support to the TTL74148 and TTL74153 devices. [MooglyGuy]

Removed anonymous timers from gridlee and added savestate support. [MooglyGuy]

Added savestate support to all games in 40love.c, 88games.c, 1943.c, carpolo.c, circus.c and exidy.c: 40love, fieldday, undoukai, 88games, konami88, hypsptsp, 1943, 1943j, 1943kai, carpolo, circus, circusse, robotbwl, crash, ripcord, sidetrac, targ, targc, spectar, spectar1, rallys, phantoma, mtrap, mtrap3, mtrap4, venture, venture2, venture4, teetert, pepper2, hardhat, fax, fax2. [MooglyGuy]

Cleaned up some memory and file handles in the error cases of ldverify. [Oliver Stoeneberg]

New games added or promoted from NOT_WORKING status
Turbo Sub (2 versions) [Phil Bennett]
Mahjong Jong-Tei [Luca Elia]
Barline [David Haywood, Angelo Salese]
New Lucky 8 Lines (2 sets) [Roberto Fresca]
Cherry Bonus III (Version 1.40, 2 sets) [Roberto Fresca]
Cherry Bonus III (version 1.40, encrypted)
  [Andreas Naive, Roberto Fresca]
Ying Hua Lian 2.0 [Luca Elia, Angelo Salese, David Haywood]
M.A.C.H. 3 [Aaron Giles, Bobby Tribble]
Us vs. Them [Aaron Giles, Smitdogg]
Soul Calibur [Olivier Galibert]
Cherry Master (Corsica, ver.8.01) [Roberto Fresca]
Cherry Master (ver.4) [Roberto Fresca, David Haywood]
Cherry Master I (ver.1.01) [Roberto Fresca, David Haywood]

New clones added
Space Echo (set 2) [Roberto Fresca]
Show Hand (China) [Luca Elia]
Don Den Lover Vol. 1 (Korea) [Luca Elia]
Vamf x1/2 (Europe) [Smitdogg]
DownTown / Mokugeki (Joystick Hack) [Corrado Tomaselli]
New Lucky 8 Lines (set 2) [Roberto Fresca]
Pit Boss (Set 2) [David Haywood]
R-Type (world, bootleg) [mameitalia]
Thunder Cross II (World) [Stefan Lindberg]
Trivia ? Whiz (Horizontal) (question set 3) [David Haywood]
Trivia ? Whiz (Edition 2) (question set 2) [David Haywood]
Trivia ? Whiz (Edition 3 - Horizontal) (set 2) [David Haywood]
Trivia ? Whiz (Edition 4) (question set 2) [David Haywood]
Phraze Craze (set 2) [David Haywood]
9-Ball Shootout Championship (not working) [David Haywood]
Dogyuun (Licensed to Unite Trading For Korea) [Smitdogg]

New games marked as GAME_NOT_WORKING
Night Bunny / Royal Night [David Haywood, Angelo Salese]
Night Gal [David Haywood, Angelo Salese]
Night Gal Summer [David Haywood, Angelo Salese]
Sexy Gal / Sweet Gal [David Haywood, Angelo Salese]
Mahjong Cafe Break [Guru]
Bingo Circus [David Haywood, Angelo Salese]
Status Black Jack [Angelo Salese, Roberto Fresca]
Merit Poker [David Haywood, Angelo Salese]
Cherry Chance [David Haywood, Angelo Salese]
Dancing Stage Euro Mix [smf]
Landing High Japan [Ordyne, Phil Bennett]
Lucky Girl [David Haywood]
X Se Dae Quiz [David Haywood]
Mahjong Senka [Angelo Salese]
Mahjong Yarou [Angelo Salese]
AV Hanafuda Hana no Christmas Eve [Angelo Salese]
AV Hanafuda Hana no Ageman [Angelo Salese]
Mahjong Gaiden [David Haywood]
Operation Tiger [Chris Hardy, Phil Bennett]
Magic Card [Roberto Fresca, David Haywood, Angelo Salese]
Slot Carnival [David Haywood, Roberto Fresca]
Cross Bingo [f205v]


MAMETesters Bugs Fixed
- 02731: [Sound] various: List of games that have OKI6295 volume messages appear. (Phil Bennett)
- 00976: [Crash/Freeze] vaportrx: Crashes during the results section immediately after the race. (Aaron Giles)
- 02823: [Misc.] astorm, shdancer and clones: Error Messages (Aaron Giles)
- 02824: [Save/Restore] deadlock when using -state with -mngwrite/-aviwrite (Aaron Giles)
- 02820: [Graphics] sf2ue: Scrambled graphics in Street Fighter II set: sf2ue (Phil Bennett)
- 02805: [Graphics] turbosub, turbosba: Dropped lines in video output rendering (Phil Bennett)
- 02371: [Misc.] All Sets in namcos12.c: day, date, and year from the RTC appear to be ignored. (R. Belmont)
- 02802: [Gameplay] parodius, parodisj: ram rom check fails (R. Belmont)
- 02815: [Crash/Freeze] zaryavos: Game never reaches title screen. (Angelo Salese)
- 02787: [Original Reference] nratechu: DIP switch settings from manual. (Tafoid)

Source Changes
cb2001 improvements: [robiza]
- Decoded "gfx" rom region

Added a validity check to the 6526 CIA emulation. [Nathan Woods]

Added savestate support to the games in 8080bw.c, ace.c, actfancr.c, aerofgt.c, airbustr.c, ajax.c and alpha68k.c: [MooglyGuy]
- sitv, sicv, sisv, sisv2, galxwars, galxwar2, galxwart, starw, lrescue, mlander, lrescuem, grescue, dsterth, invadpt2, invaddlx, cosmo, schaser, schasrcv, sflush, lupin3, polaris, polarisa, ballbomb, indianbt, searthin, searthia, invadrmr, spaceatt, spaceat2, sinvzen, sinvemag, tst_invd, alieninv, spceking, spcewars, astropal, spacewr3, invaderl, invader4, jspecter, jspectr2, cosmicmo, cosmicm2, superinv, invasion, darthvdr, moonbase, invrvnge, invrvnga, spclaser, laser, spcewarl, rollingc, ozmawars, ozmawar2, solfight, spaceph, yosakdon, yosakdoa, shuttlei, ace, actfancr, actfanc1, actfancj, triothep, triothej, spinlbrk, spinlbru, spinlbrj, pspikes, pspikesk, svolly91, pspikesb, spikes91, pspikesc, karatblz, karatblu, karatblj, turbofrc, aerofgt, aerofgtb, aerofgtc, sonicwi, aerfboot, aerfboo2, wbbc97, airbustr, airbustj, airbusb, ajax, typhoon, ajaxj, sstingry, kyros, kyrosj, jongbou, paddlema, timesold, timesol1, btlfield, btlfildb, skysoldr, goldmedl, goldmeda, goldmedb, skyadvnt, skyadvnu, skyadvnj, gangwars, gangwarb, sbasebal, tnexspce

Fixed multisession bug in the Jaguar implementation. [Nathan Woods]

Added savestate support to the games in ambush.c and ampoker2.c: [MooglyGuy]
- ambush, ambushv, ambusht, ampoker2, ampkr2b1, ampkr2b2, ampkr2b3, ampkr95, pkrdewin, videomat, sigmapkr, sigma2k

Added check to debug_cpu_set_dasm_override(), because callers do not know if we are in debug mode or not. [Nathan Woods]

goldstar improvements: [Roberto Fresca]
- Added Kkuj Nol-i / Kkoj Noli (better romanization). It runs on a reduced/modified version of lucky8 hardware.
- Added proper memory map, machine driver, PPI interfaces and inputs.
- Added placeholder for the 4 undumped cmast91's PLD's
- Removed the imperfect colors flag from lucky8 sets (colors look a bit dark, but seems properly decoded).
- Added full inputs / DIP switches to the Cherry Master II sets.
- Started a tedious clean-up to all driver inputs.
- Added a new set based on Cherry Master V4. The game is supposed to boot as a Tetris game (there are Tetris graphics inside), and can be turned into Cherry Master (probably designed for countries where gambling games are/were illegal). The game is booting into Cherry Master and is working properly. Still flagged as GAME_NOT_WORKING till can figure out how to switch games.
- Added notes about the Tetris/Cmaster game.
- fixed some default DIP switches.
- Splitted the cmaster gfxdecode to cover different sets.
- Created a new machine driver for sets without the extra bitmap.
- Renamed the old sets cm2v841 and cm2841a to cmasterb and cmasterc respectively, since they are in fact different sets of Cherry Master I (ver.1.01).
- Promoted cmasterb & cmasterc to working state. The last one was flagged as GAME_IMPERFECT_GRAPHICS, since reels graphics have a different decode, or simply are bad dumps.
- Reparented some sets.
- Switched to use pre-defined clocks (CPU, PSG, AY and OKI) for all machine drivers.
- Changed all z80's CPU frequency to 3 MHz (Xtal/4).

Decoded the extra bitmap for Cherry Master I and V4 sets. Still need to figure out how is called. [David Haywood]

Fixed sloppy rendering in CDP1869 that caused occasional crashes. [Curt Coder]

Improvements to Cherry 10: [Roberto Fresca]
- Decrypted the program ROM.
- Bypassed the PIC protection.
- Hooked proper inputs & DIP switches.
- Promoted to working state.

Changes to peplus driver: [Jim Stolis]
- Added wingboard (5-n-1 daughterboard) support
- Added E16/E17 jumper support
- Sound clock changed to global
- Removed graphics layout and replaced with generic gfx_8x8x4_planar
- Increased palette lengths
- Adjusted incorrect ROM_REGION sizes
- Correct color prom length definitions

Renamed filetto.c to pcxt.c and made several improvements to the driver [Angelo Salese]
* Merged tetriunk.c and filetto.c, and renamed tetriunk set to tetriskr;
* Fixed inputs & gameplay quirks in tetriskr,so it's now playable;
* Added preliminary external graphics emulation hook-up for the backgrounds in tetriskr;
* Rearranged & cleaned up the palette initialization, now 0x000-0x1ff offsets are for the char modes and 0x200-0x2ff are for the bitmap modes;
* Fixed color attributes bits;
* Cleaned up and fixed colors in CGA bitmap mode for Filetto;

Fixed most graphic banking bugs & colors in the coinmaster driver. [David Haywood]

Converted the CDP1802 cpu core to use a state table. [Curt Coder]

Cherry Master '91: [Roberto Fresca]
- Fixed memory map.
- Added proper PPI 8255 devices.
- Worked inputs / DIP switches from the scratch.
- Fixed reels tilemaps visible area.
- Fixed reels colors.
- Removed all the flags and promoted to working status.

Fixed 64-bit issue in the k053260 emulation. [R. Belmont]

Introduced a parallel 6821 PIA implementation, as a MAME device (6821new.c). Ported the Williams drivers over to use this new PIA implementation. [Nathan Woods]

Fixed clock used in Namco systems 12 & 23. [R. Belmont]

Added savestate support to the games in amspdwy.c, angelkds.c, appoooh.c, aquarium.c, arabian.c, and arcadecl.c: [MooglyGuy]
- amspdwy, amspdwya, angelkds, spcpostn, appoooh, robowres, robowrb, aquarium, arabian, arabiana, arcadecl, sparkz

Improved the rom loading in tenkai and clones. [Luca Elia]

Various improvements to the Jackpool driver [Angelo Salese]
* Added a second screen for some extra gfxs that are displayed on it;
* Fixed colors;
* Preliminary implementation of the transparency pens for the graphics, might not be correct;
* Added inputs;
* Cleaned-up the driver;

Added save state support to the turbosub driver. [Phil Bennett]

Improvements to coinmastr.c driver: [David Haywood, Roberto Fresca]
- Added maximum intensity to the color decode.
- Switched pokeroul to use global memory map and eliminated the redundant one.
- Eliminated the GAME_WRONG_COLORS flag to all games.
- Some clean-ups.

Added OKIM6376 emulation ADPCM Speech Synthesizer. [Mirko Buffoni, Phil Bennett]

Added OKIM6376 sound emulation to High Video games [Mirko Buffoni]
* Removed GAME_NO_SOUND from newmcard, brasil and fashion
* Sound frequency may be incorrect

Major drawgfx cleanup, global removal, and feature enhancements: [Aaron Giles]

- Added built-in dirty tile tracking to the gfx_element. This removes the need for all drivers that had dynamically populated graphics to do their own dirty tracking. Tiles are marked dirty via the new function gfx_element_mark_dirty(). Any driver that needs access to the decoded data must call gfx_element_get_data() in order to ensure that the referenced tile is clean before proceeding.
- In order to support dirty tracking, the gfx_element was enhanced to keep track of the original source pointer, so that it can go back and regenerate tiles on demand. For systems that set NULL for the region in the gfxdecode, they must use gfx_element_set_source() to specify a pointer to the raw data before drawing anything.

- Changed allocgfx() to gfx_element_alloc(), and added parameters to specify the source data pointer, base color index, and total colors. Many drivers had to whack these values in after the fact, so this allowed for some minor additional cleanup.

- Added a dirtyseq member to the gfx_element struct. This is incremented on each tile dirty, and can be used to sniff if something has changed.

- Added logic in the tilemap engine to track which gfx_elements are used for a given tilemap, and automatically detect changes to the tiles so that drivers no longer have to explicitly invalidate the tilemap when tiles change. In the future, this may grow smarter to only invalidate the affected tiles, but for now it invalidates the entire tilemap.

- Updated a number of drivers to remove their own dirty handling and leverage the new internal dirty marking.

- Because the source data must always be present, updated the atarigen zwackery and mystwarr graphics handing code to support this.

- Thanks to the dirty tracking, this actually allows all gfx decoding to happen on the fly instead of all at once up front. Since there was some concern that this would cause undesirable behavior due to decoding lots of tiles on the fly, it is controlled with a compile-time constant in mame.h (PREDECODE_GFX). Set this to 1 to get the old behavior back.
- Moved decodechar() and decodegfx() to deprecat.h. All drivers in MAME have been updated to simply mark tiles dirty and let the rendering system decode them as needed, so these functions may go away in the future.

- Rewrote entirely the rendering code in drawgfx. This code previously used extensive recursive #includes and tricks to build, and was very difficult to understand. The new code is based off of a set of macros defined in drawgfxm.h. These new macros separate the core rendering logic from the per-pixel operation, allowing the operation to be easily "plugged" into any of the renderers. These macros are also available to any driver that wants custom rendering behavior that is similar to existing core behavior, without needing to populate the core with esoteric one-off rendering behaviors.

- Added a set of new functions for [p]drawgfx[zoom], one for each transparency type. The old [p]drawgfx[zoom] functions are still present, but now switch off the transparency type and call through to one of these new transparency-specific functions. The old functions are also now reduced to only supporting TRANSPARENCY_NONE, TRANSPARENCY_PEN, and TRANSPARENCY_PENS. All other rendering types must use the new functions.

- All new rendering functions have extensive asserts to catch improper clipping rectangles and other common errors.
- All new rendering functions automatically downgrade to optimized versions where appropriate. For example, calling drawgfx_transpen with an out-of-range pen automatically falls back to drawgfx_opaque. And drawgfxzoom_* with xscale=yscale=1.0 automatically falls back to drawgfx_*. And many other examples. In general, this relieves drivers from needing to make these sorts of decisions.

- All new rendering functions have a consistent parameter order that is a bit different from the existing functions. The cliprect parameter is now specified immediately after the destination bitmap, to match the convention used throughout the rest of the system. The core parameters are followed by the scale parameters (for the zoom functions), and then followed by the priority parameters (for the pdrawgfx* functions), finally followed by any PIXEL_OP*-specific parameters (such as transparent pen, alpha, drawing tables, etc.)
- Removed drawgfx_alpha_cache, alpha_set_level(), and the inline functions alpha_blend16() and alpha_blend32(). To render graphics with alpha, use the new [p]drawgfx[zoom]_alpha functions, which take an explicit alpha value. To render tilemaps with alpha, the TILEMAP_DRAW_ALPHA option now takes an explicit alpha parameter. And to do you own alpha blending, use the alpha_blend_r16() and alpha_blend_r32() functions, which take an explicit alpha.
- Updated a number of drivers as a result of removing the implicit alpha in the drawgfx_alpha_cache.

- Removed drawgfx_pen_table and TRANSPARENCY_PEN_TABLE. To achieve the same effect, build your own table and pass it to [p]drawgfx[zoom]_transtable, along with a pointer to the machine->shadow_table to use for shadows. Eventually machine->shadow_table is likely to go away, and drivers will need to fetch the shadow table from the palette directly.
- Updated a number of drivers to remove use of drawgfx_pen_table.

- Removed TRANSPARENCY_ALPHARANGE; it was only used by the psikyosh driver, so it is now moved locally into that driver and built using the macros in drawgfxm.h.

- Removed TRANSPARENCY_PEN_RAW; to achieve the same effect, call the new [p]drawgfx[zoom]_transpen_raw() functions. Updated drivers to make this change.

- Removed the unused mdrawgfx* functions entirely.

- Added new function gfx_element_set_source_clip() to specify a source clipping rectangle for any element. This replaces the nasty hacks that were being used in bnstars, ms32, namcos86, and namcos1 to achieve similar behaviors.
- Added new function gfx_element_build_temporary() to safely build a temporary gfx_element. Updated the drivers that did this to use the new function.

- Simplified the copyrozbitmap() functions to match the copybitmap() functions in having separate opaque and transparent versions. Also removed the 'priority' parameter which was only used by one driver, and moved that logic into a custom renderer built using macros in drawgfxm.h. Updated copyrozbitmap* to use the destbitmap, cliprect parameter ordering convention as well.

- Simplified the draw_scanline*() functions to always render opaque. Only one driver was doing otherwise, and it now does its work internally (draw_scanline is dead-simple ever since we moved rotation to the OSD code; I almost just removed it entirely).

Added a cliprect to the bitmap_t type, which describes the full bitmap. [Aaron Giles]
Removed tilemap_set_pen_data_offset; unfortunately, this adds a random tile offset behind the scenes and goes against the dirty tile detection and invalidation. Updated the mainsnk, snk, and snk68 drivers to use old fashioned tile banking. [Aaron Giles]

Changed zac2650 gfxdecode to use scale factors. [Aaron Giles]

Added function video_assert_out_of_range_pixels() to help find the source of invalid pixels (generally out-of-range palette entries due to invalid data or sloppy calculations). Place this after each step in your rendering in a debug build to discover which code is generating improper pixels. [Aaron Giles]

COP400 cpu core refactoring: [Curt Coder]
- added state table for the debugger
- grouped all cpu types under a single makefile entry
- removed duplicate code

CDP1802 cpu core: [Curt Coder]
- improved register layout
- randomized register contents on initialization

Made the treatment of SOUND_xxx the same as that of CPU_xxx. That is, they are function pointers to the SND_GET_INFO routine for the sound. [Atari Ace]

Made direct (opcode) access more robust. Direct access now crawls the memory table to find its ranges, and caches them for fast access in the future. It invalidates intersecting regions when new ones are installed, and now properly handles mirrored ranges. [Aaron Giles]

Changed the disassembly view to call the decrypted read routines for each opcode byte/word instead of fetching from a pointer, which prevented opcodes that crossed range boundaries from working correctly, even though they would execute correctly. [Aaron Giles]

Improvements to skylncr.c driver. [Roberto Fresca]
- Hooked all the PPI 8255 devices.
- Reworked the inputs based on them.
- Fixed the reels visible area.
- Reorganized and cleaned-up the driver. (only remains to split in driver + video)

Added ROM_DEFAULT_BIOS to diehard, critcrsh, and smleague. [Aaron Giles]

Removed extraneous bitmap clear in the deco32 driver. [Christophe Jaillet]

Added static/const where appropriate, updated out-of-sync header files, and fixed some minor source confusion/abuse: [Atari Ace]
- arm7core.[ch],segas24.[ch]: Rewrote some abuses of the HANDLER macros to use _func types instead.
- m37710: Removed some long dead state save functions.
- spc700: Removed the interface declarations and functions.  Most of it is handled by CPU_GET_INFO, some of it was no longer implemented, and since pointerization it wasn't possible to call it externally anyhow.
- segac2: removed the palette variables aliasing the megadrive ones and just used the megadrive ones directly.
- snes: All the obc1_, DSP1_, DSP2_ exports were made static.

Added DIPs for Naratte Chu. Added DIP locations for all games in the st0016 driver. [Tafoid]

Removed the sndindex parameter from SND_START, in favor of using the device pointer or tag as appropriate. [Atari Ace]

Removed several useless occurrences of "#define INLINE" in CPU and sound cores. [Dirk Best]

Hooked up the preliminary decryption code for Tarzan, but it is not complete. [David Haywood]

Added digitalker speech emulation. [Olivier Galibert]

Added digitalker support to scorpion driver. [Olivier Galibert]

Cleaned up a bunch of unreachable bits of code. [Oliver Stoeneberg]

Fixed the 3rd graphics bank decode of cmast91. [David Haywood]

Pre-Seibu CRTC update: [Angelo Salese]
* Fixed gfx banking in goodejan/totmejan;
* Fixed vertical scrolling in Sengoku Mahjong (check title screen);
* Made some clean-ups in either drivers;

Updated OKIM6295 volume table to reflect actual chip behaviour.
Removed "contact MAMEDEV" message. [Phil Bennett]

Virtual Combat driver improvements: [Jason Eckhardt, Andrew Gardner]
* Graphics decoded, video improved, inputs mapped.

Intel i860 CPU core added. [Jason Eckhardt]

Reorganized and simplified the megasys1.c inputs. [Sonikos]

New games added or promoted from NOT_WORKING status
Lady Liner [Roberto Fresca]
Kkoj Noli (Kill the Bees) [Roberto Fresca]
Cherry 10 (bootleg with PIC16F84)
   [Roberto Fresca, Andreas Naive, David Haywood]
Player's Edge Plus (XMP00017) 5-in-1 Wingboard [Jim Stolis]
Tetris  (bootleg of Mirrorsoft PC-XT Tetris version) [Angelo Salese]
Cherry Master '91 (ver.1.30) [Roberto Fresca]
Cherry Master (ver.4, set 2) [Roberto Fresca, Angelo Salese]
Cherry Master I (ver.1.01, set 2) [Roberto Fresca]
Cherry Master I (ver.1.01, set 3) [Roberto Fresca]
Mahjong Tenkaigen (3 sets) [Wei Mingzhi, Luca Elia]
Tour 4000 [Mirko Buffoni]
Casino Fever 4.0 [Mirko Buffoni]
Casino Fever 5.0 [Mirko Buffoni]
Tour 4010 [Mirko Buffoni]
Casino Fever 5.1 [Mirko Buffoni]
Casino Fever 6.1 [Mirko Buffoni]
Casino Fever 1k [Mirko Buffoni]
GiroTutto [Mirko Buffoni]
Trivia Hangup [Mariusz Wojcieszek]
Sure Shot [Mariusz Wojcieszek, ranger_lennier]

New clones added
Hit the Ice (Japan) [Phil Bennett]
New clones: Salamander 2 (ver AAB) [Corrado Tomaselli]

New games marked as GAME_NOT_WORKING
Skill Cherry '98 [David Haywood]
Skill Cherry '97 [David Haywood]
Skill Fruit Bonus [David Haywood]
86 Lions [Chris Hardy, Angelo Salese, Roberto Fresca]
Lucky Girl [David Haywood]
Poker Roulette [Chris Hardy, Angelo Salese, Roberto Fresca, David Haywood]
Magical Tonic [Roberto Fresca]
3 Super 8 (Italy) [David Haywood]
New Champion Skill (v100n) [David Haywood]
Buster [David Haywood]
Unknown ACE Fruits Game [David Haywood]
Spiel Bude (German) [David Haywood, Roberto Fresca]


MAMETesters Bugs Fixed
- 02810: [DIP/Input] hanaroku,hanaawas: Input keys are inconsistent with other hanafuda games [Sonikos]
- 02852: [Known Issues/To-Do's] cloak and clones: Message "SLAVE COM BAD" flashes before game startup (Phil Bennett)
- 02847: [Crash/Freeze] all cloak.c and midzeus.c sets: [debug] Access Violation (Phil Bennett)
- 02842: [Graphics] logger: gfx issue (Aaron Giles)

Source Changes
Fixed compilation errors if HAS_SAMPLES is 0. [Nathan Woods]

Stop crash/assert when trying to decrease the debugger memory window bytes per line to 0. [Phil Bennett]

Improved implementations for undocumented instructions 63, 67, 6f, 73, 77, 7b, 7f, 9c, 9e, ab, e3, e7, ef, f3, f7, fb, and ff in the n2a3 cpu core. [Wilbert Pol]

Force recalculation of screen parameters when only the MC6845 input clock changes. [Wilbert Pol]

Seibu CRTC part 1: [Angelo Salese]
* Merged Sengoku Mahjong & Good e Jong video HWs
* Added correct scrolling functions for Sengoku Mahjong
* Removed some positioning kludges in both drivers

Fixed Sengoku Mahjong hopper error after first winning match. [Angelo Salese]

Removed deprecat dependancy from Good e Jong, one irq wasn't needed at all (points to a reti). [Angelo Salese]

Fixed cpu reset for upd78c06. [Wilbert Pol]

Added new #define ENDIANNESS_NATIVE, which maps to either ENDIANNESS_LITTLE or ENDIANNESS_BIG based on the LSB_FIRST definition. Unlink LSB_FIRST, ENDIANNESS_NATIVE always exists and can be used in expressions without invoking the preprocessor. [Aaron Giles]

Added macro ENDIAN_VALUE_LE_BE() which selects one of two values based on the endianness passed in. Also added NATIVE_ENDIAN_VALUE_LE_BE() which calls ENDIAN_VALUE_LE_BE with ENDIANNESS_NATIVE. [Aaron Giles]

Updated a number of drivers and call sites to use these macros in favor of #ifdef LSB_FIRST. [Aaron Giles]

Removed some stray ADDR2BYTE/BYTE2ADDR macros that have been replaced by inline functions. [Aaron Giles]

DRC frontends must now do their own opcode fetching unfortunately. Updated all DRC cores to do this. Also tweaked a few oddities in the SH2 DRC. [Aaron Giles]

drw80pkr changes: [Jim Stolis]
- Added bankswitching to program memory
- Partial graphics support
- Partial sound support

Preliminary ADPCM hook-up to Jantotsu, it plays something but it's not yet right. [Angelo Salese]

Removed redundant config parameter from SND_START. [Aaron Giles]

Fixed gfx regression with 18 Holes Pro Golf and added proper memory map for the second cpu. [Angelo Salese]

Sound cores no longer allocate their own tokens. Instead they return a new integer value indicating the size of token they want, and the core allocates it for them. This mirrors the standard device behavior. [Aaron Giles]

SRMP5 update [tsBTN0640]
- sound pitch is low with current st0016 driver.

Fixed Perfect Soldiers input (added missing button3) [a3SEybxT0]

Added missing key for sfiiij and sfiii2j [swzp1Dp/0]

Tidied up the micro3d driver and fixed sound. [Phil Bennett]

Increased Cloak & Dagger interleave quantum to eliminate 'SLAVE COM BAD' startup message. [Phil Bennett]

Major cleanup to IGS poker games [Mirko Buffoni]
- Renamed csk driver to igspoker.  This includes Champion Poker, Champion Skill, New Champion Skill
- Converted drivers to tilemap system and unified video section
- Unified memory maps and checked all input ports
- Removed obsolete palette handlers and made use of generic handlers
- Added layout for lamps handling
- Added hopper simulation
- Added New Champion Skill (different set, maybe original international release) and renamed current igs_ncs to igs_ncs2 (2000 version for italian market)
- Promoted igs_ncs2 to working state, but set GAME_IMPERFECT_GRAPHICS (missing initial notice screen)
- Moved Jackie to a separate driver (it's a slot machine game)
- Made some progress on Jackie which now boots (toggle mode to play, but work still needs to be done)

Virtual Combat and Shadow Fighters update. [Phil Bennett]
* Fixed framebuffer handling & screen parameters.
* Added sound.
* Corrected RAM sizes to match what is present on the PCBs.
* Hooked up NVRAM.

Fixed clamping to 12 bit range to Okim6376, and adjusted volume attenuation accordingly. [Mirko Buffoni]

Fixed TMS5220 speech in Turbo Sub [Phil Bennett, Jay Gallagher]

adp improvements: [robiza]
- implemented p1 inputs in skattv and fashiong (service mode is working)

Defined ROM_LOAD64_WORD/ROM_LOAD64_WORD_SWAP in emu/romload.h. [Phil Bennett]

cb2001: mapped two more opcodes. [robiza]

Fixed Soul Calibur (vs. Inferno) [4oj9/xJ+0]

Added custom 3-screen layout to Stepping Stage driver. [Naibo Zhang]

Changed yunsung8 oki xtal to 400khz, verified on pcb. Unfortunately I couldn't verify the main xtal which was missing on my pcb. [Corrado Tomaselli]

Restored previous cycle eating behavior in gstream. [Mamesick]

Changed device start routines to no longer return a status. Instead, if a device needs to delay its initialization pending the startup of another device, it must call the new function device_delay_init(). [Olivier Galibert]

New games added or promoted from NOT_WORKING status
Give us a Break (2 sets) [Phil Bennett]
Ten Up (2 sets) [Phil Bennett]
Himeshikibu (Japan) [Uki]
Super Othello [Tomasz Slanina]

New clones added
Cannon Ball (Yun Sung) (vertical) [David Haywood]
Sega Water Ski (Japan, Revision A) [Smitdogg Jones]
Raiden Fighters 2 (USA, SPI) [Arzeno Fabrice]
Stepping 3 Surperior [Naibo Zhang]


MAMETesters Bugs Fixed
- 01017: [Sound] nslasher: The music stops at some points in the game when fighting bosses and some points in level 2. (Mamesick)
- 02862: [Graphics] Many sets in taitosj.c: During the scroling the lower part of the screen becomes black (Aaron Giles)
- 02860: [Crash/Freeze] mach3, usvsthem: Error at the start (Aaron Giles)
- 02880: [Original Reference] stactics: Scratchpad RAM is too large (currently 2 KB, should be 256 bytes with mirroring). (chowell)
- 02843: [Original Reference] schaser, schasrcv, polaris: Only half the color RAM is emulated. (chowell)
- 02884: [Original Reference] kopunch: CPU is specified as a 4 MHz 8080 when it should be a 4 MHz Z80. (Tomasz Slanina)
- 02888: [Graphics] All sets in megaplay.c: Large black box obscuring game (Aaron Giles)
- 02827: [Compiling] 64-bit build fails (Phil Bennett)
- 02804: [Documentation] dkongf: In game information: year should be 2004, not 1981. (Fabio Priuli)
- 02803: [DIP/Input] dkongf: "5 Coins/1 Credit" coinage dipswitch is freeplay. (Fabio Priuli)
- 02719: [DIP/Input] arkbloc2, arkgcbl, paddle2: you can't go to the left (Fabio Priuli)
- 02697: [DIP/Input] hkagerou: Inputs apparently incorrectly mapped or not mapped (Fabio Priuli)
- 02574: [DIP/Input] yumefuda: Game controls are not fully implemented (Fabio Priuli)
- 02873: [Graphics] Many sets in system1.c: Missing text layer (David Haywood)
- 02866: [Misc.] bublbobl and clones: Bubble Bobble vertical sync value seems slightly off (Phil Bennett)
- 02792: [DIP/Input] Missing HARDDIP settings in 'STANDARD_DIPS' for DIP's 4,5 and 6 ("COMM Setting") (Fabio Priuli)

Source Changes
Cleaned up and remapped Big 10 inputs. Updated the game notes. Added other minor changes. [Roberto Fresca]

Improved the sound in Double Wings by appling the same handling of Night Slashers (they are actually similar if not same memory map) [Angelo Salese]

Fixed scrolling layer in Magic's 10 [Angelo Salese]

Added NO_DUMP for the H8/330 MCU for Magic's 10 2, Super Pool, Hot Slot and Magic Colors. [Angelo Salese]

Several discrete sound refinements, mainly targeted at mario: [couriersud]

* Use formula derived from figures 2 and 3 in LS624 datasheet. Coefficients were calculated using least square approximation. This approach gives a bit better audible results compared to the prior approach.

* Fixed energy calculation for LS624

* Use energy values as input for XOR. This seems to better reflect the superimposition of the two signals. On the long term, both LS629 and the XOR need to be converted into a custom module to properly model mixing if the two frequencies are close to each other.
* Adjusted C41 to 60% for skid sound.

Fixed the remaining CPS3 sets that were left broken from the previous half-done set renames. Also reworked the code a bit to make it harder for somebody to break it in future (removed the config table & moved keys to driver inits, define region sizes, allocate memory in init for CD based games.) Should be no functional changes, although it might be a fraction of a % faster due to there being less region lookups. [David Haywood]

Added preliminary sound for the Aero Fighters bootlegs (aerfboot & aerfboo2) [Angelo Salese]

Added some 'new fruit bonus '96' sets, unsure what they are. [David Haywood]

Added a mess of sets marked as 'time dog' to the goldstar driver. These seem to be mismatched, and some lack program roms. One set has encrypted code, the other appears to have plain code. These will need some tidy-up work. I've added them, because there is no doubt at least one valid set in here but the dumps contain no useful info at all. [David Haywood]

Preliminary protection hook-up for Sexy Gal/Sweet Gal [Angelo Salese]

Fixed colors, visible area and soft resets in the Magic Card 68k version. Started to convert the Magic Card 68k version driver with proper infos & added some basic video registers. It actually runs on more or less modified Philips CD-i architecture. [Angelo Salese]

Imported Archimedes code from MESS. [R. Belmont]

Fixed foreground tilemap colors in Diamond Derby [Angelo Salese]

Added new module devcb, which can generically handle conversions between device read/write functions and various other types of functions. Introduced new structures and macros to make this possible: [Aaron Giles]

  To take advantage of this, a device must change its interface to replace any read/write callbacks with the new devcb_read/write structures. During device start time, the device then uses this new devcb module to resolve the information in the devcb_read/write structures into a more efficient form. When the device needs to call one of the callbacks, it uses the inline devcb_call_read/write functions.

  Once a device has defined its callbacks as devcb_read/write structures, users of the device must use the DEVCB_* macros to specify the type and information about the handler to use:

    DEVCB_NULL = no handler
    DEVCB_HANDLER = a standard device read/write handler
    DEVCB_MEMORY_HANDLER = a memory address space read/write handler
    DEVCB_DEVICE_HANDLER = a device read/write handler for a different device
    DEVCB_INPUT_PORT = an input port

Converted the 8255PPI device to use this new structure, and updated all users to use the DEVCB macros, removing some unnecessary trampoline functions along the way. [Aaron Giles]

Added calculation for caps >= 100pf to buck rogers LS626 frequency calculation. Formula was derived from figure 6 of LS624/628/629 & 625/626/627 datasheet. "BUCK ROGERS" is now centered and big ship appears centered over br's ship. [couriersud, Guru]

Converted 6821new device to use devcb. Updated Williams drivers to remove trampoline functions. [Nathan Woods]

Improvements to norautp.c driver: [Roberto Fresca]
- Merged GTI Poker (gtipoker.c) with this driver.
- Added new memory map and machine driver for gtipoker.
- Hooked 2x PPI 8255 to gtipoker.
- Hooked the video RAM access ports to gtipoker.
- Changed norautpn description from Noraut Poker (No Payout), to Noraut Poker (bootleg), since the game has payout system.
- Some clean-ups.

Fixed encryption in Cabaret and added sound emulation [Mirko Buffoni]
- Moved to a separate driver
- Not fully playable, press reset to exit from pitfalls

Implemented a few more H8/3xx instructions, and added funcube to seta2.c [Luca Elia]

Added a default backup ram for the jolyc980 set, to get it boot to the end-user. [Angelo Salese]

New games added or promoted from NOT_WORKING status
Big 10 [Angelo Salese, Roberto Fresca, Tomasz Slanina]
Bottle 10 (italian, 2 sets) [Roberto Fresca]
Super Poker (v116IT) [Mirko Buffoni]
Casino Five [Mariusz Wojcieszek]
Big Apple Games [Mariusz Wojcieszek]
Funcube 2 [Luca Elia]
Funcube 4 [Luca Elia]

New clones added
Turbo Sub (prototype rev. TSC7) [Jay Gallagher]
Noboranka (Japan) (NOT WORKING, undumped 8751 MCU)
Battle Bakraid - Unlimited Version (U.S.A.) [Josh W.]
Armed Police Batrider (several versions) [Josh W.]
Mortal Kombat (prototype, rev 8.0 07/21/92) [Brian Troha]

New games marked as GAME_NOT_WORKING
Jansou Noraut Poker [Roberto Fresca, Angelo Salese]


WARNING: This build has a major change in it (sound chips are now devices) that may lead to some unexpected errors or sound problems. Please report any issues you find over at http://mametesters.org/mantis

MAMETesters Bugs Fixed
- 02893: [Crash/Freeze] Most sets in galdrvr.c: Crashes with devcb dialog. (Aaron Giles)
- 02890: [Crash/Freeze] pitboss, pitbossa: Pit Boss and clone crashes with devcb dialog (Roberto Fresca)
- 00754: [Sound] mikie: Background music problem in the locker room level. (Nicola Salmoria)
- 02918: [Graphics] psychosj psychos: Title screen graphic glitch (Nicola Salmoria)
- 02907: [Gameplay] spnchout, spnchotj: Time count on insert coin screen runs out very quickly - Play buttons not working (Nicola Salmoria)
- 02917: [Misc.] himesiki: Array index out of bound (Phil Bennett)
- 02895: [Color/Palette] macrossp: Wrong colors in "area clear" screen (Angelo Salese)
- 02860: [Crash/Freeze] mach3, usvsthem: Error at the start (Aaron Giles)
- 00808: [Graphics] xsleena: There appears to be a small line of graphics missing on a couple of characters.
- 02801: [Misc.] cafetime: Clock shows AM instead of PM (couriersud)
- 01785: [Misc.] mjmyornt and more: AM/PM is ignored when the clock time is retrieved from RTC (couriersud)
- 02896: [Misc.] Drivers using MSM6242.h: MSM6242 ignores AM/PM bit (couriersud)
- 02897: [Sound] soldivid: Audio regression (Haze)

Source Changes
Fixed Casino 5 hang on the Horse Racing game [Angelo Salese]

Fixed compile quirk with Funcube2/4 [Angelo Salese]

Added minor additional information and OSC info to volfied driver. Also added two BPROMs not included before. [Brian Troha]

Opcode accesses are now marked debugger_access. This is important with the recent changes to automatically call the read handler if the opcode base cannot be found. Changed logging for non-RAM opcode bases so that it does not output in the case of debugger_access being set. [Aaron Giles]

Fixed logic for deriving direct ranges so that it uses the non-watchpoint-infected tables for its lookups. [Aaron Giles]

Changed memory_set_direct_region to pass the address returned from the DIRECT_UPDATE_HANDLER back to the memory read function. [smf]

6850acia: Only adjust the rx/tx bit timers on a control write if the divide ratios have changed. [Phil Bennett]

Added the ability to invoke CPU input lines with devcb callbacks. Changed sp0256 to use devcb callbacks. Updated sauro driver to use this new feature. [Nathan Woods]

Added PCB layout for Funcube and corrected rom names based on a hi-res photo of the PCB. [Brian Troha]

Improve disassembly of R3000 code that uses the TLB or FPU. [R. Belmont]

Added new game Number Dieci [Mirko Buffoni]
- Seems a IGS poker hack to comply with 2000's Italian law
- Sound synthesys have been replaced by OKIM Adpcm samples
- Some patched out routines have been recovered to allow test mode dsw mapping
- Mapped Stelle e Cubi to this memory map, something shows but graphic is from a bad dump

Added new game PK Tetris [Mirko Buffoni]
- Strange game with an amusement part (sort of Tetris mixed with Poker)
- Amuse input not mapped, may be necessary for the amusement part which can be disabled via DSW

Fixed various issues with "Il Pagliaccio" driver: [Angelo Salese]
* Fixed rom source reading for the blitter;
* Properly use height/width params for the blitter;
* Hooked up the backup ram;
* Added basic inputs;
* Removed deprecat.h dependancy;

Moved over some of the AGEMAME drivers [David Haywood, thanks to James Wallace / ageMAME]

Further fixes with "Il Pagliaccio" blitter: [Angelo Salese]
* Fixed Transparency pens;
* Fixed color pens for the charset;

Merged Strip Teaser and Il Pagliaccio driver, fixed the layer clearance for both and added a preliminary MCU simulation for the former. [Angelo Salese]

Relaxed 8 letter setname limitation for clone sets - this is designed to make it easier to add simple suffixes to clone names without truncating the original set name, it isn't designed to be abused and used as an alternate description. [Olivier Galibert]

Made the 6522 VIA implementation use devcb. [Nathan Woods]

Changed 6526cia to use devcb. [Nathan Woods]

Added redumped sound CPU rom for Sega Water Ski. [Brian Troha]

Added original Super Poker 115IT [Mirko Buffoni]
* Added because 3 Super 8 have SUPER POKER 115IT string inside. 3Super8 may be a hack, strings are the same, but code is different though still partially encrypted

Added "global column coloring" for Super Draw Poker, colors are now 100% accurate [Angelo Salese]

Fixed disassembler for CPUs with address bus shifts. [Aaron Giles]

TMS57002 preliminary implementation. [Olivier Galibert]

Added digital i/o board layout & initial information on the memory card board to the Konami System 573 driver. [smf]

Added redumped non JEDEC roms to Rock 'n Rage (World). [Corrado Tomaselli]

Added extensive readme doc to the Sega X Board driver. [Guru]

Decrypted a large number of games in goldstar.c and sfbonus.c. [Olivier Galibert]

WIP mario update with some FIXMEs [Couriersud, Smitdogg]
- Created custom module for run sounds. Running the discrete sound system at 480KHz was not really optimal.
- Reviewed parts list, schematics and pcb pictures
- Brought mario run sound in line with recordings from Smitdogg
- VCO voltage needs to be 0V for this to happen. Verification outstanding
- Capacitors needed some ageing applied as well. To be removed once the VCO issue is clarified.

Refactored the ACIA6850 to use devcb. [Curt Coder]

Added a patch to Jackie driver, game now works [Mirko Buffoni]
* Added complete reel emulation (thanks to Luca, Angelo and David drivers studied to better understand hardware similarities).
* Press T to toggle amuse game, used to mask gambling activities.

Added Champion League [Mirko Buffoni]
* Same encryption and patches used in Numero10, but on standard IGS Poker V220I board
* Reworked expansion rom memory map handler

Added effect sound banking, coin counters and sprites - sprites priority to silkroad. [Pierpaolo Prazzoli]

Made a bunch of improvements to the goldstar driver now that the sets are decrypted. [David Haywood]

Revisited seibu decryption. [Nicola Salmoria]

Converted all sound chips into proper devices. Merged the sound chip interface into the device interface, removing any differences (such as the whole ALIASing concept). [Aaron Giles]

Modified every sound chip in the following ways: [Aaron Giles]
* updated to match the device interface
* reduced read/write handlers down to the minimal number
* added the use of get_safe_token() for ensuring correctness
* other minor cleanup

Removed the custom sound device. The additional work to just make custom sound cases into full devices is minimal, so I just converted them all over to be actual devices. [Aaron Giles]

Vastly simplified the sound interfaces, removing the ghastly sndti_* business and moving everyone over to using tags for sound identity. sndintrf, like cpuintrf, is now just a header file with no implementation. [Aaron Giles]

Modified each and every driver that references a sound chip: [Aaron Giles]
* all memory maps explicitly reference the targeted device via AM_DEVREAD/AM_DEVWRITE/AM_DEVREADWRITE
* 16-bit and 32-bit accesses to 8-bit chips no longer use trampoline functions but instead use the 8-bit AM_DEVREAD/WRITE macros
* all references to sound chips are now done via tags
* note that these changes are brute force, not optimal; in many cases drivers should grab pointers to devices in MACHINE_START and stash them away

Fixed a couple of dipswitches for Progress. [Brian Troha]

goldstar improvements: [Roberto Fresca]
- Full inputs & DIP switches from the scratch for schery97, schery97a and skill98.
- Changed the sets description to match the program version.
- Cleaned-up the game driver zone for better organization purposes.
- Added GAME_NO_SOUND flag to schery97, schery97a and skill98.
- Added some program version notes.

Fixed a contact MAMEDEV message in cps1.c. [Nicola Salmoria]

Changed sfbonus to use tilemaps. [David Haywood]

Added sound and some scrolling registers to the sfbonus driver. Added flipx and basic inputs to the sfbonus.c driver. [Angelo Salese]

Updated the wheelfir.c driver with some additional information. [Brian Troha]

Correct rom names and PCB locations in the twincobr driver. Corrected and added missing proms for Flying Shark (and clones). [Brian Troha, Stefan Lindberg]

Merged brasil.c and highvdeo.c drivers [Angelo Salese]

Added basic support of RP5C01 to remove (most) protection kludges in Super Punchout. [Nicola Salmoria, Bob Seidel]

Added correct Midnight Run ROM names [Guru]

Added Read Parameter Register support to the hd63484. Moved logging behind a define. [Phil Bennett]

Added PCB layout for Zoar. Corrected AY-3-8910 clocks and added missing PROM. [Guru]

More improvements to goldstar.c: [Roberto Fresca]
- Added 3 new machine drivers for the different Amcoe games hardware.
- Added OKI M6295 support for speech/sounds to schery97, schery97a, skill98, pokonl97 and match98.
- Fixed sound support to nfb96, nfb96a, nfb96b, nfb96c, nfb96txt, roypok96, roypok96a, roypok96b, nc96, nc96a, nc96b, nc96c, nc96txt, nfb96se, nfb96sea, nfb96seb, carb2002 and carb2003.
- Full inputs & DIP switches from the scratch for pokonl97, match98, nfb96, nfb96a, nfb96b, nfb96c, nfb96txt, roypok96, roypok96a, roypok96b, nc96, nc96a, nc96b, nc96c, nc96txt, nfb96se, nfb96sea, nfb96seb, carb2002 and carb2003. All these were promoted to working state.
- Fixed size and position of tilemaps visible area to match98.
- More driver cleanups.

Cidelsa changes: [Curt Coder]
- Combined CDP1869 video and sound parts to one device
- Refactored CDP1852 to use devcb

Fixed input in hanaawas (note: for the second playere used mahjong input like A,B,C....), also fixed yes/no button in hanaroku. [Sonikos]

Changes safarir CPU to 8085A, the disassembly has 8085A-specific code that an 8080 can't execute. [Luigi30]

Removed some unused code from deco_mlc.c. [Christophe Jaillet]

Added PALs and readme to midxunit.c. [Guru]

Properly added the PPI8255 devices to Pit Boss and reorganized the inputs in these two games. [Angelo Salese]

Corrected memory map for gardiab and promoted it to working. [Angelo Salese]

Added the ability for devices to have their own custom inline config management. This was primarily added to allow for sound routes to be supported in a way that is compatible with the current driver structure. A device can now define a DEVICE_CUSTOM_CONFIG callback which is called whenever one of the MCONFIG_TOKEN_DEVICE_CONFIG_CUSTOM_* tokens is encountered. A special token MCONFIG_TOKEN_DEVICE_CONFIG_CUSTOM_FREE is defined to clean up memory allocated and/or reset the custom configuration, and is called when the device is torn down to allow for memory cleanup. [Aaron Giles]

Various improvements to Far West (Iron Horse bootleg) [Tomasz Slanina]

New games added or promoted from NOT_WORKING status
Monopoly [Phil Bennett]
Monopoly Classic [Phil Bennett]
Monopoly Deluxe [Phil Bennett]
Player's Edge Plus (XMP00024) Multi-Poker [Gyrovision]
Super Draw Poker [Angelo Salese]
Squash (Itisa) [Angelo Salese]
Age Of Heroes - Silkroad 2 (v0.63 - 2001/02/07) [Pierpaolo Prazzoli]
Fever Soccer [Nicola Salmoria, Angelo Salese]
Jackie [Mirko Buffoni]
TomCat (prototype) [Mariusz Wojcieszek]
Go 2000 [Angelo Salese]
Dakkochan House [Angelo Salese]
Skill Cherry '97 (two sets) [Roberto Fresca, Olivier Galibert, David Haywood]
Skill '98 [Roberto Fresca, Olivier Galibert, David Haywood]
Poker Only '97 [Roberto Fresca, Olivier Galibert, David Haywood]
Match '98 [Roberto Fresca, Olivier Galibert, David Haywood]
New Fruit Bonus '96 Special Edition (5 sets) [Roberto Fresca, Olivier Galibert, David Haywood]
Royal Poker '96 (3 sets) [Roberto Fresca, Olivier Galibert, David Haywood]
New Cherry '96 Special Edition (5 sets) [Roberto Fresca, Olivier Galibert, David Haywood]
New Fruit Bonus '96 Special Edition (bootleg, 3 sets) [Roberto Fresca, Olivier Galibert, David Haywood]
Carriage Bonus 2003 (bootleg) [Roberto Fresca, Olivier Galibert, David Haywood]

New clones added
Magic Card (set 3) [Chris Hardy]
Volfied (Japan, older) [Brian Troha]
Tecmo World Cup '90 (Euro set 2) [Tomasz Slanina]
Extermination (World) [Stefan Lindberg]
Pyschic 5 (set 2) [Dazzer]
Head Panic (15/06/1999) [Corrado Tomaselli] (not working)
Image Fight (revision A, Japan) [Arzeno Fabrice]
Skull Fang (World) [Mexa]
GTI Club (EAA) [Mexa]
Operation Thunder Hurricane (ver EAA) [Mexa]
Heavy Smash (Europe version -2) [Mexa]
Phoenix (Taito Japan Ver.) [Team Japump!!!]
Virtua Striker 3 (Cart) (USA, EXP, KOR, AUS) [Andrea Turci]
Raiden Fighters 2 (Japan set 2, SPI) [Corrado Tomaselli]
Master of Weapon (Japan) [Team Japump!!!]
Mahjong If...? (2 sets) [Uki]
Mahjong Shinkirou 2 [Uki]
Pit Boss (Set 3) [Brian Troha]
American Poker II (iamp2 v28) [Roberto Fresca]

New games marked as GAME_NOT_WORKING
Pachi Fever [Angelo Salese]
Sweet Hearts II (C - 07/09/95, Venezuela version) [Heihachi_73]
Margarita Magic (A - 07/07/2000) [Heihachi_73]
Ciclone [f205v, Mirko Buffoni]


MAMETesters Bugs Fixed
- 02923: [Misc.] sonicbom: [debug] Writes extensively to the console (Aaron Giles)
- 02930: [Compiling] cpu.mak typo and fix (emuman)
- 02825: [Crash/Freeze] crossbow: Crash on "Crossing Bridge" stage (Aaron Giles)
- 02949: [Documentation] chocomk: Year is 2002 and the manufacturer is Ecole Software. (incog)
- 02950: [Documentation] bestri: Year of release is 1998. (incog)
- 02958: [Documentation] magictg, magictga: The year is 1997 according to flyer (incog)
- 02951: [Documentation] vgoalsoc, vgoalsca: The year is 1994. (incog)
- 02952: [Documentation] nss_sten: Year is shown on title screen as 1991. (incog)
- 02955: [Documentation] parentj: Year is 1989 according to the title screen. (incog)
- 02939: [Documentation] gp98: Year and manufacturer are 1998, Romtec Co. LTD according to the title screen. (incog)
- 02938: [Documentation] mblkjack: Black Jack (Mirco) is actually Called 21 and the year is 1976. (incog)
- 02956: [Documentation] bigkong: Year is 1981 according to the title screen. (incog)
- 02962: [Sound] All Sets in thepit.c: No Audio (Aaron Giles)
- 02954: [Crash/Freeze] sfiii: SFIII crashes when it hits the Capcom logo on load. (David Haywood)
- 02944: [Crash/Freeze] mustangb, tdragonb: Access Violation (Phil Bennett)
- 02946: [Crash/Freeze] pachifev: [debug] Assertion (Angelo Salese)
- 02947: [Crash/Freeze] turbosb6, turbosb7: [debug] Assertion (Phil Bennett)
- 02927: [Crash/Freeze] Many Sets using segaic16.c: Crash/Freeze while starting (Atari Ace)
- 02943: [Crash/Freeze] majxtal7, mjelct3, mjelct3a, mjelctrb, mjelctrn, neruton : Unable to locate input port 'DSW2' (Fabio Priuli)
- 01059: [Sound] brubber: Low pass filtering on engine and explosion sounds is not emulated in MAME. (couriersud)
- 02935: [Crash/Freeze] All Sets in zn.c: Various Freeze/Hang/Reset Issues (smf)
- 02920: [Crash/Freeze] tetrsark: devcb_resolve_read8 error (Fabio Priuli)
- 02940: [Crash/Freeze] horshoes, plotting and clones: Game Hangs upon startup (Fabio Priuli)
- 02937: [Sound] silkroad: Sound not playing. (Angelo Salese)
- 02212: [Save/Restore] bzone: vector drawing corruption when using a save state (couriersud)
- 02931: [Sound] Many sets using YM2151 Sound Core: Distorted or otherwise incorrect sound (Phil Bennett)
- 02921: [Crash/Freeze] bkraidj, bkraidu, bkraiduj: [debug] Assertion (Phil Bennett)
- 02924: [Crash/Freeze] frogs: [debug] Assertion (Phil Bennett)
- 02929: [Sound] All sets using k007232.c Sound Core: Garbled Music (Phil Bennett)
- 02928: [Sound] prehisle, gensitou: Many sound FX are missing (Phil Bennett)
- 02922: [Crash/Freeze] Most sets in cave.c: Game Freeze during demontration/Intro (Phil Bennett)

Source Changes
Fixed Pachi Fever ADPCM test regression. [Angelo Salese]

Added ATTR_NOTNULL to DAC sound calls. [Nathan Woods]

Decrypted new opcodes for Fire Barrel. [Chris Hardy]

Fixed regressed rowscroll effect for Fire Barrel [Angelo Salese]

Corrected gfx bitplane for Astro Wars [Angelo Salese]

Device-ized the SID code. [Nathan Woods]

Apache 3 improvements [Phil Bennett/Guru]:
* Experimental road layer emulation (currently disabled).
* Fixed text layer alignment.
* Corrected CPU clock frequencies.
* Fixed YM-2151 volume.
* Added road stripe PROM.

Removed earom from bzone. [couriersud]

Impemented CRCL command in hd63484 (used in skattv test mode). [robiza]

Added save state support to tomcat, tempest, quantum, asteroid, bwidow, mhavoc, omegrace. [couriersud]

Device-ified the Atari mathbox. [couriersud]

Device-ified the Atari vector generators. [couriersud]

Added register SXFER (0x05) to the 53c810 - Nothing more. This reg determines SCSI transfer speeds. scud / scuda now fatalerror with writes to reg # 0x70. [couriersud]

Added mtonic decryption. [Olivier Galibert]

Provided color prom to Cow Race [Tomasz Slanina, Angelo Salese]

Quick hack to delay installing the spu dma handler until the first write to the spu as driver init is now called after the devices are created. [smf]

Added discrete filtering and fixing to bking.c. [couriersud]

Added some missing robadv2 sets to sfbonus.c. [David Haywood]

Partially fixed asurabld/asurabus sound regression. [Phil Bennett]

XTAL and divisors for rocnrope verified in schematics. [couriersud]

Added a debug viewer for the blitter-based gfxs in the itgambl3.c. [Angelo Salese]

Added a debug viewer for the blitter-based gfxs in the itgambl2.c. [Angelo Salese]

Renamed a number of commonly-used but confusing device tags. The plan is to move away from generic names like "main" to names that capture the device type as well. This will allow searches for devices to be based on tags alone. Added validity checks to prevent the continuance of this pattern (which I started :), and to ensure that all devices have unique tags, regardless of type. [Aaron Giles]

    CPU/"main" -> "maincpu"
    CPU/"audio" -> "audiocpu"
    CPU/"sound" -> "soundcpu"
    SCREEN/main -> "screen" (since it's the only one)
    SPEAKER/"left" -> "lspeaker"
    SPEAKER/"right" -> "rspeaker"
    SCREEN/"left" -> "lscreen"
    SCREEN/"right" -> "rscreen"
    SCREEN/"middle" -> "mscreen"
    SCREEN/"center" -> "cscreen"

Corrected rom names in tnzs.c for older TNZS sets. [Brian Troha]

Hooked up the reel background colour writes to cherry master / new fruit bonus '96 etc. [David Haywood]

Fixed rom loading in secretab. [Angelo Salese]

Added BellFruit Scorpion 1, Bellfruit System 85, Maygay M1B and Maygay M2 systems from AGEMAME. MPU4 Mechanical improvements have been made, making mpu4.c the mechanical driver, and mpu4drvr the non-mechanical one. This only leaves JPM impact (mechanical skeleton), Maygay M2 and MPU3 (mechanical skeleton) to be ported from the AGEMAME codebase. There's also been a cleanup sweep on Scorpion2, we were declaring too many versions of the same function, and the reel drawing code had stopped working. Both of these are now fixed. [James Wallace]

Improved note about cherry master girl display [David Haywood]

M79-Ambush - Added Discrete sounds, fixed DIPs and added Self Test Lamp Output. [Derrick Renaud]

Fixed oki frequency in galhustl. [Sonikos]

Optimized the rendering loop in mcatadv. [Christophe Jaillet]

Added missing static qualifiers to the code. [Atari Ace]

Added correct ROMs for Super Triv III. [Smitdogg]

Fixed mjelctrn DSW read handler to agree with new tags. [Fabio Priuli]

Added support for the /PC output pin to the CIA emulation. [Dirk Best]

New games added or promoted from NOT_WORKING status
Monoshiri Quiz Osyaberi Macha [Yasuhiro Ogawa]
Gals Panic S3  [Uki, David Haywood] (see http://mamedev.emulab.it/haze/ for details)
King Derby [Stefan Lindberg, Andrew Gardner, Angelo Salese, Roberto Fresca]
Makaijan [Yasuhiro Ogawa]

New clones added
The Pit Boss (set 4) [Brian Troha]
Apache 3 (Kana Corporation license) [Guru]
Great Sluggers 94 (Japan) (not working) [Yasuhiro Ogawa]
Dangerous Dungeons (The Game Room) (newer?) [Smitdogg]
Automat (bootleg of Robocop) [Andrew Welburn, Philip Bennett, David Haywood]
10's or Better [Gyrovision]
Super Heli (Super Cobra bootleg) [Smitdogg]
The New Zealand Story (World, old version, older pcb) [Corrado Tomaselli]
Pipe Dream (World) [Corrado Tomaselli]
U.S. Championship V'ball (US) [Smitdogg]

New games marked as GAME_NOT_WORKING
Gran Tesoro? [f205v]
Heavy Unit (3 sets)  [Tomasz Slanina, Corrado Tomaselli]
Kung-Fu Roushi [Angelo Salese, Roberto Fresca]
Diamond Touch (E - 30-06-97, Local) [Heihachi_73]
Adonis (A - 25-05-98, NSW/ACT) [Heihachi_73]
Super Jolly [f205v]


MAMETesters Bugs Fixed
- 02963: [Documentation] All games in aristmk5.c: Added region info to all games (Heihachi_73)
- 00015: [Sound] Noticeable static in OKI 6295 audio. (Aaron Giles)
- 02698: [DIP/Input] royalmah.c: BET games: Bet button does not work by default. (Angelo Salese)
- 02180: [Core] Corrupt archives are read without problems (couriersud)
- 02694: [DIP/Input] demoderb, demoderm: Duplicated input definitions for P1 and P2 buttons. (couriersud)
- 02983: [Crash/Freeze] racedriv and clones: Race Drivin' and clones loop after "downloading DSP" screen (Phil Bennett)
- 02998: [Crash/Freeze] pkunwar, ninjakun, raiders5: These games don't make it through their rom checks. (Phil Bennett)
- 02368: [DIP/Input] fourtrax: Controls are glitched (Phil Bennett)
- 02996: [Crash/Freeze] hotchase: [debug] Access Violation (Phil Bennett)
- 02894: [Graphics] cprosocc: Ingame graphics corruption. (Phil Bennett)
- 02711: [DIP/Input] spacegun: EE-ROM error after gun calibration. (Phil Bennett)
- 02478: [Graphics] finalapr, finalapo, finalapb, speedrcr: Some graphics are not displayed. (Phil Bennett)
- 02877: [Sound] deadang, leadang, ghunter: Music drowns out sound effects (Phil Bennett)
- 02995: [Crash/Freeze] liberate, dualaslt: Black screen shows after disclaimer (Phil Bennett)
- 02994: [Crash/Freeze] labyrunr, labyrunk, tricktrp: Booting is never completed (Phil Bennett)
- 02991: [Graphics] polyplay: Broken graphics when playing (Phil Bennett)
- 02526: [Graphics] mahmajn2: Missing 'special' linescroll mode. (Olivier Galibert)
- 02979: [Graphics] All sets in m10.c: Dialog box on all sets in m10.c (couriersud)
- 02988: [Crash/Freeze] blswhstl, detatwin: ROM RAM EEPROM Check fails at startup (Phil Bennett)
- 02980: [Documentation] wsbbgd: Year is listed as 200?, flyer confirms as 2001 (incog)
- 02986: [Documentation] ggxx: Year listed as 200?, confirmed as 2002 (incog)
- 02985: [Documentation] ggxxrl: Year is listed as 200?, confirmed as 2003. (incog)
- 02973: [Crash/Freeze] chmplst2: Access Violation (Phil Bennett)
- 02964: [Sound] dingo: No Audio (Phil Bennett)
- 02965: [Crash/Freeze] gradius, gwarrior, rf2, twinbee: Bootup process is never completed/No Sound (Phil Bennett)
- 02909: [Original Reference] boothill: Specification of discrete filters for shot and hit sounds doesn't agree with schematic. (Derrick Renaud)

Source Changes
Added built-in layouts for a large number of games: 280zzzap, buggyboy, buggychl, cbombers, changela, chasehq, chqflag, contcirc, dblaxle, finallap, grchamp, hotchase, lagunar, outrun, overdriv, pdrift, polepos, radr, roundup5, sci, slipstrm, stocker, superchs, topspeed, toutrun, turbotag, tx1, wecleman. [Mr. Do!]

Merged memory maps in nemesis.c. [Aaron Giles]

Scramble now is a lot closer to reports and recordings (background sound, sound of bullets). [couriersud]

Fixed descriptions of the games running on NAOMI series hardware, and NAOMI game list. [Yasuhiro Ogawa]

Input ports clean-up for the jangou driver. [Angelo Salese]

Finally low pass filtering on channel 2A in btime driver: [couriersud]
* Changed resistor to bill of material value
* Adjusted volume level and added more documentation

Fixed regression (missing graphics) in ipminvad (m10). [couriersud]

Added support for System 24 tilemap linescroll modes. [Olivier Galibert]

Various improvements to Heavy Unit:
   [Angelo Salese, Tomasz Slanina, David Haywood]
- Added a VERY preliminary simulation of the protection, just enough to get the game to boot, not make it playable
- Corrected CPU communication, IRQ/NMI generation etc.
- Fixed some video emulation issues (added tilemap scroll etc.)
- Corrected GFX rom loading (at least for the graphics used in attract mode)

Fixed King Derby sprite colors [Stefan Lindberg, Angelo Salese]

Merged tetrisp2 memory maps. Renamed teplus2->tetrisp2j. [Aaron Giles]

Merged labyrunr memory maps. [Phil Bennett]

Added GAME_IMPERFECT_GRAPHICS to Tutankham & clones. [couriersud]

Hooked up layer enables in goldstar.c driver, fixes 'girl' in Cherry Master. [David Haywood]

Scaled up renegade and mjkjidai ADPCM levels in line with recent clock_adpcm() change. [Phil Bennett]

Converted all drivers to the new device-based 6821 PIA. [Aaron Giles]

Added new function memory_install_read_port_handler() to more easily allow you to install read handlers for ports based on tag. [Aaron Giles]

Removed input_port_read_handler8/16/32/64 functions, since they were really only used for getting a memory handler for a port by tag, and this is no longer necessary. [Aaron Giles]

Moved input port handlers to internal code in the memory system. [Aaron Giles]

Added port names to the taito8741 device pending its proper devicification. [Aaron Giles]

Removed all remaining uses of input_port_n_r() functions, and purged them from src/emu/machine/generic. [Aaron Giles]

Removed device types from device queries that use tags, under the assumption that all device tags are unique. Specifically, the following no longer need to provide a device type:


as well as several device interfaces that referenced other devices. [Aaron Giles]

Moved SH2 set info functions to direct calls. [Aaron Giles]

Various improvements to the Zero Target / Counter Steer HW and cleaned-up the driver. Fixed foreground & background colors and hand-tuned sound in Zero Target based on a side-by-side test. Fixed sprite colors. [Angelo Salese]

Fixed pedals in Final Lap 3. [Phil Bennett]

Hooked up correct C75 MCU in namcofl.c (based on RB's namconb1.c implementation) [Phil Bennett]

Corrected Dip-Switch settings for Zero Target. [Yasuhiro Ogawa, Angelo Salese]

maketms: Free strings on exit. [Olivier Galibert]

tms57002 - don't abort on unimplemented instructions. [Olivier Galibert]

Changed eeprom erase command to write 0xff values. [Pierpaolo Prazzoli]

Fixed handling of corrupt archives: [couriersud]
* corrupt files in archives now generate an error
* archive files ending in "/" will not be tested for crc - skip path entries
* add new flag FILE_OPEN_NO_PRELOAD to skip decompressing on open This is used in audit.c, which only tests whether files exist
* added error checking to all calls to load_file_zipped

Added flags to the CHD metadata entries, encoded in the top bit. Right now it is a no-op, but eventually will be used to indicate which bits of metadata are included in the overall checksum. [Aaron Giles]

Fixed gcc 4.4 compilation error. [Belegdol]

Fixed auditing of ROM-less systems (for MESS). [Rene Reucher]

Another round of static/const qualifier additions, plus a rename of has_addon_chip to snes_has_addon_chip.  Notably a number of z80ctc_interface are now const (devicification must have removed the cases where it was dynamically modified). [Atari Ace]

Added the correct gfx roms to jjsquawkers bootleg. [David Haywood]

sfbonus version cleanups part 1. [David Haywood]

New games added or promoted from NOT_WORKING status
Great Sluggers 94 (Japan) [Phil Bennett]
Daisyarin [Yasuhiro Ogawa]
Mahjong Club [Yasuhiro Ogawa]

New clones added
Violence Fight (Japan)
Joker Poker (Version 16.03BI) [Jim Stolis] (not working)
Scud Race (Japan) [Leif Hurst] (not working)
Splatter House (World new version) [Andy Henderson]
New clones: T-MEK (3 sets) [Lars Bull]

New games marked as GAME_NOT_WORKING
Tokimeki Mahjong Paradise Doki Doki Hen [Uki]
E-Jan Sakurasou [Uki]


MAMETesters Bugs Fixed
- 00421: [Graphics] fghthist, fghthsta, fghthstj, fghthstu: Some priority problems in Ryoko's stage. Namely, the old man, the cat and the kid. (Pierpaolo Prazzoli)
- 02854: [Graphics] hypreact: Buggy text in scoring screen (Pierpaolo Prazzoli)
- 00826: [Graphics] wc90b, wc90: Some players are cut at left and bottom of the screen. (robiza)
- 00268: [Graphics] captaven: In attract mode, the small pictures of the heroes appear before they should. (Pierpaolo Prazzoli)
- 03006: [Graphics] blocken: Color / Missing gfx (Phil Bennett)
- 02057: [Graphics] buckrog, buckrogn, zoom909, subroc3d: Graphics Corruption on Title Screen + in game (using -AFS) (Aaron Giles)
- 03001: [Interface] "Working clones" display problem (Aaron Giles)

Source Changes
Fixed a paletteram entry bug in GP World [Angelo Salese]

Fixed sprite positioning bug in Zero Target [Angelo Salese]

Added new graphic roms to the 1999 head panic set. Also added sprite flicker flag, based on tumble pop etc. [David Haywood]

Add locations to rom names for Mazer Blazer (and alt) roms. Add NO_DUMP entries for undumped voice roms, video prom, and pal. [Lord Nightmare]

Preliminary proper roz effects hooked up for Zero Target [Olivier Galibert, Angelo Salese]

Added function calls to replace the MIPS3 and PowerPC DRC's various CPU_SET_INFO bits. [Aaron Giles]

Fixed DCS2 speedup handler so it doesn't get lost during a memory remap. This should give a slight speed bump to the Seattle/Vegas games and to War Gods. [Aaron Giles]

Added service1 button tested in Dynamite Bomber (but doesn't work in game) and fixed little sprites priority problems in limenko.c [Pierpaolo Prazzoli]

Fixed a sprite bug when flip y flag is used and cleaned-up the whole routine in Zero Target. [Angelo Salese]

Fixed sound regression in Tryout and removed deprecat.h dependancy [Angelo Salese]

tms57002: Add two missing instructions and hack up the coef update. The real way coefficient updates are handled is a little too complex for now, but the hack throttles the update speed to the real rate given the way konami uses it (once per sync).  It's near impossible to use it in a different way anyway. [Olivier Galibert]

Fixed bug that caused 64-bit PowerPC systems to fetch opcodes in the wrong order. [Aaron Giles]

Fixed Analog settings so Digital and Autocenter Speeds are applied properly in real time. Fixed Digital Speed = 0 so it increments in single steps per button press. [Derrick Renaud]

Merged memory maps in the rpunch driver. [Aaron Giles]

Fixed PSX CPU disassembly of -$8000, it was showing up as -$0. [smf]

Allow chds to be directly in the rom directory without a subdirectory. [Olivier Galibert]

wc90b1 and wc90b2 improvements: [robiza]
- sprite priorities
- sprite x position
- fixed y sprite wrapping
- fixed bg and fg scroll
- fixed bg and fg offsets

Fixed colors in Cultures (Jibun wo Migaku Culture School Mahjong Hen) [Tomasz Slanina]

Refactored sfbonus and improved the inputs. [David Haywood]

Hooked up paletteram in Midnight Landing [Angelo Salese]

royalmah update: [Uki]
- added some notes
- fixed DIPSW of makaijan
- fixed visible area
- fixed CPU clock

Add muting just before saving the NVRAM, and de-mute just after loading the NVRAM. Should cure the stuck sound issue for games with large NVRAM. [Aaron Giles]

Added placeholders for the two PAL's on Atari's version of Pole Position 1 and 2 (I could not read the last digit of the PAL at 5c.) [Kevin Eshbach]

Added board numbers to SEGA's Quartet 2 documentation. [Kevin Eshbach]

Corrected the rom names for Tutankham. [Kevin Eshbach]

Hooked up 2D layer in Driver's Eyes. [Naibo Zhang]

Fixed Konami zr-107, GTI Club hardware, background layer lost (black sky). [Naibo Zhang]

New games added or promoted from NOT_WORKING status
Puzzle Time (Prototype) [Angelo Salese, Pierpaolo Prazzoli, Yoshi]

New clones added
Gals Panic S2 (Asia) [Andy Henderson]
Jansou (alt) [Uki]


IMPORTANT NOTE: The CHD format has undergone a change with this release. The main reason for this change is to include some of the key metadata into the hashes for the CHDs. This ensures that the metadata is valid and prevents abuse.

The first impact you will find is that all of your CHD differencing files are invalid. Just delete your "diff" directory contents entirely.

The second impact is that all your existing CHDs will warn you that they have incorrect hashes. This is expected. Your old CHDs should still work fine, so if you can live with the "bad ROM" warnings, you don't really need to do anything. However, if this bugs you or you want to be "clean", you can update your CHDs, using this command line:

   chdman -update <chdfile> <newchdfile>
for each one of your CHDs. This will take a while, but will produce CHDs that match the new checksums posted in the drivers.

MAMETesters Bugs Fixed
- 03017: [Crash/Freeze] bmfinal: crash after cutting edge logo (Phil Bennett)
- 02875: [Sound] Any Game that uses AY-3-8910: Envelope Fix causes notes tones to be played back incorrectly (couriersud)
- 03026: [Graphics] retofinv, retofin1, retofin2: The remaining lives are not shown. (Pierpaolo Prazzoli)
- 02981: [Cheat System] CHEAT.C: MAX_ARGUMENTS doesn't seem to work. (Pugsy)
- 00827: [Graphics] wc90b1, wc90b2: On the Credit display screen, the PCB shows the upper part of the stadium. (robiza)
- 00230: [Graphics] troangel: I just checked mame emulation against my pcb. (robiza)
- 03018: [Sound] f1gpstr2: Sounds not playing (Phil Bennett)

Source Changes
Fixed C140 ROM loading in winrun, winrun91 and driveyes [Phil Bennett]

Added Champion Italian PK blue board and promoted Champion Italian PK green board (previously citalian) and Champion Italian Cup (previously citaliana) to GAME_WORKING status [Mirko Buffoni, David Haywood]
- Added cpokerpk (also known as CPK blue board for the color of the board)
- Renamed citalian -> cpokerpkg (green board, can be seen in rom too)
- Renamed citaliana -> citalcup
- added PAL decryption, making all games playable
- Updated input ports and fixed gfx layout to use 6 bitplanes like all others
- Changed number10 and cpokerpk video udpate to not use transparency

Updated CHD format to version 4. Checksums are now computed and stored separately for raw data and metadata, and metadata is now checksummed by default. [Aaron Giles]

Updated chdman to support a generic metadata addition system:
  chdman -addmetatext <chdfile> <tag> [<index>] <sourcefile>
  chdman -addmetabin <chdfile> <tag> [<index>] <sourcefile>[Aaron Giles]

Changed the CHD verify interfaces to pass back a structure containing all the necessary data for verification and fixing. [Aaron Giles]

NeoGeo update [Johnboy]
- maglordh - Renamed p1 to correct chip label (MichaelNet)
- Renamed maglordh to maglord (MVS) and maglord to maglordh (AES)
- whp - Renamed several roms to correct chip label (MichaelNet)
- kof2001 - Renamed p's to correct chip label; added note (MichaelNet)
- Added mv1c bios, redump/reverification required
- Updated documentation (see neogeo.c)
- cyberlip - Added correct m1 (Guru/Smitdogg)
- eightman - Removed BAD_DUMP from m1, is correct (Guru/Smitdogg)

Merged Casino Winner and Royal Casino drivers [Angelo Salese]
* Fixes Royal Casino colors;
* Added flip screen support to the driver;
* Changed Casino Winner to be a clone of Royal Casino;
* Cleaned-up the driver;

Fixed Midnight Landing gfx bitplanes [Angelo Salese]

PGM updates: [Xing Xing, David Haywood]
- added kov2p205, martmasc romset
- fixed some descriptions
- experimental video change with a view to fix priorities on kov2

Modified cdrom.c to expose metadata read/write functions, and changed chdman to use them. Also changed chdman to parse old-style metadata and convert it to new-style metadata. [Aaron Giles]

Fixed regressed sound in the deco MLC driver. [Angelo Salese]

Preliminary protection simulation in olds100a [XingXing]

Added an older Japanese neogeo bios [Corrado Tomaselli]

Improvements to Counter Steer [Angelo Salese]

Added new function core_fload() to load a file into an allocated buffer. Updated src2html, regrep, and chdman tools to use this function where appropriate. [Aaron Giles]

Fix f1gpstr2 sound regression [Phil Bennett]

Added default nvrams to sfbonus.c using rom_load_optional. This should save some time renaming and reparenting these in the future. [David Haywood]

Minor video/psx.c changes that were needed for raycrisis. [David Haywood]

Fixed Heavy Unit main CPU bankswitch. This fixes the enemy appearing in attract mode. [Mamesick]

Added text tilemap flickering to pzletime. It allows to see the selected options. [Pierpaolo Prazzoli]

Changed the CPU cores to use the get_safe_token() pattern like other devices. [Aaron Giles]

System16 update [kanikani]
- Enabled some buttons previously marked as 'unused'. Manuals say 'No Connection', but programs read them and do something. i.e. button2 in Tetris: can rotate the piece

More Counter Steer progress. [Angelo Salese]

Added PCB layout for Jumping Break and additional information. Corrected the sound clocks on PCBs that only have a 28MHz OSC. Only Super Lup Lup Puzzle has the 14.318180MHz OSC. Rearranged the rom def section to group the F-E1-16-0xx PCB based games in order. [Brian Troha]

troangel: better support of line scroll with wrap. The scroll offsets are split in LOW byte and HIGH byte. [robiza]

Add specific support for NEC VR4300/4310 CPUs. [R. Belmont]

Fixed paletteram in Super Crowns Golf. Hooked up text background. [Angelo Salese]

Updated CHD hashes. [Yasuhiro Ogawa, Aaron Giles, David Haywood]

Added default eeprom to skullfng, so that it appears less broken by default. (doesn't boot without one) [David Haywood]

wc90b1 and wc90b2: fix fg and bg vertical scroll [robiza]

Implemented a multi-sprite bit in toaplan2 driver. [robiza]

Changed mapping of start key in multfish.c to standard key (1) like other gambling games, added extra set. [David Haywood]

Fixed bug where chdman -extract would not truncate to the logical size. [Aaron Giles]

Silenced out heavy accesses to Sound RAM expansion area for Stress Busters [Angelo Salese]

Added better descriptions and dates to a number of drivers in the mamedriv.c file. [Yasuhiro Ogawa]

Minor hack to fix start countdown sound bug in the Buggy Boys. [Phil Bennett]

Added idle skipping and a number of new sets to the Naomi driver. [David Haywood]

Burger Time: Added resistor values measured on real pcb [Anoid]

Adjusted volume in the galaxian driver. [couriersud]

Adjusted Volume and removed dc component from sound in the gyruss driver. [couriersud]

AY-3-8910 improvements: [couriersud]
* Fixed Gyruss audio regression
* Measured RU and RD on AY-3-8910
* Modelled ZX Spectrum audio circuit in SwitcherCAD and derived resistor values for AY-3-8910

MIPS III: Update RA before executing the delay slot. [R. Belmont]

Added inputs for galaxia and astrowar. Galaxia is semi-playable. Note: After inserting a coin, it can take a few seconds to respond. [Robbbert]

Fixed build of ldplayer on OS X. Since the CUSTOM sound module no longer exists, I arbitrarily changed it to WAVE, as ar gets upset if it has no input files. I also removed the -all_load flag for ldplayer from the main makefile as it upsets the linker on OS X. [Vas Crabb]

Fix build for PPC64 Linux. (This slightly messes up static branch prediction hints on OS X and AIX, but OS X for PPC64 is dead, and no-one builds MAME for AIX, and it will still build, anyway.) [Vas Crabb]

Paramaterise the arguments to check for NULL in the ATTR_NONNULL macro rather than just checking the first argument. This requires compiler support for C99 variadic macros (MSVC2005 and GCC4 have this AFAIK). [Vas Crabb]

Z80PIO: When outputting from a port to the hardware in pio mode 3, only those bits defined by the mask should be output. Mame currently outputs everything. [Robbbert]

Changed the One-Shot List or Selectable value cheats to display "Set" instead of "Off". Also stopped the cheat options being activated in order when you are going through the possibilities in this case. These cheats are now activated by pressing ENTER after you have chosen an option. [Pugsy]

New games added or promoted from NOT_WORKING status
Buggy Boy/Speed Buggy (cockpit) [Phil Bennett]
Chaos Heat [Olivier Galibert]
Ray Crisis [Olivier Galibert, David Haywood]
Chaos Heat [Olivier Galibert, David Haywood]
Flip Maze [Olivier Galibert, David Haywood]
Super Puzzle Bobble [Olivier Galibert, David Haywood]
Soutenryu [Olivier Galibert, David Haywood]
Shanghai Shoryu Sairin [Olivier Galibert, David Haywood]
Psyvariar -Medium Unit- [Olivier Galibert, David Haywood]
Psyvariar -Revision- [Olivier Galibert, David Haywood]
Zoku Otenamihaiken [Olivier Galibert, David Haywood]
Usagi [Olivier Galibert, David Haywood, Angelo Salese]
Mahjong Oh [Olivier Galibert, David Haywood, Angelo Salese]
XII Stag [Olivier Galibert, David Haywood]
Jumping Break [Pierpaolo Prazzoli]
Champion Super III [Mirko Buffoni, David Haywood, Angelo Salese]
Champion Super 2 [Mirko Buffoni, David Haywood]

New clones added
Millennium 4000 (version 1.5) [Mirko Buffoni]
American Poker II (bootleg, v4) [Mirko Buffoni]

New games marked as GAME_NOT_WORKING
Go By RC [Olivier Galibert, David Haywood]
Space Invaders Anniversary [Olivier Galibert, David Haywood]
Night Raid [Olivier Galibert, David Haywood]
Tokyo Cop (Italy) [David Haywood]
California Chase [Angelo Salese]
Street Games II [Guru, Angelo Salese]
Street Games [Smitdogg, Angelo Salese]
Bonanza [Smitdogg, Angelo Salese]
Thunderbirds [AGEMAME]


(Due to an oversight, credit for the new Neo Geo BIOS was incorrectly given in the previous whatsnew. Thanks to Massimiliano Macri for the donation.)

MAMETesters Bugs Fixed
- 02382: [Graphics] peke1012: Bad ROM dump causes graphics glitches (Jim Stolis)
- 02977: [Crash/Freeze] rdft2j2: Access Violation (Haze)
- 03071: [Sound] tndrcade tndrcadj: music problem (Phil Bennett)
- 03063: [Misc.] psyvaria, psyvarrv, usagi, nightrai, xiistag: Some G-Net cards were dumped without restoring them to defaults first (Guru)
- 03068: [DIP/Input] leprechn: Lives are incorrect in Dip Settings (Tafoid)
- 03024: [DIP/Input] jrpacmbl: All inputs perform wrong function in-game (Fabio Priuli)
- 02972: [Documentation] shuttlei: Year is listed as 197?, confirmed as 1979. (incog)
- 02978: [Documentation] suprgolf: Year is listed as 19??, confirmed as 1989. (incog)
- 02970: [Documentation] sfbonus, sfbonusa, sfbonusb, sfbonusd, sfbonusv: The year is 2003 according to the attract mode. (incog)
- 02968: [Documentation] parrot3: The year is 2003 according to the attract mode. (incog)
- 02969: [Documentation] parrot3b: The year is 2004 according to the attract mode. (incog)
- 02999: [DIP/Input] taotaida: need more 3 buttons (Fabio Priuli)
- 03029: [DIP/Input] jitsupro, kazan, p47, rodland, stdragon and clones: "Demo sounds" dip-switch inverted (Fabio Priuli)
- 03042: [Documentation] mjclub: Dip-Switch settings for mjclub (Fabio Priuli)
- 03031: [DIP/Input] seganinj and clones: Player 1 button 3 not present (Fabio Priuli)
- 03048: [Sound] equites and clone: strange noise ingame (Phil Bennett)
- 03035: [Save/Restore] frogg, froggrmc: Autosave does not work correctly (couriersud)
- 02172: [DIP/Input] some driving games: MAME allocates Player 2 - 4 inputs for deficient Player 1 inputs. (Fabio Priuli)

Source Changes
Added board description to Zodiack. [Guru]

Demoted some games to have the GAME_NOT_WORKING flag:
- Alligator Hunt (protected version);
- Glass;
- Great Guns;
- Name Club Ver. 3;
- Snow Board Championship;
- Tetris Korean bootleg;
- Thunder Hoop 2: TH Strikes Back;
- Touryuu Densetsu Elan-Doree / Elan Doree - Legend of Dragoon;
- World Grand Prix;
- World Rally 2 - Twin Racing;

Some various Naomi improvements and SH4 hacks to get more Naomi games booting farther. [David Haywood, Angelo Salese]

Added a PCB layout for the large single plane PCB that Incredible Technologies used for the Golden Tee 3D series (3D through Classic), Shuffleshot, World Class Bowling and World Class Bowling Deluxe. [Guru]

Added PCB layout & hardwared documentation for Atari's Badlands [Guru]

WIP driver for Cubo CD32 [Mariusz Wojcieszek]:
- AGA palette
- AGA bitplane data fetching
- support for up to 8 standard bitplanes
- HAM8 mode

Further annotated the game lists is mamedriv.c. [Yasuhiro Ogawa]

Fixed pending IRQs handling in the TLCS-90 CPU core [Luca Elia]

Updated video timing in bestbest to match PCB [Guru]

ejsakura fix: added ymz280b_r to memory map to prevent musics to stop while playing [Cs9ph7Rg0]

nemesis.c fix [Hau]
- Fixed screen priority problems in Kitten Kaboodle.
- Added flip screen & cocktail support.
- Merged memory maps in hyprduel.c

CPU cores are now enabled on a per cpu core family basis instead of per cpu core variant. As a result CPUDEFS is no longer needed in the makefile. [Wilbert Pol]

TMS320C25 fixes and enhancements: [Olivier Galibert]
- accept IRQs on IDLE
- actually count irq processing and instruction fetching cycles
- add support for external serial frame sync with internal triggering (aka TXM=1 and FSM=1).

Updated G-Net CHDs (reset to factory default settings and clear high-score table) [Guru]

Added description of G-Net card/PCB [Guru]

Fixed crash due to recent cheat engine changes. [Pugsy]

Fixed the sprite collision code of the mcu simulation in 'machine\mexico86.c'. [Aladar]

Improved sound banking in galpani2 driver. [Luis Faria]

Gameplan improvements: [Tafoid]
- verified and simplified the DIPs, adding locations
- adjusted clocks in Leprechaun and Pirate Treasure based on info from the manual

Implemented model2 inputs through direct AM_READ_PORT access rather than using read handlers. The patch also fixes daytona brakes (which were previously labeled with the wrong tag). [Fabio Priuli]

Simplified input handling in Taito F3 games. [Fabio Priuli]

Various PGM fixes and improvements [XingXing]

Fixed rdft2j2 set, it was using rdft roms instead of the rdft2 ones. [David Haywood]

Additional PGM improvements: [David Haywood]
- Added emulation of the earlier type of ARM (ASIC27A, 5585E type) Used this for protection emulation on Photo Y2k, Knights of Valour Superheroes instead of old simulation code
- Disabled protection simulation for several sets. This demotes Knights of Valour / Knights of Valour Plus to NOT working as there is no dump of the internal rom.
- Photo Y2k still works because it's using the emulation added above, but You can no longer change region as this is supplied by the ASIC27A device which is now emulated.  This is correct.
- Added several new sets, several of which are re-releases of the games using the ASIC 27A instead of the previous protection devices. (oldss, killbldp)
- Removed per-game speedup hacks, as they're no longer needed for the ARM based games to boot correctly.

Fixed core_strwildcmp by increasing the limit from 8 to 16 characters. [smf]

Verified and simplified munchmo DIPs, and added locations. Also fixed clock speeds and AY-8910 clock to match recordings. [Tafoid]

Verified DIPs and added locations for Road Fighter. Adjusted defaults to match the manual. [Tafoid]

In bublbobl, emulated CPU1 (slave) <-> AUDIOCPU communications and AUDIOCPU reset at startup, previously this was disabled. [Mamesick]

Added samples emulation to Rough Ranger (V2.0), write ports A & B of YM2203 are used. [Mamesick]

Added game-specific kludge to get music in SD Gundam Psycho Salamander. [Mamesick]

Fixed G-NET on big-endian hosts. [R. Belmont]

New games added or promoted from NOT_WORKING status
Hidden Catch 3 [Pierpaolo Prazzoli, Tomasz Slanina]
Iron Fortress [Smitdogg Jones, Dumping Project]
Mahjong Vegas (unprotected set) [Luca Elia, Uki]
E-Jan Sakurasou [Cs9ph7Rg0]
Kollon [Guru]
Otenki Kororin [Guru]
Shikigami no Shiro [Guru]
Magical Error wo Sagase [Hau]
Knights of Valour Superheroes [XingXing, David Haywood]

New clones added
Super Puzzle Bobble (2.04J) [Guru]
Zooo [Guru]
Operation Wolf (Japan) [Guru]
Puzz Loop (Asia) [Brian Troha]