0.112u1 ------- IMPORTANT: This release brings with it a major source code reorganization. Because of this, there is no diff update, since the diff would be enormous. The new layout at a high level looks like this: makefile docs/ src/ emu/ (generic emulation files from the old src/ directory) cpu/ (CPU cores from src/cpu) sound/ (sound cores from src/sound) debug/ (debugger code from src/debug) audio/ (generic audio files from src/sndhrdw) layout/ (generic layout files from src/layout) machine/ (generic machine files from src/machine) video/ (generic video files from src/vidhrdw) mame/ (MAME-specific drivers) drivers/ (drivers from src/drivers) includes/ (includes from src/includes) layout/ (majority of files from src/layout) machine/ (majority of files from src/machine) audio/ (majority of files from src/sndhrdw) video/ (majority of files from src/vidhrdw) etc/ (misc files from src/etc) lib/ (libraries) util/ (various files with light dependencies from src) zlib/ (zlib library) expat/ (expat library) osd/ (OS-dependent code) osdmini/ (mini OS-dependent code) windows/ (Windows OS-dependent code) tools/ (misc tools) Along with these changes come a number of makefile alterations to better distribute the build knowledge within each major subdirectory. There may be some build issues or other interesting side effects to this change. Report them on MAMETesters and future updates will include fixes. MAMETesters Bugs Fixed ---------------------- m4_0111u4gra [Mike Ellery] mouser0112yel [Mamesick] bnj0111u5ora [Canim] Source Changes -------------- Improvements to the Cidelsa driver: [Curt Coder] - Fixed the disassembly of cdp1802 opcode LSKP - Changed the cdp1802 opcode OUT to increment R(X) after calling the write handler - Set cdp1869 display size and visible area according to data sheet - Added cdp1869 CFC emulation (probably never used by anything but just for completeness' sake) - Cleaned up driver Improvements to the M2 driver: [Ville Linde] - Added preliminary CD controller emulation - Hooked up some more multi-processor functionality and interrupts Improvements to C352 sound emulator: [cync, hoot development team] - Rewrote loop and flag handling, added support for global key-on register - Fixed state saving Worked around compilation error on MSVC that caused "Calendar error" in the Neo Geo games. [Atari Ace] Rewrote much of the RF5C400 sound emulator to support looping, stereo panning, and 8-bit sample support. [hoot development team, Ville Linde] Removed patch from mjleague now that it is not needed. [Arenzo Fabrice] Fixed bubbletr crosshairs. [Canim] Cleaned up information in mamedriv.c. [Brian Troha] Added save state support for all games in gng.c, gunsmoke.c, lasso.c, solomon.c and terracre.c. [Vas Crabb] Replaced implementation of Namco 54xx sound chip with new MB8844 CPU core running the original embedded ROM code. Removed old sound core. Pole Position and Bosconian no longer require samples as a result. [Nicola Salmora, Ernesto Corvi, Guru] Added new function driver_get_count() to return the number of drivers. [Nathan Woods] Added a bunch of new protection routines for SD Gundam & Heated Barrel. [Angelo Salese] Input system changes: [Derrick Renaud] - Added new IPT_POSITIONAL control type. This is for Ikari type rotary controls and gray-code devices like Seawolf. This makes rotary and gray-code controls easy to enter without custom handlers. - Fixed some rounding and min/max errors in the core input code. - Modified crosshair code to be based on real scaling, see Seawolf for an example. It can now also have multiple crosshairs on one input port if needed. - Added back in the namcos2 crosshairs. Turns out they are needed for calibration. - Removed the gwar control hack from the Ikari games that did not need it. Modified the gwar control hack so it is only used for 1 frame, making it unnoticeable. - Updated boothill, gunfight, seawolf, spcenctr to use the new PORT_REMAP_TABLE. Fixed the exidy/stern-sb1000 6840-based sound hardware to use what is believed (based on the schematic) to be the proper LFSR/PRNG waveform for its secondary clock source. [Lord Nightmare] Updated Dragon Bowl to use HOLD_LINE for sound IRQs. Also did the same for the following drivers: afega, ettrivia, funybubl, jack, mustache, seta, trvmadns, wink. [Pierpaolo Prazzoli] Changed 6809/6309 CPU cores to call the MAME debugger when CWAI/SYNC is used. [Nathan Woods] Fixed uninitialized use of video_dma_address to address the rfjet crash in 64-bit builds. [Ville Linde] Added support for the Motorola MPC8240 to the PowerPC core. [Ville Linde] Improved ZIP file searching to look first for name + CRC match, second for CRC-only match, and lastly for name-only match. [Ben Rudiak-Gould] Verified and improved stepper behavior based on comparison with a real machine. [James Wallace] Changed file2str to work for any binary file and output the data as an array of bytes rather than a string. [Aaron Giles] Made UI font size computations more flexible. This ensures that fonts are scaled vertically by an integral factor and should produce nice proportions for most fonts now. [Aaron Giles] Added new function sound_find_sndnum_by_tag() to look up a sound index by its tag. [Aaron Giles] Made osd_uchar_from_osdchar a member of the osdcore file library. [Aaron Giles] Created new generic bitmap management code with fewer dependencies on the rest of MAME so that it can be used by utility code. Changed bitmap_alloc to always take a format parameter. Deprecated bitmap_alloc_format. Updated all drivers to pass an explicit format when allocating a bitmap. Changed auto_bitmap_alloc in the same fashion. [Aaron Giles] Split some functionality from fileio.c into new module corefile.c, which can be used by utilities to get unicode support and fopen-style file I/O built on top of the OSD routines. Rebuilt fileio.c on top of the core file code. Added mame_core_file() to get the underlying core_file object from a mame_file so it can be used with png and xmlfile code. [Aaron Giles] Changed the way the tiny build works. There is now the concept of a SUBTARGET. By default SUBTARGET is set equal to TARGET (which is mame) and everything builds as normal. The makefile that is included is now src/$(TARGET)/$(SUBTARGET).mak. Thus, to do a tiny build, you now have to specify "make SUBTARGET=tiny". This will produce an output executable with a name $(TARGET)$(SUBTARGET) (mametiny in this case). [Aaron Giles] Turned ENABLE_BORDER_PIX back on, since so many people seem to be having trouble without it. [Aaron Giles] New games added or promoted from NOT_WORKING status --------------------------------------------------- Cash Quiz [Pierpaolo Prazzoli] Sidewinder [smf] New clones added ---------------- Power Spikes (China) [Pierpaolo Prazzoli] Rastan Saga (Japan Rev 1) [Gerald Coy] Eco Fighters (USA 931203) [Nicola Salmoria] Ultimate Ecology (Japan 931203) [Nicola Salmoria] Eco Fighters (Asia 931203) [Nicola Salmoria] Night Warriors: Darkstalkers' Revenge (Hispanic 950403) [Nicola] Night Warriors: Darkstalkers' Revenge (Brazil 950403) [Nicola]