MAME 0.124u1 was released on 3 April 2008.
The known contributors for this version are, in alphabetical order:
The known contributions for this version are, in the order specified in the whatsnew:
- Aaron Giles renamed galaxian.c -> galaxold.c. Updated all drivers accordingly.
- Curt Coder contributed Cidelsa driver updates:
- de-deprecated the timer callbacks
- moved PCB RAM to the heap and fixed index overflow
- converted CDP1869 to the new device system
- refactored to represent how the hardware actually works
- added PMA latching on OUT5
- separated Cidelsa video to its own file
- Curt Coder updated the COP CPU:
- implemented interrupt
- implemented serial input/output
- fixed XAD/LDD, XIS1, RMB3 opcodes
- fixed clock divider
- fixed internal memory map size
- added some cpu variants
- fixed serial timer
- fixed clocks
- fixed COP410 RMB3, XAD instructions
- general cleanup
- couriersud fixed the cfg file corruption if joystick is not connected; itemclass now part of token if item is not found. Settings for joysticks which use a custom item id will still be lost. A fallback has to be provided here since those will use a token generated from the input item name.
- smf changed the memory system:
- Now passing mem_mask to the read and write debug hooks. This allows the address & size of the memory access to be correctly calculated when using a memory call that takes a mem_mask.
- New macros added for checking mem_mask. ACCESSING_BITS_m_n, These check for any access within the bounds between bit 'm' and bit 'n' (counting bit 0 as the least significant bit). Currently the pattern for checking whether both bytes of a word is written is to make two byte checks.
- All occurrences of ACCESSING_LSB, ACCESSING_MSB, ACCESSING_LSB16, ACCESSING_MSB16, ACCESSING_LSB32, ACCESSING_MSB32, ACCESSING_LSW32, ACCESSING_MSW32 & simple mem_mask checks have been replaced with the new macros.
- Aaron Giles added a fatal error if AM_READ_PORT() references a non-existent port.
- Aaron Giles converted special-case DIP switches (service, unknown, unused) into their own token type rather than expanding into other tokens. The reduces the number of redundant strings and data.
- Aaron Giles and stephh rewrote the Galaxian driver. Ultimately will combine the existing drivers for galaxian, scramble, frogger, scobra, amidar, and dambustr. For the moment, only a subset of games are implemented in the new system; the remainder are running on the old code. Main features are accurate video timing, correct stars implementation, better organization, simplified input ports, and many other smaller fixes.
- Aaron Giles made a minor cleanup and simplification in the video and palette code. Removed palette_config().
- Philip Bennett fixed interrupt handling and 16-bit memory accessors in 6840ptm.c. Also cleaned up code for the sake of readability.
- Yasuhiro Ogawa added a multiplier (same as wecleman) to Flak Attack. Info provided by VU801qCf.
- Pierpaolo Prazzoli improved the Namco NA1 driver:
- Fixed sprites shadow in namcona1 driver and removed Emeraldia hack.
- Added tilemaps and sprites 4bpp mode
- Added preliminary ROZ implementation (disabled until the enable / disable register is found)
- Changed background pen to fix emeralda demo
- couriersud added discrete sound system improvements:
- Added DISCRETE_RCFILTER_SW to discrete sound. This implements multiple RC networks with CD4066 switches to connect/disconnect capacitor.
- Implemented discrete mixing in circusc using DISCRETE_RCFILTER_SW and sound routing to route 76416 output to discrete logic.
- Added discrete filtering and mixing to galaxian.c games using konami_sound.
- Fixed timing of stream_update in discrete_sound_w. All sound cores update before processing changed data.
- Added streeam_update to discrete_sound_r
- Now supports multiple output nodes per module.
- In this case, NODE_XXX is the default output. Alternative outputs may be accessed by using NODE_XXX_YY where 00<Y<08.
- You may also access nodes with macros:
- NODE_XXX = NODE_SUB(XXX, 0)
- NODE_XXX = NODE(XXX)
- NODE_XXX_YY = NODE_SUB(XXX, YY) with YY != 00
- This should e.g. make discrete sound emulation easier when dealing with e.g. flip flops (Q & QQ) and binary counters.
- Added sanity checks to check consistency issues introduced by this change
- Modules specify number of outputs ==> Certain special modules (WAVELOG) may no longer be used as input nodes
- Removed explicit (NODE_XX + expr) from a couple of drivers
- kingshriek and Deunan Knute fixed encoding/decoding of negative denormal floats in the AICA/SCSP DSP. Shouldn't actually affect any games.
- stephh changed the Seibu sound CPU to use AM_READ_PORT("COIN") instead of input_port_0_r.
- RansAckeR and stephh made bloodbro.c driver improvements to DIP locations and coin modes. Added notes for 'bloodbra'.
- couriersud added input ITEM_IDs for additional axes and switches. Also added ITEM_IDs for up to 4 hats/POVs.
- Andrew Gardner merged memory maps for half of the W drivers. Also made a couple of random touchups for X, Y, and Z drivers.
- R. Belmont and ElSemi added a little magic to make the Atomiswave BIOS try to be more verbose, but our video emulation isn't good enough to cooperate.
- David Haywood added a bootleg of badlands - heavily modified, not working.
- smf fixed DS2401 state loading now that the digital i/o board's serial number has been changed to a const by not saving it. As the serial number cannot be changed at run time it was rather pointless.
- Anonymous added BFCobra improvements:
- Added plane priority to blitter, fixing Treble Top signature writing
- Video output now supports all modes** lores, hires, mixedres, 8/7/4/3 bits/pixel, fixing Every Second Counts colour problems
- Added line draw, fixing missing stuff from Question Of Sport
- Change blitter loop type control** there are 4 types of loop.
- Corrected video frame rate to 50Hz.
- Corrected Z80 speed to 5.91mhz
- Accounted for Z80 cycles stolen during a blit operation. Improves gfx/sound sync and seems to fix the final round lockup in Every Second Counts.
- R. Belmont introduced a device-type offset for CD-ROMs so their registrations don't clash with harddisks. Various SCSI devices register state items by their disk ID, which are not unique across device types.
- Nicola Salmoria fixed tilemap viewer to draw the whole tilemap when categories are used. Added new option TILEMAP_DRAW_ALL_CATEGORIES to do this efficiently. Updated several drivers to use this instead of rendering each category independently where appropriate.
- Mike Haaland fixed ledutil.c so it compiles cleanly under MSVC.
- Dirk Best updated Astrocade:
- Update src/mame/includes/astrocde.h to use an XTAL value
- Clear interrupts if they are no longer valid
- Add the knob inputs
- Marc Sandusky added new makefile flag VERBOSE which enables gcc's verbose output during compile.
- Oliver Stoneberg changed "Machine" to "machine" in a number of places when the running machine parameter is already available. In some cases this also allowed for the removal of deprecat.h.
- Wilbert Pol did some major cleanup and gutting of pcshare.c.
- Mr. Do created a built-in overlay for Armor Attack using just rectangles.
- James Wallace added dynamic control of RX and TX pins to 6850 ACIA emulation - this is needed for correct operation of the MPU4 Video communications system, and may be handy for some MESS systems. To use, set the rx and tx clocks to 0 in the acia interface, then use acia_tx_clock_in() and acia_rx_clock_in() respectively.
- Robiza added proper implentation of hardware collision in mermaid. This fixes mermaid (when the player is in the water with the sharks) and rougien. Also fixed priorities in mermaid and rougien and a sprite wrapping bug.
- Nicola Salmoria fixed CPS1 background color. This fixes 3 wonder (game start) and mtwins (explosion during attract). It seems to break Varth, however, and has dubious effects on the boot sscreens of avsp, sfa3 and possibly other CPS2 games.
- couriersud added discrete filtering and mixing to ironhors. One driver less using FILTER_RC.
- Robiza added fixes for aerfboot (bootleg of aerofgt):
- fixes spriteram3 (previous value was too high and in the "city" level some build disappear
- sprite gfx bank (previously some sprite appear right and some sprite was wrong)
- fixed perfectly the sprite zoom
- removed multisprite support; in the bootleg aren't present
- Wilbert Pol converted the pit8253 implementation into a device. To make it easier to use I've also created a src/emu/devconv.h in the same style as src/emu/memconv.h.
- Hugh Allen replaced the anonymous timer in tx1 with an allocated one to make state saving closer to reality.
- Aaron Giles Changed winwork.c from using hand-built scalable locks to using standard Windows CriticalSections for now, to hopefully address hard hangs.
New games added or promoted from NOT_WORKING status
New clones added
New games marked as GAME_NOT_WORKING