MAME/0.36 Part 2

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.36b10 "Namco pre-perfection"

Released: 1999-11-20. Officially no longer available.

Important: due to changes in the palette system, there might be games that had correct colors before, and wrong now. Please let us know if you find any.

New games supported

New clones supported

These drivers have improved GRAPHICS

  • Fixed lots of drivers for -depth 16 support. [Zsolt Vasvari]

These drivers have new or improved SOUND

Other drivers changes

  • Fixed controls in Ikari III level 2. [Nicola Salmoria]
  • Fixed hangs in TNZS. [Quench]

Changes to the main program

  • [DOS] Adjusted the autoframeskip code, to make it increase frameskip a little faster, but not as fast as it was before the previous change. Let's see how this performs. [Nicola Salmoria]
  • Support for gzipped (NOT zipped) cheat files. Uncompressed files still work. [Mathis Rosenhauer]

Source

  • Merged the flags and orientation fields of struct GameDriver.
  • Removed prom_memory_region from struct GameDriver. The PROM memory region is now specified directly in the ROM declaration, with ROM_REGIONX( length, REGION_PROMS )
Similarly, REGION_GFX1..8 are defined for gfx decoding, but drivers have not been updated to use them. See drivers/namcos86.c for the only example.
  • Removed samplenames from stuct GameDriver. It is now in struct SamplesInterface, and some drivers load the samples directly without using that structure. Due to this change, -listsamples and -verifysamples, and the samples information in -listinfo, are no longer available. Actually, samples might not be working at all - I haven't tested them. [Nicola Salmoria]
  • Removed base and size from struct MemoryReadAddress, use MemoryWriteAddress to store the pointers. Several drivers had the bad habit of using MemoryReadAddress to initialize those variables, hopefully I haven't broken any while updating them. [Nicola Salmoria]

MAME 0.36b11 "Y2K"

Released: 1999-12-06. Officially no longer available.

New games supported

New clones supported

These drivers have improved GRAPHICS

These drivers have new or improved SOUND

  • Improved emulation of the Galaxians sound subsystem. Samples are no longer used. [Juergen Buchmueller, Tatsuyuki Satoh]

Other drivers changes

  • Fixed Bosconian score handling. [Vernon C. Brooks]
  • Fixed Frisky Tom (note: delete friskyt.hi to fix coins). [Zsolt Vasvari]

Changes to the main program

  • Rewritten the sample listing routines for -listsamples, -listsamdir, -verifysamples and -listinfo. [Juergen Buchmueller]
  • [DOS] New command -verifysets, this verifies all available games and reports their status (good/best available/bad). Also changed the format of the -verifyroms output. Some frontends might need small adjustments to parse the new output. [Bernd Wiebelt]

Source

  • Taken the 005289 emulation out of namco.c. [Bryan McPhail]
  • QSound player (preliminary) [CAB, Paul Leaman]
  • Some changes to the TMS9900 emulation that completely screw up Cosmic Guerilla. [Raphael Nabet]
  • Y8950 emulator, used by ginganin. [Tatsuyuki Satoh]

MAME 0.36b12 "Massive bugfix"

Released: 1999-12-18. Officially no longer available.

To all people that submitted high score save updates: high score save is on hold. No additions will be made for the time being. In the near future, high score support will be removed from the executable to an external file, much like the cheat.dat one. We are looking for a volunteer to maintain that file.

New games supported

New clones supported

These drivers have new or improved SOUND

  • Fixed hanging music in Raiden. [Bryan McPhail]
  • Fixed missing sounds in roishtar. [CAB]

Other drivers changes

  • Bypassed the protection in Exerion. [Zsolt Vasvari]
  • The hangs in Tempest caused by the Pokey protection should now be fixed once and for all. [Juergen Buchmueller]
  • Fixed hangs in roishtar. [E. Watanabe, Takahiro Nogi]

Changes to the main program

  • [DOS] Artwork files can be stored in a .zip file. That way you can have eg. both spacewr1.png and spacewr2.png in one file spacewar.zip. [Juergen Buchmueller]
  • Added the possibility to use a multiple keys or joysticks sequence to drive a generic action. This can be handy with consoles or cabinets with a limited number of buttons, to reuse all buttons with only one extra button, like a shift key. For example the COIN1 action can be mapped to the "Player 1 Fire" plus the "Extra Shift Button". It can also be used to map Q*Bert movements to joystick diagonals (since the orginal used a joystick rotate 45 degrees). [Andrea Mazzoleni]
  • Added cpu overclocking control to the on screen display. [Juergen Buchmueller]

Source

  • PORTERS BEWARE: the OS dependant code is now required to support a palettized 16-bit display, where osd_modify_pen() can be called and the palette lookup is done during the final blit. A non palettized display can still optionally be used in special cases, see the comment about osd_allocate_colors() in osdepend.h. Also note that osd_allocate_colors() now can fail and returns a value; and the special case for 32768 pens has been removed, a valid palette is always passed to the function.
  • Fixed OPN and OPM output level. Unfortunately this means that all games using YM2203, YM2151 etc. need to be rebalanced. [Tatsuyuki Satoh]
  • Removed memory_region from struct MachineCPU, now this information is stored directly in the ROM list using the REGION_CPUx attributes.
Also remember that now you must never use Machine->memory_region[], always use memory_region() (and the same for memory_region_length).

MAME 0.36b13 "Lance, rejoice"

Released: 1999-12-30. Officially no longer available.

New games supported

New clones supported

These drivers have improved GRAPHICS

  • 16-bit support in the vector games. [Mathis Rosenhauer]

These drivers have new or improved SOUND

Other drivers changes

  • Fixed crash at the end of Gun Smoke level 3. [Paul Leaman]

Changes to the main program

  • Alongside the AND key sequences introduced in the previous beta, it is now possible to have OR and NOT sequences.
For recording OR key/joy sequences in the key/joy setup menu simply press UI_SELECT (usually ENTER) after the first recorded sequence. Don't press any UI_UP/UI_DOWN/UI_CANCEL keys beetwen the two sequences.
To insert a NOT key/joy simply press it two times.
The first obvious use for this is to wire button 1 to both the joystick and mouse button. [Andrea Mazzoleni]

Source

  • Added other members of the TMS99xx family. [Raphael Nabet]

MAME 0.36b14 "Namco semi-perfection"

Released: 2000-01-11. Officially no longer available.

Note: non volatile ram is now saved to a new directory, NVRAM (instead of the old HI). You must create that directory manually, otherwise the files will not be saved.

New games supported

New clones supported

These drivers have improved GRAPHICS

  • Sprite multiplexing support in the Exidy440 games, this fixes Chiller's start screen. [Aaron Giles]
  • Fixed the internal orientation of the Cinematronics games, if you use artwork files for those games you'll have tomanually flip them (or redownload).

Other drivers changes

  • Improved Capcom Avengers, the wrong colors are caused by the protection. [Phil Stroffolino]

Changes to the main program

  • Added noise generator to the Namco sound emulation. [Takahiro Nogi]

Source

  • Removed *rom_decode and *opcode_decode from struct GameDriver. Decryption must now be handled by *driver_init. If opcodes and data are decrypted separately, remember to allocate a larger chunk of memory in the ROM declaration, decode the opcodes there, and call memory_set_opcode_base() to tell the memory system where the opcodes are.
Note that this new system allows bank switching with encrypted ROMs, which wasn't possible before. [Nicola Salmoria]
  • Removed *hiscore_load and *hiscore_save from the GameDriver structure. To manage nvram/eeprom/cmos/etc the new *nvram_handler in struct MachineDriver must be used. High score save is temporarily disabled. It will be added again in a future release using an external .dat file. [Nicola Salmoria]
  • The struct GameDriver reorganization is finally complete. Drivers should now use the GAME() and GAMEX() macros and not directly the GameDriver structure.
IMPORTANT FOR PORTERS: Note that the clone_of field now is not necessarily 0 even if the game is not a clone. If clone_of is not 0, to know if the game is a clone you have to check (clone_of->flags & NOT_A_DRIVER) is 0.
  • Added OSD_FILETYPE_NVRAM.
  • MachineDriver->frames_per_second is now a float.

MAME 0.36b15 "Kaneko16"

Released: 2000-01-21. Officially no longer available.

New games supported

New clones supported

These drivers have improved GRAPHICS

  • Enabled raster effets in Metal Slug 2 (needed for the dunes at the beginning) [Sebastian Ojeda]
  • Fixed System 16 games in 16-bit video modes. With -depth 16, shadows are also color accurate, otherwise the old gray scale shadows are used. [Andrew Prime]

These drivers have new or improved SOUND

Other drivers changes

  • Added collision detection to Star Cruiser. [Frank Palazzolo]
  • Simulated the protection in the original version of Side Pocket. [Bryan McPhail]

Source

  • stream_init() and stream_init_multi() no longer have a sample_bits parameter.
Sound emulators are required to generate 16-bit samples. Also removed osd_play_streamed_sample() and mixer_play_streamed_sample(): only the 16-bit version is available now.
  • Added gain support to mixer.c, through the new MIXERG() macro (extension of MIXER()). Removed the gain filed from AY8910, YM2204, YM2610 structures.
  • make68k.exe now requires as parameter the path of the comptab.asm include file (see makefile).

MAME 0.36b16 "An insignificant number has been reached"

Released: 2000-02-04. Officially no longer available.

New games supported

New clones supported

These drivers have improved GRAPHICS

These drivers have new or improved SOUND

Changes to the main program

  • Added vector intensity control to the On Screen Display (for vector games). [Mathis Rosenhauer]
  • Unified keyboard and joystick interface, now they are all assigned in the "Input" menu and you can mix them at will. [Andrea Mazzoleni]
  • [DOS] MMX optimized video blitting functions. [Bernd Wiebelt]

Source

  • The transition to the GAME() macro is complete. struct GameDriver must no longer be used. Alro removed the old ROM_REGION() and ROM_REGION_DISPOSE() macros, and renamed ROM_REGIONX() to ROM_REGION().
  • The functionality of osd_skip_this_frame() is now more strictly defined (see osdepend.h). Ports not complying with that must be updated, otherwise problems with certain drivers might arise.
  • mixer.c now does all sound mixing, generating one single sample stream, played using the new osd_XXX_audio_stream() functions.
All other OS dependant sample functions (osd_play_sample() etc.) have been removed. This should standardize the sound output across ports, and allow porters to write much cleaner sound code. [Aaron Giles]
  • Removed some obsolete fields from struct GameOptions.

MAME 0.36rc1 "Where is the coin key"

Released: 2000-02-26 and fixed: 2000-02-27.

A few drivers which didn't strictly fit MAME's purpose have been removed. First of all there were a few drivers which, just like consoles or computers, don't fall into the category of "arcade video games" that MAME attempts to emulate. They should have never been added in the first place, and that mistake is now being rectified. One of the removed drivers is Street Fighter Zero for the CPS Changer, which is not an arcade game even if it runs on arcade hardware. The source is left in, commented out, because it could be useful as a reference for people attempting to emulate CPS-2 (which, before you ask, won't happen anytime soon). The so-called "home" versions of NeoGeo games have not ben removed because there isn't anything in them suggesting that they are home-only games: they accept coins just like all the others, and might just be different revisions of the code. Other removed drivers are four gambling machines. Note that a "gambling machine" is different from a "video game with a gambling theme". The discrimination is strictly a technical one, not a moral one (a gambling machine gives back money/tokens/tickets, a video game does not). The "Sente diagnostic cartridge" has not been removed because, even if it is not a game, it is equivalent to the diagnostic tools that are built-in in many other games - it's just that instead of pressing a service switch you had to insert this special cartridge to test the board. The last driver removed is Pong, which at this point was too much of a simulation and too little of an emulation. It didn't really fit into MAME's architecture which is CPU-based and targeted at accurately reproducing the gameplay of the original.

That was a difficult decision to make, but thankfully I won't have to bother about these things anymore in the future. Gotta go now! *waves*

New games supported

New clones supported

These drivers have improved GRAPHICS

  • Fixed sprites colors in Contra (I hope) and other improvements to Konami 007121-based games. [Nicola Salmoria]
  • Fixed shadows in Gauntlet and other Atari games. [Aaron Giles]

These drivers have new or improved SOUND

  • Preliminary sound in Bandido. [Zsolt Vasvari, Juergen Buchmueller]

Other drivers changes

Changes to the main program

  • [DOS] -hotrod selects a more appropriate button configuration when NeoGeo games are played. [Paolo Fiorani]
  • The coin/start buttons are slightly changed. NOw they are layed out this way:
1,2,3,4 -> start 1,2,3,4
5,6,7,8 -> coin 1,2,3,4
9,0,-,= -> service coin 1,2,3,4
  • Preliminary support for HISCORE.DAT. [Phil Stroffolino]

Source

  • 65sc02 and 65ce02 cpu cores. [Peter Trauner]
  • [DOS] Compiled with Allegro WIP 3.9.31.
  • Rewritten the Pokey emulator for greater accuracy. [Juergen Buchmueller]
  • Preliminary SN76477 emulation. [Juergen Buchmueller]
  • Fixed a rounding error in IPF_CENTER handling which caused problems with Centipede. Note, however, that it would be advisable to not use IPF_CENTER at all for trackball/dial inputs, since this is probably not how the hardware works in reality.
For the same reason, also removed the "clip" parameter from the PORT_ANALOG() macro. Incidentally, this fixed Peek-a-Boo. [Nicola Salmoria]
  • Lots of CPU fixes and cleanup. [Juergen Buchmueller]
  • Struct GfxLayout can now be parametric on the size of the memory region it refers to. This way the same gfx definition can be used for games with the same layout but different number of tiles. See drivers/m72.c, drivers/dec0.c for usage examples. [Nicola Salmoria]
  • Fixes and improvements to the 6800 family emulator. [Tatsuyuki Satoh]
  • Improvements to the YM2151 emulator. [Jarek Burczynski]
  • Only one of the two YM2151 emulators is linked, this is determined at compile time. The default is Jarek's, which is more accurate though a little slower.
It can be replaced with Tatsuyuki's changing the makefile.

MAME 0.36rc2 "211"

Released: 2000-03-13 and fixed: 2000-03-13.

New games supported

New clones supported

These drivers have improved GRAPHICS

These drivers have new or improved SOUND

  • Rewritten sound emulation in Phoenix, samples are no longer used. [Juergen Buchmueller]
  • Fixed volume control in the MCR games. [Aaron Giles]

Other drivers changes

  • Won the first grand prix of the season. [Micheal Schumacher]

Changes to the main program

  • [DOS] Modified the SEAL audio library so it outputs real 16-bit samples instead of truncating the least significant 8 bits. [Jarek Burczynski]
  • [DOS] There are now two options for Hot Rod key mapping, -hotrod and -hotrodse. The latter remaps NeoGeo games to use the lower row of buttons.

Source

  • There's a new game flag GAME_NO_COCKTAIL to mark drivers that don't support screen flip, please use it because gamelist.txt is now generated automatically and this is the only way to know whether a driver supports it or not.

MAME 0.36

Released: 2000-03-21

Important functional changes

  • High score saving is no longer directly supported. It requires an external file called HISCORE.DAT, which will be provided and maintained separately from MAME. Without that file, nothing will be saved to the /hi subdirectory. We cannot guarantee at this time that all future versions of HISCORE.DAT will work with this version of MAME.
EEPROM, battery-backed RAM or other types of non-volatile memory are still directly supported, and saved to the /nvram subdirectory. This doesn't necessarily mean high score support, it is often used only for game configuration.
  • [DOS] Changed the -depth option behaviour, now it can be either 8, 16, or auto. The default is auto, which uses the color depth appropriate for the game. 8 forces use of a 256 colors display (faster but less accurate), 16 forces use of a 16-bit display (not suggested, doesn't work with all games).
MAKE SURE TO SET depth = auto IN MAME.CFG, OR YOU'LL USE 16-BIT IN ALL GAMES. If you see the game display (in full or in part) shrinked to the left side of the screen, this is caused by using -depth 16 on a game that doesn't support 16-bit display. Change depth to auto and it will work again.
  • "-listsamples" and "-verifysamples" will not work correctly for some games. This is a known problem which will be fixed in future releases by getting rid of the samples altogether (replacing them with emulated sound).

Changes to the main program

  • Unified keyboard and joystick interface, now they are all assigned in the "Input" menu and you can mix them at will.
Added the possibility to use a multiple keys or joysticks sequence to drive a generic action. This can be handy with consoles or cabinets with a limited number of buttons, to reuse all buttons with only one extra button, like a shift key. For example the COIN1 action can be mapped to the "Player 1 Fire" plus the "Extra Shift Button". It can also be used to map Q*Bert movements to joystick diagonals (since the orginal used a joystick rotate 45 degrees).
It is also possible to have OR and NOT sequences. For recording OR key/joy sequences in the key/joy setup menu simply press UI_SELECT (usually ENTER) after the first recorded sequence. Don't press any UI_UP/UI_DOWN/UI_CANCEL keys beetwen the two sequences.
To insert a NOT key/joy simply press it two times.
The first obvious use for this is to wire button 1 to both the joystick and mouse button. [Andrea Mazzoleni]

Other Versions


Personal tools