Welcome to Emulationworld

Forum Index | FAQ | New User | Login | Search

Make a New PostPrevious ThreadView All ThreadsNext Thread**

SubjectMAME 0.125u2 Reply to this message
Posted byTrebor
Posted on05/22/08 06:09 AM

Here's whatsnew:

MAMETesters Bugs Fixed
01815: [Save/Restore] All Sets: Saved machine states do not properly
adjust to changes in -samplerate (Aaron Giles)
01671: [Interface] every set with PORT_MODIFY used for DIPs (e.g.
arknoidj): the modified dipswitches are always listed at the
bottom of the list (Aaron Giles)
01814: [Sound] YM2608 games (tail2nos, sformula, wc90, mechatt): Only
basic music, no more samples (couriersud)
01497: [Graphics] numanath, numanatj: Graphics corruption on
title screen. (Phil Stroffolino)
01804: [Core] carnevil, sfrush: Seattle games crash on startup
(Aaron Giles)

Source Changes
Fixed long-standing bug with Emeralda text colors. A sprite
attribute exists which signals an alternate interpretation of
palette ram. Fixed priority for the bitmap layer used in Numan
Athletics. [Phil Stroffolino]

Restructured input port internals and cleaned up inptport.c:
[Aaron Giles]

* Input ports are now maintained hierarchically. At the top
level are input ports, which contain a list of fields. Each
field represents one or more bits of the port. Certain fields
such as DIP switches and configuration switches contain a
list of settings, which can be selected. DIP switch fields
can also contain a list of DIP switch locations.

* Normalized behavior of port overrides (via PORT_INCLUDE or
by defining multiple overlapping bits). All fields within a
port are kept in strict increasing bit order, so altered DIP
switches are now kept in the appropriate order. This addresses
MAMETesters bug 01671.

* Live port state is now fully separate from configured
state. This is manifested in a similar way to devices, where
a const list of ports can be managed either offline or live.
Each port has a pointer to an opaque set of live state which
is NULL when offline or valid when live. Each port also has
a running_machine * which is also NULL when offline.

* Because of this new arrangement, the conversion from tokens
to a list of ports now requires reasonably complex memory
allocation, so these port lists must be explicitly allocated
and freed (they are not mantained by automatic resource

* Custom and changed callbacks now take a pointer to a field
config instead of a running machine. This provides more
information about what field triggered the change notification.
The machine can be found by referenced field->port->machine.

* The inptport.c module has been cleaned up and many
ambiguities resolved. Most of this is internal, though it did
result in osd_customize_inputport_list() being changed to
osd_customize_input_type_list(). The parameter to this function
is now a linked list instead of an array, and the structures
referenced have been reorganized somewhat.

* Updated config.c to pass machine parameters to its callbacks.

* Updated validity checks, XML output, and UI system to handle
the new structures.

* Moved large table of default input settings to a separate
include file inpttype.h.

* Removed gross hacks in trackfld and hyperspt NVRAM. These
may be broken as a result.

Further Namco NA-1 changes: [Phil Stroffolino]
* Adjusted alternate palette handling weights to more accurately
match real hardware - text anti-aliasing is much more noticable.
* Adjustment to roz layer priority - prevents roz layer from
incorrectly being displayed over backgrounds in some games (i.e.
* Added a mask when processing the roz tilemap to avoid defects in

Fixed black pixel patches present in the TC0100SCN fg layer of
undrfire and groundfx. [Philip Bennett]

Universal DRC system updates and improvements: [Aaron Giles]

* Added back-end validation mechanism, and a handful of tests as
examples. This will be expanded in the future.
* Added several new opcodes:
- SAVE dumps the entire virtual machine state to a struct
- RESTORE applies the data in a struct to the live state
- LZCNT counts leading zeros in an operand
- XTRACT extracts a bitfield to another register (rlwinm)
- INSERT inserts a bitfield into a register (rlwimi)
* Added new back-end function get_info() which returns information
from the back-end about how many actual registers will be

x86 back-end:
* Implemented all new opcodes.
* Implemented get_info() function.
* Fixed several bugs relating to shifts/rotates and optimizing out
cases incorrectly.

x64 back-end:
* Implemented all new opcodes.
* Implemented get_info() function.
* Added defines for new Penryn opcodes to x86emit.h.
* Added support for ROUNDSS and ROUNDSD on Penryn architectures.
This hasn't been tested. If you have a Penryn-based system,
give it a try.
* Fixed several bugs relating to shifts/rotates and optimizing out
cases incorrectly.

C back-end:
* Implemented all new opcodes.
* Implemented get_info() function.
* Cleaned up operand sizing.
* Fixed several errors that made it not work on bigendian systems

* Added some instrumentation for the MMU. To enable it, turn on
PRINTF_MMU at the top of the file.
* Fixed front-end so that virtual no-op instructions are still
targeted as branch targets.
* Fixed front-end to mark the beginning of each sequence as
needing TLB validation, since any sequence can be jumped to
from anywhere.
* Redid the MIPS3 TLB implementation. Fixed the exception vector
and type handling. Changed the bitfields to directly map from
the MIPS TLB format. Added distinction between TLB fill and TLB
valid/modified exceptions.
* Added separate modes for user, supervisor, and kernel modes.
Each mode does proper verification of addresses now and
generates address errors for invalid accesses.
* Fixed several bugs in the TLB implementation; not everything
works yet but it's a lot closer.
* Made COP0 access checking mandatory in non-kernel modes.
* Fixed several crashes when recompiling virtual no-ops.
* Fixed TLB bug where entries for virtual address 0 were present
by default.
* Fixed bug in the map variable implementation that would
sometimes result in incorrectly recovered values.
* Implemented IDT instructions. All invalid instruction asserts
are now runtime-only.
* Added support to map a few common registers to machine registers
if the machine supports it. Currently only x64 on Windows has
enough free registers to do so, though PowerPC will almost
certainly be able to take advantage of this. Gives a minor
* Updated to use INSERT and XTRACT where appropriate.
* Cleaned up register usage to free up one machine register for
x64 on Linux.

Added World Rally wheel support. [Mirko Mattioli]

Fixed spikes91 sprite colours without resorting to hacks.
[David Haywood]

Fixed N64 rendering on big-endian targets. [R. Belmont]

Fixed CDP1869 character memory access, and Cidelsa sprite flashing.
[Curt Coder]

Fixed 80286 databus widths. [Wilbert Pol]

Added proper interpolation sub-cycles to the TMS5110 and TMS5220
('PC' cycles and A/B subcycles of each) and updated comments.
[Lord Nightmare]

Fixed World Rally MCU comms on big-endian. [R. Belmont]

Changed defaults so that joysticks are enabled standard. [Aaron Giles]

Some improvements to Sandii' games: [Roberto Fresca, f205v]
- Confirmed the CPU clock after some PCB measurements.
- Changed the SND clock to 1MHz to match the PCB measurement.
- Corrected the internal OKI6295 frequency turning the pin 7 state to HIGH.
- Inputs: Eliminated all pulse limitations.
Affected buttons have a rattled sound in the real thing too.
- Updated technical notes.

Corrected several bugs in the emulation of the saturn CPU. These
corrections are needed to make new HP48 drivers (to be submitted to
MESS imminently) work. [Antoine Mine]

Eliminated a large number of global Machine references. Added machine
parameters to IRQ callbacks throughout the system to help remove
more. Reduced the number of files needing deprecat.h by ~200.
[Atari Ace]

Some work on lwings.c: Input clean up, added dip locations, fixed
lwingsb life DIP switches, and merged machine drivers. [Sonikos]

Updated Gorf sample volume to match new samples from Chris Law.
[Chris Law]

Added built-in overlay for Moon Shuttle. [Deacon Blue]

New games added or promoted from NOT_WORKING status
1991 Spikes (Italian bootleg) [robiza]

New clones added
Last Fortress - Toride (Korea) [The Guru]
Miss Puzzle (Clone of Gumbo) [The Guru]
Gals Panic SU (Korea) [The Guru]

New games marked as GAME_NOT_WORKING
Beauty Block [David Haywood]

Get the Source Diff Intermediate Update here: