MAME/0.53 to 0.60

From GamerWiki

Jump to: navigation, search

A warts and all look through the history of MAME as described by the MAME Dev team themselves through their releases.

Contents

MAME 0.53 "Pretty Soldier version numbering"

Released: 2001-08-12

We have abandoned the "beta" numbering scheme, which was becoming pointless. The current version is 0.53 because 0.36 (the last "non-beta" release) + .16 (the number of "beta" releases since then) = 0.52.

These drivers have improved GRAPHICS

  • Fixed some protection related issues in Sunset Riders. [Nicola Salmoria]
  • Fixed radar display in Aztarac. [Mathis Rosenhauer]

These drivers have improved SOUND

Other drivers changes

  • Fixed the remaining issues in Slapstic emulation.
[Aaron Giles]
  • Fixed the protection in the original Robocop. [Bryan McPhail]
  • Decrypted the original Popeye. [Nicola Salmoria]
  • Fixed Free Play mode in Galaga. [Scott Brasington]
  • Added support for the target data extracted from the laserdisc to MACH 3. [Fabrice Frances]

Changes to the main program

  • The Windows port is now called "MAME" (instead of "MAMEW"). The DOS port is called "DMAME".
  • [Windows] CLI improvements:
  • config option for steadykey (default: OFF)
  • parse debug.ini in debug builds
  • mamew \anywhere\roms\pacman.zip works
  • improved -log option
  • mame will now parse argv[0].ini instead of mame.ini.
i.e. if the mame executable is called "m37b17.exe" it will parse m37b17.ini instead of mame.ini
[Paul Priest, Bernd Wiebelt]

Source

  • Big changes to the palette system. 8-bit modes are no longer supported, only 16-bit ones are used. 8-bit support may be removed from the OS dependant code; the core will never ask for an 8-bit deep screen. 8-bit bitmaps could still be used though.
  • Palette compression has been removed. palette_recalc(), palette_transparent_pen and palette_used_colors[] are not available anymore. Drivers that relied on PALETTE_COLOR_TRANSPARENT for transparency effects must be rewritten to implement them differently. As a result of this, all games using the Taito TC0480SCP video chip, and all Taito F3 games, are broken in this release.
  • tilemap_update() is gone. Everything is handled by tilemap_draw().
  • IMPORTANT CHANGE FOR PORTERS: the OS dependant code is now required to guarantee, in 16-bit palettized mode, that Machine->pens[i] == i. The "pens" argument to osd_allocate_colors() will be NULL, actually it has been renamed "rgb_components" since direct RGB modes are the only ones that will pass that argument.
  • Remove VIDEO_MODIFIES_PALETTE and the "modifiable" parameter from osd_allocate_colors().
  • New flags VIDEO_HAS_SHADOWS and VIDEO_HAS_HIGHLIGHTS that automatically extend the palette creating a darker(brighter copy for shadows handling. palette_set_shadow_factor() and palette_set_highlight_factor() allow to control the adjustment to apply (shadow can be > 1.0, making it an highlight, and highlight can be < 1.0 making it a shadow - the names are just conventional). [Nicola Salmoria]
  • New function palette_set_brightness(), allowing selective control of palette brightness independently of the palette RAM contents. [Nicola Salmoria]
  • MachineDriver.color_table_len can now be 0, meaning that the colortable is a 1:1 mapping from the palette. Note that you CANNOT use this feature if you use TRANSPARENCY_COLOR; but of course, if you need TRANSPARENCY_COLOR you'll not have a 1:1 colortable.
  • New function tilemap_draw_roz(). [Phil Stroffolino]
  • New function auto_malloc(); this is the same as malloc(), but the memory is automatically freed when the driver exits. [Aaron Giles]
  • osd_bitmap.line is now a void ** to prevent confusion.

New games supported

New clones supported

Removed

MAME 0.54 "If it breaks, you get to keep both pieces"

Released: 2001-08-24

These drivers have improved GRAPHICS

  • Fixed road lines in Top Speed. [David Graves]

These drivers have improved SOUND

  • Decrypted the sound CPU in Dream Soccer 94. [Bryan McPhail, Nicola Salmoria]

Source

  • Fixes to the YM2610 and YM2151 emulation, verified on the real chip. [Jarek Burczynski]
  • New core function palette_get_pen() replaces the removed osd_get_pen(). Renamed palette_change_color() to palette_set_color().
  • Major changes to the CPU interface. As a result of this, some games are temporarily broken, most notably CPS2. [Aaron Giles]
  • improved auto_malloc so that you can auto_malloc at machine_init time and have the memory disposed of on a reset. [Aaron Giles]

MAME Testers bugs fixed (there are probably more)

  • sidepckt37b16yel
  • tumblepb37b16red
  • strahl37b16ora
  • rtype37b1gre
  • poundfou37b1gre
  • tp8437b7gre
  • bloodbroc053red
  • terraf37b13gre/terraf053gre
  • cinemat053red
  • dotrone053gre
  • relief053yel
  • pbancho053red
  • goindolc053gre
  • namcona1c053red
  • hellfire053yel

New games supported

New clones supported

MAME 0.55 "Road to bugfixes"

Released: 2001-09-17

These drivers have improved GRAPHICS

  • Preliminary road support in the Taito Z games. [David Graves]

These drivers have improved SOUND

  • Added support for using AY8910 and YM2203 at the same time, fixing sound in City Connection. [Tatsuyuki Satoh]

Source

  • Changed vector games to use direct RGB modes. [Mathis Rosenhauer]
  • New data type pen_t, use it instead of UINT32 when dealing with pens and colortables.

MAME Testers bugs fixed (there are probably more)

  • 3wonders054gre
  • artwork054gre
  • bssoccer054gre
  • bublbobl054red
  • cps2c054ora
  • drtoppel054gre
  • galaxian053gre
  • ghostb054yel
  • holeland37b10gre
  • konami054red
  • madmotor054gre
  • mrgoemon37b9gre
  • offroad054gre
  • sharkatt37b15red
  • stfight054red
  • tailg054gre
  • ym2151_054yel

New games supported

New clones supported

MAME 0.56 "SNK lives forever"

Released: 2001-11-01

These drivers have improved GRAPHICS

  • Fixed Gururin. [Miguel Angel Horna]
  • Rowscroll in Kaneko16 games. [Luca Elia]
  • Overlay for Demon. [Pete Ashdown]

These drivers have improved SOUND

  • Fixed sound in Venture and other Exidy games. [Aaron Giles]

Changes to the main program

  • Updated the cheat engine. [Ian Patterson]

Source

  • V60 cpu core. [Farfetch'd, R.Belmont]

MAME Testers bugs fixed (there are probably more)

  • quizkof37b4gre
  • speedfrk055yel
  • vectorsshot055gre
  • chasehq055gre
  • blazstar37b16gre
  • mazinger053gre
  • block37b14yel
  • spacfury36finalgre

New games supported

MAME 0.57 "Buck Rogers and Sexy Reaction"

Released: 2002-01-01

These drivers have improved GRAPHICS

  • Fixed Quantum colors. [Aaron Giles]
  • Misc fixes to Taito F3. [Bryan McPhail]
  • Fixed background color in Van-Van Car. [Nicola Salmoria]

These drivers have improved SOUND

  • Fixed missing speech in Twinbee. [Uki]

Other drivers changes

  • Improved C-Chip simulation in Bonze Adventure. [Stefan Jokisch, Ruben Panossian]
  • Simulated protection in Pop Flamer. [Paul Priest]

Source

  • New function get_black_pen() which allows to fillbitmap() the background with black without relying on a palette entry.
  • MSM5232 sound emulator. [Jarek Burczynski, Hiromitsu Shioya]
  • BSMT2000 sound emulator. [Aaron Giles]
  • SSG EG type support added to YM2203 emulation (which is now complete). This fixes hbarrel wave sound on start of level 1, and some sound effects in other games (e.g. Dark Seal). [Jarek Burczynski]
  • Z180 emulator. [Juergen Buchmueller]
  • Fixed a bug in the nec V30 disassembler. [Bart]
  • Fixed OUTSB/OUTSW bugs in I86 emulation. [Julien Frelat]

MAME Testers bugs fixed (there are probably more)

  • gameplan055red
  • wwfmaniab13gre
  • dariusg053gre
  • taitof3c053yel
  • ridingf053gre
  • elvactr37b15gre
  • asukac37b16gre1.
  • paperboy055yel
  • alleymas055yel
  • alpha68k055red
  • brkthruc055red
  • ajax056red
  • champbas056gre
  • msword056gre
  • cvs056gre
  • ironhors056gre
  • gunbird056red (to be checked)
  • snowbros056gre
  • razmataz056yel
  • exterm055red
  • harddriv055red
  • captcomm36b11yel
  • ghouls37b11gra
  • rbibb37b11red
  • excitbkj37b15gre
  • truxton2055gra

New games supported

New clones supported

MAME 0.58 "5 years old"

Released: 2002-02-05

Other drivers changes

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

Changes to the main program

  • [windows] New blitting effect "-effect sharp". This gives a sharper image than the default. [Aaron Giles]

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

New clones supported

MAME 0.59 "Rise from your grave"

Released: 2002-03-22

Other drivers changes

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

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

New clones supported

MAME 0.60 "Attack of the PROMs"

Released: 2002-05-01

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]
  • 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

New clones supported

Other Versions


Personal tools