<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>---== Sonic Engine To End All Sonic Engines ==---</title>
		<link>http://www.allegro.cc/forums/view/573907</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 26 Mar 2006 06:54:02 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Today marks 3 months since I started working on my secret project. I have kept it a secret for a long time now, but I am reveiling details of what I&#39;ve been doing.</p><p><a href="http://dgrove.blogspot.com/">http://dgrove.blogspot.com/</a> -- I have written an article about it there (March 15).</p><p>Basically, this engine will be programmable by programmers, and designable by non-programmers. It&#39;s an engine for EVERYONE. All written in C and will emulate the original engine 100% perfectly.</p><p>http://www.shadowsoft-games.com/saxman/dump1.gif</p><p>http://www.shadowsoft-games.com/saxman/dump2.gif</p><p>UPDATE: New screen shots added! Check out the March 18th post on my blog -- <a href="http://dgrove.blogspot.com/">http://dgrove.blogspot.com/</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Damian Grove)</author>
		<pubDate>Mon, 20 Mar 2006 12:22:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>a sonic emulator and level editor, that sounds hard.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Mon, 20 Mar 2006 12:31:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Reminds me of the Zelda classic project. This looks interesting.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (deps)</author>
		<pubDate>Mon, 20 Mar 2006 16:31:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sonic clones... I&#39;ve seen so many of them <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><br />Why did you say is your Sonic Engine better than any of the others??
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Simon Parzer)</author>
		<pubDate>Mon, 20 Mar 2006 18:02:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I had the luck seeing his engine in action when he was having problem with some y value which won&#39;t wanna decrease in some particular cases.</p><p>I think the thread could be easily found.</p><p>I&#39;m ok with the &quot;Why will it beat all other engines&quot; for now, but i wanna see what it looks now before saying more.</p><p>Waitting And Seeing.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Mon, 20 Mar 2006 18:51:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well one thing is my engine is the only one to use the exact same algorithms as the original engine used to create Sonic 1, 2, and 3(&amp;K). So will be accurate to the point where if you were to play a demo in the original games, and play the demo in this engine using the exact same level, it would play exactly the same without any issues. That&#39;s the goal. For example, he speeds up going down hill, and he slows down going up hill, and this change in speed is identical to the original games.</p><p>My engine will also use scripting to allow users to write objects and various other things for it. And if they don&#39;t understand the scripting language, I will also likely create a program that will be basically like the &quot;event editor&quot; in Click &amp; Create / Multimedia Fusion (don&#39;t know if you guys know what those programs are or not). It&#39;ll basically cover up the code and give you easy point-and-click style interaction so that any dummy can write objects for their game.</p><p>Another point -- my engine will be backwards compatible with the levels and other data used in the original games. As seen in my screen shots, you have Emerald Hill which is the first level of Sonic 2. My utility &quot;LIMP&quot; reads the Sonic 2 ROM image and exports the level data and formats it so that it can be read by my engine. All the slope data, solidity, art, tiles, and layout is all there and fully playable through my engine. But this isn&#39;t just to play original Sonic levels. My engine allows you to design your own, up to 256 levels (unlike the 17 limit imposed on Sonic 2).</p><p>So I think it&#39;ll be very much advanced. It&#39;s basically n enhanced replica of the original engine, with more features and fewer limits (e.g. 256 colors instead of 16*4). I am also thinking of adding YM2612 (that&#39;s the Yamaha DX synthesis chip used in the Genesis/Mega-Drive) emulation to be able to reproduce Genesis music, though I&#39;d probably only do it if there were enough people willing to use that. Either way, it&#39;ll still support MIDI, and it&#39;ll still support OGG files.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Damian Grove)</author>
		<pubDate>Mon, 20 Mar 2006 23:22:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sounds really impressive. How did you get to know the original algorithms used for control of Sonic etc? If they were available on the web I would think that they would be really educational.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kentl)</author>
		<pubDate>Tue, 21 Mar 2006 03:27:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It shouldn&#39;t be to hard to get ahold of the source; I found the disassembled Metroid 1 source one time.</p><p>edit; <a href="http://mdb.classicgaming.gamespy.com/m1/m1source.txt">Oops here it is...</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (nonnus29)</author>
		<pubDate>Tue, 21 Mar 2006 08:21:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
How did you get to know the original algorithms used for control of Sonic etc?
</p></div></div><p>

From his blog:</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Project Build is the codename I&#39;ve been giving my Sonic the Hedgehog enhanced replicated game engine. It uses the same algorithms that make up the original Sonic games. You don&#39;t do Sonic ROM hacking for more than 6 years and not learn how things work.
</p></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Tue, 21 Mar 2006 16:31:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
edit; Oops here it is... [mdb.classicgaming.gamespy.com]
</p></div></div><p>
Metriod 1 is a bit less complex than Sonic the Hedgehog. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>Take at look at his blog pictures, they&#39;re pretty impressive.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Tue, 21 Mar 2006 20:46:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">His blog said:</div><div class="quote"><p>

You don&#39;t do Sonic ROM hacking for more than 6 years and not learn how things work.
</p></div></div><p>
<img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /><img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /><img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Pedro Avelar Gontijo)</author>
		<pubDate>Tue, 21 Mar 2006 21:16:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, certainly a lot of it has to do with my ROM hacking experience, but coming up with the exact formulas was actually the result of me simply testing and looking to see how the variables change. I studied the changes, and I was able to create algorithms that did exactly what the original engine did. Whenever I come across inaccuracies, I adjust my algorithms so make them as perfect as possible.</p><p>I am more than willing to give out any of the algorithms I have figured out. For example, you have a slope value of &#39;n&#39; which is 8-bits. 0 is 0 degrees, 0x40 is 270 degrees, 0x80 is 180 degrees, and so on, all the way around. So to calculate the player&#39;s X velocity, you do this:</p><p>float_value = Sin(90 / 64 * ((n + 0x40) &amp; 0xFF))</p><p>Then round float_value to the nearest one-thousandth. Then...</p><p>float_value *= player-&gt;Speed / 6</p><p>Then truncate float_value to get rid of the decimals (or simply cast it to an integer). We&#39;ll do this by...</p><p>int_value = (int)float_value</p><p>Then simply multiply the integer by 6...</p><p>int_value *= 6</p><p>And that gives you the player&#39;s X velocity!</p><p>Oh, and I have an FAQ up on my blog now if anyone is interested. It answers some questions I&#39;ve had by various people.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Damian Grove)</author>
		<pubDate>Fri, 24 Mar 2006 11:01:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Do you have much free time?<br />Impressive stuff.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trezker)</author>
		<pubDate>Fri, 24 Mar 2006 13:44:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Looks pretty sick there. Nice framerate too.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (rabbi1337)</author>
		<pubDate>Sun, 26 Mar 2006 06:54:02 +0000</pubDate>
	</item>
</rss>
