MAME/0.35 Part 1

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.35b1 "New interrupt system"

Released: 1999-01-07

Note: the configuration save format has changed. You may just as well delete all of the cfg/*.cfg files, since they won't be loaded. Old .inp files will not work either.

The good news is that the default key assignments can now be modified, so you don't have to change them for all the games. The code is a quick hack put together in fifteen minutes, but it's bettern than nothing. It will be improved in future versions.

New games supported

New clones supported

Changed ROM sets

These drivers have improved GRAPHICS

  • Proper support of the playfiled/sprite priority and palette system in Return of the Jedi. [Nicola Salmoria]
  • Fixed NeoGeo palette - it's 5 bits per gun, not 4. Of course this makes the reduction to 256 colors even more difficult. 16-bit video modes will be supported in a later version. [Nicola Salmoria]
  • Added a kludge to avoid leftover sprites in Rally-X. [Larry Bank]
  • Fixed missing background behind the three towers in Metal Slug level 1. [Nicola Salmoria]
  • Fixed missing line in the tank's shot in Metal Slug intro. [Nicola Salmoria]
  • Fixed the Swimmer side panel background color. [Gary Walton]

These drivers have new or improved SOUND

  • Fixed shoot sound in Juno First. [Nicola Salmoria]
  • Added the 007232 to TMNT. Another sound chip is still missing to get 100% sound. [Howie Cohen]

These drivers have HIGH SCORE support

Other drivers changes

  • Worked out the Super Punch Out protection. [Tatsuyuki Satoh, Ernesto Corvi]
  • Fixed two players games in Phoenix, and the protection in Pleiads (which made game resets not work). [Zsolt Vasvari]

Changes to the main program

  • [DOS] Widened the frameskip range. It now is 0-11, meaning the number of frames to skip out of 12. For example, if the game normally runs at 60 fps, "-frameskip 2" will make it run at 50 fps, and "-frameskip 6" at 30 fps. Also, if a frame takes more than the allotted time to display, the lost time can be recovered in the following frames. Moreover, improved the way audio streams are handled, so they stay more in sync with the video. There should never be any more audio breakups EVER (as long as your system can keep the game running at 100% speed).
All of these changes together mean that it is now possible to run at much higher frame rates than before (if your system is fast enough). [Nicola Salmoria]
  • [DOS] Implemented auto frameskip. It dynamically adjusts the frameskip setting to display the maximum possible frames without dropping below 100% speed.
It is on by default; to turn it off, specify an explicit frameskip value, e.g. "-frameskip 0". Autoframeskip only works well if your machine is fast enough to run the game at 100% speed. If it isn't, you had better use a fixed frameskip.
NOTE: you must delete mame.cfg (or manually change the line "frameskip = 0" to "frameskip = auto") for the auto frameskip to become the default. [Nicola Salmoria]
  • [DOS] "vmame" modes 320x480 and 400x600, which speed up scanlined VESA modes for some games and graphic cards which support these resolutions. Currently, these modes will not be autodetected, that is, the commandline options "-320x480" or "-400x600" have to be used. [Nicola Salmoria, Michael Cunnanan]
  • [DOS] Joysticks are now selected by a symbolic name (e.g. "-joystick wingex" for Wingman Extreme) instead of a number. For the list of names, look into readme.txt. Numbers are still supported, but may not be in future releases. SNES gamepads on parallel ports are supported now, provided you have some additional hardware (the "official" Snespad-Support site is http://snespad.emulationworld.com). [Bernd Wiebelt]
  • [DOS] For cosmetical reasons, added support for VESA3, which can be selected by putting "vesamode=vesa3" into mame.cfg. It is highly unlikely that you'll get any speed improvement. [Bernd Wiebelt]

Source

  • New function cpu_getcurrentframe() which returns the number of the video frame currently being played. It can be used by drivers to control effects which spawn over multiple frames (e.g. blinking) without using static internal counter (which would require a custom interrupt handler to avoid problems when the game is paused). [Nicola Salmoria]
  • Frame skipping is entirely handled by the OS dependant code. osd_skip_this_frame() no longer has the "recommend" parameter. Also, replaced osd_update_display() and osd_update_audio() with the single osd_update_video_and_audio().
IMPORTANT: osd_update_video_and_audio() is called *every frame* by the main core. It's its responsability to know whether the frame has to be skipped. osd_skip_this_frame() is used by the main core only to know if it can avoid calling drv->vh_update(). [Nicola Salmoria]
  • New Z80 emulator. [Juergen Buchmueller]
  • Fixed several bugs in the I86 emulator. [Juergen Buchmueller]
  • New CPU interrupt system. The functions cpu_set_irq_line() and cpu_set_nmi_line() can be used to precisely control the status of the CPU physical lines, instead of using the limited control granted by cpu_cause_interrupt(). [Juergen Buchmueller]
  • Konami 007232 sound chip emulator. This is used by TMNT. [Hiromitsu Shioya]
  • The driver input ports are now 16 bit. This allows for higher resolution analog inputs (Arkanoid 2). Also, the 68000 based games no longer have to read and mix two 8 bit ports to get a 16 bit value. [Brad Oliver]
  • [DOS] Now compiled with Allegro 3.1. Unfortunately the standard allegro.h doesn't compile with the pedantic compiler setup we are using, you'll have to use the provided fixed version instead. [Bernd Wiebelt]
  • Added a horrible dirty hack to allow opcode encryption on CPUs other than the main one. It's really ugly and needs a rewrite, but it's enough to get sound in Pocket Gal and The Real Ghostbusters. [Nicola Salmoria]
  • Exported info_cpu_name(), info_sound_name() and other similar functions from info.c so they can be used by usrintf.c and by anyone else who needs them. [Nicola Salmoria]

MAME 0.35b2 "TMNT talks"

Released: 1999-01-24

Note: the CPU cores are still in a state of flux. Most of the problems in 35b1 have been fixed, however some still remain (e.g. Gauntlet doesn't accept coins and Exterminator crashes).

New games supported

New clones supported

These drivers have improved GRAPHICS

  • Fixed the title screen in P.O.W. [Bryan McPhail]
  • Fixed gaps in the start/finish line in Neo Drift Out. [Nicola Salmoria]
  • Attempt at emulating some raster effects in the NeoGeo games. The IRQ2 handling is still 99% unknown, however you can see the field in Super Sidekicks 3 and 4. This is largely unaccurate, and VERY slow. Hit F1 to toggle the emulation on or off (by default it's on). [Nicola Salmoria]
  • Almost accurate colors in Galivan. [Nicola Salmoria]
  • Improved row scrolling in Street Fighter 2, plus several other fixes to the CPS1 games. [Paul Leaman]
  • Fixed sprite colors in Euro League. [Nicola Salmoria]
  • Fixed sprites disappearing abruptly in TMNT end of game credits. [Nicola Salmoria]
  • Accurate colors in Mariner. [Gerald Coy]

These drivers have new or improved SOUND

  • Added support for the 7751 sound chip in Monster Bash. Two samples are still needed (discrete circuits). [Mike Balfour]
  • Speech in TMNT. Sound should now be 100% complete. [Howie Cohen]
  • Emulated speech in Sinistar. Samples are no longer used. [Alex Pasadyn]
  • Sound fade timer ports in the CPS1 games (see Willow's Test mode for an example). [Paul Leaman]

These drivers have HIGH SCORE support

Other drivers changes

  • The hang in Tapper should REALLY be fixed this time. [Juergen Buchmueller]

Changes to the main program

  • [DOS] The key to change frameskip is now F9 instead of F8. [Nicola Salmoria]

Source

  • New 68000 C core. For testing purposes, this is also being used in the DOS version instead of the asm core. [Karl Stenerud]
Differences:
  1. Faster. This code is, barring ram fetch time, almost twice as fast as the existing C core in MAME. I've done extensive speed profiling on both engines. The only problem now is the slow memory access in MAME due to bankswitching et al.
  2. Emulation more correct. I found many bugs in the MAME engine (and many, many more in mine for that matter) when I pitted them head-to-head. I have run random instructions from each opcode class at least 10 million times, comparing the resultant CPU states, and have left it running random instructions for 1 billion iterations. In every case, I have adhered to the specs defined in M68000PM/AD REV. 1.
  3. Disassembler is correct. The current M68000 disassembler in mame has a tendency to disassemble instructions that have an invalid EA mode.
  4. Cycle counting is 99.9% correct. The only instructions which don't have correct cycle counts are divs, divu, muls, mulu, and they're not worth counting correctly. (I'm not about to waste emulation time counting 0-1 and 1-0 sequences).
  5. > 32 bit friendly. I've taken care to ensure maximum portability without sacrificing speed. The result is conditional compiling dependant on your architecture. I've also implemented and tested a compatible solution for architectures that lack 8, 16, or 32 bit signed storage types.
  6. The code is carefully laid out to be readable. (I beg to differ - NS)
  • Fixed some bugs in the I8039 emulation. [Brian Stern]
  • Z8000 emulator. [Juergen Buchmueller]
  • NEC uPD7759 emulation. This is used by TMNT, System 16, and others. [Juergen Buchmueller, Mike Balfour, Howie Cohen]
  • CVSD emulation, used for speech in Sinistar and in the 34010 games (Smash TV etc.). [Larry Bank, Alex Pasadyn]

MAME 0.35b3 "Street Fighter"

Released: 1999-02-15

New games supported

New clones supported

These drivers have improved GRAPHICS

  • Added the interesting parts to Gals Panic. [Nicola Salmoria]
  • 16-bit color support in the NeoGeo driver. It's enabled in a few games which were particularly affected by reduction to 256 colors. [Nicola Salmoria]
  • CPS1 games are being worked on, they are temporarily slower but accuracy is improved.

These drivers have new or improved SOUND

  • New sample support in Tac/Scan. [Jim Hernandez]

These drivers have HIGH SCORE support

Other drivers changes

  • Support for the ORIGINAL version of Bubble Bobble, with 68705 code from a pirate board. Wizards *do* throw stones in this version. [Nicola Salmoria]
  • Removed the protection in Fatal Fury 2. [Eugenio De Renzi]
  • Emulated the protection (TMS32010) in Twin Cobra, which is now fully playable. [Quench]
  • Fixed the protection in Frisky Tom. [Andrew Prime]
  • Simulated the 8751 protection in F1 Dream, but it seems to work on Macs only (endian issue?). [Eric Hustvedt]
  • Fixed speed in Oscar. [Bryan McPhail]

Source

  • A couple of bug fixes in the 6808 core. [Brad Oliver]
  • TMS32010 emulator. This is used by Twin Cobra. [Quench]
  • New experimental TileMap code, used by Ninja Gaiden and Ghosts and Goblins. This makes the driver code cleaner and gives a major performance boost in the video rendering. DON'T USE IN NEW CODE UNTIL FURTHER NOTICE!! [Phil Stroffolino]
  • [DOS] X86 asm Z80 core. [Juergen Buchmueller]

MAME 0.35b4 "Exidy 440"

Released: 1999-03-01

New games supported

New clones supported

  • Pang (original)
  • Buster Bros
  • Smash TV (revision 6 and 4) [Zsolt Vasvari]
  • alternate versions of MK and MK2 (they were already there, just not linked)

Other drivers changes

  • It seems that the Fatal Fury 2 protection was still causing some problems in later levels. It should now be completely worked around. NOTE: YOU MUST DELETE FATFURY2.HI OR THE GAME WILL MALFUNCTION AFTER THE FIRST BONUS ROUND. [Nicola Salmoria]

Changes to the main program

  • [DOS] New -quadra and -triple video options. They are slower than the others, but provide interesting features. With -quadra the screen is quadrupled horizontally and tripled vertically, so a 256x256 game fits perfectly in a 1024x768 screen. -triple triples horizontally and doubles vertically, so it's perfect for Moon Patrol. [ole00@usa.net]
  • Improved palette compression with color fades. [Nicola Salmoria]
  • Improved the YM2610 emulation. [Tatsuyuki Satoh]

Source

  • [DOS] Now compiled using Allegro 3.11. Unfortunately, contrary to what I had been promised, allegro.h provided with the library still fails to compile with MAME, so a fixed one is included.

MAME 0.35b5 "Hu6280"

Released: 1999-03-07

New games supported

New clones supported

These drivers have improved GRAPHICS

  • Kludged in a fix for char/sprite priority in Traverse USA. [Nicola Salmoria]

These drivers have new or improved SOUND

  • Emulated the death sound in Mario Bros, the sample is no longer used. [Brian Stern]

These drivers have HIGH SCORE support

  • DEC8 games. [Roberto Fresca]

Other drivers changes

  • Emulated the protection in Sly Spy. [Bryan McPhail]

Changes to the main program

  • [DOS] Added a header to .inp files (same as MAME32). With the additional header, the user no longer needs to specify the game name when playing back .inp recordings. [Mike Haaland]
  • Added the ability to show the total number of colors on screen. This is useful during development to know if a game can be shrinked to 256 colors or it requires a 16-bit display. Press CTRL+F11 to toggle the display. This is only available in debug builds. [Nicola Salmoria]

Source

  • The TileMap code is now mature enough to be used in new drivers. For examples, look into gng, gaiden, travrusa. [Phil Stroffolino]
  • Merged the old and new Namco sound subssytem, and added support for stereo output. [Aaron Giles]
  • H6280 emulator, used by several DECO games. [Bryan McPhail]

MAME 0.35b6 "Cinematronics"

Released: 1999-03-15

Note: the CPU cores have been completely torn apart and rearranged in this release. Don't be surprised if a large number of games donì't work at all. FOr example, Twin Cobra doesn't boot, and most (all?) of the games using a 6803 lock up (ctrl-alt-del needed).

New games supported

  • Space Wars [Aaron Giles, Zonn Moore, Jeff Mitchell, Neil Bradley]
  • Vectorbeam [Aaron Giles, Zonn Moore, Jeff Mitchell, Neil Bradley]
  • Star Hawk [Aaron Giles, Zonn Moore, Jeff Mitchell, Neil Bradley]
  • Star Castle [Aaron Giles, Zonn Moore, Jeff Mitchell, Neil Bradley]
  • Tailgunner [Aaron Giles, Zonn Moore, Jeff Mitchell, Neil Bradley]
  • Rip Off [Aaron Giles, Zonn Moore, Jeff Mitchell, Neil Bradley]
  • Speed Freak [Aaron Giles, Zonn Moore, Jeff Mitchell, Neil Bradley]
  • Sundance [Aaron Giles, Zonn Moore, Jeff Mitchell, Neil Bradley]
  • Warrior [Aaron Giles, Zonn Moore, Jeff Mitchell, Neil Bradley]
  • Armor Attack [Aaron Giles, Zonn Moore, Jeff Mitchell, Neil Bradley]
  • Solar Quest [Aaron Giles, Zonn Moore, Jeff Mitchell, Neil Bradley]
  • Demon [Aaron Giles, Zonn Moore, Jeff Mitchell, Neil Bradley]
  • War of the Worlds [Aaron Giles, Zonn Moore, Jeff Mitchell, Neil Bradley]
  • Boxing Bugs [Aaron Giles, Zonn Moore, Jeff Mitchell, Neil Bradley]
  • Mystic Marathon [Michael Soderstrom]
  • Turkey Shoot [Michael Soderstrom]
  • Inferno [Michael Soderstrom]
  • Joust 2 [Michael Soderstrom]
  • Pontoon [Zsolt Vasvari]

New clones supported

These drivers have improved GRAPHICS

  • Fixed colors in Lode Runner 2. Also fixed the layout of round 8 and 28. [Nicola Salmoria]

Changes to the main program

  • [DOS] New -stretch option to optionally stretch low resolution games to fill the screen. The default is -stretch=off, which is the same behaviour as before. -stretch=1024x768 automatically uses the "quadra" mode for horizontal games whose resolution is less or equal to 256x256. -stretch=800x600 uses the "triple" mode. The -quadra and -triple options are no longer needed and have been removed.
1024x768 will be perfect (for 256x256 games) or almost perfect (for 256x240 and 256x224 games) without monitor adjustment, so it is indicated for LCD displays. However, it is slower than 800x600. 800x600 is faster but the games are stretched to resolutions from 768x448 to 768x512, so they don't fill the screen and are squashed vertically. Here's the tip: if your monitor is good enough, you can use the controls to expand the picture and make it fit perfectly in the screen. Note that this tip applies not only to stretched modes, but also to med-res games like Lode Runner (384x256) and the CPS1 games (384x224). The CPS1 games in particular are unbearably squashed unless you adjust the monitor. [Nicola Salmoria]
  • [DOS] New option -volume n to set the startup volume. The volume is an attenuation in dB, e. g. "-volume -12" will start with a -12dB attenuation. [Nicola Salmoria]
  • The user interface is rotated by -rol and -ror. [Nicola Salmoria]
  • Improvements to the YM2610 timers, added an interface for external volume control. [Tatsuyuki Satoh]
  • Major changes to the whole CPU interface and cores. [Juergen Buchmueller]
  • [DOS] All new, completely rewritten autoframeskip code. [Nicola Salmoria]

MAME 0.35b7 "Core split"

Released: 1999-03-18

New games supported

New clones supported

These drivers have improved GRAPHICS

  • Added the missing background layer to Cobra Command. [Bryan McPhail]

Other drivers changes

  • Fixed the in game timer in Captain Silver, this probably fixes other gameplay glitches. [Bryan McPhail]

Changes to the main program

  • new switch "-waitvsync /-nowaitvsync" (use it with -novsync); it waits for video sync before drawing the screen but uses the normal MAME throttling.
This gives smoother display with scrolling game (like vsync), but works with video modes with higher refresh frequency, and is more win-friendly. [Valerio Verrando]

Source

  • Major overhaul to the cpu cores. Note that the debugger doesn't work in this release. [Juergen Buchmueller]

MAME 0.35b8 "Old SNK"

Released: 1999-03-24

Most of the problems of beta 7 have been fixed, but the C 68000 core still isn't 100%.

New games supported

New clones supported

These drivers have improved GRAPHICS

  • Fixed missing item at the bottom of the screen in Tower of Druaga. [Nicola Salmoria]
  • Fixed again the colors in Lode Runner 2. This time it should really be 100%. [Nicola Salmoria]

These drivers have new or improved SOUND

  • Implemented the RC filters in early Konami games (Time Pilot, Pooyan, etc.) [Zsolt Vasvari]

Other drivers changes

  • Fixed 1 player start button not working on level 31 of Tower of Druaga. [Nicola Salmoria]

Changes to the main program

  • Added a "Game History" entry to the menu. Data is fetched from the file HISTORY.DAT. Thanks to Brian Deuel, Neil Bradley and the Retrocade dev team for allowing us to use Retrocade's game history database. [John Butler]
  • All new, completely rewritten debugger (not finished yet). [Juergen Buchmueller]
  • [DOS] Switches -noartwork and -nosamples to turn off artwork or sample loading. [Valerio Verrando]

Other Versions


Personal tools