0.121 ----- MAMETesters Bugs Fixed ---------------------- dunhuang0120u3gra [Vas Crabb] Source Changes -------------- Updated DIP locations in the following drivers: [Vas Crabb] - bublbobl.c: bublbobl, tokio - cps1.c: all games - dunhuang.c: dunhuang - mario.c: marked all as active high (confirmed from manuals) - segag80r.c: astrob2, astrob1, spaceod and pignewt - segag80v.c: all games, fixed switch ordering Made more functions static to reduce namespace pollution. [Atari Ace] Improvements to the Touchmaster driver, still labelled not working. You can actually play tm and tm3k, but sometimes you have to reset because they stop registering the touchscreen input. tm4k is protected and hence totally unplayable. [Luca Elia] Fixed compilation problems with altivec accelerators. [Vas Crabb] Fixed bug in Voodoo statistics accumulation. [Atari Ace] Reverted to old behavior where even with -switchres disabled, MAME will use exclusive mode when rendering with Direct3D. This means some of the switching to/from fullscreen mode problems will come back, but should prevent confusion over poor performance by default. [Aaron Giles] Made it a non-fatal error if we are unable to change a joystick to absolute mode in the Windows input code. Some drivers apparently freak out about this. [Aaron Giles] Defined a couple more inline functions: div_64x32_rem and the unsigned equivalent divu_64x32_rem. Added inline implementations for GCC x86 and MSVC. [Aaron Giles, Vas Crabb] Cleaned up timer interfaces. Created new module attotime which manages a new structure type attotime, equivalent to the old mame_time. All time math functions are now implemented in attotime and have been removed from timer.h. The following search/replace over the code has been made: mame_time -> attotime subseconds_t -> attoseconds_t time_zero -> attotime_zero time_never -> attotime_never make_mame_make -> attotime_make mame_time_to_subseconds-> attotime_to_attoseconds mame_time_to_double -> attotime_to_double double_to_mame_time -> double_to_attotime add_mame_times -> attotime_add add_subseconds_to_mame_time -> attotime_add_subseconds sub_mame_times -> attotime_sub sub_subseconds_from_mame_time -> attotime_sub_subseconds scale_up_mame_time -> attotime_mul scale_down_mame_time -> attotime_div compare_mame_times -> attotime_compare SUBSECONDS_TO_DOUBLE -> ATTOSECONDS_TO_DOUBLE DOUBLE_TO_SUBSECONDS -> DOUBLE_TO_ATTOSECONDS USEC_TO_SUBSECONDS -> ATTOSECONDS_IN_USEC SUBSECONDS_TO_HZ -> ATTOSECONDS_TO_HZ HZ_TO_SUBSECONDS -> HZ_TO_ATTOSECONDS MAME_TIME_IN_HZ -> ATTOTIME_IN_HZ MAME_TIME_IN_SEC -> ATTOTIME_IN_SEC MAME_TIME_IN_MSEC -> ATTOTIME_IN_MSEC MAME_TIME_IN_USEC -> ATTOTIME_IN_USEC MAME_TIME_IN_NSEC -> ATTOTIME_IN_NSEC MAME_TIME_TO_CYCLES -> ATTOTIME_TO_CYCLES MAME_TIME_IN_CYCLES -> ATTOTIME_IN_CYCLES In addition, all the mame_timer_* functions have been renamed back to their original names timer_*, so it is timer_set() instead of mame_timer_set() once again. The mame_timer object itself has been renamed to emu_timer. New games added or promoted from NOT_WORKING status --------------------------------------------------- Best Of Best [Luca Elia] New clones added ---------------- Cluedo (prod. 2) [James Wallace] 0.120u4 ------- MAMETesters Bugs Fixed ---------------------- gradius4_0120u3yel [Aaron Giles] vegas.c0120u3yel [Aaron Giles] Source Changes -------------- Made some minor changes in the inline code. The result of atomic_add32 isn't used a lot of the time, so the final addition was brought out to allow it to be optimized away. Removed the unnecessary delta argument from atomic_increment32 and atomic_decrement32 in eminline.h, and added implementations. Changed the condition for using rgbsse.h to include 32-bit platforms with SSE enabled. [Vas Crabb] Did a major clean-up of the input ports in ssv.c. Brought out the common joystick, mahjong and quiz input setups, and then used PORT_INCLUDE to pull them in when needed. Also brought out the common coinage settings, to avoid needless repetition. [Vas Crabb] Analyzed all driver interfaces (DRIVER_INIT, READ8_HANDLER, etc.) to determine which ones should be made static and properly tagged them all to reduce global namespace pollution. Some cases turned out to be dead code, which was also properly tagged. [Atari Ace] Updated the Tube Panic driver, fixing the background scroll-in (it's smooth again now). The problem was caused by wrong synchronization between main and slave CPUs. Also modified the video driver to be scanline accurate and implemented more accurate interrupt handling. [Jarek Burczynski] Altered TTL low high levels in res_net.c. This will broaden the color range a bit. Since the results are normalized, there is only a limited effect visible. [couriersud] Cleaned up inputs and added dip locations in ms32.c. Also fixed dips in "47pie2" and "akiss". [Sonikos] Fixed bug that caused incorrect input to be read if multiple inputs were mapped to the same mouse input under Windows. [Nathan Woods] Fixed a bug in the i8051 core that improperly fired the Timer2 interrupt when it wasn't enabled. [Jim Stolis] Updates to the peplus driver: [Jim Stolis] * Added lightpen support * Added PE+ Superboard support * Added ABC coin optics support * Added full I2C eeprom support * Added NVRAM support * Corrected door closure issues * Removed most memory hacks * Consolidated machines and inputs * New layout for pepp0158 Split up the MPU4 driver into a core and driver set up a la NeoGeo. Also made some timer fixes, and added some new ROMs added. [James Wallace] Fixed problems introduced when the junofrst blitter code was simplified. [Chris Hardy] American Poker II major rewrite: [Roberto Fresca] - Properly dervied clocks from crystals - Reworked TILE_GET_INFO to handle the proper tiles/color codes. - Fixed interrupts (NMI). - Corrected AY8910 frequency to 1.5 MHz to match the real thing. - Arranged the AY8910 volume in all games avoiding clips. - Corrected the screen visible area. - Added NVRAM support. - Reworked the memory map, mapping all the hardware I/O ports. - Reworked the Inputs for all sets. - Added implementation of Operator and Supervisor Keys. - Fixed some timing troubles. - Added partial DIP switch support with diplocations to all sets. - Removed the hack in DRIVER_INIT. - Hooked write handlers for output ports. - Added watchdog routines. - Dumped, hooked, wired and decoded the color PROM in all sets. - Modified the refresh rate according to hardware measurements. - Wired the lamps for all sets. Created their respective layouts. - Splitted the driver to driver/video. - Other minor fixes. SCSP fixes: [kingshriek] * Fixed DECAY1 envelope state to not exit immediately * Improved support for LPSLNK and SBCTL * Fixed panning calculation bug * Fixed case where key-rate scaling is off Added support for indicating that DIP switches are reversed in the DIP locations view. [Vas Crabb] Added DIP locations for Midway Tron and the Nintendo Donkey Kong series (dkong.c). [Vas Crabb] Added an Altivec/VMX implementation of the RGB utilities for our friends with G4, G5 and POWER5 CPUs (rgbvmx.h) and added rgbint_bilinear_filter and rgbaint_bilinear_filter to rgbsse.h (based on rgb_bilinear_filter/rgba_bilinear_filter) for completeness, as these functions exist in rgbgen.h. [Vas Crabb] Updated model2.c, taitojc.c, and gticlub.c to use the new polygon routines. Deprecated the old poly.c and renamed polynew.* to poly.*. [Aaron Giles] Unified poly.c callbacks so that tri and quad callbacks work the same way. [Aaron Giles] Fixed display of floating point TMS32031 registers in the debugger. [Aaron Giles] Fixed TMS32031 ABSF opcode to work as documented and not produce a proper negative. [Aaron Giles] New games added or promoted from NOT_WORKING status --------------------------------------------------- Player's Edge Plus (PP0516) Double Bonus Poker [Jim Stolis] Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker [Jim Stolis] Player's Edge Plus (PP0188) Standard Draw Poker [Jim Stolis] Player's Edge Plus (Set038) Set Chip [Jim Stolis] Player's Edge Plus (BE0014) Blackjack [Jim Stolis] Player's Edge Plus (KE1012) Keno [Jim Stolis] Player's Edge Plus (PS0615) Video Slots [Jim Stolis] Player's Edge Plus (PS0716) Video Slots [Jim Stolis] Player's Edge Plus (XP000019) Deuces Wild Poker [Jim Stolis] Player's Edge Plus (XS000006) Triple Triple Diamond Slots [Jim Stolis] MPU4 Unit Test [James Wallace] Sigma Poker [Roberto Fresca] New clones added ---------------- Slipstream (950515 HISPANIC) [Guru] Kick and Run (US) [Brian Troha] American Poker 95 [Roberto Fresca] Poker De Win [Roberto Fresca] New games marked as GAME_NOT_WORKING ------------------------------------ Vegas Poker (Prototype) [James Wallace] Sigma Poker 2000 [Roberto Fresca] 0.120u3 ------- MAMETesters Bugs Fixed ---------------------- neodriv0117u3red [Hairu] kof10th0120u2yel [Robbbert] 6800basedgames0120u2red [Curt Coder] mpatrol0120u2yel [Curt Coder] Source Changes -------------- Cleaned up the inline assembly for both x86 and PPC, enabled the mul32 family assembly stuff on 32-bit x86, and fixed some compiler warnings on 64-bit GCC. In addition: [Vas Crabb] * Provided single-precision reciprocal approximation code for PowerPC and x86 with SSE2. * Filled in all other TBD functions in eigccx86.h for completeness. * Conditionalised some code in eigccppc.h so that it isn't used when the compiler has 64-bit instructions available. Added static qualifiers and renamed symbols in MAME in an effort to further tidy up the global namespace. Generally generic names were targeted and some symbols that were both static and extern. Some specifics: [Atari Ace] * K053247_ram was made static throughout and the existing K053247_export_config was used to obtain the value in xmen.c. * The enums DS1991_STATE and DSP_TYPE were unused and were therefore removed. * Dead code in cps3.c and thayers.c was discovered and commented out. Made almost all input port definitions static. [Aaron Giles] Obsoleted the GAMEB macro, which is no longer necessary. [Atari Ace] Fixed casting issues in new inline validity checks. [R. Belmont] Some build-related improvements to the sound cores: [Atari Ace] * The SCSP dependency on mame/drivers/stv.c was removed allowing it to built independent of the driver. * The WAVE dependency on MESS code was made explicit, so it can be built independentally of MESS. * VOTRAX can now be built independentally of SAMPLES. * The YM2612 core now can be built without including the YM3438 core. * Unnecessary uses of BUILD_ and HAS_ macros have been removed. * BUILD_ instead of HAS_ macros are used in 3812intf.c for consistency with the other fm cores. Added DIP locations to several SSV games (in ssv.c). [Vas Crabb] Corrected some errors in the SH4 core and implemented store queues and the basics of DMA. Added a call to simulate dma transfers with external devices. [Samuele Zannoli] Expanded polynew.c to support quad rendering. Converted midvunit.c over to using the new quad rendering, which fixes a number of rendering issues that have plagued the driver since the start. [Aaron Giles] Added Z-clipping logic to polynew.c. Converted namcos22 over to using that code. Simplified namcos22 significantly, working in quads throughout the lower-level pipeline and then handing the results off to polynew.c. [Aaron Giles] Updated model3.c to use the new poly code, and changed much of the low-level implementation to make things easier. [Aaron Giles] Defined a couple of new functions in eminline.h: atomic_increment32 and atomic_decrement32. [Aaron Giles] New games added or promoted from NOT_WORKING status --------------------------------------------------- Every Second Counts [Philip Bennett] Treble Top [Philip Bennett] Quizvaders [Philip Bennett] New clones added ---------------- Extermination (Japan) [Corrado Tomaselli] Gang Busters (set 2) [Patrik Styrnell] Trog (rev LA5 03/29/91) [icronnya77] New games marked as GAME_NOT_WORKING ------------------------------------ Inquizitor [Philip Bennett] 0.120u2 ------- MAMETesters Bugs Fixed ---------------------- hornet0120u1red [Ville Linde] srmp6_0120u1ora [Aaron Giles] Source Changes -------------- Rewrote ACIA6850 implementation. [Curt Coder] Did a complete overhaul of the Mad Alien driver. [Stefan Jokish] - merged memory maps and added mirror addresses - doubled sound chip frequency - implemented IRQ acknowledge for the sound CPU - added stub functions for missing discrete sounds - re-implemented tilemaps (now the tunnel walls scroll into view) - hooked up 6845 CRT controller - made several fixes related to color handling - cleaned up inputs and added dip switch locations - raised main CPU speed (guesswork) - added save state support Repaired the IC24 timer behaviour to fix some of Deal 'Em's bugs, and also added inputs. [James Wallace] Added save state support to skykid. [Mike Haaland] Fixed tiny.mak based on new source reorg. [Tiago Pierezan Camargo] Added support for CR-589 firmware to the System 573 driver. Made substantial changes to the SCSI support, making it require fewer hacks, and allowing one device to be derived from another. Also added save state support. [smf] Added SCI support to M6803/HD63701. [Curt Coder] Fixed several misnamed sound samples interfaces. [Atari Ace] Switched model1 lookup functions to be index based rather than requiring a linear scan. [Atari Ace] Added generic I2C bus memory support. Hooked up to the cubocd32 driver. [smf] Cleaned up inline assembly support: [Aaron Giles] * moved all inlinable functions into new module eminline.h * defined a number of new inline functions, including: - 32x32 -> 64 bit multiply - fast approximate floating point reciprocal * removed old inline definitions from osinline.h, osd_cpu.h, etc. * eminline.h contains C implementations of everything * new module eigccx86.h contains GCC-compatible x86/64 versions * new module eigccppc.h contains GCC-compatible PowerPC versions * eminline.h automatically detects GCC environments and includes appropriate file * osinline.h now only used in non-GCC environments * updated osd/windows/osinline.h to contain MSVC-compatible versions Added NORM implementation to the TMS32031 core. [Aaron Giles] Created new rgbutil module which consists of inline functions for common RGB manipulation. This module can be accelerated with SSE2 or other SIMD operations. By default, only 64-bit Intel builds make use of SSE, since it can be assumed on those platforms. Reimplemented the namcos22 rasterizer in terms of these inline functions. Also updated the gaelco3d rasterizer to use this module for faster bilinear filtering. [Aaron Giles] Made some progress on the Midway Zeus-based system. The 3d command stream is now parsed and the format is partially understood, enough to display some polygons but with incorrect textures in Mortal Kombat 4. [Aaron Giles] New games added or promoted from NOT_WORKING status --------------------------------------------------- Konami CD-ROM Drive Updater (700A04) [smf] Vs. Janshi Brandnew Stars [sonikos] New clones added ---------------- Eco Fighters (USA 940215) [Nicola Salmoria, Razoola] New games marked as GAME_NOT_WORKING ------------------------------------ Time Machine v2.0 [James Wallace] Jet Wave [Ville Linde, Guru] 0.120u1 ------- MAMETesters Bugs Fixed ---------------------- ikki0120yel [robiza] buckrog0118u2yel [couriersud] Source Changes -------------- Documented information about the various Cannonball sets. [stephh] Hooked up the roz layer, fg layer and sprites to f1gpb. Still missing some video offsets, oki banking and sprites priority. [Pierpaolo Prazzoli] Updates for the dominob.c driver: [stephh] - fixed dip switches - fixed inputs - added a couple of notes Updated peplus driver and related components: [Jim Stolis] - added internal layouts for the games - fixed several i8051 issues... * Fixed a bug with some opcodes having the wrong cycle counts * Fixed a bug where determining the proper timer mode * Fixed a bug where determining the proper serial transmit mode * Added support for split timer mode Improved multiprocessor Voodoo performance by reducing contention during rendering. Extended the system to allow for more overlap between rendering and emulation. [couriersud, Aaron Giles] Fixed a crash in the input system when you configure joypads and then unplug them and press Esc on the system info screen. [R. Belmont] Defined strict types for CPU and sound chips. Removed unnecessary cpu_ prefix from several structure members. [Atari Ace] Fixed the m4510 cpu core from not updating the instruction cycle counter. [Wilbert Pol] Fixed memory access for m6509 instructions 91 and b1. [Wilbert Pol] Changed osdcore.h to include osinline.h and allow for external inline definitions of synchronization primitives. Also added a new work queue hint WORK_QUEUE_FLAG_HIGH_FREQ which indicates that we should spin aggressively waiting for new items. [couriersud, Vas Crabb] Enabled common linker warnings in the makefile. [Oliver Stoneberg] Fixed a corner case in the SCSP involving timers which are polled with their IRQ enable shut off. [R. Belmont] Namco System 21 update: [Phil Stroffolino] - namconb1 sprites no longer broken - fixed missing 3d gfx in Cybersled - gradient colors in starblade - more accurate depth cueing - fixed crash in 2nd stage of Starblade - fixed lockups in Air Combat and Solvalou - fixes to sprite priority (see Solvalou mountain range) - hooked up translucency (palette shift) effect Changed Model 2 rendering to use pre-clipped Z values for sorting. [Aaron Giles] Properly identified bill inputs in Midway Y-unit driver games. [Aaron Giles] Added more instrumentation and added some extra paranoia to the winwork code. [Aaron Giles] Fixed some incorrect code in the ADSP2100 external flag handling. [Aaron Giles] Created new module polynew.c which combines triangle setup, rasterization, and Voodoo-like multiprocessor support. Coverted Gaelco3D, Midway V-Unit, Namco System 22, and Voodoo drivers over to the new system. [Aaron Giles] Added threadid parameter to work item callbacks. This allows for keeping per-thread information by the callbacks. [Aaron Giles] New games added or promoted from NOT_WORKING status --------------------------------------------------- Mahjong Hot Gimmick Integral (Japan) [Guru, David Haywood] Tottemo E Jong [David Haywood, Team Japump!] Good E Jong -Kachinuki Mahjong Syoukin Oh!!- [David Haywood, Team Japump!] Teraburst [icronnya77, Ville Linde] New clones added ---------------- Tube Panic (bootleg) [sonikos] Player's Edge Plus (PP0188) Standard Draw Poker [Jim Stolis] Player's Edge Plus (Set038) Set Chip [Jim Stolis] Mortal Kombat 4 (set 2) [icronnya77] Meteor [Andreas] New games marked as GAME_NOT_WORKING ------------------------------------ GameCristal [f205v, R. Belmont]