Posted By: JKKDARK
New version of the Multiple Arcade Machine Emulator for Windows.
Changelog:
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 allocation).
* 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. numanathj)
* Added a mask when processing the roz tilemap to avoid defects in emeraldj
Fixed black pixel patches present in the TC0100SCN fg layer of undrfire and groundfx. [Philip Bennett]
Universal DRC system updates and improvements: [Aaron Giles]
UML:
* 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 mapped.
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
MIPS DRC:
* 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 speedup.
* 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]
Download and give feedback via comments