MAME/0.121
From GamerWiki
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]
-
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
-
- 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_remand the unsigned equivalentdivu_64x32_rem. Added inline implementations for GCC x86 and MSVC. [Aaron Giles, Vas Crabb]
- Cleaned up timer interfaces. Created new module
attotimewhich manages a new structure typeattotime, equivalent to the oldmame_time. All time math functions are now implemented inattotimeand have been removed fromtimer.h. The following search/replace over the code has been made:
mame_time-> attotimesubseconds_t-> attoseconds_ttime_zero-> attotime_zerotime_never-> attotime_nevermake_mame_make-> attotime_makemame_time_to_subseconds-> attotime_to_attosecondsmame_time_to_double-> attotime_to_doubledouble_to_mame_time-> double_to_attotimeadd_mame_times-> attotime_addadd_subseconds_to_mame_time-> attotime_add_subsecondssub_mame_times-> attotime_subsub_subseconds_from_mame_time-> attotime_sub_subsecondsscale_up_mame_time-> attotime_mulscale_down_mame_time-> attotime_divcompare_mame_times-> attotime_compareSUBSECONDS_TO_DOUBLE-> ATTOSECONDS_TO_DOUBLEDOUBLE_TO_SUBSECONDS-> DOUBLE_TO_ATTOSECONDSUSEC_TO_SUBSECONDS-> ATTOSECONDS_IN_USECSUBSECONDS_TO_HZ-> ATTOSECONDS_TO_HZHZ_TO_SUBSECONDS-> HZ_TO_ATTOSECONDSMAME_TIME_IN_HZ-> ATTOTIME_IN_HZMAME_TIME_IN_SEC-> ATTOTIME_IN_SECMAME_TIME_IN_MSEC-> ATTOTIME_IN_MSECMAME_TIME_IN_USEC-> ATTOTIME_IN_USECMAME_TIME_IN_NSEC-> ATTOTIME_IN_NSECMAME_TIME_TO_CYCLES-> ATTOTIME_TO_CYCLESMAME_TIME_IN_CYCLES-> ATTOTIME_IN_CYCLES
- In addition, all the
mame_timer_*functions have been renamed back to their original namestimer_*, so it istimer_set()instead ofmame_timer_set()once again. Themame_timerobject itself has been renamed toemu_timer.
New games added or promoted from NOT_WORKING status
- Best Of Best [Luca Elia]
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
malloctracking to be decided at runtime in a functionuse_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.hwould 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
rgbintvalues in the namcos22 driver to work around 32-bit gcc's lack of proper alignment handling. [Aaron Giles]
- Fixed
attotimeroutines 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
colortabletocolortable_t. Added aMachine->colortableentry to hold the globalcolortablefor games that use it. Updated several more drivers to just use palettes directly rather than hackingcolortables. [Aaron Giles]
New clones added
- Fighting Soccer (version 4) [Corrado Tomaselli]
- Stadium Cross (US) [Arzeno Fabrice]
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
#definesin the core over toenums. Also adjusted theGAMEmacro so that it results inconstdata, and that it is defined in terms of the more genericGAMELmacro. [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.cdriver. AddedMACHINE_RESETto fixautoholdoption. 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
inlinecode, 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
inlinefunctions: [Vas Crabb]
- Add attributes to functions in
eigccppc.handeigccx86.hto cause GCC to alwaysinlinethem, 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.handeigccx86.has register, so GCC won't always allocate stack space even at O0 optimisation level - Add dummy +m operands to atomic access functions in
eigccppc.hso 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>inrgbvmx.hif__APPLE_ALTIVEC__is defined, as this will cause a compiler warning.
- Add attributes to functions in
- Cleaned up inputs in the System 24 driver: [Sonikos]
- Removed useless
pen_arrayin 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_*_ptrfunctions in favor of the more generic routines. [Aaron Giles]
- Deprecated
cpu_yield*functions except forcpu_yield()itself, which yields for the currenttimesliceonly. Drivers that relied on the other yielding functions should be updated to usecpu_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
ARCHOPTSvariable. You can control the name of the final executable via the existingPREFIXandSUFFIXvariables, 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
- Maze Invaders (prototype) [Aaron Giles]
- Guts 'n Glory (prototype) [Aaron Giles]
- Jumbo Ozaki Super Masters Golf [Sonikos]
New clones added
- Sky Kid (Manufactured by Sipem) [Corrado Tomaselli]
- Next Fase (bootleg of Phoenix) [David Haywood]
- Hang-On (Rev A) [Tony Beason]
- Shooting Master (set 2, 8751 315-5159a) [Kevin Eshbach]
- Super Burger Time (World, set 2) [Patrik Styrnell]
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
- The Block Kuzushi (JAPAN) [Guru, smf]
- Wrestle War (Mega-Tech) [Mame Italia]
New clones added
- Puzzle & Action: BoMulEul Chajara (Korea) [Guru, David Haywood]
- DaeJeon! SanJeon SuJeon (Korea) [Guru, David Haywood]
- Success Joe (World) [Corrado Tomaselli]
New games marked as GAME_NOT_WORKING
- Stress Busters [Guru, David Haywood]
- Magical Zunou Power [Guru, David Haywood]
- Draw 80 Poker [Jim Stolis]
- 1 on 1 Government (JAPAN) [Guru, smf]
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
- Mortal Kombat 4 [Aaron Giles]
- Shin Nihon Pro Wrestling Toukon Retsuden 3 Arcade Edition [R. Belmont, smf, Guru]
- Super World Stadium '98 [R. Belmont, smf, Guru]
New clones added
- Trivia Master (set 3) [Eric Marks]
New games marked as GAME_NOT_WORKING
- Kaiun Quiz [R. Belmont, smf, Guru]
- Super World Stadium 2000 [R. Belmont, smf, Guru]
Other Versions
This article is part of the MAME series. A list of all series can be found in the Series Category
editEarly versions: 0.1 to 0.10 | 0.11 to 0.20 | 0.21 to 0.26 | 0.27 to 0.31
The beta 30s: 0.33b1 to 0.33 | 0.34b1 to 0.34 | 0.35b1 to 0.35b8 | 0.35b9 to 0.35f | 0.36b1 to 0.36b9.1 | 0.36b10 to 0.36 | 0.37b1 to 0.37b8 | 0.37b9 to 0.37b16
50s, 60s & 70s: 0.53 to 0.60 | 0.61 to 0.68 | 0.69 | 0.70 | 0.71 | 0.72 | 0.73 | 0.74 | 0.75 | 0.76 | 0.77 | 0.78 | 0.79
80s & 90s: 0.80 | 0.81 | 0.82 | 0.83 | 0.84 | 0.85 | 0.86 | 0.87 | 0.88 | 0.89 | 0.90 | 0.91 | 0.92 | 0.93 | 0.94 | 0.95 | 0.96 | 0.97 | 0.98 | 0.99
100s & 110s: 0.100 | 0.101 | 0.102 | 0.103 | 0.104 | 0.105 | 0.106 | 0.107 | 0.108 | 0.109 | 0.110 | 0.111 | 0.112 | 0.113 | 0.114 | 0.115 | 0.116 | 0.117 | 0.118 | 0.119
120s & 130s: 0.120 | 0.121 | 0.122 | 0.123 | 0.124 | 0.125 | 0.126 | 0.127

