Professional Documents
Culture Documents
Whatsnew
Whatsnew
139
-----
Source Changes
--------------
arm.c: Added big endian mode support to the LDRB and STRB
instructions. [Wilbert Pol]
arm.c: Fixed word reading from non-aligned address in big endian mode.
[Wilbert Pol]
skyfox.c: Corrected clocks and Vsync for the Sky Fox & Exerizer sets
based on actual OSCs and measurements taken from a real PCB
[Corrado Tomaselli]
arm.c: Added a big endian version of the arm2/3/6 cpu core and cleaned
up the little/big endian handling. [Wilbert Pol]
djboy.c: Added DIP switch locations and corrected the vsync to 57.5Hz
as per the readme info listed at the top of the driver. [Brian Troha]
Corrected Ameri Darts audio playback rate. This exposed some cycle
timing errors in the TMS32010 CPU core which are also fixed. [Quench]
Added support for Southern Systems Joker Poker (1982), from Southern
Systems & Assembly, Ltd. Figured out the memory map. Also added
technical notes about the hardware. [Roberto Fresca]
Corrected the address for the freezing of the movies for the
Terminator 2 LA4 set [stephh]
emu/info.c: Search all parents of a clone for merged ROMs [Atari Ace]
neogeo.c changes:
* Documented AES mode and 1-slot (MVS/AES) settings [Barry Rodewald]
* Documented MVS 4-slot and 6-slot settings [Johnboy]
* Changed 6-slot setting (old default) to 1-slot [Johnboy]
Source Changes
--------------
Fix SH-2 interpreter [Atari Ace]
turned i2cmem into a c++ device & ditched the unused legacy device.
[smf]
Removed the global clock accessors and cpu_* aliases: [Aaron Giles]
cpu_get_clock == device->unscaled_clock
cpu_set_clock == device->set_unscaled_clock
cpu_get_clockscale == device->get_clock_scale
cpu_set_clockscale == device->set_clock_scale
Fix bad loop condition that shows up with -cheat enabled. [Aaron Giles]
Clean up some files without a newline at the end for GCC [wallyweek]
Added second button (Hyper Jump) to be used after cued via speech to
allow jumping to other phases without finishing the current mission.
Volume adjusted to better levels (AY was way too low in comparison to
speech) [gravilidavide, Tafoid]
Load (but don't yet use) the decapped MCUs for several sets
[Dr. Decapitator]
* kyros
* kyros (alt, original MCU dump?)
* arkanoid (I think the supported MCUs are bootlegs..)
* blackt96
* amerdarts
* cshooter
* josvolly (there are other chips still need decapping)
* invasnab (i'm not convinced this one is good)
* pasha2
* empcity
* topshoot
* topbladv (no CPU core for this yet)
* officeye (no CPU core for this yet)
* revx
Replaced the old MCU dump with the decapped version for Kick Start
Wheelie King [Dr. Decapitator]
Replaced the old MCU dump with the decapped version for Pipeline
[Dr. Decapitator]
segas16b.c: Corrected the rom names for the FD1094 317-0120 Golden Axe
set and verified the dump as good. [Brian Troha]
Added TMS32015 and TMS32016 CPU variants to the TMS32010 core. Fixed
LST instruction which was sometimes adjusting internal RAM banking
incorrectly. [Quench]
Added Ameri Darts internal DSP dump and TMS32015 support to the
Amerdart driver. Also added savestate support to the game.
[Dr Decapitator, Quench]
0.138u3
-------
Hooked up inputs and Dip-SW for Ron Jan and Pinkiri 8 [Angelo Salese]
Moved listsofware command line option from MESS, and added softlist in
XML output [Miodrag Milanovic]
Super Game III: added handling for two consecutive writes for MMC1
making Snow Bros playable [Mariusz Wojcieszek, Fabio Pruli]
Decapped 89C51 MCU in Real Battle Mahjong King [Dr. Decapitator, Guru]
metro.c: Added Puzzlet's MCU internal ROM. Zilog Z8 8-bit family MCU
requires a new CPU core to be written. [Dr. Decapitator]
Made redufo Artic version the parent and bootleg version a clone [hap]
Hooked up MCUs for Tough Turf (US) and Wrestle War; removed Wrestle
War MCU simulation. [Aaron Giles, Dr. Decapitator]
cps2.c: Correct the release order for the Xmen: Cota (Hispanic) sets
[gregf]
Made the machine_config a proper object. Added detokenize method to
this object which can be called multiple times to append new devices
after the initial machine configuration is set up. Updated member
variables to match new naming convention. [Aaron Giles]
slapfght.c: Corrected rom names for the Slap Fight sets and added PCB
locations to any set where possible. Added Dipswitch locations to Slap
Fight. Moved PCB information down to matching rom sets.
[Brian Troha, Guru]
Split mame.c into mame.c and machine.c, the latter containing the
running_machine definition and implementation. [Aaron Giles]
mame_get_phase() == machine->phase()
add_reset_callback() == machine->add_notifier(MACHINE_NOTIFY_RESET, ...)
add_exit_callback() == machine->add_notifier(MACHINE_NOTIFY_EXIT, ...)
mame_get_base_datetime() == machine->base_datetime()
mame_get_current_datetime() == machine->current_datetime()
Fix performance regression for PowerPC games. The timing made heavy
use of cpu_get_total_cycles() which is now slow. Better to use the
legacy_cpu_device directly and call device->total_cycles() which
avoids the dynamic_cast to find the execute interface from a generic
device. [Aaron Giles]
Added COPX romloading for sets that didn't have it, marked as BAD_DUMP
until the assumption that they're the same is (un)confirmed. [hap]
Created CPU-specific device types for all CPUs, using new macros
DECLARE_LEGACY_CPU_DEVICE and DEFINE_LEGACY_CPU_DEVICE. Changed CPUs
to be their own device types, rather than all of type CPU with a
special internal subtype. Note that as part of this process I removed
the CPU_ prefix from the ALL-CAPS device name, so CPU_Z80 is just
plain old Z80 now. This required changing a couple of names like 8080
to I8080 so that there was an alphabetic first character. [Aaron Giles]
Imported image related utils from MESS into /lib/util [Miodrag Milanovic]
Moved debugging structure away from CPUs only and attached to all
devices. Debugger now creates one for each device. C++-ified most
debugger operations to hang off the debugging class, and updated
most callers. [Aaron Giles]
0.138u2
-------
IMPORTANT NOTE: The way devices are handled internally in MAME has changed
significantly. There are likely to be short-term compatibility and
performance effects. Please report any errors or *significant* performance
decreases (>20%) to mametesters.org. Full documentation on the new
device handling is in progress at
http://mamedev.org/devwiki/index.php/MAME_Device_Basics
Source Changes
--------------
A small update for the YM2610 core, which resets the PCM and Delta-T
memory regions when the chip is reset. This is needed for MESS, where
being able to change the size and existence of the sample regions on
the Neo Geo AES is necessary for the sound to work right, especially
for games that don't have a specific Delta-T region. [Barry Rodewald]
hal21: cabinet DIPSW was reversed btlfield: DIAL was used instead of
rotary joystick [/SftiKDL0]
namconb1.c: Replaced sound data rom for the Point Blank sets that was
incorrectly dumped. The new dump has been verified on 3 different
PCBs. [Guru, Smitdogg, The Dumping Union]
Added a new cycle exact VMS interface to TMS5110 emulating M0, M1 and
ADD1 to ADD8 lines. Added TMS6100 memory controller device. Also added
TMSPROM device emulating bagman and ad2083 prom controlled speech
logic. Switched bagman, ad2083 (scramble.c) and radarscp1 to use the
new interface and devices. [Couriersud]
Added palette DAC handling, reel layers and removed NMI patch in Lucky
Girl (Z180 HW) [David Haywood]
Hooked up basic Drive i/o board CPU in Sega Rally [Guru, Angelo
Salese]
Changed 7474 to only use devcb callbacks and handlers. Updated game
drivers. [Couriersud]
X2212 now uses device template. Also changed all handlers to use devcb
prototypes. Default nvram contents should be in region named same like
device tag. Hooked up X2212 in starwars. [Couriersud]
Removed r5h01_config. Memory region now has to have same tag as r5h01
device. Update playch10 driver. [Couriersud]
Removed the following fields from the device and device configuration
classes as they never were necessary or provided any use: device
class, device family, source file, version, credits. [Aaron Giles]
Converted the classic CPU device to a standard device that uses the
execution, state, memory, and disassembly interfaces. Used this new
class (cpu_device) to implement the existing CPU device interface. In
the future it will be possible to convert each CPU core to its own
device type, but for now they are still all CPU devices with a
cpu_type() that specifies exactly which kind of CPU. [Aaron Giles]
Created a new header devlegcy.h which wraps the old device interface
using some special template classes. To use these with an existing
device, simply remove from the device header the DEVICE_GET_INFO()
declaration and the #define mapping the ALL_CAPS name to the
DEVICE_GET_INFO. In their place #include "devlegcy.h" and use the
DECLARE_LEGACY_DEVICE() macro. In addition, there is a
DECLARE_LEGACY_SOUND_DEVICE() macro for wrapping existing sound
devices into new-style devices, and a DECLARE_LEGACY_NVRAM_DEVICE()
for wrapping NVRAM devices. Also moved the token and inline_config
members to the legacy device class, as these are not used in modern
devices. [Aaron Giles]
video_screen_configure() == screen->configure()
video_screen_set_visarea() == screen->set_visible_area()
video_screen_update_partial() == screen->update_partial()
video_screen_update_now() == screen->update_now()
video_screen_get_vpos() == screen->vpos()
video_screen_get_hpos() == screen->hpos()
video_screen_get_vblank() == screen->vblank()
video_screen_get_hblank() == screen->hblank()
video_screen_get_width() == screen->width()
video_screen_get_height() == screen->height()
video_screen_get_visible_area() == screen->visible_area()
video_screen_get_time_until_pos() == screen->time_until_pos()
video_screen_get_time_until_vblank_start() ==
screen->time_until_vblank_start()
video_screen_get_time_until_vblank_end() ==
screen->time_until_vblank_end()
video_screen_get_time_until_update() ==
screen->time_until_update()
video_screen_get_scan_period() == screen->scan_period()
video_screen_get_frame_period() == screen->frame_period()
video_screen_get_frame_number() == screen->frame_number()
timer_device_adjust_oneshot() == timer->adjust()
timer_device_adjust_periodic() == timer->adjust()
timer_device_reset() == timer->reset()
timer_device_enable() == timer->enable()
timer_device_enabled() == timer->enabled()
timer_device_get_param() == timer->param()
timer_device_set_param() == timer->set_param()
timer_device_get_ptr() == timer->get_ptr()
timer_device_set_ptr() == timer->set_ptr()
timer_device_timeelapsed() == timer->time_elapsed()
timer_device_timeleft() == timer->time_left()
timer_device_starttime() == timer->start_time()
timer_device_firetime() == timer->fire_time()
Updated all drivers that use the above functions to fetch the specific
device type (timer_device or screen_device) and call the appropriate
method. [Aaron Giles]
Defined a new custom interface for the Z80 daisy chain. This interface
behaves like the standard interfaces, and can be added to any device
that implements the Z80 daisy chain behavior. Converted all existing
Z80 daisy chain devices to new-style devices that inherit this
interface. [Aaron Giles]
Changed the way CPU state tables are built up. Previously, these were
data structures defined by a CPU core which described all the
registers and how to output them. This functionality is now part of
the state interface and is implemented via the device_state_entry
class. Updated all CPU cores which were using the old data structure
to use the new form. The syntax is currently awkward, but will be
cleaner for CPUs that are native new devices. [Aaron Giles]
Converted the okim6295 and eeprom devices to the new model. These were
necessary because they both require multiple interfaces to operate and
it didn't make sense to create legacy device templates for these
single cases. (okim6295 needs the sound interface and the memory
interface, while eeprom requires both the nvram and memory
interfaces). [Aaron Giles]
Moved many validity checks out of validity.c and into the device
interface classes. For example, address space validation is now part
of the memory interface class. [Aaron Giles]
Updated galivan.c with DIP LOCATIONS and verified setting via Service
Mode. Added comments about missing text layer in Ninja Emaki and
flagged those sets with missing protection emulation. [Tafoid]
Flash: 4k sectors should erase in 1/8th the time of 64k. extend core
to support GBA chip types. [R.Belmont]
model3.c: Correct sound rom loading for the Scud & Scud Plus sets
[Alex's Blog]
Added default EEPROMs for each Brave Blade region [David Haywood]
Source Changes
--------------
Remove all references to the nonexistent "premov" instruction from the
NEC-V core. [Alex Jackson]
astrocorp.c: Added PCB layout for Astro M1.1 & M1.2 PCBs [Brian Troha]
Fixed crashes when you fall into pitfalls in aladbl [Angelo Salese]
Improved Z180 interrupt and timer handling. Added some missing save
state entries and fixed HALT. [Couriersud]
Removed Groove on Fight boot hack, not anymore needed [Angelo Salese]
Added new DECO Cassette bios set and updated rom names/locations/types
to be more accurate. [Lord Nightmare, The Dumping Union]
micro3d.c : Added some PLD dumps to botssa [Phil Bennett, Smitdogg]
Added bare-bones work around for the Network board in Super GT 24h and
Over Rev, they now enters into attract mode [Angelo Salese]