Release Date

MAME 0.106u2 was released on 25 May 2006.

Major Announcement

This release was the first to include the new video rendering system.


The known contributors for this version are, in alphabetical order:

Specific Contributions

The known contributions for this version are, in the order specified in the whatsnew:

  • Ville Linde added support for circular buffering in the SHARC core, and fixed several minor bugs.
  • Stefan Jokisch added color PROM support for Nintendo's Sheriff driver.
  • Derrick Renaud sent in updates for discrete sound:
    • Typedef'ed external discrete sound structures to follow current structure use. Statically defined their use in most drivers to stop name pollution.
    • Created new DISCRETE_555_VCO1 module. This is the 555&Op-amp oscillator circuit used by Borderline.
  • Aaron Giles added the new video rendering system. A new file render.c contains the bulk of the logic. Major changes include:
    • The OSD layer is now responsible for allocating one or more render_targets at osd_init time. The old osd_create_display and osd_close_display calls are not used with the new system, so initialization must take place at osd_init time.
    • The old osd_update_video_and_audio call has now been replaced with a simple osd_update call. This update call passes a mame_time to the OSD layer, which is the current emulated time. Throttling and speed calculations should use this time instead of the framerate.
    • osd_update is responsible for calling the render system to request a list of primitives to be drawn on each render_target for the current frame. The primitives are simple and include clipping rectangles, lines, and rectilinear quads only.
    • If it wishes, the OSD layer can call back to a software rasterizer in MAME. The rasterizer code is provided as an include module so it can be tuned and optimized for platform-specific video modes. See windows/rendsoft.c for a usage example.
    • There is a new layout file format .lay, which is XML-based and which replaces the old .art files. The .lay files describe how to render to a render_target. Each layout file can contain multiple "views", which describe one of many ways the various elements can be drawn. These views can be selected at runtime via the new "Video Options" menu.
    • The built-in UI font can be overridden with any .BDF font. Simply name the .BDF file "ui.bdf" and place it in the MAME directory. If you run at decent resolutions, you should choose a large point size for this font so that the scaled results look nice.
    • The windows implementation uses Direct3D 8 as the preferred mechanism for rendering. By default, it will render at the current resolution, rather than switching resolutions as before. This can be changed by adding -switchres to the command line.
    • There are still a number of imperfect/incomplete features with the new renderer, which is why it is not on by default. An incomplete list is given in render.c.

Game Support

New clones added