Release Date

MAME 0.121 was released on 18 November 2007.


Contributors

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:

  • Vas Crabb updated DIP locations in the following drivers:
    • bublbobl.c: bublbobl, tokio
    • cps1.c: all games
    • dunhuang.c: dunhuang
    • mario.c: marked all as active high (confirmed from manuals)
    • segag80r.c: astrob2, astrob1, spaceod and pignewt
    • segag80v.c: all games, fixed switch ordering
  • Atari Ace made more functions static to reduce namespace pollution.
  • Luca Elia made improvements to the Touchmaster driver, still labelled not working. You can actually play tm and tm3k, but sometimes you have to reset because they stop registering the touchscreen input. tm4k is protected and hence totally unplayable.
  • Vas Crabb fixed compilation problems with altivec accelerators.
  • Atari Ace fixed a bug in the Voodoo statistics accumulation.
  • Aaron Giles reverted to the old behavior where even with -switchres disabled, MAME will use exclusive mode when rendering with Direct3D. This means some of the switching to/from fullscreen mode problems will come back, but should prevent confusion over poor performance by default.
  • Aaron Giles made it a non-fatal error if we are unable to change a joystick to absolute mode in the Windows input code. Some drivers apparently freak out about this.
  • Aaron Giles and Vas Crabb defined a couple more inline functions: div_64x32_rem and the unsigned equivalent divu_64x32_rem. Added inline implementations for GCC x86 and MSVC.
  • Aaron Giles cleaned up timer interfaces. Created new module attotime which manages a new structure type attotime, equivalent to the old mame_time. All time math functions are now implemented in attotime and have been removed from timer.h. The following search/replace over the code has been made:
    • mame_time -> attotime
    • subseconds_t -> attoseconds_t
    • time_zero -> attotime_zero
    • time_never -> attotime_never
    • make_mame_make -> attotime_make
    • mame_time_to_subseconds-> attotime_to_attoseconds
    • mame_time_to_double -> attotime_to_double
    • double_to_mame_time -> double_to_attotime
    • add_mame_times -> attotime_add
    • add_subseconds_to_mame_time -> attotime_add_subseconds
    • sub_mame_times -> attotime_sub
    • sub_subseconds_from_mame_time -> attotime_sub_subseconds
    • scale_up_mame_time -> attotime_mul
    • scale_down_mame_time -> attotime_div
    • compare_mame_times -> attotime_compare
    • SUBSECONDS_TO_DOUBLE -> ATTOSECONDS_TO_DOUBLE
    • DOUBLE_TO_SUBSECONDS -> DOUBLE_TO_ATTOSECONDS
    • USEC_TO_SUBSECONDS -> ATTOSECONDS_IN_USEC
    • SUBSECONDS_TO_HZ -> ATTOSECONDS_TO_HZ
    • HZ_TO_SUBSECONDS -> HZ_TO_ATTOSECONDS
    • MAME_TIME_IN_HZ -> ATTOTIME_IN_HZ
    • MAME_TIME_IN_SEC -> ATTOTIME_IN_SEC
    • MAME_TIME_IN_MSEC -> ATTOTIME_IN_MSEC
    • MAME_TIME_IN_USEC -> ATTOTIME_IN_USEC
    • MAME_TIME_IN_NSEC -> ATTOTIME_IN_NSEC
    • MAME_TIME_TO_CYCLES -> ATTOTIME_TO_CYCLES
    • MAME_TIME_IN_CYCLES -> ATTOTIME_IN_CYCLES
  • Aaron Giles renamed all the mame_timer_* functions back to their original names timer_*, so it is timer_set() instead of mame_timer_set() once again. The mame_timer object itself has been renamed to emu_timer.


Game Support

New games added or promoted from NOT_WORKING status

New clones added