0.60


These drivers have improved GRAPHICS:
-------------------------------------

- Fixed disappearing enemies in later levels of Batsugun. [Kale]


These drivers have improved SOUND:
----------------------------------

- Improved Irem GA20 emulation, used by M92 games. [Acho A. Tang]


Other drivers changes:
----------------------

- Fixed several problems in Kiki KaiKai. [Acho A. Tang]

- Fixed colors in Wec Le Mans and wrong graphics in Hot Chase. [Acho A. Tang]

- Several fixes to Psikyo games. [Paul Priest, David Haywood]

- Several fixes to nemesis.c. [Hau]


Changes to the main program:
----------------------------

- Support for external configuration files for special controllers; this
  replaces the -hotrod and -hotrodse options. See ctrl.txt for the detailed
  explanation. [Ron Fries]

- Complete rewrite of the cheat engine. [Ian Patterson]


Source:
-------

- New function memory_set_unmap_value(), to specify the value returned when an
  unmapped memory address is read. [Aaron Giles]

- Fixes to Y8950 sample playback. [Acho A. Tang]

- Complete rewrite of YM3812/YM3526/Y8950 emulation, verified on the real chip.
  [Jarek Burczynski]

- osd_opl_control() and osd_opl_write() removed; direct access to the
  SoundBlaster OPL chip is no longer useful.


MAME Testers bugs fixed (there are probably more)
-----------------------

blmbycar059red
uopoko059red
gcpinbal059red
jitsupro059red
metroc059red
phelios059red
paclandc059red
ncv1058red
av2mj059red
fromancec058red
neogeoc37b15gre
fround056red
bioatack37b6gre
crush057gre
driverc056ora
batsugun37b6gre


New games supported:
--------------------

Judge Dredd [Aaron Giles]
Primal Rage [Aaron Giles]
Road Riot's Revenge [Aaron Giles]
World Class Bowling [Aaron Giles]
Tactician [Nicola Salmoria, Stephane Humbert]
The Masters of Kin [Nicola Salmoria]
IQ Block [Nicola Salmoria, Ernesto Corvi]
Taxi Driver [Nicola Salmoria]
Block Gal [Angelo Salese]
Drag Race [Stefan Jokisch]
Pool Shark [Stefan Jokisch]
The Outfoxies [Phil Stroffolino]
Oriental Legend [ElSemi, David Haywood]
News [David Haywood]
Shadow Force [David Haywood]
The Legend of Silk Road [David Haywood, Stephane Humbert, R.Belmont]
Miss Bubble 2 [David Haywood]
Black Heart [from Raine]
Mustang [from Raine]
Many Bloc [David Haywood, Stephan Humbert]
Xyonix [David Haywood, Stephan Humbert, Nicola Salmoria]
Hyper Pacman [David Haywood, Stephan Humbert]
Mille Miglia 2: Great 1000 Miles Rally [David Haywood, Stephan Humbert]
Formation Z [Acho A. Tang]
Tank Busters [Jarek Burczynski]
Hyper Duel [E. Watanabe]


New clones supported:
---------------------

Pengo (bootleg)
Bone Crusher (= Knuckle Joe)
Fighter & Attacker (= F/A)
Knuckle Heads (World)
Hero in the Castle of Doom (Donkey Kong conversion)
Blood Storm (v1.10)
Fighting Golf (set 2)
Clowns (rev 1)
Magic Worm (= Centipede)
Hot Shots Tennis (V1.0)
Strata Bowling (V1)
Pirate Pete (= Jungle King)
Street Fighter (prototype)
Nebulas Ray (World)
Gun Bird (World)
Bubble Symphony (Europe)
Space Invaders '95 (US)
C.O.W. Boys of Moo Mesa (World)
R-Type Leo (World)
Dragon Punch (= Sports Match)


==========================================================================


0.59


Other drivers changes:
----------------------

- Loads of fixes to input ports etc. in several drivers. [Stephane Humbert]

- Fixed Rainbow Islands and Rainbow Islands Extra c-chip emulation
  [Robert Gallagher, Tormod Tjaberg]

- Fixed Super Stingray and Kyros, and most problems in Gold Medalist.
  [Acho A. Tang]


Changes to the main program:
----------------------------

- [Windows] Some changes to use less CPU time when it's not needed.
  Use -nosleep to disable this behaviour during gameplay. [Aaron Giles]

- [Windows] MMX implementation of the tilemap drawing code, providing a 5-10%
  speed increase with some games. [Andrea Mazzoleni]


Source:
-------

- Rewritten the UPD7759 emulator (used by TMNT etc). [Olivier Galibert]

- Support for compressed hard disk images. [Aaron Giles]

- New function tilemap_set_palette_offset() to set a global palette offset
  without having to use tilemap_mark_all_tiles_dirty(). [Aaron Giles]


MAME Testers bugs fixed (there are probably more)
-----------------------

eto37b9gre
captaven058gre_2
captaven058gre_5
thndrx2058red
punchoutc37b15gre
skyadvnt136b8gre
gangwars37b15gre


New games supported:
--------------------

Police Trainer [Aaron Giles]
Pass [David Haywood, Stephan Humbert]
Super Pinball Action [David Haywood, Stephan Humbert]
Sol Divide [David Haywood]
Strikers 1945 II [David Haywood]
Space Bomber [David Haywood]
Daraku Tenshi - The Fallen Angels [David Haywood]
Gunbird 2 [David Haywood]
Mahjong Sisters [Uki]
Quiz Gakuen Paradise [Uki]
Quiz DNA no Hanran [Uki]
Quiz Gekiretsu Scramble [Uki]
Wild West C.O.W.boys of Moo Mesa [R.Belmont]
Bucky O'Hare [R.Belmont]
Super Bug [Stefan Jokisch]
Paddle Mania [Acho A. Tang]
Scorpion [Stephane Humbert]


New clones supported:
---------------------

Dynasty Wars (World)
Captain America (Japan)
Gradius 3 (World?)
Magical Crystals (World)
Crystal Castles (version 4)
Moon Cresta (Nichibutsu set 2)
Galaxian (Midway, old rev)
Pisces (original)
Haunted Castle (Japan version N)
Beraboh Man (Japan version B)


==========================================================================


0.58


Other drivers changes:
----------------------

- Fixed (?) collision detection in Thunder Cross. [Eddie Edwards]

- Fixed the VLM5030 emulation (Punch Out, Track & Field, Yie-Ar Kung Fu etc.).
  [Tatsuyuki Satoj]


Changes to the main program:
----------------------------

- [windows] New blitting effect "-effect sharp". This gives a sharper image
  than the default. [John IV]


Source:
-------

- New macros have been added to declare common callback functions and enforce
  naming conventions. All drivers have been converted to the new macros:

      void init_drivername()            -> DRIVER_INIT( name )
      int generate_int()                -> INTERRUPT_GEN( func )
      void name_init_machine()          -> MACHINE_INIT( name )
      void nvram_handler()              -> NVRAM_HANDLER( name )
      void name_vh_convert_color_prom() -> PALETTE_INIT( name )
      int name_vh_start()               -> VIDEO_START( name )
      void name_vh_stop()               -> VIDEO_STOP( name )
      void name_vh_eof()                -> VIDEO_EOF( name )
      void name_vh_screenrefresh()      -> VIDEO_UPDATE( name )

- Major change to the way machine drivers are set up. A series of macros is
  now available (defined in driver.h) to "build up" a machine driver. The
  ordering of items in the machine driver is arbitrary, apart from CPU-specific
  data, which is tied to the most-recently referenced CPU. With this new format,
  machine drivers can now be built by modifying another machine driver,
  providing a primitive inheritance mechanism. See any driver for an example
  of the new format. See mcr.c for a more complex example of inheritance.

- New functions auto_bitmap_alloc() and auto_bitmap_alloc_depth() are now
  available to create automatically managed bitmaps. Combined with auto_malloc(),
  there is no need for a video_stop function in most cases. All existing
  drivers have been modified to take advantage of these features.

- The old interrupt system has now been made officially obsolete. This means
  that the function cpu_cause_interrupt() is no longer available; you must use
  cpu_set_irq_line() or cpu_set_irq_line_and_vector() instead. It also means
  that a number of old/conflicting constants have been removed. In addition,
  interrupt generation callbacks for CPUs no longer return an IRQ line or
  vector. Instead, the interrupt callback must actively cause the interrupt
  via cpu_set_irq_line(). All existing drivers have been updated to these
  changes.

- New interrupt callback functions: nmi_line_pulse(), nmi_line_assert(),
  irqn_line_hold(), irqn_line_pulse(), irqn_line_assert(). These functions
  replace the old interrupt() and nmi_interrupt() callbacks and can be used
  directly as interrupt callbacks.

- The function tilemap_set_clip() has been removed. In its place, there is a
  new 'cliprect' parameter to tilemap_draw(). All existing drivers have been
  updated to support this change.

- In preparation for partial updating support, the parameters to video_update
  have changed. A new parameter 'cliprect' has been added, which should be
  honored. In the future, the parameter will contain the subset of the screen
  to render; for now, it just contains Machine->visible_area. In addition,
  the 'full_refresh' parameter is gone; update functions must always redraw
  the requested portion of the bitmap. Some drivers have been updated to fully
  support the cliprect; others still need to be updated.

- Two new functions have been added to the timer system. timer_create() creates
  a new "permanent" timer, and timer_adjust() adjusts the scheduling of that
  timer. This is now the only way to dynamically manipulate a timer. The old
  functions timer_set() and timer_pulse() are still around, but they no longer
  return a handle to the timer they create. Timers created with timer_create()
  should be created at initialization time, not dynamically. Timers also now
  participate in the automatic resource tracking, so there is no need to
  explicitly dispose of them. All existing drivers have been updated with the
  necessary changes.

- Basic generic NVRAM handlers have been added. For a number of games, it is
  sufficient to point the global variables 'generic_nvram' and
  'generic_nvram_size' to the location and size of the NVRAM area. In the
  machine driver, you can now specify 'generic_0fill' or 'generic_1fill' to
  request a generic NVRAM handler. The 0fill and 1fill refer to how the memory
  is initialized in the absence of an .nv file.

- The following old functions and macros have now been fully deprecated:

     cpu_get_pc()           -> activecpu_get_pc()
     cpu_get_sp()           -> activecpu_get_sp()
     cpu_getpreviouspc()    -> activecpu_get_previouspc()
     cpu_get_reg()          -> activecpu_get_reg()
     cpu_set_reg()          -> activecpu_set_reg()
     cpu_set_op_base()      -> activecpu_set_op_base()
     cpu_get_pc_byte()      -> activecpu_get_pc_byte()
     READ_WORD              -> (no equivalent)
     WRITE_WORD             -> (no equivalent)

- New function force_partial_update(), call this to force a partial update to
  occur up to and including the specified scanline. [Aaron Giles]

- ARM CPU emulation [Bryan McPhail, Phil Stroffolino]


MAME Testers bugs fixed (there are probably more)
-----------------------

rampart057yel
artwork057gre
mrgoemon36b16gre
pigout37b4gre


New games supported:
--------------------

Gun Force 2 [Chris Hardy]
Angel Kids [David Haywood]
Noboranka [Stephane Humbert]
Steel Force [David Haywood, Stephan Humbert]
Mug Smashers [David Haywood, Stephan Humbert]
Captain America [Bryan McPhail]
Lemmings [Bryan McPhail]
Flyball [Stefan Jokisch]
Grand Cross [David Graves]


New clones supported:
---------------------

Mayday (set 3)
Alpha One (prototype of Major Havoc)
Blaster (kit)
Buck Rogers (encrypted)
