<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Yet Another Gamecube's Dev Diary</title>
	<atom:link href="http://gxdev.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://gxdev.wordpress.com</link>
	<description></description>
	<lastBuildDate>Wed, 20 Aug 2008 14:55:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='gxdev.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Yet Another Gamecube's Dev Diary</title>
		<link>http://gxdev.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://gxdev.wordpress.com/osd.xml" title="Yet Another Gamecube&#039;s Dev Diary" />
	<atom:link rel='hub' href='http://gxdev.wordpress.com/?pushpress=hub'/>
		<item>
		<title>YM2612 reveals his secrets</title>
		<link>http://gxdev.wordpress.com/2008/08/08/ym2612-reveals-his-secrets/</link>
		<comments>http://gxdev.wordpress.com/2008/08/08/ym2612-reveals-his-secrets/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 14:45:24 +0000</pubDate>
		<dc:creator>ekeeke</dc:creator>
				<category><![CDATA[Genesis Plus]]></category>

		<guid isPermaLink="false">http://gxdev.wordpress.com/?p=96</guid>
		<description><![CDATA[In Sega Genesis emulation history, YM2612 sound chip has always been one of the hardest part to emulate and more over when you are going the accurate way, since no technical documentation really exists to describe how the FM synthesiser chip internally works. During a long time, the only documentation we had was the official [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gxdev.wordpress.com&amp;blog=1499064&amp;post=96&amp;subd=gxdev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span lang="EN-GB">In Sega Genesis emulation history, <a href="http://en.wikipedia.org/wiki/Yamaha_YM2612">YM2612</a> sound chip has always been one of the hardest part to emulate and more over when you are going the accurate way, since no technical documentation really exists to describe how the FM synthesiser chip internally works.</span></p>
<p><span lang="EN-GB">During a long time, </span><span lang="EN-GB">the only documentation we had was the official Sega Developers Sound Manual that describes the interface with the YM2612 OPN chip and his internal registers.</span></p>
<p><a href="http://gxdev.files.wordpress.com/2008/08/ym2612_chip.jpg"><img class="aligncenter size-full wp-image-104" src="http://gxdev.files.wordpress.com/2008/08/ym2612_chip.jpg?w=510" alt=""   /></a></p>
<p class="MsoNormal"><span lang="EN-GB"><!--[if !supportEmptyParas]--> <!--[endif]--></span></p>
<p class="MsoNormal"><span lang="EN-GB">As a result, the number of available YM2612 core, written by emulator authors, is rather limited:</span></p>
<p class="MsoNormal"><span lang="EN-GB"><!--[if !supportEmptyParas]--> <!--[endif]--></span></p>
<ul style="margin-top:0;" type="disc">
<li class="MsoNormal"><span lang="EN-GB">The “MAME” core, written by      Tatsuyuki Satoh &amp; Jarek Burczynski, courtesy of the <a href="http://mamedev.org/">M.A.M.E emulator</a>.      This is an open-source emulator with a rather high level of accuracy      thanks to lot of low-level tests made on real Yamaha OPN chips from the      same family.</span></li>
</ul>
<p class="MsoNormal" style="margin-left:18pt;"><span lang="EN-GB"><!--[if !supportEmptyParas]--> <!--[endif]--></span></p>
<ul style="margin-top:0;" type="disc">
<li class="MsoNormal"><span lang="EN-GB">The “GENS” core, written by      Stéphane Dallongeville, author of the <a href="http://www.gens.ws/">GENS</a> emulator. This is also an open      source emulator, inspirated by the MAME core regarding internal      YM2612<span> </span>constants. It has been<span> </span>several times updated to improve sound      rendering<span> </span>in some<span> </span>Sega Genesis games. For example, Stef      added an interpolation<span> </span>method to      emulate the YM2612 at his <strong>original frequency</strong> (quite but not      completely similar as the Kega<span> </span>SuperHQ option). He also made many (but probably only at high level)      tests on a real Sega Megadrive to adjust emulation parameters. The result      is that his core is sometime considered as being more accurate than the      MAME core regarding to some specific games.</span></li>
</ul>
<p class="MsoNormal"><span lang="EN-GB"><!--[if !supportEmptyParas]--> <!--[endif]--></span></p>
<ul style="margin-top:0;" type="disc">
<li class="MsoNormal"><span lang="EN-GB">Kega’s core, written by <a href="http://www.eidolons-inn.net/tiki-index.php?page=Kega">Steve      Snake</a>, one of the Sega Genesis emulation’s pioneer (author of Kgen &amp;      Kega). Not much is known about this core since it is closed-source but it      is considered as the “most accurate” YM2612 emulator and Steve Snake      admitted he spent MANY hours testing all possible features of the real chip.      This even includes <strong>undocumented</strong> &amp; <strong>unofficial</strong> features      (see below) used by some games. The result is that, effectively, the      accuracy level is quite HIGH and Kega was considered as the only emulator      being able to render the sound of some games quite exactly as on real      hardware. Sadly, Steve Snake always remained very discrete about his      findings and, for whatever reasons, never publically shared them.<br />
</span></li>
</ul>
<p class="MsoNormal"><span lang="EN-GB"><!--[if !supportEmptyParas]--> <!--[endif]--></span></p>
<p class="MsoNormal"><span lang="EN-GB"><span> </span></span></p>
<p class="MsoNormal"><span lang="EN-GB">As you can now guess, excepted Kega, quite all (open-source or not) Sega Genesis/Megadrive emulators use the M.A.M.E core as a reference and, logically, share the same emulation flaws, resulting in some sound emulation inaccuracy. </span></p>
<p class="MsoNormal"><span lang="EN-GB"><!--[if !supportEmptyParas]--> <!--[endif]--></span></p>
<p class="MsoNormal"><span lang="EN-GB">Hopefully, a new document was recently <a href="http://www.spritesmind.net/_GenDev/forum/viewtopic.php?t=386&amp;sid=892cfe8c2731c4b08a36ffe9b90216b3">discovered </a>&amp; translated, that covers the YM2608 FM chip. This chip is part of the same Yamaha OPN chip family as the YM2612 and obviously share a lot common internal behaviour. This document covers pretty everything about the chip registers &amp; internal tables and even fixes some mistakes from the original Sega YM2612 document. However, it appeared quickly that the M.A.M.E core was already emulating all described features correctly so this document, even if being a great resource for emulator authors, could not help in fixing undocumented behaviour on his own.</span></p>
<p class="MsoNormal"><a href="http://gxdev.files.wordpress.com/2008/08/ssg-eg-register.png"><img class="aligncenter size-medium wp-image-100" src="http://gxdev.files.wordpress.com/2008/08/ssg-eg-register.png?w=278&#038;h=300" alt="" width="278" height="300" /></a></p>
<p class="MsoNormal">
<p class="MsoNormal"><span lang="EN-GB"><!--[if !supportEmptyParas]--> <!--[endif]--></span></p>
<p class="MsoNormal"><span lang="EN-GB">But Nemesis, who is writing his own Sega Genesis emulator (not yet released) took this opportunity to start intensive tests on a real YM2612 chip, trying to fully understand how it internally works and most important, <strong>documenting</strong> it &amp; <strong>sharing</strong> his notes.</span></p>
<p class="MsoNormal"><span lang="EN-GB"><!--[if !supportEmptyParas]--> <!--[endif]--></span></p>
<p class="MsoNormal"><a href="http://gxdev.files.wordpress.com/2008/08/internal-tables.png"><img class="aligncenter size-medium wp-image-101" src="http://gxdev.files.wordpress.com/2008/08/internal-tables.png?w=300&#038;h=164" alt="" width="300" height="164" /></a></p>
<p class="MsoNormal"><span lang="EN-GB"><!--[if !supportEmptyParas]--> </span></p>
<p class="MsoNormal"><span lang="EN-GB">Among other things (you can read the full thread <a href="http://www.spritesmind.net/_GenDev/forum/viewtopic.php?t=386&amp;postdays=0&amp;postorder=asc&amp;start=45">here</a>), he made priceless discoveries about two undocumented features that caused some games to sound incorrect before (one of this “bug” being discussed in a previous entry of this blog by the way, affecting some of the games using <a href="http://gdri.smspower.org/wiki/index.php/Mega_Drive/Genesis_Sound_Engine_List">GEMS </a>sound driver)</span></p>
<p class="MsoNormal"><strong>And now ?</strong></p>
<p class="MsoNormal"><span lang="EN-GB">I implemented these findings in the M.A.M.E ym612 core that I’m using for Genesis Plus and also, implemented sample interpolation<span> </span>to emulate the chip as it original frequency, which is required by some games to sound more correctly (the best example is known to be Sonic the Hedgehog’s end of level sign spinning). Finally, I fixed some inaccuracies regarding the Envelope Generator and Phase updates in CH3 special mode.</span></p>
<p class="MsoNormal"><a href="http://gxdev.files.wordpress.com/2008/08/asterix_and_the_great_rescue_000.gif"><img class="aligncenter size-medium wp-image-125" src="http://gxdev.files.wordpress.com/2008/08/asterix_and_the_great_rescue_000.gif?w=225&#038;h=157" alt="" width="225" height="157" /></a></p>
<p class="MsoNormal"><span lang="EN-GB"><!--[if !supportEmptyParas]--> <!--[endif]--></span></p>
<p class="MsoNormal"><span lang="EN-GB">The result is a pretty accurate sound emulation, way better than before, and probably close (if not better) to Kega level of accuracy.</span></p>
<p class="MsoNormal" style="text-align:center;"><a href="http://gxdev.files.wordpress.com/2008/08/comix-zone.gif"><img class="size-medium wp-image-102 aligncenter" src="http://gxdev.files.wordpress.com/2008/08/comix-zone.gif?w=226&#038;h=158" alt="" width="226" height="158" /></a></p>
<p class="MsoNormal"><span lang="EN-GB"><!--[if !supportEmptyParas]--> <!--[endif]--></span></p>
<p class="MsoNormal">
<p class="MsoNormal"><span lang="EN-GB">The modified source code is freely available on the Genesis Plus SVN repository (<a href="http://code.google.com/p/genplus-gx/source/browse/trunk/source/sound/fm.c">fm.c</a>) for anyone interested. It seems that the M.A.M.E team, through <a href="http://www.bannister.org/forums/ubbthreads.php?ubb=postlist&amp;Board=2&amp;page=1">Richard Belmont</a>, got their hand on this and <a href="http://mamedev.org/updates/whatsnew_0126u4.txt">updated </a>the original core: good stuff happen when people are sharing code &amp; informations !</span></p>
<p class="MsoNormal">Obviously, Genesis Plus for Gamecube/Wii has been updated to reflect current modification, the last version can as usual be found on his <a href="http://www.tehskeen.com/forums/showthread.php?t=3919">thread </a>on Tehskeen.</p>
<p class="MsoNormal">
<p class="MsoNormal">Here is the full changelog:</p>
<blockquote>
<p class="MsoNormal"><em>[Genesis]</em><br />
<em>- adjusted (again) HINT timings: fix Double Dragon 2 (game freezed), hopefully does not break anything else</em><br />
<em>- fixed broken EEPROM support for Codemaster games</em><br />
<em>- modified input update timings: fix Dungeons &amp; Dragons &#8211; Warriors of the Eternal Sun (thanks to Notaz)</em><br />
<em>- added support for &#8220;Ultimate Mortal Kombat Trilogy&#8221; hack (max. size supported is 10MBytes)</em><br />
<em>- added (VERY) preliminar support for PICO roms (credits to Notaz for his documentation)</em><br />
<em>- improved YM2612 emulation (credits to Nemesis for his tests on real hardware):</em><br />
<em>.implemented phase overflow emulation: improved fix for special music instrument used in Comix Zone, Flashback, Ariel, Shaq Fu&#8230;</em><br />
<em>.improved SSG-EG emulation in MAME core (also based on additional code from Alone Coder)</em><br />
<em>.improved Timers emulation accuracy</em><br />
<em>.improved Enveloppe Generator accuracy</em><br />
<em>.fixed Channel 3 CSM mode emulation</em><br />
<em>.implemented sample interpolation in MAME core to emulate the chip at original frequency (HQ YM2612 mode, from gens)</em></p>
<p><em>[NGC/Wii]</em><br />
<em>- added automatic alphabetical filesorting (Marty Disibio)</em><br />
<em>- added ROM History for faster ROM access (Marty Disibio)</em><br />
<em>- fixed a silly input bug in &#8220;ROM Infos&#8221; &amp; &#8220;Game Genie&#8221; menus</em><br />
<em>- modified &#8220;Hard Reset&#8221; option</em><br />
<em>- improved display sharpness in original rendering mode (H40 cell mode only), filtering is now completely disabled</em><br />
<em>- enabled overscan emulation in &#8220;STRETCH&#8221; aspect mode also</em><br />
<em>- added support for horizontal wiimote handling in Menu (automatically used when the wiimote is not pointed towards the screen)</em><br />
<em>- improved Controller options</em><br />
<em>.prevented keys reconfiguration if device is not detected</em><br />
<em>.added support for up to 8 players (ISS Pro Deluxe, &#8230;)</em><br />
<em>.each player can be affected to a custom device (GAMECUBE Pad, WIIMOTE/NUNCHUK or CLASSIC)</em><br />
<em>.added the ability to use classic controller &amp; wiimote pad from the same port separately</em><br />
<em>.modified &#8220;soft-reset&#8221; key on the Wiimote to avoid &#8220;accidental&#8221; resets (now press Buttons + &amp; &#8211; simultaneously)</em><br />
<em>.added MODE button mapping: use &#8220;START+Z&#8221; on gamepad or &#8220;Button Minus&#8221; on wiimote/classic (not reconfigurable)</em><br />
<em>.added automatic configuration save for controller options</em></p>
<p><a href="http://gxdev.files.wordpress.com/2008/08/wiimote.jpg"><img class="aligncenter size-medium wp-image-106" src="http://gxdev.files.wordpress.com/2008/08/wiimote.jpg?w=240&#038;h=241" alt="" width="240" height="241" /></a></p></blockquote>
<p><strong>Side notes</strong></p>
<p>I didn&#8217;t post before but since a few months, thanks to the hard work of <a href="http://www.wiiuse.net/">para </a>(author of the wiiuse library) &amp; <a href="https://sourceforge.net/projects/devkitpro/">shagkur </a>(libogc main developper), we now got easy-to-use &amp; stable support for wiimote and expansion controllers in Wii homebrew. Obviously, Genesis Plus GX takes full benefit of this and now even support up to 8 players.</p>
<p>I also worked on <a href="http://www.tehskeen.com/forums/showthread.php?t=4209">Sms Plus GX</a> to add accurate Sega LightPhaser emulation and to use the Wiimote IR pointing ability for a full nostalgic experience. Sega Menacer &amp; Konami Justifier emulation should come along soon for Genesis Plus, more to come in a later post.</p>
<p class="MsoNormal"><span lang="EN-GB"><!--[if !supportEmptyParas]--></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gxdev.wordpress.com/96/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gxdev.wordpress.com/96/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gxdev.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gxdev.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gxdev.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gxdev.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gxdev.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gxdev.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gxdev.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gxdev.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gxdev.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gxdev.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gxdev.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gxdev.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gxdev.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gxdev.wordpress.com/96/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gxdev.wordpress.com&amp;blog=1499064&amp;post=96&amp;subd=gxdev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gxdev.wordpress.com/2008/08/08/ym2612-reveals-his-secrets/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">ekeeke</media:title>
		</media:content>

		<media:content url="http://gxdev.files.wordpress.com/2008/08/ym2612_chip.jpg" medium="image" />

		<media:content url="http://gxdev.files.wordpress.com/2008/08/ssg-eg-register.png?w=278" medium="image" />

		<media:content url="http://gxdev.files.wordpress.com/2008/08/internal-tables.png?w=300" medium="image" />

		<media:content url="http://gxdev.files.wordpress.com/2008/08/asterix_and_the_great_rescue_000.gif?w=300" medium="image" />

		<media:content url="http://gxdev.files.wordpress.com/2008/08/comix-zone.gif?w=300" medium="image" />

		<media:content url="http://gxdev.files.wordpress.com/2008/08/wiimote.jpg?w=298" medium="image" />
	</item>
		<item>
		<title>Reaching the limits&#8230;</title>
		<link>http://gxdev.wordpress.com/2008/03/02/how-to-reach-the-limits/</link>
		<comments>http://gxdev.wordpress.com/2008/03/02/how-to-reach-the-limits/#comments</comments>
		<pubDate>Sat, 01 Mar 2008 22:46:58 +0000</pubDate>
		<dc:creator>ekeeke</dc:creator>
				<category><![CDATA[Genesis Plus]]></category>

		<guid isPermaLink="false">http://gxdev.wordpress.com/?p=71</guid>
		<description><![CDATA[Here&#8217;s the time for another release of Genesis Plus. I have focused myself in fixing some bugs I introduced in the previous version, as well as emulating most of unlicensed &#8220;non-working&#8221; games (many thanks to Haze for his work). I also made some progress about emulating an original YM2612 bug that made some games (Ariel, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gxdev.wordpress.com&amp;blog=1499064&amp;post=71&amp;subd=gxdev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s the time for another release of Genesis Plus. I have focused myself in fixing some bugs I introduced in the previous version, as well as emulating most of unlicensed &#8220;non-working&#8221; games (many thanks to <a href="http://haze.mameworld.info/">Haze </a>for his work).</p>
<div style="text-align:center;"><img src="http://gxdev.files.wordpress.com/2008/03/super-bubble-bobble-md-gs-cap.png?w=254&#038;h=190" alt="super-bubble-bobble-md-gs-cap.png" height="190" width="254" /></div>
<div style="text-align:center;" align="left"></div>
<div style="text-align:center;"></div>
<p>I also made some <a href="http://www.spritesmind.net/_GenDev/forum/viewtopic.php?t=30&amp;start=255">progress </a>about emulating an original YM2612 bug that made some games (Ariel, Shaq Fu, Comix Zone, Spiderman &amp; Animated Series,&#8230;) sound correct on real hardware but wrong on emulators.</p>
<p>Finally, I added SVP emulation thanks to the great work of Tasco Deluxe and <a href="http://notaz.gp2x.de/svp.php">Notaz</a> : as a result, Virtua Racing is now fully playable but don&#8217;t expect to run it full speed in gamecube mode. It needs to emulate a custom DSP running at 23Mhz which takes a lot of CPU time actually. You can still underclock the DSP but it will result in slower 3D rendering and effective framerate will still seem slower.</p>
<div style="text-align:center;"><img src="http://gxdev.files.wordpress.com/2008/03/vr.gif?w=510" alt="vr.gif" /></div>
<div style="text-align:center;"></div>
<div style="text-align:center;"></div>
<p>That&#8217;s why, to celebrate the last release of <a href="http://www.devkitpro.org/">LibOGC </a>  which added Wii hardware support, I also release a special elf version that could be running in native Wii mode using the recent &#8220;<a href="http://wiibrew.org/index.php?title=Twilight_Hack">Twilight hack</a>&#8220;. Please note that this version remain completely UNTESTED as I personnaly don&#8217;t have any way to test it on Wii. SO, tell me if the above game is at least running faster <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Here is a complete changelog for this release:</p>
<blockquote><p> [Genesis]<br />
- added SVP emulation: Virtua Racing is now emulated (big thanks to Notaz and TascoDeluxe)<br />
- fixed VDP registers behaviour when VDP Mode 4 is enabled: fix Bass Masters Classic Pro, Captain Planet &amp; The Planeeters<br />
- corrected a bug in DMA Fill operation: fix James Pond 3, Rockman World/Megaman Willy Wars (corrupted VRAM)<br />
- corrected typo errors in CPU cycle counters update: fix optiom screen music in &#8220;College Slam&#8221; and probably others games.<br />
- added preliminary support of undocumented YM2612 bug: fixes soundtracks of Shaq Fu, Spiderman, Comix Zone, Ariel and some others<br />
- added support for mappers &amp; copy protection devices used in many unlicensed/pirate cartridges (see cart_hw.c for details)<br />
- rewrote memory handlers for better modularity and some (little) speedup<br />
- reduced Savestate size</p>
<p>[NGC]<br />
- compiled with last LibOGC (20080228): fix issues when unplugging controller, support for Wii mode (see release.txt)<br />
- added &#8220;hard-coded&#8221; IPL font (no more direct access to BOOTROM): fix font problem for Qoob users<br />
- added SDCARD Slot B support for loading Roms<br />
- removed unused MAME PSG Core<br />
- added &#8216;Force DTACK&#8217; option for prototype games usually hanging on real hardware (example: Sonic Crackers)<br />
- added an option to underclock SVP core (with default cycle count, Virtua Racing actually does not run fullspeed in GC mode)</p></blockquote>
<p>As usual, binary files can be downloaded from <a href="http://www.tehskeen.com/forums/showthread.php?t=3919">Tehskeen</a>.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gxdev.wordpress.com/71/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gxdev.wordpress.com/71/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gxdev.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gxdev.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gxdev.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gxdev.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gxdev.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gxdev.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gxdev.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gxdev.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gxdev.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gxdev.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gxdev.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gxdev.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gxdev.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gxdev.wordpress.com/71/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gxdev.wordpress.com&amp;blog=1499064&amp;post=71&amp;subd=gxdev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gxdev.wordpress.com/2008/03/02/how-to-reach-the-limits/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">ekeeke</media:title>
		</media:content>

		<media:content url="http://gxdev.files.wordpress.com/2008/03/super-bubble-bobble-md-gs-cap.png" medium="image">
			<media:title type="html">super-bubble-bobble-md-gs-cap.png</media:title>
		</media:content>

		<media:content url="http://gxdev.files.wordpress.com/2008/03/vr.gif" medium="image">
			<media:title type="html">vr.gif</media:title>
		</media:content>
	</item>
		<item>
		<title>New Genesis Plus release</title>
		<link>http://gxdev.wordpress.com/2007/12/28/new-genesis-plus-release/</link>
		<comments>http://gxdev.wordpress.com/2007/12/28/new-genesis-plus-release/#comments</comments>
		<pubDate>Fri, 28 Dec 2007 19:10:28 +0000</pubDate>
		<dc:creator>ekeeke</dc:creator>
				<category><![CDATA[Genesis Plus]]></category>

		<guid isPermaLink="false">http://gxdev.wordpress.com/2007/12/28/new-genesis-plus-release/</guid>
		<description><![CDATA[Download it from Tehskeen&#8217;s forums, here is a complete changelog: [Genesis] many sourcecode cleanup and optimization completely rewrote EEPROM emulation: now support all known EEPROM types (24C01-24C65) and mappers (Sega, Acclaim, EA, Codemasters) used in a few games (now use internal game database) as external RAM. This should at least fix save support in the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gxdev.wordpress.com&amp;blog=1499064&amp;post=63&amp;subd=gxdev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Download it from <a href="http://www.tehskeen.com/forums/showthread.php?p=17132#post17132">Tehskeen&#8217;s forums</a>, here is a complete changelog:</p>
<p><b> [Genesis]</b></p>
<ul>
<li>many sourcecode cleanup and optimization</li>
<li>completely rewrote EEPROM emulation: now support all known EEPROM types (24C01-24C65) and mappers (Sega, Acclaim, EA, Codemasters) used in a few games (now use internal game database) as external RAM. This should at least fix save support in the following games:
<ul>
<li>NBA Jam (alternate Acclaim mapper)</li>
<li>College Slam, Frank Thomas Big Hurt Baseball (24C65 type)</li>
<li>NHLPA Hockey 93, Rings of Power (EA mapper)</li>
<li>Micro Machines serie, Brian Lara Cricket 96/Shane Warne Cricket (Codemasters mapper)</li>
</ul>
</li>
</ul>
<ul>
<li>external RAM is now initialized to 0xFF by default: fix Micromachines 2, Dino Dini Soccer</li>
<li>fixed SRAM 16-bits memory handlers: fix some Sega Sports and EA Sports games (NFL95, NBA Action 95, NHL97, NHL98,&#8230;)</li>
<li>modified WRITE_xxx &amp; READ_xxx macros for better portability and faster memory access on BIG ENDIAN platform</li>
<li>completely rewrote BIG ENDIAN support in render.c and vdp.c: rendering should be a little faster</li>
<li>rewrote ROM bankswitch emulation (Super Street Fighter II): ROM access are faster, using memory pointers instead of reading ROM copy from ARAM</li>
<li>fixed leftmost Window/PlaneA column render and implemented Window bug (as described by Charles Mc Donald)</li>
<li>improved &#8220;Sprite Limit&#8221; and &#8220;Sprite Collision&#8221; detection accuracy</li>
<li>modified RGB565 Color Palette to use the full available color range (0-31;0-63)</li>
<li>implemented &#8220;cycle accurate&#8221; HV Interrupt timings: fix Sesame&#8217;s Street Counting Cafe, Legend of Galahad (intro)</li>
<li>improved VDP access timings accuracy (added FIFO emulation): fix Double Clutch</li>
<li>improved DMA timings accuracy: fix Winter Olympics (E), Arch Rivals and probably more</li>
<li>fixed HCounter again: Road Rash serie (I,II,III) don&#8217;t need timing hacks anymore</li>
<li>fixed VCounter in Interlaced 2 mode: fix Combat Cars &#8220;VS-Mode&#8221;</li>
<li>improved Interlaced 2 mode (double resolution) rendering: Sonic 2, Combat Cars (&#8220;VS-Modes&#8221;) look far better</li>
<li>added TMSS BIOS support (optional)</li>
<li>rewrote part of the YM2162 MAME&#8217;s core: fixed internal FM timers handling, removed non-YM2612 emulation code and unused multiple cpu support</li>
<li>implemented &#8220;cycle accurate&#8221; FM timers &amp; sound samples rendering</li>
<li>improved Z80 Interrupt timing accuracy: fix Sonic 3 music slowdowns</li>
<li>updated Z80 &amp; 68000 cores to last MAME versions</li>
<li>improved Soft Reset emulation: X-Men 2 and Eternal Champions (random character selection) now work more like on real hardware</li>
<li>added full overscan emulation (vertical &amp; horizontal borders) for &#8220;pixel perfect&#8221; aspect ratio (tested against a real genesis)</li>
</ul>
<p><b>[NGC]</b></p>
<ul>
<li>fixed rom checksum calculation (only used for rom information)</li>
<li>some modifications in GX rendering code</li>
<li>added support for original Genesis/Megadrive NTSC &amp; PAL video modes: this makes games looking exactly as on original hardware (progressive rendering with reduced resolution)</li>
<li>added &#8220;Aspect&#8221; option to switch between ORIGINAL (aspect ratio is fixed and borders are emulated) and MANUAL SET (horizontal and vertical scaling can be manually configured, borders are not emulated)</li>
<li>added &#8220;Overscan&#8221; option to disable the original borders color and always use black borders (only used when ORIGINAL Aspect mode is enabled)</li>
<li>added support for up to 720 pixels horizontal resolution (needed for proper aspect ratio emulation)</li>
<li>added &#8220;TV Mode&#8221; option to enable automatic switching to PAL(50Hz) TV mode when the Genesis runs in PAL mode</li>
<li> added &#8220;Xshift&#8221; &amp; &#8220;Yshift&#8221; settings to let you adjust display area position while keeping the original aspect ratio</li>
<li>added option to disable/enable SSG-EG support in FM cores: this special mode is indeed not properly emulated and some games might sound wrong when enabled</li>
<li>removed &#8220;CPU Type&#8221; option, you can also now force Region (JAP/EUR/USA) without reseting the game, choose USA or JAP for 60hz, EUR for 50hz, this can be useful to bypass game region protection at startup.</li>
</ul>
<p>I also updated the <a href="http://gxdev.files.wordpress.com/2007/12/gen_eeprom.pdf">EEPROM guide</a> and the <a href="http://gxdev.wordpress.com/about/user-notes/">User Manual</a> to fully describe the new available options.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gxdev.wordpress.com/63/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gxdev.wordpress.com/63/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gxdev.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gxdev.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gxdev.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gxdev.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gxdev.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gxdev.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gxdev.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gxdev.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gxdev.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gxdev.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gxdev.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gxdev.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gxdev.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gxdev.wordpress.com/63/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gxdev.wordpress.com&amp;blog=1499064&amp;post=63&amp;subd=gxdev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gxdev.wordpress.com/2007/12/28/new-genesis-plus-release/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">ekeeke</media:title>
		</media:content>
	</item>
		<item>
		<title>Work in progress: emulation accuracy</title>
		<link>http://gxdev.wordpress.com/2007/12/17/work-in-progress-emulation-accuracy/</link>
		<comments>http://gxdev.wordpress.com/2007/12/17/work-in-progress-emulation-accuracy/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 16:06:28 +0000</pubDate>
		<dc:creator>ekeeke</dc:creator>
				<category><![CDATA[Genesis Plus]]></category>

		<guid isPermaLink="false">http://gxdev.wordpress.com/2007/12/17/work-in-progress-emulation-accuracy/</guid>
		<description><![CDATA[After a lot of beta testing, a new version of Genesis Plus for Gamecube/Wii is about to be released&#8230; Even if there are no really revolutionary features, I&#8217;m quite satisfied with this one since I&#8217;ve been working a lot on emulation accuracy, which is one of the most interesting challenge about writing an emulator, in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gxdev.wordpress.com&amp;blog=1499064&amp;post=58&amp;subd=gxdev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After a lot of beta testing, a new version of Genesis Plus for Gamecube/Wii is about to be released&#8230; Even if there are no really revolutionary features, I&#8217;m quite satisfied with this one since I&#8217;ve been working a lot on emulation accuracy, which is one of the most interesting challenge about writing an emulator, in my opinion.</p>
<p>Beside correcting some bugs and cleaning some parts of the source, my  goal this time was mainly to:</p>
<p><strong><em><u>1) Emulate Genesis timings as accurately as possible</u></em></strong></p>
<p>Some games are very timing sensitive and expect some events (VDP writes, DMA, HV Interrupts, HBLANK and VBLANK) to happen at very precise times, or for a very specific period. I will not go deeply into details but one of the key to correctly emulate several CPU running in parallel and accessing shared memory resources, is to emulate also the <strong>latency</strong> of those devices.</p>
<p>For example, on real hardware, switching interrupts ON through VDP registers do not trigger an interrupt immediately, but, more probably, the CPU will have the time to run one single instruction before jumping to the interrupt routine. Not emulating this tiny timing latency could cause some bad programmed games to hang, which was indeed the case of<em> Sesame&#8217;s Street Counting Cafe</em>, not really the best game in the world, but a good challenge to test  emulation accuracy.</p>
<p style="text-align:center;"> <img src="http://gxdev.files.wordpress.com/2007/12/sesame.gif?w=320&#038;h=240" align="middle" height="240" width="320" /></p>
<p>In some way, I finally found timings that should work with any sensitive games, without need anymore for specific games &#8220;hacks&#8221; but also without disturbing any previous working game. The goal behind this is that the emulator now achieves a near perfect compatibility rate (I only found some unlicensed games not working properly, mostly due to some unemulated cartridge hardwares)</p>
<p><strong><u>2) </u><em><u>Get a &#8220;pixel accurate&#8221; aspect on screen </u></em></strong></p>
<p>The first idea was to emulate the <strong>colored overscan </strong>area which indeed exists all around the active display (generally 320&#215;224 pixels) . Emulating the full display height (243 lines for NTSC) and width (based on the VDP Pixel Clock and scanline period),  gives an accurate screen aspect ratio, much more similar to what a real Genesis/Megadrive displays. Below is  a screenshot example of the full overscan area, rendered on a line basis (when displayed on TV, this area is generally hidden with vertical borders being only visible when the system runs in PAL mode)</p>
<p style="text-align:center;"><img src="http://gxdev.files.wordpress.com/2007/12/street.gif?w=320&#038;h=240" height="240" width="320" /></p>
<p>The second idea was to add support for original Genesis rendering modes. Indeed, as many old consoles, it  originally uses a ~ <strong>240 lines progressive </strong>mode, which means that in a regular NTSC screen (always ~480 lines), only the even lines were displayed, odd lines remaining black (this is sometime recreated as &#8220;scanline effect&#8221; in emulators).</p>
<p>Additionally, the &#8220;interlaced mode 2&#8243; support (double resolution interlaced mode used in Sonic 2 &#8220;vs-mode&#8221;) was also improved, with a better rendering quality using both <strong>240i/480i </strong>TV modes.</p>
<p align="center"> <img src="http://gxdev.files.wordpress.com/2007/12/sonic2000.gif?w=510" alt="sonic2000.gif" /></p>
<blockquote></blockquote>
<blockquote></blockquote>
<p>Finally, I also add optional support for original PAL video modes which means that the Gamecube/Wii could automatically switch into a <strong>PAL video modes </strong>(287p, 287i or 574i)<strong> </strong>when the virtual Genesis is running in PAL mode&#8230;</p>
<p>The results, compared side-by-side with my old switched Megadrive II, is pretty accurate in term of rendering or aspect ratio, and I hope every fellow retrogamers would enjoy this nostalgic feeling as much as I do.</p>
<blockquote></blockquote>
<p><strong><em>What should be next&#8230;</em></strong></p>
<blockquote></blockquote>
<p>Next step would be to improve the sound emulation, especially FM core emulation. I already improved the samples rendering and FM timers accuracy which (I believe) produce some more accurate sound effects in some games but I still need to add support for original YM2612 samplerate/frequency and also investigate about some undocumented features (or bugs ?) of the original hardware which make some musics  sound totally weird (Flashback, Spiderman, Comix Zone&#8230;) under emulators.</p>
<p>Anyway, I&#8217;m planning to release soon the new version of Genesis Plus (SMSPlus coming also along, with similar additions)  since it&#8217;s always more enjoyable to share his work with other people and get some feedback&#8230;more to come at tehskeen.</p>
<blockquote></blockquote>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gxdev.wordpress.com/58/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gxdev.wordpress.com/58/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gxdev.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gxdev.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gxdev.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gxdev.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gxdev.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gxdev.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gxdev.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gxdev.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gxdev.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gxdev.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gxdev.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gxdev.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gxdev.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gxdev.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gxdev.wordpress.com&amp;blog=1499064&amp;post=58&amp;subd=gxdev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gxdev.wordpress.com/2007/12/17/work-in-progress-emulation-accuracy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">ekeeke</media:title>
		</media:content>

		<media:content url="http://gxdev.files.wordpress.com/2007/12/sesame.gif" medium="image" />

		<media:content url="http://gxdev.files.wordpress.com/2007/12/street.gif" medium="image" />

		<media:content url="http://gxdev.files.wordpress.com/2007/12/sonic2000.gif" medium="image">
			<media:title type="html">sonic2000.gif</media:title>
		</media:content>
	</item>
		<item>
		<title>Serial EEPROM emulation</title>
		<link>http://gxdev.wordpress.com/2007/09/06/serial-eeprom-emulation/</link>
		<comments>http://gxdev.wordpress.com/2007/09/06/serial-eeprom-emulation/#comments</comments>
		<pubDate>Thu, 06 Sep 2007 10:21:49 +0000</pubDate>
		<dc:creator>ekeeke</dc:creator>
				<category><![CDATA[Genesis Plus]]></category>

		<guid isPermaLink="false">http://gxdev.wordpress.com/2007/09/06/serial-eeprom-emulation/</guid>
		<description><![CDATA[I have recently decided to rewrite completely the EEPROM emulation code used in Genesis Plus. The previous one was based on Notaz&#8217;s Picodrive sourcecode but was not compatible with some games (Rings of Power, College Slam, Micromachines&#8217; serie, &#8230;) and, beside from preventing game backup to work properly, also make some games crashing. Since not [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gxdev.wordpress.com&amp;blog=1499064&amp;post=47&amp;subd=gxdev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have recently decided  to rewrite completely the EEPROM emulation code used in Genesis Plus. The previous one was based on Notaz&#8217;s Picodrive sourcecode but was not compatible with some games (Rings of Power, College Slam, Micromachines&#8217; serie, &#8230;) and, beside from preventing game backup to work properly, also make some games crashing.</p>
<p>Since not so many Genesis games use serial EEPROM as backup RAM, this feature is generally not supported by common emulators (so far I know, only Kega, Picodrive and Jenesis have some kind of eeprom support but none of them seem to have support for every existing EEPROM games), which make me think it could be interesting to code a complete support myself.</p>
<p align="center"><img src="http://gxdev.files.wordpress.com/2007/09/rings_of_power.gif?w=510" alt="rings_of_power.gif" /></p>
<p>The emulation itself is not very difficult since EEPROM datasheets (24Cxx eeprom are generally used) are freely available and the communication protocol is quite easy to reproduce. The main difficulty was to determine which games indeed use serial EEPROM (instead of classic parallel SRAM) and also which type of EEPROM it is and which type of EEPROM mapper they are using.</p>
<p style="text-align:center;"><img src="http://gxdev.files.wordpress.com/2007/09/689_3.png?w=510" alt="689_3.png" /></p>
<p>After testing many games on the emulator, I finally get some results and a list of games using EEPROM and their characteristic. I compiled this in a document, which emulator authors may find useful or not. In this document, there is also a quick note about how EEPROM read/writes work,  covering all 3 EPROM&#8217;s modes that are used in known Genesis cartridges. Interested people could also have a look at eeprom.c in the genesis plus SVN repositery.</p>
<p><a title="gen_eeprom.pdf" href="http://genplus-gx.googlecode.com/svn/gen_eeprom.pdf">gen_eeprom.pdf</a></p>
<p>PS: there is no binary update actually available, I still need some time to test the upcoming release as I implemented many other modifications</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gxdev.wordpress.com/47/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gxdev.wordpress.com/47/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gxdev.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gxdev.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gxdev.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gxdev.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gxdev.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gxdev.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gxdev.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gxdev.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gxdev.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gxdev.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gxdev.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gxdev.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gxdev.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gxdev.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gxdev.wordpress.com&amp;blog=1499064&amp;post=47&amp;subd=gxdev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gxdev.wordpress.com/2007/09/06/serial-eeprom-emulation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">ekeeke</media:title>
		</media:content>

		<media:content url="http://gxdev.files.wordpress.com/2007/09/rings_of_power.gif" medium="image">
			<media:title type="html">rings_of_power.gif</media:title>
		</media:content>

		<media:content url="http://gxdev.files.wordpress.com/2007/09/689_3.png" medium="image">
			<media:title type="html">689_3.png</media:title>
		</media:content>
	</item>
		<item>
		<title>Genesis Plus previous changes</title>
		<link>http://gxdev.wordpress.com/2007/08/10/genesis-plus-previous-changes/</link>
		<comments>http://gxdev.wordpress.com/2007/08/10/genesis-plus-previous-changes/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 09:05:03 +0000</pubDate>
		<dc:creator>ekeeke</dc:creator>
				<category><![CDATA[Genesis Plus]]></category>

		<guid isPermaLink="false">http://gxdev.wordpress.com/2007/08/10/genesis-plus-previous-changes/</guid>
		<description><![CDATA[Here is a summary of the previous changes made to Genesis Plus 22/07/2007 [Genesis] corrected TeamPlayer support: fix multiplayer in Gauntlet 4 (Sept. version), Pengo and a lot of others added J-Cart support: enable multiplayer in Codemasters games (Pete Sampras, Micromachines games, Super Skidmarks) added serial EEPROM autodetection: fix games with bad SRAM informations in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gxdev.wordpress.com&amp;blog=1499064&amp;post=5&amp;subd=gxdev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><font color="#000000"><font size="2">Here is a summary of the previous changes made to Genesis Plus </font></font></p>
<p><font color="#000000"><font size="2"> </font></font></p>
<blockquote><p><font color="#000000"><font size="2"><font><font><font>22/07/2007</font></font></font></font></font></p>
<p><font color="#000000"><font size="2"><font>[Genesis]</font></font></font></p>
<ul>
<li><font color="#000000"><font size="2">corrected TeamPlayer support: fix multiplayer in Gauntlet 4 (Sept. version), Pengo and a lot of others</font></font></li>
<li><font color="#000000"><font size="2"> added J-Cart support: enable multiplayer in Codemasters games (Pete Sampras, Micromachines games, Super Skidmarks)</font></font></li>
<li><font color="#000000"><font size="2">added serial EEPROM autodetection: fix games with bad SRAM informations in header (NBA Jam TE)</font></font></li>
<li><font color="#000000"><font size="2">added SVP faking: display 2D graphics in Virtua Racing (the game is however still unplayable)</font></font></li>
<li><font color="#000000"><font size="2">added support for more internal IO registers: fixe some unlicensed games (Wisdom Tree games&#8230;)</font></font></li>
<li><font color="#000000"><font size="2">added preliminary support for unmapped protection device: fix some unlicensed games with special built-in hardware (Squirell King, Lion King 2&#8230;)</font></font></li>
<li><font color="#000000"><font size="2"> added &#8220;Soft Reset&#8221; combo (in game, use L+Z triggers): this should be like pressing the RESET button on a real Genesis and this is required in some games to enable special features or even complete the game (ex: X-Men).</font></font></li>
</ul>
<p><font color="#000000"><font size="2"><font>[NGC]</font><font><br />
</font></font></font></p>
<ul>
<li><font color="#000000"><font size="2">added separate configuration for PortA/PortB inputs (GAMEPAD, MULTITAP or NONE, see Joypad Config): this let you setting PORTB as unplugged, which is needed in some games to access special modes or enable cheat codes (Alien Storm, X-Men&#8230;)</font></font></li>
<li><font color="#000000"><font size="2">Freezestate &amp; SRAM files are now compressed (using zlib)</font></font></li>
<li><font color="#000000"><font size="2">FreezeState &amp; SRAM files can now be saved/loaded to/from SDCARD: located in /genplus/saves/ from the root of your SDCARD</font></font></li>
<li><font color="#000000"><font size="2">changed initial ROMS directory for SDCARD user: now looking for /genplus/roms/ from the root of your SDCARD</font></font></li>
<li><font color="#000000"><font size="2">added user-transparent SRAM autoload (detection order is MCARD then SDCARD, SLOTA then SLOTB)</font></font></li>
<li><font color="#000000"><font size="2">&#8220;System reboot&#8221; is now used for console reboot or SD/PSO reload if detected</font></font></li>
<li><font color="#000000"><font size="2">added new font: now use original IPL font, extracted from Bootrom</font></font></li>
<li><font color="#000000"><font size="2">modified controls when going into the rom selection menu (DVD or SDCARD):</font></font>
<ul>
<li><font color="#000000"><font size="2">use B button to go up one directory</font></font></li>
<li><font color="#000000"><font size="2">use Z button to quit the file selection menu</font></font></li>
<li><font color="#000000"><font size="2">use L/R triggers to go down/up one full page</font></font></li>
<li><font color="#000000"><font size="2">use Left/Right buttons or Analog stick to scroll the selected entry&#8217;s filename when </font><font size="2">it can&#8217;t be full displayed</font></font></li>
</ul>
</li>
<li><font color="#000000"><font size="2">various menu rearrangment, minor bugfixes &amp; sourcecode cleanup</font></font></li>
</ul>
</blockquote>
<p><font color="#000000"><font size="2"><br />
</font></font></p>
<blockquote><p><font color="#000000"><font size="2"><font><font><font>21/06/2007</font><br />
</font></font></font></font></p>
<ul>
<li><font color="#000000"><font size="2">added 4.7GB DVD support for WII drives (the maximal allowed size for Gamecube DVD is still 1.35GB)</font></font></li>
<li><font color="#000000"><font size="2">removed MPAL video timings, always use 60Hz NTSC: fix display problems for PAL wii users (no more PAL50 version needed)</font></font></li>
<li><font color="#000000"><font size="2">added Console Reboot option in main menu (IPL Reboot)</font></font></li>
<li><font color="#000000"><font size="2">added Multitap support (EA 4-Way Play and Sega Teamplayer): allowed up to four players in games supporting those peripherals</font></font></li>
<li><font color="#000000"><font size="2"> added partial Sega Menacer lightgun support (use Analog Stick): automatically set when detecting the 6-in-1 Menacer game</font></font></li>
</ul>
</blockquote>
<p><font color="#000000"><font size="2"><br />
</font></font></p>
<blockquote><p><font color="#000000"><font size="2"><font>18/05/2007</font><br />
</font></font></p>
<ul>
<li><font color="#000000"><font size="2">you can now switch between FM cores without reseting the game. FM registers value are automatically restored when switching.</font></font></li>
<li><font color="#000000"><font size="2">modified PAL framesync a little bit: the 20ms period is now applied between the start of 2 consecutive frames, </font><font size="2"> no more between the end of the previous and the start of the next one, which seems more correct to me.</font></font></li>
<li><font color="#000000"><font size="2">removed the previous VINT timings modification because it brokes some games (Rocket Knight, Thunderforce III,&#8230;)</font></font></li>
<li><font color="#000000"><font size="2">added automatic Timing configuration (VDP latency, VINT timing &amp; alternate Line Timing) at game loading, based upon specific romname detection. </font><font size="2">This means you can still modify some of these options afterwards but they are now automatically set/unset when loading a game which need special timing fixes. These fixes are also automatically desactivated when the current game doesn&#8217;t need them. For your information, games that are actually detected and need special timings to run properly are:</font></font></li>
</ul>
<ul>
<li>
<ul>
<li><font color="#000000"><font size="2">Legend of Galahad &amp; Road Rash series (single line not rendered properly)</font></font></li>
<li><font color="#000000"><font size="2">Sesame Street Counting Cafe (don&#8217;t boot)</font></font></li>
<li><font color="#000000"><font size="2">Chaos Engine/Soldiers of Fortune (graphic glitches on scrolling)</font></font></li>
</ul>
</li>
</ul>
</blockquote>
<p><font color="#000000"><font size="2"><br />
</font></font></p>
<blockquote><p><font color="#000000"><font size="2">12/05/2007</font><font size="2"><br />
</font></font></p>
<ul>
<li><font color="#000000"><font size="2">corrected L &amp; R buttons assignment: fixes Genesis X &amp; Z buttons being inverted</font></font></li>
<li><font color="#000000"><font size="2">VINT timings are now a little more accurate: fixes Sesame&#8217;s Street Counting Cafe</font></font></li>
<li><font color="#000000"><font size="2">SN76496 MAX_OUTPUT back to normal</font></font></li>
<li><font color="#000000"><font size="2">modified FB_WNOISE value in SN76496 core according to John Kortink&#8217;s last informations</font></font></li>
<li><font color="#000000"><font size="2">added support for Maxim&#8217;s PSG core, same as used in SMSPLUS (it becomes the default PSG core)</font></font></li>
<li><font color="#000000"><font size="2">updated FM core to the latest MAME version</font></font></li>
<li><font color="#000000"><font size="2">corrected DAC output level (fixes voices and some special FX being too low)</font></font></li>
<li><font color="#000000"><font size="2">added support for Gens YM2612 (FM) core (MAME&#8217;s one still remains default FM core)</font></font></li>
<li><font color="#000000"><font size="2">added configurable preamplification for each sound cores (see Sound Options)</font></font></li>
<li><font color="#000000"><font size="2">a</font><font size="2">dded some other configurable sound options (boost overall volume, FM improvment for Gens YM2612)</font></font></li>
</ul>
</blockquote>
<p><font color="#000000"><font size="2"><br />
</font></font></p>
<blockquote><p><font color="#000000"><font size="2">11/04/2007<br />
</font></font></p>
<ul>
<li><font color="#000000"><font size="2">corrected MAX_OUTPUT value in SN76496 core: fix PSG sound (SFX) volume</font></font></li>
<li><font color="#000000"><font size="2">removed unused sound buffer allocation</font></font></li>
</ul>
</blockquote>
<p><font color="#000000"><font size="2"><br />
</font></font></p>
<blockquote><p><font color="#000000"><font size="2">26/03/2007<br />
</font></font></p>
<ul>
<li><font color="#000000"><font size="2">added DVD automount: automatically call libogc DVD_Mount function if ISO PVD reading failed (idea taken from softdev&#8217;s last neocdredux release). This may be useful for loading roms from a DVD after booting from SDLOAD or after stopping DVD motor.</font></font></li>
<li><font color="#000000"><font size="2">a</font><font size="2">dded &#8220;DVD motor off&#8221; feature, like in others emulators</font></font></li>
<li><font color="#000000"><font size="2">corrected Memory Card mounting function: EXI_ProbeReset() function was never called if the first mounting attempt failed. Should fix some of the &#8220;Unable to mount memory card&#8221; errors.</font></font></li>
</ul>
</blockquote>
<p><font color="#000000"><font size="2"><br />
</font></font></p>
<blockquote><p><font color="#000000"><font size="2"><font>22/03/2007</font><br />
</font></font></p>
<ul>
<li><font color="#000000"><font size="2">added SDCARD subdirectory browsing and LFN (255 char. max) support</font></font></li>
</ul>
</blockquote>
<p><font color="#000000"><font size="2"><br />
</font></font></p>
<blockquote><p><font color="#000000"><font size="2"><font>17/03/2007</font><br />
</font></font></p>
<ul>
<li><font color="#000000"><font size="2">remove some rendering unused code (only used by DOS version of genesis plus) for little speedup</font></font></li>
<li><font color="#000000"><font size="2">added an option to enable alternate line rendering timing (fix single line error in Road Rash series and Legend of Galahad&#8217;s Intro)</font></font></li>
<li><font color="#000000"><font size="2">Color RAM update now always reset color 0 to border color (fix color glitches in Mortal Kombat,&#8230;) (thanks to Nop&#8217;s for the idea)</font></font></li>
<li><font color="#000000"><font size="2">added last Softdev&#8217;s modifications (normalised memory access and ASM GU functions used intead of &#8216;C&#8217; ones) for some speedup</font></font></li>
<li><font color="#000000"><font size="2">updated gcaram.c to be compatible with last libogc version</font></font></li>
</ul>
</blockquote>
<p><font color="#000000"><font size="2"><br />
</font></font></p>
<blockquote><p><font color="#000000"><font size="2"><font>09/03/2007<br />
</font></font></font></p>
<ul>
<li><font color="#000000"><font size="2"> little rendering code speedups</font></font></li>
<li><font color="#000000"><font size="2">modified HV counter tables (fix graphic glitches in Skitchin&#8217;s sky, Lotus 2 Recs, Panorama Cotton, Dashin Desperados &amp; maybe more)</font></font></li>
<li><font color="#000000"><font size="2">completely rewrote DMA timings emulation so that it works for all games (no more cpu freezing)</font></font></li>
<li><font color="#000000"><font size="2">added all DMA tranfer rates handling for each three DMA modes and added dma busy flag emulation</font></font></li>
<li><font color="#000000"><font size="2">modified interrupts handling on VDP register #0 and #1 writes (fix Lemmings status bar)</font></font></li>
<li><font color="#000000"><font size="2">added VDP RAM write latency (fix Chaos Engine/Soldier of Fortune gfx glitches)</font></font></li>
<li><font color="#000000"><font size="2">modified FM timers handling a little bit (fix Vectorman2 music)</font></font></li>
<li><font color="#000000"><font size="2">corrected Sprite Limit rendering (fix Sonic 1 &amp; Micromachines 2 title screens)</font></font></li>
<li><font color="#000000"><font size="2">corrected IO Registers writes (fix Decap&#8217; Attack controls, no more need for alternate input)</font></font></li>
<li><font color="#000000"><font size="2">corrected 6 Buttons Pad emulation (fix 6buttons detection in Mortal Kombat 3, Comix Zone and other 6-buttons compatible games)</font></font></li>
<li><font color="#000000"><font size="2">modified sound mixing a bit according to Generator sourcecode (FM and PSG ratios seems more correct)</font></font></li>
<li><font color="#000000"><font size="2">added separate CPU Region (USA, Europe, Japan,&#8230;) &amp; Speed (PAL or NTSC) choice in menu options</font></font></li>
<li><font color="#000000"><font size="2">modified main frame synchro in PAL mode (fix sound glitch in this mode), thanks to Softdev for the solution</font></font></li>
<li><font color="#000000"><font size="2">added savestates support</font></font></li>
</ul>
</blockquote>
<p><font color="#000000"><font size="2"><br />
</font></font></p>
<blockquote><p><font color="#000000"><font size="2"><font>07/02/2007<br />
</font></font></font></p>
<ul>
<li><font color="#000000"><font size="2">added correct FM</font><font size="2"> Timers emulation (fix missing music in Castle of Illusion, Quackshot, Undead Line, Wonderboy in Monster Lair, Cal 50, Turbo Outrun, Thundeforce 4 and certainly more)</font></font></li>
<li><font color="#000000"><font size="2">added partial EEPROM emulation, used by few games as backup RAM: SRAM support now works fine in Wonderboy5, Megaman Willy Wars, NBA Jam&#8230; (credits to Notaz, adapted from Picodrive code)</font></font></li>
<li><font color="#000000"><font size="2">added preliminar dma timing emulation (fix bottom screen in Legend of Galahad) (credits to Notaz, adapted from Picodrive code)</font></font></li>
<li><font color="#000000"><font size="2">hack: clear Vint pending after Hint (INT level 4) acknowledge (fix Fatal Rewind)</font></font></li>
<li><font color="#000000"><font size="2">hack: modify read_bus16 to return a random value (fake fetch) (fix Time Killers)</font></font></li>
<li><font color="#000000"><font size="2">modified cpu execution timings, with more correct hblank and interrupts timing (fix ISS Deluxe, Double Dragon 2 and certainly more) (Based on Gens code)</font></font></li>
<li><font color="#000000"><font size="2">modified busreq mechanism: better synchro between z80 &amp; 68k (no need to dejitter anymore) (Based on Gens code)</font></font></li>
<li><font color="#000000"><font size="2">added sprite collision detection (fix Strider 2)</font></font></li>
<li><font color="#000000"><font size="2">modified dma fill operation for big endian platform(fix Contra Hardcorps gfx garbage)</font></font></li>
</ul>
</blockquote>
<blockquote><p><font color="#000000"><font size="2"><em>Softdev&#8217;s initial releases (some WIP changes are missing)<br />
</em></font></font></p>
<p class="MsoNormal"><strong><span style="font-size:10pt;font-family:Arial;">WIP1.2</span></strong><span style="font-size:10pt;font-family:Arial;"><span></span></span></p>
<ul>
<li><span style="font-size:10pt;font-family:Arial;"><span> </span> Added partial zip support</span></li>
</ul>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Arial;"><span></span></span><strong><span style="font-size:10pt;font-family:Arial;">WIP1.1</span></strong></p>
<ul>
<li><strong><span style="font-size:10pt;font-family:Arial;"></span></strong><span style="font-size:10pt;font-family:Arial;"> Added six button pad support from x86 Gens</span><span style="font-size:10pt;font-family:Arial;"><span></span></span></li>
<li><span style="font-size:10pt;font-family:Arial;"><span></span>Additional changes based on Charles MacDonald&#8217;s gen-hw.txt</span></li>
</ul>
<p class="MsoNormal"><strong><span style="font-size:10pt;font-family:Arial;">WIP1</span></strong><span style="font-size:10pt;font-family:Arial;"><span>    </span>07 March 2006</span></p>
<p><span style="font-size:10pt;font-family:Arial;"><span> </span></span></p>
<ul>
<li><span style="font-size:10pt;font-family:Arial;">Updated SN76496 driver</span><span style="font-size:10pt;font-family:Arial;"><span></span></span></li>
<li><span style="font-size:10pt;font-family:Arial;"><span></span>Added GX Hardware Scaling</span></li>
</ul>
</blockquote>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gxdev.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gxdev.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gxdev.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gxdev.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gxdev.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gxdev.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gxdev.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gxdev.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gxdev.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gxdev.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gxdev.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gxdev.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gxdev.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gxdev.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gxdev.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gxdev.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gxdev.wordpress.com&amp;blog=1499064&amp;post=5&amp;subd=gxdev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gxdev.wordpress.com/2007/08/10/genesis-plus-previous-changes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">ekeeke</media:title>
		</media:content>
	</item>
	</channel>
</rss>
