<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.mamedev.org/index.php?action=history&amp;feed=atom&amp;title=MAME_0.93</id>
	<title>MAME 0.93 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mamedev.org/index.php?action=history&amp;feed=atom&amp;title=MAME_0.93"/>
	<link rel="alternate" type="text/html" href="https://wiki.mamedev.org/index.php?title=MAME_0.93&amp;action=history"/>
	<updated>2026-05-06T15:32:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.mamedev.org/index.php?title=MAME_0.93&amp;diff=656&amp;oldid=prev</id>
		<title>Georg: +category, major announcement</title>
		<link rel="alternate" type="text/html" href="https://wiki.mamedev.org/index.php?title=MAME_0.93&amp;diff=656&amp;oldid=prev"/>
		<updated>2007-05-03T11:37:32Z</updated>

		<summary type="html">&lt;p&gt;+category, major announcement&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:37, 3 May 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Release Date ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Release Date ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;MAME 0.93 was released on 27 February 2005.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;MAME 0.93 was released on 27 February 2005.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Major Announcement ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This release featured a huge update of the MAME sound system.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l160&quot;&gt;Line 160:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 165:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://www.mameworld.net/maws/romset/tutstomb Tuts Tomb]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://www.mameworld.net/maws/romset/tutstomb Tuts Tomb]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://www.mameworld.net/maws/romset/ghoshunt Ghost Hunter]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://www.mameworld.net/maws/romset/ghoshunt Ghost Hunter]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Releases 2005]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Major Changes]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Georg</name></author>
	</entry>
	<entry>
		<id>https://wiki.mamedev.org/index.php?title=MAME_0.93&amp;diff=549&amp;oldid=prev</id>
		<title>Georg: Initial version.</title>
		<link rel="alternate" type="text/html" href="https://wiki.mamedev.org/index.php?title=MAME_0.93&amp;diff=549&amp;oldid=prev"/>
		<updated>2007-04-27T05:25:58Z</updated>

		<summary type="html">&lt;p&gt;Initial version.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Release Date ==&lt;br /&gt;
MAME 0.93 was released on 27 February 2005.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
The known contributors for this version are, in alphabetical order:&lt;br /&gt;
&lt;br /&gt;
* [[Aaron Giles]]&lt;br /&gt;
* [[Andreas Thorsén]]&lt;br /&gt;
* [[Angelo Salese]]&lt;br /&gt;
* [[Brian Troha]]&lt;br /&gt;
* [[David Haywood]]&lt;br /&gt;
* [[David Widel]]&lt;br /&gt;
* [[Derrick Renaud]]&lt;br /&gt;
* [[Lawrence Gold]]&lt;br /&gt;
* [[MAN]]&lt;br /&gt;
* [[Mariusz Wojcieszek]]&lt;br /&gt;
* [[Nathan Woods]]&lt;br /&gt;
* [[Nicola Salmoria]]&lt;br /&gt;
* [[Pierpaolo Prazzoli]]&lt;br /&gt;
* [[R. Belmont]]&lt;br /&gt;
* [[Shinobiz]]&lt;br /&gt;
* [[smf]]&lt;br /&gt;
* [[Tomasz Slanina]]&lt;br /&gt;
* [[Torsten]]&lt;br /&gt;
* [[Ville Linde]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Specific Contributions ==&lt;br /&gt;
The known contributions for this version are, in the order specified in the whatsnew:&lt;br /&gt;
&lt;br /&gt;
* [[Aaron Giles]] commited a big sound system update:&lt;br /&gt;
** Core changes&lt;br /&gt;
*** common.c:&lt;br /&gt;
**** Changed auto_malloc() behavior so that a failure is absolute (calls osd_die); you can now assume that auto_malloc will always succeed and will never return NULL.&lt;br /&gt;
**** Removed all sample loading code; this is now in sound/samples.c&lt;br /&gt;
*** config.c:&lt;br /&gt;
**** Tried to update this to the new mixer stuff in usrintrf.c, but it hasn&amp;#039;t been tested and I bet it&amp;#039;s busted somehow.&lt;br /&gt;
*** driver.h:&lt;br /&gt;
**** driver-&amp;gt;sound_attributes is gone; if you need to detect stereo support, count the speakers.&lt;br /&gt;
*** mame.h:&lt;br /&gt;
**** Machine-&amp;gt;samples is history (yay!)&lt;br /&gt;
*** timer.c:&lt;br /&gt;
**** I created a new type of timer that has a pointer for a callback param instead of an int. These sit next to the existing timer code, so nothing else is affected. They made object orienting the sound cores much much cleaner.&lt;br /&gt;
*** usrintrf.c:&lt;br /&gt;
**** Mixing volumes are retrived from the sound core, not from the mixer (which is gone). Mixing volumes can now be overdriven to 2.0 (could be increased in the future)&lt;br /&gt;
** Machine driver changes&lt;br /&gt;
*** MDRV_SPEAKER_ADD is how to create a new speaker. You specify a name and a 3D vector for where the speaker is relative to the player&amp;#039;s head.&lt;br /&gt;
*** MDRV_SPEAKER_REMOVE and MDRV_SPEAKER_REPLACE operate as expected.&lt;br /&gt;
*** MDRV_SPEAKER_STANDARD_MONO(&amp;quot;name&amp;quot;) specifies a single standard mono speaker positioned directly in front of the user.&lt;br /&gt;
*** MDRV_SPEAKER_STANDARD_STEREO(&amp;quot;leftname&amp;quot;,&amp;quot;rightname&amp;quot;) specifies a standard pair of stereo speakers situated to the left/right of the user.&lt;br /&gt;
*** MDRV_SOUND_ADD now takes a &amp;#039;clock&amp;#039; parameter instead of an interface pointer. The clock for each chip is specified here rather than in the interface. I have removed any &amp;#039;clock&amp;#039;-like parameters from all the sound interface structures.&lt;br /&gt;
*** MDRV_SOUND_CONFIG is where you specify the interface. This mirrors MDRV_CPU_CONFIG. Note that you do not have to specify a config; in this case, it is NULL. This is ok. Many sound chips really only need a clock and volume info (which has also been removed from the interface structs).&lt;br /&gt;
*** MDRV_SOUND_ROUTE is how to control where a sound chip outputs its data. The first parameter is the output index, or ALL_OUTPUTS if you want to route all the outputs for a given chip to the same place. The second parameter is either the name of a speaker or the name of another tagged sound chip. The third parameter is a floating point gain: 1.0 is standard.&lt;br /&gt;
*** You can specify as many sound routes as you need; multiple routes for the same output will split the sound. For example, you can route the single mono output of an OKIM6295 to both the left and right speakers on a stereo system.&lt;br /&gt;
** Sound core interface changes&lt;br /&gt;
*** mixer.c/.h:&lt;br /&gt;
**** These files are gone, gone, gone. Everything is handled by the streams or by sndintrf.c directly. Mixing is performed by code in sndintrf.c which creates a stream to do the final mixing.&lt;br /&gt;
*** sndintrf.h:&lt;br /&gt;
**** We now no longer #include every sound core&amp;#039;s header. You have to include them yourself in your driver.&lt;br /&gt;
*** sndintrf.c:&lt;br /&gt;
**** Sound cores are now hooked up very much like CPU cores. There is a single get_info function that is public for each core; all other functions and data are retrieved through it.&lt;br /&gt;
**** Similar to CPU cores, you can call sndtype_xxx() to query/set values for a specific sound chip type; you can also call sndnum_xxx() to query/set values for an indexed sound chip in the Machine-&amp;gt;drv-&amp;gt;sound array; finally, you can call sndti_xxx() to query/set values for the nth instance of any give sound chip type (sndti = sound type+index).&lt;br /&gt;
**** At startup, all sound cores/filters are created. Then all the speakers are created. Finally, everything is wired up together. There are new consistency checks to make sure you don&amp;#039;t do anything wildly bad.&lt;br /&gt;
**** sndintrf.c calls the OSD layer now, and always requests stereo output. It also does a final downmix from the various speaker streams into left/right streams based on the X coordinate of the speaker.&lt;br /&gt;
*** sound/streams.c:&lt;br /&gt;
**** I have added a new type defined in sound/streams.h: stream_sample_t, which is used to represent a sample as used by the stream system. It is typedef&amp;#039;d to an INT32.&lt;br /&gt;
**** Regardless of the size of stream_sample_t, all streams should be generated as if 16 bits were the maximum. The extra bits give us headroom to overdrive things if we want.&lt;br /&gt;
**** All streams have the same format callback, with support for multiple inputs and outputs.&lt;br /&gt;
**** Each stream has a sample rate; inputs to that stream will be down/upsampled to that rate; outputs will be down/upsampled as necessary to connect to the input of the next stream/speaker in line.&lt;br /&gt;
**** Each input to a stream has its own gain, and each output has a gain as well. These can be controlled while things are running to provide some extra volume knobs.&lt;br /&gt;
**** I haven&amp;#039;t done much in the way of optimizations in order to keep things simple and working. Once things are back to normal, I may consider some additional optimizations.&lt;br /&gt;
** Notes for sound core authors&lt;br /&gt;
*** I marked all sound cores as Copyright the MAME Team; if you want your own credit there, feel free to send an update.&lt;br /&gt;
*** I removed all volume and clock speeds from the interfaces; these are specified elsewhere now.&lt;br /&gt;
*** I made interfaces optional for many sound chips that often don&amp;#039;t need an interface.&lt;br /&gt;
*** Many sound cores used global variables and assumed a single instance of themselves; this has been fixed in all cases.&lt;br /&gt;
*** In some cases I removed global lookup tables and pushed them into the sound interfaces. This can eventually be fixed but I didn&amp;#039;t want to deal with it.&lt;br /&gt;
*** stream_init and stream_init_multi are gone; there is only stream_create now.&lt;br /&gt;
*** Streams are named for you automatically, so you don&amp;#039;t need to pass in names to stream_create. Volumes are also outside of your control now, so you don&amp;#039;t need to pass in volumes to stream_create either.&lt;br /&gt;
*** The get_info function can return pointers to set_info(), start(), stop(), and reset(). There is no concept of an update() function anymore -- updates are handled via streams.&lt;br /&gt;
*** The start() function is passed three things: a &amp;#039;sound index&amp;#039;, which indicates which instance of chip you are (i.e., 0 if you&amp;#039;re the first chip of this type to be created, 1 if you&amp;#039;re the second, etc); a &amp;#039;clock&amp;#039; which is specified in the driver (no clocks in the interfaces please!); and a &amp;#039;config&amp;#039; which is a pointer to the interface for this chip (it can be NULL too, be careful).&lt;br /&gt;
*** The start() function now is expected to allocate memory for its data structures and return a pointer to that if successful. If not, it should return NULL.&lt;br /&gt;
*** The pointer returned by the start() function is passed to the stop() and reset() functions.&lt;br /&gt;
*** Since there were many cases where we provided a read/write handler for the &amp;#039;nth&amp;#039; chip, you can also fetch the pointer from the start() function by calling sndti_token(chip_type, index).&lt;br /&gt;
*** If you have a non-digital chip that doesn&amp;#039;t do internal clipping, you can probably remove the clipping code and let the mixer clip it in the end.&lt;br /&gt;
*** If you do your mixing in a secondary buffer to get more bits of resolution, you can probably optimize your code to mix directly into the stream buffer.&lt;br /&gt;
*** While fixing up all the sound cores I was VERY brute force in getting things to work. If you don&amp;#039;t like what I did to your sound core, feel free to fix it up.&lt;br /&gt;
** Sound core-specific changes&lt;br /&gt;
*** ADPCM -- I removed this entirely and wired up dummy MSM5205s to most of the drivers still using it; these need to be revisited and fixed.&lt;br /&gt;
*** AY8910 -- cleaned up the interface for the YM chips to access this.&lt;br /&gt;
*** Custom -- many drivers using &amp;quot;custom&amp;quot; drivers were just using hard-coded samples and playing them with the (now-defunct) mixer. This is not &amp;quot;custom&amp;quot;, it is &amp;quot;samples&amp;quot;. They have been converted over to samples.&lt;br /&gt;
*** Filter (volume) -- this is a new very simple filter that can be used to control the volume of a stream if you need an extra knob.&lt;br /&gt;
*** Filter (RC) -- this is a new filter that replaces the old RC filter that was in the streams code. Eventually, this could get replaced by some simple discrete logic.&lt;br /&gt;
*** IremGA20 -- Acho cod... transmission lost&lt;br /&gt;
*** NES APU -- changed the way this worked so that it used streams properly instead of an update function.&lt;br /&gt;
*** Samples -- there is now a start function that allows you to create your own custom samples if you want. This allows us to replace &amp;quot;custom&amp;quot; drivers with &amp;quot;samples&amp;quot; in several cases. There is a new call sample_start_raw() which lets you play a raw sample from a pointer to INT16 data.&lt;br /&gt;
*** Votrax -- there was a dead Vortrax core that was still being hard-compiled. I pulled this out and made it a proper sound type (which currently isn&amp;#039;t included).&lt;br /&gt;
*** VRender0 -- fixed a clipping bug that was lurking there (negative clipping wrapped to positive values -- noticeable at 32-bits)&lt;br /&gt;
*** YM2151 -- removed the alternate version and kept only Jarek&amp;#039;s around. Having two cores was confusing and caused problems.&lt;br /&gt;
*** YM2203/2608/2610 -- these chips now pass a set of functions into the FM core with pointers to all the AY8910-compatibility routines, rather than relying on global pointers.&lt;br /&gt;
*** YMZ280B -- this code is just terrible now compared to when I first wrote it! :(&lt;br /&gt;
&lt;br /&gt;
* [[Nathan Woods]] added misc patches:&lt;br /&gt;
** Changed an instance of memory_get_read_ptr() to memory_get_op_ptr() &lt;br /&gt;
** G65816 disassembler changes; program_read_byte() is no longer used for disassembling and also the core now reports the PC as being the full PB or&amp;#039;d with PC &lt;br /&gt;
&lt;br /&gt;
* [[Angelo Salese]] fixed controls in Hyper Crash (still needs freeplay to start)&lt;br /&gt;
&lt;br /&gt;
* [[Pierpaolo Prazzoli]] changed Big Striker to use its PROM&lt;br /&gt;
&lt;br /&gt;
* [[smf]] changed the way the .map file is generated&lt;br /&gt;
&lt;br /&gt;
* [[R. Belmont]] fixed the SPI driver for big endian systems&lt;br /&gt;
&lt;br /&gt;
* [[Derrick Renaud]] swapped Namco 54xx filters on Port A &amp;amp; C (fixes xevious sound)&lt;br /&gt;
	&lt;br /&gt;
* [[Lawrence Gold]] fixed the C89&lt;br /&gt;
&lt;br /&gt;
* [[Nicola Salmoria]] decrypted the GFX in all SPI games&lt;br /&gt;
&lt;br /&gt;
* [[Derrick Renaud]] fixed a crash in WCBowling 1.2&lt;br /&gt;
&lt;br /&gt;
* [[Nicola Salmoria]] updated the FD1089 (adding 317-0028)&lt;br /&gt;
&lt;br /&gt;
* [[Pierpaolo Prazzoli]] Added many opcodes to Shisensho II decryption table, the game is *almost* working correctly, still some errors&lt;br /&gt;
	&lt;br /&gt;
* [[Tomasz Slanina]] updated the MACs driver, yujan now boots but isn&amp;#039;t playable&lt;br /&gt;
&lt;br /&gt;
* [[David Haywood]] fixed sound loading in ddcrew (2 player)&lt;br /&gt;
&lt;br /&gt;
* [[Shinobiz]] fixed Alien Syndrome ROM names&lt;br /&gt;
&lt;br /&gt;
* [[David Haywood]] removed the ingame debug button in rachero which was causing you to be locked to the middle lane&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Game Support ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;New Games supported or promoted from GAME_NOT_WORKING status&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/ufosensb Ufo Senshi Yohko Chan]&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/senkyu Senkyu / Battle Balls]&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/rdft Raiden Fighters]&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/rdft2 Raiden Fighters 2]&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/rfjet Raiden Fighters Jet]&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/viprp1 Viper Phase 1]&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/ejanhs E-Jan High School]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;New clones added&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/sprcrs2a Super Cross (Japan set 2)]&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/alphamis Alpha Mission]&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/aliens3 Aliens (World set 3, Japan set 2)]&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/defense Defense]&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/hiimpacp High Impact Football Proto v8.6]&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/suratka Surprise Attack (Asia Ver L.)]&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/gdariusb G-Darius (Ver 2.02A)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;New games marked as GAME_NOT_WORKING&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/mquake MoonQuake]&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/tutstomb Tuts Tomb]&lt;br /&gt;
* [http://www.mameworld.net/maws/romset/ghoshunt Ghost Hunter]&lt;/div&gt;</summary>
		<author><name>Georg</name></author>
	</entry>
</feed>