MAME/0.121

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

Version 0.121

Released: 2007-11-19

MAMETesters Bugs Fixed

  • dunhuang0120u3gra [Vas Crabb]

Source Changes

  • Updated DIP locations in the following drivers: [Vas Crabb]
  • Made more functions static to reduce namespace pollution. [Atari Ace]
  • 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. [Luca Elia]
  • Fixed compilation problems with altivec accelerators. [Vas Crabb]
  • Fixed bug in Voodoo statistics accumulation. [Atari Ace]
  • Reverted to 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]
  • 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, Vas Crabb]
  • 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
  • In addition, all the mame_timer_* functions have been renamed 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.

New games added or promoted from NOT_WORKING status

New clones added

  • Cluedo (prod. 2) [James Wallace]

Version 0.121u1

Released: 2007-11-22

Source Changes

  • Added an API to access the current amiga_machine_interface. [Nathan Woods]
  • Added more static qualifiers to core files. [Atari Ace]
  • Fixed reversed clock speeds in mexico86. [Brian Troha]
  • Changed malloc tracking to be decided at runtime in a function use_malloc_tracking(). This makes it easy to turn it on or off by recompiling only a single file. [Nathan Woods]
  • Split up MSVC inline assembler functions into MSVC specific headers, and removed the assumption that Window's osinline.h would only be used by MSVC. [Nathan Woods]
  • Optimized the hyperstone core, gaining ~50% speed improvement in most games. Implemented clock prescaling and corrected interrupt priority handling. Then fixed the clock speeds on the most of the games and killed most of the speed gains in quite a number of them. (Sorry!) [Aaron Giles]
  • Added explicit Core2 architecuture support to the makefile (CORE2=1). Note that gcc 4.2.0 doesn't understand core 2, so this is equivalent to compiling with pentium-m architecture and -sse3. Also note that compiling native on a Core2 is not what you want because native will think you are on a Prescott, which is P4-era hardware. [Aaron Giles]
  • Changed alignment of rgbint values in the namcos22 driver to work around 32-bit gcc's lack of proper alignment handling. [Aaron Giles]
  • Fixed attotime routines to use unsigned math for multiply/divide, solving problems with some games which errantly passed in -1 for the factor. The new behavior matches the original behavior. [Aaron Giles]
  • Renamed colortable to colortable_t. Added a Machine->colortable entry to hold the global colortable for games that use it. Updated several more drivers to just use palettes directly rather than hacking colortables. [Aaron Giles]

New clones added

Version 0.121u2

Released: 2007-11-29

Source Changes

  • Added speedup hack to the mosaicf2 driver. [David Haywood]
  • Fixed BCD math error in i8051 core. [stephh]
  • Fixed the m6800 cpu core so that the cpu variants can be compiled independently once again. [Atari Ace]
  • More formally separated the RSP core from the N64 driver. [Atari Ace]
  • Fixed invalid dips in panicr and added dip locations. [Sonikos]
  • Switched some #defines in the core over to enums. Also adjusted the GAME macro so that it results in const data, and that it is defined in terms of the more generic GAMEL macro. [Atari Ace]
  • Converted some more unnecessary globals into statics. [Atari Ace]
  • Fixes the M68008 data bus to properly use 8-bit accesses. [Curt Coder]
  • Cleaned up the peplus.c driver. Added MACHINE_RESET to fix autohold option. Added layouts for several types of games. [stephh]
  • Fix array overrun in get_num_dips. [Nathan Woods, Michael Zapf]
  • Moved redundant check for bank switching out of inline code, which nets a small speedup in the midwunit driver. [Christophe Jaillet]
  • Added save state support to a number of Konami custom chips. [Lei Wu]
  • Add -pipe flag for GCC in makefile (GCC will pipe between cpp, cc and as rather than using temporary files, which speeds up compiling). [Vas Crabb]
  • Cleanups to the inline functions: [Vas Crabb]
  • Add attributes to functions in eigccppc.h and eigccx86.h to cause GCC to always inline them, and to treat them as arithmetic operators when appropriate (so GCC can identify loop invariants or common subexpressions involving these functions)
  • Mark locals in functions in eigccppc.h and eigccx86.h as register, so GCC won't always allocate stack space even at O0 optimisation level
  • Add dummy +m operands to atomic access functions in eigccppc.h so that GCC will not cache values across calls even if values are not volatile - this will cause GCC to allocate an additional register at O0 optimisation, but not if optimisation is on
  • Don't include <altivec.h> in rgbvmx.h if __APPLE_ALTIVEC__ is defined, as this will cause a compiler warning.
  • Cleaned up inputs in the System 24 driver: [Sonikos]
  • Removed useless pen_array in the midtunit driver, saving some memory and getting a small speed boost. [Christophe Jaillet]
  • Added 3D glasses support to the tceptor driver. [BUT]
  • Unified timer callbacks. All timer callbacks are now passed both a pointer and a parameter. The pointer can only be set at timer allocation time; the parameter can be changed whenever the timer is adjusted. Removed most explicit uses of timer_*_ptr functions in favor of the more generic routines. [Aaron Giles]
  • Deprecated cpu_yield* functions except for cpu_yield() itself, which yields for the current timeslice only. Drivers that relied on the other yielding functions should be updated to use cpu_boost_interleave() instead, as it does not have the same negative side effects on time management. [Aaron Giles]
  • Changed video_frame_update() internally to accept a debug parameter which forces updates and does not meddle with synchronization/time accountiing. [Aaron Giles]
  • Some more internal improvements to the midzeus driver. [Aaron Giles]
  • Removed the burgeoning list of architecture optimization options. Instead, if you want to make a build optimized for a specific architecture, you explicitly specify the options in a new ARCHOPTS variable. You can control the name of the final executable via the existing PREFIX and SUFFIX variables, which are now documented. [Aaron Giles]
  • MSVC-based builds now automatically get a 'v' prefix unless otherwise specified. [Aaron Giles]

New games added or promoted from NOT_WORKING status

New clones added

Version 0.121u3

Released: 2007-12-06

Source Changes

  • Fixed colors in loverboy. [David Haywood]
  • Fixed buffer overflow in K054539. [BUT]
  • SCSP improvements: [kingshriek]
  • Added logarithmic envelope table
  • Set envelope level to start at 0x17f in the ATTACK state (0x3ff-0x280) as per Neill's notes
  • Changed EG_SHIFT from 8 to 16 - more precision is needed to differentiate the longer decay envelope times
  • In the DECAY1-->DECAY2 transition, changed the "<=" to "<"
  • Decreased the output of the effect out mixer a bit
  • Fixed unaligned 16-bit samples
  • Prevented keyoffs from killing slots when already in the release state
  • Envelope steps in the attack state are apparently exponential. To account for this, I change the envelope output to linear for attacks.
  • Change the release rate calculation to use the decay table instead of the attack one.
  • Fixed uninitialized variable in h6280 core. [Wilbert Pol]
  • Added meter support to the Cobra games. Cleaned up some of the steppers code. [James Wallace]
  • Const-ified a number of data structures in the MAME system. [Atari Ace]
  • Added PowerPC 604 processor support. Moved PowerPC opcode tables to the CPU context to allow multiple simultaneous processors with different opcode tables. [Ville Linde]
  • dkong driver updates: [couriersud]
  • Added configuration switch to change palette between TKG02 (radarscp conversion) and TKG04 (dkong 2board)
  • Added speech support (samples) to radarsc1
  • Fixed sound for drakton and strtheat
  • Hooked up and written 8257 dma controller
  • All dkong and dkongjr based games now use the 8257
  • All epos and 2650 based games now use the 8257
  • Fixed 2650 games to use dkong audio as well - only cpu replaced by addon board ...
  • Updated game flags and added missing rom entries
  • straightened memory maps
  • Fixed bug in dkong3b memory map
  • Externalized sound drivers to MACHINE_START in audio/dkong.c
  • DAC Filter now uses lowpass sallen key filter
  • Reorganized INPUT_PORTS
  • Added Dip-Switch locations to 8ballact
  • Fixed 8ballact according to conversion manual
  • Reorganized code
  • Corrected a potential issue if more than one 8039/8035 is used by a driver. Also should fix a potential inconsistency between saving and loading a state. [couriersud]
  • Added an assert to ensure that the sound clear latch value is only set at init time, since its value is not saved. [Aaron Giles]
  • Modified src2html to sort by filename rather than assuming that the osd file finding routines would do so. [Aaron Giles]
  • Fix memory system regression caused by recent optimization. Fixed another bug uncovered as a result in the decrypted opcode management. [Aaron Giles]
  • More Zeus improvements. Converted over to 64-bit data and simplified the logic to work more like the hardware. [Aaron Giles]

New games added or promoted from NOT_WORKING status

New clones added

New games marked as GAME_NOT_WORKING

Version 0.121u4

Released: 2007-12-13

MAMETesters Bugs Fixed

  • namcos22.c_0121u1red [Aaron Giles]

Source Changes

  • Added new option -update_in_pause which enables updating the screen bitmap while the game is paused. This is useful for debuggin in some scenarios (and gets in the way in others). [Olivier Galibert]
  • Added new VIDEO_TYPE_NONE to indicate that there is no screen, and fixed internal UI displays to ignore resolution parameters if it is specified. [Dirk Best]
  • Added missing consts to the files in the emu, lib, and osd directories. [Atari Ace]
  • Updated drivers to use const structs and arrays where possible. [Atari Ace]
  • shisen improvements: [Sonikos]
  • added dips location
  • added dips condition
  • remove fake dips coinage
  • fix tow dips in matchit
  • Updated inputs in qrouka to support the 3rd and 4th stick. [Sonikos]
  • Fixed crash in mngwrite if the game does not have a palette. [Nathan Woods]
  • SCSP updates: [kingshriek]
  • Added effect-in mixer
  • Added DSP floating-point support
  • Added bounds check to the DECAY1 EG output
  • Fixed the saw PLFO waveform
  • Fixed loop points so loops no longer go out of tune/include garbage samples
  • Fixed missing profiler call in video.c. [Christophe Jaillet]
  • Implemented status flag in Star Wars matrix processor, which affects gameplay speed. [Mathis Rosenhauer]
  • Changed M37710 CPU to use the CPU clock for its internal timer rather than a hard-coded value. Fixes tempo in Namco NA-1 games. [Phillip Bennett]
  • Fixed accidentally included change that allowed MAME to run in windowed mode if switchres was off. [Aaron Giles]
  • Midway Zeus improvements: [Aaron Giles]
  • Cleaned up video code, removed unnecessary math
  • Added bilinear filtering
  • Removed perspective correction
  • Added proper video timing configuration
  • Added lightgun support to invasn
  • Increased resolution on fixed point math to prevent overflows
  • Fixed texture addresses to only count even rows
  • Added missing U/V scale factors
  • Added solid polygon rendering support
  • Fixed screen clear trigger
  • Implemented fade out effect
  • Added Z offsets
  • Added support for splitting model commands
  • Hooked up FIFO empty IRQ to make invasn work nicely
  • Correct PIC values for invasn
  • Implemented per-quad texture offsets
  • Hooked up writes to registers during model data processing

New games added or promoted from NOT_WORKING status

New clones added

New games marked as GAME_NOT_WORKING

Other Versions


Personal tools