MAME 0.128u5 was released on 6 December 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 fixed subtle timing calculation problems that affected SH-2 timers.
- BarnacleEd made non-critical UI warnings yellow instead so that they stand out.
- Angelo Salese 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.
- 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.
- Curt Coder added placeholders for interrupt callback and Z80 daisy chain functions in Z80DMA.
- Aaron Giles made pool items be 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.
- Curt Coder added macros to access ROM and MACHINE_DRIVER by name.
- Curt Coder normalized CDP1802 state variables to 'cpustate'.
- Lord Nightmare updated t5182 memory mapping a bit to properly handle mirrored areas; added comments about how shared ram works.
- Angelo Salese fixed reversed VBLANK-IN/OUT events in ST-V. Fixes hanagumi/groovef 2 credits at start-up.
- Angelo Salese and Charles MacDonald provided many improvements on the irq handling of the ST-V driver:
- 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).
- R. Belmont provided ARM7 updates:
- Pointer-ified ARM7 core.
- Added disassembler and execution support for ARMv5 LDRD/STRD instructions. 39in1 now makes it until it needs the MMU.
- David Haywood removed the clone relationship between the jchan games. They aren't really clones even if they share most of the same roms. They're very different.
- Roberto Fresca provided a Pmpoker.c major rewrite (part 2):
- 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).
- Roberto Fresca and Andreas Naive provided improvements to funworld.c driver:
- 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.
- Nicola Salmoria 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.
- Angelo Salese updated 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.
- Angelo Salese added layer enable register, coin counter, coin lockout and cleaned-up the Sengoku Mahjong driver.
- Aaron Giles provided a big debugger cleanup:
- 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.
- Aaron Giles re-enabled the OSD key for master volume control. All other sliders are still only accessible via the menus.
- Aaron Giles renamed constants:
- CPU_IS_LE -> ENDIANNESS_LITTLE
- CPU_IS_BE -> ENDIANNESS_BIG
- Aaron Giles enhanced the corefile module to support streaming compression, and the new INP files are output and processed compressed. This was necessary zo fix 02688 (DIP switch settings are not being stored in INP files).
- Aaron Giles added a number of new cputag_* macros to cpuexec.h.
- Atari Ace 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.
- Miodrag Milanovic fixed 8080 interrupt handling:
- Previous implementation cleared interrupt enable bit on interrupt trigger which is wrong since interrupts should stay enabled.
- Service interrupt number was not cleared after interrupt is executed, so if same one is triggered it will not be caught.
- Nathan Woods made the 6526/8520 CIA implementations be devices. Added differentiation between the r1 and r2 versions of the 6526; not acting on it yet.
- Aaron Giles provided save state system improvements: 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.
- Aaron Giles 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.
- Angelo Salese merged The Couples driver with Merit, fixing most of the graphics/color bugs in it.
- Aaron Giles removed mostly silly uses of activecpu from the CPU cores.
New games added or promoted from NOT_WORKING status
New clones added
New games marked as GAME_NOT_WORKING