NovitÓ nella versione 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]


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]


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]


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]


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]


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 <inipath>/source
first. This is to disambiguate INIs where the game name matches the
source filename. If the INI file is not found in <inipath>/source,
then it is looked for in the <inipath> 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]


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)