MAME v0.139u3 Released - Printable Version +- EmuNewz Network (https://www.emunewz.net/forum) +-- Forum: Emunewz General Forum (https://www.emunewz.net/forum/forumdisplay.php?fid=75) +--- Forum: Builds/Releases (https://www.emunewz.net/forum/forumdisplay.php?fid=77) +--- Thread: MAME v0.139u3 Released (/showthread.php?tid=2121) |
MAME v0.139u3 Released - Alastor - 09-19-2010 Multiple Arcade Machine Emulator http://mamedev.org/ Changes : MAMETesters Bugs Fixed ---------------------- - 04030: [Misc.] All sets in taito_f3.c, taito_z.c, kaneko16.c, konamigq.c, overdriv.c: "16-bit EEPROM set with 8-bit data" (Aaron Giles) - 04034: [Crash/Freeze] All sets in viper.c: [debug] Assert in Debug build (Aaron Giles) - 01993: [Graphics] stmblade: Graphical corruption on left side of screen beginining stage 3 (robiza) - 04050: [Graphics] twineag2: Missing graphic effect in screen transitions (robiza) - 04044: [Graphics] batsugun and clones: [possible] batsugun VDP mixing still not correct (David Haywood) - 00945: [Graphics] bkraidu: Text glitch in the flip screen mode. (robiza) - 00944: [Graphics] ghox: There are gfx glitches on the background in the ending scene. (robiza) - 03952: [Graphics] gaiden, wildfang, raiga: Screen is shifted 32 pixels down with flip-screen. (robiza) - 04036: [Graphics] astrowar: [debug] Severe graphic corruption (Fabio Priuli) - 04035: [Crash/Freeze] All sets in chihiro.c: Assert before OK (Fabio Priuli) Source Changes -------------- mc6845.c: Rewritten to allow mid frame changes to the counter registers. This enables drivers to use advanced split screen and scrolling effects using a regular mc6845. [Wilbert Pol] Changed the MACHINE_DRIVER_* macros, as follows: [Aaron Giles] 1. Renamed MACHINE_DRIVER_* to MACHINE_CONFIG_* to match the name of the object it actually describes. The MDRV_* prefix may eventually be bulk updated at some point, but not now. 2. MACHINE_CONFIG_START() now takes a driver_data_t-derived class as a required second parameter. This means that MDRV_DRIVER_DATA() is no longer required, and every "root" machine config *must* specify a driver data class (or driver_data_t itself if the driver has not yet been updated to use driver data). 3. New MACHINE_CONFIG_DERIVED() macro defines a machine_config that is derived from another machine_config. This takes the place of the very typical MACHINE_DRIVER_START()/MDRV_IMPORT_FROM() combination. 4. New MACHINE_CONFIG_FRAGMENT() macro defines a partial machine_config that can only be included in another "root" machine_config. This is also used for machine_configs that are specified as part of a device. 5. Changed MDRV_IMPORT_FROM() to MDRV_FRAGMENT_ADD() to more accurately describe what is happening. 6. Added asserts to the above three macros to ensure they are properly used. Updated all machine drivers to use the new macros. Search & replace lists below cover 99% of the changes, with just a few manual fixups. [Aaron Giles] timer.c: timers get rescheduled only if enable state has changed [Christophe Jaillet] bfm_dm01 improvements: replaced the video screen hack used for the dotmatrix display with a more accurate, artwork-based version. The BFM_DM01 clocks data in one byte at a time, and the new dotmatrix render object represents the 8 dots powered by each byte. [AGEMAME] aristmk4.c: * Cashcade workaround for topgear [Frasher] * Improved a few memory handlers [Palindrome] Changed driver_data objects to be devices. Replaced the driver_data_t class with a new driver_device class, which is the base class for all driver_data objects now. The new driver devices are added as the first device in the device list, with a tag of "root"; all other devices are now owned by the driver device. [Aaron Giles] Moved core callbacks (machine_start/_reset, sound_start/_reset, video_start/_reset/_eof/_update, and palette_init) into device configuration parameters on these new devices. The driver_device base class overrides device_start(), ensures all other devices have been started, and then calls, in order, the following overridable methods: 1. DRIVER_INIT function from the game driver 2. palette_init() - by default calls the MDRV_PALETTE_INIT function 3. driver_start() - new 4. machine_start() - by default calls the MDRV_MACHINE_START function 5. sound_start() - by default calls the MDRV_SOUND_START function 6. video_start() - by default calls the MDRV_VIDEO_START function Similarly, the driver_device class overrides device_reset() and then calls these methods in order: driver_reset() - new machine_reset() - by default calls the MDRV_MACHINE_RESET function sound_reset() - by default calls the MDRV_SOUND_RESET function video_reset() - by default calls the MDRV_VIDEO_RESET function To accommodate these changes, initialization order is slightly altered from before. The tilemap, video, sound, and debug systems are now initialized prior to the devices' start. And the user callbacks for DRIVER_INIT, PALETTE_INIT, MACHINE_START, SOUND_START, and VIDEO_START are all called back-to-back. The net effect should be similar, however. [Aaron Giles] Changed device_t:ubtag to only prepend a prefix if the device is not the 'root' device, in order to keep compatibility with existing tag searching. [Aaron Giles] Changed device startup to actively reorder devices when they report missing dependencies. This ensures that the reset functions get called in the same order that the start functions did. [Aaron Giles] Remove artificial SOUND_ prefix from sound device names. [Atari Ace] Converted sauro, scotrsht, segald, seicross, senjyo, shangha3, shaolins, shisen, skyraid, solomon, spcforce, speekatk, splash, sprcros2, ssozumo, suna16, suna8 to driver_data. [Atari Ace] Added include files for all remaining drivers with multiple source files. [Atari Ace] Corrected or clarified a number of duplicated inputs for drivers up through A [Tafoid] Changed driver_device to expose the game_driver's ROMs through the device interface. This means all ROMs are now exposed via devices, and thus the process of enumerating ROMs gets simpler. [Aaron Giles] Changed all instances of temporarily allocating machine_config objects to just put them on the stack for simplicity, letting the destructor handle the cleanup work automatically. [Aaron Giles] Changed machine_config constructor to take a game_driver, from which the machine_config constructor is obtained. This also means the resulting machine_config holds a reference to the game_driver. [Aaron Giles] Changed running_machine constructor to no longer take a game_driver, since the game_driver is now obtainable via the machine_config. [Aaron Giles] Added two new template classes optional_device<> and required_device<>. Use these to declare the device pointers in the class. The only difference between the two is that required will fatalerror if the device is not found. These new classes are "pass- through" so the underlying pointer can be passed anywhere a regular device pointer would work. [Aaron Giles] Fix compiling on older GCCs (including OS X PowerPC) [Aaron Giles] Change shared memory regions to track their size. Added memory_get_shared() functions to retrieve a pointer to a shared region and optionally the size. [Aaron Giles] pipeline (pipeline.c) [stephh] : * Fixed Dip Switches and Inputs (after verification of the Z80 code) Added templates required_shared_ptr<> and optional_shared_ptr<> which work just like required_device<> and optional_device<> for retrieving a pointer by tag from an address space that specifies AM_SHARE("tag"). Also added templates required_shared_size<> and optional_shared_size<> for retrieving the size of the AM_SHARE region. [Aaron Giles] Created a new generic NVRAM device. It can be configured to default to 0-fill, 1-fill, random-fill, or custom fill. In all cases, a same-named memory region overrides the default fill. The address range where the NVRAM can be found is now identified by an AM_SHARE() region of the same tag as the NVRAM device. Drivers can also explicitly configure a separately-allocated NVRAM region via nvram_device:et_base(). [Aaron Giles] Replaced all instances of MDRV_NVRAM_HANDLER(generic_*) with MDRV_NVRAM_ADD_*("nvram"). Replaced all AM_BASE_GENERIC/AM_SIZE_GENERIC(nvram) with AM_SHARE("nvram"). For all remaining drivers that referenced the generic.nvram directly, changed them to hold a required_shared_ptr to the NVRAM in their driver state, and use that instead. Removed nvram and nvram_size from the generic_ptrs. [Aaron Giles] Have each device create its own device_debug instead of letting the debugger do it. This allows the device to start itself up before the debugger tries to figure out what to do with it. Fixes the problem where register names were not populated into the symbol table correctly after I shuffled the initialization order. [Aaron Giles] multfish.c: Updated driver with new information and several new sets as well as several new bootlegs. [MetalliC] New driver for Jubilee's Double-Up Poker. Decoded graphics and colors properly. Hooked the correct TMS9980 CPU, added a preliminary memory map and some technical notes. [Roberto Fresca] Integrated comments into debugcpu.c, and removed debugcmt.c. Modernized the code and updated so it actually works with the modern debug classes. [Aaron Giles] Added AM_DEVREAD_MODERN/AM_DEVWRITE_MODERN/etc. macros for the non-modern address map case so that updated devices can shed their old-style read/write handlers in favor of member functions. [Aaron Giles] Bulk converted all okim6295_r/okim6295_w references in the address maps to call to the modern member functions. [Aaron Giles] quizpani (quizpani.c) [stephh] : * Improved Dip Switches and fixed Inputs (after verification of the M68000 code) Renamed namcops2 DVDs to match labels [Guru] Added read_status() and write_command() methods to the okim6295_device for the common case where these are done outside the context of a read or write handler (it was annoying to pass in the fake address space for these cases). [Aaron Giles] Added DEVCB_DEVICE_MEMBER() macros which allow you to specify a READ8_MEMBER or WRITE8_MEMBER in a device callback (via dynamically generated trampolines). [Aaron Giles] Replaced all remaining calls to okim6295_r/okim6295_w with calls to the new methods, and removed the static functions. [Aaron Giles] namcops2: added dongle dump for Federation vs. Z.A.F.T. [Guru] Corrected or clarified a number of duplicated inputs for drivers up through C [Tafoid] Fixed sprite OV flag behaviour in PC Engine VDC emulation [Angelo Salese, Charles MacDonald] Corrected or clarified a number of duplicated inputs for drivers up through G [Tafoid] Converted ASAP CPU core from a legacy CPU core to a modern device. [Aaron Giles] Renamed device_execute_interface::m_icount to m_icountptr to avoid commonly-named device values of m_icount. [Aaron Giles] Fixed a bogus Hu6280 CPU core bug with timer latch division values readings [Angelo Salese] [SSV] implemented visible area registers; now the resolution for all the games is the max visible area (the values of the registers after the boot process) [Robert Zandona'] Fixed missing VRAM > VRAM DMA flag clearance in PC Engine emulation [Angelo Salese] strnskil.c: Added MCU dump for banbam. [Pete Ogoun, Andrew Gardner] Moved sound routing for non-speaker devices over to the sound interface's post-start method. Routing from one sound device to another was broken when sound_init() was moved ahead of device startup. [Aaron Giles] Removed vestigial NVRAM from starwars, which is now covered by the x2212 device. [Aaron Giles] CHDMAN: rewrote bin/cue support from specs, more images now work. [R. Belmont] Removed generic.videoram and generic.videoram_size. These generics have no core use, they are simply there for the convenience of drivers. Now that drivers are required to have devices, the data should move there. [Atari Ace] Added proper handling of the SRAM in Aristocrat MK-5 [Palindrome] Removed usage of I2C in Aristocrat MK-5 [Angelo Salese] Added -bench option to standardize benchmarking. [Aaron Giles] Added DECLARE/DEFINE_TRIVIAL_DERIVED_DEVICE macros to simplify the definition of devices that are based off of a parent device, but which differ in name and a single parameter. [Aaron Giles] Convert ADSP21xx core to a modern CPU device. [Aaron Giles] On Windows, osd_break_into_debugger() will now dump a stack crawl if there's no debugger attached. This means that asserts should have a full crawl now, for easier debugging. [Aaron Giles] Replaced NVRAM_HANDLER in leland with an NVRAM device. [Aaron Giles] ssv: * implemented y tilemap offset register; (Roberto Zandona') * implemented x and y visible area register; (Roberto Zandona') * disabled tilemap draw when mode=0; (Roberto Zandona') * confirmed visible area register with a twin eagle II PCB (Corrado Tomaselli) Replaced largely redundant NVRAM handlers with NVRAM devices for namcos2 and a bunch of the Nichibutsu mahjong games. Also did it for the Atari games, moving the old hard-coded EEPROM data out into files finally. [Aaron Giles] Merged ssgbl.c into megadrvb.c and moved bootleg input definitions out of megadriv.c [Sonikos] Made the mc146818 a proper device, modernized it, and added an NVRAM interface so that drivers don't have to ask it to be manually saved. [Aaron Giles] Added definitions for [DECLARE_]READ_LINE_MEMBER and [DECLARE_]WRITE_LINE_MEMBER so that read/write line callbacks can be defined as member functions. [Aaron Giles] Added stubs and new macro DEVCB_DEVICE_LINE_MEMBER to allow these to be referenced from device callbacks. [Aaron Giles] Modernized the 6522 VIA device: [Aaron Giles] * changed to use the new device timer mechanism * removed all trampolines in favor of modern methods ssv: removed kludge for sprite x offset and implemented 1 bit of 7a-7b register [Roberto Zandona'] ssv: * implemented y sprite inversion CRT register; * added a kludge for dynagear * used CRT registers to get the sprite x offset [Roberto Zandona'] ssv: removed offset values from the init; the offset now are handled by the CRT registers [Roberto Zandona'] ssv: fixed bit #a of 7a-7b CRT register [Roberto Zandona'] Converted intelfsh to a device, updated all users. [Aaron Giles] ssv: fixed background disable condition [Roberto Zandona'] New build tool makedep.c, derived from src2html.c (really!). Does basic dependency analysis and supports excluding paths. [Aaron Giles] Makefile now supports a depend target which will run makedep on the src/$(TARGET) tree and create dependencies. It deliberately excludes the root of src/emu as well as the osd directories in order to keep the dependency file down to a reasonable size, so if a core header file changes, you still need to clean and build all. [Aaron Giles] CHDMAN: improved -extractcd bin/cue output, improved error handling. [R. Belmont] Added memory interface to the intelfsh device so you can access/view the data in the debugger and via the standard memory interfaces. Removed the old memory() method in favor of new functions read_raw()/write_raw() which do direct reads/writes of the data. [Aaron Giles] Cleaned up CPS3 No-CD sets to break up the "ROMs" into individual flash pieces which are automatically loaded by the intelfsh device on initialization. Also split the MACHINE_CONFIG to only populate the number of SIMMs actually present for each game, as documented in the top of the file. And replaced the NVRAM_HANDLER with an NVRAM device. [Aaron Giles] CHDMAN: support for .WAV tracks in bin/cue images [R. Belmont] neogeo.c: misc updates [Johnboy] * viewpoint - Renamed v's to correct chip label * ghostlop - Renamed roms to match proto naming sheme * savagere, kizuna - Added correct c1 * crsword - Tagged MVS AND AES VERSION, added correct m1 * legendos - Added correct m1 Triple Punch/Knock Out AY-3-8910 clock speed was incorrect, fixed and verified from real hardware. [plgDavid] Verified clocks and oki pin on quiz channel question boardset. [plgDavid] Added an integral device_timer_id to device timers. This is a cleaner way to differentiate between multiple timers rather than relying on the pointers. These values are also saved with the timers. Updated the few devices using device timers to leverage this. [Aaron Giles] Added new function device_timer_call_after_resynch() which creates a temporary 0-length timer that calls back through the device's device_timer() method with a given device_timer_id. [Aaron Giles] Added a function to change the MSM5205 frequency dynamically [Angelo Salese] Added a set volume function for CD-DA [Angelo Salese] New games added or promoted from NOT_WORKING status --------------------------------------------------- Shinobi / FZ-2006 (Korean System 16 bootleg) (ISG Selection Master Type 2006) [Angelo Salese] Poker Master (Tony-Poker V3.A, hack?) [David Haywood, William Ostronic] New clones added ---------------- Vigilante (World, set 2) [porchy] Sega Rally Championship (Revision B) [Alex's Blog] Touchmaster 2000 Plus (v4.63 Standard) [Brian Troha, The Dumping Union] Touchmaster 4000 (v6.01 Standard) [Brian Troha, The Dumping Union] New games marked as GAME_NOT_WORKING ------------------------------------ Jubilee Double-Up Poker [Roberto Fresca] Piccolo Poker [Roberto Fresca, Team Europe & Housi] Crisis Zone (CSZO2 Ver. A) [Guru] Soul Calibur 2 (SC22 Ver. A) [Guru] White Tiger [Palindrome] Swiss Poker ('50 SG-.10', V2.5) [Roberto Fresca, Tomasz Slanina, Team Europe & Housi] Movie Card [Roberto Fresca, Team Europe & Housi] Maximum Speed [Guru] |