0.119 ----- MAMETesters Bugs Fixed ---------------------- vr0118u6yel [Aaron Giles] Source Changes -------------- Improved graphics and cleaned up driver for srmp6. [David Haywood, Tomasz Slanina] Fixed bug in model 2 polygon clipping. [Ernesto Corvi] Fixed input port so that shadfrcj doesn't skip straight to the end sequence. [stephh] Fixed recent changes to the MB86233 core that broke Virtua Racing. [Aaron Giles] Added intelligence around the UPDATE_HAS_NOT_CHANGED flag, which is returned from VIDEO_UPDATE. If all screens in the game return UPDATE_HAS_NOT_CHANGED, then that frame is effectively skipped (up to 3 frames in a row) in terms of throttling. This allows games that render every other frame to not throttle during their "off frames". Updated the midvunit driver to return UPDATE_HAS_NOT_CHANGED. You should see an improvement in framerate with throttling enabled for these games. Note that this only kicks in if frameskip is set to 0. [Aaron Giles] New clones added ---------------- Turpin (bootleg on Scramble hardware) [David Haywood] Operation Wolf (World, set 2) [David Haywood] Star Force (encrypted, bootleg) [David Haywood] Galaxian (bootleg) [David Haywood] Crazy Kong (bootleg on Galaxian hardware, set 2) [David Haywood] Vandyke (bootleg with PIC16c57) [David Haywood] 0.118u6 ------- MAMETesters Bugs Fixed ---------------------- cave0118u5red [Aaron Giles] radikalb0118u5red [Aaron Giles] chdrewrite0118u5red [smf] pacland0118u5yel [Aaron Giles] sspaceat0118u1red [Aaron Giles] yamato0118u5red [Aaron Giles] ym2203_0118u1yel [Aaron Giles] profiler0116u2yel (maybe) [Aaron Giles] Source Changes -------------- Updated TMS5220 core to use shifts instead of divides for the parameter interpolation. Also added support for internal clamping to 8-bit output when using the internal DAC. [Lord Nightmare] Fixed regression that caused CHD games to crash if the CHD was not present. Also fixed change that required write access to CHDs. [smf] Fixed CHD search paths again so that they look in parent subdirectories. [Aaron Giles] Fixed security cassette contents to get Guitar Freaks 3rd Mix (GE949 VER. JAB) in game. [smf] Exposed core_vfprintf(), and implemented mame_vfprintf() in terms of that call. [Nathan Woods] Some improvements to the Wheels + Fire driver. Still not right. [David Haywood] Added SCSIOP_GET_INQUIRY_BUFFER to scsicd & scsihd. [smf] MB86233 core changes: [ElSemi] * fixed a double move opcode * added a previously unknown double move opcode Changed the way MAME handles options internally. Changed mame_options_init() to return a core_options object, which is now passed into mame_execute(). Moved mame_options() to mame.c, which is now only valid while the emulation is running. Audit functions now take a core_options parameter. [Nathan Woods] More HD6309 fixes: [Tim Lindner] * the SEXW instruction not longer clears the overflow flag * now generating an illegal instruction trap if invalid registers specified for TFM Changed Windows message filtering to only apply to MAME game windows. [Nathan Woods] Made a cleanup pass through the new x86emit.h code emitters, changing the way memory is referenced and replacing macros with inline functions. [Aaron Giles] Updated MIPS and PowerPC drc cores to use the new emitters. Removed the old macro-based ones in x86drc.h. [Aaron Giles] Added save state support to pacland. [Aaron Giles] Made -autoframeskip aware of the -speed setting. [Aaron Giles] Fixed stack buffer overrun in install_mem_handler() that broke the Hyperstone-based games under gcc 4.2.1. [Aaron Giles] New games added or promoted from NOT_WORKING status --------------------------------------------------- Yukon [Al Kossow, Aaron Giles] Mega Man - The Power Battle [Nicola Salmoria, David Haywood] New clones added ---------------- Hard Times (set 2) [David Haywood] Scorpion (set 3) [David Haywood] Satan of Saturn (set 2) [David Haywood] Street Fighter Alpha 3 (Euro 980904) [David Haywood] Dimahoo (Euro 000121) [David Haywood] Crush Roller (bootleg) [David Haywood] Crush Roller (Sidam bootleg) [David Haywood] Moon War (Moon Cresta bootleg) [David Haywood] Port Man (bootleg on Moon Cresta hardware) [David Haywood] New games marked as GAME_NOT_WORKING ------------------------------------ Astropal [David Haywood] Come On Baby [MooglyGuy] 0.118u5 ------- MAMETesters Bugs Fixed ---------------------- mappyc0118u1red [Aaron Giles] mappy0116u2gre [Aaron Giles] namcona1c057red [Atari Ace] 9ballsh3097red [Atari Ace] Source Changes -------------- Updated memconv.h to convert from basically any to any widths (8/16/32/64), on both little and big endian. Also added macros to create the stubs for the most commonly used mappings, both in the 1:1 fashion, or the LSB/MSB/LSW/MSW style. [Ernesto Corvi] CuboCD32/Amiga updates: [Ernesto Corvi] - Finished implementing the CDROM controller, so now the games boot - Moved the entire Akiko code to machine/cubocd32.c to make things a little more easier to work with - Added CDDA audio support to the CDROM controller and driver - Systems with the AGA chipset no longer connect bit 0 of the CIA that was previously connected to the Overlay pin not connected - Made BLTDDAT return it's value. This is a readable register which we were not handling. - Initialized the SERDATR register upon reset to reflect that the transfer buffer/shift reg is empty. Added support for the PowerPC 601. [Ville Linde] Fixed missing PLD region in -listxml. [MASH] Changed all comparison for CPU and sound chip types to compare against CPU_DUMMY or SOUND_DUMMY instead of 0. Also updated usages of sndti_to_sndnum() so that they use sndti_exists() where appropriate. [Atari Ace] Removed CHD interface structure. CHDs now rely on the corefile routines to perform file I/O. Updated the rest of the system to handle this reality. A side-effect is that "split" CHDs, which never got much play, have now been deprecated. [Nathan Woods] Added new core library utility module palette.c for managing palettes. Renamed emulator-specific palette code to emupal.c and restructured to live on top of the core library code. [Aaron Giles] Added support for attaching palettes to bitmaps in the core. Removed support for the 16-pixel bitmap "safety" zone by default, since most drivers do not need it. Added new function bitmap_alloc_slop() which supports creating bitmaps with caller-specified slop values. [Aaron Giles] Removed the gfx_element.colortable element and replaced it with a new element color_base which specifies the global color offset. This breaks an awkward dependency between the palette and graphics code, and removes a lot of odd pointer arithmetic in the system. [Aaron Giles] Tagged Machine->pens, Machine->colortable, and Machine->remapped_colortable as const to prevent their abuse. Fixed several abusing drivers, and tagged the remainder for future cleanup. [Aaron Giles] Added new colortable management functions in emupal.c. These functions can be used to manage a colortable on top of the core palette in cases where TRANSPARENCY_COLOR is currently used (essentially mapping to a pen mask for TRANSPARENCY_PENS). Updated pacman, mappy, toypop, and several other drivers to use the new functions. [Aaron Giles] Vastly simplified the rendering code in docastle. [Aaron Giles] Fixed remaining errors and warnings when building under gcc 4.2.1. [Aaron Giles] Added new function render_target_set_max_update_rate() which allows the OSD layer to inform MAME of the target's refresh rate (or 0 if there is no maximum). This is used to allow for the dynamic speed adjustment parameter below. [Aaron Giles] Added new parameter -refreshspeed (-rs for short) which dynamically adjusts the -speed parameter to keep the effective refresh rate below that of the lowest screen refresh rate. [Aaron Giles] Added more opcode emitters to x86emit.h. [Aaron Giles] New games added or promoted from NOT_WORKING status --------------------------------------------------- Last Fighting [Luca Elia] Bishou Jan [Luca Elia] Almond Pinky [Luca Elia] Mahjong Cafe Time [Luca Elia] Mahjong Comic Gekijou Vol.1 [Luca Elia] Super Eagle Shot [Tomasz Slanina, pSXAuthor] Date Quiz Go Go Episode 2 [Pierpaolo Prazzoli] Dancing Stage featuring Dreams Come True [smf] New clones added ---------------- X-Men: Children of the Atom (Japan 941222) [Nicola Salmoria] Quintoon (UK, Game Card 95-750-206) [James Wallace] New games marked as GAME_NOT_WORKING ------------------------------------ Super Real Mahjong Part 1 [Luca Elia] Dance Dance Revolution Extreme [smf] 0.118u4 ------- Source Changes -------------- Converted the inputs in galaga.c to tags, using INCLUDE/MODIFY for clones, and fixing the conditional extra lives dips in xevious and digdug (bosco and galaga still need doing). Also added much more information on the digdug sets, thanks to some excellent work by stephh. [Alex Jackson] Fixed sound chip frequency in the superdq driver. [Jim Hernandez] chdman improvements: [smf] * Fixed toc parsing to allow spaces and quotes in file names * Supports "offset start length" track syntax that cdrdao creates if you don't read subcode * Tracks are always padded with zeros & not whatever data happens to follow * Moved cdrom_track_input_info out of src/lib/util/cdrom.h and into src/tools/chdcd.h * Added audio byte swapping support Fixed DIP switches for Oscar (Japan Revision 0). [Corrado Tomaselli] Added DIP locations to the aerofgt driver. [Fabio Priuli] Amiga updates: [Erneso Corvi] - Implemented ECS-Only BLTCON0L register - Modified the amiga_interface structure to add a nmi callback and a flags variable. - Added AGA chipmem mask definition - Added 32 bit data bus support to chipram. It's automatically used if the chipset is AGA. - Added clock chip constants in machine/amiga.h for 68k PAL and NTSC, and 68EC00 NTSC. Updates drivers to use those constants. - Added convenience macros to determine wether we're running with an ECS chipset, AGA chipset, or 'ECS or AGA chipset'. - Changed autoconfig reads to return 0x0000 instead of 0xffff. - Fixed MSB value timer reads on the 8520 cia. We were previously only updating the count for the timer when the LSB value was read. - Added basic Akiko emulation to the cubocd32 driver. Both the Chunky to Planar converter, and the I2C NVRAM should be fully implemented, however, the CDROM functionality is not complete. It's only enough to make the kickstart pass the Akiko checks. Taito input ports cleanup, continued: [stephh] - Updated includes/taitoipt.h with macros for games with only 1 button - Converted the following drivers and added more documentation, fixing incorrect inputs and DIP switches along the way: taitoair.c, taito_h.c, taito_x.c - Slightly changed the C-Chip emulation for 'superman' to behave in a similar way as other Taito games - Corrected some notes in some other Taito drivers Changed verinfo code to parse the version.c file instead of relying on linking against version.o. This appears to fix the link ordering problem and also prevents it from being constantly regenerated on each build. [Aaron Giles] Significantly improved the i386 disassembler. Changed it so that it no longer outputs 'byte ptr' except for ambiguous cases. Updated for full 64-bit disassembly support. Added support for the full IA32 opcode matrix as specified by recent Intel manuals, including all SSE opcodes and variants. [Aaron Giles] Updated the x86 drc helper code to support externally-allocated cache. Also added support for allocating data structures out of the cache. Modified initialization so that it does not immediately generate code but rather waits for a reset to do that. Fixed code generation bug when generating [reg*scale] modrm forms. [Aaron Giles] Added new functions to the memory system to support CPU cores explicitly specifying the access mask on 32-bit and 64-bit data bus systems. This enables the MIPS core to handle SWL/SWR and SDL/SDR without a read/modify/write cycle. Updated the C and DRC MIPS cores to use this new mechanism. [Aaron Giles] Added new module x86emit.h which supports dynamic code generation for both x86 and x64 systems. This new system is a far more complete solution, though not all opcodes are defined yet. The interface for this is also cleaner than the previous one defined in x86drc.h. Existing DRC cores are still using the old interface, but the new one is preferred for new development. [Aaron Giles] Fixed recently introduced bug in the mips3 core that caused the C core to launch off into nowhere after the first instruction. [Aaron Giles] New clones added ---------------- Undercover Cops (Alpha Renewal Version) [Guru] Final Fight (US) [Corrado Tomaselli] New games marked as GAME_NOT_WORKING ------------------------------------ Interstellar Laser Fantasy [Andrew Gardner] 0.118u3 ------- MAMETesters Bugs Fixed ---------------------- qbert0118u2gra [Aaron Giles] zoom909_0118u2ora [Aaron Giles] Source Changes -------------- Updated dacholer.c driver with now all known Dip Switches. [stephh] Changed MDRV_VBLANK_DURATION macro to accept subseconds directly instead of converting from double. Added new macro USEC_TO_SUBSECONDS to assist in this. Converted all drivers over to using it. [Atari Ace] Improved/fixed validation of memory maps to match current logic in memory.c. Fixed a few problems that were identified this way. Also removed construct_map_0 and isolated map construction to a single function. [Atari Ace] Added new AM_READ_PORT() macro which lets you define an input port read callback based on a port tag. This is now preferred over the previous technique of calling port_tag_to_handler() within an AM_READ() macro. Updated all drivers that were using the latter pattern to the new system. [Atari Ace] Fixed subtle monymony regression from 0.36b10(!) [Atari Ace] Fixed F8 CPU core to not clobbert the irq_callback on a reset. [Wilbert Pol] Amiga system updates: [Ernesto Corvi] - Implemented the ECS-only BLTSIZV and BLTSIZH custom registers, and modified BLTSIZE and the blitter to use them. - Properly implemented the bit in VPOSR that indicates if we're running on a PAL or NTSC Amiga. - Fixed the PAL clock on the Pictomatic driver in alg.c Added counter emulation to the COP420 CPU core. Hooked it up to Thayer's Quest and added an alternate set. [Andrew Gardner] Added missing PROMs to the Status Trivia driver. [Brian Troha] Cleaned up several Taito drivers (opwolf.c, othunder.c, topspeed.c, warriorb.c, wgp.c, rastan.c, rainbow.c, volfied.c) to use common input port macros. Fixed the Dip Switches for all games (a few still remain unknown though) and added many notes. Also fixed a couple of things which were wrong in ninjaw.c driver. Improved the C-chip emulation for "Operation Wolf" and its clones so it can now handle multiple coinage settings. [stephh] Improved the MCU simulation for aladbl so now the game handles coins correctly. Fixed the Inputs to match an arcade cabinet and added Dip Switches according to the game M68000 code. [stephh] Added build tool to extract version information and add it to the Windows version resource. [Nathan Woods] Added a fairly complete WD33C93 SCSI controller emulation, and also updated the cps3.c driver to use it. [Ernesto Corvi] Hooked up lamps in Chase HQ. [R. Belmont, couriersud] Changed NEC V30 CPU core to use a 16-bit data bus. Updated affected drivers: raiden, raiden2, m72, m90, m92, m107, segas32, hng64, deadang, dynduke, sengokmj, shanghai, lockon, tatsumi, fantland, twins, gunpey, ttchamp. Separated V-series disassembler from the i386 disassembler and updated it to use proper register and opcode terminology. [Aaron Giles, Philip Bennett, Pierpaolo Prazzoli] Changed I8086 CPU core to use a 16-bit data bus. Updated affected drivers: gottlieb, leland, tx1, fantland, tetriunk. Cleaned up naming of CPUs (i86 -> i8086, etc.) [Aaron Giles] Added 16-bit handlers to a number of the shared PC components. [Nathan Woods] Consolidated common code between drc and non-drc MIPS cores. [Aaron Giles] New games added or promoted from NOT_WORKING status --------------------------------------------------- Aladdin (bootleg of Japanese Megadrive version) [stephh] New clones added ---------------- Raiden Fighters (Italy) [Corrado Tomaselli] 0.118u2 ------- NOTE: If you are experiencing sound stuttering due to not being able to run your display at >60Hz, please give the -speed option a try. You should be able to run MAME at a small emulation speed decrease in order to get the game under your monitor's refresh rate. MAMETesters Bugs Fixed ---------------------- boogwing0118yel [Aaron Giles] starblad0113u3red [Atari Ace] mgakuen0106u1red [Atari Ace] Source Changes -------------- Fixed recently introduced regression in nemesis driver. [Atari Ace] Improved fixes to the chdman CD creating code. [smf] Updated amspdwy.c driver to fix the DIP Switches for 'amspdwy' which are slightly different than the ones for 'amspdwya' which were correct. [stephh] Fixed HP Saturn CPU core disassembler. [Wilbert Pol] Fixed clock speed and colors in Trivia Genius. [Lord Nightmare] Cleaned up Taito drivers to use common defines for common input ports across drivers. [stephh] Removed redundant hard-coded definitions for Pole Position pedals. [Alex Jackson] Improved DIP switches for bombjack. [stephh] Changed default layouts in BFM games to hide VFD by default since it is not visible. [James Wallace] Further improvements to the TMS5220 emulation and more unification with the TMS5110 core. [Lord Nightmare] Changed INI parsing to look for source file INIs in /source first. This is to disambiguate INIs where the game name matches the source filename. If the INI file is not found in /source, then it is looked for in the as before. [Aaron Giles] Merged Raiden memory maps. Cleaned up the COP emulation code in Raiden 2. [Aaron Giles] Added new experimental control for overall emulation speed. This lets you specify how fast/slow the gameplay should happen relative to the original. -speed 1.0 means run at normal speed. -speed 2.0 means run at 2x speed. -speed 0.5 means run at half speed. Note that the sound pitch is shifted as a result. If you are running early Namco games that normally run at 60.60Hz, you can run them at -speed 0.99 and it should run at under 60Hz, which should prevent sound stuttering if your monitor is not capable of greater than 60Hz refresh rates. If this turns out to be useful, future versions may support a -speed refresh parameter that automatically tweaks the speed to keep you under your monitor's refresh rate. [Aaron Giles] Fixed disassembly of V30 bit instructions. [Aaron Giles] New games added or promoted from NOT_WORKING status --------------------------------------------------- El Grande - 5 Card Draw [Roberto Fresca] New clones added ---------------- Kickman [Aaron Giles] Trivia ? Whiz (Edition 3 - Vertical) [Pierpaolo Prazzoli] New games marked as GAME_NOT_WORKING ------------------------------------ Big Apple Games [Pierpaolo Prazzoli] Thayer's Quest [Andrew Gardner] 0.118u1 ------- MAMETesters Bugs Fixed ---------------------- boogwing0118yel [Aaron Giles] Source Changes -------------- Fixed behavior of auto_realloc() so that it always reallocs from its original pool. [Atari Ace] Fixed divide-by-zero when running with -video none in some cases. [Atari Ace] ARM7 core fixes: [R. Belmont, Ryan Holtz] - Fixed behavior when R15 is the source of a MOV - Fixed flags calc for ADC/SBC - Fixed flags calc for NEG - Fixed flags calc for CMP - Fixed time running backwards on Thumb instructions - Fixed some ARM instructions doing indiscriminate change_pc()s Fixed converting CD's containing audio that were ripped by cdrdao, which was broken recently. The code is cleaner and more maintainable now. [smf] Fixed chdman_open() "w" to always create/truncate the file, leaving "r+" to try opening first and then truncating. This matches behavior in the core. [smf] Added missing port 3/4 to M6803 cpu core. [Curt Coder] Changed 6850ACIA to use MSB/LSB read handlers. [Curt Coder] Fixed two minor bugs in the COP400 CPU disassembler. Hooked up the internal 64 bytes of DATA RAM to the core. [Andrew Gardner] Added support in the debugger for reading/writing memory without translation. [Olivier Galibert] MSM6242 updates: [Ernesto Corvi] - Added support for 12/24 hour mode - Added support for the HOLD bit Galaxian driver updates: [stephh] - fixed 'spcdraga' GFX ROMS loading - 100% verified Dip Switches for all sets - added long notes for all sets Significantly revamped the tilemap rendering code. There are now only two tilemap types, based on whether or not you want transparency based on pen or color. All existing tilemap effects are built on top of these two modes. The internal tilemap handling code has been reorganized and simplified in a number of cases. For most games, this change is transparent (har har), apart from the change in tilemap type values. Several concepts within the tilemap system now have different terminology for clarity and to remove some ambiguous naming ('priority', for example, was overloaded). A small tutorial and better documentation is now present at the top of tilemap.h and provides more details of the changes. [Aaron Giles] New games marked as GAME_NOT_WORKING ------------------------------------ Mahjong Almond Pinky [BET] (Roberto Fresca) Jack Potten's Poker (bootleg 2) (Roberto Fresca)